Game program, information processing system, information processing device, and information processing method
The game program dynamically deforms objects using voxel data updates based on player input, addressing the lack of freedom in voxel-based object manipulation in existing technologies, resulting in enhanced realism and interaction.
Patent Information
- Application Number
- JP2024011588
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-30
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2044-01-30
AI Technical Summary
Existing game technologies lack the ability to deform objects using voxels with a high degree of freedom, limiting the dynamic interaction and realism in game environments.
A game program that updates voxel data based on player input, allowing for the deformation of objects by changing voxel data in specific ranges, including updating the degree of occupancy, existence, and material properties of voxels to simulate object deformation and destruction.
Enables dynamic and realistic deformation of objects in game environments, providing a high degree of freedom in object manipulation and destruction, enhancing player interaction and immersion.
Smart Images

Figure 2025113067000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a game program, an information processing system, an information processing apparatus, and an information processing method capable of generating an image using voxels.
Background Art
[0002] Conventionally, there is a game that creates character voxels based on imaging information and generates polygon mesh information (see, for example, Patent Document 1).
Prior Art Document
Patent Document
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above prior art, voxels are used to generate an object from imaging information, and the object is not deformed by updating voxel data.
[0005] Therefore, an object of the present invention is to provide a game program, an information processing system, an information processing apparatus, and an information processing method capable of deforming an object with a high degree of freedom in a game using voxels.
Means for Solving the Problems
[0006] In order to solve the above problems, the present invention employs the following configuration.
[0007] The game program of the present invention is a game program executed by a processor of an information processing apparatus. The processor stores, in a storage medium, first volume data that is data for representing a first object in a virtual space and holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space, and second volume data that is data for representing a second object in the virtual space and holds the voxel data for each voxel included in a second voxel space arranged in the virtual space. Further, when a first event occurs for the first object based on a player's operation input, the game program causes the processor to update the voxel data of voxels included in a first range set based on the position where the first event occurs, with respect to the first volume data. Further, when a second event occurs for the second object based on a player's operation input, the game program causes the processor to update the voxel data of voxels included in a second range set based on the position where the second event occurs, with respect to the second volume data. Further, the game program causes the processor to generate an image of the virtual space by at least rendering a polygon mesh representing the surfaces of the first object and the second object based on the first volume data and the second volume data.
[0008] According to the above, when a first event occurs for the first object, the voxel data of voxels included in the first range can be updated, and when a second event occurs for the second object, the voxel data of voxels included in the second range can be updated. Thereby, according to the object for which the event has occurred, the voxel data of voxels in different ranges can be updated.
[0009] In addition, the voxel data may include a value indicating the degree to which an object occupies the space defined by the voxel. When the first event occurs, the game program may cause the processor to update the voxel data so that the degree of the voxels included in the first range in the first volume data decreases. Also, when the second event occurs, the game program may cause the processor to update the voxel data so that the degree of the voxels included in the second range in the second volume data decreases.
[0010] According to the above, when the first event occurs, the degree of the voxels included in the first range is decreased, and when the second event occurs, the degree of the voxels included in the second range is decreased. Thereby, the degree of voxels in different ranges can be decreased according to the object in which the event has occurred, and the shape of the object can be changed.
[0011] In addition, when the first event occurs, the game program may cause the processor to update the voxel data so that at least a part of the voxels included in the first range in the first volume data has a value indicating that the first object does not exist. When the second event occurs, the game program may cause the processor to update the voxel data so that at least a part of the voxels included in the second range in the second volume data has a value indicating that the second object does not exist.
[0012] According to the above, when the first event for the first object occurs, the first object can be made not to exist in the first range, and when the second event for the second object occurs, the second object can be made not to exist in the second range. Thereby, when an event for an object occurs, a range corresponding to the object can be erased.
[0013] In addition, when the first event occurs, the game program causes the processor to set a value indicating that the first object does not exist for the voxels completely included within the first range in the first volume data, and may update the voxel data so that the degree decreases for the voxels partially included within the first range. Further, when the second event occurs, the game program causes the processor to set a value indicating that the second object does not exist for the voxels completely included within the second range in the second volume data, and may update the voxel data so that the degree decreases for the voxels partially included within the second range.
[0014] According to the above, for the voxels completely included within the above range, no object exists, and for the voxels partially included within the above range, different values can be set for the degree. Thereby, for example, even when generating a mesh showing the shape of an object using voxels, the shape of the object after the voxel data is updated can be made a natural shape.
[0015] In addition, the voxel data may further include material data indicating the material of the object and the amount of damage indicating the applied damage. When the first event occurs, the game program causes the processor to update the amount of damage for the voxels included within the first range in the first volume data, and may further update the value indicating the degree for the voxels for which the amount of damage exceeds the upper limit set for the material. Further, when the second event occurs, the game program causes the processor to update the amount of damage for the voxels included within the second range in the second volume data, and may further update the value indicating the degree for the voxels for which the amount of damage exceeds the upper limit set for the material.
[0016] According to the above, when the damage amount of a voxel exceeds the upper limit corresponding to the material set for the voxel, the degree of the voxel can be updated. Thereby, when a plurality of events occur for an object, the degree of the voxel can be updated. For example, an object can be destroyed by a plurality of destruction actions.
[0017] In addition, the voxel of 1 included in the first volume data and the voxel of 1 included in the second volume data may have different sizes defined in the virtual space.
[0018] According to the above, the voxel sizes of the first object and the second object can be made different, and the resolution can be made different for each object.
[0019] In addition, the first object may be the terrain in the virtual space, and the first range may be larger than the second range.
[0020] According to the above, the voxel size of the terrain in the virtual space can be made larger than the voxel sizes of other objects in the virtual space. Thereby, for example, when destroying the terrain, it can be destroyed on a larger scale.
[0021] In addition, the second object may be an object that can move in the virtual space by changing the position and / or orientation of the second voxel space in the virtual space. The second range may be smaller than the first range.
[0022] According to the above, the voxel size of the second object that can move in the virtual space can be made smaller than the voxel size of the first object. Thereby, for the second object that can move in the virtual space, for example, it can be destroyed more finely when destroyed.
[0023] The game program causes the processor to generate the polygon mesh by determining the vertex positions of the polygon based on the voxel data between the voxels where the first object or the second object does not exist and the existing voxels, and may recalculate the vertices of the polygon mesh in a range including at least the voxels whose voxel data has been updated based on the occurrence of the first event or the second event.
[0024] According to the above, the vertices of the mesh can be recalculated by updating the voxel data, and the object can be dynamically deformed.
[0025] The game program may further cause the processor to perform a destruction action on the player character to destroy the first object and the second object based on the operation input of the player. The first event may be that the destruction action hits the first object, and the second event may be that the destruction action hits the second object.
[0026] According to the above, the player character can be made to perform a destruction action on the first object or the second object, and when the destruction action hits the object, a range corresponding to the object can be destroyed.
[0027] Another invention may be an information processing system that executes the above game program, or an information processing device, or an information processing method.
Effect of the Invention
[0028] According to the present invention, the voxel data of voxels in different ranges can be updated according to the object in which the event has occurred.
Brief Description of the Drawings
[0029]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Mode for Carrying Out the Invention
[0030] [1. Configuration of Game System] Hereinafter, a game system according to an example of the present embodiment will be described. An example of game system 1 in the present embodiment includes a main body device (information processing device; functioning as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The main body device 2 is detachable from the left controller 3 and the right controller 4 respectively. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 as separate entities (see Figure 2). Hereinafter, the hardware configuration of game system 1 of the present embodiment will be described, and then the control of game system 1 of the present embodiment will be described.
[0031] FIG. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main body device 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processing) in the game system 1. The main body device 2 includes a display 12. The left controller 3 and the right controller 4 are devices provided with operation units for the user to input.
[0032] FIG. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are respectively removed from the main body device 2. As shown in FIGS. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller".
[0033] FIG. 3 is a six-sided view showing an example of the main body device 2. As shown in FIG. 3, the main body device 2 includes a substantially plate-shaped housing 11. In the present embodiment, the main surface of the housing 11 (in other words, the front surface, that is, the surface on which the display 12 is provided) is generally rectangular.
[0034] Note that the shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Also, the main body device 2 alone or the integrated device in which the left controller 3 and the right controller 4 are attached to the main body device 2 may be a portable device. Also, the main body device 2 or the integrated device may be a hand-held device. Also, the main body device 2 or the integrated device may be a transportable device.
[0035] As shown in FIG. 3, the main body device 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays an image generated by the main body device 2. In the present embodiment, the display 12 is a liquid crystal display device (LCD). However, the display 12 may be any type of display device.
[0036] Further, the main body device 2 is provided with a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type (for example, a capacitance type) capable of multi-touch input. However, the touch panel 13 may be of any type, for example, a type (for example, a resistive film type) capable of single-touch input may also be used.
[0037] The main body device 2 includes a speaker (that is, the speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed in the main surface of the housing 11. Then, the output sound of the speaker 88 is output from these speaker holes 11a and 11b respectively.
[0038] In addition, the main body device 2 includes a left terminal 17 which is a terminal for the main body device 2 to perform wired communication with the left controller 3, and a right terminal 21 for the main body device 2 to perform wired communication with the right controller 4.
[0039] As shown in FIG. 3, the main body device 2 includes a slot 23. The slot 23 is provided on the upper surface of the housing 11. The slot 23 has a shape capable of mounting a predetermined type of storage medium. The predetermined type of storage medium is, for example, a storage medium (for example, a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data (for example, save data of an application, etc.) used in the main body device 2 and / or a program (for example, a program of an application, etc.) executed by the main body device 2. Further, the main body device 2 includes a power button 28.
[0040] The main body device 2 includes a lower terminal 27. The lower terminal 27 is a terminal for the main body device 2 to communicate with the cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main body device 2 alone is placed on the cradle, the game system 1 can display an image generated and output by the main body device 2 on a stationary monitor. Further, in the present embodiment, the cradle has a function of charging the placed integrated device or the main body device 2 alone. Further, the cradle has a function of a hub device (specifically, a USB hub).
[0041] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In the present embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the vertical direction (that is, the y-axis direction shown in FIGS. 1 and 4). When the left controller 3 is removed from the main body device 2, it can also be held in a vertically long orientation. The housing 31 has a shape and size that can be held with one hand, particularly the left hand, when held in a vertically long orientation. Further, the left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.
[0042] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting a direction. The user can input a direction corresponding to the tilting direction (and an input of a magnitude corresponding to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may include a cross key or a slide stick capable of slide input instead of the analog stick as a direction input unit. Further, in the present embodiment, it is possible to input by pressing the analog stick 32.
[0043] The left controller 3 is provided with various operation buttons. The left controller 3 is provided with four operation buttons 33 to 36 (specifically, a right direction button 33, a down direction button 34, an up direction button 35, and a left direction button 36) on the main surface of the housing 31. Further, the left controller 3 is provided with a recording button 37 and a -(minus) button 47. The left controller 3 is provided with a first L button 38 and a ZL button 39 at the upper left of the side surface of the housing 31. Also, the left controller 3 is provided with a second L button 43 and a second R button 44 on the side surface of the housing 31 on the side where it is attached when attached to the main body device 2. These operation buttons are used to give instructions according to various programs (for example, an OS program or an application program) executed by the main body device 2.
[0044] Also, the left controller 3 is provided with a terminal 42 for the left controller 3 to perform wired communication with the main body device 2.
[0045] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In the present embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the vertical direction. The right controller 4 can also be gripped in a vertically long orientation when removed from the main body device 2. The housing 51 has a shape and size that can be gripped with one hand, particularly the right hand, when gripped in a vertically long orientation. Also, the right controller 4 can be gripped in a horizontally long orientation. When the right controller 4 is gripped in a horizontally long orientation, it may be gripped with both hands.
[0046] Similar to the left controller 3, the right controller 4 is provided with an analog stick 52 as a direction input unit. In the present embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. Further, instead of the analog stick, the right controller 4 may be provided with a cross key or a slide stick capable of slide input. Similar to the left controller 3, the right controller 4 is provided with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. Further, the right controller 4 is provided with a + (plus) button 57 and a home button 58. Also, the right controller 4 is provided with a first R button 60 and a ZR button 61 at the upper right of the side surface of the housing 51. Similar to the left controller 3, the right controller 4 is provided with a second L button 65 and a second R button 66.
[0047] Further, the right controller 4 is provided with a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.
[0048] FIG. 6 is a block diagram showing an example of the internal configuration of the main body device 2. In addition to the configuration shown in FIG. 3, the main body device 2 includes each of the components 81 to 91, 97, and 98 shown in FIG. 6. Some of these components 81 to 91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in the housing 11.
[0049] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes executed in the main body device 2. For example, it may be composed of only a CPU (Central Processing Unit), or it may be composed of a SoC (System-on-a-chip) including a plurality of functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various information processes by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium mounted on the slot 23, etc.).
[0050] As an example of an internal storage medium built into the main body device 2, the main body device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is mainly a memory used to store various data (which may be a program) stored in the main body device 2. The DRAM 85 is a memory used to temporarily store various data used in information processing.
[0051] The main body device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data to and from a predetermined type of storage medium (for example, a dedicated memory card) mounted on the slot 23 according to an instruction from the processor 81.
[0052] The processor 81 appropriately reads and writes data between the flash memory 84 and the DRAM 85, and each of the above storage media to execute the above information processes.
[0053] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly) with an external device via a network. In the present embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device by a method compliant with the Wi-Fi standard as a first communication mode. Further, the network communication unit 82 performs wireless communication with other main body devices 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication by the second communication mode enables wireless communication with other main body devices 2 arranged within a closed local network area, and realizes a function that enables so-called "local communication" in which data is transmitted and received by direct communication between a plurality of main body devices 2.
[0054] The main body device 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. The communication method between the main body device 2 and the left controller 3 and the right controller 4 is arbitrary, but in the present embodiment, the controller communication unit 83 communicates with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0055] The processor 81 is connected to the left terminal 17, the right terminal 21, and the lower terminal 27 described above. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. Further, when the processor 81 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. Also, when the processor 81 communicates with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, in the present embodiment, the main body device 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4, respectively. Further, when the left controller 3 and the right controller 4 are attached to the main body device 2 as an integrated device or when the main body device 2 alone is attached to the cradle, the main body device 2 can output data (for example, image data or audio data) to a stationary monitor or the like via the cradle.
[0056] Here, the main body device 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). Also, the main body device 2 can communicate with a plurality of right controllers 4 simultaneously (in other words, in parallel). Therefore, a plurality of users can simultaneously input to the main body device 2 using respective sets of the left controller 3 and the right controller 4. As an example, while a first user inputs to the main body device 2 using a first set of the left controller 3 and the right controller 4, it becomes possible for a second user to input to the main body device 2 using a second set of the left controller 3 and the right controller 4.
[0057] Also, the display 12 is connected to the processor 81. The processor 81 displays an image generated (for example, by executing the above-described information processing) and / or an image acquired from the outside on the display 12.
[0058] The main body device 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input / output of audio data to / from the speakers 88 and the audio input / output terminal 25.
[0059] The main body device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Also, although not shown, the power control unit 97 is connected to each part of the main body device 2 (specifically, each part that receives power supply from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the battery 98 to each of the above parts based on a command from the processor 81.
[0060] Also, the battery 98 is connected to the lower terminal 27. When an external charging device (for example, a cradle) is connected to the lower terminal 27 and power is supplied to the main body device 2 via the lower terminal 27, the supplied power is charged to the battery 98.
[0061] FIG. 7 is a block diagram showing an example of the internal configuration of the main body device 2, the left controller 3, and the right controller 4. Note that the details of the internal configuration regarding the main body device 2 are shown in FIG. 6 and thus are omitted in FIG. 7.
[0062] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 by both wired communication via the terminal 42 and wireless communication without using the terminal 42. The communication control unit 101 controls the communication method that the left controller 3 performs with respect to the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. Further, when the left controller 3 is detached from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed according to, for example, the Bluetooth (registered trademark) standard.
[0063] The left controller 3 also includes a memory 102 such as a flash memory. The communication control unit 101 is configured by, for example, a microcomputer (also referred to as a microprocessor) and executes various processes by executing the firmware stored in the memory 102.
[0064] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes an analog stick (described as "stick" in FIG. 7) 32. Each button 103 and the analog stick 32 output information regarding the operation performed on themselves to the communication control unit 101 repeatedly at an appropriate timing.
[0065] The communication control unit 101 acquires information regarding input (specifically, information regarding operations or detection results by sensors) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing predetermined processing on the acquired information) to the main body device 2. Note that the operation data is repeatedly transmitted at a rate of once every predetermined time. Note that the intervals at which the information regarding input is transmitted to the main body device 2 may be the same or different for each input unit.
[0066] When the above operation data is transmitted to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine operations on each button 103 and the analog stick 32 based on the operation data.
[0067] The left controller 3 includes a power supply unit 108. In the present embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and is also connected to each part of the left controller 3 (specifically, each part that receives power supply from the battery).
[0068] As shown in FIG. 7, the right controller 4 includes a communication control unit 111 that communicates with the main body device 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main body device 2 by both wired communication via the terminal 64 and wireless communication without using the terminal 64 (specifically, communication conforming to the Bluetooth (registered trademark) standard), and controls the communication method performed by the right controller 4 with respect to the main body device 2.
[0069] The right controller 4 includes the same input units as those of the left controller 3. Specifically, it includes each button 113 and the analog stick 52. These input units have the same functions as those of the left controller 3 and operate in the same manner.
[0070] The right controller 4 includes a power supply unit 118. The power supply unit 118 has the same function as the power supply unit 108 of the left controller 3 and operates in the same manner.
[0071] [2. Outline of Processing in the Game System] Next, with reference to FIGS. 8 to 15, an outline of the processing executed in the game system 1 will be described. In the present embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters operated by players) are arranged in a game space which is a three-dimensional virtual space, and causes the display device to display it. In the present embodiment, the display device on which the game image is displayed may be the above-described display 12 or a stationary monitor.
[0072] [2-1. Voxel] In the present embodiment, for some objects in the game space, the shape is defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, a cubic) region arranged in a grid pattern in the game space, and voxel data is data set for each voxel. Hereinafter, an object whose shape is defined by voxel data will be referred to as a "voxel object". In the present embodiment, the game system 1 stores voxel data as data for generating voxel objects in the game space for each of a plurality of voxels set in the game space.
[0073] FIG. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 8, in the present embodiment, a terrain object representing a terrain such as the ground is defined in shape by voxel data (that is, it is a voxel object). Each cube shown in FIG. 8 represents a terrain object. In FIG. 8, the portions that are the sides of the terrain object are shown as thick lines, but these thick lines are added for the purpose of making the drawing easier to view, and in reality, the sides of the terrain object do not need to be shown thickly.
[0074] Also, the terrain object shown in FIG. 8 is generated, for example, according to the rule that "when the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and when it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 8 is shown for the purpose of easily exemplifying the relationship between voxels and voxel objects. In the present embodiment, actually, for example, like the terrain object shown in FIG. 14 described later, a voxel object is generated (based on voxel data) according to a rule that results in a more complex shape compared to the length of one side of a voxel. Note that the rule for determining the shape of a voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate a voxel object as shown in FIG. 8 or a voxel object as shown in FIG. 15 based on object data.
[0075] Regarding the voxel object, the shape can be changed by changing the voxel data of each voxel. FIGS. 9 and 10 are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted. That is, when the hatched portion of the terrain object shown in FIG. 9 is destroyed, the terrain object changes to the shape shown in FIG. 10. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data described later so as to indicate that there is no terrain object for the voxels in the hatched portion. Note that when the game system 1 adds a terrain object, it can easily change the shape of the terrain object by changing the voxel data of each voxel, in the same manner as when erasing the terrain object.
[0076] In this way, the game system 1 can freely change the shape of the voxel object by rewriting the voxel data. For example, when the shape of a terrain object is changed as a result of being destroyed for some reason (e.g., a player character strikes the terrain object) in the game, the game system 1 does not directly change the data indicating the outer shape of the terrain object (i.e., the mesh described later), but can freely change the shape of the terrain object by changing the voxel data used for generating the terrain object.
[0077] FIG. 11 is a diagram showing an example of the content of the voxel data. Here, in the present embodiment, the game space can be divided into a plurality of voxels arranged in a grid pattern. The game system 1 stores by associating voxel data with each voxel in the game space. The voxel data indicates the presence or absence of a voxel object in the voxel corresponding to the voxel data, and the like.
[0078] As shown in FIG. 11, the voxel data includes density data. The density data is data of density indicating the degree to which an object is included in the region where each voxel is defined. Although details will be described later, the position and shape of the surface of the voxel object (that is, the mesh described later) are determined based on the above density. That is, in the present embodiment, the above density is also data used to create a mesh that defines the surface of the voxel object.
[0079] In the present embodiment, the density can take an integer value in the range from a lower limit value (for example, 0) to an upper limit value (for example, 255). In the present embodiment, in the game system 1, when the value of the density set for a voxel is high, the above ratio in the voxel is large, and when the value of the density is low, the ratio of the volume occupied by the voxel object in the voxel is small. For example, when the density is 0, there is no object in the voxel, when the density is 255, all of the voxel is an object, and when the density is a value in between, the object can occupy the voxel at a ratio corresponding to the value. Then, based on the density, the shape of the voxel mesh, that is, the shape of the voxel object is determined. However, the shape of the voxel object generated based on the above density does not necessarily have a volume that exactly matches the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 8 and the method of generating a voxel object as shown in FIG. 15, the volumes may be different even though they are based on the same density.
[0080] In other embodiments, the density may indicate either a state in which the voxel object occupies the entire region within the voxel or a state in which the voxel object is not included in the region within the voxel. For example, the density data may be data that can take only either 0 or 1.
[0081] As shown in FIG. 11, the voxel data includes material data. The material data indicates the material (in other words, the substance) of the voxel object generated from the voxel data. Here, in the present embodiment, materials such as sand, rock, and soil are set for the voxel object. That is, in the present embodiment, a plurality of types of materials are prepared as materials that can be set for the voxel object, and any one of the plurality of types of materials is set for the voxel object.
[0082] As shown in FIG. 11, in the present embodiment, the material data indicates identification information of the material (referred to as "material ID"). Further, in the present embodiment, the game system 1 stores material information indicating the properties and textures of the materials prepared in the game for each material. In the present embodiment, the material information associates the material ID, the properties of the material, and the appearance of the material (specifically, the texture). Specifically, the material information is information that associates the material ID, the identification information of the properties of the material (referred to as "property ID"), and the identification information of the texture of the material (referred to as "texture ID") (see FIG. 11).
[0083] FIG. 12 is a diagram showing an example of property information indicating the properties of a material. As shown in FIG. 12, the game system 1 stores property information that associates the above property ID with information indicating the content of the property indicated by the property ID. The properties of the material are the properties that the voxel object in which the material is set has in the game, and are, for example, information such as the weight and slipperiness shown in FIG. 12. Note that the specific content of the property is arbitrary, and for example, the following information may be set as the properties of the material. · Temperature · Fragility (for example, the number of times until the voxel object breaks when an impact is applied to the voxel object) · Whether another object adheres to the voxel object · The amount of health restored to the player character when the player character destroys a voxel object · The amount of in-game currency acquired by the player character when the player character destroys a voxel object Note that the specific content of the properties set for the material is arbitrary. In other embodiments, information different from the above may be set as information indicating the properties of the material.
[0084] FIG. 13 is a diagram showing an example of texture information indicating the texture of a material. As shown in FIG. 13, the game system 1 stores texture information associating the above texture ID with the texture indicated by the texture ID.
[0085] Note that, as data defining the appearance of the voxel object, in addition to the texture information, any information regarding color and / or pattern may be set. For example, as information regarding the appearance of the voxel object, a crack pattern may be set. By using such a pattern, the game system 1 can generate an image of a voxel object representing an appearance with cracks.
[0086] As described above, in the present embodiment, the material data defines the properties of the voxel object and the texture to be used for the voxel object by the material ID. For example, when the material ID indicated by the material data included in the voxel data is "002", the property indicated by the property ID "001" associated with the material ID in the material information is set as the property of the voxel object corresponding to the voxel data (see the arrow shown in FIG. 11). Also, in the above case, the texture indicated by the texture ID "002" associated with the material ID in the material information is applied to the voxel object corresponding to the voxel data (see the arrow shown in FIG. 11).
[0087] As described above, in this embodiment, the game system 1 manages the properties and textures of materials separately. Therefore, in this embodiment, it is possible to easily set up multiple types of materials that have the same properties but different appearances (i.e., textures), or multiple types of materials that have different properties but the same appearance.
[0088] Note that the material data may be any data that can identify the properties and / or textures of the material. For example, in other embodiments, the material data may indicate the above property ID and texture ID, or may have a data structure that actually includes data indicating the properties and textures of the material.
[0089] Also, the material data may be information related to the material and may further indicate other information different from the above properties and textures. For example, the material data may include effect data indicating an effect that occurs when an effect generation condition (e.g., a part of the voxel object is destroyed, or a character steps on the voxel object) set for the voxel object is satisfied. Note that the effect data may be data indicating an effect image (e.g., an effect image representing that the voxel object has been destroyed), or may be data indicating an effect sound (the sound of footsteps when a character walks on the voxel object).
[0090] As shown in FIG. 11, the voxel data includes state data indicating the state of the voxel object. The specific content of the state data is arbitrary. For example, the state data may be data indicating whether the voxel object is in a wet state, or may be data indicating the amount of damage applied to the voxel object. The content of the state data may be updated during the game.
[0091] [2-2. Mesh] In this embodiment, the surface of the voxel object is represented by a mesh. A mesh is a collection of a plurality of faces (specifically, polygons) arranged in the game space. In this embodiment, the game system 1 generates a mesh of the voxel object based on the voxel data of each voxel set in the game space. Hereinafter, an example of generating a mesh based on voxel data will be described.
[0092] FIG. 14 is a diagram showing an example of a method for generating a mesh. Note that in FIG. 14, for the purpose of making the drawing easy to view and the explanation easy to understand, the voxels and the mesh are represented two-dimensionally, but in reality, a three-dimensional mesh is generated based on the voxels in the three-dimensional space.
[0093] As described above, in this embodiment, the density set for each voxel is set in the range of 0 to 255. Also, in this embodiment, voxels with a density equal to or higher than the reference value are considered to be inside the object, and voxels with a density lower than the reference value are considered to be outside the object. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., reference value = 1), and the reference value can be, for example, 128. In the example shown in FIG. 14, the density of voxel 201 and other outer voxels is 0, the density of voxel 202 is 100 which is lower than the reference value, and the densities of voxels 203 and 204 are set to 150 and 200 which are equal to or higher than the reference value. In this embodiment, the game system 1 generates vertices between voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. Specifically, for each region spanning eight (four in the drawing) adjacent voxels (the region surrounded by the dotted line in the drawing), a determination is made as to whether to generate a vertex. That is, a vertex is generated in a region that straddles both voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. Further, when the boundary between adjacent vertices (the boundary of the above-described region including each vertex) passes between voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value, a polygon mesh is generated by connecting those vertices. The coordinates of the vertices are determined by comparing the densities of adjacent voxels for each of the X, Y, and Z axes and performing interpolation based on the density difference. At this time, coordinate calculation can be further performed based on normal information. The normal information may be held in advance for at least some of the voxels, or if it is not held, the normal information may also be calculated based on the densities of adjacent voxels. In FIG. 14, since the density of voxel 202 is lower than the reference value, voxel 202 is treated as being outside the object in the determination of the presence or absence of vertices, but the density value of voxel 202 itself is used in the coordinate calculation of the generated vertices. If the reference value is set to a value lower than the density of voxel 202, more vertices will be added to the upper right and upper left sides of voxel 202 in FIG. 14.
[0094] By generating a polygon mesh as described above, it is possible to generate a shape having a volume that reflects the density for each voxel to some extent. However, depending on the relationship with adjacent voxels, there may be cases where a voxel with a density of 0 includes a region within a part of the object, or a voxel with a density of 255 includes a region outside a part of the object. Also, in the present embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume becomes smaller by the number of vertices being reduced compared to the case of processing them as inside the object. That is, it is not necessary to calculate the polygon mesh so as to have a volume that strictly corresponds to the density value.
[0095] FIG. 15 is a diagram showing an example of a game image including a terrain object. In the present embodiment, by generating a mesh as described above, a voxel object can be made into a shape having, for example, complex unevenness compared to the length of one side of a voxel.
[0096] Note that the method of generating a mesh based on voxel data is arbitrary. For example, in other embodiments, when the density of voxel data is greater than a predetermined value, a mesh may be generated such that a cube is arranged at the voxel (see FIG. 8).
[0097] For each face of the mesh generated as described above, the game system 1 determines the appearance (i.e., color and / or pattern) of each face according to the material specified by the voxel data. Specifically, the game system 1 determines the texture to be used for rendering each face of the mesh based on the voxel data, and generates an image of the voxel object by mapping the determined texture to each face. Note that the texture mapped to each face of the mesh is determined based on the voxel data of the voxel (referred to as the target voxel) used to generate the face among the voxels where the voxel object exists. Note that the target voxel depends on the method of generating the mesh, but is, for example, one or more voxels arranged around the face. That is, the texture mapped to the face of the mesh is determined to be a texture corresponding to the material set for one or more voxels arranged around the face.
[0098] In other embodiments, one voxel data may include multiple types (e.g., two types) of material data. At this time, the voxel data includes ratio data regarding the multiple types of material data. The ratio data is data for determining the texture to be used for the voxel object, and indicates the ratio of the influence of each material (specifically, the texture corresponding to the material) indicated by the multiple types of material data on the appearance (specifically, color and / or pattern) of the voxel object. Also, when determining the texture mapped to each face of the mesh, the texture is determined based on various data (specifically, density data, multiple types of material data, and ratio data) included in the voxel data of the target voxel. For example, when multiple types of materials are set for the target voxel corresponding to one face, the texture corresponding to the material (one type) with the greatest degree of influence may be used in consideration of the ratio, or each texture corresponding to the multiple types of materials may be used in consideration of the ratio.
[0099] In another embodiment, there may be both a voxel object using voxel data including one type of material data and a voxel object using voxel data including two types of material data.
[0100] (Overview of Game Processing) Next, the voxel objects arranged in the game space when the game of this embodiment is executed will be described. FIG. 16 is a diagram showing an overall schematic view of the game space in the game of this embodiment. FIG. 17 is an image of the game space as seen from a virtual camera, and shows an example of a game image displayed on a display device.
[0101] In the game of this embodiment, a plurality of game stages are prepared, and the game space is set for each game stage. For example, there are a rocky mountain game stage, a volcanic game stage, a wilderness game stage, etc. In FIG. 16, for example, a rocky mountain game stage is shown, and a view of the game stage from above the game space is shown.
[0102] As shown in FIG. 16, a player character PC is arranged in the game space. The player character PC moves within the game space and performs various actions such as jumping and punching within the game space according to the player's operations. The player character PC is not a voxel object, but a 3D object whose shape is defined by polygons in advance.
[0103] When the game starts, a fixed voxel space defined in the Xs-Ys-Zs coordinate system is set as a voxel space representing a field within the game space. The Xs-Ys-Zs coordinate system shall be an axial direction parallel to the XYZ coordinate system of the game space. That is, the Ys axis is the axis pointing upward in the game space, and the Xs axis and the Zs axis are axes perpendicular to the Ys axis. The voxel space defined in the Xs-Ys-Zs coordinate system may hereinafter be referred to as the "field voxel space". The position of each object existing in the game space is represented by the coordinate values of the Xs-Ys-Zs coordinate system. Here, although the orientation of the Xs-Ys-Zs coordinate system representing the field voxel space is assumed to be the same as that of the XYZ coordinate system representing the game space, they do not have to be the same.
[0104] In the field voxel space, a terrain object is set as a voxel object. For example, as the terrain object, a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain are set. For example, by setting material data representing rock in the voxel data of each voxel located downward in the field voxel space, a terrain object 210 representing a ground made of rock is formed. Also, by setting material data representing rock in the voxel data of a plurality of voxels located above the above-mentioned ground in the field voxel space, a terrain object 220 representing a rocky mountain rising from the ground is formed.
[0105] The terrain object 210 representing the ground and the terrain object 220 representing the rocky mountain can be destroyed by the player character PC. The terrain objects 210 and 220 are destroyed by updating the voxel data of the voxels in the field voxel space. The destruction of objects will be described later.
[0106] Also, as shown in FIGS. 16 and 17, a rock object A is arranged in the game space. The rock object A is a type of terrain object and can be destroyed, grasped, or thrown by the player character PC.
[0107] Specifically, the rock object A is a voxel object different from the terrain objects 210 and 220 defined by the field voxel space. The shape of the rock object A is defined by the voxel data of a plurality of voxels within the voxel space VLa. The voxel space VLa is a voxel space arranged within the game space, separate from the field voxel space, and is defined in the Xa - Ya - Za coordinate system. Density values indicating the existence of an object and material data representing rock are set in the voxel data of the plurality of voxels within the voxel space VLa. The rock object A is displayed by generating and rendering a polygon mesh based on the voxel data of each voxel as described above. Although the voxel space VLa is shown by a dotted line in FIGS. 16 and 17 for the purpose of explanation, in reality, the dotted line indicating the voxel space VLa is not displayed during the game.
[0108] The voxel space VLa can be moved or rotated within the game space. For example, when the player character PC performs an action of throwing the rock object A, by moving the voxel space VLa within the game space, the rock object A moves within the game space while maintaining its shape. Also, by rotating the voxel space VLa within the game space, the rock object A rotates within the game space.
[0109] Also, the rock object A may be destroyed, for example, by a destruction action performed by the player character PC. When a destruction action is performed on the rock object A, part or all of the rock object A is erased, or a part of the rock object A is separated. Specifically, the rock object A is destroyed by rewriting the voxel data of each voxel in the voxel space VLa. The destruction of the rock object A will be described in detail later.
[0110] Note that the rock object A may be arranged in the game space in advance. For example, initial data for forming a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain as shown in FIG. 16 is stored in an internal storage medium such as the flash memory 84 or an external storage medium attached to the slot 23. The initial data may include the rock object A. That is, the rock object A is an object stored as initial data and may be initially arranged in the game space. In this case, the voxel space VLa is defined in advance in the initial data.
[0111] Alternatively, the rock object A may not be included in the initial data and may be generated during the execution of the game. For example, based on the initial data, a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain are generated and the game starts. During the execution of the game, for example, a part of the terrain object 210 representing the ground or the terrain object 220 representing the rocky mountain is destroyed by a destruction action (e.g., a punch or an action of firing a bullet) of the player character PC. Due to this destruction, a part of the terrain object 210 or the terrain object 220 is separated, and a part of it may be generated as the rock object A. In this case, the voxel space VLa is not defined in advance in the initial data. When the terrain object 210 or the terrain object 220 is destroyed and its fragment is generated as the rock object A, the voxel space VLa is defined.
[0112] Also, as shown in FIGS. 16 and 17, an enemy object B is arranged in the game space. The enemy object B is a character automatically controlled by the processor 81, which moves within the game space, changes its posture, and attacks the player character PC.
[0113] The enemy object B is a voxel object. The shape of the enemy object B is defined by the voxel data of a plurality of voxels in the voxel space VLb. The voxel space VLb is a voxel space different from the field voxel space arranged within the game space and is defined in the Xb - Yb - Zb coordinate system. Density values indicating the existence of an object and material data representing the enemy object are set in the voxel data of the plurality of voxels in the voxel space VLb. Thereby, the enemy object B is formed. By generating and rendering a polygon mesh based on the voxel data of each voxel as described above, the enemy object B is displayed. In FIGS. 16 and 17, the voxel space VLb is shown by a dotted line for the sake of explanation, but actually, the dotted line indicating the voxel space VLb is not displayed during the game.
[0114] Note that the hands, feet, and facial parts (mouth and eyes) of the enemy object B are not voxel objects but 3D objects whose shapes are predefined by polygons. The torso part (the elliptical part in the figure) of the enemy object B is a voxel object, and the shape of the torso part is defined by generating a mesh based on the voxel data as described above. Then, 3D objects representing the hands, feet, and facial parts are attached to the generated mesh (torso part), thereby forming the enemy object B.
[0115] The voxel space VLb can be moved or rotated within the game space. For example, when the voxel space VLb is moved within the game space by the processor 81, the enemy object B moves within the game space. Also, when the voxel space VLb is rotated within the game space, the enemy object B rotates.
[0116] Also, the enemy object B may be destroyed, for example, by a destruction action by the player character PC. Specifically, the enemy object B is destroyed by rewriting the voxel data of each voxel within the voxel space VLb. The destruction of the enemy object B will be described in detail later.
[0117] Also, a weapon object C is placed in the game space. The weapon object C is held, for example, by the enemy object B. The weapon object C is also a voxel object. The shape of the weapon object C is defined by the voxel data of a plurality of voxels within the voxel space VLc. The voxel space VLc is a voxel space different from the field voxel space arranged within the game space and is defined in the Xc - Yc - Zc coordinate system. The weapon object C also moves or changes its orientation within the game space. For example, when the enemy object B performs an action of waving or throwing the weapon object C, the position and / or posture of the voxel space VLc in the game space changes. As a result, the weapon object C moves or changes its posture within the game space. For example, in FIG. 17, the Xc - Yc - Zc coordinate system is inclined with respect to the game space, and the weapon object C is inclined within the game space.
[0118] FIG. 18 is a diagram showing an example of a voxel space VLa arranged in a game space. As shown in FIG. 18, the voxel space VLa is defined by an Xa axis, a Ya axis, and a Za axis. The position of each voxel in the voxel space VLa is represented by the coordinate values of the respective axes of Xa, Ya, and Za. One voxel in the voxel space VLa is a cubic region with a side of a predetermined length. Here, in the game space, a length is defined, and for example, "m (meter)" is used as the unit of length. For example, the height of the player character PC in the game space may be defined as 2 m. The length of one side of one voxel in the voxel space VLa is, for example, "1 m" in the game space. Note that one voxel in the field voxel space is also a cube, and the length of one side thereof is "1 m".
[0119] Voxel data including the density, material data, and state data described above is set for each voxel in the voxel space VLa. As shown in FIG. 18, when a density value indicating the existence of an object and material data representing rock are set for the voxel data of, for example, 125 voxels (= 5 (vertical) × 5 (horizontal) × 5 (height)) in the voxel space VLa, a rock object A with a vertical, horizontal, and height of approximately 5 m each is formed in the game space. For example, for the voxels corresponding to the inside of the object when a mesh is generated among the 125 voxels, the density may be set to 255, and for the voxels corresponding to the surface of the object, the density may be set to a value in the range of 128 to 254 (1 to 255 may also be used). By changing the position of the origin of the voxel space VLa in the game space and the directions of the respective axes (Xa, Ya, Za axes) of the voxel space VLa, the position and orientation of the rock object A in the game space are changed.
[0120] FIG. 19 is a diagram showing an example of a voxel space VLb arranged in a game space. As shown in FIG. 19, the voxel space VLb is defined by the Xb-axis, Yb-axis, and Zb-axis. The position of each voxel in the voxel space VLb is represented by the coordinate values of the respective axes of Xb, Yb, and Zb. One voxel in the voxel space VLb is smaller than one voxel in the voxel space VLa (and the field voxel space). For example, the length of one side of one voxel in the voxel space VLb is "0.5 m" in the game space. Therefore, in the voxel space VLb, for example, when a density value indicating the existence of an object and material data representing the enemy object B are set in the voxel data of a plurality of voxels included in a range illustrated as an ellipsoid with a length and width of 3 m and a height of 2 m, a torso portion of the enemy object B having an approximately ellipsoidal shape with a length and width of about 3 m and a height of about 2 m is formed in the game space. For example, for the voxels corresponding to the inside of the torso among the plurality of voxels, the density may be set to 255, and for the voxels corresponding to the surface of the torso, the density may be set to a value in the range of 1 to 254. By changing the position of the origin of the voxel space VLb in the game space and the directions of the respective axes (Xb, Yb, Zb axes) of the voxel space VLb, the position and orientation of the enemy object B in the game space are changed.
[0121] Although not shown in the figure, a voxel space VLc for representing the weapon object C is defined by the Xc-axis, Yc-axis, and Zc-axis. One voxel in the voxel space VLc is smaller than one voxel in the voxel space VLa (and the field voxel space), and the length of one side of one voxel in the voxel space VLc may be, for example, "0.5 m", or may be a value shorter or longer than "0.5 m". By changing the position of the origin of the voxel space VLc in the game space and the directions of the respective axes (Xc, Yc, Zc axes) of the voxel space VLc, the position and orientation of the weapon object C in the game space are changed.
[0122] Next, the destruction of each object will be described. In this embodiment, the range of destruction is different when a destruction action is performed on a terrain object and when a destruction action is performed on an enemy object.
[0123] FIG. 20 is a diagram showing an example of the destruction range of the rock object A as a terrain object. FIG. 21 is a diagram showing an example of the destruction range of the enemy object B. In FIG. 20, each voxel is shown as a square when the voxel space VLa is viewed planar. Similarly, in FIG. 21, each voxel is shown as a square when the voxel space VLb is viewed planar.
[0124] When a destruction action (for example, punch, kick, firing a bullet, etc.) is performed by the player character PC and the destruction action hits the rock object A which is a terrain object, a first destruction range is set. As shown in FIG. 20, the first destruction range is set based on the position where the destruction action hits. For example, the first destruction range is set centered on the position where the destruction action hits. For example, when a punch is performed as the destruction action, the first destruction range in the voxel space VLa is set centered on the position in the voxel space VLa corresponding to the position (or the vicinity of the fist) of the fist of the player character PC in the game space. Then, the destruction process described later is performed on each voxel in the voxel space VLa included in the first destruction range. The first destruction range is, for example, a sphere with a diameter of 4m.
[0125] Specifically, whether it is included in the first destruction range is determined by the SDF (Signed Distance Field). For example, the range where the distance from the center is a negative value with respect to the diameter is represented as the inside of the shape, and the range where the distance is a positive value is represented as the outside of the shape. When a destruction action is performed by the player character PC and hits the rock object A, based on the signed distance from the position where the destruction action hits, it is determined whether each voxel in the voxel space VLa is within the first destruction range. Then, for the voxels within the first destruction range, as a destruction process, the voxel data is updated.
[0126] Also, when a destruction action is performed by the player character PC and hits the enemy object B, as shown in FIG. 21, a second destruction range is set with reference to the position where the destruction action hits. For example, the second destruction range is set centered on the position where the destruction action hits. For example, when a punch is performed as the destruction action, the second destruction range is set centered on the position in the voxel space VLb corresponding to the position of the player character PC's fist (or the vicinity of the fist) in the game space. Then, for each voxel in the voxel space VLb included in the second destruction range, a destruction process is performed. The second destruction range is, for example, a sphere with a diameter of 2m.
[0127] Regarding the second destruction range as well, similar to the first destruction range, it is determined by the SDF. When a destruction action is performed by the player character PC and hits the enemy object B, based on the signed distance from the position where the destruction action hits, it is determined whether each voxel in the voxel space VLb is within the second destruction range. Then, for the voxels within the second destruction range, as a destruction process, the voxel data is updated.
[0128] As described above, the destruction range varies depending on the type of object that the destruction action hits. When the destruction action hits the enemy object B, the destruction range is smaller than when the destruction action hits the terrain object. Note that the sizes and shapes of the first destruction range and the second destruction range are merely examples and are not limited to those described above. Also, the first destruction range and the second destruction range are not constant, and their shapes and sizes may be changed depending on the type of destruction action, the position where the destruction action hits, the surrounding situation, and the like.
[0129] For example, in the case where a terrain object is formed so as to protrude from the ground, when the destruction action hits the protruding portion, the first destruction range is set based on the position where the destruction action hits. Note that the destruction range does not necessarily have to be spherical and may be of any shape. For example, it can also be a range with a flat bottom surface.
[0130] FIG. 22 is a diagram for explaining an example of the destruction process for the voxels included in the first destruction range.
[0131] As shown in FIG. 22, when the destruction action hits the rock object A, the voxel data of the voxels in the voxel space VLa within the first destruction range based on the position where the destruction action hits is updated. Specifically, for the voxels completely included in the first destruction range, the voxel data is rewritten to a value indicating that no object exists. Here, the voxels completely included in the first destruction range are voxels A100, A101, A102, and A103 in FIG. 22. That is, when all regions of a certain voxel are included within the first destruction range, the voxel is completely included in the first destruction range. Then, a value indicating that no object exists is set in the voxel data of the voxels A100, A101, A102, and A103 completely included in the first destruction range. More specifically, the density of the voxels A100, A101, A102, and A103 completely included in the first destruction range is set to "0".
[0132] Also, the voxel data of the voxels partially included within the first destruction range is also updated. Specifically, the density of the voxels partially included within the first destruction range is lowered to a value smaller than the upper limit value. For example, the density of the voxels is set within the range of 1 to 254. The voxels partially included within the first destruction range are voxels where a part of the region is included within the first destruction range and another part of the region is not included within the first destruction range. For example, in FIG. 22, the voxels partially included within the first destruction range are voxels A104, A105, A106, A107, A108, A109, A110, A111, A112, A113, A114, A115.
[0133] Note that, for example, regarding the voxels partially included within the first destruction range, the amount of density reduction may vary according to the size of the region included within the first destruction range. For example, the larger the region included within the first destruction range, the larger or smaller the amount of density reduction may be. Also, regarding the voxels partially included within the first destruction range, regardless of the size of the region included within the first destruction range, the amount of density reduction may be the same. Also, regarding the voxels partially included within the first destruction range, similar to the voxels completely included within the first destruction range, the density may be set to "0".
[0134] On the other hand, for the voxels not included within the first destruction range, for example, voxels A116, A117, A118, the voxel data does not change. That is, the density of the voxels not included within the first destruction range is maintained. Note that for the voxels adjacent to the voxels partially included within the first destruction range (for example, voxels A116 and A117), the voxel data may be changed, and for the voxels not adjacent to the voxels partially included within the first destruction range (for example, voxel A118), the voxel data may not be changed.
[0135] In this way, the voxel data (specifically, density) of the voxels completely included in the first destruction range is set to a value indicating the absence of an object. That is, the rock object A is erased from the area completely included in the first destruction range. Also, the voxel data (specifically, density) of the voxels partially included within the first destruction range is lowered to a value less than the upper limit value. As described above with reference to FIG. 14, the shape of the surface of the voxel object is defined according to the density. In this way, the voxel data (specifically, density) of each voxel for forming the rock object A is updated, and based on the updated voxel data, the surface (mesh) of the rock object A is updated. Therefore, the shape of the surface of the rock object A after the destruction process is not a smooth spherical surface like the surface of the first destruction range, but a natural shape with some irregularities.
[0136] In addition, in FIG. 22, the destruction process for the voxels included in the first destruction range was described by taking the rock object A, which is an example of a terrain object, as an example, but the same applies to other terrain objects. For example, when a destruction action is performed on a terrain object 210 defined as a voxel within the field voxel space by a player character PC (or an enemy object B), the first destruction range is set based on the position where the destruction action hits. For example, when a punch is performed by the player character PC as the destruction action, the first destruction range within the field voxel space is set centered on the position within the field voxel space corresponding to the position of the player character PC's fist (or the vicinity of the fist) within the game space. For the voxels within the field voxel space completely included in the first destruction range, a value indicating the absence of an object (for example, "0") is set for the density. Also, for the voxels within the field voxel space partially included within the first destruction range, the density is lowered to a value less than the upper limit value. The same applies when a destruction action is performed on a terrain object 220 defined within the field voxel space.
[0137] Also, when a destruction action is performed on enemy object B, although the destruction range is different, similar processing is carried out. That is, when a destruction action is performed on enemy object B, for the voxels that are completely included in the second destruction range defined based on the position where the destruction action hits, a value indicating that there is no object in the density is set. For example, for the voxels that are completely included in the second destruction range, the density is set to "0". Also, for the voxels that are partially included in the second destruction range, the density is decreased to a value less than the upper limit value and greater than "0".
[0138] FIG. 23 is a diagram showing an example of the shape of rock object A after being destroyed by the destruction process. FIG. 24 is a diagram showing an example of the shape of enemy object B after being destroyed by the destruction process.
[0139] As shown in FIG. 23, when the voxel data of the voxels in the first destruction range is updated due to a destruction action being performed on rock object A, a part of rock object A is destroyed and changes to a shape with a hole. The size of the hole (cavity) in rock object A is relatively large. For example, the diameter of the hole in rock object A is about 4 m in the game space.
[0140] Also, as shown in FIG. 24, when the voxel data of the voxels in the second destruction range is updated due to a destruction action being performed on enemy object B, a part of enemy object B is destroyed and changes to a shape with a hole. The size of the hole (cavity) in enemy object B is smaller than the hole in rock object A. For example, the diameter of the hole in enemy object B is about 2 m in the game space.
[0141] In this way, by varying the destruction range according to the object hit by the destruction action, it is possible to efficiently (quickly) destroy according to the type of object hit by the destruction action, or to make the player feel a sense of resistance when destroying the object. For example, when the destruction action hits a terrain object, the destruction range can be increased so that a wider range can be destroyed by a single destruction action (such as a punch), efficiently destroying the terrain.
[0142] Also, generally, enemy object B is smaller than the terrain object. However, if the same wide destruction range as that of the terrain object is destroyed by a single destruction action against enemy object B, enemy object B may be easily destroyed. In this embodiment, when the destruction action hits enemy object B, the destruction range is made smaller compared to the case when it hits the terrain object, and a narrow range is destroyed by a single destruction action. This makes it impossible to easily destroy enemy object B and makes the attack on enemy object B more substantial. Also, by representing enemy object B in voxel data and changing the voxel data according to the destruction action, the process of destroying enemy object B (the process of attack) can be represented, and by making the destruction range smaller, the state of enemy object B being gradually destroyed can be displayed.
[0143] Also, in this embodiment, the voxel resolution of the enemy object B is set higher than that of the terrain object. Specifically, the length of one side of each voxel in the voxel space VLb representing the enemy object B is, for example, 0.5 m in the game space. On the other hand, the length of one side of each voxel in the voxel space (voxel space VLa or field voxel space) representing the terrain object is, for example, 1 m in the game space. By setting the voxel resolution of the enemy object B higher than that of the terrain object in this way, the shape of the enemy object B can be represented in finer detail. Also, when destroying the enemy object B, the process of destruction can be represented in finer detail.
[0144] In addition, when the destruction action of the player character PC hits the weapon object C held by the enemy object B, a second destruction range may be set, or a third destruction range smaller or larger than the second destruction range may be set. Then, the weapon object C may be destroyed by changing the voxel data of the voxels included in the set destruction range. Also, a plurality of types of enemy objects represented by voxel data may appear in the game space, and different-sized destruction ranges may be set for each type of enemy object. Also, for other objects represented by voxel data that can move within the game space, when a destruction action hits, a destruction range of a size different from that of the terrain object may be set. The destruction range of an object that can move within the game space may be smaller than the destruction range of the terrain object. Also, the voxel resolution of an object that can move within the game space may be higher than the voxel resolution of the terrain object.
[0145] In addition, in the above description, when a destruction action is performed on a terrain object, the first destruction range is set. However, the destruction range may vary depending on the terrain object. For example, the destruction range may vary depending on the type of terrain object (materials such as rock, soil, sand, etc.), or it may vary depending on the size of the terrain object. Also, for example, the destruction range may be different between a terrain object fixed in the game space (e.g., the terrain object 210 representing the ground or the terrain object 220 representing a rocky mountain) and a terrain object movable in the game space (rock object A). For example, the destruction range of a terrain object movable in the game space may be smaller than the destruction range of a terrain object fixed in the game space. Also, the voxel resolution of a terrain object movable in the game space may be higher than the voxel resolution of a terrain object fixed in the game space.
[0146] Note that in this embodiment, when a destruction action hits a voxel object, destruction processing (density update) for the voxels included in the destruction range based on the position where the destruction action hits is not necessarily performed. The density of the voxels included in the destruction range is updated according to the "ease of breakage" of the material (also referred to as substance or material) in the material data set for the voxels. Specifically, the density of the voxels included in the destruction range may or may not be updated according to the "hardness of the side doing the destruction", the "hardness of the side being destroyed", and the "amount of damage" of the voxels.
[0147] More specifically, the "hardness of the breaking side" varies depending on the type of breaking action. For example, the "hardness of the breaking side" is determined within the range of 1 to 5 according to the type of breaking action (punching, kicking, shooting a bullet, throwing a rock, etc.). Also, as described above, the voxel data includes material data, and "easiness to break" is set as a property of the material. Specifically, "easiness to break" is determined by the "hardness" and "durability value" preset in the material. That is, the "hardness of the side to be broken" is the hardness set for the material of the voxel object hit by the breaking action, and is determined, for example, within the range of 1 to 5. For example, the hardness of a rock is preset to "3", and the hardness of iron is preset to "5". Also, the amount of damage to the voxel is stored as state data in the voxel data and varies, for example, within the range of 0 to 15.
[0148] When the "hardness of the breaking side" is equal to or greater than the "hardness of the side to be broken", the density of the voxels within the breaking range is updated as described above. That is, in this case, the voxel objects within the breaking range are broken by a single breaking action. When the "hardness of the breaking side" is less than the "hardness of the side to be broken" and the difference is less than a predetermined value, the amount of damage to the voxels within the breaking range is updated. For example, the amount of damage to the voxel is set based on the hardness of the breaking side and / or the hardness of the material. When the accumulated amount of damage to the voxels by multiple breaking actions exceeds the above durability value, the density of the voxels is updated. That is, when the "hardness of the breaking side" is less than the "hardness of the side to be broken" and the difference is less than a predetermined value, the density of the voxels within the breaking range is not updated (the voxels are not broken) by a single breaking action, but the density is updated by multiple breaking actions. On the other hand, when the "hardness of the breaking side" is less than the "hardness of the side to be broken" and the difference is equal to or greater than the predetermined value, the amount of damage to the voxels within the breaking range is not updated and the density is not updated either. In this case, even if multiple breaking actions hit the voxel object, the voxel object is not broken.
[0149] For example, assume that the "hardness of the breaking side" set for the first destruction action is "2", and the hardness of the voxel material (the hardness of the side to be broken) is "3". In this case, since the "hardness of the breaking side" is smaller than the "hardness of the side to be broken" and the difference is less than a predetermined value, the damage amount of the voxels included in the destruction range set according to the voxel object hit by the first destruction action is updated. By performing the first destruction action multiple times, the damage amount of the voxels included in the destruction range is accumulated. When the damage amount of the voxel exceeds the durability value, the density of the voxel is updated. Specifically, as described above, the density of the voxels completely included in the destruction range is set to "0", and the density of the voxels partially included in the destruction range is decreased to a value less than the upper limit value.
[0150] Also, when the "hardness of the breaking side" set for the second destruction action is "4" and the "hardness of the side to be broken" is "3", the voxel object is broken by one second destruction action. That is, in this case, since the "hardness of the breaking side" is greater than the "hardness of the side to be broken", when the second destruction action hits the voxel object, the update of the above damage amount is omitted, and the density of the voxels included in the destruction range is updated.
[0151] Also, when the "hardness of the breaking side" set for the third destruction action is "1" and the "hardness of the side to be broken" is "3", the voxel object is not broken even if the third destruction action is performed multiple times. That is, in this case, since the "hardness of the breaking side" is smaller than the "hardness of the side to be broken" and the difference is greater than or equal to a predetermined value, even when the third destruction action hits the voxel object, the damage amount and density of the voxel are not updated.
[0152] [3. Specific Examples of Processing in the Game System] Next, with reference to FIGS. 25 to 27, a specific example of information processing in the game system 1 will be described.
[0153] FIG. 25 is a diagram showing an example of various data used for information processing in the game system 1. As shown in FIG. 25, the game system 1 stores a game program, game space data, field voxel space data 300, first voxel space data 310, second voxel space data 320, and mesh data.
[0154] The game program is a program for executing the game processing in the present embodiment (specifically, the game processing shown in FIG. 26). The game program is pre-stored in a storage medium mounted in the slot 23 or the flash memory 84, and is read into the DRAM 85 when the game is executed.
[0155] The game space data is data for defining the game space and includes data representing the XYZ coordinate system.
[0156] The field voxel space data 300 is data regarding the entire field voxel space. In the present embodiment, a plurality of game stages are prepared, and initial field voxel space data is prepared for each game stage. As shown in FIG. 25, the field voxel space data 300 includes size data 301. The size data 301 indicates the length of one side of each voxel in the field voxel space. For example, the length of one side of each voxel in the field voxel space is 1 m. In the present embodiment, the length of one side of each voxel in the field voxel space is the same regardless of the type of game stage. Note that the length of one side of each voxel in the field voxel space may be different depending on the type of game stage. Further, the field voxel space data 300 includes position data 302. The position data 302 is data representing the position and rotation in the game space of the field voxel space. In the present embodiment, it is assumed that the field voxel space is fixed in the game space.
[0157] In addition, the field voxel space data 300 includes field volume data 303. The field volume data 303 includes voxel data for each voxel within the field voxel space. Voxel data is set for each voxel, and a mesh is generated based on the voxel data, thereby forming a terrain within the game space. Initial field volume data 303 is pre-stored in the storage medium or flash memory 84 mounted on the slot 23 for each game stage (for each field voxel space data 300). At the start of the game, the field volume data 303 stored in the storage medium or flash memory 84 mounted on this slot 23 is read into the DRAM 85. Thereby, an initial terrain is formed. During the execution of the game, the terrain is changed by changing each voxel data included in the field volume data 303 stored in the DRAM 85.
[0158] The first voxel space data 310 is data regarding the voxel space VLa arranged within the game space. The first voxel space data 310 includes size data 311, position data 312, and first volume data 313. The size data 311 includes data indicating the length of one side of each voxel within the voxel space VLa and data indicating the number of voxels in the direction of each axis (Xa, Ya, Za axes) of the voxel space VLa. For example, the length of one side of each voxel within the voxel space VLa is "1 m". This size data 311 determines the size of the voxel space VLa in the game space. Also, the position data 312 is data representing the position and rotation of the voxel space VLa in the game space. For example, the position data 312 includes coordinate data representing the position in the game space and vector data representing the direction of each axis (Xa, Ya, Za axes) of the voxel space VLa in the game space. By changing this position data 312, the position and / or orientation of the voxel space VLa (i.e., the rock object A) in the game space is changed. Also, the first volume data 313 is data for representing the rock object A. The first volume data 313 holds voxel data indicating the existence of an object for each voxel included within the voxel space VLa. That is, the first volume data 313 includes the voxel data of each voxel included within the voxel space VLa. By setting voxel data for each voxel within the voxel space VLa and generating a mesh based on the voxel data, the rock object A is formed.
[0159] The second voxel space data 320 is data regarding the voxel space VLb arranged within the game space. The second voxel space data 320 includes size data 321, position data 322, and second volume data 323. The size data 321 includes data indicating the length of one side of each voxel within the voxel space VLb and data indicating the number of voxels in the direction of each axis (Xb, Yb, Zb axes) of the voxel space VLb. For example, the length of one side of each voxel within the voxel space VLb is "0.5 m". Based on this size data 321, the size of the voxel space VLb in the game space is determined. Also, the position data 322 is data representing the position and rotation of the voxel space VLb in the game space. For example, the position data 322 includes coordinate data representing the position in the game space and vector data representing the direction of each axis (Xb, Yb, Zb axes) of the voxel space VLb in the game space. By changing this position data 322, the position and / or orientation of the voxel space VLb (i.e., the enemy object B) in the game space is changed. Further, the second volume data 323 is data for representing the enemy object B. The second volume data 323 holds voxel data indicating the existence of an object for each voxel included within the voxel space VLb. That is, the second volume data 323 includes the voxel data of each voxel included within the voxel space VLb. By setting voxel data for each voxel within the voxel space VLb and generating a mesh based on the voxel data, the enemy object B is formed.
[0160] Mesh data is data indicating the mesh set for a voxel object arranged in the game space. The mesh data includes, for example, data indicating the position of each vertex in the mesh. The mesh data is generated based on the volume data 303, 313, 323, etc.
[0161] In addition to the data shown in FIG. 25, the game system 1 stores, as data pre-stored before the execution of game processing, data such as the above-described property information and texture information, data related to various characters appearing in the game, and the like. Further, 3D object data representing 3D objects different from voxel objects (for example, parts of the player character PC and the hands and feet of the enemy object B) is stored. Also, voxel space data is stored for each voxel object that can move within the game space. For example, voxel space data corresponding to the weapon object C is stored.
[0162] FIG. 26 is a flowchart showing an example of the flow of game processing executed by the game system 1. The game processing shown in FIG. 26 is started, for example, in response to an instruction to start the game being given by the player.
[0163] In the present embodiment, the processor 81 of the main body device 2 executes the processing of each step shown in FIG. 26 by executing the above-described game program stored in the game system 1. However, in other embodiments, some of the processing of each step may be executed by a processor different from the processor 81 (for example, a dedicated circuit or the like). Also, when the game system 1 can communicate with another information processing device (for example, a server), some of the processing of each step shown in FIG. 26 may be executed in the other information processing device. Also, the processing of each step shown in FIG. 26 is merely an example, and if the same result can be obtained, the processing order of each step may be changed, or another processing may be executed in addition to (or instead of) the processing of each step.
[0164] Further, the processor 81 executes the processing of each step shown in FIG. 26 using a memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads out the information from the memory and uses it.
[0165] As shown in FIG. 26, in step S1, the processor 81 sets a game space in an initial state. Specifically, the processor 81 acquires field voxel space data representing the terrain in the game space in the initial state, and stores part or all of the acquired field voxel space data in the DRAM 85. Note that the field voxel space data representing the terrain in the game space in the initial state is stored, for example, in a storage medium mounted in the slot 23 of the main device 2. The field voxel space data includes field volume data 303 (voxel data) representing the terrain. Further, the processor 81 reads voxel space data (first voxel space data 310, second voxel space data 320, etc.) regarding other voxel objects from the above storage medium and stores it in the DRAM 85. The first voxel space data 310 includes first volume data 313 (voxel data) representing the rock object A. Further, the second voxel space data 320 includes second volume data 323 (voxel data) representing the enemy object B. Further, the processor 81 reads 3D object data from the above storage medium, sets the initial position and orientation of the 3D object, and stores it in the DRAM 85. Further, the processor 81 sets the initial position and orientation of the virtual camera and stores it in the DRAM 85.
[0166] Note that the voxel data written to the DRAM 85 may be part of the voxel data in the entire range of the game space and used for generating a game image. For example, the processor 81 may generate an image of an object using the voxel data of voxels included in a part of the game space (for example, a range within a predetermined distance from the position of the virtual camera). Further, when voxel data for a part of the game space is written, the same processing as in step S1 is executed at an appropriate timing (for example, the timing when the position of the virtual camera has moved more than a predetermined distance) during the execution of the series of processes in steps S2 to S11.
[0167] In step S2, the processor 81 generates a mesh for the voxel object. The mesh is generated according to the method described in the above "[2-2. Mesh]". Specifically, the processor 81 generates a mesh representing each voxel object based on each volume data stored in the DRAM 85 in step S1. As a result, the terrain object is constructed in the game space and the enemy object B is placed in the game space. For example, the processor 81 generates a polygon mesh between a voxel with a value indicating the presence of an object and a voxel with a value indicating the absence of an object based on a plurality of voxel data included in the field volume data 303. An example of a specific method for determining vertex positions is as described with reference to FIG. 14. Also, the processor 81 generates a polygon mesh between a voxel with a value indicating the presence of an object and a voxel with a value indicating the absence of an object based on a plurality of voxel data included in the first volume data 313. As a result, a polygon mesh representing the rock object A is generated. Further, the processor 81 generates a polygon mesh between a voxel with a value indicating the presence of an object and a voxel with a value indicating the absence of an object based on a plurality of voxel data included in the second volume data 323. As a result, a polygon mesh representing the enemy object B is generated. After step S2, the game is started, and during the game, the processes of steps S3 to S11 are repeatedly executed at a predetermined frame time interval (for example, at intervals of 1 / 60 second).
[0168] In step S3, the processor 81 controls the operations of various objects (e.g., player character PC and enemy object B) that appear in the game space. For example, the processor 81 moves the player character PC based on the operation data received from the controllers 3 and 4, or causes the player character PC to perform a predetermined action (such as a destruction action, jump, etc.). The destruction action of the player character PC may be a punch, a kick, throwing a projectile, etc. Also, the processor 81 moves the enemy object B based on an algorithm defined in the game program, or causes the enemy object B to perform a destruction action (such as swinging or throwing a weapon object C). The process of step S4 is executed after step S3.
[0169] In step S4, the processor 81 determines whether a destruction action by the player character PC has been performed based on the operation data from the controller. Specifically, based on the operation data from the controller, it is determined whether a predetermined button of the left controller 3 or the right controller 4 has been pressed. If the determination result in step S4 is affirmative, the process of step S5 is executed. On the other hand, if the determination result in step S4 is negative, the process of step S10 is executed.
[0170] In step S5, the processor 81 determines whether the destruction action has hit the voxel object. Here, for example, it is determined whether the destruction action by the player character PC has hit the terrain object or the enemy object B. The terrain objects include the rock object A, the terrain object 210 representing the ground, the terrain object 220 representing the rocky mountain, and the like. The determination as to whether the destruction action has hit the voxel object is made by a physical determination between the object on the destruction side and the voxel object on the side to be destroyed. The object on the destruction side is, for example, the fist of the player character PC when the player character PC punches, and the thrown bullet when the player character PC throws a bullet. The voxel object on the side to be destroyed is the terrain object or the enemy object B, and a determination mesh has been generated. The determination mesh may be the same as the display mesh, or a coarser determination mesh than the display mesh may be prepared. A collision determination is made between the determination mesh and the object on the destruction side, and it is determined whether there is a hit. If the determination result in step S5 is affirmative, the process of step S6 is executed. On the other hand, if the determination result in step S5 is negative, the process of step S10 is executed.
[0171] In step S6, the processor 81 sets a destruction range according to the voxel object that the destruction action has hit. For example, when the destruction action has hit a terrain object, the processor 81 sets a first destruction range based on the position where the destruction action has hit. Also, for example, when the destruction action has hit the enemy object B, the processor 81 sets a second destruction range based on the position where the destruction action has hit. In the game space, the second destruction range is narrower than the first destruction range. The process of step S7 is executed after step S6.
[0172] In step S7, the processor 81 executes voxel data update processing on the voxel object hit by the destruction action. Hereinafter, the voxel data update processing in step S7 will be described with reference to FIG. 27.
[0173] FIG. 27 is a flowchart showing an example of the voxel data update processing in step S7. The processing shown in FIG. 27 is performed on each voxel included in the voxel space of the voxel object hit by the destruction action (in other words, each voxel in the volume data indicating the voxel object hit by the destruction action).
[0174] In step S21, the processor 81 selects one voxel included in the destruction range set in step S6 from among the voxels in the volume data indicating the voxel object hit by the destruction action. Here, a voxel completely included in the destruction range or a voxel partially included in the destruction range is selected. For example, when the destruction action hits the rock object A, one voxel included in the first destruction range set in step S6 is selected from among the voxels in the voxel space VLa. The processing of step S22 is executed next to step S21.
[0175] In step S22, the processor 81 determines whether the hardness of the side to be destroyed determined according to the destruction action is greater than or equal to the hardness of the material indicated by the material data included in the voxel data. If the determination result in step S22 is affirmative, the processing of step S26 is executed next. On the other hand, if the determination result in step S22 is negative, the processing of step S23 is executed next.
[0176] In step S23, the processor 81 determines whether the difference between the hardness of the side to be destroyed and the hardness of the material (the hardness of the side to be destroyed) is less than a predetermined value. If the determination result in step S23 is affirmative, the processing of step S24 is executed next. On the other hand, if the determination result in step S23 is negative, the processing of step S29 is executed next.
[0177] In step S24, the processor 81 updates the damage amount of the selected voxel. For example, the damage amount is updated based on the hardness of the breaking side and the hardness of the material. The process of step S25 is executed after step S24.
[0178] In step S25, the processor 81 determines whether the damage amount of the updated voxel exceeds a predetermined durability value of the material. If the determination result in step S25 is affirmative, the process of step S26 is executed next. On the other hand, if the determination result in step S25 is negative, the process of step S29 is executed next.
[0179] In step S26, the processor 81 determines whether the selected voxel is completely included in the destruction range set in step S6. For example, based on the signed distance from the surface of the set destruction range, it is determined whether the selected voxel is completely included in the destruction range. For example, if the signed distance is a negative value, it is determined that the voxel is included in the destruction range. If the determination result in step S26 is affirmative, the process of step S27 is executed next. On the other hand, if the determination result in step S26 is negative, the process of step S28 is executed next.
[0180] In step S27, as a destruction process, the processor 81 updates the density of the selected voxel from a value indicating the presence of a voxel object (for example, "255") to a value indicating the absence of a voxel object (for example, "0").
[0181] In step S28, as a destruction process, the processor 81 decreases the density of the selected voxel. Specifically, the voxel determined as NO in step S26 is a voxel partially included in the set destruction range. Here, the density of the voxel partially included in the destruction range is decreased to a value smaller than the upper limit value. The process of step S29 is executed after step S28.
[0182] In step S29, the processor 81 determines whether the processing of steps S21 to S28 has been completed for all the voxels included in the destruction range among the plurality of voxels in the voxel space corresponding to the voxel object hit by the destruction action. If the determination result in step S29 is affirmative, the process shown in FIG. 27 ends. On the other hand, if the determination result in step S29 is negative, the processor 81 changes the voxel to be processed among the voxels in the destruction range and executes the process of step S21 again.
[0183] Returning to FIG. 26, after the process of step S7, the processor 81 executes the process of step S8.
[0184] In step S8, the processor 81 determines whether to update the mesh. Here, when the voxel data is updated in step S7, the processor 81 determines to update the mesh. If the determination result in step S8 is affirmative, the process of step S9 is executed. On the other hand, if the determination result in step S8 is negative, the process of step S10 is executed. Note that even when the voxel data is updated in step S7, if there are no updated voxels within the imaging range of the virtual camera, the processor 81 may determine not to update the mesh in step S8. That is, even when a destruction action hits a terrain object or an enemy object B and part or all of the terrain object or enemy object B is destroyed, if the voxel object in the game space visible from the virtual camera is not destroyed, the mesh may not be updated. Also, in cases where the processing load is high, etc., the mesh update may not be performed in the current frame and carried over to subsequent frames.
[0185] In step S9, the processor 81 updates the mesh for the voxel object whose voxel data was changed in step S7. Specifically, based on the updated voxel data, the vertex positions of the mesh are recalculated. The updated mesh is stored in the DRAM 85 as mesh data. That is, the processor 81 generates a mesh for the destroyed voxel object based on the voxel data after the update in step S7. Thereby, the mesh of the voxel object (terrain object or enemy object B) for which the destruction action has been performed can be dynamically changed during the game. In step S9, the vertices of the mesh are recalculated only for the portion where the voxel data has been updated. For the mesh of the portion where the voxel data has not been updated, the vertex positions of the mesh generated in step S2 are used. In this way, since the mesh is recalculated only for the updated voxel data, the processing load can be reduced. In other embodiments, in step S9, based on all the voxel data in the game space (or all the voxel data within the imaging range of the virtual camera), including both the updated voxel data and the voxel data that has not been updated, the recalculation of the vertex positions of the mesh may be performed. The process of step S10 is executed after step S9.
[0186] In step S10, the processor 81 generates a game image representing the game space based on the virtual camera, and causes the generated game image to be displayed on the display device. Specifically, the processor 81 generates a game image when viewing the mesh generated in step S2 or S9 from the position of the virtual camera. Thereby, a game image representing the game space including the voxel object and other 3D objects (for example, the player character PC) is generated. Then, the processor 81 causes the generated game image to be displayed on the display device. The process of step S11 is executed after step S10.
[0187] In step S11, the processor 81 determines whether to end the game. For example, the processor 81 determines whether an instruction to end the game has been given by the user. If the determination result in step S11 is negative, the process of step S3 is executed again. Thereafter, a series of processes from step S3 to S11 are repeatedly executed until it is determined in step S11 to end the game. On the other hand, if the determination result in step S11 is positive, the processor 81 ends the game process shown in FIG. 26.
[0188] In FIG. 26, the player character PC performs a destruction action and destroys the terrain object or the enemy object B. However, in addition to the above-described processing, various other processes are performed. For example, when the enemy object B performs a destruction action, the terrain object may be destroyed in the same manner as described above. That is, when the destruction action of the enemy object B hits the terrain object, a first destruction range corresponding to the terrain object is set based on the hit position, and the terrain object within the first destruction range is destroyed. Further, not limited to the destruction of the terrain object, the terrain object may be added. For example, when a predetermined action is performed by the player character PC, a new terrain object may be added. This addition of the terrain object is performed by updating the voxel data as described above. For example, the voxel data of a voxel in which a value indicating the absence of a terrain object is set may be rewritten to a value indicating the presence of a terrain object, so that a new terrain object may be added within the game space. In this case, a new terrain object may be added by updating the voxel data of the voxels within the field voxel space. Further, another voxel space may be newly set in the game space, and a new terrain object may be added by setting the voxel data of the voxels within the voxel space. For example, when a destruction action is performed on a terrain object generated based on the field volume data 303, the density of a plurality of voxels included in the field volume data 303 is set to "0" (a part of the terrain is erased), and another voxel space different from the field voxel space is newly set, and the density of a plurality of voxels within the other voxel space may be set to a value larger than the reference value. As a result, a part of the terrain object is separated, and a new terrain object that can move within the game space is generated. Further, not limited to the destruction of the enemy object B, other enemy objects may be added. The addition of the enemy object is performed by setting a voxel space corresponding to a new enemy object in the game space and setting voxel data in the voxels within the voxel space.
[0189] Also, the processes shown in the above flowchart are merely examples, and the order and content of the processes, the values used for determination, etc. may be changed as appropriate.
[0190] As described above, in this embodiment, the field volume data 303, the first volume data 313, and the second volume data 323 are stored in the memory. The field volume data 303 is data for representing a terrain object, and holds voxel data indicating the presence of an object for each voxel included in the field voxel space arranged in the game space. The first volume data 313 is data for representing a rock object, and holds voxel data indicating the presence of an object for each voxel included in the voxel space VLa arranged in the game space. The second volume data 323 is data for representing an enemy object, and holds voxel data indicating the presence of an object for each voxel included in the voxel space VLb arranged in the game space. For example, when a destruction action is performed on the terrain objects 210, 220 based on the player's operation input, the voxel data of the voxels included in the first destruction range set based on the position where the destruction action hits among the field volume data 303 is updated. Also, when a destruction action is performed on the rock object based on the player's operation input, the voxel data of the voxels included in the first destruction range set based on the position where the destruction action hits among the first volume data 313 is updated. Also, when a destruction action is performed on the enemy object based on the player's operation input, the voxel data of the voxels included in the second destruction range set based on the position where the destruction action hits among the second volume data 323 is updated. Also, a polygon mesh is generated based on the field volume data 303, the first volume data 313, and the second volume data 323.
[0191] As a result, the destruction range can be varied for each object that has been hit by the destruction action. Since the second destruction range is narrower than the first destruction range, a wider range can be destroyed by the destruction action for terrain objects, and a narrower range can be destroyed for enemy objects.
[0192] Also, in the present embodiment, as voxel data, a density indicating the degree to which an object occupies the virtual space defined by the voxel is set. For example, when the destruction action hits a rock object, among the plurality of voxel data included in the first volume data 313, the above-mentioned degree (density) of the voxels included in the first destruction range is decreased. Further, when the destruction action hits an enemy object, among the plurality of voxel data included in the second volume data 323, the above-mentioned degree (density) of the voxels included in the second destruction range is decreased.
[0193] Also, when the destruction action hits a terrain object, the density of at least some of the voxels included in the first destruction range is set to a value indicating that no object exists (specifically, "0"). Specifically, for the voxels completely included in the first destruction range, the density is set to a value indicating that no object exists (specifically, "0"), and for the voxels partially included in the first destruction range, the density is decreased to a value less than the upper limit value. Similarly, the density of at least some of the voxels included in the second destruction range is set to a value indicating that no object exists (specifically, "0"). Specifically, for the voxels completely included in the second destruction range, the density is set to a value indicating that no object exists (specifically, "0"), and for the voxels partially included in the second destruction range, the density is decreased to a value less than the upper limit value. As a result, the density of the voxels can be made different between the inside and the surface of the destruction range, and for example, the surface of the destruction range can be made into a smooth natural shape.
[0194] In addition, in this embodiment, the voxel data further includes material data indicating the material of the object (such as rock, soil, sand, etc.) and the amount of damage. When the destruction action hits a voxel object (terrain object or enemy object), the amount of damage to the voxel is updated based on the type of the destruction action and the hardness of the material indicated by the material data. When the amount of damage added to the voxel exceeds the durability value set for the material, the density of the voxel is updated. As a result, for example, an object can be destroyed by a single destruction action or by multiple destruction actions, and variations can be provided in the way of destruction.
[0195] Also, in this embodiment, the size of one voxel in the game space within the voxel space VLb representing the enemy object is smaller than the size of one voxel in the game space within the field voxel space or the voxel space VLa representing the terrain object. That is, the resolution of the voxels within the voxel space VLb representing the enemy object is higher than the resolution of the voxels within the field voxel space or the voxel space VLa representing the terrain object. Therefore, the enemy object can be represented in more detail than the terrain object.
[0196] (Modification example) The above describes this embodiment, but the above embodiment is merely an example, and for example, the following modifications may be added.
[0197] For example, in the above embodiment, when a destruction action hits a terrain object, a first destruction range is set for the terrain object, and when the destruction action hits an enemy object, a second destruction range smaller than the first destruction range is set for the enemy object. Similar processing may be performed for any other voxel object. For example, when a destruction action hits a first object, a first destruction range may be set for the first object, and when the destruction action hits a second object, a second destruction range smaller than the first destruction range may be set for the second object. Also, the number of types of voxel objects may be three or more, and the destruction range may vary according to these types of voxel objects.
[0198] Also, in the above embodiment, the destruction range is made to vary according to the type of voxel object that the destruction action hits. However, not only the type of voxel object but also, for example, the destruction range may vary depending on the type of destruction action. Even in this case, when the same destruction action is performed, the destruction range varies according to the type of object that the destruction action hits. For example, when a punch hits a terrain object, the first destruction range in the terrain object is destroyed, when a punch hits an enemy object, the second destruction range in the enemy object is destroyed, when a kick hits a terrain object, the third destruction range in the terrain object is destroyed, and when a kick hits an enemy object, the fourth destruction range in the enemy object may be destroyed.
[0199] Also, in the above embodiment, the determination of whether the destruction action hits a voxel object is made based on a determination mesh or a display mesh generated based on the voxel data. In other embodiments, the determination of whether the destruction action hits a voxel object may be made based on the voxel data.
[0200] Also, in the above embodiment, the size of each voxel in the first voxel space (e.g., the field voxel space or the voxel space VLa) for representing the first object (e.g., the terrain object) is set to be larger in size in the game space than the size of each voxel in the second voxel space (e.g., the voxel space VLb) for representing the second object (e.g., the enemy object). Also, the first destruction range when a destruction action hits the first object is set to be larger than the second destruction range when a destruction action hits the second object. In other embodiments, the size of each voxel in the first voxel space may be the same as the size of each voxel in the second voxel space. Even in this case, in the game space, the first destruction range when a destruction action hits the first object may be made larger than the second destruction range when a destruction action hits the second object.
[0201] Also, in the above embodiment, when a destruction action is performed on the first object, the voxel data of the voxels included in the first destruction range is updated, and when a destruction action is performed on the second object, the voxel data of the voxels included in the second destruction range is updated, thereby destroying the first object or the second object. In other embodiments, when an arbitrary event occurs for an object, a range corresponding to the type of the object may be set, and the voxel data of the voxels included in the set range may be updated. That is, when a first event occurs for the first object, a first range based on the position where the first event occurs is set, and the voxel data of the voxels included in the first range may be updated (decreased or increased). Also, when a second event occurs for the second object, a second range based on the position where the second event occurs is set, and the voxel data of the voxels included in the second range may be updated (decreased or increased). The event may be that an action by the player character PC or the enemy object as described above is performed on the voxel object. For example, the event may be that a punch by the player character PC hits the voxel object, or a bullet thrown by the player character PC hits the voxel object. Also, the event may occur, for example, without depending on an action by the player character PC or the enemy object, such as a volcanic eruption or a stone falling. For example, the event may occur according to time. Also, the event may be an event in which an object is newly generated. In this case, when the event occurs, the object may be newly generated by updating (increasing the density) the voxel data of the voxels included in the range set based on the occurrence position of the event.
[0202] Also, in the above-described embodiment, for each voxel of the voxel object, for the voxels completely included in the destruction range, by setting the density of the voxel to "0", a value indicating that there is no object in the voxel is set. For the voxels partially included in the destruction range, the density is decreased to a value less than the upper limit value. For the voxels completely included in the destruction range, a value indicating that there is no object is set. For the voxels partially included in the destruction range, as long as the ratio (degree) of the object occupancy is decreased, it may be updated to any value.
[0203] Also, in the above-described embodiment, for the voxels within the destruction range, by setting the density of the voxel to "0", a value indicating that there is no object in the voxel is set. As a result, the portion within the destruction range in the voxel object is erased, and the voxel object is destroyed. The destruction (erasure) of the voxel object is not limited to setting the density in the voxel data to "0", and may be performed by setting the density to other values. For example, regarding the density, the "value indicating that there is no object" is not limited to "0", and may be any value less than a reference value (for example, 128). Also, regarding the density, the "value indicating that there is an object" may be a value in the range of 1 to 255, or may be a value equal to or greater than the reference value. Also, not limited to changing the density in the voxel data, the destruction (or generation) of the voxel object may be performed by other methods. For example, a flag indicating the presence or absence of an object is stored in the voxel data. When the flag is set to ON, it indicates that there is an object in the voxel. When the flag is set to OFF, it may indicate that there is no object (i.e., a cavity) in the voxel. Also, when material data is stored in the voxel data, it may indicate that an object made of the material indicated by the material data exists in the voxel. Conversely, when no material data is stored in the voxel data, it may indicate that there is no object in the voxel.
[0204] In addition, the above-described processing may be executed not only in the game system 1 but also in any other information processing apparatus or information processing system. The information processing system may be configured by a plurality of devices, and the plurality of devices may be connected via a network (for example, a LAN, the Internet, etc.).
[0205] In addition, the configurations according to the above-described embodiments and their modifications can be arbitrarily combined as long as they do not contradict each other. Also, the above is merely an exemplification of the present invention, and various improvements and modifications other than the above may be added.
Explanation of Reference Numerals
[0206] 1 Game system 81 Processor 85 DRAM 201, 202, 203, 204 Voxel 210, 220 Terrain object
Claims
1. A game program executed by a processor of an information processing apparatus, the processor being caused to store, in a storage medium, first volume data that is data for representing a first object in a virtual space and that holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space, and second volume data that is data for representing a second object in the virtual space and that holds the voxel data for each voxel included in a second voxel space arranged in the virtual space, when a first event occurs for the first object based on a player's operation input, update the voxel data of voxels included in a first range set based on the position where the first event occurs, for the first volume data, when a second event occurs for the second object based on a player's operation input, update the voxel data of voxels included in a second range set based on the position where the second event occurs, for the second volume data, generate an image of the virtual space by at least rendering a polygon mesh representing the surfaces of the first object and the second object based on the first volume data and the second volume data.
2. The voxel data includes a value indicating the degree to which an object occupies the space defined by a voxel, and the processor is caused to update the voxel data so that the degree of the voxels included in the first range in the first volume data decreases when the first event occurs, update the voxel data so that the degree of the voxels included in the second range in the second volume data decreases when the second event occurs, the game program according to claim 1.
3. The processor is caused to update the voxel data so that, for at least some of the voxels included in the first range in the first volume data, the voxel data becomes a value indicating that the first object does not exist when the first event occurs, The game program according to claim 2, wherein when the second event occurs, the voxel data is updated so as to be a value indicating that the second object does not exist for at least a part of the voxels included in the second range in the second volume data.
4. to the processor, when the first event occurs, for the voxels completely included in the first range in the first volume data, set it as a value indicating that the first object does not exist, and for the voxels partially included in the first range, update the voxel data so that the degree decreases; The game program according to claim 3, wherein when the second event occurs, for the voxels completely included in the second range in the second volume data, set it as a value indicating that the second object does not exist, and for the voxels partially included in the second range, update the voxel data so that the degree decreases.
5. The voxel data further includes material data indicating the material of the object and a damage amount indicating the applied damage. to the processor, when the first event occurs, for the voxels included in the first range in the first volume data, update the damage amount, and further for the voxels where the damage amount exceeds the upper limit set for the material, update the value indicating the degree; The game program according to any one of claims 2 to 4, wherein when the second event occurs, for the voxels included in the second range in the second volume data, update the damage amount, and further for the voxels where the damage amount exceeds the upper limit set for the material, update the value indicating the degree.
6. The game program according to any one of claims 1 to 5, wherein one voxel included in the first volume data and one voxel included in the second volume data have different sizes defined in the virtual space.
7. The first object is the terrain in the virtual space, The game program according to any one of claims 1 to 6, wherein the first range is larger than the second range.
8. The second object is an object that can move within the virtual space by changing its position and / or orientation within the virtual space of the second voxel space. The game program according to any one of claims 1 to 7, wherein the second range is smaller than the first range.
9. To the processor, Generate the polygon mesh by determining the vertex positions of the polygons based on the voxel data between the voxels where the first object or the second object does not exist and the voxels where they exist. The game program according to any one of claims 1 to 8, wherein based on the occurrence of the first event or the second event, the vertices of the polygon mesh in a range including at least the voxels whose voxel data has been updated are recalculated.
10. Further to the processor, Based on the player's operation input, cause the player character to perform a destruction action that can destroy the first object and the second object. The first event is that the destruction action hits the first object. The game program according to any one of claims 1 to 9, wherein the second event is that the destruction action hits the second object.
11. An information processing system including a storage medium and at least one processor, In the storage medium, First volume data that is data for representing a first object in a virtual space and holds voxel data indicating the existence of an object for each voxel included in a first voxel space arranged in the virtual space. Second volume data that is data for representing a second object in the virtual space and holds the voxel data for each voxel included in a second voxel space arranged in the virtual space are stored. The processor, When a first event occurs for the first object based on the player's operation input, update the voxel data of the voxels included in a first range set based on the position where the first event occurs for the first volume data. When a second event occurs for the second object based on a player's operation input, update the voxel data of voxels included in a second range set based on the position where the second event occurs, for the second volume data, An information processing system that generates an image of the virtual space by at least rendering a polygon mesh representing the surfaces of the first object and the second object based on the first volume data and the second volume data. **Claim 12** The voxel data includes a value indicating the degree to which an object occupies the space defined by the voxel, The processor, When the first event occurs, update the voxel data so that the degree of the voxels included in the first range in the first volume data decreases, The information processing system according to claim 11, wherein when the second event occurs, the voxel data is updated so that the degree of the voxels included in the second range in the second volume data decreases. **Claim 13** The processor, When the first event occurs, update the voxel data so that the value indicates that the first object does not exist for at least some of the voxels included in the first range in the first volume data, The information processing system according to claim 12, wherein when the second event occurs, the voxel data is updated so that the value indicates that the second object does not exist for at least some of the voxels included in the second range in the second volume data. **Claim 14** The processor, When the first event occurs, set the value to indicate that the first object does not exist for the voxels completely included in the first range in the first volume data, and update the voxel data so that the degree decreases for the voxels partially included in the first range, The information processing system according to claim 13, wherein when the second event occurs, set the value to indicate that the second object does not exist for the voxels completely included in the second range in the second volume data, and update the voxel data so that the degree decreases for the voxels partially included in the second range.
15. The voxel data further includes material data indicating the material of the object and a damage amount indicating the applied damage, The processor When the first event occurs, for the voxels included within the first range in the first volume data, updates the damage amount, and further, for the voxels where the damage amount exceeds the upper limit set for the material, updates the value indicating the degree, When the second event occurs, for the voxels included within the second range in the second volume data, updates the damage amount, and further, for the voxels where the damage amount exceeds the upper limit set for the material, updates the value indicating the degree. The information processing system according to any one of claims 12 to 14.
16. One voxel included in the first volume data and one voxel included in the second volume data have different sizes defined within the virtual space. The information processing system according to any one of claims 11 to 15.
17. The first object is the terrain within the virtual space, The first range is larger than the second range. The information processing system according to any one of claims 11 to 16.
18. The second object is an object capable of moving within the virtual space by changing the position and / or orientation within the virtual space of the second voxel space, The second range is smaller than the first range. The information processing system according to any one of claims 11 to 17.
19. The processor Generates the polygon mesh by determining the vertex positions of the polygon based on the voxel data between the voxels where the first object or the second object does not exist and the existing voxels, Based on the occurrence of the first event or the second event, recomputes the vertices of the polygon mesh in a range including at least the voxels for which the voxel data has been updated. The information processing system according to any one of claims 11 to 18.
20. The processor further Based on the operation input of the player, causes the player character to perform a destruction action capable of destroying the first object and the second object. The first event is that the destruction action hits the first object, The second event is that the destruction action hits the second object. The information processing system according to any one of claims 11 to 19.
21. Data for representing a first object in a virtual space, including first volume data that holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space, Data for representing a second object in the virtual space, including second volume data that holds the voxel data for each voxel included in a second voxel space arranged in the virtual space, and stores When a first event occurs for the first object based on a player's operation input, for the first volume data, update the voxel data of the voxels included in a first range set based on the position where the first event occurred, When a second event occurs for the second object based on a player's operation input, for the second volume data, update the voxel data of the voxels included in a second range set based on the position where the second event occurred, An information processing apparatus that generates an image of the virtual space by at least rendering a polygon mesh representing the surfaces of the first object and the second object based on the first volume data and the second volume data.
22. The voxel data includes a value indicating the degree to which an object occupies the space defined by the voxel, When the first event occurs, update the voxel data so that the degree of the voxels included in the first range in the first volume data decreases, When the second event occurs, update the voxel data so that the degree of the voxels included in the second range in the second volume data decreases. The information processing apparatus according to claim 21.
23. When the first event occurs, update the voxel data so that it becomes a value indicating that the first object does not exist for at least a part of the voxels included in the first range in the first volume data, The information processing apparatus according to claim 22, wherein when the second event occurs, the voxel data is updated so as to be a value indicating that the second object does not exist for at least a part of the voxels included in the second range in the second volume data.
24. When the first event occurs, for the voxels completely included in the first range in the first volume data, the value indicates that the first object does not exist, and for the voxels partially included in the first range, the voxel data is updated so that the degree decreases. The information processing apparatus according to claim 23, wherein when the second event occurs, for the voxels completely included in the second range in the second volume data, the value indicates that the second object does not exist, and for the voxels partially included in the second range, the voxel data is updated so that the degree decreases.
25. The voxel data further includes material data indicating the material of the object and a damage amount indicating the applied damage. When the first event occurs, for the voxels included in the first range in the first volume data, the damage amount is updated, and further, for the voxels in which the damage amount exceeds the upper limit set for the material, the value indicating the degree is updated. The information processing apparatus according to any one of claims 22 to 24, wherein when the second event occurs, for the voxels included in the second range in the second volume data, the damage amount is updated, and further, for the voxels in which the damage amount exceeds the upper limit set for the material, the value indicating the degree is updated.
26. The information processing apparatus according to any one of claims 21 to 25, wherein one voxel included in the first volume data and one voxel included in the second volume data have different sizes defined in the virtual space.
27. An information processing method for causing an information processing system to execute game processing, the method comprising causing the information processing system to Data for representing a first object in a virtual space, the first volume data holding voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space, a step of reading from a storage medium second volume data for representing a second object in the virtual space, the second volume data holding the voxel data for each voxel included in a second voxel space arranged in the virtual space; when a first event occurs for the first object based on an operation input of a player, updating the voxel data of voxels included in a first range set based on the position where the first event occurs with respect to the first volume data; when a second event occurs for the second object based on an operation input of a player, updating the voxel data of voxels included in a second range set based on the position where the second event occurs with respect to the second volume data; a step of generating an image of the virtual space by at least rendering a polygon mesh representing the surfaces of the first object and the second object based on the first volume data and the second volume data, an information processing method.
28. The voxel data includes a value indicating the degree to which an object occupies the space defined by the voxel, in the information processing system, when the first event occurs, updating the voxel data so that the degree of the voxels included in the first range in the first volume data decreases, when the second event occurs, updating the voxel data so that the degree of the voxels included in the second range in the second volume data decreases, the information processing method according to claim 27.
29. in the information processing system, when the first event occurs, updating the voxel data so that at least a part of the voxels included in the first range in the first volume data becomes a value indicating that the first object does not exist, The information processing method according to claim 28, wherein when the second event occurs, the voxel data is updated so as to be a value indicating that the second object does not exist for at least a part of the voxels included in the second range in the second volume data.
30. In the information processing system, when the first event occurs, for the voxels completely included in the first range in the first volume data, the voxel data is updated to be a value indicating that the first object does not exist, and for the voxels partially included in the first range, the degree is decreased. The information processing method according to claim 29, wherein when the second event occurs, for the voxels completely included in the second range in the second volume data, the voxel data is updated to be a value indicating that the second object does not exist, and for the voxels partially included in the second range, the degree is decreased.
31. The voxel data further includes material data indicating the material of the object and a damage amount indicating the applied damage. In the information processing system, when the first event occurs, for the voxels included in the first range in the first volume data, the damage amount is updated, and for the voxels where the damage amount exceeds the upper limit set for the material, the value indicating the degree is updated. The information processing method according to any one of claims 28 to 30, wherein when the second event occurs, for the voxels included in the second range in the second volume data, the damage amount is updated, and for the voxels where the damage amount exceeds the upper limit set for the material, the value indicating the degree is updated.
32. The information processing method according to any one of claims 27 to 31, wherein one voxel included in the first volume data and one voxel included in the second volume data have different sizes defined in the virtual space.
Citation Information
Patent Citations
Program, recording medium, game character drawing method and game machine
JP2004062666A
Image processing program and image processor
JP2009043118A
Virtual space creation program, and virtual space creation device
JP2024007703A
Image processing device
WO2017191702A1
Generation of an areal mesh from a voxel model of a three-dimensional environment
WO2022243626A1