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

The game system addresses the issue of player character return positioning in deformed voxel-based terrains by storing history positions and using separate display and collision meshes, ensuring accurate and efficient return positioning in games.

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

Patent Information

Application Number
JP2024218777
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-12-13
Publication Date
2025-08-01
Estimated Expiration
2044-12-13

AI Technical Summary

Technical Problem

In games where meshes are generated based on voxel updates, there is a challenge in appropriately setting the return position of a player character when the terrain is deformed, leading to potential issues with the player character returning to non-existent positions.

Method used

The game system updates voxel data to determine terrain meshes, stores player character positions as history, and sets return positions based on candidate positions within the history to avoid non-existent terrain, using separate display and collision meshes to manage deformation and reduce processing load.

Benefits of technology

This approach allows for accurate and efficient setting of the player character's return position, even when the terrain is deformed, by utilizing history-based positioning and separate meshes for display and collision determination, thereby enhancing gameplay stability and performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025113173000001_ABST
    Figure 2025113173000001_ABST
Patent Text Reader

Abstract

To provide a game program, a game system, a game processing method and a game device capable of appropriately setting a return position of a player character in a game in which a mesh generated on the basis of a voxel update may be deformed.SOLUTION: In a first case in which a player character is positioned at least on the geography of a voxel object, movement control is performed on the player character in a position on the geography on the basis of an operation input, the position of the player character is stored as a history, the movement control based on the operation input is suspended when the player character fulfills a first condition as a result of movement, a return position is determined from among candidates which are not in a position where no geography exists, out of candidates which include a plurality of positions included in the history, the player character is made to move and return to the return position, and the movement control based on the operation input is restarted.SELECTED DRAWING: Figure 28
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

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

Background Art

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

Prior Art Documents

Non-Patent Documents

[0003]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In a game where a mesh generated based on an update of voxels may be deformed, there may be a case where the position where a player character returns cannot be set appropriately.

[0005] The present invention provides a game program, a game system, a game processing method, and a game device that can appropriately set the return position of a player character in a game where a mesh generated based on an update of voxels may be deformed.

Means for Solving the Problems

[0006] In order to achieve the above object, the present invention may adopt, for example, the following configurations (1) to (10).

[0007] (1) One configuration example of the game program of the present invention is to cause a computer to update voxel data indicating a terrain defined in a virtual space, which is voxel data in which at least a density indicating the degree to which the space defined by each of a plurality of voxels is virtually occupied by the content is set, based on game processing, and to update a terrain mesh corresponding to the voxel data and indicating the terrain, the vertex coordinates of which are determined based on at least the density included in the voxel data. In the game processing, further, in a first case where the player character is at least on the terrain, the player character is moved and controlled based on an operation input at a position on the terrain, and the position of the player character is stored as a history. When the player character satisfies a first condition by moving, the movement control based on the operation input is interrupted, and a return position is determined from candidates including a plurality of positions included in the history, which are not positions where the terrain does not exist, and the player character is moved to the return position, and the movement control based on the operation input is resumed.

[0008] According to the configuration of the above (1), in a game in which the terrain mesh generated based on the update of the voxels may be deformed, the return position of the player character can be appropriately set based on the history so as not to return to a position where the terrain no longer exists.

[0009] (2) In the configuration of the above (1), the computer may further cause the player character to perform a first action based on an operation input in the game processing, set a first voxel update range in the virtual space based on the first action, and reduce the density of the voxels of the voxel data corresponding to the first voxel update range.

[0010] According to the configuration of (2) above, even when the terrain is deformed by the actions of the player character, the return position of the player character can be appropriately set.

[0011] (3) In the configuration of (1) or (2) above, in the game process, when the player character is in contact with the terrain at least in the forward direction, the computer may further control the player character to be movable based on an operation input at the position where it is in contact with the terrain, and store the position of the player character as a history.

[0012] According to the configuration of (3) above, even when the player character moves on a wall surface, the return position of the player character can be appropriately set.

[0013] (4) In the configuration of (3) above, in the second case, the computer may further store at least the position of the player character every time it moves a predetermined distance and the position when the player character stops as a history.

[0014] According to the configuration of (4) above, even on the wall surface where the player character has moved, an appropriate position can be stored as a history.

[0015] (5) In any one of the configurations of (1) to (4) above, in the game process, when the player character reaches a checkpoint in the virtual space, the computer may further store the checkpoint as a candidate and exclude the history stored so far from the candidates.

[0016] According to the configuration of (5) above, when a specific checkpoint is reached, it is possible to prevent the player character from returning to the position stored before that.

[0017] (6) In any one of the configurations (1) to (5) above, the computer may be caused to determine, as the return position, the newest one among the candidates.

[0018] According to the configuration (6) above, the player character can be returned to the position with the newest history.

[0019] (7) In any one of the configurations (1) to (6) above, the first condition may include that the position of the player character is within a first range in the virtual space.

[0020] According to the configuration (7) above, when the player character enters the first range, it can return to the return position.

[0021] (8) In any one of the configurations (1) to (7) above, the first condition may further include that the first held item consumed according to the movement for the player character to return is left.

[0022] According to the configuration (8) above, it is possible to give an effect that the player character can return to the return position and resume movement control with respect to the first held item.

[0023] (9) In any one of the configurations (1) to (8) above, for each of the plurality of voxels, a material indicating the type of the content may be further set in the voxel data. The computer may further generate or update 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 material included in the voxel data, and cause the virtual space including the display mesh to be drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh.

[0024] According to the configuration of (9) above, since the determination mesh and the display mesh are determined separately, appropriate meshes can be used according to their respective uses.

[0025] (10) In any one of the configurations of (1) to (8) above, for each of the plurality of voxels in the voxel data, a material indicating the type of content may be further set. The computer may further determine the material of the terrain mesh based at least on the materials included in the voxel data, and cause 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, with the terrain mesh as the display mesh.

[0026] According to the configuration of (10) above, since drawing and collision determination can be performed using the same mesh, the processing load for setting the mesh can be reduced.

[0027] Further, the present invention may be implemented in the form of a game system, a game processing method, and a game device.

Effects of the Invention

[0028] According to the present invention, in a game in which the mesh generated based on the update of the voxels may be deformed, the return position of the player character can be appropriately set.

Brief Description of the Drawings

[0029]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Figure 29

Figure 30

Figure 31

Figure 32

Figure 33

Figure 34

Figure 35

Figure 36

Figure 37

Figure 38

Mode for Carrying Out the Invention

[0030] [1. Configuration of 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; which functions as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main body device 2. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are each attached to the main body device 2 and integrated. 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.

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

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

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

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

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

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

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

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

[0039] 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 to store, for example, data (e.g., save data of applications, etc.) used in the main body device 2 and / or programs (e.g., application programs, etc.) executed by the main body device 2. The main body device 2 also includes a power button 28.

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

[0041] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In 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 also be gripped in a vertically long orientation when removed from the main body device 2. The housing 31 has a shape and size that can be gripped with one hand, particularly the left hand, when gripped in a vertically long orientation. Also, the left controller 3 can be gripped in a horizontally long orientation. When the left controller 3 is gripped in a horizontally long orientation, it may be gripped with both hands.

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

[0043] The left controller 3 is provided with various operation buttons. The left controller 3 has four operation buttons 33 to 36 (specifically, a right arrow button 33, a down arrow button 34, an up arrow button 35, and a left arrow 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 that is attached when the left controller 3 is 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.

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

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

[0046] Similar to the left controller 3, the right controller 4 includes 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. Further, instead of the analog stick, the right controller 4 may be provided with a cross key or a slide stick capable of slide input. Also, similar to the left controller 3, the right controller 4 includes 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. Furthermore, the right controller 4 includes a + (plus) button 57 and a home button 58. Also, the right controller 4 includes 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 includes a second L button 65 and a second R button 66.

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

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

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

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

[0051] 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 in accordance with an instruction from the processor 81.

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

[0053] 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 standard as a first communication mode. Further, the network communication unit 82 performs wireless communication with other main body devices 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication by the second communication mode enables so-called "local communication" in which wireless communication is possible with other main body devices 2 arranged within a closed local network area, and data is transmitted and received by direct communication between a plurality of main body devices 2.

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

[0055] The processor 81 is connected to the above-described left terminal 17, right terminal 21, and lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. Further, when the processor 81 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. Also, when the processor 81 communicates with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, in the present embodiment, the main body device 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4, respectively. Further, when the left controller 3 and the right controller 4 are attached to the main body device 2 as an integrated device or when the main body device 2 alone is attached to the cradle, the main body device 2 can output data (for example, image data or audio data) to a stationary monitor or the like via the cradle.

[0056] Here, the main body device 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). Also, the main body device 2 can communicate with a plurality of right controllers 4 simultaneously (in other words, in parallel). Therefore, a plurality of users can simultaneously input to the main body device 2 using respective sets of the left controller 3 and the right controller 4. As an example, while the first user inputs to the main body device 2 using the first set of the left controller 3 and the right controller 4, it is possible for the second user to input to the main body device 2 using the second set of the left controller 3 and the right controller 4.

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

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

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

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

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

[0062] 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 by both wired communication via the terminal 42 and wireless communication without using the terminal 42. The communication control unit 101 controls the communication method performed by the left controller 3 with respect to the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. Further, when the left controller 3 is removed from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

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

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

[0065] The communication control unit 101 acquires information regarding the input (specifically, information regarding the operation or the detection result by the sensor) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or the 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 the input is transmitted to the main body device 2 may be the same or different for each input unit.

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

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

[0068] 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 both by wired communication via the terminal 64 and by wireless communication without using the terminal 64 (specifically, communication according to the Bluetooth (registered trademark) standard), and controls the communication method that the right controller 4 performs with the main body device 2.

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

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

[0071] [2. Overview of Processing in the Game System] Next, with reference to FIGS. 8 to 24, 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 displays it on a display device. 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.

[0072] [2-1. Voxel] In the present embodiment, for some objects in the game space, their shapes are defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, a cube)-shaped region arranged in a grid pattern in the game space, and voxel data is data 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.

[0073] 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 as thick lines, but these thick lines are added for the purpose of making the drawing easier to view, and in reality, it is not necessary for the sides of the terrain object to be shown thickly.

[0074] The terrain object shown in FIG. 8 is generated, for example, according to the rule that "when the parameter included in the voxel data set in the voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and when it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 8 is shown for the purpose of easily exemplifying the relationship between the voxel and the voxel object. In the present embodiment, actually, 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 the 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 the object data.

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

[0076] 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 is changed 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.

[0077] In this 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 area of the game space. When the voxel space is set in a partial area 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 area of the game space may be set. At this time, the game system 1 stores voxel data for each voxel space.

[0078] 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 this embodiment, these data are set for each voxel.

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

[0080] In this embodiment, the density can take an integer value in the range from a lower limit value (e.g., 0) to an upper limit value (e.g., 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 (i.e., the virtual content of the voxel object). For example, when the density is 0, the voxel is empty, when the density is 255, the entire voxel is the content of the voxel object, and when the density is a value between 0 and 255, the content of the voxel object can occupy the voxel at a ratio corresponding to the value. Then, based on the above density, the shape of the mesh, i.e., the surface shape of the voxel object, can be determined. The mesh can 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.

[0081] 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 values of 0 or 1.

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

[0083] As described above, in the present embodiment, the voxel data includes the 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).

[0084] 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 one of the ratio of the material 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 means 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 of materials, the ratio of the materials in the voxel is represented as a plurality of values respectively indicating the ratio of each material.

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

[0086] 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, for example, data indicating whether the voxel is wet (and the degree thereof).

[0087] 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, the name, properties, and drawing setting information set for the material are associated with each other.

[0088] The name included in the material data is the name set for the material (for example, soil, sand, grass, etc.). Note that during the game, the name of the material of the voxel object may be displayed. In order to perform such a display, the material data includes information on the name of the material.

[0089] 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 one 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 · Recovery amount 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.

[0090] 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 the content of the property (for example, a value indicating the above-mentioned weight or slipperiness) is associated with the property ID for each prepared property. By referring to the above property information, the game system 1 can specify the specific content of the property set for the material.

[0091] 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 an ID of a texture used for rendering the voxel object to which the material is set as information on the rendering settings (see FIG. 12). Although not shown, the game system 1 stores texture information in which the texture ID and the texture indicated by the texture ID are associated with each other for each prepared texture. 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, as information on the rendering settings, in addition to the texture information, any information related to the shading settings may be set. For example, the reflectance, information related to the normal, etc. may be set.

[0092] Also, the material data may include other data other than the data shown in FIG. 12. For example, the material data may include data related to sound settings. For example, the data related to sound settings may be data that defines the footstep sound output when a player character walks on the voxel object based on the voxel.

[0093] Note that the material data may be data in any format that can identify the properties of the material and / or the drawing 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 the drawing settings, instead of a data structure including a material ID and a texture ID.

[0094] [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 the character has contacted the voxel object, or a bomb has exploded).

[0095] 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 erased. Thereby, the state where the terrain object 202 is destroyed by the punch action of the player character 201 is expressed.

[0096] 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 generated update event (for example, a player character who performed a punch) contacts the voxel object. 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 forward from the hit position may be 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. Further, the size of the update range may be determined according to a value indicating the degree of influence of the generated update event (for example, the strength of the punch or the size of the explosion).

[0097] The game system 1 changes the density for 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, so that 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 for the voxels included in the update range, the game system 1 may change the material (that is, the first material, the second material, and the material mixing ratio) in the voxels or change the state in the voxels.

[0098] 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 is negative for the positions inside the shape represented by the SDF, and the SDF value is 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 based on whether the value of the SDF 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.

[0099] 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 region within the voxel object increases by the amount of the update range) may be added to the voxel object. 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.

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

[0101] 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 easier to view and the explanations easier 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. The details of this method will be described below.

[0102] As described above, in the present embodiment, the density set for each voxel is set within 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 the interior is completely filled. Densities between 0 and 255 are treated interpolatively and are used to determine vertices. And in the present embodiment, voxels with a density greater than or equal to a reference value are virtually treated as being inside the object, and voxels with a density less than the reference value are virtually treated as being outside the object. It can also be said that voxels with a density greater than or equal to the reference value are virtually treated as voxels indicating their existence, and voxels with a density less than the reference value are virtually treated as voxels indicating their 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, let's assume that in voxel 211 and other outer voxels, the density is 0, in voxel 212 the density is 100 which is less than the reference value, and in voxels 213 and 214 the densities are 150 and 210 which are greater than or equal to the reference value. In the present embodiment, the game system 1 generates vertices between voxels with a density greater than or equal to the reference value and voxels with a density less than the reference value. Specifically, for each region spanning 8 adjacent voxels (4 in the drawing) (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 regions that span both voxels with a density greater than or equal to the reference value and voxels with a density less 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. Additionally, by setting 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 pre-held for at least some of the voxels, or if it is not held, the normal information may also be calculated based on the densities of adjacent voxels. Note that in FIG. 15, since the density of voxel 212 is less than the reference value, in the determination of the presence or absence of vertices, voxel 212 is treated as being outside the object, but the density value of voxel 212 itself is used in 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 result is that more vertices will be added to the upper right side and the upper left side of voxel 212 in FIG. 15.

[0103] 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), it is possible to generate a shape having a volume that reflects the density for each voxel to a certain extent. However, depending on the relationship with adjacent voxels, it may be possible that a voxel with a density of 0 includes a region within a part of the object, or a voxel with a density of 255 includes a region outside a part of the object. Also, in this embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume is also smaller by the amount that the number of vertices is less compared to the case of processing as inside the object. Thus, there is no need to calculate the polygon mesh so as to have a volume that exactly corresponds to the density value.

[0104] [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 the vertex is determined based on the materials of the voxels around the vertex. The voxels around the vertex are, for example, the voxels used for determining 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 for determining the material of the vertex do not have to be the same as the voxels used for determining the generation of the vertex, and they may be different.

[0105] 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-described "voxels around the vertex". In the 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 among the center positions of voxels 215 to 218 (the position of the white circle shown in FIG. 13) as (0, 0).

[0106] 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 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

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

[0108] Then, based on the above weight value and the density of the material, the game system 1 calculates the above evaluation value for each material. In the present embodiment, the evaluation value of the material is a value obtained by attaching a weight 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.

[0109] 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 the present 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 the present 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 shown 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.

[0110] In the present 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.

[0111] As described above, in the present embodiment, for each vertex, for 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.

[0112] Note that in the present embodiment, the evaluation value, which is an example of the priority parameter, is calculated based on the densities of a plurality of voxels around the vertex so that the priority of the material set in the voxel with a higher density becomes higher (that is, the evaluation value of the material becomes larger 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.

[0113] Also, in the present embodiment, the 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 higher. According to this, the material of the vertex can be determined by reflecting the distance between the voxel and the vertex.

[0114] Also, in the present embodiment, it can be said that the 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 higher material mixing ratio becomes higher. 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.

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

[0116] 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 (a) shown in FIG. 17 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 character "v" is shown inside indicates the vertex division region in which a vertex is set.

[0117] 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, simplification is performed on the vertices within the predetermined number of vertex division regions.

[0118] (a) shown in FIG. 17 is the state before simplification. In the example shown in FIG. 17, it is assumed that the vertex division regions within the range surrounded 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 (b) shown in FIG. 17). As a result, the vertices within the predetermined number of vertex division regions are simplified to one vertex.

[0119] 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. (b) shown in FIG. 17 shows the state after the first-stage simplification, and (c) shown in FIG. 17 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 regions within the range surrounded by the dotted line in (b) shown in FIG. 17 can be simplified, the vertices of the vertex division regions are simplified, resulting in the state shown in (c) shown in FIG. 17. 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.

[0120] Regarding the determination of whether simplification is possible, the specific method is arbitrary. In this embodiment, as the 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.

[0121] 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 significantly changed. For example, whether the shape formed by each vertex is not significantly 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 checking whether 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 the above situation 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 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.

[0122] Also, as a condition regarding materials, in the present embodiment, a condition regarding the number of types of materials set for each vertex within the above-mentioned predetermined number of vertex division regions to be simplified is used. FIG. 18 is a diagram showing an example of the condition regarding materials. (a) shown in FIG. 18 shows a case where the materials of vertices 221 to 224 are (grass), (grass), (grass and soil), and (grass and soil), respectively, and (b) shown in FIG. 18 shows a case where the materials of vertices 221 to 224 are (grass and sand), (grass), (grass and soil), and (grass and soil), respectively. In the present embodiment, the condition regarding materials is that the total number of types of materials set for each of the above-mentioned vertices to be simplified is equal to or less than a predetermined number. For example, the condition regarding materials is that it is equal to or less than the number of materials that can be set for one vertex. In the present embodiment, the above-mentioned predetermined number is 2. For example, in the case of (a) shown in FIG. 18, the total number of types of materials set for each of the vertices 221 to 224 to be simplified is two types, namely grass and soil, so the condition regarding materials is satisfied. At this time, on the condition that the above-mentioned condition regarding the shape of the object is satisfied, each of the vertices 221 to 224 is determined to be simplifiable. On the other hand, in the case of (b) shown in FIG. 18, the total number of types of materials set for each of the vertices 221 to 224 to be simplified is three types, namely grass, soil, and sand, so the condition regarding materials is not satisfied. At this time, regardless of whether the above-mentioned condition regarding the shape of the object is satisfied, each of the vertices 221 to 224 is determined to be non-simplifiable.

[0123] In the game system 1, even materials that are strictly classified into different types may be prepared with the same set properties but different appearances. For some of such multiple types of materials, they may be regarded as the same type and judged in the determination of conditions related to the materials. For example, regarding soil materials, there may be cases where multiple types of soil materials with the same properties but similar appearances (e.g., texture color and pattern) are prepared. In such cases, the game system 1 may regard the multiple types of soil materials as the same type and perform the determination of conditions related to the materials.

[0124] 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, simplification is not performed. That is, when the total number of types of materials exceeds the number of materials that can be set for one vertex, simplification is not 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 information on the materials can be maintained.

[0125] In this embodiment, the material of the simplified vertex is determined based on the material of each vertex before simplification. Specifically, the game system 1 sets one or two types of materials set for the vertices before simplification as the first material and the second material for the vertices after simplification. Thereby, the information of the material 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 this 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 Vertex Material] 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.

[0126] [2-6. Mesh Generation] 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 area, or the vertex division area in which a plurality of vertex division areas are combined into one by simplification. As shown in FIG. 19, the game system 1 generates a mesh composed of polygons having sides that are straight lines connecting adjacent vertices in the vertex division area. Each polygon constituting the mesh is a triangle or a quadrilateral.

[0127] 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 voxel objects. The determination mesh is a mesh used for collision determination of voxel objects. Although details will be described later, by using the above two types of meshes, the game system 1 can perform processing using meshes suitable for displaying and collision determination of voxel objects, respectively.

[0128] In this embodiment, the game system 1 generates the display mesh and the determination mesh based on the data of the above-mentioned 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 efficiency of processing 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.

[0129] In this embodiment, the game system 1 generates the determination mesh to have a simpler shape than the display mesh. Specifically, the game system 1 reduces the number of vertices of the determination mesh compared to the number of vertices of the display mesh. Here, in this embodiment, the SVO data is data that holds the data of the vertices before simplification and the data of the simplified vertices in an octree structure, and also includes the data used for determining whether simplification is possible. This data includes, for example, the data of vertices calculated as candidates for the vertices after simplification (referred to as temporary vertices), and the data of the above-mentioned index indicating the error between the vertices before simplification and the temporary vertices. For example, the game system 1 may use, for the generation of the determination mesh, those vertices among the temporary vertices for which the above index is equal to or less than a predetermined threshold (this threshold is set to be larger than the above allowable value). According to this, the number of vertices of the determination mesh can be made smaller than the number of vertices of the display mesh. By making the number of vertices of the determination mesh smaller than the number of vertices of the display mesh, the processing load due to collision determination can be reduced. Also, since the number of vertices of the display mesh is not excessively reduced, the appearance of the voxel object can be expressed in detail.

[0130] Note that in other embodiments, the display mesh and the determination mesh may be generated based on the same data or different data. Also, the display mesh and the determination mesh may have the same shape (however, even in this case, the materials set for both may be different). Also, the number of vertices of the determination mesh may be the same as the number of vertices of the display mesh, or may be larger than the number of vertices of the display mesh.

[0131] [2-6-1. Determination of 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 respectively, the same number of materials may be set for the polygon.

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

[0133] 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 and grass, and grass respectively.

[0134] In this embodiment, when there are three or more types of materials set at each vertex of a quadrilateral in total, the game system 1 determines whether the division condition is satisfied. In this embodiment, the division condition is that by dividing the quadrilateral into two triangles, the total number of types of materials set at each vertex of the triangles can be two or less. When the division condition is satisfied, the game system 1 divides the quadrilateral into two triangles such that the total number of types of materials set at each vertex is two or less. In the example shown in FIG. 20, the materials set at each vertex 231 to 234 forming the quadrilateral are three types: grass, soil, and sand. Also, when the above quadrilateral is divided into a triangle formed by vertices 231, 232, 234 and a triangle formed by vertices 231, 233, 234, the materials set at each vertex of the former triangle are two types: sand and grass, and the materials set at each vertex of the latter triangle are two types: grass and soil (see (b) shown in FIG. 20). Therefore, for the above quadrilateral, the division condition is satisfied, so the game system 1 divides the quadrilateral into two triangles.

[0135] Note that since there are two ways to divide a quadrilateral into two triangles, when the division condition is satisfied for the triangles divided by at least one of the two ways, the game system 1 performs the above division by the method that satisfies the division condition. On the other hand, when the division condition is not satisfied for the triangles divided by either of the two ways, the division is performed by any method.

[0136] By performing the division as described above, the game system 1 can generate two triangles in which the materials set at each vertex are two or less so as to minimize the omission of information on three or more types of materials set at each vertex of the quadrilateral. Here, as described above, each polygon constituting the mesh is drawn using up to two types of textures. Therefore, by performing the above division, the game system 1 can draw the polygon using two types of textures so as to minimize the omission of information on the materials set at each vertex.

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

[0138] 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 be set to 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 be set to 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 be set to 0.7:0.3.

[0139] 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 value obtained by summing 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) shown in FIG. 21).

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

[0141] In the present 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) shown in 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) shown in FIG. 21). 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 on the materials of the third and subsequent types set at each vertex of the polygon will be deleted.

[0142] In addition, the game system 1 changes the ratio of the materials set at the vertices according to the change of the materials set at the vertices. For example, for vertex 241, the content changes from the first material being grass and the second material being soil to the first material being grass and the second material being sand. Here, since the proportion of the sand material is 0, the material ratio is the first material: the 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 materials of each vertex of the polygon.

[0143] According to the above, since the materials set at each vertex of one polygon are only the materials corresponding to the texture used for the drawing described later, it is possible to facilitate the execution of the drawing process using the texture.

[0144] Note that due to the above change, it may be the case that all the materials of a certain vertex are changed (that is, none of the materials before the change match the materials after the change). Such a case is, for example, when the material set at the vertex before the change is soil and the materials selected as the materials of the polygon are grass and sand. In such a case, the ratio of the materials at the vertex may be set based on the ratio of the materials at the other vertices of the polygon. For example, in the above example, if the first material set at one of the other vertices of the triangular polygon is grass and the material ratio is grass: sand = 1:0, and the material set at another vertex is sand and the material ratio is sand: grass = 1:0, the material ratio at the vertex may be set to grass: sand = 0.5:0.5. In addition, the game system 1 may determine the ratio of the materials at the vertex in consideration of the distance between the vertex and the other vertices (for example, based on a weight value that increases as the distance gets closer).

[0145] As described above, in the present embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, 2) 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 ID 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.

[0146] 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, and when the material exceeds the predetermined number, based on the priority parameter of each vertex (specifically, based on the determination value calculated based on the above-described evaluation value), it selects a predetermined number of materials with high priority and determines them 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.

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

[0148] FIG. 22 is a diagram showing an example of materials set for each vertex of two adjacent polygons. FIG. 22 shows a state (the state shown in (b) in FIG. 20) 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.

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

[0150] The game system 1 generates a display mesh composed of polygons whose 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 (that is, the first material and the second material) set for each vertex.

[0151] 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 (b) shown in FIG. 21.

[0152] Regarding the position of the vertex of the polygon, the texture of the first material and the texture of the second material set for the vertex are blended by a mapping that blends at the ratio of the materials set for the vertex (that is, using the ratio as the blend rate). Note that the textures of the first and second materials used for drawing are the textures indicated by the drawing setting information associated with the respective material IDs 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. Also, 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 rate of 0.5:0.5.

[0153] 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. As it approaches vertex 243, the blend ratio of the sand texture increases. At the position of vertex 242, the blend rate of grass and sand is 1:1, 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 (i.e., set for each vertex of the polygon) at the 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.

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

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

[0156] 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 (a) shown in FIG. 21.

[0157] 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 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 determination value may be calculated by an arbitrary method based on the information set for the vertices of the polygon of the determination mesh.

[0158] In the example shown in FIG. 24, for each material, the determination value is as follows: for the grass material, the determination value is 1.3; for the sand material, the determination value is 1.2; and for the soil material, the determination value is 0.5, similar to the case shown in FIG. 21 described above. Therefore, the grass material is selected as the material of the polygon shown in FIG. 24.

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

[0160] Also, in the present embodiment, for the polygon of the display mesh, up to two types of materials are set, while for the polygon of the determination mesh, one type of material is set. According to this, for the polygon 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 suppress the processing 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 polygon of the display mesh and the number of materials that can be set for the polygon of the determination mesh may both be plural, may be the same, or may be different.

[0161] In the present embodiment, the number of material types set for one voxel is up to two, and the number of material types 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 material set in the voxel data can be reflected in the material of the display mesh. Further, in the present embodiment, the number of material types set for the vertex set based on the voxel data is also up to two (see FIG. 16). According to this, for the vertex 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 material set in the voxel data can be reflected in the display mesh without loss of material information during the process.

[0162] In another embodiment, the game system 1 may set materials differently for vertices used to generate a display mesh and vertices used to generate a determination mesh with respect to vertices set based on voxel data. 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 the vertices used to generate the 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.

[0163] 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 in one frame). For example, the determination mesh may be generated in the range where collision determination is performed in the game space, 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 may not generate a determination mesh for voxel objects outside the predetermined range, but only generate a display mesh.

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

[0165] In the above, when the voxel data is changed from the initial state, the method of generating each mesh (that is, the display mesh and the determination mesh) based on the changed voxel data 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.

[0166] In other embodiments, only one of the above-described display mesh and determination mesh may be set (that is, the display and determination are shared as the same mesh). In this case, the above-described display mesh may be shared by also using it as the determination mesh, or the above-described determination mesh may be shared by also using it as the display mesh. When the determination mesh and the display mesh are set separately, an appropriate mesh can be used according to each use, whereas when rendering and collision determination are shared using the same mesh, the processing load for setting the mesh can be reduced.

[0167] [2-7. Player Character Return Movement Control Processing] Next, with reference to FIGS. 25 to 32, an example of a process for performing player character return movement control will be described. In the following, it is assumed that terrain objects such as the ground and walls are voxel objects, and an example will be described in which a player character performs an action and as a result of collision determination, an in-game effect occurs.

[0168] Note that the above "in-game effect" is any change that occurs in the game, for example, a change caused by "processing that reflects the result of contact between objects". The "in-game effect" may be based on a collision determination between the determination mesh and a determination shape corresponding to a determination target based on game processing (for example, a determination area set for an object such as a player character). The above effect may occur in an object corresponding to the determination mesh, or may occur in an object corresponding to the determination target. The content of the "in-game effect" may be associated with the material set for the polygon in which a collision is determined in the collision determination that is the cause of the occurrence of the effect (that is, the content of the effect may be determined by the material).

[0169] Figs. 25 to 27 are diagrams showing an example of game images representing a series of states in which the player character 201 moving on the terrain object returns to the return position by the return item after entering the prohibited entry area in the game space.

[0170] As shown in the upper diagram of Fig. 25, the game system 1 can control the movement of the player character 201 based on the user's operation input at a position on the terrain object in the game space. In the example shown in the upper diagram of Fig. 25, the material for the polygon of the determination mesh of the terrain object 251 which is the ground is set to "rock". And the player character 201 is moving on a hillside as an example of the terrain of the terrain object 251, and a cliff having a cliff wall surface (side surface) 251a is formed in the traveling direction of the player character 201.

[0171] In the example shown in the upper diagram of Fig. 25, the game system 1 performs a collision determination between the terrain object 251 and the player character 201 using the determination mesh. That is, a collision determination is made as to whether or not the determination mesh of the terrain object 251 and the determination shape set for the player character (for example, a region having a predetermined shape set based on the position of the player character) are in contact. And when a collision between the polygon whose material is rock and the player character 201 is determined, as a process for generating an action in the game, the player character 201 is controlled so as not to be able to enter the inside of the polygon. Therefore, the player character 201 can stand on or walk on the polygon of the terrain object 251. In this embodiment, since the player character 201 can change (for example, deform) the terrain object 251, for example, a part of the terrain object 251 can be destroyed and erased.

[0172] Also, the content of the process executed when a collision between the voxel object and the player character 201 is determined is arbitrary. For example, the above process may be a process of reducing the physical strength of the player character 201 based on the impact at the time when the above collision is determined, outputting the footsteps of the player character 201, or displaying an effect (for example, an effect representing dust or water splashes) at the contact location. At this time, the game system 1 can vary the amount of physical strength reduction, vary the footsteps, or vary the effects according to the type of material set for the polygon of the contacted part among the voxel objects.

[0173] For example, when the player character 201 falls from the cliff illustrated in the lower diagram of FIG. 25, a collision with the ground formed under the cliff is determined, and a process of reducing the physical strength of the player character 201 is performed based on the impact due to the height difference between the terraced slope surface and the ground under the cliff and the material of the ground. Also, as illustrated in the upper diagram of FIG. 26, when the area under the above cliff is a prohibited entry area such as a bottomless pit from which one cannot return, the player character 201 who has entered the prohibited entry area will, regardless of the height difference from the above terraced slope surface to the prohibited entry area, be unable to return to the game space and a process such as game over or restarting the game will be performed.

[0174] In this embodiment, when the player character 201 stores a certain number or more (for example, 1 or more) of return items that enable returning to the game space, even if the player character 201 enters the above-mentioned entry-prohibited area, the player can return to the game space and continue the game. The above return items are consumed by a certain number (for example, 1) according to the movement of the player character 201 when returning to the game space. Here, the above return items may be temporarily stored in the player character 201 by the player character 201 picking them up from the game space, or may be newly stored in the player character 201 when a predetermined event occurs. Note that the state where the player character 201 temporarily stores the return item is a state where the player character 201 can carry the return item without equipping or holding it, etc. At this time, the stored return item will not be displayed in the game space. The stored return item can basically be taken out by the player character 201 in an appropriate situation and placed in the game space or used (including equipped or held). In this embodiment, the player character 201 stores the return item by putting the return item into a receptacle (for example, a pouch or an item box) worn on the body. Note that such a receptacle may not be displayed. Also, such a receptacle may not exist and only the function of simply storing the return item may exist. Further, the above return item may be in a form owned by the user who operates the player character 201 instead of being stored by the player character 201. Even when the user owns it, the player character 201 operated by the user may be enabled to perform the above return.

[0175] As shown in the lower diagram of FIG. 26, when the player character 201 has entered the prohibited entry area while storing a predetermined number or more of return items, it is determined that the condition for returning to the return position in the game space is satisfied by the movement of the player character 201. Then, the movement control of the player character 201 based on the user's operation input is interrupted, and by consuming a predetermined number of return items 202, the player character 201 can escape from the prohibited entry area. For example, the return item 202 is a virtual object imitating a balloon, a bubble, etc., and by pulling up the player character 201 and flying in the air of the game space, the player character 201 is made to escape from the prohibited entry area and move. As an example, when a part of the player character 201 contacts the prohibited entry area, the game system 1 interrupts the movement control based on the user's operation input, causes the return item 202 to appear in the game space, and starts the movement control to return the player character 201 to the return position. When the player character 201 does not store a predetermined number or more of the above return items, the player character 201 that has fallen into the prohibited entry area cannot return to the game space, and processes such as restarting the game or game over are performed. As an example, the player character 201 that has fallen into the prohibited entry area loses a predetermined amount of in-game currency, game items, etc., and is returned to a preset game start point or a predetermined checkpoint to restart the game, or the game is over and the player character 201 is returned to the initial state of the game.

[0176] As shown in the upper and lower diagrams of FIG. 27, the game system 1 causes the player character 201 to move back to a return position (to be described later) set within the game space, and resumes movement control based on the user's operation input. For example, the return item 202 causes the player character 201 to move back to a position in contact with the ground at the return position (see the upper diagram of FIG. 27). Then, when the player character 201 comes into contact with the above return position, the return item 202 moves away from the player character 201 outside the display range of the game space or is consumed by being erased from the game space.

[0177] Thus, in the present embodiment, when the position of the player character 201 is within the above-described entry-prohibited area in the game space, the movement control based on the user's operation input is interrupted, and after causing the player character 201 to move back to the above return position, the movement control based on the user's operation input is resumed. And the movement to the above return position is possible on the condition that a predetermined number or more of return items consumed according to the movement for returning the player character 201 remain.

[0178] Next, an example of setting the above return position will be described. In the present embodiment, a plurality of candidate positions are sequentially set based on the situation of the player character 201 in the game space and the like, and when a predetermined condition is satisfied by the movement of the player character 201, the above return position is determined from the plurality of candidate positions.

[0179] In the present embodiment, the position where the player character 201 has immediately contacted the ground or the wall is stored as a history, and a candidate position including at least a plurality of positions included in the history is set. For example, as shown in FIG. 28, when the player character 201 is riding on the terrain in the game space, a history of positions corresponding to the movement of the player character 201 is stored. Here, the case of riding on the terrain means that the player character 201 is collision-detected on the upper surface of the determination mesh of the terrain object 251.

[0180] For example, in the game system 1, among the history of the player character 201 moving on the terrain, for the history at regular intervals, a collision determination is made between the player character 201 and the ground. If the history on the ground where the collision is determined is an appropriate position as a candidate position described later, the history is stored. Here, the appropriate position on the ground as a candidate position excludes, for example, the following. · A position on the ground that moves according to the progress of the game · The material of the determination mesh at the position on the ground is a material that is damaged or destroyed when touched by other objects · A position on the ground such as the ground that is erased by satisfying a predetermined condition, an inappropriate position on the ground as a return position · A position where a collision determination is made with a voxel object other than a terrain object, such as a voxel object defined by a unique voxel space

[0181] Then, the game system 1 stores and registers the history of positions at regular intervals on the ground that are appropriate as the candidate positions as candidate positions. For example, the game system 1 sequentially registers the history that is a certain distance away from the already registered candidate positions as the next candidate position. Then, the game system 1 repeats the registration of candidate positions in the FIFO format so that a predetermined number of candidate positions are secured by tracing back in time series from the last registered candidate position. That is, not all of the history of the positions where the player character 201 has moved on the ground will necessarily be in a state where they are registered as candidate positions. As a result, when the player character 201 moves on the ground, for each movement of an appropriate distance as a candidate position from the history of the position of the player character 201, the position is registered as a candidate position. In other embodiments, the game system 1 may sequentially register the history obtained at the timing when a certain time has elapsed since the candidate position was already registered as the next candidate position.

[0182] Also, in the present embodiment, the position where the player character 201 was in contact with the wall immediately before is also stored as a history, and candidate positions including at least a plurality of positions included in the history may be set. For example, as shown in FIG. 29, when the player character 201 is in contact with the terrain of the cliff wall surface (side surface) 251a at least in the forward direction, the player character 201 is controlled to be movable based on a user's operation input at the position in contact with the terrain. Then, when the player character 201 is in contact with the terrain in the forward direction, the game system 1 stores the history of the positions corresponding to the movement of the player character 201 along the terrain. Here, the case where the player character 201 is in contact with the terrain in the forward direction means that the player character 201 is in a posture facing the side surface of the determination mesh of the terrain object 251, and the player character 201 is being collision-detected on the side surface.

[0183] For example, the game system 1 performs a collision determination between the player character 201 and the wall surface for the history at regular intervals among the history of the movement of the player character 201 along the wall surface, and if the history on the wall surface where the collision is determined is appropriate as a candidate position, the history is stored. Here, the position on the wall surface that is appropriate as a candidate position is, in addition to the conditions for the position on the ground that is appropriate as the candidate position described above, the following are excluded. · The material of the determination mesh within a predetermined range including the position on the wall surface (for example, a range within a predetermined distance below the position on the wall surface) is a material inappropriate for grasping (for example, a slippery material)

[0184] Then, the game system 1 stores and registers, as candidate positions, the history of positions at regular intervals on the wall surface that are appropriate as the candidate positions. For example, the game system 1 sequentially registers the history that is at a certain distance from the already set candidate positions as the next candidate positions. Then, the game system 1 repeats the registration of candidate positions in a FIFO format so that a predetermined number of candidate positions are secured when tracing back in time series from the last registered candidate position. That is, the history of the positions where the player character 201 has moved along the wall surface does not necessarily mean that all the histories are registered as candidate positions. Also, when the player character 201 has stopped for a predetermined time or more while being grasped by the wall surface, the game system 1 excludes the immediately preceding registered candidate position from the candidates and sets and registers (i.e., overwrites and registers) the history of the stopped position as a new candidate position. Thereby, regarding the history of the player character 201 moving along the wall surface, the position where the player character 201 has temporarily stopped while grasping the wall surface can be surely registered as a candidate position. In this way, even when the player character 201 moves along the wall surface, for each position that moves an appropriate certain distance from the history of the position of the player character 201, the position is registered as a candidate position, and an appropriate position on the wall surface (for example, the position where it has temporarily stopped while being grasped) can be registered as a candidate position.

[0185] In addition, in the present embodiment, positions related to checkpoints in the game space may also be set as candidate positions. For example, FIG. 30 shows an example in which candidate positions are set based on the operation of the player character 201 using a save point, which is an example of the above-mentioned checkpoint. For example, as shown in FIG. 30, the player character 201 performs an operation of touching the save object Sobj in order to use the save point set at a predetermined position in the game space. When the player character 201 performs an operation of touching the save object Sobj, the game system 1 sets and registers a candidate position based on a predetermined position set corresponding to the position of the save object Sobj or the position of the player character 201 that has performed the above operation. Here, the above save point is a place where the game progress status up to the current time can be saved, and has a function of starting from the status saved at the save point at the start of the next game. Therefore, when the player character 201 performs an operation of touching the save object Sobj, the game system 1 performs a process of saving the game progress status up to the current time.

[0186] Note that the above checkpoints may be provided at any position in the game space in addition to the above-mentioned save points. For example, in a game space having a hierarchical structure that is seamlessly connected, when the player character 201 moves to different layers, the position where the player character 201 reaches the different layers may be registered as a checkpoint and a candidate position. The checkpoint may be a predetermined position set in advance in the layer. Or, it may be the position where the player character 201 first contacts the terrain or other objects when the player character 201 reaches the above different layers.

[0187] In addition, in the present embodiment, in addition to the above checkpoints, a position based on a predetermined situation of the player character 201 in the game space may be set as a candidate position. As an example, when the player character 201 can move by fast travel (for example, warp or teleport), the position of the destination of the fast travel may be registered as a candidate position. In this case, the game system 1 may perform a collision determination between the player character 201 and the ground or other objects immediately after the movement by the fast travel, and register the position determined by the collision determination as one of the candidate positions. As another example, the first position immediately after the start of a new game stage may be registered as a candidate position. In this case, the game system 1 may perform a collision determination between the player character 201 and the ground or other objects immediately after the game using the new game stage is started, and register the position determined by the collision determination as one of the candidate positions.

[0188] In this embodiment, the game system 1 sets priorities for each of the plurality of candidate positions registered as described above, and determines the candidate position with the highest priority as the return position. For example, FIG. 31 shows an example in which the plurality of candidate positions registered as described above are described from top to bottom in descending order of the above priorities. Specifically, in FIG. 31, a plurality of candidate positions P2 to P9 are registered as the grounding positions of the immediately preceding ground or wall surface, and relatively higher priorities are set for candidate positions that are newly registered in chronological order. Here, eight candidate positions, namely, candidate positions P2 to P4 where the player character 201 was in contact with the wall surface immediately before and candidate positions P5 to P9 where the player character 201 was on the ground, are described in order of priority (candidate position P2 is the most newly registered and has the highest priority among candidate positions P2 to P9). Further, in FIG. 31, a candidate position P10 related to a checkpoint is registered, and the candidate position related to the checkpoint is set to have a lower priority than the candidate positions registered as the grounding positions of the immediately preceding ground or wall surface. Further, in FIG. 31, a candidate position P11 related to the grounding position immediately after movement by fast travel is registered, and the candidate position related to the grounding position immediately after movement by fast travel is set to have a lower priority than the candidate position related to the checkpoint. Furthermore, in FIG. 31, a candidate position P12 related to the grounding position immediately after the start of the game stage is registered, and the candidate position related to the grounding position immediately after the start of the game stage is set to have a lower priority than the candidate position related to the grounding position immediately after movement by fast travel.

[0189] Thus, in this embodiment, a plurality of candidate positions are registered with the priorities set in the order of "candidate positions related to the grounding position of the immediately preceding ground or wall surface" > "candidate positions related to checkpoints" > "candidate positions related to the grounding position immediately after moving by fast travel" > "candidate positions related to the grounding position immediately after the start of the game stage". Note that in this embodiment, candidate positions with higher priorities than the "candidate positions related to the grounding position of the immediately preceding ground or wall surface" may be registered depending on the game stage in which the user is playing. For example, as illustrated in FIG. 31, when a game is played using an area where a start designation position is determined in advance in the game space, the start designation position is registered as a candidate position P1, and the candidate position P1 may be excluded from the candidates after the game ends. As an example, in a scene where a game is played with the aim of the player character 201 clearing a mini-game stage set in the game space, if the position where the player character 201 starts the mini-game stage (for example, the start point) or the position where the player character 201 moves and passes through to a predetermined point of the mini-game stage (for example, an intermediate target point) is determined in advance, the start point of the mini-game stage or the predetermined point is registered as the candidate position P1. Then, when the mini-game stage ends, the candidate position P1 registered during the play of the mini-game stage is excluded from the candidates.

[0190] Also, in this embodiment, the game system 1 may exclude other candidate positions from the candidates when the above candidate positions are registered. As a first example, when a candidate position related to a checkpoint is newly registered, the game system 1 excludes from the candidates a past candidate position with a higher priority than the candidate position (that is, a candidate position related to the grounding position of the immediately preceding ground or wall surface). As a second example, when a candidate position related to the grounding position immediately after moving by fast travel is newly registered, the game system 1 excludes from the candidates past candidate positions with a higher priority than the candidate position (that is, a candidate position related to the grounding position of the immediately preceding ground or wall surface and a candidate position related to a checkpoint).

[0191] Among the candidate positions registered as "candidate positions related to the ground contact position or wall contact position immediately before", the candidate positions related to the ground contact position on the ground and the candidate positions related to the wall contact position on the wall may be registered as candidate positions with different priorities. For example, the candidate positions may be registered such that the candidate positions related to the ground contact position on the ground have a higher priority than the candidate positions related to the wall contact position on the wall. Also, the movement history of the player character moving on the wall may not be registered as the above candidate positions, and only the positions included in the movement history of the player character moving on the ground may be registered as candidate positions as the "candidate positions related to the ground contact position or wall contact position immediately before" described above.

[0192] And in this embodiment, when starting the movement control to return the above-described player character 201, it is determined whether the position is suitable for return in descending order of the above priority from the candidate positions registered at that time, and a valid candidate position for returning the player character 201 is determined as the return position. For example, if the game system 1 extracts the candidate position with the highest priority registered at that time and the position where there is no terrain, the game system 1 determines that the candidate position is a valid position as the return position and determines the candidate position as the return position.

[0193] As an example, the game system 1 performs ray casting on the candidate position with the highest priority, and determines that the candidate position is valid as a return position if there is a voxel object (for example, a mesh for determining a terrain object) defined by voxel data having density at the candidate position. For example, in the above ray casting, a vertical ray casting in the game space is performed in the direction to the candidate position, and when an object (for example, a mesh for determining a terrain object) hits the candidate position, the candidate position is determined to be valid as a return position (that is, there is terrain at the candidate position). On the other hand, in the above ray casting, when an object (for example, a mesh for determining a terrain object) does not hit the candidate position, the candidate position is determined to be invalid as a return position (that is, there is no terrain at the candidate position). And when the candidate position is determined to be invalid as a return position, the candidate position with the next highest priority is similarly ray cast, and the process is repeated until a candidate position that is valid as a return position is found. For example, the above ray casting is used when the candidate position is a position on the ground.

[0194] As another example, the game system 1 performs a shape cast on the candidate position with the highest priority described above and determines that the candidate position is valid as a return position. For example, in the above shape cast, a shape having the same shape as the determination area used for the collision determination of the player character 201 is used, and the contact between the shape and the determination mesh of the candidate position is determined. For example, the above shape cast is used when the candidate position is a position on the wall surface, and is determined by moving the center of the above shape in the horizontal direction from the outside of the wall surface toward the wall surface so as to contact the candidate position. Then, the game system 1 determines that the candidate position is valid as a return position if there is a voxel object (for example, a determination mesh of a terrain object) defined by voxel data having density at the candidate position after the shape cast, and the wall surface at the candidate position has a shape that can be grasped by the player character 201. Note that the shape used in the above shape cast is the same shape as the determination area used for the collision determination of the player character 201 in order to facilitate the shape cast, but in addition to the capsule shape, it may be a spherical shape, an ellipsoidal shape, a polyhedral shape (for example, a bounding box), a cylindrical shape, a conical shape, a polygonal pyramid shape, or the polygon shape of the player character 201. Further, the above shape may be a plane, a curved surface, a circle, a straight line, a line segment, a point, or the like.

[0195] As described above, in the present embodiment, the return position is determined from candidate positions that are not positions where there is no terrain among the plurality of candidate positions registered at that time. Here, since the terrain object for which the candidate position is registered is composed of voxel objects, the determination mesh (terrain mesh) of the terrain object may be deformed after being registered as the candidate position, and the terrain for which the candidate position is registered may not exist at the time of determining the return position. However, in the present embodiment, since the return position is determined from candidate positions that are not positions where there is no terrain among the plurality of candidate positions registered at the time of determining the return position, it is possible to select a candidate position that is not a position where there is no terrain from among the plurality of candidate positions without returning the player character 201 to a position where there is no terrain, and thus it is possible to return to an appropriate return position.

[0196] Also, in the present embodiment, among the plurality of candidate positions registered at that time, the return position is determined from the candidate position with the higher priority. Further, the game system 1 may exclude other candidate positions with high priority from the candidates when a candidate position is registered. As a result, even when determining the return position in a game using a game space having a seamless and connected hierarchical structure, it is possible to prevent the player character 201 from moving across different hierarchies when moving to return to the return position. For example, as described above, when the position where the player character 201 reaches different hierarchies and first contacts the terrain or other objects is registered as a candidate position as a checkpoint, the candidate positions related to the checkpoints registered until then are excluded from the candidates, and the candidate positions with higher priority than the candidate position are excluded from the candidates. Also, when the position of the destination of the fast travel performed by the player character 201 is registered as a candidate position, the candidate positions related to the grounding position immediately after the movement by the fast travel registered until then are excluded from the candidates, and the candidate positions with higher priority than the candidate position are excluded from the candidates. Therefore, when the player character 20 moves from the first layer in the game space to a different second layer, the candidate positions registered in the first layer are excluded from the candidates, so that when the return movement of the player character 20 is performed in the second layer, the return movement is performed with the return position determined within the same second layer as the destination.

[0197] Also, in this embodiment, the candidate position with the highest priority may be registered according to the game stage in which the user is playing. For example, as illustrated in the upper diagram of FIG. 32, when the player character 201 is placed in an area where a mini-game stage is constructed where a one-way path that enters the prohibited entry area when falling is advanced without the player character 201 falling, a start designated position is preset as the start point of the mini-game. In this case, while the player character 201 is placed in the above area, the game system 1 registers the above start designated position as the candidate position with the highest priority. Then, in response to the player character 201 starting to move from the above start position (start designated position), the game system 1 registers candidate positions related to the ground contact position at regular intervals. When the player character 201 falls from the above one-way path due to the above movement, if the player character 201 has a predetermined number or more of the above return items, movement control is performed to return the player character 201 to the return position.

[0198] At this time, as shown in the lower diagram of FIG. 32, the candidate position with the highest priority set is the above start designated position. Therefore, the game system 1 determines the above start designated position as the return position instead of the candidate position related to the ground contact position at regular intervals registered immediately before, and performs movement control to return the player character 201 to the start designated position. For example, in a game space where a mini-game stage aiming for the player character 201 to clear is constructed, if the player character 201 is returned to the candidate position where it was in contact with the ground immediately before as the return position, the mini-game stage may become stuck and the player character 201 may become unable to move. In this embodiment, by performing the movement to return the player character 201 to the preset start point, intermediate target point, etc. of the mini-game stage, it is possible to prevent the mini-game stage from getting stuck in clearing.

[0199] In the process of determining whether the candidate position described above is valid as a return position, ray casting or shape casting is used. However, it is arbitrary which process to use according to the type of terrain where the candidate position is registered. For example, for determining the candidate position on the ground, shape casting may be used, or both ray casting and shape casting may be used, or it may be determined by other methods. Also, for determining the candidate position on the wall surface, ray casting may be used, or both ray casting and shape casting may be used, or it may be determined by other methods.

[0200] In addition, the candidate position to be registered and the return position to be determined described above may include information indicating the direction and posture of the player character in addition to the information indicating the position in the game space. For example, information indicating the direction (e.g., the front direction or the up and down direction) and posture of the player character in the game space when the candidate position is registered may be registered as the candidate position together with the information indicating the position in the game space. Also, when the player character returns to the return position, the player character may return to the game space based on the information indicating the direction and posture of the player character included in the candidate position used when determining the return position.

[0201] In addition, the candidate positions to be registered and the return positions to be determined as described above may be any positions in the game space other than the positions on the terrain objects in the game space, that is, the positions on the determination mesh defined by the voxels constituting the terrain objects. As a first example, the candidate position and the return position may be set at positions on other objects different from the terrain object even if they are voxel objects. As a second example, the candidate position and the return position may be set on a movable object in the game space (for example, on a movable terrain object). As a third example, the candidate position and the return position may be set at positions on virtual objects other than voxel objects or at positions on the game field. As a fourth example, the candidate position and the return position may be set on the water surface or in the air in the game space (for example, a starting point set in the air or a position where the player character hangs on a predetermined object).

[0202] In addition, in the present embodiment, when the player character has a predetermined number or more of return items, it is possible to move to the return position, but the conditions for enabling the movement to the return position are arbitrary. As a first example, the condition for enabling the movement to the return position may be that the player character has a plurality of types of return items. As a second example, the condition for enabling the movement to the return position may be set based on the game mode. For example, when a game mode with a relatively low game difficulty is set, the movement to the return position may be enabled, and when a game mode with a relatively high game difficulty is set, the movement to the return position may be disabled. As a third example, the condition for enabling the movement to the return position may be set based on the level of the player character or the user's game proficiency. For example, when the level of the player character or the user's game proficiency is relatively low, the movement to the return position may be enabled, and when the level of the player character or the user's game proficiency reaches a predetermined level or proficiency, the movement to the return position may be disabled.

[0203] Also, in the present embodiment, an example is used in which when the player character 201 enters the prohibited entry area by moving, it is determined that the condition for the player character 201 to return to the return position in the game space is satisfied. However, the situation in which the condition is satisfied is arbitrary. As an example, when the player character 201 makes a move that deviates from the range of the game space where game play is permitted, it may be determined that the condition for the player character 201 to return to the return position within the range in the game space is satisfied. As another example, when the player character 201 is in a deadlock state from which it cannot escape due to its movement and cannot get out of that position or area, it may be determined that the condition for the player character 201 to return to a return position where it can escape from the deadlock state is satisfied.

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

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

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

[0207] Mesh data includes various data related to the mesh of the voxel object. As shown in FIG. 30, in the present 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 the present 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).

[0208] Object data includes various data related to objects other than the voxel object (for example, player characters, virtual objects, etc.). The object data is stored for each object that appears in the game space. The object data includes, for example, data indicating the position, speed, and state of the object. The object data also includes candidate position data and return position data. The candidate position data is data in which a plurality of registered candidate positions are described in order of priority. The return position data is data indicating the determined return position.

[0209] FIG. 34 is a flowchart showing an example of the flow of game processing executed by the game system 1. FIG. 35 is a subroutine showing an example of processing for controlling the operations of the respective objects in step S12 in FIG. 34. FIG. 36 is a subroutine showing an example of the first half of the candidate position setting process in step S46 in FIG. 35. FIG. 37 is a subroutine showing an example of the second half of the candidate position setting process in step S46 in FIG. 35. FIG. 38 is a subroutine showing an example of the return position movement process in step S47 in FIG. 35. 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 from steps S1 to S14 is executed once per frame at a cycle of once per frame.

[0210] In the present embodiment, the processor 81 of the main body device 2 will be described as executing the processing of each step shown in FIGS. 34 to 38 by executing the above game program stored in the game system 1. However, in other embodiments, some of the processing of each of the above steps 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 is communicable with another information processing device (for example, a server), some of the processing of each step shown in FIGS. 34 to 38 may be executed in the other information processing device. Also, the processing of each step shown in FIGS. 34 to 38 is merely an example, and 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 as long as the same result can be obtained.

[0211] Further, the processor 81 executes the processing of each step shown in FIGS. 34 to 38 using a memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads out the information from the memory and uses it.

[0212] In FIG. 34, the processor 81 acquires operation data indicating an operation input by the user (step S1) and proceeds to the next step. For example, the processor 81 acquires operation data output from each controller via the controller communication unit 83 and / or each of the terminals 17 and 21, and operation data output from the main body device 2 (for example, the touch panel 13).

[0213] Next, the processor 81 designates, as a processing target, any one of the objects in the game space that require processing and for which the processing has not been completed (including voxel objects defined by the proprietary voxel space), and executes, for the designated object, a process of calculating the speed and a process of reflecting the result of contact between the objects in the previous frame (step S2), and proceeds to the next step. The speed of the object is used to calculate the position of the object in the current frame in the process of step S12 described later. For example, when the designated object is the player character, the speed of the player character is calculated based on the operation data acquired in step S1. Also, when the designated object is an object not operated by the user, the speed of the object is calculated based on rules predetermined in the game program. As an example, the speed of the object is calculated based on virtual physical calculations including interactions between the objects. For example, interactions such as repulsion due to collision between objects, friction due to contact, falling due to virtual gravity, and deceleration due to virtual air resistance are reflected in the speed determination.

[0214] Also, the process of reflecting the result of contact between the objects in the previous frame includes a process of applying an influence due to contact to the object when it is determined in the collision determination (step S11 described later) in the previous frame that the objects have come into contact with each other. The above process is, for example, the following process. · When it is determined that an impact caused by the player character contacting a terrain object due to a fall was applied in the previous frame, a process of reducing the physical strength of the player character · When it is determined that the player character contacted a terrain object by a punch action or the like in the previous frame, a process of generating a fragment object If the state regarding the object is changed in the process of step S2 above, the processor 81 updates the object data stored in the memory regarding the object so as to indicate the content after the change.

[0215] Next, the processor 81 determines whether an update event for updating the voxel object has occurred due to the object specified in step S2 above (step S3). For example, the determination in step S3 above is made based on the result of a collision determination (step S11 described later) in the previous frame. As an example, when it is determined that the player character contacted a terrain object by a punch action or the like in the previous frame, it is determined that an update event for deleting a part of the terrain object has occurred. Then, when an update event has occurred, the processor 81 proceeds to the process in step S4. On the other hand, when no update event has occurred, the processor 81 proceeds to the process in step S6.

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

[0217] Next, for the voxels corresponding to the update range set in step S4 above, the processor 81 makes changes according to the update event (step S5), and proceeds to step S6. For example, when the processor 81 deletes or deforms the voxel object within the update range as if it were reduced, or deforms it as if a voxel object has been added within the update range, the processor 81 updates the voxel data stored in the memory so as to change the density of the voxels corresponding to the update range (see the above [2-2. Update of voxel data]).

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

[0219] In step S7, the processor 81 updates the vertices of the voxel object in the game space and proceeds to the next step. For example, when the voxel data is updated in the processing of step S5 above, the processor 81 calculates new vertices based on the updated voxel data. Note that the positions of the new vertices are calculated according to the method described in the above [2-3. Calculation of vertices]. Also, the materials of the new vertices are calculated according to the method described in the above [2-4. Determination of vertex materials].

[0220] Next, the processor 81 simplifies the vertices (step S8) and proceeds to the next step. For example, the processor 81 simplifies each vertex updated by the process of step S7 according to the method described in the above [2-5. Vertex Simplification]. Then, the processor 81 updates the SVO data stored in the memory so as to indicate each vertex obtained by the processes of step S7 and step S8. Note that the processes of step S7 and step S8 do not necessarily recalculate the vertices for the entire voxel data, and may be executed only for the portions where the contents of the voxels are changed in the process of step S5.

[0221] Next, the processor 81 updates the display mesh of the voxel object based on the SVO data stored in the memory (step S9) and proceeds to the next step. Note that the positions of the vertices of the display mesh and the materials of the polygons of the display mesh (for example, the materials set for the vertices of the polygons) are calculated according to the methods described in the above [2-6. Mesh Generation] and [2-6-1. Determination of the Material of the Display Mesh]. In step S9, 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. Note that the processor 81 may start the processes of step S10 and subsequent steps described later without waiting for the completion of step S9 and execute them in parallel. In that case, step S9 needs to be completed before the start of step S13 described later.

[0222] Next, the processor 81 updates the mesh for determining voxel objects based on the SVO data stored in the memory (step S10), and proceeds to the next step. Note that the position of each vertex of the determination mesh and the material of each polygon of the determination mesh (for example, the material set for each vertex of the polygon) are calculated according to the methods described in the above [2-6. Generation of Mesh] and [2-6-2. Determination of Material of Determination Mesh]. In step S10 above, the processor 81 updates the determination mesh data stored in the memory so as to indicate the position and material of each vertex of the updated determination mesh.

[0223] Note that in the example shown in FIG. 31, the generation process of the determination mesh in step S10 above is assumed to be 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 S11 described later is executed only in frames that satisfy a predetermined condition, the processor 81 may execute the generation process of the determination mesh in the frame in which the collision determination is performed. 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 S11 is performed. For example, in a situation where there are no objects to be collided with 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 voxel objects around it 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.

[0224] Next, the processor 81 performs collision determination for each object in the game space based on the determination mesh data and object data stored in the memory (step S11), and proceeds to the next step. For example, for a voxel object, the processor 81 uses the determination mesh, and for an object that is not a voxel object, the processor 81 uses a determination area of a predetermined shape set for the object to perform collision determination. In the present embodiment, the collision determination in step S11 is performed in consideration of the speed calculated in step S2 above. That is, the processor 81 performs collision determination using the position when moving at the above speed as the position of each object.

[0225] In the present embodiment, the presence or absence of the following contacts, for example, is determined by the collision determination in step S11 above. · Contact between the player character performing an action such as a punch action and the terrain object · Contact between the player character and the terrain object due to movement such as falling If it is determined in the collision determination in step S11 above that the objects are in contact with each other, then in the process of step S2 in the next frame, a process of reflecting the result of the contact between the objects is executed, or in the process of step S3 in the next frame, it is determined that an update event has occurred.

[0226] Next, the processor 81 controls the operation of each object in the game space (step S12), and proceeds to step S13. Hereinafter, with reference to FIG. 35, the process of controlling the operation of each object performed in step S12 above will be described.

[0227] In FIG. 35, the processor 81 determines whether the control processing for all objects to be operationally controlled has been completed (step S41). Then, if there is an object for which the control processing has not been completed, the processor 81 advances the processing to step S42. On the other hand, if the control processing for all objects has been completed, the processor 81 ends the processing by this subroutine.

[0228] In step S42, the processor 81 selects an object to be operationally controlled from the objects for which the operation control processing has not been completed, and advances the processing to the next step.

[0229] Next, the processor 81 controls the operation of the object selected as the target of the operation control at the current time (step S43), and proceeds to the next step. For example, for the player character, the processor 81 performs control to cause movement and various actions based on the operation data acquired in step S1 above. Then, when a predetermined action occurs, the processor 81 generates a determination area for collision determination corresponding to the action within the game space. Further, in response to an object being released by an action of throwing by the player character, the processor 81 controls the object to move in the direction in which the object was released. In one execution of the process in step S43 above, for an operation (for example, an action by the player character) performed over a plurality of frames, each object is controlled to perform the progress of the operation for one frame. As a result, by repeatedly executing the process in step S43 over a plurality of frames, each object performs a series of operations related to movement and various actions. Also, in the process in step S43, when new movement or actions of the player character performed over a plurality of frames are set, by repeatedly executing the process in step S43 over a plurality of frames, the player character performs the newly set movement and a series of actions. Also, the position of the object is basically determined to be the position after moving at the speed calculated in step S2 above. However, when it is determined by the collision determination in step S11 that the object contacts another object and the movement is obstructed by the contacted other object, the position of the object may be determined not to change. Then, in step S43 above, the processor 81 updates the object data stored in the memory to be the content indicating the object after the control in step S43 above.

[0230] Next, the processor 81 determines whether or not the object currently selected as the target of the operation control process is the player character (step S44). Then, if the object currently selected as the target of the operation control process is the player character, the processor 81 proceeds to step S45. On the other hand, if the object currently selected as the target of the operation control process is not the player character, the processor 81 returns to step S41 and repeats the process.

[0231] In step S45, the processor 81 determines whether or not the player character moves to the return position. For example, if in step S43, an operation for the player character to move to the return position (for example, an operation to enter the above-mentioned entry-prohibited area (see the upper figure in FIG. 28)) is set, or if the process of moving to the return position described later is ongoing, the processor 81 makes an affirmative determination in step S45. Then, if the player character does not move to the return position, the processor 81 proceeds to step S46. On the other hand, if the player character moves to the return position, the processor 81 proceeds to step S47.

[0232] In step S46, the processor 81 performs candidate position setting processing and returns to step S41 to repeat the process. Hereinafter, with reference to FIGS. 36 and 37, an example of the candidate position setting processing performed in step S46 will be described.

[0233] In FIG. 36, the processor 81 determines whether or not the player character is playing a game using an area where the start designation position is determined in advance (step S51). Then, if the player character is playing a game using the above area, the processor 81 proceeds to step S52. On the other hand, if the player character is not playing a game using the above area, the processor 81 proceeds to step S53.

[0234] In step S52, the processor 81 registers the start designation position set in the area used in the game the player character is playing as a candidate position, and proceeds to step S54. For example, the process of registering the start designation position as a candidate position is performed according to the method described with reference to FIG. 31 in the above [2-7. Player Character Return Movement Control Process], and the start designation position is registered as the most prioritized candidate position. Then, in step S52, the processor 81 updates the candidate position data stored in the memory to the content after the registration in step S52.

[0235] In step S53, the processor 81 excludes the start designation position registered as a candidate position from the candidates, and proceeds to step S54. For example, when the start designation position is registered as a candidate position in the candidate position data stored in the memory, the processor 81 excludes the candidate position from the candidates and updates the candidate position data to the content after the exclusion.

[0236] In step S54, the processor 81 determines whether the player character has moved a predetermined distance or more from the latest candidate position registered in the "candidate position related to the grounding position of the previous ground or wall surface" in the candidate position data. Then, when the player character has moved a predetermined distance or more from the registered latest candidate position, the processor 81 proceeds to step S55. On the other hand, when the player character has not moved a predetermined distance or more from the registered latest candidate position, the processor 81 proceeds to step S56.

[0237] In step S55, the processor 81 newly registers the position on the ground or wall surface where the player character is placed as a candidate position, and proceeds to step S59. For example, the process of registering the position on the ground or wall surface where the player character is placed as a candidate position is performed according to the method described with reference to FIGS. 28, 29, and 31 in the above [2-7. Player Character Return Movement Control Process], and is registered as the candidate position with the highest priority among the "candidate positions related to the grounding position of the immediately previous ground or wall surface". Then, in step S55, the processor 81 updates the candidate position data stored in the memory to the content after the registration in step S55.

[0238] On the other hand, in step S56, the processor 81 determines whether the player character is placed on the wall surface of the game space. Then, when the player character is placed on the wall surface, the processor 81 proceeds to step S57. On the other hand, when the player character is not placed on the wall surface, the processor 81 proceeds to step S59.

[0239] In step S57, the processor 81 determines whether the period during which the player character has stopped moving on the wall surface has reached a predetermined time. Then, when the period during which the movement has stopped has reached the predetermined time, the processor 81 proceeds to step S58. On the other hand, when the period during which the movement has stopped has not reached the predetermined time, the processor 81 proceeds to step S59.

[0240] In step S58, the processor 81 newly overwrites and registers the position on the wall surface where the player character has stopped as a candidate position, and proceeds to step S59. For example, the process of overwriting and registering the position where the player character has stopped on the wall surface for a predetermined time or longer as a candidate position is performed according to the method described with reference to FIGS. 29 and 31 in the above [2-7. Player Character Return Movement Control Process], and is overwritten instead of the candidate position that was most recently registered among the "candidate positions related to the grounding position of the immediately preceding ground or wall surface". Then, in step S58, the processor 81 updates the candidate position data stored in the memory to the content after the overwriting registration in step S58.

[0241] In step S59, the processor 81 determines whether the player character has performed an operation related to a checkpoint (see FIG. 30) or has reached a predetermined checkpoint. Then, when the player character has performed an operation related to a checkpoint or has reached a predetermined checkpoint, the processor 81 proceeds to step S60. On the other hand, when the player character has not performed an operation related to a checkpoint and has not reached a predetermined checkpoint, the processor 81 proceeds to step S71 (see FIG. 37).

[0242] In step S60, the processor 81 excludes from the candidates a candidate position (for example, a candidate position related to the grounding position of the immediately preceding ground or wall surface) to which a higher priority than the candidate position related to the checkpoint registered in the candidate position data has been assigned, and proceeds to the next step. For example, the process of excluding candidate positions from the candidates is performed according to the method described with reference to FIG. 31 in the above [2-7. Player Character Return Movement Control Process]. Then, in step S60, the processor 81 updates the candidate position data stored in the memory to the content after the exclusion in step S60.

[0243] Next, the processor 81 newly registers, as candidate positions, the positions related to the checkpoint where the player character is placed (step S61), and proceeds to step S71 (see FIG. 37). For example, the process of registering candidate positions related to a checkpoint is performed according to the method described with reference to FIGS. 30 and 31 in the above [2-7. Player Character Return Movement Control Process], and a new candidate position is registered in place of the "candidate position related to the checkpoint" that has been registered in the candidate position data until then. Then, in step S61, the processor 81 updates the candidate position data stored in the memory to the content after the registration in step S61.

[0244] Proceeding to FIG. 37, in step S71, the processor 81 determines whether the player character is performing an operation of moving by fast travel. And when the operation of moving by fast travel is being performed, the processor 81 proceeds to step S72. On the other hand, when the operation of moving by fast travel is not being performed, the processor 81 proceeds to step S74.

[0245] In step S72, the processor 81 excludes, from the candidates, candidate positions with a higher priority than the candidate positions related to the grounding position immediately after the movement by fast travel registered in the candidate position data (for example, candidate positions related to the grounding position of the immediately preceding ground or wall surface, candidate positions related to the checkpoint), and proceeds to the next step. For example, the process of excluding candidate positions from the candidates is performed according to the method described with reference to FIG. 31 in the above [2-7. Player Character Return Movement Control Process]. Then, in step S72, the processor 81 updates the candidate position data stored in the memory to the content after the exclusion in step S72.

[0246] Next, the processor 81 newly registers, as candidate positions, the positions immediately after the movement by fast travel where the player character is placed (step S73), and proceeds to step S74. For example, the process of registering candidate positions related to the grounding position immediately after the movement by fast travel is performed according to the method described with reference to FIG. 31 in the above [2-7. Player Character Return Movement Control Process], and instead of the "candidate positions related to the grounding position immediately after the movement by fast travel" that had been registered in the candidate position data until then, new candidate positions are registered. Then, in step S73 above, the processor 81 updates the candidate position data stored in the memory so that it becomes the content after the registration in step S73 above.

[0247] In step S74, the processor 81 determines whether the user has started a game using a new game stage. Then, when a game using a new game stage has been started, the processor 81 proceeds to step S75. On the other hand, when a game using a new game stage has not been started, the processor 81 ends the processing by this subroutine.

[0248] In step S75, the processor 81 excludes from the candidates the candidate positions (for example, candidate positions related to the grounding position of the immediately preceding ground or wall surface, candidate positions related to checkpoints, candidate positions related to the grounding position immediately after the movement by fast travel) to which a higher priority than the candidate positions related to the grounding position immediately after the start of the game stage registered in the candidate position data is assigned, and proceeds to the next step. For example, the process of excluding candidate positions from the candidates is performed according to the method described with reference to FIG. 31 in the above [2-7. Player Character Return Movement Control Process]. Then, in step S75 above, the processor 81 updates the candidate position data stored in the memory so that it becomes the content after the exclusion in step S75 above.

[0249] Next, the processor 81 newly registers the grounding position immediately after the start of the game stage where the player character is placed as a candidate position (step S76), and ends the processing by this subroutine. For example, the process of registering the candidate position related to the grounding position immediately after the start of the game stage is performed according to the method described with reference to FIG. 31 in the above [2-7. Player Character Return Movement Control Process], and instead of the "candidate position related to the grounding position immediately after the start of the game stage" that has been registered in the candidate position data until then, a new candidate position is registered. Then, in step S76 above, the processor 81 updates the candidate position data stored in the memory so that it becomes the content after the registration in step S76.

[0250] Returning to FIG. 35, when it is determined in step S45 above that the player character moves to the return position, the processor 81 performs the return position movement process (step S47), returns to step S41 above, and repeats the process. Hereinafter, with reference to FIG. 38, an example of the return position movement process performed in step S47 will be described.

[0251] In FIG. 38, the processor 81 determines whether the player character possesses (for example, stores) the return item or is currently using the return item (step S81). Then, when the player character possesses or is currently using the return item, the processor 81 proceeds to step S82. On the other hand, when the player character neither possesses nor uses the return item, the processor 81 proceeds to step S92.

[0252] In step S82, the processor 81 refers to the return position data stored in the memory and determines whether the return position has already been determined. Then, when the return position has not been determined, the processor 81 proceeds to step S83. On the other hand, when the return position has already been determined, the processor 81 proceeds to step S89.

[0253] In step S83, the processor 81 selects the candidate position with the highest priority indicated by the candidate position data stored in the memory, and proceeds with the processing to the next step.

[0254] Next, the processor 81 performs a determination process on the candidate position selected in step S83 (step S84), and proceeds with the processing to the next step. For example, the processor 81 determines whether the selected candidate position is valid as a return position according to the method described in the above [2-7. Player Character Return Movement Control Process].

[0255] Next, the processor 81 determines whether the result of the determination process in step S84 indicates that the candidate position selected in step S83 is valid as a return position (step S85). Then, when the selected candidate position is not valid as a return position, the processor 81 proceeds with the processing to step S86. On the other hand, when the selected candidate position is valid as a return position, the processor 81 proceeds with the processing to step S87.

[0256] In step S86, the processor 81 excludes the candidate position determined to be invalid in the determination process of step S84 from the candidate position data, and returns to step S83 to repeat the processing.

[0257] On the other hand, in step S87, the processor 81 determines the candidate position determined to be valid in the determination process of step S84 as the return position, and proceeds with the processing to the next step. For example, the processor 81 updates the return position data stored in the memory using the candidate position determined as the return position.

[0258] Next, the processor 81 performs a return position movement start process (step S88) and proceeds to step S89. For example, the processor 81 interrupts the movement operation of the player character, equips the return item, and sets an operation to move the player character toward the return position determined in step S87 above. Then, in step S88 above, the processor 81 updates the object data stored in the memory so as to show the player character after the control in step S88 above.

[0259] In step S89, the processor 81 performs a process of moving the player character to the return position and proceeds to the next step. Then, in step S89 above, the processor 81 updates the object data stored in the memory so as to show the player character after the control in step S89 above. By repeatedly executing the process of step S89 over a plurality of frames, the player character will perform the operation of moving to the return position determined in step S87 above (see the lower figure of Fig. 26 and the upper figure of Fig. 27).

[0260] Next, the processor 81 determines whether the player character has reached the return position (step S90). Then, when the player character has reached the return position, the processor 81 proceeds to step S91. On the other hand, when the player character has not reached the return position, the processor 81 ends the process by this subroutine.

[0261] In step S91, the processor 81 performs a return position movement end process and ends the process by this subroutine. For example, the processor 81 grounds the player character at the return position indicated by the return position data. Further, the processor 81 separates the equipped return item from the player character and moves it outside the display range of the game space or deletes it from the game space (see the lower figure in FIG. 27), and subtracts the number of used return items held (stored) by the player character by the number of used items. Then, in step S91 above, the processor 81 updates the object data stored in the memory so as to show the player character after the control in step S91 above.

[0262] In step S81 above, when it is determined that the player character has neither held nor used a return item, the processor 81 performs an end-of-game production process (step S92) and ends the process by this subroutine. For example, the processor 81 starts an effect where the player character enters the prohibited entry area and the game is over. Then, in step S92 above, the processor 81 updates the object data stored in the memory so as to show the player character after the control in step S92 above. The process in step S92 above is repeatedly executed over a plurality of frames until the above effect ends, and when the above effect ends, the return position movement process in step S47 above ends.

[0263] Returning to FIG. 34, after the process of controlling the operations of the respective objects in step S12, the processor 81 generates a game image (step S13) and proceeds to the next step. For example, the processor 81 generates a game image by performing rendering on each polygon of the display mesh of the voxel object and the polygons of the objects other than the voxel object based on a virtual camera. Note that each polygon of the display mesh is rendered using rendering settings such as a texture corresponding to the material set for the polygon according to the method described in [2-6-1. Determination of the material of the display mesh]. The game image generated in step S13 is output to the display device and displayed at a cycle of once per frame.

[0264] Next, the processor 81 determines whether to end the game (step S14). For example, the processor 81 makes an affirmative determination in step S14 when a predetermined operation input for ending the game is performed by the user or when the conditions for ending the game are satisfied. Then, when the processor 81 ends the game, it ends the processing according to the flowchart. On the other hand, when the processor 81 does not end the game, it returns to step S1 and repeats the processing. Thereafter, the series of processes of steps S1 to S14 are repeatedly executed until it is determined in step S14 that the game is ended.

[0265] As described above, in this embodiment, in a game space where the determination mesh (terrain mesh) of the terrain object generated based on the update of the voxels may deform, the return position of the player character can be appropriately set so as not to return to a position where the terrain object no longer exists.

[0266] Note that in the above description, an example in which a voxel object is defined by generating a three-dimensional mesh based on voxel data set for voxels in a three-dimensional space is used, but a voxel object may be defined based on voxel data set for two-dimensional voxels.

[0267] Also, the game system 1 can be any device, such as a portable game device, any portable electronic device (such as a PDA (Personal Digital Assistant), mobile phone, smartphone, personal computer, camera, tablet, etc.). In this case, the input device for performing user operations to operate the player character or the like does not have to be the left controller 3, the right controller 4, or the touch panel 13, etc., and can be another controller, mouse, touch pad, touch panel, trackball, keyboard, cross key, slide pad, etc.

[0268] Also, in the above description, an example in which the information processing is performed by the game system 1 respectively is used, but at least a part of the above processing steps may be performed by another device. For example, when the game system 1 is further configured to be communicable with another device (for example, another server, another information processing device, another game device, another mobile terminal, etc.), the above processing steps may be further executed by the cooperation of the other device. Thus, by performing at least a part of the above processing steps by another device, the same processing as the above-described processing becomes possible. Also, the above-described information processing can be executed by the cooperation between one processor or a plurality of processors included in an information processing system constituted by at least one information processing device. Also, in the above embodiment, the processor 81 of the game system 1 can perform information processing by executing a predetermined program, but a part or all of the above processing may be performed by a dedicated circuit provided in the game system 1.

[0269] Here, according to the above-described modification example, it is also possible to implement the present invention in a so-called cloud computing system configuration, a distributed wide area network, or a local network system configuration. For example, in the system configuration of a distributed local network, it is also possible to execute the above processing in cooperation between a stationary information processing device (stationary game device) and a portable information processing device (portable game device). Note that in these system configurations, there is no particular limitation on which device performs the above-described processing, and it goes without saying that the present invention can be realized regardless of any processing sharing.

[0270] In addition, the processing order, setting values, conditions used for determination, etc. used in the above-described information processing are merely examples, and it goes without saying that the present embodiment can be realized even with other orders, values, and conditions.

[0271] Further, the above program may be supplied to the game system 1 not only through an external storage medium such as an external memory but also through a wired or wireless communication line. Further, the above program may be pre-recorded in a non-volatile storage device inside the device. Note that as the information storage medium for storing the above program, in addition to a non-volatile memory, a CD-ROM, a DVD, or an optical disk-shaped storage medium similar thereto, a flexible disk, a hard disk, a magneto-optical disk, a magnetic tape, etc. may also be used. Further, as the information storage medium for storing the above program, a volatile memory for storing the above program may also be used. Such a storage medium can be referred to as a computer-readable recording medium. For example, by causing a computer or the like to read and execute the programs of these recording media, various functions described above can be provided.

[0272] As described above, the present invention has been described in detail. However, the above description is merely an exemplification of the present invention in every aspect and is not intended to limit its scope. Needless to say, various improvements and modifications can be made without departing from the scope of the present invention. Further, those skilled in the art will understand that they can implement an equivalent scope based on the description of the present invention and common general technical knowledge from the description of the specific embodiments of the present invention. Also, it should be understood that the terms used in this specification are used in the meaning commonly used in the relevant field unless otherwise specified. Therefore, unless otherwise defined, all technical and scientific terms used in this specification have the same meaning as commonly understood by those skilled in the art to which the present invention pertains. In case of conflict, this specification (including definitions) shall prevail.

Industrial Applicability

[0273] As described above, the present invention can be used as a game program, a game system, a game processing method, a game device, etc. that can appropriately set the return position of a player character, etc. in a game in which a mesh generated based on the update of voxels may deform.

Explanation of Signs

[0274] 1... Information processing system 2... Main body device 3... Left controller 4... Right controller 11... Housing 12... Display 13... Touch panel 32, 52... Analog stick 42, 64... Terminal 81... Processor 82... Network communication unit 83... Controller communication unit 85... DRAM

Claims

1. Cause a computer to update, based on game processing, voxel data that represents a terrain defined in a virtual space, and for each of a plurality of voxels, at least sets a density that indicates the degree to which the space defined by the voxel is virtually occupied by its content; update a terrain mesh that corresponds to the voxel data and represents the terrain, and whose vertex coordinates are determined based at least on the density included in the voxel data; In the game processing, further in a first case where a player character is at least on the terrain, control the player character to move based on an operation input at a position on the terrain, and store the position of the player character as a history; when the player character satisfies a first condition by moving, interrupt the movement control based on the operation input; determine a return position from candidates that include a plurality of positions included in the history and that are not positions where the terrain does not exist; cause the player character to move back to the return position and resume the movement control based on the operation input. A game program.

2. Cause the computer to further in the game processing cause the player character to perform a first action based on an operation input; set a first voxel update range in the virtual space based on the first action; Reduce the density of the voxels of the voxel data corresponding to the first voxel update range. The game program according to claim 1.

3. Cause the computer to further in the game processing in a second case where the player character is in contact with the terrain at least in the forward direction, control the player character to be movable based on an operation input at a position in contact with the terrain, and store the position of the player character as the history. The game program according to claim 1.

4. Cause the computer to further in the second case, store at least as the history the positions of the player character every time it moves a predetermined distance and the position when the player character stops. The game program according to claim 3.

5. Cause the computer to further in the game processing The game program according to claim 1, wherein when the player character reaches a checkpoint in the virtual space, the checkpoint is further stored as the candidate, and the history stored until then is excluded from the candidate.

6. The game program according to claim 3, wherein the computer determines the latest one among the candidates as the return position.

7. The game program according to claim 1, wherein the first condition includes that the position of the player character is within a first range in the virtual space.

8. The game program according to claim 7, wherein the first condition further includes that a first held item consumed in accordance with the movement to return is left.

9. For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data. Furthermore, to the computer Based on the density included in at least the voxel data, determine vertex coordinates of a display mesh corresponding to the voxel data and drawn based on a virtual camera, and determine the material of the mesh based on at least the material included in the voxel data, thereby generating or updating the display mesh. The game program according to any one of claims 1 to 8, wherein the computer causes the virtual space including the display mesh to be drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh.

10. For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data. Furthermore, to the computer Determine the material of the terrain mesh based on at least the material included in the voxel data. The game program according to any one of claims 1 to 8, wherein the terrain mesh is used as a display mesh, and the computer causes the virtual space including the display mesh to be drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh.

11. Voxel data showing a terrain 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 contents is set is updated based on game processing. Update a terrain mesh corresponding to the voxel data and showing the terrain, wherein vertex coordinates are determined based on at least the density included in the voxel data. In the game processing, further, In a first case where a player character is at least on the terrain, control the movement of the player character based on an operation input at a position on the terrain, and store the position of the player character as a history. When the player character satisfies a first condition by moving, Interrupt the movement control based on the operation input. Determine a return position from candidates including a plurality of positions included in the history, excluding candidates where the terrain does not exist. A game system that causes the player character to move back to the return position and resumes the movement control based on the operation input.

12. The game system further, In the game processing, Perform a first action on the player character based on an operation input. Set a first voxel update range in the virtual space based on the first action. Reduce the density of the voxels of the voxel data corresponding to the first voxel update range. The game system according to claim 11.

13. The game system further, In the game processing, In a second case where the player character is in contact with the terrain at least in the forward direction, control the player character to be movable based on an operation input at a position in contact with the terrain, and store the position of the player character as the history. The game system according to claim 11.

14. The game system further, In the second case, store at least the position of the player character every time it moves a predetermined distance and the position when the player character stops as the history. The game system according to claim 13.

15. The game system further, In the game processing, The game system according to claim 11, wherein when the player character reaches a checkpoint in the virtual space, the checkpoint is further stored as the candidate, and the history stored until then is excluded from the candidate.

16. The game system according to claim 13, wherein the game system determines the latest one among the candidates as the return position.

17. The game system according to claim 11, wherein the first condition includes that the position of the player character is within a first range in the virtual space.

18. The game system according to claim 17, wherein the first condition further includes that a first held item consumed according to the movement to return is left.

19. For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data. The game system further generates or updates a display mesh corresponding to the voxel data and drawn based on a virtual camera by determining vertex coordinates of the mesh based on at least the density included in the voxel data and determining a material of the mesh based on at least the material included in the voxel data, and performs drawing of the virtual space including the display mesh based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh. The game system according to any one of claims 11 to 18, wherein the virtual space including the display mesh is drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh.

20. For each of the plurality of voxels, a material indicating the type of the content is further set in the voxel data. The game system further determines a material of the terrain mesh based on at least the material included in the voxel data, and performs drawing of the virtual space including the display mesh based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh, with the terrain mesh as the display mesh. The game system according to any one of claims 11 to 18, wherein the virtual space including the display mesh is drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh.

21. In an information processing system Voxel data showing terrain defined in a virtual space, wherein for each of a plurality of voxels, voxel data with at least a density indicating the degree to which the space defined by the voxel is virtually occupied by content is updated based on game processing. Update a terrain mesh corresponding to the voxel data and showing the terrain, wherein vertex coordinates are determined based on at least the density included in the voxel data. In the game processing, further, In a first case where a player character is at least on the terrain, control the movement of the player character based on an operation input at a position on the terrain, and store the position of the player character as a history. When the player character satisfies a first condition by moving, Interrupt the movement control based on the operation input. Determine a return position from candidates that are not positions where the terrain does not exist among candidates including a plurality of positions included in the history. Move the player character back to the return position and resume the movement control based on the operation input. A game processing method.

22. In the information processing system, further, In the game processing, Cause the player character to perform a first action based on an operation input. Set a first voxel update range in the virtual space based on the first action. Reduce the density of the voxels of the voxel data corresponding to the first voxel update range. The game processing method according to claim 21.

23. In the information processing system, further, In the game processing, In a second case where the player character is in contact with the terrain at least in the forward direction, control the player character to be movable based on an operation input at a position in contact with the terrain, and store the position of the player character as the history. The game processing method according to claim 21.

24. In the information processing system, further, In the second case, store at least the positions of the player character every time it moves a predetermined distance and the position when the player character stops as the history. The game processing method according to claim 23.

25. In the information processing system, further, In the game processing, The game processing method according to claim 21, wherein when the player character reaches a checkpoint in the virtual space, the checkpoint is further stored as the candidate, and the history stored until then is excluded from the candidate.

26. The game processing method according to claim 23, wherein the information processing system determines the latest one among the candidates as the return position.

27. The game processing method according to claim 21, wherein the first condition includes that the position of the player character is within a first range in the virtual space.

28. The game processing method according to claim 27, wherein the first condition further includes that a first held item consumed in accordance with the movement to return is left.

29. 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 generates or updates a display mesh corresponding to the voxel data and drawn based on a virtual camera by determining vertex coordinates of the mesh based on at least the density included in the voxel data and determining a material of the mesh based on at least the material included in the voxel data, and causes the virtual space including the display mesh to be drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh. The game processing method according to any one of claims 21 to 28, wherein the virtual space including the display mesh is drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh.

30. 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 determines a material of the terrain mesh based on at least the material included in the voxel data, and causes the virtual space including the display mesh to be drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh, with the terrain mesh as the display mesh. The game processing method according to any one of claims 21 to 28, wherein the virtual space including the display mesh is drawn based on a texture corresponding to the vertex coordinates of the display mesh and the material of the display mesh.

31. A game device including a processor, wherein the processor Voxel data indicating a terrain defined in a virtual space, wherein for each of a plurality of voxels, voxel data is updated based on game processing, the voxel data having at least a density indicating the degree to which the space defined by the voxel is virtually occupied by content. A mesh corresponding to the voxel data and indicating the terrain is updated, the terrain mesh having vertex coordinates determined based at least on the density included in the voxel data. In the game processing, further, In a first case where a player character is at least on the terrain, the player character is moved and controlled based on an operation input at a position on the terrain, and the position of the player character is stored as a history. When the player character satisfies a first condition by moving, The movement control based on the operation input is interrupted. A return position is determined from candidates including a plurality of positions included in the history, excluding candidates where the terrain does not exist. A game device that causes the player character to return to the return position and resumes movement control based on an operation input.

Citation Information

Patent Citations

  • Method and device for generating return point

    CN115445200A

  • Game apparatus and information recorded medium

    JP2000024317A

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

    JP2004062666A

  • Game system, program for game system, and information recording medium

    JP2012090844A

  • Game system, server system, and program

    JP2014198182A