Game program, game system, game processing method and game device
The game system efficiently manages voxel mesh materials through event-driven updates, allowing real-time material switching and reducing computational overhead, enhancing game visuals and interactions.
Patent Information
- Application Number
- JP2024176488
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-10-08
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2044-10-08
AI Technical Summary
Existing game technologies struggle to efficiently manage and control materials of voxel-based meshes in virtual spaces, limiting the ability to dynamically switch and update materials in real-time without significant computational overhead.
A game system and method that updates voxel data to generate meshes by determining vertex coordinates and material IDs, allowing immediate material switching through event-based updates, and supports non-voxel objects with polygon meshes, reducing the need for full voxel data updates.
Enables dynamic material changes in voxel-based objects with reduced computational load, improving visual quality and enabling seamless transitions and interactions in game environments.
Smart Images

Figure 2025113148000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a game program, a game system, a game processing method, and a game device that generate an object in a virtual space using voxel data.
Background Art
[0002] Conventionally, objects have been managed using voxel data, and a mesh of an object has been generated in a virtual space based on the voxel data (see, for example, Non-Patent Document 1).
Prior Art Documents
Non-Patent Documents
[0003]
Non-Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In a game, not only control of a mesh based on voxels but also control of materials may be required.
[0005] An object of the present invention is to provide a game program, a game system, a game processing method, and a game device that can utilize changes in the materials of a voxel mesh in a game.
Means for Solving the Problems
[0006] In order to achieve the above object, the present invention can adopt, for example, the following configurations (1) to (8).
[0007] (1) One configuration example of the game program of the present invention causes a computer of an information processing apparatus to update voxel data defined in a virtual space, where for each of a plurality of voxels, at least a density indicating the degree to which the space defined by the voxel is virtually occupied by the content and a material ID indicating the type of the content are set, based on game processing. A first mesh corresponding to the voxel data is generated or updated by determining the vertex coordinates of the mesh based on at least the density included in the voxel data and determining the material ID of the polygon of the first mesh based on at least the material ID included in the voxel data. Based on material data including at least rendering setting information including at least texture information set for the material for each type of material associated with the material ID, the rendering of each polygon of the first mesh is performed based on the rendering setting information of the material associated with the material ID of the polygon, thereby performing the rendering of the first mesh. When a first event occurs based on game processing, the computer is caused to switch the material associated with the first material ID associated with the first material from the first material to a second material.
[0008] According to the configuration of (1) above, when a first event occurs, the mesh of a specific material can be switched to another material. Also, by simply switching the material associated with the material ID, the material of the entire virtual space can be switched, and since updating of the voxel data and the mesh is not required, the material can be switched immediately.
[0009] (2) In the configuration of (1) above, when a first event occurs, the computer may further be caused to switch the material associated with the second material ID associated with the second material from the second material to the first material.
[0010] According to the configuration of (2) above, two materials can be swapped with each other.
[0011] (3) In the configuration of (2) above, when a second event occurs based on game processing in the computer, the computer is caused to generate a first voxel update range in the virtual space, reduce the density of each voxel corresponding to the first voxel update range in the virtual space among the voxel data, and further change the material ID of each voxel corresponding to a second voxel update range having a size that encloses the first voxel update range to a change destination material ID preset for each type of the material ID before the change. When a first event occurs, a third material is associated, and the material associated with the third material ID, which is the change destination material ID of the first material ID, is switched from the third material to a fourth material. When the fourth material is associated, the material associated with the fourth material ID, which is the change destination material ID of the second material ID, may be switched from the fourth material to the third material.
[0012] According to the configuration of (3) above, it is possible to perform a deformation that appears as if the inside is exposed when the density of the voxel is reduced, and it is possible to switch the material while maintaining the exposed state.
[0013] (4) In the configuration of (3) above, when no change destination material ID is set for the second material ID, the computer is caused to set a fourth material based on the same drawing setting information as the second material, and the material associated with the third material ID may be switched to the fourth material.
[0014] According to the configuration of (4) above, even when switching to a material for which no change destination material ID is set, it is possible to restore to the original material when switching again.
[0015] (5) In any one of the configurations (1) to (3) above, the computer may further cause the non-voxel object that is arranged in the virtual space and does not rely on voxel data, and includes a polygon mesh and a material ID with a first material ID set, to be drawn by causing the polygon mesh to be drawn based on the material data, thereby drawing the non-voxel object.
[0016] According to the configuration of (5) above, materials of objects other than voxels can also be switched. For example, by switching the materials of objects with a fine appearance together with voxel objects, the target of the switching effect can be made to have a high-quality appearance.
[0017] (6) In any one of the configurations (1) to (5) above, a surface object having a polygon mesh that does not rely on voxel data may be arranged on the surface of the first mesh based on the first material ID. When a first material is associated with the first material ID in the computer, the computer may cause the surface object to be drawn, and when a second material is associated with the first material ID, the computer may set the surface object to be out of the drawing target or set it to be transparent.
[0018] According to the configuration of (6) above, the visual quality can be improved by arranging a surface object on the surface of the mesh. Also, by linking whether the surface object is displayed or not when the material is switched, the surface object can be drawn as if it were the surface of the first material.
[0019] (7) In any one of the configurations (1) to (6) above, the material data may further include property information indicating the in-game action set for each type of material. In this case, the computer may further generate or update a second mesh corresponding to the voxel data and used for collision determination by determining the vertex coordinates of the second mesh based at least on the density included in the voxel data, and determining the material ID of the polygon of the second mesh based at least on the material ID included in the voxel data, and generate an in-game action corresponding to the material associated with the material ID of the polygon of the second mesh at the collision position based on the collision determination with the determination shape corresponding to the determination target based on the game processing.
[0020] According to the configuration of (7) above, since the determination mesh and the display mesh are determined separately, appropriate meshes can be used according to each use.
[0021] (8) In any one of the configurations (1) to (6) above, the material data may further include property information indicating the in-game action set for each type of material. In this case, the computer may further generate an in-game action corresponding to the material associated with the material ID of the polygon of the first mesh at the collision position based on the collision determination with the determination shape corresponding to the determination target based on the game processing.
[0022] According to the configuration of (8) above, since drawing and collision determination can be performed using the same mesh, the processing load for setting the mesh can be reduced.
[0023] Further, the present invention may be implemented in the form of a game system, a game processing method, and a game device.
Effects of the Invention
[0024] According to the present invention, for an object based on voxel data, it is possible to reflect a material change while retaining material information (for example, a material ID).
Brief Description of the Drawings
[0025]
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
[0026] [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 Figure 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.
[0027] Figure 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 Figure 1, the left controller 3 and the right controller 4 are each attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processing) in the game system 1. The main body device 2 includes a display 12. The left controller 3 and the right controller 4 are devices provided with an operation unit for the user to input.
[0028] Figure 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are each removed from the main body device 2. As shown in Figures 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. Incidentally, hereinafter, the left controller 3 and the right controller 4 may be collectively referred to as "controller".
[0029] Figure 3 is a six-sided view showing an example of the main body device 2. As shown in Figure 3, the main body device 2 includes a substantially plate-shaped housing 11. In the present embodiment, the main surface of the housing 11 (in other words, the front surface, that is, the surface on which the display 12 is provided) is generally rectangular in shape.
[0030] Note that the shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Also, the main body device 2 alone or the integrated device in which the left controller 3 and the right controller 4 are attached to the main body device 2 may be a portable device. Also, the main body device 2 or the integrated device may be a handheld device. Also, the main body device 2 or the integrated device may be a transportable device.
[0031] As shown in Figure 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.
[0032] In addition, the main body device 2 is provided with a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type (for example, a capacitance type) capable of multi-touch input. However, the touch panel 13 may be of any type, for example, a type (for example, a resistive film type) capable of single-touch input may also be used.
[0033] 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.
[0034] In addition, 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.
[0035] 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 (for example, 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 (for example, save data of an application, etc.) used in the main body device 2 and / or programs (for example, application programs, etc.) executed by the main body device 2. In addition, the main body device 2 includes a power button 28.
[0036] The main body device 2 is provided with a lower terminal 27. The lower terminal 27 is a terminal for the main body device 2 to communicate with the cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main body device 2 alone is placed on the cradle, the game system 1 can display an image generated and output by the main body device 2 on a stationary monitor. Further, in the present embodiment, the cradle has a function of charging the placed integrated device or the main body device 2 alone. Further, the cradle has a function of a hub device (specifically, a USB hub).
[0037] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In the present embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the vertical direction (that is, the y-axis direction shown in FIGS. 1 and 4). The left controller 3 can also be held in a vertically long orientation when removed from the main body device 2. 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.
[0038] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting a direction. The user can input a direction corresponding to the tilting direction (and an input of a magnitude corresponding to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may be provided with a cross key or a slide stick capable of slide input, etc. instead of the analog stick as a direction input unit. Further, in the present embodiment, it is possible to input by pressing the analog stick 32.
[0039] 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 arrow button 33, a down arrow button 34, an up arrow button 35, and a left arrow button 36) on the main surface of the housing 31. Further, the left controller 3 is provided with a recording button 37 and a -(minus) button 47. The left controller 3 is provided with a first L button 38 and a ZL button 39 at the upper left of the side surface of the housing 31. Also, the left controller 3 is provided with a second L button 43 and a second R button 44 on the side surface of the housing 31 on the side 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.
[0040] 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.
[0041] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In the present embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the vertical direction. The right controller 4 can also be held in a vertically long orientation when removed from the main body device 2. The housing 51 has a shape and size that can be held with one hand, particularly the right hand, when held in a vertically long orientation. Also, the right controller 4 can be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.
[0042] Similar to the left controller 3, the right controller 4 is provided with 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 is provided with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. Furthermore, the right controller 4 is provided with a + (plus) button 57 and a home button 58. Also, the right controller 4 is provided with a first R button 60 and a ZR button 61 at the upper right of the side surface of the housing 51. Also, similar to the left controller 3, the right controller 4 is provided with a second L button 65 and a second R button 66.
[0043] In addition, the right controller 4 is provided with a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.
[0044] FIG. 6 is a block diagram showing an example of the internal configuration of the main body device 2. In addition to the configuration shown in FIG. 3, the main body device 2 includes the components 81 to 91, 97, and 98 shown in FIG. 6. Some of these components 81 to 91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in the housing 11.
[0045] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes to be executed in the main body device 2. For example, it may be composed of only a CPU (Central Processing Unit), or it may be composed of a SoC (System-on-a-chip) including a plurality of functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various information processes by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium mounted on the slot 23, etc.).
[0046] 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.
[0047] The main body device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23 and reads and writes data to and from a predetermined type of storage medium (for example, a dedicated memory card) mounted on the slot 23 in accordance with an instruction from the processor 81.
[0048] 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.
[0049] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly) with an external device via a network. In the present embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device by a method compliant with the Wi-Fi (registered trademark) standard as a first communication mode. Further, the network communication unit 82 performs wireless communication with another main body device 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication by the second communication mode enables wireless communication with another main body device 2 arranged within a closed local network area, and realizes a function enabling so-called "local communication" in which data is transmitted and received by direct communication between a plurality of main body devices 2.
[0050] 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, but in the present embodiment, the controller communication unit 83 communicates with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0051] The processor 81 is connected to the above-described left terminal 17, right terminal 21, and lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. 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 (for example, image data and audio data) to a stationary monitor or the like via the cradle.
[0052] Here, the main body device 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). Also, the main body device 2 can communicate with a plurality of right controllers 4 simultaneously (in other words, in parallel). Therefore, a plurality of users can simultaneously input to the main body device 2 using respective sets of the left controller 3 and the right controller 4. As an example, while a first user inputs to the main body device 2 using a first set of the left controller 3 and the right controller 4, it is possible for a second user to input to the main body device 2 using a second set of the left controller 3 and the right controller 4.
[0053] Also, the display 12 is connected to the processor 81. The processor 81 displays an image generated (for example, by executing the above-described information processing) and / or an image acquired from the outside on the display 12.
[0054] 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.
[0055] The main body device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Also, although not shown, the power control unit 97 is connected to each part of the main body device 2 (specifically, each part that receives power supply from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the battery 98 to each of the above parts based on a command from the processor 81.
[0056] 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.
[0057] FIG. 7 is a block diagram showing an example of the internal configuration of the main body device 2, the left controller 3, and the right controller 4. Note that the details of the internal configuration regarding the main body device 2 are shown in FIG. 6, so they are omitted in FIG. 7.
[0058] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 by both wired communication via the terminal 42 and wireless communication without using the terminal 42. The communication control unit 101 controls the communication method that the left controller 3 performs with respect to the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. Also, when the left controller 3 is removed from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.
[0059] Also, the left controller 3 includes a memory 102 such as a flash memory. The communication control unit 101 is composed of, for example, a microcomputer (also referred to as a microprocessor), and executes various processes by executing the firmware stored in the memory 102.
[0060] 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 an operation performed on themselves to the communication control unit 101 repeatedly at an appropriate timing.
[0061] The communication control unit 101 acquires information regarding input (specifically, information regarding operations or detection results by sensors) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing predetermined processing on the acquired information) to the main body device 2. Note that the operation data is repeatedly transmitted at a rate of once every predetermined time. Note that the intervals at which the information regarding input is transmitted to the main body device 2 may be the same or different for each input unit.
[0062] When the above operation data is transmitted to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine operations on each button 103 and the analog stick 32 based on the operation data.
[0063] 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).
[0064] As shown in FIG. 7, the right controller 4 includes a communication control unit 111 that communicates with the main body device 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main body device 2 both by wired communication via the terminal 64 and by wireless communication without using the terminal 64 (specifically, communication according to the Bluetooth (registered trademark) standard), and controls the communication method that the right controller 4 performs with the main body device 2.
[0065] The right controller 4 includes the same input units as those of the left controller 3. Specifically, it includes each button 113 and the analog stick 52. These input units have the same functions as those of the left controller 3 and operate in the same manner.
[0066] 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.
[0067] [2. Overview of Processing in the Game System] Next, with reference to FIGS. 8 to 24, an overview of the processing executed in the game system 1 will be described. In the present embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters operated by a player) are arranged in a game space, which is a three-dimensional virtual space, and causes the display device to display it. 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.
[0068] [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.
[0069] FIG. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 8, in the present embodiment, a terrain object representing a terrain such as the ground is defined in shape by voxel data (that is, it is a voxel object). Each cube shown in FIG. 8 represents a terrain object. In FIG. 8, the portions that are the sides of the terrain object are shown in thick lines, but this thick line is added for the purpose of making the drawing easier to view, and in reality, the sides of the terrain object do not need to be shown thickly.
[0070] The terrain object shown in FIG. 8 is generated, for example, according to the rule that "when the parameter included in the voxel data set in the voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and when it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 8 is shown for the purpose of clearly exemplifying the relationship between the voxel and the voxel object. In the present embodiment, actually, for example, like the terrain object shown in FIG. 13 described later, a voxel object is generated according to a rule that results in a complex shape (based on voxel data). Note that the rule for determining the shape of the voxel object based on the voxel data is arbitrary. In other embodiments, the game system 1 may generate a voxel object as shown in FIG. 8 or a voxel object as shown in FIG. 13 based on the object data.
[0071] Regarding the voxel object, the shape can be changed by changing the voxel data of each voxel. FIGS. 9 and 10 are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted. That is, when the hatched portion of the terrain object shown in FIG. 9 is destroyed, the terrain object changes to the shape shown in FIG. 10. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data described later so as to indicate that there is no terrain object for the voxels in the hatched portion. Note that when the game system 1 adds a terrain object, it can easily change the shape of the terrain object by changing the voxel data of each voxel, similarly to the case of erasing the terrain object.
[0072] In this way, the game system 1 can freely change the shape of the voxel object by rewriting the voxel data. For example, when the shape of a terrain object is changed as a result of being destroyed for some reason (e.g., a player character strikes the terrain object) in the game, the game system 1 does not directly change the data indicating the outer shape of the terrain object (i.e., the mesh described later), but can freely change the shape of the terrain object by changing the voxel data used for generating the terrain object.
[0073] 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 voxel data regarding the voxels in the voxel space, and the position of the voxel object in the game space is defined by the position of the voxel space in the game space. Further, in the game space, a main voxel space set throughout the game space and a sub-voxel space set in a partial region of the game space may be set. At this time, the game system 1 stores voxel data for each voxel space.
[0074] 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.
[0075] 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.
[0076] In this embodiment, the density can take an integer value in the range from a lower limit value (for example, 0) to an upper limit value (for example, 255). In this embodiment, 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 within the voxel tends to be large, and when the value of the density is low, the ratio tends to be small. The surface shape of the voxel object is determined based on the density. In this way, the density is an index that affects the ratio of the volume occupied by the region within the voxel object within the voxel. It can also be said that the density is an index indicating the degree to which the space of the voxel is virtually occupied by the content (that is, the virtual content of the voxel object). For example, when the density is 0, the inside of the voxel is empty, when the density is 255, all of the inside of the voxel is the content of the voxel object, and when the density is a value between 0 and 255, the inside of the voxel can be occupied by the content of the voxel object at a ratio corresponding to the value. Then, based on the above density, the shape of the mesh, that is, the surface shape of the voxel object, can be determined. The mesh can also be said to be the surface of the part where the content exists in the voxel, or the boundary between the part where the content exists and the part where it does not exist in the voxel. Note that the volume occupied by the region within the voxel object generated based on the above density does not have to be exactly the volume corresponding to the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 8 and the method of generating a voxel object as shown in FIG. 13, even if they are based on the same density, the volume of the voxel object may be different.
[0077] In other embodiments, the density may indicate either a state in which the volume occupied by the region within the voxel object occupies the entire region within the voxel or a state in which the volume occupied by the region within the voxel object is not included in the region within the voxel. For example, the density data may be data that can only take 0 or 1.
[0078] 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.
[0079] As described above, in the present embodiment, the voxel data includes an ID indicating the material. However, in other embodiments, the voxel data may be a data structure including data directly indicating the content of the material (that is, the name, properties, and drawing setting information described later).
[0080] The material mixing ratio data is an example of data indicating the ratio of each material in the voxel. In the present embodiment, since the number of material IDs set in one voxel is up to two, the material mixing ratio data indicating one of the ratios of the material indicated by the first material ID and the material indicated by the second material ID can also represent the other ratio. In the present embodiment, the material mixing ratio is a value indicating the ratio of the second material to the whole composed of the first material and the second material by a value of 0 or more and 1 or less. For example, when the material mixing ratio set in a certain voxel is 0.4, it means that in the voxel, the first material and the second material are composed in a ratio of 0.6:0.4. Although details will be described later, the appearance and properties of the voxel object are determined based on the material. The material mixing ratio is used to determine the appearance and properties of the voxel object. In other embodiments, the material mixing ratio may be a value indicating the ratio of the first material. Also, the ratio of the materials in the voxel may be represented by respective values indicating the ratio of each material. In particular, in other embodiments, when three or more types of materials can be set instead of up to two types, the ratio of the materials in the voxel is represented as a plurality of values respectively indicating the ratio of each material.
[0081] 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.
[0082] The state data indicates the state set in the voxel. The specific content and number of types of the state data are arbitrary. In the present embodiment, the state data includes data indicating the amount of damage set in the voxel. Note that in other embodiments, the state data may include data indicating, for example, whether the voxel is wet (and the degree thereof).
[0083] As described above, since the voxel data includes the material ID in this embodiment, 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 is associated with the name, properties, drawing settings, and internal material ID information set for the material.
[0084] 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. To perform such a display, the material data includes information on the name of the material.
[0085] 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 · The amount of the player character's physical strength recovered when the player character destroys or acquires the voxel object · The 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.
[0086] In this embodiment, as information specifying the properties of a material, the material data includes an ID indicating the property (see FIG. 12). Although not shown, the game system 1 stores property information in which, for each prepared property, the content of the property (for example, a value indicating the above-described weight or slipperiness) is associated with the property ID. By referring to the above property information, the game system 1 can specify the specific content of the property set for the material.
[0087] The rendering settings included in the material data are information indicating settings related to rendering, such as the texture used for rendering the voxel object to which the material is set. In this embodiment, as information on the rendering settings, the material data includes the ID of the texture used for rendering the voxel object to which the material is set (see FIG. 12). Although not shown, the game system 1 stores texture information in which, for each prepared texture, the texture ID and the texture indicated by the texture ID are associated. By referring to the above texture information, the game system 1 can specify the specific content of the texture set for the material. In other embodiments, as information on the rendering settings, in addition to the texture information, any information related to the shading settings may be set. For example, the reflectivity, information related to the normal, etc. may be set.
[0088] As shown in FIG. 12, in the material data in the present embodiment, an internal material ID is associated with a material ID. When the material ID associated with the internal material ID indicates the material of the outer part of an object, the internal material ID indicates the material of the inner part of the object (hereinafter referred to as "internal material"). For example, an ID of a material representing the outer bark of a tree may be associated with an ID of a material representing the inside of the tree as the internal material ID. Also, for example, an ID of a material representing the ground surface of grass may be associated with an ID of a material representing the internal soil when the grass on the ground surface is peeled off as the internal material ID. In the present embodiment, the internal material is preset for each type of material. However, depending on the type of material, there may be a material for which the internal material is not set, that is, a material for which the internal material ID is not associated with the material ID. Although details will be described later, the internal material is used as the destination material when a material change process is executed on the voxel in which the material with which the internal material is associated is set (see [2-7. Process for switching materials] described later).
[0089] Note that in the material data in the present embodiment, the same type of value as the ID set as the material ID is set as the internal material ID. For example, in the example shown in FIG. 12, the ID of the soil material (001 in FIG. 12), which is the internal material ID associated with the ID of the grass material (003 in FIG. 12), is also set as the material ID. Therefore, by referring to the material data, it is possible to specify the name, properties, and drawing setting information for the internal material ID as well. Note that the material data may be any data structure capable of specifying information corresponding to the internal material ID. The material data may be a data structure in which the name, properties, and drawing setting information are indirectly associated with the internal material ID as described above, or a data structure in which these information are directly associated with the internal material ID.
[0090] In addition, 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 footsteps output when a player character walks on a voxel object based on the voxel.
[0091] Note that the material data may be data in any format that can specify the properties of the material and / or the 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 the rendering settings, instead of a data structure that includes a material ID and a texture ID.
[0092] Also, in the present embodiment, upon the occurrence of an event for switching materials, the material associated with the material ID targeted by the event is switched from the first material to the second material. As an example, when an event for switching a material occurs for a certain material ID, the material associated with the material ID is switched from the first material to the second material. As another example, when an event for mutually switching materials occurs for a plurality of material IDs, the material associated with the first material ID is switched from the first material to the second material, and at the same time, the material associated with the second material ID is switched from the second material to the first material. For example, in the above material data, when the first material ID is associated with the first material and the second material ID is associated with the second material, by changing the material ID corresponding to the second material from the second material ID to the first material ID, the material corresponding to the first material ID becomes the second material. In this case, by changing the material ID associated with the first material from the material ID corresponding to the first material to the first material ID, the corresponding materials can be swapped. As another method of change, the content of the material associated with the material ID targeted by the above event (information such as the name, properties, and drawing settings set for the material) may be changed to the same content as a new different material or another material. Note that the plurality of material IDs targeted by the above event may be three or more material IDs. In this case, the materials associated with the respective material IDs may be mutually switched by cyclic permutation. Also, the material for which the material ID targeted by the above event is switched may be preset in the event, or may be randomly set each time the event occurs.
[0093] As described above, when the material data is changed due to an event that switches the material, the material associated with the internal material ID may also be changed accordingly. For example, when the material associated with the internal material ID, which is the destination material ID of the changed material ID in the above event, is changed to a different material. As an example, assume that the material associated with the first material ID is switched from the first material (e.g., grass ground) to the second material (e.g., tree bark), and the material associated with the second material ID is switched from the second material to the first material. In this case, the material (e.g., internal soil) associated with the first internal material ID corresponding to the first material ID is switched to the material (e.g., tree interior) associated with the second internal material ID corresponding to the second material ID. Also, the material associated with the second internal material ID corresponding to the second material ID is switched to the material associated with the first internal material ID corresponding to the first material ID.
[0094] Note that the switching of the materials associated with the internal material IDs does not have to be mutual, and they may be switched to any material. For example, in the above example, an example of mutually switching the material associated with the first internal material ID corresponding to the first material ID to the material associated with the second internal material ID corresponding to the second material ID is used, but the material associated with the first internal material ID may be switched to a material different from the material associated with the second internal material ID.
[0095] Also, when no internal material ID is set for the material ID targeted by the above event (for example, when the material of the outer part of an object is the same as the material of the inner part of the object), it may be switched to a dummy internal material. For example, when no internal material ID corresponding to the above second material ID is set, an internal material containing the same material content as the above second material may be set, and the material associated with the above first internal material ID may be switched to the internal material. As an example, assume that the material associated with the first material ID is switched from the first material (for example, grass ground) to the second material (for example, iron), and the material associated with the second material ID is switched from the second material to the first material. In this case, the material (for example, internal soil) associated with the first internal material ID corresponding to the above first material ID is switched to the dummy internal material (for example, iron) corresponding to the above second material ID.
[0096] [2-2. Update of Voxel Data] During the game, the voxel object is deformed by updating the above voxel data. In this embodiment, when a game event (hereinafter referred to as "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).
[0097] FIG. 13 is a diagram showing an example of a game space when an update event occurs. The situation shown in FIG. 13 is a situation where the player character 201 has performed a punch action on the terrain object 202 which is a voxel object. Although details will be described later, in the example shown in FIG. 13, the voxel data is updated so that the terrain object 202 around the position where the punch action by the player character 201 hits is erased. Thereby, the state where the terrain object 202 is destroyed by the punch action by the player character 201 is expressed.
[0098] In the present embodiment, when an update event occurs, the game system 1 sets an update range (update range 203 in the example shown in FIG. 13) for updating the voxel object in the game space. The position, shape, and size of the update range are arbitrary. The position of the update range may be determined based on, for example, the position where the object related to the generated update event (for example, the player character who performed the 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. For example, the hit position or the position a predetermined distance ahead 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 so as 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 of a predetermined size as shown in FIG. 13. Further, the size of the update range may be determined according to a value indicating the degree of influence of the generated update event (for example, the strength of the punch or the size of the explosion).
[0099] 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 density being changed, the mesh of the voxel object is changed by the processing described later, so that the shape of the voxel object (the visible shape and the shape used for collision detection) 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.
[0100] In the present 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 the signed distance from a defined shape for any position. FIG. 14 is a diagram showing an example of the update range. In the example shown in FIG. 14, a spherical update range is set in the game space. For example, in the example shown in FIG. 14, among the positions in the game space, the SDF value is negative for the positions inside the shape represented by the SDF, and the SDF value is positive for the positions outside the shape represented by the SDF. In this example, it is possible to determine whether it is included in the update range depending on whether the value of the SDF is positive or negative. Also, by using the signed distance value, not only simple inside / outside determination but also processing such as correction and interpolation can be performed.
[0101] In the above, an example was described in which a change is added to the voxel object such that the voxel object within the update range is deformed as if it were erased. However, the changes added to the voxel object using the update range are not limited to this. For example, a change may be added to the voxel object such that 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). Also, a change may be added to the voxel object such that only the material of the voxels within the update range changes without changing the density of the voxels. Further, a change combining a change in the density of the voxels and a change in the material may be added.
[0102] [2-3. Calculation of Vertices] When the density of the voxels is updated as described above, the game system 1 sets vertices based on the updated voxel data. The above vertices can be the vertices of the mesh of the voxel object. Although details will be described later, in the present embodiment, the above vertices are simplified, and the simplified vertices become the vertices of the mesh of the voxel object.
[0103] FIG. 15 is a diagram showing an example of a method for setting vertices. In FIGS. 15 to 24 described below, for the purpose of making the drawings easier to view and the explanations easier to understand, voxels, vertices, meshes, etc. are represented two-dimensionally, but actually, vertices and meshes are set in a three-dimensional space based on the voxels in the three-dimensional space. In the present 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 set density indicating its existence (that is, a density equal to or higher than a reference value described later) and a voxel having a set density indicating its non-existence (that is, a density less than the reference value described later) are adjacent. Details of this method will be described below.
[0104] As described above, in this embodiment, the density set for each voxel is set within the range of 0 to 255. A voxel with a density of 0 is completely in the air, and a voxel with a density of 255 represents a state where it is completely filled. Densities between 0 and 255 are treated interpolatively and used for vertex determination. And in this embodiment, voxels with a density greater than or equal to a reference value are virtually treated as being inside the object, and voxels with a density less than the reference value are treated as being outside the object. It can also be said that voxels with a density greater than or equal to the reference value are virtually treated as voxels indicating existence, and voxels with a density less than the reference value are 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, assume that the density is 0 in voxel 211 and other outer voxels, the density of voxel 212 is 100 which is less than the reference value, and the densities of voxels 213 and 214 are 150 and 210 which are greater than or equal to the reference value. In this embodiment, the game system 1 generates vertices between voxels with a density greater than or equal to the reference value and voxels with a density less than the reference value. Specifically, for each region spanning 8 adjacent voxels (4 in the drawing) (the region surrounded by the dotted line in the drawing), it is determined whether to generate a vertex. That is, vertices are generated in regions spanning both voxels with a density greater than or equal to the reference value and voxels with a density less than the reference value. The coordinates of the vertices are determined by comparing the densities of adjacent voxels for each of the X, Y, and Z axes and performing interpolation based on the density difference. By setting the normal information that defines the position and orientation of the straight line connecting the vertices, the coordinates of the vertices can be further calculated based on the normal information. The normal information may be retained in advance for at least some of the voxels, or if not retained, the normal information may also be calculated based on the densities of adjacent voxels. In FIG. 15, since the density of voxel 212 is less than the reference value, voxel 212 is treated as being outside the object in the determination of the presence or absence of vertices, but the density value of voxel 212 itself is used for the calculation of the coordinates of the generated vertices.If the reference value is set to a value lower than the density of voxel 212, the result is that more vertices will appear on the upper right and upper left sides of voxel 212 in Fig. 15.
[0105] By setting vertices as described above, when generating a mesh that connects each set vertex (or each vertex after performing the simplification process described later on each set vertex), a shape with a volume that reflects the density of each voxel to some extent can be generated. However, depending on the relationship with adjacent voxels, it is possible that a voxel with a density of 0 may include a region within a part of the object, or a voxel with a density of 255 may include a region outside a part of the object. Also, in this embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume is also smaller by the amount that the number of vertices is less compared to the case of processing them as inside the object. Thus, it is not necessary to calculate the polygon mesh so as to have a volume that exactly corresponds to the density value.
[0106] [2-4. Determination of Vertex Material] The game system 1 determines the material for each vertex set as described above. The vertex material is determined based on the materials of the voxels around the vertex. The voxels around the vertex are, for example, the voxels used to determine whether to generate the vertex (that is, the voxels that overlap with the "region spanning voxels" described above). Note that in other embodiments, the voxels used to determine the vertex material do not have to be the same as the voxels used to determine the generation of the vertex and may be different.
[0107] FIG. 16 is a diagram showing an example of a method for determining the material of a vertex. In the example shown in FIG. 16, it is assumed that a vertex 219 is set for four voxels 215 to 218, and the four voxels 215 to 218 are the above-mentioned "voxels around the vertex". In an actual three-dimensional space, the number of voxels around the vertex is eight. Also, in the example shown in FIG. 16, for voxel 215, the density is set to 255, the first material is "sand", and the material mixing ratio is 0 (that is, the first material: the second material = 1:0, or the second material may not be set). For voxel 216, the density is set to 0 (the first and second materials may not be set). For voxel 217, the density is set to 204, the first material is "sand", the second material is "grass", and the material mixing ratio is 0.3 (that is, the first material: the second material = 0.7:0.3). For voxel 218, the density is set to 153, the first material is "soil", the second material is "grass", and the material mixing ratio is 0.4 (that is, the first material: the second material = 0.6:0.4). Also, it is assumed that the coordinates indicating the position of vertex 219 are (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).
[0108] When determining the material of a vertex, the game system 1 calculates an evaluation value for each material in the surrounding voxels based on the density of the material and a weight value based on the distance from the voxel to the vertex. First, the weight value is calculated for each voxel, and is calculated so that it becomes larger as the distance from the center position of the voxel to the vertex is closer. In the present embodiment, when the center position of the voxel is (x1, y1) and the coordinates of the vertex are (x2, y2), the weight value for a certain voxel is calculated according to the following formula (1). (Weight value) = |(1 - x1) - x2|·|(1 - y1) - y2|…(1) In the example shown in FIG. 16, the weight values of each of the voxels 215 to 218 calculated according to the above formula (1) are as follows. (Weight value of voxel 215)=|(1 - 0) - 0.8|·|(1 - 1) - 0.6| = 0.12 (Weight value of voxel 216)=|(1 - 1) - 0.8|·|(1 - 1) - 0.6| = 0.48 (Weight value of voxel 217)=|(1 - 0) - 0.8|·|(1 - 0) - 0.6| = 0.08 (Weight value of voxel 218)=|(1 - 1) - 0.8|·|(1 - 0) - 0.6| = 0.32
[0109] Also, the game system 1 calculates the density of the material for each voxel. Here, the density of the material is a value obtained by multiplying the ratio of the material occupied by the material among the materials set in the voxel by the density of the voxel. In this embodiment, as the density of the voxel, a value obtained by normalizing the above-described values from 0 to 255 to values from 0 to 1 is used. In the example shown in FIG. 16, for voxel 215, since the only material set is sand, the above ratio regarding the sand material is 1, and the density of the voxel is 1, so the density of the sand material is 1. For voxel 216, since the density is 0 and no material is set, the density of the material is not calculated. Or, if 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 the density of the voxel is 204 / 255 = 0.8, so the density of the sand material is 0.7·0.8 = 0.56, and the density of the grass material is 0.3·0.8 = 0.24. For voxel 218, the above ratios of the set soil material and grass material are 0.6 and 0.4, respectively, and the density of the voxel is 153 / 255 = 0.6, so the density of the soil material is 0.6·0.6 = 0.36, and the density of the soil material is 0.4·0.6 = 0.24.
[0110] Then, the game system 1 calculates the above evaluation value for each material based on the above weight value and the density of the material. In the present embodiment, the evaluation value of the material is a value obtained by adding weights according to the weight value for each voxel to the density of the material calculated for each voxel and summing 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.
[0111] The game system 1 determines the vertex materials based on the evaluation values for each material. Specifically, a predetermined number of materials are determined as the vertex materials in descending order of the evaluation values. In the present embodiment, two materials with large evaluation values are determined as the vertex materials. In the example shown in FIG. 16, since the evaluation values of the materials of sand, grass, and soil are 0.1648, 0.096, and 0.1152 respectively, the vertex materials are determined as the sand material and the soil material. Also, the game system 1 calculates the ratio of the two determined materials based on the above evaluation values. In the present embodiment, the ratio of the two materials may be expressed as a second material ratio, which is the ratio of the second material to the whole, similar to the above material mixing ratio. In the example shown in FIG. 16, for example, when the first material is the soil material and the second material is set as the sand material, the second material ratio is shown as 0.1648 / (0.1648 + 0.1152) ≒ 0.59. Note that in other embodiments, as the value representing the ratio of the two materials, a value indicating the ratio of the first material may be used. Also, respective values indicating the ratio of each material may be used.
[0112] In the present embodiment, the game system 1 generates and stores vertex data indicating the position of the vertex, the material IDs of the first and second materials set for the vertex, and the ratio of the materials. However, the method of managing the materials set for the vertex is arbitrary. In other embodiments, the vertex data may be a data structure including data directly indicating the contents of the first and second materials.
[0113] As described above, in this embodiment, for each vertex, the game system 1 calculates, based on the voxel data of a plurality of surrounding voxels, a priority parameter (for example, an evaluation value) for each material ID included in the voxel data of the surrounding voxels. Then, based on the priority parameter, up to a predetermined number (here, two) of material IDs with high priority are selected and determined as the material ID of the vertex. Note that the specific parameter used as the priority parameter is not limited to the above evaluation value. For example, in other embodiments, an evaluation value calculated using the density of the material instead of the above weight value may be used as the priority parameter.
[0114] In this 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 such 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.
[0115] Also, in this 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 such 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.
[0116] Also, in this 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 such 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.
[0117] [2-5. Simplification of Vertex] In this embodiment, the game system 1 simplifies each vertex calculated as described above. That is, the game system 1 reduces the number of vertices by grouping some of the vertices calculated as described above and replacing them with one 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.
[0118] In this embodiment, the game system 1 simplifies by expressing each vertex using an SVO (Sparse Voxel Octree). FIG. 17 is a diagram showing an example of vertex simplification. In FIG. 17, one square indicated by a solid line shown in (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.
[0119] In this embodiment, the game system 1 determines whether or not it is possible to simplify the vertices within a predetermined number (four in FIG. 17, eight in the actual three-dimensional space) of mutually adjacent vertex division regions. When it is determined that simplification is possible, simplification is performed on the vertices within the predetermined number of vertex division regions.
[0120] (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.
[0121] 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 regions within the range surrounded by the dotted line in (b) shown in FIG. 17 can be simplified, the vertices of the vertex division regions are simplified, resulting in the state shown in (c) shown in FIG. 17. Note that the determination conditions for whether the first-stage simplification is possible and the determination conditions for whether the second-stage simplification is possible may be the same or different.
[0122] Regarding the determination of whether simplification is possible, the specific method is arbitrary. In this embodiment, as the conditions for the above determination, conditions related to the shape of the voxel object and conditions related to the material are used. In this embodiment, when both the conditions related to the shape of the voxel object and the conditions related to the material are satisfied, it is determined that simplification is possible, and when at least one of the conditions related to the shape of the voxel object and the conditions related to the material is not satisfied, it is determined that simplification is impossible.
[0123] The condition regarding the shape means, for example, that the shape formed by each vertex before simplification and the shape formed by each vertex after simplification are not significantly changed. For example, whether or not the shape formed by each vertex is significantly changed before and after simplification can also be determined by calculating an index indicating the error between the mesh before simplification and the mesh after simplification and checking whether the index is less than or equal to a predetermined allowable value. Also, for example, when the shape formed by each vertex before simplification is a hollow shape, but the shape formed by each vertex after simplification is not a hollow shape (that is, information indicating hollowness is lost due to simplification), it is also determined that the condition regarding the shape is not satisfied. Whether or not the above 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 also determined that the condition regarding the shape is not satisfied. Note that as the condition regarding the shape of the voxel object, the same condition as the conventional method using SVO may be used.
[0124] Also, as a condition regarding the material, in the present embodiment, a condition regarding the number of types of materials set for each vertex within the above-mentioned predetermined number of vertex division regions to be simplified is used. FIG. 18 is a diagram showing an example of the condition regarding the material. (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 the material 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 the material 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 the material is satisfied. At this time, on the condition that the above-mentioned condition regarding the shape of the object is satisfied, each of the vertices 221 to 224 is determined to be simplifiable. On the other hand, in the case of (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 the material is not satisfied. At this time, regardless of whether the above-mentioned condition regarding the shape of the object is satisfied, each of the vertices 221 to 224 is determined to be non-simplifiable.
[0125] In the game system 1, even if materials are strictly classified into different types, a plurality of types of materials with the same set properties but different appearances may be prepared. For some of such a plurality of types of materials, in the determination of the conditions regarding the materials, they may be regarded as the same type and the determination may be made. For example, regarding the soil material, there may be cases where a plurality of types of soil materials with the same properties but similar appearances (for example, 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 on the conditions regarding the materials.
[0126] Here, in the present embodiment, regarding vertices, similar to voxels, up to two types of materials can be set. On the other hand, in the present embodiment, when the total number of types of materials set for each vertex to be simplified is three or more, no simplification is performed. That is, when the total number of types of materials exceeds the number of materials that can be set for one vertex, no simplification is performed. Therefore, even if the number of vertices is reduced by simplification, the information on the materials set for the vertices will not be lost due to simplification, and the information on the materials can be maintained.
[0127] In this embodiment, the material of the simplified vertex is determined based on the material of each vertex before simplification. Specifically, the game system 1 sets one or two types of materials set for the vertices before simplification as the first material and the second material for the vertices after simplification. Thereby, the information of the material can be maintained. Note that the ratio of the materials after simplification is determined based on the ratio of the materials of each vertex before simplification. In this embodiment, the ratio of the materials after simplification is calculated in the same manner as the method of calculating the ratio of the materials of each vertex using the above evaluation value. That is, the game system 1 calculates a weight value based on the distance between the vertices after simplification and the vertices before simplification, and based on the weight value and the density of the material at the vertices 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.
[0128] [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 straight lines connecting adjacent vertices of the vertex division region as sides. Each polygon constituting the mesh is a triangle or a quadrilateral.
[0129] In this embodiment, the game system 1 generates two types of meshes: a display mesh and a determination mesh. The display mesh is a mesh used for displaying 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.
[0130] In this embodiment, the game system 1 generates the display mesh and the determination mesh based on the data of the above-mentioned SVO (that is, based on each simplified vertex). According to this, by sharing the vertex data used for generating the two types of meshes, the processing efficiency can be improved. In other embodiments, the game system 1 does not have to simplify the vertices, and may generate the display mesh and / or the determination mesh based on the non-simplified vertices.
[0131] In this embodiment, the game system 1 generates the determination mesh to have a simpler shape than the display mesh. Specifically, the game system 1 reduces the number of vertices of the determination mesh to be less than the number of vertices of the display mesh. Here, in this embodiment, the SVO data is data that holds the data of the vertices before simplification and the data of the simplified vertices in an octree structure, and also includes the data used for determining whether simplification is possible. This data includes, for example, the data of 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 less than or equal to a predetermined threshold (this threshold is set to be larger 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 expressed in detail.
[0132] Note that in other embodiments, the display mesh and the determination mesh may be generated based on the same data or different data. Also, the display mesh and the determination mesh may have the same shape (however, even in this case, the materials set for both may be different). Also, the number of vertices of the determination mesh may be the same as the number of vertices of the display mesh, or may be more than the number of vertices of the display mesh.
[0133] [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, the same number of materials may be set for the polygon.
[0134] In the present embodiment, a quadrilateral may be formed as the polygon constituting the display mesh (see FIG. 19). When determining the material of the display mesh, the game system 1 first divides the quadrilateral constituting the display mesh into two triangles under certain conditions. Hereinafter, with reference to FIG. 20, the process of dividing the quadrilateral into two triangles will be described.
[0135] FIG. 20 is a diagram showing an example in which a quadrilateral constituting a mesh is divided into two triangles. (a) shown in FIG. 20 shows the quadrilateral before division formed by vertices 231 to 234, which are part of the vertices of the mesh, and (b) shown in FIG. 20 shows the two triangles obtained by dividing the quadrilateral. In the example shown in FIG. 20, assume that the materials of each of the vertices 231 to 234 are grass, soil, sand, grass, and grass, respectively.
[0136] In this embodiment, 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.
[0137] Note that since there are two ways to divide a quadrilateral into two triangles, when the division condition is satisfied for at least one of the two ways of dividing the triangles, the game system 1 performs the above division in the way that satisfies the division condition. On the other hand, when the division condition is not satisfied for the triangles divided in either of the two ways, the division is performed in any one way.
[0138] 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.
[0139] In this embodiment, the game system 1 sets a polygon corresponding to the polygon after the above division. That is, the vertices of the polygon after the above division become the vertices of the polygon of the display mesh.
[0140] In this embodiment, for each polygon constituting the display mesh, when there are three or more types of materials set for each vertex of one polygon in total, the game system 1 determines the material of the polygon by selecting two types of materials. FIG. 21 is a diagram showing an example of a method for determining the material of a polygon constituting the display mesh. In the example shown in FIG. 21, for vertex 241 of the triangular polygon constituting the display mesh, let the first material be "grass", the second material be "soil", and the material ratio of the first material: the second material = 0.8:0.2. Also, for vertex 242 of the above polygon, let the first material be "grass", the second material be "sand", and the material ratio of the first material: the second material = 0.5:0.5. Also, for vertex 243 of the above polygon, let the first material be "sand", the second material be "soil", and the material ratio of the first material: the second material = 0.7:0.3.
[0141] When there are three or more types of materials set for each vertex of the polygon in total, the game system 1 calculates a determination value for each material. The determination value is calculated as the 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).
[0142] Note that the specific method for selecting the material of the polygon of the display mesh is arbitrary. In other embodiments, the material of the polygon of the display mesh may be selected by any method based on the information set at the vertices of the polygon. For example, for the material of the polygon of the display mesh, the material with the largest ratio at one vertex is specified for each vertex, and the material with the largest number of specified materials for each vertex may be selected as the material of the polygon.
[0143] In this embodiment, the material of the polygon selected as described above is indicated by the materials set at 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 polygon material, 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 polygon material 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 polygon material, the material is not changed. As described above, when two types of materials are selected as the polygon material, the information of the materials of the third type and later set at each vertex of the polygon will be deleted.
[0144] Also, the game system 1 changes the ratio of the materials set for each vertex in response 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 ratio of the sand material is 0, the material ratio is the first material: the second material = 1:0. In this way, the above change formally changes the material of each vertex in order to represent the material of the polygon by the materials of each vertex of the polygon.
[0145] 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.
[0146] 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 materials of the polygon are grass and sand. In such a case, the ratio of the materials at the vertex may be set based on the ratio of the materials at the other vertices of the polygon. For example, in the above example, 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. Also, 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).
[0147] As described above, in the present embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, two) of the material IDs set for the vertices included in the polygon (that is, the material IDs set for the vertices of the polygon corresponding to the polygon) and determines them as the material 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.
[0148] In the present embodiment, for all the materials of the vertices constituting the polygon, when the number of the materials is less than or equal to the predetermined number, the game system 1 determines the material as the material of the polygon, 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 a total of more than a predetermined number of materials are set for each vertex, the material of the polygon can be set to a predetermined number or less of materials considering the priority.
[0149] As described above, in the present embodiment, the first and second materials set for each vertex of one polygon are changed to be two types of materials set for the polygon. Here, when such a change is made, there is a possibility that a discrepancy may occur in the first and second materials set for the vertices shared by two adjacent polygons.
[0150] FIG. 22 is a diagram showing an example of materials set for each vertex of two adjacent polygons. FIG. 22 shows a state (diagram (b) shown in FIG. 20) in which two polygons are formed by each of the vertices 231 to 234 shown in FIG. 20. In the example shown in FIG. 22, since the materials of the first polygon formed by vertices 231, 233, and 234 are 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 materials of the second polygon formed by vertices 231, 232, and 234 are determined to be grass and soil, the first and second materials of these vertices should be set to grass and soil, respectively. Therefore, in the example shown in FIG. 22, there is a conflict in the materials to be set for vertices 231 and 234 shared by the two polygons.
[0151] Therefore, in the present embodiment, when there is a conflict in the materials to be set for the vertices shared by the two polygons, the game system 1 adds another vertex at the same position with respect to the said vertex. Diagram (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 to grass and sand according to the materials of the first polygon for vertices 231 and 234. Also, for vertices 231' and 234', the first and second materials are set to grass and soil according to the materials 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 conflicts in the materials set for the vertices.
[0152] 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.
[0153] FIG. 23 is a diagram showing an example of applying a texture to a polygon. FIG. 23 shows a triangular polygon formed by the vertices 241 to 243 shown in FIG. 21. Note that the materials set for the vertices 241 to 243 are those shown in (b) shown in FIG. 21.
[0154] Regarding the position of the vertex of the polygon, the drawing is performed by mapping that blends the texture of the first material and the texture of the second material set for the vertex at the ratio of the 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 vertex data in the above-described material data (see FIG. 12). In the example shown in FIG. 23, regarding the position of vertex 241, since the material ratio is grass:sand = 1:0, 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.
[0155] Also, for positions other than the vertices of the polygon, the game system 1 determines the blend rate by interpolating the blend rates at each vertex. Then, the textures of the two materials set for each vertex are drawn by a mapping that blends based on the interpolated blend rate. Note that the specific method of interpolation is arbitrary. As an example, the blend rate between vertices is linearly interpolated. In FIG. 23, the positions where the ratio of applying the texture of the grass material is high are shown in white, and the positions where the ratio of applying the texture of the sand material is high are shown in black. In the example shown in FIG. 23, the grass texture is applied at vertex 241, the blend ratio of the sand texture increases towards vertex 243, the blend rate of grass and sand becomes 1:1 at the position of vertex 242, and only the sand texture is applied at the position of vertex 243. In this way, by blending and drawing the two textures set for the polygon (that is, set for each vertex of the polygon) at the blend rate according to the ratio of the materials, the appearance at the boundary between different materials in the display mesh can be made natural. As a result, the appearance of the display mesh with multiple types of materials set can be made natural.
[0156] [2-6-2. Determination of the Material of the Judgment Mesh] Next, an example of a method for determining the material of the judgment mesh will be described. Although details will be described later, in this embodiment, collision detection of the voxel object is performed using the judgment mesh, and processing may be executed according to the material of the voxel object for which collision is detected. Therefore, in this embodiment, the material is also determined for the judgment mesh.
[0157] In this embodiment, the game system 1 makes it so that for each polygon that constitutes the determination mesh, there is one type of material set for one polygon. Specifically, the game system 1 determines the material set for the polygon of the determination mesh based on the material information set for the vertices of the polygon (that is, the information on the first and second materials and the ratio of the materials).
[0158] FIG. 24 is a diagram showing an example of a method for determining the material of a polygon that constitutes a determination mesh. FIG. 24 shows an example of determining the material for a triangular polygon formed by each of the vertices 241 to 243 shown in FIG. 21. Note that the materials set for each of the vertices 241 to 243 are those shown in (a) shown in FIG. 21.
[0159] When determining the material of a polygon, the game system 1 calculates a determination value for each material set for each vertex of the polygon. In this embodiment, the method for calculating the above determination value is the same as the method for calculating the determination value used for selecting the material of the polygon of the display mesh. Note that the specific method for calculating the determination value is arbitrary. In other embodiments, the above determination value may be calculated by any method based on the information set for the vertices of the polygon of the determination mesh.
[0160] In the example shown in FIG. 24, the determination value for each material is the same as in the case shown in FIG. 21 described above. The determination value for the grass material is 1.3, the determination value for the sand material is 1.2, and the determination value for the soil material is 0.5. Therefore, the grass material is selected as the material of the polygon shown in FIG. 24.
[0161] As described above, in the present embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, 1) of the material IDs set for the vertices included in the polygon (that is, the material IDs set for the vertices of the polygon corresponding to the polygon), and determines them as the material IDs of the polygon. According to this, the game system 1 can suppress the number of materials set for the determination mesh to a predetermined number or less. Thereby, it is possible to suppress the complexity of the processing according to the type of material, which is performed according to the result of the collision determination using the determination mesh. Note that the method of determining the material of the polygon of the determination mesh is arbitrary and is not limited to the above. In other embodiments, the material of the polygon of the determination mesh may be determined by any method based on the information set for the vertices of the polygon.
[0162] Also, in the present embodiment, for the polygon of the display mesh, up to two types of materials are set, while for the polygon of the determination mesh, one type of material is set. According to this, for the polygon of the display mesh, two types of textures can be used to achieve a natural appearance, and for the determination mesh, it is possible to suppress the complexity of the processing performed according to the result of the collision determination using the determination mesh. Note that in other embodiments, the types of materials that can be set for the polygons of the display mesh and the determination mesh are arbitrary. The number of materials that can be set for the polygon of the display mesh and the number of materials that can be set for the polygon of the determination mesh may both be plural, may be the same, or may be different.
[0163] In addition, in the present embodiment, the number of material types set for one voxel is up to two, and the number of material types set for one polygon in the display mesh is up to two. According to this, while suppressing the data amount of the voxel data, the information of the material set in the voxel data can be reflected in the material of the display mesh. Further, in the present embodiment, the number of material types set for the vertex set based on the voxel data is also up to two (see FIG. 16). According to this, 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 material set in the voxel data can be reflected in the display mesh without loss of material information during the process.
[0164] 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 vertices used to generate a determination mesh, the material for which the above-described determination value calculated for each material is the largest may be set as the material of the vertex. Also by the above, as in the present embodiment, the number of types of materials set for one polygon in the display mesh can be up to two, and the number of types of materials set for one polygon in the determination mesh can be one. Therefore, it is possible to reflect the material information set in the voxel data in the display mesh, and it is possible to suppress the complexity of the processing performed according to the result of the collision determination using the determination mesh.
[0165] As described above, in this embodiment, a display mesh and a determination mesh can be set for one voxel object. However, depending on the game situation, it is not necessary to set both the display mesh and the determination mesh for one voxel object at the same time (for example, it is not necessary to set both in the processing in one frame). For example, the determination mesh may be generated in a range where collision determination is performed in the game space, and may not be generated in a 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.
[0166] Also, for the display mesh, the game system 1 may store data related to the generated mesh in the memory, and in a frame after the mesh is generated, use the data without re-executing the process of generating the mesh except for the updated range. According to this, the processing load for generating the display mesh can be reduced. Also, for the determination mesh, the data related to the generated mesh may not be stored in the memory, and the mesh may be sequentially generated as needed (for example, every time collision determination needs to be performed). According to this, the memory area used for generating the mesh can be saved.
[0167] In the above, the method of generating each mesh (that is, the display mesh and the determination mesh) based on the changed voxel data when the voxel data is changed from the initial state has been described. Note that the above method can also be used when generating each mesh based on the voxel data in the initial state, for example, at the start of the game. However, each mesh based on the voxel data in the initial state does not necessarily need to be generated based on the voxel data in the initial state at the start of the game, and may be prepared in advance before the game starts.
[0168] 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, appropriate meshes can be used according to their respective uses. On the other hand, when drawing and collision determination are shared using the same mesh, the processing load for setting the mesh can be reduced.
[0169] [2-7. Process for switching materials] Next, with reference to FIGS. 25 to 35, an example of a process for switching materials triggered by the occurrence of a predetermined event will be described. In the following, it is assumed that terrain objects such as the ground and walls are voxel objects, and the player character moves and performs actions, and a switch is made when a game effect occurs as a result of collision determination. An example of such a case will be described.
[0170] Note that the above "game effect" is any change that occurs in the game, for example, a change caused by "processing that reflects the result of contact between objects". The "game effect" is based on, for example, 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 effect 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 "game effect" may be associated with the material set for the polygon on which the collision is determined in the collision determination that is the cause of the occurrence of the effect (that is, the content of the effect may be determined by the material).
[0171] FIG. 25 is a diagram showing an example of a game image in which areas of a plurality of materials, a player character 201, a switching switch object CS, and an arrangement object 202 are set on a terrain object. In the example shown in FIG. 25, the material for the polygons in a part of the area 251 of the determination mesh and the display mesh of the terrain object which is the ground is set to material A, and the material for the polygons in the area 252 is set to material B. Specifically, the material IDa is set in the voxel data of the voxels of the terrain object in the area 251, and material A is associated with the material IDa by the above material data. Also, the material IDb is set in the voxel data of the voxels of the terrain object in the area 252, and material B is associated with the material IDb by the above material data.
[0172] The switching switch object CS is a gimmick that generates an event for switching materials in the game space according to an action by the player character 201. For example, in the game space, when the player character 201 performs an action of contacting the switching switch object CS (for example, hitting a predetermined part), an event for switching the target material set in the switching switch object CS in the game space occurs. In the example shown in FIG. 25, a switching switch object CS for mutually swapping material A and material B is provided on the terrain object.
[0173] As shown in FIG. 26, when the player character 201 performs the above action using the switching switch object CS based on a user operation input, the voxels of material A in the game space (for example, within the game stage being played) are switched to the voxels of material B, and the voxels of material B are switched to the voxels of material A. By this process, the material for the polygon in region 251 is changed from material A to material B, and the material for the polygon in region 252 is changed from material B to material A.
[0174] In the present embodiment, when performing the process of switching the above material, the above material data (see FIG. 12) is changed. For example, in the example shown in FIG. 26, in the above material data, the material ID associated with material A, which is the target of the event for switching the above material, is changed from material IDa to material IDb, and the material ID associated with material B is changed from material IDb to material IDa. As a result, the voxels in region 251 where material IDa is set in the voxel data are switched to the voxels of material B while maintaining the voxel data. Then, in response to the change in the above material data, the material for the polygon of the determination mesh and the display mesh associated with the voxels in region 251 is changed from material A to material B. Also, the voxels in region 252 where material IDb is set in the voxel data are switched to the voxels of material A while maintaining the voxel data, and in response to the change in the above material data, the material for the polygon of the determination mesh and the display mesh associated with the voxels in region 252 is changed from material B to material A.
[0175] Thus, in this embodiment, when an event occurs to switch materials based on game processing, without changing the material ID, the material ID associated with the material in the material data is switched to another material ID, so that the materials of all voxels in the game space where the material ID is set and all the polygons of the meshes related to the voxels are changed. Therefore, in this embodiment, when the above event occurs, the mesh of a specific material can be switched to another material. Also, by simply switching the material ID associated with the material, the materials of the entire game space can be switched, and since there is no need to update the voxel data or the mesh, the material can be switched immediately. Thus, the concept in this embodiment is to switch all the voxels in the game space where the first material ID is set and the materials associated with the above polygons from the first material to the second material without changing the material ID, and any method that satisfies such a concept is acceptable. That is, as long as the materials of all the voxels in the game space and the materials associated with the above polygons are switched without changing the material ID, the above concept may be satisfied by switching the material ID corresponding to the material by a method other than the change to the above material data. As an example, without changing the material ID, based on the on / off of flag data included in data different from the above material data (for example, voxel data), all the voxels in the game space where the first material ID is set and the materials associated with the above polygons may be switched to the first material or the second material. As another example, by preparing a plurality of sets of the above material data and changing the material data adopted for rendering, all the voxels in the game space where the first material ID is set and the materials associated with the above polygons may be switched from the first material to the second material.
[0176] Note that the process of switching the above-described material is not limited to the embodiment in which one type of material is set for each voxel, but can be applied to an embodiment in which a plurality of types of materials are set for each voxel. In that case, among the plurality of material IDs in the voxel, the material associated with the material ID targeted by the event of switching the above material will be switched based on the change in the above material data.
[0177] As shown in FIG. 27, after the process of switching the material as described above is performed, when the player character 201 performs the above action again using the same switching switch object CS based on a user operation input, the voxel of material A is switched to the voxel of material B, and the process of switching the voxel of material B to the voxel of material A is performed again. By this process, the polygon in the area 251 that has been switched to material B is returned to material A, and the polygon in the area 252 that has been switched to material A is returned to material B.
[0178] In this embodiment, even when the process of switching the above material is performed again, the above material data is changed. For example, in the example shown in FIG. 27, in the above material data, the material ID associated with material B, which is the target of the event of switching the above material, is returned from material IDa to material IDb, and the material ID associated with material A is returned from material IDb to material IDa. As a result, the voxels in region 251 where material IDa is set in the voxel data are switched to the voxels of material B while maintaining the voxel data, and then returned to material A again. Then, in response to the change in which the above material data is returned, the material for the polygon of the determination mesh and the display mesh related to the voxels in region 251 is returned from material B to material A. Also, the voxels in region 252 where material IDb is set in the voxel data are switched to the voxels of material A while maintaining the voxel data, and then returned to material B again. Then, in response to the change in which the above material data is returned, the material for the polygon of the determination mesh and the display mesh related to the voxels in region 252 is returned from material A to material B.
[0179] Note that in this embodiment, the material of the non-voxel object may also be switched by the process of switching the above material. For example, the placement object 202 shown in FIGS. 25 to 27 is generated by combining a non-voxel object part with a voxel object, and the material is switched in the non-voxel object part in the same manner as the terrain object.
[0180] As shown in FIG. 28, the main body of the placement object 202 is generated by a voxel object. Also, the delicate parts (such as eyebrows, eyes, teeth, etc.) attached to the surface of the placement object 202 are generated as non-voxel objects. Here, the non-voxel object is an object not based on the above-described voxel data, and is displayed in the game space by rendering the set polygon mesh. Note that the above-described placement object 202 is generated by combining a voxel object and a non-voxel object, but may be placed alone in the game space as a virtual object composed only of non-voxel objects.
[0181] In this embodiment, for the non-voxel object as well, a material ID similar to that of the voxel object is set in the polygon mesh, and the content of the material (for example, the name, properties, and drawing setting information set in the material, etc.) is set based on the above material data. Then, by rendering the polygon mesh with the material ID set based on the above material data, the non-voxel object is displayed. Therefore, when the material ID set in the non-voxel object is the target for which the material is changed by the above-described material switching process, the material is switched in the same manner as the above-described voxel object. Thus, in this embodiment, objects other than voxel objects can also have their materials switched. For example, by switching the material of a non-voxel object with a delicate appearance that is difficult to be composed of voxel objects together with the voxel object, the material switching target can be made to have a high-quality appearance.
[0182] In other embodiments, the material ID set for the non-voxel object may be set separately from the material ID set for the voxel object. In this case, since the material ID set for the non-voxel object is managed separately from the material ID set for the voxel object, material data for the non-voxel object may be set. By changing the material data for the voxel object and the material data for the non-voxel object respectively by the process of switching the material, objects other than the voxel object may also be switched in material accordingly.
[0183] In this embodiment, a material may be changed in response to a voxel object being deformed as if a part of it is destroyed. Note that the object to be the target of the material change may be a voxel object defined in the above-described main voxel space or a voxel object defined in the sub-voxel space.
[0184] In the example shown in FIG. 29, in response to the player character 201 performing a punch action on the area 254 in the terrain object, the terrain object deforms as if a part of it is destroyed. At this time, the appearance representing the inside of the terrain is changed for the range of the deformed part and its surrounding parts of the terrain object. For example, in the example of FIG. 29, the ground surface of the terrain object has the appearance of grass growing, and the deformed part of the terrain object is changed to the appearance of soil without grass growing.
[0185] Assume that the material D set for the voxels regarding the area 254 of the terrain object before the change process is the grass material, and the material ID indicating the grass is the material IDd. Also, in the material data, the internal material IDd1 is associated with the grass material D, and it is assumed to indicate the soil material D1. Further, in the material data, for the grass material, as the drawing setting information, the ID of the texture representing the ground surface where the grass grows is set, and for the material D1 representing the soil, as the drawing setting information, the ID of the texture representing the soil underground is set. From the above, as a result of setting the grass material D for each polygon in the area 254 of the terrain object before the change process, the area 254 has the appearance of grass growing on the ground surface.
[0186] As shown in FIG. 29, when the player character 201 performs a punch action on the area 254 in the terrain object, the game system 1 sets a density update range, which is the range for updating the density of voxels, in the same way as the examples shown in FIGS. 13 and 14. For example, the shape of the density update range may be a spherical shape or a bell-shaped shape extending along the direction of the punch action. Then, the density of the voxels within the density update range among the voxels of the terrain object is updated to decrease. By generating the display mesh and the determination mesh of the terrain object based on the updated density of the voxels, the area 254 in the terrain object will be deformed as if the part within the density update range has been erased.
[0187] In addition, the game system 1 sets a material update range, which is the range for updating the material of voxels. In the present embodiment, similar to the density update range, the material update range is represented by the SDF. In the present embodiment, the material update range is set to enclose the density update range. For example, the game system 1 generates the material update range by expanding the density update range. According to this, for the terrain object after the change process, the material is changed for the deformed part that seems to be destroyed and the surrounding parts, so that the terrain object can have a more natural appearance. Note that in other embodiments, the material update range does not have to be generated based on the density update range and may be included in the game program in advance similar to the density update range. Also, the material update range may be set at any position enclosing the density update range. Also, the shape of the material update range is arbitrary. In other embodiments, the material update range and the density update range do not have to be similar shapes.
[0188] The game system 1 changes the material of the voxels within the material update range among the voxels related to the terrain object. For example, the material of the voxels within the material update range is changed to the material ID indicated by the internal material ID associated with the material before the change in the material data (see FIG. 12). In the example shown in FIG. 29, the internal material ID d1 representing soil is associated with the material ID d representing grass. Therefore, the material of the voxels within the material update range 255 is changed from the grass material D to the soil material D1 by the change process. Specifically, the game system 1 updates the material ID of the voxels within the material update range 255 from the material ID d representing grass to the internal material ID d1 representing soil, thereby changing the material set for the voxels to the internal material.
[0189] Note that, as described above, in this embodiment, voxel data holds up to a plurality (specifically, two) of material IDs per voxel. In the example described above, it was assumed that one type of material was set for the voxel. However, when a plurality of types of materials are set for the voxel, in the material change process, each material ID set for each voxel within the material update range is changed to the corresponding internal material ID.
[0190] When the above change process is performed, the game system 1 generates a display mesh and a determination mesh for the terrain object according to the methods described in [2-4. Determination of Vertex Materials] to [2-6. Generation of Mesh] based on the density and material of the voxel after the change process. As a result, the terrain object is deformed as if a part of it has been destroyed, and the materials of the polygons in the deformed part and its surrounding parts are set to the material of soil. When the above terrain object is drawn, the above polygons are drawn using a texture representing soil. As a result, the terrain object after the above change process can be expressed such that the deformed part and its surrounding parts look like soil, and as a whole, it can be expressed as if a part of the ground surface with grass growing has been scraped away and the soil underground is exposed.
[0191] FIG. 30 is a diagram showing an example of a game image in which a terrain object in which a part of area 254 has been changed to material D1 associated with the internal material ID and a changeover switch object CS are arranged. In the example shown in FIG. 30, the material for the polygons in a part of area 253 among the determination mesh and the display mesh of the terrain object is set to material C, the material for the polygons in area 254 is set to material D, and the material for the polygons in a part of area 255 in area 254 is set to material D1. Specifically, the material IDc is set in the voxel data of the voxels of the terrain object in area 253, and material C is associated with the material IDc by the material data. Also, the material IDd is set in the voxel data of the voxels of the terrain object in area 254, and material D is associated with the material IDd by the material data. Then, the internal material IDd1 is set in the voxel data of the voxels of the terrain object in a part of area 255 in area 254, and material D1 is associated with the material IDd1 by the material data.
[0192] As shown in FIG. 31, when the player character 201 performs the above action using the switching switch object CS based on a user operation input, the above material data (see FIG. 12) is changed. For example, in the example shown in FIG. 31, in the above material data, the material associated with the material D that is the target of the event for switching the above material is changed from material IDd to material IDc, and the material associated with material C is changed from material IDc to material IDd. Also, in the above material data, the material associated with the internal material IDd1 corresponding to material D is changed from material D1 to the internal material corresponding to material C. Note that, as in the example of FIG. 31, when no internal material is set for material C, a dummy internal material C1 including the same material content as material C is set in the above material data, and material D1 is changed to the internal material C1.
[0193] By this change process of the material data, the voxels in area 255 where the material ID c is set in the voxel data are switched to the voxels of material D while maintaining the voxel data. Then, in response to the change of the above material data, the material for the polygons of the determination mesh and the display mesh related to the voxels in area 255 is changed from material C to material D. Also, the voxels in area 254 where the material ID d is set in the voxel data are switched to the voxels of material C while maintaining the voxel data. Then, in response to the change of the above material data, the material for the polygons of the determination mesh and the display mesh related to the voxels in area 254 is changed from material D to material C. Furthermore, the voxels in a part of area 254 where the internal material ID d1 is set in the voxel data, i.e., in area 255, are switched to the voxels of internal material C1. Then, in response to the change of the above material data, the material for the polygons of the determination mesh and the display mesh related to the voxels in area 255 is changed from material D1 to material C1. Therefore, although different material IDs are set for the voxels in area 254 and the voxels in area 255, area 254 and area 255 are displayed as the ground surface with the same appearance.
[0194] After the process of switching materials is performed as described above, if the process of switching the same material is performed again, the above material data is changed. For example, in the above material data, the material ID associated with material C, which is the target of the event of switching the above material, is returned from material IDd to material IDc, and the material ID associated with material D is returned from material IDc to material IDd. Also, in the above material data, the material associated with the internal material IDd1 is returned from the dummy internal material C1 to material D1. As a result, as illustrated in FIG. 30, the voxels in region 253 where the material IDc is set in the voxel data are switched to the voxels of material D while maintaining the voxel data, and then returned to material C again. Then, in response to the change in which the above material data is returned, the material for the polygons of the determination mesh and the display mesh related to the voxels in region 253 is returned from material D to material C. Also, the voxels in region 254 where the material IDd is set in the voxel data are switched to the voxels of material C while maintaining the voxel data, and then returned to material D again. Then, in response to the change in which the above material data is returned, the material for the polygons of the determination mesh and the display mesh related to the voxels in region 254 is returned from material C to material D. Furthermore, the voxels in region 255 where the internal material IDd1 is set in the voxel data are switched to the voxels of the dummy internal material C1 and then returned to material D1 again. Then, in response to the change in which the above material data is returned, the material for the polygons of the determination mesh and the display mesh related to the voxels in region 255 is returned from material C1 to material D1.
[0195] In this way, even when the material D of the terrain object with the exposed portion of the underground material D1 is switched to the material C without a destination material ID, by temporarily switching the material of the portion to the dummy internal material C1, the original material state can be restored when the material is switched again. Also, even if the material C without a destination material ID is a material that cannot be deformed by the player character 201, by switching to the deformable material D as described above, it can be deformed by the action of the player character 201, and by switching the material back to the original state, the object of the non-deformable material can be restored in a deformed state.
[0196] Note that in the present embodiment, the display mode of the object attached to the voxel object to be switched may be changed together by the process of switching the material. For example, in the terrain objects shown in FIGS. 29 and 30, in the region 254, a plurality of surface objects representing grass growing from the ground are arranged on the surface of the mesh (for example, a display mesh). The surface objects are generated by non-voxel objects arranged on the surface of the mesh (for example, a display mesh) set for the voxel objects constituting the region 254 in the terrain object.
[0197] As shown in FIG. 32, the surface object is arranged and drawn on the surface of the mesh based on the material ID d, thereby more realistically representing the ground surface of material D with grass growing thereon. On the other hand, when the material switching destination of material D is a material having a flat ground surface without grass or the like (for example, material C shown in FIG. 32), it becomes inappropriate to draw the surface object on the surface of the mesh after switching to the material. In the present embodiment, in the material data, when the material ID d is associated with material D, the surface object is drawn (see region 254 in the left diagrams of FIGS. 29, 30, and 32). Then, in the material data by the process of switching the material, when the material ID d is associated with material C, the surface object is set to be out of the drawing target (see region 254 in the right diagrams of FIGS. 31 and 32). The game system 1 may set the surface object to be out of the drawing target by any method while holding the information of the surface object in the game space in the memory so that the surface object appears to be invisible. For example, the drawing process for the surface object may be skipped, or the surface object may be made transparent. Further, the object represented by the surface object is arbitrary, and in addition to the grass described above, it may be a virtual object representing thorns, hair, needle-like protrusions, wire materials, rising gases, bubbles, or the like.
[0198] Also, after the above surface object is excluded from the rendering target, if the material is switched back to material D by performing the material switching process again, the surface object will be made the rendering target and redrawn on the mesh surface of material D. In this way, by excluding the surface object from the rendering target while retaining the information of the surface object by switching the above material, when the material is switched again, the appearance of the surface object can be easily restored. Further, by arranging additional surface objects on the surface of the display mesh, the appearance can be made more realistic, and by linking whether the surface object is rendered during the material switching process, the surface object can be rendered as if it were the ground surface of material D.
[0199] In the above material data, when material D is associated with material IDc (for example, the area 253 shown in FIG. 31), the above surface object may or may not be rendered. In the former case, in the above material data, in a state where material C is associated with material IDc (for example, the area 253 shown in FIGS. 29 and 30), the above surface object may be pre-arranged from before the process of switching the above material is performed so as to be apparently hidden while retaining the information of the mesh surface.
[0200] In the present embodiment, the material may be changed in response to contact between objects. FIG. 33 is a diagram showing an example of a game image representing a state where the player character 201 throws an ice object into the area 256 in the terrain object. In the present embodiment, the user can cause the player character 201 to perform an action of picking up, lifting, and throwing an ice object arranged in the game space by a predetermined operation input. Thereby, the ice object moves within the game space based on the direction in which the player character 201 performs the throwing action.
[0201] In the example of FIG. 33, for the voxels related to the area 256 of the terrain object, it is assumed that the material ID x associated with the lava material is set as the first material ID, and the material mixing ratio is set to 0 (that is, the material set for the voxel is one type of "lava"). And as the property information included in the above material data, it is assumed that the property of increasing the temperature of the contacted object (for example, the property that the temperature is above a predetermined value) is set for the material ID x. The game system 1 generates an in-game action (in the above example, the temperature increase of the object) based on the property information corresponding to the material set for the polygon in the determination mesh where a collision is determined by collision detection.
[0202] The ice object may or may not be a voxel object. When the ice object is a voxel object, a unique voxel space independent of the voxel space of the voxels corresponding to the terrain object or the like is defined for the ice object. In the above unique voxel space, unique voxel data corresponding to the ice object is defined, and a unique display mesh and a unique determination mesh based on the unique voxel data are set. And the above unique voxel space can move / rotate within the game space for each defined ice object, and the position, direction (posture), etc. of the unique voxel space within the game space are controlled. In the following description, an example in which the ice object is composed of voxel objects is used.
[0203] In the ice object, the polygon has a first material ID of "ice". Further, the material mixing ratio is set to 0 (that is, the material set in the voxel is one type of "ice"). And as the 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 set. Then, using the method for determining the material of the above-described display mesh and determination mesh, the material of the unique display mesh and unique determination mesh of the ice object based on the material of the voxel is determined.
[0204] In the present embodiment, when it is determined that the ice object released by the throwing action has 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 in the game. In the example shown in FIG. 33, the area 257 in the terrain object is changed as if the area near the position where the ice object contacted the area 256 in the terrain object was cooled by the ice object and the material changed. Also, the ice object is deformed so that the shape is such that the vicinity of the contact position melts due to the contact of the ice object with the area 256 in the terrain object. 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 area 256 in the terrain object. Also, the game system 1 reduces the density of the voxels of the ice object in the update range, thereby deforming a part of the ice object to have the above-described shape.
[0205] For example, the above update range is set to a shape corresponding to the shape where the ice object contacts the terrain object, and for the voxels of the terrain object within the update range, the material of the lava in the voxel is set to be the material of obsidian. Specifically, the voxels within the above update range corresponding to region 256 in the terrain object are changed to the material ID e associated with the material of obsidian, and the material mixing ratio continues to be set to 0 (that is, the material set in the voxel is only "obsidian"). Then, based on the material of the changed voxels, the materials of the display mesh and the determination mesh of the terrain object are determined. In FIG. 30, the portion of region 257 changed to the material of only "obsidian" is set within region 256.
[0206] In the game image illustrated in FIG. 33, a game space is displayed in which a terrain object in which a part of region 256 has been changed to material E (for example, the material of lava) associated with material ID e by the above change process and a switch object CS are arranged. Here, it is assumed that the above switch object CS is a gimmick for switching between material E (for example, the material of obsidian) and material F (for example, the material of rubber).
[0207] As shown in FIG. 34, when the player character 201 performs the above action using the above switch object CS based on a user operation input, the above material data (see FIG. 12) is changed. For example, in the example shown in FIG. 34, in the above material data, the material associated with the material ID e that is the target of the event for switching the material is changed from material E to material F.
[0208] By the above-described material data change process, the voxels in the area 257 where the material ID e is set in the voxel data are switched to the voxels of material F while maintaining the voxel data. Then, in response to the change of the above material data, the material of the polygons of the determination mesh and the display mesh related to the voxels in the area 257 is changed from material E to material F.
[0209] Referring to FIG. 35, consider the case where the player character 201 throws the ice object again into the area 254 in the terrain object in a state where the process of switching the material as described above has been performed. FIG. 35 is a diagram showing an example of a state where the player character 201 throws the ice object into the area 254 in the terrain object in a state where the process of switching the material from material E to material F has been performed. In this case, similar to the in-game actions described with reference to FIG. 33, the ice object released by the throwing action changes the voxels in the area 254 as an in-game action. In the example shown in FIG. 35, the area 258 in the terrain object is changed as if the material has changed due to being cooled by the ice object near the position where the ice object contacts the area 256 in the terrain object. Specifically, the game system 1 generates an update range in the same manner as the in-game actions described with reference to FIG. 33, and generates the area 258 in the terrain object by changing the material of the voxels of the terrain object in the update range.
[0210] At this time, before the process of switching the above material is performed, in the terrain object that was material E (for example, obsidian material), region 257 has already been switched to material F (for example, rubber material). However, even though the game system 1 is performing the material switching as described above, for the voxels of the terrain object within the above update range, the material of the lava in the voxel is set to be the obsidian material. For example, due to the process of switching the above material, in the above material data, the material ID associated with material E (for example, obsidian material) has been switched to material IDf, so the voxels within the above update range corresponding to region 254 in the terrain object are changed to material IDf. 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, and the part of region 258 changed to material E (for example, obsidian material) is set within region 254. In this case, when the material is switched again, region 257 becomes material E and region 258 becomes material F.
[0211] Thus, in this embodiment, even when the destination material (here, material E) to be changed by the material change process is switched to another material (here, material F) by the process of switching the material, the material ID (here, material IDf) associated with the material in which the voxels within the update range are set as the destination by the change process is changed. Therefore, regardless of the material switching state by the process of switching the material, an in-game effect that is always changed to the same material (here, material E) can be obtained by an action for changing the material (here, the action of the player character 201 throwing an ice object into a terrain object of the lava material), so that it is possible to prevent a result that makes the user feel uncomfortable. Also, in the above example, since material E is the obsidian material and material F is the rubber material, for example, after throwing ice into inaccessible lava and changing it to obsidian, it can be further changed to rubber by switching, and a game can be provided in which a foothold that allows jumping can be created for inaccessible terrain.
[0212] Note that the material ID set in the polygon mesh and the material ID set in the voxel data (and / or the material ID set for the vertices included in the polygon) may be different IDs even if they are associated with the same material. In this embodiment, when an event occurs to switch the material set in at least the polygon mesh of the display mesh, the material ID associated with the material in the material data is changed (swapped), so that the material of the polygon mesh is changed (swapped), and the material change can be reflected in the game space while maintaining the material information (for example, the material ID) of the voxel data in the voxel object.
[0213] [Specific Examples of Processing in the Game System] Next, with reference to FIGS. 36 and 37, specific examples of information processing in the game system 1 will be described.
[0214] FIG. 36 is a diagram showing an example of various data used for information processing in the game system 1. Each data shown in FIG. 36 is stored in a memory accessible by the main body device 2 (for example, flash memory 84, DRAM 85, and / or a memory card mounted on the slot 23, etc.). As shown in FIG. 36, 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 FIG. 37). Note that the game program includes the above-described material data (see FIG. 12). Further, the above memory stores the above-described voxel data (see FIG. 11), update range data, mesh data, object data, etc. (see FIG. 36).
[0215] 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.
[0216] Mesh data includes various data related to the mesh of the voxel object. As shown in FIG. 36, 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).
[0217] Object data includes various data related to objects other than the voxel object (for example, virtual objects such as player characters, switching switch 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.
[0218] FIG. 37 is a flowchart showing an example of the flow of game processing executed by the game system 1. The execution of the game processing is started, for example, in response to the start of the game according to the player's instruction during the execution of the above game program. Note that the processing loop consisting of a series of processes from steps S1 to S17 is executed in one cycle per frame.
[0219] In this embodiment, the processor 81 of the main body device 2 executes the above-described game program stored in the game system 1, and thus the processes of each step shown in FIG. 37 will be described as being executed. However, in other embodiments, some of the processes of each of the above steps may be executed by a processor (for example, a dedicated circuit or the like) different from the processor 81. Further, when the game system 1 is communicable with another information processing device (for example, a server), some of the processes of each step shown in FIG. 37 may be executed in the other information processing device. Further, the processes of each step shown in FIG. 37 are merely examples, and the order of the processes of each step may be changed, or another process may be executed in addition to (or instead of) the processes of each step, as long as the same result can be obtained.
[0220] Further, the processor 81 executes the processes of each step shown in FIG. 37 using a memory (for example, the DRAM 85). That is, the processor 81 stores information (in other words, data) obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads the information from the memory and uses it.
[0221] In FIG. 37, the processor 81 performs initial settings (step S1) and proceeds to the next step. For example, in the above initial settings, the processor 81 initializes parameters for performing the processes described below and updates each piece of data. As an example, the processor 81 generates a game space in an initial state and updates voxel data, mesh data, and object data.
[0222] Next, the processor 81 acquires the operation data indicating an operation input by the player (step S2) and proceeds to the next step. For example, the processor 81 acquires operation data output from each controller via the controller communication unit 83 and / or each of the terminals 17 and 21, and operation data output from the main body device 2 (for example, the touch panel 13).
[0223] Next, the processor 81 designates, as a processing target, any object among the objects in the game space that requires processing and for which processing has not been completed (including voxel objects defined by the proprietary voxel space), and executes, for the designated object, a process of calculating the speed and a process of reflecting the result of contact between the objects in the previous frame (step S3), 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 S15 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 S2. Also, when the designated object is an object that is not operated by the user (for example, an ice object (see FIGS. 33 and 35)), the speed of the object is calculated based on rules predetermined in the game program. For example, the speed of the ice object is set to 0 when it is placed on a terrain object and not moving, set to the same speed as the player character when held by the player character, and set to a speed moving in a direction based on the direction of the player character with a magnitude determined by a predetermined rule when 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 objects, friction due to contact, falling due to virtual gravity, and deceleration due to virtual air resistance are reflected in the speed determination.
[0224] Also, the process of reflecting the result of contact between the objects in the previous frame includes a process of applying an influence due to contact to the object when it is determined in the collision determination (step S14 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 in the previous frame that the player character has contacted a terrain object by a punch action or the like and the terrain object is in a destructible state, a process of generating a fragment object or the like · When it is determined in the previous frame that the player character has contacted a predetermined terrain object (e.g., lava), a process of decreasing the physical strength of the player character · When it is determined in the previous frame that an object has contacted another object, a process of eliminating the object When the state regarding the object is changed in the process of step S3 above, the processor 81 updates the object data stored in the memory regarding the object so as to indicate the content after the change.
[0225] Next, the processor 81 determines whether an update event for updating the voxel object has occurred due to the object specified in step S3 above (step S4). For example, the determination in step S4 above is made based on the result of a collision determination (step S14 described later) in the previous frame. As an example, when it is determined in the previous frame that the player character has contacted a terrain object by a punch action or the like and the terrain object is in a state where it can be destroyed (deleted), it is determined that an update event has occurred in which a part of the terrain object is deleted (see FIGS. 13 and 14). Note that such an update event includes an event in which a part of the terrain object is deformed so as to be deleted and the material regarding the range of the deformed part and its surrounding parts is changed (see FIG. 29). As another example, when it is determined in the previous frame that an ice object has contacted a terrain object of a lava material, it is determined that an update event has occurred in which the material of the terrain object is changed and the ice object is reduced (see FIGS. 33 and 35). Then, when an update event has occurred, the processor 81 proceeds to step S5. On the other hand, when no update event has occurred, the processor 81 proceeds to step S7.
[0226] In step S5, the processor 81 sets an update range for updating the voxel object in the game space and proceeds with the process 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 S5 is set to be associated with the content related to the type of update event determined to occur in step S4. In step S5, the processor 81 stores data indicating the set update range in the memory as update range data.
[0227] Next, the processor 81 makes changes according to the update event to the voxels corresponding to the update range (including the density update range and the material update range set in step S5 above) (step S6) and proceeds with the process to step S7. For example, when the processor 81 deletes or deforms the voxel object in the update range as if it were reduced, or deforms it as if a voxel object were added to 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 in the update range, the processor 81 updates 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 so as to update the voxel data stored in the memory (see the processes in FIGS. 29, 33, and 35).
[0228] In step S7, the processor 81 determines whether an event for switching the material has occurred or is in progress by the object specified in step S3 above. For example, in step S3 above, when an action is performed in which the player character contacts the switch object CS (see FIGS. 26, 27, 31, and 34), or when the material switching event is in progress, the processor 81 makes an affirmative determination in step S7. Then, when the material switching event has occurred or when the material switching event is in progress, the processor 81 advances the process to step S8. On the other hand, when the material switching event has not occurred, the processor 81 advances the process to step S9.
[0229] In step S8, the processor 81 performs a process of switching the material targeted by the performed action and advances the process to step S9. For example, the processor 81 changes the material data according to the method described in the above [2-7. Process of switching the material] for the material targeted by the above action. Further, the processor 81 performs an effect of switching the material in the game space and, if necessary, makes settings regarding the drawing of the above surface object. Note that in one execution of step S8 above, for an operation performed over a plurality of frames (for example, an effect of switching the material), each object is controlled so that the operation for one frame progresses. As a result, the process of step S8 is repeatedly executed over a plurality of frames until the material switching event ends, and each object performs a series of operations regarding various effects.
[0230] In step S9, the processor 81 determines whether the processing in steps S3 to S8 has been completed for all objects (including voxel objects defined by the unique voxel space) that require processing. Then, when the processing for all objects has been completed, the processor 81 proceeds to step S10. On the other hand, when the processing for any object has not been completed, the processor 81 returns to step S3 and repeats the processing.
[0231] In step S10, the processor 81 updates the vertices of the voxel objects in the game space and proceeds to the next step. For example, when the voxel data is updated in the processing of step S6, the processor 81 calculates new vertices based on the updated voxel data. Note that the positions of the new vertices are calculated according to the method described in [2-3. Calculation of Vertices] above. Also, the materials of the new vertices are calculated according to the method described in [2-4. Determination of Vertex Materials] above.
[0232] Next, the processor 81 performs vertex simplification (step S11) and proceeds to the next step. For example, the processor 81 simplifies each vertex updated by the processing of step S10 according to the method described in [2-5. Vertex Simplification] above. Then, the processor 81 updates the SVO data stored in the memory to indicate each vertex obtained by the processing of step S10 and step S11. Note that the processing of step S10 and step S11 does not necessarily need to recalculate the vertices for the entire voxel data, and may be executed only for the parts where the contents of the voxels are changed in the processing of step S6 or step S8.
[0233] Next, the processor 81 updates the display mesh of the voxel object based on the SVO data stored in the memory (step S12), and proceeds to the next step. Note that the position of each vertex of the display mesh and the material of each polygon of the display mesh (for example, the material set for each vertex of the polygon) are calculated according to the methods described in the above [2-6. Generation of Mesh], [2-6-1. Determination of the Material of the Display Mesh], and [2-7. Process for Switching Materials]. In step S12 above, the processor 81 updates the display mesh data stored in the memory so as to indicate the position and material of each vertex of the updated display mesh. Note that the processor 81 may start the processing after step S13 described later without waiting for the completion of step S12 above and execute them in parallel. In that case, step S12 above needs to be completed before the start of step S16 described later.
[0234] Next, the processor 81 updates the determination mesh of the voxel object based on the SVO data stored in the memory (step S13), 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 the Material of the Determination Mesh], and [2-7. Process for Switching Materials]. In step S13 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.
[0235] In the example shown in FIG. 37, the generation process of the determination mesh in step S13 is executed every frame. However, the generation process of the determination mesh does not necessarily have to be executed every frame. For example, when the collision determination process in step S14 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 S14 is performed. For example, in a situation where there are no objects to be subject to collision determination other than voxel objects around the player character in the game space (that is, a situation where only the collision determination between the player character and the surrounding voxel objects needs to be performed), the processor 81 may execute the generation process of the determination mesh for the voxels within a predetermined range based on the player character.
[0236] Next, the processor 81 performs a collision determination for each object in the game space based on the determination mesh data and the object data stored in the memory (step S14), and proceeds to the next step. For example, the processor 81 uses the determination mesh for voxel objects and uses a determination area of a predetermined shape set for the object for objects that are not voxel objects to perform the collision determination. In the present embodiment, the collision determination in step S14 is performed in consideration of the speed calculated in step S3 above. That is, the processor 81 performs the collision determination using the position when moving at the above speed as the position of each object.
[0237] In the present embodiment, the presence or absence of the following contacts, for example, is determined by the collision determination in step S14. · Contact between a player character performing an action such as movement or punch action and a terrain object · Contact between a player character that performs actions such as movement and punch actions and other objects · Contact between a character that performs an action of lifting an object and the object · Contact between a moving object and a terrain object In addition, when it is determined in the collision determination in step S14 that objects are in contact with each other, in the process of step S3 in the next frame, a process that reflects the result of the contact between the objects is executed, or in the process of step S4 in the next frame, it is determined that an update event has occurred.
[0238] Next, the processor 81 controls the operations of each object in the game space (step S15) and proceeds to the next step. For example, for the player character, the processor 81 performs control to cause movement and various actions based on the operation data acquired in step S1 above. And when a predetermined action occurs, the processor 81 generates a region for collision determination corresponding to the action in the game space. In addition, in one execution of the process of step S15, the processor 81 controls each object so that the operation for one frame is advanced for an operation performed over a plurality of frames (for example, an action by the player character). As a result, by repeatedly executing the process of step S15 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 S3 above. However, when it is determined by the collision determination in step S14 that the object contacts another object and the movement is blocked by the contacted other object, the position of the object may be determined not to change. And in step S15 above, the processor 81 updates the object data stored in the memory to be the content indicating the object after the control in step S15 above.
[0239] Next, the processor 81 generates a game image (step S16) and proceeds to the next step. For example, the processor 81 generates a game image by performing drawing on each polygon of the mesh for displaying the voxel object and each polygon of the object other than the voxel object based on the virtual camera. Note that each polygon of the display mesh is drawn using drawing settings such as a texture corresponding to the material set for the polygon according to the method described in [2-6-1. Determination of the material of the display mesh]. The game image generated in step S16 above is output to the display device and displayed at a cycle of once per frame.
[0240] Next, the processor 81 determines whether to end the game (step S17). For example, the processor 81 makes an affirmative determination in step S17 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 the 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 S2 to S17 are repeatedly executed until it is determined in step S17 that the game is ended.
[0241] As described above, in this embodiment, since the material can be switched by changing the material data, for the object based on the voxel data, the material change can be reflected while retaining the material information in the voxel data.
[0242] Note that in the above description, an example in which a voxel object is defined by generating a three-dimensional mesh based on the voxel data set for the voxels in the three-dimensional space is used, but the voxel object may be defined based on the voxel data set for the two-dimensional voxels.
[0243] 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 key, slide pad, etc.
[0244] Also, in the above description, an example in which the information processing is performed by the game system 1 respectively is used, but at least a part of the above processing steps may be performed by another device. For example, when the game system 1 is further configured to be communicable with another device (for example, another server, another information processing device, another game device, another mobile terminal, etc.), the above processing steps may be further executed by the cooperation of the other device. In this way, by performing at least a part of the above processing steps by another device, the same processing as the above-described processing becomes possible. Also, the above-described information processing can be executed by the cooperation between one processor or a plurality of processors included in an information processing system constituted by at least one information processing device. Also, in the above embodiment, the processor 81 of the game system 1 can perform information processing by executing a predetermined program, but a part or all of the above processing may be performed by a dedicated circuit provided in the game system 1.
[0245] Here, according to the above-described modification example, it is also possible to implement the present invention in a so-called cloud computing system form, a distributed wide-area network system form, or 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 implemented regardless of any processing sharing.
[0246] Also, 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.
[0247] 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. Also, as the information storage medium for storing the above program, a volatile memory for storing the above program may be used. Such a storage medium can be referred to as a computer-readable recording medium. For example, by causing a computer or the like to read and execute the programs of these recording media, various functions described above can be provided.
[0248] As described above, the present invention has been described in detail. However, the foregoing description is merely illustrative of the present invention in every respect 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, based on the description of the present invention and common general technical knowledge, equivalent ranges can be implemented from the description of specific embodiments of the present invention. Also, it should be understood that the terms used in this specification are used in the meaning commonly used in the art unless otherwise specified. Therefore, unless otherwise defined, all technical and scientific terms used in this specification have the same meaning as commonly understood by those skilled in the art to which the present invention pertains. In case of conflict, this specification (including definitions) shall prevail.
Industrial Applicability
[0249] As described above, the present invention can be used as a game program, a game system, a game processing method, a game device, etc. that can execute a game that reflects material changes and the like while retaining material information for an object based on voxel data.
Explanation of Signs
[0250] 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. causing a computer of an information processing apparatus to update, based on game processing, voxel data defined in a virtual space, the voxel data having at least a density indicating a degree to which a space defined by each of a plurality of voxels is virtually occupied by content and a material ID indicating a type of the content; generating or updating a first mesh corresponding to the voxel data by determining vertex coordinates of the mesh based on at least the density included in the voxel data and determining a material ID of a polygon of the first mesh based on at least the material ID included in the voxel data; causing the first mesh to be rendered by rendering each polygon of the first mesh based on rendering setting information included in material data including at least the rendering setting information including at least texture information set for a material associated with the material ID, the rendering setting information being based on the material associated with the material ID of each polygon of the first mesh; a game program that, when a first event occurs based on the game processing, causes a material associated with a first material ID associated with a first material to be switched from the first material to a second material.
2. The game program according to claim 1, wherein the computer further causes, when the first event occurs, a material associated with a second material ID associated with the second material to be switched from the second material to the first material.
3. The computer further when a second event occurs based on the game processing, generates a first voxel update range in the virtual space, decreases the density of each voxel corresponding to the first voxel update range in the virtual space among the voxel data, and further changes the material ID of each voxel corresponding to a second voxel update range having a size that encloses the first voxel update range to a change destination material ID preset for each type of the material ID before the change; when the first event occurs A third material is associated, and the material associated with the third material ID, which is the destination material ID of the first material ID, is switched from the third material to a fourth material. The game program according to claim 2, wherein a material associated with the fourth material is associated, and the material associated with the fourth material ID, which is the destination material ID of the second material ID, is switched from the fourth material to the third material.
4. The game program according to claim 3, wherein when the destination material ID is not set for the second material ID in the computer, the computer is caused to set the fourth material based on the same drawing setting information as the second material, and the material associated with the third material ID is switched to the fourth material.
5. The game program according to claim 1, wherein the computer is further caused to draw a non-voxel object that is arranged in the virtual space and does not rely on the voxel data, and includes a polygon mesh and the material ID including the first material ID, by causing the computer to draw the polygon mesh based on the material data.
6. On the surface of the first mesh based on the first material ID, a surface object having a polygon mesh that does not rely on the voxel data is further arranged. The computer is further caused to draw the surface object when the first material is associated with the first material ID. The game program according to claim 1, wherein when the second material is associated with the first material ID, the surface object is set to be excluded from drawing or is set to be transparent.
7. The material data further includes property information indicating the in-game action set for the material for each type of material. The computer is further caused to A second mesh corresponding to the voxel data and used for collision determination is generated or updated by determining the vertex coordinates of the second mesh based on at least the density included in the voxel data, and determining the material ID of the polygon of the second mesh based on at least the material ID included in the voxel data. The game program according to any one of claims 1 to 6, wherein, based on a collision determination with a determination shape corresponding to an object to be determined based on game processing, an in-game action corresponding to the material associated with the material ID of the polygon of the second mesh at the collision position is generated.
8. The material data further includes property information indicating an in-game action set for each type of material for each type of material. The game program according to any one of claims 1 to 6, wherein the computer further generates an in-game action corresponding to the material associated with the material ID of the polygon of the first mesh at the collision position based on a collision determination with a determination shape corresponding to an object to be determined based on game processing.
9. Voxel data defined in a virtual space, wherein for each of a plurality of voxels, voxel data is updated based on game processing, with at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its content and a material ID indicating the type of the content being set. A first mesh corresponding to the voxel data is generated or updated by determining the vertex coordinates of the mesh based on at least the density included in the voxel data, and determining the material ID of the polygon of the first mesh based on at least the material ID included in the voxel data. Based on the rendering setting information of the material associated with the material ID of each polygon of the first mesh, which includes at least the texture information set for the material for each type of material associated with the material ID, the first mesh is rendered by rendering each polygon. A game system that, when a first event occurs based on the game processing, switches the material associated with the first material ID associated with the first material to a second material from the first material.
10. Furthermore, when the first event occurs, the game system according to claim 9 switches the material associated with the second material ID associated with the second material to the first material from the second material.
11. Furthermore, when a second event occurs based on the game processing, a first voxel update range is generated in the virtual space, the density of each voxel corresponding to the first voxel update range in the virtual space among the voxel data is decreased, and furthermore, the material ID of each voxel corresponding to a second voxel update range having a size that encloses the first voxel update range is changed to a destination material ID preset for each type of the material ID before the change. When the first event occurs a third material is associated, and the material associated with the third material ID, which is the destination material ID of the first material ID, is switched from the third material to a fourth material. The game system according to claim 10, wherein when the fourth material is associated, the material associated with the fourth material ID, which is the destination material ID of the second material ID, is switched from the fourth material to the third material.
12. When the destination material ID is not set for the second material ID, the game system according to claim 11 sets the fourth material based on the same drawing setting information as the second material and switches the material associated with the third material ID to the fourth material.
13. Furthermore, for a non-voxel object that is arranged in the virtual space and does not rely on the voxel data and includes a polygon mesh and the material ID including the first material ID, the non-voxel object is drawn by performing drawing of the polygon mesh based on the material data. The game system according to claim 9.
14. On the surface of the first mesh based on the first material ID, a surface object having a polygon mesh not based on the voxel data is further arranged, Furthermore, when the first material is associated with the first material ID, the surface object is drawn, The game system according to claim 9, wherein when the second material is associated with the first material ID, the surface object is set as not being a drawing target or set to be transparent.
15. The material data further includes property information indicating the in-game actions set for each type of material, Furthermore, a second mesh corresponding to the voxel data and used for collision determination is determined based on at least the density included in the voxel data for the vertex coordinates of the second mesh, and the material ID of the polygon of the second mesh is determined based on at least the material ID included in the voxel data, thereby generating or updating, Based on a collision determination with a determination shape corresponding to a determination target based on game processing, an in-game action corresponding to the material associated with the material ID of the polygon of the second mesh at the collision position is generated. The game system according to any one of claims 9 to 14.
16. The material data further includes property information indicating the in-game actions set for each type of material, Furthermore, based on a collision determination with a determination shape corresponding to a determination target based on game processing, an in-game action corresponding to the material associated with the material ID of the polygon of the first mesh at the collision position is generated. The game system according to any one of claims 9 to 14.
17. In an information processing system, Voxel data defined in a virtual space, for each of a plurality of voxels, voxel data in which at least a density indicating the degree to which the space defined by the voxel is virtually occupied by the content and a material ID indicating the type of the content are set is updated based on game processing. Generate or update the first mesh corresponding to the voxel data by determining the vertex coordinates of the mesh based on at least the density included in the voxel data and determining the material ID of the polygon of the first mesh based on at least the material ID included in the voxel data. For each type of material associated with the material ID, based on the material data including at least the drawing setting information including the texture information set for the material, cause the polygon of the first mesh to be drawn based on the drawing setting information of the material associated with the material ID of each polygon of the first mesh, thereby causing the first mesh to be drawn. A game processing method for switching the material associated with the first material ID associated with the first material to the second material when a first event occurs based on the game processing.
18. The information processing system further includes the game processing method according to claim 17, wherein when the first event occurs, the material associated with the second material ID associated with the second material is switched from the second material to the first material.
19. The information processing system further includes When a second event occurs based on the game processing, generate a first voxel update range in the virtual space, reduce the density of each voxel corresponding to the first voxel update range in the virtual space among the voxel data, and further, for each voxel corresponding to the second voxel update range having a size that encloses the first voxel update range, change the material ID to a destination material ID preset for each type of the material ID before the change. When the first event occurs A third material is associated, and the material associated with the third material ID, which is the destination material ID of the first material ID, is switched from the third material to the fourth material. The game processing method according to claim 18, wherein the fourth material is associated, and a material associated with a fourth material ID that is a destination material ID of the second material ID is switched from the fourth material to the third material.
20. The game processing method according to claim 19, wherein when the destination material ID is not set for the second material ID in the information processing system, the fourth material based on the same drawing setting information as the second material is set, and the material associated with the third material ID is switched to the fourth material.
21. The game processing method according to claim 17, wherein the information processing system further causes the non-voxel object disposed in the virtual space and not based on the voxel data, which includes a polygon mesh and the material ID including the first material ID, to be drawn by causing the polygon mesh to be drawn based on the material data.
22. On the surface of the first mesh based on the first material ID, a surface object having a polygon mesh not based on the voxel data is further disposed. The information processing system further causes the surface object to be drawn when the first material is associated with the first material ID. The game processing method according to claim 17, wherein when the second material is associated with the first material ID, the surface object is set to be out of the drawing target or set to be transparent.
23. The material data further includes property information indicating an in-game action set for each type of material. The information processing system further generates or updates a second mesh corresponding to the voxel data and used for collision determination by determining vertex coordinates of the second mesh based on at least the density included in the voxel data, and determining a material ID of a polygon of the second mesh based on at least the material ID included in the voxel data. Based on a collision determination with a determination shape corresponding to an object to be determined based on game processing, generating an in-game effect according to the material associated with the material ID of the polygon of the second mesh at the collision position. The game processing method according to any one of claims 17 to 22.
24. The material data further includes property information indicating an in-game effect set for each type of material for each type of material. The information processing system further generates, based on a collision determination with a determination shape corresponding to an object to be determined based on game processing, an in-game effect according to the material associated with the material ID of the polygon of the first mesh at the collision position. The game processing method according to any one of claims 17 to 22.
25. A game device including a processor, wherein the processor updates voxel data defined in a virtual space, where at least a density indicating the degree to which the space defined by each voxel is virtually occupied by its content and a material ID indicating the type of the content are set for each of a plurality of voxels, based on game processing. generates or updates a first mesh corresponding to the voxel data by determining the vertex coordinates of the mesh based at least on the density included in the voxel data and determining the material ID of the polygon of the first mesh based at least on the material ID included in the voxel data. performs rendering of the first mesh by rendering each polygon of the first mesh based on the rendering setting information of the material associated with the material ID of the polygon, based on material data including at least the rendering setting information including at least texture information set for the material for each type of material associated with the material ID. A game device that switches the material associated with the first material ID associated with a first material to a second material when a first event occurs based on the game processing.
26. The game apparatus according to claim 25, wherein when the first event occurs, the processor further switches a material associated with a second material ID associated with the second material to the first material from the second material.
Citation Information
Patent Citations
Program, recording medium, game character drawing method and game machine
JP2004062666A
Program, information storage medium and image generation system
JP2008027254A
Virtual space creation program, and virtual space creation device
JP2024007703A
Image processing device
WO2017191702A1