Game program, game system, game processing method and game device
The game program and system address the challenge of utilizing material sets for voxel data in games by generating and updating voxel object meshes, enhancing interactive and visual experiences while reducing processing load.
Patent Information
- Application Number
- JP2024229891
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-12-26
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2044-12-26
AI Technical Summary
Existing technologies struggle to effectively utilize material sets for objects using voxel data in games, limiting interactive and visual capabilities.
A game program and system that generates and updates voxel object meshes based on voxel data, allowing for material specification and interaction using operation devices, enabling cooperative gameplay and various in-game effects.
Enables the utilization of material sets for voxel data in games, facilitating cooperative gameplay and rich interactive experiences with reduced processing load.
Smart Images

Figure 2025113185000001_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, generation of an object mesh in a virtual space based on voxel data has been performed (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] It is desired to utilize the material set for an object using voxel data in a game.
[0005] The present invention provides a game program, a game system, a game processing method, and a game device that can utilize the material set for an object using voxel data 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 (9).
[0007] (1) One configuration example of the game program of the present invention causes a computer to generate and update a mesh of a voxel object corresponding to the voxel data based on the voxel data defined in the 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 indicating the type of the content are set, and the vertex coordinates of the mesh are determined based at least on the density, and the material of the mesh is determined based at least on the material included in the voxel data. Based on the operation input from the first operation device, the position of the first cursor is controlled, and in response to a first instruction based on the operation input from the first operation device, the material at the position in the virtual space corresponding to the position of the first cursor of the mesh is specified. Using the specified material as the first material, in response to a second instruction based on the operation input from the first operation device, the first object with the first material set is moved toward the position in the virtual space corresponding to the position of the first cursor. Based on the collision determination between the first object and the mesh, a first voxel update range is set at the collision position, and a first in-game effect including at least a change in at least one of the density and the material of the voxels of the voxel data corresponding to the first voxel update range is generated.
[0008] According to the configuration of (1) above, since a game based on the interaction between the first object with the material set and the mesh of the voxel object can be provided by acquiring the material corresponding to the position of the first cursor on the mesh of the voxel object, the material set for the object using the voxel data can be utilized in the game.
[0009] (2) In the configuration of (1) above, the computer may further control the movement of the first player character in the virtual space based on an operation input from a second operation device, control the movement of the second player character along with the movement of the first player character, cause the first player character to perform a first action according to a third instruction based on the operation input from the second operation device, cause the second player character to perform a second action according to a second instruction, and move the first object.
[0010] According to the configuration of (2) above, by controlling the actions of different player characters according to the operations on each of the two operation devices and controlling the movement of both player characters by the operation of one operation device, a plurality of users can play the game cooperatively.
[0011] (3) In the configuration of (2) above, the computer may further control the position of the virtual camera in the virtual space based on the position of the first player character and control the orientation of the virtual camera based on at least the operation input from the first operation device.
[0012] According to the configuration of (3) above, by controlling the orientation of the virtual camera by an operation using the first operation device, it becomes easier to aim the first cursor in the cooperative play of multiple users.
[0013] (4) In the configuration of (3) above, the computer may further control the orientation of the virtual camera based on the operation input from the second operation device.
[0014] According to the configuration of (4) above, by making it possible to control the orientation of the virtual camera also by an operation using the second operation device, the other user who plays cooperatively can also control the virtual camera.
[0015] (5) In any one of the configurations (2) to (4) above, the computer may further control the position of a second cursor, and in response to a third instruction, cause a first player character to perform a first action, and move a second object having a second material to a position in the virtual space corresponding to the position of the second cursor. Based on the collision determination between the second object and the mesh, a second voxel update range may be set at the collision position, and a second in-game effect including at least a change in at least one of the density and the material of the voxels of the voxel data corresponding to the second voxel update range may be generated.
[0016] According to the configuration (5) above, when multiple users play cooperatively, since the cursors used by each user are displayed separately, it is possible to realize a game in which each user aims in the same game space.
[0017] (6) In any one of the configurations (1) to (5) above, as a first in-game effect, the computer may cause any effect according to the type of the first material among a plurality of effects including at least an effect of reducing the density of the voxels of the voxel data corresponding to the first voxel update range, an effect of increasing the density and setting the material to the first material for the voxels of the voxel data corresponding to the first voxel update range, and an effect of changing the material of the voxels of the voxel data corresponding to the first voxel update range to a fourth material when the third material, which is the material of the mesh at the collision position, and the first material are in a predetermined combination.
[0018] According to the configuration (6) above, in the interaction between the first object and the mesh of the voxel object, various in-game effects according to the type of the material of the first object can be generated.
[0019] (7) In any one of the configurations (1) to (6) above, the operation input from the first operation device may include at least any one of data based on a mouse, data based on an inertial sensor, and direction input data. In this case, the computer may be caused to control the position of the first cursor based on at least any one of data based on a mouse, data based on an inertial sensor, and direction input data.
[0020] According to the configuration (7) above, when operating using an operation device capable of at least any one of an operation using a mouse function, an operation using an inertial sensor, and an operation using a direction input unit, the position of the first cursor can be controlled based on at least any one of these operations, so that operations rich in variations become possible.
[0021] (8) In any one of the configurations (1) to (7) above, the mesh may be a determination mesh used for collision determination. In this case, the computer may further be caused to generate or update a display mesh corresponding to the voxel data and drawn based on a virtual camera by determining the vertex coordinates of the display mesh based on at least the density included in the voxel data and determining the material of the display mesh based on at least the material included in the voxel data, and perform drawing of a virtual space including the display mesh based on the vertex coordinates of the display mesh and a texture corresponding to the material of the display mesh.
[0022] According to the configuration (8) above, since the determination mesh and the display mesh are determined separately, appropriate meshes can be used according to their respective uses.
[0023] (9) In any one of the configurations (1) to (8) above, the computer may further be caused to perform drawing of a virtual space including the mesh based on the vertex coordinates of the mesh and a texture corresponding to the material of the mesh.
[0024] According to the configuration of (9) above, since drawing and collision determination can be performed on the same mesh, the processing load for setting the mesh can be reduced.
[0025] 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
[0026] According to the present invention, the material set for an object using voxel data can be utilized in a game.
Brief Description of the Drawings
[0027]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11
Figure 12
Figure 13
Figure 14
Figure 15
Figure 16
Figure 17
Figure 18
Figure 19
Figure 20
Figure 21
Figure 22
Figure 23
Figure 24
Figure 25
Figure 26
Figure 27
Figure 28
Figure 29
Figure 30
Figure 31
Figure 32
Figure 33
Figure 34
Figure 35
Figure 36
Figure 37
Figure 38
Figure 39
Figure 40
Figure 41
Figure 42
Mode for Carrying Out the Invention
[0028] [1. Configuration of Game System] Hereinafter, a game system according to an example of the present embodiment will be described. An example of the game system 1 in the present embodiment includes a main body device (information processing device; functioning as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main body device 2. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are each attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 as separate entities (see FIG. 2). Hereinafter, the hardware configuration of the game system 1 of the present embodiment will be described, and then the control of the game system 1 of the present embodiment will be described.
[0029] FIG. 1 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are attached to the main body device 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are each attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game 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.
[0030] FIG. 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 FIGS. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as the "first controller".
[0031] 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.
[0032] 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 with the left controller 3 and the right controller 4 attached to the main body device 2 may be a portable device. Further, the main body device 2 or the integrated device may be a hand-held device. Also, the main body device 2 or the integrated device may be a transportable device.
[0033] 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 the image generated by the main body device 2. In the present embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.
[0034] Also, the main body device 2 includes a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type capable of multi-touch input (for example, the capacitance method). However, the touch panel 13 may be of any type, for example, a type capable of single-touch input (for example, the resistive film method).
[0035] The main body device 2 includes a speaker (that is, the speaker 88 shown in Figure 6) inside the housing 11. As shown in Figure 3, speaker holes 11a and 11b are formed on the main surface of the housing 11. And the output sound of the speaker 88 is output from these speaker holes 11a and 11b respectively.
[0036] The main body device 2 also includes a left terminal 17 which is a terminal for the main body device 2 to perform wired communication with the left controller 3, and a right terminal 21 for the main body device 2 to perform wired communication with the right controller 4.
[0037] As shown in FIG. 3, the main body device 2 includes a slot 23. The slot 23 is provided on the upper surface of the housing 11. The slot 23 has a shape capable of mounting a storage medium of a predetermined type. The storage medium of the predetermined type is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and information processing devices of the same type. The storage medium of the predetermined type is used to store, for example, data used in the main body device 2 (e.g., save data of an application, etc.) and / or programs executed in the main body device 2 (e.g., application programs, etc.). Further, the main body device 2 includes a power button 28.
[0038] The main body device 2 includes a lower terminal 27. The lower terminal 27 is a terminal for the main body device 2 to communicate with the cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main body device 2 alone is placed on the cradle, the game system 1 can display an image generated and output by the main body device 2 on a stationary monitor. Further, in the present embodiment, the cradle has a function of charging the placed integrated device or the main body device 2 alone. Also, the cradle has a function of a hub device (specifically, a USB hub).
[0039] 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. Also, in the present embodiment, the user can also use the left controller 3 as a mouse. That is, the left controller 3 may be used in a state of being placed on a placement surface such as a desk surface.
[0040] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting a direction. The user can input a direction according to the tilting direction (and an input of a magnitude according to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may be provided with a cross key or a slide stick capable of slide input, etc., instead of the analog stick, as the direction input unit. Also, in the present embodiment, it is possible to input by pressing the analog stick 32.
[0041] The left controller 3 is provided with various operation buttons. The left controller 3 has four operation buttons 33 to 36 (specifically, a right direction button 33, a down direction button 34, an up direction button 35, and a left direction button 36) on the main surface of the housing 31. Further, the left controller 3 is provided with a recording button 37 and a -(minus) button 47. The left controller 3 has a first L button 38 and a ZL button 39 at the upper left of the side surface of the housing 31. Also, the left controller 3 has a second L button 43 and a second R button 44 on the side surface of the housing 31 on the side where it is attached when attached to the main body device 2. These operation buttons are used to give instructions according to various programs (for example, an OS program or an application program) executed by the main body device 2.
[0042] Also, on the right side surface of the housing 31, as a configuration for realizing a mouse function (for example, a function of instructing the movement of a cursor displayed on the screen), a mouse sensor 106 is provided. The mouse sensor 106 is, for example, an optical sensor using an LED or the like, and may be the same as the sensor used in a conventional mouse. The mouse sensor may be, for example, a sensor using laser light or a sensor using infrared rays. In the present embodiment, the mouse sensor 106 is disposed at a position exposed from the outside through a through hole formed on the right side surface inside the housing 31. The mouse sensor 106 irradiates light to the placement surface in a state where the left controller 3 is placed on the placement surface such that the right side surface of the housing 31 faces the placement surface, and detects reflected light from the placement surface of the light. The game system 1 calculates parameters (for example, a movement direction and a movement distance) related to the movement of the left controller 3 on the placement surface based on the detection result of the reflected light. Note that the calculation of the above parameters may be executed in the left controller 3, or may be executed in the main body device 2 that has received information regarding the detection result of the reflected light from the left controller 3.
[0043] 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.
[0044] 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. When the right controller 4 is removed from the main body device 2, it can also be held in a vertically long orientation. 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. Further, in the present embodiment, the user can also use the right controller 4 as a mouse. That is, the right controller 4 may be used while placed on a placement surface such as a desk surface.
[0045] Similar to the left controller 3, the right controller 4 includes an analog stick 52 as a direction input unit. In the present embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. Also, instead of the analog stick, the right controller 4 may be provided with a cross key or a slide stick capable of slide input. Further, similar to the left controller 3, the right controller 4 includes four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. Furthermore, the right controller 4 includes a + (plus) button 57 and a home button 58. Also, the right controller 4 includes a first R button 60 and a ZR button 61 on the upper right of the side surface of the housing 51. Moreover, similar to the left controller 3, the right controller 4 includes a second L button 65 and a second R button 66.
[0046] On the left side surface of the housing 51, as a configuration for realizing the mouse function, a mouse sensor 116 is provided. The mouse sensor 116 is an optical sensor similar to the mouse sensor 106. In the present embodiment, the mouse sensor 116 is disposed within the housing 51 at a position exposed from the outside through a through hole formed in the left side surface. The mouse sensor 116 irradiates light onto the placement surface in a state where the right controller 4 is placed on the placement surface such that the left side surface of the housing 51 faces the placement surface, and detects reflected light from the placement surface of the light. The game system 1 calculates a parameter related to the movement of the right controller 4 on the placement surface based on the detection result of the reflected light. Note that the calculation of the above parameter may also be executed in the right controller 4, or may be executed in the main body device 2 that has received information regarding the detection result of the reflected light from the right controller 4.
[0047] In addition, the right controller 4 includes a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.
[0048] FIG. 6 is a block diagram showing an example of the internal configuration of the main body device 2. The main body device 2 includes each of the components 81 to 91, 97, and 98 shown in FIG. 6 in addition to the configuration shown in FIG. 3. Some of these components 81 to 91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed within the housing 11.
[0049] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes to be executed in the main body device 2. For example, it may be composed of only a CPU (Central Processing Unit), or 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).
[0050] As an example of an internal storage medium built into the main body device 2, the main body device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is mainly a memory used to store various data (which may be a program) stored in the main body device 2. The DRAM 85 is a memory used to temporarily store various data used in information processing.
[0051] The main body device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23 and reads and writes data to and from a predetermined type of storage medium (for example, a dedicated memory card) mounted on the slot 23 according to an instruction from the processor 81.
[0052] The processor 81 appropriately reads and writes data between the flash memory 84, the DRAM 85, and each of the above storage media to execute the above information processes.
[0053] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly) with an external device via a network. In the present embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device by a method compliant with the Wi-Fi (registered trademark) standard as a first communication mode. Further, the network communication unit 82 performs wireless communication with other main body devices 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication by the second communication mode enables wireless communication with other main body devices 2 arranged within a closed local network area, and realizes a function that enables so-called "local communication" in which data is transmitted and received by direct communication between a plurality of main body devices 2.
[0054] The main body device 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. The communication method between the main body device 2 and the left controller 3 and the right controller 4 is arbitrary, 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.
[0055] The processor 81 is connected to the above-described left terminal 17, right terminal 21, and lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. 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 or audio data) to a stationary monitor or the like via the cradle.
[0056] Here, the main body device 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). Also, the main body device 2 can communicate with a plurality of right controllers 4 simultaneously (in other words, in parallel). Therefore, a plurality of users can simultaneously perform 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 performs input to the main body device 2 using a first set of the left controller 3 and the right controller 4, it becomes possible for a second user to perform input to the main body device 2 using a second set of the left controller 3 and the right controller 4.
[0057] Also, the display 12 is connected to the processor 81. The processor 81 displays an image generated (for example, by executing the above-described information processing) and / or an image acquired from the outside on the display 12.
[0058] The main body device 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input / output of audio data to / from the speakers 88 and the audio input / output terminal 25.
[0059] The main body device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Also, although not shown, the power control unit 97 is connected to each part of the main body device 2 (specifically, each part that receives power supply from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the battery 98 to each of the above parts based on a command from the processor 81.
[0060] Also, the battery 98 is connected to the lower terminal 27. When an external charging device (for example, a cradle) is connected to the lower terminal 27 and power is supplied to the main body device 2 via the lower terminal 27, the supplied power is charged to the battery 98.
[0061] FIG. 7 is a block diagram showing an example of the internal configuration of the main body device 2, the left controller 3, and the right controller 4. Note that the details of the internal configuration regarding the main body device 2 are shown in FIG. 6, so they are omitted in FIG. 7.
[0062] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 by both wired communication via the terminal 42 and wireless communication without using the terminal 42. The communication control unit 101 controls the communication method 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. Further, when the left controller 3 is removed from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.
[0063] In addition, the left controller 3 includes a memory 102 such as a flash memory. The communication control unit 101 is configured by, for example, a microcomputer (also referred to as a microprocessor), and executes various processes by executing the firmware stored in the memory 102.
[0064] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). Further, the left controller 3 includes an analog stick (described as "stick" in FIG. 7) 32. Each button 103 and the analog stick 32 output information regarding the operation performed on themselves to the communication control unit 101 repeatedly at appropriate timings.
[0065] The left controller 3 is provided with an inertial sensor. Specifically, the left controller 3 is provided with an acceleration sensor 104. Further, the left controller 3 is provided with an angular velocity sensor 105. In the present embodiment, the acceleration sensor 104 detects the magnitude of acceleration along a predetermined three axes (for example, the xyz axes shown in FIG. 4). Note that the acceleration sensor 104 may detect acceleration in one axis direction or two axis directions. In the present embodiment, the angular velocity sensor 105 detects the angular velocity around a predetermined three axes (for example, the xyz axes shown in FIG. 4). Note that the angular velocity sensor 105 may detect the angular velocity around one axis or two axes. The acceleration sensor 104 and the angular velocity sensor 105 are each connected to the communication control unit 101. Then, the detection results of the acceleration sensor 104 and the angular velocity sensor 105 are repeatedly output to the communication control unit 101 at appropriate timings.
[0066] The communication control unit 101 acquires information regarding an input (specifically, information regarding an operation or a detection result by a sensor) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing predetermined processing on the acquired information) to the main body device 2. Note that the operation data is repeatedly transmitted at a rate of once every predetermined time. Note that the intervals at which the information regarding the input is transmitted to the main body device 2 may be the same for each input unit or may not be the same.
[0067] By transmitting the above operation data to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine operations on each button 103 and the analog stick 32 based on the operation data. Further, the main body device 2 can calculate information regarding the movement and / or posture of the left controller 3 based on the operation data (specifically, the detection results of the acceleration sensor 104 and the angular velocity sensor 105).
[0068] 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).
[0069] As shown in FIG. 7, the right controller 4 includes a communication control unit 111 that communicates with the main body device 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main body device 2 by both wired communication via the terminal 64 and wireless communication without using the terminal 64 (specifically, communication according to the Bluetooth (registered trademark) standard), and controls the communication method performed by the right controller 4 with respect to the main body device 2.
[0070] The right controller 4 includes the same input parts as the input parts of the left controller 3. Specifically, it includes each button 113, an analog stick 52, and inertial sensors (an acceleration sensor 114 and an angular velocity sensor 115). These input parts have the same functions as the input parts of the left controller 3 and operate in the same manner.
[0071] 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.
[0072] Note that the game system 1 may be configured such that only one of the mouse sensor 106 provided in the above-described left controller 3 and the mouse sensor 116 provided in the right controller 4 is provided. Also, when the above-described mouse function is not required, both the mouse sensors 106 and 116 provided in the left controller 3 and the right controller 4 may not be provided in the game system 1.
[0073] In addition, in the present embodiment, the main body device 2 can communicate with the plurality of left controllers 3 and / or right controllers 4 (first controllers) described above at the same time, and can also communicate with a second controller 7 (see FIG. 9), which is different from the first controller, at the same time (in other words, in parallel). The second controller 7 is a controller that can be held and operated by the user with both hands. The second controller 7 can perform the same operations as the first controller except for the mouse function described above. That is, the second controller 7 includes left and right analog sticks on the main surface of the housing, and various operation buttons similar to those of the first controller on the main surface and side surfaces of the housing, and is used to give instructions according to various programs executed by the main body device 2. In addition, the second controller 7 includes inertial sensors (for example, an acceleration sensor and an angular velocity sensor) in the same manner as the first controller. When the second controller 7 is connected to the main body device 2 wirelessly or by wire, the operation contents of the analog stick and the operation buttons and the detection results of the inertial sensors are appropriately transmitted to the main body device 2. Hereinafter, the first controller and the second controller may be collectively referred to as "controllers".
[0074] FIG. 8 is a diagram for explaining an example of the mode of the controllers simultaneously connected to one main body device 2. In the example shown in FIG. 8, a game displayed on the display 12 of the main body device 2 is played by a plurality of users, and the first user and the second user each operate a controller to play the game. For example, the first user outputs operation data from the controller to the main body device 2 by operating the controller, and controls the movement of the first player character appearing in the game space in the game. In addition, the second user outputs operation data from the controller to the main body device 2 by operating the controller, and controls the movement of the second player character appearing in the same game space.
[0075] The first example shown in FIG. 8 is an example in which the first user operates the left controller 3 and the second user operates the right controller 4. Specifically, the left controller 3 is held and operated by both hands of the first user in a horizontally long orientation. With this operation method, the first user can operate the analog stick 32 (left analog stick), operation button 43 (SL button), etc. with the left hand. Also, the first user can operate the operation buttons 33 to 36 (up, down, left, and right direction buttons), operation button 44 (SR button), etc. with the right hand. Furthermore, the first user can operate using the inertial sensor of the left controller 3 by moving the entire left controller 3 or changing the posture of the entire left controller 3. Also, the right controller 4 is operated by the second user with one hand in a state where the left side surface of the housing 51 is placed on the placement surface in a vertically long orientation, or is held and operated by the first user with one hand in a vertically long orientation. With this operation method, the second user can operate the analog stick 52 (right analog stick), operation buttons 53 to 56 (ABXY buttons), and operation buttons 60 to 61 (R button, ZR button), etc. with the one hand that is holding. Also, the second user can operate using the mouse sensor 116 based on the moving direction and moving distance on the placement surface of the right controller 4, or can operate using the inertial sensor of the right controller 4 by moving the entire right controller 4 or changing the posture of the entire right controller 4. Note that in the above first example, the first user may operate the right controller 4 in a horizontally long orientation and the second user may operate the left controller 3 in a vertically long orientation.
[0076] The second example shown in FIG. 8 is an example in which the first user operates the second controller 7 and the second user operates a set of the left controller 3 and the right controller 4. Specifically, the second controller 7 is held and operated by both hands of the first user. By this operation method, the first user can operate the left analog stick and various operation buttons (for example, up / down / left / right direction buttons, L button, ZL button) with the left hand. Also, the first user can operate the right analog stick and various operation buttons (for example, ABXY buttons, R button, ZR button) with the right hand. Furthermore, the first user can operate using the inertial sensor of the second controller 7 by moving the entire second controller 7 or changing the posture of the entire second controller 7. Also, the left controller 3 is held and operated by the left hand of the second user in a vertically long orientation, and the right controller 4 is held and operated by the right hand of the second user in a vertically long orientation. By this operation method, the second user can operate the analog stick 32 (left analog stick), operation buttons 33 to 36 (up / down / left / right direction buttons), and operation buttons 38 to 39 (L button, ZL button), etc. with the holding left hand. Also, the second user can operate the analog stick 52 (right analog stick), operation buttons 53 to 56 (ABXY buttons), and operation buttons 60 to 61 (R button, ZR button), etc. with the holding right hand. Also, the second user can operate using the inertial sensor of the left controller 3 and / or the right controller 4 by moving the entire left controller 3 and / or the right controller 4 or changing the posture of the entire left controller 3 and / or the right controller 4. Note that in the above second example, operations of the second user may be performed based on the moving direction and moving distance on the placement surface of the left controller 3 and / or the right controller 4 using the mouse sensors 106 and / or 116 of the left controller 3 and / or the right controller 4.
[0077] The third example shown in FIG. 8 is an example in which the first user operates a set of the left controller 3 and the right controller 4, and the second user operates the second controller 7. Specifically, the operation method by which the first user operates the set of the left controller 3 and the right controller 4 is the same as that of the second user in the second example above. Also, the operation method by which the second user operates the second controller 7 is the same as that of the first user in the second example above.
[0078] As described above, in the present embodiment, the first user can control the movement of the first player character appearing in the game space by operating any one of the left controller 3 or the right controller 4, the set of the left controller 3 and the right controller 4, and the second controller 7. Also, the second user can control the movement of the second player character appearing in the same game space by operating any one of the left controller 3 or the right controller 4, the set of the left controller 3 and the right controller 4, and the second controller 7. Note that the combination of the types of controllers used by the first user and the types of controllers used by the second user is arbitrary, and may be the combinations exemplified in the first to third examples described above, or may be combinations other than the first to third examples described above. Also, in other embodiments, the first user and / or the second user may operate a controller different from the first controller and the second controller described above and wirelessly or wiredly connected to the main body device 2.
[0079] [2. Outline of Processing in Game System] Next, with reference to FIGS. 9 to 25, an outline 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 users) are arranged in a game space, which is a three-dimensional virtual space, and causes the display device to display the game image. Note that, in the present embodiment, the display device on which the game image is displayed may be the above-described display 12 or a stationary monitor.
[0080] [2-1. Voxel] In this embodiment, for some objects in the game space, their shapes are defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, a cube)-shaped region arranged in a grid pattern in the game space, and voxel data is data indicating information about each voxel. Hereinafter, an object whose shape is defined by voxel data is referred to as a "voxel object". In this 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.
[0081] FIG. 9 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 9, in this embodiment, a terrain object representing a terrain such as the ground has its shape defined by voxel data (that is, it is a voxel object). Each cube shown in FIG. 9 represents a terrain object. Note that in FIG. 9, the portions that are the sides of the terrain object are shown as thick lines, but these thick lines are added for the purpose of making the drawing easier to view, and in reality, it is not necessary for the sides of the terrain object to be shown thick.
[0082] The terrain object shown in FIG. 9 is generated, for example, according to the rule that "if the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel; if it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 9 is shown for the purpose of clearly exemplifying the relationship between voxels and voxel objects. In the present embodiment, actually, for example, like the terrain object shown in FIG. 14 described later, voxel objects are generated according to rules that result in a complex shape (based on voxel data). Note that the rules for determining the shape of voxel objects based on voxel data are arbitrary. In other embodiments, the game system 1 may generate voxel objects like those shown in FIG. 9 or voxel objects like those shown in FIG. 14 based on object data.
[0083] Regarding voxel objects, the shape can be changed by changing the voxel data of each voxel. FIGS. 10 and 11 are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 9 is deleted. That is, when the hatched part of the terrain object shown in FIG. 10 is destroyed, the terrain object changes to the shape shown in FIG. 11. 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 part. Note that when the game system 1 adds a terrain object, it can also easily change the shape of the terrain object by changing the voxel data of each voxel, in the same way as when erasing the terrain object.
[0084] 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 terrain object in the game is destroyed for some reason (e.g., the player character strikes the terrain object) and as a result the shape of the terrain object changes, 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.
[0085] In the present embodiment, it is assumed that voxels are defined throughout the game space (i.e., the voxel space in which voxels are set corresponds to the entire game space). However, the voxel space does not necessarily have to be set throughout the game space and may be set in a partial region of the game space. When the voxel space is set in a partial region of the game space, the shape of the voxel object is defined by the voxel data regarding the voxels in the voxel space, and the position of the voxel object in the game space is defined by the position of the voxel space in the game space. Also, a plurality of voxel spaces may be set in the game space, and 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.
[0086] FIG. 12 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.
[0087] 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 the mesh described later). Although details will be described later, the position and shape of the surface of the voxel object (i.e., the mesh described later) are determined based on the above density.
[0088] In this embodiment, the density can take an integer value in the range from a lower limit value (e.g., 0) to an upper limit value (e.g., 255). In this embodiment, the game system 1 determines the surface shape of the voxel object based on the density such that when the density value set for a voxel is high, the ratio of the volume occupied by the region within the voxel object in the voxel tends to be large, and when the density value is low, the ratio tends to be small. Thus, the density is an index that affects the ratio of the volume occupied by the region within the voxel object in the voxel. It can also be said that the density is an index indicating the degree to which the space of the voxel is virtually occupied by the content (i.e., the virtual content of the voxel object). For example, when the density is 0, the inside of the voxel is empty, when the density is 255, the entire 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, i.e., the surface shape of the voxel object, can be determined. The mesh can also be said to be the surface of the part where the content exists in the voxel, or the boundary between the part where the content exists and the part where it does not exist in the voxel. Note that the volume occupied by the region within the voxel object generated based on the above density does not necessarily have to be exactly the volume corresponding to the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 9 and the method of generating a voxel object as shown in FIG. 14, even if based on the same density, the volume of the voxel object may be different.
[0089] 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 on values of 0 or 1.
[0090] The first material ID and the second material ID are information indicating the material (in other words, the substance) of the voxel. Here, in the present embodiment, materials such as sand, rock, soil, or gold 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. 13). 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.
[0091] 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 that includes data directly indicating the content of the material (that is, the name, properties, and rendering setting information described later).
[0092] 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 for one voxel is up to two, the material mixing ratio data indicating the ratio of one of the materials indicated by the first material ID and the material indicated by the second material ID can also represent the other ratio. In the present embodiment, the material mixing ratio is a value indicating the ratio of the second material to the whole composed of the first material and the second material by a value of 0 or more and 1 or less. For example, when the material mixing ratio set for a certain voxel is 0.4, it means that in the voxel, the first material and the second material are composed in a ratio of 0.6:0.4. Although details will be described later, the appearance and properties of the voxel object are determined based on the material. The material mixing ratio is used to determine the appearance and properties of the voxel object. In other embodiments, the material mixing ratio may be a value indicating the ratio of the first material. Also, the ratio of the materials in the voxel may be represented by respective values indicating the ratio of each material. In particular, in other embodiments, when it is possible to set not up to two types but three or more types of materials, the ratio of the materials in the voxel is represented as a plurality of values respectively indicating the ratio of each material.
[0093] Note that in the present embodiment, it is not always necessary to set two types of materials for the voxel, and one type of material may be set. For example, when one type of material is set for a certain voxel, the first material ID indicates the material, and the material mixing ratio is set to 0.
[0094] The state data indicates the state set for 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 for the voxel. Note that in other embodiments, the state data may include, for example, data indicating whether the voxel is in a wet state (and the degree thereof).
[0095] As described above, in this embodiment, since the voxel data includes the material ID, the game system 1 stores material data that defines the content of the material indicated by the material ID. FIG. 13 is a diagram showing an example of the material data. As shown in FIG. 13, in the material data in this embodiment, for each material, the material ID is associated with the name, properties, and drawing setting information set for the material.
[0096] The name included in the material data is the name set for the material (for example, soil, sand, grass, gold, etc.). During the game, the name of the material of the voxel object may be displayed. In order to perform such display, the material data includes information on the name of the material.
[0097] The properties included in the material data are the properties set for the material. The properties of the material are the properties that the voxel object to which the material is set has in the game. Note that the specific content and number of types of the properties of the material are arbitrary. For example, at least any of the following information may be set as the properties of the material. · Hardness · Weight · Slipperiness · Damage setting when the player character comes into contact · Temperature · Whether another object can adhere to the voxel object · Amount of health recovered by the player character when the player character destroys or acquires the voxel object · Amount of in-game currency acquired by the player character when the player character destroys or acquires the voxel object In other embodiments, information different from the above may be set as the information indicating the properties of the material.
[0098] In this embodiment, as information specifying the properties of a material, the material data includes an ID indicating the property (see FIG. 13). Although not shown, for each property prepared, the game system 1 stores property information in which the content of the property (for example, values indicating the above-mentioned weight and 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.
[0099] The rendering settings included in the material data are information indicating rendering-related settings such as the texture used for rendering the voxel object to which the material is set. In this embodiment, 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. 13). Although not shown, for each texture prepared, the game system 1 stores texture information in which the texture ID is associated with the texture indicated by the texture ID. 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.
[0100] Also, the material data may include other data than the data shown in FIG. 13. For example, the material data may include data related to sound settings. For example, the data related to sound settings may be data that defines the footstep sound output when a player character walks on a voxel object based on the voxel.
[0101] Note that the material data may be data in any format that can identify the properties of the material and / or rendering settings. For example, in other embodiments, the material data may have a data structure that includes data directly indicating the properties of the material and / or rendering settings, instead of a data structure that includes a material ID and a texture ID.
[0102] [2-2. Update of Voxel Data] During the game, the voxel data described above is updated, causing the voxel object to deform. In this embodiment, when a game event (hereinafter referred to as an "update event") for updating the voxel object occurs, the game system 1 updates the voxel data. The specific content of the update event is arbitrary. The update event may be, for example, that a character appearing in the game performs an action to deform the voxel object (e.g., the player character punches the voxel object), or an event that deforms the voxel object occurs (e.g., an object thrown by a character contacts the voxel object, or a bomb explodes).
[0103] FIG. 14 is a diagram showing an example of the game space when an update event occurs. The situation shown in FIG. 14 is a situation where the first player character 201 performs a punch action on the terrain object 202, which is a voxel object. Although details will be described later, in the example shown in FIG. 14, the voxel data is updated so that the terrain object 202 around the position where the punch action by the first player character 201 hits is erased. As a result, the state where the terrain object 202 is destroyed by the punch action of the first player character 201 is expressed.
[0104] In this embodiment, when an update event occurs, the game system 1 sets an update range (update range 203 shown in FIG. 14) for updating the voxel object in the game space. The position, shape, and size of the update range are arbitrary. The position of the update range may be determined based on, for example, the position where an object related to the generated update event (e.g., a player character who performed a punch) contacts the voxel object. In the example shown in FIG. 14, the position of the update range 203 may be determined based on the position where the punch by the first player character 201 hits, and for example, the hit position or the position a predetermined distance forward from the hit position may be set as the center position of the update range 203. The shape and size of the update range may be determined in advance to be a shape corresponding to the type of the update event. For example, when an update event due to the punch of the first player character 201 occurs, the shape and size of the update range may be determined as a sphere with a predetermined size as shown in FIG. 14. Also, the size of the update range may be determined according to a value indicating the degree of influence of the generated update event (e.g., the strength of the punch or the size of the explosion).
[0105] The game system 1 changes the density of the voxels corresponding to the set update range. Note that the voxels corresponding to the update range are, for example, the voxels within the update range or the voxels overlapping with the update range. As a result of the change in density, the mesh of the voxel object is changed by the process described later, and thus the shape of the voxel object (the visible shape and the shape used for collision detection) is changed. Note that in other embodiments, in addition to changing the density of the voxels included in the update range, the game system 1 may change the material (i.e., the first material, the second material, and the material mixing ratio) in the voxels or change the state of the voxels.
[0106] In this embodiment, the game system 1 determines whether a voxel is included in the update range using an SDF (Signed Distance Field). The game system 1 sets an SDF indicating the update range set in the game space, and makes the above determination based on the value of the SDF. The SDF represents the signed distance from a specified shape for any position. FIG. 15 is a diagram showing an example of the update range. In the example shown in FIG. 15, a spherical update range is set in the game space. For example, in the example shown in FIG. 15, among the positions in the game space, the SDF value becomes negative for the positions inside the shape represented by the SDF, and the SDF value becomes positive for the positions outside the shape represented by the SDF. In this example, it is possible to determine whether it is included in the update range based on whether the SDF value is positive or negative. Also, by using the SDF value, not only simple inside / outside determination but also processes such as correction and interpolation can be performed.
[0107] In the above, an example in which a change is added to the voxel object such that the voxel object within the update range is deformed as if it were erased has been described, but the changes added to the voxel object using the update range are not limited to this. For example, a change in which a voxel object is newly added within the update range (that is, the volume occupied by the area within the voxel object increases by the amount of the update range) may be added to the voxel object. 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.
[0108] [2-3. Calculation of vertices] When the density of the voxels is updated as described above, the game system 1 sets vertices based on the updated voxel data. The above vertices can be the vertices of the mesh of the voxel object. Although details will be described later, in this embodiment, the above vertices are simplified, and the simplified vertices become the vertices of the mesh of the voxel object.
[0109] FIG. 16 is a diagram showing an example of a method for setting vertices. In FIGS. 16 to 25 described below, for the purpose of making the drawings easy to view and the explanations easy to understand, voxels, vertices, meshes, etc. are represented two-dimensionally, but actually, vertices and meshes are set in a three-dimensional space based on the voxels in the three-dimensional space. In this embodiment, the game system 1 uses a method of setting vertices at coordinates based on the positions and densities of a plurality of surrounding voxels for a portion where a voxel having a 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. The details of this method will be described below.
[0110] As described above, in this embodiment, the density set for each voxel is set in the range of 0 to 255. A voxel with a density of 0 is completely in the air, and a voxel with a density of 255 represents a state where the interior is completely filled. Densities between 0 and 255 are treated interpolatively and used for vertex determination. And in this embodiment, voxels with a density greater than or equal to a reference value are virtually treated as being inside 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 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. 16, 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 in 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), a determination is made as to whether to generate a vertex. That is, a vertex is generated in a region 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 vertex are determined by comparing the densities of adjacent voxels for each of the X, Y, and Z axes and performing interpolation based on the density difference. By setting normal information that defines the position and orientation of the straight line connecting the vertices, the coordinates of the vertices can be further calculated based on the normal information. Note that the normal information may be retained in advance for at least some of the voxels, or if it is not retained, the normal information may also be calculated based on the densities of adjacent voxels. In FIG. 16, 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 number of vertices will further increase on the upper right side and the upper left side of voxel 212 in FIG. 16.
[0111] By setting the vertices as described above, when generating a mesh that connects each of the set vertices (or each vertex after performing the simplification process described later on each of the set vertices), a shape having a volume that reflects the density of each voxel to some extent can be generated. However, depending on the relationship with adjacent voxels, it is possible that a voxel with a density of 0 includes a region within the object, or a voxel with a density of 255 includes a region outside the object. Also, in this embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume is also smaller because the number of vertices is 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 strictly corresponds to the density value.
[0112] [2-4. Determination of Vertex Material] The game system 1 determines the material for each of the vertices 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 for determining whether to generate the vertex (that is, the voxels that overlap with the "region spanning voxels" described above). Note that in other embodiments, the voxels used for determining the vertex material do not have to be the same as the voxels used for determining the generation of the vertex and may be different.
[0113] FIG. 17 is a diagram showing an example of a method for determining the material of a vertex. In the example shown in FIG. 17, 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 a vertex is eight. Also, in the example shown in FIG. 17, 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 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 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. 17 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. 14) as (0, 0).
[0114] 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 as to be 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. 17, 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
[0115] In addition, the game system 1 calculates the density of the material for each voxel. Here, the density of the material is a value obtained by multiplying the ratio occupied by the material among the materials set in the voxel by the density of the voxel. In the present embodiment, as the density of the voxel, a value obtained by normalizing the above-described values from 0 to 255 to values from 0 to 1 is used. In the example shown in FIG. 17, for voxel 215, since the only material set is sand, the above ratio regarding the sand material is 1, and since the density of the voxel is 1, the density of the sand material is 1. For voxel 216, since the density is 0 and no material is set, the density of the material is not calculated. Or, if some material is set, the density of the material is 0. For voxel 217, the above ratios of the set sand material and grass material are 0.7 and 0.3, respectively, and since the density of the voxel is 204 / 255 = 0.8, the density of the sand material is 0.7·0.8 = 0.56, and the density of the grass material is 0.3·0.8 = 0.24. For voxel 218, the above ratios of the set soil material and grass material are 0.6 and 0.4, respectively, and since the density of the voxel is 153 / 255 = 0.6, the density of the soil material is 0.6·0.6 = 0.36, and the density of the soil material is 0.4·0.6 = 0.24.
[0116] Then, the game system 1 calculates the 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 attaching a weight according to the weight value for each voxel to the density of the material calculated for each voxel and summing for each surrounding voxel. In the example shown in FIG. 17, 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.
[0117] 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. 17, 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. 17, for example, when the first material is the soil material and the second material is set as the sand material, the above second material ratio is shown as 0.1648 / (0.1648 + 0.1152) ≈ 0.59. Note that in other embodiments, as the value representing the ratio of the two materials, a value indicating the ratio of the first material may be used. Also, respective values indicating the ratio of each material may be used.
[0118] 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.
[0119] 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, the game system 1 selects up to a predetermined number (here, two) of material IDs with high priority and determines them 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.
[0120] In this embodiment, an evaluation value, which is an example of the priority parameter, is calculated based on the density of a plurality of voxels around the vertex so that the priority of the material set in the voxel with 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.
[0121] 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 so that the priority of the material set in the voxel closer to the vertex becomes higher. According to this, the material of the vertex can be determined by reflecting the distance between the voxel and the vertex.
[0122] 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 so that the priority of the material with a higher material mixing ratio becomes higher. According to this, when a plurality of materials are set in one voxel, the material of the vertex can be determined by reflecting the ratio of each material.
[0123] [2-5. Simplification of Vertex] In this embodiment, the game system 1 simplifies each vertex calculated as described above. That is, the game system 1 reduces the number of vertices by grouping several of the vertices calculated as described above and replacing them with a single vertex. Although details will be described later, the coordinates (i.e., positions) and materials of the vertices to be replaced are set based on a plurality of vertices before replacement. By such simplification, the number of vertices and the number of polygons constituting the mesh of the voxel object can be reduced, and the amount of memory used for processing and the processing load can be reduced.
[0124] In this embodiment, the game system 1 simplifies by expressing each vertex using an SVO (Sparse Voxel Octree). FIG. 18 is a diagram showing an example of vertex simplification. In FIG. 18, one square indicated by a solid line shown in (a) shown in FIG. 18 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. 16 and 17 described above as sides. Further, in FIG. 18, the vertex division region in which the character "v" is shown inside indicates the vertex division region in which vertices are set.
[0125] 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. 18, 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.
[0126] As shown in Fig. 18, (a) shows the state before simplification. In the example shown in Fig. 18, 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 simplifies such 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. 18). As a result, the vertices within the predetermined number of vertex division regions are simplified to one vertex.
[0127] In this embodiment, the game system 1 performs simplification in multiple stages. The number of stages is arbitrary, but in Fig. 18, up to the second stage is illustrated and described. (b) shown in Fig. 18 shows the state after the first-stage simplification, and (c) shown in Fig. 18 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. 18, as a result of determining that the vertex division regions within the range surrounded by the dotted line in (b) shown in Fig. 18 can be simplified, the vertices of the vertex division regions are simplified, resulting in the state shown in (c) shown in Fig. 18. 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.
[0128] Regarding the determination of whether simplification is possible, the specific method is arbitrary. In this embodiment, as conditions for the above determination, conditions related to the shape of the voxel object and conditions related to the material are used. In this embodiment, when both the conditions related to the shape of the voxel object and the conditions related to the material are satisfied, it is determined that simplification is possible, and when at least one of the conditions related to the shape of the voxel object and the conditions related to the material is not satisfied, it is determined that simplification is impossible.
[0129] The condition regarding the shape means, for example, that the shape formed by each vertex before simplification and the shape formed by each vertex after simplification are not greatly changed. For example, whether the shape formed by each vertex is not greatly changed before and after simplification can also be determined by calculating an index indicating the error between the mesh before simplification and the mesh after simplification and 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 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.
[0130] In addition, 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. 19 is a diagram showing an example of the condition regarding the material. (a) shown in FIG. 19 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. 19 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 set to be equal to or less than the number of materials that can be set for one vertex. In the present embodiment, the above-mentioned predetermined number is 2. For example, in the case of (a) shown in FIG. 19, 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. 19, 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.
[0131] 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, the determination regarding the conditions for the materials may be made by considering them as the same type. For example, regarding soil materials, there may be cases where a plurality of types of soil materials with the same properties but similar appearances (e.g., texture color and pattern) are prepared. In such a case, the game system 1 may make the determination regarding the conditions for the materials by considering the plurality of types of soil materials as the same type.
[0132] Here, in the present embodiment, regarding vertices, up to two types of materials can be set in the same way as voxels. On the other hand, in the present embodiment, when the total number of types of materials set for each vertex to be simplified is three or more, simplification is not performed. That is, when the total number of types of materials exceeds the number of materials that can be set for one vertex, simplification is not performed. Therefore, even if the number of vertices is reduced by simplification, the information on the materials set for the vertices will not be lost due to simplification, and the information on the materials can be maintained.
[0133] In this embodiment, the material of the simplified vertex is determined based on the material of each vertex before simplification. Specifically, the game system 1 sets one or two types of materials set for the vertices before simplification as the first material and the second material for the vertices after simplification. Thereby, the information of the material can be maintained. Note that the ratio of the materials after simplification is determined based on the ratio of the materials of each vertex before simplification. In this embodiment, the ratio of the materials after simplification is calculated in the same manner as the method of calculating the ratio of the materials of each vertex using the above evaluation value. That is, the game system 1 calculates a weight value based on the distance between the vertex after simplification and the vertex before simplification, and based on the weight value and the density of the material at the vertex before simplification (note that the evaluation value of the material described in [2-4. Determination of Vertex Material] above can be used as the density of the material here), calculates an evaluation value for each material. Then, the ratio of the materials is calculated based on the calculated evaluation value of each material.
[0134] [2-6. Mesh Generation] In this embodiment, based on each vertex simplified as described above, a mesh of the voxel object is generated. FIG. 20 is a diagram showing an example of a mesh generated based on each vertex. Note that the square shown in FIG. 20 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. 20, 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.
[0135] 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.
[0136] 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 may not perform vertex simplification and may generate the display mesh and / or the determination mesh based on non-simplified vertices.
[0137] 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, vertices among the temporary vertices for which the above index is equal to or less than a predetermined threshold (this threshold is set to be larger than the above 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.
[0138] 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.
[0139] [2-6-1. Determination of the Material of the Display Mesh] Next, an example of a method for determining the material and appearance of the display mesh will be described. In the present embodiment, the game system 1 determines the material for each polygon constituting the display mesh. Although details will be described later, in the present embodiment, the polygon corresponding to the above polygon is drawn using up to two textures corresponding to up to two materials. Therefore, the game system 1 ensures that for each polygon constituting the mesh, ultimately, the number of materials set for one polygon is two or less. In other embodiments, three or more materials may be set. For example, in embodiments where there are three or more materials for voxels and vertices respectively, the same number of materials may be set for the polygon.
[0140] In the present embodiment, a quadrilateral may be formed as the polygon constituting the display mesh (see FIG. 20). 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. 21, the process of dividing the quadrilateral into two triangles will be described.
[0141] FIG. 21 is a diagram showing an example in which a quadrilateral constituting a mesh is divided into two triangles. (a) shown in FIG. 21 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. 21 shows the two triangles obtained by dividing the quadrilateral. In the example shown in FIG. 21, assume that the materials of each of the vertices 231 to 234 are grass, soil, sand and grass, and grass respectively.
[0142] 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. 21, 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. 21). Therefore, for the above quadrilateral, the division condition is satisfied, so the game system 1 divides the quadrilateral into two triangles.
[0143] 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 either of the two ways of dividing the triangles, the division is performed in any one way.
[0144] By performing the division as described above, the game system 1 can generate two triangles such that 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 the information on the materials set at each vertex.
[0145] 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.
[0146] 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. 22 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. 22, 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.
[0147] 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 descending order of the determination value as the materials of the polygon. In the example shown in FIG. 22, 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. 22, the materials of grass and sand are selected (see (a) shown in FIG. 22).
[0148] Note that the specific method of selecting the material of the polygon of the display mesh is arbitrary. In other embodiments, the material of the polygon of the display mesh may be selected by any method based on the information set at the vertices of the polygon. For example, for the material of the polygon of the display mesh, the material with the largest ratio at one vertex is specified for each vertex, and the material with the largest number of times specified for each vertex may be selected as the material of the polygon.
[0149] In the present embodiment, the material of the polygon selected as described above is indicated by the materials set at the respective vertices of the polygon. That is, when the material of the polygon is selected, the game system 1 changes the materials set at the respective vertices of the polygon (that is, the material IDs included in the vertex data) to the selected material. In the example shown in FIG. 22, for vertices 241 and 243, before the selection of the material of the polygon, the materials of grass and soil, and sand and soil are set respectively (see (a) shown in FIG. 22). When the materials of grass and sand are selected as the material of the polygon as described above, the materials set at each of vertices 241 and 243 are changed to grass and sand (see (b) shown in FIG. 22). Note that for vertex 242, since the material set before the selection is the same as the selected material of the polygon, the material is not changed. As described above, when two types of materials are selected as the material of the polygon, the information on the materials of the third type and later set at each vertex of the polygon will be deleted.
[0150] In addition, the game system 1 changes the ratio of the materials set for the vertices in accordance with the change of the materials set for the vertices. For example, for vertex 241, the content is changed from the first material being grass and the second material being soil to the first material being grass and the second material being sand. Here, since the proportion of the sand material is 0, the material ratio is the first material: the second material = 1:0. In this way, the above change formally changes the material of each vertex in order to represent the material of the polygon by the materials of the respective vertices of the polygon.
[0151] According to the above, since the material set for each vertex of one polygon is only the material corresponding to the texture used for the drawing described later, it is possible to facilitate the execution of the drawing process using the texture.
[0152] Note that due to the above change, it may be the case that all the materials for a certain vertex are changed (that is, none of the materials before the change match the materials after the change). Such a case is, for example, when the material set for the vertex before the change is soil and the materials selected as the material of the polygon are grass and sand. In such a case, the ratio of the materials at the vertex may be set based on the ratio of the materials at the other vertices of the polygon. For example, in the above example, when the first material set for one of the other vertices of the triangular polygon is grass and the material ratio is grass: sand = 1:0, and the material set for another vertex is sand and the material ratio is sand: grass = 1:0, the material ratio at the vertex may be set to grass: sand = 0.5:0.5. In addition, the game system 1 may determine the ratio of the materials at the vertex in consideration of the distance between the vertex and the other vertices (for example, based on a weight value that increases as the distance gets closer).
[0153] As described above, in the present embodiment, for each polygon, the game system 1 selects up to a predetermined number (here, two) of the material IDs set for the vertices included in the polygon (that is, the material IDs set for the vertices of the polygon corresponding to the polygon), and determines them as the material IDs of the polygon. According to this, the game system 1 can perform the drawing process while suppressing the number of textures used while reflecting the material set for the vertices in the appearance of the polygon.
[0154] In the present embodiment, for all the materials of the vertices constituting the polygon, when the number of the materials is less than or equal to the predetermined number, the game system 1 determines the material as the material of the polygon. When the material exceeds the predetermined number, a predetermined number of materials with high priority are selected based on the priority parameter of each vertex (specifically, based on the determination value calculated based on the above-described evaluation value), and are determined as the material of the polygon. As a result, even when more than a predetermined number of materials are set for each vertex in total, the material of the polygon can be set to a predetermined number or less of materials considering the priority.
[0155] 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.
[0156] FIG. 23 is a diagram showing an example of materials set for each vertex of two adjacent polygons. FIG. 23 shows a state (diagram (b) shown in FIG. 21) in which two polygons are formed by the respective vertices 231 to 234 shown in FIG. 21. In the example shown in FIG. 23, 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. 23, there is a conflict in the materials to be set for vertices 231 and 234 shared by the two polygons.
[0157] Therefore, in the present embodiment, when there is a conflict in the materials to be set for a vertex shared by two polygons, the game system 1 adds another vertex at the same position with respect to the said vertex. Diagram (b) shown in FIG. 23 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. 23, 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.
[0158] The game system 1 generates a display mesh composed of polygons whose vertices and materials are determined as described above. Further, the game system 1 performs the drawing of the voxel object by performing the drawing of the polygon based on the information of the materials set for each vertex (that is, the first material and the second material).
[0159] FIG. 24 is a diagram showing an example of applying a texture to a polygon. FIG. 24 shows a triangular polygon formed by the vertices 241 to 243 shown in FIG. 22. Note that the materials set for the vertices 241 to 243 are those shown in (b) shown in FIG. 22.
[0160] Regarding the position of the vertex of the polygon, the texture of the first material and the texture of the second material set for the vertex are blended by mapping at the ratio of the materials set for the vertex (that is, using the ratio as the blend rate). Note that the textures of the first and second materials used for drawing are the textures indicated by the drawing setting information associated with each material ID associated with the vertex data in the above-described material data (see FIG. 13). In the example shown in FIG. 24, regarding the position of vertex 241, since the material ratio is grass:sand = 1:0, drawing is performed using only the grass texture. Also, regarding the position of vertex 243, since the first material is sand and the material ratio is sand:grass = 1:0, drawing is performed using only the sand texture. Further, regarding the position of vertex 242, since the first material is grass, the second material is sand, and the material ratio is grass:sand = 0.5:0.5, drawing is performed by blending the grass texture and the sand texture at a blend rate of 0.5:0.5.
[0161] Also, for positions other than the vertices of the polygon, the game system 1 determines the blend rate by interpolating the blend rates at each vertex. Then, the textures of the two materials set for each vertex are drawn by a mapping that blends them based on the interpolated blend rate. Note that the specific method of interpolation is arbitrary. As an example, the blend rate between vertices is linearly interpolated. In FIG. 24, the positions where the ratio of the texture of the grass material is applied is high are shown in white, and the positions where the ratio of the texture of the sand material is applied is high are shown in black. In the example shown in FIG. 24, the grass texture is applied at vertex 241, the blend ratio of the sand texture increases as it approaches 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 (i.e., set for each vertex of the polygon) at the blend rate according to the ratio of the materials, the appearance at the boundary between different materials in the display mesh can be made natural. As a result, the appearance of the display mesh with multiple types of materials set can be made natural.
[0162] [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.
[0163] In this embodiment, for each polygon that constitutes the determination mesh, the game system 1 makes it so that there is one type of material set for one polygon. Specifically, the game system 1 determines the material set for the polygon of the determination mesh based on the material information (that is, the information on the first and second materials and the ratio of the materials) set for the vertices of the polygon.
[0164] FIG. 25 is a diagram showing an example of a method for determining the material of a polygon that constitutes a determination mesh. FIG. 25 shows an example of determining the material for a triangular polygon formed by each of the vertices 241 to 243 shown in FIG. 22. Note that the materials set for each of the vertices 241 to 243 are those shown in (a) shown in FIG. 22.
[0165] 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 determination value is the same as the method for calculating the determination value used for selecting the material of the polygon of the display mesh. Note that the specific method for calculating the determination value is arbitrary. In other embodiments, the determination value may be calculated by an arbitrary method based on the information set for the vertices of the polygon of the determination mesh.
[0166] In the example shown in FIG. 25, for each material, the determination value is as follows: for the grass material, the determination value is 1.3; for the sand material, the determination value is 1.2; and for the soil material, the determination value is 0.5, similar to the case shown in FIG. 22 described above. Therefore, as the material of the polygon shown in FIG. 25, the grass material is selected.
[0167] 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 that 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.
[0168] 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 that is performed according to the result of the collision determination using the determination mesh. Note that in other embodiments, the number of types of materials that can be set for the polygons of the display mesh and the determination mesh is arbitrary. The number of materials that can be set for the 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.
[0169] In this 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 materials set in the voxel data can be reflected in the materials of the display mesh. Further, in this embodiment, the number of material types set for the vertices set based on the voxel data is also up to two (see FIG. 17). According to this, for the vertices generated during the process of obtaining the display mesh from the voxel data, two types of materials can be set, so that the information of the materials set in the voxel data can be reflected in the display mesh without loss of material information during the process.
[0170] In another embodiment, the game system 1 may set materials differently for vertices used for generating a display mesh and vertices used for generating 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 for generating a display mesh as described above, and may set one type of material for vertices used for generating 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 for generating a determination mesh, the material with the largest determination value calculated for each material 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.
[0171] As described above, in the present embodiment, a display mesh and a determination mesh can be set for one voxel object. However, depending on the game situation, it is not necessary to set both 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.
[0172] In addition, 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.
[0173] In the above, a 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.
[0174] In other embodiments, only one of the above-described display mesh and determination mesh may be set (i.e., the display mesh and the determination mesh are the same mesh). In this case, the above-described display mesh may be shared by also using it as the determination mesh, or the above-described determination mesh may be shared by also using it as the display mesh.
[0175] [2-7. Processing Using an Object with a Material Set on a Mesh] Next, with reference to FIGS. 26 to 38, a processing example of obtaining a material on a mesh and playing a game using an object with the material set thereon will be described. In the following, it is assumed that terrain objects such as the ground and walls are voxel objects, and a player character performs an action, and an example will be described in which an effect in the game occurs as a result of collision determination.
[0176] Note that the above "effect in the game" is an arbitrary change that occurs in the game, and is, for example, a change caused by "processing that reflects the result of contact between objects". The "effect in the game" may be based on a collision determination between the determination mesh and a determination shape corresponding to a determination target based on game processing (for example, a determination area set for an object such as a player character or a sound object). The above effect may occur in an object corresponding to the determination mesh, or the above effect may occur in an object corresponding to the determination target. The content of the "effect in the game" may be associated with the material set on the polygon in which a collision is determined in the collision determination that is the cause of the occurrence of the effect (that is, the content of the effect may be determined by the material).
[0177] FIG. 26 is a diagram showing an example of a game image representing how a player character moves on a terrain object. In the game example described below, an example is used in which a first player character 201 and a second player character 204 appear in the game space where the game is played. The movement of the first player character 201 in the game space is controlled based on an operation input from a controller operated by a first user. The movement of the second player character 204 in the game space is controlled based on an operation input from a controller operated by a second user. Here, as shown in FIG. 26, the second player character 204 is in a state of riding on a part (for example, shoulders, arms, back, head, etc.) of the first player character 201. Then, the second player character 204 can move in the game space together with the first player character 201 while maintaining the above state. Therefore, when the first player character 201 moves in the game space based on an operation input from the controller operated by the first user, the second player character 204 also moves together, so that the first user can move not only the first player character 201 but also the second player character 204. Note that the mode in which the first player character 201 and the second player character 204 move together in the game space is arbitrary. For example, the second player character 204 may move while always following the first player character 201, or the second player character 204 may always be arranged in a state of floating above the head of the first player character 201 or in a state of leading in front. Also, the second player character 204 may be a part of the first player character 201 or may be integrated with the first player character 201. For example, one arm or hand, one eye, a part of the clothes, ornaments, decorations, etc. of the first player character 201 may function as the second player character 204, or the first user and the second user may operate each part of the first player character 201 as a single entity.
[0178] In the example shown in FIG. 26, the material for a part of the polygons of the terrain object 252, which is the terrain object for determining the ground, is set to "lava". Also, the material for the polygons other than the terrain object 252 in the mesh for determining the terrain object is set to "rock".
[0179] In the example shown in FIG. 26, the game system 1 performs a collision determination between the terrain object and the first player character 201 and the second player character 204 using the determination mesh. That is, a collision determination is made as to whether or not the determination mesh of the terrain object and a determination area set for the player character (for example, an area having a predetermined shape set based on the position of the first player character 201) are in contact. And when a collision is determined between the polygons whose material is lava and the first player character 201 and the second player character 204, as a process for generating an in-game effect, a process of reducing the physical strength of the first player character 201 and / or the second player character 204 is performed. Also, in the above case, a process of causing the first player character 201 and / or the second player character 204 to perform a predetermined reaction is performed. Note that the collision determination with the first player character 201 and the second player character 204 may be performed for each of them, or may be performed based on one determination area representing both. Or, it may be such that only the collision determination with the first player character 201 is performed and the collision determination with the second player character 204 is omitted.
[0180] Note that in the present embodiment, as the property information included in the above-described material data, for the lava material, a property of reducing the physical strength of the contacted player character (for example, the property that the temperature is equal to or higher than a predetermined value) is set. The game system 1 generates an in-game effect (in the above example, a reduction in the physical strength of the player character) based on the property information corresponding to the material set for the polygon in the determination mesh for which a collision has been determined by the collision determination.
[0181] Also, when a collision is determined between a polygon whose material is rock and the first player character 201 and the second player character 204, the process of reducing the physical strength of the player character is not executed. Also, based on the collision, the first player character 201 (and the second player character 204) is controlled so as not to be able to enter the inside of the polygon. Therefore, the player character can stand on or walk on the above polygon. In this way, in the present embodiment, by setting the material for each polygon, the game system 1 can execute different processes according to which part of the voxel object another object has contacted. Also, the content of the process to be executed can be made according to the type of material. Note that in the present embodiment, the player character can change the terrain object (for example, deform it or change the material).
[0182] Also, the content of the process executed when a collision is determined between a voxel object and another object is arbitrary. For example, when the other object is a moving object such as a player character or an enemy character, the process may be a process of outputting the footsteps of the object or displaying an effect (for example, an effect representing dust or water splashes) at the contact location. At this time, the game system 1 can vary the footsteps or the effects according to the type of material set for the polygon of the contacted part of the voxel object.
[0183] FIG. 26 is a diagram showing an example of a game image representing a state in which the second player character 204 acquires a material on a determination mesh in a terrain object and acquires a sound object 253 to which the material is set. FIG. 27 is a diagram showing an example of a game image representing a state in which the second player character 204 emits a sound object 253. FIG. 28 is a diagram showing an example of a game image representing a state after the second player character 204 has emitted the sound object 253.
[0184] In the upper diagram of FIG. 26, in the present embodiment, a cursor C indicating a position within the displayed game space is displayed. The cursor C moves the position indicated by the cursor C based on a predetermined operation input (see FIG. 38) from the controller operated by the second user. As a first example, when the second user operates the left controller 3 or the right controller 4 in a vertically long orientation, the position of the cursor C is controlled to indicate a position based on an operation using the mouse function, or a position based on an operation using an inertial sensor according to the movement and posture of the entire left controller 3 or right controller 4. As a second example, when the second user operates using a set of the left controller 3 and the right controller 4, the position of the cursor C is controlled to indicate a position based on the tilt direction and tilt amount of the analog stick 32 (left analog stick), or a position based on an operation using the mouse function of the left controller 3 or the right controller 4. As a third example, when the second user operates using the second controller 7, the position of the cursor C is controlled to indicate a position based on the tilt direction and tilt amount of the left analog stick, or a position based on an operation using an inertial sensor according to the movement and posture of the entire second controller 7. Thus, the cursor C can be moved up, down, left, and right on the display 12 based on the operation of the second user described above. Note that the cursor C may be superimposed on the game space image displayed on the display 12, or may be displayed by being arranged within the game space.
[0185] The game system 1 identifies the material at the position in the game space corresponding to the position indicated by the cursor C, and displays the name of the identified material near the cursor C. For example, the game system 1 identifies the material at the position on the determination mesh of the terrain object in the game space corresponding to the position indicated by the cursor C. As an example, in the example shown in the upper figure of FIG. 26, the cursor C indicates a position that is part of the terrain object 251 of rock, and the material of "rock" of the determination mesh corresponding to the position is identified, and the name of the identified material, "rock", is displayed near the cursor C.
[0186] Next, in the present embodiment, in response to an instruction based on a predetermined operation input from the controller operated by the second user (see FIG. 38), the material specified by the cursor C is set as the material of the scream object 253 emitted by the second player character 204. For example, when the ZR button of the controller operated by the second user (operation button 61 when operating the right controller 4, or the ZL button (operation button 39) when operating the left controller 3) is long-pressed, and the time during which the long-press operation continues reaches a predetermined time, the material specified by the cursor C is set as the material of the scream object 253. In the example shown in the lower figure of FIG. 26, a gauge indicating the time during which the long-press operation continues is displayed inside the cursor C, and when the gauge extends to the upper limit, it is shown that the material of the scream object 253 is set to the material of "rock". When the material of the scream object 253 is set, a sign indicating the remaining number of bullets that can emit the scream object 253 is attached and displayed near the cursor C (see the upper figure of FIG. 27). Note that depending on the type of material, there may be materials that cannot be set as the material of the scream object 253. As an example, for materials with an indestructible hardness set or materials that damage the player character, etc., they may not be set for the scream object 253. In the present embodiment, the material specified by the cursor C and set as the material of the scream object 253 is the material on the determination mesh, but in other embodiments, it may be in other forms. For example, the game system 1 may specify the material at the position on the display mesh of the terrain object in the game space corresponding to the position indicated by the cursor C, or when one of the determination mesh and the display mesh is set, it may specify the material on the one mesh.Also, the remaining number of bullets when the voice object 253 is set may be a predetermined fixed number, a number corresponding to the type of material set, a number corresponding to the game stage, or a number corresponding to the type or level of the second player character 204.
[0187] As shown in the upper diagram of FIG. 27, the voice object 253 with the material set by the above-described process is emitted and moves toward the position in the game space corresponding to the position of the cursor C in response to the shouting action of the second player character 204 according to an instruction based on a predetermined operation input from the controller operated by the second user (see FIG. 38). Here, the cursor C that is the target of the movement destination of the voice object 253 can be moved based on the above-described operation input from the controller operated by the second user. Then, the game system 1 identifies the material at the position in the game space corresponding to the position indicated by the cursor C in the same manner as the above-described process, and displays the name of the identified material near the cursor C. In the example of the upper diagram of FIG. 27, since the cursor C indicates a part of the terrain object 251 of the material "rock", the material name "rock" is displayed near the cursor C.
[0188] As shown in the upper diagram to the lower diagram of FIG. 27, when the ZR button of the controller operated by the second user (the ZL button when operating the left controller 3) is operated, the voice object 253 with the material set moves toward the position in the game space corresponding to the position of the cursor C at a predetermined moving speed. Note that the start of the movement of the voice object 253 may be produced so as to appear from inside the second player character 204 (or the first player character 201), or may be produced so as to appear from near the second player character 204 or the first player character 201. Also, triggered by the start of the movement of the voice object 253, the remaining number of bullets indicated by the above-described indicator may be displayed with a decrease of 1.
[0189] The scream object 253 is a virtual object that appears in the game space by the sound emitted when the second player character 204 screams. The scream object 253 is composed of the material set by the above-described process, and its size and shape are arbitrary. For example, the scream object 253 is configured by attaching a texture corresponding to the set material (for example, a texture representing the surface of the set material) to a 3D object indicating the words screamed by the second player character 204. In the example shown in FIG. 27, the scream object 253 is configured by attaching a texture representing the surface of a rock to a 3D object indicating the word "Wow" screamed by the second player character 204. Note that the scream object 253 may be a non-voxel object or a voxel object. In the following description, an example in which the scream object 253 is composed of non-voxel objects is used.
[0190] Then, when the scream object 253 collides with another object, the game system 1 sets an update range for updating the voxel object at the collision position based on the collision determination between the determination area set for the scream object 253 and the determination mesh of the other object. In the example shown in the lower diagram of FIG. 27, an update range 254 is set at the collision position based on the collision determination between the determination area set for the scream object 253 and the determination mesh of the terrain object 251 which is a voxel object. The position, shape, and size of the update range 254 in the present embodiment are arbitrary. For example, the position of the update range 254 may be the position where the determination mesh of the scream object 253 and the terrain object 251 are in contact, or the position inside the terrain object 251 by a predetermined distance from the contact position may be the center position of the update range 254. Further, the shape and size of the update range 254 may be determined as a sphere of a predetermined size regardless of the size of the scream object 253. Also, the size of the update range 254 may be determined according to the material of the scream object 253.
[0191] The game system 1 generates an in-game effect that makes at least one of the density and material changes to the voxels corresponding to the set update range 254. For example, the game system 1 · Decreases the density of the voxels of the voxel data corresponding to the update range 254 · Increases the density of the voxels of the voxel data corresponding to the update range 254 and sets the material to a predetermined material · When the material of the collision position determination mesh and the material of the scream object 253 are in a predetermined combination, changes the material of the voxels of the voxel data corresponding to the update range 254 to a predetermined material Among a plurality of effects including at least the above, generates any in-game effect according to the type of the material of the scream object 253.
[0192] For example, in the example shown in FIG. 28, the game system 1 decreases the density of the voxels of the voxel data corresponding to the update range 254. As a result, an in-game effect occurs in which the terrain object 251 at the collision position of the terrain object 251 is destroyed and deformed as if it has disappeared. For example, in the present embodiment, based on the SDF of each voxel, by rewriting the density of each voxel, the decrease of each voxel is controlled. As an example, the density of the voxels with a negative SDF distance is rewritten to a lower value as the absolute value of the distance is larger, and the density of the voxels with the absolute value larger than a predetermined value is rewritten to the lower limit value and set, so that at least a part of the terrain object 251 within the update range 254 is in a state of being cut off. In the example shown in FIG. 28, the state where the rock surface 251a generated by cutting off a part of the terrain object 251 by the collision with the scream object 253 is newly exposed to the outside is shown.
[0193] As another example, in the example shown in the upper diagram of FIG. 29, the cursor C indicates a position where the material becomes part of the terrain object 270 of sand, and the material of "sand" of the determination mesh corresponding to the position is specified, and the name of the specified material, "sand", is displayed near the cursor C.
[0194] Next, when the time during which a predetermined operation input (see FIG. 38) from the controller operated by the second user continues reaches a predetermined time, the material of "sand" specified by the cursor C as the material of the scream object 271 is set. In the example shown in the lower diagram of FIG. 29, a gauge indicating the time during which the above operation input is continuously performed is displayed inside the cursor C, and when the gauge extends to the upper limit, it is shown that the material of the scream object 271 has been set to the material of "sand". Then, when the material of the scream object 271 is set, a mark indicating the remaining number of bullets that can fire the scream object 271 is added and displayed near the cursor C (see the upper diagram of FIG. 30).
[0195] As shown in the upper diagram of FIG. 30, the scream object 271 with the material of "sand" set is emitted and moves toward the position in the game space corresponding to the position of the cursor C in response to the screaming action of the second player character 204 according to an instruction based on a predetermined operation input (see FIG. 38) from the controller operated by the second user. Then, the game system 1 specifies the material of the position in the game space corresponding to the position indicated by the cursor C in the same manner as the above-described processing, and displays the name of the specified material near the cursor C. In the example of the upper diagram of FIG. 30, since the cursor C indicates a part of the terrain object 251 of the material of "rock" in the same manner as the example of the upper diagram of FIG. 27, the name of the material, "rock", is displayed near the cursor C.
[0196] As shown in the upper to lower figures of FIG. 30, a predetermined operation input (see FIG. 38) from the controller operated by the second user causes the vocal object 271 with the material of "sand" set to move at a predetermined moving speed toward the position in the game space corresponding to the position of the cursor C. In the example shown in FIG. 30, the vocal object 271 is configured by attaching a texture representing the surface of sand to a 3D object showing the character "Wow" uttered by the second player character 204.
[0197] Then, when the vocal object 271 collides with another object, the game system 1 sets an update range for updating the voxel object at the collision position based on the collision determination between the determination area set for the vocal object 271 and the determination mesh of the other object. In the example shown in the lower figure of FIG. 30, an update range 272 is set at the collision position based on the collision determination between the determination area set for the vocal object 271 and the determination mesh of the terrain object 251 which is a voxel object. The position, shape, and size of the update range 272 are arbitrary, similar to the above-described update range 254.
[0198] When a sound object 271 made of sand material collides with a terrain object 251 made of solid rock material in the game system 1, a game effect is generated that increases the density of the voxels corresponding to the update range 272 and sets the material to a predetermined material. For example, as shown in FIG. 31, the game system 1 increases the density of the voxels of the voxel data corresponding to the update range 272 and sets the material of the voxels with the increased density to the material of "sand". As a result, a game effect occurs in which a deformation occurs as if a terrain object 273 made of sand material is piled up and increased at the collision position of the terrain object 251. For example, the increase of each voxel is controlled by rewriting the density of each voxel based on the SDF of each voxel. As an example, the density of the voxels with a negative SDF distance is rewritten to a higher value as the absolute value of the distance is larger, and the density of the voxels with the absolute value larger than a predetermined value is rewritten to the upper limit value, and the material of the rewritten voxels is set to "sand", so that a terrain object 273 made of sand material is piled up on at least a part of the terrain object 251 within the update range 2752. Note that the material set for the voxels of the voxel data corresponding to the update range 272 (that is, the material of the voxels with increased density) may be the material of the sound object 271, or the material set at the collision position of the determination mesh of the terrain object 251, or a material in which these materials are mixed at a predetermined ratio (for example, 1:1).
[0199] In this embodiment, various in-game effects may occur based on the type of material set for the scream object and the type of material set at the collision position in the determination mesh of the object at the collision destination. For example, as illustrated in FIG. 32, as a first example, the material of gold is set for the scream object, and the material for general solids is set at the collision position in the determination mesh of the object at the collision destination. And, as the property information included in the above-described material data, assume that the property of destroying the contacted object by explosion is set for the gold material. In this case, an explosion occurs in a predetermined range based on the collision position, and an in-game effect occurs that reduces the density of the voxels of the voxel data corresponding to the update range set based on the collision position.
[0200] As a second example, the material of salt is set for the scream object, and the material of bacteria is set at the collision position in the determination mesh of the object at the collision destination. And, as the property information included in the above-described material data, assume that the property of sterilizing the contacted object is set for the salt material. In this case, melting occurs in a predetermined range based on the collision position, and an in-game effect occurs that reduces the density of the voxels of the voxel data corresponding to the update range set based on the collision position.
[0201] As a third example, the material of rock is set for the scream object, and the material for general solids is set at the collision position in the determination mesh of the object at the collision destination. And, as the property information included in the above-described material data, assume that the property of destroying the contacted object is set for the rock material. In this case, destruction occurs in a predetermined range based on the collision position, and an in-game effect occurs that reduces the density of the voxels of the voxel data corresponding to the update range set based on the collision position.
[0202] As a fourth example, a material such as soil or sand is set for the sound object, and a material for solids in general is set at the collision position in the determination mesh of the object at the collision destination. And as the property information included in the above-described material data, it is assumed that a property of solidifying on the contacted object is set for the material such as soil or sand. In this case, by increasing the density of the voxels of the voxel data corresponding to the update range set based on the collision position and setting the material of the voxels to a predetermined material, a game effect occurs in which voxel objects of the predetermined material are filled in a predetermined range based on the collision position.
[0203] As a fifth example, an ice material is set for the sound object, and a lava material is set at the collision position in the determination mesh of the object at the collision destination. And as the property information included in the above-described material data, it is assumed that 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 for the ice material. In this case, since the lava material is cooled by the ice material, a game effect occurs in which the material of the voxels of the voxel data corresponding to the update range set based on the collision position is changed from lava to obsidian.
[0204] In addition, in other embodiments, the sound objects respectively exemplified in the first to fifth examples above may be included in the sound objects exemplified in other examples. For example, the sound object with the rock material described in the third example above may be included in the sound object exemplified in the fourth example above. Also, a sound object with a material not described in the above examples may be further included in any of the first to fifth examples above.
[0205] Also, in the above description, the voxel object corresponding to the update range set by the collision with the voice object is unconditionally changed. However, in other embodiments, the change of the voxel object corresponding to the update range may be performed on the condition of the amount of damage set for the voxel. For example, instead of unconditionally deforming the voxel object corresponding to the update range, the game system 1 may increase the amount of damage set for the voxel corresponding to the update range, and change the voxel object when the amount of damage exceeds a predetermined value. At this time, the increased amount of damage may be determined according to the voice object 253 that collided with the voxel object.
[0206] Also, in this embodiment, when the first player character 201 performs an action of throwing a fragment object, an update range for updating the voxel object at the collision position is set based on the collision determination between the determination area set for the fragment object and the determination mesh of the other object. Then, the game system 1 can generate an in-game effect that changes at least one of the density and the material for the voxels corresponding to the set update range based on the action of the first player character 201.
[0207] The above-mentioned fragment object may or may not be a voxel object, and the material, size, and shape are arbitrary. In this embodiment, a plurality of fragment objects are arranged in the game space, and can also be generated by an action (described later) of the first player character 201. When the above-mentioned fragment object is a voxel object, a unique voxel space is defined for the fragment object, and a unique display mesh and a unique judgment mesh based on the unique voxel data are set. Then, the above-mentioned unique voxel space can move / rotate within the game space for each defined fragment object, and the position, direction (posture), etc. of the unique voxel space within the game space are controlled. Note that the voxels defined in the above-mentioned unique voxel space may have a size different from the voxels constituting the terrain object, and the size of the voxels may be relatively small. In the following description, an example in which the fragment object is composed of voxel objects is used.
[0208] FIG. 33 is a diagram showing an example of a game image representing a state in which the first player character 201 extracts a fragment object 256 from a terrain object 251. In this embodiment, by a predetermined operation input (see FIG. 37) from the controller operated by the first user, the first player character 201 can be made to perform an action of grasping the terrain object 251 and extracting and holding a part thereof as the fragment object 256 (referred to as the "extraction action"). For example, when the first user is operating the left controller 3 alone or the right controller 4 alone, the SR button (operation button 44 or 66) is pressed, and when the first user is operating a set of the left controller 3 and the right controller 4 or the second controller 7, the ZR button (for example, operation button 61) is pressed to perform the extraction action. The game system 1 erases a part of the terrain object 251 and generates the fragment object 256 in response to the extraction action of the first player character 201.
[0209] For example, when a pull-out action is performed, the game system 1 executes the following process. For example, when a user performs an operation input to cause the first player character 201 to perform a pull-out action, the game system 1 causes the first player character 201 to perform an action of digging forward and grabbing, and performs a collision determination. Then, when a collision between the first player character 201 performing the pull-out action and the terrain object 251 is determined, an update range 255 is generated based on the position and orientation of the first player character 201. For example, the update range 255 is generated in a predetermined direction (e.g., forward) with respect to the first player character 201. Note that the shape and size of the update range 255 may be determined in advance according to the type and level of the action of the first player character 201. Further, the game system 1 decreases the density of the voxels corresponding to the update range 255. Then, by updating the mesh according to the decrease in the voxel density, the terrain object 251 is deformed so that the portion within the update range 255 is erased (see the lower figure in FIG. 33). In the present embodiment, the density of each voxel corresponding to the update range 255 is decreased, but the voxels to be decreased in density may be at least some of the voxels corresponding to the update range 255.
[0210] Also, in the above, it is assumed that the voxel object corresponding to the update range 255 is unconditionally deformed by the pull-out action. However, in other embodiments, the deformation of the voxel object corresponding to the update range 255 may be performed on the condition of the amount of damage set for the voxel. For example, instead of unconditionally deforming the voxel object corresponding to the update range 255, the game system 1 may increase the amount of damage set for the voxels corresponding to the update range 255, and decrease the density in the voxels when the amount of damage exceeds a predetermined value. At this time, the increase amount of damage may be determined according to the action performed on the voxel object.
[0211] In addition, the game system 1 generates a fragment object 256 representing the erased part of the terrain object 251. For example, as illustrated in the lower diagram of FIG. 33, the game system 1 generates the fragment object 256 while having the first player character 201 hold it based on a pulling-out action. The fragment object 256 is a voxel object and may be generated to have a shape corresponding to the erased part of the terrain object 251, or may have a predetermined shape. A unique voxel space different from the voxel space of the voxels corresponding to the terrain object 251 etc. is defined for the fragment object 256.
[0212] The game system 1 determines the material of the fragment object 256. As an example, the material of the fragment object 256 is determined based on the material set for the polygon in the determination mesh that contacts the update range 255 among the determination meshes of the terrain object 251. The material of the fragment object 256 is determined to be the same as any one of the materials set for the polygons in the determination mesh that contacts the update range 255. According to this, the material of the fragment object 256 can be made the same as the material of the erased part of the terrain object 251. As is clear from the above description, the fragment object 256 is not actually a part of the terrain object 251. However, by being generated along with the erasure of a part of the terrain object 251 and the material of the erased part of the terrain object 251 being inherited by the fragment object 256, an impression can be given to the user that the first player character 201 has taken out a part of the terrain object 251 by a pulling-out action. Note that, as another example, the material of the fragment object 256 may be determined based on the material set for the voxel data in the voxels that contact the update range 255.
[0213] In this embodiment, a priority is set for each type of material to be prepared, and the game system 1 determines, as the material of the fragment object 256, the material with the highest priority (for example, one material with the highest priority) among the materials set for each polygon of the determination mesh within the update range 255. When the determination mesh within the update range 255 includes polygons set with different types of materials, it is conceivable that it is difficult for the user to predict what the material of the fragment object 256 will be, and it is also conceivable that the above-mentioned inconvenience will occur against the user's intention. In contrast, in this embodiment, by setting a priority for the material set as the material of the fragment object 256, the possibility of the above-mentioned inconvenience occurring can be reduced. In other embodiments, the game system 1 may determine, as the material of the fragment object 256, the material with the highest material mixing ratio among the materials set for each polygon of the determination mesh within the update range 255. Furthermore, not only the priority but also a setting to exclude a specific material from the extraction target may be performed. For example, when the determination mesh within the update range 255 includes a polygon with a material of rock and a polygon with a material of lava, if the material of the fragment object 256 is set to lava, there is a possibility that the physical strength of the first player character 201 will decrease when the first player character 201 grips the fragment object 256 by the extraction action (it is assumed that, as described in FIG. 26, the material of lava is set to have the property of decreasing the physical strength of the first player character 201 when contacted). Therefore, for materials that receive damage such as lava, they may be excluded from the extraction target so that they are not included in the material of the fragment object 256.
[0214] FIG. 34 is a diagram showing an example of a game image representing a state in which fragment objects 258 are generated when the first player character 201 destroys a terrain object 251. In the present embodiment, a punch action can be performed on the first player character 201 by a predetermined operation input (see FIG. 37) from a controller operated by the first user. For example, when the first user is operating only the left controller 3 or only the right controller 4, the upward button (operation button 35) or the B button (operation button 54) is pressed, and when the first user is operating a set of the left controller 3 and the right controller 4 or the second controller 7, the Y button (for example, operation button 56) is pressed, thereby performing a punch action. The game system 1, as an in-game effect caused by the punch action, similarly to the case of the above-described pulling-out action, erases a part of the terrain object 251 and generates fragment objects 258. Specifically, the terrain object 251 is deformed as if a part thereof has been erased. Note that, when a punch action is performed, unlike the above-described pulling-out action, after the punch action, the fragment objects 258 are not held by the first player character 201 and are arranged around the position where the punch action has been performed (see the lower diagram in FIG. 34).
[0215] When a punch action is performed, the game system 1 specifically executes the following processes. For example, when an operation input for causing the first player character 201 to perform a punch action is made by the user, the game system 1 causes the first player character 201 to perform an action of punching forward and performs a collision determination. Then, when a collision between the first player character 201 performing the punch action and the terrain object 251 is determined, an update range 257 is generated based on the position and orientation of the first player character 201. For example, the update range 257 is generated in a predetermined direction (e.g., forward) with respect to the first player character 201. Note that the position, shape, and size of the update range 257 due to the punch action may be the same as or different from the update range 255 due to the above-described extraction action. Then, the game system 1 decreases the density of the voxels corresponding to the update range 257. As a result, similar to the above-described extraction action, also by the punch action, the terrain object 251 is deformed so that the portion within the update range 257 is erased (see the lower figure in FIG. 34). Note that, similar to the extraction action, for the punch action as well, instead of unconditionally deforming the voxel object corresponding to the update range 257, the game system 1 may increase the amount of damage set for the voxels within the update range 257 according to the punch action, and decrease the density of the voxels when the amount of damage exceeds a predetermined value. Also, the voxels whose density is to be decreased by the punch action may be at least a part of the voxels corresponding to the update range 257.
[0216] In addition, the game system 1 generates a fragment object 258 corresponding to the erased part of the terrain object 251. That is, the game system 1 generates the fragment object 258 without giving it to the first player character 201 based on the above punch action (for example, in a state where it is arranged around the position where the punch action was performed). The fragment object 258 is a voxel object and may be generated so as to have a shape corresponding to the erased part of the terrain object 251, or may have a predetermined shape.
[0217] The game system 1 determines the material of the fragment object 258. The material of the fragment object 258 is determined based on the material set for the polygon in the determination mesh that contacts the update range 257 among the determination meshes of the terrain object 251. The material of the fragment object 258 is determined to be the same as any one of the materials set for the polygons in the determination mesh that contacts the update range 257. According to this, the material of the fragment object 258 can be made the same as the material of the erased part of the terrain object 251. In addition, as the fragment object 258 is generated along with the partial erasure of the terrain object 251, and the material of the erased part of the terrain object 251 is inherited by the fragment object 258, it is possible to give the user an impression that a part of the terrain object 251 destroyed by the punch action of the first player character 201 has occurred as the fragment object 258.
[0218] In the present embodiment, the material of the fragment object 258 is determined to be the material with the largest degree of decrease in density in the voxel among the materials set for the polygons in the determination mesh that contacts the update range 257. According to this, it is possible to generate a fragment object 258 that more accurately reflects the material composition of the part erased by the punch action in the terrain object 251.
[0219] The method for determining the material of the fragment object 256 or 258 taken out by the above-mentioned extraction action or the above-mentioned punch action is arbitrary. For example, the method for determining the material of the fragment object 256 or 258 may be the same for the extraction action and the punch action. Also, for example, among the materials set for each polygon of the determination mesh within the update range 255 or 257, the material set for the most polygons may be determined as the material of the fragment object 256 or 258. Also, for example, among each polygon of the determination mesh within the update range 255 or 257, the material set for a polygon that satisfies a predetermined condition (for example, the polygon at the position where it contacts the hand of the first player character 201 that performs the extraction action or the punch action) may be determined as the material of the fragment object 256 or 258. Also, in other embodiments, multiple types of materials may be set for the fragment object 256 or 258.
[0220] In this embodiment, the user can perform various actions using the fragment object generated by being taken out from the terrain object as described above. For example, in this embodiment, when the material of the fragment object is a specific material, a game effect corresponding to the specific material is generated for the fragment object, and the size of the fragment object is reduced according to the progress of the game.
[0221] With reference to FIGS. 35 and 36, an example of changing the material of other voxel objects by performing an action of throwing by the first player character 201 using the fragment object generated as described above within the game space will be described. FIGS. 35 and 36 are diagrams showing an example of a game image representing a series of states in which the player character 201 throws the fragment object 260 into the terrain object 252 composed of the material of lava.
[0222] In this embodiment, when the material of the fragment object taken out from the terrain object by the first user is composed of ice (fragment object 260 shown in FIGS. 35 and 36), the first player character 201 throws the fragment object 260 into the terrain object 252 composed of lava material, and by doing so, the material in the terrain object 252 can be changed. As described above, the first player character 201 holds the fragment object 260 by the above-described extraction action or the action of having the fragment object after the above-described punch action. As shown in the upper and lower diagrams of FIG. 35, the first user can cause the first player character 201 to perform an action of throwing the held fragment object 260 by a predetermined operation input (see FIG. 37). For example, when the first user operates only the left controller 3 or only the right controller 4, the SR button (operation button 44 or 66) is pressed, and when the first user operates a set of the left controller 3 and the right controller 4 or the second controller 7, the ZR button (for example, operation button 61) is pressed, and the above-described throwing action is performed.
[0223] As shown in the upper and lower diagrams of FIG. 35, when the first player character 201 performs an action of throwing the fragment object 260, the fragment object 260 moves toward the position in the game space corresponding to the position of the aiming T. The aiming T is displayed, for example, when the first player character 201 holds the fragment object, and indicates the position in the game space corresponding to the position where the aiming T is displayed. The aiming T is fixedly displayed at a predetermined position on the display screen (for example, the center position of the display screen or the position shifted upward by a predetermined length from the center). Here, as will be clarified later, based on a predetermined operation input from the controller operated by the first user (see FIG. 37), the direction of the virtual camera can be changed. As a first example, when the first user operates the left controller 3 or the right controller 4 in a horizontally long orientation, based on the tilting direction and tilting amount of pressing the L button (operation button 38) + analog stick 32 (left analog stick) or pressing the R button (operation button 60) + analog stick 52 (right analog stick), the line-of-sight direction of the virtual camera changes. As a second example, when the first user operates using a set of the left controller 3 and the right controller 4 or the second controller 7, based on the tilting direction and tilting amount of the analog stick 52 (right analog stick), the line-of-sight direction of the virtual camera changes. When the line-of-sight direction of the virtual camera changes in this way, the position indicated by the aiming T fixedly displayed on the display screen also changes. That is, the first user can control the position in the game space corresponding to the position of the aiming T based on the above-described operations. Note that the aiming T is typically superimposed on the game space image displayed on the display 12, but in other embodiments, it may be displayed by being arranged in the game space.
[0224] Similar to the cursor C, the game system 1 identifies the material at the position in the game space corresponding to the position indicated by the aiming cursor T, and displays the name of the identified material near the aiming cursor T. For example, the game system 1 identifies the material at the position on the determination mesh of the terrain object in the game space corresponding to the position indicated by the aiming cursor T. In the example shown in the upper diagram of FIG. 35, the aiming cursor T indicates a position that is part of the terrain object 252 of lava, and the material "lava" of the determination mesh corresponding to that position is identified, and the name "lava" of the identified material is displayed near the aiming cursor T. Also, in the present embodiment, even during the period when the aiming cursor T is displayed, the cursor C described above can be simultaneously displayed at the position based on the operation input from the controller operated by the second user. In the example shown in the upper diagram of FIG. 35, the cursor C indicates a position that is part of the terrain object 251 of rock, and the material "rock" of the determination mesh corresponding to that position is identified, and the name "rock" of the identified material is displayed near the cursor C.
[0225] In the example shown in the lower diagram of FIG. 35, due to the throwing action of the first player character 201, the fragment object 260 is thrown into the terrain object 252 composed of the lava material. Then, the part of the terrain object 252 is cooled by the fragment object 260 and the material is changed as if it were changed near the position where the fragment object 260 first contacts the terrain object 252. 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 252 in the update range, thereby changing a part of the terrain object 252. Also, the size of the fragment object 260 is reduced by scaling processing or the like so that the fragment object 260 has a shape as if it has melted due to contact with the terrain object 252 composed of the lava material.
[0226] For example, the above update range is set to a shape corresponding to the shape when the fragment object 260 first contacts the terrain object 252. For the voxels of the terrain object 252 within the update range, the lava material in the voxel is set to become obsidian material. Specifically, the voxels within the above update range corresponding to the terrain object 252 have their lava material changed to obsidian material. Then, based on the material of the changed voxels, the materials of the display mesh and the determination mesh of the terrain object 252 are determined. In the lower figure of FIG. 35, the part of the terrain object 252 changed to obsidian material is set as region 261. According to this, among the terrain object 252 composed of lava material, the appearance of the region 261 changed to obsidian material can be made different from the appearance of the terrain object 252 with lava material, so it is easier to give the user an impression that the fragment object 260 cooled and metamorphosed the lava material of the terrain object 252, and it is possible to express the situation where the lava object is cooled by the fragment object 260 composed of ice material and becomes obsidian.
[0227] Also, the size of the fragment object 260 decreases as time elapses while it is in contact with the terrain object 252 composed of lava material. When the size of the fragment object 260 becomes smaller than a predetermined standard, the effect of cooling the terrain object 252 composed of lava material by the fragment object 260 ends, and the fragment object 260 is deleted from the game space.
[0228] In the example shown in FIG. 36, the fragment object 260 is moving on the terrain object 252 while further contacting the terrain object 252 from the position illustrated in the lower diagram of FIG. 35. Due to this movement, the terrain object 252 is modified as if the area near the further contacted position is cooled by the fragment object 260 and the material is changed. Also, the size of the fragment object 260 becomes smaller so that it has a shape as if it is further melted by further contact with the terrain object 252.
[0229] Specifically, in a manner similar to the method of modifying the material described above, the game system 1 generates a new update range to include the position where it further contacts the smaller fragment object 260, and further changes the material of the voxels of the terrain object 252 in the new update range, thereby further modifying a part of the terrain object 252. That is, the game system 1 makes the new update range smaller according to the size of the smaller fragment object 260. Note that the game system 1 generates the new update range so that the previously created update range and the new update range are smoothly connected. As a result, the area where the material changes and expands each time the update range is generated and the area where the material has already changed are smoothly connected (for example, the area 261 shown in FIG. 36). According to this, the area 261 where the material of the terrain object 252 is changed from the lava material to the obsidian material can be further expanded, so it is easier to give the user an impression that the fragment object 260 further cools and metamorphoses the lava material of the terrain object 252 to expand the metamorphosed area. Also, in order to further reduce the size of the fragment object 260, it becomes easier to give the user an impression that the fragment object 260 is further melted by the lava material of the terrain object 252.
[0230] Note that the content of the above-described material change may be determined based on the material of the terrain object in contact, based on the material of the fragment object in contact, or based on a combination of the material of the terrain object in contact and the material of the fragment object. According to this, various changes can be caused to the voxel objects constituting the terrain object and the fragment object.
[0231] Also, in the above-described example, the change added to the other voxel object in response to the contact of the fragment object 260 with the other voxel object was to change the material of the other voxel object, but the change added to the other voxel object is not limited to this. The above change may also change the density of the voxels in the other voxel object. For example, when the fragment object 260 contacts the area 252 of the lava material in the terrain object, not only the material may be changed, but also a change may be made to reduce the density of the voxels of the lava material. Thereby, a situation where the lava material portion in the terrain object is cooled and shrunk by the contacting ice material fragment object 260 can be expressed.
[0232] Also, similar to the in-game effect generated by the above-described cry object 253, for the voxels corresponding to the update range set when the first player character 201 throws a fragment object, an in-game effect may be generated that changes at least one of density and material. For example, the game system 1 · reduces the density of the voxels of the voxel data corresponding to the update range set by the collision determination with the fragment object · increases the density and sets the material to a predetermined material for the voxels of the voxel data corresponding to the update range set by the collision determination with the fragment object · When the material of the mesh for determining the collision position with the fragment object and the material of the fragment object are in a predetermined combination, change the material of the voxels of the voxel data corresponding to the update range to a predetermined material. Among a plurality of effects including at least the above, any in-game effect corresponding to the type of material of the fragment object may be generated.
[0233] Also, as described above, in the present embodiment, depending on the types of the controllers used by the first user and the second user respectively, operation inputs with different operation modes are possible. FIG. 37 shows an example of the operation instruction content corresponding to the operation input for each controller used by the first user. FIG. 38 shows an example of the operation instruction content corresponding to the operation input for each controller used by the second user.
[0234] In FIG. 37, when the first user operates the left controller 3 alone in a horizontally long orientation, based on the operation input of tilting the analog stick 32 (left analog stick), the movement speed and movement direction of the first player character 201 are controlled. As a result, since the second player character 204 riding on a part of the first player character 201 is also controlled to move along with the movement of the first player character 201, the movement speed and movement direction of the second player character 204 are also controlled. Based on the operation input of the first user pressing the upward button (operation button 35), a punch action of the first player character 201 is performed. Based on the operation input of the first user pressing the SR button (operation button 44), a pulling action, a lifting action, or a throwing action is performed according to the situation of the first player character 201. Then, based on the operation input of the first user tilting the analog stick 32 (left analog stick) while pressing the L button (operation button 38), the line-of-sight direction of the virtual camera and the position indicated by the aiming T are controlled.
[0235] When the first user operates the right controller 4 alone in a horizontally long orientation, based on an operation input where the first user tilts the analog stick 52 (right analog stick), the movement speed and direction of the first player character 201 are controlled. As a result, the movement speed and direction of the second player character 204 are also controlled. Based on an operation input where the first user presses the B button (operation button 54), a punch action of the first player character 201 is performed. Based on an operation input where the first user presses the SR button (operation button 66), a draw action, a lift action, or a throw action is performed according to the situation of the first player character 201. And based on an operation input where the first user tilts the analog stick 52 (right analog stick) while pressing the R button (operation button 60), the line-of-sight direction of the virtual camera and the position indicated by the aiming T are controlled.
[0236] When the first user operates the set of the left controller 3 and the right controller 4 or the second controller 7, based on an operation input where the first user tilts the analog stick 32 (left analog stick), the movement speed and direction of the first player character 201 are controlled. As a result, the movement speed and direction of the second player character 204 are also controlled. Based on an operation input where the first user presses the Y button (for example, operation button 56), a punch action of the first player character 201 is performed. Based on an operation input where the first user presses the ZR button (for example, operation button 61), a draw action, a lift action, or a throw action is performed according to the situation of the first player character 201. And based on an operation input where the first user tilts the analog stick 52 (right analog stick), the line-of-sight direction of the virtual camera and the position indicated by the aiming T are controlled.
[0237] In FIG. 38, when the second user operates the right controller 4 alone in a vertically long orientation, based on an operation input using the mouse function of the right controller 4 or an operation input using an inertial sensor based on the movement and posture of the entire right controller 4, the display position of the cursor C is controlled. Based on an operation input in which the second user long-presses the ZR button (operation button 61), the material of the scream object 253 is set. Based on an operation input in which the second user presses the ZR button (operation button 61), the scream object 253 is emitted into the game space. Then, based on an operation input in which the second user tilts the analog stick 52 (right analog stick), the line-of-sight direction of the virtual camera and the position indicated by the aiming T are controlled.
[0238] When the second user operates the left controller 3 alone in a vertically long orientation, based on an operation input using the mouse function of the left controller 3 or an operation input using an inertial sensor based on the movement and posture of the entire left controller 3, the display position of the cursor C is controlled. Based on an operation input in which the second user long-presses the ZL button (operation button 39), the material of the scream object 253 is set. Based on an operation input in which the second user presses the ZL button (operation button 39), the scream object 253 is emitted into the game space. Then, based on an operation input in which the second user tilts the analog stick 32 (left analog stick), the line-of-sight direction of the virtual camera and the position indicated by the aiming T are controlled.
[0239] When the second user operates the set of the left controller 3 and the right controller 4, the display position of the cursor C is controlled based on an operation input for tilting the analog stick 32 (left analog stick) or an operation input using the mouse function of the right controller 4 by the second user. Based on an operation input in which the second user long-presses the ZR button (operation button 61), the material of the scream object 253 is set. Based on an operation input in which the second user presses the ZR button (operation button 61), the scream object 253 is emitted into the game space. Then, based on an operation input in which the second user tilts the analog stick 52 (right analog stick), the line-of-sight direction of the virtual camera and the position indicated by the aiming T are controlled.
[0240] When the second user operates the second controller 7, the display position of the cursor C is controlled based on an operation input for tilting the left analog stick or an operation input using the inertial sensor based on the movement and posture of the entire second controller 7. Based on an operation input in which the second user long-presses the ZR button, the material of the scream object 253 is set. Based on an operation input in which the second user presses the ZR button, the scream object 253 is emitted into the game space. Then, based on an operation input in which the second user tilts the right analog stick, the line-of-sight direction of the virtual camera and the position indicated by the aiming T are controlled.
[0241] Regarding the position of the virtual camera in the game space, since the virtual camera is moved so as to follow the first player character 201 (and the second player character 204), it can be considered that the position of the virtual camera is controlled based on the operation input of the first user whose movement of the first player character 201 is controlled. On the other hand, according to the operation instruction content described above, the control of the movement direction of the virtual camera can be performed by both the operation input of the first user and the operation input of the second user. In the present embodiment, when these operation inputs are performed overlappingly, the control by one of the operation inputs may be prioritized. As an example, when the operation inputs are performed overlappingly, the control of the line-of-sight direction of the virtual camera by the operation input performed first may be prioritized, and after the operation input is completed, the control of the line-of-sight direction of the virtual camera by the other operation input may be performed. As another example, when the operation inputs are performed overlappingly, the control of the line-of-sight direction of the virtual camera by the operation input on the predetermined side (for example, the operation input of the second user) may be prioritized, and when there is no such prioritized operation input, the control of the line-of-sight direction of the virtual camera by the other operation input may be performed. In other embodiments, the control of the movement direction of the virtual camera may be possible by only one of the operation input of the first user and the operation input of the second user. For example, based on the operation input of the first user, the control of the position of the virtual camera is possible, but the control of the line-of-sight direction of the virtual camera is not performed (that is, only the control based on the operation input of the second user is possible) operation mode may be sufficient. In this case, since the line-of-sight direction of the virtual camera and the position of the cursor C are performed by the operation input of the second user, it becomes easier to aim at the scream object 253 in the cooperative play with the first user.
[0242] As described above, in the present embodiment, according to the operations of the first user and the second user for each of the two controllers, the first player character 201 and the second player character 204 are respectively controlled in terms of operation, and since the first player character 201 and the second player character 204 are both controlled to move by the operation of one controller, the first user and the second user can play cooperatively.
[0243] In the above-described operation instruction content, in the operation mode where two analog sticks are provided on the controller used for the operation, different operation instruction contents are assigned to the tilting operations of the respective analog sticks. On the other hand, in the operation mode where one analog stick is provided on the controller used for the operation, since the above assignment cannot be made, different operations are assigned to the operation instruction content. Specifically, in the operation mode of the first user, different operation instruction contents are assigned depending on whether or not a pressing operation of a predetermined operation button is performed simultaneously. In the operation mode of the second user, the above different operation instruction contents are assigned to an operation using a mouse function or an inertial sensor instead of the tilting operation of the analog stick. Thus, in the present embodiment, appropriate operation instruction content is assigned according to the operation mode used by the user, and intuitive user operations are enabled when using different controllers.
[0244] In addition, when at least any one of an operation using a mouse function, an operation using an inertial sensor, and an operation using a direction input unit (for example, an analog stick) is possible for the controller operated by the second user, control of the cursor C based on any of these operations is enabled. Therefore, in the present embodiment, since the cursor C can be controlled by a highly variable operation mode, the second user who plays cooperatively with the first user can select an appropriate operation mode.
[0245] In the above-described embodiment, when the second player character 204 emits the scream object 253, the posture and orientation of the second player character 204 are arbitrary. For example, the posture and orientation of the second player character 204 may be changed so that the second player character 204 looks at the position in the in-game space indicated by the cursor C which is the destination of movement of the scream object 253, or the posture and orientation of the second player character 204 may be controlled regardless of the position. Also, the material at a specific position on the determination mesh of the terrain object is acquired, and the object to which the material is set may be any object. Further, when an operation to emit the scream object 253 is performed before the scream object 253 is set or when the remaining ammunition count is already 0, a specified object composed of a predetermined material from the second player character 204 or a material existing around the second player character 204 may be emitted.
[0246] [3. Specific Examples of Processing in the Game System] Next, with reference to FIGS. 39 to 42, specific examples of information processing in the game system 1 will be described.
[0247] FIG. 39 is a diagram showing an example of various data used for information processing in the game system 1. Each data shown in FIG. 39 is stored in a memory 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. 39, the game system 1 stores a game program. The game program is for executing the game processing in the present embodiment (for example, the game processing shown in FIGS. 40 to 42). Note that the game program includes the above-described material data (see FIG. 13). Also, the above memory stores the above-described voxel data (see FIG. 12), update range data, mesh data, object data, etc. (see FIG. 39).
[0248] 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.
[0249] The mesh data includes various data related to the mesh of the voxel object. As shown in FIG. 39, in the present embodiment, the mesh data includes SVO data, display mesh data, and determination mesh data. The SVO data is data that holds each vertex calculated from the voxel data in the above-described SVO structure. In the present embodiment, the SVO data includes, in addition to the data indicating the position of each vertex, data indicating the material set for each vertex (for example, data indicating the ID of the material). The display mesh data includes various data related to the display mesh. Specifically, the display mesh data includes data indicating each vertex of the display mesh and data indicating the material set for each vertex (for example, data indicating the ID of the material). The determination mesh data includes various data related to the determination mesh. Specifically, the determination mesh data includes data indicating each vertex of the determination mesh and data indicating the material set for each vertex (for example, data indicating the ID of the material).
[0250] The object data includes various data related to objects other than the voxel object (for example, player characters, virtual objects, etc.). The object data is stored for each object that appears in the game space. The object data includes, for example, data indicating the position, speed, and state of the object. The object data includes voice object data. The voice object data includes data indicating the set material, remaining ammunition, type, position, speed, and state of the emitted voice object.
[0251] FIG. 40 is a flowchart showing an example of the flow of game processing executed by the game system 1. FIG. 41 is a subroutine showing an example of the first half of the process for controlling the operations of the respective objects executed in step S12 in FIG. 40. FIG. 42 is a subroutine showing an example of the second half of the process for controlling the operations of the respective objects executed in step S12 in FIG. 40. The execution of the game processing is started, for example, in response to the start of the game in accordance with a user instruction during the execution of the game program. Note that the processing loop consisting of the series of processes of steps S1 to S14 is executed in one cycle per frame.
[0252] In the present embodiment, the processor 81 of the main body device 2 executes the processes of the respective steps shown in FIGS. 40 to 42 by executing the game program stored in the game system 1. However, in other embodiments, some of the processes of the respective 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 the respective steps shown in FIGS. 40 to 42 may be executed in the other information processing device. Also, the processes of the respective steps shown in FIGS. 40 to 42 are merely examples, and the processing order of the respective steps may be changed, or another process may be executed in addition to (or instead of) the processes of the respective steps, as long as the same result can be obtained.
[0253] Also, the processor 81 executes the processes of the respective steps shown in FIGS. 40 to 42 using a memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads out and uses the information from the memory.
[0254] In FIG. 40, the processor 81 acquires the operation data indicating the operation input by the user (step S1), and proceeds to the next step. For example, the processor 81 acquires operation data output from the controller operated by the first user and the controller operated by the second user via the controller communication unit 83 and / or each of the terminals 17 and 21 (see FIG. 8), and operation data output from the main body device 2 (for example, the touch panel 13).
[0255] 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 unique voxel space), and for the designated object, executes a process of calculating the speed and a process of reflecting the result of contact between the objects in the previous frame (step S2), and proceeds to the next step. The speed of the object is used to calculate the position of the object in the current frame in the process of step S12 described later. For example, when the designated object is the first player character, the speed of the first player character is calculated based on the operation data acquired in step S1. Also, when the designated object is the second player character, the speed of the second player character is calculated so as to move together with the first player character. Further, when the designated object is an object not operated by the user (for example, a scream object or a fragment object), the speed of the object is calculated based on rules predetermined in the game program. For example, the speed of the fragment object is set to 0 when it is placed on the terrain object and not moving, set to the same as the speed of the player character when it is held by the player character, and when it is released by an action of throwing by the player character, it is set to the speed of moving in the direction based on the position indicated by the aiming T with the magnitude determined by the above rules. Also, the speed of the scream object is set to the speed at which the movement continues after starting to move based on the movement direction and movement speed set in step S53 described later. 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.
[0256] In addition, for the process of reflecting the results of contact between objects in the previous frame, when it is determined in the collision determination (step S11 described later) in the previous frame that the objects are in contact with each other, the process includes applying the influence of the contact to the object. The above process is, for example, the following process. · When it is determined that the first player character has come into contact with the lava terrain object in the previous frame, a process of reducing the physical strength of the first player character · When it is determined that the first player character has come into contact with the terrain object by a pulling action, a punching action, or the like in the previous frame, a process of generating a fragment object When the state regarding the object is changed in the process of step S2 above, the processor 81 updates the object data stored in the memory regarding the object so as to indicate the changed content.
[0257] Next, the processor 81 determines whether an update event for updating the voxel object has occurred due to the object specified in step S2 above (step S3). For example, the determination in step S3 above is made based on the result of the collision determination (step S11 described later) in the previous frame. As an example, when it is determined in the previous frame that the first player character has come into contact with the terrain object by a pulling action, a punching action, or the like, it is determined that an update event has occurred in which a part of the terrain object is erased (see FIGS. 33 to 34). As another example, when it is determined in the previous frame that a scream object or a fragment object has collided with the terrain object, a game effect is determined based on the materials of both at the collision position, and it is determined that an update event based on the game effect (see FIGS. 27 to 32, FIGS. 35 to 36) has occurred. Then, when an update event has occurred, the processor 81 proceeds to the process of step S4. On the other hand, when no update event has occurred, the processor 81 proceeds to the process of step S6.
[0258] In step S4, 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 S4 above is set to be associated with the content related to the type of update event determined to occur in step S3 above. In step S4 above, the processor 81 stores data indicating the set update range in the memory as update range data.
[0259] Next, the processor 81 makes changes according to the update event to the voxels corresponding to the update range set in step S4 above (step S5) and proceeds with the process to step S6. For example, when the processor 81 deletes or deforms the voxel object within the update range as if it were shrunk, or deforms it as if a voxel object were added within the update range, the processor 81 updates the voxel data stored in the memory so as to change the density of the voxels corresponding to the update range (see the above [2-2. Update of Voxel Data] and [2-7. Processing Using an Object with a Material Set on a Mesh]). Also, when the processor 81 changes the material of the voxel object within the update range, the processor 81 updates the voxel data stored in the memory so as to update at least one of the first material ID, the second material ID, and the material mixing ratio of the voxels corresponding to the update range (see the above [2-7. Processing Using an Object with a Material Set on a Mesh]).
[0260] In step S6, the processor 81 determines whether or not the processing in steps S2 to S5 above has been completed for all objects (including voxel objects defined by the specific voxel space) for which processing is required. Then, when the processing for all objects has been completed, the processor 81 proceeds with the process to step S7. On the other hand, when the processing for any object has not been completed, the processor 81 returns to step S2 above and repeats the processing.
[0261] In step S7, the processor 81 updates the vertices of the voxel object in the game space and proceeds with the process to the next step. For example, when the voxel data is updated in the process of step S5, the processor 81 calculates new vertices based on the updated voxel data. Note that the positions of the new vertices are calculated according to the method described in the above [2-3. Calculation of Vertices]. Also, the materials of the new vertices are calculated according to the method described in the above [2-4. Determination of Vertex Materials].
[0262] Next, the processor 81 simplifies the vertices (step S8) and proceeds with the process to the next step. For example, the processor 81 simplifies each vertex updated by the process of step S7 according to the method described in the above [2-5. Simplification of Vertices]. Then, the processor 81 updates the SVO data stored in the memory so as to indicate each vertex obtained by the processes of step S7 and step S8. Note that the processes of step S7 and step S8 do not need to recalculate the vertices for the entire voxel data, and may be executed only for the part where the content of the voxel is changed in the process of step S5.
[0263] Next, the processor 81 updates the display mesh of the voxel object based on the SVO data stored in the memory (step S9), and proceeds to the next step. Note that the 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. Mesh generation] and [2-6-1. Determination of the material of the display mesh]. In step S9 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 S10 described later without waiting for the completion of step S9 and execute them in parallel. In that case, step S9 above needs to be completed before the start of step S13 described later.
[0264] Next, the processor 81 updates the determination mesh of the voxel object based on the SVO data stored in the memory (step S10), and proceeds to the next step. Note that the 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. Mesh generation] and [2-6-2. Determination of the material of the determination mesh]. In step S10 above, the processor 81 updates the determination mesh data stored in the memory so as to indicate the position and material of each vertex of the updated determination mesh.
[0265] In the example shown in FIG. 40, the generation process of the determination mesh in step S10 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 S11 described later is executed only in frames that satisfy a predetermined condition, the processor 81 may execute the generation process of the determination mesh in the frame in which the collision determination is performed. Further, the processor 81 may execute the generation process of the determination mesh for the voxels within the area in the game space where the collision determination in step S11 is performed. For example, in a situation where there are no objects to be subjected 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.
[0266] 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 S11), and proceeds to the next step. For example, the processor 81 performs the collision determination using the determination mesh for voxel objects and using a determination area of a predetermined shape set for an object that is not a voxel object. In the present embodiment, the collision determination in step S11 is performed in consideration of the speed calculated in step S2 above. That is, the processor 81 performs the collision determination using the position when moving at the above speed as the position of each object.
[0267] In the present embodiment, the presence or absence of the following contacts, for example, is determined by the collision determination in step S11. · Contact between the first player character that performs actions such as movement and punch action and the terrain object · Contact between the first player character performing the action of lifting the fragment object and the fragment object · Contact between the fragment object released by the action of throwing by the fragment player character and the terrain object · Contact between the scream object emitted from the second player character and the terrain object In addition, when it is determined in the collision determination in step S11 that the objects are in contact with each other, in the process of step S2 in the next frame, a process reflecting the result of the contact between the objects is executed, or in the process of step S3 in the next frame, it is determined that an update event has occurred.
[0268] Next, the processor 81 controls the operations of each object in the game space (step S12) and proceeds to the process in step S13. Hereinafter, with reference to FIGS. 41 and 42, the process of controlling the operations of each object performed in step S12 will be described.
[0269] In FIG. 41, the processor 81 determines whether the control process for all the objects to be operationally controlled has been completed (step S41). Then, when there is an object for which the control process has not been completed, the processor 81 proceeds to step S42. On the other hand, when the control process for all the objects has been completed, the processor 81 ends the process by this subroutine.
[0270] In step S42, the processor 81 selects an object to be operationally controlled from the objects for which the operation control process has not been completed and proceeds to the next step.
[0271] Next, the processor 81 determines whether the object currently selected as the target of the operation control process is the first player character (step S43). Then, if the object currently selected as the target of the operation control process is not the first player character, the processor 81 proceeds to step S44. On the other hand, if the object currently selected as the target of the operation control process is the first player character, the processor 81 proceeds to step S46 above.
[0272] In step S44, the processor 81 determines whether the object currently selected as the target of the operation control process is the second player character. Then, if the object currently selected as the target of the operation control process is not the second player character, the processor 81 proceeds to step S45. On the other hand, if the object currently selected as the target of the operation control process is the second player character, the processor 81 proceeds to step S55 (see FIG. 42).
[0273] In step S45, the processor 81 controls the operation of the object currently selected as the target of the operation control process, and returns to step S41 to repeat the process. In one execution of step S45, for operations performed over multiple frames, each object is controlled such that the progress of the operation for one frame is carried out. As a result, by repeatedly executing the process of step S45 over multiple frames, each object performs a series of operations related to movement and various actions. Also, the position of the object is basically determined to be the position after moving at the speed calculated in step S2. However, if it is determined by the collision determination in step S11 that the object contacts another object and the movement is obstructed by the contacted other object, the position of the object may be determined not to change. Then, in step S45, the processor 81 updates the object data stored in the memory to be the content indicating the object after the control in step S45.
[0274] On the other hand, if it is determined in step S43 that the object selected as the target of the operation control process is the first player character, in step S46, the processor 81 determines whether to move the first player character in the game space. For example, the processor 81 makes an affirmative determination in step S46 if, referring to the operation data acquired in step S1, the operation input from the controller operated by the first user is an operation instruction to move the first player character. Then, when the processor 81 moves the first player character, the process proceeds to step S47. On the other hand, when the processor 81 does not move the first player character, the process proceeds to step S48.
[0275] In step S47, the processor 81 performs movement control processing for the first player character and proceeds to step S48. For example, the processor 81 refers to the operation data acquired in step S1 above and moves the first player character in the game space based on the operation input from the controller operated by the first user. Further, the processor 81 generates a determination area for collision determination in the game space according to the position and posture of the first player character after the movement. Then, the processor 81 updates the object data stored in the memory so as to be the content indicating the object after the control in step S47 above.
[0276] In step S48, the processor 81 determines whether to cause the first player character to perform a specific action in the game space. As an example, the processor 81 refers to the operation data acquired in step S1 above and makes an affirmative determination in step S48 if the operation input from the controller operated by the first user is an operation instruction to cause the first player character to perform a specific action. Then, when the processor 81 causes the first player character to perform a specific action, it proceeds to step S49. On the other hand, when the processor 81 does not cause the first player character to perform a specific action, it returns to step S41 above and repeats the process.
[0277] In step S49, the processor 81 performs action rendering processing for the first player character and returns to step S41 to repeat the processing. For example, the processor 81, for example, based on the operation data acquired in step S1 above, controls the first player character to perform various actions (for example, the pulling action shown in FIG. 33, the punching action shown in FIG. 34, the throwing actions shown in FIGS. 35 and 36, etc.). Then, when a predetermined action occurs, the processor 81 generates a determination area for collision determination corresponding to the action within the game space. Further, in response to the fact that a fragment object is released by the throwing action of the first player character, the processor 81 controls the fragment object to move in the direction based on the position within the game space indicated by the aiming T set in step S13 described later. Note that in one execution of the processing in step S49 above, for the actions of the first player character performed over a plurality of frames, the first player character is controlled to progress the operation for one frame.
[0278] Proceed to FIG. 42. In step S55, the processor 81 controls the movement and operation of the second player character so as to move and operate together with the movement and operation of the first player character, and proceeds with the process to the next step. In one execution of the process of step S55, for an operation performed over a plurality of frames (for example, when the first player character is performing an operation over a plurality of frames), the movement and operation of the second player character are controlled so as to progress the operation for one frame. Further, the processor 81 generates a determination area for collision determination in the game space according to the position and posture of the second player character after the above movement and operation. However, as described above, the determination area for collision determination of the second player character may be omitted. Then, in step S55, the processor 81 updates the object data stored in the memory so as to show the second player character after the control in step S55.
[0279] Next, the processor 81 sets the position of the cursor C (see FIGS. 26 to 27 and FIGS. 29 to 30) (step S56), and proceeds with the process to the next step. For example, when the operation input from the controller operated by the second user is an operation instruction to change the position of the cursor C with reference to the operation data acquired in step S1 above, the processor 81 changes the position of the cursor C based on the operation input. The process of setting the position of the cursor C in step S56 is performed according to the method described in the above [2-7. Process using an object with a material set on a mesh].
[0280] Next, the processor 81 acquires the material at the position in the game space corresponding to the position of the cursor C and performs control to display it near the cursor C (step S57), and proceeds with the process to the next step. The process of acquiring and performing display control of the material in step S57 is performed according to the method described in the above [2-7. Process using an object with a material set on a mesh] based on the setting content set in the voice object data.
[0281] Next, the processor 81 determines whether to set the material of the scream object (step S57). For example, the processor 81 refers to the operation data acquired in step S1 above, and if the operation input from the controller operated by the second user is an operation instruction to set the material, a positive determination is made in step S57 above. Then, when setting the material, the processor 81 proceeds to step S59. On the other hand, when not setting the material, the processor 81 proceeds to step S62.
[0282] In step S58, the processor 81 performs an effect to set the material of the scream object and proceeds to the next step. For example, the processor 81 performs an effect of increasing the amount indicated by the gauge displayed inside the cursor C by a predetermined amount (see the lower figure of FIG. 26 and the lower figure of FIG. 29).
[0283] Next, the processor 81 determines whether the process of setting the material of the scream object has been completed (step S60). For example, the processor 81 makes a positive determination in step S60 above when the duration of the operation input of the second user indicating the operation instruction to set the material reaches a predetermined time. Then, when the process of setting the material has been completed, the processor 81 proceeds to step S61. On the other hand, when the process of setting the material has not been completed, the processor 81 proceeds to step S62.
[0284] In step S61, the processor 81 sets the scream object and proceeds to step S62. Note that the process of setting the scream object in step S61 above is performed according to the method described in the above [2-7. Process using an object with a material set on the mesh]. Then, in step S61 above, the processor 81 updates the scream object data of the object data stored in the memory based on the setting content (set material, remaining ammunition, etc.) in step S61.
[0285] In step S62, the processor 81 determines whether an operation to start the movement of the scream object has been performed. For example, the processor 81 refers to the operation data acquired in step S1 above, and if the operation input from the controller operated by the second user is an operation instruction to cause the scream object to emit (for example, an operation instruction to perform an action in which the second player character screams to emit the scream object), a positive determination is made in step S62 above. Then, when an operation to start the movement of the scream object has been performed, the processor 81 proceeds to step S63. On the other hand, when an operation to start the movement of the scream object has not been performed, the processor 81 returns to step S41 (see FIG. 41) and repeats the process.
[0286] In step S63, the processor 81 sets the moving direction and moving speed of the emitted scream object, and returns to step S41 (see FIG. 41) above to repeat the process. For example, the processor 81 sets a scream object composed of the material set in the scream object data, calculates the moving speed based on a rule predetermined in the game program, and calculates the moving direction based on the direction from a predetermined vicinity position where the second player character emits the scream object to the position in the game space indicated by the cursor C. Also, the processor 81 decrements the remaining number of projectiles set in the scream object data by 1. Then, in step S63 above, the processor 81 updates the scream object data of the object data stored in the memory based on the setting contents (type, position, speed, state, remaining number of projectiles, etc. of the emitted scream object) in step S63. Note that when no scream object is set in the scream object data or the remaining number of projectiles is already 0, the processor 81 may set a specified object composed of a predetermined material or a material existing around the second player character, set the moving direction and moving speed of the specified object, and update the scream object data. In this case, the second player character will emit the specified object.
[0287] Returning to FIG. 40, after the process of step S12, the processor 81 generates a game image (step S13) and proceeds to the next step. For example, the processor 81 generates a game image by performing rendering on each polygon of the display mesh of the voxel object and each polygon of the objects other than the voxel object based on the virtual camera. Note that each polygon of the display mesh is rendered using rendering settings such as a texture corresponding to the material set for the polygon according to the method described in [2-6-1. Determination of the material of the display mesh]. The game image generated in step S13 is output to the display device and displayed once per frame cycle.
[0288] Note that the position of the virtual camera set to generate the game image may be set to a predetermined position following the first player character. Also, the line-of-sight direction of the virtual camera may be controlled based on an operation input from the controller operated by the first user or the second user (see FIGS. 37 and 38).
[0289] Also, in the process of step S13, the processor 81 superimposes and displays the cursor C (see FIGS. 26, 27, 29, and 30) set in step S12 on the game image and outputs it to the display device. Further, when the condition for displaying the aiming reticle T (see FIG. 35) is satisfied, the processor 81 sets the aiming reticle T at a predetermined position on the display screen, acquires the material at the position in the game space that overlaps with the position of the aiming reticle T, and superimposes and displays the aiming reticle T with the name of the material attached thereto on the game image and outputs it to the display device.
[0290] Next, the processor 81 determines whether to end the game (step S14). For example, when a predetermined operation input for ending the game is performed by the user or when the condition for ending the game is satisfied, the processor 81 makes an affirmative determination in step S14 above. Then, when the processor 81 ends the game, it ends the processing according to this flowchart. On the other hand, when the processor 81 does not end the game, it returns to step S1 above and repeats the processing. Thereafter, a series of processing from steps S1 to S14 is repeatedly executed until it is determined in step S14 above that the game is ended.
[0291] As described above, in this embodiment, by obtaining the material at a specific position on the determination mesh of the terrain object and causing the sound object set with the material to collide with the terrain object, it is possible to generate an in-game effect based on the interaction between the sound object and the determination mesh of the terrain object. Therefore, in this embodiment, the material set for the object using voxel data can be utilized in the game.
[0292] Note that in the above description, an example in which a voxel object is defined by generating a three-dimensional mesh based on voxel data set for voxels in a three-dimensional space is used, but a voxel object may be defined based on voxel data set for two-dimensional voxels.
[0293] Also, the game system 1 can be any device, such as a portable game device, any portable electronic device (such as a PDA (Personal Digital Assistant), mobile phone, smartphone, personal computer, camera, tablet, etc.). In this case, the input device for performing user operations to operate the player character, etc. does not have to be the left controller 3, the right controller 4, or the touch panel 13, etc., and can be another controller, mouse, touch pad, touch panel, trackball, keyboard, cross key, slide pad, etc.
[0294] Also, in the above description, an example in which the game system 1 performs information processing respectively has been 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 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, processing similar to 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.
[0295] Here, according to the above-described modification example, it is also possible to implement the present invention in a so-called cloud computing system configuration, a distributed wide-area network configuration, or a local network configuration. For example, in a distributed local network configuration, it is also possible to execute the above processing in cooperation between a stationary information processing device (stationary game device) and a portable information processing device (portable game device). Note that in these system configurations, there is no particular limitation on which device performs the above-described processing, and it goes without saying that the present invention can be realized regardless of any processing distribution.
[0296] In addition, the processing order, setting values, conditions used for determination, etc. used in the above-described information processing are merely examples, and it goes without saying that the present embodiment can be realized even with other orders, values, and conditions.
[0297] 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 the information storage medium for storing the above program may be, 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, or the like. Also, the information storage medium for storing the above program may be a volatile memory that stores the above program. 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.
[0298] 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. Also, those skilled in the art will understand that an equivalent scope can be implemented based on the description of the present invention and common general technical knowledge from the description of specific embodiments of the present invention. Further, it should be understood that the terms used in this specification are used in the meaning commonly used in the relevant 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
[0299] 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 utilize the material set for an object using voxel data in a game.
Explanation of Reference Numerals
[0300] 1... Game system 2... Main body device 3... Left controller 4... Right controller 7... Second controller 11... Housing 12... Display 13... Touch panel 32, 52... Analog stick 42, 64... Terminal 81... Processor 82... Network communication unit 83... Controller communication unit 85... DRAM
Claims
1. cause a computer to generate and update a mesh of a voxel object corresponding to the voxel data, based on the 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 its content and a material indicating the type of the content are set, and where vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on at least the material included in the voxel data control the position of a first cursor based on an operation input from a first operation device specify the material of the position in the virtual space corresponding to the position of the first cursor of the mesh, in response to a first instruction based on an operation input from the first operation device, and set the specified material as a first material move a first object set with the first material toward the position in the virtual space corresponding to the position of the first cursor, in response to a second instruction based on an operation input from the first operation device set a first voxel update range at a collision position based on a collision determination between the first object and the mesh, and cause a first in-game effect including a change in at least one of the density and the material of the voxels of the voxel data corresponding to the first voxel update range to occur, in a game program
2. further cause the computer to control the movement of a first player character in the virtual space based on an operation input from a second operation device control the movement of a second player character along with the movement of the first player character cause the first player character to perform a first action in response to a third instruction based on an operation input from the second operation device cause the second player character to perform a second action and move the first object, in response to the second instruction, in the game program according to Claim 1
3. further cause the computer to control the position of a virtual camera in the virtual space based on the position of the first player character The game program according to claim 2, which controls the orientation of the virtual camera based on at least an operation input from the first operation device.
4. The game program according to claim 3, which further controls the orientation of the virtual camera by the computer based on an operation input from the second operation device.
5. The computer further controls the position of a second cursor, and in response to the third instruction, causes the first player character to perform the first action, and moves an object with a second material set thereto to a position within the virtual space corresponding to the position of the second cursor, and based on a collision determination between the second object and the mesh, sets a second voxel update range at the collision position, and generates a second in-game effect including a change in at least one of the density and the material of the voxels of the voxel data corresponding to the second voxel update range. The game program according to claim 2.
6. As the first in-game effect, the computer has an effect of decreasing the density of the voxels of the voxel data corresponding to the first voxel update range, has an effect of increasing the density and setting the material to the first material for the voxels of the voxel data corresponding to the first voxel update range, and has an effect of changing the material of the voxels of the voxel data corresponding to the first voxel update range to a fourth material when the third material, which is the material of the mesh at the collision position, and the first material are in a predetermined combination. The game program according to any one of claims 1 to 5, which generates any effect corresponding to the type of the first material among a plurality of effects including at least the above effects.
7. The operation input from the first operation device includes at least any one of data based on a mouse, data based on an inertial sensor, and direction input data, The game program according to any one of claims 1 to 5, which controls the position of the first cursor by the computer based on at least any one of the data based on the mouse, the data based on the inertial sensor, and the direction input data.
8. The mesh is a determination mesh used for the collision determination. The computer is further configured to generate or update a display mesh corresponding to the voxel data and drawn based on a virtual camera, by causing the vertex coordinates of the display mesh to be determined based at least on the density included in the voxel data, and causing the material of the display mesh to be determined based at least on the material included in the voxel data. The game program according to any one of claims 1 to 5, which causes the computer to perform rendering of the virtual space including the display mesh based on the vertex coordinates of the display mesh and a texture corresponding to the material of the display mesh. **Claim 9** The game program according to any one of claims 1 to 5, which causes the computer to perform rendering of the virtual space including the mesh based on the vertex coordinates of the mesh and a texture corresponding to the material of the mesh. **Claim 10** A game system including at least an information processing device provided with a processor and a first operation device, wherein the processor generates and updates a mesh of a voxel object corresponding to voxel data defined in a virtual space, based on the voxel data in which, for each of a plurality of voxels, at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its content and a material indicating the type of the content are set, the vertex coordinates of the mesh being determined based at least on the density, and the material of the mesh being determined based at least on the material included in the voxel data; controls the position of a first cursor based on an operation input from the first operation device; identifies, in response to a first instruction based on an operation input from the first operation device, the material of the position in the virtual space corresponding to the position of the first cursor of the mesh, and designates the identified material as a first material; moves, in response to a second instruction based on an operation input from the first operation device, a first object having the first material set thereto toward the position in the virtual space corresponding to the position of the first cursor. A game system that sets a first voxel update range at a collision position based on collision determination between the first object and the mesh, and generates a first in-game effect including a change in at least one of the density and the material of the voxels corresponding to the first voxel update range.
11. Further comprising a second operation device, The processor further, Based on an operation input from the second operation device, controls the movement of a first player character in the virtual space, Controls the movement of a second player character along with the movement of the first player character, Causes the first player character to perform a first action in response to a third instruction based on an operation input from the second operation device, The game system according to claim 10, wherein in response to the second instruction, the second player character is caused to perform a second action and the first object is moved.
12. The first operation device includes at least a first direction input unit, and outputs first direction input data based on an input to the first direction input unit. The processor further, Controls the position of a virtual camera in the virtual space based on the position of the first player character, The game program according to claim 11, wherein the orientation of the virtual camera is controlled based on at least the first direction input data.
13. The second operation device includes at least a second direction input unit, and outputs second direction input data based on an input to the second direction input unit. The processor controls the movement of the first player character in the virtual space based on the second direction input data. The processor further includes a first mode in which the second operation device further includes a third direction input unit and outputs third direction input data based on an input to the third direction input unit, and a second mode in which the third direction input unit is not provided. In the first mode, the orientation of the virtual camera is controlled based on the third direction input data. The game system according to claim 12.
14. The processor further, Controls the position of a second cursor, In response to the third instruction, cause the first player character to perform the first action, and move an object with a second material set thereto to a position within the virtual space corresponding to the position of the second cursor. The game system according to claim 11, wherein based on a collision determination between the second object and the mesh, a second voxel update range is set at a collision position, and a second in-game effect including a change in at least one of the density and the material of the voxels of the voxel data corresponding to the second voxel update range is generated.
15. The processor, as the first in-game effect, an effect of reducing the density of the voxels of the voxel data corresponding to the first voxel update range, an effect of increasing the density and setting the material to the first material for the voxels of the voxel data corresponding to the first voxel update range, and an effect of changing the material of the voxels of the voxel data corresponding to the first voxel update range to a fourth material when the third material, which is the material of the mesh at the collision position, and the first material are in a predetermined combination, The game system according to any one of claims 11 to 14, wherein any effect according to the type of the first material is generated among a plurality of effects including at least the above.
16. The first operation device comprises at least one of a mouse and an inertial sensor, outputs at least one of mouse data based on the output of the mouse and inertial data based on the output of the inertial sensor, The game system according to any one of claims 11 to 14, wherein the processor controls the position of the first cursor based on at least one of the mouse data and the inertial data.
17. The first operation device comprises at least one of a mouse, an inertial sensor, and a fourth direction input unit, outputs at least one of mouse data based on the output of the mouse, inertial data based on the output of the inertial sensor, and fourth direction input data based on an input to the fourth direction input unit. The game system according to any one of claims 11 to 14, wherein the processor controls the position of the first cursor based on at least any one of the mouse data, the inertial data, and the fourth direction input data.
18. The mesh is a determination mesh used for the collision determination, The processor further corresponding to the voxel data, generates or updates a display mesh drawn based on a virtual camera by determining vertex coordinates of the display mesh based on at least the density included in the voxel data, and determining a material of the display mesh based on at least the material included in the voxel data, The game system according to any one of claims 11 to 14, wherein drawing of the virtual space including the display mesh is performed based on vertex coordinates of the display mesh and a texture corresponding to the material of the display mesh.
19. The game system according to any one of claims 11 to 14, wherein the processor further performs drawing of the virtual space including the mesh based on vertex coordinates of the mesh and a texture corresponding to the material of the mesh.
20. In an information processing system, generate and update a mesh of a voxel object corresponding to the voxel data, based on voxel data defined in a virtual space, wherein for each of a plurality of voxels, at least a density indicating a degree to which the space defined by the voxel is virtually occupied by content and a material indicating the type of the content are set, and the vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on at least the material included in the voxel data; control the position of a first cursor based on an operation input from a first operation device; specify a material of a position in the virtual space corresponding to the position of the first cursor of the mesh in response to a first instruction based on the operation input from the first operation device, and use the specified material as a first material; In response to a second instruction based on an operation input from the first operation device, move the first object, in which the first material is set, toward a position in the virtual space corresponding to the position of the first cursor. A game processing method for generating a first in-game effect including at least one of a change in the density and the material of a voxel of the voxel data corresponding to the first voxel update range by setting the first voxel update range at a collision position based on a collision determination between the first object and the mesh.
21. In the information processing system, further, control the movement of a first player character in the virtual space based on an operation input from a second operation device; control the movement of a second player character in conjunction with the movement of the first player character; cause the first player character to perform a first action in response to a third instruction based on an operation input from the second operation device; The game processing method according to claim 20, wherein in response to the second instruction, the second player character is caused to perform a second action and the first object is moved.
22. In the information processing system, further, control the position of a virtual camera in the virtual space based on the position of the first player character; The game processing method according to claim 21, wherein the orientation of the virtual camera is controlled based on at least an operation input from the first operation device.
23. The game processing method according to claim 22, wherein in the information processing system, the orientation of the virtual camera is further controlled based on an operation input from the second operation device.
24. In the information processing system, further, control the position of a second cursor; in response to the third instruction, cause the first player character to perform the first action and move a second object, in which a second material is set, toward a position in the virtual space corresponding to the position of the second cursor; The game processing method according to claim 21, for generating a second in-game effect including at least one of a change in the density and the material of a voxel of the voxel data corresponding to the second voxel update range by setting the second voxel update range at a collision position based on a collision determination between the second object and the mesh.
25. In the information processing system, as the first in-game effect, an effect of reducing the density of the voxels of the voxel data corresponding to the first voxel update range, an effect of increasing the density and setting the material to the first material for the voxels of the voxel data corresponding to the first voxel update range, and an effect of changing the material of the voxels of the voxel data corresponding to the first voxel update range to a fourth material when the third material, which is the material of the mesh at the collision position, and the first material are in a predetermined combination, The game processing method according to any one of claims 20 to 24, which generates any effect according to the type of the first material among a plurality of effects including at least the above.
26. The operation input from the first operation device includes at least any one of data based on a mouse, data based on an inertial sensor, and direction input data, The game processing method according to any one of claims 20 to 24, wherein the information processing system controls the position of the first cursor based on at least any one of the data based on the mouse, the data based on the inertial sensor, and the direction input data.
27. The mesh is a determination mesh used for the collision determination, In the information processing system, further, a display mesh corresponding to the voxel data and drawn based on a virtual camera is generated or updated by determining the vertex coordinates of the display mesh based on at least the density included in the voxel data and determining the material of the display mesh based on at least the material included in the voxel data, The game processing method according to any one of claims 20 to 24, wherein the information processing system performs drawing of the virtual space including the display mesh based on the vertex coordinates of the display mesh and a texture corresponding to the material of the display mesh.
28. The game processing method according to any one of claims 20 to 24, wherein the information processing system performs drawing of the virtual space including the mesh based on the vertex coordinates of the mesh and a texture corresponding to the material of the mesh.
29. A game device including a processor, The processor is Voxel data defined in a virtual space, based on voxel data in which, for each of a plurality of voxels, at least a density indicating the degree to which the space defined by the voxel is virtually occupied by its contents and a material indicating the type of the contents are set, generate and update a mesh of a voxel object corresponding to the voxel data, wherein vertex coordinates of the mesh are determined based on at least the density, and the material of the mesh is determined based on at least the material included in the voxel data. Control the position of a first cursor based on an operation input from a first operation device. In response to a first instruction based on an operation input from the first operation device, identify the material of the position in the virtual space corresponding to the position of the first cursor of the mesh, and set the identified material as a first material. In response to a second instruction based on an operation input from the first operation device, move a first object set with the first material toward the position in the virtual space corresponding to the position of the first cursor. A game device that sets a first voxel update range at a collision position based on a collision determination between the first object and the mesh, and generates a first in-game effect including a change in at least one of the density and the material of the voxels of the voxel data corresponding to the first voxel update range.
Citation Information
Patent Citations
Forming device for stereoscopic image
JP1990058183A
Program, recording medium, game character drawing method and game machine
JP2004062666A
Information processing device, information processing method, program and computer readable storage medium
JP2013196648A
Program and image generation system
JP2017099744A
Systems, methods, and devices for 3D voxel-based modeling
JP2018514885A