Game program, information processing system, information processing apparatus, and information processing method
Patent Information
- Application Number
- JP2024011590
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-30
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2044-01-30
AI Technical Summary
Existing game technologies lack the ability to deform objects using voxels in a highly flexible manner, limiting the freedom of player character interactions and movements.
A game program that updates voxel data to dynamically change object shapes based on player actions, allowing for the creation of predetermined surfaces and deformations such as flat, inclined, or curved surfaces, and enables different voxel sizes for higher resolution representations.
Enables highly flexible deformation and movement of player characters by dynamically updating voxel data to create varied object shapes, enhancing gameplay freedom and ease of movement.
Smart Images

Figure 2025113069000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a game program, an information processing system, an information processing apparatus, and an information processing method capable of generating an image using voxels.
Background Art
[0002] Conventionally, there is a game that creates character voxels based on imaging information and generates polygon mesh information (see, for example, Patent Document 1).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] However, in the above prior art, voxels are used to generate an object from imaging information, and the object is not deformed by updating voxel data.
[0005] Therefore, an object of the present invention is to provide a game program, an information processing system, an information processing apparatus, and an information processing method capable of highly freely deforming an object and highly freely operating a player character in a game using voxels.
Means for Solving the Problems
[0006] In order to solve the above problems, the present invention employs the following configuration.
[0007] The game program of the present invention is a game program executed by a processor of an information processing apparatus. The processor is caused to store, in a storage medium, first volume data which is data for representing a first object in a virtual space and which holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space. Further, the game program causes the processor to move a player character on the first object based on an operation input of the player, and to cause the player character to perform a destruction action based on the operation input of the player. Furthermore, when the destruction action hits the first object, the game program causes the processor to update the voxel data of the voxels included in a first erasure range having a shape set according to the position of the player character and excluding a range below a predetermined surface set based on the position of the player character from a predetermined shape, so that the voxel data becomes a value indicating the absence of an object, and based on the first volume data, at least draw a polygon mesh representing the surface of the first object to generate an image of the virtual space.
[0008] According to the above, when the player character is moved on the first object and a destruction action is performed, and when the destruction action hits the first object, by updating the voxel data of the voxels included in the first erasure range having a shape excluding the range below the predetermined surface from the predetermined shape, the first erasure range of the first object can be destroyed. Thereby, the shape of the first object after destruction can be made to have a predetermined surface according to the position of the player character, and the player character can be made to act with a high degree of freedom while deforming the object with a high degree of freedom. For example, the shape of the first object after destruction can be made a flat surface, and it can be made easier for the player character to move on the first object after destruction.
[0009] Further, the destruction action may be a forward destruction action of the player character. The first deletion range may be set in front of the player character when the destruction action hits the first object. The predetermined plane may be a horizontal plane having the height of the ground on which the player character grounds when the destruction action hits the first object.
[0010] According to the above, when the forward destruction action hits the first object, the predetermined plane can be set as a horizontal plane having the same height as the ground. Thereby, the first object after destruction can be set as a horizontal plane having the same height as the ground, and it is possible to facilitate the movement of the player character on the first object after destruction.
[0011] Further, when the destruction action hits the first object, the processor may be caused to set the height of the predetermined plane based on the position of the player character. The first deletion range may be the predetermined shape when the whole of the predetermined shape is located above the predetermined plane.
[0012] According to the above, the height of the predetermined plane is set based on the position of the player character when the destruction action hits the first object. When the whole of the predetermined shape is located above the predetermined plane, that is, when there is no predetermined shape below the predetermined plane, the first deletion range can be set as the predetermined shape. The height of the predetermined plane can be set dynamically based on the position of the player character, and the first deletion range can be set.
[0013] Further, the destruction action may be a forward destruction action of the player character. The first deletion range may be set in front of the player character when the destruction action hits the first object. The predetermined plane may be a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.
[0014] According to the above, even when a destruction action hits the first object while the player character is in the air, as a predetermined plane, a horizontal plane of the height of the ground located below the player character can be set. Thereby, after the player character lands, it is possible to facilitate the movement of the player character on the first object.
[0015] Also, the destruction action may be a destruction action in the diagonally upward direction of the player character. The first erasure range may be set in the diagonally upward direction of the player character when the destruction action hits the first object. The predetermined plane may be an inclined plane that passes through the position where the player character touches the ground when the destruction action hits the first object and becomes higher toward the front of the player character.
[0016] According to the above, when the player character is made to perform a destruction action in the diagonally upward direction, the predetermined plane can be an inclined plane. Thereby, for example, the predetermined plane can be set along the direction of the destruction action, and the shape of the first object after destruction can be made to follow the direction of the destruction action.
[0017] Also, the predetermined shape may be any one of a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming the ellipsoid.
[0018] According to the above, at least a part of the first erasure range can be made curved, and the shape of the first object after destruction can be made a natural shape.
[0019] Also, when the ground on which the player character touches the ground when the destruction action hits the first object is inclined with respect to the horizontal plane, the game program may cause the computer to set the predetermined plane inclined with respect to the horizontal plane.
[0020] According to the above, when the ground on which the player character touches the ground is inclined, the predetermined plane can also be inclined, and the ground around the player character after destruction can be inclined in the same manner as other parts.
[0021] Further, the game program may further cause the processor to store, in a storage medium, second volume data which is data for representing a second object in the virtual space and which holds the voxel data for each voxel included in a second voxel space arranged in the virtual space. Further, when the destruction action hits the second object, the game program may cause the processor to update the voxel data of the voxels included in a second deletion range having a size different from that of the first deletion range, which is a range set according to the position of the player character and excluding a range below a predetermined plane set based on the position of the player character from a predetermined shape, to a value indicating that no object exists. Furthermore, the game program may cause the processor to further draw a polygon mesh representing the surface of the second object based on the second volume data to generate an image of the virtual space.
[0022] According to the above, even when a destruction action on the second object is performed, a second deletion range having a shape excluding a range below a predetermined plane set based on the position of the player character from a predetermined shape can be set. Since the second deletion range has a size different from that of the first deletion range, the destruction ranges for the first object and the second object can be made different.
[0023] Also, one voxel included in the first volume data and one voxel included in the second volume data may have different sizes defined in the virtual space.
[0024] According to the above, for example, the size of a voxel of 1 included in the second volume data can be made smaller than the size of a voxel of 1 included in the first volume data. Thereby, for example, the second object can be represented with a higher resolution than the first object.
[0025] Further, the processor may further cause the player character to perform a downward destruction action based on an operation input of the player, and when the downward destruction action hits the first object, update the voxel data of the voxels included in a third erasure range set below the player character so as to be a value indicating that the first object does not exist.
[0026] According to the above, when a downward destruction action by the player character hits the first object, a third erasure range can be set below the player character, and the voxel data of the voxels included in the third erasure range can be updated. For example, when a downward destruction action is performed, a predetermined third erasure range can be destroyed.
[0027] Further, the first object may be a terrain within the virtual space.
[0028] According to the above, the player character can be made to perform a destruction action on the terrain and destroy the terrain.
[0029] Further, the game program may cause the processor to generate the polygon mesh by determining the vertex positions of the polygons based on the voxel data between the voxels where the first object does not exist and the voxels where the first object exists. Further, when the voxel data of the voxels included in the first erasure range is updated, the game program may cause the processor to recalculate the vertices of the polygon mesh in at least the range including the voxels whose voxel data has been updated.
[0030] According to the above, a polygon mesh can be generated based on voxel data, and the vertex positions of the polygon can be recalculated by updating the voxel data. As a result, the shape of the object can be changed with a high degree of freedom.
[0031] Also, another invention may be an information processing system that executes the above game program, or an information processing device, or an information processing method.
Effects of the Invention
[0032] According to the present invention, the shape of the first object after destruction can be made into a shape having a predetermined surface according to the position of the player character, and the player character can be made to act with a high degree of freedom while deforming the object with a high degree of freedom.
Brief Description of the Drawings
[0033]
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
[0034] [1. Configuration of the Game System] Hereinafter, a game system according to an example of the present embodiment will be described. An example of the game system 1 in the present embodiment includes a main body device (information processing device; which functions as the main body of the game device in the present embodiment) 2, a left controller 3, and a right controller 4. The main body device 2 is detachable from the left controller 3 and the right controller 4 respectively. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 as separate entities (see FIG. 2). Hereinafter, the hardware configuration of the game system 1 of the present embodiment will be described, and then the control of the game system 1 of the present embodiment will be described.
[0035] FIG. 1 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are attached to the main body device 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processes) in the game system 1. The main body device 2 includes a display 12. The left controller 3 and the right controller 4 are devices that include an operation unit for the user to input.
[0036] FIG. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are respectively removed from the main body device 2. As shown in FIGS. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller".
[0037] FIG. 3 is a six-sided view showing an example of the main body device 2. As shown in FIG. 3, the main body device 2 includes a substantially plate-shaped housing 11. In the present embodiment, the main surface of the housing 11 (in other words, the front surface, that is, the surface on which the display 12 is provided) is generally rectangular in shape.
[0038] Incidentally, the shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Further, the main body device 2 alone or the integrated device in which the left controller 3 and the right controller 4 are attached to the main body device 2 may be a portable device. Further, the main body device 2 or the integrated device may be a hand-held device. Further, the main body device 2 or the integrated device may be a transportable device.
[0039] As shown in FIG. 3, the main body device 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays an image generated by the main body device 2. In the present embodiment, the display 12 is a liquid crystal display device (LCD). However, the display 12 may be any type of display device.
[0040] Further, the main body device 2 includes a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type capable of multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, for example, a type capable of single-touch input (for example, a resistive film type).
[0041] The main body device 2 includes a speaker (that is, the speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed in the main surface of the housing 11. Then, the output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.
[0042] Further, the main body device 2 includes a left terminal 17 which is a terminal for the main body device 2 to perform wired communication with the left controller 3, and a right terminal 21 for the main body device 2 to perform wired communication with the right controller 4.
[0043] As shown in FIG. 3, the main body device 2 includes a slot 23. The slot 23 is provided on the upper surface of the housing 11. The slot 23 has a shape capable of mounting a predetermined type of storage medium. The predetermined type of storage medium is, for example, a storage medium dedicated to the game system 1 and information processing devices of the same type (e.g., a dedicated memory card). The predetermined type of storage medium is used, for example, to store 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., programs of an application, etc.). Further, the main body device 2 includes a power button 28.
[0044] 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).
[0045] 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 long in the vertical direction (i.e., the y-axis direction shown in FIGS. 1 and 4). The left controller 3 can also be gripped in a vertically long orientation when removed from the main body device 2. The housing 31 has a shape and size that can be gripped with one hand, particularly the left hand, when gripped in a vertically long orientation. Also, the left controller 3 can be gripped in a horizontally long orientation. When the left controller 3 is gripped in a horizontally long orientation, it may be gripped with both hands.
[0046] The left controller 3 is provided with an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting directions. The user can input a direction corresponding to the tilting direction (and an input of a magnitude corresponding to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may be provided with a cross key or a slide stick capable of slide input, etc., instead of the analog stick, as the direction input unit. Also, in the present embodiment, it is possible to input by pressing the analog stick 32.
[0047] The left controller 3 is provided with various operation buttons. The left controller 3 is provided with four operation buttons 33 to 36 (specifically, a right direction button 33, a down direction button 34, an up direction button 35, and a left direction button 36) on the main surface of the housing 31. Further, the left controller 3 is provided with a recording button 37 and a -(minus) button 47. The left controller 3 is provided with a first L button 38 and a ZL button 39 at the upper left of the side surface of the housing 31. Also, the left controller 3 is provided with a second L button 43 and a second R button 44 on the surface of the side surface of the housing 31 that is attached when the left controller 3 is attached to the main body device 2. These operation buttons are used to give instructions according to various programs (for example, an OS program or an application program) executed by the main body device 2.
[0048] 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.
[0049] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In the present embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the vertical direction. The right controller 4 can also be gripped in a vertically long orientation when removed from the main body device 2. The housing 51 has a shape and size that can be gripped with one hand, particularly the right hand, when gripped in a vertically long orientation. Also, the right controller 4 can be gripped in a horizontally long orientation. When the right controller 4 is gripped in a horizontally long orientation, it may be gripped with both hands.
[0050] 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. Also, similar to the left controller 3, the right controller 4 includes four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. Further, the right controller 4 includes a + (plus) button 57 and a home button 58. Also, the right controller 4 includes a first R button 6 on the upper right side of the side surface of the housing 51. Also, similar to the left controller 3, the right controller 4 includes a second L button 65 and a second R button 66.
[0051] Also, the right controller 4 includes a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.
[0052] FIG. 6 is a block diagram showing an example of the internal configuration of the main body device 2. The main body device 2 includes each of the components 81 to 91, 97, and 98 shown in FIG. 6 in addition to the configuration shown in FIG. 3. Some of these components 81 to 91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in the housing 11.
[0053] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes executed in the main body device 2. For example, it may be composed of only a CPU (Central Processing Unit), or may be composed of a SoC (System-on-a-chip) including a plurality of functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various information processes by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium mounted on the slot 23, etc.).
[0054] As an example of an internal storage medium built in the main body device 2, the main body device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is mainly a memory used to store various data (which may be a program) stored in the main body device 2. The DRAM 85 is a memory used to temporarily store various data used in information processing.
[0055] The main body device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data to and from a predetermined type of storage medium (for example, a dedicated memory card) mounted on the slot 23 in accordance with an instruction from the processor 81.
[0056] The processor 81 appropriately reads and writes data between the flash memory 84 and the DRAM 85, and each of the above storage media, and executes the above information processes.
[0057] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly) with an external device via a network. In the present embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device by a method compliant with the Wi-Fi standard as a first communication mode. Further, the network communication unit 82 performs wireless communication with other main body devices 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication by the second communication mode enables 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.
[0058] 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. However, 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.
[0059] The processor 81 is connected to the above-described left terminal 17, right terminal 21, and lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. Further, when the processor 81 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. Also, when the processor 81 communicates with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, in the present embodiment, the main body device 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4, respectively. Further, when the left controller 3 and the right controller 4 are attached to the main body device 2 as an integrated device or when the main body device 2 alone is attached to the cradle, the main body device 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.
[0060] Here, the main body device 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). Also, the main body device 2 can communicate with a plurality of right controllers 4 simultaneously (in other words, in parallel). Therefore, a plurality of users can simultaneously input to the main body device 2 using respective sets of the left controller 3 and the right controller 4. As an example, while the first user inputs to the main body device 2 using the first set of the left controller 3 and the right controller 4, it is possible for the second user to input to the main body device 2 using the second set of the left controller 3 and the right controller 4.
[0061] Also, the display 12 is connected to the processor 81. The processor 81 displays an image generated (e.g., by executing the above-described information processing) and / or an image acquired from the outside on the display 12.
[0062] 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.
[0063] 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.
[0064] 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.
[0065] FIG. 7 is a block diagram showing an example of the internal configuration of the main body device 2, the left controller 3, and the right controller 4. Note that the details of the internal configuration regarding the main body device 2 are shown in FIG. 6, and thus are omitted in FIG. 7.
[0066] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 by both wired communication via the terminal 42 and wireless communication without using the terminal 42. The communication control unit 101 controls the communication method that the left controller 3 performs with respect to the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. Also, when the left controller 3 is removed from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.
[0067] Further, the left controller 3 includes a memory 102 such as a flash memory. The communication control unit 101 is configured by, for example, a microcomputer (also referred to as a microprocessor) and executes various processes by executing the firmware stored in the memory 102.
[0068] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). Also, the left controller 3 includes an analog stick (described as "stick" in FIG. 7) 32. Each button 103 and the analog stick 32 output information regarding the operation performed on themselves to the communication control unit 101 repeatedly at an appropriate timing.
[0069] The communication control unit 101 acquires information regarding input (specifically, information regarding operations or detection results by sensors) from each input unit (specifically, each button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing predetermined processing on the acquired information) to the main body device 2. Note that the operation data is repeatedly transmitted at a rate of once every predetermined time. Note that the intervals at which the information regarding input is transmitted to the main body device 2 may be the same or different for each input unit.
[0070] When the above operation data is transmitted to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine operations on each button 103 and the analog stick 32 based on the operation data.
[0071] 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).
[0072] As shown in FIG. 7, the right controller 4 includes a communication control unit 111 that communicates with the main body device 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main body device 2 both by wired communication via the terminal 64 and by wireless communication without using the terminal 64 (specifically, communication according to the Bluetooth (registered trademark) standard), and controls the communication method that the right controller 4 performs with the main body device 2.
[0073] The right controller 4 includes the same input parts as each input part of the left controller 3. Specifically, it includes each button 113 and the analog stick 52. These input parts have the same functions as the input parts of the left controller 3 and operate in the same manner.
[0074] 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.
[0075] [2. Outline of Processing in the Game System] Next, with reference to FIGS. 8 to 15, 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 players) are arranged in a game space, which is a three-dimensional virtual space, and displays it on a display device. In the present embodiment, the display device on which the game image is displayed may be the above-described display 12 or a stationary monitor.
[0076] [2-1. Voxels] In the present embodiment, for some objects in the game space, the shape is defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, a cube)-shaped region arranged in a grid pattern in the game space, and voxel data is data set for each voxel. Hereinafter, an object whose shape is defined by voxel data is referred to as a "voxel object". In the present embodiment, the game system 1 stores voxel data as data for generating voxel objects in the game space for each of a plurality of voxels set in the game space.
[0077] FIG. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 8, in the present embodiment, a terrain object representing a terrain such as the ground is defined in shape by voxel data (that is, it is a voxel object). Each cube shown in FIG. 8 represents a terrain object. In FIG. 8, the portions that are the sides of the terrain object are shown in thick lines, but this thick line is added for the purpose of making the drawing easier to view, and in reality, it is not necessary for the sides of the terrain object to be thickly displayed.
[0078] Also, the terrain object shown in FIG. 8 is generated, for example, according to the rule that "when the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and when it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 8 is shown for the purpose of easily exemplifying the relationship between voxels and voxel objects. In the present embodiment, in reality, for example, like the terrain object shown in FIG. 14 described later, a voxel object is generated according to a rule that results in a more complex shape compared to the length of one side of a voxel (based on voxel data). Note that the rule for determining the shape of the voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate a voxel object as shown in FIG. 8 or a voxel object as shown in FIG. 15 based on object data.
[0079] For a voxel object, its shape can be changed by modifying the voxel data of each voxel. FIGS. 9 and 10 are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 8 is deleted. That is, when the hatched part of the terrain object shown in FIG. 9 is destroyed, the terrain object changes to the shape shown in FIG. 10. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data described later so as to indicate that there is no terrain object for the voxels in the hatched part. Note that when the game system 1 adds a terrain object, it can also easily change the shape of the terrain object by modifying the voxel data of each voxel, in the same way as when erasing the terrain object.
[0080] In this way, the game system 1 can freely change the shape of the voxel object by rewriting the voxel data. For example, when the shape of a terrain object in a game is changed as a result of being destroyed for some reason (e.g., a player character strikes the terrain object), 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 modifying the voxel data used to generate the terrain object.
[0081] FIG. 11 is a diagram showing an example of the content of voxel data. Here, in this embodiment, the game space can be divided into a plurality of voxels arranged in a grid pattern. The game system 1 stores by associating voxel data with each voxel in the game space. The voxel data indicates the presence or absence of a voxel object in the voxel corresponding to the voxel data, etc.
[0082] As shown in FIG. 11, the voxel data includes density data. The density data is data of density indicating the degree to which an object is included in the region where each voxel is defined. Although details will be described later, the position and shape of the surface of the voxel object (that is, the mesh described later) are determined based on the above density. That is, in the present embodiment, the above density is also data used to create a mesh that defines the surface of the voxel object.
[0083] In the present embodiment, the density can take an integer value in the range from a lower limit value (for example, 0) to an upper limit value (for example, 255). In the present embodiment, in the game system 1, when the value of the density set for a voxel is high, the above ratio in the voxel is large, and when the value of the density is low, the ratio of the volume occupied by the voxel object in the voxel is small. For example, when the density is 0, there is no object in the voxel, when the density is 255, all of the voxel is an object, and when the density is a value in between, the object can occupy the voxel at a ratio corresponding to the value. Then, based on the density, the shape of the voxel mesh, that is, the shape of the voxel object is determined. However, the shape of the voxel object generated based on the above density does not necessarily have to be a volume that exactly matches the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 8 and the method of generating a voxel object as shown in FIG. 15, the volumes may be different even though they are based on the same density.
[0084] In other embodiments, the density may indicate either a state in which the entire region within the voxel is occupied by the voxel object or a state in which the voxel object is not included in the region within the voxel. For example, the density data may be data that can only take either 0 or 1.
[0085] As shown in FIG. 11, the voxel data includes material data. The material data indicates the material (in other words, substance) of the voxel object generated from the voxel data. Here, in the present embodiment, materials such as sand, rock, and soil are set for the voxel object. That is, in the present embodiment, a plurality of types of materials are prepared as materials that can be set for the voxel object, and any one of the plurality of types of materials is set for the voxel object.
[0086] As shown in FIG. 11, in the present embodiment, the material data indicates identification information of the material (referred to as "material ID"). Further, in the present embodiment, the game system 1 stores material information indicating the properties and textures of the materials prepared in the game for each material. In the present embodiment, the material information associates the material ID, the properties of the material, and the appearance of the material (specifically, the texture). Specifically, the material information is information that associates the material ID, the identification information of the properties of the material (referred to as "property ID"), and the identification information of the texture of the material (referred to as "texture ID") (see FIG. 11).
[0087] FIG. 12 is a diagram showing an example of property information indicating the properties of the material. As shown in FIG. 12, the game system 1 stores property information associating the above property ID and information indicating the content of the property indicated by the property ID. The properties of the material are the properties that the voxel object in which the material is set has in the game, and are, for example, information such as the weight and slipperiness shown in FIG. 12. Note that the specific content of the property is arbitrary, and for example, the following information may be set as the properties of the material. · Temperature · Fragility (for example, the number of times the voxel object breaks until it breaks when an impact is applied to the voxel object) · Whether another object adheres to the voxel object · The amount of health restored to the player character when the player character destroys a voxel object · The amount of in-game currency acquired by the player character when the player character destroys a voxel object Note that the specific content of the properties set for the material is arbitrary. In other embodiments, information different from the above may be set as information indicating the properties of the material.
[0088] FIG. 13 is a diagram showing an example of texture information indicating the texture of a material. As shown in FIG. 13, the game system 1 stores texture information associating the above texture ID with the texture indicated by the texture ID.
[0089] Note that, as data defining the appearance of the voxel object, in addition to the texture information, any information regarding color and / or pattern may be set. For example, as information regarding the appearance of the voxel object, a crack pattern may be set. By using such a pattern, the game system 1 can generate an image of a voxel object representing an appearance with cracks.
[0090] As described above, in the present embodiment, the material data defines the properties of the voxel object and the texture to be used for the voxel object by the material ID. For example, when the material ID indicated by the material data included in the voxel data is "002", the property indicated by the property ID "001" associated with the material ID in the material information is set as the property of the voxel object corresponding to the voxel data (see the arrow shown in FIG. 11). Also, in the above case, the texture indicated by the texture ID "002" associated with the material ID in the material information is applied to the voxel object corresponding to the voxel data (see the arrow shown in FIG. 11).
[0091] As described above, in this embodiment, the game system 1 manages the properties and textures of materials separately. Therefore, in this embodiment, it is possible to easily set a plurality of types of materials that have the same properties but different appearances (i.e., textures), or a plurality of types of materials that have different properties but the same appearance.
[0092] Note that the material data may be any data that can identify the properties and / or textures of the material. For example, in other embodiments, the material data may indicate the above property ID and texture ID, or may have a data structure that actually includes data indicating the properties and textures of the material.
[0093] Also, the material data may be information regarding the material and may further indicate other information different from the above properties and textures. For example, the material data may include effect data indicating an effect that occurs when an effect generation condition (e.g., a part of the voxel object is destroyed, or a character steps on the voxel object) set for the voxel object is satisfied. Note that the effect data may be data indicating an effect image (e.g., an effect image representing that the voxel object has been destroyed), or may be data indicating an effect sound (the sound of footsteps when a character walks on the voxel object).
[0094] As shown in FIG. 11, the voxel data includes state data indicating the state of the voxel object. The specific content of the state data is arbitrary. For example, the state data may be data indicating whether the voxel object is in a wet state, or may be data indicating the amount of damage applied to the voxel object. The content of the state data may be updated during the game.
[0095] [2-2. Mesh] In this embodiment, the surface of the voxel object is represented by a mesh. A mesh is a collection of a plurality of surfaces (specifically, polygons) arranged in the game space. In this embodiment, the game system 1 generates a mesh of the voxel object based on the voxel data of each voxel set in the game space. Hereinafter, an example of generating a mesh based on voxel data will be described.
[0096] FIG. 14 is a diagram showing an example of a method for generating a mesh. In FIG. 14, for the purpose of making the drawing easy to view and the explanation easy to understand, the voxels and the mesh are represented two-dimensionally, but actually, a three-dimensional mesh is generated based on the voxels in the three-dimensional space.
[0097] As described above, in the present embodiment, the density set for each voxel is set within the range of 0 to 255. Also, in the present embodiment, voxels with a density equal to or higher than the reference value are considered to be inside the object, and voxels with a density lower than the reference value are considered to be outside the object. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., reference value = 1), and the reference value can be, for example, 128. In the example shown in FIG. 14, the density of voxel 201 and other outer voxels is 0, the density of voxel 202 is 100 which is lower than the reference value, and the densities of voxels 203 and 204 are set to 150 and 200 which are equal to or higher than the reference value. In the present embodiment, the game system 1 generates vertices between voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. Specifically, for each region spanning eight (four in the drawing) adjacent voxels (the region surrounded by the dotted line in the drawing), a determination is made as to whether to generate a vertex. That is, a vertex is generated in a region that spans both voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. Further, when the boundary between adjacent vertices (the boundary of the above-described region including each vertex) passes between voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value, a polygon mesh is generated by connecting those vertices. The coordinates of the vertices are determined by comparing the densities of adjacent voxels for each of the X, Y, and Z axes and performing interpolation based on the density difference. At this time, coordinate calculation can be further performed based on the normal information. The normal information may be retained in advance for at least some of the voxels, or, if not retained, the normal information may also be calculated based on the densities of adjacent voxels. In FIG. 14, since the density of voxel 202 is lower than the reference value, voxel 202 is treated as being outside the object in the determination of the presence or absence of vertices, but the density value of voxel 202 itself is used in the coordinate calculation of the generated vertices. If the reference value is set to a value lower than the density of voxel 202, more vertices will be added to the upper right and upper left sides of voxel 202 in FIG. 14.
[0098] By generating a polygon mesh as described above, a shape having a volume that reflects the density for each voxel to some extent can be generated. However, depending on the relationship with adjacent voxels, it may be the case that a voxel with a density of 0 includes a region within a part of the object, or a voxel with a density of 255 includes a region outside a part of the object. Also, in this embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume becomes smaller by the amount that the number of vertices is reduced compared to the case of processing them as inside the object. That is, it is not necessary to calculate the polygon mesh so as to have a volume that exactly corresponds to the density value.
[0099] FIG. 15 is a diagram showing an example of a game image including a terrain object. In this embodiment, by generating a mesh as described above, a voxel object can be made into a shape with complex unevenness compared to, for example, the length of one side of a voxel.
[0100] Note that the method of generating a mesh based on voxel data is arbitrary. For example, in other embodiments, when the density of voxel data is greater than a predetermined value, a mesh may be generated such that a cube is arranged at the voxel (see FIG. 8).
[0101] For each face of the mesh generated as described above, the game system 1 determines the appearance (i.e., color and / or pattern) of each face according to the material specified by the voxel data. Specifically, the game system 1 determines the texture to be used for rendering each face of the mesh based on the voxel data, and generates an image of the voxel object by mapping the determined texture to each face. Note that the texture mapped to each face of the mesh is determined based on the voxel data of the voxels (referred to as target voxels) used to generate the face among the voxels where the voxel object exists. Note that the target voxels depend on the method of generating the mesh, but are, for example, one or more voxels arranged around the face. That is, the texture mapped to the face of the mesh is determined to be a texture corresponding to the material set for one or more voxels arranged around the face.
[0102] In other embodiments, one voxel data may include multiple types (e.g., two types) of material data. At this time, the voxel data includes ratio data regarding the multiple types of material data. The ratio data is data for determining the texture to be used for the voxel object, and indicates the ratio of the influence of each material (specifically, the texture corresponding to the material) indicated by the multiple types of material data on the appearance (specifically, color and / or pattern) of the voxel object. Also, when determining the texture mapped to each face of the mesh, the texture is determined based on various data (specifically, density data, multiple types of material data, and ratio data) included in the voxel data of the target voxels. For example, when multiple types of materials are set for the target voxels corresponding to one face, the texture corresponding to the material with the greatest influence (one type) may be used in consideration of the ratio, or each texture corresponding to the multiple types of materials may be used in consideration of the ratio.
[0103] In another embodiment, there may be both a voxel object using voxel data including one type of material data and a voxel object using voxel data including two types of material data.
[0104] (Overview of Game Processing) Next, destruction of voxel objects in the game of this embodiment will be described. FIG. 16 is an image of the game space in the game of this embodiment as seen from a virtual camera, and shows an example of a game image displayed on a display device. FIG. 17 is a diagram showing an example of how a destruction action is performed by a player character.
[0105] As shown in FIG. 16, a player character PC is placed in the game space. The player character PC moves within the game space according to the player's operation (for example, an operation on the analog stick 32). Also, the player character PC performs various actions such as punching and jumping within the game space according to the player's operation (for example, an operation on the A button 53 or the B button 54). The player character PC is not a voxel object, but a 3D object whose shape is defined by polygons in advance.
[0106] When the game starts, a fixed voxel space defined in the Xs-Ys-Zs coordinate system is set as a voxel space representing a field within the game space. The Xs-Ys-Zs coordinate system is assumed to have axial directions parallel to the XYZ coordinate system of the game space. That is, the Ys axis is the axis pointing upward in the game space, and the Xs axis and the Zs axis are axes perpendicular to the Ys axis. The voxel space defined in the Xs-Ys-Zs coordinate system may hereinafter be referred to as the "field voxel space". The position of each object existing in the game space is represented by the coordinate values of the Xs-Ys-Zs coordinate system. Here, although the direction of the Xs-Ys-Zs coordinate system representing the field voxel space is assumed to be the same as that of the XYZ coordinate system representing the game space, they do not have to be the same.
[0107] In the field voxel space, a terrain object is set as a voxel object. For example, as terrain objects, a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain are set. For example, by setting material data representing rock in the voxel data of each voxel located downward in the field voxel space, a terrain object 210 representing a ground made of rock is formed. Also, by setting material data representing rock in the voxel data of a plurality of voxels located above the above-mentioned ground in the field voxel space, a terrain object 220 representing a rocky mountain rising from the ground is formed.
[0108] The terrain object 210 representing the ground and the terrain object 220 representing the rocky mountain may be destroyed by the destruction action of the player character PC. By updating the voxel data of the voxels in the field voxel space, the terrain objects 210 and 220 are destroyed.
[0109] For example, as shown in FIG. 17, when the player character PC performs a punch as a destruction action and the punch hits the terrain object 220, a destruction range is set based on the position where the punch hits (the position of the player character PC). Then, the terrain object 220 included in the destruction range is destroyed and erased. Specifically, by performing a destruction process of updating the voxel data for the voxels included in the destruction range, the terrain object 220 included in the destruction range is erased.
[0110] The destruction range (an example of the elimination range) is the range set for the object hit by the destruction action of the player character PC, and is the range set with reference to the position hit by the destruction action. For example, the destruction range is the range excluding the range below a predetermined plane set based on the position of the player character PC from a predetermined shape. The predetermined shape is a shape stored in advance and is a shape composed of a curved surface. In the present embodiment, there are a plurality of predetermined shapes, which are determined according to the direction of the destruction action. For example, when the player character PC performs a forward destruction action, the predetermined shape is the first shape. The first shape may be, for example, a sphere, an ellipsoid, or a shape in which the ellipsoid is deformed asymmetrically left and right (or up and down). For example, the first shape when the player character PC performs a left punch is an ellipsoid that bulges to the left and is asymmetric left and right, and the first shape when the player character PC performs a right punch may be an ellipsoid that bulges to the right and is asymmetric left and right.
[0111] In the present embodiment, when the forward punch of the player character PC hits an object, the first shape is set in front of the player character PC, and the destruction range is set by correcting the first shape. Specifically, the shape excluding the range below the predetermined plane set based on the position of the player character PC from the first shape is set as the destruction range.
[0112] FIG. 18 is a diagram showing an example of the destruction range when no correction is made to the first shape and the terrain object after destruction within the destruction range. FIG. 19 is a diagram showing an example of the destruction range when correction is made to the first shape and the terrain object after destruction within the destruction range.
[0113] When the forward punch of the player character PC hits the terrain object 220, a destruction range of the first shape is set in front of the player character PC. For example, the destruction range of the first shape is set centered on the position in the field voxel space corresponding to the position of the player character PC's fist (or near the fist) in the game space. As shown in FIG. 18, when no correction of the destruction range is performed, the destruction range includes a part of the terrain object 220 representing the rocky mountain that the punch hit and a part of the terrain object 210 representing the ground. When destruction processing is performed on the voxels included in this destruction range, the terrain objects included in the destruction range are erased. In this case, the terrain after destruction has a shape in which a part of the terrain object 220 representing the rocky mountain and a part of the terrain object 210 representing the ground are cut off. Thus, when no correction is made to the first shape, the terrain after destruction has a shape in which the periphery of the player character PC is concave, and the ground after destruction becomes uneven. When the player character PC advances while destroying the forward terrain object 220, if the ground after destruction becomes uneven, the player character PC may become difficult to move.
[0114] Therefore, in the present embodiment, correction is performed on the first shape so that the ground after destruction becomes a flat surface. Specifically, as shown in FIG. 19, when the forward punch of the player character PC hits the terrain object 220, a predetermined surface (plane) parallel to the ground is set at the same height as the ground on which the player character PC is located. Then, the shape obtained by removing the portion below the predetermined surface from the first shape is set as the destruction range. That is, when the predetermined surface at the same height as the ground is included in the first shape set based on the position of the player character PC, the shape obtained by removing the portion below the predetermined surface from the first shape is set as the destruction range so that the ground after destruction does not become uneven. In the example shown in FIG. 19, the range surrounded by the broken line is set as the destruction range.
[0115] When a destruction range is set, destruction processing is performed on the voxels included in the destruction range. For example, for the voxels completely included in the destruction range, the voxel data is rewritten to a value indicating that there is no object. Specifically, for the voxels completely included in the destruction range, the density is set to "0". Also, for the voxels partially included in the destruction range, the density of the voxels is set to a range of, for example, 128 to 254 (it may also be 1 to 255).
[0116] When destruction processing is performed on the voxels within the destruction range set (corrected) in this way, after destruction, part of the terrain object 220 representing a rocky mountain is cut off and becomes curved, while the ground becomes flat. In this way, the ground after destruction can be maintained as a flat surface, and it becomes easier for the player character PC to move on the ground after destruction.
[0117] Here, when the punch in the forward direction of the player character PC hits the terrain object 220 and the ground in contact with the player character PC is inclined with respect to the horizontal plane, the predetermined surface also inclines with respect to the horizontal plane in the same way as the ground. FIG. 20 is a diagram showing an example of the destruction range set when the player character PC punches forward when the ground in contact with the player character PC is inclined.
[0118] As shown in FIG. 20, when the ground in contact with the player character PC is inclined with respect to the horizontal plane (XZ plane), assume that the player character PC performs a forward punch and the punch hits the terrain object 220. In this case, a predetermined shape is set based on the position where the punch hits, and a predetermined plane having an inclination corresponding to the inclination of the ground in contact with the player character PC is set. Specifically, a predetermined shape is set at a position diagonally above the player character PC. For example, the center of the predetermined shape may be set at a position diagonally upward along the ground from the position of the player character PC. The predetermined shape set at this time may be the same shape as the first shape and may be a shape obtained by tilting the first shape according to the inclination of the ground. Further, the predetermined shape may be a shape different from the first shape and may be a shape corresponding to the inclination of the ground.
[0119] Also, the predetermined plane is tilted in the same manner as the inclination of the ground on which the player character PC is grounded. For example, the game system 1 calculates the inclination of the ground on which the player character PC is grounded and sets a predetermined plane having the inclination. Further, the predetermined plane is set to pass through the position (ground contact point) on the ground on which the player character PC is grounded. Then, a range excluding the portion below the predetermined plane tilted according to the inclination of the ground from the predetermined shape is set as the destruction range. Therefore, the ground around the player character PC after destruction slopes in the same manner as the other ground. Thereby, when the player character PC advances while performing a forward punch on the slope, the terrain can be destroyed while maintaining the slope.
[0120] Note that the method for calculating the inclination of the ground (the inclination of the predetermined plane) is arbitrary. For example, the inclination of the ground may be calculated based on the normal vector of the reference point within a predetermined range including the position (ground contact point) on the ground in contact with the player character PC.
[0121] FIG. 21 is a diagram showing an example of a method for calculating the slope of the ground with which the player character PC is in contact. As shown in FIG. 21, when the forward punch of the player character PC hits the terrain object 220, the slope of the ground is calculated based on reference points within a predetermined range including the contact point of the player character PC, and a predetermined plane may be set according to the slope of the ground. For example, the average of the normal vectors at a plurality of reference points is calculated, and a plane having the average vector as the normal vector is calculated as the predetermined plane. However, based on a plurality of normal vectors, it is determined whether the surrounding is flat to a certain extent or has an uneven shape. When it is determined that there are unevennesses around, instead of the plane based on the average of the normal vectors, a horizontal plane passing through the coordinates where the player character PC is grounded may be set as the predetermined plane. Further, the predetermined plane is set so as to pass through a point (for example, the contact point) within the predetermined range.
[0122] Next, a case where the player character PC makes a forward punch while in the air and the punch hits the terrain object 220 will be described.
[0123] FIG. 22 is a diagram showing an example in which the destruction range is corrected when the player character PC makes a forward punch while in the air and the punch hits the terrain object 220. FIG. 23 is a diagram showing an example in which the destruction range is not corrected when the player character PC makes a forward punch while in the air and the punch hits the terrain object 220.
[0124] The player character PC may jump within the game space in response to the player's operation and temporarily leave the ground. Even when the player character PC is in the air due to jumping, it punches in response to the player's operation input. As shown in FIG. 22, when the forward punch of the player character PC hits the terrain object 220 while the player character PC is in the air, a predetermined plane is calculated based on the ground directly below the player character PC. For example, when the punch of the player character PC hits, the normal vector of the predetermined plane is calculated based on a reference point within the predetermined range including the position on the ground directly below the player character PC at that time. A predetermined plane having the calculated normal vector and passing through a point within the predetermined range (for example, the intersection of the straight line extending vertically downward from the position of the player character PC and the ground) is set. Then, as shown in FIG. 22, when a part of the first shape set with reference to the position where the punch of the player character PC hits is located below the predetermined plane, the shape obtained by removing the portion below the predetermined plane from the first shape is set as the corrected destruction range. That is, when the predetermined plane is included within the first shape set with reference to the position where the punch of the player character PC hits, the destruction range is corrected.
[0125] Thereby, even when the player character PC is in the air, the destruction range can be corrected, and when the player character PC lands, the ground after destruction can be easily moved.
[0126] On the other hand, as shown in FIG. 23, when the entire first shape set with reference to the position where the punch of the player character PC hits is located above the predetermined plane, that is, when the predetermined plane is not included within the first shape, the destruction range is not corrected, and the entire first shape is set as the destruction range.
[0127] Thereby, when the predetermined plane is not included within the first shape, the terrain object can be destroyed in the first shape, and the shape after destruction can be made natural.
[0128] Next, the correction of the destruction range when the player character PC performs an upward diagonal punch will be described.
[0129] FIG. 24 is a diagram comparing the destruction ranges before and after correction, and shows an example of the destruction range when the player character PC performs an upward diagonal punch.
[0130] When the player inputs the upward direction (upward diagonal direction) of the analog stick 32 and performs an operation for punching (for example, pressing the A button 53), the player character PC performs an upward diagonal punch. As shown in FIG. 24, when the upward diagonal punch of the player character PC hits the terrain object 220, a predetermined shape is set in the upward diagonal direction of the player character PC. For example, the center of a predetermined shape is set at a position in the field voxel space corresponding to the position of the fist of the player character PC in the game space (the upward diagonal position of the player character PC). The predetermined shape set when the upward diagonal punch hits the terrain object 220 is a second shape different from the first shape set when the forward punch hits the terrain object 220. For example, the second shape set when the upward diagonal punch hits the terrain object 220 may be a horizontally symmetric ellipsoid or a sphere. Note that the predetermined shape set when the upward diagonal punch hits the terrain object 220 may be the same as the first shape set when the forward punch hits the terrain object 220.
[0131] As shown in the right diagram of FIG. 24, when an upward diagonal punch is performed, the predetermined surface is set to tilt in the upward diagonal direction. For example, the predetermined surface is set to have a predetermined angle with respect to the horizontal plane. However, when the ground on which the player character PC is located is more inclined than the above-mentioned predetermined angle when the player character PC performs an upward diagonal punch, the predetermined surface may be set with an inclination corresponding to the inclination of the ground.
[0132] FIG. 25 is a diagram comparing the case where correction of the destruction range is not performed with the case where it is performed, and shows an example of the terrain after destruction when the player character PC continuously punches in an obliquely upward direction.
[0133] As shown in the left diagram of FIG. 25, when the correction of the destruction range is not performed and the player character PC moves forward while continuously punching in an obliquely upward direction, the ground after destruction becomes uneven. On the other hand, as shown in the right diagram of FIG. 25, when the correction of the destruction range is performed, the ground after destruction becomes a slope without unevenness.
[0134] Thus, when an obliquely upward punch is performed, the second shape is set obliquely above the player character PC, and the predetermined surface is set to be higher in front of the player character PC. Then, the shape excluding the portion below the predetermined surface from the second shape is set as the destruction range. Thereby, when the player character PC performs an obliquely upward punch, the ground after destruction becomes a slope rising in front of the player character PC, and the ground after destruction can be formed along the destruction direction and the movement direction of the player character PC.
[0135] Next, the destruction range when the player character PC punches downward will be described.
[0136] FIG. 26 is a diagram showing an example of the destruction range set when the player character PC punches downward. FIG. 27 is a diagram showing an example of the terrain after the terrain object is destroyed within the destruction range set when the player character PC punches downward.
[0137] When the player performs an operation for a punch while inputting the downward direction of the analog stick 32, for example, the player character PC performs a downward punch. As shown in FIG. 26, when the player character PC performs a downward punch, the punch hits the terrain object 210 representing the ground existing in the downward direction of the player character PC. In this case, a destruction range of the third shape is set based on the position where the punch hits. The third shape is a shape different from the first shape and the second shape, and is, for example, a cylindrical shape. The bottom surface of the third shape is a plane. No correction as described above is performed on the set third shape. When a destruction process is performed on the voxels included in the set destruction range of the third shape, the voxel objects within the destruction range are deleted. As a result, as shown in FIG. 27, a hole of the third shape is formed in the ground. The bottom of the hole is a plane. Further, when the player character PC performs a downward punch at the bottom of the hole, a hole of the third shape is further formed.
[0138] In this way, the third shape with a flat bottom surface is predetermined, and when a downward punch is performed, the third shape is set as the destruction range. Thereby, even without performing the above-described correction, the shape of the ground after destruction can be made flat, and it is possible to make it easier for the player character PC to move on the ground after destruction.
[0139] In the present embodiment, it is assumed that the direction of the destruction action of the player character PC is any one of the forward direction (a direction parallel to the horizontal plane), the diagonally upward direction, and the downward direction (a direction perpendicular to the horizontal plane). However, in other embodiments, the direction of the destruction action of the player character PC is not limited to these directions. For example, the player character PC may be able to perform a diagonally downward punch. In this case, when the diagonally downward punch hits the terrain object, the first shape or the second shape may be set in the diagonally downward direction of the player character PC. The predetermined surface is an inclined surface obtained by tilting a plane, and is set to descend in the forward direction of the player character PC. Then, a shape excluding the range below the predetermined surface from the first shape or the second shape may be set as the destruction range.
[0140] In addition, in the present embodiment, in the game space, in addition to the above-described terrain object defined by the voxels in the field voxel space, other voxel objects are arranged. FIG. 28 is a diagram showing an example of voxel objects other than the terrain objects 210 and 220 arranged in the game space.
[0141] As shown in FIG. 28, an enemy object EC is arranged in the game space. The enemy object EC is a character automatically controlled by the processor 81, and moves in the game space, changes its posture, and attacks the player character PC.
[0142] The enemy object EC is a voxel object, and its shape is defined by the voxel data of a plurality of voxels in the voxel space VLa. The voxel space VLa is a voxel space different from the field voxel space arranged in the game space, and is defined in the Xa-Ya-Za coordinate system. In the voxel data of a plurality of voxels in the voxel space VLa, a density value indicating the existence of an object and material data representing the enemy object are set. Thereby, the enemy object EC is formed. As described above, the enemy object EC is displayed by generating and rendering a polygon mesh based on the voxel data of each voxel. Note that the torso of the enemy object EC is a voxel object, but the hands and feet may be 3D objects whose shapes are defined by polygons in advance instead of voxel objects.
[0143] In addition, in FIG. 28, the voxel space VLa is shown by a dotted line for the sake of explanation, but actually, the dotted line indicating the voxel space VLa is not displayed during the game.
[0144] One voxel in the field voxel space is a cube region with a side of a predetermined length. Here, in the game space, the length is defined, and as a unit of length, for example, "m (meter)" is used. For example, the height of the player character PC in the game space may be defined as 2m. The length of one side of one voxel in the field voxel space is, for example, "1m". On the other hand, the length of one side of one voxel in the voxel space VLa is, for example, "0.5m".
[0145] When a destruction action by the player character PC is performed on the enemy object EC, the destruction range is set in the same manner as described above. For example, when the forward punch of the player character PC hits the enemy object EC, the first shape is set at the position in the voxel space VLa corresponding to the position where the punch hits in the game space (the position of the player character PC). Here, the size in the game space of the first shape set here is smaller than the size in the game space of the first shape set when the forward punch of the player character PC hits the terrain object. For example, when the forward punch of the player character PC hits the terrain object, a first shape having a first size is set, and when the forward punch of the player character PC hits the enemy object EC, a first shape having a second size is set. Even when the forward punch of the player character PC hits the enemy object EC, the destruction range is corrected in the same manner as when it hits the terrain object. Specifically, as described above, a predetermined surface is set, and the shape obtained by removing the portion below the predetermined surface from the first shape is set as the destruction range. When the forward punch hits the enemy object EC, the destruction range becomes relatively small, so the enemy object EC can be gradually destroyed in a small range. On the other hand, when the forward punch hits the terrain object 220, the destruction range is relatively large, so the terrain object 220 can be largely destroyed by one destruction action.
[0146] In addition to the enemy object EC, another voxel object may be arranged in the game space. In this case, a voxel space different from the field voxel space may be set. For example, a terrain object included in the destruction range set as described above may be destroyed, and a part of the terrain object may be separated by the destruction, and a fragment object as a fragment of the terrain object may be generated. In this case, a voxel space different from the field voxel space is newly generated. By changing the position and orientation of the newly generated voxel space in the game space, the fragment object may move or change its orientation in the game space. For such a voxel object, for example, when a forward destruction action is performed, a first shape is set in the voxel space corresponding to the voxel object, and a predetermined plane is set. Then, the shape obtained by removing the portion below the predetermined plane from the first shape is set as the destruction range.
[0147] Note that in this embodiment, when a destruction action hits a voxel object, the destruction process (density update) for the voxels included in the (corrected) destruction range set as described above is not necessarily performed. The density of the voxels included in the destruction range is updated according to the "ease of breakage" of the material (also referred to as substance or material) in the material data set for the voxels. Specifically, the density of the voxels included in the destruction range may or may not be updated according to the "hardness of the side doing the destruction", the "hardness of the side being destroyed", and the "amount of damage" of the voxels.
[0148] More specifically, the "hardness of the breaking side" is determined within the range of 1 to 5 according to the type of breaking action. Also, the "hardness of the side to be broken" is a value corresponding to the material indicated by the voxel data and is determined, for example, within the range of 1 to 5. When the "hardness of the breaking side" and the "hardness of the side to be broken" satisfy a predetermined condition, the damage amount of the voxels included within the (corrected) breaking range set as described above is decreased. When the damage amount of the voxels reaches a predetermined durability value, the density of the voxels is updated. That is, the density of the voxels within the breaking range set as described above is updated to a value indicating the absence of an object. Thereby, the voxel objects within the breaking range are broken. On the other hand, when the damage amount of the voxels included within the (corrected) breaking range set as described above has not reached the durability value, the density of the voxels is not updated. That is, the voxel objects are not broken. In this case, when the damage amount of the voxels within the (corrected) breaking range set by multiple breaking actions reaches the durability value, the density of the voxels within the breaking range is updated and the voxel objects are broken.
[0149] On the other hand, when the "hardness of the breaking side" and the "hardness of the side to be broken" satisfy another condition, the density of the voxels within the set (corrected) breaking range is updated without decreasing the damage amount of the voxels within the breaking range. In this case, the density of the voxels within the breaking range is updated by one breaking action and the voxel objects are broken.
[0150] As described above, in this embodiment, when the player character PC performs a forward punch while on the ground and the punch hits a terrain object, a range is set according to the position of the player character PC. A shape obtained by removing the portion below a predetermined plane from the first shape is set as the destruction range. The first shape is a shape predetermined by the destruction action of the player character PC. The predetermined plane is a plane set based on the position of the player character PC. Specifically, the predetermined plane is parallel to the ground with which the player character PC is in contact and is a plane at the same height as the ground. By setting the destruction range in this way and destroying (erasing) the voxel objects within the destruction range, the ground after destruction can be made into a flat surface, making it easier for the player character PC to move.
[0151] Also, when the player character PC performs a forward punch while in the air and the punch hits a terrain object, a predetermined plane is set based on the ground located below the player character PC (specifically, directly below). When a part of the first shape is below the predetermined plane, a shape obtained by removing the portion below the predetermined plane from the first shape is set as the destruction range. Thereby, even when the terrain object is destroyed when the player character PC is in the air, the ground after destruction can be made into a flat surface, making it easier for the player character PC to move. On the other hand, when the entire first shape is above the predetermined plane, the first shape is set as the destruction range. Thereby, when it does not affect the movement of the player character PC after destruction, the terrain object can be destroyed within the range of the first shape, and for example, the terrain after destruction can be made into a natural shape.
[0152] Also, when a punch in the diagonally upward direction of the player character PC hits a terrain object while the player character PC is on the ground, a predetermined plane inclined with respect to the horizontal plane is set. Specifically, the predetermined plane is an inclined plane that becomes higher as it goes forward of the player character PC. Then, a shape obtained by removing the portion below the predetermined plane from the predetermined shape is set as the destruction range. Thereby, when the player character PC punches in the diagonally upward direction, the ground after destruction can be made into an inclined plane without unevenness, and the terrain object can be destroyed along the direction of the destruction action and the moving direction of the player character PC.
[0153] Also, when the destruction action of the player character PC hits a terrain object while the ground where the player character PC is located is inclined, the predetermined plane also inclines in the same manner as the ground. Thereby, the ground around the player character PC after destruction can be made into an inclined plane in the same manner as the ground in other portions, and the terrain object can be destroyed along the ground where the player character PC is located.
[0154] Also, in the present embodiment, when a destruction action is performed on an object (for example, enemy object EC) formed by voxels in a second voxel space (for example, voxel space VLa) different from the field voxel space, which is a voxel object different from the terrain object defined in the field voxel space, the destruction range is set by the same method as described above.
[0155] When a destruction action is performed on the enemy object EC, the destruction range is set smaller than when a destruction action is performed on the terrain object. Thereby, the enemy object EC can be gradually destroyed in a small range, while the terrain object can be destroyed on a large scale.
[0156] Also, the size of one voxel in the voxel space VLa for forming the enemy object EC is smaller than that of one voxel in the field voxel space for forming the terrain object. Thereby, the enemy object EC can be represented in detail and can be destroyed in detail.
[0157] [3. Specific Examples of Processing in the Game System] Next, with reference to FIGS. 29 to 31, specific examples of information processing in the game system 1 will be described.
[0158] FIG. 29 is a diagram showing an example of various data used for information processing in the game system 1. As shown in FIG. 29, the game system 1 stores a game program, game space data, field voxel space data 310, second voxel space data 320, shape data, player character data, and mesh data.
[0159] The game program is a program for executing the game processing (specifically, the game processing shown in FIG. 30) in the present embodiment. The game program is pre-stored in a storage medium mounted in the slot 23 or the flash memory 84 and is read into the DRAM 85 when the game is executed.
[0160] The game space data is data for defining the game space and includes data representing the above XYZ coordinate system.
[0161] The field voxel space data 310 is data regarding the entire field voxel space. As shown in FIG. 29, the field voxel space data 310 includes size data 311. The size data 311 indicates the length of one side of each voxel within the field voxel space. For example, the length of one side of each voxel in the field voxel space is 1 m. Further, the field voxel space data 310 includes position data 312. The position data 312 is data representing the position and rotation in the game space of the field voxel space. In the present embodiment, it is assumed that the field voxel space is fixed in the game space.
[0162] Also, the field voxel space data 310 includes first volume data 313. The first volume data 313 includes voxel data for each voxel within the field voxel space. Voxel data is set for each voxel, and a mesh is generated based on the voxel data, thereby forming a terrain within the game space. Initial first volume data 313 is pre-stored in the storage medium attached to the slot 23 or the flash memory 84. At the start of the game, the first volume data 313 stored in the storage medium attached to the slot 23 or the flash memory 84 is read into the DRAM 85. Thereby, an initial terrain is formed. For example, as the initial terrain, a terrain object 210 representing a flat ground and a terrain object 220 representing a rocky mountain are formed. During the execution of the game, the terrain is changed by changing each voxel data included in the first volume data 313 stored in the DRAM 85.
[0163] Also, the field voxel space data 310 includes destruction range data 314. The destruction range data 314 is data indicating the destruction range set when a destruction action performed by the player character PC hits the terrain object formed by the first volume data 313.
[0164] The second voxel space data 320 is data regarding the voxel space VLa arranged within the game space. The second voxel space data 320 includes size data 321, position data 322, second volume data 323, and destruction range data 324. The size data 321 includes data indicating the length of one side of each voxel within the voxel space VLa and data indicating the number of voxels in the direction of each axis (Xa, Ya, Za axes) of the voxel space VLa. For example, the length of one side of each voxel within the voxel space VLa is "0.5 m". Based on this size data 321, the size of the voxel space VLa in the game space is determined. Also, the position data 322 is data representing the position and rotation of the voxel space VLa in the game space. For example, the position data 322 includes coordinate data representing the position in the game space and vector data representing the direction of each axis (Xa, Ya, Za axes) of the voxel space VLa in the game space. By changing this position data 322, the position and / or orientation of the voxel space VLa (i.e., the enemy object EC) in the game space is changed.
[0165] The second volume data 323 is data for representing the enemy object EC. The second volume data 323 holds voxel data indicating the existence of an object for each voxel included within the voxel space VLa. That is, the second volume data 323 includes the voxel data of each voxel included within the voxel space VLa. When voxel data is set for each voxel within the voxel space VLa and a mesh is generated based on the voxel data, the enemy object EC is formed.
[0166] The destruction range data 324 is data indicating the destruction range set when a destruction action performed by the player character PC hits the enemy object EC formed by the second volume data 323.
[0167] The shape data is data indicating the predetermined shape, and includes data representing the above-mentioned first shape, data representing the second shape, and data representing the third shape, which are predetermined. The player character data is data related to the player character PC, and includes data indicating the position and orientation in the game space.
[0168] The mesh data is data indicating the mesh set for the voxel object arranged in the game space. The mesh data includes, for example, data indicating the position of each vertex in the mesh. The mesh data is generated based on the first volume data 313, the second volume data 323, and the like.
[0169] In addition to the data shown in FIG. 29, the game system 1 stores, as data stored in advance before the execution of the game process, the above-mentioned property information and texture information data, data related to various characters appearing in the game, and the like. Further, 3D object data representing 3D objects different from the voxel object (for example, parts of the hands and feet of the player character PC and the enemy object EC) is stored. Also, voxel space data is stored for each voxel object that can move within the game space.
[0170] FIG. 30 is a flowchart showing an example of the flow of the game process executed by the game system 1. The game process shown in FIG. 30 is started, for example, in response to an instruction to start the game being given by the player.
[0171] In the present embodiment, the processor 81 of the main body device 2 executes the processing of each step shown in FIG. 30 by executing the game program stored in the game system 1. However, in other embodiments, some of the processing of each step may be executed by a processor (for example, a dedicated circuit or the like) different from the processor 81. Further, when the game system 1 can communicate with another information processing device (for example, a server), part of the processing of each step shown in FIG. 30 may be executed in the other information processing device. Further, the processing of each step shown in FIG. 30 is merely an example, and if the same result can be obtained, the processing order of each step may be changed, or another processing may be executed in addition to (or instead of) the processing of each step.
[0172] Further, the processor 81 executes the processing of each step shown in FIG. 30 using a memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads out the information from the memory and uses it.
[0173] As shown in FIG. 30, in step S1, the processor 81 sets a game space in an initial state. Specifically, the processor 81 acquires first volume data 313 representing the terrain of the game space in the initial state from the storage medium mounted in the slot 23, and stores part or all of the acquired first volume data 313 in the DRAM 85. Further, the processor 81 reads out second volume data 323, shape data, etc. from the storage medium and stores them in the DRAM 85. Further, the processor 81 reads out 3D object data from the storage medium, sets the initial position and orientation of the 3D object, and stores them in the DRAM 85. Further, the processor 81 sets the initial position and orientation of the virtual camera and stores them in the DRAM 85.
[0174] Note that the voxel data written to the DRAM 85 may be a part of the voxel data in the entire range of the game space, which is used for generating the game image. For example, the processor 81 may generate an object image using the voxel data of voxels included in a partial range of the game space (for example, a range within a predetermined distance from the position of the virtual camera). Further, when voxel data for a partial range of the game space is written, the same processing as in step S1 is executed at an appropriate timing during the execution of the series of processes in steps S2 to S11 (for example, the timing when the position of the virtual camera has moved more than a predetermined distance).
[0175] In step S2, the processor 81 generates a mesh for the voxel object. The mesh is generated according to the method described in the above "[2-2. Mesh]". Specifically, the processor 81 generates a mesh representing each voxel object based on each volume data stored in the DRAM 85 in step S1. As a result, the terrain object is constructed in the game space, and the enemy object EC is placed in the game space. For example, the processor 81 generates a polygon mesh between a voxel with a value indicating the presence of an object and a voxel with a value indicating the absence of an object based on a plurality of voxel data included in the first volume data 313. An example of a specific method for determining the vertex positions is as described with reference to FIG. 14. Further, the processor 81 generates a polygon mesh between a voxel with a value indicating the presence of an object and a voxel with a value indicating the absence of an object based on a plurality of voxel data included in the second volume data 323. As a result, a polygon mesh representing the enemy object EC is generated. After step S2, the game starts, and during the game, the processes in steps S3 to S11 are repeatedly executed at a predetermined frame time interval (for example, at intervals of 1 / 60 second).
[0176] In step S3, the processor 81 controls the operations of various objects (e.g., player character PC and enemy object EC) that appear in the game space. For example, the processor 81 moves the player character PC based on the operation data received from the controllers 3 and 4, or causes the player character PC to perform a predetermined action (destruction action, jump, etc.). The destruction action of the player character PC may be a punch, a kick, throwing a bullet, or the like. Also, the processor 81 moves the enemy object EC or causes the enemy object EC to perform a destruction action (swinging or throwing a weapon object, etc.) based on an algorithm defined in the game program. The process of step S4 is executed after step S3.
[0177] In step S4, the processor 81 determines whether a destruction action by the player character PC has been performed based on the operation data from the controller. Specifically, based on the operation data from the controller, it is determined whether a predetermined button of the left controller 3 or the right controller 4 has been pressed. If the determination result in step S4 is affirmative, the process of step S5 is executed. On the other hand, if the determination result in step S4 is negative, the process of step S10 is executed.
[0178] In step S5, the processor 81 determines whether the destruction action has hit the voxel object. Here, for example, it is determined whether the destruction action by the player character PC has hit the terrain object or the enemy object EC. The terrain object includes the terrain object 210 representing the ground, the terrain object 220 representing the rocky mountain, and the like. The determination of whether the destruction action has hit the voxel object is made by a physical determination between the object on the destruction side and the voxel object on the side to be destroyed. The object on the destruction side is, for example, the fist of the player character PC when the player character PC punches. The voxel object on the side to be destroyed is the terrain object or the enemy object EC, and a mesh for determination is generated. The mesh for determination may be the same as the mesh for display, or a coarser mesh for determination than the one for display may be prepared. A collision determination is made between the mesh for determination and the object on the destruction side, and it is determined whether there is a hit. If the determination result in step S5 is affirmative, the process of step S6 is executed. On the other hand, if the determination result in step S5 is negative, the process of step S10 is executed.
[0179] In step S6, the processor 81 performs a destruction range setting process for setting a destruction range according to the voxel object that the destruction action has hit. Details of the destruction range setting process will be described later. The process of step S7 is executed after step S6.
[0180] In step S7, the processor 81 executes voxel data update processing. For example, the processor 81 reduces the density of voxels included in the destruction range set in step S6. Specifically, based on the "hardness of the side to be destroyed" corresponding to the destruction action and the "hardness of the side to be destroyed" corresponding to the material of the voxel object hit by the destruction action, it is determined whether to update the damage amount of the voxels included in the destruction range or to update the density without updating the damage amount. If it is determined to update the damage amount, the damage amount of the voxels included in the destruction range set in step S6 is updated. If the updated damage amount exceeds the durability value corresponding to the material, the density of the voxels included in the set destruction range is reduced. Also, if it is determined to update the density without updating the damage amount, the density of the voxels included in the set destruction range is reduced. Specifically, the density of the voxels included in the set destruction range is set to a value (for example, "0") indicating that there is no object. After the processing of step S7, the processor 81 executes the processing of step S8.
[0181] In step S8, the processor 81 determines whether to update the mesh. Here, when the voxel data is updated in step S7, the processor 81 determines to update the mesh. If the determination result in step S8 is affirmative, the processing of step S9 is executed. On the other hand, if the determination result in step S8 is negative, the processing of step S10 is executed. Note that even when the voxel data is updated in step S7, if there are no updated voxels within the imaging range of the virtual camera, the processor 81 may determine not to update the mesh in step S8. That is, even when a destruction action hits a terrain object or an enemy object EC and part or all of the terrain object or enemy object EC is destroyed, if the voxel objects within the game space visible from the virtual camera are not destroyed, the mesh may not be updated. Also, in cases such as when the processing load is high, the mesh update may not be performed in the current frame and carried over to subsequent frames.
[0182] In step S9, the processor 81 updates the mesh for the voxel object whose voxel data was changed in step S7. Specifically, based on the updated voxel data, the vertex positions of the mesh are recalculated. The updated mesh is stored in the DRAM 85 as mesh data. That is, the processor 81 generates a mesh for the destroyed voxel object based on the voxel data after the update in step S7. As a result, the mesh of the voxel object (terrain object or enemy object EC) for which the destruction action was performed can be dynamically changed during the game. In step S9, the vertices of the mesh are recalculated only for the portion where the voxel data has been updated. For the mesh of the portion where the voxel data has not been updated, the vertex positions of the mesh generated in step S2 are used. In this way, since the mesh is recalculated only for the updated voxel data, the processing load can be reduced. Note that in other embodiments, in step S9, based on all the voxel data in the game space (or all the voxel data within the imaging range of the virtual camera), including both the updated voxel data and the voxel data that has not been updated, the recalculation of the vertex positions of the mesh may be performed. The process of step S10 is executed after step S9.
[0183] In step S10, the processor 81 generates a game image representing the game space based on the virtual camera, and causes the generated game image to be displayed on the display device. Specifically, the processor 81 generates a game image when viewing the mesh generated in step S2 or S9 from the position of the virtual camera. Thereby, a game image representing the game space including the voxel object and other 3D objects (for example, player character PC) is generated. Then, the processor 81 causes the generated game image to be displayed on the display device. The process of step S11 is executed after step S10.
[0184] In step S11, the processor 81 determines whether to end the game. For example, the processor 81 determines whether an instruction to end the game has been given by the user. If the determination result in step S11 is negative, the process of step S3 is executed again. Thereafter, a series of processes from steps S3 to S11 are repeatedly executed until it is determined in step S11 to end the game. On the other hand, if the determination result in step S11 is positive, the processor 81 ends the game process shown in FIG. 30.
[0185] (Destruction range setting process) Hereinafter, the destruction range setting process in step S6 will be described. FIG. 31 is a flowchart showing an example of the destruction range setting process in step S6.
[0186] In step S21, the processor 81 determines whether a downward destruction action has been performed. If the determination result in step S21 is positive, the process of step S22 is then executed. On the other hand, if the determination result in step S21 is negative, the process of step S23 is then executed.
[0187] In step S22, the processor 81 sets a destruction range of the third shape. Specifically, the destruction range of the third shape is set in the voxel space corresponding to the object hit by the destruction action. For example, when the destruction action hits the terrain object 210, the destruction range of the third shape is set in the field voxel space based on the position where the destruction action hits (for example, the position of the fist of the player character PC). The third shape is a shape whose bottom surface is a plane, for example, a cylindrical shape. Here, the size of the destruction range varies according to the object hit by the destruction action. For example, when the destruction action hits a terrain object (210 or 220), a destruction range of the first size is set, and destruction range data 314 indicating the destruction range is stored. Also, for example, when the destruction action hits the enemy object EC, a destruction range of the second size smaller than the first size is set, and destruction range data 324 indicating the destruction range is stored. Note that the third shape may be a substantially cylindrical shape, and the connection portion between the bottom surface and the side surface may be a curved surface shape. When the process of step S22 is performed, the processor 81 ends the process shown in FIG. 31.
[0188] On the one hand, in step S23, the processor 81 provisionally sets a destruction range of the first shape or the second shape according to the direction of the destruction action. Specifically, in the voxel space corresponding to the object hit by the destruction action, a destruction range of the first shape or the second shape is provisionally set. The destruction range of the first shape or the second shape is provisionally set at a position corresponding to the direction of the destruction action. For example, when the forward destruction action of the player character PC hits the terrain object 220, a destruction range of the first shape is provisionally set at a position in the field voxel space. Here, the predetermined first shape is set as the provisional destruction range. The first shape is a shape that is entirely a curved surface, for example, an ellipsoid with asymmetry on the left and right. Also, when the diagonal upward destruction action of the player character PC hits the terrain object 220, a destruction range of the second shape is provisionally set at a position in the field voxel space. Note that the size of the destruction range varies according to the object hit by the destruction action. For example, when the destruction action hits the terrain object (210 or 220), a destruction range of the first size is provisionally set, and when the destruction action hits the enemy object EC, a destruction range of the second size smaller than the first size is provisionally set. The process of step S24 is executed next after step S23.
[0189] In step S24, the processor 81 determines whether the player character PC is in contact with the ground. If the player character PC is grounded, the process of step S25 is executed next. On the other hand, if the player character PC is not grounded, the process of step S26 is executed next.
[0190] In step S25, the processor 81 calculates the height and normal of the game space of the surface (ground surface) on which the player character PC is grounded. For example, the processor 81 calculates the normal of the ground surface based on the normal vectors at a plurality of reference points within a predetermined range including the position (ground contact point) where the player character PC is grounded. For example, the processor 81 calculates the average of the plurality of normal vectors as the normal vector of the ground surface. Further, the processor 81 calculates the height of the ground surface based on the height (Y-axis coordinate value) of the ground contact point. For example, the processor 81 calculates the Y-axis coordinate value of the ground contact point as the height of the ground surface. Note that the processor 81 may calculate the Y-axis coordinate value of the highest (or lowest) point within a predetermined range including the ground contact point as the height of the ground surface. Further, the processor 81 may calculate the height of the ground surface based on the average of the heights of the plurality of reference points. The process of step S27 is executed after step S25.
[0191] In step S26, the processor 81 calculates the height and normal of the ground directly below the player character PC. For example, the processor 81 calculates the intersection point of a straight line passing through the position of the player character PC and parallel to the Y-axis and the ground. Then, the processor 81 regards the intersection point as the ground contact point and calculates the height and normal of the ground directly below the player character PC in the same manner as in step S25. The process of step S27 is executed after step S26.
[0192] In step S27, the processor 81 sets a predetermined plane. For example, when a forward destruction action is performed, the processor 81 sets a predetermined plane in the voxel space corresponding to the object hit by the destruction action based on the height and normal vector calculated in step S25 or step S26. Specifically, when the forward destruction action of the player character PC hits the terrain object 220, a predetermined plane having the normal vector calculated in step S25 or step S26 is set in the field voxel space. As a result, for example, when the ground that the player character PC is in contact with or the ground directly below the player character PC is a plane parallel to the horizontal plane, a plane parallel to the horizontal plane is set as the predetermined plane. Also, the height of the predetermined plane is set to the same height as the ground. Further, when the ground that the player character PC is in contact with or the ground directly below the player character PC is inclined by a predetermined angle with respect to the horizontal plane, a plane having a predetermined angle with respect to the horizontal plane is set as the predetermined plane. In this case, the predetermined plane is set so as to pass through the position where the player character PC is in contact with the ground or the position directly below the player character PC. Alternatively, the predetermined plane may be set so as to pass through the highest (or lowest) point within a predetermined range including the position where the player character PC is in contact with the ground or the position directly below the player character PC. Thus, when the ground itself is inclined, the predetermined plane is inclined according to the inclination of the ground.
[0193] Further, when a breaking action in an obliquely upward direction is performed, the processor 81 sets a predetermined plane inclined with respect to the horizontal plane in the field voxel space in step S27. For example, when a breaking action in an obliquely upward direction is performed, a predetermined plane inclined by a predetermined angle with respect to the horizontal plane may be set. Further, the predetermined plane is set so as to pass through the position where the player character PC is grounded or the position directly below the player character PC. Alternatively, the predetermined plane may be set so as to pass through the highest (or lowest) point within a predetermined range including the position where the player character PC is grounded or the position directly below the player character PC. Note that the inclination of the predetermined plane may change according to the player's operation. For example, when the angle of the breaking action can be adjusted according to the player's operation, the inclination of the predetermined plane may change according to the angle of the breaking action. In this way, the predetermined plane inclines according to the direction of the breaking action.
[0194] In addition, when the ground itself is inclined with respect to the horizontal plane and a destructive action in an obliquely upward direction is performed, the processor 81 sets the inclination of a predetermined plane according to the inclination of the ground and / or the direction of the destructive action. For example, when the ground itself is inclined and a destructive action in an obliquely upward direction is performed, the predetermined plane may be inclined according to only one of the inclination of the ground and the direction of the destructive action. For example, the inclination of the predetermined plane may be set with priority given to the direction of the destructive action over the inclination of the ground itself. For example, when the ground itself is inclined and a forward destructive action is performed, the predetermined plane may be set parallel to the horizontal plane. Also, the inclination of the predetermined plane may be set with priority given to the inclination of the ground itself over the direction of the destructive action. For example, when the ground itself is inclined and a forward destructive action is performed, the predetermined plane may be inclined at the same angle (or a different angle from the ground) as the ground. Also, when the inclination of the ground itself is equal to or greater than a predetermined value, the inclination of the predetermined plane is inclined according to the inclination of the ground itself with priority given to the inclination of the ground itself over the direction of the destructive action, and when the inclination of the ground itself is less than the predetermined value, the inclination of the predetermined plane is inclined according to the direction of the destructive action (destructive action in an obliquely upward direction) with priority given to the direction of the destructive action over the inclination of the ground itself. In addition, when the ground itself is inclined and a destructive action in an obliquely upward direction is performed, the predetermined plane is inclined according to the inclination of the ground as described above, and the predetermined plane may be further inclined according to the direction of the destructive action.
[0195] Next, the process of step S28 is executed after step S27.
[0196] In step S28, the processor 81 determines whether the predetermined surface set in step S27 is included within the first shape or the second shape set in step S23. Here, it is determined whether the set first shape or second shape intersects with the predetermined surface. In other words, it is determined whether a part of the first shape or second shape is located below the predetermined surface. If the determination result in step S28 is affirmative, the process of step S29 is then executed. On the other hand, if the determination result in step S28 is negative, the process of step S30 is then executed.
[0197] In step S29, the processor 81 sets, as the destruction range, the shape obtained by removing the portion below the predetermined surface from the first shape or the second shape, and stores it in the memory as destruction range data. Thereby, a shape with a flat bottom surface is determined as the destruction range.
[0198] In step S30, since the first shape or the second shape is located above the predetermined surface, the processor 81 sets the first shape or the second shape as the destruction range and stores it in the memory as destruction range data. Thereby, the first shape or the second shape that is entirely a curved surface is determined as the destruction range.
[0199] After performing the process of step S29 or step S30, the processor 81 ends the process shown in FIG. 31.
[0200] Note that the processes shown in the above flowchart are merely examples, and the order and content of the processes may be changed as appropriate.
[0201] As described above, in the present embodiment, the player character PC can move on the terrain object formed based on the voxel data, and the terrain object can be destroyed by a destruction action. When the destruction action hits the terrain object, a destruction range is set within a range set according to the position of the player character PC, excluding the range below a predetermined plane set based on the position of the player character PC from a predetermined shape. Then, the voxel data of the voxels included in the destruction range is set to a value indicating that there is no object. Thereby, the terrain object within the destruction range is destroyed. By setting the destruction range in this way, the terrain after destruction has a shape along the predetermined plane, and the player character PC can move easily on the terrain after destruction.
[0202] Also, in the present embodiment, when the player character PC performs a destruction action in the diagonally upward direction, a predetermined shape is set at the diagonally upward position of the player character PC, and a predetermined plane inclined diagonally is set. Thereby, the terrain after destruction can be made diagonal, and the terrain after destruction can be formed along the direction of the destruction action.
[0203] Also, in the present embodiment, when a part of the predetermined shape is below the predetermined plane, a shape obtained by removing the part below the predetermined plane from the predetermined shape is set as the destruction range, and when the entire predetermined shape is above the predetermined plane, the predetermined shape is set as the destruction range. Thereby, the destruction range can be set dynamically according to the game situation.
[0204] Also, in the present embodiment, when the player character PC is in the air when the destruction action hits the terrain object, a predetermined plane is set based on the ground directly below the player character PC. Thereby, even when the player character PC is in the air, the player character PC can move easily on the terrain after destruction.
[0205] In addition, in the present embodiment, when the destruction action of the player character PC hits a terrain object, a destruction range of the first size is set, and when the destruction action of the player character PC hits an enemy object EC, a destruction range of the second size smaller than the first size is set. Thereby, while the terrain object can be destroyed on a large scale, the enemy object can be destroyed in a small range.
[0206] In addition, in the present embodiment, the size in the game space of one voxel in the voxel space VLa representing the enemy object is smaller than the size in the game space of one voxel in the field voxel space representing the terrain object. That is, the resolution of the voxels in the voxel space VLa representing the enemy object is higher than the resolution of the voxels in the field voxel space representing the terrain object. For this reason, the enemy object can be represented in finer detail than the terrain object.
[0207] (Modification example) Although the present embodiment has been described above, the above embodiment is merely an example, and for example, the following modifications may be added.
[0208] For example, in the above embodiment, when the destruction action of the player character PC hits a voxel object, a predetermined shape is set in the voxel space, a predetermined plane is calculated, and the shape excluding the portion below the predetermined plane from the predetermined shape is set as the destruction range. That is, in the above embodiment, the predetermined plane is dynamically calculated according to the position of the player character PC when the destruction action of the player character PC hits an object. In other embodiments, a solid having a shape excluding the portion below the predetermined plane from the predetermined shape may be prepared in advance. For example, a plurality of solids having a shape obtained by cutting the lower side of a sphere or an ellipsoid with a plane may be prepared in advance. For example, a solid cut by a plane located upward by a first distance from the lower end of a sphere or an ellipsoid and a solid cut by a plane located upward by a second distance from the lower end of a sphere or an ellipsoid may be prepared in advance. Then, based on the position of the player character PC when the destruction action hits, any one of the plurality of prepared solids is selected, and the range surrounded by the selected solid may be set as the destruction range.
[0209] That is, the "shape excluding the range below the predetermined plane from the predetermined shape" may be a shape calculated according to the position of the player character PC and the ground conditions when the destruction action hits, or may be a prepared shape selected according to the position of the player character PC and the ground conditions.
[0210] Also, in the above embodiment, the destruction action by the player character PC is performed on the terrain object 220 representing a rocky mountain, but in other embodiments, the destruction action may be performed on any other object. Even in this case, for example, when the forward destruction action hits an object, a predetermined shape is set according to the hit position, a predetermined plane is set according to the position of the player character PC, and the shape excluding the range below the predetermined plane from the predetermined shape is set as the destruction range. Also, the size of the predetermined shape may be different according to the object that the destruction action hits.
[0211] Also, in the above embodiment, the predetermined shape is the same regardless of the object hit by the destruction action, and the sizes are different. In other embodiments, the predetermined shape may be different depending on the object hit by the destruction action.
[0212] Also, in the above embodiment, the direction of the destruction action of the player character PC is assumed to be any of the forward direction, the diagonally upward direction, and the downward direction. In other embodiments, the destruction action of the player character PC may be performed in any direction.
[0213] Also, in the above embodiment, when the destruction action hits, a predetermined plane is set based on the ground that the player character PC touches or the ground directly below the player character PC. In other embodiments, the predetermined plane may not be a perfect plane. For example, the predetermined plane may be a generally flat surface with small irregularities. Also, the predetermined plane may change according to the shape of the ground in the game space. For example, when the ground is a generally flat surface with small irregularities, the predetermined plane may be the same as the ground.
[0214] Also, in the above embodiment, when the player character PC is in the air when the destruction action hits, a predetermined plane is set based on the ground directly below the player character PC. In other embodiments, when the player character PC is in the air, the predetermined plane may be set based not only on the ground directly below the player character PC but also on the ground below the player character PC and in a predetermined direction from the position of the player character PC. For example, when the player character PC is in the air when the destruction action hits, based on the moving direction of the player character PC, the falling position of the player character PC may be predicted, and a predetermined plane may be set based on the ground at the falling position.
[0215] Also, in the above-described embodiment, for the voxels within the destruction range, by setting the density of the voxels to "0", a value indicating that there is no object in the voxels was set. As a result, the portion within the destruction range in the voxel object was erased, and the voxel object was destroyed. The destruction (erasure) of the voxel object is not limited to setting the density in the voxel data to "0", and it may be performed by setting the density to other values. For example, regarding the density, the "value indicating that there is no object" is not limited to "0", and may be any value less than a reference value (for example, 128). Also, regarding the density, the "value indicating that there is an object" may be a value in the range of 1 to 255, or may be a value equal to or greater than the reference value. Also, not limited to changing the density in the voxel data, the voxel object may be destroyed by other methods. For example, a flag indicating the presence or absence of an object is stored in the voxel data, and when the flag is set to ON, it indicates that there is an object in the voxel, and when the flag is set to OFF, it may indicate that there is no object (i.e., a cavity) in the voxel. Also, when material data is stored in the voxel data, it may indicate that an object made of the material indicated by the material data exists in the voxel. Conversely, when no material data is stored in the voxel data, it may indicate that there is no object in the voxel.
[0216] Also, the above-described processing is not limited to the game system 1, and may be executed in any other information processing device or information processing system. The information processing system may be composed of a plurality of devices, and the plurality of devices may be connected via a network (for example, a LAN or the Internet, etc.).
[0217] Also, the configurations according to the above-described embodiment and its modifications can be arbitrarily combined as long as they do not contradict each other. Also, the above is merely an example of the present invention, and various improvements and modifications other than the above may be added.
Explanation of Reference Numerals
[0218] 1 Game system 81 Processor 85 DRAM 201, 202, 203, 204 Voxels 210, 220 Terrain objects
Claims
1. A game program executed by a processor of an information processing apparatus, wherein the processor is caused to: store in a storage medium first volume data which is data for representing a first object in a virtual space and which holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space; move a player character on the first object based on an operation input of a player; cause the player character to perform a destruction action based on an operation input of the player; when the destruction action hits the first object, update the voxel data of the voxels included in a first erasure range which is a range set according to the position of the player character and which has a shape excluding a range below a predetermined plane set based on the position of the player character from a predetermined shape to a value indicating that no object exists; generate an image of the virtual space by at least rendering a polygon mesh representing the surface of the first object based on the first volume data.
2. The destruction action is a forward destruction action of the player character, the first erasure range is set in front of the player character when the destruction action hits the first object, and the predetermined plane is a horizontal plane having the height of the ground on which the player character is grounded when the destruction action hits the first object. The game program according to claim 1.
3. The processor is caused to: set the height of the predetermined plane based on the position of the player character when the destruction action hits the first object, and when the entire predetermined shape is located above the predetermined plane, the first erasure range is the predetermined shape. The game program according to claim 1.
4. The destruction action is a forward destruction action of the player character, and the first erasure range is set in front of the player character when the destruction action hits the first object. The game program according to any one of claims 1 to 3, wherein when the player character is in the air when the destruction action hits the first object, the predetermined plane is a horizontal plane having the height of the ground located below the player character.
5. The destruction action is a destruction action in an obliquely upward direction of the player character, The first deletion range is set in the obliquely upward direction of the player character when the destruction action hits the first object, The game program according to claim 1, wherein the predetermined plane is an inclined plane passing through the position where the player character touches the ground when the destruction action hits the first object and becoming higher toward the front of the player character.
6. The game program according to any one of claims 1 to 5, wherein the predetermined shape is any one of a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming the ellipsoid.
7. On the computer, The game program according to any one of claims 1 to 6, wherein when the ground on which the player character touches the ground when the destruction action hits the first object is inclined with respect to the horizontal plane, the computer is caused to set the predetermined plane inclined with respect to the horizontal plane.
8. Further to the processor, Causing a storage medium to store second volume data which is data for representing a second object in the virtual space and which holds the voxel data for each voxel included in a second voxel space arranged in the virtual space, When the destruction action hits the second object, updating the voxel data of the voxels included in a second deletion range having a size different from that of the first deletion range and having a shape excluding a range below a predetermined plane set based on the position of the player character from a predetermined shape so as to be a value indicating that no object exists, The game program according to any one of claims 1 to 7, further generating an image of the virtual space by further rendering a polygon mesh representing the surface of the second object based on the second volume data.
9. The voxel of 1 included in the first volume data and the voxel of 1 included in the second volume data have different sizes defined in the virtual space. The game program according to claim 8.
10. The processor further Based on the operation input of the player, cause the player character to perform a downward destruction action, When the downward destruction action hits the first object, update the voxel data of the voxels included in the third erasure range set below the player character so as to be a value indicating that the first object does not exist. The game program according to any one of claims 1 to 9.
11. The first object is the terrain in the virtual space. The game program according to any one of claims 1 to 10.
12. The processor Generate the polygon mesh by determining the vertex positions of the polygons based on the voxel data between the voxels where the first object does not exist and the voxels where the first object exists, When the voxel data of the voxels included in the first erasure range is updated, recalculate the vertices of the polygon mesh in at least the range including the voxels whose voxel data has been updated. The game program according to any one of claims 1 to 11.
13. An information processing system including a storage medium and at least one processor, In the storage medium, Data for representing a first object in a virtual space, and first volume data that holds voxel data indicating the existence of an object for each voxel included in a first voxel space arranged in the virtual space is stored, The processor Based on the operation input of the player, move the player character on the first object, Based on the operation input of the player, cause the player character to perform a destruction action, When the destruction action hits the first object, update the voxel data of the voxels included in the first erasure range having a shape that excludes the range below a predetermined surface set based on the position of the player character from a predetermined shape and is set based on the position of the player character so as to be a value indicating that the object does not exist. An information processing system that generates an image of the virtual space by at least rendering a polygon mesh representing the surface of the first object based on the first volume data.
14. The destruction action is a forward destruction action of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object, The information processing system according to claim 13, wherein the predetermined plane is a horizontal plane having the height of the ground on which the player character is grounded when the destruction action hits the first object.
15. The processor, When the destruction action hits the first object, sets the height of the predetermined plane based on the position of the player character, The information processing system according to claim 13, wherein when the entire predetermined shape is located above the predetermined plane, the predetermined shape is set as the first erasure range.
16. The destruction action is a forward destruction action of the player character, The first erasure range is set in front of the player character when the destruction action hits the first object, The information processing system according to any one of claims 13 to 15, wherein the predetermined plane is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.
17. The destruction action is a diagonal upward destruction action of the player character, The first erasure range is set diagonally upward of the player character when the destruction action hits the first object, The information processing system according to claim 13, wherein the predetermined plane is an inclined plane that passes through the position where the player character is grounded when the destruction action hits the first object and becomes higher toward the front of the player character.
18. The information processing system according to any one of claims 13 to 17, wherein the predetermined shape is any one of a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming the ellipsoid.
19. The computer, The information processing system according to any one of claims 13 to 18, wherein when the ground on which the player character grounds when the destruction action hits the first object is inclined with respect to a horizontal plane, a predetermined plane inclined with respect to the horizontal plane is set.
20. Data for representing a second object in the virtual space, wherein second volume data for holding the voxel data for each voxel included in a second voxel space arranged in the virtual space is stored in the storage medium, The processor further, when the destruction action hits the second object, the voxel data of voxels included in a second deletion range having a size different from that of the first deletion range, which is a range set according to the position of the player character and excludes a range below a predetermined plane set based on the position of the player character from a predetermined shape, is updated to a value indicating that no object exists, The information processing system according to any one of claims 13 to 19, wherein based on the second volume data, a polygon mesh representing the surface of the second object is further drawn to generate an image of the virtual space.
21. The information processing system according to claim 20, wherein one voxel included in the first volume data and one voxel included in the second volume data have different sizes defined in the virtual space.
22. The processor further, causes the player character to perform a downward destruction action based on an operation input of the player, when the downward destruction action hits the first object, the voxel data of voxels included in a third deletion range set below the player character is updated to a value indicating that the first object does not exist. The information processing system according to any one of claims 13 to 21.
23. The information processing system according to any one of claims 13 to 22, wherein the first object is a terrain in the virtual space.
24. The processor, generates the polygon mesh by determining vertex positions of a polygon based on the voxel data between voxels where the first object does not exist and voxels where the first object exists, The information processing system according to any one of claims 13 to 23, wherein when the voxel data of the voxels included in the first deletion range is updated, the vertices of the polygon mesh in the range including at least the voxels whose voxel data has been updated are recalculated.
25. Data for representing a first object in a virtual space, storing first volume data that holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space, Moving a player character on the first object based on an operation input of the player, Causing the player character to perform a destruction action based on an operation input of the player, When the destruction action hits the first object, updating the voxel data of the voxels included in a first deletion range having a shape that is a range set according to the position of the player character and excluding a range below a predetermined plane set based on the position of the player character from a predetermined shape to a value indicating that no object exists, An information processing apparatus that generates an image of the virtual space by at least rendering a polygon mesh representing the surface of the first object based on the first volume data.
26. The destruction action is a forward destruction action of the player character, The first deletion range is set in front of the player character when the destruction action hits the first object, The information processing apparatus according to claim 25, wherein the predetermined plane is a horizontal plane having the height of the ground on which the player character is grounded when the destruction action hits the first object.
27. When the destruction action hits the first object, setting the height of the predetermined plane based on the position of the player character, The information processing apparatus according to claim 25, wherein when the entire predetermined shape is located above the predetermined plane, setting the predetermined shape as the first deletion range.
28. The destruction action is a forward destruction action of the player character, The first deletion range is set in front of the player character when the destruction action hits the first object, The information processing apparatus according to any one of claims 25 to 27, wherein when the player character is in the air when the destruction action hits the first object, the predetermined plane is a horizontal plane having the height of the ground located below the player character.
29. The destruction action is a destruction action in a diagonally upward direction of the player character, the first erasure range is set in a diagonally upward direction of the player character when the destruction action hits the first object, The information processing apparatus according to claim 25, wherein the predetermined plane is an inclined plane passing through the position where the player character touches the ground when the destruction action hits the first object and becoming higher toward the front of the player character.
30. The information processing apparatus according to any one of claims 25 to 29, wherein the predetermined shape is any one of a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming the ellipsoid.
31. An information processing method performed in an information processing system, the information processing system stores first volume data which is data for representing a first object in a virtual space and holds voxel data indicating the presence of an object for each voxel included in a first voxel space arranged in the virtual space, the information processing method includes moving a player character on the first object based on an operation input of a player; causing the player character to perform a destruction action based on an operation input of the player; when the destruction action hits the first object, updating the voxel data of the voxels included in a first erasure range having a shape excluding a range below a predetermined plane set based on the position of the player character from a predetermined shape according to the position of the player character to a value indicating that no object exists; generating an image of the virtual space by at least rendering a polygon mesh representing the surface of the first object based on the first volume data.
32. The destruction action is a destruction action in the forward direction of the player character, The first deletion range is set in front of the player character when the destruction action hits the first object. The information processing method according to claim 31, wherein the predetermined plane is a horizontal plane having the height of the ground on which the player character is grounded when the destruction action hits the first object.
33. When the destruction action hits the first object, a step of setting the height of the predetermined plane based on the position of the player character; The information processing method according to claim 31, further comprising a step of setting the predetermined shape as the first deletion range when the whole of the predetermined shape is located above the predetermined plane.
34. The destruction action is a forward destruction action of the player character. The first deletion range is set in front of the player character when the destruction action hits the first object. The information processing method according to any one of claims 31 to 33, wherein the predetermined plane is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.
35. The destruction action is a diagonal upward destruction action of the player character. The first deletion range is set in the diagonal upward direction of the player character when the destruction action hits the first object. The information processing method according to claim 31, wherein the predetermined plane is an inclined plane that passes through the position where the player character is grounded when the destruction action hits the first object and becomes higher toward the front of the player character.
36. The information processing method according to any one of claims 31 to 35, wherein the predetermined shape is any one of a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming an ellipsoid.
Citation Information
Patent Citations
Image processing for game
JP2006065877A
Program and computer system
JP2017182241A
Three dimensional model generation apparatus and method
JP2021071749A
Game program, game system, and game processing method
JP2023166356A
Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions
JP2023178274A