Game program, information processing system, information processing device, and information processing method

The game program addresses the issue of voxel object distortion during destruction by updating voxel values based on density and damage criteria, ensuring a natural shape is maintained after destruction.

JP2025113074AActive Publication Date: 2025-08-01NINTENDO CO LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2024011595
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

Technical Problem

Existing game technologies using voxels to generate objects do not allow for free deformation and often result in distorted shapes when objects are destroyed, particularly when multiple destruction actions are applied.

Method used

A game program that updates voxel values based on density and damage criteria to determine which voxels are erased or have increased damage, ensuring that only voxels meeting specific conditions are affected by destruction actions, thereby maintaining a natural shape after destruction.

Benefits of technology

This approach prevents distortion of voxel objects after destruction by selectively updating voxel values, reducing processing load and ensuring a natural shape is maintained.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025113074000001_ABST
    Figure 2025113074000001_ABST
Patent Text Reader

Abstract

To provide a system capable of suppressing distortion of a shape after destruction when destroying an object following a plurality of instructions by a player in a game using a voxel.SOLUTION: One example of an information processing system updates a damage value of voxels in a destruction range when a destruction action of a player character hits a virtual object, and destroys the virtual object in the destruction range when the damage value reaches a limit value. When the destruction action of the player character hits the virtual object, the density of the voxels included in the destruction range is updated and the virtual object in the destruction range is destroyed when there are voxels satisfying a predetermined criterion on the damage value.SELECTED DRAWING: Figure 19
Need to check novelty before this filing date? Find Prior Art

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 Documents

Patent Documents

[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 freely deformed using voxel data.

[0005] Therefore, an object of the present invention is to suppress distortion of the shape after destruction when an object is destroyed through a plurality of instructions by a player in a game in which an object can be freely destroyed using voxels, and to provide a game program, an information processing system, an information processing apparatus, and an information processing method.

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 game program causes the processor to store, in a storage medium, volume data that holds voxel values including, for each voxel included in a voxel space arranged in the virtual space, a density indicating the degree to which an object occupies the space defined by the voxel and a damage value indicating the damage added to the voxel, the voxel values being data for representing virtual objects in the virtual space. Further, the game program causes the processor to move a player character in the virtual space based on an operation input of the player, cause the player character to perform a destruction action based on the operation input of the player, and when the destruction action hits the virtual object, if there are voxels that satisfy a predetermined criterion regarding at least the damage value, update the voxel values so that the voxels included in an erasure range set based on the position of the player character have a density indicating that the virtual object does not exist, and if there are no voxels that satisfy the predetermined criterion, update the voxel values so that the voxels included in the erasure range have a damage value indicating that the damage has increased. Then, the game program causes the processor to generate an image of the virtual space by at least rendering a polygon mesh representing the surface of the virtual object based on the volume data.

[0008] According to the above, when a destruction action hits a virtual object, if there are voxels that satisfy a predetermined criterion regarding the damage value, the voxel values can be updated so that the voxels included in the erasure range have a density indicating that the virtual object does not exist. Thereby, when there are voxels that satisfy a predetermined criterion regarding the damage value, even if there are voxels that do not satisfy the predetermined criterion, the voxel objects within the erasure range can be erased, and it is possible to suppress the voxel objects after the destruction action from having a distorted shape.

[0009] Further, the voxels satisfying the predetermined criteria may be voxels in which the damage when increased by the destruction action exceeds a preset damage upper limit.

[0010] According to the above, when the damage exceeds the damage upper limit when the damage is increased by the current destruction action, the voxel objects within the deletion range can be deleted, and it is possible to determine whether to delete the voxel objects within the deletion range before actually applying damage to the voxels.

[0011] Further, the computer may be further caused to determine a hit position where the destruction action hits the virtual object when the destruction action is performed. The voxels satisfying the predetermined criteria may be voxels within a predetermined range including the hit position and having a predetermined damage value.

[0012] According to the above, it is possible to determine whether there are voxels satisfying the predetermined criteria based on the damage values of the voxels within a predetermined range including the hit position by determining the hit position where the destruction action hits the virtual object. Thereby, for example, the processing load can be reduced.

[0013] Further, the computer may be caused to perform a contact determination between the polygon mesh or the determination polygon mesh representing the surface of the virtual object generated for determination and a determination shape set based on the destruction action, and determine the hit position.

[0014] According to the above, it is possible to perform a contact determination with the polygon mesh or the determination polygon mesh using the determination shape based on the destruction action.

[0015] Further, the voxel value may further include data indicating the hardness or material of the voxel. When the destruction action hits the virtual object, the computer may update the voxel value so that voxels having a hardness equal to or less than a predetermined hardness or a material of a predetermined type have a density indicating that the virtual object does not exist, if there are voxels that meet the predetermined criteria.

[0016] According to the above, when there are voxels that meet the predetermined criteria, among the voxels included in the erasure range, voxels having a hardness equal to or less than a predetermined hardness or a material of a predetermined type can be destroyed. Thereby, the virtual object can be destroyed in consideration of the hardness or material of the voxels.

[0017] Further, the erasure range may be a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid.

[0018] According to the above, the erasure range can be a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid, and the shape of the virtual object after destruction can be made a natural shape.

[0019] Further, the virtual object may be a terrain in the virtual space.

[0020] According to the above, a terrain object can be destroyed.

[0021] Further, the computer may generate the polygon mesh by an algorithm that arranges polygons so that vertex positions are determined between the voxels defined as the inside of the virtual object and the voxels defined as the outside of the virtual object based on the density, and when the destruction action is performed, recompute the vertices of the polygon mesh in at least the range including the voxels whose voxel values have been updated.

[0022] According to the above, by generating a polygon mesh representing a virtual object and recalculating the vertices of the polygon mesh when a destruction action is performed, it is possible to represent the virtual object after the destruction action.

[0023] Further, another invention may be an information processing system that executes the above game program, or an information processing device, or an information processing method.

Effects of the Invention

[0024] According to the present invention, when a destruction action hits a virtual object, if there are voxels that satisfy a predetermined standard with respect to the damage value, it is possible to erase the voxel objects within the erasure range, and it is possible to suppress the voxel objects after the destruction action from having a distorted shape.

Brief Description of the Drawings

[0025]

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

Mode for Carrying Out the Invention

[0026] [1. Configuration of the Game System] Hereinafter, a game system according to an example of the present embodiment will be described. An example of the 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 left controller 3 and the right controller 4 are each detachable from the main body device 2. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are each attached to the main body device 2 and integrated. Further, the game system 1 can also be used with the main body device 2, the left controller 3, and the right controller 4 as separate bodies (see FIG. 2). Hereinafter, the hardware configuration of the game system 1 of the present embodiment will be described, and then the control of the game system 1 of the present embodiment will be described.

[0027] FIG. 1 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are attached to the main body device 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are each attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processes) 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 an operation unit for the user to input.

[0028] FIG. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are 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 the "controller".

[0029] 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 in shape.

[0030] Note that the shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Further, 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. Further, the main body device 2 or the integrated device may be a hand-held device. Further, the main body device 2 or the integrated device may be a transportable device.

[0031] 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.

[0032] Further, the main body device 2 includes a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type capable of multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, for example, a type capable of single-touch input (for example, a resistive film type).

[0033] The main body device 2 includes a speaker (i.e., 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. And the output sound of the speaker 88 is output from these speaker holes 11a and 11b respectively.

[0034] 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.

[0035] 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 (e.g., 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 to store, for example, data (e.g., save data of an application, etc.) used in the main body device 2, and / or a program (e.g., a program of an application, etc.) executed in the main body device 2. In addition, the main body device 2 includes a power button 28.

[0036] 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 this 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 the image generated and output by the main body device 2 on the stationary monitor. Also, in this 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).

[0037] 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). The left controller 3 can also be gripped in a vertically long orientation when removed from the main body device 2. The housing 31 has a shape and size that can be gripped with one hand, particularly the left hand, when gripped in a vertically long orientation. Also, the left controller 3 can be gripped in a horizontally long orientation. When the left controller 3 is gripped in a horizontally long orientation, it may be gripped with both hands.

[0038] 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 according to the tilting direction (and an input of a magnitude according to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may include, as a direction input unit, a cross key or a slide stick capable of slide input instead of the analog stick. Also, in the present embodiment, an input for pressing the analog stick 32 is possible.

[0039] 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 mounted when mounted on 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.

[0040] 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.

[0041] 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 held in a vertically long orientation when removed from the main body device 2. The housing 51 has a shape and size that can be held with one hand, particularly the right hand, when held in a vertically long orientation. Also, the right controller 4 can be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.

[0042] 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. Also, 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. Also, similar to the left controller 3, the right controller 4 is provided with a second L button 65 and a second R button 66.

[0043] Also, 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.

[0044] 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.

[0045] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes to be executed in the main body device 2. For example, it may be composed of only a CPU (Central Processing Unit), or 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.).

[0046] As an example of an internal storage medium built in 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.

[0047] 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.

[0048] The processor 81 appropriately reads and writes data between the flash memory 84 and the DRAM 85, and the above storage media, and executes the above information processing.

[0049] 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 communicates) 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 enabling so-called "local communication" in which data is transmitted and received by direct communication between a plurality of main body devices 2.

[0050] 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. 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.

[0051] The processor 81 is connected to the above-described left terminal 17, right terminal 21, and lower terminal 27. 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. Also, 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. Further, 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. Also, 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 (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

[0052] 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 the first user inputs to the main body device 2 using the first set of the left controller 3 and the right controller 4, it is possible for the second user to input to the main body device 2 using the second set of the left controller 3 and the right controller 4.

[0053] Also, the display 12 is connected to the processor 81. The processor 81 displays an image generated (e.g., by executing the above-described information processing) and / or an image acquired from the outside on the display 12.

[0054] 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.

[0055] 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.

[0056] 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.

[0057] 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.

[0058] 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 both by wired communication via the terminal 42 and by 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 removed 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 in accordance with, for example, the Bluetooth (registered trademark) standard.

[0059] In addition, the left controller 3 includes a memory 102 such as a flash memory. The communication control unit 101 is composed of, for example, a microcomputer (also referred to as a microprocessor), and executes various processes by executing the firmware stored in the memory 102.

[0060] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). Further, the left controller 3 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 appropriate timings.

[0061] 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.

[0062] 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.

[0063] 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).

[0064] 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 that the right controller 4 performs with the main body device 2.

[0065] The right controller 4 includes the same input units as each input unit of the left controller 3. Specifically, it includes each button 113 and the analog stick 52. These input units have the same functions as the input units of the left controller 3 and operate in the same manner.

[0066] 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.

[0067] [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 a player) are arranged in a game space that is a three-dimensional virtual space, and displays the game image on a display device. Note that, 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.

[0068] [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 cube)-shaped 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.

[0069] 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 in thick lines, but this thick line is 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.

[0070] 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 a voxel and a voxel object. 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.

[0071] Regarding the voxel object, its shape can be changed by modifying 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 also easily change the shape of the terrain object by modifying the voxel data of each voxel, similar to the case of erasing the terrain object.

[0072] 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 changes 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 modify 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 modifying the voxel data used for generating the terrain object.

[0073] FIG. 11 is a diagram showing an example of the content of the voxel data. Here, in this 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, etc.

[0074] 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 defined by each voxel. 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.

[0075] 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 to be 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.

[0076] In other embodiments, the density may indicate either a state in which the entire region within the voxel is occupied by the voxel object 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 only take either 0 or 1.

[0077] 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.

[0078] As shown in FIG. 11, in the present embodiment, the material data indicates the 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).

[0079] FIG. 12 is a diagram showing an example of property information indicating the properties of materials. 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 the voxel object breaks until it 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 obtained 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.

[0080] 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.

[0081] 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.

[0082] 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).

[0083] As described above, in the present embodiment, the game system 1 manages the properties and textures of materials separately. Therefore, in the present embodiment, it is possible to easily set a plurality of types of materials having the same properties but different appearances (i.e., textures), or a plurality of types of materials having different properties but the same appearance.

[0084] 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.

[0085] Also, the material data may be information regarding 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 (for example, 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 (for example, 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).

[0086] 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.

[0087] [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.

[0088] 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 actually a three-dimensional mesh is generated based on the voxels in the three-dimensional space.

[0089] As described above, in this embodiment, the density set for each voxel is set within 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 may 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 retained in advance for at least some of the voxels, or if it is not retained, 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 for 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.

[0090] By generating a polygon mesh as described above, it is possible to generate a shape having a volume that reflects to some extent the density for each voxel. 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 this embodiment, since voxels with a value less than the reference value are treated as outside the object, the volume is smaller by the amount that the number of vertices is reduced compared to the case of treating them as inside the object. That is, it is not necessary to calculate the polygon mesh so that the volume exactly corresponds to the density value.

[0091] FIG. 15 is a diagram showing an example of a game image including a terrain object. In this embodiment, by generating a mesh as described above, a voxel object can be made into a shape with complex unevenness compared to, for example, the length of one side of a voxel.

[0092] 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, the mesh may be generated such that a cube is arranged at the voxel (see FIG. 8).

[0093] 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, and 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.

[0094] 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 with the greatest influence (one type) 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.

[0095] 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.

[0096] (Overview of Game Processing) Next, the destruction of voxel objects in the game of this embodiment will be described. FIG. 16 is an image of the game space in the game of this embodiment as seen from a virtual camera, and shows an example of a game image displayed on a display device.

[0097] As shown in FIG. 16, a player character PC is placed in the game space. The player character PC moves within the game space according to the player's operation (for example, an operation on the analog stick 32). Further, the player character PC performs various actions such as punching and jumping within the game space according to the player's operation (for example, an operation on the A button 53 or the B button 54). The player character PC is not a voxel object but a 3D object whose shape is defined by polygons in advance.

[0098] 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 is assumed to have an axial direction parallel to the XYZ coordinate system of the game space. That is, the Ys axis is the axis facing 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, 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, but they do not have to be the same.

[0099] In the field voxel space, a terrain object is set as a voxel object. For example, as terrain objects, 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.

[0100] The player character PC can move on the terrain object according to the player's instruction. Also, the player character PC can perform a destruction action according to the player's instruction.

[0101] When the destruction action of the player character PC hits a voxel object, there are cases where the voxel object is destroyed and cases where damage is inflicted on the voxel object by the destruction action. When damage is inflicted on a voxel object, if the amount of damage reaches the limit value, the voxel object is destroyed, and if the amount of damage does not reach the limit value, the voxel object is not destroyed.

[0102] Here, the "hardness" is predefined for the material set for each voxel. That is, the voxel object has a hardness corresponding to the material. Also, a "limit value" is predefined for the material. The "limit value" is a value indicating the degree to which the object can withstand without being destroyed. For example, it is a value indicating the number of destruction actions that can be withstood without being destroyed. This "limit value" may change according to the progress of the game. For example, even for the same material, it may be controlled such that the "limit value" is higher in the late stage of the game than in the early stage. Also, for the destruction action, a "hardness" corresponding to the type of the destruction action is predefined. Also, when the player character PC performs a destruction action, the hardness of the destruction action may vary depending on the state of the player character PC at that time. For example, the "hardness" of the destruction action and the material of the voxel are defined in the range of 1 to 5.

[0103] For example, when a destruction action hits a voxel object, if the hardness MH (hardness of the voxel object) of the material set for the voxel is less than or equal to the hardness DH of the destruction action (when DH≧MH is satisfied), no damage is applied to that voxel, and that voxel is destroyed by one destruction action. Specifically, the density of the voxel is updated. On the other hand, when the hardness MH of the material set for the voxel is greater than the hardness DH of the destruction action and the difference is less than a predetermined value (when 0<MH - DH<the predetermined value is satisfied), the density of the voxel is not updated, and damage is applied to that voxel. Hereinafter, "DH≧MH" may be referred to as the "first condition", and "0<MH - DH<the predetermined value" may be referred to as the "second condition".

[0104] Hereinafter, the case where the player character PC performs a punch, which is an example of a destruction action, on the terrain object 220 will be described. For example, assume that the hardness MH of the material "rock" of the terrain object 220 is "3", and the hardness DH of the punch of the player character PC is "2", and these satisfy the above second condition.

[0105] FIG. 17 is a diagram showing a state in which damage has been inflicted on the terrain object 220 when the first punch of the player character PC hits the terrain object 220. FIG. 18 is a diagram showing a state in which damage has been inflicted on the terrain object 220 when the second punch of the player character PC hits the terrain object 220. FIG. 19 is a diagram showing the damage state of the terrain object 220 when the third punch of the player character PC hits the terrain object 220. FIG. 20 is a diagram showing the state after the terrain object 220 has been destroyed when the third punch of the player character PC hits the terrain object 220. In FIGS. 17 to 20, a two-dimensional view of the terrain object 220 as seen from the front is shown.

[0106] As shown in FIG. 17, when the punch of the player character PC hits the terrain object 220, a destruction range DR is set based on the hit position indicating the position where the punch hits, and damage is inflicted on the voxels included within the destruction range DR. A damage value dm is stored in each voxel. For example, 1 is added to the damage value dm of the voxels included within the destruction range DR1 by the first punch. The damage value of the voxel is added each time a destruction action is performed, and when the damage value reaches the limit value "3", the voxel is destroyed. Therefore, when the player character PC punches the same location as in FIG. 17, the voxels within the destruction range DR1 are destroyed in response to the third punch. That is, the density of the voxels within the destruction range DR1 is updated to a value indicating the absence of an object.

[0107] Here, when the second punch hits a position different from the position where the first punch hit, as shown in FIG. 18, a destruction range DR2 is set according to the position where the second punch hits, and a damage value of "1" is added to the voxels included in the destruction range DR2. Since a damage value of "1" has already been added to the destruction range DR1 by the first punch, for the overlapping range between the destruction range DR1 and the destruction range DR2, the damage value becomes "2". For the voxels within the destruction range DR2 other than this overlapping area, the damage value becomes "1". In this state, since the damage values of all the voxels of the terrain object 220 are less than the limit value of "3", none of the voxels are destroyed.

[0108] Next, assume that the player character PC performs a third punch and the third punch hits the terrain object 220. As shown in FIG. 19, when the position where the third punch hits is different from the positions where the first and second punches hit, a damage value is added to the voxels within the destruction range DR3 set according to the hit position of the third punch. In this case, for the overlapping area of the three destruction ranges DR1 to DR3, the damage value becomes "3", for the overlapping area of the two destruction ranges DR1 and DR3, the damage value becomes "2", for the overlapping area of the two destruction ranges DR2 and DR3, the damage value becomes "2", and for the other destruction range DR3, the damage value becomes "1". That is, in the destruction range DR3 set according to the third punch, there are voxels with a damage value of "1", voxels with a damage value of "2", and voxels with a damage value of "3". In such a case, in this embodiment, not only the voxels with a damage value of "3", but also the voxels with a damage value of "1" and the voxels with a damage value of "2" within the destruction range DR3 are destroyed.

[0109] That is, if there are voxels with a damage value of "3" or more, which is the limit value, due to the third punch, the voxels within the destruction range DR3, including the voxels that have not reached the limit value, are destroyed (erased). As a result, as shown in FIG. 20, for the destruction range DR3 set according to the third punch, no object exists, and a cavity with the same or a similar shape to the destruction range DR3 is formed in the terrain object 220. On the other hand, for the area DR1 where damage was applied by the first punch and the area DR2 where damage was applied by the second punch, they are not destroyed and the damage remains accumulated.

[0110] If, in FIG. 19, only the voxels with a damage value reaching the limit value of "3" are destroyed, the shape of the voxel object after destruction will be distorted. Also, the range of destruction may become narrow, making it difficult to play. In addition, the position deviated from the hit position where the third punch hits may be destroyed, and the voxels around the hit position will remain, which may make the player feel uncomfortable.

[0111] Therefore, in this embodiment, assuming that a damage value is added by the current destruction action, if there are voxels with a damage value equal to or greater than the limit value, the voxels within the destruction range set according to the current destruction action are destroyed. Specifically, among all the voxels within the destruction range set according to the current destruction action, the voxels having a hardness less than or equal to the hardness of the voxels with a damage value equal to or greater than the limit value are destroyed. This can suppress the situation where only the position deviated from the hit position where the punch hits is destroyed, and can suppress the distortion of the voxel object after destruction.

[0112] Next, with reference to FIG. 21, the processing flow until the voxels are destroyed will be described. FIG. 21 is a diagram showing the processing flow related to the destruction of voxels.

[0113] As shown in Fig. 21(a), when the player character PC punches, a collision determination shape used for collision determination with other objects is launched. The collision determination shape is a shape used internally in the information processing system for collision determination and is not displayed on the game screen. For example, the collision determination shape is a sphere, cylinder, disk, cone, or polygonal pyramid that includes the position of the player character PC's fist, and is launched into the virtual space according to the punch. By launching the collision determination shape, it is determined whether the collision determination shape has collided with other objects (voxel objects or other 3D objects). For example, a collision determination is made between the collision determination shape and the polygon mesh forming the surface of the voxel object.

[0114] Note that for the voxel object, in addition to the polygon mesh forming the surface, a determination polygon mesh for determining contact (collision) with other objects may be prepared. In this case, a collision determination is made between the collision determination shape and the determination polygon mesh. Note that the collision determination shape may have different sizes and different shapes according to the type of destruction action.

[0115] As shown in Fig. 21(b), when the collision determination shape collides with the terrain object 220, the collision range is specified. Specifically, the range where the collision determination shape and the polygon mesh of the terrain object 220 collide is specified. The collision range specified here is the surface of the terrain object 220.

[0116] Next, as shown in FIG. 21(c), for each voxel within the specified collision range, it is examined whether there is a voxel that satisfies a predetermined criterion regarding the damage value. A voxel that satisfies the predetermined criterion is a voxel to which damage is applied by the punch (i.e., a voxel that satisfies the above second condition), and is a voxel whose damage value becomes equal to or greater than the limit value by the current punch. For example, the material and damage value of each voxel within the collision range are examined, and voxels (voxels that satisfy the second condition) are extracted in which the hardness MH of the voxel material is greater than the hardness DH of the punch and the difference therebetween is less than a predetermined value. Then, based on the current damage value of the extracted voxels, it is determined whether the damage value will become equal to or greater than the limit value when the damage value is added by the current punch.

[0117] As shown in FIG. 21(d), when there is a voxel that satisfies the above predetermined criterion for each voxel within the collision range, a destruction range DR is set based on the position (hit position) where the punch hits. The hit position may be the center of the collision determination shape or any position within the collision range. The destruction range DR is a range having a predetermined shape including the hit position and including the above collision range. The destruction range DR is a shape different from the above collision determination shape, and may be, for example, a sphere, an ellipsoid, or a shape in which the ellipsoid is asymmetric in a predetermined direction. Then, for all voxels within the destruction range DR having a hardness equal to or less than the hardness of the voxels that satisfy the above predetermined criterion, the density is set to a value indicating the absence of an object. Specifically, for voxels located inside the destruction range DR, the density is set to "0", and for voxels located at the boundary of the destruction range DR, for example, the density is lowered to a value equal to or less than the reference value (it may also be equal to or greater than the reference value). Thereby, the voxel object included in the destruction range DR is destroyed (erased).

[0118] On the other hand, when there is no voxel that satisfies the above predetermined criterion for each voxel within the collision range, for the voxels that satisfy the above second condition and are included in the destruction range DR, the damage value is added without being destroyed (without the density being updated).

[0119] Note that for the voxels that satisfy the above first condition (voxels where the hardness DH of the punch is greater than or equal to the hardness MH of the material), they are destroyed. That is, for voxels made of a material with the same or softer hardness than the punch, they are destroyed by this punch regardless of the damage value. Also, for voxels that do not satisfy either the first condition or the second condition, neither density update nor damage value addition is performed. That is, for voxels made of a material that is sufficiently hard against the hardness of the punch (such as iron), damage value addition is not performed and they are not destroyed.

[0120] FIG. 22 is a diagram showing an example of density update when there are voxels that satisfy a predetermined criterion regarding damage value when a destruction action is performed on a voxel object composed of a plurality of materials with different hardnesses.

[0121] As shown in FIG. 22, for example, assume a case where a punch hits a voxel object composed of a material with a hardness of "2", a material with a hardness of "3", and a material with a hardness of "4". If there are voxels that satisfy a predetermined criterion regarding damage value within the destruction range DR corresponding to this punch, among the voxels within the destruction range DR, for the voxels with the same hardness of "3" as the hardness "3" of the voxels determined to satisfy the predetermined criterion, the density is updated and they are destroyed as described above. Also, for the voxels with a hardness of "2" that is less than the hardness "3" of the voxels determined to satisfy the predetermined criterion, they are also destroyed. On the other hand, for the voxels with a hardness of "4", since the difference between the hardness of the voxel "4" and the hardness of the punch "2" is greater than or equal to a predetermined value, the density is not updated and the damage value is not added either. As a result, as shown in the lower figure of FIG. 22, the voxel object after density update is destroyed with a shape where a part of the destruction range DR is missing, and a cavity of the shape is formed.

[0122] As described above, in this embodiment, for each voxel, a voxel value including a density indicating the degree to which an object occupies the space defined by the voxel and a damage value indicating the damage applied to the voxel is set. When a destruction action hits a voxel object, a damage value is added to the voxel. When the damage value accumulated in the voxel by multiple destruction actions reaches the limit value, the voxel is destroyed. When a destruction action hits a voxel object, if there are voxels that meet a predetermined criterion, the voxels included in the destruction range set based on the position of the player character PC are erased. If there are no voxels that meet the predetermined criterion, a damage value is added to the voxels included in the destruction range.

[0123] Thereby, in a game in which a voxel object is destroyed by multiple destruction actions, it is possible to suppress the distortion of the shape of the voxel object after destruction when the destruction action hits.

[0124] Also, in this embodiment, when a destruction action is performed, first, a collision determination using a collision determination shape is performed, and it is determined whether there are voxels that meet a predetermined criterion only in the collision range (the surface of the voxel object) specified in the collision determination. Then, when it is determined that there are voxels that meet the predetermined criterion, the voxels within the destruction range extending into the voxel object are erased. Since it is determined whether there are voxels that meet the predetermined criterion only for a part of the voxel object, the calculation load can be reduced.

[0125] In the game of this embodiment, in addition to the terrain objects 210 and 220, there are also various voxel objects. For example, in the field voxel space, voxel objects made of various materials that can be destroyed by the player character PC are arranged. Also, for example, a second voxel space different from the field voxel space is set, and voxel objects (for example, enemy objects) defined by the voxels in the second voxel space may exist. For example, the enemy object operates in the virtual space by changing the position and orientation of the second voxel space in the virtual space. For the voxel objects defined in such a second voxel space, the above-described processing regarding the damage value is also performed.

[0126] [3. Specific Examples of Processing in the Game System] Next, with reference to FIGS. 23 to 26, specific examples of information processing in the game system 1 will be described.

[0127] FIG. 23 is a diagram showing an example of various data used for information processing in the game system 1. As shown in FIG. 23, the game system 1 stores a game program, game space data, field voxel space data, reference voxel data, second voxel space data, player character data, and mesh data.

[0128] The game program is a program for executing the game processing (specifically, the game processing shown in FIG. 24) in this embodiment. The game program is pre-stored in the storage medium mounted on the slot 23 or the flash memory 84, and is read into the DRAM 85 when the game is executed.

[0129] The game space data is data for defining the game space and includes data representing the above XYZ coordinate system.

[0130] The field voxel space data is data regarding the entire field voxel space. As shown in FIG. 23, the field voxel space data includes position data. The position data 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 to the game space.

[0131] Also, the field voxel space data includes first volume data. The first volume data includes voxel data of each voxel in the field voxel space. Each voxel data includes density data, material data, and a damage value. By setting density and material for each voxel in the first volume data and generating a mesh based on the voxel data, a terrain is formed in the game space. Initial first volume data is stored in advance in the storage medium attached to slot 23 or the flash memory 84. At the start of the game, the first volume data stored in the storage medium attached to this slot 23 or the flash memory 84 is read into the DRAM 85. Thereby, an initial terrain is formed. For example, as the initial terrain, a terrain object 210 representing a flat ground and a terrain object 220 representing a rocky mountain are formed. During the execution of the game, the terrain is changed by updating each voxel data included in the first volume data stored in the DRAM 85.

[0132] The reference voxel data is the voxel data of a voxel determined to satisfy the above-mentioned predetermined criteria regarding the damage value. The reference voxel data is stored when there is a voxel determined to satisfy the above-mentioned predetermined criteria when a destruction action hits a voxel object.

[0133] The second voxel space data is data related to a second voxel space different from the field voxel space, which is arranged within the game space. The second voxel space data has data similar to the field voxel space data. The second voxel space data includes second volume data that holds a plurality of voxel data for representing voxel objects (such as enemy objects) that can move in the virtual space.

[0134] The player character data is data related to the player character PC and includes data indicating the position and posture in the game space.

[0135] The mesh data is data indicating the mesh set for the 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 first volume data, the second volume data, and the like.

[0136] In addition to the data shown in FIG. 23, the game system 1 stores, as data pre-stored before the execution of the game process, the above-described property information and texture information data, data related to various characters appearing in the game, and the like. For example, 3D object data representing a 3D object (such as the player character PC) different from the voxel object is stored. Also, voxel space data is stored in the game system 1 for each voxel object that can move within the game space.

[0137] FIG. 24 is a flowchart showing an example of the flow of the game process executed by the game system 1. The game process shown in FIG. 24 is started, for example, in response to an instruction to start the game being given by the player.

[0138] In this embodiment, the processor 81 of the main body device 2 executes the processing of each step shown in FIG. 24 by executing the 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 (for example, a dedicated circuit or the like) different from the processor 81. Further, when the game system 1 can communicate with another information processing device (for example, a server), part of the processing of each step shown in FIG. 24 may be executed in the other information processing device. Further, the processing of each step shown in FIG. 24 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.

[0139] Further, the processor 81 executes the processing of each step shown in FIG. 24 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.

[0140] As shown in FIG. 24, in step S1, the processor 81 sets a game space in an initial state. Specifically, the processor 81 acquires first volume data representing the terrain of the game space in the initial state from the storage medium mounted in the slot 23, and stores part or all of the acquired first volume data in the DRAM 85. Further, the processor 81 reads out player character data from the storage medium, sets the initial position and posture of the player character, and stores them in the DRAM 85. Further, the processor 81 sets the initial position and posture of the virtual camera and stores them in the DRAM 85.

[0141] Note that the voxel data written to the DRAM 85 may be a part of the voxel data in the entire range of the game space, which is used for generating the 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.

[0142] 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 the first volume data stored in the DRAM 85 in step S1. A polygon is generated such that the vertex position is determined between the voxels defined as the inside of the voxel object and the voxels defined as the outside of the voxel object. Thereby, a polygon mesh representing the voxel object is set in the game space. For example, terrain objects 210 and 220 are set in the game space. An example of a specific method for determining the vertex position is as described with reference to FIG. 14. After step S2, the game starts, and during the game, the processes in steps S3 to S11 are repeatedly executed at a predetermined frame time interval (for example, at intervals of 1 / 60 second).

[0143] In step S3, the processor 81 controls the operations of various objects (e.g., the player character PC) that appear in the game space. For example, based on the operation data received from the controllers 3 and 4, the processor 81 moves the player character PC 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 bullet, or the like. The process of step S4 is executed after step S3.

[0144] 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 on 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.

[0145] In step S5, the processor 81 performs a destruction determination process. Here, first, it is determined whether the destruction action by the player character PC has hit a voxel object (e.g., a terrain object). If the destruction action has hit a voxel object, it is determined whether there are voxels that meet a predetermined criterion. If it is determined that there are, a condition flag for destroying the voxels within the destruction range is set to ON. Details of the destruction determination process in step S5 will be described later. Next, the processor 81 executes the process of step S6.

[0146] In step S6, the processor 81 performs a destruction range setting process of setting a destruction range according to the voxel object hit by the destruction action. For example, when the destruction action hits a terrain object defined by voxels in the field voxel space, the processor 81 sets a first destruction range including the hit position of the destruction action determined in step S5. Also, for example, when the destruction action hits an object (such as an enemy object) defined by voxels in the second voxel space, the processor 81 sets a second destruction range including the hit position determined in step S5. The destruction range may be, for example, a sphere, an ellipsoid, or a shape obtained by deforming the ellipsoid asymmetrically left and right or up and down, and may be a shape different from the collision determination shape or the same shape. Next, the processor 81 executes the process of step S7.

[0147] In step S7, the processor 81 executes a voxel data update process. Details of the voxel data update process in step S7 will be described later. Next, the processor 81 executes the process of step S8.

[0148] 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 voxel object and part or all of the voxel object 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, when the processing load is high, etc., the update of the mesh may not be performed in the current frame and may be carried over to subsequent frames.

[0149] 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 on 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. Note that in other embodiments, in step S9, based on all the voxel data (or all the voxel data within the imaging range of the virtual camera) in the game space, 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.

[0150] 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.

[0151] 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 steps 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. 24.

[0152] (Destruction determination process) Hereinafter, the destruction determination process in step S5 will be described with reference to FIG. 25. FIG. 25 is a flowchart showing an example of the destruction determination process in step S5.

[0153] In step S21, the processor 81 performs a collision determination process. Specifically, the processor 81 performs a collision determination with other objects by flying a collision determination shape in the direction in which the destruction action was performed from the position of the player character PC (for example, near the fist) (see FIG. 21(a)). For example, it may be determined whether the collision determination shape collides with the polygon mesh forming the surface of the voxel object. Also, a determination polygon mesh for determining the contact of the voxel object may be prepared, and a collision determination may be performed between the collision determination shape and the determination polygon mesh. Next, the process of step S22 is performed.

[0154] In step S22, the processor 81 determines whether the destruction action has hit the voxel object as a result of the collision determination process. If the determination result in step S22 is positive, the process of step S23 is then executed. On the other hand, if the determination result in step S22 is negative, the process in FIG. 25 is ended.

[0155] In step S23, the processor 81 identifies the collision range on the surface of the voxel object that collided with the collision determination shape, and extracts the voxels within the collision range (see FIG. 21(b)). Next, the process of step S24 is performed.

[0156] In step S24, the processor 81 extracts the voxels among the voxels within the collision range that satisfy 0 < MH - DH < a predetermined value. That is, here, the voxels in which the hardness MH of the material set for the voxel is greater than the hardness DH of the destruction action and the difference therebetween is less than the predetermined value are extracted. These voxels are the voxels that satisfy the second condition and are the voxels to which damage can be added by the current destruction action. Next, the process of step S25 is performed.

[0157] In step S25, the processor 81 determines whether there are any voxels among the voxels extracted in step S24 for which the damage value after addition becomes equal to or greater than the limit value when the damage value is added by the current destruction action. If the determination result in step S25 is affirmative, that is, if there are voxels on the surface of the voxel object that collided with the collision determination shape that satisfy a predetermined criterion, then the process of step S26 is executed next. On the other hand, if the determination result in step S25 is negative, the process of FIG. 25 is terminated.

[0158] In step S26, the processor 81 sets the condition flag to ON and stores the voxel data of the voxels determined to satisfy a predetermined criterion as reference voxel data. The condition flag is a flag indicating that there are voxels on the surface of the voxel object that collided with the collision determination shape that satisfy a predetermined criterion. This condition flag is referred to in the next voxel data update process.

[0159] When the process of step S26 is performed, when it is determined NO in step S22, or when it is determined NO in step S25, the processor 81 ends the process shown in FIG. 25.

[0160] (Voxel Data Update Process) Next, the voxel data update process in step S7 will be described with reference to FIG. 26. FIG. 26 is a flowchart showing an example of the voxel data update process in step S7.

[0161] In step S31, the processor 81 selects, from each voxel in the volume data indicating the voxel object hit by the destruction action, the voxel of 1 that is included in the destruction range set in step S6. Here, a voxel that is completely included in the destruction range or a voxel that is partially included in the destruction range is selected. For example, when the destruction action hits the terrain object 220 defined by the voxels in the field voxel space, among the voxels in the field voxel space, the voxel of 1 that is included in the destruction range set in step S6 is selected. The process of step S32 is executed after step S31.

[0162] In step S32, the processor 81 determines whether the hardness DH of the destruction action is greater than or equal to the hardness MH of the material indicated by the material data of the voxel data. Here, it is determined whether the hardness of the destruction action and the hardness of the voxel object satisfy the first condition. That is, it is determined whether the destruction action is hard against the voxel object and whether the voxel object is destroyed by one destruction action. If the determination result in step S32 is affirmative, the process of step S36 is executed next. On the other hand, if the determination result in step S32 is negative, the process of step S33 is executed next.

[0163] In step S33, the processor 81 determines whether the difference (MH - DH) between the hardness MH of the voxel material and the hardness DH of the destruction action is less than a predetermined value. Here, it is determined whether the hardness of the destruction action and the hardness of the voxel object satisfy the second condition. That is, it is determined whether the voxel selected in step S31 is a voxel to which a damage value can be added by the destruction action. If the determination result in step S33 is affirmative, the process of step S34 is then executed. On the other hand, if the determination result in step S33 is negative, the process of step S37 is then executed.

[0164] In step S34, the processor 81 determines whether the condition flag was set to ON in step S26 of the above-described destruction determination process. That is, it is determined whether there is a voxel that satisfies a predetermined criterion regarding the damage value within the collision range of the collision determination shape and the voxel object that collided. A voxel that satisfies the predetermined criterion is a voxel to which damage can be added by the current destruction action and whose damage value after addition by the current destruction action is equal to or greater than the limit value. If the determination result in step S34 is affirmative, the process of step S36 is then executed. On the other hand, if the determination result in step S34 is negative, the process of step S35 is then executed.

[0165] In step S35, the processor 81 updates the damage value of the voxel. For example, the processor 8 is added to the damage value of the voxel. Note that the added damage value may differ based on the hardness of the destruction action and the hardness of the material. By the process of step S35, when there is no voxel that satisfies the above-described predetermined criterion within the collision range, the damage value is added to the voxels within the destruction range without updating the density. Note that a display indicating that damage has been added may be performed on the mesh of the voxel to which the damage value has been added. The process of step S37 is then executed after step S35.

[0166] In step S36, the processor 81 updates the density of the voxel to a value indicating that no voxel object exists. For example, when the voxel is completely included within the destruction range (when the voxel exists inside the destruction range), the processor 81 sets the density of the voxel to "0". Also, when a part of the voxel is included within the destruction range (when the voxel exists at the boundary of the destruction range), the processor 81 updates the density of the voxel to a value below a reference value, for example. When the hardness DH of the destruction action is greater than or equal to the hardness MH of the voxel material, it is determined as YES in step S32, and the process of step S36 is performed. As a result, the voxel is destroyed by one destruction action without adding a damage value to the voxel. Also, when it is determined as YES in step S34, the process of step S36 is performed. As a result, even for a voxel that would originally have a damage value added to satisfy the second condition (voxel with MH - DH < a predetermined value), if there is a voxel within the collision range that satisfies the above predetermined standard, the voxel within the destruction range is destroyed.

[0167] Note that the process of step S36 is executed for voxels having a hardness lower than that of the voxels satisfying the above-mentioned predetermined criteria when there are voxels satisfying the above-mentioned predetermined criteria within the collision range. For example, assume that within the destruction range corresponding to the current destruction action, there is a voxel with a hardness of "3" and a voxel with a hardness of "2", and it is determined that the voxel with a hardness of "3" satisfies the above-mentioned predetermined criteria. That is, when a damage value is added to the voxel with a hardness of "3" in response to the current destruction action, and it is determined that the damage value after addition is equal to or greater than the limit value and is stored as reference voxel data. In this case, for other voxels with a hardness of "3" within the destruction range, even if the damage value does not reach the limit value due to the current destruction action, the density is updated. For example, even if the current damage value of other voxels with a hardness of "3" within the destruction range is "0", the process of step S36 is executed and they are destroyed. Also, for voxels with a hardness of "2" within the destruction range, MH-DH < a predetermined value is satisfied. Therefore, for voxels with a hardness of "2" within the destruction range, the process of step S36 is also executed and they are destroyed. That is, voxels having a hardness smaller than that of the voxels satisfying the predetermined criteria are also destroyed.

[0168] When the process of step S36 is performed, when the process of step S35 is performed, or when it is determined as NO in step S33, the processor 81 executes the process of step S37.

[0169] In step S37, the processor 81 determines whether or not the processes of steps S31 to S36 have been completed for all the voxels included in the destruction range among the plurality of voxels within the voxel space corresponding to the voxel object hit by the destruction action. If the determination result of step S37 is affirmative, the process shown in FIG. 26 is terminated. On the other hand, if the determination result of step S37 is negative, the processor 81 changes the voxel to be processed among the voxels within the destruction range and executes the process of step S31 again.

[0170] Note that the processes shown in the above flowchart are merely examples, and the order and content of the processes may be changed as appropriate.

[0171] As described above, in this embodiment, if there is even one voxel that satisfies a predetermined criterion regarding the damage value within the destruction range set by the current destruction action (step S25: YES), the voxel value is updated so that the density indicates that there is no object for voxels having the same or lower hardness as the hardness of the voxel that satisfies the predetermined criterion within the destruction range. The voxel that satisfies the predetermined criterion is a voxel whose damage value becomes equal to or greater than the limit value by the current destruction action. Thereby, it is possible to suppress the voxel object after destruction from having a distorted shape by destroying only the voxels whose damage value becomes equal to or greater than the limit value by the current destruction action.

[0172] Also, in this embodiment, before the damage value of the voxel is actually added by the current destruction action, it is determined whether there is a voxel that will satisfy a predetermined criterion by the current destruction action. Thereby, it is possible to determine whether there is a voxel that satisfies the predetermined criterion without actually adding the damage value to the voxel, and the processing load can be reduced.

[0173] Also, in this embodiment, for all voxels within the destruction range, instead of determining whether there is a voxel that satisfies a predetermined criterion, it is determined whether a part of the voxels included in the destruction range (the voxels forming the surface of the voxel object) satisfies the predetermined criterion. Thereby, the processing load can be reduced.

[0174] (Modification example) Although the present embodiment has been described above, the above embodiment is merely an example, and for example, the following modifications may be added.

[0175] For example, in the above embodiment, damage values are set for voxels, damage values are added by a destruction action, and when the damage value becomes equal to or greater than a predetermined limit value, the voxels are destroyed. In other embodiments, durability values may be set for voxels, the durability values are decreased by a destruction action, and when the durability value becomes equal to or less than a predetermined value, the voxels may be destroyed. The increase in damage value due to a destruction action and the decrease in durability value due to a destruction action have the same technical meaning. To record that the damage applied to a voxel has increased, a damage value that increases in response to a destruction action may be used, or a durability value that decreases in response to a destruction action may be used.

[0176] [[ID=(4)]]That is, when a destruction action hits a voxel object, the voxel value may be updated so as to become a damage value indicating that the damage has increased. "Updating the voxel value so as to become a damage value indicating that the damage has increased" includes an increase in the damage value set for the voxel and a decrease in the durability value set for the voxel.

[0177] Also, in the above embodiment, in the case where the voxels are destroyed when the damage value of the voxels becomes equal to or greater than the limit value, voxels that satisfy a predetermined criterion are voxels that become equal to or greater than a predetermined limit value when the damage value is increased by a destruction action. In the case where the voxels are destroyed when the durability value of the voxels becomes equal to or less than a predetermined value, voxels that satisfy a predetermined criterion are voxels whose durability value becomes equal to or less than a predetermined value when damage is applied by a destruction action. That is, voxels that satisfy a predetermined criterion are voxels whose damage exceeds a preset damage upper limit when the damage to the voxels is increased by a destruction action. Here, "the damage to the voxels exceeds the damage upper limit" includes the damage value of the voxels becoming equal to or greater than the limit value and the durability value of the voxels becoming equal to or less than a predetermined value.

[0178] It should be noted that in the translation of the above content, the tag etc. is directly retained as it is according to the requirements. And for the content in Chinese brackets in the translation of item [4], it is added to make the sentence more complete and in line with the overall semantic logic, which does not violate the translation rules. If you have any other questions, please feel free to let me know.Also, in the above embodiment, before actually updating the damage value of the voxels within the destruction range, for some of the voxels included within the destruction range, it was determined whether there were voxels that satisfied a predetermined criterion regarding the damage value. In other embodiments, similar processing may be performed for all the voxels within the destruction range. That is, it may be determined whether there are voxels that satisfy a predetermined criterion for all the voxels within the destruction range. Further, when actually updating the damage value for the voxels within the destruction range and there are voxels whose updated damage value is equal to or greater than the limit value, the voxels within the destruction range may be destroyed.

[0179] Also, in the above embodiment, when the destruction action hit a voxel object, if there was even one voxel that satisfied a predetermined criterion regarding the damage value, the density of the voxels within the destruction range was updated. In other embodiments, the density of the voxels within the destruction range may be updated when there are a predetermined number of voxels that satisfy a predetermined criterion regarding the damage value.

[0180] Also, in the above embodiment, when the destruction action hit a voxel object in relation to the relationship between the hardness of the destruction action and the hardness of the material of the voxel, it was determined whether to destroy the voxel object or add damage to the voxel object. In other embodiments, based only on the hardness of the material of the voxels on the side to be destroyed, when the destruction action hits a voxel object, it may be determined whether to destroy the voxel object or add damage to the voxel object.

[0181] In the above-described embodiment, when the destruction action hits a voxel object, if there are voxels that meet a predetermined criterion, a process of updating the density is performed on the voxels having a hardness equal to or lower than the "hardness" of the voxels that meet the predetermined criterion. In other embodiments, when there are voxels that meet a predetermined criterion, a process of updating the density may be performed on the voxels having a hardness equal to or lower than a predetermined hardness. Further, not limited to the "hardness" of the material, the above process may be performed based on the material of the material. For example, when there are voxels that meet a predetermined criterion, a process of updating the density may be performed on the voxels having a predetermined material. For example, there are a plurality of materials in the material, and the relationship between each material is determined in advance. When there are voxels that meet a predetermined criterion, a process of updating the density may be performed on the voxels of the material having a predetermined relationship with the material of the voxels that meet the predetermined criterion.

[0182] In the above-described embodiment, the case where a destruction action is performed on a terrain object that the player character can move on has been described. However, the same process as above is also performed when the destruction action hits a voxel object other than the terrain object. That is, when the destruction action hits a voxel object, if there are voxels that meet a predetermined criterion regarding the damage value, the density is updated for the voxels within the destruction range. On the other hand, when there are no voxels that meet the predetermined criterion, the damage value is added to the voxels within the destruction range.

[0183] In the above-described embodiment, for the voxels within the destruction range, by setting the density of the voxels to "0", a value indicating that no object exists in the voxels was set. As a result, the portion within the destruction range in the voxel object was erased, and the voxel object was destroyed. The destruction (erasure) of the voxel object is not limited to setting the density in the voxel data to "0", and it may be performed by setting the density to other values. For example, regarding the density, the "value indicating that no object exists" is not limited to "0", and may be any value less than a reference value (e.g., 128). Also, regarding the density, the "value indicating that an object exists" may be a value in the range of 1 to 255, or may be a value equal to or greater than the reference value. Further, not limited to changing the density in the voxel data, the voxel object may be destroyed by other methods. For example, a flag indicating the presence or absence of an object is stored in the voxel data, and when the flag is set to ON, it indicates that an object exists in the voxel, and when the flag is set to OFF, it may indicate that no object exists in the voxel (i.e., a cavity).

[0184] Also, the above-described processing is not limited to the game system 1, and may be executed in any other information processing device 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 (e.g., LAN, Internet, etc.).

[0185] Also, the configurations according to the above-described embodiment and its modifications can be arbitrarily combined as long as they do not contradict each other. Also, the above is merely an example of the present invention, and various improvements and modifications may be added other than the above.

Explanation of Reference Numerals

[0186] 1 Game system 81 Processor 85 DRAM 201, 202, 203, 204 Voxel 210 and 220 terrain objects

Claims

1. A game program to be executed by a processor of an information processing apparatus, causing the processor to: store in a storage medium volume data that holds voxel values for data representing virtual objects in a virtual space, where each voxel value includes at least a density indicating the degree to which an object occupies the space defined by the voxel and a damage value indicating the damage applied to the voxel, for each voxel included in a voxel space arranged in the virtual space; move a player character within the virtual space based on an operation input of a player; cause the player character to perform a destruction action based on an operation input of the player; when the destruction action hits the virtual object; if there are voxels that meet a predetermined criterion, at least with respect to the damage value, update the voxel values of the voxels included in an erasure range set based on the position of the player character so that the density indicates the absence of the virtual object; if there are no voxels that meet the predetermined criterion, update the voxel values of the voxels included in the erasure range so that the damage value indicates an increase in damage; generate an image of the virtual space by at least rendering a polygon mesh representing the surface of the virtual object based on the volume data. A game program.

2. The game program according to claim 1, wherein the voxels that meet the predetermined criterion are voxels whose damage increased by the destruction action exceeds a preset damage upper limit.

3. further cause the computer to determine a hit position where the destruction action hits the virtual object when the destruction action is performed; The game program according to claim 1 or 2, wherein the voxels that meet the predetermined criterion are voxels within a predetermined range including the hit position and having a predetermined damage value.

4. The game program according to claim 3, further causing the computer to perform a contact determination between the polygon mesh or a determination polygon mesh representing the surface of the virtual object generated for determination and a determination shape set based on the destruction action, and to determine the hit position.

5. The voxel value further includes data indicating the hardness or material of the voxel, to the computer, when the destruction action hits the virtual object, if there is a voxel that meets the predetermined criteria, for voxels having a hardness below a predetermined hardness or a material of a predetermined type, the voxel value is updated to a density indicating that the virtual object does not exist. The game program according to any one of claims 1 to 4. **Claim 6** The erasure range is a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid. The game program according to any one of claims 1 to 5. **Claim 7** The virtual object is a terrain within the virtual space. The game program according to any one of claims 1 to 6. **Claim 8** to the computer, based on the density, the polygon mesh is generated by an algorithm that arranges polygons so that vertex positions are determined between voxels defined as inside the virtual object and voxels defined as outside the virtual object, when the destruction action is performed, the vertices of the polygon mesh in at least the range including the voxels whose voxel values have been updated are recalculated. The game program according to any one of claims 1 to 7. **Claim 9** An information processing system including a storage medium and at least one processor, the processor stores volume data in the storage medium that holds voxel values including at least a density indicating the degree to which an object occupies the space defined by a voxel and a damage value indicating the damage applied to the voxel for each voxel included in a voxel space arranged in the virtual space and representing a virtual object in the virtual space, moves a player character within the virtual space based on an operation input of the player, causes the player character to perform a destruction action based on an operation input of the player, when the destruction action hits the virtual object, if there is at least a voxel that meets a predetermined criterion regarding the damage value, the voxel value is updated to a density indicating that the virtual object does not exist for the voxels included in an erasure range set based on the position of the player character. When there is no voxel that meets the predetermined criterion, update the voxel value so that the voxel included in the erasure range becomes a damage value indicating an increase in damage. An information processing system that generates an image of the virtual space by at least rendering a polygon mesh representing the surface of the virtual object based on the volume data.

10. The information processing system according to claim 9, wherein the voxel that meets the predetermined criterion is a voxel in which the damage increased by the destruction action exceeds a preset damage upper limit.

11. When the destruction action is performed, the processor determines a hit position where the destruction action hits the virtual object. The information processing system according to claim 9 or 10, wherein the voxel that meets the predetermined criterion is a voxel within a predetermined range including the hit position and having a predetermined damage value.

12. The information processing system according to claim 11, wherein the processor performs a contact determination between the polygon mesh or a determination polygon mesh representing the surface of the virtual object generated for determination and a determination shape set based on the destruction action, and determines the hit position.

13. The voxel value further includes data indicating the hardness or material of the voxel. The processor When the destruction action hits the virtual object, if there is a voxel that meets the predetermined criterion, for voxels having a hardness below a predetermined hardness or a material of a predetermined type, update the voxel value so that it becomes a density indicating the absence of the virtual object. The information processing system according to any one of claims 9 to 12.

14. The information processing system according to any one of claims 9 to 13, wherein the erasure range is a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid.

15. The information processing system according to any one of claims 9 to 14, wherein the virtual object is a terrain in the virtual space.

16. The processor Based on the density, generate the polygon mesh by an algorithm that arranges a polygon so that vertex positions are determined between the voxel defined as the inside of the virtual object and the voxel defined as the outside of the virtual object. The information processing system according to any one of claims 9 to 15, wherein when the destruction action is performed, vertices of the polygon mesh in a range including at least voxels whose voxel values have been updated are recalculated.

17. Data for representing a virtual object in a virtual space, storing volume data that holds voxel values including at least a density indicating the degree to which an object occupies the space defined by a voxel and a damage value indicating damage applied to the voxel for each voxel included in a voxel space arranged in the virtual space, Moving a player character in the virtual space based on an operation input of a player, Causing the player character to perform a destruction action based on an operation input of the player, When the destruction action hits the virtual object, When there are voxels that satisfy a predetermined criterion at least with respect to the damage value, updating the voxel value so that the density indicates that the virtual object does not exist for voxels included in an erasure range set based on the position of the player character, When there are no voxels that satisfy the predetermined criterion, updating the voxel value so that the damage value indicates that the damage has increased for voxels included in the erasure range, An information processing apparatus that generates an image of the virtual space by at least rendering a polygon mesh representing the surface of the virtual object based on the volume data.

18. The information processing apparatus according to claim 17, wherein the voxels that satisfy the predetermined criterion are voxels whose damage increased by the destruction action exceeds a preset damage upper limit.

19. When the destruction action is performed, determining a hit position where the destruction action hits the virtual object, The information processing apparatus according to claim 17 or 18, wherein the voxels that satisfy the predetermined criterion are voxels within a predetermined range including the hit position and having a predetermined damage value.

20. An information processing method performed in an information processing system, The information processing system stores volume data that holds voxel values including, for each voxel included in a voxel space arranged in the virtual space, at least a density indicating the degree to which an object occupies the space defined by the voxel and a damage value indicating the damage applied to the voxel, which are data for representing virtual objects in the virtual space. Moving a player character within the virtual space based on an operation input of the player. Causing the player character to perform a destruction action based on an operation input of the player. When the destruction action hits the virtual object. When there is at least one voxel that meets a predetermined criterion regarding at least the damage value, updating the voxel value so that the density indicating that the virtual object does not exist is set for the voxels included in the erasure range set based on the position of the player character. When there is no voxel that meets the predetermined criterion, updating the voxel value so that the damage value indicating an increase in damage is set for the voxels included in the erasure range. Generating an image of the virtual space by at least rendering a polygon mesh representing the surface of the virtual object based on the volume data. This includes an information processing method.

21. The information processing method according to claim 20, wherein the voxels that meet the predetermined criterion are voxels in which the damage increased by the destruction action exceeds a preset damage upper limit.

22. Further including determining a hit position where the destruction action hits the virtual object when the destruction action is performed. The information processing method according to claim 20 or 21, wherein the voxels that meet the predetermined criterion are voxels within a predetermined range including the hit position and having a predetermined damage value.

Citation Information

Patent Citations

  • Program, recording medium, game character drawing method and game machine

    JP2004062666A

  • Video type gun game device

    JP2007000488A

  • Image processing program and image processor

    JP2009043118A

  • Information processing method, and program for causing computer to implement information processing method

    JP2018015302A

  • Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions

    JP2023178274A