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

The game program and system dynamically update voxel meshes in response to player actions, enhancing strategic gameplay and immersion by leveraging voxel data for dynamic deformation and material changes, addressing the limitations of existing voxel-based games.

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

Patent Information

Application Number
JP2025031364
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-28
Publication Date
2025-08-01
Estimated Expiration
2045-02-28

AI Technical Summary

Technical Problem

Existing games using voxel data lack innovative gameplay mechanics that leverage the dynamic deformation of voxel meshes based on player actions, limiting strategic depth and engagement.

Method used

A game program and system that updates voxel data and meshes in response to player actions, allowing for dynamic deformation and strategic gameplay elements such as material changes, speed adjustments, and collision detection based on voxel update ranges, enhancing gameplay experience.

Benefits of technology

Enables new gameplay experiences with improved strategic depth and player interaction through dynamic voxel mesh deformation and material changes, increasing player engagement and immersion.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025113241000001_ABST
    Figure 2025113241000001_ABST
Patent Text Reader

Abstract

To provide a novel game using voxel data.SOLUTION: An information processing system performs movement control for a player object in a virtual space on the basis of an operation input at a position on a voxel mesh when the player object is on the voxel mesh. The information processing system generates a first voxel update range before the player object, and reduces the density of a voxel corresponding to the first voxel update range. The information processing system causes the player object to take a first action according to a first instruction based on an operation input. The information processing system continuously generates a second voxel update range at a position where the player object has passed by the first action, and increases the density of a voxel corresponding to the second voxel update range.SELECTED DRAWING: Figure 35
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

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

[0002] Conventionally, objects are managed using voxel data, and meshes of the objects are generated in a virtual space based on the voxel data (see, for example, Non-Patent Document 1). [Prior art documents] [Non-patent literature]

[0003] [Non-Patent Document 1] “Marchingcubes: A highresolution 3D surface construction algorithm”, Computer Graphics, Volume 21, Number 4, WE Lorensen, HE Cline, 1987 Summary of the Invention [Problem to be solved by the invention]

[0004] It is desirable to provide new games using voxel data.

[0005] Therefore, the present invention provides a game program, an information processing system, an information processing device, and a game processing method for executing a novel game using voxel data. [Means for solving the problem]

[0006] In order to solve the above problems, the present invention employs the following configurations (1) to (11).

[0007] (1) An example of the present invention is a game program that causes a computer to execute the following processes. · A process of updating voxel data defined in a virtual space, where for each of a plurality of voxels, the density indicating the degree to which the space defined by the voxel is virtually occupied by content is at least set, based on game processing. · A process of updating a voxel mesh that is a mesh corresponding to the voxel data, where vertex coordinates are determined based on at least the density included in the voxel data. · In game processing, when a player object in the virtual space is on the voxel mesh, a process of controlling the movement of the player object based on an operation input at the position on the voxel mesh. · In game processing, a process of generating a first voxel update range in front of the player object and reducing the density of voxels corresponding to the first voxel update range. · In game processing, a process of causing the player object to perform a first action in response to a first instruction based on an operation input. · In game processing, a process of continuously generating a second voxel update range at the position where the player object has passed through by the first action and increasing the density of voxels corresponding to the second voxel update range.

[0008] According to the configuration of (1) above, it is possible to provide a new game in which the voxel mesh dynamically deforms according to the movement of the player object.

[0009] (2) In the configuration of (1) above, the game processing may be game processing of a racing game in which a course in a virtual space is configured as an annular course and the course is circled a predetermined number of times on a field.

[0010] According to the configuration of (2) above, the player object can move on the voxel mesh updated according to its own first action. As a result, the strategic nature of the racing game can be improved.

[0011] (3) In the configuration of (2) above, the course of the field may include a ground object having a mesh other than the voxel mesh. The voxel data may be defined at least in a range above the ground object in the virtual space. The game program may cause the computer to perform movement control of the player object in the virtual space based on an operation input at a position on the ground object when the player object is on the ground object.

[0012] According to the configuration of (3) above, a ground object can provide a field suitable for a racing game.

[0013] (4) In any of the configurations of (1) to (3) above, for each of the plurality of voxels, a material indicating the type of content may be further set for the voxel data. The game program may further cause the computer to execute the following processes. · A process of generating or updating by determining the material of the voxel mesh based at least on the material included in the voxel data · A process of updating the material of the voxel whose density is increased based on the second voxel update range to the first material · A process of accelerating the player object when the player object is on the voxel mesh whose material is the first material

[0014] According to the configuration of (4) above, the player object can advantageously advance the game by moving on the voxel mesh generated by the first action. As a result, the strategic nature of the game can be further improved.

[0015] (5) In any of the configurations (1) to (4) above, for each of the plurality of voxels, a material indicating the type of content may be further set for the voxel data. The game program may further cause the computer to execute the following processing. · A process of generating or updating by determining the material of the voxel mesh based at least on the material included in the voxel data · When the material of the voxel mesh in the traveling direction of the player object is the second material, a process of reducing the moving speed in the movement control of the player object more than when it is the third material

[0016] According to the configuration of (5) above, the strategic nature of the game can be further improved.

[0017] (6) In the configuration of (5) above, when a first event occurs in the game process, the game program may further cause the computer to swap the type of content indicated by the second material and the type of content indicated by the third material.

[0018] According to the configuration of (6) above, the strategic nature of the game can be further improved. Also, the process of swapping the material of the voxel mesh can be executed with a small processing load.

[0019] (7) In any of the configurations (1) to (6) above, the game program may cause the computer to generate a second voxel update range after a predetermined period has passed since the player object passed through.

[0020] According to the configuration of (7) above, the possibility of the player object coming into contact with the updated voxel mesh can be reduced.

[0021] (8) In any of the configurations (1) to (7) above, the first action may be an action that includes at least a jump in the advancing direction. The game program may cause the computer to execute the following processing. · During a first period after the start of the first action, among the third voxel update ranges set at the positions passed by the player object, a range above the surface obtained by tilting the surface from the start position of the first action to the current position of the player object by a predetermined angle is excluded, and the remaining range is set as the second voxel update range. · After the elapse of the first period, the third voxel update range is set as the second voxel update range.

[0022] According to the configuration (8) above, it is possible to make it easier for the player object to enter the voxel mesh updated according to the setting of the second voxel update range.

[0023] (9) In any of the configurations (1) to (8) above, the game program may further cause the computer to generate a fourth voxel update range outside the second voxel update range at the start of the first action, and increase the density of the voxels corresponding to the fourth voxel update range.

[0024] According to the configuration (9) above, it is possible to make the position of the voxel mesh updated according to the setting of the second voxel update range easier for the player to understand. Also, it is possible to make it easier for the player object to enter the voxel mesh.

[0025] (10) In any of the configurations (1) to (9) above, the voxel mesh may include a collision mesh used for collision detection with player objects and a display mesh drawn based on a virtual camera, or may be the collision mesh and also the display mesh. For each of the plurality of voxels, a material indicating the type of content may be further set for the voxel data. The game program may further cause the computer to execute the following processing. · A process of determining the material of the collision mesh based at least on the materials included in the voxel data · A process of drawing a virtual space including the display mesh based on the vertex coordinates of the display mesh and the texture corresponding to the material of the display mesh, with the collision mesh as the display mesh

[0026] According to the configuration (10) above, collision detection and drawing can be performed using the voxel mesh updated by the setting of the voxel update range described above.

[0027] (11) In any of the configurations (1) to (9) above, the voxel mesh may be a collision mesh used for collision detection with player objects. For each of the plurality of voxels, a material indicating the type of content may be further set for the voxel data. The game program may further cause the computer to execute the following processing. · A process of generating or updating a display mesh corresponding to the voxel data and drawn based on a virtual camera by determining the vertex coordinates of the mesh based at least on the density included in the voxel data and determining the material of the mesh based at least on the materials included in the voxel data · A process of drawing a virtual space including the display mesh based on the vertex coordinates of the display mesh and the texture corresponding to the material of the display mesh

[0028] According to the configuration of the above (11), collision determination can be performed using the voxel mesh updated by the setting of the above voxel update range.

[0029] Another example of the present invention may be an information processing apparatus or an information processing system that executes the processes in the above (1) to (11). Further, another example of the present invention may be a game processing method for causing an information processing system to execute the processes in the above (1) to (11).

Effect of the Invention

[0030] According to the above game program, information processing system, information processing apparatus, or game processing method, a new game using voxel data can be provided.

Brief Description of the Drawings

[0031] [Figure 1] A diagram showing an example of a state in which a left controller and a right controller are attached to the main body device [Figure 2] A diagram showing an example of a state in which the left controller and the right controller are respectively removed from the main body device [Figure 3] A six-sided view showing an example of the main body device [Figure 4] A six-sided view showing an example of the left controller [Figure 5] A six-sided view showing an example of the right controller [Figure 6] A block diagram showing an example of the internal configuration of the main body device [Figure 7] A block diagram showing an example of the internal configuration of the main body device, the left controller, and the right controller [Figure 8] A diagram showing an example of a terrain object that is a voxel object [Figure 9] A diagram showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted [Figure 10] A diagram showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted [Figure 11]Figure showing an example of voxel data [Figure 12] Figure showing an example of material data [Figure 13] Figure showing an example of the game space when an update event occurs [Figure 14] Figure showing an example of the update range [Figure 15] Figure showing an example of the vertex setting method [Figure 16] Figure showing an example of the method for determining the material of a vertex [Figure 17] Figure showing an example of vertex simplification [Figure 18] Figure showing an example of conditions related to materials [Figure 19] Figure showing an example of the mesh generated based on each vertex [Figure 20] Figure showing an example of a quadrilateral forming a mesh being divided into two triangles [Figure 21] Figure showing an example of the method for determining the material of a polygon constituting the display mesh [Figure 22] Figure showing an example of the materials set for each vertex of two adjacent polygons [Figure 23] Figure showing an example of applying a texture to a polygon [Figure 24] Figure showing an example of the method for determining the material of a polygon constituting the judgment mesh [Figure 25] Figure showing an example of a game image representing the state of a player character moving on a terrain object [Figure 26] Figure showing an example of a game image representing the state of a player character extracting a fragment object from a terrain object [Figure 27] Figure showing an example of a game image representing the state where a fragment object is generated when a player character destroys a terrain object [Figure 28] Figure showing an example of a game image in a state where a throwing action by a player character is possible [Figure 29]A diagram showing an example of a game image after the terrain object shown in FIG. 28 has been changed due to the contact of a fragment object with the terrain object [Figure 30] A diagram showing an example of a game image displayed in a game system [Figure 31] A diagram showing an example of a game image representing the state in which a player object is performing a generation action [Figure 32] A diagram showing an example of a voxel update range set at the time when one frame has elapsed since the start of a generation action [Figure 33] A diagram showing an example of a voxel update range set at the time when two frames have elapsed since the start of a generation action [Figure 34] A diagram showing an example of a voxel update range set after a certain amount of time has elapsed since the start of a generation action [Figure 35] A diagram showing an example of a game image after a walking path object has been generated [Figure 36] A diagram showing an example of a game image when a player object moves on a walking path object [Figure 37] A diagram showing an example of a game image before and after a soil object and a mud object are swapped [Figure 38] A diagram showing an example of various data used in information processing in game system 1 [Figure 39] A flowchart showing an example of the flow of game processing executed by game system 1 [Figure 40] A sub - flowchart showing an example of the detailed flow of the speed calculation process in step S2 shown in FIG. 39 [Figure 41] A sub - flowchart showing an example of the detailed flow of the voxel update process in step S3 shown in FIG. 39 [Figure 42] A sub - flowchart showing an example of the detailed flow of the voxel update process in step S3 shown in FIG. 39 [Figure 43]Sub - flowchart showing an example of the detailed flow of the player object control process in step S10 shown in FIG. 39

Mode for Carrying Out the Invention

[0032] [1. Configuration of the Game System] Hereinafter, a game system according to an example of the present embodiment will be described. An example of the game system 1 in the present embodiment includes a main body device (information processing device; functioning as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The main body device 2 is detachable from the left controller 3 and the right controller 4 respectively. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 as separate entities (see FIG. 2). Hereinafter, the hardware configuration of the game system 1 of the present embodiment will be described, and then the control of the game system 1 of the present embodiment will be described.

[0033] FIG. 1 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are attached to the main body device 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processing) in the game system 1. The main body device 2 includes a display 12. The left controller 3 and the right controller 4 are devices provided with operation units for the user to input.

[0034] FIG. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are respectively removed from the main body device 2. As shown in FIGS. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller".

[0035] FIG. 3 is a six-sided view showing an example of the main body device 2. As shown in FIG. 3, the main body device 2 includes a substantially plate-shaped housing 11. In the present embodiment, the main surface of the housing 11 (in other words, the front surface, that is, the surface on which the display 12 is provided) is generally rectangular in shape.

[0036] Note that the shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Also, the main body device 2 alone or the integrated device in which the left controller 3 and the right controller 4 are attached to the main body device 2 may be a portable device. Further, the main body device 2 or the integrated device may be a hand-held device. Also, the main body device 2 or the integrated device may be a transportable device.

[0037] As shown in FIG. 3, the main body device 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays an image generated by the main body device 2. In the present embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.

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

[0039] The main body device 2 includes a speaker (that is, the speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed in the main surface of the housing 11. Then, the output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.

[0040] The main body device 2 also includes a left terminal 17 which is a terminal for the main body device 2 to perform wired communication with the left controller 3, and a right terminal 21 for the main body device 2 to perform wired communication with the right controller 4.

[0041] As shown in FIG. 3, the main body device 2 includes a slot 23. The slot 23 is provided on the upper surface of the housing 11. The slot 23 has a shape capable of mounting a storage medium of a predetermined type. The storage medium of the predetermined type is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and information processing devices of the same type. The storage medium of the predetermined type is used, for example, to store data (e.g., save data of an application, etc.) used in the main body device 2 and / or programs (e.g., application programs, etc.) executed by the main body device 2. Also, the main body device 2 includes a power button 28.

[0042] The main body device 2 includes a lower terminal 27. The lower terminal 27 is a terminal for the main body device 2 to communicate with the cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main body device 2 alone is placed on the cradle, the game system 1 can display an image generated and output by the main body device 2 on a stationary monitor. Also, in the present embodiment, the cradle has a function of charging the placed integrated device or the main body device 2 alone. Further, the cradle has a function of a hub device (specifically, a USB hub).

[0043] FIG. 4 is an orthographic view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In the present embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the vertical direction (i.e., the y-axis direction shown in FIGS. 1 and 4). The left controller 3 can be gripped in a vertically long orientation when removed from the main body device 2. The housing 31 has a shape and size that can be gripped with one hand, particularly the left hand, when gripped in a vertically long orientation. Also, the left controller 3 can be gripped in a horizontally long orientation. When the left controller 3 is gripped in a horizontally long orientation, it may be gripped with both hands.

[0044] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting a direction. The user can input a direction according to the tilting direction (and an input of a magnitude according to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may include, instead of the analog stick, a cross key or a slide stick capable of slide input as a direction input unit. Also, in the present embodiment, it is possible to input by pressing the analog stick 32.

[0045] The left controller 3 is provided with various operation buttons. The left controller 3 has four operation buttons 33 to 36 (specifically, a right direction button 33, a down direction button 34, an up direction button 35, and a left direction button 36) on the main surface of the housing 31. Further, the left controller 3 is provided with a recording button 37 and a -(minus) button 47. The left controller 3 has a first L button 38 and a ZL button 39 at the upper left of the side surface of the housing 31. Also, the left controller 3 has a second L button 43 and a second R button 44 on the side surface of the housing 31 on the side where it is attached when attached to the main body device 2. These operation buttons are used to give instructions according to various programs (for example, an OS program or an application program) executed by the main body device 2.

[0046] Also, the left controller 3 is provided with a terminal 42 for the left controller 3 to perform wired communication with the main body device 2.

[0047] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In the present embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the vertical direction. The right controller 4 can also be gripped in a vertically long orientation when removed from the main body device 2. The housing 51 has a shape and size that can be gripped with one hand, particularly the right hand, when gripped in a vertically long orientation. Also, the right controller 4 can be gripped in a horizontally long orientation. When the right controller 4 is gripped in a horizontally long orientation, it may be gripped with both hands.

[0048] Similar to the left controller 3, the right controller 4 is provided with an analog stick 52 as a direction input unit. In this embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. Also, instead of the analog stick, the right controller 4 may be provided with a cross key or a slide stick capable of slide input. Also, similar to the left controller 3, the right controller 4 is provided with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. Further, the right controller 4 is provided with a + (plus) button 57 and a home button 58. Also, the right controller 4 is provided with a first R button 60 and a ZR button 61 at the upper right of the side surface of the housing 51. Also, similar to the left controller 3, the right controller 4 is provided with a second L button 65 and a second R button 66.

[0049] Also, the right controller 4 is provided with a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.

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

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

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

[0053] The main body device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23 and reads and writes data to and from a predetermined type of storage medium (for example, a dedicated memory card) mounted on the slot 23 according to an instruction from the processor 81.

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

[0055] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly) with an external device via a network. In the present embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device by a method compliant with the Wi-Fi (registered trademark) standard as a first communication mode. Further, the network communication unit 82 performs wireless communication with another main body device 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication by the second communication mode enables wireless communication with another main body device 2 arranged within a closed local network area, and realizes a function enabling so-called "local communication" in which data is transmitted and received by direct communication between a plurality of main body devices 2.

[0056] The main body device 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. Although the communication method between the main body device 2, the left controller 3, and the right controller 4 is arbitrary, in the present embodiment, the controller communication unit 83 communicates with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.

[0057] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27. When performing wired communication with the left controller 3, the processor 81 transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When performing wired communication with the right controller 4, the processor 81 transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When performing wired communication with the right controller 4, the processor 81 transmits data to the cradle via the lower terminal 27. As described above, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4. When an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 or the main unit 2 alone is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

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

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

[0060] The main body device 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input / output of audio data to / from the speakers 88 and the audio input / output terminal 25.

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

[0062] Also, the battery 98 is connected to the lower terminal 27. When an external charging device (for example, a cradle) is connected to the lower terminal 27 and power is supplied to the main body device 2 via the lower terminal 27, the supplied power is used to charge the battery 98.

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

[0064] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 both by wired communication via the terminal 42 and by wireless communication without using the terminal 42. The communication control unit 101 controls the communication method that the left controller 3 performs with respect to the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. Also, when the left controller 3 is removed from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

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

[0066] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). Also, the left controller 3 includes an analog stick (described as "stick" in FIG. 7) 32. Each button 103 and the analog stick 32 output information regarding the operation performed on themselves to the communication control unit 101 repeatedly at an appropriate timing.

[0067] The communication control unit 101 acquires information regarding input (specifically, information regarding operations or detection results by sensors) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing predetermined processing on the acquired information) to the main body device 2. Note that the operation data is repeatedly transmitted at a rate of once every predetermined time. Note that the intervals at which the information regarding input is transmitted to the main body device 2 may be the same or different for each input unit.

[0068] When the above operation data is transmitted to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine operations on each button 103 and the analog stick 32 based on the operation data.

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

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

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

[0072] The right controller 4 includes a power supply unit 118. The power supply unit 118 has the same function as the power supply unit 108 of the left controller 3 and operates in the same manner.

[0073] [2. Overview of Processing in the Game System] Next, with reference to FIGS. 8 to 29, an overview of the processing executed in the game system 1 will be described. In the present embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters operated by a player) are arranged in a game space, which is a three-dimensional virtual space, and causes the display device to display it. Note that, in the present embodiment, the display device on which the game image is displayed may be the above-described display 12 or a stationary monitor.

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

[0075] FIG. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 8, in the present embodiment, a terrain object representing a terrain such as the ground is defined in shape by voxel data (that is, it is a voxel object). Each cube shown in FIG. 8 represents a terrain object. In FIG. 8, the portions that are the sides of the terrain object are shown in thick lines, but this thick line is added for the purpose of making the drawing easier to view, and in reality, the sides of the terrain object do not need to be shown thickly.

[0076] Note that the terrain object shown in FIG. 8 is generated, for example, according to the rule that "if the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and if it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 8 is shown for the purpose of easily exemplifying the relationship between voxels and voxel objects. In the present embodiment, in reality, for example, like the terrain object shown in FIG. 13 described later, a voxel object is generated according to a rule that results in a complex shape (based on voxel data). Note that the rule for determining the shape of the voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate a voxel object as shown in FIG. 8 or a voxel object as shown in FIG. 13 based on object data.

[0077] Regarding the voxel object, the shape can be changed by changing the voxel data of each voxel. FIGS. 9 and 10 are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted. That is, when the hatched portion of the terrain object shown in FIG. 9 is destroyed, the terrain object changes to the shape shown in FIG. 10. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data described later so as to indicate that there is no terrain object for the voxels in the hatched portion. Note that when the game system 1 adds a terrain object, it can also easily change the shape of the terrain object by changing the voxel data of each voxel, in the same manner as when erasing the terrain object.

[0078] In this way, the game system 1 can freely change the shape of the voxel object by rewriting the voxel data. For example, when the shape of a terrain object changes as a result of being destroyed for some reason (e.g., a player character strikes the terrain object) in the game, the game system 1 does not directly change the data indicating the outer shape of the terrain object (i.e., the mesh described later), but can freely change the shape of the terrain object by changing the voxel data used for generating the terrain object.

[0079] In the present embodiment, it is assumed that voxels are defined throughout the game space (that is, the voxel space in which voxels are set corresponds to the entire game space). However, the voxel space does not necessarily have to be set throughout the game space and may be set in a partial region of the game space. When the voxel space is set in a partial region of the game space, the shape of the voxel object is defined by the voxel data regarding the voxels in the voxel space, and the position of the voxel object in the game space is defined by the position of the voxel space in the game space. Also, in the game space, a main voxel space set throughout the game space and a sub-voxel space set in a partial region of the game space may be set. At this time, the game system 1 stores voxel data for each voxel space.

[0080] FIG. 11 is a diagram showing an example of voxel data. The voxel data includes density data, a first material ID, a second material ID, material mixing ratio data, and state data for each voxel defined in the game space. In the voxel data in the present embodiment, these data are set for each voxel.

[0081] The density data indicates the density which is an index used to define the shape of the voxel object based on the voxel (specifically, the shape defined by a mesh described later). Although details will be described later, the position and shape of the surface of the voxel object (that is, the mesh described later) are determined based on the above density.

[0082] In this embodiment, the density can take an integer value in the range from a lower limit value (for example, 0) to an upper limit value (for example, 255). In this embodiment, in the game system 1, when the value of the density set for a voxel is high, the ratio of the volume occupied by the region within the voxel object in the voxel tends to be large, and when the value of the density is low, the ratio tends to be small. The surface shape of the voxel object is determined based on the density. Thus, the density is an index that affects the ratio of the volume occupied by the region within the voxel object in the voxel. It can also be said that the density is an index indicating the degree to which the space of the voxel is virtually occupied by the content (that is, the virtual content of the voxel object). For example, when the density is 0, the inside of the voxel is empty, when the density is 255, all of the inside of the voxel is the content of the voxel object, and when the density is a value between 0 and 255, the inside of the voxel can be occupied by the content of the voxel object at a ratio corresponding to the value. Then, based on the above density, the shape of the mesh, that is, the surface shape of the voxel object, can be determined. The mesh can also be said to be the surface of the part where the content exists in the voxel, or the boundary between the part where the content exists and the part where it does not exist in the voxel. Note that the volume occupied by the region within the voxel object generated based on the above density does not necessarily have to be exactly the volume corresponding to the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 8 and the method of generating a voxel object as shown in FIG. 13, even if they are based on the same density, the volume of the voxel object may be different.

[0083] In other embodiments, the density may indicate either a state in which the volume occupied by the region within the voxel object occupies the entire region within the voxel or a state in which the volume occupied by the region within the voxel object is not included in the region within the voxel. For example, the density data may be data that can only take 0 or 1.

[0084] The first material ID and the second material ID are information indicating the material (in other words, substance) of the voxel. Here, in the present embodiment, materials such as sand, rock, or soil are set for the voxel. Note that in the game system 1, a plurality of types of materials are prepared as materials that can be set for the voxel (refer to the material data shown in FIG. 12). In the present embodiment, up to two materials out of the plurality of types of prepared materials can be set for one voxel. The first material ID is an ID indicating the first material set for the voxel, and the second material ID is an ID indicating the second material set for the voxel. Although details will be described later, the material of the voxel object (that is, the material set for the polygon of the voxel object) is determined based on the material set for the voxel.

[0085] As described above, in the present embodiment, the voxel data includes an ID indicating the material. However, in other embodiments, the voxel data may be a data structure including data directly indicating the content of the material (that is, the name, properties, and drawing setting information described later).

[0086] The material mixing ratio data is an example of data indicating the ratio of each material in the voxel. In the present embodiment, since the number of material IDs set in one voxel is up to two, the material mixing ratio data indicating the ratio of one of the materials indicated by the first material ID and the material indicated by the second material ID can also represent the other ratio. In the present embodiment, the material mixing ratio is a value indicating the ratio of the second material to the whole composed of the first material and the second material by a value of 0 or more and 1 or less. For example, when the material mixing ratio set in a certain voxel is 0.4, it represents that in the voxel, the first material and the second material are composed in a ratio of 0.6:0.4. Although details will be described later, the appearance and properties of the voxel object are determined based on the material. The material mixing ratio is used to determine the appearance and properties of the voxel object. In other embodiments, the material mixing ratio may be a value indicating the ratio of the first material. Also, the ratio of the materials in the voxel may be represented by respective values indicating the ratio of each material. In particular, in other embodiments, when three or more types of materials can be set instead of up to two types, the ratio of the materials in the voxel is represented as a plurality of values respectively indicating the ratio of each material.

[0087] Note that in the present embodiment, it is not always necessary to set two types of materials in the voxel, and one type of material may be set. For example, when one type of material is set in a certain voxel, the first material ID indicates the material, and the material mixing ratio is set to 0.

[0088] The state data indicates the state set in the voxel. The specific content and number of types of the state data are arbitrary. In the present embodiment, the state data includes data indicating the amount of damage set in the voxel. Note that in other embodiments, the state data may include data indicating, for example, whether the voxel is in a wet state (and the degree thereof).

[0089] As described above, in this embodiment, since the voxel data includes the material ID, the game system 1 stores material data that defines the content of the material indicated by the material ID. FIG. 12 is a diagram showing an example of the material data. As shown in FIG. 12, in the material data in this embodiment, for each material, the material ID is associated with the name, properties, and drawing setting information set for the material.

[0090] The name included in the material data is the name set for the material (for example, soil, sand, grass, etc.). Although details will be described later, during the game, the name of the material of the voxel object may be displayed (see FIG. 28). To perform such display, the material data includes information on the name of the material.

[0091] The properties included in the material data are the properties set for the material. The properties of the material are the properties that the voxel object to which the material is set has in the game. Note that the specific content and number of types of the properties of the material are arbitrary. For example, at least any of the following information may be set as the properties of the material. · Hardness · Weight · Slipperiness · Damage setting when the player character touches · Temperature · Whether another object can adhere to the voxel object · Amount of recovery of the player character's physical strength when the player character destroys or acquires the voxel object · Amount of in-game currency acquired by the player character when the player character destroys or acquires the voxel object In other embodiments, information different from the above may be set as the information indicating the properties of the material.

[0092] In this embodiment, the material data includes an ID indicating the property as information specifying the property of the material (see FIG. 12). Although not shown, the game system 1 stores property information in which, for each prepared property, the content of the property (for example, a value indicating the above-described weight or slipperiness) is associated with the property ID. By referring to the above property information, the game system 1 can specify the specific content of the property set for the material.

[0093] The rendering settings included in the material data are information indicating settings related to rendering, such as a texture used for rendering the voxel object to which the material is set. In this embodiment, the material data includes, as information on the rendering settings, the ID of the texture used for rendering the voxel object to which the material is set (see FIG. 12). Although not shown, the game system 1 stores texture information in which, for each prepared texture, the texture ID and the texture indicated by the texture ID are associated. By referring to the above texture information, the game system 1 can specify the specific content of the texture set for the material. In other embodiments, in addition to the texture information, any information related to the shading settings may be set as the information on the rendering settings. For example, the reflectivity, information related to the normal, etc. may be set.

[0094] Also, the material data may include other data than the data shown in FIG. 13. 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 footstep sound output when the player character walks on the voxel object based on the voxel.

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

[0096] [2-2. Update of Voxel Data] During the game, when the above-described voxel data is updated, the voxel object is deformed. In the present embodiment, when a game event (hereinafter referred to as an "update event") for updating the voxel object occurs, the game system 1 updates the voxel data. The specific content of the update event is arbitrary. The update event may be, for example, that a character appearing in the game has performed an action to deform the voxel object (for example, the player character has punched the voxel object), or an event that deforms the voxel object has occurred (for example, an object thrown by a character has come into contact with the voxel object, or a bomb has exploded).

[0097] FIG. 13 is a diagram showing an example of the game space when an update event occurs. The situation shown in FIG. 13 is a situation where the player character 201 has performed a punch action on the terrain object 202, which is a voxel object. Although details will be described later, in the example shown in FIG. 13, the voxel data is updated so that the terrain object 202 around the position where the punch action by the player character 201 hits is deleted. As a result, the state where the terrain object 202 is destroyed by the punch action of the player character 201 is expressed.

[0098] In this embodiment, when an update event occurs, the game system 1 sets an update range (update range 203 shown in FIG. 13) for updating the voxel object in the game space. The position, shape, and size of the update range are arbitrary. The position of the update range may be determined based on, for example, the position where an object related to the occurred update event (e.g., a player character who performed a punch) and the voxel object are in contact. In the example shown in FIG. 13, the position of the update range 203 may be determined based on the position where the punch by the player character 201 hits, and for example, the hit position or the position a predetermined distance ahead from the hit position may be set as the center position of the update range 203. The shape and size of the update range may be determined in advance to be a shape corresponding to the type of the update event. For example, when an update event due to the punch of the player character 201 occurs, the shape and size of the update range may be determined as a sphere with a predetermined size as shown in FIG. 13. Also, the size of the update range may be determined according to a value indicating the degree of influence of the occurred update event (e.g., the strength of the punch or the size of the explosion).

[0099] The game system 1 changes the density of the voxels corresponding to the set update range. Note that the voxels corresponding to the update range are, for example, the voxels within the update range or the voxels overlapping with the update range. As a result of the change in density, the mesh of the voxel object is changed by the process described later, and thus the shape of the voxel object (the visible shape and the shape used for collision determination) is changed. Note that in other embodiments, in addition to changing the density of the voxels included in the update range, the game system 1 may change the material (i.e., the first material, the second material, and the material mixing ratio) in the voxels or change the state of the voxels.

[0100] 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 indicating the update range set in the game space, and makes the above determination based on the value of the SDF. The SDF represents, with a sign, the distance from a defined shape for any position. FIG. 14 is a diagram showing an example of the update range. In the example shown in FIG. 14, a spherical update range is set in the game space. For example, in the example shown in FIG. 14, among the positions in the game space, the SDF value becomes negative for the positions inside the shape represented by the SDF, and the SDF value becomes positive for the positions outside the shape represented by the SDF. In this example, it is possible to determine whether it is included in the update range depending on whether the SDF value is positive or negative. Also, by using the value of the signed distance, not only simple inside / outside determination but also processes such as correction and interpolation can be performed.

[0101] In the above, an example in which a change is added to the voxel object such that the voxel object within the update range is deformed as if it were erased has been described, but the changes added to the voxel object using the update range are not limited to this. For example, a change in which a voxel object is newly added within the update range (that is, the volume occupied by the area within the voxel object increases by the amount of the update range) may be added to the voxel object (see FIG. 29 described later). Also, a change may be added to the voxel object such that only the material of the voxels within the update range changes without changing the density of the voxels. Further, a change combining a change in the density of the voxels and a change in the material may be added.

[0102] [2-3. Calculation of Vertices] When the density of the voxels is updated as described above, the game system 1 sets vertices based on the updated voxel data. The above vertices can be the vertices of the mesh of the voxel object. Although details will be described later, in this embodiment, the above vertices are simplified, and the simplified vertices become the vertices of the mesh of the voxel object.

[0103] FIG. 15 is a diagram showing an example of a method for setting vertices. In FIGS. 15 to 24 described below, for the purpose of making the drawings easy to view and the explanations easy to understand, voxels, vertices, meshes, etc. are represented two-dimensionally, but in reality, vertices and meshes are set in a three-dimensional space based on voxels in the three-dimensional space. In this embodiment, the game system 1 uses a method of setting vertices at coordinates based on the positions and densities of a plurality of surrounding voxels for a portion where a voxel having a density of a setting indicating its existence (that is, a density equal to or higher than a reference value described later) and a voxel having a density of a setting indicating its non-existence (that is, a density less than the reference value described later) are adjacent. Details of this method will be described below.

[0104] As described above, in the present embodiment, the density set for the voxels is set in the range of 0 to 255. A voxel with a density of 0 is completely in the air, and a voxel with a density of 255 represents a state where it is completely filled. Densities between 0 and 255 are treated interpolatively and used for vertex determination. And in the present embodiment, voxels with a density equal to or higher than the reference value are virtually treated as being inside the object, and voxels with a density lower than the reference value are treated as being outside the object. It can also be said that voxels with a density equal to or higher than the reference value are virtually treated as voxels indicating existence, and voxels with a density lower than the reference value are virtually treated as voxels indicating non-existence. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., set the reference value = 1), and the reference value can be, for example, 128. In the example shown in FIG. 15, the density is 0 in voxel 211 and other outer voxels, the density of voxel 212 is 100 which is lower than the reference value, and the densities of voxels 213 and 214 are set to 150 and 210 which are equal to or higher than the reference value. In the present embodiment, the game system 1 generates vertices between voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. Specifically, for each region spanning eight (four in the drawing) adjacent voxels (the region surrounded by the dotted line in the drawing), a determination is made as to whether to generate a vertex. That is, vertices are generated in the region spanning both voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. The coordinates of the vertices are determined by comparing the densities of adjacent voxels for each of the X, Y, and Z axes and performing interpolation based on the density difference. By setting the normal information that defines the position and orientation of the straight line connecting the vertices, the coordinates of the vertices can be further calculated based on the normal information. Note that the normal information may be held in advance for at least some of the voxels, or if not held, the normal information may also be calculated based on the densities of adjacent voxels. In FIG. 15, since the density of voxel 212 is lower than the reference value, voxel 212 is treated as being outside the object in the determination of the presence or absence of vertices, but the density value itself of voxel 212 is used for the calculation of the coordinates of the generated vertices.If the reference value is set to a value lower than the density of voxel 212, the number of vertices will further increase on the upper right side and the upper left side of voxel 212 in FIG. 15.

[0105] By setting the vertices as described above, when generating a mesh that connects each of the set vertices (or each vertex after performing the simplification process described later on each of the set vertices), a shape having a volume that reflects the density of each voxel to some extent can be generated. However, depending on the relationship with adjacent voxels, it is possible that a voxel with a density of 0 includes a region within the object, or a voxel with a density of 255 includes a region outside the object. Also, in this embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume is also smaller because the number of vertices is smaller compared to the case of processing them as inside the object. Thus, it is not necessary to calculate the polygon mesh so as to have a volume that exactly corresponds to the density value.

[0106] [2-4. Determination of Vertex Material] The game system 1 determines the material for each of the vertices set as described above. The material of a vertex is determined based on the materials of the voxels around the vertex. The voxels around the vertex are, for example, the voxels used to determine whether to generate the vertex (that is, the voxels that overlap with the "region spanning voxels" described above). Note that in other embodiments, the voxels used to determine the material of the vertex do not have to be the same as the voxels used to determine the generation of the vertex, and they may be different.

[0107] FIG. 16 is a diagram showing an example of a method for determining the material of a vertex. In the example shown in FIG. 16, it is assumed that a vertex 219 is set for four voxels 215 to 218, and the four voxels 215 to 218 are the above-mentioned "voxels around the vertex". In an actual three-dimensional space, the number of voxels around the vertex is eight. Also, in the example shown in FIG. 16, for voxel 215, the density is set to 255, the first material is "sand", and the material mixing ratio is 0 (that is, the first material: the second material = 1:0, or the second material may not be set). For voxel 216, the density is set to 0 (the first and second materials may not 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 (that is, the first material: the 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 (that is, the first material: the second material = 0.6:0.4). Also, the coordinates indicating the position of vertex 219 are assumed to be (X, Y) = (0.8, 0.6). Note that the coordinate system of these coordinates has the left-right direction in FIG. 16 as the X coordinate, the up-down direction as the Y coordinate, and the center position of the lower-left voxel 217 (the position of the white circle shown in FIG. 13) among the center positions of voxels 215 to 218 as (0, 0).

[0108] 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 the 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 as the distance from the center position of the voxel to the vertex is closer. In the present 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 certain voxel is calculated according to the following formula (1). (Weight value) = |(1 - x1) - x2|·|(1 - y1) - y2|…(1) In the example shown in FIG. 16, the weight values of each of the voxels 215 to 218 calculated according to the above formula (1) 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

[0109] Also, the game system 1 calculates the density of the material for each voxel. Here, the density of the material is a value obtained by multiplying the ratio of the material occupied by the material among the materials set in the voxel by the density of the voxel. In the present embodiment, as the density of the voxel, a value obtained by normalizing the above-described value from 0 to 255 to a value from 0 to 1 is used. In the example shown in FIG. 16, for voxel 215, since the only material set is sand, the above ratio regarding the sand material is 1, and the density of the voxel is 1, so the density of the sand material is 1. For voxel 216, since the density is 0 and no material is set, the density of the material is not calculated. Or, if any material is set, the density of the material is 0. For voxel 217, the above ratios of the set sand material and grass material are 0.7 and 0.3, respectively, and the density of the voxel is 204 / 255 = 0.8, so 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 above ratios of the set soil material and grass material are 0.6 and 0.4, respectively, and the density of the voxel is 153 / 255 = 0.6, so 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.

[0110] Then, the game system 1 calculates the above evaluation value for each material based on the above weight value and the density of the material. In the present embodiment, the evaluation value of the material is a value obtained by adding weights according to the weight value for each voxel to the density of the material calculated for each voxel and summing for each surrounding voxel. In the example shown in FIG. 16, for the evaluation value of the sand material, the density of the material for voxel 215 is 1 and the weight value is 0.12, and the density of the material for voxel 217 is 0.56 and the weight value is 0.08. Therefore, 1·0.12 + 0.56·0.08 = 0.1648. Also, for the evaluation value of the grass material, the density of the material for voxel 217 is 0.24 and the weight value is 0.08, and the density of the material for voxel 218 is 0.24 and the weight value is 0.32. Therefore, 0.24·0.08 + 0.24·0.32 = 0.096. Also, for the evaluation value of the soil material, the density of the material for voxel 218 is 0.36 and the weight value is 0.32. Therefore, 0.36·0.32 = 0.1152.

[0111] The game system 1 determines the vertex materials based on the evaluation values for each material. Specifically, a predetermined number of materials are determined as the vertex materials in descending order of the evaluation values. In this embodiment, two materials with large evaluation values are determined as the vertex materials. In the example shown in FIG. 16, since the evaluation values of the materials of sand, grass, and soil are 0.1648, 0.096, and 0.1152 respectively, the vertex materials are determined as the sand material and the soil material. Further, the game system 1 calculates the ratio of the two determined materials based on the above evaluation values. In this embodiment, the ratio of the two materials may be expressed as a second material ratio, which is the ratio of the second material to the whole, similar to the above material mixing ratio. In the example shown in FIG. 16, for example, when the first material is the soil material and the second material is set as the sand material, the second material ratio is represented as 0.1648 / (0.1648 + 0.1152) ≈ 0.59. Note that in other embodiments, as the value representing the ratio of the two materials, a value indicating the ratio of the first material may be used. Also, respective values indicating the ratio of each material may be used.

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

[0113] As described above, in the present embodiment, for each vertex, with respect to the material IDs included in the voxel data of a plurality of surrounding voxels, a priority parameter (for example, an evaluation value) for each material ID is calculated based on the voxel data. Then, based on the priority parameter, up to a predetermined number (here, two) of material IDs with high priority are selected and determined as the material ID of the vertex. Note that the specific parameter used as the priority parameter is not limited to the above evaluation value. For example, in other embodiments, an evaluation value calculated using the density of the material instead of the above weight value may be used as the priority parameter.

[0114] In the present embodiment, an evaluation value, which is an example of the priority parameter, is calculated based on the density of a plurality of voxels around the vertex so that the priority of the material set in the voxel with high density becomes high (that is, the evaluation value of the material becomes large and the material is more likely to be selected). According to this, the material of the vertex can be determined by reflecting the magnitude of the density set in the voxel.

[0115] Also, in the present embodiment, an evaluation value, which is an example of the priority parameter, is calculated based on the distance from the reference position (specifically, the center position) of a plurality of voxels around the vertex to the vertex so that the priority of the material set in the voxel closer to the vertex becomes high. According to this, the material of the vertex can be determined by reflecting the distance between the voxel and the vertex.

[0116] Also, in the present embodiment, it can be said that an evaluation value, which is an example of the priority parameter, is calculated based on the material mixing ratio of a plurality of voxels around the vertex so that the priority of the material with a high material mixing ratio becomes high. According to this, when a plurality of materials are set in one voxel, the material of the vertex can be determined by reflecting the ratio of each material.

[0117] [2-5. Simplification of Vertex] In this embodiment, the game system 1 simplifies each vertex calculated as described above. That is, the game system 1 reduces the number of vertices by grouping several of the vertices calculated as described above and replacing them with a single vertex. Although details will be described later, the coordinates (i.e., positions) and materials of the vertices to be replaced are set based on a plurality of vertices before replacement. By such simplification, the number of vertices and the number of polygons constituting the mesh of the voxel object can be reduced, and the amount of memory used for processing and the processing load can be reduced.

[0118] In this embodiment, the game system 1 simplifies by expressing each vertex using an SVO (Sparse Voxel Octree). FIG. 17 is a diagram showing an example of vertex simplification. In FIG. 17, one square indicated by a solid line shown in FIG. 17(a) represents one vertex division region. Here, the vertex division region is a square region having the center position of the voxel as a vertex (in the actual three-dimensional space, the vertex division region is a cube or a rectangular parallelepiped), and is a region having the dotted lines in FIGS. 15 and 16 described above as sides. Further, in FIG. 17, the vertex division region in which the letter "v" is shown inside indicates the vertex division region in which vertices are set.

[0119] In this embodiment, the game system 1 determines whether or not it is possible to simplify the vertices within a predetermined number (four in FIG. 17, eight in the actual three-dimensional space) of mutually adjacent vertex division regions. When it is determined that simplification is possible, the vertices within the predetermined number of vertex division regions are simplified.

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

[0121] In this embodiment, the game system 1 performs simplification in multiple stages. The number of stages is arbitrary, but in Fig. 17, only the first two stages are illustrated and described. Fig. 17(b) shows the state after the first-stage simplification, and Fig. 17(c) shows the state after the second-stage simplification. In the second-stage simplification, it is determined whether simplification is possible for the vertices generated by the first-stage simplification. In the example shown in Fig. 17, as a result of determining that the vertex division region within the range enclosed by the dotted line in Fig. 17(b) can be simplified, the vertices of the vertex division region are simplified, resulting in the state shown in Fig. 17(c). Note that the determination conditions for whether the first-stage simplification is possible and the determination conditions for whether the second-stage simplification is possible may be the same or different.

[0122] Regarding the determination of whether simplification is possible, the specific method is arbitrary. In this embodiment, as conditions for the above determination, conditions related to the shape of the voxel object and conditions related to the material are used. In this embodiment, when both the conditions related to the shape of the voxel object and the conditions related to the material are satisfied, it is determined that simplification is possible, and when at least one of the conditions related to the shape of the voxel object and the conditions related to the material is not satisfied, it is determined that simplification is impossible.

[0123] The condition regarding the shape means, for example, that the shape formed by each vertex before simplification and the shape formed by each vertex after simplification are not greatly changed. For example, whether or not the shape formed by each vertex is not greatly changed before and after simplification can also be determined by calculating an index indicating the error between the mesh before simplification and the mesh after simplification and determining whether or not the index is less than or equal to a predetermined allowable value. Also, for example, when the shape formed by each vertex before simplification is a hollow shape, while the shape formed by each vertex after simplification is not a hollow shape (that is, information indicating hollowness is lost due to simplification), it is also determined that the condition regarding the shape is not satisfied. 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 determined. Also, for example, when the shape formed by each vertex before simplification is a shape that can be represented only by two or more vertices and cannot be represented by a single vertex, it is also determined that the condition regarding the shape is not satisfied. Note that, as the condition regarding the shape of the voxel object, the same condition as the conventional method using SVO may be used.

[0124] In this embodiment, the material condition is a condition regarding the number of material types set for each vertex within the predetermined number of vertex segment regions to be simplified. FIG. 18 is a diagram illustrating an example of the material condition. FIG. 18(a) illustrates a case where the materials of vertices 221 to 224 are (grass), (grass), (grass and earth), and (grass and earth), respectively. FIG. 18(b) illustrates a case where the materials of vertices 221 to 224 are (grass and sand), (grass), (grass and earth), and (grass and earth), respectively. In this embodiment, the material condition is that the total number of material types set for each vertex to be simplified is equal to or less than a predetermined number. For example, the material condition is that the total number of material types set for each vertex to be simplified is equal to or less than 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 FIG. 18(a), the total number of material types set for vertices 221 to 224 to be simplified is two, grass and earth, so the material condition is satisfied. At this time, provided that the above-mentioned conditions regarding the shape of the object are satisfied, each of the vertices 221 to 224 is determined to be simplifiable. On the other hand, in the case of Figure 18(b), the total number of material types set for each of the vertices 221 to 224 to be simplified is three: grass, earth, and sand, so the material conditions are not satisfied. At this time, regardless of whether the above-mentioned conditions regarding the shape of the object are satisfied, each of the vertices 221 to 224 is determined to be unsimplifiable.

[0125] Note that in the game system 1, multiple types of materials may be prepared that have the same set properties but different appearances, even if they are strictly classified as different types. Some of these multiple types of materials may be considered to be the same type when determining whether or not a material satisfies a condition related to the material. For example, with regard to soil materials, multiple types of soil materials may be prepared that have the same properties but similar appearances (e.g., texture color or pattern). In such a case, the game system 1 may consider these multiple types of soil materials to be the same type when determining whether or not a material satisfies a condition related to the material.

[0126] Here, in the present embodiment, regarding vertices, similar to voxels, up to two types of materials can be set. On the other hand, in the present embodiment, when the total number of types of materials set for each vertex to be simplified is three or more, no simplification is performed. That is, when the total number of types of materials exceeds the number of materials that can be set for one vertex, no simplification is performed. Therefore, even if the number of vertices is reduced by simplification, the information on the materials set for the vertices will not be lost due to simplification, and the material information can be maintained.

[0127] In the present embodiment, the material of the vertex after simplification 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 the second material for the vertex after simplification. Thereby, the material information can be maintained. Note that the ratio of the materials after simplification is determined based on the ratio of the materials of each vertex before simplification. In the present embodiment, the ratio of the materials after simplification is calculated in the same manner as the method of calculating the ratio of the materials of each vertex using the above evaluation value. That is, the game system 1 calculates a weight value based on the distance between the vertex after simplification and the vertex before simplification, and based on the weight value and the density of the material at the vertex before simplification (note that the evaluation value of the material described in [2-4. Determination of the material of the vertex] above can be used as the density of the material here), calculates an evaluation value for each material. Then, the ratio of the materials is calculated based on the calculated evaluation value of each material.

[0128] [2-6. Generation of Mesh] In this embodiment, based on each vertex simplified as described above, a mesh of the voxel object is generated. FIG. 19 is a diagram showing an example of a mesh generated based on each vertex. Note that the square shown in FIG. 19 indicates the above-described vertex division region, or a vertex division region in which a plurality of vertex division regions are combined into one by simplification. As shown in FIG. 19, the game system 1 generates a mesh composed of polygons having straight lines connecting adjacent vertices of the vertex division region as sides. Each polygon constituting the mesh is a triangle or a quadrilateral.

[0129] In this embodiment, the game system 1 generates two types of meshes: a display mesh and a determination mesh. The display mesh is a mesh used for displaying the voxel object. The determination mesh is a mesh used for collision determination of the voxel object. Although details will be described later, the game system 1 can perform processing using meshes suitable for displaying and collision determination of the voxel object by using the above two types of meshes.

[0130] In this embodiment, the game system 1 generates the display mesh and the determination mesh based on the data of the above-described SVO (that is, based on each simplified vertex). According to this, by sharing the vertex data used for generating the two types of meshes, the processing efficiency can be improved. Note that in other embodiments, the game system 1 may not perform vertex simplification and may generate the display mesh and / or the determination mesh based on non-simplified vertices.

[0131] In this embodiment, the game system 1 generates a determination mesh with a simpler shape than the display mesh. Specifically, the game system 1 sets the number of vertices of the determination mesh to be fewer than the number of vertices of the display mesh. In this embodiment, the SVO data is data that stores data on vertices before simplification and data on simplified vertices in an octree structure, but also includes data used to determine whether simplification is possible. This data includes, for example, data on vertices (referred to as provisional vertices) calculated as candidates for vertices after simplification, and data on the aforementioned indicators indicating the errors between the pre-simplification vertices and the provisional vertices. For example, the game system 1 may use, among the provisional vertices, vertices whose indicators are equal to or smaller than a predetermined threshold (this threshold is assumed to be greater than the aforementioned allowable value) to generate the determination mesh. This allows the number of vertices of the determination mesh to be fewer than the number of vertices of the display mesh. By setting the number of vertices of the determination mesh to be fewer than the number of vertices of the display mesh, the processing load due to collision determination can be reduced. In addition, since the number of vertices in the display mesh is not excessively reduced, the appearance of the voxel object can be expressed in detail.

[0132] In other embodiments, the display mesh and the judgment mesh may be generated based on the same data or different data. The display mesh and the judgment mesh may have the same shape (although even in this case, the materials set for the two may be different). The number of vertices in the judgment mesh may be the same as the number of vertices in the display mesh or may be greater than the number of vertices in the display mesh.

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

[0134] In the present embodiment, a quadrilateral may be formed as the polygon constituting the display mesh (see FIG. 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. Hereinafter, with reference to FIG. 20, the process of dividing the quadrilateral into two triangles will be described.

[0135] FIG. 20 is a diagram showing an example in which a quadrilateral constituting a mesh is divided into two triangles. (a) shown in FIG. 20 shows the quadrilateral before division formed by vertices 231 to 234, which are part of the vertices of the mesh, and (b) shown in FIG. 20 shows the two triangles obtained by dividing the quadrilateral. In the example shown in FIG. 20, assume that the materials of each of the vertices 231 to 234 are grass, soil, sand, grass, and grass, respectively.

[0136] In this embodiment, the game system 1 determines whether a division condition is satisfied when a total of three or more types of materials are set at the vertices of a quadrangle. In this embodiment, the division condition is that by dividing the quadrangle into two triangles, a total of two or fewer types of materials can be set at the vertices of the triangles. If the division condition is satisfied, the game system 1 divides the quadrangle into two triangles such that a total of two or fewer types of materials are set at the vertices. In the example shown in FIG. 20, the materials set at the vertices 231 to 234 forming the quadrangle are three types: grass, earth, and sand. Furthermore, if the quadrangle 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 the vertices of the former triangle are two types: sand and grass, and the materials set at the vertices of the latter triangle are two types: grass and earth (see (b) of FIG. 20). Therefore, the division condition is satisfied for the quadrangle, and the game system 1 divides the quadrangle into two triangles.

[0137] Since there are two ways to divide a quadrangle into two triangles, if the division condition is satisfied for a triangle divided by at least one of the two methods, the game system 1 performs the division by the method that satisfies the division condition. On the other hand, if the division condition is not satisfied for a triangle divided by either of the two methods, the game system 1 performs the division by one of the two methods.

[0138] By dividing the polygon as described above, the game system 1 can generate two triangles in which two or fewer types of material are set at each vertex of the quadrangle, minimizing loss of information about three or more types of material that are set at each vertex. As described above, each polygon that makes up a mesh is rendered using up to two types of texture. Therefore, by dividing the polygon as described above, the game system 1 can render the polygon using two types of texture, minimizing loss of information about the material that is set at each vertex.

[0139] In this embodiment, the game system 1 sets a polygon corresponding to the polygon after the above division. That is, the vertices of the polygon after the above division become the vertices of the polygon of the display mesh.

[0140] In this embodiment, for each polygon constituting the display mesh, when there are three or more types of materials set for each vertex of one polygon in total, the game system 1 determines the material of the polygon by selecting two types of materials. FIG. 21 is a diagram showing an example of a method for determining the material of a polygon constituting the display mesh. In the example shown in FIG. 21, for vertex 241 of the triangular polygon constituting the display mesh, let the first material be "grass", the second material be "soil", and the material ratio of the first material: the second material = 0.8:0.2. Also, for vertex 242 of the above polygon, let the first material be "grass", the second material be "sand", and the material ratio of the first material: the second material = 0.5:0.5. Also, for vertex 243 of the above polygon, let the first material be "sand", the second material be "soil", and the material ratio of the first material: the second material = 0.7:0.3.

[0141] When there are three or more types of materials set for each vertex of the polygon in total, the game system 1 calculates a determination value for each material. The determination value is calculated as the total value of the ratios for each vertex where the material is set. Then, the game system 1 selects two materials in order from the ones with larger determination values as the materials of the polygon. In the example shown in FIG. 21, the determination value of the grass material is 0.8 + 0.5 = 1.3, the determination value of the sand material is 0.5 + 0.7 = 1.2, and the determination value of the soil material is 0.2 + 0.3 = 0.5. Therefore, as the materials of the polygon shown in FIG. 21, the grass and sand materials are selected (see (a) of FIG. 21).

[0142] Note that the specific method for selecting the material of the polygon of the display mesh is arbitrary. In other embodiments, the material of the polygon of the display mesh may be selected by any method based on the information set at the vertices of the polygon. For example, for the material of the polygon of the display mesh, the material with the largest ratio at one vertex is specified for each vertex, and the material with the largest number of specifications for each vertex may be selected as the material of the polygon.

[0143] In this embodiment, the material of the polygon selected as described above is indicated by the materials set at the respective vertices of the polygon. That is, when the material of the polygon is selected, the game system 1 changes the materials set at the respective vertices of the polygon (that is, the material IDs included in the vertex data) to the selected material. In the example shown in FIG. 21, for vertices 241 and 243, before the selection of the material of the polygon, the materials of grass and soil, and sand and soil are set respectively (see (a) of FIG. 21). When the materials of grass and sand are selected as the material of the polygon as described above, the materials set at each of vertices 241 and 243 are changed to grass and sand (see (b) of FIG. 21). Note that for vertex 242, since the material set before the selection is the same as the selected material of the polygon, the material is not changed. As described above, when two types of materials are selected as the material of the polygon, the information of the materials of the third type and later set at each vertex of the polygon will be deleted.

[0144] Furthermore, the game system 1 changes the ratio of materials set for a vertex in accordance with a change in the material set for that vertex. For example, for vertex 241, the first material is grass and the second material is earth, and the first material is grass and the second material is sand. Here, the proportion of sand material is 0, so the material ratio is set to first material:second material = 1:0. In this way, the above change formally changes the material of each vertex in order to represent the material of the polygon by the material of each vertex of the polygon.

[0145] According to the above, the material set for each vertex of one polygon is only the material corresponding to the texture used for rendering, which will be described later, making it easier to execute rendering processing using texture.

[0146] Note that the above change may result in all materials being changed for a certain vertex (i.e., none of the materials before and after the change match). Such a case may occur, for example, when the material set for the vertex before the change is earth and the materials selected for the polygon are grass and sand. In such a case, the material ratio for the vertex may be set based on the material ratio 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 triangular polygon is grass and has a material ratio of grass:sand = 1:0, and the material set for the other vertex is sand and has a material ratio of sand:grass = 1:0, the material ratio for the vertex may be set to grass:sand = 0.5:0.5. The game system 1 may also determine the material ratio for the vertex taking into account the distance between the vertex and the other vertices (e.g., based on a weight value that increases as the distance decreases).

[0147] As described above, in the present embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, two) of the material IDs set for the vertices included in the polygon (that is, the material IDs set for the vertices of the polygon corresponding to the polygon), and determines them as the material IDs of the polygon. According to this, the game system 1 can perform the drawing process while reflecting the material set for the vertices in the appearance of the polygon and suppressing the number of textures used.

[0148] In the present embodiment, for all the materials of the vertices constituting the polygon, when the number of the materials is less than or equal to the predetermined number, the game system 1 determines the material as the material of the polygon. When the material exceeds the predetermined number, a predetermined number of materials with high priority are selected based on the priority parameter of each vertex (specifically, based on the determination value calculated based on the above-described evaluation value), and determined as the material of the polygon. As a result, even when more than a predetermined number of materials are set for each vertex in total, the material of the polygon can be set to a predetermined number or less of materials considering the priority.

[0149] As described above, in the present embodiment, the first and second materials set for each vertex of one polygon are changed to be two types of materials set for the polygon. Here, when such a change is made, there may be a discrepancy in the first and second materials set for the vertices shared by two adjacent polygons.

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

[0151] Therefore, in the present embodiment, when there is a conflict in the materials to be set for a vertex shared by two polygons, the game system 1 adds another vertex at the same position with respect to the said vertex. FIG. 22(b) is a diagram showing an example of a state in which vertex 231' is added for vertex 231 and vertex 234' is added for vertex 234. In the example of FIG. 22, for vertices 231 and 234, the game system 1 sets the first and second materials as grass and sand according to the material of the first polygon. Also, for vertices 231' and 234', the game system 1 sets the first and second materials as grass and soil according to the material of the second polygon. In this way, by formally setting two vertices as the vertices shared by the two polygons (that is, generating two vertex data with the same position but different materials), it is possible to suppress the occurrence of a conflict in the materials set for the vertices.

[0152] The game system 1 generates a display mesh composed of polygons in which the vertices and materials are determined as described above. Also, the game system 1 performs the drawing of the voxel object by performing the drawing of the polygon based on the information of the materials set for each vertex (that is, the first material and the second material).

[0153] FIG. 23 is a diagram showing an example of applying a texture to a polygon. FIG. 23 shows a triangular polygon formed by the respective vertices 241 to 243 shown in FIG. 21. Note that the materials set for the respective vertices 241 to 243 are those shown in FIG. 21(b).

[0154] Regarding the positions of the vertices of the polygon, drawing is performed by mapping that blends the texture of the first material and the texture of the second material set for the vertex at the ratio of the material set for the vertex (that is, using the ratio as the blend ratio). Note that the textures of the first and second materials used for drawing are the textures indicated by the drawing setting information associated with each material ID associated with the vertex data in the above-described material data (see FIG. 12). In the example shown in FIG. 23, regarding the position of vertex 241, since the material ratio is grass:sand = 1:0, drawing is performed using only the grass texture. Also, regarding the position of vertex 243, since the first material is sand and the material ratio is sand:grass = 1:0, drawing is performed using only the sand texture. Further, regarding the position of vertex 242, since the first material is grass, the second material is sand, and the material ratio is grass:sand = 0.5:0.5, drawing is performed by blending the grass texture and the sand texture at a blend ratio of 0.5:0.5.

[0155] Also, for positions other than the vertices of the polygon, the game system 1 determines the blend rate by interpolating the blend rates at each vertex. Then, the textures of the two materials set for each vertex are drawn by a mapping that blends them based on the interpolated blend rate. Note that the specific method of interpolation is arbitrary. As an example, the blend rate between vertices is linearly interpolated. In FIG. 23, the positions where the ratio of applying the texture of the grass material is high are shown in white, and the positions where the ratio of applying the texture of the sand material is high are shown in black. In the example shown in FIG. 23, the grass texture is applied at vertex 241, the blend ratio of the sand texture increases toward vertex 243, the blend rate of grass and sand becomes 1:1 at the position of vertex 242, and only the sand texture is applied at the position of vertex 243. In this way, by blending and drawing the two textures set for the polygon (that is, set for each vertex of the polygon) at a blend rate according to the ratio of the materials, the appearance at the boundary between different materials in the display mesh can be made natural. As a result, the appearance of the display mesh with multiple types of materials set can be made natural.

[0156] [2-6-2. Determination of the Material of the Judgment Mesh] Next, an example of a method for determining the material of the judgment mesh will be described. Although the details will be described later, in this embodiment, collision detection of the voxel object is performed using the judgment mesh, and processing may be executed according to the material of the voxel object for which collision is detected. Therefore, in this embodiment, the material is also determined for the judgment mesh.

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

[0158] FIG. 24 is a diagram showing an example of a method for determining the material of a polygon constituting the determination mesh. FIG. 24 shows an example of determining the material for a triangular polygon formed by the respective vertices 241 to 243 shown in FIG. 21. Note that the materials set for the respective vertices 241 to 243 are those shown in FIG. 21(a).

[0159] When determining the material of the 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 above determination value is the same as the method for calculating the determination value used for selecting the material of the polygon of the display mesh. Note that the specific method for calculating the determination value is arbitrary. In other embodiments, the above determination value may be calculated by any method based on the information set for the vertices of the polygon of the determination mesh.

[0160] In the example shown in FIG. 24, the determination value for each material is the same as the case shown in FIG. 21 described above, where the determination value for the grass material is 1.3, the determination value for the sand material is 1.2, and the determination value for the soil material is 0.5. Therefore, the grass material is selected as the material of the polygon shown in FIG. 24.

[0161] As described above, in the present embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, 1) of the material IDs set for the vertices included in the polygon (that is, the material IDs set for the vertices of the polygon corresponding to the polygon), and determines them as the material IDs of the polygon. According to this, the game system 1 can suppress the number of materials set for the determination mesh to be equal to or less than the predetermined number. As a result, it is possible to prevent the processing according to the type of material, which is performed according to the result of the collision determination using the determination mesh, from becoming complicated. Note that the method of determining the material of the polygon of the determination mesh is arbitrary and is not limited to the above. In other embodiments, the material of the polygon of the determination mesh may be determined by any method based on the information set for the vertices of the polygon.

[0162] Also, in the present embodiment, up to two types of materials are set for the polygons of the display mesh, while only one type of material is set for the polygons of the determination mesh. According to this, for the polygons of the display mesh, two types of textures can be used to achieve a natural appearance, and for the determination mesh, it is possible to prevent the processing performed according to the result of the collision determination using the determination mesh from becoming complicated. Note that in other embodiments, the types of materials that can be set for the polygons of the display mesh and the determination 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 determination mesh may both be plural, may be the same, or may be different.

[0163] In addition, in the present embodiment, the number of types of materials set for one voxel is up to two, and the number of types of materials set for one polygon in the display mesh is up to two. According to this, while suppressing the data amount of the voxel data, the information of the materials set in the voxel data can be reflected in the materials of the display mesh. Further, in the present embodiment, the number of types of materials set for the vertices set based on the voxel data is also up to two (see FIG. 16). According to this, for the vertices generated during the process of obtaining the display mesh from the voxel data, two types of materials can be set, so that the information of the materials set in the voxel data can be reflected in the display mesh without loss of material information during the process.

[0164] In another embodiment, for vertices set based on voxel data, the game system 1 may set materials differently for vertices used to generate a display mesh and vertices used to generate a determination mesh. For example, the game system 1 may set up to two types of materials for vertices used to generate a display mesh as described above, and may set one type of material for vertices used to generate a determination mesh. For the materials of the polygons of the display mesh, two types of materials may be set in the same manner as above, and as the material of the polygon of the determination mesh, one type of material may be set based on the one type of material set for each vertex of the polygon. When setting one type of material for vertices used to generate a determination mesh, the material for which the above-described determination value calculated for each material is the largest may be set as the material of the vertex. Also by the above, as in the present embodiment, the number of types of materials set for one polygon in the display mesh can be up to two, and the number of types of materials set for one polygon in the determination mesh can be one. Therefore, it is possible to reflect the material information set in the voxel data in the display mesh, and it is possible to suppress the complexity of the processing performed according to the result of the collision determination using the determination mesh.

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

[0166] Also, for the display mesh, the game system 1 may store the data related to the generated mesh in the memory, and in the frame after the mesh is generated, use the data without re-executing the process of generating the mesh except for the updated range. According to this, the processing load for generating the display mesh can be reduced. Also, for the determination mesh, the data related to the generated mesh may not be stored in the memory, and the mesh may be sequentially generated as needed (for example, every time collision determination needs to be performed). According to this, the memory area used for generating the mesh can be saved.

[0167] In the above, the method of generating each mesh (that is, the display mesh and the determination mesh) based on the changed voxel data when the voxel data is changed from the initial state has been described. Note that the above method can also be used when generating each mesh based on the voxel data in the initial state, for example, at the start of the game. However, each mesh based on the voxel data in the initial state does not necessarily need to be generated based on the voxel data in the initial state at the start of the game, and may be prepared in advance before the game starts.

[0168] [Processing Using a Mesh of 2-7] Next, a processing example using the mesh generated as described above for the voxel object will be described. In the following, it is assumed that terrain objects such as the ground and walls are voxel objects, and a player character performs an action, and as a result of collision detection, an in-game effect occurs. An example of this case will be described.

[0169] FIG. 25 is a diagram showing an example of a game image representing the movement of a player character on a terrain object. In the example shown in FIG. 25, the material for a part of the polygon in the determination mesh of the terrain object, which is the ground, in region 251 is set to "lava". Note that the material for the polygons other than region 251 in the determination mesh of the terrain object is set to "rock". In the example shown in FIG. 25, the game system 1 performs a collision determination between the terrain object and the player character 201 using the determination mesh. That is, a collision determination is made as to whether the determination mesh of the terrain object and the determination area set for the player character (for example, an area of a predetermined shape set based on the position of the player character) come into contact. When a collision is determined between the polygon whose material is lava and the player character 201, as a process for generating an in-game effect, a process of reducing the physical strength of the player character 201 is performed. Also, in the above case, a process of causing the player character 201 to perform a predetermined reaction is performed.

[0170] Note that in the present embodiment, as the property information included in the above-described material data, for the lava material, a property of reducing the physical strength of the contacted player character (for example, the property that the temperature is equal to or higher than a predetermined value) is set. The game system 1 generates an in-game effect (in the above example, a reduction in the physical strength of the player character) based on the property information corresponding to the material set for the polygon in the determination mesh for which a collision has been determined by the collision determination.

[0171] In addition, when a collision between a polygon whose material is rock and the player character 201 is determined, the process of reducing the physical strength of the player character 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 the present embodiment, by setting the material for each polygon, the game system 1 can execute different processes according to which part of the voxel object another object has contacted. Also, the content of the process to be executed can be made according to the type of material. In the present embodiment, since the player character can change the terrain object (for example, deform it or change the material), for example, a part of the terrain object that is lava can be erased or the lava can be changed to another material. Therefore, the player can avoid a decrease in the physical strength of the player character due to contact with lava by changing the terrain object.

[0172] Note that the content of the process executed when a collision between a voxel object and another object is determined is arbitrary. For example, when the other object is a moving object such as a player character or an enemy character, the process may be a process of outputting the footsteps of the object or displaying an effect (for example, an effect representing dust or a water splash) at the contact location. At this time, the game system 1 can vary the footsteps or the effects according to the type of material set for the polygon of the part of the voxel object that has been contacted.

[0173] FIG. 26 is a diagram showing an example of a game image representing a state in which a player character extracts a fragment object from a terrain object. As shown in FIG. 26, in the present embodiment, the player can cause the player character 201 to perform an action (referred to as a "pull-out action") of grasping the terrain object 202 by a predetermined operation input, pulling out a part thereof as the fragment object 252, and gripping it. The game system 1, as an action in the game caused by the pull-out action, erases a part of the terrain object 202 and generates the fragment object 252.

[0174] When the pull-out action is performed, the game system 1 specifically executes the following process. That is, when an operation input for causing the player character to perform the pull-out action is performed by the player, the game system 1 causes the player character to perform an action of digging forward and grasping, and performs a collision determination. Then, when a collision between the player character performing the pull-out action and the terrain object is determined, an update range 253 is generated based on the position and orientation of the player character. For example, the update range 253 is generated in a predetermined direction (for example, the front) with respect to the player character. Note that the shape and size of the update range may be determined in advance so as to correspond to the type of action of the player character. Further, the game system 1 decreases the density of the voxels corresponding to the update range 253. Then, by updating the mesh according to the decrease in the density of the voxels, the terrain object 202 is deformed so that the portion within the update range 253 is erased (see (b) of FIG. 26). In the present embodiment, the density of each voxel corresponding to the update range 253 is decreased, but the voxels to be decreased in density may be at least a part of the voxels corresponding to the update range 253.

[0175] Also, in the above, it was assumed that the voxel object corresponding to the update range 253 is unconditionally deformed by the extraction action. However, in other embodiments, the deformation of the voxel object corresponding to the update range 253 may be performed on the condition of the amount of damage set for 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 for the voxel corresponding to the update range 253, and decrease the density in the voxel when the amount of damage exceeds a predetermined value. At this time, the increase amount of damage may be determined according to the action performed on the voxel object.

[0176] In addition, the game system 1 generates a fragment object 252 representing the portion of the terrain object 202 that has been erased. That is, the game system 1 generates the fragment object 252 while having the player character hold it based on the above extraction action. The fragment object 252 may be generated to have a shape corresponding to the portion of the terrain object 202 that has been erased, or may have a predetermined shape. The fragment object 252 may be a voxel object or may not be a voxel object. When the fragment object is a voxel object, a voxel space different from the voxel space of the voxels corresponding to the terrain object 202 etc. is defined for the fragment object 252.

[0177] The game system 1 determines the material of the above-mentioned fragment object 252. The material of the fragment object 252 is determined based on the material set for the polygon within the determination mesh that contacts the update range 253 among the determination meshes of the terrain object 202. The material of the fragment object 252 is determined to be the same as any one of the materials set for the polygons within the determination mesh that contacts the update range 253. According to this, the material of the fragment object 252 can be made the same as the material of the erased part of the terrain object. As is clear from the above description, the fragment object 252 is not actually a part of the terrain object. However, by being generated along with the erasure of a part of the terrain object and the material of the erased part of the terrain object being inherited by the fragment object 252, it is possible to give the player an impression as if the player character 201 has taken out a part of the terrain object 202 by a pulling-out action.

[0178] In this embodiment, a priority is set for each type of material to be prepared, and the game system 1 determines the material with the highest priority among the materials set for each polygon of the determination mesh within the update range 253 as the material of the fragment object 252. Here, for example, consider a case where the determination mesh within the update range 253 includes a polygon with a material of rock and a polygon with a material of lava. In such a case, if the material of the fragment object 252 is set to lava, there may be an inconvenience such that the physical strength of the player character decreases when the player character grips the fragment object 252 by the extraction action (assuming that, as described in FIG. 25, the material of lava is set to have the property of decreasing the physical strength of the player character upon contact). Also, as described above, when the determination mesh within the update range 253 includes polygons with different types of materials set, it is considered difficult for the player to predict what the material of the fragment object 252 will be, and it is also considered that the above-mentioned inconvenience may occur contrary to the player's intention. In contrast, in this embodiment, by setting a priority for the material set as the material of the fragment object, the possibility of the above-mentioned inconvenience occurring can be reduced.

[0179] FIG. 27 is a diagram showing an example of a game image representing a state in which a fragment object is generated when a player character destroys a terrain object. As shown in FIG. 27, in the present embodiment, the player can cause the player character 201 to perform a punch action by a predetermined operation input. Further, as an action in the game caused by the punch action, the game system 1 erases a part of the terrain object 202 and generates a fragment object 255, as in the case of the above punch action. Specifically, the terrain object 202 is deformed as if a part thereof is erased. Note that, when a punch action is performed, unlike the above-described extraction action, after the punch action, the fragment object 255 is not held by the player character 201 and is arranged around the position where the punch action is performed (see (b) of FIG. 27). Note that the fragments corresponding to the destruction of the terrain object 202 may not be generated.

[0180] When a punch action is performed, the game system 1 specifically executes the following processes. That is, when an operation input for causing the player character to perform a punch action is performed by the player, the game system 1 causes the player character to perform an action of punching forward and performs a collision determination. Then, when a collision between the player character performing the punch action and the terrain object is determined, an update range 254 is generated based on the position and orientation of the player character. For example, the update range 254 is generated in a predetermined direction (e.g., forward) with respect to the player character. Note that the position, shape, and size of the update range 254 by the punch action may be the same as or different from those of the update range 253 by the extraction action. Then, the game system 1 decreases the density of the voxels corresponding to the update range 254. As a result, similar to the extraction action, also by the punch action, the terrain object 202 is deformed such that the portion within the update range 254 is erased (see (b) of FIG. 27). Note that, similar to the extraction action, for the punch action as well, instead of unconditionally deforming the voxel object corresponding to the update range 254, the game system 1 may increase the amount of damage set for the voxels within the update range 254 according to the punch action, and decrease the density of the voxels when the amount of damage exceeds a predetermined value. Also, the voxels whose density is to be decreased by the punch action may be at least some of the voxels corresponding to the update range 254.

[0181] In addition, the game system 1 generates a fragment object 255 corresponding to the portion of the terrain object 202 that has been erased. That is, the game system 1 generates the fragment object 255 without giving it to the player character based on the above punch action (for example, in a state where it is arranged around the position where the punch action was performed). The fragment object 255 may be generated so as to have a shape corresponding to the portion of the terrain object 202 that has been erased, or may have a predetermined shape. The fragment object 255 may be a voxel object or may not be a voxel object.

[0182] The game system 1 determines the material of the above fragment object 255. The material of the fragment object 255 is determined based on the material set for the polygon in the determination mesh that contacts the update range 254 among the determination meshes of the terrain object 202. The material of the fragment object 255 is determined to be the same as any one of the materials set for the polygon in the determination mesh that contacts the update range 254. According to this, the material of the fragment object 255 can be made the same as the material of the erased portion of the terrain object. In addition, the fragment object 255 is generated as a part of the terrain object is erased, and the material of the erased portion of the terrain object is inherited by the fragment object 255, so that the player can be given the impression that a part of the terrain object destroyed by the punch action of the player character has occurred as a fragment object.

[0183] In the present embodiment, the material of the fragment object 255 is determined to be the material with the largest degree of decrease in density in the voxel among the materials set for the polygon in the determination mesh that contacts the update range 254. According to this, it is possible to generate a fragment object that more accurately reflects the material composition of the portion of the terrain object erased by the punch action.

[0184] In addition, the method for determining the material of the fragment object generated by the above-described extraction action or punch action is arbitrary. For example, the method for determining the material of the fragment object may be the same for the extraction action and the punch action. Also, for example, among the materials set for each polygon of the determination mesh within the update range, the material set for the most polygons may be determined as the material of the fragment object. Also, for example, among each polygon of the determination mesh within the update range, the material set for a polygon that satisfies a predetermined condition (for example, a polygon at a position in contact with the hand of the player character performing the extraction action or punch action) may be determined as the material of the fragment object. Also, in other embodiments, a plurality of types of materials may be set for the fragment object.

[0185] In the present embodiment, the player can cause the player character to perform an action of throwing the fragment object 252 or 255 generated as described above (hereinafter referred to as the "throwing action"). Note that the player can cause the player character to perform an action of holding a fragment object that is generated in response to a punch action and placed on the ground by a predetermined operation input. By the above-described extraction action or the action of holding the fragment object after the above-described punch action, the player character is in a state of holding the fragment object. In this state, the game system 1 causes the player character to perform an action of releasing the held fragment object in a predetermined direction as a throwing action according to an operation input by the player.

[0186] FIG. 28 is a diagram showing an example of a game image in a scene where a player character can perform a throwing action and determines the throwing direction in a state of assuming a throwing stance. As shown in FIG. 28, in a state where the player character 201 holds the fragment object 261, the player character 201 can perform a throwing action. In this state, as shown in FIG. 28, the game system 1 displays the aiming image 262 and the object information image 263 over the image showing the game space as a process for generating an action in the game.

[0187] The aiming image 262 indicates the direction in which the fragment object is released by the throwing action (also referred to as the aiming direction). That is, in response to an operation input by the player to perform a throwing action, the game system 1 moves the fragment object 261 from the position of the player character 201 toward the position in the virtual space indicated by the aiming image 262. Note that the aiming direction is controlled based on the operation input by the player. For example, the game system 1 may change the aiming direction in response to an operation input for changing the direction of the virtual camera. Specifically, the game system 1 controls the virtual camera in response to an operation input so as to rotate and move around the player character while maintaining the state where the player character is included in the field of view, and controls the aiming direction so as to be in the direction corresponding to the line-of-sight direction of the virtual camera. At this time, the aiming image 262 indicating the position where the straight line extending in the aiming direction from the position of the player character intersects the terrain object 202 is displayed. Specifically, the game system 1 performs a collision determination between the aiming direction (that is, the above straight line extending in the aiming direction) and the determination mesh of the terrain object 202, and when a collision is determined, the aiming image 262 is displayed. The aiming image 262 is arranged so as to indicate the position of the polygon that intersects the above straight line extending in the aiming direction among the determination meshes.

[0188] When the player character performs a throwing action according to the aiming image 262 described above, the position where the fragment object contacts the voxel object can be presented to the player. This can make it easier for the player to perform the operation of the throwing action. Note that the specific control method of the aiming direction and the aiming image 262 is arbitrary, and a conventional method may be used. For example, in other embodiments, when the aiming image 262 is displayed, the aiming image 262 may be displayed in a first-person perspective game image where the player character is not displayed.

[0189] In a state where the player character is in a posture of throwing a fragment object, a throwing action of throwing the fragment object in the aiming direction is performed in response to a predetermined operation input by the player.

[0190] The object information image 263 shows information about the terrain object 202 at the position indicated by the aiming image 262. In the present embodiment, the object information image 263 shows the name of the material (rock in the example shown in FIG. 28) set for the polygon of the determination mesh at the position indicated by the aiming image 262. This can present to the player the material of the voxel object that the fragment object released by the throwing action contacts. In addition, the object information image 263 shows information about the nature of the material (here, hardness). This can present to the player the nature of the voxel object that the fragment object released by the throwing action contacts. Note that the content shown by the object information image 263 is arbitrary. For example, in other embodiments, the object information image 263 may show any property related to the material set for the polygon at the position indicated by the aiming image 262, or may show the state of the polygon (for example, the amount of damage described above). In the present embodiment, since there is one type of material for the polygon of the determination mesh, the material corresponding to the aiming position is specified to one. Therefore, it is suitable for displaying information about the material.

[0191] In this embodiment, in response to the fragment object released by a throwing action being determined to have contacted the voxel object as a result of a collision determination, the game system 1 makes a change to the voxel object as an action within the game. FIG. 29 is a diagram showing an example of a game image after the terrain object 202 shown in FIG. 28 has been changed due to the fragment object 261 contacting it. In the example shown in FIG. 29, the terrain object 202 is deformed so as to have a shape as if the fragment object is attached at the contact position between the fragment object and the terrain object 202. Specifically, the game system 1 generates an update range so as to include the contact position, and deforms the terrain object 202 into the above shape by increasing the density of voxels in the update range. For example, the update range may be set to a shape corresponding to the shape of the fragment object, and the terrain object 202 may be deformed so that the inside of the update range is within the terrain object 202. As a result, in the example shown in FIG. 29, it becomes a shape in which the additional part 265 is added to the terrain object before deformation. Note that in the example shown in FIG. 29, the fragment object is erased in response to contacting the terrain object 202.

[0192] Also, the material of the polygon in the additional part 265 is determined based on the material of the fragment object that has contacted the terrain object 202. Specifically, the game system 1 sets the material of the voxels within the update range to be the material of the fragment object. Then, based on the material of the voxels, the materials of the display mesh and the determination mesh are determined. According to this, since the appearance of the attached additional part 265 can be made the same as the appearance of the fragment object, (although in reality, the terrain object 202 is deformed as described above), it becomes easier for the player to be given the impression that the fragment object is attached to the terrain object 202.

[0193] In the example shown in FIG. 29, the change applied to the voxel object in response to the fragment object contacting the voxel object was a transformation to add an additional part to the voxel object, but the change applied to the voxel object is not limited to this. The above change may change the density of the voxels or may change the material. For example, if the fragment object has the property of exploding, the fragment object may explode in response to contacting the voxel object, and at this time, the voxel object may be deformed as if a part of the voxel object has been erased. Specifically, the game system 1 sets an update range to include the contact position and decreases the density of the voxels within the update range. Also, for example, when the material of the voxel object is lava and the material of the fragment object is ice, the material of the voxel object may be changed in response to the fragment object contacting it. Specifically, the game system 1 sets an update range including the contact position, and among the materials of the voxels within the update range, the material that is lava may be changed to obsidian or rock. According to this, it is possible to represent a situation where a lava object is cooled by an ice object and becomes obsidian or rock.

[0194] The content of the above change may be determined based on the material of the voxel object, based on the material of the fragment object, or based on a combination of the material of the voxel object and the material of the fragment object. According to this, various changes can be caused to the voxel object.

[0195] Also, the game system 1 may determine whether to perform the above-described change based on the material of the voxel object, based on the material of the fragment object, or based on a combination of the material of the voxel object and the material of the fragment object. For example, when a fragment object with a material of rock contacts a voxel object with a material of rock, the game system 1 performs a change as shown in FIG. 29, while when a fragment object with a material of rock contacts a voxel object with a material of iron, the game system 1 may not perform a change as shown in FIG. 29.

[0196] In the present embodiment, as described above, one type of material is set for the polygon of the determination mesh and the fragment object. Here, if a plurality of types of materials are set for at least either the polygon of the determination mesh or the fragment object, it becomes difficult to determine the content of the change added to the voxel object according to the types of the materials of both when the determination mesh and the fragment object come into contact. On the other hand, in the present embodiment, since the materials of the determination mesh and the fragment object determined to be in contact by the collision determination are each one type, it becomes easy to determine the content of the change added to the voxel object.

[0197] [2-8. Game Example] Next, an example of a game performed using the virtual space in which the voxel object is arranged will be described. The game described below is a racing game in which a plurality of race objects including a player object operated by a player perform a race. The above-described racing game may be a single-player game in which one player object participates, or may be a multiplayer game in which a plurality of player objects participate.

[0198] FIG. 30 is a diagram showing an example of a game image displayed in the game system 1. In the above racing game, a game image representing a plurality of racing objects including the player object 301 running on a race course is displayed. In the present embodiment, the player object 301 is an object including a player character and a vehicle object. Note that the vehicle object ridden by the player character may be an arbitrary object such as a car, an airplane, an animal, or another character, in addition to these. Further, the player object may be composed of one object.

[0199] In the present embodiment, on the virtual space, as objects constituting the terrain, a ground object 303, a soil object 304, and a mud object 305 are arranged. In the present embodiment, the soil object 304 is a voxel object in which a soil material is set. The mud object 305 is a voxel object in which a mud material is set. Although details will be described later, for the soil object 304 and the mud object 305, deformation such as partial elimination is performed by setting a voxel update range and updating the density during the game. Further, in the present embodiment, the ground object 303 is an object that is not deformed even when the above voxel update range is set. For example, the ground object 303 is an object that is not a voxel object, or a voxel object in which a material having a non-deformable property is set. Note that in the present embodiment, voxel objects such as the soil object, the mud object, and the travel path object described later can be arranged in the range on the ground object 303. Specifically, the voxel space for these voxel objects is set to include the range on the ground object 303.

[0200] During the race, each racing object such as the player object 301 and the race object 302 is controlled to travel in the virtual space. The player object 301 is controlled based on the operation input by the player. In the present embodiment, for the player object 301, the moving speed is determined based on the control rules defined in the game program, and the traveling direction is determined based on the operation input by the player. Note that the control method of the player object 301 is arbitrary, and the moving speed and the traveling direction may be determined based on the operation input by the player. Also, for the racing object not operated by the player, the moving speed and the traveling direction are determined based on the control rules defined in the game program.

[0201] In the present embodiment, when the racing object moves, it can deform the soil object 304 and the mud object 305 so as to be erased. Specifically, the game system 1 sets a voxel update range in front of the racing object, and updates it so as to decrease the density of the voxels corresponding to the voxel update range (for example, set the density to 0). As a result, the meshes of the soil object 304 and the mud object 305 are deformed into a shape such that the portions within the voxel update range are erased. By the above, it is possible to express the state in which the racing object advances while destroying or absorbing the soil object 304 or the mud object 305. Note that the specific position, size, and shape of the above voxel update range are arbitrary. For example, the voxel update range may be a spherical shape centered at a position a predetermined distance in front of the racing object.

[0202] In this embodiment, the race object can perform a generation action for generating a voxel object. In this embodiment, when the race object performs the generation action, after the movement of the race object, the voxel object is arranged along the trajectory that the race object passed through during the generation action. Although details will be described later, the race object can travel on the arranged voxel object. Hereinafter, the voxel object generated by the generation action is referred to as a raceway object. In this embodiment, by generating the raceway object during the race game, the route on which the race object can travel changes dynamically during the game, so that the strategic nature and interestingness of the race game can be improved.

[0203] FIG. 31 is a diagram showing an example of a game image representing a state in which a player object is performing a generation action. In the present embodiment, the player object 301 performs a generation action in response to a predetermined operation input by the player (for example, an input to the ZR button 61). In the present embodiment, the player object 301 that performs the generation action moves forward or obliquely upward in front. Note that the moving direction during the generation action is arbitrary, and the race object during the generation action may move along the ground object or may move so as to jump into the air. Further, the moving direction during the generation action may be determined based on an operation input by the player. For example, the angle of the moving direction regarding the pitch direction (specifically, the angle of the moving direction with respect to the horizontal direction) may be determined to be an angle corresponding to the operation input during the generation action within a predetermined angle range. Specifically, the moving direction regarding the pitch direction during the generation action may be determined within a range from the horizontal direction to a predetermined angle upward with respect to the horizontal direction in response to the operation input (for example, an input for tilting the analog stick 32) during the generation action. In another embodiment, there may be no change in the moving mode of the race object when the generation action is started. That is, the game system 1 may determine the moving speed and the traveling direction of the race object in the same manner whether the race object performs the generation action or not.

[0204] Further, in the present embodiment, the moving speed of the race object during the generation action is set to be higher than the moving speed when the generation action is not being performed. Note that the moving speed during the generation action is arbitrary. In other embodiments, the moving speed during the generation action may be the same as the moving speed when the generation action is not being performed, or may be slower than the moving speed.

[0205] In this embodiment, an action parameter, which is a value corresponding to the time during which a generation action can be executed, is set for the race object. The game system 1 increases the value of the action parameter in response to the race object satisfying a predetermined condition. In this embodiment, the game system 1 increases the value of the action parameter in response to the race object being deformed so as to erase the soil object or the mud object. Also, the game system 1 gradually subtracts the value of the action parameter during the period in which the race object is performing the generation action. The game system 1 causes the race object to perform the generation action on at least the condition that the value of the action parameter is not zero. When the value of the action parameter becomes zero, the game system 1 ends the generation action on the race object even if, for example, an operation input for the generation action is being performed on the player object. From the above, in this embodiment, the player can increase the value of the action parameter by operating the player object 301 so as to deform the soil object or the mud object, thereby causing the player object 301 to perform the generation action.

[0206] Note that, as shown in FIGS. 30 and 31, the game system 1 may display a gauge image 306 indicating the current value and the upper limit value of the action parameter. Also, the game system 1 may display an effect image for the race object during the generation action in order to notify the player that the generation action is in progress. For example, in the example shown in FIG. 31, an effect image 307 representing smoke is displayed behind the player object 301.

[0207] Next, with reference to FIGS. 32 and 33, a process of generating a travel path object according to a generation action will be described. FIG. 32 is a diagram showing an example of a voxel update range set when one frame has elapsed since the generation action was started. In the example shown in FIG. 32, the start position 311 is the position of the player object 301 when the generation action is started. The current position 312 is the position of the player object 301 at present (here, after one frame has elapsed since the start of the generation action). In the present embodiment, the position of the player object 301 is set to a predetermined position on a horizontal plane including the lower end of the player object 301 (see FIG. 32).

[0208] In the present embodiment, the game system 1 sets a passage area 313 along the path through which the player object 301 that performs the generation action passes. In the situation shown in FIG. 32, the passage area 313 is set to extend from the start position 311 to the current position 312. For example, the passage area 313 has four side surfaces parallel to the direction from the start position 311 to the current position 312, and includes the start position 311 on one of the two surfaces other than the side surfaces (hereinafter referred to as the bottom surface), and includes the current position 312 on the other surface, and has a rectangular parallelepiped shape. Also, one side of the bottom surface of the passage area 313 is set to pass through the start position 311 and be parallel to the ground at the start position 311. Note that the passage area may have an arbitrary shape that extends from the start position to the current position. For example, it may have a capsule shape, or a shape in which the vertices and sides of the above rectangular parallelepiped are rounded. Also, the passage area may have a shape such that the upper part of the cross section perpendicular to the direction extending from the start position to the current position is a straight line. According to this, since the upper surface is formed on the travel path object, the travel path object can be formed into a shape that is easy for the race object to travel.

[0209] As described above, the passage area 313 is set to include the position through which the player object 301 that performs the generation action passes. However, the passage area 313 does not necessarily need to be set to include all the areas through which the player object 301 passes, and may also be set to include areas through which the player object 301 does not pass. In the present embodiment, the game system 1 represents the passage area 313 using the above-described SDF.

[0210] Next, the game system 1 sets an inclined surface 314 within the passage area 313. As shown in FIG. 32, the inclined surface 314 is a surface obtained by rotating the lower side surface of the passage area 313 (specifically, the side surface including the start position 311 and the current position 312) upward by a predetermined angle with the side passing through the start position 311 as the rotation axis. The predetermined angle is greater than 0° and less than 90°. Although details will be described later, the upper surface of the travel path object is generated along the inclined surface 314. Here, if the upper surface of the travel path object and the ground are connected so that there is no large angle difference at the start position 311, it becomes easier for the race object to move on the travel path object. Therefore, the predetermined angle may be set to an angle of 45° or less (for example, 10°). In the present embodiment, since the position on the horizontal plane including the lower end of the race object is used as the position of the race object, the predetermined angle is set to a value greater than 0°. However, a position other than the horizontal plane including the lower end of the race object may be used as the position of the race object, and at this time, the predetermined angle may be set to 0°.

[0211] The game system 1 sets, as the voxel update range 315, the area of the passage area 313 excluding the area above the slope 314 (refer to the hatched area shown in FIG. 32). Specifically, the game system 1 changes the data of the SDF representing the passage area 313 so as to represent the area excluding the area above the slope 314. The game system 1 updates (specifically, increases) the density of the voxels corresponding to the voxel update range 315 so that voxel meshes are arranged on the surface of the voxel update range 315 obtained as described above. For example, the density of the voxels corresponding to the voxel update range 315 is updated to the upper limit value (specifically, 255). The game system 1 generates the voxel mesh of the travel path object based on the voxel data after the density is updated according to the method described in the above [2-6. Generation of Mesh]. As a result, a travel path object having a shape corresponding to the voxel update range 315 is generated.

[0212] FIG. 33 is a diagram showing an example of the voxel update range set when two frames have elapsed since the generation action was started. In the present embodiment, during the generation action, the race object is assumed to travel straight in the direction determined at the start of the action. Therefore, in FIG. 33, the current position 316 is on the straight line passing through the start position 311 and the position 312 one frame before.

[0213] Even after the second frame after the generation action is started, the game system 1 sets the passing area in the same manner as in the first frame. After the second frame, the passing area is set to extend from the position of the player object 301 in the previous frame to the current position. In the second frame, a passing area 317 extending from the position 312 one frame before to the current position 316 is set (see FIG. 33). As described above, in this embodiment, since the race object that performs the generation action moves straight, the upper side surface of the passing area 313 one frame before and the upper side surface of the passing area 317 set in the current frame are continuous. Note that the race object that performs the generation action may be controlled not to move straight (for example, to move along a parabolic trajectory). At this time, the game system 1 may adjust and set the position of the passing area 317 so that the upper side surface of the passing area 313 one frame before and the upper side surface of the passing area 317 set in the current frame are continuous.

[0214] Next, the game system 1 sets an inclined plane 318 within the passing area 317. Even after the second frame, the inclined plane 318 is the same as in the first frame, and is a surface obtained by rotating the lower side surface of the passing area 317 upward by a predetermined angle with the side passing through the start position 311 as the rotation axis. In this embodiment, since the race object that performs the generation action moves straight, the inclined planes set in each frame are located on the same plane. Note that when the race object that performs the generation action is controlled not to move straight, the game system 1 may adjust and set the position of the inclined plane so that the inclined plane one frame before and the inclined plane set in the current frame are continuous.

[0215] Even after the second frame and onwards, similar to the first frame, the game system 1 sets, as the voxel update range 319, the area of the passage area 317 excluding the area above the slope 318 (see the hatched area shown in FIG. 33). The density of the voxels corresponding to the voxel update range 319 is updated so that voxel meshes are arranged on the surface of such a voxel update range 319, and the voxel mesh of the travel path object is set based on the voxel data after the density is updated. As a result, after the second frame and onwards, the travel path object is deformed so as to have a shape corresponding to the voxel update ranges (in the example of FIG. 33, the voxel update ranges 315 and 319) set so far. Thus, in the present embodiment, the travel path object is deformed so as to extend along the traveling direction of the player object 301.

[0216] FIG. 34 is a diagram showing an example of the voxel update range set after a certain amount of time has elapsed since the generation action was started. In FIG. 34, the area 321 is the area obtained by combining each passage area set from the start of the generation action to the current time. Here, as shown in FIG. 34, the slope 322 is located above the upper side surface of the area 321 at a position separated from the start position 311 by a certain distance. That is, in the frame after a certain amount of time has elapsed since the generation action was started, the slope 322 is located above the upper side surface of the passage area in that frame. At this time, the passage area is set as the voxel update range as it is. From the above, in the present embodiment, the voxel update range 323 has a shape in which a part of the upper area on the side closer to the start position 311 is excluded from the area 321 (see FIG. 34).

[0217] Specifically, in the frames from when the generation action starts until a predetermined exclusion processing period elapses, the game system 1 executes a process of excluding the area above the slope among the passing areas, and in the frames after the exclusion processing period has elapsed, it sets the passing area as the voxel update range without executing the said process. Note that the exclusion processing period is the period before the frame in which the slope will be located above the upper side surface of the passing area in the said frame. According to this, the traveling path object generated within the exclusion processing period from the start of the generation action has an upper surface along the said slope. As a result, the step between the ground and the traveling path object can be reduced (or the step can be eliminated), so it becomes easier for the race object to enter from the ground to the traveling path object. Note that in other embodiments, the voxel update range may be set without using a slope. Specifically, the game system 1 may set the passing area before being excluded by the slope as the voxel update range.

[0218] Also, in this embodiment, the upper side surface of each passing area set for each frame, and each slope for each frame are set to be continuous. Therefore, the voxel mesh of the traveling path object is generated such that the upper surface generated by the deformation for each frame is continuous with the upper surface generated until then. As a result, the traveling path object can be generated so that the race object can easily travel on the traveling path object.

[0219] In this embodiment, the game system 1 sets the voxel update range every frame, and sets the voxel mesh of the traveling path object every frame so as to have a shape corresponding to the said voxel update range. Therefore, the voxel update range is continuously set at the position where the race object has passed by the generation action, and the traveling path object is deformed so as to gradually extend along the path where the race object has passed. According to this, it is possible to clearly show how the traveling path object is generated following the race object by the generation action.

[0220] Note that the method of continuously setting the voxel update range is not limited to the method of setting the voxel update range every frame. For example, in other embodiments, the game system 1 may perform the setting process of the passing area and the setting process of the voxel update range based on these positions on the condition that the distance between the current position of the race object and the position one frame before is equal to or greater than a predetermined distance. In addition, if these setting processes were not executed one frame before, these setting processes are executed based on these positions on the condition that the distance between the current position of the race object and the position two frames before is equal to or greater than a predetermined distance. Also by the above, in response to the generation action being performed over a plurality of frames, the voxel update range is continuously set, and the driving route object is continuously deformed.

[0221] Note that the game system 1 does not need to execute the setting process of the voxel update range and the setting process of the voxel mesh of the driving route object based on the current position of the race object in a certain frame in which a generation action is being performed, and may execute them in a frame later than that. In the present embodiment, when the race object during the generation action reaches a certain position in a certain frame, the game system 1 executes the setting process of the voxel update range calculated with the certain position as the current position, and the setting process of the voxel mesh of the driving route object based on the voxel update range, in the frame after the waiting period from the certain frame. Therefore, the voxel mesh of the driving route object set at the certain position in response to the race object passing through the certain position is set after the waiting period has elapsed since the race object passed through. According to this, the possibility of contact between the race object and the driving route object can be reduced. For example, it is possible to reduce the possibility of inconveniences such as the race object moving unnaturally due to contact. Note that the waiting period may be fixedly set in advance, or may be variably set based on the moving speed of the race object or the like. For example, the waiting period may be set to a short time when the moving speed of the race object is fast, and may be set to a long time when it is slow.

[0222] In another embodiment, the game system 1 may execute the setting process of the voxel mesh of the driving path object after the generation action by the race object is completed. At this time, the game system 1 can set a driving path object extending along the movement path of the race object during the period when the generation action is performed. For example, similar to this embodiment, the game system 1 can continuously execute the setting process of the passing area and the setting process of the voxel update range according to the position of the race object for each frame, so as to gradually deform the driving path object to extend. Note that the driving path object only needs to be deformed so as to extend along the movement path of the race object, and it is not necessary for the extending direction of the driving path object to completely coincide with the movement path of the race object when viewed partially. For example, the driving path object may be deformed so as to extend from the start position of the generation action to the end position of the generation action while meandering. Also for example, the driving path object may be formed such that the slope of the upper surface near the start position and the end position of the generation action is gentler than the slope of the upper surface in the middle part between the start position and the end position.

[0223] Note that the voxel space for the driving path object may be the same voxel space as the voxel space for other voxel objects (for example, soil objects and mud objects), or may be a different voxel space. For example, when the voxel space for the driving path object is different from the voxel space for other voxel objects, for example, by setting the density of each voxel in the voxel space to 0, the entire driving path object can be easily erased.

[0224] FIG. 35 is a diagram showing an example of a game image after a driving route object is generated. In the situation shown in FIG. 35, a driving route object 325 is arranged on the ground object 303. In the present embodiment, the race object can move on the ground object and can run on the driving route object arranged on the ground object. As shown in FIG. 35, since the driving route object 325 can be arranged so as to extend obliquely upward from the ground object 303, for example, it can be a route different from the route on the ground object 303. Thus, since where to generate the driving route object affects the outcome of the racing game, the strategic nature of the racing game can be improved.

[0225] Here, in the present embodiment, it is assumed that the race course is circular and the racing game is a rule of going around the circular race course a plurality of times. Therefore, the player object 301 can, for example, arrange a driving route object by its own generation action and can run on the driving route object in the subsequent rounds. Thus, the strategic nature of the racing game can be further improved. Note that the circular course is an arbitrarily shaped course that can be circled, for example, a course including a closed path. The circular course can also be referred to as a course constituting a track. In other embodiments, the shape of the race course is arbitrary and does not have to be circular. Also, the racing game may be a rule of running only once around the circular course.

[0226] In this embodiment, in addition to the driving surface portion 326 based on the voxel update range set according to the method shown in FIGS. 32 to 34, the driving path object 325 has a guide portion 327 on the outside of the portion (specifically, the outside in the left-right direction when the forward direction is the direction in which the player object advances by the generation action). Specifically, in the frame in which the generation action is performed by the race object, the game system 1 sets the voxel update range (for example, the voxel update range 315 shown in FIG. 32) based on the above-described passing area, and further sets a voxel update range for the guide portion outside the voxel update range. The game system 1 updates so as to increase the density of the voxels corresponding to these voxel update ranges. Note that the shape of the guide portion and the shape of the corresponding voxel update range are arbitrary. For example, the voxel update range for the guide portion may be set not only in the area outside the driving surface portion but also in the area overlapping the driving surface portion. Also, the shape of the guide portion and the corresponding voxel update range may be predetermined. For example, these shapes may be shapes extending to the upper side surface of the passing area or a position above the above-described slope (see FIG. 35). Also, in this embodiment, the guide portion 327 is generated in the range up to a predetermined distance from the start position of the generation action with respect to the direction in which the driving surface portion extends. For example, the game system 1 may execute a process of setting a voxel update range for the guide portion during a period until a predetermined number of frames have elapsed from the start of the generation action, and may not execute the process after the elapse of the period. Note that in other embodiments, the guide portion 327 may be generated outside the driving surface portion 326 in the range from the start position to the end position of the generation action.

[0227] Due to the above-described guide portion 327, it becomes easier for the race object to enter onto the driving path object 325. Also, the guide portion 327 makes the start position of the driving path object 325 easier for the player to understand.

[0228] FIG. 36 is a diagram showing an example of a game image when a player object moves on a traveling path object. In the present embodiment, when moving on the traveling path object 325, the player object 301 is controlled to accelerate. Specifically, when the game system 1 updates the density of the voxel update range corresponding to the traveling path object, the material of the voxel corresponding to the voxel update range is set to a predetermined material (referred to as the "material of the traveling path") having the property of accelerating an object moving on the object of the material. Thereby, the voxel mesh of the traveling path object is set to the material of the traveling path. Further, when performing control to move the race object during the race game, the game system 1 identifies on which object the race object is located, and if it is located on the object of the material of the traveling path, performs control to accelerate the race object. Note that the specific control method for accelerating the race object is arbitrary. For example, the game system 1 may gradually increase the moving speed of the race object from the current speed during the period when acceleration is performed, or may change the moving speed during the period when acceleration is performed to a constant speed higher than the normal speed. According to the above, the player can advantageously proceed with the race game by running the player object 301 on the traveling path object. Thereby, the strategic nature of the race game in which the traveling path object is arranged can be further improved.

[0229] As described above, in the present embodiment, an earth object and a mud object are arranged on the ground object, and the race object travels while being deformed so as to erase a portion in its traveling direction among these objects. Here, in the present embodiment, the game system 1 sets the moving speed of the race object when the mud object is deformed by the movement of the race object to be slower than the moving speed when the earth object is deformed by the movement of the race object. According to this, since the player considers avoiding the mud object and traveling or traveling beyond the mud object by a generation action or a traveling path object, the strategic nature of the racing game can be further improved. Note that in other embodiments, the number of types of voxel objects deformed by the movement of the race object is arbitrary, and may be three or more types, or may be one type. Further, in other embodiments, the types of voxel objects deformed by the movement of the race object may not be arranged on the ground object.

[0230] Here, in the present embodiment, the arrangement of the earth object and the mud object may be swapped during the game. FIG. 37 is a diagram showing an example of game images before and after the earth object and the mud object are swapped. (a) shown in FIG. 37 shows the situation before the swap, where the earth object 331 is arranged on the race course and the mud object 332 is arranged outside the race course. Note that the arrangement of the earth object 331 and the mud object 332 is arbitrary, and part or all of the mud object may be arranged on the race course, or part or all of the earth object may be arranged outside the race course.

[0231] In this embodiment, when a swapping event occurs in the racing game, the arrangements of the soil object 331 and the mud object 332 are swapped. Here, in this embodiment, a swapping object 333 is arranged in the virtual space, and the swapping event is an event in which the racing object passes through the swapping object 333. Note that the specific content of the swapping event is arbitrary. For example, in other embodiments, the swapping event may be that the racing object uses a predetermined item, or that a certain period of time has elapsed since the start of the race. The swapping event may be an event generated by the racing object as in this embodiment, or an event generated only by the player object, or an event generated regardless of the behavior of the racing object.

[0232] (b) shown in FIG. 37 shows the situation after the above-described swapping event has occurred. In this situation, the soil object 331 before the occurrence of the swapping event has become the mud object 334, and the mud object 332 before the occurrence of the swapping event has become the soil object 335. In the example shown in FIG. 37, since a soil object was arranged on the race course before the swap, the racing object could travel more advantageously than outside the race course where the mud object was arranged. In contrast, after the swap, since a mud object is arranged on the race course, the travel of the racing object is disadvantaged compared to outside the race course where the soil object is arranged. Thus, by swapping the materials of the objects during the game, the game situation can be changed and the strategic nature of the game can be improved.

[0233] In this embodiment, the game system 1 performs the replacement of the objects as described above by updating the above-described material data (FIG. 12). Specifically, when a replacement event occurs, the game system 1 swaps the ID of the soil material and the ID of the mud material in the material data. For example, before the replacement, if the ID of the soil material is "001" and the ID of the mud material is "005", the game system 1 changes the ID of the soil material to "005" and changes the ID of the mud material to "001". According to this, without changing the material ID set for each voxel indicated by the voxel data, the material set for each voxel can be changed. Thus, the material of the voxel object can be replaced with a small processing load.

[0234] As described above, in this embodiment, instead of changing the data of the material set for the voxel, the material of the voxel object is replaced by changing the type indicated by the material (specifically, the type indicated by the material ID). Note that in other embodiments, the method of replacing the material of the voxel object is arbitrary. For example, the game system 1 may include flag data in the voxel data and switch the on / off indicated by the flag data in response to the occurrence of a replacement event. At this time, the game system 1 switches the material set for the voxel depending on whether the flag data indicates on or off. Also, for example, the game system 1 may update the data of the material ID included in the voxel data to switch the material set for the voxel.

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

[0236] FIG. 38 is a diagram showing an example of various data used for information processing in the game system 1. Each data shown in FIG. 38 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. 38, the game system 1 stores a game program. The game program is for executing the game processing in the present embodiment (specifically, the game processing shown in FIG. 39). 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), the above-described material data (see FIG. 12), position history data, update range data, mesh data, object data, and action parameter data, etc. (see FIG. 38).

[0237] The position history data is data indicating the history of the position of the race object. Specifically, the position history data includes data indicating the current position of the race object at the time when the generation action is performed, and data capable of specifying the elapsed time from the start of the generation action to that time. Note that the data capable of specifying the elapsed time may be, for example, data indicating the time from the start of the generation action, or data indicating the number of frames from the start of the generation action.

[0238] Mesh data includes various data related to the mesh of the voxel object. As shown in FIG. 38, in this embodiment, the mesh data includes SVO data, display mesh data, and determination mesh data. The SVO data is data that holds each vertex calculated from the voxel data in the above-described SVO structure. In this embodiment, the SVO data includes, in addition to the data indicating the position of each vertex, data indicating the material set for each vertex (for example, data indicating the ID of the material). The display mesh data includes various data related to the display mesh. Specifically, the 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 ID of the material). The determination mesh data includes various data related to the determination mesh. Specifically, the 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 ID of the material).

[0239] Object data includes various data related to objects other than the voxel object (for example, race objects, etc.). Object data is stored for each object that appears in the game space. Object data includes, for example, data indicating the position, movement speed, and state of the object.

[0240] The action parameter data indicates the value of the above-described action parameter. The action parameter data is stored for each race object. At the start of the game, action parameter data indicating a predetermined value (for example, 0) is stored.

[0241] FIG. 39 is a flowchart showing an example of the flow of game processing executed by the game system 1. The game processing shown in FIG. 39 is game processing for advancing the racing game described in the above [2-8. Game Example]. The execution of the game processing is started, for example, in response to the start of the game according to the player's instruction during the execution of the above game program. Note that the processing loop consisting of a series of processes in steps S1 to S13 is executed once per frame cycle.

[0242] In the present embodiment, the processor 81 of the main body device 2 executes the processing of each step shown in FIG. 39 by executing the above game program stored in the game system 1. However, in other embodiments, some of the processing of each step may be executed by a processor (for example, a dedicated circuit or the like) different from the processor 81. Further, when the game system 1 can communicate with another information processing device (for example, a server), a part of the processing of each step shown in FIG. 39 may be executed in the other information processing device. Also, the processing of each step shown in FIG. 39 is merely an example, and if the same result can be obtained, the processing order of each step may be changed, or another process may be executed in addition to (or instead of) the processing of each step.

[0243] Also, the processor 81 executes the processing of each step shown in FIG. 39 using a memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads out and uses the information from the memory.

[0244] In step S1 shown in FIG. 39, the processor 81 acquires the operation data indicating the operation input by the player. That is, the processor 81 acquires the operation data received from each controller via the controller communication unit 83 and / or each terminal 17 and 21. The processing of step S2 is executed after step S1.

[0245] In step S2, the processor 81 designates, as a processing target, any one of the objects (here, the race object) in the game space that requires processing and that has not been processed yet, and executes a speed calculation process for calculating the moving speed for the designated object. Hereinafter, with reference to FIG. 40, the details of the speed calculation process in step S2 will be described.

[0246] FIG. 40 is a sub flowchart showing an example of the detailed flow of the speed calculation process in step S2 shown in FIG. 39. In the speed calculation process, first, in step S21, the processor 81 determines whether or not the race object is capable of a generation action. Specifically, the processor 81 refers to the action parameter data stored in the memory and determines whether or not the action parameter of the race object designated as the processing target is not zero. If the determination result in step S21 is affirmative, the process of step S22 is executed. On the other hand, if the determination result in step S21 is negative, the process of step S25 is executed.

[0247] In step S22, the processor 81 determines whether or not to perform a generation action on the race object. If the race object is a player object, the processor 81 determines whether or not an operation input for the generation action has been performed based on the operation data acquired in step S1. Also, if the race object is other than the player object, the processor 81 determines whether or not to perform a generation action based on the control rule regarding the race object. If the determination result in step S22 is affirmative, the process of step S23 is executed. On the other hand, if the determination result in step S22 is negative, the process of step S25 is executed.

[0248] In step S23, the processor 81 sets the moving speed of the race object to the speed when performing the generation action. In the present embodiment, the moving speed when performing the generation action is faster than the normal speed (step S29 described later). The processor 81 updates the object data stored in the memory regarding the race object so as to indicate the set speed. After step S23, the process of step S24 is executed.

[0249] In step S24, the processor 81 subtracts the action parameter of the race object. Specifically, the processor 81 updates the action parameter data stored in the memory regarding the race object to a value obtained by subtracting a predetermined amount from the value before the update. After step S24, the processor 81 ends the speed calculation process.

[0250] In step S25, the processor 81 determines whether the race object is located on the race track object. If the determination result in step S25 is affirmative, the process of step S26 is executed. On the other hand, if the determination result in step S25 is negative, the process of step S27 is executed.

[0251] In step S26, the processor 81 sets the moving speed of the race object to the speed when traveling on the race track object. In the present embodiment, the speed when traveling on the race track object is faster than the normal speed (step S29 described later). The processor 81 updates the object data stored in the memory regarding the race object so as to indicate the set speed. After step S26, the processor 81 ends the speed calculation process.

[0252] In step S27, the processor 81 determines whether the mud object has been deformed by the race object in the process of the previous frame (specifically, the process in the process loop of the previous steps S1 to S13). The determination process in step S27 is a process of determining whether the density of the voxels of the mud object has been updated by the process of step S32 described later regarding the race object in the process of the previous frame. If the determination result in step S27 is affirmative, the process of step S28 is executed. On the other hand, if the determination result in step S27 is negative, the process of step S27 is executed.

[0253] In step S28, the processor 81 sets the moving speed of the race object to the speed when deforming the mud object. In the present embodiment, the speed when deforming the mud object is slower than the normal speed (step S29 described later). The processor 81 updates the object data stored in the memory regarding the race object so as to indicate the set speed. After step S28, the processor 81 ends the speed calculation process.

[0254] In step S29, the processor 81 sets the moving speed of the race object to a predetermined normal speed. The processor 81 updates the object data stored in the memory regarding the race object so as to indicate the set speed. After step S29, the processor 81 ends the speed calculation process.

[0255] Next to the speed calculation process of step S2 shown in FIG. 39, the process of step S3 is executed. In step S3, the processor 81 executes a voxel update process for updating voxel data. Hereinafter, with reference to FIGS. 41 and 42, the details of the voxel update process of step S3 will be described.

[0256] FIG. 41 and FIG. 42 are sub - flowcharts showing an example of the detailed flow of the voxel update process in step S3 shown in FIG. 39. In the voxel update process, first in step S31, the processor 81 sets a voxel update range in front of the race object specified in step S2. For example, the processor 81 updates the voxel update range data stored in the memory to include data indicating a spherical region centered at a position a predetermined distance in front of the race object. The process of step S32 is executed after step S31.

[0257] In step S32, the processor 81 updates the density of the voxels corresponding to the voxel update range set in step S31. Specifically, the processor 81 updates the voxel data stored in the memory so as to decrease the density of the voxel (for example, set it to 0). As a result, when a voxel mesh is arranged within the voxel update range, in the processes of steps S5 - S8 described later, the voxel mesh is deformed so that the portion of the voxel object within the voxel update range has a shape where it is erased. In this embodiment, the voxel objects deformed by the process of step S32 are soil objects and mud objects, and it is assumed that the road object is not deformed by the process of step S32. For example, the processor 81 may update the density when the material set for the voxel corresponding to the voxel update range is a soil or mud material, and may not update the density when it is a road material. Also, for example, the voxel space for the road object may be set separately from the voxel spaces for the soil object and the mud object. The process of step S33 is executed after step S32.

[0258] In step S33, the processor 81 determines whether the race object is performing a generation action. If the determination result in step S33 is affirmative, the process of step S34 is executed. On the other hand, if the determination result in step S33 is negative, the process of step S35 shown in FIG. 42 is executed.

[0259] In step S34, the processor 81 stores the current position of the race object in association with the current time. In the present embodiment, the current position is a position obtained by moving the position calculated in the process of the previous frame by a distance corresponding to the movement speed set in step S2 in the direction according to the operation input by the player. However, in other embodiments, the position calculated in the process of the previous frame may be used as the current position. The processor 81 updates the position history data stored in the memory so as to include the data indicating the current position and the data capable of specifying the elapsed time from the start of the generation action. Next to step S34, the process of step S35 shown in FIG. 42 is executed.

[0260] In step S35, the processor 81 determines whether there is a position among the positions of the race object indicated by the position history data stored in the memory for which the above-described waiting period has elapsed. For example, the determination in step S35 is made based on whether the data indicating the position associated with the elapsed time that is equal to or longer than the waiting time is included in the position history data. If the determination result in step S35 is affirmative, the process of step S36 is executed. On the other hand, if the determination result in step S35 is negative, the process of step S43 is executed.

[0261] In step S36, the processor 81 sets a passing area extending from the position one frame before the position to the position based on the position of the race object for which it is determined in step S35 that the waiting period has elapsed. Next to step S36, the process of step S37 is executed.

[0262] In step S37, the processor 81 determines whether the elapsed time associated with the position of the race object determined to have elapsed the waiting period in step S35 is within the above-described exclusion processing period since the generation action was started. If the determination result in step S37 is affirmative, the process of step S36 is executed. On the other hand, if the determination result in step S37 is negative, the process of step S39 is executed.

[0263] In step S38, the processor 81 changes the passing area so that an area above the slope set for the passing area is excluded from the passing area set in step S36. Here, the slope is set by the method described in the above [2-8. Game example]. The process of step S39 is executed after step S38.

[0264] In step S39, the processor 81 sets a voxel update range based on the passing area. Here, the passing area used for setting the voxel update range is the passing area set in step S36 if the process of step S38 has not been executed, and is the passing area after being changed in step S38 if the process of step S38 has been executed. Specifically, the processor 81 updates the voxel update range data stored in the memory to include data indicating the passing area. As a result, the voxel update range corresponding to the running surface portion of the running path object is set. In step S39, the processor 81 deletes the data indicating the position of the race object used for setting the voxel update range from the position history data stored in the memory. The process of step S40 is executed after step S39.

[0265] In step S40, the processor 81 determines whether to add a guide portion to the travel path object. The determination in step S40 is made, for example, based on whether a predetermined time has elapsed before the start of the generation action, or whether the current position of the race object is within a predetermined distance from the start position of the generation action. If the determination result in step S40 is affirmative, the process of step S41 is executed. On the other hand, if the determination result in step S40 is negative, the process of step S42 is executed.

[0266] In step S41, the processor 81 sets a voxel update range corresponding to the guide portion. The voxel update range set in step S41 may be a predetermined shape determined based on, for example, the distance from the start position of the generation action to the current position of the race object. The processor 81 updates the voxel update range data stored in the memory to include data indicating the set voxel update range. The process of step S42 is executed after step S41.

[0267] In step S42, the processor 81 updates the voxels corresponding to the voxel update ranges set in steps S39 and S41. Specifically, the processor 81 updates the density of the voxels to increase and updates the material of the voxels to be the material of the travel path. The processor 81 updates the voxel data stored in the memory to indicate the density and material after the update for the voxels. As a result, by the processes of steps S5 to S8 described later, the mesh of the travel path object is deformed so that the travel path object has a shape that includes the voxel update range therein. The process of step S43 is executed after step S42.

[0268] In the processing examples shown in FIGS. 41 and 42, in the frame where the generation action is performed, the current position of the race object at that time is memorized (step S34). In the frame after the standby period has elapsed, based on the memorized position, the setting of the passing area (steps S36, S38), the setting of the voxel update range (step S39), and the update of the voxels (step S42) are performed. Here, the processing for updating the race track object after the standby period has elapsed is not limited to the above. For example, in other embodiments, the processor 81 may set and memorize a passing area based on the position of the race object at that time in the frame where the generation action is performed, and in the frame after the standby period has elapsed, perform the setting of the voxel update range and the update of the voxels based on the memorized passing area. Also, for example, the processor 81 may perform the setting of the passing area and the setting of the voxel update range based on the position of the race object at that time in the frame where the generation action is performed, memorize the voxel update range, and in the frame after the standby period has elapsed, perform the update of the voxels based on the memorized voxel update range.

[0269] In step S43, the processor 81 determines whether or not a replacement event has occurred. In this embodiment, the determination in step S43 is made by determining whether or not the race object has passed through the replacement object. If the determination result in step S43 is affirmative, the processing in step S44 is executed. On the other hand, if the determination result in step S43 is negative, the processor 81 ends the voxel update process.

[0270] In step S44, the processor 81 exchanges the materials of the soil object and the mud object. Specifically, the material data stored in the memory is updated so as to exchange the ID of the soil material and the ID of the mud material. As a result, by the processes of steps S5 to S8 described later, the mud material is set in the voxel object in which the soil material has been set until then, and the soil material is set in the voxel object in which the mud material has been set until then. After step S44, the processor 81 ends the voxel update process.

[0271] Next to the voxel update process of step S3 shown in FIG. 38, the process of step S4 is executed. In step S4, the processor 81 determines whether or not the processes of steps S2 to S3 have been completed for all the objects that require processing. If the determination result in step S4 is affirmative, the process of step S5 is executed. On the other hand, if the determination result in step S4 is negative, the process of step S2 is executed again.

[0272] In the flowchart shown in FIG. 38, it is assumed that the processes of steps S2 and S3 are executed for the race object, but the processes of calculating the moving speed and the voxel update process may also be executed for other objects. Further, in other embodiments, for the objects to be processed in steps S2 and S3, the processor 81 may execute a process of reflecting the result of contact between the objects in the previous frame. The above process includes a process of applying an influence due to contact to the object when it is determined that the objects have come into contact with each other in the collision determination (step S9 described later) in the previous frame. The above process includes, for example, the following processes. · A process of reducing the physical strength of the player object when it is determined that another object has come into contact with the player object · A process of generating a fragment object when it is determined that the race object has come into contact with the soil object or the mud object in the previous frame · When it is determined in the previous frame that a fragment object has contacted another object, a process of eliminating the fragment object

[0273] In step S5, the processor 81 updates the vertices of the voxel object in the game space. That is, when the voxel data is updated in the process of step S3, new vertices are calculated based on the updated voxel data. Note that the positions of the new vertices are calculated according to the method described in [2-3. Calculation of vertices] above. Also, the materials of the new vertices are calculated according to the method described in [2-4. Determination of vertex materials] above. The process of step S6 is executed after step S5.

[0274] In step S6, the processor 81 performs vertex simplification. That is, the processor 81 simplifies each vertex updated by the process of step S5 according to the method described in [2-5. Vertex simplification] above. The SVO data stored in the memory is updated to indicate each vertex obtained by the processes of steps S5 and S6 above. Therefore, the SVO data is updated by the processes of steps S5 and S6. Note that the processes of steps S5 and S6 do not need to recalculate the vertices for the entire voxel data, and may be executed only for the part where the content of the voxel is changed in the process of step S3. The process of step S7 is executed after step S6.

[0275] In step S7, the processor 81 updates the display mesh of the voxel object based on the SVO data stored in the memory. Note that the positions of the vertices of the display mesh and the materials of the polygons of the display mesh (i.e., the materials set for the vertices of the polygons) are calculated according to the methods described in the above [2-6. Generation of Mesh] and [2-6-1. Determination of the Material of the Display Mesh]. The processor 81 updates the display mesh data stored in the memory so as to indicate the positions and materials of the vertices of the updated display mesh. The process of step S8 is executed after step S7. Note that the processor 81 may start the processes after step S8 and execute them in parallel without waiting for the completion of step S7. In that case, step S7 needs to be completed before the start of step S12.

[0276] In step S8, the processor 81 updates the determination mesh of the voxel object based on the SVO data stored in the memory. Note that the positions of the vertices of the determination mesh and the materials of the polygons of the determination mesh (i.e., the materials set for the vertices of the polygons) are calculated according to the methods described in the above [2-6. Generation of Mesh] and [2-6-2. Determination of the Material of the Determination Mesh]. The processor 81 updates the determination mesh data stored in the memory so as to indicate the positions and materials of the vertices of the updated determination mesh. The process of step S9 is executed after step S8.

[0277] In the example shown in FIG. 39, the generation process of the determination mesh (step S8) is executed every frame. However, the generation process of the determination mesh does not necessarily have to be executed every frame. For example, when the collision determination process in step S9 is executed only in frames that satisfy a predetermined condition, the processor 81 may execute the generation process of the determination mesh in the frames for performing the collision determination in step S9. Further, the processor 81 may execute the generation process of the determination mesh for the voxels within the area in the game space where the collision determination in step S9 is performed. For example, in a situation where there are no objects to be subject to collision determination other than voxel objects around the player character in the game space (that is, a situation where only the collision determination between the player character and the surrounding voxel objects needs to be performed), the processor 81 may execute the generation process of the determination mesh for the voxels within a predetermined range based on the player character.

[0278] In step S9, the processor 81 performs a collision determination for each object in the game space based on the determination mesh data and the object data stored in the memory. That is, the processor 81 uses the determination mesh for the voxel object and uses a determination area of a predetermined shape set for the object for an object that is not a voxel object to perform the collision determination. In the present embodiment, the collision determination in step S9 is performed in consideration of the movement speed calculated in step S2 above. That is, the processor 81 performs the collision determination using, as the position of the object, the position obtained by moving the position of the object in the previous frame by a distance corresponding to the movement speed. In the present embodiment, the collision determination in step S9 determines, for example, whether or not race objects are in contact with each other, and whether or not a race object is in contact with a race track object. If it is determined in the collision determination in step S9 that the objects are in contact with each other, then in the process of step S2 in the next frame, a process that reflects the result of the contact between the objects is executed. The process of step S10 is executed after step S9.

[0279] In step S10, the processor 81 executes a player object control process. Hereinafter, with reference to FIG. 43, the details of the player object control process in step S10 will be described.

[0280] Figure 43 is a sub - flowchart showing an example of the detailed flow of the player object control process in step S10 shown in Figure 39. In the player object control process, first in step S31, the processor 81 calculates the position and orientation of the player object. For example, the position of the player object is calculated as the position obtained by moving the position calculated in the previous frame processing by a distance corresponding to the movement speed set in step S2 in the advancing direction according to the operation input by the player. Also, the orientation of the player object is determined to be the orientation corresponding to the advancing direction. Note that the processor 81 may use the position calculated in step S34 as the position of the player object. The processor 81 updates the object data stored in the memory regarding the player object so that the content indicates the calculated position and orientation. The process of step S52 is executed after step S51.

[0281] In step S52, the processor 81 controls the operation of the player object. The processor 81 causes the player object to perform operations according to its state, such as the operation during the generation of an action or the operation while traveling on a traveling road object. Note that in one execution of the process of step S52, the processor 81 controls the player object so that the progress of the operation for one frame is performed for operations that occur over multiple frames. The object data stored in the memory is updated so that the content indicates the object after the control in step S52. The process of step S53 is executed after step S52.

[0282] In step S53, the processor 81 determines whether the player object has deformed the soil object or the mud object. The determination in step S53 is made, for example, based on whether the density of the voxels within the voxel update range has changed in step S32 of the above-described voxel update process (step S3). If the determination result in step S53 is affirmative, the process of step S54 is executed. On the other hand, if the determination result in step S53 is negative, the processor 81 ends the player object control process.

[0283] In step S54, the processor 81 adds the action parameters of the player object. Specifically, the processor 81 updates the action parameter data stored in the memory regarding the player object to a value obtained by adding a predetermined amount to the value before the update. After step S54, the processor 81 ends the player object control process.

[0284] Next to the player object control process of step S10 shown in FIG. 43, the process of step S11 is executed. In step S11, the processor 81 controls the operations of objects other than the player object. For example, regarding the race object, the processor 81 executes the same process for each race object as in the player object control process of step S10. However, for race objects other than the player object, the advancing direction is determined based on the control rules defined in the game program instead of the operation input by the player. Also, for example, regarding objects other than the race object, the processor 81 controls the operations of the objects based on the control rules defined in the game program. Note that in one execution of the process of step S10, the processor 81 controls the objects so as to advance the operation for one frame for operations performed over a plurality of frames. The object data stored in the memory is updated to show the object after the control in step S10. The process of step S12 is executed after step S11.

[0285] In step S12, the processor 81 generates a game image. That is, the processor 81 generates a game image by performing drawing on each polygon of the display mesh of the voxel object and each polygon of the object other than the voxel object based on the virtual camera. Note that each polygon of the display mesh is drawn using drawing settings such as a texture corresponding to the material set for the polygon according to the method described in the above [2-6-1. Determination of the material of the display mesh]. Further, the processor 81 draws the above-described gauge image, effect image, etc. as necessary. The game image generated in step S12 is output to the display device and displayed once per cycle per frame.

[0286] In step S13, the processor 81 determines whether to end the game. For example, when a player performs a predetermined operation input for ending the game, the processor 81 determines to end the game. If the determination result in step S13 is negative, the process of step S1 is executed again. Thereafter, a series of processes of steps S1 to S13 are repeatedly executed until it is determined in step S13 to end the game. On the other hand, if the determination result in step S13 is positive, the processor 81 ends the game process shown in FIG. 39.

[0287] [4. Operational effects and modifications of the present embodiment] In the above embodiment, the game system 1 decreases the density of the voxels corresponding to the first voxel update range set in front of the player object and increases the density of the voxels corresponding to the second voxel update range set at the position where the player object performing a predetermined action has passed. Thereby, it is possible to provide a new game in which the voxel mesh dynamically deforms according to the movement of the player object.

[0288] In the above embodiment, the game system 1 generates both the above-described display mesh and determination mesh, and deforms both the display mesh and the determination mesh according to the above-described first and second voxel update ranges. However, in other embodiments, one type of mesh used for both display and collision determination may be generated, and the game system 1 may deform such one type of mesh according to the above-described first and second voxel update ranges. Also, for example, the game system 1 may deform the determination mesh according to the above-described first and second voxel update ranges, and deform the display mesh by an arbitrary method.

[0289] In the above [2-8. Game Example], the case where a racing game is executed is described as an example. However, the process of deforming the voxel mesh according to the above-described first and second voxel update ranges may be executed in any other type of game different from the racing game.

[0290] In the above embodiment, when a process is executed using data (in the sense including a program) in a certain information processing apparatus, a part of the data necessary for the process may be transmitted from another information processing apparatus different from the certain information processing apparatus. At this time, the certain information processing apparatus may execute the above process using the data received from another information processing apparatus and the data stored in itself.

[0291] In other embodiments, the information processing system may not include a part of the configuration in the above embodiment, or may not execute a part of the processes executed in the above embodiment. For example, in order to obtain a part of the specific results in the above embodiment, the information processing system may include a configuration for obtaining the results and execute a process for obtaining the results, and may not include other configurations or execute other processes.

Industrial Applicability

[0292] The above-described embodiment can be used as, for example, a game system or a game program for the purpose of providing a novel game using voxel data and the like.

Explanation of Signs

[0293] 1 Game system 2 Main body device 81 Processor 301 Player object 304 Soil object 305 Mud object 313, 317, 321 Passage area 314, 318, 322 Slope 315, 319, 323 Voxel update range 325 Travel path object

Claims

1. Cause a computer to update voxel data defined in a virtual space, where for each of a plurality of voxels, at least the density indicating the degree to which the space defined by the voxel is virtually occupied by content is set, based on game processing; update a voxel mesh that is a mesh corresponding to the voxel data and whose vertex coordinates are determined based on at least the density included in the voxel data; In the game processing, if a player object in the virtual space is on the voxel mesh, control its movement based on an operation input at the position on the voxel mesh; generate a first voxel update range in front of the player object, and decrease the density of the voxels corresponding to the first voxel update range; cause the player object to perform a first action in response to a first instruction based on an operation input; continuously generate a second voxel update range at the position passed through by the player object due to the first action, and increase the density of the voxels corresponding to the second voxel update range. A game program.

2. The game processing according to claim 1, wherein the game processing is game processing of a racing game in which a course formed by an annular course in the virtual space is circled a predetermined number of times.

3. The course of the field includes a ground object having a mesh other than the voxel mesh, the voxel data is defined at least in a range above the ground object in the virtual space, Cause the computer to if a player object in the virtual space is on the ground object, control its movement based on an operation input at the position on the ground object. The game program according to claim 2.

4. For each of the plurality of voxels in the voxel data, a material indicating the type of the content is further set, Further cause the computer to generate or update the material of the voxel mesh by determining it based on at least the material included in the voxel data, update the material of the voxels whose density is increased based on the second voxel update range to a first material. The game program according to any one of claims 1 to 3, wherein when the material has the player object on the voxel mesh of the first material, the player object is accelerated.

5. For each of the plurality of voxels, the voxel data is further set with a material indicating the type of the content. The computer is further configured to generate or update by determining the material of the voxel mesh based on at least the material included in the voxel data. The game program according to any one of claims 1 to 3, wherein when the material of the voxel mesh in the traveling direction of the player object is a second material, the moving speed in the movement control of the player object is reduced more than when it is a third material.

6. The computer is further configured to when a first event occurs in the game process, swap the type of the content indicated by the second material and the type of the content indicated by the third material. The game program according to claim 5.

7. The computer is configured to generate the second voxel update range after a predetermined period has passed since the player object passed through. The game program according to any one of claims 1 to 3.

8. The first action is an action including at least a jump in the traveling direction. The computer is configured to within a first period after the start of the first action, set, as the second voxel update range, a range excluding an upper range of a plane obtained by tilting a plane from the start position of the first action to the current position of the player object by a predetermined angle, among a third voxel update range set at a position where the player object has passed. After the elapse of the first period, set the third voxel update range as the second voxel update range. The game program according to any one of claims 1 to 3.

9. The computer is further configured to generate a fourth voxel update range outside the second voxel update range at the start of the first action, and increase the density of the voxels corresponding to the fourth voxel update range. The game program according to claim 8.

10. The voxel mesh includes a collision mesh used for collision determination with the player object and a display mesh drawn based on a virtual camera, or is the collision mesh and the display mesh, For each of the plurality of voxels in the voxel data, a material indicating the type of the content is further set, The computer further determines the material of the collision mesh based on at least the material included in the voxel data, Using the collision mesh as a display mesh, the computer causes the virtual space including the display mesh to be drawn based on the vertex coordinates of the display mesh and the texture corresponding to the material of the display mesh. The game program according to any one of claims 1 to 3.

11. The voxel mesh is a collision mesh used for collision determination with the player object, For each of the plurality of voxels in the voxel data, a material indicating the type of the content is further set, The computer further generates or updates a display mesh corresponding to the voxel data and drawn based on a virtual camera by determining the vertex coordinates of the mesh based on at least the density included in the voxel data and determining the material of the mesh based on at least the material included in the voxel data, The computer causes the virtual space including the display mesh to be drawn based on the vertex coordinates of the display mesh and the texture corresponding to the material of the display mesh. The game program according to any one of claims 1 to 3.

12. Voxel data defined in a virtual space, for each of a plurality of voxels, the voxel data in which at least a density indicating the degree to which the space defined by the voxel is virtually occupied by the content is set, is updated based on game processing, A mesh corresponding to the voxel data, the voxel mesh whose vertex coordinates are determined based on at least the density included in the voxel data, is updated, In the game processing, When the player object in the virtual space is on the voxel mesh, control its movement based on an operation input at the position on the voxel mesh. Generate a first voxel update range in front of the player object and decrease the density of the voxels corresponding to the first voxel update range. In response to a first instruction based on an operation input, cause a first action to be performed on the player object. An information processing system that continuously generates a second voxel update range at the position where the player object has passed due to the first action and increases the density of the voxels corresponding to the second voxel update range.

13. The game processing is game processing of a racing game in which a course in the virtual space is configured on a field and the course is circled a predetermined number of times. The information processing system according to claim 12.

14. The course of the field includes a ground object having a mesh other than the voxel mesh. The voxel data is at least defined in a range above the ground object in the virtual space. When the player object in the virtual space is on the ground object, control its movement based on an operation input at the position on the ground object. The information processing system according to claim 13.

15. For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data. Generate or update the material of the voxel mesh by determining it based at least on the material included in the voxel data. Update the material of the voxels whose density is increased based on the second voxel update range to a first material. When the player object is on the voxel mesh whose material is the first material, accelerate the player object. The information processing system according to any one of claims 12 to 14.

16. For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data. Generate or update the material of the voxel mesh by determining it based at least on the material included in the voxel data. When the material of the voxel mesh in the traveling direction of the player object is the second material, the moving speed in the movement control of the player object is decreased compared to the case where it is the third material. The information processing system according to any one of claims 12 to 14.

17. When a first event occurs in the game processing, The information processing system according to claim 16, which swaps the types of contents indicated by the second material and the types of contents indicated by the third material.

18. The information processing system according to any one of claims 12 to 14, which generates the second voxel update range after a predetermined period has passed since the player object passed through.

19. The first action is an action including at least a jump in the traveling direction, Within a first period after the start of the first action, Of the third voxel update range set at the position where the player object has passed, a range excluding the range above the surface obtained by tilting the surface from the start position of the first action to the current position of the player object by a predetermined angle is set as the second voxel update range, After the elapse of the first period, the third voxel update range is set as the second voxel update range. The information processing system according to any one of claims 12 to 14.

20. At the start of the first action, a fourth voxel update range is generated outside the second voxel update range, and the density of the voxels corresponding to the fourth voxel update range is increased. The information processing system according to claim 19.

21. The voxel mesh includes a collision mesh used for collision determination with the player object and a display mesh drawn based on a virtual camera, or is the collision mesh and the display mesh, For each of the plurality of voxels, the voxel data is further set with a material indicating the type of content, The material of the collision mesh is determined based on at least the material included in the voxel data. Using the collision mesh as a display mesh, rendering the virtual space including the display mesh based on the vertex coordinates of the display mesh and the texture corresponding to the material of the display mesh, the information processing system according to any one of claims 12 to 14.

22. The voxel mesh is a collision mesh used for collision determination with the player object, For each of the plurality of voxels in the voxel data, a material indicating the type of the content is further set, Corresponding to the voxel data, a display mesh rendered based on a virtual camera is generated or updated by determining the vertex coordinates of the mesh based on at least the density included in the voxel data and determining the material of the mesh based on at least the material included in the voxel data, Using the vertex coordinates of the display mesh and the texture corresponding to the material of the display mesh, rendering the virtual space including the display mesh, the information processing system according to any one of claims 12 to 14.

23. Voxel data defined in a virtual space, for each of a plurality of voxels, voxel data in which at least a density indicating the degree to which the space defined by the voxel is virtually occupied by the content is set, is updated based on game processing, Updating a voxel mesh that is a mesh corresponding to the voxel data and whose vertex coordinates are determined based on at least the density included in the voxel data, In the game processing, When the player object in the virtual space is on the voxel mesh, controlling the movement based on an operation input at the position on the voxel mesh, Generating a first voxel update range in front of the player object and decreasing the density of the voxels corresponding to the first voxel update range, Causing the player object to perform a first action in response to a first instruction based on an operation input, Continuously generating a second voxel update range at the position passed by the player object due to the first action and increasing the density of the voxels corresponding to the second voxel update range, an information processing apparatus.

24. In an information processing system, Voxel data defined in a virtual space, wherein for each of a plurality of voxels, voxel data in which at least a density indicating the degree to which the space defined by the voxel is virtually occupied by the content is set is updated based on game processing. A mesh corresponding to the voxel data, wherein a voxel mesh in which vertex coordinates are determined based on at least the density included in the voxel data is updated. In the game processing, When a player object in the virtual space is on the voxel mesh, the player object is moved and controlled based on an operation input at a position on the voxel mesh. A first voxel update range is generated in front of the player object, and the density of voxels corresponding to the first voxel update range is decreased. In response to a first instruction based on an operation input, a first action is performed on the player object. A second voxel update range is continuously generated at a position where the player object has passed through by the first action, and the density of voxels corresponding to the second voxel update range is increased. A game processing method. [

25. ] The game processing is game processing of a racing game in which a course in a field constituting an annular course in the virtual space is circled a predetermined number of times. The game processing method according to claim 24. [

26. ] The course of the field includes a ground object having a mesh other than the voxel mesh. The voxel data is defined at least in a range above the ground object in the virtual space. In the information processing system, When a player object in the virtual space is on the ground object, the player object is moved and controlled based on an operation input at a position on the ground object. The game processing method according to claim 25. [

27. ] For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data. Furthermore, in the information processing system, The material of the voxel mesh is generated or updated by determining it based on at least the material included in the voxel data. The material of the voxel for increasing the density based on the second voxel update range is updated to a first material. The game processing method according to any one of claims 24 to 26, wherein when the material has the player object on the voxel mesh of the first material, the player object is accelerated.

28. For each of the plurality of voxels, the voxel data is further set with a material indicating the type of the content. The information processing system further generates or updates by causing the material of the voxel mesh to be determined based at least on the material included in the voxel data. The game program according to any one of claims 24 to 26, wherein when the material of the voxel mesh in the traveling direction of the player object is a second material, the moving speed in the movement control of the player object is reduced more than when it is a third material.

29. The information processing system further when a first event occurs in the game processing, swaps the type of content indicated by the second material and the type of content indicated by the third material. The game processing method according to claim 28.

30. The information processing system generates the second voxel update range after a predetermined period has passed since the player object passed through. The game processing method according to any one of claims 24 to 26.

31. The first action is an action including at least a jump in the traveling direction. The information processing system within a first period after the start of the first action, sets, as the second voxel update range, a range excluding an upper range of a plane obtained by tilting a plane from the start position of the first action to the current position of the player object by a predetermined angle among a third voxel update range set at a position where the player object has passed. After the first period has elapsed, sets the third voxel update range as the second voxel update range. The game processing method according to any one of claims 24 to 26.

32. The information processing system further generates a fourth voxel update range outside the second voxel update range at the start of the first action, and increases the density of the voxels corresponding to the fourth voxel update range. The game processing method according to claim 31.

33. The voxel mesh includes a collision mesh used for collision determination with the player object and a display mesh drawn based on a virtual camera, or is the collision mesh and also the display mesh, For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data, The information processing system further includes causing the material of the collision mesh to be determined based at least on the material included in the voxel data, The game processing method according to any one of claims 24 to 26, wherein the collision mesh is used as a display mesh, and causing the virtual space including the display mesh to be drawn based on vertex coordinates of the display mesh and a texture corresponding to the material of the display mesh.

34. The voxel mesh is a collision mesh used for collision determination with the player object, For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data, The information processing system further includes generating or updating a display mesh corresponding to the voxel data and drawn based on a virtual camera by causing vertex coordinates of the mesh to be determined based at least on the density included in the voxel data and causing the material of the mesh to be determined based at least on the material included in the voxel data, The game processing method according to any one of claims 24 to 26, wherein the virtual space including the display mesh is drawn based on vertex coordinates of the display mesh and a texture corresponding to the material of the display mesh.

Citation Information

Patent Citations

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

    JP2004062666A

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

    JP2023178274A

  • Generating surface meshes from voxel models of 3D environments.

    JP2024521128A