Game program, game processing method, game system, and game device
The game program effectively utilizes voxel data materials to generate in-game effects by managing voxel objects through interaction and time-based reduction, improving gameplay dynamics and visual representation.
Patent Information
- Application Number
- JP2024202072
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-11-20
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2044-11-20
AI Technical Summary
Existing game programs fail to effectively utilize materials in voxel data to generate in-game effects.
A game program that generates and updates voxel meshes based on voxel data, setting density and material for each voxel, allowing player characters to interact with voxel objects to create in-game effects, and manages voxel objects by reducing their size or erasing them based on actions and time, utilizing materials to generate effects.
Enables the utilization of materials in voxel data to create dynamic in-game effects, enhancing gameplay interaction and visual representation.
Smart Images

Figure 2025113164000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a game program, a game processing method, a game system, and a game device for generating an object in a virtual space using voxel data.
Background Art
[0002] Conventionally, objects have been managed using voxel data, and an object mesh has been generated in a virtual space based on the voxel data (see, for example, Non-Patent Document 1).
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In a game, it is desired to make more use of the materials in the voxel data.
[0005] Therefore, an object of the present invention is to provide a game program, a game processing method, a game system, and a game device that can utilize the materials in voxel data in a game.
Means for Solving the Problems
[0006] In order to achieve the above object, the present invention can adopt the following configurations (1) to (16), for example.
[0007] (1) One configuration example of the game program of the present invention causes a computer of an information processing apparatus to generate and update a first mesh of a first voxel object corresponding to the first voxel data based on the first voxel data which is voxel data defined in a virtual space, and 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 the content and a material indicating the type of the content are set, the vertices of the mesh are determined based at least on the density, and the material of the mesh is determined based at least on the material. Based on an operation input, a player character is controlled in the virtual space, and in response to a first instruction based on the operation input, the player character is made to perform a first action. The density of the voxels of the first voxel data corresponding to the first voxel update range set based on the position where the first action is performed is decreased. A second voxel data in which density and material are set for each voxel, and the material of the voxel is set to the same material as the material determined based on the positional relationship with the position where the first action is performed among the voxels of the first voxel data or the material of the first mesh. A second mesh of a second voxel object corresponding to the second voxel data, the vertices of the mesh are determined based at least on the density, and the material of the mesh is determined based on the material of the second voxel data are generated. When the material of the second voxel data is the first material, a first in-game effect corresponding to the first material is generated for the second voxel object, the size of the second voxel object is decreased according to the progress of the game, and the virtual space including the first mesh and the second mesh is drawn.
[0008] According to the configuration of (1) above, the player character is made to perform a first action of generating a second voxel object from a first voxel object, and based on the material of the second voxel object, a first in-game effect generated by consuming the second voxel object can be generated. Therefore, the material in the voxel data can be utilized in the game.
[0009] (2) In the configuration of (1) above, the first voxel data may be defined in a first voxel space. The second voxel data may be defined in a second voxel space. In this case, the computer may reduce the size of the second voxel object by reducing the size in the virtual space of the second voxel space.
[0010] According to the configuration of (2) above, by reducing the entire voxel space, the size of the second voxel object can be reduced.
[0011] (3) In the configuration of (1) above, the computer may set a second voxel update range at a position in the virtual space based on the position of the first voxel object, and reduce the size of the second voxel object by reducing the density of the voxels of the second voxel data corresponding to the second voxel update range.
[0012] According to the configuration of (3) above, by reducing the density of some voxels of the second voxel object, the size of the second voxel object can be reduced.
[0013] (4) In the configuration of (1) above, the computer may reduce the size of the second voxel object according to the passage of time during the period when the first in-game effect is occurring.
[0014] According to the configuration of (4) above, based on the passage of time when generating the first in-game effect, the first in-game effect can be restricted.
[0015] (5) In the configuration of (1) above, each time the computer generates the first in-game effect, the size of the second voxel object may be reduced.
[0016] According to the configuration of (5) above, the first in-game effect can be restricted by the amount of the first in-game effect that has occurred.
[0017] (6) In the configuration of (4) or (5) above, the first voxel data may be defined in a first voxel space. The second voxel data may be defined in a second voxel space. In this case, the computer may reduce the size of the second voxel object by reducing the size in the virtual space of the second voxel space.
[0018] According to the configuration of (6) above, by reducing the entire voxel space, the size of the second voxel object can be reduced.
[0019] (7) In any one of the configurations of (4) to (6) above, the computer may set a second voxel update range at a position in the virtual space based on the position of the first voxel object, and reduce the size of the second voxel object by reducing the density of the voxels of the second voxel data corresponding to the second voxel update range.
[0020] According to the configuration of (7) above, by reducing the density of some voxels of the second voxel object, the size of the second voxel object can be reduced.
[0021] (8) In any one of the configurations (1) to (5) above, when the size of the second voxel object becomes smaller than a predetermined standard, the computer may further cause the second voxel object to be erased and terminate the first in-game effect.
[0022] According to the configuration of (8) above, by reducing the size of the second voxel object, the first in-game effect can be restricted.
[0023] (9) In any one of the configurations (1) to (5) above, the computer may further cause the player character to perform an action of holding the second voxel object and an action of releasing it in response to a second instruction based on an operation input, and when the player character is holding the second voxel object, the first in-game effect may be generated.
[0024] According to the configuration of (9) above, the first in-game effect can be generated only when the player character is holding the second voxel object.
[0025] (10) In the configuration of (9) above, the computer may control the movement of the player character based on virtual gravity downward in the virtual space, and as the first in-game effect, move the player character holding the second voxel object upward in the virtual space.
[0026] According to the configuration of (10) above, the effect of moving upward in the virtual space can be given to the player character.
[0027] (11) In the configuration of (9) above, the computer may move the player character holding the second voxel object along a predetermined path set in the virtual space as the first in-game effect.
[0028] According to the configuration of (11) above, the effect of moving on a predetermined path set in the virtual space can be given to the player character.
[0029] (12) In the configuration of (9) above, the computer may, as a first in-game effect, move and control a player character in a state of riding on a second voxel object on the first object based on an operation input.
[0030] According to the configuration of (12) above, the effect of moving on the first object while riding on the second voxel object can be given to the player character.
[0031] (13) In the configuration of (9) above, hardness according to the type may be set for the material. In this case, the computer may, as a first in-game effect, move the player character together with the second voxel object, and reduce the size of the second voxel object based on the hardness of the material of the second voxel object and the moving distance.
[0032] According to the configuration of (13) above, the period during which the first in-game effect occurs can be changed based on the hardness of the material of the second voxel object.
[0033] (14) In any one of the configurations of (1) to (5) above, the computer may, as a first in-game effect, set a light source at the position of the second voxel object in the virtual space.
[0034] According to the configuration of (14) above, the effect of setting a light source at the position of the second voxel object in the virtual space can be obtained.
[0035] (15) In any one of the configurations (1) to (5) above, when the material of the voxel of the first voxel data corresponding to the third voxel update range including the position of the second voxel object is the second material as the first in-game effect, the computer may change the material to the third material.
[0036] According to the configuration of (15) above, an effect of changing the material of the first voxel object in the virtual space can be obtained.
[0037] (16) In any one of the configurations (1) to (5) above, the first mesh may include a display mesh used for drawing and a determination mesh used for collision determination. The material of the display mesh may be set by setting at least one material based on the materials of the voxels around each vertex constituting the polygon for each polygon of the mesh. The material of the determination mesh may be set by setting one material based on the materials of the voxels around each vertex constituting the polygon for each polygon of the mesh. In this case, based on the collision determination between the collision shape set based on the position where the first action was performed and the determination mesh among the first meshes, the computer sets the same material as the material set for the polygon at the collision position to the material of the second voxel data, and based on the vertex coordinates of the display mesh and the texture associated with the material for each polygon of the display mesh, the computer may cause the first mesh to be drawn by causing the display mesh to be drawn.
[0038] According to the configuration of (16) above, since the determination mesh and the display mesh are determined separately, appropriate meshes can be used according to their respective uses.
[0039] Further, the present invention may be implemented in the form of a game processing method, a game device, and a game system.
Advantages of the Invention
[0040] According to the present invention, based on the material of the voxel object, in-game effects generated by consuming the voxel object can be generated, so that the material in the voxel data can be utilized by the game.
Brief Description of the Drawings
[0041]
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
Modes for Carrying Out the Invention
[0042] [1. Configuration of the game system] Hereinafter, a game system according to an example of the present embodiment will be described. An example of the game system 1 in the present embodiment includes a main body device (information processing device; functioning as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The main body device 2 is detachable from the left controller 3 and the right controller 4 respectively. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 as separate entities (see Fig. 2). Hereinafter, the hardware configuration of the game system 1 of the present embodiment will be described, and then the control of the game system 1 of the present embodiment will be described.
[0043] Fig. 1 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are attached to the main body device 2. As shown in Fig. 1, the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processing) in the game system 1. The main body device 2 includes a display 12. The left controller 3 and the right controller 4 are devices provided with operation units for the user to input.
[0044] Fig. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are respectively removed from the main body device 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. Note that hereinafter, the left controller 3 and the right controller 4 may be collectively referred to as "controller".
[0045] 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.
[0046] Incidentally, 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 with the left controller 3 and the right controller 4 attached to the main body device 2 may be a portable device. Further, the main body device 2 or the integrated device may be a hand-held device. Also, the main body device 2 or the integrated device may be a transportable device.
[0047] 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.
[0048] Also, the main body device 2 includes a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type capable of multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, for example, a type capable of single-touch input (for example, a resistive film type).
[0049] The main body device 2 includes a speaker (that is, the speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed in the main surface of the housing 11. Then, the output sound of the speaker 88 is output from these speaker holes 11a and 11b respectively.
[0050] Also, 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.
[0051] 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 (e.g., a dedicated memory card) dedicated to the game system 1 and information processing devices of the same type. The predetermined type of storage medium is used to store, for example, data used in the main body device 2 (e.g., save data of an application, etc.) and / or programs executed in the main body device 2 (e.g., application programs, etc.). Further, the main body device 2 includes a power button 28.
[0052] The main body device 2 includes a lower terminal 27. The lower terminal 27 is a terminal for the main body device 2 to communicate with the cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main body device 2 alone is placed on the cradle, the game system 1 can display an image generated and output by the main body device 2 on a stationary monitor. Further, in the present embodiment, the cradle has a function of charging the placed integrated device or the main body device 2 alone. The cradle also has a function of a hub device (specifically, a USB hub).
[0053] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In the present embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the vertical direction (i.e., the y-axis direction shown in FIGS. 1 and 4). When the left controller 3 is separated from the main body device 2, it can also be held in a vertically long orientation. The housing 31 has a shape and size that can be held with one hand, particularly the left hand, when held in a vertically long orientation. Further, the left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.
[0054] The left controller 3 is provided with an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting a direction. The user can input a direction according to the tilting direction (and an input of a magnitude according to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may be provided with a cross key or a slide stick capable of slide input instead of the analog stick as a direction input unit. Further, in the present embodiment, it is possible to input by pressing the analog stick 32.
[0055] 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 surface of the side surface of the housing 31 that is attached when the left controller 3 is attached to the main body device 2. These operation buttons are used to give instructions according to various programs (for example, an OS program or an application program) executed by the main body device 2.
[0056] 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.
[0057] 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. Further, the right controller 4 can also 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.
[0058] Similar to the left controller 3, the right controller 4 includes an analog stick 52 as a direction input unit. In the present embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. Further, instead of the analog stick, the right controller 4 may be provided with a cross key or a slide stick capable of slide input. Also, similar to the left controller 3, the right controller 4 includes four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. Furthermore, the right controller 4 includes a + (plus) button 57 and a home button 58. Also, the right controller 4 includes a first R button 60 and a ZR button 61 at the upper right of the side surface of the housing 51. Also, similar to the left controller 3, the right controller 4 includes a second L button 65 and a second R button 66.
[0059] Further, the right controller 4 includes a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.
[0060] FIG. 6 is a block diagram showing an example of the internal configuration of the main body device 2. The main body device 2 includes each of the components 81 to 91, 97, and 98 shown in FIG. 6 in addition to the configuration shown in FIG. 3. 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.
[0061] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes executed in the main body device 2. For example, it may be composed of only a CPU (Central Processing Unit), or it may be composed of a SoC (System-on-a-chip) including a plurality of functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various information processes by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84 or an external storage medium mounted on the slot 23).
[0062] As an example of an internal storage medium built in the main body device 2, the main body device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is mainly a memory used to store various data (which may be a program) stored in the main body device 2. The DRAM 85 is a memory used to temporarily store various data used in information processing.
[0063] 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.
[0064] The processor 81 appropriately reads and writes data between the flash memory 84 and the DRAM 85, and the above storage media, and executes the above information processes.
[0065] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly) with an external device via a network. In the present embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device by a method compliant with the Wi-Fi (registered trademark) standard as the first communication mode. Further, the network communication unit 82 performs wireless communication with another main body device 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as the second communication mode. Note that the wireless communication by the second communication mode enables wireless communication with another main body device 2 arranged in a closed local network area, and realizes a function enabling so-called "local communication" in which data is transmitted and received by direct communication between a plurality of main body devices 2.
[0066] The main body device 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. The communication method between the main body device 2 and the left controller 3 and the right controller 4 is arbitrary. In the present embodiment, the controller communication unit 83 communicates with the left controller 3 and between the right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0067] The processor 81 is connected to the left terminal 17, the right terminal 21, and the lower terminal 27 described above. 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. Also, 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. Further, 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. Also, 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 (e.g., image data and audio data) to a stationary monitor or the like via the cradle.
[0068] 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 a set 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.
[0069] Also, the display 12 is connected to the processor 81. The processor 81 displays an image generated (e.g., by executing the above information processing) and / or an image acquired from the outside on the display 12.
[0070] 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.
[0071] 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. Although not shown, the power control unit 97 is also 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.
[0072] 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.
[0073] 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, so they are omitted in FIG. 7.
[0074] 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 detached 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 according to, for example, the Bluetooth (registered trademark) standard.
[0075] 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.
[0076] 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.
[0077] 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 the input is transmitted to the main body device 2 may be the same or different for each input unit.
[0078] When the above operation data is transmitted to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine the operations on each button 103 and the analog stick 32 based on the operation data.
[0079] The left controller 3 includes a power supply unit 108. In 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).
[0080] As shown in FIG. 7, the right controller 4 includes a communication control unit 111 that communicates with the main body device 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main body device 2 by both wired communication via the terminal 64 and wireless communication without using the terminal 64 (specifically, communication according to the Bluetooth (registered trademark) standard), and controls the communication method performed by the right controller 4 with respect to the main body device 2.
[0081] The right controller 4 includes the same input parts as those of the left controller 3. Specifically, it includes each button 113 and the analog stick 52. These input parts have the same functions as those of the left controller 3 and operate in the same manner.
[0082] 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.
[0083] [2. Overview of Processing in the Game System] Next, with reference to FIGS. 8 to 38, an overview of the processing executed in the game system 1 will be described. In the present embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters operated by a player) are arranged in a game space, which is a three-dimensional virtual space, and causes the display device to display it. Note that, in the present embodiment, the display device on which the game image is displayed may be the above-described display 12 or a stationary monitor.
[0084] [2-1. Voxel] In the present embodiment, for some objects in the game space, the shape is defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, a cube)-shaped region arranged in a grid pattern in the game space, and voxel data is data indicating information regarding each voxel. Hereinafter, an object whose shape is defined by voxel data will be referred to as a "voxel object". In the present embodiment, the game system 1 stores voxel data as data for generating voxel objects in the game space for a plurality of voxels set in the game space.
[0085] FIG. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 8, in the present embodiment, a terrain object representing a terrain such as the ground is defined in shape by voxel data (that is, it is a voxel object). Each cube shown in FIG. 8 represents a terrain object. In FIG. 8, the portions that are the sides of the terrain object are shown as thick lines, but these thick lines are added for the purpose of making the drawing easier to view, and in reality, the sides of the terrain object do not need to be shown thickly.
[0086] 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.
[0087] Regarding the voxel object, the shape can be changed by changing the voxel data of each voxel. FIGS. 9 and 10 are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted. That is, when the hatched portion of the terrain object shown in FIG. 9 is destroyed, the terrain object changes to the shape shown in FIG. 10. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data described later so as to indicate that there is no terrain object for the voxels in the hatched portion. Note that when the game system 1 adds a terrain object, it can also easily change the shape of the terrain object by changing the voxel data of each voxel in the same way as when erasing the terrain object.
[0088] 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.
[0089] In the present embodiment, it is assumed that voxels are defined throughout the game space (that is, the voxel space in which voxels are set corresponds to the entire game space). However, the voxel space does not necessarily have to be set throughout the game space and may be set in a partial region of the game space. When the voxel space is set in a partial region of the game space, the shape of the voxel object is defined by the voxel data regarding the voxels in the voxel space, and the position of the voxel object in the game space is defined by the position of the voxel space in the game space. Also, in the game space, a main voxel space set throughout the game space and a sub-voxel space set in a partial region of the game space may be set. At this time, the game system 1 stores voxel data for each voxel space.
[0090] FIG. 11 is a diagram showing an example of voxel data. The voxel data includes density data, a first material ID, a second material ID, material mixing ratio data, and state data for each voxel defined in the game space. In the voxel data in the present embodiment, these data are set for each voxel.
[0091] 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.
[0092] In this embodiment, the density can take integer values in the range from a lower limit value (for example, 0) to an upper limit value (for example, 255). In this embodiment, in the game system 1, when the value of the density set for a voxel is high, the ratio of the volume occupied by the region within the voxel object in the voxel tends to be large, and when the value of the density is low, the ratio tends to be small. The surface shape of the voxel object is determined based on the density. Thus, the density is an index that affects the ratio of the volume occupied by the region within the voxel object in the voxel. It can also be said that the density is an index indicating the degree to which the space of the voxel is virtually occupied by the content (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 also be said to be the surface of the part where the content exists in the voxel, or the boundary between the part where the content exists and the part where it does not exist in the voxel. Note that the volume occupied by the region within the voxel object generated based on the above density does not necessarily have to be exactly the volume corresponding to the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 8 and the method of generating a voxel object as shown in FIG. 13, even when based on the same density, the volume of the voxel object may be different.
[0093] In other embodiments, the density may indicate either a state where the volume occupied by the region within the voxel object occupies the entire region within the voxel or a state where the volume occupied by the region within the voxel object is not included in the region within the voxel. For example, the density data may be data that can only take values of 0 or 1.
[0094] The first material ID and the second material ID are information indicating the material (in other words, substance) of the voxel. Here, in the present embodiment, materials such as sand, rock, or soil are set for the voxel. Note that in the game system 1, a plurality of types of materials are prepared as materials that can be set for the voxel (refer to the material data shown in FIG. 12). In the present embodiment, up to two materials out of the plurality of types of prepared materials can be set for one voxel. The first material ID is an ID indicating the first material set for the voxel, and the second material ID is an ID indicating the second material set for the voxel. Although details will be described later, the material of the voxel object (that is, the material set for the polygon of the voxel object) is determined based on the material set for the voxel.
[0095] As described above, in the present embodiment, the voxel data includes the ID indicating the material. However, in other embodiments, the voxel data may be a data structure including data directly indicating the content of the material (that is, the name, properties, and drawing setting information described later).
[0096] The material mixing ratio data is an example of data indicating the ratio of each material in the voxel. In the present embodiment, since the number of material IDs set in one voxel is up to two, the material mixing ratio data indicating the ratio of one of the materials indicated by the first material ID and the material indicated by the second material ID can also represent the ratio of the other. 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 it is possible to set not up to two but three or more types of materials, the ratio of the materials in the voxel is represented as a plurality of values respectively indicating the ratio of each material.
[0097] 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.
[0098] The state data indicates the state set in the voxel. The specific content and number of types of the state data are arbitrary. In the present embodiment, the state data includes data indicating the amount of damage set in the voxel. Note that in other embodiments, the state data may include, for example, data indicating whether the voxel is in a wet state (and the degree thereof).
[0099] As described above, in this embodiment, since the voxel data includes the material ID, the game system 1 stores the 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.
[0100] The name included in the material data is the name set for the material (for example, soil, sand, grass, etc.). During the game, the name of the material of the voxel object may be displayed. In order to perform such a display, the material data includes information on the name of the material.
[0101] The properties included in the material data are the properties set for the material. The properties of the material are the properties that the voxel object to which the material is set has in the game. Note that the specific content and number of types of the properties of the material are arbitrary. For example, at least any of the following information may be set as the properties of the material. · Hardness · Weight · Slipperiness · Damage setting when the player character touches · Temperature · Whether another object can adhere to the voxel object · Amount of the player character's physical strength recovered 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.
[0102] In this embodiment, the material data includes an ID indicating the property as information specifying the property of the material (see FIG. 12). Although not shown, the game system 1 stores property information in which the content of the property (for example, a value indicating the hardness or slipperiness described above) is associated with the property ID for each property to be prepared. By referring to the above property information, the game system 1 can specify the specific content of the property set for the material. In this embodiment, information indicating the presence or absence and content of in-game effects described later may be set as the information set as the property of the material described above and the property information for the property ID. Further, the information indicating the presence or absence and content of the in-game effect may be included in the material data by being defined in data other than the data shown in FIG. 12.
[0103] The rendering settings included in the material data are information indicating rendering-related settings 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 the texture ID and the texture indicated by the texture ID are associated with each other for each texture to be prepared. 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, arbitrary information related to shading settings may be set as the rendering setting information in addition to the texture information. For example, the reflectance, information related to the normal, etc. may be set.
[0104] Also, the material data may include data other than the data shown in FIG. 12. For example, the material data may include data related to sound settings. For example, the data related to sound settings may be data that defines the footstep sound output when the player character walks on the voxel object based on the voxel.
[0105] Note that the material data may be data in any format that can identify the properties of the material and / or rendering settings. For example, in other embodiments, the material data may have a data structure that includes data directly indicating the properties of the material and / or rendering settings, instead of a data structure that includes a material ID and a texture ID.
[0106] [2-2. Update of Voxel Data] During the game, the voxel object is deformed by updating the above-described voxel data. In this embodiment, when a game event (hereinafter referred to as an "update event") for updating the voxel object occurs, the game system 1 updates the voxel data. The specific content of the update event is arbitrary. The update event may be, for example, that a character appearing in the game performs an action to deform the voxel object (for example, the player character punches the voxel object), or an event that deforms the voxel object occurs (for example, an object thrown by a character contacts the voxel object, or a bomb explodes).
[0107] FIG. 13 is a diagram showing an example of the game space when an update event occurs. The situation shown in FIG. 13 is a situation where the player character 201 performs a punch action on the terrain object 202, which is a voxel object. Although details will be described later, in the example shown in FIG. 13, the voxel data is updated so that the terrain object 202 around the position hit by the punch action of the player character 201 is deleted. As a result, the state where the terrain object 202 is destroyed by the punch action of the player character 201 is expressed.
[0108] 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) and the voxel object are in contact. In the example shown in FIG. 13, the position of the update range 203 may be determined based on the position where the punch by the player character 201 hits, and for example, the hit position or the position a predetermined distance 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. Also, 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).
[0109] 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.
[0110] In this embodiment, the game system 1 determines whether a voxel is included in the update range by using an SDF (Signed Distance Field). The game system 1 sets an SDF indicating the update range set in the game space, and makes the above determination based on the value of the SDF. The SDF represents, with a sign, the distance from a defined shape for any position. FIG. 14 is a diagram showing an example of the update range. In the example shown in FIG. 14, a spherical update range is set in the game space. For example, in the example shown in FIG. 14, among the positions in the game space, the SDF value becomes negative for the positions inside the shape represented by the SDF, and the SDF value becomes positive for the positions outside the shape represented by the SDF. In this example, it is possible to determine whether it is included in the update range based on whether the SDF value is positive or negative. Also, by using the value of the signed distance, not only simple inside / outside determination but also processing such as correction and interpolation can be performed.
[0111] In the above, an example in which a change such that the voxel object within the update range is deformed as if it were erased is added to the voxel object has been described. However, the changes added to the voxel object using the update range are not limited to this. For example, a change in which a voxel object is newly added within the update range (that is, the volume occupied by the region within the voxel object increases by the amount of the update range) may be added to the voxel object. Also, a change may be added to the voxel object such that only the material of the voxels within the update range changes without changing the density of the voxels. Further, a combined change of changing the density of the voxels and changing the material may be added.
[0112] [2-3. Calculation of vertices] When the density of the voxels is updated as described above, the game system 1 sets vertices based on the updated voxel data. The above vertices can be the vertices of the mesh of the voxel object. Although details will be described later, in this embodiment, the above vertices are simplified, and the simplified vertices become the vertices of the mesh of the voxel object.
[0113] FIG. 15 is a diagram showing an example of a method for setting vertices. In FIGS. 15 to 24 described below, for the purpose of making the drawings easy to view and the explanations easy to understand, voxels, vertices, meshes, etc. are represented two-dimensionally, but actually vertices and meshes are set in a three-dimensional space based on voxels in the three-dimensional space. In this embodiment, the game system 1 uses a method of setting vertices at coordinates based on the positions and densities of a plurality of surrounding voxels for a portion where a voxel having a density of a setting indicating its existence (that is, a density equal to or higher than a reference value described later) and a voxel having a density of a setting indicating its non-existence (that is, a density less than the reference value described later) are adjacent. The details of this method will be described below.
[0114] As described above, in the present embodiment, the density set for the voxels is set in the range of 0 to 255. A voxel with a density of 0 is completely in the air, and a voxel with a density of 255 represents a state where the interior is completely filled. Densities between 0 and 255 are treated interpolatively and used for vertex determination. And in the present embodiment, voxels with a density equal to or higher than the reference value are virtually treated as being inside the object, and voxels with a density lower than the reference value are treated as being outside the object. It can also be said that voxels with a density equal to or higher than the reference value are virtually treated as voxels indicating existence, and voxels with a density lower than the reference value are virtually treated as voxels indicating non-existence. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., set the reference value = 1), and the reference value can be, for example, 128. In the example shown in FIG. 15, let the density be 0 in voxel 211 and other outer voxels, 100 where the density of voxel 212 is less than the reference value, and 150 and 210 where the density is equal to or higher than the reference value in voxels 213 and 214. In the present embodiment, the game system 1 generates vertices between voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. Specifically, for each region spanning eight (four in the drawing) adjacent voxels (the region surrounded by the dotted line in the drawing), it is determined whether to generate a vertex. That is, a vertex is generated in a region spanning both voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. The coordinates of the vertex are determined by interpolating based on the density difference by comparing the densities of adjacent voxels for each of the X, Y, and Z axes. By setting the normal 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 normal information. The normal information may be retained in advance for at least some of the voxels, or may be calculated based on the densities of adjacent voxels if it is not retained. 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 vertices, but the density value of voxel 212 itself is used for the coordinate calculation of the generated vertices.If the reference value is set to a value lower than the density of voxel 212, the result is that more vertices will be added to the upper right and upper left sides of voxel 212 in FIG. 15.
[0115] By setting the vertices as described above, when generating a mesh that connects each of the set vertices (or each vertex after performing the simplification process described later on each of the set vertices), it is possible to generate a shape having a volume that reflects the density of each voxel to some extent. However, depending on the relationship with adjacent voxels, it may be possible that a voxel with a density of 0 includes a region within a part of the object, or a voxel with a density of 255 includes a region outside a part of the object. Also, in this embodiment, since voxels below the reference value are processed as outside the object, the volume is also smaller by the amount that the number of vertices is less compared to the case of processing as inside the object. Thus, it is not necessary to calculate the polygon mesh so as to have a volume that exactly corresponds to the density value.
[0116] [2-4. Determination of Vertex Material] The game system 1 determines the material for each of the vertices set as described above. The material of a vertex is determined based on the materials of the voxels around the vertex. The voxels around a vertex are, for example, the voxels used for determining whether to generate the vertex (that is, the voxels that overlap with the "region spanning voxels" described above). Note that in other embodiments, the voxels used for determining the material of a vertex do not have to be the same as the voxels used for determining the generation of the vertex, and they may be different.
[0117] FIG. 16 is a diagram showing an example of a method for determining the material of a vertex. In the example shown in FIG. 16, it is assumed that a vertex 219 is set for four voxels 215 to 218, and the four voxels 215 to 218 are the above-mentioned "voxels around the vertex". In the actual three-dimensional space, the number of voxels around the vertex is eight. Also, in the example shown in FIG. 16, for voxel 215, the density is set to 255, the first material is "sand", and the material mixing ratio is 0 (that is, the first material: the second material = 1:0, or the second material may not be set). For voxel 216, the density is set to 0 (the first and second materials may not be set). For voxel 217, the density is set to 204, the first material is "sand", the second material is "grass", and the material mixing ratio is 0.3 (that is, the first material: the second material = 0.7:0.3). For voxel 218, the density is set to 153, the first material is "soil", the second material is "grass", and the material mixing ratio is 0.4 (that is, the first material: the second material = 0.6:0.4). Also, the coordinates indicating the position of vertex 219 are assumed to be (X, Y) = (0.8, 0.6). Note that the coordinate system of these coordinates has the left-right direction in FIG. 16 as the X coordinate, the up-down direction as the Y coordinate, and the center position of the lower-left voxel 217 among the center positions of voxels 215 to 218 (the position of the white circle shown in FIG. 13) as (0, 0).
[0118] When determining the material of a vertex, the game system 1 calculates an evaluation value for each material in the surrounding voxels based on the density of the material and a weight value based on the distance from the voxel to the vertex. First, the weight value is calculated for each voxel, and is calculated so that the closer the distance from the center position of the voxel to the vertex, the larger the value. In the present embodiment, when the center position of the voxel is (x1, y1) and the coordinates of the vertex are (x2, y2), the weight value for a certain voxel is calculated according to the following formula (1). (Weight value) = |(1 - x1) - x2|·|(1 - y1) - y2|…(1) In the example shown in FIG. 16, the weight values of each of the voxels 215 to 218 calculated according to the above equation (1) are as follows. (Weight value of voxel 215)=|(1 - 0) - 0.8|·|(1 - 1) - 0.6| = 0.12 (Weight value of voxel 216)=|(1 - 1) - 0.8|·|(1 - 1) - 0.6| = 0.48 (Weight value of voxel 217)=|(1 - 0) - 0.8|·|(1 - 0) - 0.6| = 0.08 (Weight value of voxel 218)=|(1 - 1) - 0.8|·|(1 - 0) - 0.6| = 0.32
[0119] Also, the game system 1 calculates the density of the material for each voxel. Here, the density of the material is a value obtained by multiplying the ratio of the material occupied by the material among the materials set in the voxel by the density of the voxel. In the present embodiment, as the density of the voxel, a value obtained by normalizing the above-described value from 0 to 255 to a value from 0 to 1 is used. In the example shown in FIG. 16, for voxel 215, since the material set is only sand, the above ratio regarding the sand material is 1, and since the density of the voxel is 1, the density of the sand material is 1. For voxel 216, since the density is 0 and no material is set, the density of the material is not calculated. Or, if some material is set, the density of the material is 0. For voxel 217, the above ratios of the set sand material and grass material are 0.7 and 0.3, respectively, and since the density of the voxel is 204 / 255 = 0.8, the density of the sand material is 0.7·0.8 = 0.56, and the density of the grass material is 0.3·0.8 = 0.24. For voxel 218, the above ratios of the set soil material and grass material are 0.6 and 0.4, respectively, and since the density of the voxel is 153 / 255 = 0.6, the density of the soil material is 0.6·0.6 = 0.36, and the density of the soil material is 0.4·0.6 = 0.24.
[0120] Then, based on the above weight value and the density of the material, the game system 1 calculates the above evaluation value for each material. In the present embodiment, the evaluation value of the material is a value obtained by adding weights according to the weight value for each voxel to the density of the material calculated for each voxel and summing them for each surrounding voxel. In the example shown in FIG. 16, for the evaluation value of the sand material, the density of the material for voxel 215 is 1 and the weight value is 0.12, and the density of the material for voxel 217 is 0.56 and the weight value is 0.08. Therefore, 1·0.12 + 0.56·0.08 = 0.1648. Also, for the evaluation value of the grass material, the density of the material for voxel 217 is 0.24 and the weight value is 0.08, and the density of the material for voxel 218 is 0.24 and the weight value is 0.32. Therefore, 0.24·0.08 + 0.24·0.32 = 0.096. Also, for the evaluation value of the soil material, the density of the material for voxel 218 is 0.36 and the weight value is 0.32. Therefore, 0.36·0.32 = 0.1152.
[0121] The game system 1 determines the vertex materials based on the evaluation values for each material. Specifically, a predetermined number of materials are determined as the vertex materials in descending order of the evaluation values. In this embodiment, two materials with large evaluation values are determined as the vertex materials. In the example shown in FIG. 16, since the evaluation values of the materials of sand, grass, and soil are 0.1648, 0.096, and 0.1152 respectively, the vertex materials are determined as the sand material and the soil material. Also, the game system 1 calculates the ratio of the two determined materials based on the above evaluation values. In this embodiment, the ratio of the two materials may be expressed as a second material ratio, which is the ratio of the second material to the whole, similar to the above material mixing ratio. In the example shown in FIG. 16, for example, when the first material is the soil material and the second material is set as the sand material, the above second material ratio is shown as 0.1648 / (0.1648 + 0.1152) ≒ 0.59. Note that in other embodiments, as the value representing the ratio of the two materials, a value indicating the ratio of the first material may be used. Also, respective values indicating the ratio of each material may be used.
[0122] In this embodiment, the game system 1 generates and stores vertex data indicating the position of the vertex, the material IDs of the first and second materials set for the vertex, and the ratio of the materials. However, the method of managing the materials set for the vertex is arbitrary. In other embodiments, the vertex data may be a data structure including data directly indicating the contents of the first and second materials.
[0123] As described above, in the present embodiment, for each vertex, for the material IDs included in the voxel data of a plurality of surrounding voxels, a priority parameter (for example, an evaluation value) for each material ID is calculated based on the voxel data. Then, based on the priority parameter, up to a predetermined number (here, two) of material IDs with high priority are selected and determined as the material ID of the vertex. Note that the specific parameter used as the priority parameter is not limited to the above evaluation value. For example, in other embodiments, an evaluation value calculated using the density of the material instead of the above weight value may be used as the priority parameter.
[0124] In the present embodiment, an evaluation value, which is an example of the priority parameter, is calculated based on the densities of a plurality of voxels around the vertex so that the priority of the material set in the voxel with a higher density becomes higher (that is, the evaluation value of the material becomes larger and the material is more likely to be selected). According to this, the material of the vertex can be determined by reflecting the magnitude of the density set in the voxel.
[0125] Also, in the present embodiment, an evaluation value, which is an example of the priority parameter, is calculated based on the distance from the reference position (specifically, the center position) of a plurality of voxels around the vertex to the vertex so that the priority of the material set in the voxel closer to the vertex becomes higher. According to this, the material of the vertex can be determined by reflecting the distance between the voxel and the vertex.
[0126] Also, in the present embodiment, it can be said that an evaluation value, which is an example of the priority parameter, is calculated based on the material mixing ratio of a plurality of voxels around the vertex so that the priority of the material with a higher material mixing ratio becomes higher. According to this, when a plurality of materials are set in one voxel, the material of the vertex can be determined by reflecting the ratio of each material.
[0127] [2-5. Simplification of Vertex] In this embodiment, the game system 1 simplifies each vertex calculated as described above. That is, the game system 1 reduces the number of vertices by grouping several of the vertices calculated as described above and replacing them with a single vertex. Although details will be described later, the coordinates (i.e., positions) and materials of the vertices to be replaced are set based on a plurality of vertices before replacement. By such simplification, the number of vertices and polygons constituting the mesh of the voxel object can be reduced, and the amount of memory used for processing and the processing load can be reduced.
[0128] In this embodiment, the game system 1 simplifies by expressing each vertex using SVO (Sparse Voxel Octree). FIG. 17 is a diagram showing an example of vertex simplification. In FIG. 17, one square indicated by a solid line shown in (a) shown in FIG. 17 represents one vertex division region. Here, the vertex division region is a square region having the center position of the voxel as a vertex (in the actual three-dimensional space, the vertex division region is a cube or a rectangular parallelepiped), and is a region having the dotted lines in FIGS. 15 and 16 described above as sides. Further, in FIG. 17, the vertex division region in which the character "v" is shown inside indicates the vertex division region in which vertices are set.
[0129] In this embodiment, the game system 1 determines whether or not it is possible to simplify the vertices within a predetermined number (four in FIG. 17, eight in the actual three-dimensional space) of adjacent vertex division regions. When it is determined that simplification is possible, simplification is performed on the vertices within the predetermined number of vertex division regions.
[0130] (a) shown in FIG. 17 is the state before simplification. In the example shown in FIG. 17, it is assumed that the vertex division regions within the range surrounded by the dotted line can be simplified. At this time, the game system 1 performs simplification so that the vertices within each of the predetermined number of vertex division regions determined to be simplifiable are replaced by one vertex (see (b) shown in FIG. 17). As a result, the vertices within the predetermined number of vertex division regions are simplified to one vertex.
[0131] In this embodiment, the game system 1 performs simplification in multiple stages. The number of stages is arbitrary, but in FIG. 17, up to the second stage will be illustrated and described. (b) shown in FIG. 17 shows the state after the first-stage simplification, and (c) shown in FIG. 17 shows the state after the second-stage simplification. In the second-stage simplification, it is determined whether simplification is possible for the vertices generated by the first-stage simplification. In the example shown in FIG. 17, as a result of determining that the vertex division region within the range surrounded by the dotted line in (b) shown in FIG. 17 can be simplified, the vertices of the vertex division region are simplified, resulting in the state shown in (c) shown in FIG. 17. Note that the determination conditions for whether the first-stage simplification is possible and the determination conditions for whether the second-stage simplification is possible may be the same or different.
[0132] Regarding the determination of whether simplification is possible, the specific method is arbitrary. In this embodiment, as conditions for the above determination, conditions related to the shape of the voxel object and conditions related to the material are used. In this embodiment, when both the conditions related to the shape of the voxel object and the conditions related to the material are satisfied, it is determined that simplification is possible, and when at least one of the conditions related to the shape of the voxel object and the conditions related to the material is not satisfied, it is determined that simplification is impossible.
[0133] The condition regarding the shape means, for example, that the shape formed by each vertex before simplification and the shape formed by each vertex after simplification are not significantly changed. For example, whether the shape formed by each vertex is not significantly changed before and after simplification can be determined by calculating an index indicating the error between the mesh before simplification and the mesh after simplification and checking whether the index is less than or equal to a predetermined allowable value. Also, for example, when the shape formed by each vertex before simplification is a hollow shape, but the shape formed by each vertex after simplification is not a hollow shape (that is, the information that it is hollow is lost due to simplification), it is also determined that the condition regarding the shape is not satisfied. Whether the above situation occurs can be determined, for example, based on the density of each voxel corresponding to the vertex division region to be determined. Also, for example, when the shape formed by each vertex before simplification is a shape that can be represented only by two or more vertices and cannot be represented by a single vertex, it is determined that the condition regarding the shape is not satisfied. Note that, as the condition regarding the shape of the voxel object, the same condition as the conventional method using SVO may be used.
[0134] Also, as a condition regarding materials, in the present embodiment, a condition regarding the number of types of materials set for each vertex within the above-mentioned predetermined number of vertex division regions to be simplified is used. FIG. 18 is a diagram showing an example of the condition regarding materials. (a) shown in FIG. 18 shows a case where the materials of vertices 221 to 224 are (grass), (grass), (grass and soil), and (grass and soil) respectively, and (b) shown in FIG. 18 shows a case where the materials of vertices 221 to 224 are (grass and sand), (grass), (grass and soil), and (grass and soil) respectively. In the present embodiment, the condition regarding materials is that the total number of types of materials set for each of the above-mentioned vertices to be simplified is equal to or less than a predetermined number. For example, the condition regarding materials is that it is equal to or less than the number of materials that can be set for one vertex. In the present embodiment, the above-mentioned predetermined number is 2. For example, in the case of (a) shown in FIG. 18, the total number of types of materials set for each of the vertices 221 to 224 to be simplified is two types, namely grass and soil, so the condition regarding materials is satisfied. At this time, on the condition that the above-mentioned condition regarding the shape of the object is satisfied, each of the vertices 221 to 224 is determined to be simplifiable. On the other hand, in the case of (b) shown in FIG. 18, the total number of types of materials set for each of the vertices 221 to 224 to be simplified is three types, namely grass, soil, and sand, so the condition regarding materials is not satisfied. At this time, regardless of whether the above-mentioned condition regarding the shape of the object is satisfied, each of the vertices 221 to 224 is determined to be non-simplifiable.
[0135] In the game system 1, even materials that are strictly classified into different types may have the same set properties, and a plurality of types of materials with different appearances may be prepared. For some of such a plurality of types of materials, in the determination of conditions regarding the materials, they may be regarded as the same type and the determination may be made. For example, regarding soil materials, there may be cases where a plurality of 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 plurality of types of soil materials as the same type and make a determination of conditions regarding the materials.
[0136] Here, in the present embodiment, regarding vertices, similar to voxels, up to two types of materials can be set. On the other hand, in the present embodiment, when the total number of types of materials set for each vertex to be simplified is three or more, simplification is not performed. That is, when the total number of types of materials exceeds the number of materials that can be set for one vertex, simplification is not performed. Therefore, even if the number of vertices is reduced by simplification, the information on the materials set for the vertices will not be lost due to simplification, and the information on the materials can be maintained.
[0137] In this embodiment, the material of the simplified vertex is determined based on the material of each vertex before simplification. Specifically, the game system 1 sets one or two types of materials set for the vertices before simplification as the first material and the second material for the vertices after simplification. Thereby, the information of the material can be maintained. Note that the ratio of the materials after simplification is determined based on the ratio of the materials of each vertex before simplification. In this embodiment, the ratio of the materials after simplification is calculated in the same manner as the method of calculating the ratio of the materials of each vertex using the above-described evaluation value. That is, the game system 1 calculates a weight value based on the distance between the vertex after simplification and the vertex before simplification, and based on the weight value and the density of the material at the vertex before simplification (note that the evaluation value of the material described in [2-4. Determination of Vertex Material] above can be used as the density of the material here), calculates an evaluation value for each material. Then, the ratio of the materials is calculated based on the calculated evaluation value of each material.
[0138] [2-6. Mesh Generation] In this embodiment, based on each vertex simplified as described above, a mesh of the voxel object is generated. FIG. 19 is a diagram showing an example of a mesh generated based on each vertex. Note that the square shown in FIG. 19 indicates the above-described vertex division region, or a vertex division region in which a plurality of vertex division regions are combined into one by simplification. As shown in FIG. 19, the game system 1 generates a mesh composed of polygons having sides that are straight lines connecting adjacent vertices in the vertex division region. Each polygon constituting the mesh is a triangle or a quadrilateral.
[0139] 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.
[0140] In this embodiment, the game system 1 generates the display mesh and the determination mesh based on the data of the above-mentioned SVO (that is, based on each simplified vertex). According to this, by sharing the vertex data used for generating the two types of meshes, the efficiency of processing can be improved. 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.
[0141] In this embodiment, the game system 1 generates the determination mesh to have a simpler shape than the display mesh. Specifically, the game system 1 reduces the number of vertices of the determination mesh compared to the number of vertices of the display mesh. Here, in this embodiment, the SVO data is data that holds the data of the vertices before simplification and the data of the simplified vertices in an octree structure, and also includes the data used for determining whether simplification is possible. This data includes, for example, the data of vertices calculated as candidates for the vertices after simplification (referred to as temporary vertices), and the data of the above-mentioned index indicating the error between the vertices before simplification and the temporary vertices. For example, the game system 1 may use, for the generation of the determination mesh, those vertices among the temporary vertices for which the above index is equal to or less than a predetermined threshold (this threshold is set to be greater than the above tolerance 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 detailedly represented.
[0142] Note that in other embodiments, the display mesh and the determination mesh may be generated based on the same data or may be generated based on 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.
[0143] [2-6-1. Determination of the Material of the Display Mesh] Next, an example of a method for determining the material and appearance of the display mesh will be described. In the present embodiment, the game system 1 determines the material for each polygon constituting the display mesh. Although details will be described later, in the present embodiment, the polygon corresponding to the above polygon is drawn using up to two textures corresponding to up to two materials. Therefore, the game system 1 ensures that for each polygon constituting the mesh, ultimately, the number of materials set for one polygon is two or less. In other embodiments, three or more materials may be set. For example, in embodiments where there are three or more materials for voxels and vertices respectively, the same number of materials may be set for the polygon.
[0144] In the present embodiment, a quadrilateral may be formed as the polygon constituting the display mesh (see FIG. 19). When determining the material of the display mesh, the game system 1 first divides the quadrilateral constituting the display mesh into two triangles under certain conditions. Hereinafter, with reference to FIG. 20, the process of dividing the quadrilateral into two triangles will be described.
[0145] FIG. 20 is a diagram showing an example in which a quadrilateral constituting a mesh is divided into two triangles. (a) shown in FIG. 20 shows the quadrilateral before division formed by vertices 231 to 234 which are part of the vertices of the mesh, and (b) shown in FIG. 20 shows the two triangles obtained by dividing the quadrilateral. In the example shown in FIG. 20, assume that the materials of each of the vertices 231 to 234 are grass, soil, sand and grass, and grass, respectively.
[0146] In this embodiment, when there are three or more types of materials set at each vertex of a quadrilateral in total, the game system 1 determines whether the division condition is satisfied. In this embodiment, the division condition is that by dividing the quadrilateral into two triangles, the total number of types of materials set at each vertex of the triangles can be made two or less. When the division condition is satisfied, the game system 1 divides the quadrilateral into two triangles such that the total number of types of materials set at each vertex is two or less. In the example shown in FIG. 20, the materials set at each vertex 231 to 234 forming the quadrilateral are three types: grass, soil, and sand. Also, when the above quadrilateral is divided into a triangle formed by vertices 231, 232, 234 and a triangle formed by vertices 231, 233, 234, the materials set at each vertex of the former triangle are two types: sand and grass, and the materials set at each vertex of the latter triangle are two types: grass and soil (see (b) shown in FIG. 20). Therefore, for the above quadrilateral, the division condition is satisfied, so the game system 1 divides the quadrilateral into two triangles.
[0147] Note that since there are two ways to divide a quadrilateral into two triangles, when the division condition is satisfied for the triangles divided by at least one of the two ways, the game system 1 performs the above division by the method that satisfies the division condition. On the other hand, when the division condition is not satisfied for the triangles divided by either of the two ways, the division is performed by either method.
[0148] By performing the division as described above, the game system 1 can generate two triangles in which the materials set at each vertex are two or less so as to minimize the omission of information on three or more types of materials set at each vertex of the quadrilateral. Here, as described above, each polygon constituting the mesh is drawn using up to two types of textures. Therefore, by performing the above division, the game system 1 can draw the polygon using two types of textures so as to minimize the omission of information on the materials set at each vertex.
[0149] In this embodiment, the game system 1 sets a polygon corresponding to the polygon after the above division. That is, the vertices of the polygon after the above division become the vertices of the polygon of the display mesh.
[0150] In this embodiment, for each polygon constituting the display mesh, when there are three or more types of materials set for each vertex of one polygon in total, the game system 1 determines the material of the polygon by selecting two types of materials. FIG. 21 is a diagram showing an example of a method for determining the material of a polygon constituting the display mesh. In the example shown in FIG. 21, for vertex 241 of the triangular polygon constituting the display mesh, let the first material be "grass", the second material be "soil", and the material ratio of the first material: the second material be set to 0.8:0.2. Also, for vertex 242 of the above polygon, let the first material be "grass", the second material be "sand", and the material ratio of the first material: the second material be set to 0.5:0.5. Also, for vertex 243 of the above polygon, let the first material be "sand", the second material be "soil", and the material ratio of the first material: the second material be set to 0.7:0.3.
[0151] When there are three or more types of materials set for each vertex of the polygon in total, the game system 1 calculates a determination value for each material. The determination value is calculated as the value obtained by summing up the ratios for each vertex where the material is set. Then, the game system 1 selects two materials in order from the ones with larger determination values as the materials of the polygon. In the example shown in FIG. 21, the determination value of the grass material is 0.8 + 0.5 = 1.3, the determination value of the sand material is 0.5 + 0.7 = 1.2, and the determination value of the soil material is 0.2 + 0.3 = 0.5. Therefore, as the materials of the polygon shown in FIG. 21, the grass and sand materials are selected (see (a) shown in FIG. 21).
[0152] Note that the specific method of selecting the material of the polygon of the display mesh is arbitrary. In other embodiments, the material of the polygon of the display mesh may be selected by any method based on the information set at the vertices of the polygon. For example, for the material of the polygon of the display mesh, the material with the largest ratio at one vertex is specified for each vertex, and the material with the largest number of specified materials for each vertex may be selected as the material of the polygon.
[0153] In this embodiment, the material of the polygon selected as described above is indicated by the materials set at each vertex of the polygon. That is, when the material of the polygon is selected, the game system 1 changes the materials set at each vertex of the polygon (that is, the material IDs included in the vertex data) to the selected material. In the example shown in FIG. 21, for vertices 241 and 243, before the selection of the material of the polygon, the materials of grass and soil, and sand and soil are set respectively (see (a) shown in FIG. 21). When the materials of grass and sand are selected as the material of the polygon as described above, the materials set at each of vertices 241 and 243 are changed to grass and sand (see (b) shown in FIG. 21). Note that for vertex 242, since the material set before the selection is the same as the selected material of the polygon, the material is not changed. As described above, when two types of materials are selected as the material of the polygon, the information of the materials of the third type and later set at each vertex of the polygon will be deleted.
[0154] Further, the game system 1 changes the ratio of the materials set for the vertices according to the change of the materials set for the vertices. For example, for vertex 241, the content changes from the first material being grass and the second material being soil to the first material being grass and the second material being sand. Here, since the proportion of the sand material is 0, the material ratio is the first material: the second material = 1:0. In this way, the above change formally changes the material of each vertex in order to represent the material of the polygon by the materials of the respective vertices of the polygon.
[0155] According to the above, since the materials set for each vertex of one polygon are only the materials corresponding to the textures used for the drawing described later, it is possible to facilitate the execution of the drawing process using the textures.
[0156] Note that due to the above change, it is possible that the materials for a certain vertex are all changed (that is, none of the materials before the change match the materials after the change). Such a case is, for example, when the material set for the vertex before the change is soil and the materials selected as the material of the polygon are grass and sand. In such a case, the ratio of the materials at the vertex may be set based on the ratio of the materials at the other vertices of the polygon. For example, in the above example, when the first material set for one of the other vertices of the triangular polygon is grass and the material ratio is grass: sand = 1:0, and the material set for another vertex is sand and the material ratio is sand: grass = 1:0, the material ratio at the vertex may be set to grass: sand = 0.5:0.5. Further, the game system 1 may determine the ratio of the materials at the vertex in consideration of the distance between the vertex and the other vertices (for example, based on a weight value that increases as the distance gets closer).
[0157] As described above, in the present embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, 2) of the material IDs set for the vertices included in the polygon (that is, the material IDs set for the vertices of the polygon corresponding to the polygon) and determines them as the material ID of the polygon. According to this, the game system 1 can perform the drawing process while suppressing the number of textures used while reflecting the material set for the vertices in the appearance of the polygon.
[0158] Note that in the present embodiment, for all the materials of the vertices constituting the polygon, when the number of the materials is less than or equal to the predetermined number, the game system 1 determines the material as the material of the polygon, and when the material exceeds the predetermined number, based on the priority parameter of each vertex (specifically, based on the determination value calculated based on the above-described evaluation value), it selects a predetermined number of materials with high priority and determines them as the material of the polygon. As a result, even when more than a predetermined number of materials are set for each vertex in total, the material of the polygon can be set to a predetermined number or less of materials considering the priority.
[0159] As described above, in the present embodiment, the first and second materials set for each vertex of one polygon are changed to be two types of materials set for the polygon. Here, when such a change is made, there may be a discrepancy in the first and second materials set for the vertices shared by two adjacent polygons.
[0160] FIG. 22 is a diagram showing an example of materials set for each vertex of two adjacent polygons. FIG. 22 shows a state in which two polygons are formed by the respective vertices 231 to 234 shown in FIG. 20 ((b) shown in FIG. 20). In the example shown in FIG. 22, since the material of the first polygon formed by vertices 231, 233, and 234 is determined to be grass and sand, the first and second materials of these vertices should be set to grass and sand, respectively. On the other hand, since the material of the second polygon formed by vertices 231, 232, and 234 is determined to be grass and soil, the first and second materials of these vertices should be set to grass and soil, respectively. Therefore, in the example shown in FIG. 22, there is a conflict in the materials to be set for vertices 231 and 234 shared by the two polygons.
[0161] Therefore, in the present embodiment, when there is a conflict in the materials to be set for the vertices shared by the two polygons, the game system 1 adds another vertex at the same position with respect to the said vertex. (b) shown in FIG. 22 is a diagram showing an example of a state in which vertex 231' is added for vertex 231 and vertex 234' is added for vertex 234. In the example of FIG. 22, the game system 1 sets the first and second materials as grass and sand according to the material of the first polygon for vertices 231 and 234. Also, for vertices 231' and 234', the first and second materials are set as grass and soil according to the material of the second polygon. In this way, by formally setting two vertices as the vertices shared by the two polygons (that is, generating two vertex data with the same position but different materials), it is possible to suppress the occurrence of a conflict in the materials set for the vertices.
[0162] The game system 1 generates a display mesh composed of polygons whose vertices and materials are determined as described above. Also, the game system 1 performs the drawing of the voxel object by performing the drawing of the polygon based on the material information (that is, the first material and the second material) set for each vertex.
[0163] FIG. 23 is a diagram showing an example of applying a texture to a polygon. FIG. 23 shows a triangular polygon formed by the respective vertices 241 to 243 shown in FIG. 21. Note that the materials set for the respective vertices 241 to 243 are those shown in (b) shown in FIG. 21.
[0164] Regarding the position of the vertex of the polygon, the drawing is performed by a mapping that blends the texture of the first material and the texture of the second material set for the vertex at the ratio of the materials set for the vertex (that is, using the ratio as the blend rate). Note that the textures of the first and second materials used for the drawing are the textures indicated by the drawing setting information associated with each material ID associated with the data of the vertex in the above-described material data (see FIG. 12). In the example shown in FIG. 23, regarding the position of vertex 241, since the material ratio is grass:sand = 1:0, the drawing is performed using only the grass texture. Also, regarding the position of vertex 243, since the first material is sand and the material ratio is sand:grass = 1:0, the drawing is performed using only the sand texture. Also, regarding the position of vertex 242, since the first material is grass, the second material is sand, and the material ratio is grass:sand = 0.5:0.5, the drawing is performed by blending the grass texture and the sand texture at a blend rate of 0.5:0.5.
[0165] Also, for positions other than the vertices of the polygon, the game system 1 determines the blend rate by interpolating the blend rates at each vertex. Then, the textures of the two materials set for each vertex are drawn by a mapping that blends based on the interpolated blend rate. Note that the specific method of interpolation is arbitrary. As an example, the blend rate between vertices is linearly interpolated. In FIG. 23, the positions where the ratio of applying the texture of the grass material is high are shown in white, and the positions where the ratio of applying the texture of the sand material is high are shown in black. In the example shown in FIG. 23, the grass texture is applied at vertex 241. As it goes towards vertex 243, the blend ratio of the sand texture increases. At the position of vertex 242, the blend rate of grass and sand becomes 1:1, and at the position of vertex 243, only the sand texture is applied. In this way, by blending and drawing the two textures set for the polygon (that is, set for each vertex of the polygon) at the blend rate according to the ratio of the materials, the appearance at the boundary between different materials in the display mesh can be made natural. Thereby, the appearance of the display mesh with multiple types of materials set can be made natural.
[0166] [2-6-2. Determination of the Material of the Judgment Mesh] Next, an example of a method for determining the material of the judgment mesh will be described. Although details will be described later, in this embodiment, collision detection of the voxel object is performed using the judgment mesh, and processing may be executed according to the material of the voxel object for which collision is detected. Therefore, in this embodiment, the material is also determined for the judgment mesh.
[0167] In this embodiment, for each polygon constituting the determination mesh, the game system 1 ensures that only one type of material is set for each polygon. Specifically, the game system 1 determines the material set for the polygon of the determination mesh based on the material information (i.e., the first and second materials and the information on the ratio of the materials) set at the vertices of the polygon.
[0168] FIG. 24 is a diagram showing an example of a method for determining the material of a polygon constituting a determination mesh. FIG. 24 shows an example of determining the material for a triangular polygon formed by the respective vertices 241 to 243 shown in FIG. 21. Note that the materials set at the respective vertices 241 to 243 are those shown in (a) shown in FIG. 21.
[0169] When determining the material of a polygon, the game system 1 calculates a determination value for each material set at each vertex of the polygon. In this embodiment, the method for calculating the determination value is the same as the method for calculating the determination value used for selecting the material of the polygon of the display mesh. Note that the specific method for calculating the determination value is arbitrary. In other embodiments, the determination value may be calculated by any method based on the information set at the vertices of the polygon of the determination mesh.
[0170] In the example shown in FIG. 24, the determination value for each material is the same as in the case shown in FIG. 21 described above, where the determination value for the grass material is 1.3, the determination value for the sand material is 1.2, and the determination value for the soil material is 0.5. Therefore, the grass material is selected as the material of the polygon shown in FIG. 24.
[0171] As described above, in this embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, 1) of the material IDs set for the vertices included in the polygon (that is, the material IDs set for the vertices of the polygon corresponding to the polygon) and determines them as the material ID of the polygon. According to this, the game system 1 can suppress the number of materials set for the determination mesh to a predetermined number or less. As a result, it is possible to prevent the processing according to the type of material, which is performed according to the result of collision determination using the determination mesh, from becoming complicated. Note that the method of determining the material of the polygon of the determination mesh is arbitrary and is not limited to the above. In other embodiments, the material of the polygon of the determination mesh may be determined by any method based on the information set for the vertices of the polygon.
[0172] Also, in this embodiment, up to two types of materials are set for the polygons of the display mesh, while only one type of material is set for the polygons of the determination mesh. According to this, for the polygons of the display mesh, two types of textures can be used to achieve a natural appearance, and for the determination mesh, it is possible to suppress the complication of the processing performed according to the result of collision determination using the determination mesh. Note that in other embodiments, the number of types of materials that can be set for the polygons of the display mesh and the determination mesh is arbitrary. The number of materials that can be set for the polygons of the display mesh and the number of materials that can be set for the polygons of the determination mesh may both be plural, may be the same, or may be different.
[0173] In addition, in the present embodiment, the number of types of materials set for one voxel is up to two, and the number of types of materials set for one polygon in the display mesh is up to two. According to this, while suppressing the data amount of the voxel data, the information of the materials set in the voxel data can be reflected in the materials of the display mesh. Further, in the present embodiment, the number of types of materials set for the vertices set based on the voxel data is also up to two (see FIG. 16). According to this, since two types of materials can be set for the vertices generated during the process of obtaining the display mesh from the voxel data, the information of the materials set in the voxel data can be reflected in the display mesh without loss of material information during the process.
[0174] In another embodiment, the game system 1 may set materials differently for vertices used to generate a display mesh and vertices used to generate a determination mesh with respect to vertices set based on voxel data. For example, the game system 1 may set up to two types of materials for vertices used to generate a display mesh as described above, and may set one type of material for vertices used to generate a determination mesh. For the materials of the polygons of the display mesh, two types of materials may be set in the same manner as above, and as the material of the polygon of the determination mesh, one type of material may be set based on the one type of material set for each vertex of the polygon. When setting one type of material for the vertices used to generate the determination mesh, the material for which the above-described determination value calculated for each material is the largest may be set as the material of the vertex. Also by the above, as in the present embodiment, the number of types of materials set for one polygon in the display mesh can be up to two, and the number of types of materials set for one polygon in the determination mesh can be one. Therefore, it is possible to reflect the material information set in the voxel data in the display mesh, and it is possible to suppress the complexity of the processing performed according to the result of the collision determination using the determination mesh.
[0175] As described above, in this embodiment, a display mesh and a determination mesh can be set for one voxel object. However, depending on the game situation, it is not necessary to set both the display mesh and the determination mesh for one voxel object at the same time (for example, it is not necessary to set both in the processing in one frame). For example, the determination mesh may be generated in the range where collision determination is performed in the game space, and may not be generated in the range where collision determination is not performed. As an example, the game system 1 may generate a determination mesh for voxel objects within a predetermined range centered on the player character, and may not generate a determination mesh for voxel objects outside the predetermined range, but only generate a display mesh.
[0176] Also, for the display mesh, the game system 1 may store the data related to the generated mesh in the memory, and in the frame after the mesh is generated, use the data without re-executing the process of generating the mesh except for the updated range. According to this, the processing load for generating the display mesh can be reduced. Also, for the determination mesh, the data related to the generated mesh may not be stored in the memory, and the mesh may be sequentially generated as needed (for example, every time collision determination needs to be performed). According to this, the memory area used for generating the mesh can be saved.
[0177] In the above, the method of generating each mesh (that is, the display mesh and the determination mesh) based on the changed voxel data when the voxel data is changed from the initial state has been described. Note that the above method can also be used when generating each mesh based on the voxel data in the initial state, for example, at the start of the game. However, each mesh based on the voxel data in the initial state does not necessarily need to be generated based on the voxel data in the initial state at the start of the game, and may be prepared in advance before the game starts.
[0178] In other embodiments, only one of the above-described display mesh and determination mesh may be set (that is, the display and determination use the same mesh in common). In this case, the above-described display mesh may be used in common as the determination mesh, or the above-described determination mesh may be used in common as the display mesh. When the determination mesh and the display mesh are set separately, an appropriate mesh can be used according to each use, whereas when rendering and collision determination are shared using the same mesh, the processing load for setting the mesh can be reduced.
[0179] [2-7. Processing for generating in-game effects by consuming voxel objects] Next, with reference to FIGS. 25 to 38, a processing example for generating in-game effects by consuming voxel objects according to the material will be described. In the following, it is assumed that terrain objects such as the ground and walls are voxel objects. And in the present embodiment, when the player character performs an action, as a result of collision determination being performed on the voxel object, an in-game action occurs. Also, in the present embodiment, when the material of the voxel object is a specific material, an in-game effect corresponding to the specific material is generated for the voxel object. In the following description, examples of cases where the above in-game action and the above in-game effect occur will be described.
[0180] Note that the above "in-game action" is any change that occurs in the game, for example, a change caused by "processing that reflects the result of contact between objects". The "in-game action" may be based on a collision determination between a determination mesh and a determination shape corresponding to a determination target based on game processing (for example, a determination area set for an object such as a player character). The above action may occur on an object corresponding to the determination mesh, or may occur on an object corresponding to the determination target. The content of the "in-game action" may be associated with the material set for the polygon on which a collision is determined in the collision determination that is the factor causing the action (that is, the content of the action may be determined by the material).
[0181] Also, the above "in-game effect" is any effect obtained as the size of a voxel object decreases according to the progress of the game. For example, when the material of the voxel object is a specific material, an in-game effect corresponding to the specific material occurs for the voxel object. For example, the voxel object is a fragment object generated by being pulled out of the terrain object by the action of a player character, and an in-game effect associated with the material of the fragment object occurs. When the size of the fragment object becomes smaller than a predetermined standard due to the in-game effect, the in-game effect also ends.
[0182] FIG. 25 is a diagram showing an example of a game image representing the state in which a player character moves on a terrain object. In the example shown in FIG. 25, for the polygons in a partial region 251 of the determination mesh of the terrain object which is the ground, the material is set to "lava". Also, for the polygons in a region 252 other than the region 251 of the determination mesh of the terrain object, the material is set to "rock". And for the voxels corresponding to the region 251, the first material ID is set to "lava" and the material mixing ratio is set to 0 (that is, the material set in the voxels is one kind of "lava").
[0183] In the example shown in FIG. 25, the game system 1 performs a collision determination between the terrain object and the player character 201 using the determination mesh. That is, a collision determination is made as to whether or not the determination mesh of the terrain object and a determination area set for the player character (for example, an area having a predetermined shape set based on the position of the player character) are in contact. And when a collision is determined between the polygon whose material is lava and the player character 201, as a process for generating an action in the game, a process of reducing the physical strength of the player character 201 is performed. Also, in the above case, a process of causing the player character 201 to perform a predetermined reaction is performed.
[0184] 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, a 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, reduction of 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.
[0185] Also, 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.
[0186] Also, the content of the process to be 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 contacted part of the voxel object.
[0187] FIG. 26 is a diagram showing an example of a game image representing a state in which the player character 201 pulls out the fragment object 252 from the terrain object 202. As shown in FIG. 26, in the present embodiment, the user 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 the fragment object 252 and holding it. As an action in the game caused by the pull-out action, the game system 1 erases a part of the terrain object 202 and generates the fragment object 252.
[0188] For example, when a pulling action is performed, the game system 1 executes the following process. For example, when a user performs an operation input to cause the player character 201 to perform a pulling action, the game system 1 causes the player character 201 to perform an action of digging forward and grabbing, and performs a collision determination. When a collision between the player character 201 performing the pulling action and the terrain object 202 is determined, an update range 253 is generated based on the position and orientation of the player character 201. For example, the update range 253 is generated in a predetermined direction (e.g., forward) with respect to the player character 201. Note that the shape and size of the update range 253 may be determined in advance so as to correspond to the type and level of the action of the player character 201. 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 the lower figure in FIG. 26). In the present embodiment, the density of each voxel corresponding to the update range 253 is decreased, but the voxels to which the density is decreased may be at least some of the voxels corresponding to the update range 253.
[0189] Also, in the above, it is assumed that the voxel object corresponding to the update range 253 is unconditionally deformed by the pulling 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 voxels. 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 increase amount of the damage may be determined according to the action performed on the voxel object.
[0190] In addition, the game system 1 generates a fragment object 252 that represents the portion of the terrain object 202 that has been erased. For example, as illustrated in the lower diagram of FIG. 26, the game system 1 generates the fragment object 252 while having the player character 201 hold it based on a pulling action. The fragment object 252 is a voxel object and 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. A unique voxel space different from the voxel space of the voxels corresponding to the terrain object 202 etc. is defined for the fragment object 252.
[0191] The game system 1 determines the material of the fragment object 252. As an example, 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 portion of the terrain object 202 that has been erased. As is clear from the above description, the fragment object 252 is not actually a part of the terrain object 202. However, by being generated along with the erasure of a part of the terrain object 202 and the material of the erased portion of the terrain object 202 being inherited by the fragment object 252, an impression can be given to the user as if the player character 201 has taken out a part of the terrain object 202 by a pulling action. Note that, as another example, the material of the fragment object 252 may be determined based on the material set for the voxel data in the voxels that contact the update range 253.
[0192] 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 (for example, one 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. When the determination mesh within the update range 253 includes polygons set with different types of materials, it is considered that it is difficult for the user 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 user's will. In contrast, in this embodiment, by setting a priority for the material set as the material of the fragment object 252, the possibility of the above-mentioned inconvenience occurring can be reduced. In other embodiments, the game system 1 may determine the material with the highest material mixing ratio among the materials set for each polygon of the determination mesh within the update range 253 as the material of the fragment object 252. Furthermore, not only the priority, but also a setting to exclude a specific material from the extraction target may be performed. For example, when the determination mesh within the update range 253 includes a polygon with a material of rock and a polygon with a material of lava, if the material of the fragment object 252 is set to lava, the physical strength of the player character 201 may decrease when the player character 201 grips the fragment object 252 by the extraction action (it is assumed that, as described in FIG. 25, the material of lava is set to have the property of decreasing the physical strength of the player character 201 when contacted). Therefore, for materials that cause damage such as lava, they may be excluded from the extraction target so that they are not included in the material of the fragment object 252.
[0193] FIG. 27 is a diagram showing an example of a game image representing a state in which a fragment object 254 is generated when the player character 201 destroys the terrain object 202. As shown in FIG. 27, in the present embodiment, the user 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, similar to the case of the above-described pulling-out action, erases a part of the terrain object 202 and generates a fragment object 254. 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 pulling-out action, after the punch action, the fragment object 254 is not held by the player character 201 and is arranged around the position where the punch action is performed (see the lower figure in FIG. 27).
[0194] When a punch action is performed, the game system 1 specifically executes the following processes. For example, when a user performs an operation input to cause the player character 201 to perform a punch action, the game system 1 causes the player character 201 to perform an action of punching forward and performs a collision determination. And when a collision between the player character 201 performing the punch action and the terrain object 202 is determined, an update range 255 is generated based on the position and orientation of the player character 201. For example, the update range 255 is generated in a predetermined direction (for example, forward) with respect to the player character 201. Note that the position, shape, and size of the update range 255 by the punch action may be the same as or different from the update range 253 by the above-described extraction action. Then, the game system 1 decreases the density of the voxels corresponding to the update range 255. As a result, similar to the above-described extraction action, also by the punch action, the terrain object 202 is deformed so that the portion within the update range 255 is erased (see the lower figure in FIG. 27). Note that, similar to the extraction action, for the punch action, instead of unconditionally deforming the voxel object corresponding to the update range 255, the game system 1 may increase the amount of damage set to the voxels within the update range 255 according to the punch action, and decrease the density in 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 255.
[0195] In addition, the game system 1 generates a fragment object 254 corresponding to the portion of the terrain object 202 that has been erased. That is, the game system 1 generates the fragment object 254 without giving it to the player character 201 based on the above punch action (for example, in a state where it is arranged around the position where the punch action was performed). The fragment object 254 is a voxel object and may be generated so as to have a shape corresponding to the portion of the terrain object 202 that has been erased, or may have a predetermined shape.
[0196] The game system 1 determines the material of the fragment object 254. The material of the fragment object 254 is determined based on the material set for the polygon in the determination mesh that contacts the update range 255 among the determination meshes of the terrain object 202. The material of the fragment object 254 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 255. According to this, the material of the fragment object 254 can be made the same as the material of the erased portion of the terrain object 202. Also, when the fragment object 254 is generated along with the partial erasure of the terrain object 202 and the material of the erased portion of the terrain object 202 is inherited by the fragment object 254, it is possible to give the user an impression that a part of the terrain object 202 destroyed by the punch action of the player character 201 has occurred as the fragment object 254.
[0197] In the present embodiment, the material of the fragment object 254 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 255. According to this, it is possible to generate a fragment object 255 that more accurately reflects the material composition of the portion of the terrain object 202 erased by the punch action.
[0198] Note that the method for determining the material of the fragment object 252 or 254 taken out by the above extraction action or the above punch action is arbitrary. For example, the method for determining the material of the fragment object 252 or 254 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 253 or 255, the material set for the most polygons may be determined as the material of the fragment object 252 or 254. Also, for example, among each polygon of the determination mesh within the update range 253 or 255, 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 201 that performs the extraction action or the punch action) may be determined as the material of the fragment object 252 or 254. Also, in other embodiments, a plurality of types of materials may be set for the fragment object 252 or 254.
[0199] In this embodiment, the user can perform various actions using the fragment object generated by being taken out from the terrain object as described above. For example, in this embodiment, when the material of the fragment object is a specific material, a game effect corresponding to the specific material is generated for the fragment object, and the size of the fragment object is reduced according to the progress of the game. Hereinafter, the first example to the sixth example will be described as the in-game effects generated by the above fragment object.
[0200] (First Example) As a first example, an example in which the player character 201 performs an action of flying with the fragment object generated as described above (hereinafter referred to as "flying action") will be described. FIG. 28 is a diagram showing an example of a game image representing a state in which the player character 201 performs a flying action with the fragment object 256 in the game space.
[0201] In this embodiment, when the material of the fragment object taken out from the terrain object as described above is composed of flying stones (rocket stones) (fragment object 256 shown in FIG. 28), the player character 201 can be made to perform a flying action while holding the fragment object 256. Note that the user can cause the player character 201 to perform an action of lifting the fragment object 256 that is generated in response to the punch action and placed on the ground by a predetermined operation input. Also, due to the above-described pulling action or the action of holding the fragment object 256 after the punch action, the player character 201 is in a state of holding the fragment object 256 (see the upper figure in FIG. 28). In this state, the game system 1, as a flying action according to the operation input by the user, causes the player character 201 holding the fragment object 256 to float in the air in the game space and perform an action of rising in the direction according to the operation input (see the lower figure in FIG. 28).
[0202] In the first example, when the material of the fragment object 256 is a flying stone, an effect of ascending in the air is generated for the fragment object 256 as a game effect corresponding to the flying stone. Specifically, when the player character 201 holds the fragment object 256, a force that ascends the game space is constantly applied to the fragment object 256. And while the player character 201 holding the fragment object 256 is ascending in the air, the user can control the flying direction by performing a predetermined operation input (for example, an operation input of tilting the analog sticks 32 and 52). Also, while the player character 201 holding the fragment object 256 is flying in the air, the user can cause the player character 201 to perform an action of releasing the held fragment object 256 by performing a predetermined operation input (for example, an operation input of pressing the first R button 60). Further, the user can cause the player character 201 to perform an action of throwing the held fragment object 256 by a predetermined operation input (for example, an operation input of pressing the ZR button 61). In this case, since the player character 201 loses the force of ascending in the air by the fragment object 256, it falls toward the ground due to the gravity acting on the game space. Also, the fragment object 256 separated from the player character 201 also falls toward the ground due to the gravity acting on the game space because the effect of ascending in the air ends.
[0203] As shown in FIG. 29, the size of the fragment object 256 in a state of obtaining the effect of ascending in the air becomes smaller as the flight time elapses. And when the size of the fragment object 256 becomes smaller than a predetermined standard (for example, a size that is 10% of the initial size), the fragment object 256 is erased from the game space and the effect of ascending in the air ends. Therefore, even when the player character 201 holds the fragment object 256, when the size of the fragment object 256 becomes smaller than the predetermined standard, the player character 201 loses the force of ascending in the air by the fragment object 256.
[0204] As described above, a unique voxel space is defined for the fragment object 256 taken out from the terrain object, triggered by the fact that it has been taken out. In the first example, with the state where the above has been taken out and the unique voxel space is defined as the initial size of the fragment object 256 (that is, the size is 100%), as time elapses during the period when the effect of rising in the air is generated, the size of the fragment object 256 is linearly scaled and reduced at a predetermined rate. Here, the above scaling is a process of reducing the size of the fragment object 256 by reducing the size of the unique voxel space defined in the fragment object 256 within the game space. That is, the above scaling is a process of collectively reducing all the voxels included in the unique voxel space to shrink the unique voxel space itself, and the voxel data in the voxels does not change.
[0205] Note that, as described above, the fragment object 256 taken out from the terrain object is sized to the above initial size of 100%. This is the case regardless of the size of the fragment object 256 taken out from the terrain object. No matter what size is taken out from the terrain object, in the taken-out state, its size is set to the above initial size of 100%. And, as time passes during the period when the fragment object 256 is generating the effect of rising in the air, the size of the fragment object 256 linearly scales down at a predetermined rate and thus becomes smaller. As a result, the flightable time of the player character 201 is a fixed time regardless of the size of the fragment object 256 taken out from the terrain object and no matter what size is taken out from the terrain object. Note that in the first example, when the player character 201 releases the fragment object 256 during flight, the fragment object 256 is placed in the game space in a reduced state where its size has been consumed according to the flight time up to that point. And when the player character 201 holds the fragment object 256 in the above reduced state again, the player character 201 can obtain the effect of rising in the air by the fragment object 256 until the remaining size from the reduced state becomes smaller than a predetermined standard. At this time, when the above remaining size of the fragment object 256 is smaller than the above initial size, the flight time during which the player character 201 can obtain the effect of rising in the air by using the fragment object 256 becomes shorter compared to the case of the above initial size.
[0206] Thus, in the first example, when the material of the fragment object is a flying stone, the fragment object is made to generate the effect of rising in the air as the in-game effect corresponding to the flying stone, and the size of the fragment object is reduced according to the elapsed flight time. Thereby, the player character can be made to perform an action such as taking out a fragment object from a terrain object, and an effect generated by consuming the object can be generated according to the material of the taken-out object.
[0207] In the description of the first example above, an example was used in which the player character 201 obtains the in-game effect generated by the fragment object 256 by having the fragment object 256. However, the manner in which the player character 201 obtains the in-game effect is arbitrary. For example, based on a predetermined operation input (for example, an operation input for pressing the ZL button 39), when the player character 201 gets on the fragment object 256, an effect of rising into the air from the fragment object 256 may occur, and the player character 201 may obtain the effect.
[0208] Also, in the description of the first example above, an example was used in which the size of the fragment object 256 decreases as the flight time of the fragment object 256 in a state of obtaining the effect of rising into the air elapses. However, the size of the fragment object 256 may change based on other parameters. For example, the size of the fragment object 256 may decrease according to the flight distance or rising distance of the fragment object 256. In this case, in a state where the player character 201 using the fragment object 256 is stopped in the air and hovering, since the consumption of the decrease in the size of the fragment object 256 does not progress, it becomes possible to stay in the air for a relatively long time. Also, the size of the fragment object 256 in a state of obtaining the effect of rising into the air may be gradually decreased. In this case, the reduction by the above scaling may be performed every time the flight time, flight distance, rising distance, etc. of the fragment object 256 in a state of obtaining the effect of rising into the air reach a predetermined threshold value.
[0209] In the description of the first example above, an example in which the size of the fragment object 256 in a state where the effect of ascending in the air is obtained decreases at a predetermined rate was used, but it may decrease by other means. As an example, the size of the fragment object 256 may decrease by a predetermined amount according to the obtaining of the above effect. In this case, the time and distance during which the player character 201 can obtain the above effect become longer as the size of the fragment object 256 taken out from the terrain object is larger. Therefore, variations in the effects obtained depending on the size of the fragment object 256 used by the player character 201 can be enriched. As another example, the size of the fragment object 256 may decrease by a predetermined ratio or a predetermined amount according to the number of times the above effect is obtained (for example, the number of flights). Also, the flightable time, flightable distance, ascendable distance, etc. using the fragment object 256 may increase or decrease depending on the type of material of the fragment object 256, the method of using the fragment object 256 by the player character 201, the ability of the player character 201, etc.
[0210] In the description of the first example above, an example in which an effect of ascending from the fragment object 256 occurs was used, but other effects may occur. For example, when the material of the fragment object 256 is a flying stone, an effect of being able to fly freely in the air is generated for the fragment object 256 as an in-game effect corresponding to the flying stone, and the size of the fragment object may be decreased according to the elapsed time of flight.
[0211] (Second Example) As a second example, an example in which the player character 201 performs an action of sliding on a predetermined path set in the game space while holding the fragment object generated as described above (hereinafter referred to as "sliding action") will be described. FIG. 30 is a diagram showing an example of a game image representing a state in which the player character 201 holds the fragment object 257 and performs a sliding action along the wire rope 301 provided in the game space.
[0212] In this embodiment, when the material of the fragment object taken out from the terrain object as described above is composed of materials that can be held by the player character 201 (fragment object 257 shown in FIG. 30), the player character 201 can be made to perform a sliding action while holding the fragment object 257. Here, the above-mentioned holdable material is set with the property of being extractable from the terrain object, which is a voxel object, as the property information included in the above-mentioned material data, and is also set with the property of having a hardness that can maintain its shape within a certain period. For example, the above-mentioned holdable material is a solid material such as rock, soil, sand, wood, concrete, metal, and rock slab, excluding materials with liquid properties or materials with properties that significantly reduce the physical strength of the contacted player character. As described above, the player character 201 is in a state of holding the fragment object 257 by the above-mentioned extraction action or the action of having the fragment object 257 after the above-mentioned punch action. In this state, the game system 1 causes the player character 201 to hang with the fragment object 257 held on the wire rope 301 installed using the height difference of the terrain in the game space in response to the operation input by the user, thereby performing a sliding action of moving on the wire rope 301.
[0213] In the second example, when the material of the fragment object 257 is the above-mentioned holdable material, an effect of moving on a predetermined path (wire rope 301) set in the game space is generated as an in-game effect corresponding to the material for the fragment object 257. Specifically, when the player character 201 holds the fragment object 257 and is hanging on the wire rope 301, a force to slide along the wire rope 301 is constantly applied to the fragment object 257. And while the player character 201 holding the fragment object 257 is sliding, the user can accelerate / decelerate the sliding speed by performing a predetermined operation input (for example, an operation input of tilting the analog sticks 32 and 52). Also, while the player character 201 holding the fragment object 257 is sliding, the user can control the movement of the player character 201 that jumps off the wire rope 301 once by performing a predetermined operation input (for example, an operation input of pressing the A button 53). Further, the user can control the movement of the player character 201 that releases the held fragment object 257 and detaches from the wire rope 301 by performing a predetermined operation input (for example, an operation input of pressing the ZL button 39). Also, the user can control the movement of the player character 201 to perform a jump action and detach from the wire rope 301 by performing a predetermined operation input (for example, an operation input of pressing the A button 53).
[0214] As shown in FIG. 30, the fragment object 257 in a state of obtaining the effect of sliding on the wire rope 301 becomes smaller in size according to the sliding distance. And when the size of the fragment object 257 becomes smaller than a predetermined standard, the fragment object 257 is erased from the game space and the sliding effect ends. Therefore, when the size of the fragment object 257 becomes smaller than a predetermined standard during sliding, the player character 201 loses the force to slide on the wire rope 301 and will fall from the wire rope 301.
[0215] Also in the second example, similar to the first example described above, with the state of the fragment object 257 from which the above was taken out and the unique voxel space defined as the initial size, according to the sliding distance that generates the sliding effect (that is, the parameter obtained by multiplying the sliding speed and the sliding time), the size of the fragment object 256 is linearly scaled and reduced at a predetermined ratio. Therefore, in the second example, just having the fragment object 257 by the player character 201 does not reduce the size of the fragment object 257, and the size of the fragment object 257 does not become smaller during the period when the player character 201 jumps off the wire rope 301 temporarily and jumps during the sliding action or after leaving the fragment object 257 and detaching from the wire rope 301 to end the sliding action.
[0216] In addition, in the second example, in addition to the above sliding distance, based on the hardness of the material of the fragment object 257, the size of the fragment object 257 is reduced. Specifically, the softer the hardness of the material of the fragment object 257, the larger the ratio for reducing the size of the fragment object 257. Thereby, when the hardness of the material of the fragment object 257 is soft, the sliding distance that the player character 201 can obtain by using the fragment object 257 for sliding is shorter compared to when the hardness of the material is hard. Also, when the material of the fragment object 257 is set to have an indestructible hardness, the size of the fragment object 257 may not be reduced. Therefore, the variations in the effects obtained depending on the type of material of the fragment object 257 used by the player character 201 can be enriched.
[0217] Thus, in the second example, when the material of the fragment object is a material that can be held by the player character 201, an effect of sliding on a predetermined path is generated on the fragment object as an in-game effect corresponding to the material, and the size of the fragment object is reduced according to the sliding distance. As a result, the player character can be made to perform an action of taking out the fragment object from the terrain object, and an effect generated by consuming the object can be generated according to the material of the taken-out object.
[0218] In the description of the second example above, an example in which the size of the fragment object 257 decreases according to the sliding distance of the fragment object 257 in a state where the sliding effect is obtained is used. However, the size of the fragment object 257 may change based on other parameters. For example, the size of the fragment object 257 may decrease according to the sliding time of the fragment object 256. Also, the size of the fragment object 257 in a state where the sliding effect is obtained may be gradually reduced. In this case, the reduction by the above scaling may be performed every time the sliding distance, sliding time, etc. of the fragment object 257 in a state where the sliding effect is obtained reach a predetermined threshold value.
[0219] In the description of the second example above, an example in which the size of the fragment object 257 in a state where the sliding effect is obtained decreases at a predetermined rate is used. However, it may decrease in other manners. For example, similar to the first example, the size of the fragment object 257 may decrease by a predetermined amount each time the above effect is obtained, or the size of the fragment object 257 may decrease by a predetermined rate or a predetermined amount according to the number of times the above effect is obtained (for example, the number of sliding times). Also, the slidable distance, slidable time, etc. using the fragment object 257 may increase or decrease depending on the type of the wire rope 301, the ability of the player character 201, etc.
[0220] (Third Example) As a third example, an example in which the player character 201 performs an action (hereinafter referred to as "movement action") of moving on the terrain object while riding on the fragment object generated as described above will be described. FIG. 31 is a diagram showing an example of a game image representing a state in which the player character 201 rides on the fragment object 258 and performs a movement action in the game space.
[0221] In this embodiment, when the material of the fragment object taken out from the terrain object as described above is composed of a material that can be ridden by the player character 201 (fragment object 258 shown in FIG. 31), the player character 201 can be made to perform a movement action of moving on the terrain object while riding on the fragment object 258. Here, the material that can be ridden is set with a property that can be taken out from the terrain object, which is a voxel object, as the property information included in the above-described material data, and is also set with a property having a hardness that allows the player character 201 to ride without sinking into the inside of the fragment object. For example, the material that can be ridden is a solid material such as rock, soil, sand, wood, concrete, metal, and slate, excluding materials with liquid properties or materials with properties that significantly reduce the physical strength of the contacting player character. In addition, the user can make the player character 201 perform an action of riding on the fragment object 258 that is generated in response to the above punch action and placed on the ground by a predetermined operation input. Further, the user can make the player character 201 perform an action of riding on the fragment object 258 after placing the fragment object 258 taken out by the above pulling action on the terrain object (see the upper figure in FIG. 31). In this state, the game system 1 makes the player character 201 ride on the fragment object 258 and perform an action of moving on the terrain object 202 in the moving direction according to the operation input as a movement action according to the operation input by the user (see the lower figure in FIG. 31).
[0222] In the third example, when the material of the fragment object 258 is a material that can be ridden on as described above, as a game effect corresponding to the material, an effect of moving the player character 201 in a state of riding on the fragment object 258 on the terrain object 202 based on a user's operation input is generated for the fragment object 258. Specifically, when the player character 201 is riding on the fragment object 258, a force to move on the terrain object 202 is applied to the fragment object 258. Then, the user can control the moving direction and speed by performing a predetermined operation input (for example, an operation input of tilting the analog stick 32 or 52) while the player character 201 is riding on the fragment object 258. Also, the user can make the player character 201 perform a jump action in a state of riding on the fragment object 258 by performing a predetermined operation input (for example, an operation input of pressing the A button 53). Further, the user can make the player character 201 perform an action of getting off the riding fragment object 258 by performing a predetermined operation input (for example, an operation input of pressing the ZL button 39). In this case, since the player character 201 loses the force to move by the fragment object 258, it lands in a state at the position where it got off the fragment object 258. Also, the fragment object 258 from which the player character 201 got off also stops the movement at the position where the player character 201 got off because the effect of moving on the terrain object 202 ends.
[0223] As shown in FIG. 32, the fragment object 258 in a state where the effect of moving on the terrain object 202 is obtained decreases in size according to the moving distance. When the size of the fragment object 258 becomes smaller than a predetermined standard, the fragment object 258 is deleted from the game space, and the above-mentioned moving effect ends. For example, in the third example, as will be described later, the fragment object 258 decreases in size as its thickness decreases according to the moving distance. In this case, the game system 1 may delete the fragment object 258 from the game space and end the above-mentioned moving effect when the thickness of the fragment object 258 becomes smaller than a predetermined standard. Note that in the third example, since the consumption of the fragment object 258 depends on the moving distance, even if the player character 201 is on the fragment object 258, if it is not moving on the terrain object 202, the consumption in which the size of the fragment object 258 decreases does not progress. Thus, in the third example, as the price for obtaining the in-game effect by the fragment object 258, the size of the fragment object 258 becomes smaller.
[0224] As described above, a unique voxel space is defined for the fragment object 258 taken out from the terrain object, triggered by the fact that it has been taken out. Then, in the third example, an update range for the fragment object 258 is set at a position in the game space based on the position of the terrain object 202, and the size of the fragment object 258 is reduced by decreasing the density of the voxels corresponding to the update range in the voxel data of the fragment object 258.
[0225] For example, as shown in FIG. 32, when the fragment object 258 moves with at least a part of the lower surface thereof in contact with the surface of the terrain object 202, a thin plate-shaped update range 259 including at least the entire lower surface is set in the above-mentioned specific voxel space with reference to the contact position. Then, as described above, an SDF corresponding to the update range 259 is set, and based on the SDF of each voxel in the fragment object 258, the density of each voxel is rewritten to control the deletion of each voxel. As a result, the portion of the lower surface of the fragment object 258 corresponding to the update range 259 is deformed to be deleted, and the fragment object 258 is shaved off from the lower surface and its thickness is reduced, thereby reducing its size.
[0226] In the third example, every time a parameter based on the above-mentioned moving effect reaches a predetermined cumulative amount, a process of shaving the lower surface is executed based on the above-mentioned update range 259. For example, in the examples shown in FIGS. 31 and 32, every time the moving distance of the fragment object 258 carrying the player character 201 reaches a predetermined moving distance (that is, a threshold value for executing the shaving process), a process of shaving the lower surface of the fragment object 258 is executed step by step.
[0227] As a first example, when the above-described shaving process is executed, the fragment object 258 may have a certain thickness shaved from the lower surface. In this case, the distance that the fragment object 258 with the player character 201 mounted thereon can move depends on the thickness of the fragment object 258 taken out from the terrain object, and the thicker the taken-out fragment object 258, the longer the distance. As a second example, when the above-described shaving process is executed, the fragment object 258 may have a shaving amount based on a ratio to the whole shaved from the lower surface. In this case, the distance that the fragment object 258 with the player character 201 mounted thereon can move is a fixed distance regardless of the size (thickness) of the fragment object 258 taken out from the terrain object, and no matter what size of fragment object 258 is taken out from the terrain object. As a third example, when the above-described shaving process is executed, the fragment object 258 may have a fixed volume of shaving amount shaved from the lower surface. In this case, the distance that the fragment object 258 with the player character 201 mounted thereon can move depends on the size of the fragment object 258 taken out from the terrain object, and the larger the taken-out fragment object 258, the longer the distance.
[0228] Also, in the third example, in any of the above first to third examples, in addition to the above movement distance, based on the hardness of the material of the fragment object 258, the ratio, thickness, or amount of shaving the lower surface of the fragment object 258 by one execution of the above shaving process is changed. Specifically, the softer the hardness of the material of the fragment object 258, the larger the shaving ratio, shaving thickness, or shaving amount. Thereby, when the hardness of the material of the fragment object 258 is soft, the moving distance that the player character 201 can obtain by using the fragment object 258 is shorter compared to when the hardness of the material is hard. Therefore, the variations in the effects obtained depending on the type of material of the fragment object 258 used by the player character 201 can be enriched.
[0229] In the third example, when an action of jumping is performed with the player character 201 riding on the fragment object 258, at least one process of scraping the lower surface of the above-described fragment object 258 may be performed due to the impact of landing on the terrain object 202 after the jump. For example, the amount of scraping the lower surface of the fragment object 258 by the jump may be determined based on the height of the jump, and may be increased as the impact force of landing after the jump is greater (that is, as the height of the jump is higher).
[0230] In the third example as well, when the player character 201 gets off the fragment object 258 during movement, the fragment object 258 is arranged in the game space in a reduced state in which its size is consumed according to the moving distance so far. Then, when the player character 201 rides on the reduced fragment object 258 again and moves, the player character 201 can obtain the effect of moving by the fragment object 258 until the remaining size from the reduced state becomes smaller than a predetermined standard. At this time, the moving distance by which the player character 201 can obtain the effect of moving by using the reduced fragment object 258 becomes shorter depending on the moving distance already used for moving until the reduced state is reached.
[0231] As described above, in the third example, when the material of the fragment object is a material that can be ridden on, an effect of moving on the terrain object is generated for the fragment object as an in-game effect corresponding to the material, and the size of the fragment object is reduced according to the moving distance. Thereby, an action of taking out the fragment object from the terrain object can be caused for the player character, and an effect generated by consuming the object can be generated according to the material of the taken-out object.
[0232] In the description of the third example above, an example in which the size of the fragment object 258 decreases according to the moving distance of the fragment object 258 in a state where the effect of moving on the terrain object is obtained was used. However, the size of the fragment object 258 may change based on other parameters. As an example, the size of the fragment object 258 may decrease according to the moving time or usage time of the fragment object 258. As another example, according to the number of times the above effect is obtained (for example, the number of times of movement), the size of the fragment object 258 may become smaller such that it becomes thinner by a predetermined ratio, by a predetermined thickness, or by a predetermined amount each time. Also, the movable distance or the like using the fragment object 258 may increase or decrease depending on the material of the object that the fragment object 258 contacts when moving, the shape of the contacting surface, the capabilities of the player character 201, and the like.
[0233] (Fourth Example) As a fourth example, an example of an action of setting a light source at the position of the fragment object generated as described above in the game space and shining light on the game space will be described. FIG. 33 is a diagram showing an example of a game image representing a state in which the player character 201 holds the fragment object 261 and performs an action of shining light in the game space.
[0234] In the present embodiment, when the material of the fragment object taken out from the terrain object as described above is composed of a glow stone (fragment object 261 shown in FIG. 33), the player character 201 can be made to perform an action of setting a light source at the position of the fragment object 261 and shining light while holding the fragment object 261. As described above, the player character 201 is in a state of holding the fragment object 261 by the above-described extraction action or by the action of holding the fragment object 261 after the above-described punch action. In this state, the game system 1 sets a light source at the position of the fragment object 261 held by the player character 201 to form a range 262 where light hits in the game space.
[0235] In the fourth example, when the material of the fragment object 261 is pumice, an effect of setting a light source at the position of the fragment object 261 in the game space is generated for the fragment object 261 as an in-game effect corresponding to the pumice. For example, the game system 1 sets a placement light at the position of the fragment object 261. As an example, the game system 1 sets a point light that emits light radially from the surface of the fragment object 261 in the game space, and forms a range 262 that the light reaches. The range 262 that the light reaches may be set to any shape such as a spherical shape, an ellipsoidal shape, a conical shape, a cylindrical shape, etc. based on the type and nature of the light source.
[0236] Note that the range 262 that the light reaches formed by the fragment object 261 may generate a predetermined effect in addition to lighting the game space. For example, when another object (for example, an enemy object composed of voxel objects) is located in the range 262 that the light reaches, the material of the other object may be changed. For example, another object composed of material A may be changed to another object composed of material B when the light reaches from outside the range 262 that the light reaches formed by the fragment object 261 to inside the range 262 that the light reaches.
[0237] In the fourth example, regardless of whether the player character 201 has the fragment object 261, light is always emitted radially from the surface of the fragment object 261. For example, the user can cause the player character 201 to perform an action of throwing the held fragment object 261 by a predetermined operation input (for example, an operation input of pressing the ZR button 61). As shown in FIG. 34, when the player character 201 performs an action of throwing the fragment object 261 onto the terrain object and the fragment object 261 is placed on the terrain object, the state where light is emitted radially from the surface of the fragment object 261 is maintained, and the range 262 that the light reaches is continuously formed.
[0238] The fragmented object 261 in the state of emitting light becomes smaller in size as time elapses during which it emits light. When the size of the fragmented object 261 becomes smaller than a predetermined standard, the effect of emitting light from the fragmented object 261 ends, and the fragmented object 261 is deleted from the game space.
[0239] Also in the fourth example, similar to the first example and the second example described above, with the state of the fragmented object 261 taken out and the specific voxel space defined as the initial size, as time elapses during which the effect of emitting light is generated, the size of the fragmented object 261 is linearly scaled down at a predetermined rate.
[0240] In this way, in the fourth example, when the material of the fragmented object is a glowstone, as an in-game effect corresponding to the glowstone, an effect of setting a light source at the position of the fragmented object is generated for the fragmented object, and the size of the fragmented object is reduced according to the passage of time during which the light source is set. Thereby, it is possible to cause the player character to perform an action such as taking out the fragmented object from the terrain object, and to generate an effect caused by consuming the object according to the material of the taken-out object.
[0241] Note that also in the fourth example described above, the size of the fragmented object 261 in the state of obtaining the effect of emitting light may be gradually reduced. In this case, each time the time during which the fragmented object 261 emits light reaches a predetermined threshold, the reduction by the above scaling may be performed.
[0242] In the description of the above-described fourth example, an example in which the size of the fragment object 261 in a state where the effect of setting the light source is obtained decreases at a predetermined ratio is used, but it may decrease by other aspects. For example, similar to the first and second examples, the size of the fragment object 261 may decrease by a predetermined amount as the above effect is obtained.
[0243] (Fifth Example) As a fifth example, an example of performing an action of changing the material of other voxel objects corresponding to the fragment objects generated as described above in the game space will be described. FIGS. 35 to 37 are diagrams showing an example of a game image representing a series of states in which the player character 201 throws the fragment object 263 into the region 251 in the terrain object.
[0244] In the present embodiment, when the material of the fragment object taken out from the terrain object as described above is made of ice (the fragment object 263 shown in FIGS. 35 to 37), the user can change the material in the region 251 by performing an action of throwing the fragment object 263 into the region 251 in the terrain object by the player character 201. As described above, the player character 201 has the fragment object 263 by the above-described extraction action or by the action of having the fragment object 261 after the above-described punch action. As shown in FIG. 35, the user can cause the player character 201 to perform an action of throwing the held fragment object 263 by a predetermined operation input (for example, an operation input for pressing the B button 54). As a result, the fragment object 263 moves in the game space based on the direction in which the player character 201 performs the throwing action.
[0245] As described above, a unique voxel space independent of the voxel space of voxels corresponding to the terrain object 202 or the like is defined for the fragment object 263. The above unique voxel space can be moved / rotated within the game space for each defined fragment object 263, and the position, direction (posture), etc. of the unique voxel space within the game space are controlled. Also, the material of the polygon in the fragment object 263 is set to the material of ice. And as the property information included in the above material data, for the material of ice, a property of lowering the temperature of the contacted object (for example, the property that the temperature is below a predetermined value (for example, a sub-zero temperature)) is set. Then, using the method for determining the material of the display mesh and the determination mesh described above, the materials of the unique display mesh and the unique determination mesh of the fragment object 263 based on the material of the voxel are determined.
[0246] In the fifth example, when the fragment object 263 released by the throwing action of the player character 201 is 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.
[0247] In the example shown in FIG. 36, a part of the region 251 is changed as if the fragment object 263 cooled the region 251 and the material changed in the vicinity of the position where the fragment object 263 first contacted the region 251 of the terrain object composed of the material of lava. Specifically, the game system 1 generates an update range so as to include the contacted position, and changes the material of the voxels of the terrain object in the update range, thereby changing a part of the region 251 in the terrain object. Also, the size of the fragment object 263 is reduced by the above-described scaling so that the fragment object 263 has a shape as if it melted due to contact with the region 251 composed of the material of lava.
[0248] For example, the above update range is set to a shape corresponding to the shape when the fragment object 263 first contacts the terrain object. For the voxels of the terrain object within the update range, the lava material in the voxels is set to become obsidian material. Specifically, the voxels within the above update range corresponding to the area 251 in the terrain object have the lava material changed to obsidian material. Then, based on the materials of the changed voxels, the materials of the display mesh and the determination mesh of the terrain object are determined. In FIG. 36, the portion of the area 251 changed to obsidian material is set as the area 264. According to this, among the area 251 composed of lava material in the terrain object, the appearance of the area 264 changed to obsidian material can be made different from the appearance of the area 251 of lava material, so it is easier to give the user an impression that the fragment object 263 cooled and altered the lava material in the area 251 of the terrain object, and it is possible to represent the situation where the lava object is cooled by the fragment object 263 composed of ice material and becomes obsidian.
[0249] In addition, the size of the fragment object 263 becomes smaller as the time elapses while it is in contact with the area 251 composed of lava material. When the size of the fragment object 263 becomes smaller than a predetermined standard, the effect of cooling the area 251 composed of lava material by the fragment object 263 ends, and the fragment object 263 is deleted from the game space.
[0250] Also in the fifth example, similar to the first, second, and fourth examples described above, with the state of the fragment object 263 from which the above was extracted and the unique voxel space defined as the initial size, as time elapses while generating the effect of cooling the region 251 composed of the lava material, the size of the fragment object 263 is linearly scaled down at a predetermined rate. According to this, since the size of the fragment object 263 becomes smaller, it becomes easier to give the user the impression that the fragment object 263 composed of the ice material is melted by the lava material in the region 251 of the terrain object.
[0251] In the example shown in FIG. 37, the fragment object 263 is moving on the terrain object while further contacting the region 251 in the terrain object from the position illustrated in FIG. 36, and due to this movement, the region 251 in the terrain object is changed as if the vicinity of the position where further contact occurred was cooled by the fragment object 263 and the material changed. Also, the size of the fragment object 263 becomes smaller so that it has a shape as if it has melted further due to further contact with the region 251 in the terrain object.
[0252] Specifically, in a manner similar to the method of changing the above-described material, the game system 1 generates a new update range that includes the position where it further contacts the reduced fragment object 263, and further changes the material of the voxels of the terrain object in the new update range, thereby further changing a part of the region 251 in the terrain object. That is, the game system 1 reduces the size of the new update range according to the size of the fragment object 263 reduced by the above scaling. Note that the game system 1 generates the new update range so that the previously created update range and the new update range are smoothly connected. As a result, a smoothly connected shape is formed between the region where the material that expands each time the update range is generated changes and the region where the material has already changed (for example, region 264 shown in FIG. 37). Also, the game system 1 further reduces the size of the fragment object 263 in the same manner as the above-described scaling. According to this, since the region 264 where the material in the terrain object is changed from the lava material to the obsidian material can be further expanded, it becomes easier to give the user an impression that the fragment object 263 further cools and metamorphoses the lava material in the region 251 of the terrain object to expand the metamorphosed region. Also, since the size of the fragment object 263 is further reduced, it becomes easier to give the user an impression that the fragment object 263 is further melted by the lava material in the region 251 of the terrain object.
[0253] Note that the content of the above-described material change may be determined based on the material of the contacted terrain object, based on the material of the contacted fragment object, or based on a combination of the material of the contacted terrain object and the material of the fragment object. According to this, various changes can be made to the voxel objects that make up the terrain object and the fragment object.
[0254] Thus, in the fifth example, when the material of the fragment object is ice, if the material of the voxel of the voxel data of the terrain object corresponding to the update range based on the position of the fragment object as the in-game effect corresponding to the ice is lava material, an effect of changing the lava material to obsidian material is generated for the fragment object, and the size of the fragment object is reduced according to the elapsed time during which the change in the material occurs. As a result, an action such as taking out the fragment object from the terrain object can be caused for the player character, and an effect generated by consuming the object can be generated according to the material of the taken-out object.
[0255] Note that also in the fifth example described above, the size of the fragment object 263 in a state where the effect of changing the material is obtained may be gradually reduced. In this case, the reduction by the scaling may be performed every time the time during which the fragment object 263 changes the material reaches a predetermined threshold value.
[0256] Also, in the description of the fifth example described above, an example in which the size of the fragment object 263 in a state where the effect of setting the light source is obtained is reduced at a predetermined ratio is used, but it may be reduced by other modes. For example, similar to the first example, the second example, and the fourth example, the size of the fragment object 263 may be reduced by a predetermined amount each time the above effect is obtained.
[0257] Note that the content of the material change in the fifth example described above may be determined based on the material of the contacted terrain object, based on the material of the contacted fragment object 263, or based on a combination of the material of the contacted terrain object and the material of the fragment object 263. According to this, various changes can be caused to the voxel objects constituting the terrain object or the fragment object 263.
[0258] In addition, in the fifth example described above, the change applied to another voxel object in response to the fragment object 263 contacting the other voxel object was to change the material of the other voxel object. However, the change applied to the other voxel object is not limited to this. The above change may be to change the density of voxels in the other voxel object. For example, when the fragment object 263 contacts the area 251 of the lava material in the terrain object, a change may be made to decrease the density of the voxels of the lava material. Thereby, it is possible to represent a situation where the part of the lava material in the terrain object is cooled and shrunk by the fragment object 263 of the contacting ice material.
[0259] (Example 6) As a sixth example, an example will be described in which an action of changing the material of another voxel object is performed while performing a movement action of moving on the terrain object while riding on the fragment object generated as described above. FIG. 38 is a diagram showing an example of a game image representing a state in which the player character 201 rides on the fragment object 263 and moves into the area 251 in the terrain object in the game space.
[0260] In this embodiment, the material of the fragment object taken out from the terrain object as described above is composed of ice (fragment object 263 shown in FIG. 38), and a unique voxel space is defined for the fragment object. Then, the user can cause the player character 201 to perform a movement action of moving on the terrain object while riding on the fragment object 263 whose material is ice. As described in the third example above, the ice material is included in the materials that can be ridden on. Also, as described in the fifth example above, as property information included in the above-described material data, for the ice material, a property of lowering the temperature of the contacted object (for example, the property that the temperature is below a predetermined value (for example, a sub-zero temperature)) is assumed to be set. Then, using the method for determining the materials of the display mesh and the determination mesh described above, the materials of the unique display mesh and the unique determination mesh of the fragment object 263 based on the voxel material are determined.
[0261] Similar to the fifth example above, the user can cause the player character 201 to perform an action of getting on the fragment object 253 by a predetermined operation input (see the upper figure in FIG. 38). In this state, the game system 1, as a movement action according to the operation input by the user, causes the player character 201 to move on the terrain object 202 in the movement direction according to the operation input in a state where the player character 201 is riding on the fragment object 263 (see the upper and lower figures in FIG. 38).
[0262] In the sixth example, when the material of the fragment object 263 is an ice material on which a player character 201 riding on the fragment object 263 can move on a terrain object 202 based on a user's operation input as an in-game effect corresponding to the material, and as a result of a collision determination accompanying the movement, when it is determined that the fragment object 263 has contacted another voxel object, the game system 1 causes an effect of changing the material of the other voxel object to occur on the fragment object 263 as an in-game action. Specifically, when the player character 201 is riding on the fragment object 263, a force to move on the terrain object 202 including within the region 251 is applied to the fragment object 263. Then, the user can control the moving direction and moving speed by performing a predetermined operation input while the player character 201 is riding on the fragment object 263.
[0263] Similar to the third example above, the fragment object 263 in a state of obtaining an effect of moving on the terrain object 202 becomes smaller in size as its lower surface is shaved according to the moving distance. Specifically, when the fragment object 263 moves on the terrain object 202 outside the region 251, a thin plate-shaped update range including at least the entire lower surface is set in the unique voxel space of the fragment object 263 with reference to the position in contact with the terrain object 202. Then, as described in the third example above, an SDF corresponding to the update range is set, and based on the SDF of each voxel in the fragment object 263, the density of each voxel is rewritten to control the elimination of each voxel. As a result, the lower surface portion of the fragment object 263 corresponding to the update range is deformed so as to be eliminated, and the fragment object 258 is shaved from the lower surface and becomes thinner, thereby reducing its size.
[0264] In the example of the lower diagram of FIG. 38, as the player character 201 mounted on the fragment object 263 moves on the terrain object 202 described above, it enters the area 251 in the terrain object composed of the lava material. In this case, similar to the fifth example above, similar to the situation where the fragment object 263 enters the area 251 in the terrain object composed of the lava material and the material changes due to being cooled by the fragment object 263 near the position where it first makes contact, a part of the area 251 is changed. Specifically, the game system 1 generates an update range to include the contacted position, and changes the material of the voxels of the terrain object in the update range, thereby changing a part of the area 251 in the terrain object.
[0265] For example, similar to the fifth example above, the update range is set to a shape corresponding to the shape where the fragment object 263 enters the area 251 of the terrain object 202 and first makes contact, and for the voxels of the terrain object within the update range, the lava material in the voxels is set to become the obsidian material. Then, based on the material of the changed voxels, the materials of the display mesh and the determination mesh of the terrain object are determined. In the lower diagram of FIG. 38, the part of the area 251 changed to the obsidian material is set as the area 264.
[0266] In the sixth example, when the fragment object 263 moves within the area 251, in addition to the size decreasing due to the bottom surface being shaved according to the moving distance described above, the size of the fragment object 263 also decreases over time according to the scaling described in the fifth example so that it has a shape as if it has melted due to contact with the area 251 composed of lava material. That is, when the fragment object 263 moves within the area 251 while carrying the player character 201, in addition to shaving the bottom surface as described above, the size of the fragment object 263 decreases by performing reduction processing by scaling. Specifically, the fragment object 263 reduces its size by shaving the bottom surface according to the moving distance within the area 251 and also reduces its size by the above scaling according to the elapsed time of contact with the area 251. And when the size of the fragment object 263 becomes smaller than a predetermined standard, the fragment object 258 is deleted from the game space, the above moving effect ends, and the effect of cooling the area 251 composed of lava material by the fragment object 263 ends.
[0267] Thus, in the sixth example, when the material of the fragment object is a material that can be ridden on and a material that changes the material of other voxel objects, as in-game effects corresponding to the material, an effect of moving on the terrain object and an effect of changing the material of the other voxel object are generated for the fragment object, and while shaving its bottom surface according to the moving distance during which the effect is being generated, the size of the fragment object is reduced by scaling according to the elapsed time during which the effect is being generated. Thereby, an action such as taking out the fragment object from the terrain object can be caused for the player character, and a plurality of effects generated by consuming the object can be generated according to the material of the taken-out object.
[0268] In the above sixth example, an example was used in which a plurality of effects, such as the effect of moving on a terrain object and the effect of changing a material, were generated for a fragment object. However, the combination of the plurality of effects is arbitrary. For example, when assuming that the material of the fragment object is the material of pumice and the player character 201 is on the fragment object, as in-game effects corresponding to the material, the effect of moving on the terrain object and the effect of setting a light source at the position of the fragment object can be generated for the fragment object.
[0269] Also, the in-game effects obtained by using the fragment object, the method of reducing the size of the fragment object, and elements such as the trigger and timing for reducing the size of the fragment object, which are described in the above first to sixth examples respectively, may be in any combination. As an example, depending on each specification, the above elements may be appropriately combined. As another example, a specific specification may be set by irregularly swapping and combining the above elements. In this case, the combination of the above elements may be changed at any timing.
[0270] Also, the method of reducing the size of the fragment object by cutting a part of the above-described fragment object may cut any surface or any part of the fragment object. For example, when reducing the size of the fragment object 257 used in the above second example by cutting a part of it, the size of the fragment object 257 may be reduced by cutting the part that contacts the wire rope 301 based on the sliding distance.
[0271] In addition, the content of the process executed when an in-game effect is obtained by using the above-described fragment object is arbitrary. For example, when the size of the fragment object becomes smaller due to the in-game effect being obtained, the process may be a process of displaying an effect (for example, an effect indicating that the fragment object is being consumed) around the fragment object. At this time, the game system 1 can vary the effect according to the type and consumption amount of the material set for the polygon of the consumed part of the fragment object.
[0272] [3. Specific Examples of Processes in the Game System] Next, with reference to FIGS. 39 to 41, specific examples of information processing in the game system 1 will be described.
[0273] FIG. 39 is a diagram showing an example of various data used for information processing in the game system 1. Each data shown in FIG. 39 is stored in a memory (for example, flash memory 84, DRAM 85, and / or a memory card mounted on slot 23, etc.) accessible by the main body device 2. As shown in FIG. 39, the game system 1 stores a game program. The game program is for executing the game processing in the present embodiment (for example, the game processing shown in FIGS. 40 and 41). Note that the game program includes the above-described material data (see FIG. 12). Further, the above memory stores the above-described voxel data (see FIG. 11), update range data, mesh data, object data, in-game effect data, etc. (see FIG. 39).
[0274] The update range data is data indicating the above-described update range. In the present embodiment, the update range is represented by the above-described SDF.
[0275] Mesh data includes various data related to the mesh of the voxel object. As shown in FIG. 39, in this embodiment, the mesh data includes SVO data, display mesh data, and determination mesh data. The SVO data is data that holds each vertex calculated from the voxel data in the above-described SVO structure. In this embodiment, the SVO data includes, in addition to the data indicating the position of each vertex, data indicating the material set for each vertex (for example, data indicating the ID of the material). The display mesh data includes various data related to the display mesh. Specifically, the display mesh data includes data indicating each vertex of the display mesh and data indicating the material set for each vertex (for example, data indicating the ID of the material). The determination mesh data includes various data related to the determination mesh. Specifically, the determination mesh data includes data indicating each vertex of the determination mesh and data indicating the material set for each vertex (for example, data indicating the ID of the material).
[0276] Object data includes various data related to objects other than the voxel object (for example, player characters, virtual objects, etc.). The object data is stored for each object that appears in the game space. The object data includes, for example, data indicating the position, speed, and state of the object.
[0277] In-game effect data is obtained by reducing the size of a voxel object (for example, a fragment object) and consuming the voxel object, and is data related to the in-game effect set corresponding to the material of the voxel object.
[0278] FIG. 40 is a flowchart showing an example of the flow of game processing executed by the game system 1. FIG. 41 is a subroutine showing an example of in-game effect processing in step S7 shown in FIG. 40. The execution of the game processing is started, for example, in response to the start of the game according to the player's instruction during the execution of the game program. Note that the processing loop consisting of a series of processes from steps S1 to S15 is executed once per frame.
[0279] In the present embodiment, the processor 81 of the main body device 2 executes the processing of each step shown in FIGS. 40 and 41 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. 40 and 41 may be executed in the other information processing device. In addition, the processing of each step shown in FIGS. 40 and 41 is merely an example, and the processing order of each step may be changed, or another process may be executed in addition to (or instead of) the processing of each step as long as the same result can be obtained.
[0280] The processor 81 executes the processing of each step shown in FIGS. 40 and 41 using a memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads out the information from the memory and uses it.
[0281] In FIG. 40, the processor 81 acquires the operation data indicating the operation input by the user (step S1), and proceeds to the next step. For example, the processor 81 acquires the operation data output from each controller via the controller communication unit 83 and / or each terminal 17 and 21, and the operation data output from the main body device 2 (for example, the touch panel 13).
[0282] Next, the processor 81 designates, as a processing target, any one of the objects in the game space that require processing and for which the processing has not been completed (including the voxel objects defined by the unique voxel space), and executes, for the designated object, a process of calculating the speed and a process of reflecting the result of contact between the objects in the previous frame (step S2), and proceeds to the next step. The speed of the object is used to calculate the position of the object in the current frame in the process of step S13 described later. For example, when the designated object is the player character, the speed of the player character is calculated based on the operation data acquired in step S1. Also, when the designated object is an object not operated by the user, the speed of the object is calculated based on a rule predetermined in the game program. For example, the speed of the fragment object used by the player character 201 is set to 0 when it is placed on the terrain object and not moving, is set to the same as the speed of the player character when it is held by the player character, and is set to a speed moving in the direction based on the direction of the player character with a magnitude determined by the above rule when it is released by an action of throwing 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 the objects, friction due to contact, falling due to virtual gravity, and deceleration due to virtual air resistance are reflected in the speed determination.
[0283] In addition, the process of reflecting the result of contact between objects in the previous frame includes a process of applying the influence of contact to the object when it is determined in the collision determination (step S12 described later) in the previous frame that the objects have come into contact with each other. The above process is, for example, the following process. · When it is determined that the player character has come into contact with the 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 pulled out a part of the terrain object by a pulling action or the like in the previous frame, a process of generating a fragment object (unique voxel space, its voxel data, and mesh data) · When it is determined that the player character has come into contact with the terrain object by a punch action or the like in the previous frame, a process of generating a fragment object (unique voxel space, its voxel data, and mesh data) 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.
[0284] Next, the processor 81 determines whether an update event that updates the voxel object has occurred due to the object specified in step S2 above (step S3). For example, the determination in step S3 above is made based on the result of collision determination (step S11 described later) in the previous frame. As a first example, when it is determined that the player character has pulled out a terrain object by a pulling action or the like in the previous frame, it is determined that an update event has occurred to erase a part of the terrain object. As a second example, when it is determined that the player character has come into contact with a terrain object by a punch action or the like in the previous frame, it is determined that an update event has occurred to erase a part of the terrain object. Then, when an update event has occurred, the processor 81 proceeds to step S4. On the other hand, when no update event has occurred, the processor 81 proceeds to step S6.
[0285] In step S4, the processor 81 sets an update range for updating the voxel object in the game space and proceeds to the next step. For example, the specific content of the update range (e.g., position, shape, and size) is associated with each type of update event in the game program. The update range set in step S4 above is set to be associated with the content related to the type of update event determined to have occurred in step S3 above. In step S4 above, the processor 81 stores data indicating the set update range in the memory as update range data.
[0286] Next, for the voxels corresponding to the update range set in step S4 above, the processor 81 makes changes according to the update event (step S5), and proceeds to step S6. For example, when the processor 81 deletes or deforms the voxel object within the update range as if it has been reduced, or deforms it as if a voxel object has been added within the update range, the processor 81 updates the voxel data stored in the memory so as to change the density of the voxels corresponding to the update range (see the above [2-2. Update of voxel data]). Also, when the processor 81 changes the material of the voxel object within the update range, the processor 81 updates the voxel data stored in the memory so as to update at least one of the first material ID, the second material ID, and the material mixing ratio of the voxels corresponding to the update range.
[0287] In step S6, the processor 81 determines whether the processing of steps S2 to S5 above has been completed for all objects (including voxel objects defined by the unique voxel space) that require processing. Then, when the processing of all objects has been completed, the processor 81 proceeds to step S7. On the other hand, when the processing of any object has not been completed, the processor 81 returns to step S2 above and repeats the processing.
[0288] In step S7, the processor 81 performs in-game effect processing and proceeds to step S8. Hereinafter, with reference to FIG. 41, the in-game effect processing in step S7 above will be described.
[0289] In FIG. 41, the processor 81 determines whether or not a target object that generates an in-game effect by reducing its size is within the game space (step S21). For example, when there is a target object (e.g., the fragment object 256 in the first example) that generates the in-game effect by being held by the player character 201, when there is a target object (e.g., the fragment object 257 in the second example, the fragment object 258 in the third example, the fragment object 263 in the sixth example) that generates the in-game effect by the player character 201 moving or sliding while using it, when there is a target object (e.g., the fragment object 261 in the fourth example) that generates the in-game effect by being arranged within the game space, or when there is a target object (e.g., the fragment objects 263 in the fifth and sixth examples) that generates the in-game effect by changing the material of other voxel objects, the processor 81 makes an affirmative determination in step S21. And when there is at least one target object that generates the in-game effect within the game space, the processor 81 proceeds to step S22. On the other hand, when there is no target object that generates the in-game effect within the game space, the processor 81 ends the processing by this subroutine.
[0290] In step S22, the processor 81 determines whether or not the processing of steps S23 to S32 described later has been completed for all target objects that require processing. And when the processing of all target objects has been completed, the processor 81 ends the processing by this subroutine. On the other hand, when the processing of any target object has not been completed, the processor 81 proceeds to step S23.
[0291] In step S23, the processor 81 selects, as a processing target, any one of the target objects that require processing and for which the processing has not been completed, and proceeds to the next step.
[0292] Next, the processor 81 sets an in-game effect for the target object selected in step S23 (step S24), and advances the process to the next step. For example, the process of setting the in-game effect is performed according to the method described in the above [2-7. Process of generating an in-game effect by consuming a voxel object], and the in-game effect data stored in the memory is updated based on the set content. The process of setting the in-game effect is, for example, the following process. · When it is the fragment object 256 composed of the material of the flying stone described in the first example above, an effect of raising the player character 201 having the fragment object 256 into the air in the game space is set. · When it is the fragment object 257 composed of the holdable material described in the second example above, an effect of moving the player character 201 holding the fragment object 257 on a predetermined path (wire rope 301) set in the game space is set. · When it is the fragment object 258 composed of the mountable material described in the third example above, an effect of moving the player character 201 in a state of riding on the fragment object 258 on the terrain object 202 is set. · When it is the fragment object 261 composed of the material of the light stone described in the fourth example above, an effect of setting a light source at the position of the fragment object 261 in the game space is generated. · When it is the fragment object 263 composed of the material of ice described in the fifth example above, an effect of changing the material of other voxel objects in contact with the fragment object 263 is generated. · When it is the fragment object 263 composed of the material of ice described in the sixth example above, an effect of moving the player character 201 in a state of riding on the fragment object 263 on the terrain object 202 and an effect of changing the material of other voxel objects in contact with the fragment object 263 are generated.
[0293] Next, the processor 81 performs operation control on the target object selected in step S23 based on the in-game effect set in step S24 (step S25), and proceeds to the next step. For example, the operation control of the target object is performed according to the method described in the [2-7. Process of generating an in-game effect by consuming a voxel object] based on the operation data acquired in step S1. In step S25, the processor 81 updates the object data stored in the memory to be the content indicating the object after the operation control in step S25. Note that in one execution of step S25, for operations performed over a plurality of frames (for example, actions by the target object and / or the player character), each object is controlled to perform the progress of the operation for one frame. As a result, by repeatedly executing the process of step S25 over a plurality of frames, each object performs a series of operations related to movement and various actions. Also, when it is determined by the collision determination in step S12 described later that contact with another object has occurred and the action is hindered by the contacted other object, the action may be determined in consideration of the hindered state. Further, in the operation control in step S25, when a process of generating an update range and changing voxels within the update range is performed, instead of the process in step S25, the process may be executed in the processes of steps S3 to S5 described above.
[0294] Next, the processor 81 determines whether the current time is the timing to reduce and consume the size of the target object selected in step S23 (step S26). Then, when the current time is the timing, the processor 81 proceeds to step S27. On the other hand, when the current time is not the timing, the processor 81 returns to step S22 and repeats the process.
[0295] In step S27, the processor 81 determines whether to reduce the size of the target object selected in step S23 by scaling. If the processor 81 reduces the size of the target object by scaling, the process proceeds to step S28. On the other hand, if the processor 81 does not reduce the size of the target object by scaling, the process proceeds to step S29.
[0296] In step S28, the processor 81 reduces the size of the target object selected in step S23 by scaling and proceeds to step S29. For example, the scaling is performed according to the method described in the above [2-7. Process for generating in-game effects by consuming voxel objects], and the size of the target object after the scaling (e.g., the reduction rate from the initial size) is managed by the in-game effect data stored in the memory.
[0297] In step S29, the processor 81 determines whether to cut the lower surface of the target object selected in step S23. If the processor 81 cuts the lower surface, the process proceeds to step S30. On the other hand, if the processor 81 does not cut the lower surface, the process proceeds to step S31.
[0298] In step S30, the processor 81 cuts the lower surface of the target object selected in step S23 to reduce its size and proceeds to step S31. For example, the process of cutting the lower surface is performed according to the method described in the above [2-7. Process for generating in-game effects by consuming voxel objects], and the size of the target object after the cutting (e.g., the reduction rate from the initial size) is managed by the in-game effect data stored in the memory.
[0299] In step S31, the processor 81 determines whether the size of the target object selected in step S23 is smaller than a predetermined standard. If the size of the target object is smaller than the predetermined standard, the processor 81 proceeds to step S32. On the other hand, if the size of the target object is equal to or greater than the predetermined standard, the processor 81 returns to step S22 and repeats the process.
[0300] In step S32, the processor 81 performs an erasure process and returns to step S22 to repeat the process. For example, the processor 81 erases the target object selected in step S23 from the game space and erases the data related to the target object (voxel data (unique voxel space data), mesh data, object data, in-game effect data, etc.) stored in the memory.
[0301] Returning to FIG. 40, after the in-game effect process in step S7, the processor 81 updates the vertices of the voxel object in the game space (step S8) and proceeds to the next step. For example, if the voxel data is updated in the processes of step S5 or step S7, the processor 81 calculates new vertices based on the updated voxel data. The position of the new vertices is calculated according to the method described in [2-3. Calculation of vertices] above. Also, the material of the new vertices is calculated according to the method described in [2-4. Determination of vertex material] above.
[0302] Next, the processor 81 simplifies the vertices (step S9) and proceeds to the next step. For example, the processor 81 simplifies each vertex updated by the process of step S7 according to the method described in [2-5. Simplification of Vertices]. Then, the processor 81 updates the SVO data stored in the memory to indicate each vertex obtained by the processes of step S8 and step S9. Note that the processes of step S8 and step S9 do not necessarily recalculate the vertices for the entire voxel data, and may be executed only for the portions where the contents of the voxels are changed in the processes of step S5 or step S7.
[0303] Next, the processor 81 updates the display mesh of the voxel object based on the SVO data stored in the memory (step S10) and proceeds to the next step. Note that the positions of the vertices of the display mesh and the materials of the polygons of the display mesh (for example, the materials set for the vertices of the polygon) are calculated according to the methods described in [2-6. Generation of Mesh] and [2-6-1. Determination of Materials of Display Mesh]. In step S10, 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. Note that the processor 81 may start the processes after step S11 described later and execute them in parallel without waiting for the completion of step S10. In that case, step S10 needs to be completed before the start of step S14 described later.
[0304] Next, the processor 81 updates the determination mesh for the voxel object based on the SVO data stored in the memory (step S11), and proceeds to the next step. Note that the position of each vertex of the determination mesh and the material of each polygon of the determination mesh (for example, the material set for each vertex of the polygon) are calculated according to the methods described in the above [2-6. Generation of Mesh] and [2-6-2. Determination of Material of Determination Mesh]. In step S11 above, the processor 81 updates the determination mesh data stored in the memory so as to indicate the position and material of each vertex of the updated determination mesh.
[0305] In the example shown in FIG. 40, the generation process of the determination mesh in step S11 above is assumed to be executed every frame. However, the generation process of the determination mesh does not necessarily have to be executed every frame. For example, when the collision determination process in step S12 described later is executed only in frames that satisfy a predetermined condition, the processor 81 may execute the generation process of the determination mesh in the frame in which the collision determination is performed. Further, the processor 81 may execute the generation process of the determination mesh for the voxels within the area in the game space where the collision determination in step S12 is performed. For example, in a situation where there are no objects to be collided with other than voxel objects around the player character in the game space (that is, a situation where only the collision determination between the player character and the voxel objects around it needs to be performed), the processor 81 may execute the generation process of the determination mesh for the voxels within a predetermined range based on the player character.
[0306] Next, the processor 81 performs collision detection for each object in the game space based on the determination mesh data and object data stored in the memory (step S12), and proceeds to the next step. For example, for a voxel object, the processor 81 uses the determination mesh, and for an object that is not a voxel object, the processor 81 uses a determination region of a predetermined shape set for the object to perform collision detection. In this embodiment, the collision detection in step S12 is performed in consideration of the speed calculated in step S2 above. That is, the processor 81 performs collision detection using the position when moving at the above speed as the position of each object.
[0307] In this embodiment, the presence or absence of the following contacts, for example, is determined by the collision detection in step S12 above. · Contact between a player character that performs actions such as movement, pulling out actions, and punching actions and a terrain object · Contact between a fragment object and a player character or other objects If it is determined in the collision detection in step S12 above that the objects are in contact with each other, then in the process of step S2 in the next frame, a process that reflects the result of the contact between the objects is executed, or in the process of step S3 in the next frame, it is determined that an update event has occurred.
[0308] Next, the processor 81 controls the operation of each object in the game space (step S13) and proceeds to the next step. For example, for the player character, the processor 81 performs control to cause the player character to move and perform various actions based on the operation data acquired in step S1 above. When a predetermined action occurs, the processor 81 generates a region for collision determination corresponding to the action within the game space. Also, in response to the fact that a fragment object has been released by the throwing action of the player character, the processor 81 controls the fragment object to move in the direction in which it has been released. In one execution of the above step S13, for operations performed over a plurality of frames (for example, actions by the player character), each object is controlled so that the operation for one frame progresses. As a result, by repeatedly executing the process of step S13 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, if it is determined by the collision determination in step S12 above that the object contacts another object and the movement is obstructed by the contacted other object, the position of the object may be determined not to change. Then, in step S13 above, the processor 81 updates the object data stored in the memory to be the content indicating the object after the control in step S13 above.
[0309] Next, the processor 81 generates a game image (step S14) and proceeds to the next step. For example, the processor 81 generates a game image by performing rendering on each polygon of the display mesh of the voxel object and each polygon of the objects other than the voxel object based on a virtual camera. Note that each polygon of the display mesh is rendered using rendering settings such as a texture corresponding to the material set for the polygon according to the method described in [2-6-1. Determination of the material of the display mesh]. The game image generated in step S14 above is output to the display device and displayed once per frame in a cycle.
[0310] Next, the processor 81 determines whether to end the game (step S15). For example, the processor 81 makes an affirmative determination in step S15 when a predetermined operation input for ending the game is performed by the user or when the condition for ending the game is satisfied. Then, when the processor 81 ends the game, it ends the processing according to this flowchart. On the other hand, when the processor 81 does not end the game, it returns to step S1 above and repeats the processing. Thereafter, the series of processes of steps S1 to S15 above are repeatedly executed until it is determined in step S15 above that the game is ended.
[0311] As described above, in this embodiment, since the player character is made to perform an action such as taking out a fragment object from a terrain object and an effect generated by consuming the object can be generated according to the material of the taken-out object, the material in the voxel data can be utilized in the game.
[0312] In other embodiments, the in-game effects may vary according to other aspects. As a first example, the magnitude of the in-game effect may vary according to the remaining size of the fragment object that generates the in-game effect by decreasing in size. As a second example, the magnitude of the in-game effect may vary according to the type of material of the fragment object that generates the in-game effect by decreasing in size. As a third example, the magnitude of the in-game effect may vary according to the play level or ability of the player character that utilizes the fragment object that generates the in-game effect by decreasing in size.
[0313] Also, in the above description, an example is used in which a voxel object is defined by generating a three-dimensional mesh based on voxel data set in voxels in a three-dimensional space. However, a voxel object may be defined based on voxel data set in two-dimensional voxels.
[0314] Also, the game system 1 may be any device, such as a portable game device, any portable electronic device (such as a PDA (Personal Digital Assistant), mobile phone, smartphone, personal computer, camera, tablet, etc.). In this case, the input device for performing a user operation for operating a player character or the like does not have to be the left controller 3, the right controller 4, or the touch panel 13, etc., and may be another controller, mouse, touch pad, touch panel, trackball, keyboard, cross keys, slide pad, etc.
[0315] In the above description, an example in which the information processing is performed by the game system 1 respectively is used. However, at least a part of the above processing steps may be performed by other devices. For example, when the game system 1 is configured to be communicable with other devices (for example, another server, another information processing device, another game device, another mobile terminal, etc.), the above processing steps may be further executed by the cooperation of the other devices. In this way, by performing at least a part of the above processing steps by other devices, the same processing as the above-described processing becomes possible. Further, the above-described information processing can be executed by the cooperation between one processor or a plurality of processors included in an information processing system constituted by at least one information processing device. Further, in the above embodiment, the processor 81 of the game system 1 can perform information processing by executing a predetermined program. However, a part or all of the above processing may be performed by a dedicated circuit provided in the game system 1.
[0316] Here, according to the above-described modification example, the present invention can also be realized in a so-called cloud computing system form, a distributed wide area network, and a local network system form. For example, in the system form of a distributed local network, it is also possible to execute the above processing in cooperation between a stationary information processing device (stationary game device) and a portable information processing device (portable game device). Needless to say, in these system forms, there is no particular limitation on which device performs the above-described processing, and the present invention can be realized regardless of any processing sharing.
[0317] Further, the processing order, setting values, conditions used for determination, etc. used in the above-described information processing are merely examples, and it goes without saying that the present embodiment can be realized even with other orders, values, and conditions.
[0318] In addition, the above program may be supplied to the game system 1 not only through an external storage medium such as an external memory but also through a wired or wireless communication line. Further, the above program may be pre-recorded in a non-volatile storage device inside the device. Note that, as the information storage medium for storing the above program, in addition to a non-volatile memory, a CD-ROM, a DVD, or an optical disk-shaped storage medium similar thereto, a flexible disk, a hard disk, a magneto-optical disk, a magnetic tape, etc. may also be used. Further, as the information storage medium for storing the above program, a volatile memory for storing the above program may also be used. Such a storage medium can be referred to as a recording medium readable by a computer or the like. For example, by causing a computer or the like to read and execute the program of these recording media, various functions described above can be provided.
[0319] As described above, the present invention has been described in detail. However, the foregoing description is merely an exemplification of the present invention in all respects and is not intended to limit its scope. Needless to say, various improvements and modifications can be made without departing from the scope of the present invention. Further, those skilled in the art will understand that an equivalent range can be implemented based on the description of the present invention and common technical knowledge from the description of the specific embodiments of the present invention. Further, it should be understood that the terms used in this specification are used in the meaning commonly used in the art unless otherwise specified. Therefore, unless otherwise defined, all the technical terms and specialized terms used in this specification have the same meaning as commonly understood by those skilled in the art to which the present invention pertains. In case of contradiction, this specification (including the definitions) shall prevail.
Industrial Applicability
[0320] As described above, the present invention can be used as a game program, a game processing method, a game system, a game device, etc. that can execute a game that reflects a material with respect to the appearance and the actions that occur in the game for an object based on voxel data.
Explanation of Signs
[0321] 1… Information processing system 2… Main body device 3… Left controller 4… Right controller 11… Housing 12… Display 13… Touch panel 32, 52… Analog stick 42, 64… Terminal 81… Processor 82… Network communication unit 83… Controller communication unit 85… DRAM
Claims
1. Cause a computer of an information processing apparatus to generate and update a first mesh of a first voxel object corresponding to the first voxel data, based on the first voxel data which is voxel data defined in a virtual space, and 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 its content, and a material indicating the type of the content are set, and the vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on at least the material control a player character in the virtual space based on an operation input, 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 first voxel data corresponding to a first voxel update range set based on the position where the first action is performed, generate second voxel data in which the density and the material are set for each voxel, and the material of the voxel is set to the same material as the material determined based on the positional relationship with the position where the first action is performed, among the voxels of the first voxel data or the material of the first mesh, and a second mesh of a second voxel object corresponding to the second voxel data, and the vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on the material of the second voxel data when the material of the second voxel data is a first material, cause a first in-game effect corresponding to the first material to occur for the second voxel object, and decrease the size of the second voxel object according to the progress of the game, A game program that causes the virtual space including the first mesh and the second mesh to be drawn.
2. The first voxel data is defined in a first voxel space The second voxel data is defined in a second voxel space The game program according to claim 1, wherein the computer reduces the size of the second voxel object by reducing the size of the second voxel space in the virtual space.
3. The game program according to claim 1, wherein the computer sets a second voxel update range at a position in the virtual space based on the position of the first voxel object, and reduces the density of the voxels of the second voxel data corresponding to the second voxel update range to reduce the size of the second voxel object.
4. The game program according to claim 1, wherein the computer reduces the size of the second voxel object according to the passage of time during which the first in-game effect occurs.
5. The game program according to claim 1, wherein the computer reduces the size of the second voxel object every time the first in-game effect is generated.
6. The first voxel data is defined in a first voxel space, The second voxel data is defined in a second voxel space, The game program according to claim 4 or 5, wherein the computer reduces the size of the second voxel object by reducing the size of the second voxel space in the virtual space.
7. The game program according to any one of claims 4 to 6, wherein the computer sets a second voxel update range at a position in the virtual space based on the position of the first voxel object, and reduces the density of the voxels of the second voxel data corresponding to the second voxel update range to reduce the size of the second voxel object.
8. The game program according to any one of claims 1 to 5, wherein when the size of the second voxel object becomes smaller than a predetermined standard, the computer deletes the second voxel object and ends the first in-game effect.
9. The computer further causes the player character to perform an action of holding the second voxel object and an action of releasing it in response to a second instruction based on an operation input. The game program according to any one of claims 1 to 5, wherein when the player character holds the second voxel object, the first in-game effect is generated.
10. On the computer, Based on virtual gravity downward in the virtual space, control the movement of the player character, The game program according to claim 9, wherein as the first in-game effect, the player character holding the second voxel object is moved upward in the virtual space.
11. The game program according to claim 9, wherein on the computer, as the first in-game effect, the player character holding the second voxel object is moved on a predetermined path set in the virtual space.
12. The game program according to claim 9, wherein on the computer, as the first in-game effect, the player character on the second voxel object is controlled to move based on an operation input on the first object.
13. The hardness according to the type is set for the material, The game program according to claim 9, wherein on the computer, as the first in-game effect, the player character is moved together with the second voxel object, and the size of the second voxel object is reduced based on the hardness of the material of the second voxel object and the moving distance.
14. The game program according to any one of claims 1 to 5, wherein on the computer, as the first in-game effect, a light source is set at the position of the second voxel object in the virtual space.
15. The game program according to any one of claims 1 to 5, wherein on the computer, as the first in-game effect, when the material of the voxel of the first voxel data corresponding to the third voxel update range including the position of the second voxel object is the second material, the material is changed to the third material.
16. The first mesh includes a display mesh used for drawing and a determination mesh used for collision determination. The material of the display mesh is set by setting at least one material for each polygon of the mesh based on the material of the voxels around each vertex constituting the polygon. The material of the determination mesh is set by setting one material for each polygon of the mesh based on the material of the voxels around each vertex constituting the polygon. On the computer, Based on the collision determination between the collision shape set based on the position where the first action was performed and the determination mesh among the first meshes, the material identical to the material set for the polygon at the collision position is set for the material of the second voxel data. The game program according to any one of claims 1 to 5, wherein the first mesh is drawn by causing the display mesh to be drawn based on the vertex coordinates of the display mesh and the texture associated with the material for each polygon of the display mesh.
17. In an information processing system, Based on first voxel data which is voxel data defined in a virtual space, and 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 the content and a material indicating the type of the content are set, generate and update a first mesh which is a mesh of a first voxel object corresponding to the first voxel data, wherein the vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on at least the material. Control a player character in the virtual space based on an operation input, and in response to a first instruction based on the operation input, Cause the player character to perform a first action, Reduce the density of the voxels of the first voxel data corresponding to the first voxel update range set based on the position where the first action was performed. Second voxel data in which the density and the material are set for each voxel, wherein the material of the voxel is set to the same material as the material determined based on the positional relationship with the position where the first action was performed among the voxels of the first voxel data or the material of the first mesh, second voxel data, and a mesh of a second voxel object corresponding to the second voxel data, wherein vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on the material of the second voxel data, are generated. When the material of the second voxel data is the first material, a first in-game effect corresponding to the first material is generated for the second voxel object, and the size of the second voxel object is reduced according to the progress of the game. A game processing method for causing drawing of the virtual space including the first mesh and the second mesh.
18. The first voxel data is defined in a first voxel space. The second voxel data is defined in a second voxel space. The game processing method according to claim 17, wherein the information processing system reduces the size of the second voxel object by reducing the size in the virtual space of the second voxel space.
19. The game processing method according to claim 17, wherein the information processing system sets a second voxel update range at a position in the virtual space based on the position of the first voxel object, and reduces the size of the second voxel object by reducing the density of the voxels of the second voxel data corresponding to the second voxel update range.
20. The game processing method according to claim 17, wherein the information processing system reduces the size of the second voxel object according to the passage of time during which the first in-game effect is occurring.
21. The game processing method according to claim 17, wherein the information processing system reduces the size of the second voxel object every time the first in-game effect is generated.
22. The first voxel data is defined in a first voxel space. The second voxel data is defined in a second voxel space, The game processing method according to claim 20 or 21, wherein the information processing system reduces the size of the second voxel object by reducing the size of the virtual space in the second voxel space.
23. The game processing method according to any one of claims 20 to 22, wherein the information processing system sets a second voxel update range at a position in the virtual space based on the position of the first voxel object, and reduces the density of the voxels of the second voxel data corresponding to the second voxel update range to reduce the size of the second voxel object.
24. The game processing method according to any one of claims 17 to 21, wherein when the size of the second voxel object becomes smaller than a predetermined standard, the information processing system deletes the second voxel object and ends the first in-game effect.
25. The information processing system further In response to a second instruction based on an operation input, causes the player character to perform an action of holding and releasing the second voxel object, The game processing method according to any one of claims 17 to 21, wherein when the player character holds the second voxel object, the first in-game effect is generated.
26. The information processing system Controls the movement of the player character based on virtual gravity downward in the virtual space, The game processing method according to claim 25, wherein as the first in-game effect, the player character holding the second voxel object is moved upward in the virtual space.
27. The game processing method according to claim 25, wherein as the first in-game effect, the information processing system moves the player character holding the second voxel object on a predetermined path set in the virtual space.
28. The game processing method according to claim 25, wherein as the first in-game effect, the information processing system controls the movement of the player character on the first object while riding on the second voxel object based on an operation input.
29. The hardness according to the type is set for the material, The game processing method according to claim 25, wherein the information processing system moves the player character together with the second voxel object as the first in-game effect, and reduces the size of the second voxel object based on the hardness of the material of the second voxel object and the moving distance.
30. The game processing method according to any one of claims 17 to 21, wherein the information processing system sets a light source at the position of the second voxel object in the virtual space as the first in-game effect.
31. The game processing method according to any one of claims 17 to 21, wherein when the material of the voxel of the first voxel data corresponding to the third voxel update range including the position of the second voxel object is the second material as the first in-game effect in the information processing system, the material is changed to the third material.
32. The first mesh includes a display mesh used for drawing and a determination mesh used for collision determination. The material of the display mesh is set by setting at least one material based on the material of the voxels around each vertex constituting the polygon for each polygon of the mesh. The material of the determination mesh is set by setting one material based on the material of the voxels around each vertex constituting the polygon for each polygon of the mesh. In the information processing system, Based on the collision determination between the collision shape set based on the position where the first action is performed and the determination mesh among the first meshes, the material identical to the material set for the polygon of the collision position is set as the material of the second voxel data. The game processing method according to any one of claims 17 to 21, wherein the first mesh is drawn by causing the display mesh to be drawn based on the vertex coordinates of the display mesh and the texture associated with the material for each polygon of the display mesh.
33. Voxel data defined in a virtual space, for each of a plurality of voxels, a density indicating the degree to which the space defined by the voxel is virtually occupied by the content, and a material indicating the type of the content are at least set. Based on the first voxel data, a mesh of a first voxel object corresponding to the first voxel data is generated and updated, wherein the vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on at least the material. Based on an operation input, a player character is controlled in the virtual space, and in response to a first instruction based on the operation input, the player character is made to perform a first action. The density of the voxels of the first voxel data corresponding to a first voxel update range set based on the position where the first action is performed is decreased. Second voxel data in which the density and the material are set for each voxel, wherein the material of the voxel is set to the same material as the material determined based on the positional relationship with the position where the first action is performed among the voxels of the first voxel data or the material of the first mesh, and a mesh of a second voxel object corresponding to the second voxel data is generated, wherein the vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on the material of the second voxel data. When the material of the second voxel data is a first material, a first in-game effect corresponding to the first material is generated for the second voxel object, and the size of the second voxel object is reduced according to the progress of the game. A game system that performs rendering of the virtual space including the first mesh and the second mesh.
34. The first voxel data is defined in a first voxel space. The second voxel data is defined in a second voxel space. The game system according to claim 33, wherein the size of the second voxel object is reduced by reducing the size of the second voxel space in the virtual space.
35. The game system according to claim 33, wherein a second voxel update range is set at a position in the virtual space based on the position of the first voxel object, and the size of the second voxel object is reduced by decreasing the density of the voxels of the second voxel data corresponding to the second voxel update range.
36. The game system according to claim 33, wherein the size of the second voxel object is reduced in accordance with the passage of time during which the first in-game effect occurs.
37. The game system according to claim 33, wherein the size of the second voxel object is reduced each time the first in-game effect is generated.
38. A game device comprising a processor, wherein the processor generates and updates a first mesh of a first voxel object corresponding to the first voxel data based on the first voxel data which is voxel data defined in a virtual space and for which at least a density indicating the degree to which the space defined by each voxel is virtually occupied by the content and a material indicating the type of the content are set, the vertex coordinates of the mesh being determined based at least on the density and the material of the mesh being determined based at least on the material, controls a player character in the virtual space based on an operation input, and in response to a first instruction based on the operation input, causes the player character to perform a first action, decreases the density of the voxels of the first voxel data corresponding to a first voxel update range set based on the position where the first action is performed, generates a second voxel data for which the density and the material are set for each voxel, the material of the voxel being set to the same material as the material determined based on the positional relationship with the position where the first action is performed among the voxels of the first voxel data or the material of the first mesh, and a second mesh of a second voxel object corresponding to the second voxel data, the vertex coordinates of the mesh being determined based at least on the density and the material of the mesh being determined based on the material of the second voxel data. When the material of the second voxel data is the first material, a first in-game effect corresponding to the first material is generated for the second voxel object, and the size of the second voxel object is reduced according to the progress of the game. A game device that performs rendering of the virtual space including the first mesh and the second mesh.
Citation Information
Patent Citations
Program, recording medium, game character drawing method and game machine
JP2004062666A
Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions
JP2023178274A
Generating surface meshes from voxel models of 3D environments.
JP2024521128A
Image processing device
WO2017191702A1