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

The game system effectively utilizes voxel data materials to generate dynamic in-game effects by updating and interacting with voxel objects, enhancing gameplay engagement.

JP2026089699APending Publication Date: 2026-06-01NINTENDO CO LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
NINTENDO CO LTD
Filing Date
2026-02-13
Publication Date
2026-06-01

AI Technical Summary

Technical Problem

Existing game technologies do not effectively utilize materials in voxel data to generate in-game effects.

Method used

A game system that generates and updates voxel objects based on voxel data, utilizing density and material properties to create in-game effects, such as reducing object size or changing materials, and controlling player actions to interact with these objects.

Benefits of technology

Enhances the utilization of materials in voxel data to create dynamic and interactive in-game effects, allowing for more engaging gameplay experiences.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026089699000001_ABST
    Figure 2026089699000001_ABST
Patent Text Reader

Abstract

This invention provides a game program, a game processing method, a game system, and a game device that enable the use of materials in voxel data within a game. [Solution] The system generates a second voxel data set to the same material as the material determined based on the positional relationship with the location where the first action was performed, and a second mesh of a second voxel object corresponding to the second voxel data, wherein the vertex coordinates of the mesh are determined at least based on density, and the material of the mesh is determined based on the material of the second voxel data. When the material of the second voxel data is the same as the first material, the system generates a first in-game effect corresponding to the first material for the second voxel object, and reduces the size of the second voxel object as the game progresses.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a game program, a game processing method, a game system, and a game device for generating an object in a virtual space using voxel data.

Background Art

[0002] Conventionally, objects have been managed using voxel data, and object meshes have been generated in a virtual space based on the voxel data (see, for example, Non-Patent Document 1).

Prior Art Documents

Non-Patent Documents

[0003]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In games, it is desirable to make more use of the materials in voxel data.

[0005] Therefore, an object of the present invention is to provide a game program, a game processing method, a game system, and a game device that can utilize the materials in voxel data in a game.

Means for Solving the Problems

[0006] In order to achieve the above object, the present invention can adopt configurations such as the following (1) to (16).

[0007] (1) One example of the configuration of the game program of the present invention involves the computer of an information processing device generating and updating a mesh of a first voxel object corresponding to the first voxel data, based on first voxel data defined in a virtual space, where each of a plurality of voxels has at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its contents, and a material indicating the type of contents. The mesh of the first voxel object is determined at least based on the density, and the material of the mesh is determined at least based on the material. The computer of the information processing device generates and updates a mesh of a first voxel object corresponding to the first voxel data, based on first voxel data defined in a virtual space, where each of a plurality of voxels has at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its contents, and a material indicating the type of contents. The computer controls the player character in the virtual space based on operation input, causes the player character to perform a first action in response to a first instruction based on operation input, and reduces the density of voxels in the first voxel data corresponding to the first voxel update range set based on the position where the first action was performed. The system generates a second voxel data in which density and material are set for each cell, and the material of the voxel is set to the same material as the material of the voxel or mesh of the first voxel data, which is determined based on the positional relationship with the location where the first action was performed, and a second mesh of the second voxel object corresponding to the second voxel data, in which the vertex coordinates of the mesh are determined at least based on density, and the material of the mesh is determined based on the material of the second voxel data. When the material of the second voxel data is the same as the first material, the system generates a first in-game effect corresponding to the first material for the second voxel object, reduces the size of the second voxel object as the game progresses, and renders the virtual space including the first and second meshes.

[0008] According to the configuration described in (1) above, the player character is made to perform a first action that generates a second voxel object from a first voxel object, and a first in-game effect is generated by consuming the second voxel object based on the material of the second voxel object, thus allowing the material in the voxel data to be utilized more effectively in the game.

[0009] (2) In the configuration described in (1) above, the first voxel data may be defined in the first voxel space. The second voxel data may be defined in the second voxel space. In this case, the computer may reduce the size of the second voxel object by reducing the size of the second voxel space within the virtual space.

[0010] According to the configuration described in (2) above, the size of the second voxel object can be reduced by shrinking the entire voxel space.

[0011] (3) In the configuration of (1) above, the computer may be instructed to set a second voxel update range in a virtual space based on the position of the first voxel object, and the size of the second voxel object may be reduced by decreasing the density of voxels in the second voxel data corresponding to the second voxel update range.

[0012] According to the configuration described in (3) above, the size of the second voxel object can be reduced by decreasing the density of some of the voxels in the second voxel object.

[0013] (4) In the configuration described in (1) above, the computer may be instructed to reduce the size of the second voxel object in accordance with the passage of time during which the first in-game effect is occurring.

[0014] According to the configuration described in (4) above, the first in-game effect can be limited based on the time elapsed before the first in-game effect occurs.

[0015] (5) In the configuration described in (1) above, the computer may be instructed to reduce the size of the second voxel object each time the first in-game effect occurs.

[0016] According to the configuration in (5) above, the first in-game effect can be limited by the amount to which the first in-game effect occurs.

[0017] (6) In the configuration of (4) or (5) above, the first voxel data may be defined in the first voxel space. The second voxel data may be defined in the second voxel space. In this case, the computer may reduce the size of the second voxel object by reducing the size of the second voxel space in the virtual space.

[0018] According to the configuration described in (6) above, the size of the second voxel object can be reduced by shrinking the entire voxel space.

[0019] (7) In any one of the configurations described in (4) to (6) above, the computer may be instructed to set a second voxel update range in a virtual space based on the position of the first voxel object, and the size of the second voxel object may be reduced by decreasing the density of voxels in the second voxel data corresponding to the second voxel update range.

[0020] According to the configuration described in (7) above, the size of the second voxel object can be reduced by decreasing the density of some of the voxels in the second voxel object.

[0021] (8) In any one of the configurations (1) to (5) above, when the size of the second voxel object becomes smaller than a predetermined standard in the computer, the second voxel object may be erased and the first in-game effect may be terminated.

[0022] According to the configuration of (8) above, by reducing the size of the second voxel object, the first in-game effect can be restricted.

[0023] (9) In any one of the configurations (1) to (5) above, in the computer, in response to a second instruction based on an operation input, the player character may be made to perform an action of holding the second voxel object and an action of releasing it, and when the player character is holding the second voxel object, the first in-game effect may be generated.

[0024] According to the configuration of (9) above, the first in-game effect can be generated only when the player character is holding the second voxel object.

[0025] (10) In the configuration of (9) above, in the computer, based on virtual gravity downward in the virtual space, the movement of the player character may be controlled, and as the first in-game effect, the player character holding the second voxel object may be moved upward in the virtual space.

[0026] According to the configuration of (10) above, the effect of moving upward in the virtual space can be given to the player character.

[0027] (11) In the configuration of (9) above, in the computer, as the first in-game effect, the player character holding the second voxel object may be moved on a predetermined path set in the virtual space.

[0028] According to the configuration described in (11) above, the player character can be given the effect of moving along a predetermined path set up in the virtual space.

[0029] (12) In the configuration described in (9) above, the computer may be instructed to control the movement of the player character, who is standing on the second voxel object, on the first object based on the input, as a first in-game effect.

[0030] According to the configuration described in (12) above, the player character can be given the effect of moving on the first object while standing on the second voxel object.

[0031] (13) In the configuration of (9) above, the material may be set to have hardness according to its type. In this case, the computer may, as a first in-game effect, move the player character together with the second voxel object and reduce the size of the second voxel object based on the hardness of the material of the second voxel object and the distance moved.

[0032] According to the configuration described in (13) above, the duration for which the first in-game effect occurs can be changed based on the hardness of the material of the second voxel object.

[0033] (14) In any one of the configurations (1) to (5) above, the computer may be instructed to set a light source at the position of the second voxel object in the virtual space as a first in-game effect.

[0034] According to the configuration described in (14) above, it is possible to achieve the effect of setting a light source at the position of the second voxel object in the virtual space.

[0035] (15) In any one of the configurations (1) to (5) above, the computer may, as a first in-game effect, change the material of a voxel in the first voxel data corresponding to a third voxel update range including the position of the second voxel object to the third material if the material of the voxel was the second material.

[0036] According to the configuration described in (15) above, it is possible to obtain the effect of changing the material of the first voxel object in the virtual space.

[0037] (16) In any one of the configurations (1) to (5) above, the first mesh may include a display mesh used for drawing and a collision detection mesh used for collision detection. The material of the display mesh may be set by setting at least one material for each polygon of the mesh based on the material of the voxels around each vertex constituting the polygon. The material of the detection mesh may be set by setting one material for each polygon of the mesh based on the material of the voxels around each vertex constituting the polygon. In this case, the computer may be instructed to set the same material as the material set for the polygon at the collision position as the material for the second voxel data, based on the collision detection between the collision shape set based on the position where the first action was performed and the detection mesh among the first meshes, and to draw the display mesh based on the vertex coordinates of the display mesh and the texture associated with the material for each polygon of the display mesh, thereby drawing the first mesh.

[0038] According to the configuration described in (16) above, the mesh for judgment and the mesh for display are determined separately, so that the appropriate mesh can be used according to each application.

[0039] Furthermore, the present invention may be implemented in the form of a game processing method, a game device, and a game system. [Effects of the Invention]

[0040] According to the present invention, it is possible to generate in-game effects that occur when a voxel object is consumed, based on the material of the voxel object, thereby allowing the material in the voxel data to be utilized more effectively in the game. [Brief explanation of the drawing]

[0041] [Figure 1] This diagram shows an example of the main unit with the left and right controllers attached. [Figure 2] This diagram shows an example of the left and right controllers being removed from the main unit. [Figure 3] A six-view drawing showing an example of the main unit. [Figure 4] A six-view drawing showing an example of a left controller. [Figure 5] A six-view drawing showing an example of a right controller. [Figure 6] Block diagram showing an example of the internal configuration of the main unit. [Figure 7] Block diagram showing an example of the internal configuration of the main unit, left controller, and right controller. [Figure 8] This diagram shows an example of a terrain object that is a voxel object. [Figure 9] Figure 8 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 10] Figure 8 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 11] A diagram showing an example of voxel data. [Figure 12] A diagram showing an example of material data. [Figure 13] A diagram showing an example of the game space when an update event occurs. [Figure 14] A diagram showing an example of the update scope. [Figure 15] A diagram showing an example of how to set vertices. [Figure 16] A diagram illustrating an example of how to determine the material of a vertex. [Figure 17] A diagram showing an example of vertex simplification. [Figure 18] A diagram showing an example of material-related conditions. [Figure 19] This diagram shows an example of a mesh generated based on vertices. [Figure 20] This diagram shows an example where the quadrilaterals that make up the mesh are divided into two triangles. [Figure 21] This diagram shows an example of a method for determining the material of the polygons that make up the display mesh. [Figure 22] This diagram shows an example of a material applied to each vertex of two adjacent polygons. [Figure 23] This diagram shows an example of applying a texture to a polygon. [Figure 24] This diagram shows an example of a method for determining the material of the polygons that make up the mesh used for judgment. [Figure 25] This is an example of a game image showing a player character moving over terrain objects. [Figure 26] This diagram shows an example of a game image depicting player character 201 pulling fragment object 252 from terrain object 202. [Figure 27] This diagram shows an example of a game image illustrating how player character 201 destroys terrain object 202, generating fragment object 254. [Figure 28] This diagram shows an example of a game image depicting a player character 201 performing a flying action while holding a fragment object 256 in the game space. [Figure 29] An explanatory diagram showing an example of how the size of fragment object 256 can be reduced. [Figure 30] This diagram shows an example of a game image illustrating a player character 201 performing a sliding action while holding a fragment object 257 along a wire rope 301 provided in the game space. [Figure 31]This diagram shows an example of a game image illustrating a player character 201 performing a movement action while riding on a fragment object 258 within the game space. [Figure 32] An explanatory diagram showing an example of how the size of fragment object 258 can be reduced. [Figure 33] This diagram shows an example of a game image depicting player character 201 performing an action where they hold fragment object 261 and shine light into the game space. [Figure 34] This diagram shows an example of a game image illustrating an action where player character 201 throws a fragment object 261, which then illuminates the game space. [Figure 35] This diagram shows an example of a game image illustrating player character 201 throwing fragment object 263 into area 251 of terrain object. [Figure 36] Figure 35 shows an example of a game image after a terrain object has been modified due to contact between a fragment object 263 and a region 251 of the terrain object shown in Figure 35. [Figure 37] Figure 36 shows an example of a game image after a terrain object has been modified by a fragment object 263 making further contact with area 251 of the terrain object shown in Figure 36. [Figure 38] This diagram shows an example of a game image illustrating an action in the game space where a player character 201 moves onto a fragment object 263 and into an area 251 on a terrain object. [Figure 39] This diagram shows an example of various types of data used in information processing within a game system. [Figure 40] A flowchart illustrating an example of the game processing flow executed by the game system. [Figure 41] Figure 40 shows an example of a subroutine for processing in-game effects in step S7. [Modes for carrying out the invention]

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

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

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

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

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

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

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

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

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

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

[0052] The main unit 2 is equipped with a lower terminal 27. The lower terminal 27 is a terminal for the main unit 2 to communicate with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main unit 2 alone is placed on the cradle, the game system 1 can display the images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has the function of charging the integrated device or the main unit 2 alone that is placed on it. The cradle also has the function of a hub device (specifically, a USB hub).

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

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

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

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

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

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

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

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

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

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

[0063] The main unit 2 is equipped with a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to slot 23 and reads and writes data to a predetermined type of storage medium (for example, a dedicated memory card) installed in slot 23, according to instructions from the processor 81.

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

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

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

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

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

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

[0070] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminals 25, as well as to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to the speakers 88 and the audio input / output terminals 25.

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

[0072] The battery 98 is also connected to the lower terminal 27. When an external charging device (for example, a cradle) is connected to the lower terminal 27 and power is supplied to the main unit 2 via the lower terminal 27, the supplied power charges the battery 98.

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

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

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

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

[0077] The communication control unit 101 acquires information about the input (specifically, information about the operation or detection results from the sensor) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data, including the acquired information (or information that has been processed in a predetermined manner), to the main unit 2. The operation data is transmitted repeatedly at a rate of once at predetermined intervals. The interval at which information about the input is transmitted to the main unit 2 may or may not be the same for each input unit.

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

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

[0080] As shown in Figure 7, the right controller 4 includes a communication control unit 111 that communicates with the main unit 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component, including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both by wired communication via the terminal 64 and by wireless communication without the terminal 64 (specifically, communication according to the Bluetooth® standard), and controls the method of communication that the right controller 4 performs with the main unit 2.

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

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

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

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

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

[0086] The terrain object shown in Figure 8 was generated using a rule such as, "If the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the voxel's position; if it is less than or equal to the predetermined value, nothing is placed at the voxel's position." The terrain object shown in Figure 8 is shown to illustrate the relationship between voxels and voxel objects in an easy-to-understand manner. In this embodiment, voxel objects are actually generated using rules (based on voxel data) that result in complex shapes, such as the terrain object shown in Figure 13, which will be described later. The rules for determining the shape of the voxel object based on the voxel data are arbitrary. In other embodiments, the game system 1 may generate voxel objects as shown in Figure 8 or as shown in Figure 13 based on object data.

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

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

[0089] In this embodiment, voxels are defined throughout the entire game space (i.e., the voxel space in which voxels are defined corresponds to the entire game space). However, the voxel space does not need to be defined throughout the entire game space; it may be defined in a part of the game space. When the voxel space is defined in a part of the game space, the shape of the voxel object is defined by the voxel data relating to the voxels in that voxel space, and the position of the voxel object in the game space is defined by the position of that voxel space in the game space. Furthermore, the game space may have a main voxel space defined throughout the entire game space and a sub-voxel space defined in a part of the game space. In this case, the game system 1 stores voxel data for each voxel space.

[0090] Figure 11 shows an example of voxel data. For each voxel defined in the game space, the voxel data includes density data, a first material ID, a second material ID, material mixing ratio data, and state data. In this embodiment, this data is set for each individual voxel.

[0091] The density data indicates the density, which is an index used to define the shape of the voxel object based on the voxel in question (specifically, the shape defined by the mesh described later). As will be explained in detail later, the position and shape of the surface of the voxel object (i.e., the mesh described later) are determined based on the density described above.

[0092] In this embodiment, density can take the range of an integer value from a lower limit (e.g., 0) to an upper limit (e.g., 255). In this embodiment, the game system 1 determines the surface shape of a voxel object based on density, such that a higher density value for a voxel tends to result in a larger proportion of the volume occupied by the area within the voxel object within that voxel, and a lower density value tends to result in a smaller proportion. Thus, density is an indicator that affects the proportion of the volume occupied by the area within the voxel object within that voxel. Density can also be said to be an indicator that shows the degree to which the space of the voxel is virtually occupied by its contents (i.e., the virtual contents of the voxel object). For example, if the density is 0, the inside of the voxel is empty; if the density is 255, the entire inside of the voxel is the contents of the voxel object; and if the density is a value between 0 and 255, the contents of the voxel object can occupy the inside of the voxel in proportion to the value. Based on the above density, the shape of the mesh, i.e., the surface shape of the voxel object, can be determined. A mesh can be described as the surface of the portion of a voxel that contains content, or as the boundary between the portion of a voxel that contains content and the portion that does not. Furthermore, the volume occupied by a region within a voxel object generated based on the above density does not need to be exactly equal to the volume indicated by the density. For example, the volume of a voxel object generated using a method like that shown in Figure 8 may differ from that generated using a method like that shown in Figure 13, even if both methods are based on the same density.

[0093] In other embodiments, density may represent either a state where the entire region within the voxel is occupied by the volume of the region within the voxel object, or a state where the region within the voxel does not include the volume occupied by the region within the voxel object. For example, density data may only take the values ​​of 0 or 1.

[0094] The first material ID and the second material ID are information indicating the material (in other words, substance) of the voxel. In this embodiment, a voxel may be assigned a material such as sand, rock, or soil. In the game system 1, multiple types of materials are available that can be assigned to a voxel (see the material data shown in Figure 12). In this embodiment, up to two materials from the multiple types of materials available can be assigned to a single voxel. The first material ID is an ID indicating the first material assigned to the voxel, and the second material ID is an ID indicating the second material assigned to the voxel. As will be described in detail later, the material of a voxel object (i.e., the material assigned to the polygon of a voxel object) is determined based on the material assigned to the voxel.

[0095] As described above, in this embodiment, the voxel data includes an ID indicating the material, but in other embodiments, the voxel data may be a data structure that includes data that directly indicates the content of the material (i.e., information such as the name, properties, and rendering settings, which will be described later).

[0096] The material mixing ratio data is an example of data that shows the ratio of each material in a given voxel. In this embodiment, since up to two material IDs can be set for one voxel, the material mixing ratio data that shows the ratio of one of the materials, the material indicated by the first material ID and the material indicated by the second material ID, can also represent the ratio of the other material. In this embodiment, the material mixing ratio is a value between 0 and 1 that indicates the proportion of the second material to the whole consisting of the first and second materials. For example, if the material mixing ratio set for a voxel is 0.4, it means that in that voxel, the first material and the second material are composed in a ratio of 0.6:0.4. As will be described in detail later, the appearance and properties of a voxel object are determined based on the material. The material mixing ratio is used to determine the appearance and properties of a voxel object. In other embodiments, the material mixing ratio may be a value that indicates the proportion of the first material. Also, the ratio of materials within a voxel may be represented by separate values ​​that indicate the proportion of each material. In particular, in other embodiments where it is possible to set not just two types of materials but three or more, the ratio within the material voxels will be represented as multiple values ​​that indicate the proportion of each material.

[0097] In this embodiment, it is not necessary for a voxel to have two types of materials assigned to it; it may have only one type of material assigned. For example, if a voxel has only one type of material assigned to it, the first material ID will indicate that material, and the material mixing ratio will be set to 0.

[0098] The status data indicates the state set for the voxel. The specific content and number of types of status data are arbitrary. In this embodiment, the status data includes data indicating the amount of damage set for the voxel. In other embodiments, the status data may include, for example, data indicating whether (and to what extent) the voxel is wet.

[0099] As described above, in this embodiment, the voxel data includes a material ID, so the game system 1 stores material data that defines the content of the material indicated by the material ID. Figure 12 is a diagram showing an example of material data. As shown in Figure 12, in the material data of this embodiment, each material is associated with a material ID and information on the name, properties, and rendering settings set for that material.

[0100] The names included in the material data are the names assigned to the material in question (e.g., soil, sand, grass, etc.). Note that the material names of voxel objects may be displayed during gameplay. To enable such display, the material data includes information about the material's name.

[0101] The properties included in material data are the properties set for that material. Material properties are the properties that the voxel object to which the material is applied possesses in the game. The specific content and number of types of material properties are arbitrary. For example, at least one of the following pieces of information may be set as material properties. Hardness • weight • Slippery • Damage settings when the player character makes contact ·temperature • Can other objects be attached to a voxel object? • The amount of health restored to the player character when the player character destroys or acquires a voxel object. • The amount of in-game currency a player character acquires when they destroy or acquire a voxel object. In other embodiments, information different from that described above may be set as information indicating the properties of the material.

[0102] In this embodiment, the material data includes an ID indicating the properties of the material as information that identifies those properties (see Figure 12). Although not shown, the game system 1 stores property information for each available property, where the content of the property (for example, the hardness or slipperiness values ​​mentioned above) is associated with the property ID. By referring to the above property information, the game system 1 can identify the specific content of the properties set for the material. In this embodiment, information indicating the presence or absence and content of in-game effects, as described later, may be set as the information set as the material properties and as property information for the property ID. Furthermore, the information indicating the presence or absence and content of in-game effects may be included in the material data by being defined in other data other than the data shown in Figure 12.

[0103] The rendering settings included in the material data are information indicating rendering-related settings, such as the texture used to render the voxel object to which the material is set. In this embodiment, the material data includes the ID of the texture used to render the voxel object to which the material is set as rendering setting information (see Figure 12). Although not shown, the game system 1 stores texture information for each prepared texture, associating the texture ID with the texture indicated by that texture ID. By referring to the above texture information, the game system 1 can identify the specific content of the texture set for the material. In other embodiments, in addition to texture information, arbitrary information related to shading settings may be set as rendering setting information. For example, reflectivity and information related to normals may be set.

[0104] Furthermore, the material data may include other data besides the data shown in Figure 12. For example, the material data may include data related to sound settings. For example, the data related to sound settings may be data that defines the footsteps that are output when the player character walks on the voxel object based on the voxel.

[0105] The material data may be in any format that can identify the properties and / or rendering settings of the material. For example, in other embodiments, the material data may have a data structure that directly indicates the properties and / or rendering settings of the material, instead of a data structure that includes a material ID and a texture ID.

[0106] [2-2. Updating Voxel Data] During gameplay, voxel objects are deformed when the aforementioned voxel data is updated. In this embodiment, when a game event that updates a voxel object (hereinafter referred to as an "update event") occurs, the game system 1 updates the voxel data. The specific content of the update event is arbitrary. An update event may be, for example, a character appearing in the game performing an action that deforms a voxel object (for example, a player character punching a voxel object), or an event that deforms a voxel object may occur (for example, an object thrown by a character making contact with a voxel object, or a bomb exploding).

[0107] Figure 13 shows an example of the game space when an update event occurs. The situation shown in Figure 13 is when a player character 201 performs a punch action on a terrain object 202, which is a voxel object. As will be explained in detail later, in the example shown in Figure 13, the voxel data is updated so that the terrain object 202 around the location where the player character 201's punch action hits is erased. This represents the destruction of the terrain object 202 by the player character 201's punch action.

[0108] In this embodiment, when an update event occurs, the game system 1 sets an update range (update range 203 in the example shown in Figure 13) in the game space for updating the voxel object. The position, shape, and size of the update range are arbitrary. The position of the update range may be determined, for example, based on the position where the object related to the update event that occurred (e.g., the player character that made the punch) and the voxel object came into contact. In the example shown in Figure 13, the position of the update range 203 may be determined based on the position where the punch by the player character 201 hit. For example, the center position of the update range 203 may be the position where it hit, or a predetermined distance forward from the position where it hit. The shape and size of the update range may be predetermined to be a shape corresponding to the type of update event. For example, when an update event occurs due to a punch by the player character 201, the shape and size of the update range may be determined as a sphere of a predetermined size, as shown in Figure 13. The size of the update range may also be determined according to a value indicating the degree of influence of the update event that occurred (e.g., the strength of the punch or the size of the explosion).

[0109] Game system 1 changes the density of voxels corresponding to the set update range. Voxels corresponding to the update range are, for example, voxels within the update range or voxels that overlap with the update range. As a result of the density change, the mesh of the voxel object is changed by the process described later, thereby changing the shape of the voxel object (visual shape and shape used for contact detection). In other embodiments, in addition to changing the density of voxels included in the update range, game system 1 may also change the material of the voxel (i.e., the first material, the second material, and the material mixing ratio) or change the state of the voxel.

[0110] In this embodiment, the game system 1 determines whether a voxel is included in the update range using an SDF (Signed Distance Field). The game system 1 sets an SDF that indicates the update range set in the game space and makes the above determination based on the value of the SDF. The SDF represents the distance from a defined shape to any given position with a sign. Figure 14 shows an example of an update range. In the example shown in Figure 14, a spherical update range is set in the game space. For example, in the example shown in Figure 14, the SDF is set such that for positions inside the shape represented by the SDF in the game space, the SDF value is negative, and for positions outside the shape represented by the SDF, the SDF value is positive. In this example, it is possible to determine whether or not a voxel is included in the update range based on whether the SDF value is positive or negative. Furthermore, by using the signed distance value, it is possible to perform not only simple inside / outside determination but also processing such as correction and interpolation.

[0111] The above example describes a change applied to a voxel object where the voxel object within the update range is deformed to appear as if it were deleted. However, the changes that can be applied to a voxel object using the update range are not limited to this. For example, a change may be applied to a voxel object where a new voxel object is added within the update range (i.e., the volume occupied by the area within the voxel object increases by the amount of the update range). Alternatively, a change may be applied to a voxel object where only the material of the voxels within the update range changes, without changing the voxel density. Furthermore, a combination of changes to voxel density and material may be applied.

[0112] [2-3. Calculation of Vertices] When the voxel density is updated as described above, the game system 1 sets vertices based on the updated voxel data. These vertices are those that can become the vertices of the mesh of the voxel object. As will be described in detail later, in this embodiment, the above vertices are simplified, and the simplified vertices become the vertices of the mesh of the voxel object.

[0113] Figure 15 shows an example of how vertices are set. In Figures 15 to 24 described below, voxels, vertices, meshes, etc. are represented in 2D for the purpose of making the diagrams easier to see and the explanations easier to understand. However, in reality, vertices and meshes are set in 3D space based on voxels in 3D space. In this embodiment, the game system 1 uses a method to set vertices at coordinates based on the positions and densities of multiple surrounding voxels in areas where voxels with a set density indicating existence (i.e., a density greater than or equal to the reference value described later) and voxels with a set density indicating non-existence (i.e., a density less than the reference value described later) are adjacent. The details of this method will be described below.

[0114] As described above, in this embodiment, the density set for a voxel is set in the range of 0 to 255. A voxel with a density of 0 represents being completely in the air, and a voxel with a density of 255 represents being completely filled. Densities between 0 and 255 are treated interpolatively and used to determine vertices. In this embodiment, voxels with a density greater than or equal to a reference value are virtually treated as being inside the object, and voxels with a density less than the reference value are virtually treated as being outside the object. Alternatively, voxels with a density greater than or equal to a reference value are virtually treated as existing voxels, and voxels with a density less than the reference value are virtually treated as non-existent voxels. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., the reference value = 1); the reference value can be, for example, 128. In the example shown in Figure 15, the density of voxel 211 and the other outer voxels is set to 0, the density of voxel 212 is set to 100 (below the reference value), and the densities of voxels 213 and 214 are set to 150 and 210 (above the reference value). In this embodiment, the game system 1 generates vertices between voxels with a density above the reference value and voxels with a density below the reference value. Specifically, for each region spanning eight adjacent voxels (four in the diagram) (the region enclosed by dotted lines in the diagram), a decision is made as to whether or not to generate a vertex. In other words, vertices are generated in regions that span both voxels with a density above the reference value and voxels with a density below the reference value. The coordinates of the vertices are determined by comparing the densities of adjacent voxels along the XYZ axes and interpolating based on the density difference. Furthermore, by setting normal information that defines the position and orientation of the straight line connecting the vertices, the coordinates of the vertices can be calculated based on the normal information. Furthermore, normal information may be stored in advance for at least some of the voxels, or if it is not stored, the normal information may be calculated based on the density of adjacent voxels. In Figure 15, since the density of voxel 212 is below the standard value, voxel 212 is treated as outside the object when determining the presence or absence of a vertex, but the density value of voxel 212 itself is used in calculating the coordinates of the generated vertices.If the baseline value is set lower than the density of voxel 212, the result will be an increase in the number of vertices on the upper right and upper left sides of voxel 212 in Figure 15.

[0115] By setting vertices as described above, when generating a mesh connecting each set vertex (or each vertex after the simplification process described later has been applied to each set vertex), it is possible to generate a shape with a volume that reflects the density of each voxel to some extent. However, depending on the relationship with adjacent voxels, it is possible that voxels with a density of 0 may include some areas within the object, or voxels with a density of 255 may include some areas outside the object. Also, in this embodiment, voxels below a certain threshold are treated as being outside the object, so the volume is smaller because there are fewer vertices compared to when they are treated as being inside the object. Thus, it is not necessary to calculate the polygon mesh so that the volume strictly corresponds to the density value.

[0116] [2-4. Determining the material of the vertices] Game system 1 determines the material for each vertex set as described above. The material of a vertex is determined based on the material of the voxels surrounding that vertex. The voxels surrounding a vertex are, for example, the voxels used to determine whether or not to generate that vertex (i.e., voxels that overlap with the "region spanning voxels" described above). In other embodiments, the voxels used to determine the material of a vertex and the voxels used to determine whether or not to generate a vertex do not need to be the same and may be different.

[0117] Figure 16 shows an example of a method for determining the material of a vertex. In the example shown in Figure 16, vertex 219 is set with respect to four voxels 215-218, and these four voxels 215-218 are the "voxels surrounding the vertex" mentioned above. In actual 3D space, the number of voxels surrounding a vertex is eight. Also, in the example shown in Figure 16, voxel 215 is set to have a density of 255, a first material of "sand", and a material mixing ratio of 0 (i.e., first material:second material = 1:0, or the second material does not need to be set). Voxel 216 is set to have a density of 0 (the first and second materials do not need to be set). For voxel 217, the density is set to 204, the first material is "sand", the second material is "grass", and the material mixing ratio is 0.3 (i.e., first material:second material = 0.7:0.3). For voxel 218, the density is set to 153, the first material is "soil", the second material is "grass", and the material mixing ratio is 0.4 (i.e., first material:second material = 0.6:0.4). The coordinates indicating the position of vertex 219 are set to (X,Y)=(0.8,0.6). The coordinate system for these coordinates is one in which the left-right direction in Figure 16 is the X-coordinate and the up-down direction is the Y-coordinate, with the center position of voxel 217, the bottom left of the center positions of voxels 215-218 (positions of the white circles shown in Figure 13), being (0,0).

[0118] When determining the material of a vertex, the game system 1 calculates an evaluation value for each material in the surrounding voxels based on the density of that material and a weight value based on the distance from the voxel to the vertex. First, the weight value is calculated for each voxel, and is calculated so that it becomes larger the closer the distance from the center position of the voxel to the vertex. In this embodiment, when the center position of the voxel is (x1, y1) and the coordinates of the vertex are (x2, y2), the weight value for a given voxel is calculated according to the following equation (1). (Weight value) = |(1-x1)-x2|·|(1-y1)-y2|…(1) In the example shown in Figure 16, the weight values ​​for each voxel 215 to 218 calculated according to equation (1) above are as follows: (Weight value of voxel 215) = |(1-0)-0.8|·|(1-1)-0.6| = 0.12 (Weight value of voxel 216) = |(1-1)-0.8|·|(1-1)-0.6| = 0.48 (Weight value of voxel 217) = |(1-0)-0.8|·|(1-0)-0.6| = 0.08 (Weight value of voxel 218) = |(1-1)-0.8|·|(1-0)-0.6| = 0.32

[0119] Furthermore, game system 1 calculates the material density for each voxel. Here, material density is the value obtained by multiplying the density of the voxel by the proportion of the material set for that voxel that is occupied by that material. In this embodiment, the voxel density is the value normalized from the above values ​​of 0 to 255 to a value of 0 to 1. In the example shown in Figure 16, for voxel 215, the only material set is sand, so the proportion of sand material is 1, and the density of that voxel is 1, so the density of sand material is 1. For voxel 216, the density is 0 and no material is set, so the material density is not calculated. Alternatively, if any material is set, the density of that material is 0. For voxel 217, the set ratios of sand material and grass material are 0.7 and 0.3, respectively, and the density of the voxel is 204 / 255=0.8. Therefore, the density of the sand material is 0.7·0.8=0.56, and the density of the grass material is 0.3·0.8=0.24. For voxel 218, the set ratios of soil material and grass material are 0.6 and 0.4, respectively, and the density of the voxel is 153 / 255=0.6. Therefore, the density of the soil material is 0.6·0.6=0.36, and the density of the soil material is 0.4·0.6=0.24.

[0120] The game system 1 then calculates the above evaluation value for each material based on the weight value and the density of the material. In this embodiment, the evaluation value of a material is the sum of the density of the material calculated for each voxel, weighted according to the weight value for each voxel, for all surrounding voxels. In the example shown in Figure 16, the evaluation value of the sand material is 1·0.12+0.56·0.08=0.1648, since the material density for voxel 215 is 1 and the weight value is 0.12, and the material density for voxel 217 is 0.56 and the weight value is 0.08. Similarly, the evaluation value of the grass material is 0.24·0.08+0.24·0.32=0.096, since the material density for voxel 217 is 0.24 and the weight value is 0.08, and the material density for voxel 218 is 0.24 and the weight value is 0.32. Furthermore, the evaluation value of the soil material is calculated as follows: for 218 voxels, the material density is 0.36 and the weight value is 0.32, so 0.36 * 0.32 = 0.1152.

[0121] Game System 1 determines the vertex material based on the evaluation value of each material. Specifically, a predetermined number of materials are selected as vertex materials in order from those with the highest evaluation values. In this embodiment, the two materials with the highest evaluation values ​​are selected as vertex materials. In the example shown in Figure 16, the evaluation values ​​of the sand, grass, and soil materials are 0.1648, 0.096, and 0.1152, respectively, so the vertex materials are determined to be the sand material and the soil material. Game System 1 also calculates the ratio of the two selected materials based on the evaluation values. In this embodiment, the ratio of the two materials may be expressed as a second material ratio, which is the proportion of the second material to the whole, similar to the material mixing ratio described above. In the example shown in Figure 16, for example, if the first material is soil and the second material is sand, the second material ratio is shown as 0.1648 / (0.1648+0.1152)≈0.59. In other embodiments, the value representing the ratio of the two materials may be a value indicating the proportion of the first material. Alternatively, separate values ​​representing the proportion of each material may be used.

[0122] In this embodiment, the game system 1 generates and stores vertex data indicating the position of a vertex, the material IDs of the first and second materials set on the vertex, and the ratio of the materials. However, the method for managing the materials set on the vertices is arbitrary. In other embodiments, the vertex data may be a data structure that includes data that directly indicates the contents of the first and second materials.

[0123] As described above, in this embodiment, for each vertex, the game system 1 calculates a priority parameter (e.g., an evaluation value) for each material ID contained in the voxel data of the surrounding voxels, based on the voxel data. Then, based on the priority parameter, it selects up to a predetermined number (in this case, 2) of the highest priority material IDs and determines them as the material IDs for the vertex. Note that the specific parameters used as priority parameters are not limited to the evaluation value described above. For example, in other embodiments, an evaluation value calculated using the density of the material may be used as the priority parameter instead of using the weight value described above.

[0124] In this embodiment, the evaluation value, which is an example of a priority parameter, is calculated based on the density of multiple voxels surrounding the vertex, so that the priority of the material set on the denser voxels is increased (i.e., the evaluation value of the material increases, making it more likely to be selected). This allows the material of a vertex to be determined in accordance with the density set on the voxels.

[0125] Furthermore, in this embodiment, the evaluation value, which is an example of a priority parameter, is calculated based on the distance from the reference position (specifically, the center position) of multiple voxels surrounding the vertex to the vertex in question, so that the priority of the material set on the voxel closest to the vertex is increased. This makes it possible to determine the material of a vertex by reflecting the distance between the voxel and the vertex.

[0126] Furthermore, in this embodiment, the evaluation value, which is an example of a priority parameter, can be said to be calculated based on the material mixing ratio of multiple voxels surrounding the vertex, so that materials with a higher material mixing ratio have a higher priority. According to this, when multiple materials are set for a single voxel, the material of the vertex can be determined by reflecting the ratio of each material.

[0127] [2-5. Simplification of Vertices] In this embodiment, the game system 1 simplifies each vertex calculated as described above. Specifically, the game system 1 reduces the number of vertices by replacing some of the vertices calculated as described above with a single vertex. As will be described in detail later, the coordinates (i.e., position) and material of the replaced vertices are set based on the multiple vertices before replacement. This simplification reduces the number of vertices and polygons that make up the mesh of the voxel object, thereby reducing the amount of memory used for processing and reducing the processing load.

[0128] In this embodiment, the game system 1 simplifies by representing each vertex using SVO (Sparse Voxel Octree). Figure 17 shows an example of vertex simplification. In Figure 17, one square shown by the solid line in Figure 17(a) represents one vertex partition region. Here, a vertex partition region is a square region with the center position of the voxel as its vertex (in actual 3D space, a vertex partition region is a cube or a cuboid), and is the region with the dotted lines as its edges in Figures 15 and 16 described above. Also, in Figure 17, a vertex partition region with the letter "v" inside indicates a vertex partition region where a vertex is set.

[0129] In this embodiment, the game system 1 determines whether simplification is possible for vertices within a predetermined number of adjacent vertex division regions (four in Figure 17, eight in actual 3D space). If it is determined that simplification is possible, simplification is performed for the vertices within that predetermined number of vertex division regions.

[0130] Figure 17(a) shows the state before simplification. In the example shown in Figure 17, it is assumed that the vertex division regions within the area enclosed by the dotted line are determined to be simplifiable. At this time, the game system 1 performs simplification so that the vertices in each of the predetermined number of vertex division regions determined to be simplifiable are replaced with a single vertex (see Figure 17(b)). As a result, the vertices in the predetermined number of vertex division regions are simplified to a single vertex.

[0131] In this embodiment, the game system 1 performs simplification in multiple stages. The number of stages is arbitrary, but Figure 17 illustrates and explains up to the second stage. Figure 17(b) shows the state after the first stage of simplification, and Figure 17(c) shows the state after the second stage of simplification. In the second stage of simplification, it is determined whether or not simplification is possible for the vertices that were created by the first stage of simplification. In the example shown in Figure 17, it is determined that simplification is possible for the vertex division region enclosed by the dotted line in Figure 17(b), and as a result, the vertices in that vertex division region are simplified, resulting in the state shown in Figure 17(c). Note that the criteria for determining whether or not simplification is possible in the first stage and the criteria for determining whether or not simplification is possible in the second stage may be the same or different.

[0132] The specific method for determining whether simplification is possible is arbitrary. In this embodiment, the conditions used for the above determination are a condition relating to the shape of the voxel object and a condition relating to the material. In this embodiment, if both the condition relating to the shape of the voxel object and the condition relating to the material are satisfied, it is determined that simplification is possible, and if at least one of the conditions relating to the shape of the voxel object and the condition relating to the material is not satisfied, it is determined that simplification is not possible.

[0133] The shape-related condition is, for example, that the shape of each vertex before simplification does not change significantly from the shape of each vertex after simplification. For example, whether or not the shape of each vertex changes significantly before and after simplification can be determined by calculating an index that shows the error between the mesh before simplification and the mesh after simplification, and determining whether or not this index is below a predetermined tolerance value. Also, for example, if the shape of each vertex before simplification is hollow, but the shape of each vertex after simplification is not hollow (i.e., the information that it is hollow is lost due to simplification), the shape-related condition is determined not to be met. Whether or not the above case occurs can be determined, for example, based on the density of each voxel corresponding to the vertex division region to be judged. Also, for example, if the shape of each vertex before simplification is a shape that can only be represented by two or more vertices and cannot be represented by one vertex, the shape-related condition is determined not to be met. The same conditions as in conventional methods using SVO may be used for the shape-related conditions of the voxel object.

[0134] Furthermore, as a condition regarding materials, in this embodiment, a condition is used regarding the number of material types set for each vertex within the predetermined number of vertex division areas that are subject to simplification. Figure 18 is a diagram showing an example of a material condition. Figure 18(a) shows the case where the materials of vertices 221 to 224 are (grass), (grass), (grass and soil), and (grass and soil), respectively, and Figure 18(b) shows the case where the materials of vertices 221 to 224 are (grass and sand), (grass), (grass and soil), and (grass and soil), respectively. In this embodiment, the material condition is that the total number of material types set for each of the above vertices subject to simplification is less than or equal to a predetermined number. For example, the material condition is that it is less than or equal to the number of materials that can be set for one vertex. In this embodiment, the predetermined number is 2. For example, in the case of Figure 18(a), the total number of material types set for each of the vertices 221 to 224 subject to simplification is 2 types, grass and soil, so the material condition is satisfied. In this case, provided that the above-mentioned conditions regarding the shape of the object are met, each vertex 221-224 is determined to be simplifiable. On the other hand, in the case shown in Figure 18 (b), the total number of material types that can be set for each vertex 221-224 that is subject to simplification is three types: grass, soil, and sand, so the material conditions are not met. In this case, regardless of whether the above-mentioned conditions regarding the shape of the object are met or not, each vertex 221-224 is determined to be unsimplifiable.

[0135] In addition, in Game System 1, even if materials are strictly classified as different types, multiple types of materials may be provided that have the same set properties but different appearances. Some of these multiple types of materials may be treated as the same type when determining the conditions related to materials. For example, regarding soil materials, there may be multiple types of soil materials that have the same properties but similar appearances (e.g., texture color and pattern). In such cases, Game System 1 may treat these multiple types of soil materials as the same type when determining the conditions related to materials.

[0136] In this embodiment, similar to voxels, up to two types of materials can be set for vertices. However, in this embodiment, if the total number of material types set for each vertex subject to simplification is three or more, simplification will not be performed. That is, if the total number of material types exceeds the number of materials that can be set for a single vertex, simplification will not be performed. Therefore, even if the number of vertices is reduced through simplification, the material information set for the vertices will not be lost due to the simplification, and the material information can be maintained.

[0137] In this embodiment, the material of the simplified vertex is determined based on the material of each vertex before simplification. Specifically, the game system 1 sets one or two types of materials set for the vertex before simplification as the first material and second material of the simplified vertex. This allows the material information to be maintained. The ratio of the simplified materials is determined based on the ratio of the materials of each vertex before simplification. In this embodiment, the ratio of the simplified materials is calculated in the same way as the method for calculating the ratio of each vertex's material using the evaluation value described above. That is, the game system 1 calculates a weight value based on the distance between the simplified vertex and the vertex before simplification, and calculates an evaluation value for each material based on this weight value and the density of the material at the vertex before simplification (the evaluation value of the material described in [2-4. Determination of Vertex Materials] above can be used as the density of the material here). Then, the ratio of the materials is calculated based on the calculated evaluation value of each material.

[0138] [2-6. Mesh Generation] In this embodiment, a mesh of a voxel object is generated based on each vertex that has been simplified as described above. Figure 19 shows an example of a mesh generated based on each vertex. The squares shown in Figure 19 represent the vertex division regions described above, or vertex division regions that have been combined into one through simplification. As shown in Figure 19, the game system 1 generates a mesh in which the vertex division regions are polygons whose sides are straight lines connecting adjacent vertices. Each polygon that makes up the mesh is either a triangle or a quadrilateral.

[0139] In this embodiment, the game system 1 generates two types of meshes: a display mesh and a collision detection mesh. The display mesh is used for displaying voxel objects. The collision detection mesh is used for collision detection of voxel objects. As will be described in detail later, by using the above two types of meshes, the game system 1 can process using meshes suitable for displaying voxel objects and collision detection, respectively.

[0140] In this embodiment, the game system 1 generates the display mesh and the judgment mesh based on the SVO data described above (i.e., based on each simplified vertex). This allows for improved processing efficiency by sharing the vertex data used to generate the two types of meshes. In other embodiments, the game system 1 may not need to simplify the vertices and may generate the display mesh and / or judgment mesh based on the unsimplified vertices.

[0141] In this embodiment, the game system 1 generates a judgment mesh with a simpler shape than the display mesh. Specifically, the game system 1 ensures that the number of vertices in the judgment mesh is less than the number of vertices in the display mesh. In this embodiment, the SVO data is data that holds the data of the vertices before simplification and the data of the simplified vertices in an octree structure, but also includes data used to determine whether simplification is possible or not. This data includes, for example, data of vertices calculated as candidates for the simplified vertices (referred to as provisional vertices), and the above-mentioned index data that indicates the error between the vertices before simplification and the provisional vertices. For example, the game system 1 may use vertices from the provisional vertices whose index is less than or equal to a predetermined threshold (this threshold shall be greater than the above-mentioned tolerance value) for generating the judgment mesh. This makes it possible to reduce the number of vertices in the judgment mesh to less than the number of vertices in the display mesh. By reducing the number of vertices in the judgment mesh to less than the number of vertices in the display mesh, the processing load due to collision detection can be reduced. Furthermore, since the number of vertices in the display mesh is not excessively reduced, the appearance of voxel objects can be represented in detail.

[0142] In other embodiments, the display mesh and the judgment mesh may be generated based on the same data or on different data. Furthermore, the display mesh and the judgment mesh may have the same shape (however, even in this case, the materials set for them may be different). Also, the number of vertices in the judgment mesh may be the same as the number of vertices in the display mesh, or it may be greater than the number of vertices in the display mesh.

[0143] [2-6-1. Determining the material for the display mesh] Next, an example of a method for determining the material and appearance of the display mesh will be described. In this embodiment, the game system 1 determines a material for each polygon that makes up the display mesh. As will be described in detail later, in this embodiment, the polygons corresponding to the above polygons are drawn using up to two types of textures corresponding to up to two types of materials. Therefore, the game system 1 ensures that, for each polygon that makes up the mesh, the number of materials set for one polygon is ultimately two or less. In other embodiments, three or more types of materials may be set. For example, in embodiments where there are three or more types of materials for voxels and three or more types of materials for vertices, the same number of materials may be set for each polygon.

[0144] In this embodiment, quadrilaterals may be formed as polygons constituting the display mesh (see Figure 19). When determining the material of the display mesh, the game system 1 first divides the quadrilateral constituting the display mesh into two triangles under certain conditions. The process of dividing a quadrilateral into two triangles will be described below with reference to Figure 20.

[0145] Figure 20 shows an example of a quadrilateral that makes up a mesh being divided into two triangles. Figure 20(a) shows the quadrilateral before division, which is formed by vertices 231-234, which are part of the mesh vertices, and Figure 20(b) shows the two triangles obtained by dividing the quadrilateral. In the example shown in Figure 20, the materials set for vertices 231-234 are grass, soil, sand and grass, and grass, respectively.

[0146] In this embodiment, the game system 1 determines whether the division condition is met if the total number of material types set at each vertex of the quadrilateral is three or more. In this embodiment, the division condition is that by dividing the quadrilateral into two triangles, the total number of material types set at each vertex of the triangles can be reduced to two or less. If the division condition is met, the game system 1 divides the quadrilateral into two triangles, where the total number of material types set at each vertex is two or less. In the example shown in Figure 20, the materials set at each vertex 231-234 forming the quadrilateral are three types: grass, soil, and sand. Furthermore, if the quadrilateral is divided into a triangle formed by vertices 231, 232, and 234, and a triangle formed by vertices 231, 233, and 234, the materials set at each vertex of the former triangle will be two types: sand and grass, and the materials set at each vertex of the latter triangle will be two types: grass and soil (see Figure 20(b)). Therefore, since the division condition is met for the above quadrilateral, game system 1 divides the quadrilateral into two triangles.

[0147] Since there are two ways to divide a quadrilateral into two triangles, Game System 1 performs the above division using the method that satisfies the division condition if the division condition is satisfied for any triangle divided using at least one of the two methods. On the other hand, if the division condition is not satisfied for any triangle divided using either of the two methods, the division is performed using either method.

[0148] By performing the division as described above, game system 1 can generate two triangles, each with two or fewer materials assigned to each vertex, while minimizing the loss of information from the three or more materials assigned to each vertex of the quadrilateral. Here, as described above, each polygon constituting the mesh is rendered using up to two textures. Therefore, by performing the division described above, game system 1 can render polygons using two textures while minimizing the loss of information from the materials assigned to each vertex.

[0149] In this embodiment, the game system 1 sets polygons corresponding to the polygons after the above division has been performed. That is, the vertices of the polygons after the above division have been performed become the vertices of the polygons of the display mesh.

[0150] In this embodiment, the game system 1 determines the material of each polygon constituting the display mesh by selecting two materials if there are a total of three or more materials that can be set for each vertex of a single polygon. Figure 21 is a diagram showing an example of a method for determining the material of polygons constituting the display mesh. In the example shown in Figure 21, for vertex 241 of the triangular polygon constituting the display mesh, the first material is set to "grass", the second material to "soil", and the material ratio of the first material to the second material is set to 0.8:0.2. For vertex 242 of the same polygon, the first material is set to "grass", the second material to "sand", and the material ratio of the first material to the second material is set to 0.5:0.5. For vertex 243 of the same polygon, the first material is set to "sand", the second material to "soil", and the material ratio of the first material to the second material is set to 0.7:0.3.

[0151] If there are three or more different materials assigned to each vertex of a polygon, Game System 1 calculates a judgment value for each material. The judgment value is calculated as the sum of the ratios of each vertex to which that material is assigned. Then, Game System 1 selects the two materials with the largest judgment values ​​as the materials for that polygon. In the example shown in Figure 21, the judgment value for the grass material is 0.8 + 0.5 = 1.3, the judgment value for the sand material is 0.5 + 0.7 = 1.2, and the judgment value for the soil material is 0.2 + 0.3 = 0.5. Therefore, the materials selected for the polygon shown in Figure 21 are the grass and sand materials (see (a) in Figure 21).

[0152] The specific method for selecting the material of the polygons in the display mesh is arbitrary. In other embodiments, the material of the polygons in the display mesh may be selected by any method based on the information set at the vertices of the polygons. For example, the material of a polygon in the display mesh may be selected by identifying the material with the largest ratio at each vertex, and then selecting the material with the largest number of identified materials for each vertex as the material of that polygon.

[0153] In this embodiment, the material of the selected polygon is indicated by the material set on each vertex of the polygon. That is, when a polygon material is selected, the game system 1 changes the material set on each vertex of the polygon (i.e., the material ID included in the vertex data) to the selected material. In the example shown in Figure 21, vertices 241 and 243 are set to grass and soil and sand and soil materials, respectively, before the polygon material is selected (see Figure 21(a)). When the grass and sand material is selected as the polygon material as described above, the materials set on each vertex 241 and 243 are changed to grass and sand (see Figure 21(b)). Note that for vertex 242, the material set before selection is the same as the material of the selected polygon, so the material is not changed. As described above, when two types of materials are selected as the polygon material, the information of the third and subsequent types of materials set on each vertex of the polygon is deleted.

[0154] Furthermore, Game System 1 changes the ratio of materials set on a vertex in response to changes in the materials set on that vertex. For example, for vertex 241, the content changes from having a first material of grass and a second material of soil to having a first material of grass and a second material of sand. Here, since the proportion of sand material is 0, the material ratio of first material:second material = 1:0. In this way, the above changes formally modify the material of each vertex in order to represent the material of the polygon by the material of each vertex of that polygon.

[0155] As described above, the only material assigned to each vertex of a single polygon will be the material corresponding to the texture used for rendering, as described later. This makes it easier to perform rendering processes using textures.

[0156] It should be noted that the above changes may result in all materials being changed for a given vertex (i.e., no materials before and after the change match). For example, this might occur if the material set for a vertex before the change was soil, and the materials selected for the polygon are grass and sand. In such cases, the material ratio for that vertex may be set based on the material ratios for the other vertices of the polygon. For example, in the above example, if the first material set for one of the other vertices of the triangle polygon is grass with a material ratio of grass:sand = 1:0, and the material set for the other vertex is sand with a material ratio of sand:grass = 1:0, then the material ratio for that vertex may be set to grass:sand = 0.5:0.5. Game system 1 may also determine the material ratio for that vertex by considering the distance between that vertex and the other vertices (for example, based on a weight value that increases as the distance decreases).

[0157] As described above, in this embodiment, the game system 1 selects up to a predetermined number (in this case, 2) of material IDs set on the vertices included in each polygon (i.e., material IDs set on the vertices of the polygon corresponding to the polygon) and determines them as the material IDs for that polygon. This allows the game system 1 to reflect the materials set on the vertices in the appearance of the polygon while reducing the number of textures used during rendering.

[0158] In this embodiment, the game system 1 determines the polygon's material if the number of materials for all vertices constituting the polygon is less than or equal to the predetermined number, and if the number of materials exceeds the predetermined number, it selects a predetermined number of materials with high priority based on the priority parameter of each vertex (specifically, based on the determination value calculated based on the evaluation value described above) and determines them to be the polygon's material. This ensures that even if the total number of materials set for each vertex exceeds the predetermined number, the polygon's material can be set to a predetermined number or less, taking priority into consideration.

[0159] As described above, in this embodiment, the first and second materials set for each vertex of a polygon are changed so that there are two types of materials set for that polygon. However, when such a change is made, there is a possibility that inconsistencies may occur in the first and second materials set for vertices shared by two adjacent polygons.

[0160] Figure 22 shows an example of the materials that can be set for each vertex of two adjacent polygons. Figure 22 shows the state in which two polygons are formed by the vertices 231-234 shown in Figure 20 (Figure 20(b)). In the example shown in Figure 22, the material of the first polygon formed by vertices 231, 233, and 234 is determined to be grass and sand, so the first and second materials of these vertices should be set to grass and sand, respectively. On the other hand, the material of the second polygon formed by vertices 231, 232, and 234 is determined to be grass and soil, so the first and second materials of these vertices should be set to grass and soil, respectively. Therefore, in the example shown in Figure 22, there is a discrepancy in the materials that should be set for vertices 231 and 234, which are shared by the two polygons.

[0161] Therefore, in this embodiment, if there is a discrepancy in the materials to be set for vertices shared by two polygons, the game system 1 adds another vertex at the same position with respect to that vertex. Figure 22(b) shows an example where vertex 231' is added for vertex 231 and vertex 234' is added for vertex 234. In the example in Figure 22, the game system 1 sets the first and second materials for vertices 231 and 234 as grass and sand, respectively, according to the material of the first polygon. Also, for vertices 231' and 234', the first and second materials are set as grass and soil, respectively, according to the material of the second polygon. In this way, by formally setting two vertices as vertices shared by two polygons (i.e., generating two vertex data with the same position but different materials), it is possible to suppress discrepancies in the materials set for vertices.

[0162] Game System 1 generates a display mesh consisting of polygons whose vertices and materials have been determined as described above. Game System 1 also renders voxel objects by drawing polygons based on the material information set for each vertex (i.e., the first material and the second material).

[0163] Figure 23 shows an example of applying a texture to a polygon. Figure 23 shows a triangular polygon formed by vertices 241-243, as shown in Figure 21. The material applied to vertices 241-243 is the same as shown in Figure 21(b).

[0164] The positions of polygon vertices are rendered by mapping, which blends the textures of the first and second materials set for each vertex using the ratio of the materials set for that vertex (i.e., this ratio as the blending ratio). The textures of the first and second materials used for rendering are the textures indicated by the rendering settings information associated with each material ID associated with the data of the vertex in the material data described above (see Figure 12). In the example shown in Figure 23, the position of vertex 241 has a material ratio of grass:sand = 1:0, so rendering is performed using only the grass texture. Similarly, the position of vertex 243 has a material ratio of sand:grass = 1:0 for the first material, so rendering is performed using only the sand texture. Furthermore, the position of vertex 242 has a material ratio of grass:sand = 0.5:0.5 for the first material and sand for the second material, so rendering is performed by blending the grass texture and the sand texture with a blending ratio of 0.5:0.5.

[0165] Furthermore, for positions other than polygon vertices, Game System 1 determines the blend ratio by interpolating the blend ratio at each vertex. Then, rendering is performed by mapping, which blends the textures of the two materials set for each vertex based on the interpolated blend ratio. Note that the specific interpolation method is arbitrary. As an example, the blend ratio between vertices is linearly interpolated. In Figure 23, positions where the grass material texture is applied at a high ratio are shown in white, and positions where the sand material texture is applied at a high ratio are shown in black. In the example shown in Figure 23, the grass texture is applied at vertex 241, the blend ratio of the sand texture increases as you move towards vertex 243, the blend ratio of grass and sand becomes 1:1 at vertex 242, and only the sand texture is applied at vertex 243. In this way, by blending the two textures set for a polygon (i.e., set for each vertex of the polygon) at a blend ratio corresponding to the ratio of materials and rendering them, the appearance at the boundary between different materials in the display mesh can be made natural. This makes the appearance of a display mesh with multiple types of materials set to it look natural.

[0166] [2-6-2. Determining the material of the mesh used for judgment] Next, an example of a method for determining the material of the detection mesh will be described. As will be explained in detail later, in this embodiment, collision detection of voxel objects is performed using the detection mesh, and processing may be performed according to the material of the voxel object that has been detected as having a collision. Therefore, in this embodiment, the material of the detection mesh is also determined.

[0167] In this embodiment, the game system 1 ensures that for each polygon constituting the judgment mesh, only one type of material is assigned to each polygon. Specifically, the game system 1 determines the material assigned to a polygon of the judgment mesh based on the material information assigned to the vertices of that polygon (i.e., the first and second materials and the material ratio information).

[0168] Figure 24 shows an example of a method for determining the material of the polygons that make up the judgment mesh. Figure 24 shows an example of determining the material for the triangular polygon formed by each vertex 241-243 shown in Figure 21. The material set for each vertex 241-243 is as shown in (a) of Figure 21.

[0169] When determining the material of a polygon, the game system 1 calculates a determination value for each material set for each vertex of the polygon. In this embodiment, the method for calculating the determination value is the same as the method for calculating the determination value used to select the material set for the polygons of the display mesh. The specific method for calculating the determination value is arbitrary. In other embodiments, the determination value may be calculated by any method based on the information set for the vertices of the polygons of the determination mesh.

[0170] In the example shown in Figure 24, the judgment values ​​for each material are the same as in Figure 21 above: the judgment value for grass material is 1.3, the judgment value for sand material is 1.2, and the judgment value for soil material is 0.5. Therefore, the grass material is selected as the material for the polygon shown in Figure 24.

[0171] As described above, in this embodiment, the game system 1, for each polygon, selects up to a predetermined number (here, 1) of material IDs from the material IDs set at the vertices included in the polygon (i.e., material IDs set at the vertices of the polygon corresponding to the polygon) and determines them as the material IDs for that polygon. This allows the game system 1 to keep the number of materials set on the judgment mesh below a predetermined number. This makes it possible to suppress the complexity of processing according to the type of material, which is performed according to the result of collision judgment using the judgment mesh. Note that the method for determining the material of the polygons of the judgment mesh is arbitrary and is not limited to the above. In other embodiments, the material of the polygons of the judgment mesh may be determined by any method based on the information set at the vertices of the polygon.

[0172] Furthermore, in this embodiment, up to two types of materials can be set for the polygons of the display mesh, while only one type of material can be set for the polygons of the detection mesh. This allows for a natural appearance using two types of textures for the polygons of the display mesh, and reduces the complexity of the processing performed on the detection mesh in response to the collision detection results. In other embodiments, the types of materials that can be set for the polygons of the display mesh and the detection mesh are arbitrary. The number of materials that can be set for the polygons of the display mesh and the number of materials that can be set for the polygons of the detection mesh may both be multiple, the same, or different.

[0173] In this embodiment, the number of material types set for a single voxel is limited to two, and the number of material types set for a single polygon in the display mesh is also limited to two. This allows the material information set in the voxel data to be reflected in the material of the display mesh while keeping the amount of data in the voxel data down. Furthermore, in this embodiment, the number of material types set for vertices that are set based on the voxel data is also limited to two (see Figure 16). This allows two types of materials to be set for vertices generated during the process of obtaining the display mesh from the voxel data, so that the material information set in the voxel data is reflected in the display mesh without any loss of material information during the process.

[0174] In other embodiments, the game system 1 may set different materials for vertices used to generate the display mesh and vertices used to generate the judgment mesh, with respect to the vertices set based on the voxel data. For example, the game system 1 may set up to two types of materials for vertices used to generate the display mesh, as described above, and set one type of material for vertices used to generate the judgment mesh. Then, for the polygons of the display mesh, two types of materials may be set in the same way as described above, and for the polygons of the judgment mesh, one type of material may be set based on one type of material set for each vertex of the polygon. When one type of material is set for vertices used to generate the judgment mesh, the material with the largest judgment value calculated for each material may be set as the material for that vertex. In the above, as in this embodiment, the number of types of materials set for one polygon in the display mesh can be limited to two, and the number of types of materials set for one polygon in the judgment mesh can be limited to one. Therefore, the material information set in the voxel data can be reflected in the display mesh, and the complexity of the processing performed according to the result of collision judgment using the judgment mesh can be suppressed.

[0175] As described above, in this embodiment, a display mesh and a detection mesh may be set for a single voxel object. However, depending on the game situation, it is not necessary for both a display mesh and a detection mesh to be set for a single voxel object simultaneously (for example, it is not necessary for both to be set in the processing of one frame). For example, the detection mesh may be generated in the range where collision detection is performed within the game space, and not generated in the range where collision detection is not performed. As an example, the game system 1 may generate a detection mesh for voxel objects within a predetermined range centered on the player character, and not generate a detection mesh for voxel objects outside that predetermined range, but only generate a display mesh.

[0176] Furthermore, the game system 1 may store data related to the generated mesh in memory for display meshes, and in frames after the mesh has been generated, use this data without re-executing the mesh generation process, except for the updated range. This reduces the processing load required to generate display meshes. Also, for collision detection meshes, the data related to the generated mesh may not be stored in memory, and meshes may be generated sequentially as needed (for example, whenever collision detection is required). This saves memory space used for mesh generation.

[0177] The above describes a method for generating each mesh (i.e., the display mesh and the judgment mesh) based on the modified voxel data when the voxel data is changed from its initial state. This method can also be used, for example, at the start of a game when generating each mesh based on the initial voxel data. However, the meshes based on the initial voxel data do not necessarily need to be generated based on the initial voxel data at the start of the game; they may be prepared in advance before the game starts.

[0178] In other embodiments, only one of the display mesh and the judgment mesh described above may be set (i.e., the same mesh may be used for both display and judgment). In this case, the display mesh may be used as both the display mesh and the judgment mesh, or the judgment mesh may be used as both the display mesh and the judgment mesh. When the judgment mesh and the display mesh are set separately, appropriate meshes can be used according to their respective purposes, whereas when drawing and collision judgment are shared on the same mesh, the processing load for setting the mesh can be reduced.

[0179] [2-7. Processes that generate in-game effects by consuming voxel objects] Next, with reference to Figures 25 to 38, an example of a process that generates in-game effects depending on the material by consuming voxel objects will be described. In the following, terrain objects such as the ground and walls will be assumed to be voxel objects. In this embodiment, when a player character performs an action, an in-game effect occurs as a result of collision detection on the voxel object. In this embodiment, if the material of the voxel object is a specific material, an in-game effect corresponding to that specific material will be generated on the voxel object. The following description will explain examples of when the above in-game effects and actions occur.

[0180] The above-mentioned "in-game effect" refers to any change that occurs in the game, such as a change caused by "processing that reflects the results of contact between objects." The "in-game effect" only needs to be based on collision detection between a detection mesh and a detection shape corresponding to the object to be detected based on game processing (for example, a detection area set on an object such as a player character), and the above effect may occur on the object corresponding to the detection mesh, or on the object corresponding to the object to be detected. The content of the "in-game effect" may be associated with the material set on the polygon that was detected as a collision in the collision detection that causes the effect to occur (i.e., the content of the effect may be determined by the material).

[0181] Furthermore, the "in-game effects" mentioned above are arbitrary effects that occur as the size of a voxel object decreases in accordance with the progress of the game. For example, if the material of the voxel object is a specific material, the in-game effects corresponding to that specific material will occur on the voxel object. For example, the voxel object is a fragment object generated when it is pulled out from the terrain object by the player character's actions, and the in-game effects associated with the material of the fragment object will occur. When the size of the fragment object becomes smaller than a predetermined standard due to the in-game effects, the in-game effects will also end.

[0182] Figure 25 shows an example of a game image representing a player character moving over a terrain object. In the example shown in Figure 25, the material of polygons in a certain region 251 of the terrain object's detection mesh is set to "lava". The material of polygons in region 252 of the terrain object's detection mesh, excluding region 251, is set to "rock". The voxel corresponding to region 251 has its first material ID set to "lava" and its material mixing ratio set to 0 (i.e., the only material set for the voxel is "lava").

[0183] In the example shown in Figure 25, the game system 1 performs collision detection between the terrain object and the player character 201 using a detection mesh. Specifically, it performs collision detection to determine whether the detection mesh of the terrain object and the detection area set for the player character (for example, an area of ​​a predetermined shape set based on the player character's position) come into contact. If a collision is detected between the polygon whose material is lava and the player character 201, the system performs a process to reduce the player character 201's health as a game action. In addition, in the above case, the system performs a process to cause the player character 201 to perform a predetermined reaction.

[0184] In this embodiment, the lava material is assumed to have a property that reduces the health of the player character it comes into contact with (for example, a property that its temperature is above a predetermined value) as part of the property information included in the material data described above. The game system 1 generates an in-game action (in the above example, a reduction in the player character's health) based on the property information corresponding to the material set on the polygon in the collision mesh where collision has been detected by collision detection.

[0185] Furthermore, if a collision is detected between a polygon whose material is rock and the player character 201, the process of reducing the player character's health is not executed. Also, based on the collision, the player character 201 is controlled so that it cannot enter the inside of the polygon. Therefore, the player character can stand on or walk on the polygon. In this way, in this embodiment, by setting a material for each polygon, the game system 1 can execute different processes depending on which part of the voxel object another object comes into contact with. Furthermore, the content of the executed process can be made according to the type of material.

[0186] Furthermore, the content of the processing performed when a collision between a voxel object and another object is detected is arbitrary. For example, if the other object is a moving object such as a player character or an enemy character, the processing may include outputting the sound of the object's footsteps or displaying an effect (for example, an effect representing dust or splashes of water) at the point of contact. In this case, the game system 1 can make the footsteps sound different or the effects different depending on the type of material set on the polygon of the part of the voxel object that made contact.

[0187] Figure 26 is an example of a game image showing the player character 201 pulling out a fragment object 252 from a terrain object 202. As shown in Figure 26, in this embodiment, the user can cause the player character 201 to perform an action (referred to as a "pulling action") in which the player character 201 grasps the terrain object 202 and pulls out a part of it as a fragment object 252 by inputting a predetermined operation. The game system 1 erases a part of the terrain object 202 and generates a fragment object 252 as an in-game effect resulting from the pulling action.

[0188] For example, when a pull-out action is performed, the game system 1 executes the following process. For example, if the user inputs an operation to make the player character 201 perform a pull-out action, the game system 1 makes the player character 201 perform an action such as digging forward and grabbing, and performs a collision check. If a collision is detected between the player character 201 performing the pull-out action and the terrain object 202, an update range 253 is generated based on the position and orientation of the player character 201. For example, the update range 253 is generated in a predetermined direction (for example, forward) relative to the player character 201. The shape and size of the update range 253 may be predetermined according to the type and level of the action of the player character 201. The game system 1 also reduces the density of voxels corresponding to the update range 253. Then, by updating the mesh in accordance with the reduction in voxel density, the terrain object 202 is deformed so that the part within the update range 253 is erased (see the lower diagram of Figure 26). In this embodiment, the density is reduced for each voxel corresponding to the update range 253, but the voxels whose density is reduced may be at least a portion of the voxels corresponding to the update range 253.

[0189] Furthermore, while the above assumes that the voxel object corresponding to the update range 253 is unconditionally deformed by the pull action, in other embodiments, the deformation of the voxel object corresponding to the update range 253 may be conditional on the amount of damage set on the voxel. For example, instead of unconditionally deforming the voxel object corresponding to the update range 253, the game system 1 may increase the amount of damage set on the voxel corresponding to the update range 253 and decrease the density of the voxel when the amount of damage exceeds a predetermined value. In this case, the amount of increase in damage may be determined according to the action performed on the voxel object.

[0190] Furthermore, the game system 1 generates a fragment object 252 representing the erased portion of the terrain object 202. For example, as illustrated in the lower diagram of Figure 26, the game system 1 generates the fragment object 252 in the player character 201's hand based on the pull action. The fragment object 252 is a voxel object and may be generated to have a shape corresponding to the erased portion of the terrain object 202, or it may have a predetermined shape. A unique voxel space is defined for the fragment object 252, which is different from the voxel space of the voxels corresponding to the terrain object 202, etc.

[0191] Game system 1 determines the material of the fragment object 252. For example, the material of the fragment object 252 is determined based on the material set for the polygons in the detection mesh of the terrain object 202 that come into contact with the update range 253. The material of the fragment object 252 is determined to be the same as one of the materials set for the polygons in the detection mesh that come into contact with the update range 253. This allows the material of the fragment object 252 to be the same as the material of the erased portion of the terrain object 202. As is clear from the above explanation, the fragment object 252 is not actually part of the terrain object 202. However, because it is generated along with the erasure of a portion of the terrain object 202, and the material of the erased portion of the terrain object 202 is inherited by the fragment object 252, it is possible to give the user the impression that the player character 201 has extracted a portion of the terrain object 202 through a pull action. As another example, the material of the fragment object 252 may be determined based on the material set for the voxel data in the voxels that come into contact with the update range 253.

[0192] In this embodiment, each type of material provided is assigned a priority, and the game system 1 determines the material with the highest priority (for example, the single material with the highest priority) among the materials set for each polygon of the judgment mesh within the update range 253 as the material for the fragment object 252. If the judgment mesh within the update range 253 includes polygons with different types of materials, it may be difficult for the user to predict what material the fragment object 252 will have, and the above-mentioned inconvenience may occur against the user's will. In contrast, in this embodiment, by assigning a priority to the material to be assigned to the fragment object 252, the possibility of the above-mentioned inconvenience occurring can be reduced. In other embodiments, the game system 1 may determine the material with the highest material mixing ratio among the materials set for each polygon of the judgment mesh within the update range 253 as the material for the fragment object 252. Furthermore, in addition to priority, settings may be made to exclude specific materials from the extraction target. For example, if the judgment mesh within the update range 253 includes polygons with the material of rock and polygons with the material of lava, and the material of the fragment object 252 is set to lava, then when the player character 201 grabs the fragment object 252 through the pull action, the player character 201's health will decrease (as explained in Figure 25, the lava material is set to have the property of reducing the player character 201's health upon contact). For this reason, materials that inflict damage, such as lava, may be excluded from the pull target so that they are not included in the material of the fragment object 252.

[0193] Figure 27 is an example of a game image showing how fragment objects 254 are generated when the player character 201 destroys a terrain object 202. As shown in Figure 27, in this embodiment, the user can make the player character 201 perform a punch action by inputting a predetermined operation. The game system 1, as an in-game effect resulting from the punch action, erases a portion of the terrain object 202 and generates fragment objects 254, similar to the case of the pull-out action described above. Specifically, it deforms the terrain object 202 so that a portion of it is erased. In the case of a punch action, unlike the pull-out action described above, after the punch action, the fragment objects 254 are not grasped by the player character 201, but are placed around the location where the punch action was performed (see the lower part of Figure 27).

[0194] When a punch action is performed, the game system 1 specifically executes the following processes. For example, if the user inputs an operation to make the player character 201 perform a punch action, the game system 1 makes the player character 201 perform a punch action toward the front and performs a collision check. If a collision is detected between the player character 201 performing the punch action and the terrain object 202, an update range 255 is generated based on the position and orientation of the player character 201. For example, the update range 255 is generated in a predetermined direction (for example, forward) relative to the player character 201. The position, shape, and size of the update range 255 due to the punch action may be the same as or different from the update range 253 due to the pull-out action. The game system 1 then reduces the density of voxels corresponding to the update range 255. As a result, similar to the pull-out action, the terrain object 202 is deformed by the punch action so that the portion within the update range 255 is erased (see the lower diagram of Figure 27). Furthermore, similar to the pull-out action, the game system 1 may, instead of unconditionally deforming the voxel objects corresponding to the update range 255, increase the amount of damage set for voxels within the update range 255 in accordance with the punch action, and decrease the density of the voxel in question when the amount of damage exceeds a predetermined value. In addition, the voxels whose density is reduced by the punch action may be at least a portion of the voxels corresponding to the update range 255.

[0195] Furthermore, game system 1 generates fragment objects 254 corresponding to the erased portion of terrain object 202. That is, based on the punch action, game system 1 generates the fragment objects 254 without the player character 201 holding them (for example, by placing them around the location where the punch action occurred). The fragment objects 254 are voxel objects and may be generated to have a shape corresponding to the erased portion of terrain object 202, or they may have a predetermined shape.

[0196] Game system 1 determines the material of the fragment object 254. The material of the fragment object 254 is determined based on the material set for the polygons in the detection mesh of the terrain object 202 that come into contact with the update range 255. The material of the fragment object 254 is determined to be the same as one of the materials set for the polygons in the detection mesh that come into contact with the update range 255. This makes it possible to make the material of the fragment object 254 the same as the material of the erased part of the terrain object 202. In addition, by generating the fragment object 254 along with the erasure of a part of the terrain object 202, and inheriting the material of the erased part of the terrain object 202 to the fragment object 254, it is possible to give the user the impression that a part of the terrain object 202 destroyed by the punch action of the player character 201 was generated as the fragment object 254.

[0197] In this embodiment, the material of the fragment object 254 is determined to be the material that has the greatest decrease in voxel density among the materials set for polygons in the determination mesh that come into contact with the update range 255. This makes it possible to generate a fragment object 255 that more accurately reflects the material configuration of the part of the terrain object 202 that has been erased by the punch action.

[0198] The method for determining the material of the fragment object 252 or 254 extracted by the above-described pull-out action or punch-out action is arbitrary. For example, the method for determining the material of the fragment object 252 or 254 may be the same for both the pull-out action and the punch-out action. Alternatively, for example, the material set on the most polygons among the materials set on each polygon of the judgment mesh within the update range 253 or 255 may be determined as the material of the fragment object 252 or 254. Alternatively, for example, the material set on polygons that satisfy a predetermined condition (for example, polygons at the position that come into contact with the hand of the player character 201 performing the pull-out action or punch-out action) among the polygons of the judgment mesh within the update range 253 or 255 may be determined as the material of the fragment object 252 or 254. In other embodiments, multiple types of materials may be set on the fragment object 252 or 254.

[0199] In this embodiment, the user can perform various actions using the fragment objects generated by extracting them from terrain objects as described above. For example, in this embodiment, if the material of a fragment object is a specific material, an in-game effect corresponding to that specific material is generated for the fragment object, and the size of the fragment object is reduced as the game progresses. Examples 1 to 6 of the in-game effects generated by the above-mentioned fragment objects are described below.

[0200] (Example 1) As a first example, we will describe an example in which player character 201 performs a flying action (hereinafter referred to as the "flying action") while holding the fragment object generated as described above. Figure 28 is a diagram showing an example of a game image representing player character 201 performing a flying action while holding the fragment object 256 in the game space.

[0201] In this embodiment, if the material of the fragment object extracted from the terrain object as described above is composed of a flying stone (rocket stone) (fragment object 256 shown in Figure 28), the user can have the player character 201 perform a flying action while holding the fragment object 256. The user can also have the player character 201 perform an action to pick up the fragment object 256 that was generated in response to the punch action and placed on the ground, by a predetermined input. Furthermore, the player character 201 will be in a state of holding the fragment object 256 as a result of the extraction action or the action of holding the fragment object 256 after the punch action (see the upper diagram of Figure 28). In this state, the game system 1 will cause the player character 201 to float in the air in the game space while holding the fragment object 256 as a flying action in response to the user's input, and perform an action to ascend in the direction corresponding to the input (see the lower diagram of Figure 28).

[0202] In the first example, if the material of the fragment object 256 is a levitation stone, the in-game effect corresponding to the levitation stone is applied to the fragment object 256, causing it to rise in the air. Specifically, while the player character 201 is holding the fragment object 256, a force that causes it to rise in game space is constantly applied to the fragment object 256. The user can then control the direction of flight by performing a predetermined input (for example, tilting the analog stick 32 or 52) while the player character 201 holding the fragment object 256 is rising in the air. Furthermore, while the player character 201 is flying in the air holding the fragment object 256, the user can make the player character 201 release the fragment object 256 by performing a predetermined input (for example, pressing the first R button 60). Furthermore, the user can cause the player character 201 to perform an action of throwing the fragment object 256 they are holding by inputting a predetermined operation (for example, pressing the ZR button 61). In this case, the player character 201 loses the upward force of the fragment object 256 and falls towards the ground due to gravity acting in the game space. Also, the fragment object 256 released from the player character 201 loses the effect of rising in the air and falls towards the ground due to gravity acting in the game space.

[0203] As shown in Figure 29, the size of the fragment object 256, which is experiencing the effect of rising through the air, decreases as flight time elapses. When the size of the fragment object 256 falls below a predetermined standard (for example, 10% of its initial size), the fragment object 256 is removed from the game space, and the effect of rising through the air ends. Therefore, even if the player character 201 is holding the fragment object 256, if the size of the fragment object 256 falls below the predetermined standard, the fragment object 256 will lose its ability to rise through the air.

[0204] As described above, a unique voxel space is defined for the fragment object 256 extracted from the terrain object as a result of the extraction. In the first example, the state in which the fragment object 256 has been extracted and its unique voxel space defined is taken as the initial size of the fragment object 256 (i.e., size is 100%), and the size of the fragment object 256 is reduced by linear scaling at a predetermined rate according to the passage of time during which the effect of rising in the air is generated. Here, the scaling is a process that reduces the size of the fragment object 256 by reducing the size of the unique voxel space defined for the fragment object 256 within the game space. In other words, the scaling is a process that reduces all voxels contained in the unique voxel space together and shrinks the unique voxel space itself, and the voxel data in the voxel does not change.

[0205] As mentioned above, the fragment object 256 extracted from the terrain object is set to its initial size of 100%. Regardless of the size of the fragment object 256 extracted from the terrain object, its size will be set to the initial size of 100% in the state in which it was extracted. Furthermore, as time passes while the fragment object 256 is generating the effect of rising in the air, its size will be linearly scaled down at a predetermined rate, resulting in a fixed flight time for the player character 201, regardless of the size of the fragment object 256 extracted from the terrain object. In the first example, if the player character 201 releases the fragment object 256 during flight, the fragment object 256 will be placed in the game space in a reduced state, with its size consumed according to the flight time up to that point. Then, when the player character 201 again possesses the fragment object 256 in the reduced state, the player character 201 can obtain the effect of ascending through the air using the fragment object 256 until the remaining size from the reduced state falls below a predetermined standard. In this case, if the remaining size of the fragment object 256 is smaller than the initial size, the flight time during which the player character 201 can obtain the effect of ascending through the air by using the fragment object 256 will be shorter compared to the case of the initial size.

[0206] Thus, in the first example, if the material of the fragment object is a levitation stone, the fragment object will be given an in-game effect corresponding to the levitation stone, which is the effect of rising into the air, and the size of the fragment object will decrease as time passes while it is flying. This allows the player character to perform an action such as extracting a fragment object from a terrain object, and depending on the material of the extracted object, an effect that would occur if the object were consumed can be generated.

[0207] In the description of the first example above, an example was used in which the player character 201 obtains an in-game effect generated by the fragment object 256 by the player character 201 possessing the fragment object 256. However, the manner in which the player character 201 obtains the in-game effect is arbitrary. For example, the player character 201 may obtain the effect by standing on the fragment object 256 based on a predetermined input (for example, pressing the ZL button 39), which generates an effect of rising into the air from the fragment object 256.

[0208] Furthermore, in the description of the first example above, an example was used in which the size of the fragment object 256 decreases as the flight time of the fragment object 256, which is in a state where it is gaining the effect of rising in the air, elapses. However, the size of the fragment object 256 may change based on other parameters. For example, the size of the fragment object 256 may decrease depending on the flight distance or the ascent distance of the fragment object 256. In this case, when the player character 201 using the fragment object 256 is stopped and hovering in the air, the consumption that reduces the size of the fragment object 256 does not progress, making it possible to remain in the air for a relatively long time. Alternatively, the size of the fragment object 256, which is in a state where it is gaining the effect of rising in the air, may be reduced in stages. In this case, the reduction by scaling described above may be performed each time the flight time, flight distance, ascent distance, etc. of the fragment object 256, which is in a state where it is gaining the effect of rising in the air, reaches a predetermined threshold.

[0209] Furthermore, in the description of the first example above, an example was used in which the size of the fragment object 256, which is in a state where it is gaining the effect of rising in the air, decreases by a predetermined percentage, but it may decrease in other ways. For example, the size of the fragment object 256 may decrease by a predetermined amount in accordance with the amount of the effect obtained. In this case, the time and distance over which the player character 201 can obtain the effect will be longer the larger the size of the fragment object 256 taken from the terrain object, thus allowing for a rich variety of effects depending on the size of the fragment object 256 used by the player character 201. As another example, the size of the fragment object 256 may decrease by a predetermined percentage or by a predetermined amount in accordance with the number of times the effect has been obtained (for example, the number of times it has flown). In addition, the flight time, flight distance, and ascending distance using the fragment object 256 may be increased or decreased depending on the type of material of the fragment object 256, the method of use of the fragment object 256 by the player character 201, the abilities of the player character 201, etc.

[0210] Furthermore, in the description of the first example above, an example was used in which the fragment object 256 produces an effect that causes it to rise into the air, but other effects may also occur. For example, if the material of the fragment object 256 is a levitation stone, the in-game effect corresponding to the levitation stone may be such that the fragment object 256 can fly freely in the air, and the size of the fragment object may be reduced as time passes while it is flying.

[0211] (Example 2) As a second example, we will describe an example in which the player character 201 performs an action (hereinafter referred to as the "sliding action") in which the player character 201 holds the fragment object generated as described above and slides along a predetermined path set in the game space. Figure 30 is a diagram showing an example of a game image in which the player character 201 holds the fragment object 257 and performs a sliding action along a wire rope 301 provided in the game space.

[0212] In this embodiment, if the material of the fragment object extracted from the terrain object as described above is composed of a material that can be held by the player character 201 (fragment object 257 shown in Figure 30), the user can have the player character 201 perform a sliding action while holding the fragment object 257. Here, the holdable material is a material whose property information included in the material data described above includes the property that it can be extracted from a terrain object which is a voxel object, and also the property that it has hardness that allows it to maintain its shape for a certain period of time. For example, the holdable material is a solid material such as rock, soil, sand, wood, concrete, metal, or rock slab, excluding materials that have liquid properties or materials that significantly reduce the health of the player character that comes into contact with them. As described above, the player character 201 will be in a state of holding the fragment object 257 as a result of the extraction action or as an action taken with the fragment object 257 after the punch action. In this state, the game system 1, in response to user input, causes the player character 201 to hang from a wire rope 301, which is installed using the elevation difference of the terrain in the game space, while holding the fragment object 257, thereby performing a sliding action on the wire rope 301.

[0213] In the second example, if the material of the fragment object 257 is the holdable material described above, an in-game effect corresponding to that material is generated on the fragment object 257 that causes it to move along a predetermined path (wire rope 301) set in the game space. Specifically, when the player character 201 is holding the fragment object 257 and hanging from the wire rope 301, a sliding force is constantly applied to the fragment object 257 along the wire rope 301. The user can accelerate or decelerate the sliding speed of the player character 201 holding the fragment object 257 by performing a predetermined input (for example, tilting the analog stick 32 or 52) while the player character 201 is sliding. Furthermore, the user can control the movement of the player character 201 to jump off the wire rope 301 by performing a predetermined input (for example, pressing the A button 53) while the player character 201 holding the fragment object 257 is sliding. Furthermore, the user can control the player character 201's movements to release the fragment object 257 it is holding and detach from the wire rope 301 by performing a predetermined operation input (for example, pressing the ZL button 39). Additionally, the user can control the player character 201's movements to perform a jump action and detach from the wire rope 301 by performing a predetermined operation input (for example, pressing the A button 53).

[0214] As shown in Figure 30, the size of the fragment object 257, which is sliding along the wire rope 301, decreases in proportion to the sliding distance. When the size of the fragment object 257 falls below a predetermined standard, the fragment object 257 is removed from the game space, and the sliding effect ends. Therefore, if the size of the fragment object 257 falls below a predetermined standard while sliding, the player character 201 loses the ability to slide along the wire rope 301 and falls from the wire rope 301.

[0215] In the second example, as in the first example described above, the size of the fragment object 256 is reduced by linearly scaling it at a predetermined rate according to the sliding distance (i.e., the parameter obtained by multiplying the sliding speed and sliding time) that is generating the sliding effect, using the state of the extracted fragment object 257, for which an intrinsic voxel space has been defined, as the initial size. Therefore, in the second example, the size of the fragment object 257 does not decrease simply because the player character 201 possesses the fragment object 257, nor does the size of the fragment object 257 decrease during the period when the player character 201 is temporarily away from the wire rope 301 and jumping while performing the sliding action, nor does the size of the fragment object 257 decrease during the period after the player character 201 has released the fragment object 257 and left the wire rope 301 to end the sliding action.

[0216] Furthermore, in the second example, in addition to the sliding distance, the size of the fragment object 257 is reduced based on the hardness of the material of the fragment object 257. Specifically, the softer the material of the fragment object 257, the larger the percentage by which the size of the fragment object 257 is reduced. As a result, when the material of the fragment object 257 is soft, the sliding distance that the player character 201 can achieve by using the fragment object 257 will be shorter compared to when the material is hard. Also, if the material of the fragment object 257 is set to be indestructible, the size of the fragment object 257 may not be reduced. Therefore, the variations in the effects obtained can be greatly increased depending on the type of material of the fragment object 257 used by the player character 201.

[0217] Thus, in the second example, if the material of the fragment object is a material that can be held by the player character 201, an in-game effect corresponding to that material is generated on the fragment object, causing it to slide along a predetermined path, and the size of the fragment object is reduced according to the sliding distance. This allows the player character to perform an action such as extracting a fragment object from a terrain object, and generates an effect that occurs when the extracted object is consumed, depending on the material of that object.

[0218] In the description of the second example above, an example was used in which the size of the fragment object 257 decreases according to the sliding distance of the fragment object 257 in a state where the sliding effect is obtained. However, the size of the fragment object 257 may change based on other parameters. For example, the size of the fragment object 257 may decrease according to the sliding time of the fragment object 256. Alternatively, the size of the fragment object 257 in a state where the sliding effect is obtained may be reduced in stages. In this case, the scaling reduction described above may be performed each time the sliding distance, sliding time, etc. of the fragment object 257 in a state where the sliding effect is obtained reaches a predetermined threshold.

[0219] Furthermore, in the description of the second example above, an example was used in which the size of the fragment object 257 in the state where the sliding effect is obtained decreases by a predetermined percentage, but it may also decrease in other ways. For example, similar to the first example, the size of the fragment object 257 may decrease by a predetermined amount in accordance with the obtaining of the above effect, or the size of the fragment object 257 may decrease by a predetermined percentage or by a predetermined amount in accordance with the number of times the above effect is obtained (e.g., the number of slides). In addition, the sliding distance, sliding time, etc. using the fragment object 257 may be increased or decreased depending on the type of wire rope 301, the abilities of the player character 201, etc.

[0220] (Example 3) As a third example, we will describe an example in which player character 201 performs an action (hereinafter referred to as the "movement action") by riding on a fragment object generated as described above and moving across a terrain object. Figure 31 is a diagram showing an example of a game image representing player character 201 performing a movement action on a fragment object 258 in the game space.

[0221] In this embodiment, if the material of the fragment object extracted from the terrain object as described above is composed of a material that the player character 201 can stand on (fragment object 258 shown in Figure 31), the user can cause the player character 201 to perform a movement action by standing on the fragment object 258 and moving across the terrain object. Here, the material that can be stood on is a material that, as property information included in the material data described above, has the property that it can be extracted from the terrain object, which is a voxel object, and also has the property that it has the hardness that allows the player character 201 to stand on it without sinking into the inside of the fragment object. For example, the material that can be stood on is a solid material such as rock, soil, sand, wood, concrete, metal, or rock slab, excluding materials that have the properties of a liquid or materials that have the property of significantly reducing the health of the player character that comes into contact with it. The user can also cause the player character 201 to perform an action of standing on the fragment object 258 that is generated in response to the punch action and placed on the ground by a predetermined operation input. Furthermore, the user can, by inputting a predetermined operation, cause the player character 201 to place the fragment object 258 extracted by the above-mentioned extraction action onto the terrain object, and then stand on the fragment object 258 (see the upper diagram in Figure 31). In this state, the game system 1, as a movement action corresponding to the user's operation input, causes the player character 201 to stand on the fragment object 258 and move along the terrain object 202 in the direction of movement corresponding to the operation input (see the lower diagram in Figure 31).

[0222] In the third example, if the material of the fragment object 258 is a material that can be stood on, an in-game effect corresponding to that material is applied to the fragment object 258, causing the player character 201, while standing on the fragment object 258, to move on the terrain object 202 based on user input. Specifically, when the player character 201 is standing on the fragment object 258, a force that moves the player character 201 on the terrain object 202 is applied to the fragment object 258. The user can then control the direction and speed of movement by performing predetermined inputs (for example, tilting the analog sticks 32 or 52) while the player character 201 is standing on the fragment object 258. Furthermore, the user can make the player character 201 perform a jump action while standing on the fragment object 258 by performing predetermined inputs (for example, pressing the A button 53). Furthermore, the user can cause the player character 201 to dismount from the fragment object 258 by performing a predetermined input (for example, pressing the ZL button 39). In this case, the player character 201 loses the power to move due to the fragment object 258 and lands at the position where the player character 201 dismounted. Also, the fragment object 258, from which the player character 201 dismounted, ceases to move on the terrain object 202 as its movement effect ends, and stops moving at the position where the player character 201 dismounted.

[0223] As shown in Figure 32, when a fragment object 258 is moving on a terrain object 202, its size decreases according to the distance moved. When the size of the fragment object 258 falls below a predetermined standard, the fragment object 258 is removed from the game space, and the movement effect ends. For example, in the third example, as will be described later, the fragment object 258 decreases in size by becoming thinner according to the distance moved. In this case, the game system 1 may remove the fragment object 258 from the game space and end the movement effect when the thickness of the fragment object 258 falls below a predetermined standard. In the third example, since the consumption of the fragment object 258 depends on the distance moved, even if the player character 201 is standing on the fragment object 258, if the player character is not moving on the terrain object 202, the consumption that reduces the size of the fragment object 258 will not progress. Thus, in the third example, the size of the fragment object 258 is reduced as compensation for obtaining the in-game effect from the fragment object 258.

[0224] As described above, a unique voxel space is defined for the fragment object 258 extracted from the terrain object, triggered by the extraction. In the third example, an update range for the fragment object 258 is set in the game space based on the position of the terrain object 202, and the size of the fragment object 258 is reduced by decreasing the density of voxels in the voxel data of the fragment object 258 that correspond to the update range.

[0225] For example, as shown in Figure 32, when the fragment object 258 moves with at least a portion of its lower surface in contact with the surface of the terrain object 202, a thin plate-shaped update range 259, which includes at least the entire lower surface, is set in the intrinsic voxel space based on the point of contact. Then, as described above, an SDF corresponding to the update range 259 is set, and the deletion of each voxel is controlled by rewriting the density of each voxel based on the SDF of each voxel in the fragment object 258. As a result, the portion of the lower surface of the fragment object 258 corresponding to the update range 259 is deformed so that it is deleted, and the size of the fragment object 258 is reduced as its thickness decreases due to the removal of material from its lower surface.

[0226] In the third example, each time the parameter based on the above-mentioned movement effect reaches a predetermined cumulative amount, the process of trimming the bottom surface is executed based on the update range 259 described above. For example, in the examples shown in Figures 31 and 32, each time the movement distance of the fragment object 258 on which the player character 201 is placed reaches a predetermined movement distance (i.e., the threshold for executing the trimming process), the process of trimming the bottom surface of the fragment object 258 is executed in stages.

[0227] As a first example, when the above-mentioned scraping process is performed, the fragment object 258 may have a certain thickness scraped off from its bottom surface. In this case, the distance that the fragment object 258 with the player character 201 on it can move will depend on the thickness of the fragment object 258 removed from the terrain object, and will be longer the thicker the removed fragment object 258 is. As a second example, when the above-mentioned scraping process is performed, the fragment object 258 may have a scraping amount based on a proportion of the whole removed from its bottom surface. In this case, the distance that the fragment object 258 with the player character 201 on it can move will be a constant distance regardless of the size (thickness) of the fragment object 258 removed from the terrain object. As a third example, when the above-mentioned scraping process is performed, the fragment object 258 may have a certain volume of scraping amount removed from its bottom surface. In this case, the distance that the fragment object 258 carrying the player character 201 can travel depends on the size of the fragment object 258 extracted from the terrain object, and the larger the size of the extracted fragment object 258, the longer the distance it can travel.

[0228] Furthermore, in the third example, in any of the first to third examples above, in addition to the movement distance, the percentage, thickness, or amount of material removed from the bottom surface of the fragment object 258 in a single scraping process is changed based on the hardness of the material of the fragment object 258. Specifically, the softer the material of the fragment object 258, the larger the percentage, thickness, or amount of material removed. As a result, when the material of the fragment object 258 is soft, the movement distance that the player character 201 can achieve by using the fragment object 258 will be shorter compared to when the material is hard. Therefore, the variations in the effects obtained can be greatly increased depending on the type of material of the fragment object 258 used by the player character 201.

[0229] Furthermore, in the third example, if the player character 201 jumps while standing on the fragment object 258, the impact of landing on the terrain object 202 after the jump may cause the process of scraping the underside of the fragment object 258 to be performed at least once. For example, the amount of scraping the underside of the fragment object 258 due to the jump may be determined based on the height of the jump, and may be increased the greater the impact force of landing after the jump (i.e., the higher the jump).

[0230] In the third example as well, if the player character 201 dismounts from the fragment object 258 while moving, the fragment object 258 is placed in the game space in a reduced state, with its size consumed according to the distance moved up to that point. If the player character 201 then gets back on the reduced fragment object 258 and moves again, the player character 201 can obtain the effect of moving using the fragment object 258 until its remaining size from the reduced state falls below a predetermined standard. At this time, the distance over which the player character 201 can obtain the effect of moving using the reduced fragment object 258 is shortened by the distance already used for movement before reaching that reduced state.

[0231] Thus, in the third example, if the material of the fragment object is a material that can be mounted on, an in-game effect corresponding to that material is applied to the fragment object, causing it to move on the terrain object, and the size of the fragment object is reduced according to the distance moved. This allows the player character to perform an action such as removing the fragment object from the terrain object, and an effect that occurs when the removed object is consumed is applied, depending on the material of the removed object.

[0232] In the third example described above, an example was used in which the size of the fragment object 258 decreases according to the distance traveled by the fragment object 258 while it is moving on a terrain object. However, the size of the fragment object 258 may change based on other parameters. For example, the size of the fragment object 258 may decrease according to the movement time or usage time of the fragment object 258. As another example, the size of the fragment object 258 may decrease by a predetermined percentage, a predetermined thickness, or a predetermined amount depending on the number of times the above effect is obtained (for example, the number of times it has moved). Furthermore, the distance that can be moved using the fragment object 258 may increase or decrease depending on the material of the object that the fragment object 258 comes into contact with when it moves, the shape of the contact surface, the abilities of the player character 201, etc.

[0233] (Case 4) As a fourth example, we will describe an example in which a light source is set at the location of the fragment object generated in the game space as described above, and an action is performed to shine light into the game space. Figure 33 is an example of a game image showing a player character 201 holding a fragment object 261 and performing an action to shine light into the game space.

[0234] In this embodiment, if the material of the fragment object extracted from the terrain object as described above is made of light stone (fragment object 261 shown in Figure 33), the user can have the player character 201 perform an action to set a light source at the location of the fragment object 261 and shine light on it while the player character 201 is holding the fragment object 261. As described above, the player character 201 will be in the state of holding the fragment object 261 as a result of the extraction action or the action of holding the fragment object 261 after the punching action. In this state, the game system 1 sets a light source at the location of the fragment object 261 held by the player character 201 and forms a light-emitting area 262 in the game space.

[0235] In the fourth example, if the material of the fragment object 261 is a light stone, the game system 1 generates an in-game effect corresponding to the light stone that sets a light source at the location of the fragment object 261 in the game space. For example, the game system 1 sets a position light at the location of the fragment object 261. As an example, the game system 1 sets a point light that emits light radially from the surface of the fragment object 261 in the game space, forming an area 262 that the light of the point light reaches. The area 262 that the light reaches may be set to any shape, such as a sphere, ellipsoid, cone, or cylinder, based on the type and properties of the light source.

[0236] Furthermore, the light-reaching range 262 formed by the fragment object 261 may, in addition to lighting the game space, produce predetermined effects. For example, if another object (e.g., an enemy object composed of voxel objects) is located within the light-reaching range 262, the material of that other object may be changed. For example, another object composed of material A may be changed to another object composed of material B by moving from outside the light-reaching range 262 formed by the fragment object 261 into the light-reaching range 262.

[0237] In the fourth example, regardless of whether the player character 201 is holding the fragment object 261 or not, light is always emitted radially from the surface of the fragment object 261. For example, the user can cause the player character 201 to perform an action of throwing the fragment object 261 they are holding by performing a predetermined operation input (for example, pressing the ZR button 61). As shown in Figure 34, even when the fragment object 261 is placed on the terrain object by the player character 201 performing the action of throwing the fragment object 261 onto the terrain object, the state in which light is emitted radially from the surface of the fragment object 261 is maintained, and the range 262 to which the light reaches is continuously formed.

[0238] The fragment object 261, while emitting light, decreases in size as time passes while emitting light. When the size of the fragment object 261 falls below a predetermined standard, the effect of the fragment object 261 emitting light ends, and the fragment object 261 is removed from the game space.

[0239] In the fourth example, as in the first and second examples described above, the size of the fragment object 261, which has been extracted and whose unique voxel space has been defined, is used as the initial size, and the size of the fragment object 261 is reduced by linearly scaling it at a predetermined rate according to the passage of time during which the light-emitting effect is generated.

[0240] Thus, in the fourth example, if the material of the fragment object is a light stone, an in-game effect corresponding to the light stone is generated on the fragment object, which sets a light source at the fragment object's location, and the size of the fragment object is reduced as time passes while the light source is set. This allows the player character to perform an action such as extracting a fragment object from a terrain object, and generates an effect that occurs when the extracted object is consumed, depending on the material of the extracted object.

[0241] In addition, in the fourth example described above, the size of the fragment object 261 that is emitting light may be gradually reduced. In this case, the scaling reduction may be performed each time the time the fragment object 261 is emitting light reaches a predetermined threshold.

[0242] Furthermore, in the description of the fourth example above, an example was used in which the size of the fragment object 261 in the state where the effect of setting the light source is obtained is reduced by a predetermined percentage, but it may also be reduced by other means. For example, similar to the first and second examples, the size of the fragment object 261 may be reduced by a predetermined amount in accordance with obtaining the above effect.

[0243] (Example 5) As a fifth example, we will describe an example of performing an action that changes the material of other voxel objects in response to the fragment objects generated in the game space as described above. Figures 35 to 37 are examples of game images showing a series of actions in which the player character 201 throws the fragment object 263 into the area 251 of the terrain object.

[0244] In this embodiment, if the material of the fragment object extracted from the terrain object as described above is made of ice (fragment object 263 shown in Figures 35 to 37), the user can change the material of the region 251 in the terrain object by having the player character 201 throw the fragment object 263 into the region 251. As described above, the player character 201 will be in possession of the fragment object 263 by the extraction action or by the action of holding the fragment object 261 after the punching action. As shown in Figure 35, the user can have the player character 201 perform a throwing action of the fragment object 263 by a predetermined input (for example, pressing the B button 54). As a result, the fragment object 263 moves in the game space based on the direction in which the player character 201 performed the throwing action.

[0245] As described above, a unique voxel space is defined for the fragment object 263, independent of the voxel space of the voxels corresponding to the terrain object 202, etc. This unique voxel space can be moved / rotated within the game space along with the defined fragment object 263, and the position and orientation (orientation) of the unique voxel space within the game space are controlled. The polygon material of the fragment object 263 is set to the ice material. Furthermore, as property information included in the material data described above, the ice material is set to have the property of lowering the temperature of the object it comes into contact with (for example, the property that the temperature is below a predetermined value (for example, below freezing point)).The materials of the unique display mesh and unique detection mesh of the fragment object 263 are then determined based on the voxel material using the method for determining the materials of the display mesh and detection mesh described above.

[0246] In the fifth example, when a fragment object 263 released by the throwing action of player character 201 is determined to have come into contact with a voxel object as a result of collision detection, the game system 1 modifies the voxel object as an in-game action.

[0247] In the example shown in Figure 36, a portion of the region 251 of the terrain object, which is composed of lava material, is modified as if the material of the region 251 has been changed by being cooled by the fragment object 263 near the point where the fragment object 263 first made contact with the region 251. Specifically, the game system 1 generates an update range that includes the contact point and modifies a portion of the region 251 of the terrain object by changing the material of the voxels of the terrain object within the update range. In addition, the size of the fragment object 263 is reduced by the scaling described above so that it takes on a shape as if it has melted due to contact with the region 251 composed of lava material.

[0248] For example, the above update range is set to a shape corresponding to the shape when the fragment object 263 first contacts the terrain object, and for the voxels of the terrain object within the update range, the lava material in the voxel is set to be obsidian material. Specifically, the voxels within the above update range corresponding to the area 251 in the terrain object have the lava material changed to obsidian material. Then, based on the material of the changed voxels, the materials of the display mesh and the determination mesh of the terrain object are determined. In FIG. 36, the portion of the area 251 changed to obsidian material is set as the area 264. According to this, among the area 251 composed of lava material in the terrain object, the appearance of the area 264 changed to obsidian material can be made different from the appearance of the area 251 of lava material, so it is easier to give the user an impression that the fragment object 263 cooled and altered the lava material in the area 251 of the terrain object, and it is possible to express the situation where the lava object is cooled by the fragment object 263 composed of ice material and becomes obsidian.

[0249] In addition, the size of the fragment object 263 decreases according to the elapsed time of contact with the area 251 composed of lava material. When the size of the fragment object 263 becomes smaller than a predetermined standard, the effect of cooling the area 251 composed of lava material by the fragment object 263 ends, and the fragment object 263 is deleted from the game space.

[0250] In the fifth example, as in the first, second, and fourth examples described above, the size of the fragment object 263, which has been extracted and whose unique voxel space has been defined, is used as the initial size. The size of the fragment object 263 is then linearly scaled down by a predetermined rate according to the passage of time during which the cooling effect of the region 251, which is composed of lava material, is generated. As a result, the size of the fragment object 263 becomes smaller, making it easier to give the user the impression that the fragment object 263, which is composed of ice material, has been melted by the lava material of the terrain object's region 251.

[0251] In the example shown in Figure 37, the fragment object 263 moves along the terrain object from the position exemplified in Figure 36, further contacting the region 251 of the terrain object. As a result of this movement, the region 251 of the terrain object is modified, as if the material has changed due to the fragment object 263 cooling the area near the point of further contact. Additionally, the size of the fragment object 263 decreases as it takes on a shape that appears to have melted further due to further contact with the region 251 of the terrain object.

[0252] Specifically, in the same way as the method of changing the above-described material, the game system 1 generates a new update range that includes the position where it further contacts the fragmented object 263 that has become smaller, and further changes the material of the voxels of the terrain object in the new update range, thereby further changing a part of the region 251 in the terrain object. That is, the game system 1 makes the new update range smaller according to the size of the fragmented object 263 that has become smaller by the above scaling. Note that the game system 1 generates the new update range so that the previously created update range and the new update range are smoothly connected. As a result, the region where the material that expands every time the update range is generated changes and the region where the material has already changed are smoothly connected (for example, the region 264 shown in FIG. 37). Also, the game system 1 further reduces the size of the fragmented object 263 in the same way as the above-described scaling. According to this, since the region 264 that has been changed from the lava material to the obsidian material in the terrain object can be further expanded, it becomes easier to give the user an impression that the fragmented object 263 further cools and metamorphoses the lava material in the region 251 of the terrain object to expand the metamorphosed region. Also, since the size of the fragmented object 263 is further reduced, it becomes easier to give the user an impression that the fragmented object 263 is further melted by the lava material in the region 251 of the terrain object.

[0253] Note that the content of the above-described material change may be determined based on the material of the contacted terrain object, based on the material of the contacted fragmented object, or based on a combination of the material of the contacted terrain object and the material of the fragmented object. According to this, various changes can be made to the voxel objects that make up the terrain object or the fragmented object.

[0254] Thus, in the fifth example, if the material of the fragment object is ice, and the material of the voxel in the voxel data of the terrain object corresponding to the update range based on the position of the fragment object is lava, an effect is applied to the fragment object that changes the lava material to obsidian material, and the size of the fragment object is reduced in proportion to the time elapsed while the material change is occurring. This allows the player character to perform an action such as extracting the fragment object from the terrain object, and an effect that occurs when the extracted object is consumed is triggered, depending on the material of the extracted object.

[0255] In addition, in the fifth example described above, the size of the fragment object 263, which is in a state where the effect of changing the material is obtained, may be reduced in stages. In this case, the reduction by scaling described above may be performed each time the time during which the fragment object 263 has changed the material reaches a predetermined threshold.

[0256] Furthermore, in the description of the fifth example above, an example was used in which the size of the fragment object 263 in the state where the effect of setting a light source is obtained is reduced by a predetermined percentage, but it may be reduced by other means. For example, similar to the first, second, and fourth examples, the size of the fragment object 263 may be reduced by a predetermined amount in accordance with obtaining the above effect.

[0257] Furthermore, the content of the material changes in the fifth example described above may be determined based on the material of the contacted terrain object, based on the material of the contacted fragment object 263, or based on a combination of the materials of the contacted terrain object and the fragment object 263. This allows for various changes to be made to the voxel objects that make up the terrain object and the fragment object 263.

[0258] Furthermore, in the fifth example described above, the change made to another voxel object in response to the fragment object 263 coming into contact with that other voxel object was to change the material of that other voxel object, but the changes made to the other voxel object are not limited to this. The above change may also change the density of voxels in the other voxel object. For example, when the fragment object 263 comes into contact with a region 251 of lava material in a terrain object, a change may be made to reduce the density of voxels in the lava material. This makes it possible to represent a situation in which the lava material portion of the terrain object is cooled and shrunk by the fragment object 263 of ice material that it comes into contact with.

[0259] (Example 6) As a sixth example, we will describe an example in which a movement action is performed on a terrain object while riding on a fragment object generated as described above, and at the same time, an action is performed to change the material of other voxel objects. Figure 38 is a diagram showing an example of a game image in which a player character 201 moves into an area 251 on a terrain object while riding on a fragment object 263 in the game space.

[0260] In this embodiment, the material of the fragment object extracted from the terrain object as described above is composed of ice (fragment object 263 shown in Figure 38), and a unique voxel space is defined for the fragment object. The user can then have the player character 201 perform a movement action on the terrain object, with the material of the ice fragment object 263 moving on top of it. As explained in the third example above, the ice material is included in the materials that can be ridden on. Furthermore, as explained in the fifth example above, the property information included in the material data above for the ice material is set to have the property of lowering the temperature of the object it comes into contact with (for example, the property that the temperature is below a predetermined value (for example, below freezing point)). Then, using the method for determining the materials of the display mesh and the judgment mesh described above, the materials of the unique display mesh and the unique judgment mesh of the fragment object 263 based on the voxel material are determined.

[0261] Similar to the fifth example above, the user can cause the player character 201 to perform an action of standing on the fragment object 253 by a predetermined input (see the upper diagram in Figure 38). In this state, the game system 1, as a movement action corresponding to the user's input, causes the player character 201 to stand on the fragment object 263 and move along the terrain object 202 in the direction of movement corresponding to the input (see the upper and lower diagrams in Figure 38).

[0262] In the sixth example, if the material of the fragment object 263 is an ice material that can be stood on, the in-game effect corresponding to that material is to move the player character 201, who is standing on the fragment object 263, on the terrain object 202 based on the user's input. In addition, if the collision detection resulting from this movement determines that the fragment object 263 has come into contact with another voxel object, the game system 1 will, as an in-game action, cause the material of the other voxel object to change on the fragment object 263. Specifically, when the player character 201 is standing on the fragment object 263, a force is applied to the fragment object 263 that moves it on the terrain object 202, including within the area 251. The user can then control the direction and speed of movement by performing predetermined inputs while the player character 201 is standing on the fragment object 263.

[0263] Similar to the third example above, when a fragment object 263 is moving on a terrain object 202, its size decreases as its underside is eroded according to the distance moved. Specifically, when a fragment object 263 moves on a terrain object 202 outside of area 251, a thin plate-like update range, including at least the entire underside, is set in the intrinsic voxel space of the fragment object 263, based on the position where it touches the terrain object 202. Then, as explained in the third example above, an SDF corresponding to the update range is set, and the erasure of each voxel is controlled by rewriting the density of each voxel based on the SDF of each voxel in the fragment object 263. As a result, the underside portion of the fragment object 263 corresponding to the update range is deformed so that it is erased, and the fragment object 258 becomes thinner as its underside is eroded, reducing its size.

[0264] In the example shown in the lower diagram of Figure 38, the player character 201, riding on a fragment object 263, moves across the terrain object 202 described above, entering a region 251 of the terrain object composed of lava material. In this case, similar to the fifth example above, a portion of the region 251 of the terrain object composed of lava material is modified as if the material of the region 251 has been changed by being cooled by the fragment object 263 near the point of first contact when the fragment object 263 enters the region 251. Specifically, the game system 1 generates an update range that includes the point of contact, and modifies a portion of the region 251 of the terrain object by changing the material of the voxels of the terrain object within the update range.

[0265] For example, similar to the fifth example above, the update range is set to the shape corresponding to the shape that the fragment object 263 first comes into contact with when it enters the region 251 of the terrain object 202, and the lava material of the terrain object voxels within the update range is set to obsidian material. Then, the materials of the display mesh and the detection mesh of the terrain object are determined based on the material of the changed voxels. In the lower diagram of Figure 38, the portion of region 251 that has been changed to obsidian material is set to region 264.

[0266] In the sixth example, when the fragment object 263 moves within the region 251, in addition to its size decreasing due to the removal of its underside in proportion to the distance moved, the fragment object 263 also decreases in size over time due to scaling as described in the fifth example, so that it takes on a melted shape due to contact with the region 251, which is composed of lava material. That is, when the player character 201 is placed on the fragment object 263 and it moves within the region 251, the size of the fragment object 263 decreases by removing the underside in proportion to the distance moved, as well as by scaling as time passes while it is in contact with the region 251. Specifically, the fragment object 263 decreases in size by removing the underside in proportion to the distance moved within the region 251, and also decreases in size due to scaling as time passes while it is in contact with the region 251. Then, when the size of the fragment object 263 becomes smaller than a predetermined standard, the fragment object 258 is removed from the game space, the movement effect ends, and the effect of the fragment object 263 cooling the area 251, which is composed of lava material, ends.

[0267] Thus, in the sixth example, if the material of the fragment object is a material that can be placed on and is a material that changes the material of other voxel objects, then the fragment object is given the effect of moving on the terrain object and the effect of changing the material of the other voxel objects as in-game effects corresponding to the material, and the size of the fragment object is reduced by shaving off its underside according to the distance traveled while the effect is being generated, and scaling it according to the time elapsed while the effect is being generated. This allows the player character to perform an action such as taking the fragment object from the terrain object, and depending on the material of the taken object, multiple effects can be generated by consuming that object.

[0268] In the sixth example above, we used an example where multiple effects were applied to a fragment object, such as an effect that causes it to move on a terrain object and an effect that changes its material. However, the combination of these multiple effects is arbitrary. For example, if the material of the fragment object is a light stone material, and we assume that player character 201 is standing on the fragment object, then the in-game effects corresponding to that material can be applied to the fragment object, such as an effect that causes it to move on a terrain object and an effect that sets a light source at the fragment object's location.

[0269] Furthermore, the elements described in the first to sixth examples above, such as the in-game effects obtained by using fragment objects, the methods for reducing the size of fragment objects, and the triggers and timings for reducing the size of fragment objects, may be combined in any way. For example, these elements may be combined as appropriate to specialize in each specification. As another example, specific specifications may be set by irregularly rearranging and combining these elements. In this case, the combination of these elements may be changed at any time.

[0270] Furthermore, the method of reducing the size of a fragment object by removing part of it as described above may involve removing any face or part of the fragment object. For example, when reducing the size of a fragment object 257 by removing part of it as used in the second example above, the size of the fragment object 257 may be reduced by removing the part that comes into contact with the wire rope 301 based on the sliding distance.

[0271] In addition, the content of the process executed when an in-game effect is obtained by using the above-described fragment object is arbitrary. For example, when the size of the fragment object becomes smaller due to obtaining the above in-game effect, the process may be a process of displaying an effect (for example, an effect indicating that the fragment object is being consumed) around the fragment object. At this time, the game system 1 can vary the effect according to the type and consumption amount of the material set for the polygon of the consumed part of the fragment object.

[0272] [3. Specific Examples of Processes in the Game System] Next, referring to FIGS. 39 to 41, specific examples of information processing in the game system 1 will be described.

[0273] FIG. 39 is a diagram showing an example of various data used for information processing in the game system 1. Each data shown in FIG. 39 is stored in a memory (for example, flash memory 84, DRAM 85, and / or a memory card mounted on slot 23, etc.) accessible by the main body device 2. As shown in FIG. 39, the game system 1 stores a game program. The game program is for executing the game processing in the present embodiment (for example, the game processing shown in FIGS. 40 and 41). Note that the game program includes the above-described material data (see FIG. 12). Further, the above memory stores the above-described voxel data (see FIG. 11), update range data, mesh data, object data, in-game effect data, etc. (see FIG. 39).

[0274] The update range data is data indicating the above-described update range. In the present embodiment, the update range is represented by the above-described SDF.

[0275] Mesh data includes various data related to the mesh of a voxel object. As shown in Figure 39, in this embodiment, mesh data includes SVO data, display mesh data, and determination mesh data. SVO data is data that holds each vertex calculated from the voxel data in the SVO structure described above. In this embodiment, in addition to data indicating the position of each vertex, SVO data includes data indicating the material set for each vertex (for example, data indicating the material ID). Display mesh data includes various data related to the display mesh. Specifically, display mesh data includes data indicating each vertex of the display mesh and data indicating the material set for each vertex (for example, data indicating the material ID). Determination mesh data includes various data related to the determination mesh. Specifically, determination mesh data includes data indicating each vertex of the determination mesh and data indicating the material set for each vertex (for example, data indicating the material ID).

[0276] Object data includes various data related to objects other than voxel objects (e.g., player characters, virtual objects, etc.). Object data is stored for each object that appears in the game space. Object data includes, for example, data indicating the object's position, velocity, and state.

[0277] In-game effect data is obtained by reducing the size of a voxel object (e.g., a fragment object) and consuming that voxel object, and is data related to the in-game effect set in accordance with the material of that voxel object.

[0278] Figure 40 is a flowchart illustrating an example of the game processing flow executed by game system 1. Figure 41 is a subroutine showing an example of in-game effect processing in step S7 shown in Figure 40. The execution of game processing begins, for example, when the game is started in response to player instructions during the execution of the game program described above. The processing loop consisting of the series of processes from steps S1 to S15 is executed in a cycle of once per frame.

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

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

[0281] In Figure 40, the processor 81 acquires the operation data indicating user input (step S1) and proceeds to the next step. For example, the processor 81 acquires operation data output from each controller via the controller communication unit 83 and / or terminals 17 and 21, as well as operation data output from the main unit 2 (e.g., touch panel 13).

[0282] Next, the processor 81 designates one of the game space objects that needs processing but has not yet been processed (including voxel objects defined by the unique voxel space) as the object to be processed, and performs the process of calculating the velocity of the designated object and the process of reflecting the result of contact between objects in the previous frame (step S2), and then proceeds to the next step. The velocity of the object is used in the process of step S13, described later, to calculate the position of the object in the current frame. For example, if the designated object is a player character, the velocity of the player character is calculated based on the operation data obtained in step S1. Also, if the designated object is an object that is not operated by the user, the velocity of the object is calculated based on rules predetermined in the game program. For example, the velocity of a fragment object used by the player character 201 is set to 0 if it is placed on a terrain object and is not moving, set to the same velocity as the player character if it is being held by the player character, and set to a velocity that moves in a direction based on the direction of the player character with a size determined by the above rules if it is released by a throwing action by the player character. Specifically, the velocity of an object is calculated based on virtual physics calculations that include interactions between objects. For example, interactions such as repulsion from collisions between objects, friction from contact, falling due to virtual gravity, and deceleration due to virtual air resistance are all reflected in the velocity determination.

[0283] Furthermore, the process that reflects the results of object contact in the previous frame includes processing that affects the objects if it is determined in the collision detection (step S12 described later) in the previous frame that objects have come into contact with each other. The above processing is, for example, as follows. - If it is determined that the player character came into contact with a lava terrain object in the previous frame, the player character's health will be reduced. • If it is determined that the player character pulled out a portion of a terrain object in the previous frame through an action such as pulling, the process of generating a fragment object (unique voxel space, its voxel data, and mesh data) is initiated. • If it is determined that the player character made contact with a terrain object due to a punch action or similar in the previous frame, a process is performed to generate a fragment object (unique voxel space, its voxel data, and mesh data). If the state of an object is changed during the processing of step S2 described above, the processor 81 updates the object data stored in memory for that object to reflect the changed state.

[0284] Next, the processor 81 determines whether an update event has occurred that updates the voxel object due to the object specified in step S2 (step S3). For example, the determination in step S3 is made based on the result of the collision determination in the previous frame (step S11, described later). As a first example, if it is determined that the player character pulled out the terrain object by a pull-out action or the like in the previous frame, it is determined that an update event has occurred that erases part of the terrain object. As a second example, if it is determined that the player character made contact with the terrain object by a punch action or the like in the previous frame, it is determined that an update event has occurred that erases part of the terrain object. If an update event has occurred, the processor 81 proceeds to step S4. On the other hand, if no update event has occurred, the processor 81 proceeds to step S6.

[0285] In step S4, the processor 81 sets an update range in the game space for updating voxel objects and proceeds to the next step. For example, the specific details of the update range (e.g., position, shape, and size) are associated with each type of update event in the game program. The update range set in step S4 is set to be associated with the type of update event that was determined to occur in step S3. In step S4, the processor 81 stores data indicating the set update range in memory as update range data.

[0286] Next, the processor 81 makes changes to the voxels corresponding to the update range set in step S4 in accordance with the update event (step S5), and proceeds to step S6. For example, if the processor 81 deforms a voxel object within the update range so that it appears to be deleted or shrunk, or deforms it so that a voxel object appears to be added to the update range, it updates the voxel data stored in memory to change the density of the voxels corresponding to the update range (see [2-2. Updating Voxel Data] above). Also, if the processor 81 changes the material of a voxel object within the update range, it updates the voxel data stored in memory to update at least one of the first material ID, second material ID, and material mixing ratio of the voxel corresponding to the update range.

[0287] In step S6, the processor 81 determines whether the processing in steps S2 to S5 has been completed for all objects that require processing (including voxel objects defined by the unique voxel space). If the processing of all objects is complete, the processor 81 proceeds to step S7. On the other hand, if the processing of any object is not complete, the processor 81 returns to step S2 and repeats the process.

[0288] In step S7, the processor 81 performs in-game effect processing and proceeds to step S8. The in-game effect processing in step S7 will be explained below with reference to Figure 41.

[0289] In Figure 41, the processor 81 determines whether or not there is a target object in the game space that is in a state where an in-game effect is generated by reducing its size (step S21). For example, the processor 81 determines in step S21 that there is a target object that is in a state where the above in-game effect is generated when the player character 201 holds it (for example, the fragment object 256 in the first example), a target object that is in a state where the above in-game effect is generated when the player character 201 uses it to move or slide (for example, the fragment object 257 in the second example, the fragment object 258 in the third example, the fragment object 263 in the sixth example), a target object that is in a state where the above in-game effect is generated when it is placed in the game space (for example, the fragment object 261 in the fourth example), or a target object that is in a state where the above in-game effect is generated when it changes the material of other voxel objects (for example, the fragment objects 263 in the fifth and sixth examples). Then, if there is at least one target object in the game space that is in a state that generates the above-mentioned in-game effect, the processor 81 proceeds to step S22. On the other hand, if there is no target object in the game space that is in a state that generates the above-mentioned in-game effect, the processor 81 terminates the processing by the subroutine.

[0290] In step S22, the processor 81 determines whether the processing described in steps S23 to S32 has been completed for all target objects that require processing. If the processing of all target objects is completed, the processor 81 terminates the processing by the subroutine. On the other hand, if the processing of any target object is not completed, the processor 81 proceeds to step S23.

[0291] In step S23, the processor 81 selects one of the target objects that requires processing but has not yet been processed, and proceeds to the next step.

[0292] Next, the processor 81 sets an in-game effect on the target object selected in step S23 (step S24) and proceeds to the next step. For example, the process of setting the in-game effect is performed according to the method described in [2-7. Process of generating an in-game effect by consuming a voxel object] above, and the in-game effect data stored in memory is updated based on the setting. The process of setting the in-game effect is, for example, as follows. - If the fragment object 256 is made of the material of the flying stone as described in the first example above, then an effect is set to cause the player character 201 possessing the fragment object 256 to rise into the air in the game space. - In the case of a fragment object 257 made of the retainable material described in the second example above, an effect is set to move the player character 201 holding the fragment object 257 along a predetermined path (wire rope 301) set in the game space. If the fragment object 258 is made of the material that can be stepped on as described in the third example above, then an effect is set to move the player character 201, which is standing on the fragment object 258, onto the terrain object 202. If the fragment object 261 is composed of the lightstone material described in the fourth example above, it will generate the effect of setting a light source at the location of the fragment object 261 in the game space. • If the fragment object 263 is composed of the ice material described in the fifth example above, it will cause an effect that changes the material of other voxel objects that come into contact with the fragment object 263. - If the fragment object 263 is made of the ice material described in the sixth example above, it will have the effect of moving the player character 201, which is standing on the fragment object 263, on the terrain object 202, and the effect of changing the material of other voxel objects that come into contact with the fragment object 263.

[0293] Next, the processor 81 controls the operation of the target object selected in step S23 based on the in-game effect set in step S24 (step S25), and proceeds to the next step. For example, the operation control of the target object is performed according to the method described in [2-7. Processing to produce in-game effects by consuming voxel objects] based on the operation data acquired in step S1. Then, in step S25, the processor 81 updates the object data stored in memory to reflect the object after the operation control in step S25. In one execution of step S25, the processor 81 controls each object to perform one frame's worth of operation for actions that take place over multiple frames (for example, actions by the target object and / or player character). As a result, by repeatedly executing the process of step S25 over multiple frames, each object performs a series of actions related to movement and various other actions. Furthermore, if the collision detection in step S12, described later, determines that the object is in contact with another object, and the action is obstructed by the other object it is in contact with, the action may be determined taking into consideration the obstructed state. Also, in the operation control in step S25, if an update range is generated and a process is performed to change the voxels within that update range, the process in steps S3 to S5 described above may be performed instead of the process in step S25.

[0294] Next, the processor 81 determines whether the current time is the time to reduce the size of the target object selected in step S23 and consume it (step S26). If the current time is the time, the processor 81 proceeds to step S27. On the other hand, if the current time is not the time, the processor 81 returns to step S22 and repeats the process.

[0295] In step S27, the processor 81 determines whether or not to reduce the size of the target object selected in step S23 by scaling. If the processor 81 decides to reduce the size of the target object by scaling, it proceeds to step S28. On the other hand, if the processor 81 decides not to reduce the size of the target object by scaling, it proceeds to step S29.

[0296] In step S28, the processor 81 reduces the size of the target object selected in step S23 by scaling and proceeds to step S29. For example, the scaling process is performed according to the method described in [2-7. Process to produce in-game effects by consuming voxel objects], and the size of the target object after the scaling process (e.g., the reduction ratio from the initial size) is managed by in-game effect data stored in memory.

[0297] In step S29, the processor 81 determines whether or not to remove the bottom surface of the target object selected in step S23. If the processor 81 decides to remove the bottom surface, it proceeds to step S30. On the other hand, if the processor 81 decides not to remove the bottom surface, it proceeds to step S31.

[0298] In step S30, the processor 81 reduces the size of the target object selected in step S23 by trimming its bottom surface, and then proceeds to step S31. For example, the process of trimming the bottom surface is performed according to the method described in [2-7. Process of producing in-game effects by consuming voxel objects], and the size of the target object after trimming (for example, the reduction ratio from the initial size) is managed by in-game effect data stored in memory.

[0299] In step S31, the processor 81 determines whether the size of the target object selected in step S23 is smaller than a predetermined standard. If the size of the target object is smaller than the predetermined standard, the processor 81 proceeds to step S32. On the other hand, if the size of the target object is greater than or equal to the predetermined standard, the processor 81 returns to step S22 and repeats the process.

[0300] In step S32, the processor 81 performs an erase process and returns to step S22 to repeat the process. For example, the processor 81 erases the target object selected in step S23 from the game space and erases the data related to that target object stored in memory (voxel data (unique voxel space data), mesh data, object data, in-game effect data, etc.).

[0301] Returning to Figure 40, after the in-game effect processing in step S7, the processor 81 updates the vertices of the voxel object in the game space (step S8) and proceeds to the next step. For example, if the voxel data is updated in the processing of steps S5 or S7, the processor 81 calculates new vertices based on the updated voxel data. The position of the new vertices is calculated according to the method described in [2-3. Vertex Calculation] above. The material of the new vertices is calculated according to the method described in [2-4. Vertex Material Determination] above.

[0302] Next, the processor 81 simplifies the vertices (step S9) and proceeds to the next step. For example, the processor 81 simplifies each vertex after the update in step S7 according to the method described in [2-5. Simplification of Vertices] above. Then, the processor 81 updates the SVO data stored in memory to show each vertex obtained by the processes in steps S8 and S9 above. Note that the processes in steps S8 and S9 do not need to recalculate the vertices for the entire voxel data, and may be performed only on the parts of the voxels whose contents were changed in steps S5 and S7 above.

[0303] Next, the processor 81 updates the display mesh of the voxel object based on the SVO data stored in memory (step S10), and proceeds to the next step. The position of each vertex of the display mesh and the material of each polygon of the display mesh (for example, the material set for each vertex of the polygon) are calculated according to the methods described in [2-6. Mesh Generation] and [2-6-1. Determination of Display Mesh Material] above. In step S10, the processor 81 updates the display mesh data stored in memory to show the updated position and material of each vertex of the display mesh. The processor 81 may start the processing from step S11 onwards, described later, without waiting for the completion of step S10, and execute it in parallel. In that case, step S10 must be completed before the start of step S14, described later.

[0304] Next, the processor 81 updates the determination mesh of the voxel object based on the SVO data stored in memory (step S11), and proceeds to the next step. The position of each vertex of the determination mesh and the material of each polygon of the determination mesh (for example, the material set for each vertex of the polygon) are calculated according to the methods described in [2-6. Mesh Generation] and [2-6-2. Determination of the Material of the Determination Mesh] above. In step S11, the processor 81 updates the determination mesh data stored in memory to show the updated position and material of each vertex of the determination mesh.

[0305] In the example shown in Figure 40, the process of generating the judgment mesh in step S11 is performed every frame, but the process of generating the judgment mesh does not have to be performed every frame. For example, if the collision judgment process in step S12, which will be described later, is performed only on frames that satisfy predetermined conditions, the processor 81 may perform the process of generating the judgment mesh on the frame in which the collision judgment is performed. The processor 81 may also perform the process of generating the judgment mesh for voxels within the area in the game space in which the collision judgment in step S12 is performed. For example, in a situation where there are no objects other than voxel objects that are subject to collision judgment around the player character in the game space (i.e., a situation where only collision judgment between the player character and the surrounding voxel objects needs to be performed), the processor 81 may perform the process of generating the judgment mesh for voxels within a predetermined range relative to the player character.

[0306] Next, the processor 81 performs collision detection for each object in the game space based on the detection mesh data and object data stored in memory (step S12), and proceeds to the next step. For example, the processor 81 uses the detection mesh for voxel objects and a predetermined shape detection area set for non-voxel objects to perform collision detection. In this embodiment, the collision detection in step S12 is performed taking into account the speed calculated in step S2. In other words, the processor 81 performs collision detection using the position of each object when it moves at the above speed.

[0307] In this embodiment, the collision determination in step S12 determines, for example, whether or not the following contact occurs. - Contact between the player character performing actions such as movement, drawing, and punching, and terrain objects. • Contact between fragment objects and the player character or other objects Furthermore, if the collision detection in step S12 determines that objects have come into contact with each other, the process in step S2 of the next frame will either reflect the result of the object contact, or the process in step S3 of the next frame will determine that an update event has occurred.

[0308] Next, the processor 81 controls the movement of each object in the game space (step S13) and proceeds to the next step. For example, the processor 81 controls the player character to move and perform various actions based on the operation data acquired in step S1. When a predetermined action occurs, the processor 81 generates a collision detection area in the game space corresponding to that action. The processor 81 also controls the movement of fragment objects in the direction from which they were released when a fragment object is thrown by a throwing action by the player character. In one execution of step S13, the processor 81 controls each object to perform one frame's worth of action for actions that take place over multiple frames (for example, actions by the player character). As a result, the processing of step S13 is repeatedly executed over multiple frames, allowing each object to perform a series of actions related to movement and various other actions. The position of an object is basically determined to be the position after moving at the speed calculated in step S2. However, if the collision detection in step S12 determines that the object is in contact with another object, and the movement of the object is obstructed by the other object it is in contact with, the position of the object may be determined not to change. Then, in step S13, the processor 81 updates the object data stored in memory to reflect the object after the control in step S13.

[0309] Next, the processor 81 generates a game image (step S14) and proceeds to the next step. For example, the processor 81 generates a game image by drawing each polygon of the display mesh for the voxel object and each polygon of objects other than the voxel object based on a virtual camera. Each polygon of the display mesh is drawn using drawing settings such as textures corresponding to the material set for the polygon, according to the method described in [2-6-1. Determination of the material of the display mesh] above. The game image generated in step S14 is output to the display device and displayed in a cycle of once per frame.

[0310] Next, the processor 81 determines whether or not to terminate the game (step S15). For example, if the user performs a predetermined operation input to terminate the game or if the conditions for terminating the game are met, the processor 81 makes a positive determination in step S15. If the game is to be terminated, the processor 81 terminates the process according to the flowchart. On the other hand, if the game is not to be terminated, the processor 81 returns to step S1 and repeats the process. Thereafter, the series of processes from steps S1 to S15 are repeatedly executed until it is determined in step S15 that the game should be terminated.

[0311] Thus, in this embodiment, the player character can perform actions such as extracting fragment objects from terrain objects, and effects can be generated by consuming the extracted objects depending on the material of those objects. Therefore, the materials in the voxel data can be utilized more effectively in the game.

[0312] In other embodiments, the in-game effect may change depending on the other aspects. As a first example, the magnitude of the in-game effect may change depending on the remaining size of the fragment object that generates the in-game effect when its size decreases. As a second example, the magnitude of the in-game effect may change depending on the type of material of the fragment object that generates the in-game effect when its size decreases. As a third example, the magnitude of the in-game effect may change depending on the play level and ability of the player character using the fragment object that generates the in-game effect when its size decreases.

[0313] Furthermore, while the above explanation used an example where a voxel object is defined by generating a 3D mesh based on voxel data set in a 3D space, a voxel object can also be defined based on voxel data set in a 2D space.

[0314] Furthermore, the game system 1 may be any device, including a portable game device, any portable electronic device (PDA (Personal Digital Assistant), mobile phone, smartphone, personal computer, camera, tablet, etc.). In this case, the input device for user operation to control the player character, etc., does not have to be the left controller 3, right controller 4, or touch panel 13, etc., but may be another controller, mouse, touchpad, touch panel, trackball, keyboard, directional pad, slide pad, etc.

[0315] Furthermore, although the above description uses an example in which each information processing is performed by the game system 1, at least a part of the above processing steps may be performed by other devices. For example, if the game system 1 is configured to communicate with other devices (e.g., another server, another information processing device, another game device, another mobile terminal, etc.), the above processing steps may be performed by the cooperation of those other devices. In this way, by performing at least a part of the above processing steps by other devices, it becomes possible to perform processing similar to the processing described above. In addition, the above information processing can be performed by the cooperation of one processor or multiple processors included in an information processing system composed of at least one information processing device. Furthermore, in the above embodiment, the processor 81 of the game system 1 can perform information processing by executing a predetermined program, but some or all of the above processing may be performed by a dedicated circuit provided in the game system 1.

[0316] As described above, the invention can be realized in so-called cloud computing system configurations, distributed wide-area networks, and local network system configurations. For example, in a distributed local network system configuration, the above processing can be performed collaboratively between a stationary information processing device (stationary game device) and a portable information processing device (portable game device). It goes without saying that in these system configurations, there are no particular limitations on which device performs the above processing, and the invention can be realized regardless of how the processing is divided.

[0317] Furthermore, the processing order, set values, and conditions used in the information processing described above are merely examples, and it goes without saying that this embodiment can be realized even with other orders, values, and conditions.

[0318] Furthermore, the above program may be supplied to the game system 1 not only through an external storage medium such as external memory, but also to the device via a wired or wireless communication line. The program may also be pre-recorded in a non-volatile storage device inside the device. The information storage medium for storing the program may be a CD-ROM, DVD, or similar optical disc-type storage medium, a flexible disk, a hard disk, a magneto-optical disk, a magnetic tape, etc. Alternatively, the information storage medium for storing the program may be a volatile memory for storing the program. Such storage media can be described as recording media that can be read by a computer or the like. For example, by having a computer or the like read and execute the program on these recording media, the various functions described above can be provided.

[0319] Although the present invention has been described in detail above, the above description is merely illustrative in all respects and is not intended to limit its scope. Needless to say, various improvements and modifications can be made without departing from the scope of the present invention. Furthermore, those skilled in the art will understand from the description of specific embodiments of the present invention that an equivalent scope can be implemented based on the description of the present invention and common technical knowledge. In addition, it should be understood that the terms used herein are used in the sense commonly used in the art unless otherwise specified. Accordingly, unless otherwise defined, all technical terms used herein have the same meaning as commonly understood by those skilled in the art to which the present invention pertains. In case of any conflict, this specification (including definitions) shall prevail. [Industrial applicability]

[0320] As described above, the present invention can be used as a game program, game processing method, game system, and game device, etc., that can run a game in which materials are reflected in the appearance and actions that occur in the game for objects based on voxel data. [Explanation of Symbols]

[0321] 1… Information processing system 2…Main unit 3…Left controller 4…Right controller 11… Housing 12…Display 13…Touch panel 32, 52... Analog stick 42, 64… terminals 81… Processor 82…Network Communications Department 83…Controller Communication Unit 85…DRAM

Claims

1. In the computer of the information processing device, Based on a first voxel data defined in a virtual space, in which each of a plurality of voxels has at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its contents, and a material indicating the type of contents, a first mesh of a first voxel object corresponding to the first voxel data is generated and updated, in which the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined at least based on the material. Based on the operation input, the player character is controlled within the virtual space, and in response to a first instruction based on the operation input, The player character is instructed to perform the first action, The density of voxels in the first voxel data corresponding to the first voxel update range, which is set based on the location where the first action was performed, is reduced. The present invention generates a second voxel data in which the density and material are set for each voxel, wherein the material of the voxel is set to the same material as the material of the voxel or mesh of the first voxel data, which is determined based on the positional relationship with the position where the first action was performed, and a second mesh of a second voxel object corresponding to the second voxel data, wherein the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined based on the material of the second voxel data. When the material of the second voxel data is the first material, the first in-game effect corresponding to the first material is generated for the second voxel object, and the size of the second voxel object is reduced as the game progresses. A game program that causes the virtual space, including the first mesh and the second mesh, to be rendered.

2. The first voxel data is defined in the first voxel space, The second voxel data is defined in the second voxel space, The game program according to claim 1, wherein the computer reduces the size of the second voxel object by reducing the size of the second voxel space within the virtual space.

3. The game program according to claim 1, wherein the computer is instructed to set a second voxel update range in the virtual space based on the position of the first voxel object, and the size of the second voxel object is reduced by lowering the density of voxels in the second voxel data corresponding to the second voxel update range.

4. The game program according to claim 1, wherein the computer causes the size of the second voxel object to decrease in accordance with the passage of time during which the first in-game effect is occurring.

5. The game program according to claim 1, wherein the computer causes the size of the second voxel object to decrease each time the first in-game effect occurs.

6. The first voxel data is defined in the first voxel space, The second voxel data is defined in the second voxel space, The game program according to claim 4 or 5, wherein the computer reduces the size of the second voxel object by reducing the size of the second voxel space within the virtual space.

7. The game program according to any one of claims 4 to 6, wherein the computer is instructed to set a second voxel update range in the virtual space based on the position of the first voxel object, and the size of the second voxel object is reduced by lowering the density of voxels in the second voxel data corresponding to the second voxel update range.

8. The game program according to any one of claims 1 to 5, further comprising the computer being instructed to delete the second voxel object and terminate the first in-game effect when the size of the second voxel object falls below a predetermined standard.

9. The aforementioned computer further, In response to a second instruction based on the input, the player character is instructed to perform actions to hold and release the second voxel object. The game program according to any one of claims 1 to 5, which generates the first in-game effect when the player character is holding the second voxel object.

10. To the aforementioned computer, In the aforementioned virtual space, the player character's movement is controlled based on a virtual gravity acting downwards. The game program according to claim 9, wherein the first in-game effect is to move the player character holding the second voxel object upward in the virtual space.

11. The game program according to claim 9, wherein the computer moves the player character holding the second voxel object along a predetermined path set in the virtual space as the first in-game effect.

12. The game program according to claim 9, wherein the computer is instructed to control the movement of the player character, which is standing on the second voxel object, on the first object based on an input, as the first in-game effect.

13. The aforementioned material has a hardness set according to its type. The game program according to claim 9, wherein the computer moves the player character together with the second voxel object as the first in-game effect, and reduces the size of the second voxel object based on the hardness of the material of the second voxel object and the distance moved.

14. The game program according to any one of claims 1 to 5, wherein the computer is instructed to set a light source at the position of the second voxel object in the virtual space as the first in-game effect.

15. The game program according to any one of claims 1 to 5, wherein the computer is given the first in-game effect, which is to change the material of a voxel in the first voxel data corresponding to a third voxel update range including the position of the second voxel object to a third material if the material of the voxel was the second material.

16. The first mesh includes a display mesh used for drawing and a collision detection mesh used for collision detection. The material of the display mesh is set by setting at least one material for each polygon of the mesh, based on the material of the voxels around each vertex that constitutes that polygon. The material of the determination mesh is set by setting one material for each polygon of the mesh, based on the material of the voxels surrounding each vertex that constitutes that polygon. To the aforementioned computer, Based on the collision shape set based on the position where the first action was performed, and the collision determination between the determination mesh among the first meshes, the same material as the material set on the polygon at the collision position is set as the material for the second voxel data. A game program according to any one of claims 1 to 5, which causes the first mesh to be drawn by causing the display mesh to be drawn based on the vertex coordinates of the display mesh and the texture associated with the material of each polygon of the display mesh.

17. In the information processing system, Based on a first voxel data defined in a virtual space, in which each of a plurality of voxels has at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its contents, and a material indicating the type of contents, a first mesh of a first voxel object corresponding to the first voxel data is generated and updated, in which the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined at least based on the material. Based on the operation input, the player character is controlled within the virtual space, and in response to a first instruction based on the operation input, The player character is instructed to perform the first action, The density of voxels in the first voxel data corresponding to the first voxel update range, which is set based on the location where the first action was performed, is reduced. The present invention generates a second voxel data in which the density and material are set for each voxel, wherein the material of the voxel is set to the same material as the material of the voxel or mesh of the first voxel data, which is determined based on the positional relationship with the position where the first action was performed, and a second mesh of a second voxel object corresponding to the second voxel data, wherein the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined based on the material of the second voxel data. When the material of the second voxel data is the first material, the first in-game effect corresponding to the first material is generated for the second voxel object, and the size of the second voxel object is reduced as the game progresses. A game processing method for rendering the virtual space including the first mesh and the second mesh.

18. The first voxel data is defined in the first voxel space, The second voxel data is defined in the second voxel space, The game processing method according to claim 17, wherein the information processing system reduces the size of the second voxel object by reducing the size of the second voxel space within the virtual space.

19. The game processing method according to claim 17, wherein the information processing system is instructed to set a second voxel update range in the virtual space based on the position of the first voxel object, and the size of the second voxel object is reduced by lowering the density of voxels in the second voxel data corresponding to the second voxel update range.

20. The game processing method according to claim 17, wherein the information processing system reduces the size of the second voxel object in accordance with the passage of time during which the first in-game effect is occurring.

21. The game processing method according to claim 17, wherein the information processing system reduces the size of the second voxel object each time the first in-game effect occurs.

22. The first voxel data is defined in the first voxel space, The second voxel data is defined in the second voxel space, The game processing method according to claim 20 or 21, wherein the information processing system reduces the size of the second voxel object by reducing the size of the second voxel space within the virtual space.

23. The game processing method according to any one of claims 20 to 22, wherein the information processing system is instructed to set a second voxel update range in the virtual space based on the position of the first voxel object, and the size of the second voxel object is reduced by lowering the density of voxels in the second voxel data corresponding to the second voxel update range.

24. The game processing method according to any one of claims 17 to 21, further comprising the information processing system being instructed to delete the second voxel object and terminate the first in-game effect when the size of the second voxel object falls below a predetermined standard.

25. The aforementioned information processing system further includes, In response to a second instruction based on the input, the player character is instructed to perform actions to hold and release the second voxel object. The game processing method according to any one of claims 17 to 21, wherein the player character holds the second voxel object, and the first in-game effect is generated.

26. In the aforementioned information processing system, In the aforementioned virtual space, the player character's movement is controlled based on a virtual gravity acting downwards. The game processing method according to claim 25, wherein the first in-game effect is to move the player character holding the second voxel object upward in the virtual space.

27. The game processing method according to claim 25, wherein the information processing system moves the player character holding the second voxel object along a predetermined path set in the virtual space as the first in-game effect.

28. The game processing method according to claim 25, wherein the information processing system causes the player character, which is standing on the second voxel object, to move on the first object based on an operation input, as the first in-game effect.

29. The aforementioned material has a hardness set according to its type. The game processing method according to claim 25, wherein the information processing system moves the player character together with the second voxel object as the first in-game effect, and reduces the size of the second voxel object based on the hardness of the material of the second voxel object and the distance moved.

30. The game processing method according to any one of claims 17 to 21, wherein the information processing system is instructed to set a light source at the position of the second voxel object in the virtual space as the first in-game effect.

31. The game processing method according to any one of claims 17 to 21, wherein the information processing system, as the first in-game effect, changes the material of the voxel in the first voxel data corresponding to the third voxel update range including the position of the second voxel object to the third material if the material was the second material.

32. The first mesh includes a display mesh used for drawing and a collision detection mesh used for collision detection. The material of the display mesh is set by setting at least one material for each polygon of the mesh, based on the material of the voxels around each vertex that constitutes that polygon. The material of the determination mesh is set by setting one material for each polygon of the mesh, based on the material of the voxels surrounding each vertex that constitutes that polygon. In the aforementioned information processing system, Based on the collision shape set based on the position where the first action was performed, and the collision determination between the determination mesh among the first meshes, the same material as the material set on the polygon at the collision position is set as the material for the second voxel data. A game processing method according to any one of claims 17 to 21, wherein the first mesh is rendered by rendering the display mesh based on the vertex coordinates of the display mesh and the texture associated with the material for each polygon of the display mesh.

33. Based on a first voxel data defined in a virtual space, in which each of a plurality of voxels has at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its contents, and a material indicating the type of contents, a first mesh of a first voxel object corresponding to the first voxel data is generated and updated, in which the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined at least based on the material. Based on the operation input, the player character is controlled within the virtual space, and in response to a first instruction based on the operation input, The player character is instructed to perform the first action, The density of voxels in the first voxel data corresponding to the first voxel update range, which is set based on the location where the first action was performed, is reduced. The second voxel data is generated in which the density and material are set for each voxel, wherein the material of the voxel is set to the same material as the material of the voxel or the material of the first mesh of the first voxel data, which is determined based on the positional relationship with the position where the first action was performed, and the second mesh is generated in which the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined based on the material of the second voxel data. If the material of the second voxel data is the first material, a first in-game effect corresponding to the first material is generated for the second voxel object, and the size of the second voxel object is reduced as the game progresses. A game system that renders the virtual space including the first mesh and the second mesh.

34. The first voxel data is defined in the first voxel space, The second voxel data is defined in the second voxel space, The game system according to claim 33, wherein the size of the second voxel object is reduced by reducing the size of the second voxel space within the virtual space.

35. The game system according to claim 33, wherein a second voxel update range is set in the virtual space based on the position of the first voxel object, and the size of the second voxel object is reduced by lowering the density of voxels in the second voxel data corresponding to the second voxel update range.

36. The game system according to claim 33, wherein the size of the second voxel object is reduced in accordance with the passage of time during which the first in-game effect is occurring.

37. The game system according to claim 33, wherein the size of the second voxel object is reduced each time the first in-game effect occurs.

38. A game device equipped with a processor, The aforementioned processor, Based on a first voxel data defined in a virtual space, in which each of a plurality of voxels has at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its contents, and a material indicating the type of contents, a first mesh of a first voxel object corresponding to the first voxel data is generated and updated, in which the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined at least based on the material. Based on the operation input, the player character is controlled within the virtual space, and in response to a first instruction based on the operation input, The player character is instructed to perform the first action, The density of voxels in the first voxel data corresponding to the first voxel update range, which is set based on the location where the first action was performed, is reduced. The second voxel data is generated in which the density and material are set for each voxel, wherein the material of the voxel is set to the same material as the material of the voxel or the material of the first mesh of the first voxel data, which is determined based on the positional relationship with the position where the first action was performed, and the second mesh is generated in which the vertex coordinates of the mesh are determined at least based on the density, and the material of the mesh is determined based on the material of the second voxel data. If the material of the second voxel data is the first material, a first in-game effect corresponding to the first material is generated for the second voxel object, and the size of the second voxel object is reduced as the game progresses. A game device that renders the virtual space including the first mesh and the second mesh.