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

The game program dynamically updates voxel data based on player interactions to transform objects, addressing the limitations of conventional voxel-based game technologies by enabling high-degree freedom in object manipulation and enhancing gameplay realism.

JP7811226B2Active Publication Date: 2026-02-04NINTENDO CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024011588
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-01-30
Publication Date
2026-02-04
Estimated Expiration
2044-01-30

AI Technical Summary

Technical Problem

Conventional game technologies using voxels do not allow for dynamic transformation of objects based on player interactions, limiting the freedom and realism of object manipulation.

Method used

A game program that updates voxel data for different ranges based on player events, allowing objects to be transformed by changing voxel data values, shape, and material properties, and enabling dynamic deformation through polygon mesh recalculations.

Benefits of technology

Enables high-degree freedom in transforming objects within a game environment, allowing for realistic and dynamic changes in object shape and material properties, enhancing gameplay realism.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007811226000001
    Figure 0007811226000001
  • Figure 0007811226000002
    Figure 0007811226000002
  • Figure 0007811226000003
    Figure 0007811226000003
Patent Text Reader

Abstract

To provide a system capable of deforming an object with a high degree of freedom in a game using a voxel.SOLUTION: One example of an information processing system records first volume data including a plurality of pieces of voxel data in a first voxel space, which the data indicating a topographic object, and second volume data including a plurality of pieces of voxel data in a second voxel space, which is the data indicating an enemy object. When a destruction action is taken for the topographic object, the voxel data on the voxel included in a first range of the first volume data is updated. When a destruction action is taken for the enemy object is taken, the voxel data on the voxel included in the second range of the second volume data is updated. A polygon mesh is created on the basis of the first volume data and the second volume data.SELECTED DRAWING: Figure 26
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 device, and an information processing method that are capable of generating images using voxels. [Background technology]

[0002] Conventionally, there are games in which character voxels are created based on imaging information and polygon mesh information is generated (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-33521 Summary of the Invention [Problem to be solved by the invention]

[0004] However, in the above-mentioned conventional technology, voxels are used to generate an object from imaging information, and the object is not transformed 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 device, and an information processing method that enable objects to be transformed with a high degree of freedom in a game using voxels. [Means for solving the problem]

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

[0007] A game program of the present invention is a game program executed by a processor of an information processing device, the game program causing the processor to store, in a storage medium: first volume data representing a first object in a virtual space, the first volume data holding voxel data indicating the presence of the object for each voxel included in a first voxel space arranged in the virtual space; and second volume data representing a second object in the virtual space, the second volume data holding voxel data for each voxel included in a second voxel space arranged in the virtual space. The game program also causes the processor, when a first event occurs for the first object based on a player's operation input, to update the voxel data of voxels in the first volume data that are included in a first range that is set based on a location where the first event occurred. The game program also causes the processor, when a second event occurs for the second object based on a player's operation input, to update the voxel data of voxels in the second volume data that are included in a second range that is set based on a location where the second event occurred. The game program also causes the processor to generate an image of the virtual space by rendering at least polygon meshes representing surfaces of the first object and the second object based on the first volume data and the second volume data.

[0008] According to the above, when a first event occurs for a first object, the voxel data of voxels included in a first range can be updated, and when a second event occurs for a second object, the voxel data of voxels included in a second range can be updated. This makes it possible to update voxel data of voxels in different ranges depending on the object for which the event occurred.

[0009] The voxel data may include a value indicating the degree to which an object occupies a space defined by the voxels. The game program may cause the processor, when the first event occurs, to update the voxel data so that the degree of a voxel included in the first range in the first volume data decreases. The game program may cause the processor, when the second event occurs, to update the voxel data so that the degree of a voxel included in the second range in the second volume data decreases.

[0010] According to the above, when a first event occurs, the degree of voxels included in a first range is reduced, and when a second event occurs, the degree of voxels included in a second range is reduced. This makes it possible to reduce the degree of voxels in different ranges depending on the object for which an event occurred, thereby changing the shape of the object.

[0011] The game program may also cause the processor, when the first event occurs, to update the voxel data for at least a portion of the voxels included in the first range in the first volume data to have a value indicating that the first object is not present, and, when the second event occurs, to update the voxel data for at least a portion of the voxels included in the second range in the second volume data to have a value indicating that the second object is not present.

[0012] According to the above, when a first event for a first object occurs, the first object is prevented from being present in the first range, and when a second event for a second object occurs, the second object is prevented from being present in the second range. This makes it possible to erase the range corresponding to an object when an event for that object occurs.

[0013] The game program may also cause the processor to, when the first event occurs, update the voxel data so that voxels in the first volume data that are completely contained within the first range have a value indicating that the first object is not present and the degree is reduced for voxels that are partially contained within the first range.The game program may also cause the processor to, when the second event occurs, update the voxel data so that voxels in the second volume data that are completely contained within the second range have a value indicating that the second object is not present and the degree is reduced for voxels that are partially contained within the second range.

[0014] According to the above, it is possible to make it so that no object exists for voxels that are completely contained within the range, and to set different values ​​for the degree for voxels that are partially contained within the range. As a result, for example, even when generating a mesh that represents the shape of an object using voxels, it is possible to make the shape of the object natural after the voxel data is updated.

[0015] The voxel data may further include material data indicating a material of the object and a damage amount indicating damage inflicted. The game program may cause the processor, when the first event occurs, to update the damage amount for voxels included in the first range in the first volume data, and further update the value indicating the degree for voxels for which the damage amount exceeds an upper limit set for the material. The game program may cause the processor, when the second event occurs, to update the damage amount for voxels included in the second range in the second volume data, and further update the value indicating the degree for voxels for which the damage amount exceeds an upper limit set for the material.

[0016] According to the above, when the amount of damage to a voxel exceeds an upper limit corresponding to the material set for the voxel, the degree of the voxel can be updated. As a result, when multiple events occur to an object, the degree of the voxel can be updated, and for example, an object can be destroyed by multiple destruction actions.

[0017] Furthermore, one voxel included in the first volume data and one voxel included in the second volume data may be defined in different sizes in the virtual space.

[0018] Based on the above, the voxel size can be made different between the first object and the second object, and the resolution can be made different for each object.

[0019] The first object may be a terrain in the virtual space, and the first range may be larger than the second range.

[0020] According to the above, the voxel size of the terrain in the virtual space can be made larger than the voxel sizes of other objects in the virtual space. This allows, for example, the terrain to be destroyed on a larger scale.

[0021] The second object may be an object that can move within the virtual space by changing the position and / or orientation of the second voxel space within the virtual space. The second range may be smaller than the first range.

[0022] According to the above, the voxel size of the second object movable in the virtual space can be made smaller than the voxel size of the first object, which allows the second object movable in the virtual space to be destroyed in finer pieces, for example.

[0023] The game program may cause the processor to generate the polygon mesh by determining the vertex positions of polygons based on the voxel data between voxels where the first object or the second object does not exist and voxels where the first object or the second object does exist, and may cause the processor to recalculate the vertices of the polygon mesh in a range that includes at least the voxels whose voxel data has been updated based on the occurrence of the first event or the second event.

[0024] According to the above, the vertices of the mesh can be recalculated by updating the voxel data, and the object can be dynamically deformed.

[0025] The game program may further cause the processor to cause the player character to perform a destructive action capable of destroying the first object and the second object based on an operation input by the player, wherein the first event may be the destructive action hitting the first object, and the second event may be the destructive action hitting the second object.

[0026] Based on the above, it is possible to have the player character perform a destructive action on the first object or the second object, and when the destructive action hits the object, it is possible to destroy a range according to the object.

[0027] Another invention may be an information processing system, an information processing device, or an information processing method that executes the game program. [Effects of the Invention]

[0028] According to the present invention, it is possible to update voxel data of voxels in different ranges depending on the object in which the event occurred. [Brief explanation of the drawings]

[0029] [Figure 1]FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are attached to the main unit 2. [Figure 2] FIG. 10 shows an example of a state in which the left controller 3 and the right controller 4 are detached from the main unit 2. [Figure 3] Six-sided views showing an example of the main unit 2 [Figure 4] Six-sided diagram showing an example of the left controller 3 [Figure 5] Six-sided diagram showing an example of the right controller 4 [Figure 6] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 8] FIG. 1 is a diagram showing an example of a terrain object that is a voxel object. [Figure 9] 9A and 9B are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted. [Figure 10] 9A and 9B are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 8 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 indicating the properties of a material [Figure 13] A diagram showing an example of texture information indicating the texture of a material. [Figure 14] A diagram showing an example of a mesh generation method [Figure 15] FIG. 10 is a diagram showing an example of a game image including a terrain object. [Figure 16] FIG. 1 is a schematic diagram showing the overall game space of the game of this embodiment. [Figure 17] FIG. 10 is an image of the game space viewed from a virtual camera, showing an example of a game image displayed on a display device. [Figure 18] FIG. 10 is a diagram showing an example of a voxel space VLa arranged in a field voxel space. [Figure 19] FIG. 10 is a diagram showing an example of a voxel space VLb arranged in a field voxel space. [Figure 20] A diagram showing an example of the destruction range of a rock object A as a terrain object. [Figure 21] A diagram showing an example of the destruction range of enemy object B [Figure 22] FIG. 10 is a diagram for explaining an example of destruction processing for voxels included in a first destruction range. [Figure 23] A diagram showing an example of the shape of a rock object A after it has been destroyed by a destruction process. [Figure 24] A diagram showing an example of the shape of enemy object B after it has been destroyed by destruction processing. [Figure 25] FIG. 10 is a diagram showing an example of various data used in information processing in the game system 1. [Figure 26] A flowchart showing an example of the flow of game processing executed by the game system 1. [Figure 27] A flowchart showing an example of the voxel data update process in step S7. DETAILED DESCRIPTION OF THE INVENTION

[0030] [1. Game system configuration] A game system according to an example of this embodiment will be described below. An example of the game system 1 according to this embodiment includes a main unit (information processing device; in this embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main 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. The game system 1 can also be used by separating the main unit 2 from the left controller 3 and the right controller 4 (see FIG. 2). Below, the hardware configuration of the game system 1 according to this embodiment will be described, followed by a description of the control of the game system 1 according to this embodiment.

[0031] FIG. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and the right controller 4 are devices that have operation units that allow the user to perform inputs.

[0032] Fig. 2 is a diagram showing an example of the state in which the left controller 3 and the right controller 4 are detached from the main unit 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. Note that, below, the left controller 3 and the right controller 4 may be collectively referred to as "controllers."

[0033] Fig. 3 is a six-sided view showing an example of the main unit 2. As shown in Fig. 3, the main unit 2 includes a substantially 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 generally rectangular.

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

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

[0036] The main device 2 also includes 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 capacitance type). However, the touch panel 13 may be of any type, and may be of a type that allows single-touch input (for example, a resistive type).

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

[0038] The main unit 2 also has a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via a wired connection, and a right terminal 21, which is a terminal for the main unit 2 to communicate with the right controller 4 via a wired connection.

[0039] As shown in FIG. 3, the main unit 2 includes a slot 23. The slot 23 is provided 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 therein. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, 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 also includes a power button 28.

[0040] The main unit 2 has a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display 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 all-in-one 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).

[0041] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the up-down direction (i.e., the y-axis direction shown in FIGS. 1 and 4). The left controller 3 can also be held in a vertically long orientation when detached from the main unit 2. The housing 31 has a shape and size that allows it to be held in one hand, particularly the left hand, when held in a vertically long orientation. The left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.

[0042] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit that can input directions. By tilting the analog stick 32, the user can input a direction corresponding to the tilt direction (and input a magnitude corresponding to the tilt angle). Note that instead of an analog stick, the left controller 3 may be equipped with a cross key or a slide stick that can perform slide inputs as a direction input unit. In this embodiment, input can be made by pressing the analog stick 32.

[0043] The left controller 3 is equipped with various operation buttons. The left controller 3 is equipped with four operation buttons 33 to 36 (specifically, a right button 33, a down button 34, an up button 35, and a left button 36) on the main surface of the housing 31. The left controller 3 also is equipped with a record button 37 and a - (minus) button 47. The left controller 3 is equipped with a first L button 38 and a ZL button 39 on the upper left of the side of the housing 31. The left controller 3 is also equipped with a second L button 43 and a second R button 44 on the side of the housing 31 that is attached to the main unit 2. These operation buttons are used to issue instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.

[0044] The left controller 3 also includes a terminal 42 for wired communication between the left controller 3 and the main unit 2.

[0045] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the up-down direction. The right controller 4 can also be held in a vertically long orientation when detached from the main unit 2. The housing 51 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a vertically long orientation. The right controller 4 can also be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.

[0046] Like the left controller 3, the right controller 4 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. The right controller 4 may also be equipped with a cross key or a slide stick that allows slide input, instead of an analog stick. Like the left controller 3, the right controller 4 is equipped with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 is also 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. Like the left controller 3, the right controller 4 is also equipped with a second L button 65 and a second R button 66.

[0047] The right controller 4 also includes a terminal 64 for wired communication between the right controller 4 and the main unit 2.

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

[0049] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that executes various types of information processing executed in the main unit 2, and may be composed of, for example, only a CPU (Central Processing Unit), or may be composed of an SoC (System-on-a-chip) that includes multiple functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various types of information processing by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium inserted into slot 23, etc.).

[0050] The main device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as examples of internal storage media built into the main device 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used primarily to store various types of data (which may be programs) saved in the main device 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing.

[0051] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted into the slot 23 in accordance with instructions from the processor 81.

[0052] The processor 81 reads and writes data from and to the flash memory 84, DRAM 85, and the above-mentioned storage media as appropriate, to execute the above-mentioned information processing.

[0053] 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, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with external devices using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (e.g., communication using a proprietary protocol or infrared communication) as a second communication mode. Note that wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication," in which data is transmitted and received by direct communication between multiple main units 2.

[0054] The main unit 2 is equipped with a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and right controller 4 in accordance with the Bluetooth (registered trademark) standard.

[0055] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27. When performing wired communication with the left controller 3, the processor 81 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 performing wired communication with the right controller 4, the processor 81 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 performing wired communication with the right controller 4, the processor 81 transmits data to the cradle via the lower terminal 27. As described above, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4. When an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 or the main unit 2 alone is attached to 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.

[0056] Here, the main unit 2 can communicate simultaneously (in other words, in parallel) with multiple left controllers 3. The main unit 2 can also 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 own sets of left controllers 3 and right controllers 4. For example, a first user can input to the main unit 2 using a first set of left controllers 3 and right controllers 4, while a second user can simultaneously input to the main unit 2 using a second set of left controllers 3 and right controllers 4.

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

[0058] 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 terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to and from the speakers 88 and the audio input / output terminal 25.

[0059] The main device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown, the power control unit 97 is also connected to each part of the main device 2 (specifically, each part that receives power from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the battery 98 to each of the above parts based on instructions from the processor 81.

[0060] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main device 2 via lower terminal 27, battery 98 is charged with the supplied power.

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

[0062] The left controller 3 is equipped with a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 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 via wired communication via the terminal 42 and via wireless communication without using the terminal 42. The communication control unit 101 controls the method of communication between the left controller 3 and 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 communicates wirelessly with the main unit 2 (specifically, with the controller communication unit 83). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

[0063] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured, for example, by a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.

[0064] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes an analog stick (referred to as "stick" in FIG. 7) 32. Each button 103 and analog stick 32 repeatedly outputs information related to operations performed on the button 103 and analog stick 32 to the communication control unit 101 at appropriate timing.

[0065] The communication control unit 101 acquires information related to the input (specifically, information related to the operation or the detection results from the sensor) from each input unit (specifically, each button 103 and analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a predetermined process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every predetermined time. The interval at which the information related to the input is transmitted to the main unit 2 may or may not be the same for each input unit.

[0066] By transmitting the above operation data 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 analog stick 32 based on the operation data.

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

[0068] As shown in FIG. 7, the right controller 4 is equipped with a communication control unit 111 that communicates with the main unit 2. The right controller 4 also has a memory 112 that is 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 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 via wired communication via the terminal 64 and via wireless communication that does not use the terminal 64 (specifically, communication in accordance with the Bluetooth (registered trademark) standard), and controls the method of communication between the right controller 4 and the main unit 2.

[0069] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113 and an analog stick 52. These input units have the same functions as those of the left controller 3 and operate in the same manner.

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

[0071] [2. Overview of processing in the game system] Next, an overview of the processing executed in the game system 1 will be described with reference to Figs. 8 to 15. In this embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, a player character operated by a player) are arranged in a game space, which is a three-dimensional virtual space, and displays the game image on a display device. Note that in this embodiment, the display device on which the game image is displayed may be the above-mentioned display 12 or a stationary monitor.

[0072] [2-1. Voxel] In this embodiment, the shapes of some objects in the game space are defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, cubic) region arranged in a grid pattern in the game space, and voxel data is data set for each voxel. Hereinafter, an object whose shape is defined by voxel data will be referred to as a "voxel object." In this embodiment, the game system 1 stores voxel data for each of a plurality of voxels set in the game space as data for generating voxel objects in the game space.

[0073] Fig. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in Fig. 8, in this embodiment, the shape of a terrain object that represents terrain such as the ground is defined by voxel data (i.e., it is a voxel object). Each cube shown in Fig. 8 represents a terrain object. Note that in Fig. 8, the edges of the terrain object are shown with thick lines, but these thick lines are added to make the drawing easier to read, and in reality, the edges of the terrain object do not need to be displayed thick.

[0074] The terrain object shown in FIG. 8 is generated according to a rule that, for example, "if a parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and if the parameter is equal to or less than the predetermined value, nothing is placed at the position of the voxel." The terrain object shown in FIG. 8 is shown for the purpose of clearly illustrating the relationship between voxels and voxel objects. In this embodiment, a voxel object is actually generated (based on voxel data) according to a rule that results in a shape that is complex compared to the length of one side of a voxel, such as the terrain object shown in FIG. 14 (described later). Note that the rule for determining the shape of a voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate a voxel object as shown in FIG. 8 or a voxel object as shown in FIG. 15 based on object data.

[0075] The shape of a voxel object can be changed by changing the voxel data of each voxel. FIGS. 9 and 10 are diagrams showing an example of the state before and after a portion of the terrain object shown in FIG. 8 is deleted. That is, when the hatched portion of the terrain object shown in FIG. 9 is destroyed, the terrain object changes to a shape as shown in FIG. 10. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data (described later) for the voxels in the hatched portion so that they indicate that the terrain object does not exist. Note that when adding a terrain object, the game system 1 can easily change the shape of the terrain object by changing the voxel data of each voxel, just as when erasing a terrain object.

[0076] In this way, the game system 1 can freely change the shape of a voxel object by rewriting the voxel data. For example, when a terrain object is destroyed in a game for some reason (for example, when a player character hits the terrain object), resulting in a change in the shape of the terrain object, the 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 indicating the outer shape of the terrain object (i.e., a mesh, which will be described later).

[0077] 11 is a diagram showing 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 pattern. The game system 1 associates and stores voxel data for each voxel in the game space. The voxel data indicates, for example, whether a voxel object exists in the voxel corresponding to the voxel data.

[0078] As shown in Fig. 11, the voxel data includes density data. The density data is data of density that indicates the degree to which an object is contained within the area in which each voxel is defined. As will be described 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 density. In other words, in this embodiment, the density is also data used to create a mesh that defines the surface of the voxel object.

[0079] In this embodiment, the density can be an integer value ranging from a lower limit (e.g., 0) to an upper limit (e.g., 255). In this embodiment, the game system 1 assumes that when the density value set for a voxel is high, the proportion of the volume within the voxel is large, and when the density value is low, the proportion of the volume within the voxel occupied by the voxel object is small. For example, when the density is 0, no object exists within the voxel; when the density is 255, the entire voxel is occupied by the object; and when the density is between these values, the voxel is occupied by the object at 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 density does not necessarily have a volume that exactly matches the proportion indicated by the density. For example, a method for generating a voxel object such as that shown in FIG. 8 and a method for generating a voxel object such as that shown in FIG. 15 may have different volumes even though they are based on the same density.

[0080] In other embodiments, the density may indicate whether the entire area of ​​the voxel is occupied by voxel objects or whether the area of ​​the voxel does not contain any voxel objects. For example, the density data may be data that can only take on the value 0 or 1.

[0081] As shown in Fig. 11, the voxel data includes material data. The material data indicates the material (in other words, the substance) of a voxel object generated from the voxel data. In this embodiment, materials such as sand, rock, and soil are set for the voxel object. That is, in this embodiment, multiple types of materials are prepared as materials that can be set for the voxel object, and one of the multiple types of materials is set for the voxel object.

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

[0083] Fig. 12 is a diagram showing an example of property information indicating the properties of a material. As shown in Fig. 12, the game system 1 stores property information that associates the above property ID with information indicating the content of the property indicated by the property ID. The property of a material is a property that a voxel object to which the material is set has in the game, and is, for example, information such as weight and slipperiness shown in Fig. 12. Note that the specific content of the property is arbitrary, and for example, the following information may be set as the property of a material: ·temperature Breakability (for example, the number of times a voxel object can be impacted before it breaks) Whether other objects are glued to the voxel object - The amount of health recovered by the player character when the player character destroys a voxel object The amount of in-game currency the player character will acquire when they destroy a voxel object. The specific content of the properties set for the material is arbitrary. In other embodiments, information different from the above may be set as information indicating the properties of the material.

[0084] 13 is a diagram showing an example of texture information indicating the texture of a material. As shown in Fig. 13, the game system 1 stores texture information that associates the above texture ID with the texture indicated by the texture ID.

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

[0086] As described above, in this embodiment, the material data defines the properties of a voxel object and the texture to be 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 property indicated by the property ID "001" associated with that material ID in the material information is set as the property of the voxel object corresponding to that voxel data (see the arrow in FIG. 11). Also, 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 in FIG. 11).

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

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

[0089] Furthermore, the material data may be information about a material that further indicates information other than the properties and textures described above. For example, the material data may include effect data that indicates an effect that is generated when an effect generation condition set for a voxel object (e.g., a part of the voxel object is destroyed, or a character steps on the voxel object) is satisfied. The effect data may be data that indicates an effect image (e.g., an effect image that expresses that a voxel object has been destroyed) or data that indicates an effect sound (footsteps when a character walks on a voxel object).

[0090] As shown in FIG. 11 , the voxel data includes state data that indicates the state of a voxel object. The specific content of the state data is arbitrary. For example, the state data may be data that indicates whether a voxel object is wet or not, or data that indicates the amount of damage that has been inflicted on the voxel object. The content of the state data may be updated during the game.

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

[0092] Fig. 14 is a diagram showing an example of a method for generating a mesh. Note that in Fig. 14, voxels and meshes are expressed in two dimensions for the purpose of making the drawing easier to see and the explanation easier to understand, but in reality, a three-dimensional mesh is generated based on voxels in a three-dimensional space.

[0093] As described above, in this embodiment, the density set for a voxel is set in the range of 0 to 255. Furthermore, in this embodiment, voxels with a density equal to or greater than a 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 outside the object (i.e., reference value = 1); the reference value may be, for example, 128. In the example shown in FIG. 14, the density of voxel 201 and the other voxels outside is set to 0, the density of voxel 202 is set to 100, which is less than the reference value, and the densities of voxels 203 and 204 are set to 150 and 200, which are equal to or greater than the reference value. In this embodiment, the game system 1 generates vertices between voxels with densities equal to or greater than the reference value and voxels with densities less than the reference value. Specifically, a determination is made as to whether to generate a vertex for each area spanning eight adjacent voxels (four in the drawing) (areas surrounded by dotted lines in the drawing). That is, vertices are generated in regions that span both voxels with densities equal to or greater than a reference value and voxels with densities less than the reference value. Furthermore, if adjacent vertices (the boundaries of the aforementioned regions containing each vertex) pass between a voxel with a density equal to or greater than the reference value and a voxel with a density less than the reference value, a polygon mesh is generated by connecting those vertices. The coordinates of the vertices are determined by comparing the densities of adjacent voxels along each of the X, Y, and Z axes and interpolating based on the difference in density. In this case, coordinate calculations can also be performed based on normal information. Normal information may be stored in advance for at least some voxels. If normal information is not stored, normal information may also be calculated based on the densities of adjacent voxels. Note that in FIG. 14, the density of voxel 202 is less than the reference value, so voxel 202 is treated as outside the object when determining whether a vertex exists. However, the density value of voxel 202 itself is used to calculate the coordinates of the vertices to be generated. If the reference value were set to a value lower than the density of the voxel 202, the result would be that more vertices would be added to the upper right and upper left sides of the voxel 202 in FIG.

[0094] By generating a polygon mesh as described above, it is possible to generate a shape whose volume reflects the density of each voxel to some extent. However, depending on the relationship with adjacent voxels, it is possible that a voxel with a density of 0 may include a portion of an area within the object, or that a voxel with a density of 255 may include a portion of an area outside the object. Furthermore, in this embodiment, voxels with a density less than the reference value are processed as being outside the object, so that the number of vertices is reduced compared to when voxels are processed as being inside the object, resulting in a smaller volume. In other words, it is not necessary to calculate a polygon mesh so that the volume strictly corresponds to the density value.

[0095] 15 is a diagram showing an example of a game image including a terrain object. In this embodiment, by generating a mesh as described above, it is possible to make a voxel object have a shape with complex irregularities compared to the length of one side of a voxel, for example.

[0096] Note that any method may be used to generate a mesh based on voxel data. For example, in another embodiment, if the density of voxel data is greater than a predetermined value, a mesh may be generated such that cubes are placed in the voxels (see FIG. 8).

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

[0098] In another embodiment, one voxel data may include 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 data for determining a texture to be used for a voxel object, and indicates the ratio of influence that each material (specifically, the texture corresponding to the material) indicated by the multiple types of material data has on the appearance (specifically, the color and / or pattern) of the voxel object. When determining a texture to be mapped to each face of a mesh, the texture is determined based on various data (specifically, density data, multiple types of material data, and ratio data) included in the voxel data of the target voxel. For example, when multiple types of materials are set for a target voxel corresponding to one face, the texture corresponding to the material (one type) with the greatest influence may be used in consideration of the ratio, or each texture corresponding to the multiple types of materials may be used in consideration of the ratio.

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

[0100] (Game Processing Overview) Next, we will explain the voxel objects that are placed in the game space when the game of this embodiment is executed. Fig. 16 is a diagram showing a schematic overall view of the game space in the game of this embodiment. Fig. 17 is a diagram showing an image of the game space viewed from a virtual camera, and is an example of a game image displayed on a display device.

[0101] In the game of this embodiment, multiple game stages are prepared, and a game space is set for each game stage. For example, there are a rocky mountain game stage, a volcano game stage, a wilderness game stage, etc. Figure 16 shows, for example, a rocky mountain game stage, and a view of the game stage as seen from above the game space.

[0102] As shown in Fig. 16, a player character PC is placed in the game space. The player character PC moves within the game space and performs various actions such as jumping and punching in response to operations by the player. The player character PC is not a voxel object, but a 3D object whose shape is defined in advance by polygons.

[0103] When the game starts, a fixed voxel space defined by the Xs-Ys-Zs coordinate system is set within the game space as a voxel space representing the field. The Xs-Ys-Zs coordinate system is assumed to have axial directions parallel to the XYZ coordinate system of the game space. That is, the Ys axis points upward in the game space, and the Xs and Zs axes are perpendicular to the Ys axis. Below, the voxel space defined by the Xs-Ys-Zs coordinate system is sometimes referred to as the "field voxel space." The position of each object in the game space is expressed by coordinate values ​​in the Xs-Ys-Zs coordinate system. Note that, although 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, they do not have to coincide.

[0104] In the field voxel space, terrain objects are set as voxel objects. For example, a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain are set as terrain objects. For example, material data representing rocks is set in the voxel data of each voxel located lower in the field voxel space, thereby forming the terrain object 210 representing the ground made of rock. Furthermore, material data representing rocks is set in the voxel data of multiple voxels located higher than the ground in the field voxel space, thereby forming the terrain object 220 representing a rocky mountain rising from the ground.

[0105] The terrain object 210 representing the ground and the terrain object 220 representing the rocky mountain can be destroyed by the player character PC. The terrain objects 210 and 220 are destroyed by updating the voxel data of the voxels in the field voxel space. The destruction of objects will be described later.

[0106] 16 and 17, a rock object A is placed in the game space. The rock object A is a type of terrain object, and can be destroyed, held, or thrown by the player character PC.

[0107] Specifically, rock object A is a voxel object different from the terrain objects 210 and 220 defined in the field voxel space. The shape of rock object A is determined by voxel data of multiple voxels in voxel space VLa. Voxel space VLa is a voxel space separate from the field voxel space and located in the game space, and is defined in the Xa-Ya-Za coordinate system. A density value indicating the presence of an object and material data representing a rock are set in the voxel data of multiple voxels in voxel space VLa. As described above, rock object A is displayed by generating and rendering a polygon mesh based on the voxel data of each voxel. Note that, for the sake of explanation, voxel space VLa is indicated by a dotted line in FIGS. 16 and 17; however, the dotted line indicating voxel space VLa is not actually displayed during the game.

[0108] The voxel space VLa can be moved and its orientation can be changed within the game space. For example, when the player character PC performs an action of throwing rock object A, by moving the voxel space VLa within the game space, rock object A moves within the game space while maintaining its shape. In addition, by rotating the voxel space VLa within the game space, rock object A rotates within the game space.

[0109] Furthermore, rock object A may be destroyed by, for example, a destruction action performed by the player character PC. When a destruction action is performed on rock object A, part or all of rock object A is erased, or part of rock object A is separated. Specifically, rock object A is destroyed by rewriting the voxel data of each voxel in voxel space VLa. The destruction of rock object A will be described in detail later.

[0110] The rock object A may be placed in the game space in advance. For example, initial data for forming a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain as shown in FIG. 16 is stored in an internal storage medium such as the flash memory 84, or in an external storage medium attached to the slot 23. The initial data may include the rock object A. In other words, the rock object A is an object stored as initial data, and may be placed in the game space initially. In this case, the voxel space VLa is defined in advance in the initial data.

[0111] Alternatively, the rock object A may not be included in the initial data, but may be generated during the course of game execution. For example, a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain are generated based on the initial data, and a game is started. During the course of game execution, for example, a destruction action (e.g., a punch or a bullet firing action) of the player character PC destroys a portion of the terrain object 210 representing the ground or the terrain object 220 representing the rocky mountain. This destruction may cause a portion of the terrain object 210 or the terrain object 220 to separate, and this portion may be generated as the rock object A. In this case, the voxel space VLa is not predefined in the initial data. The voxel space VLa is defined when the terrain object 210 or the terrain object 220 is destroyed and its fragments are generated as the rock object A.

[0112] 16 and 17, an enemy object B is placed in the game space. The enemy object B is a character automatically controlled by the processor 81, and moves within the game space, changes its posture, and attacks the player character PC.

[0113] Enemy object B is a voxel object. The shape of enemy object B is defined by voxel data of multiple voxels in voxel space VLb. Voxel space VLb is a voxel space located in the game space, separate from the field voxel space, and defined in the Xb-Yb-Zb coordinate system. A density value indicating the presence of an object and material data representing an enemy object are set in the voxel data of multiple voxels in voxel space VLb. This forms enemy object B. As described above, a polygon mesh is generated and drawn based on the voxel data of each voxel, thereby displaying enemy object B. Note that, for the sake of explanation, voxel space VLb is shown by a dotted line in Figures 16 and 17; however, the dotted line indicating voxel space VLb is not actually displayed during the game.

[0114] Note that the hands, feet, and facial parts (mouth and eyes) of enemy object B are not voxel objects, but 3D objects whose shapes are predefined using polygons. The torso part of enemy object B (the ellipsoid-shaped part in the illustration) is a voxel object, and the shape of this torso part is defined by generating a mesh based on voxel data as described above. Then, 3D objects representing the hands, feet, and facial parts are pasted onto the generated mesh (torso part) to form enemy object B.

[0115] The voxel space VLb can be moved and its orientation can be changed within the game space. For example, when the voxel space VLb is moved within the game space by the processor 81, the enemy object B moves within the game space. Furthermore, when the voxel space VLb is rotated within the game space, the enemy object B rotates.

[0116] Furthermore, the enemy object B may be destroyed, for example, by a destructive action performed by the player character PC. Specifically, the enemy object B is destroyed by rewriting the voxel data of each voxel in the voxel space VLb. The destruction of the enemy object B will be described in detail later.

[0117] Also, a weapon object C is placed in the game space. The weapon object C is held by, for example, an enemy object B. The weapon object C is also a voxel object. The shape of the weapon object C is defined by voxel data of multiple voxels in a voxel space VLc. The voxel space VLc is a voxel space placed in the game space, separate from the field voxel space, and defined in an Xc-Yc-Zc coordinate system. The weapon object C also moves and its orientation changes within the game space. For example, when the enemy object B performs an action of swinging or throwing the weapon object C, the position and / or orientation of the voxel space VLc in the game space changes. As a result, the weapon object C moves and its orientation changes within the game space. For example, in FIG. 17, the Xc-Yc-Zc coordinate system is tilted relative to the game space, and the weapon object C is tilted within the game space.

[0118] FIG. 18 is a diagram showing an example of a voxel space VLa arranged in the game space. As shown in FIG. 18, the voxel space VLa is defined by the Xa, Ya, and Za axes. The position of each voxel in the voxel space VLa is represented by the coordinate values ​​of the Xa, Ya, and Za axes. One voxel in the voxel space VLa is a cubic region with a side of a predetermined length. Here, length is defined in the game space, and "meters (m)" is used as a unit of length, for example. For example, the height of the player character PC in the game space may be defined as 2 m. The length of one side of one voxel in the voxel space VLa is, for example, "1 meter" in the game space. Note that one voxel in the field voxel space is also a cube, and the length of one side is "1 meter."

[0119] Voxel data including the density, material data, and state data described above is set for each voxel in the voxel space VLa. As shown in FIG. 18, when a density value indicating the presence of an object and material data representing a rock are set for voxel data of, for example, 125 voxels (= 5 (length) × 5 (width) × 5 (height)) in the voxel space VLa, a rock object A with a length, width, and height of approximately 5 m is formed in the game space. For example, of the 125 voxels, when a mesh is generated, the density of voxels corresponding to the interior of the object may be set to 255, and the density of voxels corresponding to the surface of the object may be set to a value in the range of 128 to 254 (or 1 to 255). The position and orientation of the rock object A in the game space are changed by changing the position of the origin of the voxel space VLa in the game space and the directions of the axes (Xa, Ya, Za axes) of the voxel space VLa.

[0120] FIG. 19 is a diagram illustrating an example of a voxel space VLb arranged in the game space. As illustrated in FIG. 19, the voxel space VLb is defined by the Xb, Yb, and Zb axes. The position of each voxel in the voxel space VLb is represented by coordinate values ​​along the Xb, Yb, and Zb axes. A voxel in the voxel space VLb is smaller than a voxel in the voxel space VLa (and the field voxel space). For example, the length of one side of a voxel in the voxel space VLb is 0.5 m in the game space. Therefore, if a density value indicating the presence of an object and material data representing an enemy object B are set in the voxel data of multiple voxels included in an area illustrated as an ellipsoid with dimensions of 3 m in length and 2 m in height in the voxel space VLb, the torso of the enemy object B will be formed in the game space as a roughly ellipsoid with dimensions of approximately 3 m in length and 2 m in height. For example, of the plurality of voxels, the density of voxels corresponding to the inside of the torso may be set to 255, and the density of voxels corresponding to the surface of the torso may be set to a value in the range of 1 to 254. By changing the position of the origin of the voxel space VLb in the game space and the directions of the axes (Xb, Yb, Zb axes) of the voxel space VLb, the position and posture of the enemy object B in the game space are changed.

[0121] Although not shown in the figures, the voxel space VLc for representing the weapon object C is defined by the Xc, Yc, and Zc axes. One voxel in the voxel space VLc is smaller than one voxel in the voxel space VLa (and the field voxel space), and the length of one side of one voxel in the voxel space VLc may be, for example, 0.5 m, or may be a value shorter or longer than 0.5 m. By changing the position of the origin of the voxel space VLc in the game space and the directions of the axes (Xc, Yc, and Zc axes) of the voxel space VLc, the position and orientation of the weapon object C in the game space are changed.

[0122] Next, the destruction of each object will be described. In this embodiment, the range of destruction differs when a destruction action is performed on a land object and when a destruction action is performed on an enemy object.

[0123] Fig. 20 is a diagram showing an example of the destruction range of a rock object A as a terrain object. Fig. 21 is a diagram showing an example of the destruction range of an enemy object B. In Fig. 20, each voxel when the voxel space VLa is viewed in a plane is shown as a square. Similarly, in Fig. 21, each voxel when the voxel space VLb is viewed in a plane is shown as a square.

[0124] When a destructive action (for example, punching, kicking, throwing a bullet, etc.) is performed by the player character PC, and the destructive action hits a rock object A, which is a terrain object, a first destruction range is set. As shown in FIG. 20, the first destruction range is set based on the position where the destructive action hits. For example, the first destruction range is set with the position where the destructive action hits as its center. For example, when a punch is performed as the destructive action, the first destruction range in the voxel space VLa is set with the position in the voxel space VLa corresponding to the position of the fist of the player character PC in the game space (or the vicinity of the fist) as its center. Then, a destruction process, which will be described later, is performed on each voxel in the voxel space VLa that is included in the first destruction range. The first destruction range is, for example, a sphere with a diameter of 4 m.

[0125] Specifically, whether or not a voxel is included in the first destruction range is determined by an SDF (Signed Distance Field). For example, a range where the distance from the center is a negative value relative to the diameter is represented as inside the shape, and a range where the distance is a positive value is represented as outside the shape. When a destruction action is performed by the player character PC and the destruction action hits rock object A, it is determined whether or not each voxel in the voxel space VLa is within the first destruction range based on the signed distance from the position where the destruction action hit. Then, for voxels within the first destruction range, voxel data is updated as a destruction process.

[0126] Furthermore, when a destructive action is performed by the player character PC and the destructive action hits enemy object B, a second destruction range is set based on the position where the destructive action hits, as shown in FIG. 21. For example, the second destruction range is set with the position where the destructive action hits as its center. For example, when a punch is performed as the destructive action, the second destruction range is set with the position in the voxel space VLb corresponding to the position of the fist of the player character PC in the game space (or the vicinity of the fist) as its center. Then, a destruction process is performed on each voxel in the voxel space VLb that is included in the second destruction range. The second destruction range is, for example, a sphere with a diameter of 2 m.

[0127] The second destruction range is also determined by the SDF, as with the first destruction range. When a destruction action is performed by the player character PC and the destruction action hits enemy object B, it is determined whether each voxel in the voxel space VLb is within the second destruction range based on the signed distance from the position where the destruction action hit. Then, for voxels within the second destruction range, voxel data is updated as a destruction process.

[0128] In this way, the destruction range differs depending on the type of object hit by the destruction action. When the destruction action hits enemy object B, the destruction range is smaller than when the destruction action hits a terrain object. Note that the sizes and shapes of the first destruction range and the second destruction range are merely examples and are not limited to those described above. Furthermore, the first destruction range and the second destruction range are not constant, and the shape and size may be changed depending on the type of destruction action, the position where the destruction action hits, the surrounding conditions, etc.

[0129] For example, if a terrain object is formed so as to protrude from the ground, and a destruction action hits the protruding portion, a first destruction range is set based on the position where the destruction action hit. Note that the destruction range does not necessarily have to be spherical, and may be any shape. For example, it may be an area with a flat bottom.

[0130] FIG. 22 is a diagram for explaining an example of destruction processing for voxels included in the first destruction range.

[0131] As shown in FIG. 22, when a destruction action hits rock object A, the voxel data of voxels in the voxel space VLa that are included in a first destruction range based on the position where the destruction action hit is updated. Specifically, for voxels that are completely included in the first destruction range, the voxel data is rewritten to a value indicating that no object is present. Here, in FIG. 22, the voxels that are completely included in the first destruction range are voxels A100, A101, A102, and A103. That is, when the entire area of ​​a certain voxel is included in the first destruction range, the voxel is completely included in the first destruction range. Then, a value indicating that no object is present is set to the voxel data of voxels A100, A101, A102, and A103 that are completely included in the first destruction range. More specifically, the density of voxels A100, A101, A102, and A103 that are completely included in the first destruction range is set to "0."

[0132] In addition, voxel data of voxels partially included within the first destruction range is also updated. Specifically, the density of voxels partially included within the first destruction range is reduced to a value smaller than the upper limit. For example, the voxel density is set to a range of 1 to 254. Voxels partially included within the first destruction range are voxels whose partial regions are included within the first destruction range and whose partial regions are not included within the first destruction range. For example, in FIG. 22, voxels partially included within the first destruction range are voxels A104, A105, A106, A107, A108, A109, A110, A111, A112, A113, A114, and A115.

[0133] For example, for voxels partially included in the first destruction range, the extent of density reduction may vary depending on the size of the area included in the first destruction range. For example, the larger the area included in the first destruction range, the greater or smaller the extent of density reduction may be. Furthermore, for voxels partially included in the first destruction range, the extent of density reduction may be the same regardless of the size of the area included in the first destruction range. Furthermore, for voxels partially included in the first destruction range, the density may be set to "0" just like for voxels completely included in the first destruction range.

[0134] On the other hand, for voxels not included in the first destruction range, for example, voxels A116, A117, and A118, the voxel data is not changed. That is, the density of voxels not included in the first destruction range is maintained. Note that for voxels adjacent to voxels partially included in the first destruction range (for example, voxels A116 and A117), the voxel data may be changed, while for voxels not adjacent to voxels partially included in the first destruction range (for example, voxel A118), the voxel data may be left unchanged.

[0135] In this way, the voxel data (specifically, density) of voxels completely contained within the first destruction range is set to a value indicating that no object is present. In other words, rock object A is erased from the area completely contained within the first destruction range. Furthermore, the voxel data (specifically, density) of voxels partially contained within the first destruction range is reduced to a value below the upper limit. As described above with reference to FIG. 14, the shape of the surface of the voxel object is determined according to the density. In this way, the voxel data (specifically, density) of each voxel forming rock object A is updated, and the surface (mesh) of rock object A is updated based on the updated voxel data. Therefore, the shape of the surface of rock object A after the destruction process is not a smooth spherical surface like the surface of the first destruction range, but a natural shape with some unevenness.

[0136] Note that, in FIG. 22, the destruction process for voxels included in the first destruction range has been described using rock object A, which is an example of a terrain object, as an example. However, the same applies to other terrain objects. For example, when a destruction action is performed by the player character PC (or enemy object B) on a terrain object 210 defined as a voxel in the field voxel space, the first destruction range is set based on the position where the destruction action hit. For example, when a punch is performed by the player character PC as a destruction action, the first destruction range in the field voxel space is set centered on a position in the field voxel space corresponding to the position of the player character PC's fist (or the vicinity of the fist) in the game space. For voxels in the field voxel space that are completely included in the first destruction range, a value indicating the absence of an object (for example, "0") is set to the density. Furthermore, for voxels in the field voxel space that are partially included in the first destruction range, the density is reduced to a value below the upper limit. The same applies when a destruction action is performed on a terrain object 220 defined in the field voxel space.

[0137] Furthermore, when a destructive action is performed on enemy object B, the same process is performed, although the destruction range is different. That is, when a destructive action is performed on enemy object B, for voxels that are completely contained within a second destruction range that is determined based on the position where the destructive action hit, a value indicating that no object is present is set to the density. For example, for voxels that are completely contained within the second destruction range, the density is set to "0." Furthermore, for voxels that are partially contained within the second destruction range, the density is reduced to a value that is less than the upper limit value and greater than "0."

[0138] Fig. 23 is a diagram showing an example of the shape of the rock object A after it has been destroyed by the destruction processing. Fig. 24 is a diagram showing an example of the shape of the enemy object B after it has been destroyed by the destruction processing.

[0139] As shown in FIG. 23, when a destruction action is performed on rock object A and the voxel data of the voxels in the first destruction range is updated, part of rock object A is destroyed and changes to a shape with a hole. The size of the hole (cavity) in rock object A is relatively large. For example, the diameter of the hole in rock object A is about 4 m in the game space.

[0140] Furthermore, as shown in FIG. 24, when a destruction action is performed on enemy object B and the voxel data of the voxels in the second destruction range is updated, part of enemy object B is destroyed and changes to a shape with a hole. The size of the hole (cavity) in enemy object B is smaller than the hole in rock object A. For example, the diameter of the hole in enemy object B is approximately 2 m in the game space.

[0141] In this way, by varying the destruction range depending on the object hit by the destruction action, it is possible to destroy the object efficiently (quickly) depending on the type of object hit by the destruction action, and to make the player feel a sense of accomplishment when destroying the object. For example, if the destruction action hits a terrain object, the destruction range can be enlarged to destroy a wider area with a single destruction action (for example, a punch), thereby destroying the terrain efficiently.

[0142] Furthermore, enemy object B is generally smaller than a terrain object, but if a single destruction action on enemy object B destroys a destruction range as wide as that of a terrain object, enemy object B may be easily destroyed. In this embodiment, when a destruction action hits enemy object B, the destruction range is made smaller than when a destruction action hits a terrain object, and a narrower range is destroyed by a single destruction action. This makes it possible to make enemy object B less easily destroyable and to make attacks on enemy object B more effective. Furthermore, by representing enemy object B using voxel data and changing the voxel data according to the destruction action, it is possible to represent the process of destruction of enemy object B (the process of an attack), and by reducing the destruction range, it is possible to display how enemy object B is gradually destroyed.

[0143] Furthermore, in this embodiment, the voxel resolution of the enemy object B is set higher than the voxel resolution of the terrain object. Specifically, the length of one side of each voxel in the voxel space VLb for representing the enemy object B is, for example, 0.5 m in the game space. On the other hand, the length of one side of each voxel in the voxel space (voxel space VLa or field voxel space) for representing the terrain object is, for example, 1 meter in the game space. In this way, by setting the voxel resolution of the enemy object B higher than the voxel resolution of the terrain object, the shape of the enemy object B can be expressed in more detail. Furthermore, when the enemy object B is destroyed, the destruction process can be expressed in more detail.

[0144] When a destruction action of the player character PC hits a weapon object C held by an enemy object B, a second destruction range may be set, or a third destruction range smaller or larger than the second destruction range may be set. Then, the weapon object C may be destroyed by changing the voxel data of the voxels included in the set destruction range. Furthermore, multiple types of enemy objects represented by voxel data may appear in the game space, and a destruction range of a different size may be set for each type of enemy object. Furthermore, when a destruction action hits another object represented by voxel data that can move in the game space, a destruction range of a different size from that of the terrain object may be set. The destruction range of an object that can move in the game space may be smaller than the destruction range of the terrain object. Furthermore, the voxel resolution of an object that can move in the game space may be higher than the voxel resolution of the terrain object.

[0145] Furthermore, in the above description, when a destruction action is performed on a terrain object, a first destruction range is set. However, the destruction range may differ depending on the terrain object. For example, the destruction range may differ depending on the type of terrain object (material, such as rock, soil, sand, etc.), or the destruction range may differ depending on the size of the terrain object. Furthermore, for example, the destruction range may differ between a terrain object that is fixed in the game space (e.g., terrain object 210 representing the ground or terrain object 220 representing a rocky mountain) and a terrain object that is movable in the game space (rock object A). For example, the destruction range of a terrain object that is movable in the game space may be smaller than the destruction range of a terrain object that is fixed in the game space. Furthermore, the voxel resolution of a terrain object that is movable in the game space may be higher than the voxel resolution of a terrain object that is fixed in the game space.

[0146] In this embodiment, when a destruction action hits a voxel object, destruction processing (density update) is not necessarily performed on voxels included within the destruction range based on the position where the destruction action hit. The density of voxels included within the destruction range is updated according to the "fragility" of the material (also called substance or raw material) in the material data set for the voxel. Specifically, the density of voxels included 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" of the voxel.

[0147] More specifically, the "hardness of the destroyer" varies depending on the type of destruction action. For example, the "hardness of the destroyer" is determined within a range of 1 to 5 depending on the type of destruction action (punch, kick, throw a bullet, throw a rock, etc.). As described above, the voxel data includes material data, and "fragility" is set as a property of the material. Specifically, the "fragility" is determined by the "hardness" and "durability" preset for the material. That is, the "hardness of the destroyed object" is the hardness set for the material of the voxel object hit by the destruction action, and is determined within a range of 1 to 5, for example. For example, the hardness of rock is preset to "3," and the hardness of iron is preset to "5." The damage amount of a voxel is stored as status data in the voxel data, and varies within a range of 0 to 15, for example.

[0148] If the "hardness of the destroying side" is equal to or greater than the "hardness of the destroyed side," the density of voxels within the destruction range is updated as described above. That is, in this case, a single destruction action destroys the voxel object within the destruction range. If the "hardness of the destroying side" is smaller than the "hardness of the destroyed side" and the difference is less than a predetermined value, the amount of damage to the voxels within the destruction range is updated. For example, the amount of voxel damage is set based on the hardness of the destroying side and / or the hardness of the material. If the amount of voxel damage accumulated by multiple destruction actions exceeds the durability value, the density of the voxels is updated. That is, if the "hardness of the destroying side" is smaller than the "hardness of the destroyed side" and the difference is less than a predetermined value, the density of voxels within the destruction range is not updated (destroyed) by a single destruction action, but is updated by multiple destruction actions. On the other hand, if the "hardness of the destroying side" is smaller than the "hardness of the destroyed side" and the difference is equal to or greater than a predetermined value, the damage amount and density of the voxels within the destruction range are not updated. In this case, even if multiple destruction actions hit the voxel object, the voxel object will not be destroyed.

[0149] For example, suppose the "hardness of the destroying side" set in the first destruction action is "2," and the hardness of the voxel's material (hardness of the side to be destroyed) is "3." In this case, because the "hardness of the destroying side" is smaller than the "hardness of the side to be destroyed," and the difference is less than a predetermined value, the amount of damage to voxels included in the destruction range set according to the voxel object hit by the first destruction action is updated. By performing the first destruction action multiple times, the amount of damage to voxels included in the destruction range accumulates. If the amount of damage to a voxel exceeds its durability value, the density of that voxel is updated. Specifically, as described above, the density of voxels completely included in the destruction range is set to "0," and the density of voxels partially included in the destruction range is reduced to a value below the upper limit.

[0150] Furthermore, if the "hardness of the destroyer" set in the second destruction action is "4" and the "hardness of the object to be destroyed" is "3," a single second destruction action will destroy the voxel object. In other words, in this case, since the "hardness of the destroyer" is greater than the "hardness of the object to be destroyed," when the second destruction action hits a voxel object, the update of the damage amount is omitted, and the density of the voxels included in the destruction range is updated.

[0151] Furthermore, if the "hardness of the destroyer" set in the third destruction action is "1" and the "hardness of the destroyed object" is "3," the voxel object will not be destroyed even if the third destruction action is performed multiple times. In other words, in this case, since the "hardness of the destroyer" is smaller than the "hardness of the destroyed object" and the difference is equal to or greater than a predetermined value, the damage amount and density of the voxel will not be updated even if the third destruction action hits the voxel object.

[0152] [3. Specific examples of processing in game systems] Next, a specific example of information processing in the game system 1 will be described with reference to FIGS.

[0153] Fig. 25 is a diagram showing an example of various data used for information processing in the game system 1. As shown in Fig. 25, the game system 1 stores a game program, game space data, field voxel space data 300, first voxel space data 310, second voxel space data 320, and mesh data.

[0154] The game program is a program for executing the game processing in this embodiment (specifically, the game processing shown in FIG. 26). The game program is stored in advance in a storage medium inserted in the slot 23 or in the flash memory 84, and is read into the DRAM 85 when the game is executed.

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

[0156] The field voxel space data 300 is data relating to the entire field voxel space. In this embodiment, multiple game stages are prepared, and initial field voxel space data is prepared for each game stage. As shown in FIG. 25, the field voxel space data 300 includes size data 301. The size data 301 indicates the length of one side of each voxel in the field voxel space. For example, the length of one side of each voxel in the field voxel space is 1 meter. In this embodiment, the length of one side of each voxel in the field voxel space is the same regardless of the type of game stage. Note that the length of one side of each voxel in the field voxel space may differ depending on the type of game stage. The field voxel space data 300 also includes position data 302. The position data 302 is data representing the position and rotation of the field voxel space in the game space. In this embodiment, the field voxel space is fixed to the game space.

[0157] The field voxel space data 300 also includes field volume data 303. The field volume data 303 includes 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 a terrain in the game space. Initial field volume data 303 for each game stage (for each field voxel space data 300) is pre-stored in the storage medium or flash memory 84 attached to the slot 23. At the start of the game, the field volume data 303 stored in the storage medium or flash memory 84 attached to the slot 23 is read into the DRAM 85. This forms an initial terrain. The terrain is changed by changing the voxel data included in the field volume data 303 stored in the DRAM 85 during game execution.

[0158] The first voxel space data 310 is data related to the voxel space VLa arranged in the game space. The first voxel space data 310 includes size data 311, position data 312, and first volume data 313. The size data 311 includes data indicating the length of one side of each voxel in the voxel space VLa and data indicating the number of voxels in each axis direction (Xa, Ya, Za axes) of the voxel space VLa. For example, the length of one side of each voxel in the voxel space VLa is 1 meter. The size data 311 determines the size of the voxel space VLa in the game space. The position data 312 is data indicating the position and rotation of the voxel space VLa in the game space. For example, the position data 312 includes coordinate data indicating the position in the game space and vector data indicating the direction of each axis (Xa, Ya, Za axes) of the voxel space VLa in the game space. Changing this position data 312 changes the position and / or posture of the voxel space VLa (i.e., rock object A) in the game space. Furthermore, first volume data 313 is data for representing rock object A. The first volume data 313 holds voxel data indicating the presence of an object for each voxel contained in the voxel space VLa. In other words, the first volume data 313 includes voxel data for each voxel contained in 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, thereby forming rock object A.

[0159] The second voxel space data 320 is data related to the voxel space VLb arranged in the game space. The second voxel space data 320 includes size data 321, position data 322, and second volume data 323. The size data 321 includes data indicating the length of one side of each voxel in the voxel space VLb and data indicating the number of voxels in each axis direction (Xb, Yb, Zb axes) of the voxel space VLb. For example, the length of one side of each voxel in the voxel space VLb is 0.5 m. The size data 321 determines the size of the voxel space VLb in the game space. The position data 322 is data indicating the position and rotation of the voxel space VLb in the game space. For example, the position data 322 includes coordinate data representing a position in the game space and vector data representing the direction of each axis (Xb, Yb, Zb axes) of the voxel space VLb in the game space. Changing this position data 322 changes the position and / or posture of the voxel space VLb (i.e., enemy object B) in the game space. Furthermore, the second volume data 323 is data for representing the enemy object B. The second volume data 323 holds voxel data indicating the presence of an object for each voxel contained in the voxel space VLb. In other words, the second volume data 323 includes voxel data for each voxel contained in the voxel space VLb. Voxel data is set for each voxel in the voxel space VLb, and a mesh is generated based on the voxel data, thereby forming the enemy object B.

[0160] The mesh data is data that indicates a mesh that is set for a voxel object placed in the game space. The mesh data includes, for example, data that indicates the position of each vertex in the mesh. The mesh data is generated based on the volume data 303, 313, 323, etc.

[0161] In addition to the data shown in FIG. 25, the game system 1 stores data such as the above-mentioned property information and texture information data, and data related to various characters appearing in the game, as data that is stored in advance before the execution of game processing. Also, 3D object data representing 3D objects different from voxel objects (e.g., hand and foot parts of the player character PC and enemy object B) is stored. Also, voxel space data is stored for each voxel object that can move in the game space. For example, voxel space data corresponding to a weapon object C is stored.

[0162] Fig. 26 is a flowchart showing an example of the flow of game processing executed by the game system 1. The game processing shown in Fig. 26 is started in response to, for example, an instruction to start the game being given by the player.

[0163] In the present embodiment, the processor 81 of the main unit 2 executes the game program stored in the game system 1 to perform the processing of each step shown in FIG. 26. However, in other embodiments, some of the processing of each step may be performed by a processor (e.g., a dedicated circuit) other than the processor 81. Furthermore, if the game system 1 is capable of communicating with another information processing device (e.g., a server), some of the processing of each step shown in FIG. 26 may be performed in the other information processing device. Furthermore, the processing of each step shown in FIG. 26 is merely an example, and the processing order of each step may be reversed, or another process may be performed in addition to (or instead of) the processing of each step, as long as similar results are obtained.

[0164] 26 using a memory (for example, DRAM 85). That is, the processor 81 stores information (in other words, data) obtained by each processing step in the memory, and when using the information in a subsequent processing step, reads the information from the memory and uses it.

[0165] As shown in FIG. 26, in step S1, the processor 81 sets a game space in an initial state. Specifically, the processor 81 acquires field voxel space data representing the terrain within the game space in the initial state and stores some or all of the acquired field voxel space data in the DRAM 85. Note that the field voxel space data representing the terrain within the game space in the initial state is stored, for example, in a storage medium attached to the slot 23 of the main unit 2. The field voxel space data includes field volume data 303 (voxel data) representing the terrain. The processor 81 also reads voxel space data related to other voxel objects (first voxel space data 310, second voxel space data 320, etc.) from the storage medium and stores the data in the DRAM 85. The first voxel space data 310 includes first volume data 313 (voxel data) representing a rock object A. The second voxel space data 320 also includes second volume data 323 (voxel data) representing an enemy object B. The processor 81 also reads the 3D object data from the storage medium, sets the initial position and orientation of the 3D object, and stores the same in the DRAM 85. The processor 81 also sets the initial position and orientation of the virtual camera, and stores the same in the DRAM 85.

[0166] The voxel data written to the DRAM 85 may be voxel data for a partial range of the voxel data for the entire range of the game space, which is used to generate a game image. For example, the processor 81 may generate an image of an object using voxel data for voxels included in a partial range of the game space (for example, a range within a predetermined distance from the position of the virtual camera). When voxel data for a partial range of the game space is written, a process similar to that of step S1 is executed at an appropriate timing during execution of the series of processes of steps S2 to S11 (for example, at a timing when the position of the virtual camera has moved by more than a predetermined distance).

[0167] In step S2, the processor 81 generates a mesh for the voxel object. The mesh is generated according to the method described above in "[2-2. Mesh]". Specifically, the processor 81 generates a mesh representing each voxel object based on each volume data stored in the DRAM 85 in step S1. As a result, a terrain object is constructed in the game space, and an enemy object B is placed in the game space. For example, the processor 81 generates a polygon mesh between voxels to which a value indicating the presence of an object is set and voxels to which a value indicating the absence of an object is set, based on a plurality of voxel data included in the field volume data 303. An example of a specific method for determining vertex positions has been described with reference to FIG. 14. Furthermore, the processor 81 generates a polygon mesh between voxels to which a value indicating the presence of an object is set and voxels to which a value indicating the absence of an object is set, based on a plurality of voxel data included in the first volume data 313. As a result, a polygon mesh representing a rock object A is generated. Furthermore, processor 81 generates a polygon mesh between voxels set with values ​​indicating the presence of an object and voxels set with values ​​indicating the absence of an object, based on a plurality of voxel data included in second volume data 323. This generates a polygon mesh representing enemy object B. After step S2, the game starts, and the processes of steps S3 to S11 are repeatedly executed at predetermined frame time intervals (for example, 1 / 60 second intervals) during the game.

[0168] In step S3, the processor 81 controls the actions of various objects (for example, the player character PC and enemy object B) that appear in the game space. The processor 81, for example, moves the player character PC and causes the player character PC to perform a predetermined action (destructive action, jump, etc.) based on operation data received from the controllers 3 and 4. The destructive action of the player character PC may be a punch, a kick, throwing a bullet, etc. The processor 81 also moves the enemy object B and causes the enemy object B to perform a destructive action (swinging or throwing a weapon object C, etc.) based on an algorithm defined in the game program. Following step S3, the processing of step S4 is executed.

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

[0170] In step S5, the processor 81 determines whether the destruction action hits a voxel object. Here, for example, it is determined whether the destruction action by the player character PC hits a terrain object or an enemy object B. The terrain object may be a rock object A, a terrain object 210 representing the ground, or a terrain object 220 representing a rocky mountain. The determination of whether the destruction action hits a voxel object is performed by physically determining the destroying object and the destroyed voxel object. For example, if the player character PC punches, the destroying object is the player character PC's fist, and if the player character PC throws a bullet, the thrown bullet. The destroyed voxel object is the terrain object or the enemy object B, and a determination mesh is generated. The determination mesh may be the same as the display mesh, or a determination mesh that is coarser than the display mesh may be prepared. A collision determination is performed between the determination mesh and the destroying object to determine whether a collision occurred. If the determination result in step S5 is positive, the process proceeds to step S6. On the other hand, if the determination result in step S5 is negative, the process proceeds to step S10.

[0171] In step S6, processor 81 sets a destruction range according to the voxel object hit by the destruction action. For example, if the destruction action hits a terrain object, processor 81 sets a first destruction range based on the position where the destruction action hit. Also, for example, if the destruction action hits enemy object B, processor 81 sets a second destruction range based on the position where the destruction action hit. In the game space, the second destruction range is narrower than the first destruction range. Following step S6, the process of step S7 is executed.

[0172] In step S7, processor 81 executes voxel data update processing on the voxel object hit by the destruction action. The voxel data update processing in step S7 will be described below with reference to FIG.

[0173] Fig. 27 is a flowchart showing an example of the voxel data update process of step S7. The process shown in Fig. 27 is performed on each voxel included in the voxel space of the voxel object hit by the destructive action (in other words, each voxel in the volume data indicating the voxel object hit by the destructive action).

[0174] In step S21, the processor 81 selects one voxel included in the destruction range set in step S6 from among the voxels in the volume data indicating the voxel object hit by the destruction action. Here, voxels that are completely included in the destruction range or voxels that are partially included in the destruction range are selected. For example, if the destruction action hits rock object A, one voxel included in the first destruction range set in step S6 from among the voxels in the voxel space VLa is selected. Following step S21, the processing of step S22 is executed.

[0175] In step S22, processor 81 determines whether the hardness of the destruction side determined according to the destruction action is equal to or greater than the hardness of the material indicated by the material data included in the voxel data. If the determination result in step S22 is positive, the process proceeds to step S26. On the other hand, if the determination result in step S22 is negative, the process proceeds to step S23.

[0176] In step S23, processor 81 determines whether the difference between the hardness of the destroying side and the hardness of the material (the hardness of the destroyed side) is less than a predetermined value. If the determination result in step S23 is positive, the process proceeds to step S24. On the other hand, if the determination result in step S23 is negative, the process proceeds to step S29.

[0177] In step S24, processor 81 updates the amount of damage to the selected voxel. For example, the amount of damage is updated based on the hardness of the destroying side and the hardness of the material. After step S24, the process of step S25 is executed.

[0178] In step S25, processor 81 determines whether the amount of damage to the updated voxel exceeds a predetermined durability value for the material. If the determination result in step S25 is positive, the process proceeds to step S26. On the other hand, if the determination result in step S25 is negative, the process proceeds to step S29.

[0179] In step S26, the processor 81 determines whether the selected voxel is completely contained within the destruction range set in step S6. For example, it determines whether the selected voxel is completely contained within the destruction range based on the signed distance from the surface of the set destruction range. For example, if the signed distance is a negative value, it is determined that the voxel is contained within the destruction range. If the determination result in step S26 is positive, the process proceeds to step S27. On the other hand, if the determination result in step S26 is negative, the process proceeds to step S28.

[0180] In step S27, as a destruction process, the processor 81 updates the density of the selected voxel from a value indicating the presence of a voxel object (e.g., "255") to a value indicating the absence of a voxel object (e.g., "0").

[0181] In step S28, processor 81 reduces the density of the selected voxels as a destruction process. Specifically, the voxels determined as NO in step S26 are voxels that are partially included in the set destruction range. Here, the density of the voxels that are partially included in the destruction range is reduced to a value smaller than the upper limit. After step S28, the process of step S29 is executed.

[0182] In step S29, processor 81 determines whether or not the processing of steps S21 to S28 has been completed for all voxels included in the destruction range among the multiple voxels in the voxel space corresponding to the voxel object hit by the destruction action. If the determination result of step S29 is positive, the processing shown in Fig. 27 is terminated. On the other hand, if the determination result of step S29 is negative, processor 81 changes the voxel to be processed among the voxels within the destruction range, and executes the processing of step S21 again.

[0183] Returning to FIG. 26, after the process of step S7, processor 81 executes the process of step S8.

[0184] In step S8, processor 81 determines whether to update the mesh. Here, if the voxel data has been updated in step S7, processor 81 determines to update the mesh. If the determination result in step S8 is positive, the process of step S9 is executed. On the other hand, if the determination result in step S8 is negative, the process of step S10 is executed. Note that even if the voxel data has been updated in step S7, if there are no updated voxels within the imaging range of the virtual camera, processor 81 may determine not to update the mesh in step S8. In other words, even if a destruction action hits a terrain object or enemy object B and destroys part or all of the terrain object or enemy object B, if the voxel object in the game space visible from the virtual camera is not destroyed, the mesh may not need to be updated. Furthermore, when the processing load is high, for example, the mesh update may not be performed in the current frame but may be carried over to the next frame or later.

[0185] In step S9, processor 81 updates the mesh for the voxel object whose voxel data was changed in step S7. Specifically, the vertex positions of the mesh are recalculated based on the updated voxel data. The updated mesh is stored in DRAM 85 as mesh data. That is, processor 81 generates a mesh for the destroyed voxel object based on the voxel data updated in step S7. This makes it possible to dynamically change the mesh of the voxel object (terrain object or enemy object B) for which a destruction action has been performed during the game. In step S9, the vertices of the mesh are recalculated only for the portion of the voxel data for which the voxel data has been updated. For the mesh of the portion of the voxel data for which the voxel data has not been updated, the vertex positions of the mesh generated in step S2 are used. In this way, mesh recalculation is performed only for the updated voxel data, thereby reducing the processing load. In another embodiment, 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. After step S9, the process of step S10 is executed.

[0186] In step S10, 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, processor 81 generates a game image of the mesh generated in step S2 or S9 as viewed from the position of the virtual camera. This generates a game image representing the game space including voxel objects and other 3D objects (e.g., player character PC). Then, processor 81 displays the generated game image on the display device. Following step S10, the process of step S11 is executed.

[0187] In step S11, processor 81 determines whether or not to end the game. For example, processor 81 determines whether or not an instruction to end the game has been given by the user. If the determination result in step S11 is negative, the processing of step S3 is executed again. Thereafter, the series of processing from steps S3 to S11 is repeatedly executed until it is determined in step S11 that the game is to be ended. On the other hand, if the determination result in step S11 is positive, processor 81 ends the game processing shown in FIG. 26.

[0188] Note that, in FIG. 26 , the player character PC performs a destruction action to destroy the terrain object or enemy object B. However, various other processes besides the above-described processes may be performed. For example, enemy object B may perform a destruction action to destroy the terrain object in a manner similar to the above. That is, when enemy object B's destruction action hits a terrain object, a first destruction range is set according to the terrain object based on the position of the hit, and the terrain object in the first destruction range is destroyed. Furthermore, in addition to the destruction of terrain objects, terrain objects may also be added. For example, when a predetermined action is performed by the player character PC, a new terrain object may be added. This terrain object is added by updating the voxel data as described above. For example, a terrain object may be added to the game space by rewriting the voxel data of a voxel that has a value indicating the absence of a terrain object to a value indicating the presence of a terrain object. In this case, the new terrain object may be added by updating the voxel data of the voxel in the field voxel space. Alternatively, a new terrain object may be added by setting another voxel space in the game space and setting voxel data for voxels in the voxel space. For example, a destruction action may be performed on a terrain object generated based on the field volume data 303, whereby the density of multiple voxels included in the field volume data 303 is set to "0" (part of the terrain is erased), and a new voxel space separate from the field voxel space may be set, with the density of multiple voxels in the separate voxel space set to a value greater than a reference value. This causes a part of the terrain object to separate, generating a new terrain object that can move within the game space. In addition to destroying enemy object B, other enemy objects may also be added. The enemy object is added by setting a voxel space corresponding to the new enemy object in the game space and setting voxel data for voxels in the voxel space.

[0189] Furthermore, the processes shown in the above flowcharts are merely examples, and the order and content of the processes, values ​​used for determination, etc. may be changed as appropriate.

[0190] As described above, in this embodiment, the field volume data 303, the first volume data 313, and the second volume data 323 are stored in the memory. The field volume data 303 is data for representing a terrain object, and holds voxel data indicating the presence of the object for each voxel included in the field voxel space arranged in the game space. The first volume data 313 is data for representing a rock object, and holds voxel data indicating the presence of the object for each voxel included in the voxel space VLa arranged in the game space. The second volume data 323 is data for representing an enemy object, and holds voxel data indicating the presence of the object for each voxel included in the voxel space VLb arranged in the game space. For example, when a destruction action is performed on the terrain objects 210, 220 based on the player's operation input, the voxel data of voxels included in the field volume data 303 that are included in a first destruction range that is set based on the position where the destruction action hit is updated. Furthermore, when a destruction action is performed on a rock object based on a player's operation input, voxel data of voxels included in a first destruction range set based on the position where the destruction action hits is updated in the first volume data 313. Furthermore, when a destruction action is performed on an enemy object based on a player's operation input, voxel data of voxels included in a second destruction range set based on the position where the destruction action hits is updated in the second volume data 323. Furthermore, a polygon mesh is generated based on the field volume data 303, the first volume data 313, and the second volume data 323.

[0191] This allows the destruction range to be different for each object hit by the destruction action. Because the second destruction range is narrower than the first destruction range, a wider range can be destroyed by the destruction action for terrain objects, and a narrower range can be destroyed for enemy objects.

[0192] In this embodiment, density indicating the degree to which an object occupies a virtual space defined by voxels is set as voxel data. For example, when a destruction action hits a rock object, the degree (density) of voxels included in a first destruction range among the plurality of voxel data included in the first volume data 313 is reduced. When a destruction action hits an enemy object, the degree (density) of voxels included in a second destruction range among the plurality of voxel data included in the second volume data 323 is reduced.

[0193] Furthermore, when a destruction action hits a terrain object, the density of at least some of the voxels included in the first destruction range is set to a value indicating that the object is not present (specifically, "0"). Specifically, for voxels that are completely included in the first destruction range, the density is set to a value indicating that the object is not present (specifically, "0"), and for voxels that are partially included in the first destruction range, the density is reduced to a value below the upper limit. Similarly, the density of at least some of the voxels included in the second destruction range is set to a value indicating that the object is not present (specifically, "0"). Specifically, for voxels that are completely included in the second destruction range, the density is set to a value indicating that the object is not present (specifically, "0"), and for voxels that are partially included in the second destruction range, the density is reduced to a value below the upper limit. This makes it possible to make the density of voxels different between the inside of the destruction range and the surface of the destruction range, and, for example, to make the surface of the destruction range have a smooth, natural shape.

[0194] In this embodiment, the voxel data further includes material data indicating the material of the object (rock, soil, sand, etc.) and a damage amount. When a destruction action hits a voxel object (terrain object or enemy object), the damage amount of the voxel is updated based on the type of destruction action and the hardness of the material indicated by the material data. If the amount of damage inflicted on a voxel exceeds the durability value set for the material, the density of the voxel is updated. This allows, for example, an object to be destroyed by a single destruction action or by multiple destruction actions, thereby providing a variety of ways to destroy an object.

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

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

[0197] For example, in the above embodiment, when a destruction action hits a terrain object, a first destruction range is set for the terrain object, and when a destruction action hits an enemy object, a second destruction range smaller than the first destruction range is set for the enemy object. Similar processing may be performed for any other voxel object. For example, when a destruction action hits a first object, a first destruction range may be set for the first object, and when a destruction action hits a second object, a second destruction range smaller than the first destruction range may be set for the second object. Furthermore, there may be three or more types of voxel objects, and the destruction ranges may differ depending on the types of these voxel objects.

[0198] In the above embodiment, the destruction range differs depending on the type of voxel object hit by the destruction action. However, the destruction range may differ not only depending on the type of voxel object but also, for example, depending on the type of destruction action. Even in this case, when the same destruction action is performed, the destruction range differs depending on the type of object hit by the destruction action. For example, when a punch hits a terrain object, a first destruction range on the terrain object may be destroyed; when a punch hits an enemy object, a second destruction range on the enemy object may be destroyed; when a kick hits a terrain object, a third destruction range on the terrain object may be destroyed; and when a kick hits an enemy object, a fourth destruction range on the enemy object may be destroyed.

[0199] In the above embodiment, the determination of whether a destructive action hits a voxel object is based on a determination mesh or a display mesh generated based on voxel data. In other embodiments, the determination of whether a destructive action hits a voxel object may be based on voxel data.

[0200] In the above embodiment, the size of each voxel in the first voxel space (e.g., field voxel space or voxel space VLa) representing the first object (e.g., a terrain object) is larger in size in the game space than the size of each voxel in the second voxel space (e.g., voxel space VLb) representing the second object (e.g., an enemy object). Furthermore, the first destruction range when a destruction action hits the first object is larger than the second destruction range when the destruction action hits the second object. In other embodiments, the size of each voxel in the first voxel space may be the same as the size of each voxel in the second voxel space. Even in this case, the first destruction range when a destruction action hits the first object may be larger in the game space than the second destruction range when the destruction action hits the second object.

[0201] In the above embodiment, when a destruction action is performed on a first object, the voxel data of voxels included in a first destruction range is updated, and when a destruction action is performed on a second object, the voxel data of voxels included in a second destruction range is updated, thereby destroying the first object or the second object. In other embodiments, when an arbitrary event occurs on an object, a range according to the type of object may be set, and the voxel data of voxels included in the set range may be updated. That is, when a first event occurs on a first object, a first range may be set based on the position where the first event occurred, and the voxel data of voxels included in the first range may be updated (decreased or increased). Furthermore, when a second event occurs on a second object, a second range may be set based on the position where the second event occurred, and the voxel data of voxels included in the second range may be updated (decreased or increased). The event may be an action by the player character PC or an enemy object as described above performed on a voxel object. For example, an event may be a punch by the player character PC hitting a voxel object, or a bullet thrown by the player character PC hitting a voxel object. An event may also occur independently of an action by the player character PC or an enemy object, such as a volcanic eruption or a rock falling. For example, an event may occur over time. An event may also be an event that results in the generation of a new object. In this case, when the event occurs, the voxel data of voxels included in a range set based on the location where the event occurs may be updated (density increased), thereby generating a new object.

[0202] In the above embodiment, for each voxel of a voxel object, for voxels that are completely included in the destruction range, the density of the voxel is set to "0" to indicate that no object is present in that voxel, and for voxels that are partially included in the destruction range, the density is reduced to a value below the upper limit. For voxels that are completely included in the destruction range, the value indicates that no object is present, and for voxels that are partially included in the destruction range, the value may be updated to any value as long as the proportion (degree) of the object's occupancy is reduced.

[0203] In the above embodiment, the density of voxels within the destruction range was set to "0," thereby setting a value indicating that no object exists in the voxel. This erases the portion of the voxel object within the destruction range, destroying the voxel object. 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 regard to density, the "value indicating the absence of an object" is not limited to "0" but may be any value less than a reference value (e.g., 128). With regard to density, the "value indicating the presence of an object" may be a value in the range of 1 to 255, or may be a value equal to or greater than the reference value. Furthermore, the destruction (or creation) 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 presence or absence of an object may be stored in the voxel data. Setting the flag to ON indicates the presence of an object in the voxel, and setting the flag to OFF indicates the absence of an object in the voxel (i.e., a void). Furthermore, if material data is stored in the voxel data, it may indicate that an object made of the material indicated by the material data exists in the voxel. Conversely, if material data is not stored in the voxel data, it may indicate that no object exists in the voxel.

[0204] Furthermore, the above-described processing may be executed in any other information processing device or information processing system, not limited to the game system 1. The information processing system may be configured by multiple devices, and the multiple devices may be connected via a network (for example, a LAN, the Internet, etc.).

[0205] Furthermore, the configurations according to the above-described embodiments and their modifications can be combined in any manner as long as they are not inconsistent with each other. Furthermore, the above is merely an example of the present invention, and various other improvements and modifications may be made thereto. [Explanation of symbols]

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

Claims

1. A game program executed by a processor of an information processing device, the processor first volume data, which is data for representing a first object in a virtual space, and which holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space; and second volume data, which is data for representing a second object in the virtual space and holds voxel data for each voxel included in a second voxel space arranged in the virtual space, in a storage medium; when a first event occurs for the first object based on an operation input by a player, updating the voxel data of voxels included in a first range set based on a position where the first event occurs in the first volume data; when a second event occurs for the second object based on an operation input by a player, updating the voxel data of voxels included in a second range set based on a position where the second event occurs in the second volume data; a game program that generates an image of the virtual space by drawing at least polygon meshes that represent surfaces of the first object and the second object based on the first volume data and the second volume data.

2. the voxel data includes a value indicating the degree to which an object occupies a space defined by the voxel; the processor, When the first event occurs, the voxel data is updated so that the degree of a voxel included in the first range in the first volume data decreases; The game program according to claim 1 , wherein, when the second event occurs, the voxel data is updated so that the degree of a voxel included in the second range in the second volume data decreases.

3. the processor, When the first event occurs, update the voxel data so that at least a portion of voxels included in the first range in the first volume data have values ​​indicating that the first object does not exist; 3. The game program according to claim 2, wherein, when the second event occurs, the voxel data is updated so that at least a portion of the voxels included in the second range in the second volume data have values ​​indicating that the second object is not present.

4. the processor, When the first event occurs, update the voxel data in the first volume data so that voxels that are completely included in the first range have a value indicating that the first object does not exist, and voxels that are partially included in the first range have a value indicating that the first object does not exist; 4. The game program according to claim 3, wherein, when the second event occurs, the voxel data is updated so that voxels in the second volume data that are completely contained within the second range are set to a value indicating that the second object is not present, and the degree is reduced for voxels that are partially contained within the second range.

5. The voxel data further includes material data indicating a material of the object and a damage amount indicating damage inflicted; the processor, When the first event occurs, the damage amount is updated for voxels included in the first range in the first volume data, and further, for voxels in which the damage amount exceeds an upper limit set for the material, a value indicating the degree is updated; 5. The game program according to claim 2, wherein, when the second event occurs, the damage amount is updated for voxels included in the second range in the second volume data, and further, for voxels in which the damage amount exceeds an upper limit set for the material, a value indicating the degree is updated.

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

7. the first object is a terrain in the virtual space, The game program according to claim 1 , wherein the first range is greater than the second range.

8. the second object is an object that can move within the virtual space by changing a position and / or an orientation of the second voxel space within the virtual space, The game program according to claim 1 , wherein the second range is smaller than the first range.

9. the processor, generating the polygon mesh by determining vertex positions of polygons based on the voxel data between voxels where the first object or the second object does not exist and voxels where the first object or the second object exists; The game program according to claim 1 , further comprising: a step of recalculating vertices of the polygon mesh in a range including at least the voxels whose voxel data has been updated, based on the occurrence of the first event or the second event.

10. The processor further comprises: causing a player character to perform a destruction action capable of destroying the first object and the second object based on an operation input by the player; the first event is the destruction action hitting the first object; The game program according to claim 1 , wherein the second event is the destruction action hitting the second object.

11. An information processing system comprising a storage medium and at least one processor, The storage medium includes: first volume data, which is data for representing a first object in a virtual space, and which holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space; second volume data, which is data for representing a second object in the virtual space and holds the voxel data for each voxel included in a second voxel space arranged in the virtual space; The processor: when a first event occurs for the first object based on an operation input by a player, updating the voxel data of voxels included in a first range set based on a position where the first event occurred in the first volume data; when a second event occurs for the second object based on an operation input by a player, updating the voxel data of voxels included in a second range set based on a position where the second event occurs in the second volume data; an information processing system that generates an image of the virtual space by rendering at least polygon meshes that represent surfaces of the first object and the second object based on the first volume data and the second volume data;

12. the voxel data includes a value indicating the degree to which an object occupies a space defined by the voxel; The processor: When the first event occurs, update the voxel data so that the degree of a voxel included in the first range in the first volume data decreases; The information processing system according to claim 11 , wherein, when the second event occurs, the voxel data is updated so that the degree of a voxel included in the second range in the second volume data decreases.

13. The processor: When the first event occurs, update the voxel data so that at least a portion of voxels included in the first range in the first volume data have values ​​indicating that the first object does not exist; 13. The information processing system according to claim 12, wherein, when the second event occurs, the voxel data is updated so that at least a portion of voxels included in the second range in the second volume data have values ​​indicating that the second object is not present.

14. The processor: When the first event occurs, update the voxel data so that voxels in the first volume data that are completely included within the first range have a value indicating that the first object does not exist, and voxels that are partially included within the first range have a value indicating that the first object does not exist; 14. The information processing system according to claim 13, wherein, when the second event occurs, the voxel data is updated so that voxels in the second volume data that are completely contained within the second range are set to a value indicating that the second object is not present, and the degree is reduced for voxels that are partially contained within the second range.

15. The voxel data further includes material data indicating a material of the object and a damage amount indicating damage inflicted; The processor: When the first event occurs, the damage amount is updated for voxels included in the first range in the first volume data, and further, for voxels where the damage amount exceeds an upper limit set for the material, a value indicating the degree is updated; 15. The information processing system according to claim 12, wherein, when the second event occurs, the damage amount is updated for voxels included in the second range in the second volume data, and further, for voxels in which the damage amount exceeds an upper limit set for the material, a value indicating the degree is updated.

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

17. the first object is a terrain in the virtual space, The information processing system of claim 11 , wherein the first range is greater than the second range.

18. the second object is an object that can move within the virtual space by changing a position and / or an orientation of the second voxel space within the virtual space, The information processing system of claim 11 , wherein the second range is smaller than the first range.

19. The processor: generating the polygon mesh by determining vertex positions of polygons based on the voxel data between voxels where the first object or the second object does not exist and voxels where the first object or the second object exists; The information processing system according to claim 11 , further comprising: recalculating, based on the occurrence of the first event or the second event, the vertices of the polygon mesh in a range including at least the voxels whose voxel data has been updated.

20. The processor further comprises: causing a player character to perform a destruction action capable of destroying the first object and the second object based on an operation input by the player; the first event is the destruction action hitting the first object; The information processing system of claim 11 , wherein the second event is the destructive action hitting the second object.

21. first volume data, which is data for representing a first object in a virtual space, and which holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space; second volume data representing a second object in the virtual space, the second volume data holding voxel data for each voxel included in a second voxel space arranged in the virtual space; when a first event occurs for the first object based on an operation input by a player, updating the voxel data of voxels included in a first range set based on a position where the first event occurred in the first volume data; when a second event occurs for the second object based on an operation input by a player, updating the voxel data of voxels included in a second range set based on a position where the second event occurs in the second volume data; an information processing device that generates an image of the virtual space by rendering at least polygon meshes that represent surfaces of the first object and the second object based on the first volume data and the second volume data.

22. the voxel data includes a value indicating the degree to which an object occupies a space defined by the voxel; When the first event occurs, update the voxel data so that the degree of a voxel included in the first range in the first volume data decreases; The information processing apparatus according to claim 21 , wherein, when the second event occurs, the voxel data is updated so that the degree of a voxel included in the second range in the second volume data decreases.

23. When the first event occurs, update the voxel data so that at least a portion of voxels included in the first range in the first volume data have values ​​indicating that the first object does not exist; 23 . The information processing device according to claim 22 , wherein, when the second event occurs, the voxel data is updated so that at least a portion of voxels included in the second range in the second volume data have values ​​indicating that the second object is not present.

24. When the first event occurs, update the voxel data so that voxels in the first volume data that are completely included within the first range have a value indicating that the first object does not exist, and voxels that are partially included within the first range have a value indicating that the first object does not exist; 24. The information processing device according to claim 23, wherein, when the second event occurs, the voxel data is updated so that voxels in the second volume data that are completely contained within the second range are set to a value indicating that the second object is not present, and the degree is reduced for voxels that are partially contained within the second range.

25. The voxel data further includes material data indicating a material of the object and a damage amount indicating damage inflicted; When the first event occurs, the damage amount is updated for voxels included in the first range in the first volume data, and further, for voxels where the damage amount exceeds an upper limit set for the material, a value indicating the degree is updated; 25. The information processing device according to claim 22, wherein, when the second event occurs, the amount of damage is updated for voxels included in the second range in the second volume data, and further, for voxels for which the amount of damage exceeds an upper limit set for the material, a value indicating the degree is updated.

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

27. An information processing method for causing an information processing system to execute game processing, the information processing system comprising: first volume data, which is data for representing a first object in a virtual space, and which holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space; reading, from a storage medium, second volume data representing a second object in the virtual space, the second volume data holding voxel data for each voxel included in a second voxel space arranged in the virtual space; when a first event occurs for the first object based on an operation input by a player, updating the voxel data of voxels included in a first range set based on a position where the first event occurs in the first volume data; when a second event occurs for the second object based on an operation input by a player, updating the voxel data of voxels included in a second range set based on a position where the second event occurs in the second volume data; and generating an image of the virtual space by drawing at least polygon meshes representing surfaces of the first object and the second object based on the first volume data and the second volume data.

28. the voxel data includes a value indicating the degree to which an object occupies a space defined by the voxel; The information processing system, When the first event occurs, the voxel data is updated so that the degree of a voxel included in the first range in the first volume data decreases; The information processing method according to claim 27 , wherein, when the second event occurs, the voxel data is updated so that the degree of a voxel included in the second range in the second volume data decreases.

29. The information processing system, When the first event occurs, update the voxel data so that at least a portion of voxels included in the first range in the first volume data have values ​​indicating that the first object does not exist; 29. The information processing method according to claim 28, wherein, when the second event occurs, the voxel data is updated so that at least a portion of voxels included in the second range in the second volume data have values ​​indicating that the second object is not present.

30. The information processing system, When the first event occurs, update the voxel data in the first volume data so that voxels that are completely included in the first range have a value indicating that the first object does not exist, and voxels that are partially included in the first range have a value indicating that the first object does not exist; 30. The information processing method according to claim 29, wherein, when the second event occurs, the voxel data is updated so that voxels in the second volume data that are completely contained within the second range are set to a value indicating that the second object is not present, and the degree is reduced for voxels that are partially contained within the second range.

31. The voxel data further includes material data indicating a material of the object and a damage amount indicating damage inflicted; The information processing system, When the first event occurs, the damage amount is updated for voxels included in the first range in the first volume data, and further, for voxels in which the damage amount exceeds an upper limit set for the material, a value indicating the degree is updated; 31. The information processing method according to claim 28, wherein, when the second event occurs, the damage amount is updated for voxels included in the second range in the second volume data, and further, for voxels in which the damage amount exceeds an upper limit set for the material, a value indicating the degree is updated.

32. The information processing method according to claim 27 , wherein one voxel included in the first volume data and one voxel included in the second volume data are defined to have different sizes in the virtual space.

Citation Information

Patent Citations

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

    JP2004062666A

  • Program, information storage medium and image generation system

    JP2008033521A

  • Image processing program and image processor

    JP2009043118A

  • Virtual space creation program, and virtual space creation device

    JP2024007703A

  • Image processing device

    WO2017191702A1