Game program, information processing system, information processing device, and game processing method
The game program employs voxel data and intersection information to generate and update voxel meshes, addressing the inefficiency in processing load and enhancing the accuracy of shape restoration in virtual space objects.
Patent Information
- Application Number
- JP2024196730
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-11-11
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2044-11-11
AI Technical Summary
The existing methods for generating a mesh of an object in a virtual space result in an increased processing load due to the specification of normal directions at certain positions, which is inefficient and burdensome.
A game program that utilizes voxel data to generate and update a voxel mesh by setting density and intersection information, allowing for the reduction of processing load through dynamic voxel updates and vertex determination based on density and intersection information.
The proposed method effectively suppresses the increase in processing load during mesh generation, enabling more efficient and accurate shape restoration of voxel objects while reducing computational overhead.
Smart Images

Figure 2025113159000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a game program, an information processing system, an information processing device, and a game processing method for generating an object in a virtual space. [Background technology]
[0002] Conventionally, when generating a mesh of an object, information on the normal direction at a certain position is specified, and the vertices of each polygon are determined so that the polygon face is perpendicular to the normal direction at that position (see, for example, non-patent document 1). [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] “DualContouring of Hermite Data”, ACM Transactions on Graphics, 21(3) pp. 339-346, T. Ju, F. Losasso, S. Schaefer, J. Warren, 2002. Summary of the Invention [Problem to be solved by the invention]
[0004] It is desirable to suppress an increase in the processing load in the process of generating a mesh of an object using the above information. [Means for solving the problem]
[0005] In order to solve the above problems, the present invention employs the following configurations (1) to (9).
[0006] (1) An example of the present invention is a game program that causes a computer to execute the following process. · Voxel data defined in a voxel space within a virtual space, where for each of a plurality of voxels, at least a density indicating the degree to which the space defined by the voxel is virtually occupied by content is set, and further, for at least some of the voxels, based on voxel data in which intersection information regarding intersections between lines connecting voxels and a mesh is set, a voxel mesh that is a mesh based on the voxel data and whose vertex coordinates are determined based on at least the density and the intersection information is generated and updated · Based on an operation input, control a player character within the virtual space, and in response to a first instruction based on the operation input, cause the player character to perform a first action · Decrease the density of the voxels of the voxel data corresponding to a first voxel update range set based on the position where the first action was performed, and if intersection information is set for the voxels of the voxel data corresponding to a first intersection information update range set based on the position where the first action was performed, delete the intersection information · Process for rendering the virtual space including the voxel mesh
[0007] According to the configuration of (1) above, an increase in the processing load in the process of generating a voxel mesh using intersection information can be suppressed.
[0008] (2) In the configuration of (1) above, the intersection information may include, for each voxel, data indicating the coordinates of the intersection and data indicating the normal direction regarding the intersection between the boundary with adjacent voxels in a predetermined direction and the mesh. The game program may cause the computer to execute the following process. · Based on the intersection information, for the voxels where the vertices of the voxel mesh are set between the voxels with density values in the first range and the voxels with density values in the second range, the surface of the voxel mesh is arranged to face the normal direction at the coordinates of the intersection, or the coordinates of the vertices of the voxel mesh are determined at the position where the error from the said arrangement is minimized. For the voxels without intersection information set, based on the method where the coordinates of the vertices of the voxel mesh are determined based on the intersections set according to the density, the process of generating and updating the voxel mesh
[0009] According to the configuration of (2) above, the shape of the voxel mesh can be more specifically defined by the intersection information.
[0010] (3) In the configuration of (2) above, the game program may cause the computer to generate and update the voxel mesh based on the method where the coordinates of the vertices of the voxel mesh are determined at the position where the distance from the multiple surfaces facing the normal direction at the coordinates of the intersections based on each of the multiple intersection information is minimized.
[0011] According to the configuration of (3) above, the vertices of the voxel mesh can be determined on the surface defined by the intersection information or at a position close to the surface.
[0012] (4) In any of the configurations from (1) to (3) above, the game program may further cause the computer to execute the following process. · The process of causing the player character to perform a second action in response to a second instruction based on the operation input · For the voxels of the voxel data corresponding to the second voxel update range set according to the second action, the process of reducing the density without deleting the intersection information
[0013] According to the configuration of (4) above, when the decreased density is restored, the shape of the voxel mesh can be generated using the intersection information, so that the shape of the voxel mesh can be more accurately restored to the original shape.
[0014] (5) In the configuration of (4) above, the voxel data may at least include first voxel data defined in a first voxel space and second voxel data defined in a second voxel space. The first action is an action on the first voxel data, and the first voxel update range may be an update range for the first voxel data. The second action is an action on the second voxel data, and the second voxel update range may be an update range for the second voxel data.
[0015] According to the configuration of (5) above, regarding the deformation of the voxel object according to the first action, an increase in the processing load in the process of generating the voxel mesh using the intersection information can be suppressed, and regarding the deformation of the voxel object according to the second action, the shape of the voxel mesh can be more accurately restored to the original shape.
[0016] (6) In the configuration of (5) above, the voxel data may further include third voxel data defined in a third voxel space, and for each of the plurality of voxels, a correspondence relationship with each voxel of the second voxel data is set. The game program may further cause the computer to increase the density of the target voxel to be increased, which is a voxel of the third voxel data with which the correspondence relationship with the target voxel to be decreased, which is the voxel whose density has decreased, is set, when the density of the voxel of the second voxel data is decreased.
[0017] According to the configuration of (6) above, an expression can be performed such that it appears that the volume of one voxel object increases in response to the decrease in the volume of the other voxel object.
[0018] (7) In any of the configurations (1) to (3) above, the voxel data may further include first voxel data defined in a first voxel space, second voxel data defined in a second voxel space, and third voxel data defined in a third voxel space, and for each of the plurality of voxels, a correspondence relationship with each voxel of the second voxel data is set. The game program may further cause the computer to, based on a first action, when reducing the density of the voxels of the second voxel data, increase the density of the target voxels to be increased, which are the voxels of the third voxel data for which a correspondence relationship with the target voxels to be reduced, which are the voxels with reduced density, is set, and when intersection information is set for the target voxels to be reduced, cause the same intersection information as the intersection information deleted from the target voxels to be reduced to be set for the target voxels to be increased.
[0019] According to the configuration of (7) above, an increase in the processing load related to the generation of the mesh based on the second voxel data can be suppressed. Further, regarding the generation of the mesh based on the third voxel data, it can be generated so as to more accurately reproduce the same shape as the voxel object related to the second voxel data.
[0020] (8) In any of the configurations (1) to (7) above, the game program may further cause the computer to execute the following processing. · Processing for causing the player character to perform a third action in response to a third instruction based on an operation input · Processing for updating the density of the voxels of the voxel data corresponding to the third voxel update range set in response to the third action, and further setting intersection information for at least some of the voxels
[0021] According to the configuration of (8) above, even when no intersection information is set for the voxel object before deformation, it is possible to easily make the shape of the mesh of the voxel object after deformation as intended.
[0022] (9) In any of the configurations (1) to (8) above, the voxel data may at least include fourth voxel data defined in a fourth voxel space and having intersection information set in a predetermined voxel. The game program may further cause the computer to increase the density of the voxels of the fourth voxel data corresponding to the fourth voxel update range and restore the intersection information deleted based on the first action when the density of the fourth voxel data decreases based on the first action.
[0023] According to the configuration of (9) above, the shape of the voxel object can be restored to a more accurate shape before deformation.
[0024] Note that another example of the present invention may be an information processing apparatus or an information processing system that executes the processes in (1) to (9) above. Further, another example of the present invention may be a game processing method that causes an information processing system to execute the processes in (1) to (9) above.
Effect of the Invention
[0025] According to the game program, information processing system, information processing apparatus, or game processing method described above, an increase in the processing load in the process of generating the mesh of the object can be suppressed.
Brief Description of the Drawings
[0026]
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
Figure 39
Figure 40
Figure 41
Figure 42
Figure 43
Mode for Carrying Out the Invention
[0027] [1. Configuration of the Game System] Hereinafter, a game system according to an example of the present embodiment will be described. An example of the game system 1 in the present embodiment includes a main body device (information processing device; functioning as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The 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 respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 separated from each other (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.
[0028] FIG. 1 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are attached to the main body device 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processing) in the game system 1. The main body device 2 includes a display 12. The left controller 3 and the right controller 4 are devices provided with an operation unit for the user to input.
[0029] FIG. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are removed from the main body device 2 respectively. As shown in FIGS. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller".
[0030] 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.
[0031] 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 handheld device. Also, the main body device 2 or the integrated device may be a transportable device.
[0032] 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.
[0033] Further, 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 (for example, a capacitance type) capable of multi-touch input. However, the touch panel 13 may be of any type, for example, a type (for example, a resistive film type) capable of single-touch input may also be used.
[0034] The main body device 2 includes a speaker (that is, the speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed on 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.
[0035] Further, the main body device 2 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.
[0036] 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 predetermined type of storage medium. The predetermined type of storage medium is, for example, a storage medium dedicated to the game system 1 and information processing devices of the same type (for example, a dedicated memory card). The predetermined type of storage medium is used, for example, to store data (for example, save data of an application, etc.) used in the main body device 2 and / or programs (for example, application programs, etc.) executed by the main body device 2. Further, the main body device 2 includes a power button 28.
[0037] The main body device 2 is provided with a lower terminal 27. The lower terminal 27 is a terminal for the main body device 2 to communicate with the cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main body device 2 alone is placed on the cradle, the game system 1 can display an image generated and output by the main body device 2 on a stationary monitor. Further, in the present embodiment, the cradle has a function of charging the placed integrated device or the main body device 2 alone. Also, the cradle has a function of a hub device (specifically, a USB hub).
[0038] 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 (that is, 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.
[0039] 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 be provided with a cross key or a slide stick capable of slide input, etc. instead of the analog stick as a direction input unit. Also, in the present embodiment, it is possible to input by pressing the analog stick 32.
[0040] The left controller 3 is provided with various operation buttons. The left controller 3 is provided with four operation buttons 33 to 36 (specifically, a right direction button 33, a down direction button 34, an up direction button 35, and a left direction button 36) on the main surface of the housing 31. Further, the left controller 3 is provided with a recording button 37 and a -(minus) button 47. The left controller 3 is provided with 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 is provided with a second L button 43 and a second R button 44 on the side surface of the housing 31 on the side where it is attached when attached to the main body device 2. These operation buttons are used to give instructions according to various programs (for example, an OS program or an application program) executed by the main body device 2.
[0041] 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.
[0042] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In the present embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the vertical direction. The right controller 4 can also be gripped in a vertically long orientation when removed from the main body device 2. The housing 51 has a shape and size that can be gripped with one hand, particularly the right hand, when gripped in a vertically long orientation. Also, the right controller 4 can be gripped in a horizontally long orientation. When the right controller 4 is gripped in a horizontally long orientation, it may be gripped with both hands.
[0043] 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. Also, instead of the analog stick, the right controller 4 may be provided with a cross key or a slide stick capable of slide input. Also, similar to the left controller 3, the right controller 4 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. Further, 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.
[0044] Also, the right controller 4 includes a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.
[0045] 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.
[0046] 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 it may be composed of a SoC (System-on-a-chip) including a plurality of functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various information processes by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84 or an external storage medium mounted on the slot 23).
[0047] As an example of an internal storage medium built into the main body device 2, the main body device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is mainly a memory used to store various data (which may be a program) stored in the main body device 2. The DRAM 85 is a memory used to temporarily store various data used in information processing.
[0048] The main body device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23 and reads and writes data to and from a predetermined type of storage medium (for example, a dedicated memory card) mounted on the slot 23 according to an instruction from the processor 81.
[0049] The processor 81 appropriately reads and writes data between the flash memory 84, the DRAM 85, and each of the above storage media to execute the above information processes.
[0050] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with external devices via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with external devices using a method conforming to the Wi-Fi (registered trademark) standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (e.g., communication using a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication," in which data is transmitted and received by direct communication between multiple main units 2.
[0051] The main unit 2 is equipped with a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0052] 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.
[0053] 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 sets of the left controller 3 and the right controller 4, respectively. 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.
[0054] 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.
[0055] 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.
[0056] 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.
[0057] 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.
[0058] 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. The details of the internal configuration regarding the main body device 2 are shown in FIG. 6, and thus are omitted in FIG. 7.
[0059] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 both by wired communication via the terminal 42 and by wireless communication without using the terminal 42. The communication control unit 101 controls the communication method that the left controller 3 performs with respect to the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. Also, when the left controller 3 is removed from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.
[0060] Further, the left controller 3 includes a memory 102 such as a flash memory. The communication control unit 101 is configured by, for example, a microcomputer (also referred to as a microprocessor) and executes various processes by executing the firmware stored in the memory 102.
[0061] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). Also, the left controller 3 includes an analog stick (described as "stick" in FIG. 7) 32. Each button 103 and the analog stick 32 output information regarding the operation performed on themselves to the communication control unit 101 repeatedly at appropriate timings.
[0062] The communication control unit 101 acquires information related to input (specifically, information related to operations or detection results by sensors) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing predetermined processing on the acquired information) to the main body device 2. Note that the operation data is repeatedly transmitted at a rate of once every predetermined time. Note that the intervals at which the information related to input is transmitted to the main body device 2 may be the same or different for each input unit.
[0063] 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.
[0064] 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).
[0065] 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.
[0066] The right controller 4 includes the same input units as those of the left controller 3. Specifically, it includes each button 113 and the analog stick 52. These input units have the same functions as those of the left controller 3 and operate in the same manner.
[0067] 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.
[0068] [2. Overview of Processing in the Game System] Next, with reference to FIGS. 8 to 32, an overview of the processing executed in the game system 1 will be described. In the present embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters operated by a player) are arranged in a game space, which is a three-dimensional virtual space, and causes the display device to display the game image. Note that, in the present embodiment, the display device on which the game image is displayed may be the above-described display 12 or a stationary monitor.
[0069] [2-1. Voxels] 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 cubic) region arranged in a grid pattern in the game space, and voxel data is data indicating information regarding each voxel. Hereinafter, an object whose shape is defined by voxel data will be referred to as a "voxel object". In the present embodiment, the game system 1 stores voxel data as data for generating voxel objects in the game space for a plurality of voxels set in the game space.
[0070] FIG. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 8, in the present embodiment, a terrain object representing a terrain such as the ground is defined in shape by voxel data (that is, it is a voxel object). Each cube shown in FIG. 8 represents a terrain object. In FIG. 8, the portions that are the sides of the terrain object are shown in thick lines, but this thick line is added for the purpose of making the drawing easier to view, and in reality, it is not necessary for the sides of the terrain object to be shown thickly.
[0071] Note that the terrain object shown in FIG. 8 is generated, for example, according to the rule that "if the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and if it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 8 is shown for the purpose of clearly exemplifying the relationship between voxels and voxel objects. In the present embodiment, in reality, for example, like the terrain object shown in FIG. 13 described later, a voxel object is generated according to a rule that results in a complex shape (based on voxel data). Note that the rule for determining the shape of the voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate a voxel object as shown in FIG. 8 or a voxel object as shown in FIG. 13 based on object data.
[0072] 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.
[0073] In this way, the game system 1 can freely change the shape of the voxel object by rewriting the voxel data. For example, when the shape of a terrain object changes as a result of being destroyed for some reason (e.g., a player character strikes the terrain object) in the game, the game system 1 does not directly change the data indicating the outer shape of the terrain object (i.e., the mesh described later), but can freely change the shape of the terrain object by changing the voxel data used for generating the terrain object.
[0074] 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 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. Further, 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.
[0075] 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.
[0076] 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.
[0077] 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. In this way, the density is an index that affects the ratio of the volume occupied by the region within the voxel object in the voxel. The density can also be said to be 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 inside of the voxel is empty, when the density is 255, all of the inside of the voxel is the content of the voxel object, and when the density is a value between 0 and 255, the inside of the voxel can be occupied by the content of the voxel object at a ratio corresponding to the value. Then, based on the above density, the shape of the mesh, that is, the surface shape of the voxel object can be determined. The mesh can be said to be the surface of the part where the content exists in the voxel, or can also be said to be 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 have to be exactly the volume that exactly matches 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 when based on the same density, the volume of the voxel object may be different.
[0078] In other embodiments, density may indicate either a state in which the volume occupied by the region in the voxel object occupies the entire region in the voxel, or a state in which the volume occupied by the region in the voxel object is not included in the region in the voxel. For example, density data may be data that can only take on the values 0 or 1. In other embodiments, density may be an index indicating that the degree to which the space of the voxel is virtually occupied by its contents decreases as the density value increases.
[0079] The first material ID and the second material ID are information indicating the material (in other words, the substance) of the voxel. In this embodiment, a material such as sand, rock, or soil is set to the voxel. Note that the game system 1 provides a plurality of types of materials that can be set to the voxel (see the material data shown in FIG. 12). In this embodiment, up to two materials from the plurality of types of materials provided can be set to one voxel. The first material ID is an ID indicating the first material set to the voxel, and the second material ID is an ID indicating the second material set to the voxel. As will be described in detail later, the material of a voxel object (i.e., the material set to the polygons of the voxel object) is determined based on the material set to the voxel.
[0080] As described above, in this embodiment, the voxel data includes an ID indicating the material, but in other embodiments, the voxel data may have a data structure that includes data that directly indicates the content of the material (i.e., the name, properties, and drawing setting information described below).
[0081] Material mixing ratio data is an example of data indicating the ratio of each material in the voxel. In the present embodiment, since the number of material IDs set in one voxel is up to two, the material mixing ratio data indicating the ratio of one of the materials indicated by the first material ID and the material indicated by the second material ID can also represent the other ratio. In the present embodiment, the material mixing ratio is a value indicating the ratio of the second material to the whole composed of the first material and the second material by a value of 0 or more and 1 or less. For example, when the material mixing ratio set in a certain voxel is 0.4, it 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, the ratio of the materials in the voxel is represented as a plurality of values respectively indicating the ratio of each material.
[0082] 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.
[0083] State data indicates the state set in the voxel. The specific content and number of types of 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 in a wet state (and the degree thereof).
[0084] 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.
[0085] The name included in the material data is the name set for the material (for example, soil, sand, grass, etc.). Although details will be described later, during the game, the name of the material of the voxel object may be displayed (see FIG. 25). In order to perform such a display, the material data includes information on the name of the material.
[0086] The properties included in the material data are the properties set for the material. The properties of the material are the properties that the voxel object to which the material is set has in the game. Note that the specific content and number of types of the properties of the material are arbitrary. For example, at least any of the following information may be set as the properties of the material. · Hardness · Weight · Slipperiness · Damage setting when the player character comes into contact · Temperature · Whether another object can adhere to the voxel object · Amount of recovery of the player character's physical strength when the player character destroys or acquires the voxel object · Amount of in-game currency acquired by the player character when the player character destroys or acquires the voxel object In other embodiments, information different from the above may be set as the information indicating the properties of the material.
[0087] In this embodiment, the material data includes, as information specifying the properties of the material, an ID indicating the property (see FIG. 12). Although not shown, the game system 1 stores property information in which, for each property to be prepared, the content of the property (for example, a value indicating the above-described weight or slipperiness) is associated with the property ID. By referring to the above property information, the game system 1 can specify the specific content of the property set for the material.
[0088] The rendering settings included in the material data are information indicating settings related to rendering, such as the texture used for rendering the voxel object to which the material is set. In this embodiment, the material data includes, as information on the rendering settings, the ID of the texture used for rendering the voxel object to which the material is set (see FIG. 12). Although not shown, the game system 1 stores texture information in which, for each texture to be prepared, the texture ID and the texture indicated by the texture ID are associated. By referring to the above texture information, the game system 1 can specify the specific content of the texture set for the material. In other embodiments, 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 reflectivity, information related to the normal, etc. may be set.
[0089] Also, the material data may include data other than the data shown in FIG. 13. For example, the material data may include data related to sound settings. For example, the data related to sound settings may be data that defines the footsteps output when the player character walks on the voxel object based on the voxel.
[0090] The material data may be data in any format that can identify the properties and / or rendering settings of a material. For example, in another embodiment, the material data may have a data structure that includes data that directly indicates the properties and / or rendering settings of a material, instead of a data structure that includes a material ID or a texture ID.
[0091] [2-2. Updating Voxel Data] During the game, the voxel data is updated, thereby deforming the voxel object. In this embodiment, when a game event for updating the voxel object (hereinafter referred to as an "update event") occurs, the game system 1 updates the voxel data. The specific content of the update event is arbitrary. The update event may be, for example, an action by a character appearing in the game that deforms the voxel object (e.g., a player character punching a voxel object), or the occurrence of an event that deforms the voxel object (e.g., an object thrown by a character coming into contact with a voxel object, or a bomb exploding).
[0092] Fig. 13 is a diagram showing an example of a game space when an update event has occurred. The situation shown in Fig. 13 is a situation in which a player character 201 has performed a punch action on a terrain object 202, which is a voxel object. Details will be described later, but 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 has landed is erased. This expresses the situation in which the terrain object 202 is destroyed by the punch action by the player character 201.
[0093] In this embodiment, when an update event occurs, the game system 1 sets, in the game space, an update range (update range 203 shown in FIG. 13) for updating the voxel object. The position, shape, and size of the update range are arbitrary. The position of the update range may be determined based on, for example, the position where an object related to the occurred 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 occurred update event (for example, the strength of the punch or the size of the explosion).
[0094] 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.
[0095] 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 performs the above determination based on the value of the SDF. The SDF represents the distance from a specified shape to an arbitrary position using a signed value. FIG. 14 is a diagram illustrating 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, the SDF is set so that, among positions in the game space, positions inside the shape represented by the SDF have negative SDF values and positions outside the shape represented by the SDF have positive SDF values. In this example, whether a voxel is included in the update range can be determined based on whether the SDF value is positive or negative. Furthermore, by using the signed distance value, not only simple inside / outside determination but also processes such as correction and interpolation can be performed.
[0096] In the above, an example has been described in which a change is made to a voxel object such that the voxel objects within the update range are transformed as if they were deleted, but the change made to a voxel object using the update range is not limited to this. For example, a change may be made to a voxel object such that a new voxel object is added within the update range (i.e., the volume occupied by the area within the voxel object increases by the amount of the update range) (see FIG. 26, described later). Also, a change may be made to a voxel object such that only the material of the voxels within the update range changes, without changing the density of the voxels. Also, a change in voxel density and a change in material may be made in combination.
[0097] [2-3. Calculating the vertices] When the density of 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.
[0098] FIG. 15 is a diagram showing an example of a vertex setting method. In FIGS. 15 to 17 and FIGS. 19 to 21 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 indicating its existence (that is, a density equal to or higher than a reference value described later) and a voxel having a density 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.
[0099] As described above, in this embodiment, the density set for a voxel is set in the range of 0 to 255. A voxel with a density of 0 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 used for vertex determination. And in this embodiment, voxels with a density greater than or equal to a reference value are virtually treated as being inside an object, and voxels with a density less than the reference value are 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 existence, and voxels with a density less than the reference value are treated as voxels indicating non-existence. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., set the reference value = 1), and the reference value can be, for example, 128. In the example shown in FIG. 15, the density is 0 in voxel 211 and other outer voxels, the density of voxel 212 is 100 which is less than the reference value, and the densities in voxels 213 and 214 are set to 150 and 210 which are greater than or equal to the reference value. In this 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 eight (four in the drawing) adjacent voxels (the region surrounded by the dotted line in the drawing), a determination is made as to whether to generate a vertex. That is, a vertex is generated in a region that spans 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 vertex 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. Although details will be described later, by setting intersection information that defines the position and orientation of the straight line connecting the vertices, the coordinates of the vertex can be further calculated based on the intersection information. The intersection information may be held in advance for at least some of the voxels, or if not held, the intersection information may also be calculated based on the densities of adjacent voxels. In FIG. 15, since the density of voxel 212 is less than the reference value, voxel 212 is treated as being outside the object in the determination of the presence or absence of a vertex, but the density value of voxel 212 itself is used for the calculation of the coordinates of the generated vertex.If the reference value is set to a value lower than the density of voxel 212, the result is that more vertices will appear on the upper right and upper left sides of voxel 212 in Fig. 15.
[0100] By setting the vertices as described above, when generating a mesh that connects each of the set vertices (or each vertex after performing the simplification process described later on each of the set vertices), a shape with a volume that reflects the density of each voxel to a certain extent can be generated. However, depending on the relationship with adjacent voxels, it is possible that a voxel with a density of 0 includes a region within the object, or a voxel with a density of 255 includes a region outside the object. Also, in this embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume is also smaller because there are fewer vertices compared to the case of processing them as inside the object. Thus, it is not necessary to calculate the polygon mesh so as to have a volume that exactly corresponds to the density value.
[0101] Note that intersection information may be used for calculating the vertices. The intersection information indicates the three-dimensional position and direction in the space where the voxels are set. Although details will be described later, when the intersection information is set, the vertices are set such that the polygon surface formed by a plurality of vertices ideally includes the position indicated by the intersection information and is perpendicular to the direction indicated by the intersection information. Note that the "polygon surface formed by a plurality of vertices" is the surface that becomes the mesh surface of the voxel object when no simplification is performed on the vertices as described later. By setting the above intersection information, the shape of the mesh of the voxel object can be defined in more detail. Hereinafter, for convenience, the coordinates of the position indicated by the intersection information are referred to as "intersection coordinates", and the direction indicated by the intersection information is referred to as the "normal direction". However, as will be described later, the surface formed by each determined vertex may not include the position of the intersection coordinates or may not be perpendicular to the normal direction.
[0102] FIG. 16 is a diagram showing an example of a method for determining vertices when intersection information is set. In FIG. 16, an example in which intersection information is set for the voxel 213 shown in FIG. 15 is shown. As shown in FIG. 16, the intersection coordinates indicated by the intersection information are set on a line connecting voxels, more specifically, for example, on a line connecting the center of a voxel and the center of an adjacent voxel to the voxel. The normal direction indicated by the intersection information indicates the direction at the position of the intersection coordinates. As shown in FIG. 16, the intersection coordinates and the normal direction indicated by the intersection information can be represented as a vector starting from the position of the intersection coordinates and facing the normal direction.
[0103] Note that the intersection information does not need to be set for all voxels, and may be set for some of the voxels in the voxel space. For example, the intersection information is set for a voxel having vertices set around it. More specifically, when there is a voxel having a density equal to or higher than the above-described reference value and a voxel adjacent to the voxel and having a density lower than the reference value, the intersection information is set for any of these voxels. At this time, the intersection coordinates are set on a line between the center of the voxel having a density equal to or higher than the reference value and the center of the adjacent voxel having a density lower than the reference value.
[0104] When the intersection information is set, ideally, vertices are set such that a polygon surface formed by a plurality of vertices includes the position of the intersection coordinates and is perpendicular to the normal direction. In the example shown in FIG. 16, for the voxel 213, two pieces of intersection information represented as the vector 215 and the vector 216 are set. At this time, the vertex 219 is set at a position that is on the surface 217 defined by the first intersection information represented as the vector 215 and on the surface 218 defined by the second intersection information represented as the vector 216. Note that the “surface defined by the intersection information” refers to a surface that passes through the position of the intersection coordinates indicated by the intersection information and is perpendicular to the normal direction indicated by the intersection information. Note that since the example shown in FIG. 16 is two-dimensional, what is defined by the intersection information is represented as a line, but since the voxel space is three-dimensional, a surface is actually defined by the intersection information.
[0105] FIG. 17 is a diagram showing an example of a method for determining a vertex when intersection information different from that shown in FIG. 16 is set. In the example shown in FIG. 17, for voxel 213, two pieces of intersection information represented by two vectors 215' and 216' different from vectors 215 and 216 shown in FIG. 16 are set. At this time, vertex 219' is set at a position that is on plane 217' defined by the first piece of intersection information represented by vector 215' and also on plane 218' defined by the second piece of intersection information represented by vector 216'. Vertex 219' shown in FIG. 17 is set at a position farther from the center of voxel 213 than vertex 219 shown in FIG. 16, and the angle of vertex 219' is smaller than the angle of vertex 219. In the example shown in FIG. 17, the mesh of the voxel object has a sharper shape at the position of vertex 219' than in the example shown in FIG. 16.
[0106] As shown in FIGS. 16 and 17, by setting intersection information, it is possible to generate a mesh of a voxel object such that the voxels have different shapes even though the densities set for the voxels are the same. Here, in a method of determining vertices based on density without using intersection information, it may be difficult to define the detailed shape of the mesh as intended by the developer. In the above method, for example, it is difficult to make the corners of the mesh of the voxel object have a sharp shape or to make the corners of the mesh of a rectangular parallelepiped voxel object be corners where three planes are in perpendicular contact with each other. In contrast, by setting intersection information and using the intersection information to determine vertices, it becomes easier to define the shape of the mesh in more detail and to make it easier to obtain the intended shape.
[0107] In addition, when a plurality of intersection information is set, it may be impossible to set each vertex so as to satisfy all the conditions based on each intersection information. That is, it may be impossible to set each vertex such that the surface of the polygon formed by a plurality of vertices includes the position of each intersection coordinate indicated by each intersection information and is perpendicular to each normal direction indicated by each intersection information. Therefore, in the present embodiment, the game system 1 sets the vertices so that the error between the surface defined by the intersection information and the vertices is minimized. As a result, the surface of the mesh generated based on the set vertices is arranged to face the normal direction at the position of the intersection coordinate, or the arrangement with the minimum error from the said arrangement. Note that the specific method for determining the vertices is arbitrary. For example, the game system 1 sets the vertices so that the sum of the squares of the distances between the surface defined by the intersection information and the vertices is minimized. Note that the vertices may be set within a predetermined range based on the position of the voxel where the intersection information is set. At this time, the vertices may be set at the position where the error is minimized within the said predetermined range. Note that the said predetermined range is, for example, the range of the vertex division area (in the example shown in FIG. 16, the range of the square indicated by the broken line) including the center of the voxel where the intersection information is set.
[0108] When vertices are determined using intersection information, the game system 1 may determine vertices for voxels for which intersection information is not set based on intersection coordinates and normal directions set based on the density set for the voxels. That is, the game system 1 may set intersection coordinates and normal directions similar to those indicated by the intersection information based on density, and determine the vertices using the set intersection coordinates and normal directions in a manner similar to the method of determining vertices based on intersection information set for voxels. Note that any method for setting intersection coordinates and normal directions based on density may be used. The intersection coordinates and normal directions may be calculated based on the densities of two voxels whose centers are located at both ends of the line on which the intersection coordinates are set. For example, the game system 1 may calculate the density value at each position on the line connecting the centers of the voxels by interpolating the densities of the two voxels, and determine the position where the density is the intermediate value (e.g., 127.5) in the range of possible values. Furthermore, for example, the game system 1 may calculate the gradient of the density based on the densities set for the voxel and its surrounding voxels, and use the gradient as the normal direction. Note that in this embodiment, both the intersection coordinates and the normal direction are calculated based on the density set for the voxel, but in other embodiments, the game system 1 may calculate only the intersection coordinates based on the density, and determine the vertex using the calculated intersection coordinates and intersection information.
[0109] The game system 1 stores intersection information data indicating the intersection information to be set. FIG. 18 is a diagram showing an example of the intersection information data. In this embodiment, the intersection information data is data indicating the intersection information set for each voxel. The intersection information is associated with any of the voxels in the game space. For example, the intersection information may be associated with one voxel in the game space by associating the intersection information with information (e.g., coordinate information) indicating a position in a grid set in the game space at the same position and size as the grid of voxels. As described above, the intersection information may be set for some voxels, or there may be voxels for which no intersection information is set.
[0110] In this embodiment, intersection information set in three directions from a voxel is associated with the voxel (see FIG. 18). Specifically, when axes extending in three directions in which voxels are arranged in the game space are defined as the x, y, and z axes, first intersection information set on a line extending in the positive x-axis direction, second intersection information set on a line extending in the positive y-axis direction, and third intersection information set on a line extending in the positive z-axis direction are associated with the voxel, starting from the center of the voxel. Note that it is not necessary for three pieces of intersection information, i.e., the first to third intersection information, to be associated with one voxel, and one or two pieces of intersection information may be associated therewith. In addition, one piece of intersection information includes intersection coordinates and normal direction information. Note that the intersection information may be information in any format. For example, the intersection information may include information indicating three-dimensional coordinates representing intersection coordinates and information indicating three vectors when the normal direction is represented as each component related to three predetermined axis directions. Note that the information indicating the normal direction may be composed of information on two vectors related to two of the three axis directions and information on a value indicating the direction (i.e., positive or negative direction) related to the remaining one axis direction in order to further reduce the data amount.
[0111] As described above, in this embodiment, the game system 1 stores intersection information data separately from voxel data. Note that in other embodiments, the intersection information data may be stored in a form included in the voxel data. For example, the voxel data may be in a format including intersection information data indicating three pieces of intersection information associated with the voxel.
[0112] The game system 1 determines a material for each vertex set as described above. The material of a vertex is determined based on the materials of the voxels around the vertex. The voxels around a vertex are, for example, the voxels used for determining whether to generate the vertex (that is, the voxels overlapping with the above-mentioned "region spanning voxels"). The method for determining the material of a vertex is arbitrary. For example, in this embodiment, the game system 1 selects up to a predetermined number (for example, up to two types) of the materials set for the surrounding voxels and determines them as the material of the vertex.
[0113] [2-4. Simplification of Vertices] 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 some of the vertices calculated as described above and replacing them with one vertex. Although the details will be described later, the coordinates (that is, 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.
[0114] In this embodiment, the game system 1 performs simplification by expressing each vertex using an SVO (Sparse Voxel Octree). FIG. 19 is a diagram showing an example of vertex simplification. In FIG. 19, one square indicated by a solid line shown in FIG. 19(a) represents one vertex division region. Here, the vertex division region is a square region having the center position of the voxel as a vertex (in the actual three-dimensional space, the vertex division region is a cube or a rectangular parallelepiped), and is a region having the broken lines in FIGS. 15 to 17 as sides. Also, in FIG. 19, the vertex division region with the letter "v" shown inside indicates the vertex division region where a vertex is set.
[0115] In this embodiment, the game system 1 determines whether the vertices within a predetermined number (four in FIG. 19 and eight in the actual three-dimensional space) of vertex division regions adjacent to each other can be simplified. When it is determined that simplification is possible, the vertices within the predetermined number of vertex division regions are simplified.
[0116] FIG. 19(a) shows the state before simplification. In the example shown in FIG. 19, it is assumed that the vertex division regions within the range surrounded by the dotted line are determined to be simplifiable. At this time, the game system 1 simplifies the vertices within each of the predetermined number of vertex division regions determined to be simplifiable so that they are replaced by one vertex (see FIG. 19(b)). As a result, the vertices within the predetermined number of vertex division regions are simplified to one vertex.
[0117] In this embodiment, the game system 1 performs simplification in multiple stages. The number of stages is arbitrary, but in FIG. 19, only the first two stages are illustrated and described. FIG. 19(b) shows the state after the first-stage simplification, and FIG. 19(c) shows the state after the second-stage simplification. In the second-stage simplification, it is determined whether the vertices generated by the first-stage simplification can be simplified. In the example shown in FIG. 19, as a result of determining that the vertex division regions within the range surrounded by the dotted line in FIG. 19(b) are simplifiable, the vertices of the vertex division regions are simplified, resulting in the state shown in FIG. 19(c). Note that the determination conditions for whether the first-stage simplification is possible and the determination conditions for whether the second-stage simplification is possible may be the same or different.
[0118] Regarding the determination of whether simplification is possible, the specific method is arbitrary. In the present embodiment, as conditions for the above determination, conditions regarding the shape of the voxel object and conditions regarding the material are used. In the present embodiment, when both the conditions regarding the shape of the voxel object and the conditions regarding the material are satisfied, it is determined that simplification is possible, and when at least one of the conditions regarding the shape of the voxel object and the conditions regarding the material is not satisfied, it is determined that simplification is impossible.
[0119] The conditions regarding the shape are, for example, that the shape formed by each vertex before simplification and the shape formed by each vertex after simplification are not greatly changed. For example, whether the shape formed by each vertex is not greatly changed before and after simplification can also be determined by calculating an index indicating the error between the mesh before simplification and the mesh after simplification and determining whether 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 conditions regarding the shape are 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 only be represented by two or more vertices and cannot be represented by one vertex, it is also determined that the conditions regarding the shape are not satisfied. Note that as the conditions regarding the shape of the voxel object, the same conditions as those of the conventional method using SVO may be used.
[0120] Also, as a condition regarding the material, 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. 20 is a diagram showing an example of the condition regarding the material. FIG. 20(a) shows a case where the materials of vertices 221 to 224 are (grass), (grass), (grass and soil), and (grass and soil), respectively, and FIG. 20(b) 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 the material is that the total number of types of materials set for each of the above vertices to be simplified is equal to or less than a predetermined number. For example, the condition regarding the material is set to be 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 FIG. 20(a), 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 the material 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 FIG. 20(b), 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 the material 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.
[0121] Note that 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, in the determination of the condition regarding the material, they may be regarded as the same type and the determination may be made. For example, regarding the soil material, 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 a case, the game system 1 may regard the multiple types of soil materials as the same type and make a determination regarding the condition regarding the material.
[0122] Here, in the present embodiment, with respect to vertices, similar to voxels, up to two types of materials can be set. On the other hand, in the present embodiment, when the total number of types of materials set for each vertex to be simplified is three or more, no simplification is performed. That is, when the total number of types of materials exceeds the number of materials that can be set for one vertex, no simplification is performed. Therefore, even if the number of vertices is reduced by simplification, the information on the materials set for the vertices will not be lost due to simplification, and the material information can be maintained.
[0123] In the present embodiment, the material of the vertex after simplification is determined based on the material of each vertex before simplification. Specifically, the game system 1 sets one or two types of materials set for the vertex before simplification as the first material and the second material for the vertex after simplification. Thereby, the material information can be maintained. Note that the ratio of the materials after simplification is determined based on the ratio of the materials of each vertex before simplification.
[0124] [2-5. Generation of Mesh] In the present embodiment, based on each vertex simplified as described above, a mesh of the voxel object is generated. FIG. 21 is a diagram showing an example of a mesh generated based on each vertex. Note that the square shown in FIG. 21 indicates the above-described vertex division region, or the vertex division region in which a plurality of vertex division regions are combined into one by simplification. As shown in FIG. 21, the game system 1 generates a mesh composed of polygons having as sides straight lines connecting adjacent vertices in the vertex division region. Each polygon constituting the mesh is a triangle or a quadrilateral.
[0125] 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.
[0126] 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 processing efficiency can be improved. Note that in other embodiments, the game system 1 may not perform vertex simplification and may generate the display mesh and / or the determination mesh based on non-simplified vertices.
[0127] 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 to be less than 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 the 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, the 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 less than the number of vertices of the display mesh. By making the number of vertices of the determination mesh less 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.
[0128] 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 more than the number of vertices of the display mesh.
[0129] In addition, the game system 1 determines a material for each polygon of the mesh. The material of the polygon is determined based on the materials set for each vertex of the polygon. The specific method for determining the material of the polygon is arbitrary. In the present embodiment, for the polygons of the display mesh, the game system 1 selects up to two types of materials from among the materials set for each vertex of the polygon and determines the material of the polygon. For the polygons of the display mesh, up to two types of materials are set for each vertex of the polygon, and the polygon is drawn based on the materials set for each vertex. For the polygons of the determination mesh, the game system 1 selects one type of material from among the materials set for each vertex of the polygon and determines the material of the polygon.
[0130] As described above, in the present 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 a display mesh and a 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 of the game space where collision determination is performed, and may not be generated in the range where collision determination is not performed. As an example, the game system 1 may generate a determination mesh for voxel objects within a predetermined range centered on the player character, and not generate a determination mesh for voxel objects outside the predetermined range, but only generate a display mesh.
[0131] Also, for the display mesh, the game system 1 may store data related to the generated mesh in 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 memory, and the mesh may be sequentially generated as needed (for example, every time a collision determination needs to be made). According to this, the memory area used for generating the mesh can be saved.
[0132] 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, for example, when generating each mesh based on the voxel data in the initial state 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.
[0133] [2 - 6. Processing Using Mesh] Next, an example of processing using the mesh generated as described above for the voxel object will be described. In the following, it is assumed that terrain objects such as the ground and walls are voxel objects, and an example will be described in which the player character performs an action and as a result of collision determination, an effect within the game occurs.
[0134] FIG. 22 is a diagram showing an example of a game image representing the state of a player character moving on a terrain object. In the example shown in FIG. 22, the material for the polygons in a partial region 251 of the determination mesh for the terrain object that is the ground is set to "lava". Note that the material for the polygons other than the region 251 in the determination mesh of the terrain object is set to "rock". In the example shown in FIG. 22, the game system 1 performs a collision determination between the terrain object and the player character 201 using the determination mesh. That is, a collision determination is made as to whether or not the determination mesh of the terrain object and the determination area set for the player character (for example, an area of a predetermined shape set based on the position of the player character) come into contact. And when a collision between the polygon whose material is lava and the player character 201 is determined, as a process for generating an action in the game, a process for reducing the physical strength of the player character 201 is performed. Also, in the above case, a process for causing the player character 201 to perform a predetermined reaction is performed.
[0135] Note that in the present embodiment, as the property information included in the above-described material data, for the lava material, a property of reducing the physical strength of the contacted player character (for example, the property that the temperature is equal to or higher than a predetermined value) is set. The game system 1 generates an in-game action (in the above example, a reduction in the physical strength of the player character) based on the property information corresponding to the material set for the polygons in the determination mesh for which a collision has been determined by the collision determination.
[0136] In addition, when a collision between a polygon whose material is rock and the player character 201 is detected, the process of reducing the physical strength of the player character is not executed. Also, based on the collision, the player character 201 is controlled so that it cannot enter the inside of the polygon. Therefore, the player character can stand on or walk on the above polygon. In this way, in the present embodiment, by setting the material for each polygon, the game system 1 can execute different processes according to which part of the voxel object another object has contacted. Also, the content of the process to be executed can be made according to the type of material. In the present embodiment, since the player character can change the terrain object (for example, deform it or change the material), for example, a part of the terrain object that is lava can be erased or the lava can be changed to another material. Therefore, the player can avoid a decrease in the physical strength of the player character due to contact with lava by changing the terrain object.
[0137] Note that the content of the process executed when a collision between a voxel object and another object is detected is arbitrary. For example, when the other object is a moving object such as a player character or an enemy character, the process may be a process of outputting the footsteps of the object or displaying an effect (for example, an effect representing dust or water splashes) at the contact location. At this time, the game system 1 can vary the footsteps or the effects according to the type of material set for the polygon of the part of the voxel object that has made contact.
[0138] FIG. 23 is a diagram showing an example of a game image representing a state where a player character extracts a fragment object from a terrain object. As shown in FIG. 23, in the present embodiment, the player can cause the player character 201 to perform an action (referred to as a "pull-out action") of grasping the terrain object 202 by a predetermined operation input and pulling out a part thereof as a fragment object 252 and holding it. The game system 1 erases a part of the terrain object 202 and generates a fragment object 252 as an in-game effect caused by the pull-out action.
[0139] When the pull-out action is performed, the game system 1 specifically executes the following processing. That is, when an operation input for causing the player character to perform the pull-out action is performed by the player, the game system 1 causes the player character to perform an action of digging forward and grasping, and performs a collision determination. Then, when a collision between the player character performing the pull-out action and the terrain object is determined, an update range 253 is generated based on the position and orientation of the player character. For example, the update range 253 is generated in a predetermined direction (e.g., forward) with respect to the player character. Note that the shape and size of the update range may be determined in advance according to the type of action of the player character. Further, the game system 1 decreases the density of the voxels corresponding to the update range 253. Then, by updating the mesh according to the decrease in the density of the voxels, the terrain object 202 is deformed so that the portion within the update range 253 is erased (see (b) of FIG. 23). In the present embodiment, the density of each voxel corresponding to the update range 253 is decreased, but the voxels to be decreased in density may be at least a part of the voxels corresponding to the update range 253.
[0140] Also, in the above, it was assumed that the voxel object corresponding to the update range 253 is unconditionally deformed by the extraction action. However, in other embodiments, the deformation of the voxel object corresponding to the update range 253 may be performed on the condition of the amount of damage set for the voxel. For example, instead of unconditionally deforming the voxel object corresponding to the update range 253, the game system 1 may increase the amount of damage set for the voxels corresponding to the update range 253, and decrease the density in the voxels when the amount of damage exceeds a predetermined value. At this time, the increased amount of damage may be determined according to the action performed on the voxel object.
[0141] Further, the game system 1 generates a fragment object 252 representing the portion of the terrain object 202 that has been erased. That is, the game system 1 generates the fragment object 252 while having the player character hold it based on the above extraction action. The fragment object 252 may be generated to have a shape corresponding to the portion of the terrain object 202 that has been erased, or may have a predetermined shape. The fragment object 252 may be a voxel object or may not be a voxel object. When the fragment object is a voxel object, a voxel space different from the voxel space of the voxels corresponding to the terrain object 202 or the like is defined for the fragment object 252.
[0142] The game system 1 determines the material of the above-mentioned fragment object 252. The material of the fragment object 252 is determined based on the material set for the polygon within the determination mesh that contacts the update range 253 among the determination meshes of the terrain object 202. The material of the fragment object 252 is determined to be the same as any one of the materials set for the polygons within the determination mesh that contacts the update range 253. According to this, the material of the fragment object 252 can be made the same as the material of the erased part of the terrain object. As is clear from the above description, the fragment object 252 is not actually a part of the terrain object. However, by being generated along with the erasure of a part of the terrain object and having the material of the erased part of the terrain object inherited by the fragment object 252, an impression can be given to the player as if the player character 201 has taken out a part of the terrain object 202 by a pulling-out action.
[0143] In this embodiment, a priority is set for each type of material to be prepared, and the game system 1 determines the material with the highest priority among the materials set for each polygon of the determination mesh within the update range 253 as the material of the fragment object 252. Here, for example, consider a case where the determination mesh within the update range 253 includes a polygon with a material of rock and a polygon with a material of lava. In such a case, if the material of the fragment object 252 is set to lava, there is a possibility that the player character's physical strength will decrease when the player character grips the fragment object 252 by the extraction action (it is assumed that, as also described in FIG. 22, the material of lava is set to have the property of decreasing the player character's physical strength when contacted). Also, as described above, when the determination mesh within the update range 253 includes polygons with different types of materials set, it is considered difficult for the player to predict what the material of the fragment object 252 will be, and it is also considered that the above-mentioned inconvenience may occur against the player's intention. On the other hand, in this embodiment, by setting a priority for the material set as the material of the fragment object, the possibility of the above-mentioned inconvenience occurring can be reduced.
[0144] FIG. 24 is a diagram showing an example of a game image representing a state in which fragment objects are generated when a player character destroys a terrain object. As shown in FIG. 24, in the present embodiment, the player can cause the player character 201 to perform a punch action by a predetermined operation input. Further, as an action in the game caused by the punch action, the game system 1 erases a part of the terrain object 202 and generates a fragment object 255, as in the case of the above punch action. Specifically, the terrain object 202 is deformed as if a part thereof is erased. Note that, when the punch action is performed, unlike the above-described extraction action, after the punch action, the fragment object 255 is not held by the player character 201 but is arranged around the position where the punch action is performed (see (b) of FIG. 24). Note that the fragments corresponding to the destruction of the terrain object 202 may not be generated in some cases.
[0145] When a punch action is performed, the game system 1 specifically executes the following processes. That is, when a player performs an operation input to make the player character perform a punch action, the game system 1 makes the player character perform an action of punching forward and performs a collision determination. Then, when a collision between the player character performing the punch action and the terrain object is determined, an update range 254 is generated based on the position and orientation of the player character. For example, the update range 254 is generated in a predetermined direction (e.g., forward) with respect to the player character. Note that the position, shape, and size of the update range 254 due to the punch action may be the same as or different from those of the update range 253 due to the extraction action. Then, the game system 1 decreases the density of the voxels corresponding to the update range 254. As a result, similar to the extraction action, also due to the punch action, the terrain object 202 is deformed such that the portion within the update range 254 is erased (see (b) in FIG. 24). Note that, similar to the extraction action, for the punch action as well, instead of unconditionally deforming the voxel object corresponding to the update range 254, the game system 1 may increase the amount of damage set for the voxels within the update range 254 according to the punch action, and decrease the density of the voxels when the amount of damage exceeds a predetermined value. Also, the voxels whose density is to be decreased by the punch action may be at least some of the voxels corresponding to the update range 254.
[0146] In addition, the game system 1 generates a fragment object 255 corresponding to the portion of the terrain object 202 that has been erased. That is, the game system 1 generates the fragment object 255 in a state where the player character does not have it (for example, in a state where it is arranged around the position where the punch action was performed) based on the above punch action. The fragment object 255 may be generated to have a shape corresponding to the portion of the terrain object 202 that has been erased, or may have a predetermined shape. The fragment object 255 may be a voxel object or may not be a voxel object.
[0147] The game system 1 determines the material of the above fragment object 255. The material of the fragment object 255 is determined based on the material set for the polygon in the determination mesh that contacts the update range 254 among the determination meshes of the terrain object 202. The material of the fragment object 255 is determined to be the same as any one of the materials set for the polygons in the determination mesh that contacts the update range 254. According to this, the material of the fragment object 255 can be made the same as the material of the erased portion of the terrain object. Also, when a part of the terrain object is erased and the fragment object 255 is generated, and the material of the erased portion of the terrain object is inherited by the fragment object 255, it is possible to give the player an impression that a part of the terrain object destroyed by the punch action of the player character has occurred as a fragment object.
[0148] In the present embodiment, the material of the fragment object 255 is determined to be the material with the largest degree of decrease in density in the voxel among the materials set for the polygons in the determination mesh that contacts the update range 254. According to this, it is possible to generate a fragment object that more accurately reflects the material composition of the portion of the terrain object erased by the punch action.
[0149] The method for determining the material of the fragment object generated by the above-described extraction action or punch action is arbitrary. For example, the method for determining the material of the fragment object may be the same for the extraction action and the punch action. Also, for example, among the materials set for each polygon of the determination mesh within the update range, the material set for the most polygons may be determined as the material of the fragment object. Also, for example, among each polygon of the determination mesh within the update range, the material set for a polygon that satisfies a predetermined condition (for example, a polygon at a position in contact with the hand of the player character that performs the extraction action or punch action) may be determined as the material of the fragment object. Also, in other embodiments, a plurality of types of materials may be set for the fragment object.
[0150] In the present embodiment, the player can cause the player character to perform an action of throwing the fragment object 252 or 255 generated as described above (hereinafter referred to as the "throwing action"). Note that the player can cause the player character to perform an action of holding a fragment object that is generated in response to a punch action and placed on the ground by a predetermined operation input. By the above-described extraction action or the action of holding the fragment object after the above-described punch action, the player character is in a state of holding the fragment object. In this state, the game system 1 causes the player character to perform an action of releasing the held fragment object in a predetermined direction as a throwing action according to an operation input by the player.
[0151] FIG. 25 is a diagram showing an example of a game image in a scene where a player character can perform a throwing action and determines the throwing direction in a state of assuming a throwing stance. As shown in FIG. 25, in a state where the player character 201 holds the fragment object 261, the player character 201 can perform a throwing action. In this state, as shown in FIG. 25, the game system 1 displays the aiming image 262 and the object information image 263 overlaid on the image showing the game space as a process for generating an action within the game.
[0152] The aiming image 262 indicates the direction in which the fragment object is released by the throwing action (also referred to as the aiming direction). That is, in response to the player performing an operation input for performing a throwing action, the game system 1 moves the fragment object 261 from the position of the player character 201 toward the position within the game space indicated by the aiming image 262. The aiming direction is controlled based on the operation input by the player. For example, the game system 1 may change the aiming direction in response to an operation input for changing the orientation of the virtual camera. Specifically, the game system 1 controls the virtual camera in response to an operation input so as to rotate and move around the player character while maintaining the state where the player character is included in the field of view, and controls the aiming direction so as to be in the direction corresponding to the line-of-sight direction of the virtual camera. At this time, the aiming image 262 is displayed indicating the position where the straight line extending in the aiming direction from the position of the player character intersects the terrain object 264. Specifically, the game system 1 performs a collision determination between the aiming direction (that is, the above-mentioned straight line extending in the aiming direction) and the determination mesh of the terrain object 264, and when a collision is determined, the aiming image 262 is displayed. The aiming image 262 is arranged so as to indicate the position of the polygon that intersects the above-mentioned straight line extending in the aiming direction among the determination meshes.
[0153] When the player character performs a throwing action by means of the aiming image 262 described above, the player can be presented with the position where the fragment object contacts the voxel object. This can make it easier for the player to perform the operation of the throwing action. Note that the specific control method for the aiming direction and the aiming image 262 is arbitrary, and a conventional method may be used. For example, in other embodiments, in a first-person perspective game image where the aiming image 262 is displayed and the player character is not displayed, the aiming image 262 may be displayed.
[0154] In a state where the player character is in a posture of throwing a fragment object, in response to a predetermined operation input by the player, a throwing action of throwing the fragment object in the aiming direction is performed.
[0155] The object information image 263 shows information about the terrain object 264 at the position indicated by the aiming image 262. In the present embodiment, the object information image 263 shows the name of the material (rock in the example shown in FIG. 25) set for the polygon of the determination mesh at the position indicated by the aiming image 262. Thereby, the player can be presented with the material of the voxel object that the fragment object released by the throwing action contacts. Further, the object information image 263 shows information about the property of the material (here, hardness). Thereby, the player can be presented with the property of the voxel object that the fragment object released by the throwing action contacts. Note that the content shown by the object information image 263 is arbitrary. For example, in other embodiments, the object information image 263 may show any property related to the material set for the polygon at the position indicated by the aiming image 262, or may show the state of the polygon (for example, the amount of damage described above). In the present embodiment, since there is one type of material for the polygon of the determination mesh, the material corresponding to the aiming position is specified to one. Therefore, it is suitable for displaying information about the material.
[0156] In this embodiment, in response to the fragment object released by the throwing action being determined to have contacted the voxel object as a result of the collision determination, the game system 1 makes a change to the voxel object as an action within the game. FIG. 26 is a diagram showing an example of a game image after the terrain object 264 shown in FIG. 25 has been changed due to the fragment object 261 contacting it. In the example shown in FIG. 26, the terrain object 264 is deformed so as to have a shape as if the fragment object is attached to the contact position between the fragment object and the terrain object 264. Specifically, the game system 1 generates an update range so as to include the contact position, and deforms the terrain object 264 to have the above shape by increasing the density of the voxels in the update range. For example, the update range may be set to a shape corresponding to the shape of the fragment object, and the terrain object 264 may be deformed so that the inside of the update range is within the terrain object 264. As described above, in the example shown in FIG. 26, it becomes a shape in which the additional part 265 is added to the terrain object before deformation. Note that in the example shown in FIG. 26, the fragment object is erased in response to contacting the terrain object 264.
[0157]
[0158] Also, the material of the polygon in the additional part 265 is determined based on the material of the fragment object that has contacted the terrain object 264. Specifically, the game system 1 sets the material of the voxels within the update range to be the material of the fragment object. Then, based on the material of the voxels, the materials of the display mesh and the determination mesh are determined. According to this, since the appearance of the attached additional part 265 can be made the same as the appearance of the fragment object, (although in reality, the terrain object 264 is deformed as described above), it becomes easier for the player to get the impression that the fragment object is attached to the terrain object 264.In the example shown in FIG. 26, the change applied to the voxel object in response to the fragment object contacting the voxel object was a transformation that added an additional part to the voxel object, but the change applied to the voxel object is not limited to this. The above change may be one that changes the density of the voxels or one that changes the material. For example, if the fragment object has the property of exploding, the fragment object may explode in response to contacting the voxel object, and at this time, the voxel object may be deformed as if a part of the voxel object has been erased. Specifically, the game system 1 sets an update range to include the contact position and decreases the density of the voxels within the update range. Also, for example, when the material of the voxel object is lava and the material of the fragment object is ice, the material of the voxel object may be changed in response to the fragment object contacting it. Specifically, the game system 1 sets an update range that includes the contact position, and among the materials of the voxels within the update range, the material that is lava may be changed to obsidian or rock. According to this, a situation where a lava object is cooled by an ice object and becomes obsidian or rock can be expressed.
[0159] The content of the above change may be determined based on the material of the voxel object, based on the material of the fragment object, or based on a combination of the material of the voxel object and the material of the fragment object. According to this, various changes can be caused to the voxel object.
[0160] Further, the game system 1 may determine whether to perform the above-described modification based on the material of the voxel object, based on the material of the fragment object, or based on a combination of the material of the voxel object and the material of the fragment object. For example, when a fragment object with a material of rock contacts a voxel object with a material of rock, the game system 1 performs the modification as shown in FIG. 26. On the other hand, when a fragment object with a material of rock contacts a voxel object with a material of iron, the game system 1 may not perform the modification as shown in FIG. 26.
[0161] In the present embodiment, as described above, one type of material is set for the polygon of the determination mesh and the fragment object. Here, if multiple types of materials are set for at least either the polygon of the determination mesh or the fragment object, it becomes difficult to determine the content of the modification applied to the voxel object according to the types of materials of both when the determination mesh and the fragment object come into contact. In contrast, in the present embodiment, since the materials of the determination mesh and the fragment object determined to be in contact by collision determination are each one type, it becomes easy to determine the content of the modification applied to the voxel object.
[0162] [2-7. Processing related to intersection information according to deformation of voxel object] Next, with reference to FIGS. 27 to 37, the processing executed regarding the intersection information set in the voxels when the voxel object is deformed will be described.
[0163] [2-7-1. Example of deleting intersection information] FIG. 27 is a diagram showing an example of a game image when intersection information is set for a terrain object. In FIG. 27, a terrain object 271, which is a voxel object, has a shape that forms a cliff. In order to have such a shape, in the example shown in FIG. 27, intersection information is set for the voxels where the mesh of the terrain object 271 is generated. In FIG. 27, as an example of the vectors representing the intersection information set for the terrain object 271, two vectors 272 facing upward and two vectors 273 facing horizontally are shown. However, in reality, more intersection information may be set. Note that each of the vectors 272 and 273 is not actually displayed in the game image.
[0164] In the example shown in FIG. 27, intersection information represented as a vector 272 with the upward direction as the normal direction is set for the voxels at the positions where the meshes that form the upward-facing surface of the terrain object 271 are generated. Also, intersection information represented as a vector 273 with the predetermined direction parallel to the horizontal direction as the normal direction is set for the voxels at the positions where the meshes that form the surface facing the predetermined direction of the terrain object 271 are generated. Note that the voxels at the positions where the meshes that form the upward-facing surface are generated are the voxels whose density is set to be equal to or higher than the reference value and the density of the adjacent voxels above them is less than the reference value. Also, the voxels at the positions where the meshes that form the surface facing the predetermined direction are generated are the voxels whose density is set to be equal to or higher than the reference value and the density of the adjacent voxels on the side of the predetermined direction is less than the reference value. With the above intersection information, the mesh of the terrain object 271 is generated so that the upward-facing surface and the surface facing the predetermined direction side are in a shape where they are perpendicular to each other. Note that when intersection information is not set for the voxels, it is difficult to generate a mesh in a shape where two surfaces are perpendicular to each other at the edge of the cliff as described above. However, by setting the intersection information, the angle at the edge of the terrain object 271 can be made a right angle or an angle close to it.
[0165] FIG. 28 is a diagram showing an example of game images before and after deformation is applied to the terrain object 271 in the situation shown in FIG. 27. The situation shown in (a) in FIG. 28 is a situation where the player character 201 performs a punch action near the position where the intersection information of the terrain object 271 is set. The situation shown in (b) in FIG. 28 is a situation after a part of the terrain object 271 is deformed so as to disappear by the punch action of the player character 201. As shown in FIG. 28, when a punch action is performed on the terrain object 271, similar to the example shown in FIG. 24 described above, the density of the voxels of the terrain object 271 is decreased, and thus the terrain object 271 is deformed as if a part of it has been erased. Specifically, the game system 1 sets an update range based on the punch action and deforms the mesh of the terrain object 271 by decreasing the density of the voxels within the update range.
[0166] Furthermore, in this embodiment, when a voxel object is deformed, the game system 1 sets a deletion range in which intersection information is deleted. Note that, in this embodiment, the deletion range 283, like the update range 282, is expressed by an SDF. FIG. 29 is a diagram showing an example of an update range and a deletion range set for a terrain object. As shown in FIG. 29, the update range 282 is set to include, for example, a position 281 based on a punch action. In this embodiment, the deletion range 283, like the update range 282, is set to include the position 281 based on the punch action. A specific method for determining the deletion range 283 is arbitrary. For example, the deletion range 281 may be determined based on the position where the punch action was performed, or may be determined based on the update range 282 based on that position. In this embodiment, the deletion range 283 is set to include the update range 282. Specifically, the game system 1 determines the deletion range 283 by expanding the update range 282. This makes it easy to generate the deletion range 283 that includes the update range 282. Furthermore, in this embodiment, the center position of the deletion range 283 is set to the same position as the center position of the update range 282. However, the deletion range 283 may be set to any position that includes the update range 282. Note that in the example shown in FIG. 29, the deletion range 283 is larger than the update range 282, but in other examples, the deletion range 283 may be the same as the update range 282. Furthermore, in the example shown in FIG. 29, the update range 282 and the deletion range 283 are spherical, but may be any shape. In other embodiments, the update range 282 and the deletion range 283 do not have to be similar in shape.
[0167] The game system 1 deletes the intersection information set in the voxels within the deletion range set as described above (see FIGS. 28 and 29). When generating the mesh after the deformation of the terrain object 271, vertices are set based on the density of the voxels without relying on the intersection information, and the mesh is generated based on the vertices. Note that the method of generating the mesh based on the vertices is the same as the methods described in the above [2-4. Simplification of Vertices] and [2-5. Generation of Mesh]. Therefore, in the situation shown in FIG. 28(b), for the mesh of the part that deforms so that a part of the mesh of the terrain object 271 is erased, the shape of the mesh is defined without relying on the intersection information set before the deformation.
[0168] As described above, in the present embodiment, since the intersection information within the deletion range is deleted, when generating the mesh after the deformation according to the above action, calculations are performed without using the intersection information, so an increase in the processing load in the game system 1 can be suppressed. Also, the amount of memory used for generating the mesh can be suppressed. Further, in the example shown in FIG. 28, since the intersection information is not used, the mesh after the deformation of the terrain object 271 is less likely to have a sharp shape of the vertices in the mesh. Therefore, the shape of the terrain object 271 after the deformation can be made into a more natural shape as the shape after being destroyed by the punch action.
[0169] Note that the deletion of the above intersection information means deleting the intersection information in the data used for vertex setting (which can also be said to be mesh generation). It means that the game system 1 itself may store the data of the intersection information as data different from the data used for vertex setting. For example, when a predetermined condition is satisfied in the game, the voxel objects such as the terrain object arranged in the game space may be reset to the initial shape. In this case, the mesh of the initial shape may be generated using the stored intersection information data.
[0170] In the example shown in FIG. 28 as described above, the case where deformation is performed such that the volume of the internal region of the terrain object 271 decreases has been described. Note that, for example, as shown in FIG. 26, when deformation is performed such that the volume of the internal region of the terrain object 271 increases, the game system 1 may also set a deletion range and delete the intersection information set for the voxels within the deletion range.
[0171] [2-7-2. Example of retaining intersection information] Note that in the present embodiment, under certain conditions, intersection information may be retained when the voxel object is deformed. Hereinafter, an example in which intersection information is retained will be described.
[0172] In the present embodiment, a correspondence relationship is set between two voxel objects, and one voxel object deforms in accordance with the deformation of the other voxel object. For example, the game system 1 generates a mesh of each voxel object such that the two voxel objects have complementary shapes. At this time, the intersection information regarding the voxel object may be retained without being deleted in accordance with the deformation of the voxel object.
[0173] Hereinafter, with reference to FIGS. 30 to 35, the process of changing the shapes of two voxel objects between which a correspondence relationship is set will be described. Note that hereinafter, one of the two voxel objects between which a correspondence relationship is set will be described as the "first corresponding object", and the other will be described as the "second corresponding object". Also, the first corresponding object and the second corresponding object may be collectively referred to as the "corresponding object".
[0174] FIG. 30 is a diagram showing an example of a game image representing a game space in which the first corresponding objects are arranged. In the example shown in FIG. 30, three first corresponding objects 291 to 293 are arranged in the game space. It is assumed that second corresponding objects (objects 301 to 303 shown in FIG. 32) corresponding to each of the first corresponding objects 291 to 293 are set. Note that in the situation shown in FIG. 30, the second corresponding objects are not displayed because the density of each voxel is 0 and they do not exist.
[0175] In this embodiment, each corresponding object is a voxel object corresponding to a different voxel space. That is, a different voxel space is set for each corresponding object. Note that in other embodiments, the voxel spaces related to a plurality of corresponding objects may be common. In the example shown in FIG. 30, the voxel space of the corresponding object is the above-described sub-voxel space, which is a rectangular parallelepiped space. In the example shown in FIG. 30, the first corresponding objects 291 to 293 each have a shape in which the volume of the internal region is maximized (hereinafter referred to as the "maximum shape"), that is, a state in which the surface and the internal region of the first corresponding object occupy the entire voxel space. At this time, the density of each voxel of the first corresponding objects 291 to 293 becomes the upper limit value (specifically, 255).
[0176] In the example shown in FIG. 30, the player character 201 is performing a punch action on the first corresponding object 292. FIG. 31 is a diagram showing an example of a game image representing the situation after the punch action is performed from the situation shown in FIG. 30. When a punch action is performed on the first corresponding object 292, as in the example shown in FIG. 24 described above, the density of the voxels of the first corresponding object 292 is decreased, so that the first corresponding object 292 is deformed as if a part (or all) of it is erased (see FIG. 31).
[0177] In this embodiment, when the first corresponding object 292 is deformed as described above, the game system 1 also deforms the second corresponding object 302 corresponding to the first corresponding object 292. Specifically, when the density of the voxels of the first corresponding object 292 is decreased, the game system 1 increases the density of the voxels of the second corresponding object 302. As a result, as shown in FIG. 31, the second corresponding object 302 deforms so that the volume of its inner region increases. In the examples shown in FIGS. 30 and 31, the state changes from a state where the second corresponding object 302 does not exist to a state where the second corresponding object 302 exists. Although details will be described later, in this embodiment, the shape of the additional portion of the second corresponding object 302 is the same as the shape of the disappearing portion of the first corresponding object 292.
[0178] FIG. 32 is a diagram showing an example of a game image representing a situation in which a punch action is further performed on each of the first corresponding objects 291 to 293 from the situation shown in FIG. 31. In the example shown in FIG. 32, in response to the punch action by the player character 201, each of the first corresponding objects 291 to 293 is deformed so that a part thereof disappears. At this time, in response to the deformation of each of the first corresponding objects 291 to 293, the second corresponding objects 301 to 303 are deformed so as to have a shape such that the disappearing portions of the first corresponding objects 291 to 293 are added to the second corresponding objects 301 to 303. When the first corresponding object has become small and the entire first corresponding object is included within the update range based on the punch action, the entire first corresponding object disappears in response to the punch action by the player character 201. At this time, the second corresponding object is deformed to the maximum shape described above.
[0179] FIG. 33 is a diagram showing an example of a game image representing a situation where a punch action is performed on the second corresponding object 302 in the situation shown in FIG. 32. In the present embodiment, even when a punch action is performed on the second corresponding object 302, the game system 1 deforms the second corresponding object 302 so that a part of the second corresponding object 302 disappears, similar to the case of the first corresponding object. At this time, the first corresponding object 292 corresponding to the second corresponding object 302 is deformed. Specifically, the first corresponding object 292 is deformed into a shape such that the disappeared part of the second corresponding object 302 is added to the first corresponding object 292 (see FIG. 33). As described above, in the present embodiment, even when the second corresponding object is deformed, the corresponding corresponding object is deformed in the same manner as when the first corresponding object is deformed.
[0180] As described above, in the present embodiment, when one corresponding object is deformed, the other corresponding object corresponding thereto is also deformed. Thereby, for example, by making a certain corresponding object smaller, a corresponding object at another position can be made larger to create a foothold or serve as a barrier against an enemy, so that the strategic nature of the game can be improved. In the example shown in FIG. 30, the corresponding object is an object used as a foothold for the player character, but the corresponding object may be used for any purpose in the game.
[0181] In the present embodiment, as an example of an image indicating the positions where the corresponding objects 291 to 293 and 301 to 303 are arranged, frame images 294 to 296 and 304 to 306 are respectively displayed (see FIGS. 30 to 32). Therefore, even when there is no corresponding object, such as the second corresponding object in FIG. 30, the position where the corresponding object is to be arranged can be notified to the user by the frame image. Further, in the present embodiment, the frame image indicates the outer shape of the corresponding object when the corresponding object reaches its maximum shape. Therefore, in the present embodiment, in addition to the position of the corresponding object, the range in which the corresponding object can be arranged can also be notified to the user by the frame image. Note that in other embodiments, the form of the image indicating the position where the object is arranged is arbitrary. For example, the above image may be an image indicating the center position of the object. Also, in other embodiments, the above image may not be displayed.
[0182] Next, a process of updating the density to deform the corresponding object corresponding to the deformation of the corresponding object will be described. First, the game system 1 stores correspondence information indicating the correspondence relationship between the first corresponding object and the second corresponding object. For example, the game system 1 stores, as correspondence information, information associating the voxel data related to the first corresponding object and the voxel data related to the second corresponding object. Note that the format of the correspondence information is arbitrary. For example, in other embodiments, the voxel data may include information indicating the voxel object (or voxel data) corresponding to the voxel object as the correspondence information. When the corresponding object is deformed by an action of deforming the voxel object, the game system 1 refers to the above correspondence information to identify the corresponding object corresponding to the corresponding object.
[0183] FIG. 34 is a diagram showing an example of density values set for each voxel of the first corresponding object and the second corresponding object. In FIG. 34, for the purpose of making the drawing easy to view and the explanation easy to understand, the voxels arranged two-dimensionally in the two-dimensional voxel space are shown, but actually, the voxels are arranged three-dimensionally in the three-dimensional voxel space. In FIG. 34, one square represents one voxel, and the numerical value inside the square indicates the density set for the voxel. In the example shown in FIG. 34, the density of each voxel of the first corresponding object before deformation is set to the upper limit value (here, 255), and at this time, the density of each voxel of the second corresponding object is set to the lower limit value (here, 0). That is, the situation before deformation in FIG. 34 is a situation where the first corresponding object has the maximum shape and the second corresponding object does not exist, as shown in the situation of FIG. 30.
[0184] When an action for deforming the first corresponding object is performed by a player character or the like, an update range 311 is set based on the action, and the density of the voxels within the update range 311 is updated so as to decrease. In the example shown in FIG. 34, the four lower-right voxels of each voxel of the first corresponding object are within the update range 311, and the densities of these four voxels are updated to 150, 100, 100, and 0, respectively. By generating a mesh based on the updated density, the first corresponding object is deformed.
[0185] When the first corresponding object is deformed as described above, the game system 1 sets an update range 312 for the second corresponding object. The update range 312 for the second corresponding object is set to be the same as the update range 311 for the first corresponding object. Specifically, the update range 312 is set so that the positional relationship between the voxel space for the second corresponding object and the update range 312 is the same as the positional relationship between the voxel space for the first corresponding object and the update range 311.
[0186] The game system 1 updates the density for the voxels within the update range 312. In the present embodiment, the density of the voxels within the update range 312 is increased in response to the decrease in the density of the voxels within the update range 311. Here, in the present embodiment, each voxel of the first corresponding object is associated with each voxel of the second corresponding object, respectively. Specifically, an identification number corresponding to the position of the voxel in the voxel space is assigned to the voxel, and the same number is assigned to the voxel of the first corresponding object and the voxel of the second corresponding object corresponding to the voxel. By referring to the above identification number, the game system 1 can identify the voxel of the second corresponding object corresponding to the voxel of the first corresponding object. Note that the specific method of associating the voxels of the first corresponding object and the voxels of the second corresponding object is arbitrary. For example, in other embodiments, the voxel data may include information indicating the voxel corresponding to the voxel among the voxels of other voxel objects corresponding to the voxel object.
[0187] In the present embodiment, the game system 1 increases the density of the voxels within the update range 312 of the second corresponding object by an amount corresponding to the decrease amount of the density of the voxel corresponding to the voxel (the voxel within the update range 311 of the first corresponding object). For example, in the example shown in FIG. 34, for the bottom - right voxel among the voxels within the update range 311, the density has decreased from 255 to 0, so for the voxel corresponding to the voxel, the density is increased from 0 to 255. Thus, in the present embodiment, the game system 1 increases the density of the voxels related to the second corresponding object by the same increase amount as the decrease amount of the density of the voxels of the first corresponding object. Thereby, the second corresponding object can be added by the amount corresponding to the decrease of the first corresponding object.
[0188] In this embodiment, the density of the voxels of the second corresponding object is calculated such that the sum of the density and the density of the voxels of the first corresponding object corresponding to the voxels is the upper limit value of the density (here, 255). For example, in the example shown in FIG. 34, the densities of the voxels within the update range 311 after deformation are 155, 100, 100, and 0, and the densities of the voxels within the update range 312 corresponding to these voxels are 100, 155, 155, and 255. According to this, the shape of the first corresponding object and the shape of the second corresponding object can be made complementary to each other. For example, in the examples shown in FIGS. 30 to 33, the shapes of the first corresponding object and the second corresponding object are set such that when the first corresponding object and the second corresponding object are combined, they form a single rectangular parallelepiped. Thereby, the correspondence between the first corresponding object and the second corresponding object can be made easy for the player to understand. For example, even when a plurality of first corresponding objects are arranged as shown in FIG. 30, it becomes easy for the player to understand which second corresponding object corresponds to a certain first corresponding object. In other embodiments, the sum of the density of the voxels of the first corresponding object and the density of the voxels of the second corresponding object corresponding to the voxels does not have to be the upper limit value of the density.
[0189] Note that in this embodiment, the first corresponding object and the second corresponding object have complementary shapes to each other, but this does not mean that the shape obtained by combining the first corresponding object and the second corresponding object must be a strictly constant shape. For example, when a mesh of a voxel object is generated based on the density set for the voxels as in this embodiment, the surface of the mesh of the first corresponding object and the surface of the mesh of the second corresponding object may not exactly match (although they generally match). Even when the surface of the mesh of the first corresponding object and the surface of the mesh of the second corresponding object do not exactly match, it can be said that the first corresponding object and the second corresponding object have complementary shapes to each other.
[0190] Note that the process for deforming the first corresponding object according to the deformation of the second corresponding object is the same as the process for deforming the second corresponding object according to the deformation of the first corresponding object. Specifically, the game system 1 sets an update range corresponding to the update range set based on the action for deforming the second corresponding object in the voxel space of the first corresponding object, and increases the density of the voxels within the update range by the amount of decrease in the density of the voxels corresponding to the voxels (the voxels of the second corresponding object). Thereby, in the present embodiment, for two voxel objects for which a correspondence relationship is set, the process of allowing the deformation of one voxel object to affect the other voxel object can be performed bidirectionally.
[0191] Note that in the present embodiment, the deformation that increases the density of the voxels of the corresponding object may be performed by an action by the player character. When the density of the voxels of the corresponding object is increased, the game system 1 decreases the density of the voxels of the corresponding object corresponding to the corresponding object. The method for calculating the density in this case is the same as the method shown in FIG. 34, and is a method in which the sum of the density of the voxels of the first corresponding object and the density of the voxels of the second corresponding object corresponding thereto is calculated so as to be the upper limit value of the density. Thereby, even when the deformation that increases the density of the voxels of the corresponding object is performed by an action, the two corresponding objects can be made into complementary shapes with each other.
[0192] Note that there may be cases where the update range based on the action of deforming the corresponding object spans multiple corresponding objects. In this case, in the present embodiment, the game system 1 deforms multiple corresponding objects, and in response to the deformation, deforms each corresponding object corresponding to the multiple corresponding objects. For example, when the update range based on the above action spans multiple first corresponding objects, the multiple first corresponding objects are deformed, and in response to the deformation, multiple second corresponding objects are deformed. Also, for example, when the update range based on the above action spans a first corresponding object and a second corresponding object, these corresponding objects are deformed, and in response to the deformation, the second corresponding object and the first corresponding object respectively corresponding to these corresponding objects are deformed respectively. In the above cases, the game system 1 executes the process of updating the density of the voxels for each corresponding object by the method described above.
[0193] In the present embodiment, it is assumed that the number and size of the voxels in the voxel space are the same for the first corresponding object and the second corresponding object. Therefore, each voxel of the first corresponding object and each voxel of the second corresponding object correspond one-to-one. Note that in other embodiments, the number and size of the voxels of the first corresponding object and the number and size of the voxels of the second corresponding object may be different.
[0194] Even when the number of voxels is the same and the size is different for the first corresponding object and the second corresponding object, in the same manner as in the present embodiment, by updating the density of the voxels of the second corresponding object in response to the deformation of the first corresponding object, the second corresponding object can be deformed in response to the deformation of the first corresponding object. Note that in this case, the size of the first corresponding object and the size of the second corresponding object when they reach the maximum shape are different sizes.
[0195] Also, when the number of voxels in the first corresponding object and the second corresponding object is different, the correspondence between each voxel of the first corresponding object and each voxel of the second corresponding object may be set as follows. For example, when the number of voxels in the first corresponding object is less than the number of voxels in the second corresponding object, each voxel of the first corresponding object is associated with some of the voxels of the second corresponding object, and some of the voxels of the second corresponding object may not be associated with the voxels of the first corresponding object. In the above case, when deforming the first corresponding object in response to the deformation of the second corresponding object, the game system 1 updates, for example, the density of the voxels of the first corresponding object based on the density of the voxels of the second corresponding object corresponding to the voxels. Also, in the above case, when deforming the second corresponding object in response to the deformation of the first corresponding object, the game system 1, for example, for the voxels of the second corresponding object that are associated with the voxels of the first corresponding object, updates the density based on the density of the corresponding voxels of the first corresponding object, and for the voxels of the second corresponding object that are not associated with the voxels of the first corresponding object, updates the density by interpolation using the density of the voxels of the second corresponding object that are associated with the voxels of the first corresponding object. As described above, even when the number of voxels in the first corresponding object and the second corresponding object is different, one corresponding object can be deformed in response to the deformation of the other corresponding object.
[0196] Also, in another embodiment, when the number of voxels of the first corresponding object is less than the number of voxels of the second corresponding object, each voxel of the second corresponding object may be associated with any one of the voxels of the first corresponding object. At this time, a plurality of voxels of the second corresponding object will be associated with one voxel of the first corresponding object. At this time, when the density of the plurality of voxels of the second corresponding object is changed, the game system 1 may update the density of one voxel of the first corresponding object corresponding to the plurality of voxels based on the density of each of the plurality of voxels. For example, the density of one voxel of the first corresponding object corresponding to the plurality of voxels may be updated so as to increase by only the average value of the decrease amounts of the densities of the plurality of voxels.
[0197] Also, in the examples shown in FIGS. 30 to 33, the voxel spaces of the first corresponding object and the second corresponding object are both rectangular parallelepipeds, and each voxel space is arranged in the same direction in the game space, but each voxel space does not have to be arranged in the same direction. For example, one voxel space may be arranged in a vertically long direction, and the other voxel space may be arranged in a horizontally long direction. Also, for example, one voxel space and the other voxel space may be arranged in an inverted manner. For example, they may be arranged such that the relationship between one voxel and the corresponding voxel is point-symmetrical or line-symmetrical. At this time, the update range set in the other voxel space corresponding to the update range set in one voxel space is set so that the positional relationship between the other voxel space and the update range is the same as the positional relationship obtained by inverting the positional relationship between the one voxel space and the update range.
[0198] The intersection information described above is set for some of the voxels of the first corresponding object and the second corresponding object. FIG. 35 is a diagram showing an example of the intersection information set for the corresponding object. In FIG. 35, the density of each voxel of the corresponding object 320 reaches the upper limit value and has the maximum shape. In the example shown in FIG. 35, the intersection information is set for the voxels at the positions where the mesh of the corresponding object 320 with the maximum shape is generated. Specifically, for the voxels at the positions corresponding to the corners of the corresponding object 320 when it has the maximum shape, each intersection information represented as three vectors 321 perpendicular to the three planes forming the corner is set. For the voxels at the positions corresponding to the sides of the corresponding object 320 when it has the maximum shape, each intersection information represented as two vectors 322 perpendicular to the two planes forming the side is set. For the voxels at the positions corresponding to the faces of the corresponding object 320 when it has the maximum shape, the intersection information represented as a vector 323 perpendicular to the face is set. Note that each of the vectors 321 to 323 is not actually displayed as a game image. By setting the intersection information as described above, the mesh of the corresponding object 320 can be made into a more accurate rectangular parallelepiped as shown in FIG. 35. Note that in FIG. 35, only a part of the vectors representing the intersection information set for the corresponding object 320 is shown, and actually, more intersection information is set. For example, in FIG. 35, only one vector is shown for one side or face, but actually, a plurality of intersection information may be set for one side or face.
[0199] In this embodiment, the intersection information is maintained when the corresponding object for which the intersection information is set is deformed by an action such as the punch action described above, or when the corresponding object is deformed in accordance with the deformation of the corresponding object. In this embodiment, the intersection information is used to set a vertex when the intersection information is set between a voxel whose density is equal to or greater than a reference value and a voxel whose density is less than the reference value (for example, as shown in FIGS. 16 and 17 ). However, the intersection information is not used to set a vertex when the intersection information is set between voxels whose densities are both equal to or greater than the reference value, or between voxels whose densities are both less than the reference value. Therefore, when the density of the position where the intersection information is set and the surrounding voxels is updated to 0, the vertex is set without using the intersection information. Therefore, a mesh vertex is not set at a voxel even if the density of the voxel and its surrounding voxels is 0.
[0200] Furthermore, when the density of the voxels at the position where the intersection information is set and its surrounding voxels is updated from 0 to the upper limit, vertices are set based on the intersection information that was saved, and a mesh is generated. Therefore, in this embodiment, even if the corresponding object is once deformed to erase a portion of it, and then further deformed to return to its maximum shape, it will be restored to a more accurate rectangular parallelepiped shape.
[0201] In other embodiments, when intersection information is set for voxels whose density has decreased (more specifically, whose density has decreased to a value less than the reference value) during the deformation of the corresponding object in the game system 1, the intersection information may be deleted. In this case, the deletion range for deleting the intersection information may be, for example, the same range as the update range for updating the density of the voxels. In the above case, for the voxels of the corresponding object corresponding to the corresponding object for which the intersection information has been deleted, and which correspond to the voxels for which the intersection information has been deleted, the game system 1 may set the same intersection information as the deleted intersection information. According to this, for a corresponding object with a decreased voxel density, by deleting the intersection information that does not affect the vertex setting, an increase in the processing load can be suppressed. Also, for a corresponding object with an increased voxel density, since vertices are set based on the same intersection information as the intersection information deleted in the corresponding corresponding object, a mesh can be generated so as to more accurately reproduce the shape of the corresponding corresponding object.
[0202] Also, the above "same intersection information as the deleted intersection information" means that the positional relationship between the voxel space and the intersection coordinates and normal direction indicated by the intersection information is the same in the corresponding object for which the intersection information has been deleted and the corresponding object corresponding thereto. When one voxel space and the other voxel space are arranged in an inverted manner, the above positional relationship is determined taking into account the inversion. Therefore, when one voxel space and the other voxel space are arranged in an inverted manner, the above "same intersection information as the deleted intersection information" is the intersection information indicating the intersection coordinates and normal direction obtained by inverting the intersection coordinates and normal direction indicated by the deleted intersection information in the same manner as the voxel space.
[0203] In this embodiment, when the deformation of the second corresponding object is performed in response to the deformation of a part of the first corresponding object such that a part of the first corresponding object is erased, as shown in FIG. 31, the game system 1 generates an effect image 298. The effect image 298 is displayed so as to move from the deformed first corresponding object 292 to the second corresponding object 302. Further, when the deformation of the first corresponding object is performed in response to the deformation of a part of the second corresponding object such that a part of the second corresponding object is erased, as shown in FIG. 33, the game system 1 generates an effect image 308. The effect image 308 is displayed so as to move from the deformed second corresponding object 302 to the first corresponding object 292. By the above-described effect images, the player can be notified of the corresponding object corresponding to the deformed corresponding object.
[0204] In this embodiment, the effect images 298 and 308 move from a start position within a first range that at least includes voxels with decreased density to a target position within a second range that at least includes voxels with increased density. According to this, the player can be notified of the part that appears to be erased among the corresponding objects and the part that appears to be added among the corresponding objects corresponding to the corresponding object. Note that the first range is, for example, a range composed of voxels with decreased density, and the start position within the first range may be, for example, the center position of the range. Further, the second range is, for example, a range composed of voxels with increased density, and the target position within the second range may be, for example, the center position of the range.
[0205] In FIGS. 31 and 33, game images are shown in which a deformation in which a part of the corresponding object is erased, the display of the effect image 298 or 308, and a deformation in which a part of the corresponding object corresponding to the corresponding object is added are performed simultaneously. However, in the present embodiment, actually, first, in response to a deformation in which a part of the corresponding object is erased, an effect image is displayed at a position within the first range of the corresponding object, and then, after the effect image moves to a position within the second range of the corresponding corresponding object, a deformation in which a part of the corresponding object is added is performed. Thereby, two corresponding objects having a correspondence relationship can be made easier to understand. In addition, an effect can be performed such that a part that has decreased in one corresponding object moves toward the other corresponding object.
[0206] Note that, even when a deformation in which a part of the corresponding object corresponding to the corresponding object is erased is performed in response to a deformation in which a part of the corresponding object is added, an effect image may be displayed. For example, when a deformation in which a part of the second corresponding object is erased is performed in response to a deformation in which a part of the first corresponding object is added, the effect image may be displayed so as to move from the first corresponding object to the second corresponding object, or may be displayed so as to move from the second corresponding object to the first corresponding object.
[0207] For the corresponding object, the material may be determined by any method. For example, different materials may be set for the voxels of the first corresponding object and the voxels of the second corresponding object so as to have different appearances for the first corresponding object and the second corresponding object. Also, the same material may be set for the voxels of the first corresponding object and the voxels of the second corresponding object. Note that a material may not be set for each corresponding object.
[0208] As described above, in this embodiment, when updating the density of voxels in response to a first action on a first voxel object (e.g., the terrain object 271 shown in FIG. 28), intersection information is deleted, and when updating the density of voxels in response to a second action on a second voxel object (e.g., the first corresponding object 292 shown in FIG. 30), intersection information is not deleted. According to this, it is possible to suppress an increase in the processing load due to the mesh generation process using intersection information, and for a predetermined voxel object, by retaining the intersection information, when the density of the voxel object is restored, the shape of the mesh can be more accurately restored to the original shape.
[0209] Note that the above "first action" and "second action" may be two actions with different operation contents, or may be two actions with different voxel objects as the targets of the action. In this embodiment, when a punch action is performed on a terrain object, intersection information is deleted, whereas when a punch action is performed on a corresponding object, intersection information is retained. On the other hand, in other embodiments, when a punch action is performed on a terrain object, intersection information is deleted, whereas when an action with an operation content different from the punch action (e.g., a collision action) is performed on the terrain object, intersection information may be retained.
[0210] [2-7-3. Example of adding intersection information] Also, in this embodiment, a process of newly setting intersection information may be executed in response to the deformation of a voxel object. Hereinafter, an example in which intersection information is newly set will be described.
[0211] FIG. 36 is a diagram showing an example of a game image in a situation where a part of a terrain object is deformed so as to rise upward. In the example shown in FIG. 36, a voxel object 331, which is a part of the terrain object, is deformed so as to rise upward from the ground such that a quadrangular prism extends upward. The conditions for deforming the voxel object 331 are arbitrary. In the example shown in FIG. 36, for example, the voxel object 331 is deformed in response to a player character 201 performing a predetermined action (for example, an action of hitting the object 332) on an object 332 disposed on the upper surface of the voxel object 331.
[0212] When deforming the voxel object 331 as shown in FIG. 36, the game system 1 increases the density of voxels in the upper range from the upper surface of the voxel object 331 before deformation to a value equal to or greater than a reference value. The specific method of deforming the voxel object 331 is arbitrary. For example, the game system 1 prepares an SDF representing the shape of a quadrangular prism, moves the shape of the quadrangular prism upward from the ground in the voxel space, and sets the range newly inside the quadrangular prism as the voxel update range. Note that the method of setting the update range is arbitrary, and the update range may be set based on the position where a predetermined action by the player character 201 is performed, or may be set at a predetermined position. By increasing the density of the voxels within the above update range, the voxel object 331 can be deformed so as to rise upward. Also, for example, by repeating the above deformation over a plurality of frames, the voxel object 331 can be deformed so as to gradually extend upward.
[0213] In the present embodiment, intersection information is newly set for the voxels whose density has increased in the process of performing the above-described deformation. For example, the intersection information is set based on the SDF used for setting the update range or based on the set update range. As an example, the position on the surface represented by the outer shape of the SDF or the update range is set as the intersection coordinates, and the intersection information with the direction perpendicular to the surface as the normal direction is set. In the example shown in FIG. 36, for the voxels located on the side surfaces and the upper surface of the quadrangular prism among the voxels whose density has increased, intersection information is set. In FIG. 36, vectors 335 to 337 (see solid arrows) representing some of the intersection information to be set are illustrated. In the example shown in FIG. 36, the intersection information indicating the intersection coordinates at the positions on the upper surface and the side surfaces of the quadrangular prism and the normal direction perpendicular to the surface of the quadrangular prism at the position is set. Specifically, for the corner portions formed by the side surface and the upper surface of the quadrangular prism, each intersection information represented by three vectors 335 perpendicular to the three surfaces forming the corner is set. For the two side surfaces of the quadrangular prism or the edge portions formed by the side surface and the upper surface, each intersection information represented by two vectors 336 perpendicular to the two surfaces forming the edge is set. For the portion of the side surface or the upper surface of the quadrangular prism, the intersection information represented by the vector 337 perpendicular to the surface is set. The game system 1 generates a mesh of the deformed voxel object 331 based on such intersection information. As a result, the mesh of the deformed voxel object 331 can be made into a more accurate quadrangular prism shape.
[0214] In the example shown in FIG. 36, intersection information was newly set when a deformation in which the density of the voxels increased was performed, but intersection information may also be newly set when a deformation in which the density of the voxels decreases is performed. For example, when a deformation such that the player character makes a hole in the terrain object by a predetermined action is performed, intersection information may be set for the voxels at the positions of the side surfaces of the hole. For example, when making a hole like being drilled out in the shape of a quadrangular prism, the intersection coordinates are set to indicate the intersection coordinates at the position on the side surface of the quadrangular prism and the normal direction perpendicular to the side surface at the position.
[0215] As described above, the game system 1 may update the density for the voxels within the update range and set intersection information for at least some of the voxels among the voxels whose density has been updated. By doing so, it becomes easier to make the shape of the mesh of the deformed voxel object as intended.
[0216] [2-7-4. Processing When the Voxel Object is Restored] In the present embodiment, the intersection information deleted in accordance with the deformation of the voxel object may be restored in accordance with the restoration of the shape of the voxel object. Hereinafter, an example in which the intersection information is restored will be described.
[0217] FIG. 37 is a diagram showing an example of how a character object is restored after deformation. In the example shown in FIG. 37, it is assumed that for a part of the voxels of the character object 341 which is a voxel object, intersection information represented as a vector 342 is set. Also, in the example shown in FIG. 37, it is assumed that the character object 341 is deformed so that a part of it is erased according to a predetermined condition (see (b) of FIG. 37), and then restored to its original shape (see (c) of FIG. 37). Note that the predetermined condition is arbitrary, for example, that a punch action by the player character has been performed. Also, the condition for restoring the character object 341 is arbitrary. For example, the character object 341 may be restored in accordance with the elapse of a predetermined time after a deformation such that a part of it is erased, or the character object 341 may be restored in accordance with the satisfaction of a condition related to the game (for example, that a predetermined recovery item has been used for the character object 341).
[0218] In the example shown in FIG. 37, when a part of the character object 341 is deformed so as to be erased, the intersection information set for the character object 341 is deleted (see (b) of FIG. 37). In FIG. 37, vectors (see the solid arrows) representing some of the intersection information set for the character object 341 are shown. The process of deleting the intersection information in the example shown in FIG. 37 is the same as the process described in the above [2-7-1. Example of deleting intersection information]. Specifically, the game system 1 sets a deletion range of the intersection information based on the update range of the voxels, and deletes the intersection information set in the voxels within the deletion range.
[0219] In the example shown in FIG. 37, when the shape of the character object 341 is restored, the density of each voxel regarding the character object 341 is returned to the value before deformation (here, the density is increased). At this time, the game system 1 restores the deleted intersection information (see (c) of FIG. 37). For example, the game system 1 stores the intersection information deleted in the situation shown in (b) of FIG. 37 as data different from the data used for vertex setting, and restores the intersection information using the data. The mesh of the character object 341 after restoration is generated based on the restored intersection information. Thereby, the shape of the character object 341 after restoration can be made more accurately the same as the shape before deformation. Note that the character object 341 may be a shape that suggests information in the game, such as the shape of an arrow indicating the direction in which the player character 201 should proceed. At this time, by restoring the intersection information, the shape of the character object 341 after restoration can be made a shape that more accurately suggests information in the game.
[0220] [3. Specific examples of processing in the game system] Next, with reference to FIGS. 38 to 43, specific examples of information processing in the game system 1 will be described.
[0221] FIG. 38 is a diagram showing an example of various data used for information processing in the game system 1. Each data shown in FIG. 38 is stored in a memory accessible by the main body device 2 (for example, a flash memory 84, a DRAM 85, and / or a memory card or the like mounted on the slot 23). As shown in FIG. 38, the game system 1 stores a game program. The game program is for executing the game processing in the present embodiment (specifically, the game processing shown in FIG. 39). Note that the game program includes the above-described material data (see FIG. 12). Also, as shown in FIG. 38, the above-described voxel data (see FIG. 11), the above-described intersection information data (see FIG. 18), update range data, deletion range data, mesh data, correspondence information data, object data, etc. are stored in the memory.
[0222] The update range data is data indicating the above-described update range. The deletion range data is data indicating the above-described deletion range. In the present embodiment, the update range and the deletion range are represented by the above-described SDF.
[0223] The mesh data includes various data related to the mesh of the voxel object. As shown in FIG. 38, 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. Note that 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).
[0224] The correspondence information data indicates the above-mentioned correspondence information showing the correspondence relationship between the first corresponding object and the second corresponding object. The correspondence information may, for example, indicate the correspondence between the identification information of voxel data and the identification information of voxel data, or may indicate the correspondence between the identification information of a voxel space and the identification information of a voxel space, or may indicate the correspondence between the identification information of a voxel object and the identification information of a voxel object. The correspondence information may be predetermined in the game program, or the correspondence relationship may be added, deleted, and / or changed in response to a predetermined condition being satisfied during the game.
[0225] The object data includes various data related to objects other than voxel objects (for example, player characters, fragment 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.
[0226] FIG. 39 is a flowchart showing an example of the flow of game processing executed by the game system 1. The execution of the game processing is started, for example, in response to the game being started 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 S15 is executed once per frame at a cycle of once per frame.
[0227] In this embodiment, the processor 81 of the main body device 2 executes the processing of each step shown in FIGS. 39 to 43 by executing the game program stored in the game system 1. However, in other embodiments, some of the processing of each step may be executed by a processor (for example, a dedicated circuit or the like) different from the processor 81. Further, when the game system 1 can communicate with another information processing device (for example, a server), some of the processing of each step shown in FIGS. 39 to 43 may be executed in the other information processing device. Further, the processing of each step shown in FIGS. 39 to 43 is merely an example, and if the same result can be obtained, the processing order of each step may be changed, or another processing may be executed in addition to (or instead of) the processing of each step.
[0228] Further, the processor 81 executes the processing of each step shown in FIGS. 39 to 43 using a memory (for example, the 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.
[0229] In step S1 shown in FIG. 39, the processor 81 acquires the operation data indicating the operation input by the player. That is, the processor 81 acquires the operation data received from each controller via the controller communication unit 83 and / or each of the terminals 17 and 21. The processing of step S2 is executed after step S1.
[0230] In step S2, 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, and executes a process of calculating the speed and a process of reflecting the result of contact between the objects in the previous frame for the designated object. The speed of the object is used to calculate the position of the object in the current frame in the process of step S11 described later. For example, when the designated object is a 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 that is not operated by the player (for example, a fragment object), the speed of the object is calculated based on a rule predetermined in the game program. For example, the speed of a fragment object is set to 0 when it is placed on a terrain object and not moving, is set to the same speed as the player character when held by the player character, and is set to a speed moving in the above-mentioned aiming direction with a magnitude determined by the above rule when released by a throwing action by the player character. Specifically, the speed of the object is calculated based on virtual physical calculations including the interaction 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.
[0231] 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 S10) 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 the player character has come into contact with a lava terrain object in the previous frame, a process of reducing the physical strength of the player character · When it is determined that the player character has contacted the terrain object by a pulling action or a punching action in the previous frame, a process of generating a fragment object · When it is determined that the fragment object has contacted the rock terrain object in the previous frame, a process of disappearing the fragment object When 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. The process of step S3 is executed next to step S2.
[0232] In step S3, the processor 81 determines whether an update event for updating the voxel object has occurred due to the object specified in step S2. For example, the determination in step S3 is made based on the result of the collision determination (step S10) in the previous frame. For example, if it is determined in the previous frame that the player character has contacted a voxel object such as a terrain object or a corresponding object by an action for deforming the voxel object, it is determined that an update event has occurred. More specifically, if it is determined that the player character has contacted a voxel object by a punch action, it is determined that an update event has occurred in which a part of the voxel object is deformed as if it has been erased (see FIGS. 24, 28, 31, and 37). Note that the update events as described above include an event in which a part of the terrain object is deformed as if it has been erased and the material for the range of the deformed part and its surrounding parts is changed. Also, for example, if it is determined in the previous frame that a fragment object has contacted a rock terrain object, it is determined that an update event has occurred in which the terrain object is deformed as if the fragment object has adhered to the terrain object (see FIG. 26). Also, for example, if it is determined that the player character has contacted the object 332 shown in FIG. 36 by a predetermined action, it is determined that an update event has occurred in which the terrain object is deformed to rise upward (see FIG. 36). Also, for example, as in the example shown in FIG. 37, if the condition for restoring the shape of the deformed character object is satisfied, it is determined that an update event for restoring the character object has occurred. If the determination result in step S3 is affirmative, the process of step S4 is executed. On the other hand, if the determination result in step S3 is negative, the process of step S5 described later is executed.
[0233] In step S4, the processor 81 executes a voxel update process for updating the voxel data regarding the voxel object determined to have had an update event occur in step S3. Hereinafter, with reference to FIG. 40, the details of the voxel update process in step S4 will be described.
[0234] FIG. 40 is a sub-flowchart showing an example of the detailed flow of the voxel update process in step S4 shown in FIG. 39. In the voxel update process, first in step S21, the processor 81 sets an update range for updating the voxels of the voxel object in the game space. For example, the specific content of the update range (that is, position, shape, and size) is associated with each type of update event in the game program. The update range set in step S21 is set to be associated with the content related to the type of update event determined to occur in step S3. The processor 81 stores the data indicating the set update range in the memory as update range data. The process of step S22 is executed after step S21.
[0235] In step S22, the processor 81 makes changes corresponding to the update event for the voxels corresponding to the update range set in step S21. For example, when deforming the voxel object within the update range as if it were erased or deforming it as if a voxel object was added within the update range, the voxel data stored in the memory is updated so as to change the density of the voxels corresponding to the update range (see the above [2-2. Update of voxel data]). Also, for example, when changing the material of the voxel object within the update range, the voxel data stored in the memory is updated so as to update the first and second material IDs and the material mixing ratio of the voxels corresponding to the update range. The process of step S23 is executed after step S22.
[0236] In step S23, the processor 81 determines whether the voxel object has been deformed in the process of step S22. For example, when the update events shown in FIGS. 23, 24, 26, 28, 30 to 33, 36, and 37 described above occur, it is determined that the voxel object has been deformed. If the determination result in step S23 is affirmative, the process of step S24 is executed. On the other hand, if the determination result in step S23 is negative, the processor 81 ends the voxel update process.
[0237] In step S24, the processor 81 executes intersection information control processing. The intersection information control processing is processing for deleting, adding, or restoring intersection information for the voxel object deformed in the process of step S22. Hereinafter, with reference to FIG. 41, the details of the intersection information control processing in step S24 will be described.
[0238] FIG. 41 is a sub flowchart showing an example of the detailed flow of the intersection information control processing in step S24 shown in FIG. 40. In the intersection information control processing, first in step S31, the processor 81 determines whether to delete the intersection information according to the update event. In the present embodiment, whether the intersection information is deleted, added, restored, or held according to the update event is determined in advance according to the type of the update event, the type of the action that caused the update event, and / or the type of the voxel object to be updated. For example, regarding the example described in [2-7. Processing related to intersection information according to deformation of voxel object] above, for an update event in which a terrain object or a character object is destroyed by a punch action by a player character, it is determined that the intersection information is deleted. If the determination result in step S31 is affirmative, the process of step S32 is executed. On the other hand, if the determination result in step S31 is negative, the process of step S34 is executed.
[0239] In step S32, the processor 81 sets a deletion range according to the method described in the above [2-7-1. Example of deleting intersection information] based on the update range set in step S21. The processor 81 stores data indicating the set update range in the memory as update range data. The process of step S33 is executed after step S32.
[0240] In step S33, the processor 81 deletes the intersection information set in the voxels within the deletion range set in step S32. The processor 81 updates the intersection information data stored in the memory so that the intersection information corresponding to the above voxels is deleted. As described above, the processor 81 only needs to delete the intersection information from the data used in a series of processes for generating the mesh in steps S7 to S10 described later, and the intersection information data may be stored as other data different from the said data. The process of step S34 is executed after step S33.
[0241] In step S34, the processor 81 determines whether to add intersection information according to the update event. For example, for an update event in which the terrain object is deformed to rise upward by an action on the object 332 shown in FIG. 36, it is determined that the intersection information is to be added. If the determination result in step S34 is affirmative, the process of step S35 is executed. On the other hand, if the determination result in step S34 is negative, the process of step S35 is executed.
[0242] In step S35, the processor 81 adds intersection information for some of the voxels whose density is updated in the process of step S22. For example, the processor 81 determines the intersection coordinates and the normal direction of the intersection information to be added according to the method described in the above [2-7-3. Example of adding intersection information], and stores the intersection information data indicating the intersection information in the memory. The process of step S34 is executed after step S33.
[0243] In step S36, the processor 81 determines whether to restore the intersection information in response to an update event. For example, for an update event to restore the deformed character object 341 shown in FIG. 37, it is determined that the intersection information is to be restored. If the determination result in step S36 is affirmative, the process of step S37 is executed. On the other hand, if the determination result in step S36 is negative, the processor 81 ends the intersection information control process.
[0244] In step S37, the processor 81 restores the intersection information for the voxels whose density was updated in the process of step S22 above. For example, the processor 81 stores the intersection information data deleted in the process of step S33 due to a previous deformation as data separate from the data used in a series of processes for generating a mesh, and in step S37 above, restores the intersection information data using the said data. After step S37, the processor 81 ends the intersection information control process.
[0245] Note that during the deformation of the corresponding object described above, the determinations in steps S31, S34, and S36 are each negative. As a result, the intersection information is retained. Note that in other embodiments, when the density of the voxels of the corresponding object decreases in the process of step S22 above, the processor 81 may delete the intersection information set for the said voxels in the process of step S33. At this time, when the process of step S35 is executed for the corresponding object corresponding to the corresponding object from which the said intersection information was deleted, the processor 81 may set the same intersection information as the deleted intersection information in the process of step S35.
[0246] Returning to the description of FIG. 39, in step S25 following step S24, the processor 81 determines whether the voxel object for which it was determined in step S3 that an update event occurred is the above-described corresponding object, that is, whether there is a corresponding voxel object. This determination is made, for example, based on whether there is a voxel object corresponding to the voxel object in the corresponding information data stored in the memory. If the determination result in step S25 is affirmative, the process of step S26 is executed. On the other hand, if the determination result in step S25 is negative, the processor 81 ends the voxel update process.
[0247] In step S26, the processor 81 sets the effect flag to on for the voxel object for which it was determined in step S3 that an update event occurred. The effect flag is a flag indicating whether an effect image (see FIGS. 31 and 33) to be displayed when the corresponding object is deformed is in progress. Note that the effect flag is set for each corresponding object. When the effect flag is on, in the effect control process (step S13) described later, settings regarding the display of the effect image are made, and in the process of step S14 described later, a game image including the effect image is generated. After step S26, the processor 81 ends the voxel update process.
[0248] Returning to the description of FIG. 39, in step S5 following the voxel update process of step S4, the processor 81 executes a corresponding object update process. The corresponding object update process is a process of updating voxel data under certain conditions when the object specified in step S2 is the corresponding object. Hereinafter, with reference to FIG. 42, the details of the corresponding object update process in step S5 will be described.
[0249] Figure 42 is a sub flowchart showing an example of the detailed flow of the corresponding object update process in step S5 shown in Figure 39. In the corresponding object update process, first in step S41, the processor 81 determines whether the voxel object specified in step S2 is a corresponding object and whether the timing for performing deformation according to the deformation of the corresponding voxel object has arrived. In the present embodiment, the above timing is the timing when the effect image generated according to the deformation of the voxel object corresponding to the voxel object reaches the position of the voxel object. Therefore, the determination in step S41 can be made based on whether the determination result in step S55 in the effect control process described later is affirmative and whether the process in step S56 has been executed. If the voxel object specified in step S2 is not a corresponding object, or if the corresponding voxel object has not been deformed, or even if the corresponding voxel object has been deformed but the above timing has not yet arrived, the determination result in step S41 is negative. If the determination result in step S41 is affirmative, the process in step S42 is executed. On the other hand, if the determination result in step S41 is negative, the processor 81 ends the corresponding object update process.
[0250] In step S42, the processor 81 sets an update range for updating the density for the voxel object specified in step S2. This update range corresponds to the update range set in step S21 executed for the voxel object corresponding to the voxel object. The above update range is set based on the corresponding update range according to the method described in the above [2-7.2 Processing for changing the shapes of two voxel objects]. The processor 81 stores the data indicating the set update range in the memory as update range data. The process in step S43 is executed after step S42.
[0251] In step S43, the processor 81 updates the density for the voxels within the update range set in step S42. Specifically, the density of the voxel after the update is calculated based on the density of the voxel corresponding to the voxel according to the method described in the above [2-7.2. Process of changing the shape of two voxel objects]. The processor 81 updates the voxel data stored in the memory so as to indicate the calculated density value. After step S43, the processor 81 ends the corresponding object update process.
[0252] Returning to the description of FIG. 39, in step S6, which is the next step of the corresponding object update process in step S5, the processor 81 determines whether the processing in steps S2 to S5 has been completed for all objects that require processing. If the determination result in step S6 is affirmative, the processing in step S7 is executed. On the other hand, if the determination result in step S6 is negative, the processing in step S2 is executed again.
[0253] In step S7, the processor 81 updates the vertices of the voxel object in the game space. That is, when the voxel data is updated in the processing of step S4 or S5, new vertices are calculated based on the updated voxel data. Note that the positions and materials of the new vertices are calculated according to the method described in the above [2-3. Calculation of vertices]. The processing in step S8 is executed after step S7.
[0254] In step S8, the processor 81 simplifies the vertices. That is, for each vertex updated by the process of step S7, the processor 81 performs simplification according to the method described in the above [2-4. Vertex Simplification]. The SVO data stored in the memory is updated to indicate each vertex obtained by the processes of steps S7 and S8 above. Therefore, the SVO data is updated by the processes of steps S7 and S8. Note that the processes of steps S7 and S8 do not need to 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 S4 or S5. The process of step S9 is executed after step S8.
[0255] In step S9, the processor 81 updates the display mesh of the voxel object based on the SVO data stored in the memory. Note that the positions of the vertices of the display mesh and the materials of the polygons of the display mesh (that is, the materials set for the vertices of the polygons) are calculated according to the method described in the above [2-5. Mesh Generation]. The processor 81 updates the display mesh data stored in the memory to indicate the positions and materials of the vertices of the updated display mesh. The process of step S10 is executed after step S9. Note that the processor 81 may start the processes after step S10 and execute them in parallel without waiting for the completion of step S9. In that case, step S9 needs to be completed before the start of step S14.
[0256] In step S10, the processor 81 updates the determination mesh of the voxel object based on the SVO data stored in the memory. Note that the position of each vertex of the determination mesh and the material of each polygon of the determination mesh (that is, the material set for each vertex of the polygon) are calculated according to the method described in the above [2-5. Generation of mesh]. 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. The process of step S11 is executed after step S10.
[0257] Note that in the example shown in FIG. 39, the generation process of the determination mesh (step S10) 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 of step S11 is executed only in a frame that satisfies a predetermined condition, the processor 81 may execute the generation process of the determination mesh in the frame in which the collision determination of step S11 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 of 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 surrounding voxel objects needs to be performed), the processor 81 may execute the generation process of the determination mesh for the voxels within a predetermined range based on the player character.
[0258] In step S11, the processor 81 performs collision determination for each object in the game space based on the determination mesh data and the object data stored in the memory. That is, for voxel objects, the processor 81 uses the determination mesh, and for objects that are not voxel objects, the processor 81 uses a determination area of a predetermined shape set for the object to perform collision determination. In this 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.
[0259] In this embodiment, the presence or absence of the following contacts, for example, is determined by the collision determination in step S11. · Contact between a player character performing a movement, punch action, or pull-out action and a voxel object such as a terrain object · Contact between a character performing a (fragment object) lifting action and a fragment object · Contact between a straight line extending in the aim direction from the position of the player character and a voxel object · Contact between a fragment object released by a throwing action by the player character and a voxel object If it is determined in the collision determination in step S11 that the objects are in contact with each other, then in the process of step S2 in the next frame, a process 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. The process of step S12 is executed after step S11.
[0260] In step S12, the processor 81 controls the operations of each object in the game space. For example, regarding the player character, the processor 81 performs control to cause it to move and perform various actions based on the operation data acquired in step S1. When a predetermined action occurs, an area for collision determination corresponding to the action is generated within the game space. Also, for example, the fragment object is controlled to move in the above-described aiming direction in response to being thrown by the player character. Note that in one execution of the process of step S12, the processor 81 controls each object so as to advance the operation for one frame regarding operations (for example, actions by the player character) performed over a plurality of frames. By repeatedly executing the process of step S12 over a plurality of frames, each object performs a series of operations related to movement and various 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 blocked by the contacted other object, the position of the object is determined not to change. The object data stored in the memory is updated to indicate the object after the control in step S12. The process of step S13 is executed after step S12.
[0261] In step S13, the processor 81 executes an effect setting process. The effect setting process is a process for setting an effect image to be displayed in response to the deformation of the corresponding object. Hereinafter, with reference to FIG. 43, the details of the effect setting process in step S13 will be described.
[0262] Figure 43 is a sub - flowchart showing an example of the detailed flow of the corresponding object update process in step S13 shown in Figure 39. In the effect setting process, first, in step S51, the processor 81 determines whether there is a corresponding object for which the effect flag is set to on. If the determination result in step S51 is affirmative, the process of step S52 is executed. On the other hand, if the determination result in step S51 is negative, the processor 81 ends the effect setting process.
[0263] In step S52, the processor 81 determines whether it is the timing when the effect image has occurred. The determination in step S52 is made, for example, based on whether the effect flag has been set to on by the process of step S25 in the processing of the current frame in the processing loop in steps S1 - S15. If the determination result in step S52 is affirmative, the process of step S53 is executed. On the other hand, if the determination result in step S52 is negative, the process of step S54 is executed.
[0264] In step S53, the processor 81 newly generates an effect image. Specifically, display settings are made so that the effect image is newly arranged at the position of the voxel object for which the effect flag has been set to on by the process of step S25. Note that the method of displaying the effect image is arbitrary. For example, an object representing the effect image may be arranged in the virtual space. Also, the specific start position where the effect image is arranged is determined according to the method described in the above [2 - 7.2. Process of changing the shapes of two voxel objects]. At this time, the processor 81 stores data indicating the position where the effect image is arranged in the memory. When the above display settings are made, in the process of step S14 described later, a game image including the effect image is generated and displayed. After step S53, the process of step S55 is executed.
[0265] In step S54, the processor 81 moves the position of the arranged effect image. In the present embodiment, the processor 81 moves the effect image at a predetermined speed along a predetermined trajectory from the current position to the target position. In the process of one execution of step S54, the position moved by the distance that moves during one frame is calculated from the current position, and the calculated position becomes the position of the effect image after the movement. The processor 81 stores the data indicating the calculated position after the movement in the memory. Note that the target position is the position of the voxel object corresponding to the voxel object in which the effect flag is set to on. The target position is determined according to the method described in the above [2-7.2. Process of changing the shapes of two voxel objects]. Also, the predetermined trajectory may specifically be an arbitrary trajectory. For example, it may be a parabolic trajectory connecting the start position and the target position. After step S54, the process of step S55 is executed.
[0266] In step S55, the processor 81 determines whether the effect image has reached the voxel object corresponding to the voxel object in which the effect flag is set to on. Specifically, the processor 81 determines whether the position after the movement calculated in step S54 has reached the target position. If the determination result in step S55 is affirmative, the process of step S56 is executed. On the other hand, if the determination result in step S55 is negative, the processor 81 ends the effect setting process.
[0267] In step S56, the processor 81 sets the effect flag to off. As a result, in the process of step S14 described later, the effect image corresponding to the effect flag is not displayed. After step S56, the processor 81 ends the effect setting process.
[0268] In the effect setting process shown in FIG. 43, although the case where one effect image is displayed has been described, a plurality of effect images may be displayed simultaneously. At this time, the processor 81 executes the processes of steps S52 to S56 for each of the arranged effect images.
[0269] Returning to the description of FIG. 39, in step S14 following the effect setting process of step S13, the processor 81 generates a game image. That is, the processor 81 generates a game image by performing drawing on each polygon of the display mesh of the voxel object and each polygon of the object other than the voxel object based on the virtual camera. Each polygon of the display mesh is drawn using drawing settings such as a texture corresponding to the material set for the polygon. Further, in the present embodiment, when the display setting is such that an effect image is generated by the process of step S13, a game image including the effect image arranged at the position calculated in step S53 or S54 is generated (see FIGS. 31 and 33). Also, when the player character is in a state where a throwing action is possible, the processor 81 generates a game image including the above-described aiming image and object information image (see FIG. 25). The game image generated in step S14 is output to the display device and displayed once per frame in a cycle.
[0270] In step S15, the processor 81 determines whether to end the game. For example, when a player performs a predetermined operation input for ending the game, the processor 81 determines to end the game. If the determination result in step S15 is negative, the process of step S1 is executed again. Thereafter, a series of processes of steps S1 to S15 are repeatedly executed until it is determined in step S15 to end the game. On the other hand, if the determination result in step S15 is positive, the processor 81 ends the game process shown in FIG. 39.
[0271] [4. Operational Effects and Modification Examples of the Present Embodiment] According to the above embodiment, when generating a voxel mesh based on the density set for a voxel and intersection information, and reducing the density of the voxel corresponding to the update range, the intersection information set for the voxel corresponding to the deletion range is deleted. According to this, an increase in the processing load in the process of generating a voxel mesh using the intersection information can be suppressed.
[0272] In the above embodiment, an example in which the density of the voxel and the deletion of the intersection information are updated according to the action by the player character has been described. However, the density of the voxel and the deletion of the intersection information may be updated according to any condition in the game. For example, the density of the voxel and the deletion of the intersection information may be performed according to the elapse of a predetermined time from a certain timing in the game.
[0273] In addition, in the above embodiment, when processing is executed using data (in the meaning including a program) in a certain information processing apparatus, a part of the data necessary for the processing may be transmitted from another information processing apparatus different from the certain information processing apparatus. At this time, the certain information processing apparatus may execute the above processing using the data received from another information processing apparatus and the data stored in itself.
[0274] In addition, in other embodiments, the information processing system may not include a part of the configuration in the above embodiment, or may not execute a part of the processing executed in the above embodiment. For example, in order to obtain a part of the specific results in the above embodiment, the information processing system may include a configuration for obtaining the results and execute the processing for obtaining the results, and may not include other configurations or execute other processing.
Industrial Applicability
[0275] The above embodiment can be used, for example, as a game system or a game program for the purpose of suppressing an increase in the processing load in the process of generating a mesh of an object.
Description of Symbols
[0276] 1 Game system 2 Main body device 81 Processor 201 Player character 271, 331 Terrain object 282 Update range 283 Deletion range 291 - 293 First corresponding object 301 - 303 Second corresponding object 341 Character object
Claims
1. Cause a computer to generate and update a voxel mesh based on voxel data defined in a voxel space within a virtual space, where for each of a plurality of voxels, at least a density indicating the degree to which the space defined by the voxel is virtually occupied by content is set, and for at least some of the voxels, intersection information regarding intersections between lines connecting the voxels and a mesh is set, generate and update a voxel mesh which is a mesh based on the voxel data, wherein vertex coordinates of the mesh are determined based on at least the density and the intersection information, control a player character within the virtual space based on an operation input, and cause the player character to perform a first action in response to a first instruction based on the operation input, decrease the density of the voxels of the voxel data corresponding to a first voxel update range set based on the position where the first action is performed, and when the intersection information is set for the voxels of the voxel data corresponding to a first intersection information update range set based on the position where the first action is performed, delete the intersection information, render the virtual space including the voxel mesh. A game program.
2. The intersection information includes, for each voxel, data indicating coordinates of an intersection between a boundary with an adjacent voxel in a predetermined direction and the mesh, and data indicating a normal direction. Cause the computer to set vertices of the voxel mesh between a voxel having a density value within a first range and a voxel having a density value within a second range, for the voxels for which the intersection information is set, based on the intersection information, determine the vertex coordinates of the voxel mesh such that the surface of the voxel mesh faces in the normal direction at the coordinates of the intersection, or such that the error from such an arrangement is minimized, for the voxels for which the intersection information is not set, based on intersections set based on the density, generate and update the voxel mesh based on a method for determining the vertex coordinates of the voxel mesh. The game program according to Claim 1.
3. Cause the computer to The game program according to claim 2, wherein the voxel mesh is generated and updated based on a method in which the coordinates of the vertices of the voxel mesh are determined at a position where the distance from a plurality of surfaces facing the normal direction at the coordinates of the intersection point is minimized based on each of the plurality of intersection point information.
4. The computer further causes the player character to perform a second action in response to a second instruction based on an operation input, and decreases the density without deleting the intersection information for the voxels corresponding to a second voxel update range set according to the second action, for the game program according to any one of claims 1 to 3.
5. The voxel data includes at least first voxel data defined in a first voxel space and second voxel data defined in a second voxel space, the first action is an action on the first voxel data, and the first voxel update range is an update range for the first voxel data, the second action is an action on the second voxel data, and the second voxel update range is an update range for the second voxel data, for the game program according to claim 4.
6. The voxel data is defined in a third voxel space, and further includes third voxel data in which a correspondence relationship with each voxel of the second voxel data is set for each of the plurality of voxels, the computer further increases the density of the target voxels for increase, which are voxels of the third voxel data in which the correspondence relationship with the target voxels for decrease, which are the voxels whose density has decreased when the density of the voxels of the second voxel data is decreased, is set, for the game program according to claim 5.
7. The voxel data includes first voxel data defined in a first voxel space, second voxel data defined in a second voxel space, and third voxel data defined in a third voxel space, and further includes third voxel data in which a correspondence relationship with each voxel of the second voxel data is set for each of the plurality of voxels, the computer further When the density of the voxels of the second voxel data is decreased based on the first action, the density of the target voxels to be increased, which are the voxels of the third voxel data for which the correspondence relationship with the target voxels to be decreased, which are the voxels whose density has decreased, is set, is increased. When the intersection information is set in the target voxels to be decreased, the same intersection information as the intersection information deleted from the target voxels to be decreased is set in the target voxels to be increased. The game program according to any one of claims 1 to 3.
8. The computer further causes the player character to perform a third action in response to a third instruction based on an operation input, updates the density of the voxels of the voxel data corresponding to the third voxel update range set according to the third action, and further sets the intersection information for at least some of the voxels. The game program according to any one of claims 1 to 3.
9. The voxel data is defined in a fourth voxel space and includes at least fourth voxel data in which the intersection information is set in a predetermined voxel. The computer further when the density of the fourth voxel data decreases based on the first action, increases the density of the voxels of the fourth voxel data corresponding to the fourth voxel update range, and restores the intersection information deleted based on the first action. The game program according to any one of claims 1 to 3.
10. Voxel data defined in a voxel space within a virtual space, in which at least a density indicating the degree to which the space defined by each of a plurality of voxels is virtually occupied is set, and based on voxel data in which intersection information regarding the intersection of a line connecting voxels and a mesh is set for at least some of the voxels, generates and updates a voxel mesh, which is a mesh based on the voxel data, and whose vertex coordinates are determined based on at least the density and the intersection information, controls a player character within the virtual space based on an operation input, and causes the player character to perform a first action in response to a first instruction based on the operation input. Reduce the density of the voxels of the voxel data corresponding to the first voxel update range set based on the position where the first action was performed, and if the intersection information is set in the voxels of the voxel data corresponding to the first intersection information update range set based on the position where the first action was performed, delete the intersection information. An information processing system that performs rendering of the virtual space including the voxel mesh.
11. The intersection information includes, for each voxel, data indicating the coordinates of the intersection of the boundary between the voxel adjacent in a predetermined direction and the mesh, and data indicating the normal direction. Vertices of the voxel mesh are set between voxels having a density value in a first range and voxels having a density value in a second range. Regarding the voxel in which the intersection information is set, based on the intersection information, the vertices of the voxel mesh are arranged such that the surface of the voxel mesh faces the normal direction at the coordinates of the intersection, or the coordinates of the vertices of the voxel mesh are determined at a position where the error from the arrangement is minimized. Regarding the voxel in which the intersection information is not set, based on the intersection set based on the density. The information processing system according to claim 10, wherein the voxel mesh is generated and updated based on a method for determining the coordinates of the vertices of the voxel mesh.
12. The voxel mesh is generated and updated based on a method for determining the coordinates of the vertices of the voxel mesh at a position where the distance from a plurality of surfaces facing the normal direction at the coordinates of the intersection is minimized based on each of the plurality of intersection information.
13. Cause the player character to perform a second action in response to a second instruction based on an operation input. For the voxels of the voxel data corresponding to the second voxel update range set in response to the second action, reduce the density without deleting the intersection information. The information processing system according to any one of claims 10 to 12.
14. The voxel data includes at least first voxel data defined in a first voxel space and second voxel data defined in a second voxel space. The first action is an action on the first voxel data, and the first voxel update range is an update range for the first voxel data, The second action is an action on the second voxel data, and the second voxel update range is an update range for the second voxel data. The information processing system according to claim 13. **Claim 15** The voxel data is defined in a third voxel space, and further includes third voxel data in which a correspondence relationship with each voxel of the second voxel data is set for each of a plurality of voxels, When the density of the voxels of the second voxel data is decreased, the density of the target voxels for increase, which are the voxels of the third voxel data for which the correspondence relationship with the target voxels for decrease, which are the voxels with the decreased density, is set, is increased. The information processing system according to claim 14. **Claim 16** The voxel data, First voxel data defined in a first voxel space, and Second voxel data defined in a second voxel space, and It is defined in a third voxel space and further includes third voxel data in which a correspondence relationship with each voxel of the second voxel data is set for each of a plurality of voxels, Based on the first action, when the density of the voxels of the second voxel data is decreased, the density of the target voxels for increase, which are the voxels of the third voxel data for which the correspondence relationship with the target voxels for decrease, which are the voxels with the decreased density, is set, is increased, and when the intersection information is set in the target voxels for decrease, the same intersection information as the intersection information deleted from the target voxels for decrease is set in the target voxels for increase. The information processing system according to any one of claims 10 to 12. **Claim 17** In response to a third instruction based on an operation input, cause the player character to perform a third action, For the voxels of the voxel data corresponding to the third voxel update range set according to the third action, update the density, and further set the intersection information for at least some of the voxels. The information processing system according to any one of claims 10 to 12. **Claim 18** The voxel data is defined in a fourth voxel space and includes at least fourth voxel data in which the intersection information is set in a predetermined voxel. When the density of the fourth voxel data decreases based on the first action, For the voxels of the fourth voxel data corresponding to the fourth voxel update range, the density is increased and the intersection information deleted based on the first action is restored. The information processing system according to any one of claims 10 to 12.
19. An information processing apparatus including a processor, The processor, Voxel data defined in a voxel space within a virtual space, 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 content is set, and further for at least some of the voxels, based on voxel data in which intersection information regarding intersections between lines connecting the voxels and a mesh is set, Generates and updates a voxel mesh that is a mesh based on the voxel data, and in which vertex coordinates of the mesh are determined based on at least the density and the intersection information, Controls a player character within the virtual space based on an operation input, causes the player character to perform a first action in response to a first instruction based on the operation input, Decreases the density of the voxels of the voxel data corresponding to a first voxel update range set based on the position where the first action is performed, and deletes the intersection information if the intersection information is set in the voxels of the voxel data corresponding to a first intersection information update range set based on the position where the first action is performed, An information processing apparatus that performs rendering of the virtual space including the voxel mesh.
20. The intersection information includes, for each voxel, data indicating coordinates of an intersection between a boundary with an adjacent voxel in a predetermined direction and the mesh, and data indicating a normal direction. The processor, Sets a vertex of the voxel mesh between a voxel having a density value within a first range and a voxel having a density value within a second range. For the voxel in which the intersection information is set, based on the intersection information, the coordinates of the vertex of the voxel mesh are determined such that the plane of the voxel mesh faces in the normal direction at the coordinates of the intersection or the error from such an arrangement is minimized. For the voxel in which the intersection information is not set, based on the intersection set based on the density. The information processing apparatus according to claim 19, wherein the voxel mesh is generated and updated based on a method for determining the coordinates of the vertex of the voxel mesh.
21. The processor The voxel mesh is generated and updated based on a method for determining the coordinates of the vertex of the voxel mesh such that the distance from a plurality of planes facing in the normal direction at the coordinates of the intersection based on each of the plurality of intersection information is minimized. The information processing apparatus according to claim 20.
22. In an information processing system Voxel data defined in a voxel space within a virtual space, wherein for each of a plurality of voxels, at least a density indicating the degree to which the space defined by the voxel is virtually occupied by content is set, and further for at least some of the voxels, based on voxel data in which intersection information regarding the intersection of a line connecting the voxels and a mesh is set. Generate and update a voxel mesh, which is a mesh based on the voxel data, wherein the vertex coordinates of the mesh are determined based on at least the density and the intersection information. Control a player character within the virtual space based on an operation input, and cause the player character to perform a first action in response to a first instruction based on the operation input. Reduce the density of the voxels of the voxel data corresponding to a first voxel update range set based on the position where the first action is performed, and when the intersection information is set for the voxels of the voxel data corresponding to a first intersection information update range set based on the position where the first action is performed, delete the intersection information. A game processing method for causing the virtual space including the voxel mesh to be drawn.
23. The intersection information includes, for each voxel, data indicating the coordinates of the intersection and data indicating the normal direction for the intersection of the boundary between the voxel and an adjacent voxel in a predetermined direction and the mesh. In the information processing system Vertices of the voxel mesh are set between voxels with density values in a first range and voxels with density values in a second range. For a voxel with the intersection information set, based on the intersection information, the surface of the voxel mesh is arranged to face the normal direction at the coordinates of the intersection, or the coordinates of the vertices of the voxel mesh are determined at a position where the error from the arrangement is minimized. For a voxel without the intersection information set, based on intersections set based on the density. Generating and updating the voxel mesh based on a method for determining the coordinates of the vertices of the voxel mesh, according to the game processing method of claim 22. **Claim 24** In the information processing system Generating and updating the voxel mesh based on a method for determining the coordinates of the vertices of the voxel mesh at a position where the distance from a plurality of surfaces facing the normal direction at the coordinates of the intersection is minimized, based on each of the plurality of intersection information, according to the game processing method of claim 23. **Claim 25** Further in the information processing system Causing the player character to perform a second action in response to a second instruction based on an operation input. For voxels of the voxel data corresponding to a second voxel update range set according to the second action, reducing the density without deleting the intersection information, according to the game processing method according to any one of claims 22 to 24. **Claim 26** The voxel data includes at least first voxel data defined in a first voxel space and second voxel data defined in a second voxel space. The first action is an action on the first voxel data, and the first voxel update range is an update range for the first voxel data. The second action is an action on the second voxel data, and the second voxel update range is an update range for the second voxel data, according to the game processing method of claim 25. **Claim 27** The voxel data is defined in a third voxel space and further includes third voxel data in which a correspondence relationship with each voxel of the second voxel data is set for each of a plurality of voxels. Further in the information processing system When the density of the voxels of the second voxel data is decreased, increasing the density of an increase target voxel which is a voxel of the third voxel data for which the correspondence with a decrease target voxel, which is a voxel whose density has decreased, is set. The game processing method according to claim 26.
28. The voxel data includes first voxel data defined in a first voxel space, second voxel data defined in a second voxel space, and third voxel data defined in a third voxel space, and for each of a plurality of voxels, correspondence with each voxel of the second voxel data is set. The game processing method according to any one of claims 22 to 24, further including: In the information processing system, When the density of the voxels of the second voxel data is decreased based on the first action, increasing the density of an increase target voxel which is a voxel of the third voxel data for which the correspondence with a decrease target voxel, which is a voxel whose density has decreased, is set, and when intersection information is set in the decrease target voxel, setting the same intersection information as the intersection information deleted from the decrease target voxel in the increase target voxel.
29. In the information processing system, Causing the player character to perform a third action in response to a third instruction based on an operation input, Updating the density of the voxels of the voxel data corresponding to a third voxel update range set in response to the third action, and further setting the intersection information for at least some of the voxels. The game processing method according to any one of claims 22 to 24.
30. The voxel data is defined in a fourth voxel space and includes at least fourth voxel data in which intersection information is set in a predetermined voxel, In the information processing system, When the density of the fourth voxel data is decreased based on the first action, Increasing the density of the voxels of the fourth voxel data corresponding to a fourth voxel update range, and restoring the intersection information deleted based on the first action. The game processing method according to any one of claims 22 to 24.
Citation Information
Patent Citations
Program, recording medium, game character drawing method and game machine
JP2004062666A
Program and image generation system
JP2017099744A
Systems, methods, and devices for 3D voxel-based modeling
JP2018514885A
Data processing apparatus, data processing method, and program
JP2022171068A
Virtual space creation program, and virtual space creation device
JP2024007703A