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

The game program dynamically updates voxel data to adapt object shapes based on player interactions, improving gameplay freedom and realism by allowing characters to interact with dynamically changing environments.

JP7870303B2Active Publication Date: 2026-06-04NINTENDO CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
NINTENDO CO LTD
Filing Date
2024-01-30
Publication Date
2026-06-04

Smart Images

  • Figure 0007870303000001
    Figure 0007870303000001
  • Figure 0007870303000002
    Figure 0007870303000002
  • Figure 0007870303000003
    Figure 0007870303000003
Patent Text Reader

Abstract

To provide a system capable of deforming an object with a high degree of freedom in a game using voxels.SOLUTION: In an example of an information processing system, a player character can be moved on a terrain object formed based on voxel data. When a destruction action of the player character hits the terrain object, a destruction range having a range set according to the position of the player character and a shape excluding a range below a predetermined surface set based on the position of the player character from a predetermined shape is set. The information processing system updates the voxel data of the voxels included in the set destruction range to a value indicating that the terrain object does not exist, and creates a polygon mesh based on the updated voxel data.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 deformed by updating voxel data.

[0005] Therefore, an object of the present invention is to provide a game program, an information processing system, an information processing apparatus, and an information processing method that can cause a player character to act with a high degree of freedom while deforming an object with a high degree of freedom in a game using voxels.

Means for Solving the Problems

[0006] In order to solve the above problems, the present invention employs the following configuration.

[0007] The game program of the present invention is a game program executed in the processor of an information processing device, wherein the processor stores in a storage medium first volume data which is data for representing a first object in a virtual space, and which holds voxel data indicating the existence of an object for each voxel contained in a first voxel space arranged in the virtual space. The game program also causes the processor to move a player character on the first object based on the player's input, and to have the player character perform a destruction action based on the player's input. Furthermore, when the destruction action hits the first object, the game program causes the processor to update the voxel data of voxels contained in a first erasure range which is set according to the position of the player character and has a shape that excludes the area below a predetermined surface set according to the position of the player character from a predetermined shape, so that the value indicates that the object does not exist, and to draw at least a polygon mesh representing the surface of the first object based on the first volume data to generate an image of the virtual space.

[0008] According to the above, the player character is made to move over the first object and perform a destruction action. When the destruction action hits the first object, the voxel data of the voxels included in the first erasure range, which is a shape obtained by excluding the area below the predetermined surface from a predetermined shape, is updated, thereby destroying the first erasure range of the first object. As a result, the shape of the first object after destruction can be made to have a predetermined surface corresponding to the position of the player character, allowing the player character to move with a high degree of freedom while the object is deformed with a high degree of freedom. For example, the shape of the first object after destruction can be made to be a flat surface, making it easier for the player character to move over the first object after destruction.

[0009] Furthermore, the destruction action may be a destruction action directed forward of the player character. The first erasure range may be set in front of the player character when the destruction action hits the first object. The predetermined surface may be a horizontal plane having the same height as the ground to which the player character is standing when the destruction action hits the first object.

[0010] According to the above, when a forward destruction action hits the first object, the predetermined surface can be made into a horizontal plane at the same height as the ground. This makes it possible to make the destroyed first object a horizontal plane at the same height as the ground, making it easier for the player character to move on the destroyed first object.

[0011] Furthermore, the processor may be instructed to set the height of the predetermined surface based on the position of the player character when the destruction action hits the first object. The first erase range may be the predetermined shape if the entire shape is located above the predetermined surface.

[0012] According to the above, the height of a predetermined surface is set based on the player character's position when the destruction action hits the first object. If the entire predetermined shape is located above the predetermined surface, that is, if the predetermined shape does not exist below the predetermined surface, the first erasure range can be set to the predetermined shape. The height of the predetermined surface can be dynamically set based on the player character's position, and the first erasure range can be set accordingly.

[0013] Furthermore, the destruction action may be a destruction action directed forward of the player character. The first erasure range may be set in front of the player character when the destruction action hits the first object. The predetermined surface may be a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.

[0014] According to the above, even if a destruction action hits the first object while the player character is in the air, a horizontal plane at the height of the ground located below the player character can be set as the predetermined plane. This makes it easier for the player character to move on the first object after landing.

[0015] Furthermore, the destruction action may be a destruction action directed diagonally upward from the player character. The first erasure range may be set diagonally upward from the player character when the destruction action hits the first object. The predetermined surface may be a slope that passes through the position where the player character is grounded when the destruction action hits the first object, and becomes higher towards the front of the player character.

[0016] According to the above, if the player character performs a destruction action in an upward diagonal direction, a predetermined surface can be made into a slope. This allows, for example, a predetermined surface to be set along the direction of the destruction action, and the shape of the first object after destruction can be made to follow the direction of the destruction action.

[0017] Furthermore, the predetermined shape may be a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid.

[0018] According to the above, at least a portion of the first erasure area can be made curved, and the shape of the first object after destruction can be made to be a natural shape.

[0019] Furthermore, the game program may instruct the computer to set the predetermined surface to be inclined with respect to the horizontal plane if the ground on which the player character is standing when the destruction action hits the first object is inclined with respect to the horizontal plane.

[0020] According to the above, if the ground on which the player character is standing is sloped, the predetermined surface can also be sloped, and the ground around the destroyed player character can be sloped in the same way as the rest of the area.

[0021] Furthermore, the game program may instruct the processor to store in a storage medium second volume data, which is data for representing a second object in the virtual space, and which holds the voxel data for each voxel included in a second voxel space arranged in the virtual space. The game program may also instruct the processor to update the voxel data of voxels included in a second erasure range, which is a different size from the first erasure range and is set according to the position of the player character, excluding the area below a predetermined surface set based on the position of the player character from a predetermined shape. The voxel data of voxels included in a second erasure range is set according to the position of the player character, and is set according to the position of the player character, so that the value indicates that the object does not exist. Furthermore, the game program may instruct the processor to further draw a polygon mesh representing the surface of the second object based on the second volume data to generate an image of the virtual space.

[0022] According to the above, even when a destruction action is performed on the second object, a second erasure area can be set that has a shape that excludes the area below a predetermined plane set based on the position of the player character from the predetermined shape. Since the second erasure area is of a different size than the first erasure area, the areas to be destroyed can be made different for the first object and the second object.

[0023] Furthermore, the size of a single voxel included in the first volume data and the size of a single voxel included in the second volume data may be different within the virtual space.

[0024] According to the above, for example, the size of a voxel of 1 included in the second volume data can be made smaller than the size of a voxel of 1 included in the first volume data. Thereby, for example, the second object can be represented with a higher resolution than the first object.

[0025] Further, the processor may further cause the player character to perform a downward destruction action based on an operation input of the player, and when the downward destruction action hits the first object, update the voxel data of the voxels included in a third deletion range set below the player character so as to be a value indicating that the first object does not exist.

[0026] According to the above, when the downward destruction action by the player character hits the first object, a third deletion range can be set below the player character, and the voxel data of the voxels included in the third deletion range can be updated. For example, when a downward destruction action is performed, a predetermined third deletion range can be destroyed.

[0027] Further, the first object may be terrain within the virtual space.

[0028] According to the above, the player character can be made to perform a destruction action on the terrain and destroy the terrain.

[0029] Further, the game program may cause the processor to generate the polygon mesh by determining the vertex positions of the polygons based on the voxel data between the voxels where the first object does not exist and the voxels where it exists. Further, when the voxel data of the voxels included in the first deletion range is updated, the game program may cause the processor to recalculate the vertices of the polygon mesh in at least the range including the voxels whose voxel data has been updated.

[0030] As described above, a polygon mesh can be generated based on voxel data, and the vertex positions of the polygons can be recalculated by updating the voxel data. This allows for a high degree of freedom in changing the shape of the object.

[0031] Furthermore, the other invention may be an information processing system, an information processing device, or an information processing method for executing the above-mentioned game program. [Effects of the Invention]

[0032] According to the present invention, the shape of the first object after destruction can be made to have a predetermined surface corresponding to the position of the player character, and the player character can be made to act with a high degree of freedom while the object is deformed with a high degree of freedom. [Brief explanation of the drawing]

[0033] [Figure 1] This diagram shows an example of the main unit 2 with the left controller 3 and right controller 4 attached. [Figure 2] This diagram shows an example of the state in which the left controller 3 and right controller 4 have been removed from the main unit 2. [Figure 3] A six-view drawing showing an example of the main unit 2. [Figure 4] A six-view drawing showing an example of the left controller 3. [Figure 5] A six-view drawing showing an example of the right controller 4. [Figure 6] Block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] Block diagram showing an example of the internal configuration of the main unit 2, left controller 3, and right controller 4. [Figure 8] This diagram shows an example of a terrain object that is a voxel object. [Figure 9] Figure 8 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 10]Figure 8 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 11] A diagram showing an example of the contents of voxel data. [Figure 12] A diagram showing an example of property information that indicates the properties of a material. [Figure 13] A diagram showing an example of texture information that indicates the texture of a material. [Figure 14] A diagram showing an example of a mesh generation method. [Figure 15] A diagram showing an example of a game image that includes terrain objects. [Figure 16] This figure shows an example of a game image displayed on a display device, representing the game space in the game of this embodiment as seen from a virtual camera. [Figure 17] This diagram shows an example of how a destruction action is performed by a player character. [Figure 18] This figure shows the destruction range when no correction is made to the first shape, and an example of the terrain object after destruction within that destruction range. [Figure 19] This figure shows the destruction range when correction is applied to the first shape, and an example of the terrain object after destruction within that destruction range. [Figure 20] This diagram shows an example of the destruction range set when a player character PC punches forward, in a situation where the ground the player character PC is touching is sloped. [Figure 21] This diagram shows an example of how to calculate the slope of the ground that the player character PC is in contact with. [Figure 22] This diagram illustrates an example where the destruction range is corrected when the player character PC performs a forward punch while in the air and the punch hits terrain object 220. [Figure 23] This diagram illustrates an example where the destruction radius is not corrected when the player character PC performs a forward punch while in the air and the punch hits terrain object 220. [Figure 24]This diagram compares the destruction range before and after correction, and shows an example of the destruction range when the player character PC performs a punch in an upward diagonal direction. [Figure 25] This diagram compares the terrain after destruction with and without damage radius correction, showing an example of the terrain after destruction when the player character PC repeatedly punches diagonally upwards. [Figure 26] This diagram shows an example of the destruction range set when the player character PC performs a downward punch. [Figure 27] This diagram shows an example of terrain after a terrain object has been destroyed within the set destruction range when the player character PC performs a downward punch. [Figure 28] This diagram shows an example of voxel objects other than terrain objects 210 and 220 that are placed in the game space. [Figure 29] This diagram shows an example of various types of data used in information processing in Game System 1. [Figure 30] A flowchart illustrating an example of the game processing flow executed by Game System 1. [Figure 31] A flowchart showing an example of the process for setting the destruction range in step S6. [Modes for carrying out the invention]

[0034] [1. Game System Configuration] The following describes a game system according to an example of this embodiment. An example of the game system 1 in this embodiment includes a main unit (information processing device; functioning as the game device main unit in this embodiment) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are detachable from the main unit 2. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. Alternatively, the game system 1 can be used with the main unit 2 and the left controller 3 and right controller 4 as separate components (see Figure 2). The hardware configuration of the game system 1 in this embodiment will be described below, followed by a description of the control of the game system 1 in this embodiment.

[0035] Figure 1 shows an example of the main unit 2 with the left controller 3 and right controller 4 attached. As shown in Figure 1, the left controller 3 and right controller 4 are attached to the main unit 2 and integrated together. The main unit 2 is a device that performs various processes (e.g., game processing) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and right controller 4 are devices equipped with operation parts for user input.

[0036] Figure 2 shows an example of the left controller 3 and right controller 4 being removed from the main unit 2. As shown in Figures 1 and 2, the left controller 3 and right controller 4 are detachable from the main unit 2. In the following, the left controller 3 and right controller 4 will be collectively referred to as "controllers".

[0037] Figure 3 is a six-view drawing showing an example of the main unit 2. As shown in Figure 3, the main unit 2 includes a roughly plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is roughly rectangular in shape.

[0038] The shape and size of the housing 11 are arbitrary. For example, the housing 11 may be portable. The main unit 2 alone, or the integrated unit in which the left controller 3 and right controller 4 are attached to the main unit 2, may be a portable device. The main unit 2 or the integrated unit may be a handheld device. The main unit 2 or the integrated unit may also be a portable device.

[0039] As shown in Figure 3, the main unit 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays images generated by the main unit 2. In this embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.

[0040] Furthermore, the main unit 2 is equipped with a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (for example, a capacitive touch panel). However, the touch panel 13 may be of any type, for example, a type that allows single-touch input (for example, a resistive touch panel).

[0041] The main unit 2 is equipped with a speaker (i.e., speaker 88 shown in Figure 6) inside the housing 11. As shown in Figure 3, speaker holes 11a and 11b are formed on the main surface of the housing 11. The sound output from speaker 88 is emitted from these speaker holes 11a and 11b, respectively.

[0042] Furthermore, the main unit 2 is equipped with a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via wired connection, and a right terminal 21, which is for the main unit 2 to communicate with the right controller 4 via wired connection.

[0043] As shown in Figure 3, the main unit 2 is equipped with a slot 23. The slot 23 is located on the upper side of the housing 11. The slot 23 has a shape that allows a predetermined type of storage medium to be inserted. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) specifically for the game system 1 and similar information processing devices. The predetermined type of storage medium is used, for example, to store data used by the main unit 2 (e.g., application save data, etc.) and / or programs executed by the main unit 2 (e.g., application programs, etc.). The main unit 2 is also equipped with a power button 28.

[0044] The main unit 2 is equipped with a lower terminal 27. The lower terminal 27 is a terminal for the main unit 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 unit 2 alone is placed on the cradle, the game system 1 can display the images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has the function of charging the integrated device or the main unit 2 alone that is placed on it. The cradle also has the function of a hub device (specifically, a USB hub).

[0045] Figure 4 is a six-view drawing showing an example of the left controller 3. As shown in Figure 4, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically elongated shape, that is, it is long in the vertical direction (i.e., in the y-axis direction as shown in Figures 1 and 4). The left controller 3 can also be held in a vertically elongated orientation when detached from the main device 2. The housing 31 is shaped and sized to be held with one hand, especially the left hand, when held in a vertically elongated orientation. The left controller 3 can also be held in a horizontally elongated orientation. When the left controller 3 is held in a horizontally elongated orientation, it may be held with both hands.

[0046] The left controller 3 is equipped with an analog stick 32. As shown in Figure 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a directional input unit that can input direction. The user can input direction (and magnitude according to the angle of tilt) by tilting the analog stick 32. In addition, the left controller 3 may be equipped with a directional pad or a slide stick that allows slide input instead of the analog stick as the directional input unit. Furthermore, in this embodiment, input by pressing the analog stick 32 is also possible.

[0047] The left controller 3 is equipped with various operation buttons. The left controller 3 has four operation buttons 33-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. In addition, the left controller 3 is equipped with a record button 37 and a minus button 47. The left controller 3 has a first L button 38 and a ZL button 39 on the upper left side of the side of the housing 31. Furthermore, the left controller 3 has a second L button 43 and a second R button 44 on the side of the housing 31 that is attached when mounted to the main unit 2. These operation buttons are used to give instructions according to various programs (e.g., OS programs and application programs) executed on the main unit 2.

[0048] Furthermore, the left controller 3 is equipped with a terminal 42 for wired communication between the left controller 3 and the main unit 2.

[0049] Figure 5 is a six-view drawing showing an example of the right controller 4. As shown in Figure 5, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically elongated shape, that is, a shape that is long in the vertical direction. When the right controller 4 is detached from the main unit 2, it can also be held in a vertically elongated orientation. The housing 51 is shaped and sized to be held with one hand, especially the right hand, when held in a vertically elongated orientation. The right controller 4 can also be held in a horizontally elongated orientation. When the right controller 4 is held in a horizontally elongated orientation, it may be held with both hands.

[0050] The right controller 4, like the left controller 3, is equipped with an analog stick 52 as a directional input unit. In this embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. Alternatively, the right controller 4 may be equipped with a directional pad or a slide stick capable of slide input instead of the analog stick. The right controller 4, like the left controller 3, is equipped with four operation buttons 53-56 (specifically, A button 53, B button 54, X button 55, and Y button 56) on the main surface of the housing 51. Furthermore, the right controller 4 is equipped with a + (plus) button 57 and a home button 58. The right controller 4 is also equipped with a first R button 60 and a ZR button 61 on the upper right side of the housing 51. The right controller 4, like the left controller 3, is also equipped with a second L button 65 and a second R button 66.

[0051] Furthermore, the right controller 4 is equipped with a terminal 64 for wired communication between the right controller 4 and the main unit 2.

[0052] Figure 6 is a block diagram showing an example of the internal configuration of the main unit 2. In addition to the configuration shown in Figure 3, the main unit 2 includes the components 81-91, 97, and 98 shown in Figure 6. Some of these components 81-91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed within the housing 11.

[0053] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that performs various information processing operations performed in the main unit 2, and may consist of, for example, only a CPU (Central Processing Unit), or it may consist of an SoC (System-on-a-chip) that includes multiple functions such as CPU function and GPU (Graphics Processing Unit) function. The processor 81 performs various information processing operations by executing information processing programs (for example, game programs) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium installed in slot 23).

[0054] The main unit 2 includes, as an example of an internal storage medium built into itself, a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85. The flash memory 84 and DRAM 85 are connected to the processor 81. The flash memory 84 is a memory mainly used to store various types of data (which may be programs) stored in the main unit 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing.

[0055] The main unit 2 is equipped with 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 slot 23 and reads and writes data to a predetermined type of storage medium (for example, a dedicated memory card) installed in slot 23, according to instructions from the processor 81.

[0056] The processor 81 performs the above-mentioned information processing by appropriately reading and writing data to and from the flash memory 84 and DRAM 85, as well as to each of the above-mentioned storage media.

[0057] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with external devices via a network (specifically, wirelessly). In this embodiment, the network communication unit 82 communicates with external devices by connecting to a wireless LAN using a method compliant with the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main unit 2 of the same type using a predetermined communication method (for example, communication using a proprietary protocol or infrared communication) as a second communication mode. The wireless communication using the second communication mode is possible with other main unit 2 located within a closed local network area, and realizes a function that enables so-called "local communication" in which data is sent and received by communicating directly between multiple main unit 2.

[0058] The main unit 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 communicates wirelessly with the left controller 3 and / or the right controller 4. The communication method between the main unit 2 and the left controller 3 and the right controller 4 is arbitrary, but in this embodiment, the controller communication unit 83 communicates with the left controller 3 and with the right controller 4 in accordance with the Bluetooth® standard.

[0059] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27 described above. When the processor 81 communicates with the left controller 3 via a wired connection, 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. When the processor 81 communicates with the right controller 4 via a wired connection, 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. When the processor 81 communicates with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4, respectively. Furthermore, when the left controller 3 and the right controller 4 are mounted on the main unit 2 as an integrated unit, or when the main unit 2 alone is mounted on the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

[0060] Here, the main unit 2 can communicate simultaneously (in other words, in parallel) with multiple left controllers 3. Furthermore, the main unit 2 can communicate simultaneously (in other words, in parallel) with multiple right controllers 4. Therefore, multiple users can simultaneously input to the main unit 2 using their respective sets of left controllers 3 and right controllers 4. For example, while the first user inputs to the main unit 2 using the first set of left controllers 3 and right controllers 4, the second user can input to the main unit 2 using the second set of left controllers 3 and right controllers 4.

[0061] The display 12 is also connected to the processor 81. The processor 81 displays images generated (for example, by performing the above information processing) and / or images acquired from an external source on the display 12.

[0062] The main unit 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 terminals 25, as well as to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to the speakers 88 and the audio input / output terminals 25.

[0063] The main unit 2 comprises a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown in the figures, the power control unit 97 is also connected to various parts of the main unit 2 (specifically, the parts that receive power from the battery 98, the left terminal 17, and the right terminal 21). Based on commands from the processor 81, the power control unit 97 controls the power supply from the battery 98 to the aforementioned parts.

[0064] The battery 98 is also 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 unit 2 via the lower terminal 27, the supplied power charges the battery 98.

[0065] Figure 7 is a block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. Note that the details of the internal configuration of the main unit 2 are shown in Figure 6 and are therefore omitted in Figure 7.

[0066] The left controller 3 includes a communication control unit 101 that communicates with the main unit 2. As shown in Figure 7, the communication control unit 101 is connected to each component, including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 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 method of communication that the left controller 3 performs with the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. When the left controller 3 is detached from the main unit 2, the communication control unit 101 performs wireless communication with the main unit 2 (specifically, the controller communication unit 83). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed according to, for example, the Bluetooth® standard.

[0067] The left controller 3 also includes a memory 102, such as flash memory. The communication control unit 101 is composed of, for example, a microcontroller (also called a microprocessor) and performs various processes by executing firmware stored in the memory 102.

[0068] The left controller 3 is equipped with buttons 103 (specifically, buttons 33-39, 43, 44, and 47). The left controller 3 is also equipped with an analog stick (referred to as "stick" in Figure 7) 32. Each button 103 and the analog stick 32 repeatedly output information about the operations performed on them to the communication control unit 101 at appropriate intervals.

[0069] The communication control unit 101 acquires information about the input (specifically, information about the operation or detection results from the sensor) 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 that has been processed in a predetermined manner), to the main unit 2. The operation data is transmitted repeatedly at a rate of once at predetermined intervals. The interval at which information about the input is transmitted to the main unit 2 may or may not be the same for each input unit.

[0070] When the above operation data is transmitted to the main unit 2, the main unit 2 can obtain the input made to the left controller 3. In other words, the main unit 2 can determine the operation of each button 103 and the analog stick 32 based on the operation data.

[0071] The left controller 3 includes a power supply unit 108. In this embodiment, the power supply unit 108 includes a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and to each part of the left controller 3 (specifically, each part that receives power from the battery).

[0072] As shown in Figure 7, the right controller 4 includes a communication control unit 111 that communicates with the main unit 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 memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both by wired communication via the terminal 64 and by wireless communication without the terminal 64 (specifically, communication according to the Bluetooth® standard), and controls the method of communication that the right controller 4 performs with the main unit 2.

[0073] The right controller 4 is equipped with the same inputs as the left controller 3. Specifically, it is equipped with buttons 113 and an analog stick 52. These inputs have the same functions and operate in the same way as the inputs of the left controller 3.

[0074] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions and operates in the same manner as the power supply unit 108 of the left controller 3.

[0075] [2. Overview of processing in the game system] Next, an overview of the processes performed in the game system 1 will be described with reference to Figures 8 to 15. In this embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters controlled by the player) are placed in a game space, which is a three-dimensional virtual space, and displays it on a display device. In this embodiment, the display device on which the game image is displayed may be the display 12 described above, or it may be a stationary monitor.

[0076] [2-1. Voxel] In this embodiment, the shape of some objects in the game space is defined by voxel data. Here, a voxel is a rectangular (more specifically, cubic) region arranged in a grid in the game space, and voxel data is the data set for each voxel. Hereafter, objects whose shape is defined by voxel data will be called "voxel objects". In this embodiment, the game system 1 stores voxel data for each of the multiple voxels set in the game space as data for generating voxel objects in the game space.

[0077] Figure 8 shows an example of a terrain object that is a voxel object. As shown in Figure 8, in this embodiment, terrain objects representing the ground and other terrain are defined by voxel data (i.e., they are voxel objects). Each cube shown in Figure 8 represents a terrain object. Note that in Figure 8, the edges of the terrain objects are shown with thick lines, but these thick lines are added for the purpose of making the drawing easier to read, and in reality, the edges of the terrain objects do not need to be displayed with thick lines.

[0078] Furthermore, the terrain object shown in Figure 8 is generated using a rule such as, "If the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the voxel's position; if it is less than or equal to the predetermined value, nothing is placed at the voxel's position." The terrain object shown in Figure 8 is provided to illustrate the relationship between voxels and voxel objects in an easy-to-understand manner. In this embodiment, in practice, voxel objects are generated (based on voxel data) using a rule that results in a shape more complex than the length of one side of a voxel, such as the terrain object shown in Figure 14, which will be described later. 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 voxel objects as shown in Figure 8 or as shown in Figure 15 based on object data.

[0079] For voxel objects, the shape can be changed by modifying the voxel data of each voxel. Figures 9 and 10 show examples of what the terrain object shown in Figure 8 looks like before and after a portion of it is deleted. That is, when the shaded portion of the terrain object shown in Figure 9 is destroyed, the terrain object changes to the shape shown in Figure 10. At this time, the game system 1 can easily delete the terrain object by rewriting the voxel data of the shaded portion voxel to indicate that the terrain object does not exist. Furthermore, when adding a terrain object, the game system 1 can easily change the shape of the terrain object by modifying the voxel data of each voxel, just as when deleting a terrain object.

[0080] In this way, Game System 1 can freely change the shape of voxel objects by rewriting the voxel data. For example, if a terrain object is destroyed in a game for some reason (for example, when a player character hits the terrain object) and the shape of that terrain object changes as a result, Game System 1 can freely change the shape of the terrain object by changing the voxel data used to generate the terrain object, rather than directly changing the data that represents the external shape of the terrain object (i.e., the mesh described later).

[0081] Figure 11 shows an example of the contents of voxel data. In this embodiment, the game space can be divided into a plurality of voxels arranged in a grid. The game system 1 stores voxel data associated 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.

[0082] As shown in Figure 11, the voxel data includes density data. The density data indicates the degree to which an object is contained within the region in which each voxel is defined. As will be explained in detail later, the position and shape of the surface of the voxel object (i.e., the mesh described later) are determined based on the above density. In other words, in this embodiment, the above density is also the data used to create the mesh that defines the surface of the voxel object.

[0083] In this embodiment, the density can take an integer value within the range from a lower limit (e.g., 0) to an upper limit (e.g., 255). In this embodiment, the game system 1 assumes that if the density value set for a voxel is high, the above proportion within that voxel is large, and if the density value is low, the proportion of the volume occupied by voxel objects within that voxel is small. For example, if the density is 0, there are no objects in that voxel; if the density is 255, the entire voxel is occupied by objects; and if the density is a value in between, objects occupy the voxel in a proportion corresponding to the value. The shape of the voxel mesh, i.e., the shape of the voxel object, is then determined based on the density. However, the shape of the voxel object generated based on the above density does not need to have a volume that exactly matches the proportion indicated by the density. For example, the volume may differ between a method for generating a voxel object like the one in Figure 8 and a method for generating a voxel object like the one in Figure 15, even if they are based on the same density.

[0084] In other embodiments, density may indicate either a state where the entire region within the voxel is occupied by voxel objects, or a state where the region within the voxel is not contained by voxel objects. For example, density data may only take the form of either 0 or 1.

[0085] As shown in Figure 11, the voxel data includes material data. The material data indicates the material (in other words, substance) of the voxel object generated by the voxel data. In this embodiment, the voxel object is assigned materials such as sand, rock, and soil. That is, in this embodiment, multiple types of materials are provided as materials that can be assigned to the voxel object, and the voxel object is assigned one of these multiple types of materials.

[0086] As shown in Figure 11, in this embodiment, the material data indicates the material identification information (referred to as the "material ID"). In this embodiment, the game system 1 stores material information indicating the properties and texture of each material provided in the game. In this embodiment, the material information associates the material ID with 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 with the identification information of the properties of the material (referred to as the "property ID") and the identification information of the texture of the material (referred to as the "texture ID") (see Figure 11).

[0087] Figure 12 shows an example of property information indicating the properties of a material. As shown in Figure 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 a material are the properties that the voxel object to which the material is set has in the game, such as weight and slipperiness as shown in Figure 12. The specific content of the properties 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 a voxel object will break when subjected to an impact) • Whether or not other objects can be attached to a voxel object. • The amount of health the player character recovers when the player character destroys a voxel object. • The amount of in-game currency a player character acquires when they destroy a voxel object. The specific properties set for the material are arbitrary. In other embodiments, different information may be set as information indicating the properties of the material.

[0088] Figure 13 shows an example of texture information indicating the texture of a material. As shown in Figure 13, the game system 1 stores texture information that associates the above-mentioned texture ID with the texture indicated by that texture ID.

[0089] In addition to texture information, optional information regarding color and / or pattern may be set as data that defines the appearance of a voxel object. For example, a crack pattern may be set as information regarding the appearance of a voxel object. By using such a pattern, game system 1 can generate an image of a voxel object that represents a cracked appearance.

[0090] As described above, in this embodiment, the material data defines the properties of the voxel object and the texture used for the voxel object by the material ID. For example, if the material ID indicated by the material data included in the voxel data is "002", the properties indicated by the property ID "001" associated with that material ID in the material information are set as the properties of the voxel object corresponding to that voxel data (see the arrow shown in Figure 11). In the above case, the texture indicated by the texture ID "002" associated with that material ID in the material information is applied to the voxel object corresponding to that voxel data (see the arrow shown in Figure 11).

[0091] As described above, in this embodiment, the game system 1 manages the properties and textures of materials separately. Therefore, in this embodiment, it is possible to easily set up multiple types of materials that have the same properties but different appearances (i.e., textures), or multiple types of materials that have different properties but the same appearance.

[0092] The material data may be any data that can identify the properties and / or texture of the material. For example, in other embodiments, the material data may indicate the property ID and texture ID, or it may have a data structure that actually contains data indicating the properties and texture of the material.

[0093] Furthermore, material data may also include information about the material, which may contain other information different from the properties and textures described above. For example, material data may include effect data that indicates an effect that occurs when the effect conditions set for a voxel object (for example, when a part of the voxel object is destroyed, or when a character steps on the voxel object) are met. Note that effect data may be data that indicates an effect image (for example, an effect image that represents the destruction of the voxel object) or data that indicates an effect sound (the sound of a character walking on the voxel object).

[0094] As shown in Figure 11, voxel data includes state data that indicates the state of the voxel object. The specific content of the state data is arbitrary. For example, the state data may indicate whether the voxel object is wet or not, or it may indicate the amount of damage inflicted on the voxel object. The content of the state data may be updated during gameplay.

[0095] [2-2. Mesh] In this embodiment, the surface of a voxel object is represented by a mesh. A mesh is a collection of multiple faces (specifically, polygons) placed in the game space. In this embodiment, the game system 1 generates a mesh for a voxel object based on the voxel data of each voxel set in the game space. An example of generating a mesh based on voxel data is described below.

[0096] Figure 14 shows an example of a mesh generation method. Note that in Figure 14, voxels and meshes are represented in two dimensions for clarity and ease of explanation; however, in reality, a three-dimensional mesh is generated based on voxels in three-dimensional space.

[0097] As described above, in this embodiment, the density set for a voxel is set within the range of 0 to 255. In this embodiment, voxels with a density equal to or greater than the reference value are considered to be inside the object, and voxels with a density less than the reference value are considered to be outside the object. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., reference value = 1), and the reference value can be, for example, 128. In the example shown in Figure 14, the density of voxel 201 and the other outer voxels is set to 0, the density of voxel 202 is set to 100 (less than the reference value), and the densities of voxels 203 and 204 are set to 150 and 200 (greater than or equal to the reference value). In this embodiment, the game system 1 generates vertices between voxels with a density equal to or greater than the reference value and voxels with a density less than the reference value. Specifically, for each region spanning eight adjacent voxels (four in the diagram) (the region enclosed by the dotted line in the diagram), a determination is made as to whether or not to generate a vertex. In other words, vertices are generated in regions that span both voxels with a density above a certain threshold and voxels with a density below that threshold. Furthermore, if the boundary between adjacent vertices (the boundary of the region containing each vertex) passes through a range of voxels with a density above a certain threshold and voxels with a density below that threshold, a polygon mesh is generated by connecting those vertices. The coordinates of the vertices are determined by comparing the densities of adjacent voxels along each of the X, Y, and Z axes and interpolating based on the density difference. At this time, coordinate calculations can also be performed based on normal information, but the normal information may be stored in advance for at least some of the voxels, or if it is not stored, the normal information may also be calculated based on the densities of adjacent voxels. Note that in Figure 14, since the density of voxel 202 is below the threshold, voxel 202 is treated as outside the object when determining the presence or absence of a vertex, but the density value of voxel 202 itself is used in the calculation of the coordinates of the generated vertices. If the baseline value is set lower than the density of voxel 202, the result will be that more vertices will be added to the upper right and upper left sides of voxel 202 in Figure 14.

[0098] As described above, by generating a polygon mesh, it is possible to generate a shape with a volume that reflects the density of each voxel to some extent. However, depending on the relationship with adjacent voxels, it is possible that voxels with a density of 0 may include some areas within the object, or that voxels with a density of 255 may include some areas outside the object. Also, in this embodiment, voxels below a certain threshold are treated as being outside the object, so the volume will be smaller because there will be fewer vertices compared to when they are treated as being inside the object. In other words, it is not necessary to calculate the polygon mesh so that the volume corresponds precisely to the density value.

[0099] Figure 15 shows an example of a game image including terrain objects. In this embodiment, by generating a mesh as described above, the voxel object can be made to have a shape with complex irregularities compared to the length of one side of a voxel.

[0100] The method for generating the mesh based on the voxel data is arbitrary. For example, in another embodiment, if the density of the voxel data is greater than a predetermined value, the mesh may be generated such that cubes are placed in the voxels (see Figure 8).

[0101] Game System 1 determines the appearance (i.e., color and / or pattern) of each face of the mesh generated as described above, according to the material identified by the voxel data. Specifically, 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. The texture mapped to each face of the mesh is determined based on the voxel data of the voxel used to generate that face (referred to as the target voxel) among the voxels in which the voxel object exists. The target voxel is, depending on the mesh generation method, for example, one or more voxels arranged around that face. In other words, the texture mapped to the face of the mesh is determined to be the texture corresponding to the material set for one or more voxels arranged around that face.

[0102] In other embodiments, a single voxel data may contain multiple types (e.g., two types) of material data. In this case, the voxel data includes ratio data relating to the multiple types of material data. The ratio data is used to determine the texture to be used for the voxel object, and indicates the ratio by which each material (specifically, the texture corresponding to the material) represented by the multiple types of material data affects the appearance (specifically, the color and / or pattern) of the voxel object. Furthermore, when determining the texture to be mapped to each face of the mesh, the texture is determined based on the various data (specifically, density data, multiple types of material data, and ratio data) contained in the voxel data of the target voxel. For example, if multiple types of materials are set for a target voxel corresponding to one face, the texture corresponding to the material with the greatest influence (one type) may be used, taking the above ratio into consideration, or each texture corresponding to the multiple types of materials may be used, taking the above ratio into consideration.

[0103] In other embodiments, there may be both voxel objects that use voxel data containing one type of material data and voxel objects that use voxel data containing two types of material data.

[0104] (Overview of game processing) Next, the destruction of voxel objects in the game of this embodiment will be described. Figure 16 is an image of the game space in the game of this embodiment as seen from a virtual camera, and is an example of a game image displayed on a display device. Figure 17 is an example of how a destruction action is performed by a player character.

[0105] As shown in Figure 16, a player character PC is placed in the game space. The player character PC moves within the game space in response to the player's input (for example, input to the analog stick 32). The player character PC also performs various actions within the game space, such as punching and jumping, in response to the player's input (for example, input to the A button 53 or B button 54). The player character PC is not a voxel object, but a 3D object whose shape is predefined by polygons.

[0106] When the game starts, a fixed voxel space is set up in the game space, defined in an Xs-Ys-Zs coordinate system, to represent the field. The Xs-Ys-Zs coordinate system is assumed to have axes parallel to the XYZ coordinate system of the game space. That is, the Ys axis is the axis pointing upwards in the game space, and the Xs and Zs axes are axes perpendicular to the Ys axis. The voxel space defined in the Xs-Ys-Zs coordinate system may be referred to as the "field voxel space" below. The position of each object in the game space is represented by coordinate values ​​in the Xs-Ys-Zs coordinate system. Note that, here, the orientation of the Xs-Ys-Zs coordinate system representing the field voxel space is assumed to coincide with the XYZ coordinate system representing the game space, but they do not have to coincide.

[0107] In the field voxel space, terrain objects are set as voxel objects. For example, terrain object 210 representing the ground and terrain object 220 representing a rocky mountain are set as terrain objects. For example, by setting material data representing rock to the voxel data of each voxel located below in the field voxel space, terrain object 210 representing a rocky ground is formed. Also, by setting material data representing rock to the voxel data of multiple voxels located above the ground in the field voxel space, terrain object 220 representing a rocky mountain rising from the ground is formed.

[0108] The terrain object 210 representing the ground and the terrain object 220 representing the rocky mountains can be destroyed by the destruction action of the player character PC. Terrain objects 210 and 220 are destroyed when the voxel data of the voxels in the field voxel space is updated.

[0109] For example, as shown in Figure 17, when a player character PC performs a punch as a destruction action, and the punch hits a terrain object 220, the destruction range is set based on the position where the punch hit (the position of the player character PC). Then, the terrain object 220 included in the destruction range is destroyed and removed. Specifically, a destruction process is performed on the voxels included in the destruction range to update the voxel data, thereby removing the terrain object 220 included in that destruction range.

[0110] The destruction range (an example of the erasure range) is the range set for an object hit by a destruction action performed by the player character PC, and is set based on the position where the destruction action hit. For example, the destruction range is the range obtained by subtracting the range below a predetermined plane set based on the position of the player character PC from a predetermined shape. The predetermined shape is a shape that is stored in advance and consists of curved surfaces. In this embodiment, there are multiple predetermined shapes, and they are determined according to the direction of the destruction action. For example, if the player character PC performs a destruction action in the forward direction, the predetermined shape is the first shape. The first shape may be, for example, a sphere, an ellipsoid, or an ellipsoid that has been deformed asymmetrically (left-right or up-down). For example, the first shape when the player character PC performs a left punch may be an asymmetrical ellipsoid that bulges to the left, and the first shape when the player character PC performs a right punch may be an asymmetrical ellipsoid that bulges to the right.

[0111] In this embodiment, when a forward punch from the player character PC hits an object, a first shape is set in front of the player character PC, and the destruction range is set by correcting this first shape. Specifically, the destruction range is set as the shape obtained by subtracting the area below a predetermined plane set based on the position of the player character PC from the first shape.

[0112] Figure 18 shows the destruction range when no correction is applied to the first shape, and an example of the terrain object after destruction within that destruction range. Figure 19 shows the destruction range when correction is applied to the first shape, and an example of the terrain object after destruction within that destruction range.

[0113] When a player character PC's forward punch hits a terrain object 220, a first shape of destruction range is set in front of the player character PC. For example, the first shape of destruction range is set centered on a position in the field voxel space corresponding to the position of the player character PC's fist (or its vicinity) in the game space. As shown in Figure 18, if no correction is made to the destruction range, the destruction range includes a portion of the terrain object 220 representing the rocky mountain that was hit by the punch, and a portion of the terrain object 210 representing the ground. When a destruction process is performed on the voxels included in this destruction range, the terrain objects included in the destruction range are erased. In this case, the terrain after destruction will have a shape in which a portion of the terrain object 220 representing the rocky mountain and a portion of the terrain object 210 representing the ground have been removed. In this way, if no correction is made to the first shape, the terrain after destruction will have a concave shape around the player character PC, and the ground after destruction will be uneven. When a player character PC moves forward while destroying terrain objects 220 in front of them, if the ground becomes uneven after the destruction, the player character PC may have difficulty moving.

[0114] Therefore, in this embodiment, the first shape is corrected so that the ground after destruction becomes a flat surface. Specifically, as shown in Figure 19, when a forward punch from the player character PC hits the terrain object 220, a predetermined surface (plane) parallel to the ground is set at the same height as the ground where the player character PC is located. Then, the shape obtained by removing the portion below this predetermined surface from the first shape is set as the destruction range. In other words, if the first shape set based on the position of the player character PC includes a predetermined surface at the same height as the ground, the shape obtained by removing the portion below the predetermined surface from the first shape is set as the destruction range so that the ground after destruction does not become uneven. In the example shown in Figure 19, the area enclosed by the dashed line is set as the destruction range.

[0115] When a destruction range is set, the voxels included within that range are destroyed. For example, for voxels that are completely contained within the destruction range, the voxel data is rewritten to a value indicating that the object does not exist. Specifically, the density of voxels that are completely contained within the destruction range is set to "0". For voxels that are partially contained within the destruction range, the voxel density is set to a range such as 128 to 254 (or 1 to 255).

[0116] When a destruction process is performed on voxels within the destruction range set (corrected) in this way, the resulting terrain will have a curved surface due to the removal of part of the terrain object 220 representing the rocky mountain, while the ground will remain flat. In this way, the ground after destruction can be kept flat, making it easier for the player character PC to move across the destroyed ground.

[0117] Here, if the ground the player character PC is in contact with is inclined with respect to the horizontal plane when the player character PC's forward punch hits the terrain object 220, then the predetermined surface will also be inclined with respect to the horizontal plane, similar to the ground. Figure 20 shows an example of the destruction range set when the player character PC punches forward when the ground it is in contact with is inclined.

[0118] As shown in Figure 20, suppose the ground to which the player character PC is in contact is inclined with respect to the horizontal plane (XZ plane), and the player character PC makes a forward punch, and the punch hits the terrain object 220. In this case, a predetermined shape is set based on the position where the punch hit, and a predetermined surface having an inclination corresponding to the inclination of the ground to which the player character PC is in contact is also set. Specifically, the predetermined shape is set at a position diagonally above the player character PC. For example, the center of the predetermined shape may be set at a position diagonally above the player character PC along the ground. The predetermined shape set at this time may be the same shape as the first shape described above, or it may be the first shape inclined according to the inclination of the ground. Alternatively, the predetermined shape may be a different shape from the first shape described above, and it may be a shape corresponding to the inclination of the ground.

[0119] Furthermore, the predetermined surface is tilted in the same way as the slope of the ground on which the player character PC is standing. For example, game system 1 calculates the slope of the ground on which the player character PC is standing and sets a predetermined surface having that slope. The predetermined surface is also set to pass through the position on the ground (contact point) where the player character PC is standing. Then, the area obtained by removing the part below the predetermined surface, which is tilted according to the slope of the ground, from the predetermined shape is set as the destruction range. As a result, the ground around the player character PC after destruction is tilted in the same way as the rest of the ground. This allows the player character PC to destroy the terrain while maintaining the slope when moving forward on a slope while performing punches.

[0120] The method for calculating the ground inclination (inclination of a predetermined surface) is arbitrary, but for example, the ground inclination may be calculated based on the normal vector of a reference point within a predetermined range that includes the position on the ground to which the player character PC is in contact (point of contact).

[0121] Figure 21 shows an example of a method for calculating the slope of the ground in contact with the player character PC. As shown in Figure 21, when the player character PC's forward punch hits the terrain object 220, the slope of the ground is calculated based on reference points within a predetermined range including the player character PC's point of contact, and a predetermined surface may be set according to the slope of the ground. For example, the average of the normal vectors at multiple reference points is calculated, and a plane having this average vector as its normal vector is calculated as the predetermined surface. However, based on the multiple normal vectors, it may be determined whether the surrounding area is relatively flat or uneven, and if it is determined that the surrounding area is uneven, the predetermined surface may be a horizontal plane passing through the coordinates where the player character PC is in contact with the ground, rather than a plane based on the average of the normal vectors. Furthermore, the predetermined surface is set to pass through a point within the predetermined range (for example, the point of contact).

[0122] Next, we will explain what happens when the player character PC performs a forward punch while in the air, and that punch hits terrain object 220.

[0123] Figure 22 shows an example where the destruction range is corrected when the player character PC performs a forward punch while in the air and the punch hits the terrain object 220. Figure 23 shows an example where the destruction range is not corrected when the player character PC performs a forward punch while in the air and the punch hits the terrain object 220.

[0124] The player character PC may jump in the game space in response to the player's input, temporarily leaving the ground. Even when the player character PC is in the air due to a jump, it can still punch in response to the player's input. As shown in Figure 22, when the player character PC is in the air and a forward punch from the player character PC hits a terrain object 220, a predetermined surface is calculated based on the ground directly beneath the player character PC. For example, when the player character PC's punch hits, the normal vector of the predetermined surface is calculated based on a reference point within the predetermined range that includes the position on the ground directly beneath the player character PC at that moment. A predetermined surface is set that has the calculated normal vector and passes through a point within the predetermined range (for example, the intersection of a straight line extended directly downward from the player character PC's position and the ground). Then, as shown in Figure 22, if a part of the first shape set based on the position where the player character PC's punch hits is located below the predetermined surface, the shape obtained by removing the part below the predetermined surface from the first shape is set as the corrected destruction range. In other words, if a predetermined surface is included within the first shape, which is set based on the position where the player character PC's punch hits, the destruction range is corrected.

[0125] This allows for adjustment of the destruction range even when the player character PC is in the air, and makes it easier for the player character PC to move around on the ground after the destruction when they land.

[0126] On the other hand, as shown in Figure 23, if the entirety of the first shape, which is set based on the position where the player character PC's punch hits, is located above a predetermined surface, that is, if the predetermined surface is not included within the first shape, the destruction range is not corrected, and the entire first shape is set as the destruction range.

[0127] This allows the terrain object to be destroyed in the first shape if a predetermined surface is not included within the first shape, and the resulting shape can be made natural.

[0128] Next, we will explain the correction to the damage range when the player character PC performs a punch in an upward diagonal direction.

[0129] Figure 24 is a diagram comparing the destruction range before and after correction, and shows an example of the destruction range when the player character PC performs a punch in an upward diagonal direction.

[0130] If the player inputs upward (diagonally upward) direction on the analog stick 32 while performing an action for punching (for example, pressing the A button 53), the player character PC will perform a diagonally upward punch. As shown in Figure 24, when the diagonally upward punch of the player character PC hits the terrain object 220, a predetermined shape is set diagonally upward from the player character PC. For example, the center of the predetermined shape is set at a position in the field voxel space corresponding to the position of the player character PC's fist in the game space (the diagonally upward position of the player character PC). The predetermined shape set when a diagonally upward punch hits the terrain object 220 is a second shape that is different from the first shape set when a forward punch hits the terrain object 220. For example, the second shape set when a diagonally upward punch hits the terrain object 220 may be a symmetrical ellipsoid or a sphere. Furthermore, the predetermined shape set when a punch directed diagonally upward hits the terrain object 220 may be the same as the first shape set when a punch directed forward hits the terrain object 220.

[0131] As shown in the right-hand diagram of Figure 24, when a punch is performed in an upward diagonal direction, the predetermined surface is set to tilt upward diagonally. For example, the predetermined surface is set to have a predetermined angle with respect to the horizontal plane. However, if the ground on which the player character PC is standing is tilted further than the predetermined angle mentioned above when the player character PC performs an upward diagonal punch, the predetermined surface may be set to tilt according to the tilt of the ground.

[0132] Figure 25 is a diagram comparing the case where damage range correction is not performed and the case where it is performed, and shows an example of the terrain after destruction when the player character PC performs a series of punches in an upward diagonal direction.

[0133] As shown in the left diagram of Figure 25, if no correction is made to the destruction range, and the player character PC moves forward while continuously punching diagonally upwards, the ground after destruction will be uneven. On the other hand, as shown in the right diagram of Figure 25, if correction is made to the destruction range, the ground after destruction will be a smooth slope without unevenness.

[0134] In this way, when a punch is performed in an upward diagonal direction, the second shape is set to be diagonally above the player character PC, and the predetermined surface is set to be higher in front of the player character PC. The shape obtained by removing the portion below the predetermined surface from the second shape is set as the destruction range. As a result, when the player character PC performs a punch in an upward diagonal direction, the ground after destruction becomes a slope rising in front of the player character PC, and the ground after destruction can be formed in line with the direction of destruction and movement of the player character PC.

[0135] Next, we will explain the range of destruction when the player character PC performs a downward punch.

[0136] Figure 26 shows an example of the destruction range set when a player character PC punches downwards. Figure 27 shows an example of the terrain after a terrain object has been destroyed within the destruction range set when a player character PC punches downwards.

[0137] If the player, for example, inputs downward on the analog stick 32 while performing a punching operation, the player character PC will perform a downward punch. As shown in Figure 26, when the player character PC performs a downward punch, the punch hits the terrain object 210 representing the ground located below the player character PC. In this case, the destruction range of the third shape is set based on the position where the punch hit. The third shape is a different shape from the first and second shapes, and is, for example, a cylinder. The bottom surface of the third shape is flat. No corrections as described above are applied to the set third shape. If a destruction process is performed on voxels included in the destruction range of the set third shape, the voxel objects within the destruction range are deleted. As a result, a hole of the third shape is formed in the ground, as shown in Figure 27. The bottom of the hole is flat. Furthermore, if the player character PC performs a downward punch at the bottom of the hole, another hole of the third shape is formed.

[0138] Thus, a third shape with a flat bottom is predetermined, and when a downward punch is performed, this third shape is set as the destruction range. This makes it possible to make the shape of the ground after destruction flat without performing the corrections mentioned above, making it easier for the player character PC to move across the destroyed ground.

[0139] In this embodiment, the direction of the player character PC's destruction action is assumed to be one of the following: forward (parallel to the horizontal plane), diagonally upward, or downward (perpendicular to the horizontal plane). However, in other embodiments, the direction of the player character PC's destruction action is not limited to these directions. For example, the player character PC may be able to perform a punch in the diagonally downward direction. In this case, if the diagonally downward punch hits a terrain object, a first or second shape may be set diagonally downward from the player character PC. The predetermined surface is an inclined plane and is set to slope downward in the forward direction from the player character PC. The shape obtained by excluding the area below the predetermined surface from the first or second shape may be set as the destruction range.

[0140] In this embodiment, in addition to the terrain objects defined by voxels in the field voxel space, other voxel objects are also placed in the game space. Figure 28 shows an example of voxel objects other than the terrain objects 210 and 220 that are placed in the game space.

[0141] As shown in Figure 28, enemy objects EC are placed in the game space. Enemy objects EC are characters automatically controlled by processor 81, and they move around the game space, change their posture, and attack the player character PC.

[0142] The enemy object EC is a voxel object, and its shape is defined by the voxel data of multiple voxels in the voxel space VLa. The voxel space VLa is a separate voxel space from the field voxel space, located within the game space, and is defined in the Xa-Ya-Za coordinate system. The voxel data of multiple voxels in the voxel space VLa is set with a density value indicating the existence of an object and material data representing the enemy object. This forms the enemy object EC. As described above, the enemy object EC is displayed by generating and rendering a polygon mesh based on the voxel data of each voxel. Note that while the torso of the enemy object EC is a voxel object, the hands and feet may not be voxel objects but 3D objects whose shapes are defined in advance by polygons.

[0143] Note that in Figure 28, the voxel space VLa is shown by a dotted line for illustrative purposes, but in reality, this dotted line representing the voxel space VLa is not displayed during gameplay.

[0144] In field voxel space, a single voxel is a cubic region with sides of a predetermined length. Here, length is defined in the game space, and the unit of length is, for example, "m (meter)". For example, the height of a player character PC in the game space may be defined as 2m. The side length of a single voxel in field voxel space is, for example, "1m". On the other hand, the side length of a single voxel in voxel space VLa is, for example, "0.5m".

[0145] When a destruction action is performed by a player character PC against an enemy object EC, the destruction range is set in the same manner as described above. For example, if a forward punch from a player character PC hits an enemy object EC, a first shape is set at a position in the voxel space VLa corresponding to the position where the punch hit in game space (the position of the player character PC). The size of this first shape in game space is smaller than the size of the first shape in game space set when a forward punch from a player character PC hits a terrain object. For example, when a forward punch from a player character PC hits a terrain object, a first shape with a first size is set, and when a forward punch from a player character PC hits an enemy object EC, a first shape with a second size is set. When a forward punch from a player character PC hits an enemy object EC, the destruction range is corrected in the same way as when it hits a terrain object. Specifically, a predetermined surface is set as described above, and the shape obtained by removing the part below the predetermined surface from the first shape is set as the destruction range. If a forward punch hits an enemy object EC, the destruction radius is relatively small, allowing the enemy object EC to be destroyed gradually over a small area. On the other hand, if a forward punch hits a terrain object 220, the destruction radius is relatively large, allowing the terrain object 220 to be destroyed on a large scale in a single destruction action.

[0146] In addition to enemy objects (EC), other voxel objects may be placed in the game space. In this case, a separate voxel space from the field voxel space may be set up. For example, a terrain object included in the destruction range set up as described above may be destroyed, and as a result of the destruction, a part of the terrain object may separate, generating a fragment object as a fragment of the terrain object. In this case, a new voxel space separate from the field voxel space is created. By changing the position and orientation of the newly created voxel space in the game space, the fragment object may move or change orientation within the game space. When a destruction action, for example, is performed on such a voxel object in the forward direction, a first shape is set up in the voxel space corresponding to the voxel object, and a predetermined surface is set up. Then, the shape obtained by removing the part below the predetermined surface from the first shape is set up as the destruction range.

[0147] In this embodiment, when a destruction action hits a voxel object, destruction processing (density update) is not necessarily performed on voxels within the destruction range set (corrected) as described above. The density of voxels within the destruction range is updated according to the "fragility" of the material (also called substance or material) in the material data set for the voxel. Specifically, the density of voxels within the destruction range may or may not be updated depending on the "hardness of the destroying side," the "hardness of the destroyed side," and the "amount of damage" to the voxel.

[0148] More specifically, the "hardness of the destroyer" is determined within a range of 1 to 5, depending on the type of destruction action. The "hardness of the destroyed" is a value corresponding to the material indicated by the voxel data, and is determined within a range of 1 to 5, for example. If the "hardness of the destroyer" and the "hardness of the destroyed" meet the predetermined conditions, the amount of damage to the voxels within the (corrected) destruction range set as described above is reduced, and if the amount of damage to the voxels reaches a predetermined durability value, the voxel density is updated. That is, the density of voxels within the destruction range set as described above is updated to a value indicating that no objects exist. As a result, the voxel objects within the destruction range are destroyed. On the other hand, if the amount of damage to the voxels within the (corrected) destruction range set as described above does not reach the durability value, the voxel density is not updated. That is, the voxel objects are not destroyed. In this case, when the amount of damage to voxels within the destruction range, which has been set (corrected) by multiple destruction actions, reaches its durability value, the density of voxels within that destruction range is updated and the voxel object is destroyed.

[0149] On the other hand, if the "hardness of the destroying side" and the "hardness of the destroyed side" satisfy different conditions, the amount of damage to voxels within the set (corrected) destruction range is not reduced, and the density of voxels within that destruction range is updated. In this case, a single destruction action updates the density of voxels within that destruction range, and the voxel object is destroyed.

[0150] As described above, in this embodiment, when the player character PC performs a forward punch while on the ground, and the punch hits a terrain object, the destruction range is set to a shape that is determined according to the position of the player character PC, excluding the portion below a predetermined surface from the first shape. The first shape is a shape predetermined by the destruction action of the player character PC. The predetermined surface is a surface set based on the position of the player character PC. Specifically, the predetermined surface is a plane that is parallel to the ground in contact with the player character PC and at the same height as the ground. By setting the destruction range in this way and destroying (erasing) the voxel objects within the destruction range, the ground after destruction can be made into a flat surface, making it easier for the player character PC to move.

[0151] Furthermore, when a player character PC performs a forward punch while in the air, and the punch hits a terrain object, a predetermined surface is set based on the ground located below (specifically, directly below) the player character PC. If a portion of the first shape is below the predetermined surface, the shape excluding the portion below the predetermined surface is set as the destruction range. This allows the ground to be made flat after destruction, even when a terrain object is destroyed while the player character PC is in the air, making it easier for the player character PC to move. On the other hand, if the entire first shape is above the predetermined surface, the first shape is set as the destruction range. This allows the terrain object to be destroyed within the range of the first shape if it does not affect the movement of the player character PC after destruction, for example, making the terrain after destruction a more natural shape.

[0152] Furthermore, when a player character PC is on the ground and their punch hits a terrain object in an upward diagonal direction, a predetermined surface inclined relative to the horizontal plane is set. Specifically, this predetermined surface is a slope that becomes higher as it moves forward from the player character PC. The shape obtained by removing the portion below the predetermined surface from this predetermined shape is then set as the destruction range. This allows the ground after destruction to be a smooth slope when the player character PC punches upward diagonally, and enables the destruction of terrain objects to follow the direction of the player character PC's destruction action and movement.

[0153] Furthermore, if the ground on which the player character PC is standing is sloped and the player character PC's destruction action hits a terrain object, the designated surface will also slope in the same way as the ground. This allows the ground around the destroyed player character PC to become sloped, just like the rest of the ground, and enables the terrain object to be destroyed in a way that follows the ground on which the player character PC is standing.

[0154] Furthermore, in this embodiment, even when a destruction action is performed on an object (e.g., enemy object EC) that is a voxel object different from a terrain object defined in the field voxel space and is formed by voxels in a second voxel space different from the field voxel space (e.g., voxel space VLa), the destruction range is set in the same manner as described above.

[0155] When a destruction action is performed on an enemy object (EC), the destruction area is set to be smaller than when a destruction action is performed on a terrain object. This allows enemy objects (EC) to be destroyed gradually over a small area, while terrain objects can be destroyed on a large scale.

[0156] Furthermore, the size of one voxel in the voxel space VLa used to form enemy object EC is smaller than the size of one voxel in the field voxel space used to form terrain objects. This allows for a more detailed representation of enemy object EC, as well as the ability to destroy enemy object EC in a more precise manner.

[0157] [3. Specific examples of processing in game systems] Next, we will explain specific examples of information processing in game system 1 with reference to Figures 29 to 31.

[0158] Figure 29 shows an example of various data used for information processing in game system 1. As shown in Figure 29, game system 1 stores game program, game space data, field voxel space data 310, second voxel space data 320, shape data, player character data, and mesh data.

[0159] The game program is a program for executing the game processing in this embodiment (specifically, the game processing shown in Figure 30). The game program is pre-stored in a storage medium or flash memory 84 installed in slot 23 and is loaded into the DRAM 85 when the game is executed.

[0160] Game space data is data used to define the game space and includes data representing the XYZ coordinate system described above.

[0161] The field voxel space data 310 is data relating to the entire field voxel space. As shown in Figure 29, the field voxel space data 310 includes size data 311. The size data 311 indicates the length of one side of each voxel in the field voxel space. For example, the length of one side of each voxel in the field voxel space is 1m. The field voxel space data 310 also includes position data 312. The position data 312 is data representing the position and rotation of the field voxel space in the game space. In this embodiment, the field voxel space is assumed to be fixed in the game space.

[0162] Furthermore, the field voxel space data 310 includes the first volume data 313. The first volume data 313 includes the voxel data for each voxel in the field voxel space. Voxel data is set for each voxel, and a mesh is generated based on the voxel data, thereby forming terrain in the game space. The storage medium or flash memory 84 installed in slot 23 has the initial first volume data 313 pre-stored in it. At the start of the game, the first volume data 313 stored in the storage medium or flash memory 84 installed in slot 23 is read into the DRAM 85. This forms the initial terrain. For example, as initial terrain, a terrain object 210 representing horizontal ground and a terrain object 220 representing rocky mountains are formed. During game execution, the terrain changes as the voxel data contained in the first volume data 313 stored in the DRAM 85 is modified.

[0163] Furthermore, the field voxel spatial data 310 includes destruction range data 314. The destruction range data 314 is data indicating the destruction range that is set when a destruction action performed by the player character PC hits a terrain object formed by the first volume data 313.

[0164] The second voxel space data 320 is data relating to the voxel space VLa located within the game space. The second voxel space data 320 includes size data 321, position data 322, second volume data 323, and destruction range data 324. The size data 321 includes data indicating the length of one side of each voxel in the voxel space VLa, and data indicating the number of voxels in each axis (Xa, Ya, Za axes) direction of the voxel space VLa. For example, the length of one side of each voxel in the voxel space VLa is "0.5m". This size data 321 determines the size of the voxel space VLa in the game space. The position data 322 is data representing the position and rotation of the voxel space VLa in the game space. For example, position data 322 includes coordinate data representing the position in game space and vector data representing the direction in game space for each axis (Xa, Ya, Za axes) of the voxel space VLa. Changing this position data 322 changes the position and / or orientation of the voxel space VLa (i.e., the enemy object EC) in game space.

[0165] The second volume data 323 is data for representing enemy object EC. The second volume data 323 holds voxel data indicating the presence of an object for each voxel contained within the voxel space VLa. That is, the second volume data 323 contains the voxel data for each voxel contained within the voxel space VLa. Voxel data is set for each voxel in the voxel space VLa, and a mesh is generated based on the voxel data to form the enemy object EC.

[0166] Destruction range data 324 is data that indicates the destruction range set when a destruction action performed by the player character PC hits an enemy object EC formed by the second volume data 323.

[0167] Shape data is data representing the predetermined shape described above, and includes data representing the first shape, the second shape, and the third shape, which are predetermined. Player character data is data relating to the player character PC, and includes data indicating the position and orientation in the game space.

[0168] Mesh data is data that represents the mesh set for voxel objects placed in game space. Mesh data includes, for example, data indicating the position of each vertex in the mesh. Mesh data is generated based on the first volume data 313, the second volume data 323, etc.

[0169] In addition to the data shown in Figure 29, Game System 1 also stores data that is stored in advance before game processing is executed, such as the aforementioned property information and texture information data, and data related to various characters that appear in the game. Furthermore, 3D object data representing 3D objects different from voxel objects (for example, the hands and feet of the player character PC and enemy object EC) is stored. In addition, voxel space data is stored for each voxel object that can move within the game space.

[0170] Figure 30 is a flowchart illustrating an example of the game processing flow performed by game system 1. The game processing shown in Figure 30 starts, for example, when the player gives an instruction to start the game.

[0171] In this embodiment, the processor 81 of the main unit 2 executes the game program stored in the game system 1, thereby executing the processing of each step shown in Figure 30. However, in other embodiments, some of the processing of each step may be executed by a processor other than the processor 81 (for example, a dedicated circuit). Also, if the game system 1 can communicate with other information processing devices (for example, a server), some of the processing of each step shown in Figure 30 may be executed by the other information processing device. Furthermore, the processing of each step shown in Figure 30 is merely an example, and the processing order of each step may be changed, or other processing may be performed in addition to (or instead of) the processing of each step, as long as similar results can be obtained.

[0172] Furthermore, the processor 81 executes the processing of each step shown in Figure 30 using memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in memory, and when it is necessary to use that information in subsequent processing steps, it reads the information from memory and uses it.

[0173] As shown in Figure 30, in step S1, the processor 81 sets the initial state of the game space. Specifically, the processor 81 obtains first volume data 313 representing the terrain of the game space in the initial state from the storage medium installed in slot 23, and stores part or all of the obtained first volume data 313 in the DRAM 85. The processor 81 also reads second volume data 323 and shape data, etc., from the storage medium and stores them in the DRAM 85. The processor 81 also reads 3D object data from the storage medium, sets the initial position and orientation of the 3D objects, and stores them in the DRAM 85. The processor 81 also sets the initial position and orientation of the virtual camera and stores them in the DRAM 85.

[0174] Furthermore, the voxel data written to the DRAM 85 may be a portion of the voxel data used to generate game images from the voxel data of the entire game space. For example, the processor 81 may generate an image of an object using voxel data of voxels included in a portion of the game space (for example, within a predetermined distance from the virtual camera's position). Also, when voxel data for a portion of the game space is written, the same processing as in step S1 is executed at an appropriate timing during the execution of the series of processes in steps S2 to S11 (for example, when the virtual camera's position moves by a predetermined distance or more).

[0175] In step S2, the processor 81 generates a mesh for the voxel object. The mesh is generated according to the method described in "[2-2. Mesh]" above. Specifically, the processor 81 generates a mesh representing each voxel object based on the volume data stored in the DRAM 85 in step S1. This constructs the terrain object in the game space and places the enemy object EC in the game space. For example, the processor 81 generates a polygon mesh between voxels with values ​​indicating the existence of an object and voxels with values ​​indicating the non-existence of an object, based on the multiple voxel data contained in the first volume data 313. An example of how to determine the specific vertex position is explained with reference to Figure 14. The processor 81 also generates a polygon mesh between voxels with values ​​indicating the existence of an object and voxels with values ​​indicating the non-existence of an object, based on the multiple voxel data contained in the second volume data 323. This generates a polygon mesh representing the enemy object EC. After step S2, the game starts, and during the game, the processes in steps S3 to S11 are repeatedly executed at predetermined frame time intervals (for example, 1 / 60 second intervals).

[0176] In step S3, the processor 81 controls the actions of various objects appearing in the game space (for example, the player character PC and enemy object EC). For example, the processor 81 moves the player character PC or causes the player character PC to perform predetermined actions (destruction actions, jumps, etc.) based on operation data received from controllers 3 and 4. The destruction actions of the player character PC may include punching, kicking, throwing projectiles, etc. The processor 81 also moves the enemy object EC or causes the enemy object EC to perform destruction actions (swinging or throwing weapon objects, etc.) based on algorithms defined in the game program. The processing in step S4 is executed after step S3.

[0177] In step S4, the processor 81 determines, based on the operation data from the controller, whether or not a destruction action has been performed by the player character PC. Specifically, it determines, based on the operation data from the controller, whether or not a predetermined button on the left controller 3 or the right controller 4 has been pressed. If the result of the determination in step S4 is affirmative, the process in step S5 is executed. On the other hand, if the result of the determination in step S4 is negative, the process in step S10 is executed.

[0178] In step S5, the processor 81 determines whether the destruction action hit a voxel object. Here, for example, it is determined whether the destruction action performed by the player character PC hit a terrain object or an enemy object EC. Terrain objects include terrain object 210 representing the ground, terrain object 220 representing a rocky mountain, etc. The determination of whether the destruction action hit a voxel object is made by a physical collision between the object doing the destroying and the voxel object being destroyed. The object doing the destroying is, for example, the player character PC's fist when the player character PC performs a punch. The voxel object being destroyed is a terrain object or an enemy object EC, and a mesh for collision detection is generated. The mesh for collision detection may be the same as the mesh used for display, or a coarser mesh may be prepared than the display mesh. Collision detection is performed between the mesh for collision detection and the object doing the destroying to determine whether a collision occurred. If the result of the determination in step S5 is positive, the process in step S6 is executed. On the other hand, if the result of the determination in step S5 is negative, the process in step S10 is executed.

[0179] In step S6, the processor 81 performs a destruction range setting process to set the destruction range according to the voxel object that was hit by the destruction action. Details of the destruction range setting process will be described later. The process in step S7 is executed after step S6.

[0180] In step S7, the processor 81 performs a voxel data update process. For example, the processor 81 reduces the density of voxels included in the destruction range set in step S6. Specifically, based on the "hardness of the destroying side" corresponding to the destruction action and the "hardness of the destroyed side" corresponding to the material of the voxel object hit by the destruction action, it is determined whether to update the amount of damage to the voxels included in the destruction range or to update the density without updating the amount of damage. If it is determined to update the amount of damage, the amount of damage to the voxels included in the destruction range set in step S6 is updated. If the updated amount of damage exceeds the durability value corresponding to the material, the density of voxels included in the set destruction range is reduced. Also, if it is determined to update the density without updating the amount of damage, the density of voxels included in the set destruction range is reduced. Specifically, the density of voxels included in the set destruction range is set to a value that indicates that no objects exist (for example, "0"). After the processing in step S7, the processor 81 performs the processing in step S8.

[0181] In step S8, the processor 81 determines whether or not to update the mesh. Here, if the voxel data was updated in step S7, the processor 81 determines to update the mesh. If the determination result in step S8 is positive, the process in step S9 is executed. On the other hand, if the determination result in step S8 is negative, the process in step S10 is executed. Note that even if the voxel data was updated in step S7, if there are no updated voxels within the imaging range of the virtual camera, the processor 81 may determine in step S8 not to update the mesh. In other words, even if a destruction action hits a terrain object or enemy object EC and some or all of the terrain object or enemy object EC is destroyed, if the voxel objects in the game space visible from the virtual camera are not destroyed, the mesh does not need to be updated. Also, when the processing load is high, the mesh update may be postponed to the next frame or later instead of being performed in the current frame.

[0182] In step S9, the processor 81 updates the mesh for voxel objects whose voxel data was modified in step S7. Specifically, the vertex positions of the mesh are recalculated based on the updated voxel data. The updated mesh is stored in the DRAM 85 as mesh data. In other words, the processor 81 generates a mesh for the destroyed voxel object based on the updated voxel data from step S7. This allows the mesh of voxel objects (terrain objects and enemy objects EC) that have undergone destruction actions to be dynamically changed during gameplay. In step S9, the vertices of the mesh are recalculated only for the parts where the voxel data has been updated. For the parts of the mesh where the voxel data has not been updated, the vertex positions of the mesh generated in step S2 are used. In this way, the mesh is recalculated only for the updated voxel data, which reduces the processing load. In other embodiments, in step S9, the vertex positions of the mesh may be recalculated based on all voxel data in the game space (or all voxel data within the imaging range of the virtual camera), including both updated and unupdated voxel data. The process in step S10 is executed after step S9.

[0183] In step S10, the processor 81 generates a game image representing the game space based on the virtual camera and displays the generated game image on the display device. Specifically, the processor 81 generates a game image as seen from the position of the virtual camera, viewing the mesh generated in step S2 or S9. This generates a game image representing the game space, including voxel objects and other 3D objects (e.g., the player character PC). The processor 81 then displays the generated game image on the display device. The processing in step S11 is executed after step S10.

[0184] In step S11, the processor 81 determines whether or not to terminate the game. For example, the processor 81 determines whether or not the user has given an instruction to terminate the game. If the result of the determination in step S11 is negative, the process in step S3 is executed again. Thereafter, the series of processes from steps S3 to S11 are repeatedly executed until it is determined in step S11 that the game should be terminated. On the other hand, if the result of the determination in step S11 is positive, the processor 81 terminates the game process shown in Figure 30.

[0185] (Destruction range setting process) The following describes the process of setting the destruction range in step S6. Figure 31 is a flowchart showing an example of the process of setting the destruction range in step S6.

[0186] In step S21, the processor 81 determines whether a downward destruction action has been performed. If the result of the determination in step S21 is positive, the process in step S22 is executed next. On the other hand, if the result of the determination in step S21 is negative, the process in step S23 is executed next.

[0187] In step S22, the processor 81 sets the destruction range of the third shape. Specifically, the destruction range of the third shape is set in the voxel space corresponding to the object hit by the destruction action. For example, if the destruction action hits a terrain object 210, the destruction range of the third shape is set in the field voxel space based on the position where the destruction action hit (for example, the position of the player character PC's fist). The third shape is a shape with a flat bottom, for example, a cylindrical shape. Here, the size of the destruction range differs depending on the object hit by the destruction action. For example, if the destruction action hits a terrain object (210 or 220), a destruction range of the first size is set, and destruction range data 314 indicating that destruction range is stored. Also, for example, if the destruction action hits an enemy object EC, a destruction range of the second size, which is smaller than the first size, is set, and destruction range data 324 indicating that destruction range is stored. The third shape is generally cylindrical, and the connection between the bottom and the sides may be curved. If the process in step S22 is completed, the processor 81 terminates the process shown in Figure 31.

[0188] Meanwhile, in step S23, the processor 81 provisionally sets the destruction range of the first or second shape according to the direction of the destruction action. Specifically, the destruction range of the first or second shape is provisionally set within the voxel space corresponding to the object hit by the destruction action. The destruction range of the first or second shape is provisionally set at a position corresponding to the direction of the destruction action. For example, if a destruction action performed in the forward direction by the player character PC hits the terrain object 220, the destruction range of the first shape is provisionally set at a position within the field voxel space. Here, a predetermined first shape is set as the provisional destruction range. The first shape is a shape whose entire surface is curved, for example, an ellipsoid that is asymmetrical left and right. Also, if a destruction action performed in the diagonally upward direction by the player character PC hits the terrain object 220, the destruction range of the second shape is provisionally set at a position within the field voxel space. Note that the size of the destruction range differs depending on the object hit by the destruction action. For example, if a destruction action hits a terrain object (210 or 220), a destruction range of a first size is tentatively set, and if a destruction action hits an enemy object EC, a destruction range of a second size, smaller than the first size, is tentatively set. The processing of step S24 is executed after step S23.

[0189] In step S24, the processor 81 determines whether the player character PC is in contact with the ground. If the player character PC is in contact with the ground, the process in step S25 is executed next. On the other hand, if the player character PC is not in contact with the ground, the process in step S26 is executed next.

[0190] In step S25, the processor 81 calculates the height and normal vector of the surface (ground surface) on which the player character PC is touching in game space. For example, the processor 81 calculates the normal vector of the ground surface based on the normal vectors of multiple reference points within a predetermined range including the position (ground point) where the player character PC is touching. For example, the processor 81 calculates the average of the multiple normal vectors as the normal vector of the ground surface. The processor 81 also calculates the height of the ground surface based on the height (Y-axis coordinate value) of the ground point. For example, the processor 81 calculates the Y-axis coordinate value of the ground point as the height of the ground surface. The processor 81 may also calculate the height of the ground surface based on the Y-axis coordinate value of the highest (or lowest) point within a predetermined range including the ground point. Alternatively, the processor 81 may calculate the height of the ground surface based on the average height of the multiple reference points. The processing in step S27 is executed after step S25.

[0191] In step S26, the processor 81 calculates the height and normal vector of the ground directly beneath the player character PC. For example, the processor 81 calculates the intersection point of a line passing through the position of the player character PC and parallel to the Y-axis with the ground. Then, the processor 81 considers this intersection point as the contact point and calculates the height and normal vector of the ground directly beneath the player character PC in the same manner as in step S25. The process in step S27 is executed after step S26.

[0192] In step S27, the processor 81 sets a predetermined surface. For example, if a forward destruction action is performed, the processor 81 sets a predetermined surface in the voxel space corresponding to the object hit by the destruction action, based on the height and normal calculated in step S25 or step S26. Specifically, if the forward destruction action of the player character PC hits the terrain object 220, a predetermined surface having the normal calculated in step S25 or step S26 is set in the field voxel space. As a result, for example, if the ground that the player character PC is touching or the ground directly below the player character PC is a plane parallel to the horizontal plane, a plane parallel to the horizontal plane is set as the predetermined surface. The height of the predetermined surface is set to be the same as the height of the ground. If the ground that the player character PC is touching or the ground directly below the player character PC is inclined at a predetermined angle with respect to the horizontal plane, a plane having a predetermined angle with respect to the horizontal plane is set as the predetermined surface. In this case, the predetermined surface is set to pass through the position where the player character PC is touching or the position directly below the player character PC. Alternatively, a predetermined surface may be set so as to pass through the highest (or lowest) point within a predetermined range that includes the position where the player character PC is grounded or the position directly below the player character PC. In this way, if the ground itself is sloped, the predetermined surface will be tilted according to the slope of the ground.

[0193] Furthermore, if a destruction action is performed in an upward diagonal direction, the processor 81 sets a predetermined surface inclined with respect to the horizontal plane in the field voxel space in step S27. For example, if a destruction action is performed in an upward diagonal direction, a predetermined surface inclined by a predetermined angle with respect to the horizontal plane may be set. The predetermined surface is set to pass through the position where the player character PC is grounded or the position directly below the player character PC. Alternatively, the predetermined surface may be set to pass through the highest (or lowest) point within a predetermined range that includes the position where the player character PC is grounded or the position directly below the player character PC. The inclination of the predetermined surface may change according to the player's operation. For example, if the angle of the destruction action can be adjusted according to the player's operation, the inclination of the predetermined surface may change according to the angle of the destruction action. In this way, the predetermined surface is inclined according to the direction of the destruction action.

[0194] Furthermore, if the ground itself is tilted relative to the horizontal plane, and a destructive action is performed in an upward-diagonal direction, the processor 81 sets the inclination of the predetermined surface according to the inclination of the ground and / or the direction of the destructive action. For example, if the ground itself is tilted and a destructive action is performed in an upward-diagonal direction, the predetermined surface may be tilted according to only one of the inclination of the ground and / or the direction of the destructive action. For example, the inclination of the predetermined surface may be set prioritizing the direction of the destructive action over the inclination of the ground itself. For example, if the ground itself is tilted and a destructive action is performed in a forward direction, the predetermined surface may be set parallel to the horizontal plane. Alternatively, the inclination of the predetermined surface may be set prioritizing the inclination of the ground itself over the direction of the destructive action. For example, if the ground itself is tilted and a destructive action is performed in a forward direction, the predetermined surface may be tilted at the same angle as the ground (or at a different angle than the ground). Furthermore, if the slope of the ground itself is greater than or equal to a predetermined value, the slope of the ground itself may be prioritized over the direction of the destructive action, and the predetermined surface may be tilted according to the slope of the ground itself. If the slope of the ground itself is less than a predetermined value, the direction of the destructive action may be prioritized over the slope of the ground itself, and the predetermined surface may be tilted according to the direction of the destructive action (destructive action in an upward diagonal direction). Also, if the ground itself is sloped and a destructive action is performed in an upward diagonal direction, the predetermined surface may be tilted according to the slope of the ground as described above, and the predetermined surface may be tilted further according to the direction of the destructive action.

[0195] The process in step S28 is executed after step S27.

[0196] In step S28, the processor 81 determines whether the predetermined surface set in step S27 is included within the first or second shape set in step S23. Here, it is determined whether the set first or second shape intersects with the predetermined surface. In other words, it is determined whether a part of the first or second shape is located below the predetermined surface. If the result of the determination in step S28 is affirmative, the process in step S29 is executed next. On the other hand, if the result of the determination in step S28 is negative, the process in step S30 is executed next.

[0197] In step S29, the processor 81 sets the shape obtained by removing the portion below a predetermined surface from the first or second shape as the destruction range, and stores it in memory as destruction range data. As a result, the shape with a flat bottom surface is determined as the destruction range.

[0198] In step S30, the processor 81 determines that the first or second shape is located above a predetermined surface, and sets the first or second shape as the destructible area, storing it in memory as destructible area data. As a result, the first or second shape, which is entirely a curved surface, is determined to be the destructible area.

[0199] After performing the process in step S29 or step S30, the processor 81 terminates the process shown in Figure 31.

[0200] The process shown in the flowchart above is merely an example, and the order and content of the process may be changed as appropriate.

[0201] As described above, in this embodiment, the player character PC can move on terrain objects formed based on voxel data, and the terrain objects can be destroyed by a destruction action. When a destruction action hits a terrain object, a destruction range is set, which is set according to the position of the player character PC, and has a shape that excludes the area below a predetermined plane set based on the position of the player character PC from a predetermined shape. The voxel data of the voxels included in the destruction range is then set to a value that indicates the absence of an object. As a result, the terrain objects within the destruction range are destroyed. By setting the destruction range in this way, the terrain after destruction will have a shape that follows the predetermined plane, making it easier for the player character PC to move on the terrain after destruction.

[0202] Furthermore, in this embodiment, when the player character PC performs a destruction action in an upward diagonal direction, a predetermined shape is set at a position diagonally above the player character PC, and a predetermined surface that is inclined at an angle is also set. This makes it possible to make the terrain after destruction slanted, and to form the terrain after destruction in line with the direction of the destruction action.

[0203] Furthermore, in this embodiment, if a portion of a predetermined shape is below a predetermined surface, the shape obtained by removing the portion below the predetermined surface from the predetermined shape is set as the destruction range. If the entire predetermined shape is above the predetermined surface, the predetermined shape is set as the destruction range. This allows the destruction range to be dynamically set according to the game situation.

[0204] Furthermore, in this embodiment, if the player character PC is in the air when the destruction action hits a terrain object, a predetermined surface is set based on the ground directly beneath the player character PC. This makes it easier for the player character PC to move across the destroyed terrain even when they are in the air.

[0205] Furthermore, in this embodiment, if the player character PC's destruction action hits a terrain object, a destruction area of ​​a first size is set, and if the player character PC's destruction action hits an enemy object EC, a destruction area of ​​a second size, smaller than the first size, is set. This allows for large-scale destruction of terrain objects while destroying enemy objects over a small area.

[0206] Furthermore, in this embodiment, the size of one voxel in the voxel space VLa representing an enemy object in game space is smaller than the size of one voxel in the field voxel space representing a terrain object in game space. In other words, the resolution of a voxel in the voxel space VLa representing an enemy object is higher than the resolution of a voxel in the field voxel space representing a terrain object. Therefore, enemy objects can be represented in more detail than terrain objects.

[0207] (modified version) Although this embodiment has been described above, the above embodiment is merely an example, and modifications such as the following may be made.

[0208] For example, in the above embodiment, when the player character PC's destruction action hits a voxel object, a predetermined shape is set in the voxel space, a predetermined surface is calculated, and the shape obtained by removing the portion below the predetermined surface from the predetermined shape is set as the destruction range. That is, in the above embodiment, the predetermined surface was dynamically calculated according to the position of the player character PC when the player character PC's destruction action hits the object. In other embodiments, a solid having a shape obtained by removing the portion below the predetermined surface from the predetermined shape may be prepared in advance. For example, a plurality of solids having a shape obtained by cutting the lower side of a sphere or ellipsoid with a plane may be prepared in advance. For example, a solid cut by a plane located a first distance above the lower end of a sphere or ellipsoid and a solid cut by a plane located a second distance above the lower end of a sphere or ellipsoid may be prepared in advance. Then, based on the position of the player character PC when the destruction action hits, one of the solids may be selected from the plurality of solids prepared in advance, and the area enclosed by the selected solid may be set as the destruction range.

[0209] In other words, the "shape obtained by subtracting the area below the predetermined surface from the predetermined shape" may be a shape calculated according to the position of the player character PC and the ground conditions when the destruction action hits, or it may be a pre-prepared shape selected according to the position of the player character PC and the ground conditions.

[0210] Furthermore, in the above embodiment, the destruction action by the player character PC is performed on a terrain object 220 representing a rocky mountain, but in other embodiments, the destruction action may be performed on any other object. In this case as well, for example, when a forward destruction action hits an object, a predetermined shape is set according to the position of the hit, and a predetermined surface is set according to the position of the player character PC, and the shape obtained by subtracting the area below the predetermined surface from the predetermined shape is set as the destruction range. In addition, the size of the predetermined shape may differ depending on the object hit by the destruction action.

[0211] Furthermore, in the above embodiment, the predetermined shape remains the same regardless of the object hit by the destruction action, but its size differs. In other embodiments, the predetermined shape may differ depending on the object hit by the destruction action.

[0212] Furthermore, in the above embodiment, the direction of the destruction action of the player character PC was defined as forward, diagonally upward, or downward. In other embodiments, the destruction action of the player character PC may be performed in any direction.

[0213] Furthermore, in the above embodiment, when a destruction action hits, a predetermined plane is set based on the ground that the player character PC is in contact with or the ground directly beneath the player character PC. In other embodiments, the predetermined plane does not have to be a perfect plane. For example, the predetermined plane may be a generally flat surface with small irregularities. Also, the predetermined plane may change according to the shape of the ground in the game space. For example, if the ground is a generally flat surface with small irregularities, the predetermined plane may be similar to the ground.

[0214] Furthermore, in the above embodiment, if the player character PC is in the air when the destruction action hits, a predetermined surface is set based on the ground directly below the player character PC. In other embodiments, if the player character PC is in the air, the predetermined surface may be set not only based on the ground directly below the player character PC, but also based on the ground below the player character PC and in a predetermined direction from the player character PC's position. For example, if the player character PC is in the air when the destruction action hits, the landing position of the player character PC may be predicted based on the direction of the player character PC's movement, and a predetermined surface may be set based on the ground at the landing position.

[0215] Furthermore, in the above embodiment, for voxels within the destruction range, a value indicating that no object exists in that voxel was set by setting the voxel density to "0". As a result, the portion of the voxel object within the destruction range was erased, and the voxel object was destroyed. Destruction (erasure) of a voxel object is not limited to setting the density in the voxel data to "0", but may also be performed by setting the density to another value. For example, with respect to density, the "value indicating that no object exists" is not limited to "0", but may be any value less than a reference value (e.g., 128). Also, with respect to density, the "value indicating that an object exists" may be a value in the range of 1 to 255, or a value greater than or equal to the reference value. Furthermore, destruction of a voxel object may be performed by other methods, not limited to changing the density in the voxel data. For example, a flag indicating the existence or non-existence of an object may be stored in the voxel data, and when the flag is ON, it indicates that an object exists in that voxel, and when the flag is OFF, it indicates that no object exists in that voxel (i.e., it is empty). Furthermore, if material data is stored in the voxel data, it may be indicated that an object consisting of the material indicated by the material data exists in that voxel. Conversely, if material data is not stored in the voxel data, it may be indicated that no object exists in that voxel.

[0216] Furthermore, the above-described process may be performed not only in game system 1, but also in any other information processing device or information processing system. The information processing system may consist of multiple devices, and these multiple devices may be connected via a network (for example, a LAN or the Internet).

[0217] Furthermore, the configurations of the above embodiments and their modified forms can be combined in any way, as long as they do not contradict each other. Moreover, the above is merely an example of the present invention, and various other improvements and modifications may be made. [Explanation of Symbols]

[0218] 1. Game System 81 processors 85 DRAM 201, 202, 203, 204 voxels 210, 220 Terrain Objects

Claims

1. A game program executed in the processor of an information processing device, wherein the processor: Data for representing a first object in a virtual space, wherein a first volume data is stored in a storage medium, each volume holding voxel data indicating the existence of an object for each voxel contained in a first voxel space arranged in the virtual space. Based on the player's input, the player character is moved on the first object. Based on the player's input, the player character is made to perform a destructive action. When the destruction action hits the first object, the voxel data of the voxels included in the first erasure range, which is set according to the position of the player character and has a shape that excludes the area below a predetermined plane set based on the position of the player character from a predetermined shape, is updated to a value that indicates that the object does not exist. A game program that generates an image of the virtual space by drawing at least a polygon mesh representing the surface of the first object based on the first volume data.

2. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The game program according to claim 1, wherein the predetermined surface is a horizontal plane having the height of the ground to which the player character makes contact when the destruction action hits the first object.

3. The aforementioned processor, If the destruction action hits the first object, the height of the predetermined surface is set based on the position of the player character. The game program according to claim 1, wherein the first erasure range becomes the predetermined shape when the entire predetermined shape is located above the predetermined surface.

4. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The game program according to any one of claims 1 to 3, wherein the predetermined surface is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.

5. The aforementioned destruction action is a destruction action directed diagonally upwards of the player character. The first erasure range is set diagonally upward from the player character when the destruction action hits the first object. The game program according to claim 1, wherein the predetermined surface is a slope that passes through the position where the player character makes contact with the ground when the destruction action hits the first object, and becomes higher towards the front of the player character.

6. The game program according to claim 1, wherein the predetermined shape is any of a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid.

7. The aforementioned processor, The game program according to claim 1, which, when the destruction action hits the first object, causes the predetermined surface to be set to be inclined with respect to the horizontal plane if the ground on which the player character is standing is inclined with respect to the horizontal plane.

8. The aforementioned processor further, Data for representing a second object in the virtual space, wherein a second volume data is stored in a storage medium, holding the voxel data for each voxel included in the second voxel space arranged in the virtual space. When the destruction action hits the second object, the voxel data of the voxels included in the second erasure range, which is a different size from the first erasure range and has a shape that is set according to the position of the player character and excludes the area below a predetermined plane set based on the position of the player character from a predetermined shape, is updated to a value that indicates that the object does not exist. The game program according to claim 1, further drawing a polygon mesh representing the surface of the second object based on the second volume data to generate an image of the virtual space.

9. The game program according to claim 8, wherein one voxel included in the first volume data and one voxel included in the second volume data have different sizes defined within the virtual space.

10. The aforementioned processor further, Based on the player's input, the player character is made to perform a downward destruction action. The game program according to claim 1, wherein if the downward destruction action hits the first object, the voxel data of the voxels included in the third erasure range set below the player character is updated to a value indicating that the first object does not exist.

11. The game program according to claim 1, wherein the first object is the terrain in the virtual space.

12. The aforementioned processor, The polygon mesh is generated by determining the vertex positions of the polygon based on the voxel data between voxels where the first object does not exist and voxels where it does exist. The game program according to claim 1, wherein if the voxel data of a voxel included in the first erasure range is updated, the program recalculates the vertices of the polygon mesh in the range that includes at least the voxel whose voxel data has been updated.

13. An information processing system comprising a storage medium and at least one processor, The aforementioned storage medium includes: Data for representing a first object in a virtual space, wherein a first volume data is stored which holds voxel data indicating the existence of an object for each voxel contained in a first voxel space arranged in the virtual space, The aforementioned processor, Based on the player's input, the player character is moved on the first object. Based on the player's input, the player character is made to perform a destructive action. When the destruction action hits the first object, the voxel data of the voxels included in the first erasure range, which is set according to the position of the player character and has a shape that excludes the area below a predetermined plane set based on the position of the player character from a predetermined shape, is updated to a value that indicates that the object does not exist. An information processing system that generates an image of the virtual space by drawing at least a polygon mesh representing the surface of the first object based on the first volume data.

14. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The information processing system according to claim 13, wherein the predetermined surface is a horizontal plane having the height of the ground to which the player character makes contact when the destruction action hits the first object.

15. The aforementioned processor, If the destruction action hits the first object, the height of the predetermined surface is set based on the position of the player character. The information processing system according to claim 13, wherein the entire predetermined shape is located above the predetermined surface, and the predetermined shape is set as the first erasure range.

16. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The information processing system according to any one of claims 13 to 15, wherein the predetermined surface is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.

17. The aforementioned destruction action is a destruction action directed diagonally upwards of the player character. The first erasure range is set diagonally upward from the player character when the destruction action hits the first object. The information processing system according to claim 13, wherein the predetermined surface is a slope that passes through the position where the player character makes contact with the ground when the destruction action hits the first object, and becomes higher towards the front of the player character.

18. The information processing system according to claim 13, wherein the predetermined shape is any of a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid.

19. The aforementioned processor, The information processing system according to claim 13, wherein if the ground on which the player character is standing when the destruction action hits the first object is inclined with respect to the horizontal plane, the predetermined surface inclined with respect to the horizontal plane is set.

20. Data for representing a second object in the virtual space, wherein a second volume data holding the voxel data for each voxel included in the second voxel space arranged in the virtual space is stored in the storage medium. The aforementioned processor further, If the destruction action hits the second object, the voxel data of the voxels included in the second erasure range, which is different in size from the first erasure range and has a shape that is set according to the position of the player character and excludes the area below a predetermined plane set based on the position of the player character from a predetermined shape, is updated to a value that indicates that the object does not exist. The information processing system according to claim 13, further drawing a polygon mesh representing the surface of the second object based on the second volume data to generate an image of the virtual space.

21. The information processing system according to claim 20, wherein one voxel included in the first volume data and one voxel included in the second volume data have different sizes defined within the virtual space.

22. The aforementioned processor further, Based on the player's input, the player character is made to perform a downward destruction action. The information processing system according to claim 13, wherein if the downward destruction action hits the first object, the voxel data of the voxels included in the third erasure range set below the player character is updated to a value indicating that the first object does not exist.

23. The information processing system according to claim 13, wherein the first object is the terrain in the virtual space.

24. The aforementioned processor, The polygon mesh is generated by determining the vertex positions of the polygon based on the voxel data between voxels where the first object does not exist and voxels where it does exist. The information processing system according to claim 13, wherein if the voxel data of a voxel included in the first erasure range is updated, the system recalculates the vertices of the polygon mesh in the range including at least the voxel whose voxel data has been updated.

25. Data for representing a first object in a virtual space, which stores first volume data that holds voxel data indicating the existence of an object for each voxel contained in a first voxel space arranged in the virtual space, Based on the player's input, the player character is moved on the first object. Based on the player's input, the player character is made to perform a destructive action. When the destruction action hits the first object, the voxel data of the voxels included in the first erasure range, which is set according to the position of the player character and has a shape that excludes the area below a predetermined plane set based on the position of the player character from a predetermined shape, is updated to a value that indicates that the object does not exist. An information processing device that generates an image of the virtual space by drawing at least a polygon mesh representing the surface of the first object based on the first volume data.

26. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The information processing apparatus according to claim 25, wherein the predetermined surface is a horizontal plane having the height of the ground to which the player character makes contact when the destruction action hits the first object.

27. If the destruction action hits the first object, the height of the predetermined surface is set based on the position of the player character. The information processing apparatus according to claim 25, wherein the entire predetermined shape is located above the predetermined surface, and the predetermined shape is set as the first erasure range.

28. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The information processing apparatus according to any one of claims 25 to 27, wherein the predetermined surface is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.

29. The aforementioned destruction action is a destruction action directed diagonally upwards of the player character. The first erasure range is set diagonally upward from the player character when the destruction action hits the first object. The information processing apparatus according to claim 25, wherein the predetermined surface is a slope that passes through the position where the player character makes contact with the ground when the destruction action hits the first object, and becomes higher towards the front of the player character.

30. The information processing apparatus according to claim 25, wherein the predetermined shape is any of a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid.

31. An information processing method performed in an information processing system, The information processing system stores first volume data which represents a first object in a virtual space, and which holds voxel data indicating the existence of an object for each voxel contained in a first voxel space arranged in the virtual space. The aforementioned information processing method is The steps include moving the player character on the first object based on the player's input, The steps include causing the player character to perform a destruction action based on the player's input, If the destruction action hits the first object, the voxel data of the voxels included in a first erasure range, which is set according to the position of the player character and has a shape that excludes the area below a predetermined plane set based on the position of the player character from a predetermined shape, is updated to a value that indicates that the object does not exist. An information processing method comprising the step of generating an image of the virtual space by drawing at least a polygon mesh representing the surface of the first object based on the first volume data.

32. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The information processing method according to claim 31, wherein the predetermined surface is a horizontal plane having the height of the ground to which the player character makes contact when the destruction action hits the first object.

33. If the destruction action hits the first object, the steps include setting the height of the predetermined surface based on the position of the player character, The information processing method according to claim 31, further comprising the step of setting the predetermined shape as the first erasure range if the entire predetermined shape is located above the predetermined surface.

34. The destruction action is a destruction action in the forward direction of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object. The information processing method according to any one of claims 31 to 33, wherein the predetermined surface is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.

35. The aforementioned destruction action is a destruction action directed diagonally upwards of the player character. The first erasure range is set diagonally upward from the player character when the destruction action hits the first object. The information processing method according to claim 31, wherein the predetermined surface is a slope that passes through the position where the player character makes contact with the ground when the destruction action hits the first object, and becomes higher towards the front of the player character.

36. The information processing method according to claim 31, wherein the predetermined shape is any of a sphere, an ellipsoid, or a shape obtained by asymmetrically deforming an ellipsoid.