WO2011021504A1 - ゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラム - Google Patents
ゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラム Download PDFInfo
- Publication number
- WO2011021504A1 WO2011021504A1 PCT/JP2010/063215 JP2010063215W WO2011021504A1 WO 2011021504 A1 WO2011021504 A1 WO 2011021504A1 JP 2010063215 W JP2010063215 W JP 2010063215W WO 2011021504 A1 WO2011021504 A1 WO 2011021504A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- objects
- approximate
- separated
- polyhedron
- assigned
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
- A63F13/57—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
- A63F13/577—Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/812—Ball games, e.g. soccer or baseball
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/833—Hand-to-hand fighting, e.g. martial arts competition
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/21—Collision detection, intersection
Definitions
- the present invention relates to a game device, a game processing method, an information storage medium, and a program capable of facilitating determination of collision between objects.
- Patent Document 1 discloses a technique in which a spherical figure is set as a dog object collision determination region and the position of the sphere changes in accordance with the dog's posture in the collision determination of a dog object.
- the present invention solves such a problem, and an object of the present invention is to provide a game device, a game processing method, an information storage medium, and a program capable of facilitating determination of collision between objects.
- a game device includes a collision determination unit and a separation unit.
- the collision determination unit determines whether or not the objects arranged in the virtual space collide with each other based on whether or not the approximate solids assigned to the objects intersect.
- the separation unit separates the other of the objects determined to collide into two objects, and each of the two separated objects Assign an approximate solid that approximates the object.
- the approximate solid assigned to the object includes a polyhedron or a curved surface.
- the separating unit calculates the approximate solid assigned to the object to be separated into two objects, (A) In the case of a polyhedron, two polyhedrons obtained by dividing the polyhedron into two along the cutting plane are approximate solids assigned to the two separated objects, (B) In the case of a curved body, two polyhedrons obtained by dividing a polyhedron that approximates a curved body into two along the cut surface are approximate solids that are assigned to the two separated objects.
- a plurality of objects are included in the virtual space handled by the game device of the present invention. For example, in some fighting games, two players battle each other by manipulating character objects. In such a game, character objects associated with respective players are arranged in a virtual space.
- game content is not limited by the present invention.
- each object change according to the player's instruction or according to a predetermined algorithm. For example, in a fighting game, when one character object performs a technique such as kicking or punching on the other character object, the limb of one character object contacts the other character object. Such contact between two character objects is generally expressed as “collision”.
- the game device advances the game while determining whether two objects collide with each other.
- each object is associated with a figure that approximates the shape of the object (hereinafter referred to as “approximate solid”). Whether or not two objects collide with each other is determined based on whether or not the approximate solids associated with the respective objects intersect.
- the shape of the approximate solid is, for example, a curved body such as a capsule, a cylinder, or a sphere, or a polyhedron such as a tetrahedron, an octahedron, or a dodecahedron.
- the objects placed in the virtual space include objects that can be cut into other objects.
- An object having a shape capable of cutting other objects is referred to as a “cut object”.
- the cutting object may be, for example, a blade or a thin plate-like object.
- each of the approximate solids obtained by cutting the polyhedron at the cut surface is associated with each of the separated objects.
- the approximate solid associated with the object to be cut is a curved body
- the curved body is approximated to a polyhedron.
- the approximate solid associated with the object to be cut is a sphere
- the approximate solid is approximated to a polyhedron such as an octahedron.
- the polyhedron obtained by approximation is cut at the cut surface.
- Each obtained polyhedron is associated with the separated object.
- the collision determination is performed using the newly associated approximate solid.
- each of the advantages of an approximate solid of a curved body that simplifies the collision determination process and an approximate solid of a polyhedron that enables a more accurate collision determination process according to the shape of the object is obtained. It is possible to use them as much as possible, and the collision judgment between objects can be facilitated.
- the curved body may include a capsule shape.
- the separating unit calculates the approximate solid assigned to the object to be separated into two objects, (C) When the capsule shape satisfies a predetermined capsule separation condition, an approximation that allocates two capsule shapes having a length obtained by dividing the central axis of the capsule shape to the two separated objects.
- Three-dimensional (D) Two capsules obtained by dividing a polyhedron that approximates the capsule shape into two along the cut surface when the capsule shape does not satisfy the predetermined capsule separation condition.
- An approximate solid assigned to two objects may be used.
- the capsule separation condition is satisfied when the angle formed by the center axis of the capsule shape and the normal line of the cut surface is equal to or smaller than a predetermined threshold, and the cut surface cuts only the side surface of the capsule shape.
- the capsule shape is a figure in which hemispheres are joined to both ends of a cylindrical shape.
- the shape of the approximate solid after separation may be complicated depending on the angle to be cut and the location to be cut. Therefore, in the present invention, when the cutting angle is shallow and only the side surface (cylindrical portion) of the capsule shape is cut, the approximate solid after separation is also formed into a capsule shape.
- the approximate solid after separation is a polyhedron such as an octahedron or a dodecahedron.
- each of the advantages of the capsule-shaped approximate solid that simplifies the collision determination process and the polyhedral approximate solid that enables more accurate collision determination processing according to the shape of the object can be obtained. It is possible to use them as much as possible, and the collision judgment between objects can be facilitated.
- the curved body may include a cylinder.
- the separating unit calculates the approximate solid assigned to the object to be separated into two objects, (E) If the cylinder is a predetermined cylinder separation condition, the two cut cylinders having a length obtained by dividing the central axis of the cylinder are approximate solids assigned to the two separated objects. (F) If the cylinder is a cylinder and does not satisfy the predetermined cylinder separation condition, the two polyhedrons obtained by dividing the polyhedron approximating the cylinder into two along the cut surface are divided into the two separated An approximate solid assigned to the object may be used.
- the cylinder separation condition is satisfied when the angle formed by the central axis of the cylinder and the normal line of the cut surface is equal to or less than a predetermined threshold, and the cut surface cuts only the side surface of the cylinder.
- the approximate solid is a cylinder
- the shape of the approximate solid after separation may be complicated depending on a cutting angle or a cutting position. Therefore, in the present invention, when the cutting angle is shallow and only the side surface of the cylindrical shape is cut, the approximate solid after separation is also a cylindrical shape.
- the approximate solid after separation is a polyhedron such as an octahedron or a dodecahedron. According to the present invention, each of the advantages of a cylindrical approximate solid in which collision determination processing is simplified and a polyhedral approximate solid that enables more accurate collision determination processing according to the shape of the object can be obtained. It is possible to use them as much as possible, and the collision judgment between objects can be facilitated.
- the curved body may include a spherical shape.
- the separation unit may use two polyhedrons obtained by dividing an octahedron that approximates a sphere into two along the cut surface as an approximate solid that is allocated to the two separated objects.
- the approximate solid associated with the object to be cut is a sphere
- the approximate solid is further approximated from a sphere to a polyhedron such as an octahedron.
- the polyhedron obtained by cutting the polyhedron obtained by approximation becomes an approximate solid after separation.
- the separation unit is a symmetrical polyhedron assigned to an object to be separated into two objects, and is a symmetry of at least one of the two polyhedrons obtained by dividing the polyhedron into two along the cutting plane.
- a curved surface that approximates the polyhedron assigned to the two separated objects may be an approximate solid.
- the approximate solid before separation is a polyhedron and the approximate solid after separation is a polyhedron
- the symmetry of the approximate solid after separation may be higher than that before separation.
- the approximate solid after separation is replaced with a curved body such as a capsule, a cylinder, or a sphere. According to the present invention, collision determination between objects can be facilitated.
- a game processing method is a game processing method executed in a game device having a collision determination unit and a separation unit, and includes a collision determination step and a separation step.
- the collision determination step determines whether or not the objects arranged in the virtual space collide with each other based on whether or not the approximate solids assigned to each of the objects intersect.
- the separation step when one of the objects determined to collide is a predetermined cut object, the separation unit separates the other of the objects determined to collide into two objects, and the two separated objects are separated.
- An approximate solid that approximates the object is assigned to each.
- the approximate solid assigned to the object includes a polyhedron or a curved surface.
- the separation unit calculates the approximate solid assigned to the object to be separated into two objects, (A) In the case of a polyhedron, two polyhedrons obtained by dividing the polyhedron into two along the cutting plane are approximate solids assigned to the two separated objects, (B) In the case of a curved body, two polyhedrons obtained by dividing a polyhedron that approximates a curved body into two along the cut surface are approximate solids that are assigned to the two separated objects.
- collision determination between objects can be facilitated.
- An information storage medium stores a program that causes a computer to function as a collision determination unit and a separation unit.
- the collision determination unit determines whether or not the objects arranged in the virtual space collide with each other based on whether or not the approximate solids assigned to the objects intersect.
- the separation unit separates the other of the objects determined to collide into two objects, and each of the two separated objects Assign an approximate solid that approximates the object.
- the approximate solid assigned to the object includes a polyhedron or a curved surface.
- the separating unit calculates the approximate solid assigned to the object to be separated into two objects, (A) In the case of a polyhedron, two polyhedrons obtained by dividing the polyhedron into two along the cutting plane are approximate solids assigned to the two separated objects, (B) In the case of a curved body, two polyhedrons obtained by dividing a polyhedron that approximates a curved body into two along the cut surface are approximate solids that are assigned to the two separated objects.
- the computer can function as a game device that operates as described above.
- a program causes a computer to function as a collision determination unit and a separation unit.
- the collision determination unit determines whether or not the objects arranged in the virtual space collide with each other based on whether or not the approximate solids assigned to the objects intersect.
- the separation unit separates the other of the objects determined to collide into two objects, and each of the two separated objects Assign an approximate solid that approximates the object.
- the approximate solid assigned to the object includes a polyhedron or a curved surface.
- the separating unit calculates the approximate solid assigned to the object to be separated into two objects, (A) In the case of a polyhedron, two polyhedrons obtained by dividing the polyhedron into two along the cutting plane are approximate solids assigned to the two separated objects, (B) In the case of a curved body, two polyhedrons obtained by dividing a polyhedron that approximates a curved body into two along the cut surface are approximate solids that are assigned to the two separated objects.
- the program of the present invention can be recorded on a computer-readable information storage medium such as a compact disk, flexible disk, hard disk, magneto-optical disk, digital video disk, magnetic tape, and semiconductor memory.
- a computer-readable information storage medium such as a compact disk, flexible disk, hard disk, magneto-optical disk, digital video disk, magnetic tape, and semiconductor memory.
- the above program can be distributed and sold via a computer communication network independently of the computer on which the program is executed.
- the information storage medium can be distributed and sold independently from the computer.
- the present invention it is possible to provide a game device, a game processing method, an information storage medium, and a program capable of easily determining collision between objects.
- FIG. 1 It is a figure which shows schematic structure of the typical information processing apparatus with which the game device of this invention is implement
- Embodiment 2 it is a figure showing the cut surface of the approximate solid matched with the object which should be cut
- FIG. 1 is a schematic diagram showing a schematic configuration of a typical information processing apparatus 100 that fulfills the functions of the game apparatus of the present invention by executing a program.
- a description will be given with reference to FIG.
- the information processing apparatus 100 includes a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, an interface 104, a controller 105, an external memory 106, and a DVD-ROM ( A Digital Versatile Disk-Read Only Memory is provided, an image processing unit 108, an audio processing unit 109, and a NIC (Network Interface Card) 110.
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- controller 105 an external memory
- DVD-ROM A Digital Versatile Disk-Read Only Memory is provided
- an image processing unit 108 an audio processing unit 109
- NIC Network Interface Card
- the player attaches a DVD-ROM storing a game program and data to the DVD-ROM drive 107.
- the player turns on the information processing apparatus 100.
- the program is executed, and the game device of the present embodiment is realized.
- the CPU 101 controls the overall operation of the information processing apparatus 100 and is connected to each component to exchange control signals and data. Further, the CPU 101 has a storage area called a register (not shown) that allows high-speed access.
- the CPU 101 can perform various operations on the registers using an ALU (Arithmetic Logic Unit) (not shown).
- the operations to be performed include arithmetic operations such as addition, subtraction, multiplication, and division, logical operations such as logical sum, logical product, and logical negation, bit operations such as bit sum, bit product, bit inversion, bit shift, and bit rotation.
- the CPU 101 may be configured to perform high-speed saturation calculations such as addition / subtraction / division / multiplication / division for multimedia processing, vector calculations such as trigonometric functions, and the like. Further, the CPU 101 may realize such high-speed computation by including a coprocessor.
- the ROM 102 stores an IPL (Initial Program Loader) that is executed immediately after the power is turned on. By executing the IPL, the program recorded on the DVD-ROM is read out to the RAM 103. Next, execution of the program by the CPU 101 is started.
- the ROM 102 stores an operating system program and various data necessary for operation control of the entire information processing apparatus 100.
- the RAM 103 temporarily stores data and programs.
- the RAM 103 holds programs and data read from the DVD-ROM and other data necessary for game progress and chat communication.
- the CPU 101 provides a variable area in the RAM 103.
- the CPU 101 may operate by directly operating the ALU on the value stored in the variable. Further, the CPU 101 may temporarily store the value stored in the RAM 103 in the register, perform an operation on the register, and write back the operation result in the RAM 103.
- the controller 105 is connected via the interface 104.
- the controller 105 receives an operation input performed by the player when executing a game such as a dance game or a soccer game.
- a plurality of controllers 105 may be connected to the interface 104.
- the external memory 106 is detachably connected via the interface 104.
- the external memory 106 stores data indicating game play status (past results, etc.), game progress data, game chat communication log (record) data using the network, and the like.
- the external memory 106 can be rewritten. When the player inputs necessary instructions via the controller 105, these data are recorded in the external memory 106 as appropriate.
- a DVD-ROM mounted on the DVD-ROM drive 107 stores a program for realizing the game and image data and sound data associated with the game. Under the control of the CPU 101, the DVD-ROM drive 107 performs a reading process on the loaded DVD-ROM to read out necessary programs and data. The read program and data are temporarily stored in the RAM 103 or the like.
- the image processing unit 108 first processes the data read from the DVD-ROM by the CPU 101 or an image arithmetic processor (not shown) included in the image processing unit 108. Next, the image processing unit 108 records image information obtained by the processing process in a frame memory (not shown).
- the frame memory is mounted on the image processing unit 108. Image information recorded in the frame memory is converted into a video signal at a predetermined synchronization timing, and is output to a monitor (not shown) connected to the image processing unit 108. Thereby, various image displays are possible.
- the image calculation processor can execute a two-dimensional image overlay calculation, a transparency calculation such as ⁇ blending, and various saturation calculations at high speed.
- the image arithmetic processor can execute a calculation for obtaining a rendered image at high speed.
- the rendering image is an image obtained by bird's-eye view of a polygon arranged in a virtual three-dimensional space from a predetermined viewpoint position in a predetermined line of sight.
- the rendered image is obtained by rendering polygon information to which various texture information is added by the Z buffer method or the like.
- the CPU 101 and the image arithmetic processor operate in cooperation, whereby it is possible to draw a character string as a two-dimensional image according to the font information.
- the font information defines the shape of the character.
- An image representing a character string is drawn on the frame memory or the surface of each polygon.
- information such as game images may be prepared on the DVD-ROM.
- the information such as the image is developed in the frame memory, the state of the game and the like can be displayed on the screen.
- the audio processing unit 109 converts audio data read from the DVD-ROM into an analog audio signal and outputs it from a connected speaker (not shown). Further, under the control of the CPU 101, the sound processing unit 109 generates sound effects and music data to be generated during the progress of the game. Next, the sound processing unit 109 outputs sound corresponding to the generated sound data from the speaker.
- the audio processing unit 109 refers to the sound source data and converts the MIDI data into PCM data. Note that the audio processing unit 109 has MIDI sound source data. If the audio data is compressed audio data such as ADPCM (Adaptive Differential Pulse Code Modulation) format or Ogg Vorbis format, the audio processing unit 109 expands and converts it into PCM data.
- the PCM data is D / A (Digital / Analog) converted at a timing corresponding to the sampling frequency and output to a speaker, thereby enabling voice output.
- the NIC 110 is an interface that mediates between an internet connection device (not shown) and the CPU 101.
- the NIC 110 is used when the information processing apparatus 100 is connected to a computer communication network (not shown) such as the Internet.
- Examples of the Internet connection device include those conforming to the 10BASE-T / 100BASE-T standard used when configuring a LAN (Local Area Network), an analog modem for connecting to the Internet using a telephone line, ISDN (Integrated It may be a Services digital network (ADSL) modem, an ADSL (Asymmetric digital subscriber line) modem, a cable modem for connecting to the Internet using a cable television line, or the like.
- ADSL Services digital network
- ADSL Asymmetric digital subscriber line
- a large-capacity external storage device such as a hard disk performs the same function as a DVD-ROM or the like mounted on the ROM 102, RAM 103, external memory 106, DVD-ROM drive 107, etc. It is also possible to configure.
- the game device 200 changes the position and posture of a character object (hereinafter referred to as “object”) arranged in the three-dimensional virtual space, and advances the game.
- the game device 200 changes the position and orientation of the object based on an instruction from the player or based on a predetermined algorithm executed by the CPU 101.
- the game content is not limited by the present invention. In the present embodiment, a game in which two robots operated by a player or the game device 200 are played in a virtual space will be described as an example.
- FIG. 2 is a diagram showing a functional configuration of the game apparatus 200 of the present embodiment.
- the game device 200 includes a collision determination unit 201 and a separation unit 202.
- FIG. 3 is a configuration example of an image representing the state of the three-dimensional virtual space.
- a first object 310 operated by a first player a second object 320 operated by a second player, an item object 330, and the like are arranged.
- the CPU 101 stores information indicating the position and orientation of the first object 310, information indicating the position and orientation of the second object 320, and information indicating the position and orientation of the item object 330 in the RAM 103.
- CPU101 updates these information at any time according to game progress.
- the CPU 101 can arbitrarily change the position and orientation of the object based on an instruction from the player or a predetermined algorithm. That is, the CPU 101 can arbitrarily change the positions and orientations of the first object 310, the second object 320, and the item object 330.
- the position of each object is represented by coordinate values in the global coordinate system defined in the virtual space.
- the posture of each object is represented by a vector or a combination of coordinate values in the global coordinate system.
- a polar coordinate system or a Cartesian coordinate system is used as the global coordinate system.
- a virtual camera for photographing the virtual space.
- the CPU 101 can arbitrarily change the position of the virtual camera (hereinafter referred to as “viewpoint position”) based on an instruction from the player or a predetermined algorithm. Further, the CPU 101 can arbitrarily change the direction of the virtual camera (hereinafter referred to as “the direction of the line of sight”) based on an instruction from the player or a predetermined algorithm.
- the CPU 101 stores information indicating the position of the viewpoint and information indicating the direction of the line of sight in the RAM 103, and updates these information as needed.
- the CPU 101 controls the image processing unit 108 to generate a projection image as shown in FIG.
- the projected image is obtained by projecting a state in which the virtual space is viewed from the viewpoint position in the direction of the line of sight onto a predetermined projection plane.
- the CPU 101 displays the obtained projection image on the monitor screen.
- the CPU 101 and the image processing unit 108 generate a projection image in the vertical synchronization (VSYNC) interruption process and display it on the monitor.
- the player can see a projection image updated for each VSYNC, that is, an animation image.
- the CPU 101 changes the position and orientation of the object based on an instruction from the player or a predetermined algorithm. That is, the CPU 101 changes the position and orientation of the first object 310 and the position and orientation of the second object 320 as the game progresses. The CPU 101 determines whether or not the first object 310 and the second object 320 collide. The CPU 101 makes a determination based on the position and orientation of the first object 310 and the position and orientation of the second object 320.
- the collision referred to here means that there is a portion where the spatial region occupied by the first object 310 and the spatial region occupied by the second object 320 intersect (overlap), or there is a portion where these contact. It is. For example, when the “hand” of the first object 310 touches the “head” of the second object 320, the first object 310 and the second object 320 collide with each other.
- the CPU 101 and the image processing unit 108 perform processing for determining whether or not the first object 310 and the second object 320 collide (hereinafter referred to as “collision determination processing”) at a regular timing such as a VSYNC interrupt. Execute.
- the calculation amount and the memory consumption may become enormous if the collision determination process is strictly performed.
- FIG. 4 is a diagram for explaining an approximate solid using a part of the first object 310 (which may be the second object 320 or the item object 330) as an example.
- One or more approximate solids 450 are assigned to the first object 310.
- three approximate solids 450A, 450B, and 450C are assigned to the arm of the first object 310. It is desirable that the shape of the solid formed by combining the approximate solid 450 is approximately equal to the shape of the outline 400 of the first object 310.
- the approximate solid 450 is a figure used by the CPU 101 to perform the collision determination process, and is not displayed on the monitor.
- More accurate collision determination processing can be performed by increasing the number of approximate solids 450 or by bringing the shape of the approximate solid 450 close to the contour 400.
- FIG. 5A to 5E are diagrams showing specific examples of the shape of the approximate solid 450.
- FIG. The shape of the approximate solid 450 shown in FIG. 5A is a “capsule shape”.
- the capsule shape is a shape formed by combining a hemisphere with a radius RA and a circular cylinder with a bottom surface having a radius RA and a height (length) of LA.
- both ends of the capsule shape are typically the same shape, but may not be the same.
- an arbitrary part of a sphere or a curved surface such as a plate, a convex lens, or a concave lens may be used.
- the shape of the approximate solid 450 shown in FIG. 5B is a “sphere” having a radius RB.
- the capsule shape and the spherical shape are symmetrical in shape, and the shape can be expressed with a mathematical formula relatively easily. Therefore, it can be said that the capsule shape and the spherical shape can simplify the collision determination process efficiently.
- the CPU 101 it is desirable for the CPU 101 to make the shape of the approximate solid 450 as capsule or sphere as possible. Symmetry is point symmetry, line symmetry, plane symmetry, and the like, for example.
- the degree of symmetry is expressed by how many of the shapes satisfy point symmetry, line symmetry, or plane symmetry. For example, the CPU 101 calculates how many lines that serve as axis of line symmetry can be drawn, and how many planes that serve as plane symmetry “mirrors” exist. Then, the CPU 101 determines that the greater the number obtained, the greater the symmetry.
- the shape of the approximate solid 450 may be a capsule shape, a spherical shape, or a curved surface surrounded by an arbitrary curved surface.
- the shape of the approximate solid 450 shown in FIG. 5C is a “cylinder” whose bottom is a circle with a radius RC and whose height is LB.
- the shape of the approximate solid 450 shown in FIG. 5D is a “cuboid”.
- the shape of the approximate solid 450 shown in FIG. 5E is “octahedron”. In addition to these illustrated shapes, various polyhedrons can be used as the approximate solid 450.
- the shape of the approximate solid 450 may be not only a three-dimensional figure having a three-dimensional shape but also a figure having a two-dimensional shape or a figure having a one-dimensional shape.
- the approximate solid 450 may be a figure represented by part or all of a plane, part or all of a curved surface, part or all of a straight line, or part or all of a curve.
- Two-dimensional and one-dimensional figures are not "solid" in general mathematical concepts. However, in this embodiment, a three-dimensional figure, a two-dimensional figure, and a one-dimensional figure are collectively referred to as a “solid”.
- the CPU 101 can combine a plurality of approximate solids 450 having various shapes and associate them with the first object 310.
- a plurality of approximate solids 450 having different shapes such as a capsule shape at the end node of a finger and a cylindrical shape at the middle node of the finger.
- the collision determination unit 201 determines whether or not the objects arranged in the virtual space collide with each other based on whether or not the approximate solids 450 assigned to the respective objects intersect.
- the number of objects to be determined is any one of the first object 310, the second object 320, and the item object 330.
- the CPU 101 and the image processing unit 108 cooperate to function as the collision determination unit 201.
- the collision determination process performed by the collision determination unit 201 will be described with reference to FIGS. 6A and 6B.
- FIG. 6A a case is assumed where the CPU 101 determines whether the “ball” object 610 has hit the “bat” object 620.
- FIG. 6B a spherical approximate solid 650 is associated with the ball object 610 in advance.
- the bat object 620 is associated with a capsule-shaped approximate solid 660 in advance.
- the CPU 101 determines whether or not the approximate solid 650 and the approximate solid 660 intersect. That is, the CPU 101 determines whether one of the following two conditions is satisfied. (Condition P1) The approximate solid 650 and the approximate solid 660 are in contact with each other. (Condition Q1) There is an overlap between the spatial region occupied by the approximate solid 650 and the spatial region occupied by the approximate solid 660.
- the CPU 101 determines that the approximate solid 650 and the approximate solid 660 intersect if they are included in the approximate solid 650 and at least one point included in the approximate solid 660 exists in the virtual space. To do. Then, the CPU 101 determines that the ball object 610 and the bat object 620 are colliding.
- the CPU 101 determines that the approximate solid 650 and the approximate solid 660 are in contact with each other in an area (hereinafter referred to as “hit area”) 670. If the hit area 670 exists, it is determined that the ball object 610 and the bat object 620 collide.
- the shape of the contact area 670 may be an arbitrary planar shape such as a plane or a curved surface, or an arbitrary three-dimensional shape in addition to a point, a straight line (line segment), and a curve.
- the separation unit 202 determines whether one of the objects determined to collide is a predetermined cut object when it is determined by the collision determination unit 201 that the two objects collide.
- a disconnected object is an object that can separate, divide, and divide a collision partner object into two or more by collision.
- the cutting object may be, for example, an object 330 having an “ax” shape shown in FIG.
- the cutting object is typically an object that represents a metal with a sharp tip such as a sword, knife, ax or the like.
- the separation unit 202 separates the other object (the one that is not the cut object) determined to collide into two objects. Then, the separation unit 202 newly assigns an approximate solid 450 that approximates the object to each of the two separated objects. The collision determination process for the two separated objects is performed using the newly assigned approximate solid 450.
- the CPU 101 and the image processing unit 108 cooperate to function as the separation unit 202.
- the cut surface 740 of the approximate solid 720 is elliptical.
- the CPU 101 separates the colliding object into two.
- the CPU 101 separates the capsule-shaped approximate solid 720 into two capsule-shaped approximate solids 780 and 790, as shown in FIG. 7C.
- the CPU 101 uses the approximate solids 780 and 790 when performing the collision determination process for two objects formed by separating the original object.
- the CPU 101 divides the curved body into two. Then, the CPU 101 sets the obtained two curved bodies as approximate solids assigned to the two separated objects. It is assumed that the approximate solid 720 is associated with the colliding object.
- FIG. 8A is a diagram illustrating the cut surface 840 and the like when the angle ⁇ is larger than the first threshold ⁇ TH1 . As the angle ⁇ increases, the ratio of the minor axis to the major axis of the ellipse representing the shape of the cut surface 840 decreases.
- the CPU 101 When the angle ⁇ is larger than the predetermined first threshold ⁇ TH1 and is equal to or smaller than the predetermined second threshold ⁇ TH2 , the CPU 101 separates the object to be collided into two. At this time, the CPU 101 approximates a capsule-shaped (curved body) approximate solid 820 to a polyhedron (in this case, a dodecahedron) 870, as shown in FIG. 8B.
- the CPU 101 can approximate the approximate solid 820 not only with a dodecahedron but also with an arbitrary polyhedron.
- the CPU 101 separates the polyhedron 870 into two approximate solids 880 and 890 that are both polygons (in the case of this figure, octahedrons).
- the CPU 101 divides the polyhedron 870 that approximates the curved body into two along the cut surface 840. Then, the CPU 101 sets the obtained two polyhedrons as approximate solids 880 and 890 that are assigned to the two separated objects. It is assumed that the approximate solid 820 is associated with the colliding object. The CPU 101 uses the approximate solids 880 and 890 when performing the collision determination process for two objects formed by separating the original object.
- Approximate solids 880 and 890 after separation are polyhedrons, not curved surfaces such as capsule shapes. This is for simplifying the collision determination process and increasing the accuracy of the collision determination process for the two separated objects as much as possible. It is desirable for the CPU 101 to make the shapes of the approximate solids 880 and 890 after separation into polyhedrons as close as possible to the shapes of the objects after separation.
- FIG. 9A is a diagram illustrating the cut surface 940 and the like when the angle ⁇ is larger than the second threshold ⁇ TH2 .
- the cut surface 940 covers the hemispherical portions at both ends of the capsule shape, the cut surface 940 has a non-elliptical shape.
- the CPU 101 separates the object to be collided into two. At this time, the CPU 101 separates the capsule-shaped approximate solid 920 into two approximate solids 980 and 990 as shown in FIG. 9B. The CPU 101 divides the approximate solid 920 as if to divide a kite with an axe. Note that the two approximate solids 980 and 990 are both capsule-shaped. The CPU 101 uses the approximate solids 980 and 990 when performing the collision determination process for two objects obtained by separating the original object.
- (Case A1) 0 ⁇ ⁇ ⁇ ⁇ TH1 The capsule-shaped approximate solid 720 is separated into two capsule-shaped approximate solids 780 and 790.
- (Case B1) ⁇ TH1 ⁇ ⁇ ⁇ TH2 The capsule-shaped approximate solid 820 is separated into two polyhedral approximate solids 880 and 890.
- the CPU 101 assigns a capsule shape in which the cut surface 740 divides the approximate solid 720 to the two separated objects. More specifically, as shown in FIG. 7C, the CPU 101 sets the capsule shape having the length L1 and the capsule shape having the length L2 as approximate solids 780 and 790.
- the predetermined capsule separation condition is “the angle ⁇ formed by the capsule-shaped central axis 730 and the normal vector 750 of the cut surface 740 is equal to or smaller than the (first) threshold ⁇ TH1 and the cut surface 740 is “Cut only the side of the capsule shape”.
- the CPU 101 sets the approximated solids 880 and 890 to assign the two polyhedrons to the two separated objects as shown in FIG. 8C.
- These two polyhedrons are obtained by dividing a polyhedron 870 that approximates a capsule shape into two along the cut surface 840.
- Approximate solids associated with colliding objects are not limited to capsule shapes.
- it may be an approximate solid 1020 of a polyhedron (an octahedron in this figure).
- an approximate solid 1020 is an L-shaped object such as an arm with a bent elbow.
- the CPU 101 may associate the approximate solid that is a polyhedron with each of the two separated objects. For example, the CPU 101 may associate approximate solids 1080 and 1090 as shown in FIG. 10B with the two separated objects.
- the CPU 101 may use two approximate polyhedrons 1080 and 1090 that assign two polyhedrons to two separated objects. Note that the approximate solid 1020 is assigned to the object to be collided. The two polyhedrons are obtained by dividing the approximate solid 1020 that is a polyhedron into two along the cut surface 1040.
- the CPU 101 may associate a capsule-shaped approximate solid with each of the two separated objects.
- the CPU 101 may associate approximate solids 1180 and 1190 with the two objects, respectively.
- the CPU 101 approximates two polyhedrons obtained by dividing the polyhedron into two along the cut surface 1140 to a curved surface. Also good. Then, the CPU 101 may assign the curved body obtained by the approximation to the two separated objects. Specifically, the CPU 101 may approximate these two polyhedrons to curved surfaces such as capsule shapes. For example, as shown in FIG. 11B, the CPU 101 may assign approximate solids 1180 and 1190 to the two separated objects.
- the CPU 101 preferably associates the capsule-shaped approximate solids 1180 and 1190 with both (or one) objects obtained by cutting.
- the approximate solid 1120 associated with the object before cutting is a polygon that is not a capsule or a sphere.
- Condition Q3 The symmetry of the shapes of the approximate solids 1180 and 1190 associated with the cut object is high.
- the CPU 101 separates one object into two objects, and converts the approximate solid 720 (or 820, 920, 1020, 1120) into two approximate solids 780, 790 (or 880 and 890, 980). 990, 1080 and 1090, 1180 and 1190).
- the CPU 101 may separate one object into three or more objects and separate the approximate solid 720 (or 820, 920, 1020, 1120) into three or more approximate solids.
- the CPU 101 assigns a new approximate solid to each of the separated objects.
- the CPU 101 determines whether or not two objects collide (step S1201). When it determines with not colliding (step S1201; NO), CPU101 complete
- step S1201 If it is determined that there is a collision (step S1201; YES), the CPU 101 determines whether one of the two colliding objects is a cutting object (here, corresponding to the item object 330 in the shape of an “ax”). Is determined (step S1202).
- step S1202 If one object is not a cut object (step S1202; NO), the CPU 101 does not separate the other object. Then, the CPU 101 calculates the position and orientation after the collision of the two objects (step S1203). Next, the CPU 101 updates the information indicating the position and orientation of the two objects stored in the RAM 103 with data indicating the calculated position and orientation.
- the case of NO in step S1202 is specifically a case where the first object 310 and the second object 320 collide. For example, this is the case when one robot kicks the other robot.
- step S1202 When one object is a cut object (step S1202; YES), the CPU 101 separates the other object (step S1204).
- the case of YES in step S1202 is specifically a case where the first object 310 and the item object 330 collide, or a case where the second object 320 and the item object 330 collide. For example, this is the case when one robot swings an ax and slashes the other robot. Then, “separate the other object” means, for example, that the limb of the robot that has been cut off is bald or cut off.
- the CPU 101 determines whether or not the above capsule separation condition is satisfied (step S1205).
- the capsule separation condition is “the angle ⁇ formed by the capsule center axis and the normal vector of the cut surface is equal to or smaller than the threshold ⁇ TH1 and the cut surface is only the side surface of the capsule shape. Is to separate.
- step S1205 When it is determined that the capsule separation condition is satisfied (step S1205; YES), the CPU 101 associates capsule-shaped approximate solids 780 and 790 with the two separated objects, respectively (step S1206).
- a capsule-shaped approximate solid is associated with the robot foot.
- one robot cuts the other robot's leg vertically with an ax and the leg is cut into two parts like a slice, a new capsule-shaped approximate solid is newly added to the broken leg. It is associated.
- whether or not the separated object collides with another object is determined by whether or not the newly associated approximate solid and the approximate solid associated with the other object collide. Specifically, when one of the robots cuts again on the cut leg, it is determined whether or not the separated object collides with another object.
- step S1205 When it is determined that the capsule separation condition is not satisfied (step S1205; NO), the CPU 101 associates polyhedral approximate solids 880 and 890 with the two separated objects, respectively (step S1207). In this case, the CPU 101 does not associate the capsule-shaped curved body with the two separated objects.
- a capsule-shaped approximate solid is associated with the robot foot.
- one robot slashes the other robot's leg diagonally with an ax and the legs are distorted.
- a polyhedral approximate solid that is not a capsule shape is newly associated with the cut leg.
- the collision determination between objects is performed based on whether or not the approximate solids associated with the objects collide with each other.
- some or all of the rounded objects are associated with approximate solids with high symmetry, such as a capsule shape, in which the collision determination process is simplified. If a shape having a relatively large symmetry such as a capsule shape is used, there is an advantage that the calculation amount of the collision determination process and the memory consumption amount can be suppressed as much as possible.
- the approximate solid after cutting may lose symmetry and become a complicated shape.
- a polyhedron such as an octahedron or a dodecahedron is associated with the object as an approximate solid, and this approximate solid is used for collision determination. If the approximate solid is made into a polyhedron, there is an advantage that the accuracy of the collision determination process may increase. In addition, when the approximate solid is a polyhedron, there is an advantage that the amount of calculation of the shape of the object after cutting and the memory consumption are small. As described above, according to the present embodiment, collision determination between objects is facilitated by changing the collision determination graphic according to the situation, and the advantage of using the capsule-shaped approximate solid and the approximate solid of the polyhedron You will be able to enjoy both the benefits and benefits of using
- the cut surface 1340 of the approximate solid 1320 is typically elliptical. is there.
- the CPU 101 separates the object to be collided into two.
- the CPU 101 separates the cylindrical approximate solid 1320 into two approximate solids 1380 and 1390 that are both cylindrical.
- the CPU 101 uses the approximate solids 1380 and 1390 when performing the collision determination process for two objects formed by separating the original object.
- the CPU 101 divides the curved body into two. Then, the CPU 101 sets the two curved bodies obtained by the division as approximate solids 1380 and 1390 that are assigned to the two separated objects.
- FIG. 14A is a diagram illustrating the cut surface 1440 and the like when the angle ⁇ is larger than the first threshold ⁇ TH1 . As the angle ⁇ increases, the ratio of the minor axis to the major axis of the ellipse representing the shape of the cut surface 1440 decreases.
- the CPU 101 When the angle ⁇ is larger than the predetermined first threshold ⁇ TH1 and equal to or smaller than the predetermined second threshold ⁇ TH2 , the CPU 101 separates the object to be collided into two. At this time, as shown in FIG. 14B, the CPU 101 approximates a cylindrical (curved surface) approximate solid 1420 to a polyhedron (an octahedron such as a pencil in the case of this figure) 1470.
- the CPU 101 can approximate the approximate solid 1420 with an arbitrary polyhedron as well as an octahedron.
- the CPU 101 separates the polyhedron 1470 into two approximate solids 1480 and 1490 that are both polygons (in the case of this figure, 7-hedrons).
- the CPU 101 divides the polyhedron 1470 that approximates the curved body into two along the cut surface 1440. Then, the CPU 101 sets the two polyhedrons obtained by the division as approximate solids assigned to the two separated objects. It is assumed that the approximate solid 1420 is associated with the colliding object. The CPU 101 uses the approximate solids 1480 and 1490 when performing further collision determination processing on two objects formed by separating the original object.
- the approximate solids 1480 and 1490 after separation are not polyhedral but cylindrical. Therefore, while simplifying the collision determination process, it is possible to increase the accuracy of the collision determination process for the two separated objects as much as possible. It is desirable for the CPU 101 to make the shapes of the approximate solids 1480 and 1490 after separation into polyhedrons that are as close as possible to the shapes of the objects after separation.
- FIG. 15A is a diagram illustrating a cut surface 1540 and the like when the angle ⁇ is further larger than the second threshold ⁇ TH2 .
- the cut surface 1540 When the cut surface 1540 is applied to the cylindrical bottom surface, the cut surface 1540 has a non-elliptical shape.
- the CPU 101 separates the object to be collided into two.
- the CPU 101 separates the cylindrical approximate solid 1520 into two approximate solids 1580 and 1590 that are both cylindrical.
- the CPU 101 uses the approximate solids 1580 and 1590 when performing the collision determination process for two objects obtained by separating the original object.
- (Case A2) 0 ⁇ ⁇ ⁇ ⁇ TH1 The cylindrical approximate solid 1320 is separated into two cylindrical approximate solids 1380 and 1390.
- (Case B2) ⁇ TH1 ⁇ ⁇ ⁇ TH2 The cylindrical approximate solid 1420 is separated into two polyhedral approximate solids 1480 and 1490.
- the CPU 101 assigns to the two separated objects a cylindrical shape that is formed by dividing the cylindrical shape of the cut surface 1340. More specifically, as shown in FIG. 13C, the CPU 101 sets the cylindrical shape having a length L3 and the cylindrical shape having a length L4 as approximate solids 1380 and 1390.
- the predetermined cylinder separation condition is “the angle ⁇ formed between the central axis 1330 of the cylinder and the normal vector 1350 of the cut surface 1340 is equal to or less than a predetermined threshold ⁇ TH1 and the cut surface 1340 cuts only the side surface of the cylinder To do.
- the CPU 101 sets the approximate solids 1480 and 1490 to assign the two polyhedrons to the two separated objects as shown in FIG. 14C.
- the two polyhedrons are obtained by dividing a polyhedron 1470 that approximates a cylindrical shape into two along the cut surface 1440.
- a part or all of a rounded object is associated with an approximate solid having high symmetry such as a cylindrical shape.
- the collision determination process is further simplified. Therefore, by using a shape having a relatively large symmetry such as a cylindrical shape, there is an advantage that it is possible to suppress the calculation amount and memory consumption amount of the collision determination process as much as possible.
- the symmetry of the approximate solid after cutting may be lost, and the approximate solid may have a complicated shape.
- a polyhedron such as an octahedron or a dodecahedron is associated with the object as an approximate solid, and this approximate solid is used for collision determination.
- this approximate solid is used for collision determination.
- the collision determination graphic is changed according to the situation to facilitate the collision determination between objects, and the advantage of using a cylindrical approximate solid and the approximate solid of a polyhedron You will be able to enjoy both the benefits and benefits of using
- the shape of the approximate solid associated with the object to be cut is a sphere.
- the object associated with the approximate solid 1610 in FIG. 16A moves in the direction of arrow Y3 and collides with the object associated with the approximate solid 1620.
- the other object is separated into two.
- the cut surface 1640 of the approximate solid 1620 is circular.
- the CPU 101 approximates a spherical (curved surface) approximate solid 1620 to a polyhedron (in the case of this figure, an octahedron) 1670 as shown in FIG. 16C.
- the CPU 101 can approximate the approximate solid 1620 not only with an octahedron but also with an arbitrary polyhedron.
- the CPU 101 separates the polyhedron 1670 into two approximate solids 1680 and 1690 that are both polyhedrons (in this case, pentahedrons such as pyramids).
- the CPU 101 divides the octahedron that approximates a sphere into two along the cut surface 1640. Then, the CPU 101 sets the obtained two polyhedrons as approximate solids 1680 and 1690 assigned to the two separated objects.
- a part or all of a rounded object is associated with an approximate solid having high symmetry such as a sphere.
- the collision determination process is further simplified. Therefore, by using a shape having a relatively large symmetry such as a spherical shape, it is possible to obtain an advantage that the calculation amount and memory consumption amount of the collision determination process can be suppressed as much as possible.
- the object is cut at an arbitrary cutting plane, the symmetry of the approximate solid after cutting is broken.
- a polyhedron such as a pentahedron is associated with the object as an approximate solid for the object after cutting, and this approximate solid is used for collision determination.
- the collision determination graphic is changed according to the situation to facilitate the collision determination between objects, and the advantage of using a spherical approximate solid and the polyhedral approximate solid You will be able to enjoy both the benefits and benefits of using them.
- the present invention is not limited to the above-described embodiments, and various modifications and applications are possible. Moreover, it is also possible to freely combine the components of the above-described embodiments.
- the approximate solid 1720 partially deforms (dents) by colliding with the approximate solid 1710.
- the deformed approximate solid 1730 has a complicated shape.
- the calculation amount may become enormous.
- the CPU 101 associates three approximate solids 1770, 1780, and 1790 with the deformed object.
- a shape having a relatively large symmetry such as a capsule shape is used. Therefore, it is possible to suppress the calculation amount and memory consumption of the collision determination process as much as possible.
- the shape of the approximate solid that is associated with the deformed object is not limited to the capsule shape, and may be a curved surface such as a cylinder or a sphere. Further, the shape of the approximate solid associated with the deformed object may be a polyhedron such as an octahedron or a dodecahedron. The number and combination of approximate solids associated with the deformed object are arbitrary.
- a program for operating a computer as all or part of the above-described game apparatus 200 is stored and distributed in a computer-readable recording medium such as a memory card, CD-ROM, DVD, MO (Magneto Optical disk), This may be installed in another computer and operated as the above-described means, or the above-described steps may be executed.
- a computer-readable recording medium such as a memory card, CD-ROM, DVD, MO (Magneto Optical disk).
- the program may be stored in a disk device or the like of a server device on the Internet, and may be downloaded onto a computer by being superimposed on a carrier wave, for example.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
仮想空間に配置されるオブジェクトには、オブジェクトの形状を近似する近似立体が対応付けられる。ゲーム装置(200)において、衝突判定部(201)は、オブジェクト同士が衝突するか否かを、近似立体同士が交差するか否かにより判定する。分離部(202)は、衝突により分離されるべきオブジェクトに対応付けられる近似立体が多面体である場合、切断面に沿って分割することにより得られた2つの多面体を、分離された2つのオブジェクトのそれぞれに対応付ける。また、分離部(202)は、衝突により分離されるべきオブジェクトに対応付けられる近似立体が曲面体である場合、曲面体を多面体に近似し、この多面体を切断面に沿って分割される2つの多面体を、分離された2つのオブジェクトのそれぞれに対応付ける。
Description
本発明は、オブジェクト同士の衝突判定を容易にすることが可能なゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラムに関する。
仮想空間に配置されるオブジェクト同士の衝突判定を行う際、各オブジェクトを球体等の立体形状で近似する技術がある。このような技術においては、一般的には、これらの近似立体形状同士が重複しているか否かによって、オブジェクト同士が衝突するか否かが判定される。例えば、特許文献1には、犬オブジェクトの衝突判定において、犬オブジェクトの衝突判定領域として球体の図形が設定され、犬の姿勢に応じて球体の位置が変わる技術が開示されている。
ところで、オブジェクト同士が衝突することによって、オブジェクトの一方もしくは両方が変形したり分離したりすることがある。しかしながら、従来技術によれば、オブジェクトが変形もしくは分離すると、衝突判定に用いる立体形状が複雑になってしまうことがある。その結果、衝突判定の処理が重くなってしまったりメモリ消費量が多くなってしまったりするという問題があった。
本発明はこのような課題を解決するものであり、オブジェクト同士の衝突判定を容易にすることが可能なゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラムを提供することを目的とする。
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
本発明の第1の観点に係るゲーム装置は、衝突判定部と分離部を備える。
衝突判定部は、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
分離部は、衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
衝突判定部は、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
分離部は、衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
本発明のゲーム装置が扱う仮想空間内には、複数のオブジェクトが含まれる。例えば、格闘ゲームの中には、2人のプレイヤーがキャラクターオブジェクトを操って対戦するものもある。このようなゲームにおいては、それぞれのプレイヤーに対応付けられるキャラクターオブジェクトが仮想空間に配置される。ただし、ゲーム内容は本発明によって限定されない。
各オブジェクトの位置と姿勢は、プレイヤーの指示に応じて、もしくは、所定のアルゴリズムに従って、変化する。例えば格闘ゲームにおいて、一方のキャラクターオブジェクトが他方のキャラクターオブジェクトにキックやパンチ等の技を仕掛けると、一方のキャラクターオブジェクトの手足が他方のキャラクターオブジェクトに接触する。このように2つのキャラクターオブジェクト同士が接触することを一般に「衝突」とも表現する。
ゲーム装置は、2つのオブジェクト同士が衝突するか否かを判定しながらゲームを進行させる。本発明では、それぞれのオブジェクトには、オブジェクトの形状を近似する図形(以下「近似立体」という。)が対応付けられる。2つのオブジェクト同士が衝突するか否かの判断は、それぞれのオブジェクトに対応付けられる近似立体同士が交差するか否かに基づいてなされることになる。近似立体の形状は、例えば、カプセル形、円柱形、球形のような曲面体や、4面体、8面体、12面体のような多面体である。
仮想空間内に配置されるオブジェクトには、他のオブジェクトを切断できる形状のオブジェクトも含まれる。他のオブジェクトを切断することが可能な形状をもつオブジェクトを「切断オブジェクト」という。切断オブジェクトは、例えば、刃物や薄い板状の物体などであってもよい。2つのオブジェクトが衝突する場合において、一方のオブジェクトが切断オブジェクトであるとする。このような場合、これらのオブジェクトの位置と姿勢が変化するだけでなく、他方のオブジェクトが切断オブジェクトによって切断(分離)されることがある。
本発明では、あるオブジェクトが切断オブジェクトによって切断される際、切断されるべきオブジェクトに対応付けられる近似立体が多面体か曲面体かによって、分離後(切断後)のオブジェクトに新たに対応付けられる近似立体の形状を変える。
すなわち、切断されるべきオブジェクトに対応付けられる近似立体が多面体であれば、その多面体を切断面で切断して得られる近似立体のそれぞれが、分離後のオブジェクトのそれぞれに対応付けられる。
一方、切断されるべきオブジェクトに対応付けられる近似立体が曲面体であれば、まず、その曲面体を多面体に近似する。例えば、切断されるべきオブジェクトに対応付けられる近似立体が球形である場合、近似立体は8面体などの多面体に近似される。その後、近似して得られた多面体が切断面で切断される。そして、得られる多面体のそれぞれが、分離後のオブジェクトに対応付けられる。分離後のオブジェクトに関して衝突判定を行う際には、新たに対応付けられた近似立体を用いて衝突判定がなされる。
本発明によれば、衝突判定処理がより簡略化される曲面体の近似立体と、オブジェクトの形状に合わせてより正確な衝突判定処理が可能になる多面体の近似立体と、のそれぞれのメリットを享受できるように使い分けられ、オブジェクト同士の衝突判定を容易にすることができる。
曲面体には、カプセル形が含まれていてもよい。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(c)カプセル形であって、所定のカプセル分離条件を満たす場合、当該切断面が当該カプセル形の中心軸を分割した長さの2つのカプセル形を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(d)カプセル形であって、所定のカプセル分離条件を満たさない場合、カプセル形を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体としてもよい。
カプセル分離条件は、当該カプセル形の中心軸と当該切断面の法線とのなす角度が所定の閾値以下であり、当該切断面が当該カプセル形の側面のみを切断する場合に満たされる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(c)カプセル形であって、所定のカプセル分離条件を満たす場合、当該切断面が当該カプセル形の中心軸を分割した長さの2つのカプセル形を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(d)カプセル形であって、所定のカプセル分離条件を満たさない場合、カプセル形を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体としてもよい。
カプセル分離条件は、当該カプセル形の中心軸と当該切断面の法線とのなす角度が所定の閾値以下であり、当該切断面が当該カプセル形の側面のみを切断する場合に満たされる。
ここで、カプセル形とは、円柱形の両端のそれぞれに半球を接合した図形のことである。近似立体をカプセル形にすると、図形の対称性から、衝突判定を簡略化できるメリットがある。一方、カプセル形の近似立体を切断するとき、切断する角度や切断する箇所によっては、分離後の近似立体の形状が複雑になる恐れがある。
そこで本発明では、切断する角度が浅く、且つ、カプセル形の側面(円柱部分)のみを切断する場合には、分離後の近似立体もカプセル形とする。一方、そうでない場合には、分離後の近似立体は8面体や12面体などの多面体とする。
本発明によれば、衝突判定処理がより簡略化されるカプセル形の近似立体と、オブジェクトの形状に合わせてより正確な衝突判定処理が可能になる多面体の近似立体と、のそれぞれのメリットを享受できるように使い分けられ、オブジェクト同士の衝突判定を容易にすることができる。
そこで本発明では、切断する角度が浅く、且つ、カプセル形の側面(円柱部分)のみを切断する場合には、分離後の近似立体もカプセル形とする。一方、そうでない場合には、分離後の近似立体は8面体や12面体などの多面体とする。
本発明によれば、衝突判定処理がより簡略化されるカプセル形の近似立体と、オブジェクトの形状に合わせてより正確な衝突判定処理が可能になる多面体の近似立体と、のそれぞれのメリットを享受できるように使い分けられ、オブジェクト同士の衝突判定を容易にすることができる。
曲面体には、円柱が含まれていてもよい。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(e)円柱であって、所定の円柱分離条件を満たす場合、当該切断面が当該円柱の中心軸を分割した長さの2つの円柱を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(f)円柱であって、所定の円柱分離条件を満たさない場合、円柱を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体としてもよい。
円柱分離条件は、当該円柱の中心軸と当該切断面の法線とのなす角度が所定の閾値以下であり、当該切断面が当該円柱の側面のみを切断する場合に満たされる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(e)円柱であって、所定の円柱分離条件を満たす場合、当該切断面が当該円柱の中心軸を分割した長さの2つの円柱を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(f)円柱であって、所定の円柱分離条件を満たさない場合、円柱を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体としてもよい。
円柱分離条件は、当該円柱の中心軸と当該切断面の法線とのなす角度が所定の閾値以下であり、当該切断面が当該円柱の側面のみを切断する場合に満たされる。
近似立体が円柱形である場合、図形の対称性から、衝突判定を簡略化できるメリットがある。一方、円柱形の近似立体が切断される場合、切断する角度や切断する箇所によっては、分離後の近似立体の形状が複雑になる恐れがある。
そこで本発明では、切断する角度が浅く、且つ、円柱形の側面のみを切断する場合には、分離後の近似立体も円柱形とする。一方、そうでない場合には、分離後の近似立体は8面体や12面体などの多面体とする。
本発明によれば、衝突判定処理がより簡略化される円柱形の近似立体と、オブジェクトの形状に合わせてより正確な衝突判定処理が可能になる多面体の近似立体と、のそれぞれのメリットを享受できるように使い分けられ、オブジェクト同士の衝突判定を容易にすることができる。
そこで本発明では、切断する角度が浅く、且つ、円柱形の側面のみを切断する場合には、分離後の近似立体も円柱形とする。一方、そうでない場合には、分離後の近似立体は8面体や12面体などの多面体とする。
本発明によれば、衝突判定処理がより簡略化される円柱形の近似立体と、オブジェクトの形状に合わせてより正確な衝突判定処理が可能になる多面体の近似立体と、のそれぞれのメリットを享受できるように使い分けられ、オブジェクト同士の衝突判定を容易にすることができる。
曲面体には、球形が含まれていてもよい。
そして、分離部は、球形を近似する八面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体としてもよい。
そして、分離部は、球形を近似する八面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体としてもよい。
本発明では、切断されるべきオブジェクトに対応付けられる近似立体が球形の場合には、近似立体は、球形から8面体などのような多面体に更に近似される。そして、近似して得られた多面体を切断して得られる多面体が、分離後の近似立体となる。
本発明によれば、衝突判定処理がより簡略化される球形の近似立体と、オブジェクトの形状に合わせてより正確な衝突判定処理が可能になる多面体の近似立体と、のそれぞれのメリットを享受できるように使い分けられ、オブジェクト同士の衝突判定を容易にすることができる。
本発明によれば、衝突判定処理がより簡略化される球形の近似立体と、オブジェクトの形状に合わせてより正確な衝突判定処理が可能になる多面体の近似立体と、のそれぞれのメリットを享受できるように使い分けられ、オブジェクト同士の衝突判定を容易にすることができる。
分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が多面体であって、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体の少なくとも一方の対称性が大きい場合、当該分離された2つのオブジェクトに割り当てられる多面体を近似する曲面体を近似立体としてもよい。
すなわち、分離前の近似立体が多面体であって、分離後の近似立体が多面体である場合に、分離前よりも分離後のほうが近似立体の対称性が増すことがある。このとき、本発明では、分離後の近似立体を、カプセル形・円柱形・球形のような曲面体に入れ替える。本発明によれば、オブジェクト同士の衝突判定を容易にすることができる。
本発明のその他の観点に係るゲーム処理方法は、衝突判定部と分離部を有するゲーム装置において実行されるゲーム処理方法であって、衝突判定ステップと分離ステップを備える。
衝突判定ステップでは、衝突判定部が、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
分離ステップでは、衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、分離部が、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離ステップでは、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
衝突判定ステップでは、衝突判定部が、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
分離ステップでは、衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、分離部が、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離ステップでは、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
本発明によれば、オブジェクト同士の衝突判定を容易にすることができる。
本発明のその他の観点に係る情報記憶媒体は、コンピュータを、衝突判定部と分離部として機能させるプログラムを記憶する。
衝突判定部は、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、分離部は、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
衝突判定部は、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、分離部は、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
本発明のその他の観点に係るプログラムは、コンピュータを、衝突判定部と分離部として機能させる。
衝突判定部は、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、分離部は、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
衝突判定部は、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する。
衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、分離部は、衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる。
オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれる。
そして、分離部は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする。
本発明によれば、コンピュータを上述のように動作するゲーム装置として機能させることができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
上記プログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
本発明によれば、オブジェクト同士の衝突判定を容易にすることが可能なゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラムを提供することができる。
本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下の実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
(実施形態1)
図1は、プログラムを実行することにより、本発明のゲーム装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。以下、本図を参照して説明する。
図1は、プログラムを実行することにより、本発明のゲーム装置の機能を果たす典型的な情報処理装置100の概要構成を示す模式図である。以下、本図を参照して説明する。
情報処理装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、インターフェース104と、コントローラ105と、外部メモリ106と、DVD-ROM(Digital Versatile Disk - Read Only Memory)ドライブ107と、画像処理部108と、音声処理部109と、NIC(Network Interface Card)110と、を備える。
まず、プレイヤーは、ゲーム用のプログラムおよびデータを記憶したDVD-ROMをDVD-ROMドライブ107に装着する。次いで、プレイヤーは、情報処理装置100の電源を投入する。すると、当該プログラムが実行され、本実施形態のゲーム装置が実現される。
CPU 101は、情報処理装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。また、CPU 101は、レジスタ(図示せず)という高速アクセスが可能な記憶域を備える。CPU 101は、レジスタに対してALU(Arithmetic Logic Unit)(図示せず)を用いて、各種演算を行うことができる。行われる演算は、例えば、加減乗除等の算術演算や、論理和、論理積、論理否定等の論理演算、ビット和、ビット積、ビット反転、ビットシフト、ビット回転等のビット演算などである。さらに、CPU 101は、マルチメディア処理対応のための加減乗除等の飽和演算や、三角関数等、ベクトル演算などを高速に行えるように構成されていてもよい。また、CPU 101は、コプロセッサを備えることにより、このような高速演算を実現してもよい。
ROM 102には、電源投入直後に実行されるIPL(Initial Program Loader)が記録されている。IPLが実行されることにより、DVD-ROMに記録されたプログラムは、RAM 103に読み出される。次いで、CPU 101による当該プログラムの実行が開始される。また、ROM 102には、情報処理装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録されている。
RAM 103は、データやプログラムを一時的に記憶する。RAM 103には、DVD-ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータが保持される。また、CPU 101は、RAM 103に変数領域を設ける。CPU 101は、当該変数に格納された値に対して直接ALUを作用させて演算してもよい。また、CPU 101は、RAM 103に格納された値を一旦レジスタに格納してからレジスタに対して演算を行い、演算結果をRAM 103に書き戻してもよい。
コントローラ105は、インターフェース104を介して接続される。コントローラ105は、ダンスゲームやサッカーゲームなどのゲームの実行の際にプレイヤーにより行われる操作入力を受け付ける。インターフェース104には、複数のコントローラ105が接続されていてもよい。
外部メモリ106は、インターフェース104を介して着脱自在に接続される。外部メモリ106には、ゲーム等のプレイ状況(過去の成績等)を示すデータ、ゲームの進行状態を示すデータ、ネットワークを用いたゲームのチャット通信のログ(記録)のデータなどが記憶される。外部メモリ106は書き換え可能である。プレイヤーがコントローラ105を介して必要な指示入力を行うと、これらのデータは適宜外部メモリ106に記録される。
DVD-ROMドライブ107に装着されるDVD-ROMには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD-ROMドライブ107は、装着されたDVD-ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出す。読み出されたプログラムやデータは、RAM 103等に一時的に記憶される。
画像処理部108は、まず、DVD-ROMから読み出されたデータをCPU 101や画像処理部108が備える画像演算プロセッサ(図示せず)によって加工処理する。次いで、画像処理部108は、加工処理により得た画像情報を、フレームメモリ(図示せず)に記録する。フレームメモリは、画像処理部108に搭載されている。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され、画像処理部108に接続されるモニター(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想空間が3次元にて構成される場合には、画像演算プロセッサは、レンダリング画像を得る演算を高速実行することも可能である。レンダリング画像は、所定の視点位置から仮想3次元空間に配置されたポリゴンを所定の視線の方向へ俯瞰した画像である。レンダリング画像は、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法などによりレンダリングすることにより得られる。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、フォント情報にしたがって、文字列を2次元画像として描画することが可能である。なお、フォント情報は、文字の形状を定義する。文字列を表す画像は、フレームメモリや各ポリゴン表面へ描画される。
また、ゲームの画像等の情報がDVD-ROMに用意されてもよい。当該画像等の情報がフレームメモリに展開されると、ゲームの様子などを画面に表示することができるようになる。
音声処理部109は、DVD-ROMから読み出した音声データをアナログ音声信号に変換し、接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、音声処理部109は、ゲームの進行の中で発生させるべき効果音や楽曲データを生成する。次いで、音声処理部109は、生成した音声データに対応した音声をスピーカから出力させる。
DVD-ROMに記録された音声データがMIDIデータである場合には、音声処理部109は、音源データを参照して、MIDIデータをPCMデータに変換する。なお、音声処理部109は、MIDI音源データを有する。また、当該音声データがADPCM(Adaptive Differential Pulse Code Modulation)形式やOgg Vorbis形式等の圧縮済音声データである場合には、音声処理部109は、これを展開してPCMデータに変換する。PCMデータを、そのサンプリング周波数に応じたタイミングでD/A(Digital/Analog)変換し、スピーカに出力することにより、音声出力が可能となる。
NIC 110は、インターネット接続機器(図示せず)と、CPU 101との仲立ちを行うインターフェースである。NIC 110は、情報処理装置100をインターネット等のコンピュータ通信網(図示せず)に接続する際に用いられる。インターネット接続機器は、例えば、LAN(Local Area Network)を構成する際に用いられる10BASE-T/100BASE-T規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等であってもよい。
このほか、情報処理装置100においては、ハードディスク等の大容量外部記憶装置が、ROM 102、RAM 103、外部メモリ106、DVD-ROMドライブ107に装着されるDVD-ROM等と同じ機能を果たすように構成することも可能である。
次に、上記構成を有する情報処理装置100により実現される、本実施形態のゲーム装置200の機能的な構成等について説明する。
ゲーム装置200は、3次元仮想空間内に配置されるキャラクターオブジェクト(以下「オブジェクト」という。)の位置や姿勢を変化させて、ゲームを進行させる。ゲーム装置200は、プレイヤーからの指示に基づいて、あるいはCPU 101が実行する所定のアルゴリズムに基づいて、オブジェクトの位置や姿勢を変化させる。ゲーム内容は本発明によって限定されない。本実施形態では、仮想空間内においてプレイヤーもしくはゲーム装置200が操る2つのロボット同士が対戦するゲームを例にとって説明する。
図2は、本実施形態のゲーム装置200の機能的な構成を示す図である。ゲーム装置200は、衝突判定部201と分離部202を備える。
図3は、3次元仮想空間の様子を表す画像の構成例である。仮想空間内には、第1プレイヤーにより操作される第1オブジェクト310、第2プレイヤーにより操作される第2オブジェクト320、アイテムオブジェクト330などが配置される。CPU 101は、第1オブジェクト310の位置と姿勢を示す情報、第2オブジェクト320の位置と姿勢を示す情報、アイテムオブジェクト330の位置と姿勢を示す情報をRAM 103に記憶する。そして、CPU 101は、ゲーム進行に応じて随時これらの情報を更新する。CPU 101は、プレイヤーからの指示若しくは所定のアルゴリズムに基づいて、オブジェクトの位置と姿勢を任意に変えることができる。すなわち、CPU 101は、第1オブジェクト310、第2オブジェクト320、及びアイテムオブジェクト330の位置と姿勢を任意に変えることができる。
それぞれのオブジェクトの位置は、仮想空間内に定義されるグローバル座標系における座標値で表される。それぞれのオブジェクトの姿勢は、グローバル座標系におけるベクトルもしくは座標値の組み合わせで表される。グローバル座標系として、典型的には、極座標系やデカルト座標系が用いられる。
また、仮想空間内には、この仮想空間を撮影する仮想カメラ(以下「視点」という。)が配置される。CPU 101は、プレイヤーからの指示若しくは所定のアルゴリズムに基づいて、仮想カメラの位置(以下「視点の位置」という。)を任意に変えることができる。また、CPU 101は、プレイヤーからの指示若しくは所定のアルゴリズムに基づいて、仮想カメラの向き(以下「視線の向き」という。)を任意に変えることができる。CPU 101は、視点の位置を示す情報と視線の向きを示す情報をRAM 103に記憶し、これらの情報を随時更新する。
CPU 101は、画像処理部108を制御して、図3に示すような、投影画像を生成する。投影画像は、視点の位置から視線の向きへ仮想空間を眺めた様子を所定の投影面に投影することにより得られる。次いで、CPU 101は、得られた投影画像をモニターの画面に表示させる。例えば、CPU 101と画像処理部108は、垂直同期(VSYNC)割り込み処理において投影画像を生成し、モニターに表示させる。プレイヤーは、VSYNCごとに更新される投影画像、つまりアニメーション画像を見ることができる。
例えば、第1オブジェクト310と第2オブジェクト320とが格闘するゲームにおいて、CPU 101は、プレイヤーからの指示若しくは所定のアルゴリズムに基づいて、オブジェクトの位置と姿勢を変化させる。すなわち、CPU 101は、ゲームの進行に応じて、第1オブジェクト310の位置と姿勢、及び、第2オブジェクト320の位置と姿勢を変化させる。CPU 101は、第1オブジェクト310と第2オブジェクト320が衝突するか否かを判別する。なお、CPU 101は、第1オブジェクト310の位置と姿勢、及び、第2オブジェクト320の位置と姿勢に基づいて、判別する。
ここで言う衝突とは、第1オブジェクト310により占められる空間的領域と第2オブジェクト320により占められる空間的領域とが交差する(重なる)部分があること、もしくは、これらが接触する部分があることである。例えば、第1オブジェクト310の“手”が第2オブジェクト320の“頭”に触れることを、第1オブジェクト310と第2オブジェクト320とが衝突する、と表現する。
CPU 101と画像処理部108は、第1オブジェクト310と第2オブジェクト320とが衝突するか否かを判定する処理(以下「衝突判定処理」という。)を、VSYNC割り込みなどの定期的なタイミングで実行する。
第1オブジェクト310及び/又は第2オブジェクト320が複雑な形状をしている場合、衝突判定処理を厳密に行おうとすると、計算量やメモリ消費量が膨大になる恐れがある。第1オブジェクト310と第2オブジェクト320のほかに多くの他のオブジェクトが仮想空間内に配置されている場合も同様である。そこで、本発明では、1つのオブジェクトに1つ又は複数の近似立体を対応付ける。そして、近似立体同士が衝突するか否かに基づいて、オブジェクト同士が衝突するか否かを判定する。したがって、衝突判定処理の計算量やメモリ消費量を抑えることが可能となっている。
図4は、第1オブジェクト310(第2オブジェクト320、アイテムオブジェクト330でもよい)の一部分を例にとって、近似立体について説明するための図である。第1オブジェクト310には、1つ以上の近似立体450が割り当てられる。例えば、図4に示した例では、第1オブジェクト310の腕に、450A,450B,450Cの3つの近似立体が割り当てられている。
近似立体450を組み合わせてできる立体の形状が、第1オブジェクト310の輪郭400の形状とおおよそ等しくなるようにすることが望ましい。
近似立体450を組み合わせてできる立体の形状が、第1オブジェクト310の輪郭400の形状とおおよそ等しくなるようにすることが望ましい。
近似立体450は、CPU 101が衝突判定処理を行うために用いる図形であり、モニターには表示されない。
近似立体450の数を増やしたり近似立体450の形状を輪郭400に近づけたりすることによって、より正確な衝突判定処理を行うことが可能になる。しかしながら、計算量やメモリ消費量を減らすためには、なるべく近似立体450の数を減らすか、あるいはなるべく近似立体450の形状を簡略化することが望ましい。
図5A~図5Eは、近似立体450の形状の具体例を示す図である。
図5Aに示す近似立体450の形状は「カプセル形」である。カプセル形は、半径RAの半球と、底面が半径RAの円形で高さ(長さ)がLAの円柱と、を組み合わせてできる形状である。
図5Aに示す近似立体450の形状は「カプセル形」である。カプセル形は、半径RAの半球と、底面が半径RAの円形で高さ(長さ)がLAの円柱と、を組み合わせてできる形状である。
カプセル形の両端(図5Aの場合、半球の部分)は、典型的には同一の形状であるが、同一でなくてもよい。また、半球の代わりに、球の任意の一部分や、お皿や凸レンズや凹レンズのような曲面が用いられてもよい。
図5Bに示す近似立体450の形状は、半径RBの「球」である。球形は、半径RBの半球と、底面が半径RBの円形で高さがLAの円柱と、を組み合わせてできるカプセル形において、“LA=0”としたときのカプセル形とみなされる。
カプセル形や球形は、形状に対称性があり、また、比較的簡単に形状を数式で表しやすい。したがって、カプセル形や球形は、衝突判定処理を効率良く簡略化できる形状であると言える。衝突判定処理の簡略化のためには、CPU 101が、近似立体450の形状を、なるべくカプセル形もしくは球形にすることが望ましい。対称性(シンメトリー)とは、例えば、点対称、線対称、面対称などのことである。対称性の大きさの度合いは、形状が、点対称、線対称、面対称のうちのいくつを満たすかによって表される。例えば、CPU 101は、線対称の軸となる線が何本引けるか、面対称の“鏡”となる面がいくつ存在するかを計算する。そして、CPU 101は、得られた数が多いほど対称性が大きいと判断する。
近似立体450の形状は、カプセル形、球形のほか、任意の曲面で囲まれる曲面体であってもよい。
図5Cに示す近似立体450の形状は、底面が半径RCの円で、高さがLBの、「円柱」である。
図5Dに示す近似立体450の形状は、「直方体」である。図5Eに示す近似立体450の形状は、「8面体」である。図示したこれらの形状のほか、様々な多面体を近似立体450とすることができる。
近似立体450の形状は、3次元の形状をもつ立体図形だけでなく、2次元の形状をもつ図形や、1次元の形状をもつ図形でもよい。例えば、近似立体450は、平面の一部又は全部、曲面の一部又は全部、直線の一部又は全部、曲線の一部又は全部、で表される図形でもよい。2次元や1次元の図形は、一般的な数学的概念では“立体”ではない。しかしながら、本実施形態では、3次元の図形、2次元の図形、1次元の図形を総称して“立体”と呼ぶことにする。
CPU 101は、様々な形状を有する複数の近似立体450を組み合わせて、第1オブジェクト310に対応付けることができる。例えば、指の末節にはカプセル形、指の中節には円柱形、といったように、形状が異なる複数の近似立体450を組み合わせることができる。第2オブジェクト320、アイテムオブジェクト330、その他図示しない任意のオブジェクトについても同様である。
次に、ゲーム装置200の衝突判定部201と分離部202の詳細について説明する。
衝突判定部201は、仮想空間内に配置されるオブジェクト同士が衝突するか否かを、オブジェクトのそれぞれに割り当てられる近似立体450同士が交差するか否かにより判定する。本実施形態では、判定の対象となるオブジェクトは、第1オブジェクト310と第2オブジェクト320とアイテムオブジェクト330のいずれか2つとする。CPU 101と画像処理部108が協働して衝突判定部201として機能する。
衝突判定部201が行う衝突判定処理について、図6A,6Bを用いて説明する。例えば、図6Aに示すように、CPU 101が、“ボール”オブジェクト610に、“バット”オブジェクト620が当たったか否かを判定する場合を想定する。図6Bに示すように、ボールオブジェクト610には球形の近似立体650が予め対応付けられている。また、バットオブジェクト620にはカプセル形の近似立体660が予め対応付けられている。
CPU 101は、例えばVSYNC割り込み処理において、近似立体650と近似立体660とが交差するか否かを判別する。すなわち、CPU 101は、以下の2つの条件のうち、いずれかが満たされるか判別する。
(条件P1)近似立体650と近似立体660とが接触すること。
(条件Q1)近似立体650が占める空間的領域と近似立体660が占める空間的領域とに重なりがあること。
(条件P1)近似立体650と近似立体660とが接触すること。
(条件Q1)近似立体650が占める空間的領域と近似立体660が占める空間的領域とに重なりがあること。
CPU 101は、近似立体650内に含まれ、且つ、近似立体660内に含まれる点が仮想空間内に少なくとも1つ以上存在する場合、近似立体650と近似立体660とが交差していると判定する。そして、CPU 101は、ボールオブジェクト610とバットオブジェクト620が衝突していると判定する。
図6Bの場合、CPU 101は、近似立体650と近似立体660は、領域(以下「当たり領域」という。)670において接触している、と判別する。当たり領域670が存在すれば、ボールオブジェクト610とバットオブジェクト620は衝突していると判定される。当たり領域670の形状は、点、直線(線分)、曲線のほか、平面や曲面のような任意の平面的形状、あるいは、任意の立体的形状であってもよい。
分離部202は、2つのオブジェクトが衝突判定部201により衝突すると判定された場合、衝突すると判定されたオブジェクトの一方が所定の切断オブジェクトであるか否かを判別する。切断オブジェクトとは、衝突することによって衝突相手のオブジェクトを2つ以上に分離・分断・分割することが可能なオブジェクトである。切断オブジェクトは、例えば図3に示す“斧”の形状のオブジェクト330などであってもよい。切断オブジェクトは、典型的には、刀、ナイフ、斧などのように先端が尖った金属等を表すようなオブジェクトである。
更に、分離部202は、衝突すると判定されたオブジェクトの他方(切断オブジェクトでない方)を2つのオブジェクトに分離する。そして、分離部202は、分離された2つのオブジェクトのそれぞれに、オブジェクトを近似する近似立体450を新たに割り当てる。分離された2つのオブジェクトについての衝突判定処理は、新たに割り当てられる近似立体450を用いて行われる。CPU 101と画像処理部108が協働して分離部202として機能する。
例えば図7Aに示すように、近似立体710が対応付けられるオブジェクトが、矢印Y1方向に移動し、近似立体720が対応付けられるオブジェクトと衝突する場合を考える。一方のオブジェクトが切断オブジェクトである場合には、他方のオブジェクトは2つに分離されることになる。
図7Bに示すように、近似立体720の中心軸730と、切断面740の法線ベクトル750と、のなす角度θがゼロでない場合、近似立体720の切断面740は楕円形である。角度θがゼロに近いほど、切断面740の形状は正円に近くなる。図形の対称性を考慮し、0≦θ(度)≦90、とする。
角度θが、ゼロ以上、所定の閾値θTH1以下、である場合、CPU 101は、衝突されるオブジェクトを2つに分離する。また、この場合、CPU 101は、図7Cに示すように、カプセル形の近似立体720を、共にカプセル形の2つの近似立体780,790に分離する。CPU 101は、元のオブジェクトを分離してできる2つのオブジェクトについて更に衝突判定処理を行う際には、近似立体780,790を用いる。
一般的な表現を用いれば、近似立体720が曲面体である場合、CPU 101は、この曲面体を2つに分割する。そして、CPU 101は、得られた2つの曲面体を、分離された2つのオブジェクトに割り当てる近似立体とする。なお、近似立体720は、衝突されるオブジェクトに対応付けられているものとする。
図8Aは、角度θが第1の閾値θTH1より大きいときの切断面840等を表す図である。角度θが大きくなるほど、切断面840の形状を表す楕円の、長径に対する短径の比率が小さくなる。
角度θが、所定の第1の閾値θTH1より大きく、所定の第2の閾値θTH2以下である場合、CPU 101は、衝突されるオブジェクトを2つに分離する。このとき、CPU 101は、図8Bに示すように、カプセル形(曲面体)の近似立体820を、多面体(本図の場合は12面体)870に近似する。
ここで、CPU 101は、12面体に限らず任意の多面体で近似立体820を近似することができる。
次に、CPU 101は、図8Cに示すように、多面体870を、共に多角形(本図の場合は8面体)の2つの近似立体880,890に分離する。
一般的な表現を用いれば、近似立体820が曲面体である場合、CPU 101は、この曲面体を近似する多面体870を切断面840に沿って2つに分割する。そして、CPU 101は、得られた2つの多面体を、分離された2つのオブジェクトに割り当てる近似立体880,890とする。なお、近似立体820は、衝突されるオブジェクトに対応付けられているものとする。CPU 101は、元のオブジェクトを分離してできる2つのオブジェクトについて更に衝突判定処理を行う際には、近似立体880,890を用いる。
分離後の近似立体880,890は多面体であり、カプセル形のような曲面体ではない。これは、衝突判定処理を簡略化しつつも、分離後の2つのオブジェクトについての衝突判定処理の精度をなるべく高くするためである。CPU 101は、分離後の近似立体880,890の形状を、分離後のオブジェクトの形状になるべく近い多面体とすることが望ましい。
図9Aは、角度θが第2の閾値θTH2より更に大きいときの切断面940等を表す図である。切断面940がカプセル形の両端の半球部分にかかる場合、切断面940は楕円ではない形状となる。
角度θが、所定の第2の閾値θTH2より大きく、90度以下である場合、CPU 101は、衝突されるオブジェクトを2つに分離する。この際、CPU 101は、図9Bに示すように、カプセル形の近似立体920を、2つの近似立体980,990に分離する。CPU 101は、近似立体920を、まるで斧で蒔を割るかのように、分割する。なお、2つの近似立体980,990は、共にカプセル形である。CPU 101は、元のオブジェクトを分離してできる2つのオブジェクトについて更に衝突判定処理を行う際には、近似立体980,990を用いる。
まとめると、次のようになる。
(ケースA1)0≦θ≦θTH1: カプセル形の近似立体720を、2つのカプセル形の近似立体780,790に分離する。
(ケースB1)θTH1<θ≦θTH2: カプセル形の近似立体820を、2つの多面体の近似立体880,890に分離する。
(ケースC1)θTH2<θ≦90: カプセル形の近似立体920を、2つのカプセル形の近似立体980,990に分離する。
(ケースA1)0≦θ≦θTH1: カプセル形の近似立体720を、2つのカプセル形の近似立体780,790に分離する。
(ケースB1)θTH1<θ≦θTH2: カプセル形の近似立体820を、2つの多面体の近似立体880,890に分離する。
(ケースC1)θTH2<θ≦90: カプセル形の近似立体920を、2つのカプセル形の近似立体980,990に分離する。
なお、図9Aに示すように、角度θが浅い場合には、CPU 101は、2つのオブジェクトは衝突するが分離しない、と判定してもよい。また、切断面940がカプセル形の両端の半球部分にかかる場合においても、CPU 101は、2つのオブジェクトは衝突するが分離しない、と判定してもよい。この場合、CPU 101は、上記のケースA1~C1を省略してθTH2=90とする。そして、CPU 101は、2つのオブジェクトに対応付けられる近似立体の形状のそれぞれを、衝突の前後において変化させない。
ケースA1を言い換えれば、下記の条件P2と条件Q2を共に満たす場合に、CPU 101は、分離された2つのオブジェクトに、切断面740が近似立体720を分割してできる、カプセル形を割り当てる。より具体的には、CPU 101は、図7Cに示すように、長さL1のカプセル形と長さL2のカプセル形を、近似立体780,790とする。
(条件P2)衝突されるオブジェクト(2つのオブジェクトに分離されるべきオブジェクト)に割り当てられた近似立体720がカプセル形であること。
(条件Q2)所定のカプセル分離条件を満たすこと。
(条件Q2)所定のカプセル分離条件を満たすこと。
所定のカプセル分離条件とは、「カプセル形の中心軸730と、切断面740の法線ベクトル750と、のなす角度θが(第1の)閾値θTH1以下であり、且つ、切断面740がカプセル形の側面のみを切断すること」である。
一方、条件P2と条件Q2の少なくとも一方を満たさない場合、CPU 101は、図8Cに示すように、2つの多面体を、分離された2つのオブジェクトに割り当てる近似立体880,890とする。なお、この2つの多面体は、カプセル形を近似する多面体870を切断面840に沿って2つに分割することにより得られる。
衝突されるオブジェクトに対応付けられる近似立体はカプセル形に限られない。例えば図10Aに示すように、多面体(本図では8面体)の近似立体1020であってもよい。図10Aにおいて、近似立体1020は、肘を曲げた腕の形のようなL字形のオブジェクトである。
図10Aに示すような近似立体1020を切断面1040で2つに切断する場合、CPU 101は、分離後の2つのオブジェクトのそれぞれに、多面体である近似立体を対応付けてもよい。例えば、CPU 101は、この分離後の2つのオブジェクトに、図10Bに示すような、近似立体1080,1090を対応付けてもよい。
一般的な表現を用いれば、CPU 101は、近似立体1020が多面体である場合、2つの多面体を、分離された2つのオブジェクトに割り当てる近似立体1080,1090としてもよい。なお、近似立体1020は、衝突されるオブジェクトに割り当てられるものとする。また、この2つの多面体は、多面体である近似立体1020を切断面1040に沿って2つに分割することにより得られる。
あるいは、図11Aに示すような近似立体1120を切断面1140で2つに切断する場合、CPU 101は、分離後の2つのオブジェクトのそれぞれに、カプセル形の近似立体を対応付けてもよい。例えば、図11Bに示すように、CPU 101は、この2つのオブジェクトのそれぞれに、近似立体1180,1190を対応付けてもよい。
一般的な表現を用いれば、近似立体1120が多面体である場合、CPU 101は、この多面体を切断面1140に沿って2つに分割することにより得られる2つの多面体を、曲面体に近似してもよい。そして、CPU 101は、この近似して得られる曲面体を、分離された2つのオブジェクトに割り当ててもよい。具体的には、CPU 101は、この2つの多面体を、それぞれカプセル形などの曲面体に近似してもよい。例えば、CPU 101は、図11Bに示すように、この分離された2つのオブジェクトに、近似立体1180,1190を割り当ててもよい。
下記の条件P3と条件Q3を共に満たす場合に、CPU 101は、カプセル形の近似立体1180,1190を、切断されて得られるオブジェクトの両方(又は片方)に対応付けることが望ましい。
(条件P3)切断前のオブジェクトに対応付けられる近似立体1120がカプセル形や球形でない多角形であること。
(条件Q3)切断後のオブジェクトに対応付けられる近似立体1180,1190の形状の対称性が高いこと。
(条件P3)切断前のオブジェクトに対応付けられる近似立体1120がカプセル形や球形でない多角形であること。
(条件Q3)切断後のオブジェクトに対応付けられる近似立体1180,1190の形状の対称性が高いこと。
以上の説明では、CPU 101は、1つのオブジェクトを2つのオブジェクトに分離すると共に、近似立体720(もしくは820,920,1020,1120)を2つの近似立体780,790(もしくは880と890、980と990、1080と1090、1180と1190)に分離している。しかし、CPU 101は、1つのオブジェクトを3つ以上のオブジェクトに分離すると共に、近似立体720(もしくは820,920,1020,1120)を3つ以上の近似立体に分離してもよい。ただし、CPU 101は、分離後のオブジェクトのそれぞれに1つずつ、新たな近似立体を割り当てるものとする。
次に、本実施形態の衝突判定部201と分離部202が行う切断処理について、図12のフローチャートを用いて説明する。ここでは、衝突する2つのオブジェクトの組み合わせは、図3に示す第1オブジェクト310と第2オブジェクト320とアイテムオブジェクト330のうちのいずれか2つであるとする。また、衝突されるオブジェクト(2つのオブジェクトに分離されるべきオブジェクト)には、カプセル形の近似立体が対応付けられているものとする。
まず、CPU 101は、2つのオブジェクトが衝突するか否かを判定する(ステップS1201)。衝突しないと判定した場合(ステップS1201;NO)、CPU 101は、分離処理を終了する。
衝突すると判定した場合(ステップS1201;YES)、CPU 101は、衝突する2つのオブジェクトのうち一方のオブジェクトが切断オブジェクト(ここでは“斧”の形をしたアイテムオブジェクト330に相当する)であるか否かを判別する(ステップS1202)。
一方のオブジェクトが切断オブジェクトでない場合(ステップS1202;NO)、CPU 101は、他方のオブジェクトを分離しない。そして、CPU 101は、2つのオブジェクトの衝突後の位置と姿勢を計算する(ステップS1203)。次いで、CPU 101は、RAM 103に記憶している2つのオブジェクトの位置と姿勢を示す情報を、計算した位置と姿勢を示すデータで更新する。ステップS1202でNOの場合とは、具体的には、第1オブジェクト310と第2オブジェクト320とが衝突する場合のことである。例えば、一方のロボットが他方のロボットを蹴飛ばす場合等が該当する。
一方のオブジェクトが切断オブジェクトである場合(ステップS1202;YES)、CPU 101は、他方のオブジェクトを分離する(ステップS1204)。
ステップS1202でYESの場合とは、具体的には、第1オブジェクト310とアイテムオブジェクト330とが衝突する場合、もしくは、第2オブジェクト320とアイテムオブジェクト330とが衝突する場合のことである。例えば、一方のロボットが斧を振り回して他方のロボットに斬りかかる場合が該当する。そして、“他方のオブジェクトを分離する”とは、例えば、斬りかかられたロボットの手足がもげてしまったり切断されてしまったりすることである。
更に、CPU 101は、上述のカプセル分離条件が満たされるか否かを判別する(ステップS1205)。なお、カプセル分離条件は、上述のように、「カプセル形の中心軸と、切断面の法線ベクトルと、のなす角度θが閾値θTH1以下であり、且つ、切断面がカプセル形の側面のみを分離すること」である。
カプセル分離条件が満たされると判別した場合(ステップS1205;YES)、CPU 101は、分離後の2つのオブジェクトのそれぞれに、カプセル形の近似立体780,790を対応付ける(ステップS1206)。
例えば、ロボットの足にカプセル形の近似立体が対応付けられているとする。そして、一方のロボットが他方のロボットの足に斧で垂直に斬りかかって、足が、輪切りのように2つに切断されてしまった場合、切れた足にはカプセル形の近似立体が新たに対応付けられる。なお、分離したオブジェクトと他のオブジェクトとが衝突するか否かの判定は、新たに対応付けられた近似立体と他のオブジェクトに対応付けられる近似立体とが衝突するか否かにより行われる。具体的には、一方のロボットが切れた足に再び斬りかかる場合等に、分離したオブジェクトと他のオブジェクトとが衝突するか否かの判定が行われる。
カプセル分離条件が満たされないと判別した場合(ステップS1205;NO)、CPU 101は、分離後の2つのオブジェクトのそれぞれに、多面体の近似立体880,890を対応付ける(ステップS1207)。この場合、CPU 101は、分離後の2つのオブジェクトに、カプセル形の曲面体を対応付けない。
例えば、ロボットの足にカプセル形の近似立体が対応付けられているとする。一方のロボットが他方のロボットの足に斧で斜めに斬りかかって足がいびつな形に切れてしまった場合を考える。このような場合、切れた足にはカプセル形ではない多面体の近似立体が新たに対応付けられる。
以上のように、本実施形態では、オブジェクトに対応付けられる近似立体同士が衝突するか否かにより、オブジェクト同士の衝突判定を行っている。例えば、丸みを帯びたオブジェクトの一部又は全部には、カプセル形のように、衝突判定処理がより簡略化される対称性が大きい近似立体が対応付けられる。カプセル形のような対称性が比較的大きい形状を用いれば、衝突判定処理の計算量やメモリ消費量をなるべく抑えることが可能になるというメリットが得られる。
しかし、任意の切断面でオブジェクトが切断されると、切断後の近似立体は対称性が崩れて複雑な形状になることがある。本実施形態では、切断後のオブジェクトの形状が複雑な場合には、8面体や12面体のような多面体が近似立体としてオブジェクトに対応付けられ、この近似立体が衝突判定に用いられる。近似立体を多面体にすれば、衝突判定処理の精度が増すことがあるというメリットが得られる。また、近似立体を多面体にすると、切断後のオブジェクトの形状の計算量やメモリ消費量が少ないというメリットもある。
このように本実施形態によれば、衝突判定用の図形を状況に応じて変えることにより、オブジェクト同士の衝突判定を容易にし、カプセル形の近似立体を用いた場合のメリットと、多面体の近似立体を用いた場合のメリットと、の両方を享受できるようになる。
しかし、任意の切断面でオブジェクトが切断されると、切断後の近似立体は対称性が崩れて複雑な形状になることがある。本実施形態では、切断後のオブジェクトの形状が複雑な場合には、8面体や12面体のような多面体が近似立体としてオブジェクトに対応付けられ、この近似立体が衝突判定に用いられる。近似立体を多面体にすれば、衝突判定処理の精度が増すことがあるというメリットが得られる。また、近似立体を多面体にすると、切断後のオブジェクトの形状の計算量やメモリ消費量が少ないというメリットもある。
このように本実施形態によれば、衝突判定用の図形を状況に応じて変えることにより、オブジェクト同士の衝突判定を容易にし、カプセル形の近似立体を用いた場合のメリットと、多面体の近似立体を用いた場合のメリットと、の両方を享受できるようになる。
(実施形態2)
次に、本発明のその他の実施形態について説明する。上記実施形態では、切断されるべきオブジェクトに対応付けられる近似立体の形状がカプセル形である場合を主に説明した。本実施形態では、切断されるべきオブジェクトに対応付けられる近似立体の形状を円柱形にしている。
次に、本発明のその他の実施形態について説明する。上記実施形態では、切断されるべきオブジェクトに対応付けられる近似立体の形状がカプセル形である場合を主に説明した。本実施形態では、切断されるべきオブジェクトに対応付けられる近似立体の形状を円柱形にしている。
図13Aにおける近似立体1310が対応付けられるオブジェクトが、矢印Y2方向に移動し、近似立体1320が対応付けられるオブジェクトと衝突する場合を考える。一方のオブジェクトが切断オブジェクトである場合には、他方のオブジェクトは2つに分離される。
図13Bに示すように、近似立体1320の中心軸1330と、切断面1340の法線ベクトル1350と、のなす角度φがゼロでない場合、近似立体1320の切断面1340は典型的には楕円形である。角度φがゼロに近いほど、切断面1340の形状は正円に近くなる。図形の対称性を考慮し、0≦φ(度)≦90、とする。
角度φが、ゼロ以上、所定の閾値φTH1以下、である場合、CPU 101は、衝突されるオブジェクトを2つに分離する。この際、CPU 101は、図13Cに示すように、円柱形の近似立体1320を、共に円柱形の2つの近似立体1380,1390に分離する。CPU 101は、元のオブジェクトを分離してできる2つのオブジェクトについて更に衝突判定処理を行う際には、近似立体1380,1390を用いる。
一般的な表現を用いれば、近似立体1320が曲面体である場合、CPU 101は、この曲面体を2つに分割する。そして、CPU 101は、分割により得られる2つの曲面体を、分離された2つのオブジェクトに割り当てる近似立体1380,1390とする。
図14Aは、角度φが第1の閾値φTH1より大きいときの切断面1440等を表す図である。角度φが大きくなるほど、切断面1440の形状を表す楕円の長径に対する短径の比率が小さくなる。
角度φが、所定の第1の閾値φTH1より大きく、所定の第2の閾値φTH2以下である場合、CPU 101は、衝突されるオブジェクトを2つに分離する。このとき、CPU 101は、図14Bに示すように、円柱形(曲面体)の近似立体1420を、多面体(本図の場合は削っていない鉛筆のような8面体)1470に近似する。
ここで、CPU 101は、8面体に限らず任意の多面体で近似立体1420を近似することができる。
次に、CPU 101は、図14Cに示すように、多面体1470を、共に多角形(本図の場合は7面体)の2つの近似立体1480,1490に分離する。
一般的な表現を用いれば、CPU 101は、近似立体1420が曲面体である場合、この曲面体を近似する多面体1470を切断面1440に沿って2つに分割する。そして、CPU 101は、分割により得られる2つの多面体を、分離された2つのオブジェクトに割り当てる近似立体とする。なお、近似立体1420は、衝突されるオブジェクトに対応付けられるものとする。CPU 101は、元のオブジェクトを分離してできる2つのオブジェクトについて更に衝突判定処理を行う際には、近似立体1480,1490を用いる。
元のオブジェクトを分離してできる2つのオブジェクトについて更に衝突判定処理を行う場合、分離後の近似立体1480,1490は、円柱形のような曲面体ではなく多面体である。したがって、衝突判定処理を簡略化しつつも、分離後の2つのオブジェクトについての衝突判定処理の精度をなるべく高くすることができる。CPU 101は、分離後の近似立体1480,1490の形状を、分離後のオブジェクトの形状になるべく近い多面体とすることが望ましい。
図15Aは、角度φが第2の閾値φTH2より更に大きいときの切断面1540等を表す図である。切断面1540が円柱形の底面にかかる場合、切断面1540は楕円ではない形状となる。
角度φが、所定の第2の閾値φTH2より大きく、90度以下である場合、CPU 101は、衝突されるオブジェクトを2つに分離する。この際、CPU 101は、図15Bに示すように、円柱形の近似立体1520を、共に円柱形の2つの近似立体1580,1590に分離する。CPU 101は、元のオブジェクトを分離してできる2つのオブジェクトについて更に衝突判定処理を行う際には、近似立体1580,1590を用いる。
まとめると、次のようになる。
(ケースA2)0≦φ≦φTH1: 円柱形の近似立体1320を、2つの円柱形の近似立体1380,1390に分離する。
(ケースB2)φTH1<φ≦φTH2: 円柱形の近似立体1420を、2つの多面体の近似立体1480,1490に分離する。
(ケースC2)φTH2<φ≦90: 円柱形の近似立体1520を、2つの円柱形の近似立体1580,1590に分離する。
(ケースA2)0≦φ≦φTH1: 円柱形の近似立体1320を、2つの円柱形の近似立体1380,1390に分離する。
(ケースB2)φTH1<φ≦φTH2: 円柱形の近似立体1420を、2つの多面体の近似立体1480,1490に分離する。
(ケースC2)φTH2<φ≦90: 円柱形の近似立体1520を、2つの円柱形の近似立体1580,1590に分離する。
なお、図15Aに示すように角度φが浅い場合には、CPU 101は、2つのオブジェクトは衝突するが分離しない、と判定してもよい。また、切断面1540が円柱形の底面にかかる場合においても、CPU 101は、2つのオブジェクトは衝突するが分離しない、と判定してもよい。この場合、CPU 101は、上記ケースA2~C2を省略してφTH2=90とする。そして、CPU 101は、2つのオブジェクトに対応付けられる近似立体の形状のそれぞれを、衝突の前後において変化させない。
ケースA2を言い換えれば、下記の条件P4と条件Q4を共に満たす場合に、CPU 101は、分離された2つのオブジェクトに、切断面1340が円柱形を分割してできる、円柱形を割り当てる。より具体的には、CPU 101は、図13Cに示すように、長さL3の円柱形と長さL4の円柱形を、近似立体1380,1390とする。
(条件P4)衝突されるオブジェクト(2つのオブジェクトに分離されるべきオブジェクト)に割り当てられた近似立体1320が円柱形であること。
(条件Q4)所定の円柱分離条件を満たすこと。
(条件Q4)所定の円柱分離条件を満たすこと。
所定の円柱分離条件とは、「円柱の中心軸1330と切断面1340の法線ベクトル1350とのなす角度φが所定の閾値φTH1以下であり、且つ、切断面1340が円柱の側面のみを切断する」である。
一方、条件P4と条件Q4の少なくとも一方を満たさない場合、CPU 101は、図14Cに示すように、2つの多面体を、分離された2つのオブジェクトに割り当てる近似立体1480,1490とする。なお、この2つの多面体は、円柱形を近似する多面体1470を切断面1440に沿って2つに分割することにより得られる。
例えば、丸みを帯びたオブジェクトの一部又は全部には、円柱形のように、対称性が大きい近似立体が対応付けられる。近似立体の対称性が大きい場合、衝突判定処理はより簡略化される。したがって、円柱形のような対称性が比較的大きい形状を用いることにより、衝突判定処理の計算量やメモリ消費量をなるべく抑えることが可能になるというメリットが得られる。
しかし、任意の切断面でオブジェクトが切断されると、切断後の近似立体の対称性が崩れて、近似立体が複雑な形状になることがある。本実施形態では、切断後のオブジェクトの形状が複雑な場合には、8面体や12面体のような多面体が近似立体としてオブジェクトに対応付けられ、この近似立体が衝突判定に用いられる。近似立体を多面体にすることにより、衝突判定処理の精度が増すことがあるというメリットが得られる。
このように本実施形態によれば、衝突判定用の図形を状況に応じて変えることにより、オブジェクト同士の衝突判定を容易にし、円柱形の近似立体を用いた場合のメリットと、多面体の近似立体を用いた場合のメリットと、の両方を享受できるようになる。
しかし、任意の切断面でオブジェクトが切断されると、切断後の近似立体の対称性が崩れて、近似立体が複雑な形状になることがある。本実施形態では、切断後のオブジェクトの形状が複雑な場合には、8面体や12面体のような多面体が近似立体としてオブジェクトに対応付けられ、この近似立体が衝突判定に用いられる。近似立体を多面体にすることにより、衝突判定処理の精度が増すことがあるというメリットが得られる。
このように本実施形態によれば、衝突判定用の図形を状況に応じて変えることにより、オブジェクト同士の衝突判定を容易にし、円柱形の近似立体を用いた場合のメリットと、多面体の近似立体を用いた場合のメリットと、の両方を享受できるようになる。
(実施形態3)
次に、本発明のその他の実施形態について説明する。本実施形態では、切断されるべきオブジェクトに対応付けられる近似立体の形状を球形にしている。
次に、本発明のその他の実施形態について説明する。本実施形態では、切断されるべきオブジェクトに対応付けられる近似立体の形状を球形にしている。
図16Aにおける近似立体1610が対応付けられるオブジェクトが、矢印Y3方向に移動し、近似立体1620が対応付けられるオブジェクトと衝突する場合を考える。一方のオブジェクトが切断オブジェクトである場合には、他方のオブジェクトは2つに分離される。図16Bに示すように、近似立体1620の切断面1640は円形である。
CPU 101は、図16Cに示すように、球形(曲面体)の近似立体1620を、多面体(本図の場合は8面体)1670に近似する。ただし、CPU 101は、8面体に限らず任意の多面体で近似立体1620を近似することができる。
次に、CPU 101は、図16Dに示すように、多面体1670を、共に多面体(本図の場合はピラミッドのような5面体)の2つの近似立体1680,1690に分離する。
一般的な表現を用いれば、CPU 101は、球形を近似する8面体を切断面1640に沿って2つに分割する。そして、CPU 101は、得られた2つの多面体を、分離された2つのオブジェクトに割り当てる近似立体1680,1690とする。
例えば、丸みを帯びたオブジェクトの一部又は全部には、球形のように、対称性が大きい近似立体が対応付けられる。近似立体の対称性が大きい場合、衝突判定処理はより簡略化される。したがって、球形のような対称性が比較的大きい形状を用いることにより、衝突判定処理の計算量やメモリ消費量をなるべく抑えることが可能になるというメリットが得られる。
しかし、任意の切断面でオブジェクトが切断されると、切断後の近似立体の対称性が崩れてしまう。本実施形態では、切断後のオブジェクトには、5面体のような多面体が近似立体としてオブジェクトに対応付けられ、この近似立体が衝突判定に用いられる。近似立体を多面体にすれば、衝突判定処理の精度が増すことがあるというメリットが得られる。
このように本実施形態によれば、衝突判定用の図形を状況に応じて変えることにより、オブジェクト同士の衝突判定を容易にし、球形の近似立体を用いた場合のメリットと、多面体の近似立体を用いた場合のメリットと、の両方を享受できるようになる。
しかし、任意の切断面でオブジェクトが切断されると、切断後の近似立体の対称性が崩れてしまう。本実施形態では、切断後のオブジェクトには、5面体のような多面体が近似立体としてオブジェクトに対応付けられ、この近似立体が衝突判定に用いられる。近似立体を多面体にすれば、衝突判定処理の精度が増すことがあるというメリットが得られる。
このように本実施形態によれば、衝突判定用の図形を状況に応じて変えることにより、オブジェクト同士の衝突判定を容易にし、球形の近似立体を用いた場合のメリットと、多面体の近似立体を用いた場合のメリットと、の両方を享受できるようになる。
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
上記各実施形態では、あるオブジェクトが切断オブジェクトによって2つに切断される状況を想定している。しかしながら、オブジェクトが切断されずに変形する場合にも本発明を適用することが可能である。
図17Aにおける近似立体1710が対応付けられるオブジェクトが、矢印Y4方向に移動し、近似立体1720が対応付けられるオブジェクトと衝突する場合を考える。一方のオブジェクトが切断オブジェクトであっても、衝突の仕方によっては、他方のオブジェクトは2つに分離されないことがある。
例えば図17Bに示すように、近似立体1710と衝突することにより近似立体1720が部分的に変形する(へこむ)。変形後の近似立体1730は、複雑な形状である。変形後の近似立体1730が、仮にこのまま衝突判定に用いる図形として扱われた場合、計算量が膨大になってしまう恐れがある。
そこで、図17Cに示すように、CPU 101は、変形後のオブジェクトに3つの近似立体1770,1780,1790を対応付ける。このようにすれば、変形後のオブジェクトについて更に衝突判定を行う際には、カプセル形のような対称性が比較的大きい形状が用いられる。したがって、衝突判定処理の計算量やメモリ消費量をなるべく抑えることが可能になる。
変形後のオブジェクトに対応付けられる近似立体の形状は、カプセル形だけに限られず、円柱形や球形のような曲面体でもよい。また、変形後のオブジェクトに対応付けられる近似立体の形状は、8面体や12面体のような多面体でもよい。また、変形後のオブジェクトに対応付けられる近似立体の数や組み合わせは任意である。
上記のゲーム装置200の全部又は一部としてコンピュータを動作させるためのプログラムを、メモリカード、CD-ROM、DVD、MO(Magneto Optical disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
なお、本願については、日本国特許願 特願2009-190003号を基礎とする優先権を主張し、当該基礎出願の内容をすべて本願にとりこむものとする。
以上説明したように、本発明によれば、オブジェクト同士の衝突判定を容易にすることが可能なゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラムを提供することができる。
100 情報処理装置
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD-ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200 ゲーム装置
201 衝突判定部
202 分離部
310 第1オブジェクト
320 第2オブジェクト
330 アイテムオブジェクト
400 輪郭(オブジェクトの輪郭)
450 近似立体
610 オブジェクト(ボールオブジェクト)
620 オブジェクト(バットオブジェクト)
650 近似立体(ボールオブジェクトに対応付けられる近似立体)
660 近似立体(バットオブジェクトに対応付けられる近似立体)
670 当たり領域
710 近似立体(切断オブジェクトに対応付けられる近似立体)
720,820,920 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
730,830,930 中心軸
740,840,940 切断面
750,850,950 切断面の法線ベクトル
780,790,880,890,980,990 近似立体(切断後のオブジェクトに対応付けられる近似立体)
870 多面体
1020,1120 近似立体
1040,1140 切断面
1080,1090,1180,1190 近似立体(切断後のオブジェクトに対応付けられる近似立体)
1310 近似立体(切断オブジェクトに対応付けられる近似立体)
1320,1420,1520 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
1330,1430,1530 中心軸
1340,1440,1540 切断面
1350,1450,1550 切断面の法線ベクトル
1380,1390,1480,1490,1580,1590 近似立体(切断後のオブジェクトに対応付けられる近似立体)
1470 多面体
1610 近似立体(切断オブジェクトに対応付けられる近似立体)
1620 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
1640 切断面
1670 多面体
1680,1690 近似立体(切断後のオブジェクトに対応付けられる近似立体)
1710 近似立体(切断オブジェクトに対応付けられる近似立体)
1720 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
1730 近似立体(切断オブジェクトによって変形した近似立体)
1770,1780,1790 近似立体(変形後のオブジェクトに対応付けられる近似立体)
101 CPU
102 ROM
103 RAM
104 インターフェース
105 コントローラ
106 外部メモリ
107 DVD-ROMドライブ
108 画像処理部
109 音声処理部
110 NIC
200 ゲーム装置
201 衝突判定部
202 分離部
310 第1オブジェクト
320 第2オブジェクト
330 アイテムオブジェクト
400 輪郭(オブジェクトの輪郭)
450 近似立体
610 オブジェクト(ボールオブジェクト)
620 オブジェクト(バットオブジェクト)
650 近似立体(ボールオブジェクトに対応付けられる近似立体)
660 近似立体(バットオブジェクトに対応付けられる近似立体)
670 当たり領域
710 近似立体(切断オブジェクトに対応付けられる近似立体)
720,820,920 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
730,830,930 中心軸
740,840,940 切断面
750,850,950 切断面の法線ベクトル
780,790,880,890,980,990 近似立体(切断後のオブジェクトに対応付けられる近似立体)
870 多面体
1020,1120 近似立体
1040,1140 切断面
1080,1090,1180,1190 近似立体(切断後のオブジェクトに対応付けられる近似立体)
1310 近似立体(切断オブジェクトに対応付けられる近似立体)
1320,1420,1520 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
1330,1430,1530 中心軸
1340,1440,1540 切断面
1350,1450,1550 切断面の法線ベクトル
1380,1390,1480,1490,1580,1590 近似立体(切断後のオブジェクトに対応付けられる近似立体)
1470 多面体
1610 近似立体(切断オブジェクトに対応付けられる近似立体)
1620 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
1640 切断面
1670 多面体
1680,1690 近似立体(切断後のオブジェクトに対応付けられる近似立体)
1710 近似立体(切断オブジェクトに対応付けられる近似立体)
1720 近似立体(切断されるべきオブジェクトに対応付けられる近似立体)
1730 近似立体(切断オブジェクトによって変形した近似立体)
1770,1780,1790 近似立体(変形後のオブジェクトに対応付けられる近似立体)
Claims (8)
- 仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する衝突判定部(201)と、
前記衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、前記衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる分離部(202)と、
を備え、
前記オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれ、
前記分離部(202)は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、前記曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする、
ことを特徴とするゲーム装置(200)。 - 請求項1に記載のゲーム装置(200)であって、
前記曲面体には、カプセル形が含まれ、
前記分離部(202)は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(c)カプセル形であって、所定のカプセル分離条件を満たす場合、当該切断面が当該カプセル形の中心軸を分割した長さの2つのカプセル形を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(d)カプセル形であって、前記所定のカプセル分離条件を満たさない場合、前記カプセル形を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
前記カプセル分離条件は、当該カプセル形の中心軸と当該切断面の法線とのなす角度が所定の閾値以下であり、当該切断面が当該カプセル形の側面のみを切断する場合に満たされる、
ことを特徴とするゲーム装置(200)。 - 請求項1に記載のゲーム装置(200)であって、
前記曲面体には、円柱が含まれ、
前記分離部(202)は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(e)円柱であって、所定の円柱分離条件を満たす場合、当該切断面が当該円柱の中心軸を分割した長さの2つの円柱を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(f)円柱であって、前記所定の円柱分離条件を満たさない場合、前記円柱を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
前記円柱分離条件は、当該円柱の中心軸と当該切断面の法線とのなす角度が所定の閾値以下であり、当該切断面が当該円柱の側面のみを切断する場合に満たされる、
ことを特徴とするゲーム装置(200)。 - 請求項1に記載のゲーム装置(200)であって、
前記曲面体には、球形が含まれ、
前記分離部(202)は、球形を近似する八面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする、
ことを特徴とするゲーム装置(200)。 - 請求項1に記載のゲーム装置(200)であって、
前記分離部(202)は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が多面体であって、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体の少なくとも一方の対称性が大きい場合、当該分離された2つのオブジェクトに割り当てられる多面体を近似する曲面体を近似立体とする、
ことを特徴とするゲーム装置(200)。 - 衝突判定部(201)と分離部(202)を有するゲーム装置(200)において実行されるゲーム処理方法であって、
前記衝突判定部(201)が、仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する衝突判定ステップと、
前記衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、前記分離部(202)が、前記衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる分離ステップと、
を備え、
前記オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれ、
前記分離ステップでは、前記分離部(202)は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、前記曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする、
ことを特徴とするゲーム処理方法。 - コンピュータを、
仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する衝突判定部(201)、
前記衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、前記衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる分離部(202)、
として機能させ、
前記オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれ、
前記分離部(202)は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、前記曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする、
ように機能させるプログラムを記憶することを特徴とする、コンピュータ読み取り可能な情報記憶媒体。 - コンピュータを、
仮想空間に配置されるオブジェクト同士が衝突するか否かを、当該オブジェクトのそれぞれに割り当てられる近似立体同士が交差するか否かにより判定する衝突判定部(201)、
前記衝突すると判定されたオブジェクトの一方が、所定の切断オブジェクトである場合、前記衝突すると判定されたオブジェクトの他方を2つのオブジェクトに分離し、当該分離された2つのオブジェクトのそれぞれに、当該オブジェクトを近似する近似立体を割り当てる分離部(202)、
として機能させ、
前記オブジェクトに割り当てられる近似立体には、多面体もしくは曲面体が含まれ、
前記分離部(202)は、2つのオブジェクトに分離されるべきオブジェクトに割り当てられた近似立体が、
(a)多面体である場合、当該多面体を切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とし、
(b)曲面体である場合、前記曲面体を近似する多面体を当該切断面に沿って2つに分割することにより得られる2つの多面体を、当該分離された2つのオブジェクトに割り当てる近似立体とする、
ことを特徴とするプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009190003A JP4989697B2 (ja) | 2009-08-19 | 2009-08-19 | ゲーム装置、ゲーム処理方法、ならびに、プログラム |
JP2009-190003 | 2009-08-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2011021504A1 true WO2011021504A1 (ja) | 2011-02-24 |
Family
ID=43606959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/063215 WO2011021504A1 (ja) | 2009-08-19 | 2010-08-04 | ゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4989697B2 (ja) |
WO (1) | WO2011021504A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10384346B2 (en) * | 2017-09-08 | 2019-08-20 | Niantic, Inc. | Collision detection, estimation, and avoidance |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003085585A (ja) * | 2001-09-10 | 2003-03-20 | Namco Ltd | 画像生成システム、プログラム及び情報記憶媒体 |
-
2009
- 2009-08-19 JP JP2009190003A patent/JP4989697B2/ja active Active
-
2010
- 2010-08-04 WO PCT/JP2010/063215 patent/WO2011021504A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003085585A (ja) * | 2001-09-10 | 2003-03-20 | Namco Ltd | 画像生成システム、プログラム及び情報記憶媒体 |
Non-Patent Citations (1)
Title |
---|
MASAMI SANO: "D Storm FX Break", CG WORLD, vol. 52, 1 December 2002 (2002-12-01), pages 140 * |
Also Published As
Publication number | Publication date |
---|---|
JP2011043885A (ja) | 2011-03-03 |
JP4989697B2 (ja) | 2012-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6102801A (en) | Picture processing device and method thereof | |
JP4794343B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP3747050B1 (ja) | プログラム、情報記憶媒体、及び画像生成システム | |
JP3707995B2 (ja) | ゲームシステム及び情報記憶媒体 | |
US6419580B1 (en) | Player object displayed in second configuration even if cursor moves outside prescribed area | |
JP4508918B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP3245142B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP3350654B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4371283B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4989697B2 (ja) | ゲーム装置、ゲーム処理方法、ならびに、プログラム | |
JP5124545B2 (ja) | ゲーム装置、ゲーム処理方法、ならびに、プログラム | |
JP2003210837A (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4579964B2 (ja) | 画像生成装置、画像生成方法、ならびに、プログラム | |
JP4187192B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP2003051024A (ja) | 画像生成システム及び情報記憶媒体 | |
JP4497690B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4229318B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4641602B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP5155262B2 (ja) | 画像生成装置、画像生成方法、ならびに、プログラム | |
JP5143805B2 (ja) | 画像処理装置、処理方法、ならびに、プログラム | |
JP4480322B2 (ja) | ゲームシステム及び情報記憶媒体 | |
JP4391633B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4345996B2 (ja) | 画像生成システム及び情報記憶媒体 | |
JP4301494B2 (ja) | 画像生成システム、プログラム及び情報記憶媒体 | |
JP4475763B2 (ja) | ゲームシステム及び情報記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10809849 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10809849 Country of ref document: EP Kind code of ref document: A1 |