Game program, game system, game device, and game processing method

The game system allows players to freely destroy and flatten terrain using voxel data, enhancing gameplay freedom and reducing processing load through efficient vertex recalculation.

JP7808136B2Active Publication Date: 2026-01-28NINTENDO CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2024011598
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-01-30
Publication Date
2026-01-28
Estimated Expiration
2044-01-30

AI Technical Summary

Technical Problem

Existing image generation systems using voxels in games do not allow objects generated from voxels to be freely transformed, limiting the degree of freedom in object deformation and gameplay.

Method used

A game system that stores voxel data representing terrain shape, allowing players to destroy or flatten terrain based on user input, updating voxel data to reflect these actions and generating images using polygon meshes.

Benefits of technology

Enables terrain deformation with high freedom, preventing loss of topographical features and reducing processing load by limiting vertex recalculation to updated voxel ranges.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007808136000001
    Figure 0007808136000001
  • Figure 0007808136000002
    Figure 0007808136000002
  • Figure 0007808136000003
    Figure 0007808136000003
Patent Text Reader

Abstract

To provide a game program, a game system, a game device and a game processing method capable of deforming an object with a high degree of freedom to play a game, by enabling the object generated from voxels to be destroyed or flattened.SOLUTION: Upon a first instruction based on an operation input, voxels included in a first scope that is set on a position based on a player character's position are made to update voxel data so that it has density indicating that no geography exists. Upon a second instruction based on an operation input, voxels included in a second scope that is set on a position based on the player character's position are made to update the density of voxel data so that the surface shape of geography comes near a flat surface that is set on the basis of the player character's position.SELECTED DRAWING: Figure 21
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to a game program, a game system, a game device, and a game processing method that are capable of processing to generate an image using voxel data. [Background technology]

[0002] BACKGROUND ART Conventionally, there is an image generation system that displays game images by creating character voxels and generating polygon mesh information based on imaging information (see, for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-33521 Summary of the Invention [Problem to be solved by the invention]

[0004] However, the image generation system disclosed in Patent Document 1 uses voxels in a game to utilize imaging information, and does not assume that objects generated from the voxels can be freely transformed.

[0005] Therefore, an object of the present invention is to provide a game program, a game system, a game device, and a game processing method that enable a user to destroy or flatten objects generated from voxels through user operation, thereby allowing the objects to be deformed with a high degree of freedom and to play a game. [Means for solving the problem]

[0006] In order to achieve the above object, the present invention may employ the following configurations, for example.

[0007] One example of the configuration of the game program of the present invention is executed on a computer of an information processing device. The game program causes a computer to store volume data representing the shape of the terrain in the virtual space in a storage medium by retaining voxel data, for each voxel included in a voxel space arranged in the virtual space, including at least a density indicating the degree to which an object occupies the space defined by the voxel; moves a player character on the terrain based on a user's operation input; has the player character perform a destruction action to destroy the terrain in accordance with a first instruction based on the operation input; when the destruction action hits the terrain, updates the voxel data for voxels included in a first range set at a position based on the position of the player character to a density indicating that the terrain does not exist; has the player character perform a flattening action to flatten the terrain in accordance with a second instruction based on the operation input; and updates the density of the voxel data for voxels included in a second range set at a position based on the position of the player character in accordance with the flattening action so that the surface shape of the terrain approaches a plane set based on the position of the player character; and draws at least a polygon mesh representing the surface of the terrain based on the volume data to generate an image of the virtual space.

[0008] According to the above, the terrain generated from voxels can be freely destroyed in accordance with the user's operations, while the terrain can also be flattened and leveled, allowing the terrain to be deformed with a high degree of freedom while playing the game.

[0009] Furthermore, in accordance with the flattening action, the density of voxels on one side of the plane whose density is equal to or greater than a reference value may be increased, and the density of voxels whose density is less than the reference value but whose density obtained by interpolating the density of one adjacent voxel or the densities of multiple adjacent voxels adjacent to the plane on one side may be increased; and the density of voxels on the other side of the plane whose density is less than the reference value may be decreased, and the density of voxels whose density is equal to or greater than the reference value but whose density obtained by interpolating the density of one adjacent voxel or the densities of multiple adjacent voxels adjacent to the plane on the other side may be decreased.

[0010] Based on the above, it is possible to prevent the loss of topographical features when flattening the ground.

[0011] The one direction may be the opposite direction of the normal vector of the plane, and the other direction may be the direction of the normal vector of the plane.

[0012] Based on the above, it is possible to easily perform flattening processing using the normal vector of the plane.

[0013] The one direction may be a downward direction in the virtual space, and the other direction may be an upward direction in the virtual space.

[0014] According to the above, by expanding the area below the plane and contracting the area above the plane, a flattening process can be performed to make the surface closer to a flat surface.

[0015] The plane may also be a horizontal plane in a virtual space.

[0016] Based on the above, it is possible to horizontally flatten the terrain in the virtual space.

[0017] The plane may also be a plane that passes through a position where the player character comes into contact with the terrain.

[0018] Based on the above, it is possible to flatten the image to approach the position of the player character.

[0019] The plane may have an inclination that corresponds to the inclination of the terrain at the position of the player character.

[0020] Based on the above, it is possible to flatten the terrain in accordance with the slope of the terrain at the position where the player character is placed.

[0021] Furthermore, the computer may further change the positions of the vertices of the polygon mesh for a predetermined period in response to the flattening action, thereby displaying a fluctuating surface of the terrain.

[0022] According to the above, by flattening the terrain surface while producing an effect of shaking the terrain surface, it is possible to suppress the appearance of discomfort caused by changes in the terrain.

[0023] The voxel data may include data indicating the hardness or material of an object in the space defined by the voxels. In this case, the computer may further update the density of voxels in the second range whose hardness or material satisfies a predetermined condition based on a flattening action.

[0024] Based on the above, it is possible to flatten an object depending on its hardness or material.

[0025] The computer may further generate a polygon mesh using an algorithm that determines the vertex positions of polygons based on voxel data between voxels defined inside the terrain and voxels defined outside the terrain based on density, and may recalculate the vertices of the polygon mesh in a range that includes at least the voxels whose voxel data has been updated based on the occurrence of a destruction action or flattening action.

[0026] Based on the above, by limiting the recalculation of the vertices of the polygon mesh to a range including voxels whose voxel data has been updated, it is possible to reduce the processing load.

[0027] The present invention may also be embodied in the form of a game system, a game device, or a game processing method. [Effects of the Invention]

[0028] According to the present invention, the terrain generated from voxels can be freely destroyed in accordance with user operations, while the terrain can also be flattened and leveled, allowing the terrain to be deformed with a high degree of freedom while playing the game. [Brief explanation of the drawings]

[0029] [Figure 1] FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are attached to the main unit 2. [Figure 2] FIG. 10 shows an example of a state in which the left controller 3 and the right controller 4 are detached from the main unit 2. [Figure 3] Six-sided views showing an example of the main unit 2 [Figure 4] Six-sided diagram showing an example of the left controller 3 [Figure 5] Six-sided diagram showing an example of the right controller 4 [Figure 6] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 8] FIG. 1 is a diagram showing an example of a terrain object that is a voxel object. [Figure 9] FIG. 9 is a diagram showing an example of a state before a part of the terrain object shown in FIG. 8 is deleted. [Figure 10] FIG. 9 is a diagram showing an example of a state after a part of the terrain object shown in FIG. 8 has been deleted. [Figure 11] A diagram showing an example of the contents of voxel data. [Figure 12] A diagram showing an example of property information indicating the properties of a material [Figure 13] A diagram showing an example of texture information indicating the texture of a material. [Figure 14] A diagram showing an example of a mesh generation method [Figure 15] FIG. 10 is a diagram showing an example of a game image including a terrain object. [Figure 16] FIG. 10 shows an example of a game image displayed on the display 12 in which the player character PC performs an action to destroy a terrain object TO. [Figure 17] FIG. 10 shows an example of a game image in which the player character PC destroys a terrain object TO. [Figure 18] FIG. 10 shows an example of a game image displayed on the display 12 in which the player character PC performs an action to flatten the terrain object TO. [Figure 19] FIG. 10 is a diagram showing an example of a game image in which the player character PC flattens the terrain object TO. [Figure 20] A diagram showing an example of the destruction range of voxels to be destroyed in a terrain object TO according to a destruction action. [Figure 21] FIG. 10 is a diagram showing an example of a flattening range and a target plane. [Figure 22] FIG. 10 is a diagram showing an example of various data used in information processing in the game system 1. [Figure 23] A flowchart showing an example of the flow of game processing executed by the game system 1. [Figure 24] A subroutine showing an example of the flattening process of step S9 in the flowchart shown in FIG. 23 [Figure 25] A subroutine showing an example of the shaking process of step S11 in the flowchart shown in FIG. 23 DETAILED DESCRIPTION OF THE INVENTION

[0030] A game system according to an example of this embodiment will be described below. An example of the game system 1 according to this embodiment includes a main unit (information processing device; in this embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main unit 2. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. The game system 1 can also be used by separating the main unit 2 from the left controller 3 and the right controller 4 (see FIG. 2). Below, the hardware configuration of the game system 1 according to this embodiment will be described, followed by a description of the control of the game system 1 according to this embodiment.

[0031] FIG. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and the right controller 4 are devices that have operation units that allow the user to perform inputs.

[0032] Fig. 2 is a diagram showing an example of the state in which the left controller 3 and the right controller 4 are detached from the main unit 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. Note that, below, the left controller 3 and the right controller 4 may be collectively referred to as "controllers."

[0033] Fig. 3 is a six-sided view showing an example of the main unit 2. As shown in Fig. 3, the main unit 2 includes a substantially plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is generally rectangular.

[0034] The shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Furthermore, the main unit 2 alone or an integrated device in which the left controller 3 and right controller 4 are attached to the main unit 2 may be a portable device. Furthermore, the main unit 2 or the integrated device may be a handheld device. Furthermore, the main unit 2 or the integrated device may be a portable device.

[0035] 3, the main unit 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays images generated by the main unit 2. In this embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.

[0036] The main device 2 also includes a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, and may be of a type that allows single-touch input (for example, a resistive type).

[0037] The main unit 2 is provided with a speaker (i.e., speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed on the main surface of the housing 11. The output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.

[0038] The main unit 2 also has a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via a wired connection, and a right terminal 21, which is a terminal for the main unit 2 to communicate with the right controller 4 via a wired connection.

[0039] As shown in FIG. 3, the main unit 2 includes a slot 23. The slot 23 is provided on the upper side of the housing 11. The slot 23 has a shape that allows a predetermined type of storage medium to be inserted therein. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data used by the main unit 2 (e.g., application save data, etc.) and / or programs executed by the main unit 2 (e.g., application programs, etc.). The main unit 2 also includes a power button 28.

[0040] The main unit 2 has a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has the function of charging the all-in-one device or the main unit 2 alone that is placed on it. The cradle also has the function of a hub device (specifically, a USB hub).

[0041] 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 this embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the up-down direction (i.e., the y-axis direction shown in FIGS. 1 and 4). The left controller 3 can also be held in a vertically long orientation when detached from the main unit 2. The housing 31 has a shape and size that allows it to be held in one hand, particularly the left hand, when held in a vertically long orientation. The left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.

[0042] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit that can input directions. By tilting the analog stick 32, the user can input a direction corresponding to the tilt direction (and input a magnitude corresponding to the tilt angle). Note that instead of an analog stick, the left controller 3 may be equipped with a cross key or a slide stick that can perform slide inputs as a direction input unit. In this embodiment, input can be made by pressing the analog stick 32.

[0043] The left controller 3 is equipped with various operation buttons. The left controller 3 is equipped with four operation buttons 33 to 36 (specifically, a right button 33, a down button 34, an up button 35, and a left button 36) on the main surface of the housing 31. The left controller 3 also is equipped with a record button 37 and a - (minus) button 47. The left controller 3 is equipped with a first L button 38 and a ZL button 39 on the upper left of the side of the housing 31. The left controller 3 is also equipped with a second L button 43 and a second R button 44 on the side of the housing 31 that is attached to the main unit 2. These operation buttons are used to issue instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.

[0044] The left controller 3 also includes a terminal 42 for wired communication between the left controller 3 and the main unit 2.

[0045] 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 this embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the up-down direction. The right controller 4 can also be held in a vertically long orientation when detached from the main unit 2. The housing 51 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a vertically long orientation. The right controller 4 can also be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.

[0046] Like the left controller 3, the right controller 4 is equipped with an analog stick 52 as a directional input unit. In this embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. The right controller 4 may also be equipped with a cross key or a slide stick that allows slide input, instead of an analog stick. Like the left controller 3, the right controller 4 is equipped with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 is also equipped with a + (plus) button 57 and a home button 58. The right controller 4 is also equipped with a first R button 60 and a ZR button 61 on the upper right side of the housing 51. Like the left controller 3, the right controller 4 is also equipped with a second L button 65 and a second R button 66.

[0047] The right controller 4 also includes a terminal 64 for wired communication between the right controller 4 and the main unit 2.

[0048] Fig. 6 is a block diagram showing an example of the internal configuration of main unit 2. In addition to the configuration shown in Fig. 3, main unit 2 includes components 81-91, 97, and 98 shown in Fig. 6. Some of these components 81-91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in housing 11.

[0049] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that executes various types of information processing executed in the main unit 2, and may be composed of, for example, only a CPU (Central Processing Unit), or may be composed of an SoC (System-on-a-chip) that includes multiple functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various types of information processing by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium inserted into slot 23, etc.).

[0050] The main device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as examples of internal storage media built into the main device 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used primarily to store various types of data (which may be programs) saved in the main device 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing.

[0051] The main 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 from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted into the slot 23 in accordance with instructions from the processor 81.

[0052] The processor 81 reads and writes data from and to the flash memory 84, DRAM 85, and the above-mentioned storage media as appropriate, to execute the above-mentioned information processing.

[0053] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with external devices via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with external devices using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (e.g., communication using a proprietary protocol or infrared communication) as a second communication mode. Note that wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication," in which data is transmitted and received by direct communication between multiple main units 2.

[0054] The main unit 2 is equipped with a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and right controller 4 in accordance with the Bluetooth (registered trademark) standard.

[0055] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27. When performing wired communication with the left controller 3, the processor 81 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. When performing wired communication with the right controller 4, the processor 81 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. When performing wired communication with the right controller 4, the processor 81 transmits data to the cradle via the lower terminal 27. As described above, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4. When an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 or the main unit 2 alone is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

[0056] Here, the main unit 2 can communicate simultaneously (in other words, in parallel) with multiple left controllers 3. The main unit 2 can also communicate simultaneously (in other words, in parallel) with multiple right controllers 4. Therefore, multiple users can simultaneously input to the main unit 2 using their own sets of left controllers 3 and right controllers 4. For example, a first user can input to the main unit 2 using a first set of left controllers 3 and right controllers 4, while a second user can simultaneously input to the main unit 2 using a second set of left controllers 3 and right controllers 4.

[0057] The display 12 is also connected to the processor 81. The processor 81 displays on the display 12 an image generated (for example, by executing the above-described information processing) and / or an image acquired from the outside.

[0058] The main unit 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 and output of audio data to and from the speakers 88 and the audio input / output terminal 25.

[0059] The main device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown, the power control unit 97 is also connected to each part of the main device 2 (specifically, each part that receives power 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 instructions from the processor 81.

[0060] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main device 2 via lower terminal 27, battery 98 is charged with the supplied power.

[0061] Figure 7 is a block diagram showing an example of the internal configuration of the main unit 2, left controller 3, and right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Figure 7 because they are shown in Figure 6.

[0062] The left controller 3 is equipped with a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 7 , the communication control unit 101 is connected to each component, including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 both via wired communication via the terminal 42 and via wireless communication without using the terminal 42. The communication control unit 101 controls the method of communication between the left controller 3 and the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. When the left controller 3 is detached from the main unit 2, the communication control unit 101 communicates wirelessly with the main unit 2 (specifically, with the controller communication unit 83). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

[0063] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured, for example, by a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.

[0064] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes an analog stick (referred to as "stick" in FIG. 7) 32. Each button 103 and analog stick 32 repeatedly outputs information related to operations performed on the button 103 and analog stick 32 to the communication control unit 101 at appropriate timing.

[0065] The communication control unit 101 acquires information related to the input (specifically, information related to the operation or the detection results from the sensor) from each input unit (specifically, each button 103 and analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a predetermined process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every predetermined time. The interval at which the information related to the input is transmitted to the main unit 2 may or may not be the same for each input unit.

[0066] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input made to the left controller 3. In other words, the main unit 2 can determine the operation of each button 103 and analog stick 32 based on the operation data.

[0067] The left controller 3 is equipped with a power supply unit 108. In this 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 to each part of the left controller 3 (specifically, each part that receives power from the battery).

[0068] As shown in FIG. 7, the right controller 4 is equipped with a communication control unit 111 that communicates with the main unit 2. The right controller 4 also has a memory 112 that is 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 memory 112 have the same functions as the communication control unit 101 and memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both via wired communication via the terminal 64 and via wireless communication that does not use the terminal 64 (specifically, communication in accordance with the Bluetooth (registered trademark) standard), and controls the method of communication between the right controller 4 and the main unit 2.

[0069] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113 and an analog stick 52. These input units have the same functions as those of the left controller 3 and operate in the same manner.

[0070] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3 and operates in the same manner.

[0071] Next, an overview of the processing executed in the game system 1 will be described with reference to Figs. 8 to 15. In this embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, a player character controlled by a user) are arranged in a game space, which is a three-dimensional virtual space, and displays the game image on a display device. Note that in this embodiment, the display device on which the game image is displayed may be the above-mentioned display 12 or a stationary monitor.

[0072] In this embodiment, the shapes of some objects in the game space are defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, cubic) 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 will be referred to as a "voxel object." In this embodiment, the game system 1 stores voxel data for each of a plurality of voxels set in the game space as data for generating voxel objects in the game space.

[0073] Fig. 8 is a diagram showing an example of a terrain object that is a voxel object. As shown in Fig. 8, in this embodiment, the shape of a terrain object that represents terrain such as the ground is defined by voxel data (i.e., it is a voxel object). Each cube shown in Fig. 8 represents a terrain object. Note that in Fig. 8, the edges of the terrain object are shown with thick lines, but these thick lines are added to make the drawing easier to read, and in reality, the edges of the terrain object do not need to be displayed thick.

[0074] The terrain object shown in FIG. 8 is generated according to a rule that, for example, "if a parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and if the parameter is equal to or less than the predetermined value, nothing is placed at the position of the voxel." The terrain object shown in FIG. 8 is shown for the purpose of clearly illustrating the relationship between voxels and voxel objects. In this embodiment, a voxel object is actually generated (based on voxel data) according to a rule that results in a shape that is complex compared to the length of one side of a voxel, such as the terrain object shown in FIG. 15 (described later). Note that the rule for determining the shape of a 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.

[0075] The shape of a voxel object can be changed by changing the voxel data of each voxel. FIGS. 9 and 10 are diagrams showing an example of the state before and after a portion of the terrain object shown in FIG. 8 is deleted. That is, when the hatched portion of the terrain object shown in FIG. 9 is destroyed, the terrain object changes to a shape as shown in FIG. 10. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data (described later) for the voxels in the hatched portion so that they indicate that the terrain object does not exist. Note that when adding a terrain object, the game system 1 can easily change the shape of the terrain object by changing the voxel data of each voxel, just as when erasing a terrain object.

[0076] In this way, the game system 1 can freely change the shape of a voxel object by rewriting the voxel data. For example, when a terrain object is destroyed in a game for some reason (for example, when a player character hits the terrain object), resulting in a change in the shape of the terrain object, the game system 1 can freely change the shape of the terrain object by changing the voxel data used to generate the terrain object, rather than directly changing the data indicating the outer shape of the terrain object (i.e., a mesh, which will be described later).

[0077] 11 is a diagram showing an example of the contents of voxel data. In this embodiment, the game space can be divided into a plurality of voxels arranged in a grid pattern. The game system 1 associates and stores voxel data for each voxel in the game space. The voxel data indicates, for example, whether a voxel object exists in the voxel corresponding to the voxel data.

[0078] As shown in Fig. 11, the voxel data includes density data. The density data is data of density that indicates the degree to which an object is contained within the area in which each voxel is defined. As will be described in detail later, the position and shape of the surface of the voxel object (i.e., the mesh described later) are determined based on the density. In other words, in this embodiment, the density is also data used to create a mesh that defines the surface of the voxel object.

[0079] In this embodiment, density can take an integer value ranging from a lower limit (e.g., 0) to an upper limit (e.g., 255). In this embodiment, the game system 1 assumes that when the density value set for a voxel is high, the proportion of the volume occupied by the voxel object in that voxel is likely to be large, and when the density value is low, the proportion of the volume occupied by the voxel object in that voxel is small. For example, when the density is 0, no object is present in that voxel; when the density is 255, the entire voxel is occupied by the object; and when the density is between these values, the voxel is occupied by the object at a proportion corresponding to the value. The shape of the voxel mesh, i.e., the shape of the voxel object, is then determined based on the density. However, the shape of the voxel object generated based on the density does not necessarily have a volume that exactly matches the proportion indicated by the density. For example, a method for generating a voxel object such as that shown in FIG. 8 and a method for generating a voxel object such as that shown in FIG. 15 may result in different volumes even if they are based on the same density.

[0080] In other embodiments, the density may indicate either a state in which the entire area of ​​the voxel is occupied by voxel objects, or a state in which the area of ​​the voxel does not contain any voxel objects. For example, the density data may be data that can take only 0 or 1.

[0081] As shown in Fig. 11, the voxel data includes material data. The material data indicates the material (in other words, the substance) of a voxel object generated from the voxel data. In this embodiment, materials such as sand, rock, and soil are set for the voxel object. That is, in this embodiment, multiple types of materials are prepared as materials that can be set for the voxel object, and one of the multiple types of materials is set for the voxel object.

[0082] As shown in FIG. 11, in this embodiment, the material data indicates identification information of the material (referred to as a "material ID"). Furthermore, in this embodiment, the game system 1 stores material information indicating the properties and texture of the material for each material provided in the game. In this embodiment, the material information associates the material ID with the properties of the material and the appearance of the material (specifically, the texture). Specifically, the material information associates the material ID with identification information of the properties of the material (referred to as a "property ID") and identification information of the texture of the material (referred to as a "texture ID") (see FIG. 11).

[0083] Fig. 12 is a diagram showing an example of property information indicating the properties of a material. As shown in Fig. 12, the game system 1 stores property information that associates the above property ID with information indicating the content of the property indicated by the property ID. The property of a material is a property that a voxel object to which the material is set has in the game, and is, for example, information such as 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 property of a material: ·temperature Breakability (for example, the number of times a voxel object can be impacted before it breaks) Whether other objects are glued to the voxel object - The amount of health recovered by the player character when the player character destroys a voxel object The amount of in-game currency the player character will acquire when they destroy a voxel object. 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.

[0084] 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 that associates the above texture ID with the texture indicated by the texture ID.

[0085] In addition to texture information, any information related to color and / or pattern may be set as data defining the appearance of a voxel object. For example, a crack pattern may be set as information related to the appearance of a voxel object. By using such a pattern, the game system 1 can generate an image of a voxel object that appears cracked.

[0086] As described above, in this embodiment, the material data defines the properties of a voxel object and the texture to be used for the voxel object by the material ID. For example, if 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 that material ID in the material information is set as the property of the voxel object corresponding to that voxel data (see the arrow in FIG. 11). Also, in the above case, the texture indicated by the texture ID "002" associated with that material ID in the material information is applied to the voxel object corresponding to that voxel data (see the arrow in FIG. 11).

[0087] 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 multiple types of materials that have the same properties but different appearances (i.e., textures), or multiple types of materials that have different properties but the same appearance.

[0088] Note that the material data may be any data that can identify the properties and / or texture of a material. For example, in other embodiments, the material data may indicate the property ID and texture ID, or may have a data structure that actually includes data indicating the properties and texture of the material.

[0089] Furthermore, the material data may be information about a material that further indicates information other than the properties and textures described above. For example, the material data may include effect data that indicates an effect that is generated when an effect generation condition set for a voxel object (e.g., a part of the voxel object is destroyed, or a character steps on the voxel object) is satisfied. The effect data may be data that indicates an effect image (e.g., an effect image that expresses that a voxel object has been destroyed) or data that indicates an effect sound (footsteps when a character walks on a voxel object).

[0090] As shown in FIG. 11 , the voxel data includes state data that indicates the state of a voxel object. The specific content of the state data is arbitrary. For example, the state data may be data that indicates whether a voxel object is wet or not, or data that indicates the amount of damage that has been inflicted on the voxel object. The content of the state data may be updated during the game.

[0091] In this embodiment, the surface of a voxel object is represented by a mesh. A mesh is a collection of multiple faces (specifically, polygons) arranged in a game space. In this embodiment, the game system 1 generates a mesh of a voxel object based on voxel data of each voxel set in the game space. An example of generating a mesh based on voxel data will be described below.

[0092] Fig. 14 is a diagram showing an example of a method for generating a mesh. Note that in Fig. 14, voxels and meshes are expressed in two dimensions for the purpose of making the drawing easier to see and the explanation easier to understand, but in reality, a three-dimensional mesh is generated based on voxels in a three-dimensional space.

[0093] As described above, in this embodiment, the density set for a voxel is set in the range of 0 to 255. Furthermore, in this embodiment, voxels with a density equal to or greater than a reference value are considered to be inside the object, and voxels with a density less 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 outside the object (i.e., reference value = 1); the reference value may be, for example, 128. In the example shown in FIG. 14, the density of voxel 201 and the other voxels outside is set to 0, the density of voxel 202 is set to 100, which is less than the reference value, and the densities of voxels 203 and 204 are set to 150 and 200, which are equal to or greater than the reference value. In this embodiment, the game system 1 generates vertices between voxels with densities equal to or greater than the reference value and voxels with densities less than the reference value. Specifically, a determination is made as to whether to generate a vertex for each area spanning eight adjacent voxels (four in the drawing) (areas surrounded by dotted lines in the drawing). In other words, vertices are generated in areas that span both voxels with densities above the reference value and voxels with densities below the reference value. Furthermore, if adjacent vertices (the boundaries of the above-mentioned areas that include each vertex) pass between voxels with densities above the reference value and voxels with densities below the reference value, a polygon mesh is generated by connecting those vertices.

[0094] The coordinates of the vertices are determined by comparing the densities of adjacent voxels along each of the X, Y, and Z axes and interpolating based on the density difference. At this time, coordinate calculations can also be performed based on normal information. However, normal information may be stored in advance for at least some of the voxels. If normal information is not stored, normal information may also be calculated based on the densities of adjacent voxels. Note that in FIG. 14, the density of voxel 202 is less than the reference value, so voxel 202 is treated as outside the object when determining whether or not a vertex exists. However, the density value of voxel 202 itself is used to calculate the coordinates of the vertices to be generated. If the reference value were set to a value lower than the density of voxel 202, additional vertices would be added to the upper right and upper left corners of voxel 202 in FIG. 14.

[0095] By generating a polygon mesh as described above, it is possible to generate a shape whose volume reflects the density of each voxel to some extent. However, depending on the relationship with adjacent voxels, it is possible that a voxel with a density of 0 may include a portion of an area within the object, or that a voxel with a density of 255 may include a portion of an area outside the object. Furthermore, in this embodiment, voxels with a density less than the reference value are processed as being outside the object, so that the number of vertices is reduced compared to when voxels are processed as being inside the object, resulting in a smaller volume. In other words, it is not necessary to calculate a polygon mesh so that the volume strictly corresponds to the density value.

[0096] 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, it is possible to make a voxel object have a shape with complex irregularities compared to the length of one side of a voxel, for example.

[0097] Note that any method may be used to generate a mesh based on voxel data. For example, in another embodiment, if the density of voxel data is greater than a predetermined value, a mesh may be generated such that cubes are placed in the voxels (see FIG. 8).

[0098] The game system 1 determines the appearance (i.e., color and / or pattern) of each face of the mesh generated as described above, depending on the material specified by the voxel data. Specifically, the game system 1 determines the texture to be used for drawing 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. The texture to be mapped to each face of the mesh is determined based on voxel data of voxels (referred to as target voxels) used to generate the face, among the voxels in which the voxel object exists. The target voxels may be, for example, one or more voxels arranged around the face, depending on the mesh generation method. In other words, the texture to be mapped to a face of the mesh is determined to be a texture corresponding to the material set for one or more voxels arranged around the face.

[0099] In another embodiment, one voxel data may include multiple types (e.g., two types) of material data. In this case, the voxel data includes ratio data relating to the multiple types of material data. The ratio data is data for determining a texture to be used for a voxel object, and indicates the ratio of influence that each material (specifically, the texture corresponding to the material) indicated by the multiple types of material data has on the appearance (specifically, the color and / or pattern) of the voxel object. When determining a texture to be mapped to each face of a 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 voxel. For example, when multiple types of materials are set for a target voxel corresponding to one face, the texture corresponding to the material (one type) with the greatest influence 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.

[0100] In other embodiments, there may be both voxel objects that use voxel data including one type of material data and voxel objects that use voxel data including two types of material data.

[0101] 16 to 21, an example of gameplay will be described in which a player character moves within a game space in response to user operations on the game system 1. For example, in this embodiment, the player character PC appearing in the game space displayed on the display 12 moves in response to operations of the operation buttons and sticks on the left controller 3 and / or right controller 4 in the all-in-one game system 1, touch operations on the touch panel 13 of the main unit 2, operations to move the entire game system 1, operations to change the posture, etc.

[0102] FIG. 16 is a diagram showing an example of a game image displayed on the display 12 in which the player character PC performs an action to destroy a terrain object TO, showing the terrain object TO in a cross-sectional view. In FIG. 16, the player character PC performs a destruction action, such as punching the terrain object TO provided on the game field, in response to a user operation. Here, the terrain object TO is an example of a voxel object generated based on the voxel data described above, whose surface is represented by a mesh. In the example shown in FIG. 16, one voxel space defining voxels is set on the game field in the game space, and multiple voxels are defined in the voxel space to generate the terrain object TO on the game field. Here, at least one voxel space is set in at least a part of the game space to define multiple voxels, and the length of one side of the voxel (resolution), vectors (directions) in the global coordinate system of the x, y, and z axes in the vector space, the lengths of the x, y, and z directions of the voxel space, the position of the voxel space in the game space, etc. are defined for each voxel space. Note that Figures 16 to 19 show examples of cross sections of a terrain object TO that has been drawn using mesh generation to look like Figure 15 using the technique described in Figure 14, but it may also be drawn using the block-shaped mesh described in Figures 9 and 10.

[0103] In this embodiment, the player character PC can destroy the terrain object TO and eliminate at least a part of it by performing an action to destroy the terrain object TO. As an example, as shown in FIG. 16, the player character PC can destroy the terrain object TO and deform and eliminate that part of the terrain object TO by performing an action to hit a part of the terrain object TO. In the example shown in FIG. 16, the terrain object TO has a ground portion formed in a dish shape with a concave center, and a wall portion formed on the left side of the ground that stands above the game space. The player character PC is positioned approximately in the center of the ground portion and is performing a destruction action to destroy a part of the ground portion.

[0104] FIG. 17 is a diagram showing an example of a game image displaying a state in which the player character PC has destroyed a terrain object TO, showing the terrain object TO in a cross-sectional view. As shown in FIG. 17, a portion of the terrain object TO is destroyed, deformed, and removed from the game space by the destruction action of the player character PC. As an example, a semi-elliptical destruction range is formed on the terrain object TO shown in FIG. 17 by the destruction action of the player character PC. As a result of this destruction action, a portion of the dish-shaped ground portion of the terrain object TO is dug downward in the game space, resulting in the terrain object TO having a ground portion that is more uneven than before the destruction action. In this embodiment, even if such an uneven ground portion is formed on the terrain object TO by the destruction action of the player character PC, the ground portion can be flattened in accordance with a user operation. Note that the destruction range corresponds to an example of a first range set at a position based on the position of the player character.

[0105] 18 is a diagram showing an example of a game image in which the player character PC performs an action to flatten the terrain object TO, which is displayed on the display 12, and the terrain object TO is shown in cross section. In FIG. 18, in response to a user operation, the player character PC is performing a flattening action to flatten the terrain object TO on which he is placed.

[0106] In this embodiment, the player character PC can flatten at least a portion of the terrain object TO by performing an action to flatten the terrain object TO. As an example, the player character PC can deform and flatten a portion of the terrain object TO by performing an action such as slapping a portion of the terrain object TO or jumping and landing on the terrain object TO. In the example shown in FIG. 18 , the ground portion of the terrain object TO is formed in a dish shape with a concave center, and a hole is formed in part of the ground portion. The player character PC, positioned near the center of the ground portion, performs a flattening action to flatten the ground portion.

[0107] FIG. 19 is a diagram showing an example of a game image displaying the player character PC flattening the terrain object TO, showing the terrain object TO in a cross-sectional view. As shown in FIG. 19, the ground of the terrain object TO on which the player character PC is performing the flattening action is deformed by flattening at least a portion thereof. As an example, the ground portion of the terrain object TO shown in FIG. 19 is deformed so that the surface shape within a flattening range set at a position based on the placement position of the player character PC who performed the flattening action approaches a target plane set based on that placement position. Specifically, as is clear from a comparison of the cross-sectional views of the terrain object TO in FIG. 18 and FIG. 19, the dish-shaped ground portion is deformed so that the height of the dish-shaped outer edge, which is a portion higher than the placement position of the player character PC, becomes lower. Meanwhile, the depth of a hole in the ground portion lower than the placement position of the player character PC becomes shallower, i.e., the height of the bottom of the hole becomes higher. Note that the flattening range corresponds to an example of a second range set at a position based on the position of the player character.

[0108] In this embodiment, the terrain object TO is expressed as being destroyed and deformed / erased or as being flattened and deformed by changing the voxel data of each voxel constituting the terrain object TO. FIG. 20 is a diagram showing an example of the destruction range of voxels to be destroyed in the terrain object TO in accordance with a destruction action. The left diagram in FIG. 20 shows the destroyed surface of the terrain object TO as seen from the player character PC destroying the terrain object TO. The right diagram in FIG. 20 shows the side of the terrain object TO shown in the left diagram.

[0109] The destruction range of the terrain object TO destroyed by the destruction action of the player character PC is set based on the position, strength, and ability of the player character PC at which the terrain object TO is destroyed, and the strength (material) of the terrain object TO. For example, the destruction range is set to a range within a predetermined distance from a reference position set based on the position in the game space where the destruction action by the player character PC occurs. In the example of FIG. 20, a bell-shaped destruction range is formed on the terrain object TO, with the position where the player character PC performed the destruction action as its center and the innermost part missing due to the destruction becoming a hemisphere. Note that the shape of the destruction range may be other shapes, such as a sphere, an oval sphere, a cube, a cylinder, a wedge, a shape generated by 3D software, or a shape with a portion missing from any of these shapes. Furthermore, the position of the destruction range may be set to be centered on the position in the game space where the destruction action by the player character PC occurred (for example, the position where the player character PC's punch reached), or may be set to be centered a predetermined distance forward from that position as seen from the player character PC.

[0110] The destruction range described above is represented as a signed distance field (SDF), and the voxels to be erased / deformed are determined using the signed distance. When the destruction range is represented as an SDF, the distance from each voxel to the nearest destruction range surface is determined by the signed distance. Specifically, the destruction range surface is considered to be 0, and the outside of the destruction range is considered to be a positive distance, and the outside of the destruction range is considered to be a negative distance. Then, the erasure / deformation process for each voxel is set according to the signed distance for that voxel. For example, for a voxel to be erased, the voxel data for that voxel is rewritten to indicate that no terrain object exists, and the part of that voxel is erased from the terrain object TO.

[0111] For example, in this embodiment, the erasure / deformation of each voxel is controlled by changing the density included in the voxel data. For example, density is an index that indicates the degree of volume occupied by a voxel object within a region defined by the voxel. The density value can take an integer value ranging from a lower limit (e.g., 0) to an upper limit (e.g., 255). A higher density value set for a voxel indicates a greater degree of the above-mentioned phenomenon within the voxel, while a lower density value indicates a smaller degree of the above-mentioned phenomenon within the voxel. Furthermore, a voxel whose density is set to the lower limit (i.e., 0) is considered to contain no voxel object within the voxel, while a voxel whose density is set to the upper limit (i.e., 255) is considered to contain a voxel object throughout the voxel. In other words, when the density is set to a value greater than the lower limit, it becomes voxel data indicating the presence of a terrain object, and when it is set to the lower limit, it functions as voxel data indicating the absence of a terrain object. However, the shape of the voxel mesh generated based on the density does not need to have a volume that strictly corresponds to the density value.

[0112] In this embodiment, the density of each voxel is rewritten based on the signed distance of each voxel to the SDF representing the destruction range, thereby controlling the erasure / deformation of each voxel. Specifically, by rewriting the density of at least voxels whose signed distance is negative to a lower value, a state is created in which no terrain object exists for at least some voxels included in the destruction range. As a first example, by rewriting the density of voxels whose signed distance is negative to a lower limit value, a state in which no terrain object exists for voxels included in the destruction range, and by maintaining the density of voxels whose signed distance is positive at its current value, a state in which a terrain object exists for voxels outside the destruction range. As a second example, the density of voxels whose signed distance is negative is rewritten to a lower value as the absolute value of the distance increases, and the density of voxels whose absolute value is greater than a predetermined value is rewritten to a lower limit value, thereby causing some voxels within the destruction range to be in a state where no terrain objects exist, and the density of voxels whose signed distance is positive is maintained at its current value, causing voxels outside the destruction range to be in a state where terrain objects exist.As a third example, the density of voxels whose signed distance is negative is rewritten to a lower limit value, causing voxels whose signed distance is positive to be rewritten to a lower value as the absolute value of the distance decreases, thereby causing some voxels outside the destruction range to be in a state where no voxel objects exist throughout the voxels.

[0113] Note that the density of the voxel data may be rewritten by adjusting the amount of change in density according to the type or state of the material indicated by the material data included in the voxel data. For example, the amount of change in density may be adjusted according to the properties of the material indicated by the material data (e.g., fragility, temperature) (e.g., the more fragile the material, the greater the amount of change in density to be rewritten).

[0114] Furthermore, when rewriting the density in the voxel data, the amount of change in the density may be adjusted according to status data included in the voxel data. For example, the status data may indicate the amount of damage inflicted on the terrain object TO by the player character PC. As an example, whether to reduce the density in the voxel data or increase the amount of damage may be determined based on the relationship between the attacking power of the player character PC and the defensive power of the terrain object TO. Specifically, in terms of the relationship between the hardness of the attacking side (e.g., the hardness of the fist used by the player character PC to punch the terrain object TO) and the hardness of the attacked side (the hardness of the material of the terrain object TO), if the hardness of the attacking side is greater, the density in the destruction range is rewritten. If the hardness of the attacked side is greater, neither the density nor the amount of damage in the destruction range is rewritten. If the hardness of the attacking side and the hardness of the attacked side are equal, the amount of damage to the voxels in the destruction range is increased. If the amount of damage exceeds the voxel's tolerance (damage resistance value due to its material), the density of the voxel is rewritten. In addition, if the amount of damage to a voxel exceeds the capacity of the voxel, the density of the voxel may be set to 0 and the voxel may be erased, and the amount of damage to the voxel can also function as voxel data indicating that no terrain exists.

[0115] Then, as described above, a new mesh is generated on the surface of the terrain object TO after the density has been rewritten (specifically, the surface newly exposed to the outside due to the destruction) to update the display. For example, based on the occurrence of an event in which the terrain object TO is destroyed, a new mesh is generated by recalculating the vertices of the mesh in a range including at least the voxels whose voxel data has been rewritten due to the destruction. As an example, as shown in FIG. 14, each vertex of the mesh is generated. In this way, after the voxels are deleted, a new mesh is generated between voxels where no terrain exists and voxels where terrain exists by an algorithm that recalculates the vertices of the mesh based on the density of each voxel. Then, a texture to be used to draw each face of the mesh is determined based on the voxel data, and an image of the destroyed terrain object TO is generated by mapping the determined texture to each face. Note that the range in which the mesh is recalculated as described above may be a chunk (a group of voxels that serves as a processing unit consisting of a predetermined number of voxels) including voxels whose voxel data has been rewritten. For example, if 16x16x16 voxels are treated as one chunk and recalculation is performed on the chunk containing the voxel whose voxel data has been rewritten, the processing load can be reduced compared to recalculating the mesh of the entire game space. The range in question may be the voxel space in which the voxel whose voxel data has been rewritten is located, or the entire terrain object TO containing the voxel whose voxel data has been rewritten. Alternatively, if there is no problem with the processing load, the mesh may be recalculated for the entire game space.

[0116] In the above description, an example of an event in which the terrain object TO is erased is described in which the player character PC hits the terrain object TO with a destruction action, destroying, deforming, or erasing a portion of the terrain object TO. However, the terrain object TO may be erased by other events. For example, the terrain object TO may be destroyed by the player character PC hitting the terrain object TO with their entire body or other parts such as their legs, or by the player character PC hitting the terrain object TO with an item such as a weapon. The terrain object TO may also be erased (deformed) by an event in which the player character PC throws or kicks another object, causing the other object to hit and destroy the terrain object TO, or by an event in which the player character PC fires or bombards the terrain object TO, causing a bullet object fired by the shooting or bombardment to hit and destroy the terrain object TO. Furthermore, the terrain object TO may be erased (deformed) by environmental changes in the game space, such as vibrations caused by earthquakes, crushing forces caused by the impact of waves or wind and rain, or deterioration or decay due to exposure to the outside air, regardless of the actions of the player character PC.

[0117] Furthermore, in the above explanation, a terrain object TO is used as an example of an object whose part is to be erased from the game space, but it goes without saying that similar processing is possible even when other voxel objects are erased from the game space. For example, it is possible to similarly erase part of other voxel objects from the game space, such as buildings and trees placed in the game space, moving objects such as vehicles that move through the game space, other characters such as enemy characters that exist in the game space, items placed in the game space, and objects such as food and tools placed in the game space.

[0118] Fig. 21 is a diagram showing an example of the flattening range of voxels to be flattened in a terrain object TO in accordance with a flattening action, and a target plane that is the target of the flattening process. Note that in Fig. 21, the solid-line blocks indicate voxels having a density that is considered to be inside the terrain object TO, and the dashed-line blocks indicate voxels having a density that is considered to be outside the terrain object TO. Also, for the sake of explanation, Fig. 21 shows an example cross-section of a terrain object TO rendered using a block-shaped mesh, but in reality, a terrain object TO rendered using a mesh generated using the method described in Fig. 14 to have an appearance like that shown in Fig. 15 may be used.

[0119] The flattening range of the terrain object TO, which is flattened by the flattening action of the player character PC, is set based on the position where the player character PC performed the flattening action on the terrain object TO. For example, the flattening range is set to a range whose horizontal distance from a reference position set based on the position where the flattening action by the player character PC occurred in the game space is within a first distance and whose distance from a plane including the reference position is within a second distance. In the example of FIG. 21, the terrain object TO has a cylindrical (cylinder-shaped) flattening range centered on the reference position where the player character PC performed the flattening action, with the radius being the first distance and the height being twice the second distance, and whose axis is perpendicular to the game space. Note that the shape of the flattening range may be other shapes, such as a cube, a polygonal prism, a sphere, an oval sphere, a cone, a pyramid, a wedge, a shape generated by 3D software, or a shape with a portion missing from any of these shapes. The position of the flattening range may be set around the position in the game space where the flattening action by the player character PC occurs (for example, the position where the player character PC slaps the terrain object TO), or around the position of the player character PC who performed the flattening action. The size of the flattening range may be set based on the strength of the flattening action by the player character PC, the ability of the player character PC, the strength (material) of the terrain object TO, etc.

[0120] The target plane that is the target for flattening by the flattening action of the player character PC is set based on the position of the player character PC that performed the flattening action. For example, the target plane is set to a horizontal plane in the game space that includes the position of the player character PC that performed the flattening action in the game space. Note that the position of the target plane may be set to a horizontal plane that includes the position in the game space where the flattening action by the player character PC occurred (for example, the position where the player character PC slapped the terrain object TO), or may be set to a horizontal plane that includes another position on the ground within the flattening range.

[0121] In the flattening process of this embodiment, the density of voxels included in the flattening range is changed in response to a flattening action by the player character PC so that the surface shape of the terrain object TO approaches the target plane, thereby flattening the surface shape. Specifically, for each voxel included in the flattening range, the density of the voxel is changed based on whether the voxel is above or below the target plane, whether the density of the voxel is greater than or equal to a reference value, and whether the density of voxels adjacent to the voxel in the normal direction of the target plane is greater than or equal to a reference value. Note that the flattening range may be expressed as an SDF. When the flattening range is expressed as an SDF, whether each voxel is within the flattening range may be determined based on the coded distance from each voxel to the nearest flattening range surface.

[0122] For voxels below the target plane, an expansion process is performed to raise the ground. For example, among voxels below the target plane, if the density of a voxel is equal to or greater than a reference value (e.g., reference value = 128) (i.e., a voxel with a density that is considered to be inside the terrain object TO), the density of the voxel is increased by a predetermined value (voxel A in FIG. 21). Also, among voxels below the target plane, if the density of a voxel adjacent to the voxel in the downward direction of the game space, which is the opposite direction of the normal vector of the target plane, is equal to or greater than the reference value, the density of the voxel is increased by a predetermined value (voxel B in FIG. 21). If the density of the adjacent voxel is less than the reference value, the density of the voxel is not changed (voxel C in FIG. 21). The direction of the normal vector of the target plane is a direction perpendicular to the target plane that extends from the inside to the outside of the land object TO, and is assumed here to be the upward direction in the game space.

[0123] For voxels above the target plane, a contraction process is performed to lower the ground surface. For example, for voxels above the target plane whose density is less than a reference value, the density of the voxel is reduced by a predetermined value (voxel D in FIG. 21). For voxels above the target plane whose density is equal to or greater than the reference value, if the density of an adjacent voxel adjacent to the voxel in the upward direction of the game space, which is the direction of the normal vector of the target plane, is less than the reference value, the density of the voxel is reduced by a predetermined value (voxel E in FIG. 21). If the density of the adjacent voxel is equal to or greater than the reference value, the density of the voxel is not changed (voxel F in FIG. 21).

[0124] Then, after the density has been changed by a predetermined amount as described above, a new mesh is generated on the surface of the terrain object TO (specifically, the flattened ground) to update the display. For example, based on the occurrence of an event in which the terrain object TO is flattened, a new mesh is generated by recalculating the vertices of the mesh in a range that includes at least the voxels whose voxel data has been rewritten by the flattening. As an example, as shown in FIG. 14, each vertex of the mesh is generated. In this way, after the flattening process, a new mesh is generated between voxels where no terrain exists and voxels where terrain exists by an algorithm that recalculates the vertices of the mesh based on the density of each voxel. Then, a texture to be used to draw each face of the mesh is determined based on the voxel data, and the determined texture is mapped to each face to generate an image of the flattened terrain object TO. Note that, as with the destruction process, a range for mesh recalculation may be set in the flattening process as well.

[0125] Note that, when a flattening action is performed, the positions of the vertices of the mesh may be changed periodically within a predetermined period so that the mesh in the range including the voxels to be flattened fluctuates in the predetermined period. By changing the vertex positions of the mesh during the period triggered by the flattening action, which period includes at least the point in time when the voxel data is rewritten by the above-mentioned flattening process, the terrain surface of the part to be flattened in the terrain object TO is made to appear to fluctuate, thereby making it possible to suppress the visual discomfort caused by the terrain change due to the flattening.

[0126] In this way, by changing the density of each voxel included in the flattening range, the terrain object TO within the flattening range can be flattened so as to approach the target plane. The amount by which the terrain object TO is deformed by a single flattening process (flattening strength) can be adjusted by a predetermined value that changes the density. Even if the flattening strength is relatively small, by performing the flattening process multiple times, a plane that is close to the target plane can be formed with the player character PC positioned at its center. Furthermore, by using the density change described above, it is possible to flatten only the ground portion of the terrain object TO and prevent the loss of terrain features such as walls, gaps, and cliffs of the terrain object TO.

[0127] The flattening process described above may be performed once for one flattening action, or may be performed multiple times for one flattening action.

[0128] Furthermore, the predetermined amount by which density is changed by the flattening process may be varied based on the placement position of voxels within the flattening range. For example, the predetermined amount by which density is changed based on the flattening range may be set using an SDF. For example, the coding distance from the center of the flattening range or the coding distance to the surface of the range may be set for voxels within the flattening range, and the predetermined amount by which density is changed may be varied depending on the coding distance of each voxel. For example, the predetermined amount by which density is changed may be increased closer to the position where the flattening action was performed or the placement position of the player character PC, and may be decreased closer to the edge of the flattening range. In this case, it is possible to create an effect in which the flattening occurs so that the closer to the position where the flattening action was performed or the placement position of the player character PC, the faster the flattening approaches the target plane.

[0129] The predetermined amount by which the density is changed by the flattening process may be adjusted depending on the type or state of the material indicated by material data included in the voxel data. For example, the predetermined amount may be adjusted depending on the properties of the material indicated by the material data (e.g., fragility or temperature) (e.g., the more fragile the material, the larger the predetermined amount). Furthermore, depending on the properties of the material indicated by the material data, the predetermined amount may be set to 0 (e.g., for an indestructible material, the predetermined amount is set to 0 and the density is not changed), and voxels that are not flattened may be included in the flattening range. Furthermore, the predetermined amount by which the density is changed by the flattening process may be set based on the strength of the flattening action performed by the player character PC, the ability of the player character PC, etc.

[0130] If multiple materials are blended within a single voxel, the density may be changed only for the destructible material content. For example, if a voxel is blended with an indestructible material of density 155 and a destructible material of density 100, and the density is reduced by 200, only the density of the destructible material may be reduced, resulting in a voxel with an indestructible material of density 155 and a destructible material of density 0 (i.e., no destructible material exists).

[0131] Furthermore, the predetermined amount by which the density is changed by the flattening process may be adjusted according to status data included in the voxel data. For example, the status data may be data indicating the amount of damage inflicted on the terrain object TO by the player character PC. As an example, whether to change the density in the voxel data by the predetermined amount or increase the amount of damage in response to the flattening action may be determined based on the relationship between the attacking power of the player character PC and the defensive power of the terrain object TO. Specifically, in relation to the relationship between the strength of the attacker (e.g., the strength with which the player character PC flattens the terrain object TO) and the strength of the attacked party (the hardness of the material of the terrain object TO), if the attacker's strength is stronger, the density in the flattening range is changed by a predetermined amount, and if the attacked party's strength is stronger, neither the density nor the amount of damage in the flattening range is rewritten. Then, if the strength of the attacker and the attacked party are equal, the amount of damage to the voxels in the flattening range is increased, and if the amount of damage exceeds the voxel's tolerance (the damage resistance value of the material), the density of the voxel is changed by a predetermined amount.

[0132] In the above description, an example of an event in which the terrain object TO is flattened is described in which the player character PC performs a flattening action, such as slapping the terrain object TO or jumping and landing on the ground of the terrain object TO, thereby flattening and deforming a portion of the terrain object TO. However, the terrain object TO may be flattened by other events. For example, the terrain object TO may be flattened by the player character PC hitting the terrain object TO with their entire body or a part of their body, such as their limbs, or by the player character PC hitting the terrain object TO with an item, such as a weapon. The terrain object TO may also be flattened by an event in which the player character PC throws or kicks another object, causing the other object to hit the terrain object TO, or by an event in which the player character PC shoots or fires a cannonball, causing a bullet object fired by the shooting or cannonball to hit the terrain object TO. Furthermore, the terrain object TO may be flattened by environmental changes in the game space, such as vibrations caused by earthquakes, crushing forces caused by the impact of waves or wind and rain, or deterioration or decay due to exposure to the outside air, regardless of the actions of the player character PC.

[0133] Furthermore, in the above explanation, a terrain object TO is used as an example of an object whose part is to be flattened, but it goes without saying that similar processing is possible even when other voxel objects are to be flattened. For example, it is possible to perform processing to flatten parts of other voxel objects in the same way, such as buildings and trees placed in the game space, moving objects such as vehicles that move through the game space, other characters such as enemy characters that exist in the game space, items placed in the game space, and objects such as food and tools placed in the game space.

[0134] In the above description, the flattened range is cylindrical in shape with the cylindrical axis aligned vertically in the game space (i.e., the top and bottom surfaces of the cylindrical shape are horizontal planes), and the target plane is the horizontal plane in the game space, but the flattened range and / or the target plane may be set in other directions.

[0135] As a first example, if the terrain object TO has a wall surface and a flattening action is performed on the wall surface, the flattening process may be performed with a vertical plane in the game space including the position where the player character PC is in contact with the wall surface as the target plane. In this case, the flattening range may also be set to a cylindrical shape with the cylindrical axis aligned horizontally in the game space (i.e., the top and bottom surfaces of the cylindrical shape are vertical planes) based on the position where the flattening action is performed.

[0136] As a second example, a plane tilted from the horizontal plane of the game space may be set as the target plane depending on the inclination of the ground on which the player character PC is placed or the average inclination of the ground within the flattening area. In this case, since the direction of the normal vector of the target plane is also different from the vertical or horizontal direction of the game space, multiple adjacent voxels may be selected that are adjacent to the density-change target voxel in the direction of the normal vector or the opposite direction of the normal vector. For example, when selecting adjacent voxels in the normal vector direction of the density-change target voxel, the voxel closest to the density-change target voxel and at least one voxel (e.g., the second-closest voxel in the normal vector direction) selected from the eight voxels adjacent to the density-change target voxel, excluding the density-change target voxel, are selected as the adjacent voxels. Then, the density calculated by interpolating the densities of the selected adjacent vectors is used as the density of the adjacent voxels, and the expansion or contraction processing described above is performed. The interpolation may involve calculating an average density value, a maximum density value, a minimum density value, etc. Note that the flattened range in the second example may be set at an angle in the game space so that the target plane and the upper and lower surfaces of the cylindrical shape are parallel, or may be set so that the upper and lower surfaces of the cylindrical shape are horizontal in the game space.

[0137] Next, a specific example of information processing in the game system 1 will be described with reference to FIGS.

[0138] FIG. 22 is a diagram illustrating an example of various data used in information processing in the game system 1. As shown in FIG. 22, the game system 1 stores a game program, voxel space data, voxel object data, mesh data, operation data, player character data, destruction area data, flattening area data, target plane data, and shaking flag data. The game program and voxel space data are data stored in the game system 1 before execution of game processing. The game program and voxel space data are stored, for example, in a storage medium inserted in the slot 23 of the main unit 2. The voxel object data, mesh data, operation data, player character data, destruction area data, flattening area data, target plane data, and shaking flag data are data generated during execution of game processing. The voxel object data, mesh data, operation data, player character data, destruction area data, flattening area data, target plane data, and shaking flag data are stored, for example, in the DRAM 85 of the main unit 2.

[0139] The game program is a game program for executing the game processing in this embodiment (specifically, the game processing shown in FIGS. 23 to 25).

[0140] Voxel space data is data that defines voxels set in the game space. Specifically, the voxel space data indicates the length of one side of a voxel and the direction of each side of the voxel in the game space. Furthermore, when voxels are set in only a partial area of ​​the game space, the voxel space data may include data indicating the position and size of the space in which the voxels are set (i.e., voxel space) (i.e., data indicating the range in the game space in which the voxels are set).

[0141] The voxel object data is data that indicates a voxel object to be placed in the game space. Specifically, the voxel object data includes voxel data for each unit area within a part or the entire range of the game space.

[0142] The mesh data is data that indicates a mesh that is set for a voxel object placed in the game space, and includes, for example, data that indicates the position of each vertex in the mesh.

[0143] The operation data is data appropriately acquired from the left controller 3 and / or right controller 4 and the main unit 2. As described above, the data acquired from the left controller 3 and / or right controller 4 and the main unit 2 includes information about inputs (specifically, information about operations) from the input units (specifically, the buttons, analog sticks, and touch panels). In this embodiment, data is acquired from the left controller 3 and / or right controller 4 and the main unit 2, and the acquired data is used to appropriately update the operation data. The update cycle of the operation data may be every frame, which is the cycle of processing executed by the game system 1, which will be described later, or may be every cycle in which the above data is acquired.

[0144] The player character data is data that indicates the position and posture of the player character PC placed in the game space, as well as the movement and state of the player character PC in the game space.

[0145] The destruction range data is data indicating a destruction range that is set when the land object TO is destroyed by the player character PC.

[0146] The flattened area data is data indicating a flattened area that is set when the land object TO is flattened by the player character PC.

[0147] The target plane data is data indicating a target plane that is set when the land object TO is destroyed by the player character PC and the normal vector of the target plane.

[0148] The shaking flag data is data indicating whether the shaking flag is set to on or not.

[0149] In addition to the data shown in FIG. 22, the game system 1 stores the above-mentioned property information and texture information data as data that is stored in advance in the game system 1 before the game process is executed.

[0150] FIG. 23 is a flowchart showing an example of the flow of game processing executed by the game system 1. FIG. 24 is a subroutine showing an example of the flattening process in step S9 in the flowchart shown in FIG. 23. FIG. 25 is a subroutine showing an example of the shaking process in step S11 in the flowchart shown in FIG. 23. In this embodiment, the series of processes shown in FIGS. 23 to 25 are performed by the processor 81 executing a game program. The game processing shown in FIGS. 23 to 25 can be started at any timing, but as an example, the game processing is started in response to a command to start the game being given by the player while the game program is being executed.

[0151] In the present embodiment, the processor 81 of the main unit 2 executes the game program stored in the game system 1 to perform the processing of each step shown in FIGS. 23 to 25. However, in other embodiments, some of the processing of each step may be performed by a processor other than the processor 81 (for example, a dedicated circuit, etc.). Furthermore, if the game system 1 is capable of communicating with another information processing device (for example, a server), some of the processing of each step shown in FIGS. 23 to 25 may be performed by the other information processing device. In other words, each process shown in FIGS. 23 to 25 may be performed by multiple information processing devices including the main unit 2 working together. Furthermore, the processing of each step shown in FIGS. 23 to 25 is merely an example, and the order of the processing of each step may be reversed, or other processing may be performed in addition to (or instead of) the processing of each step, as long as similar results are obtained.

[0152] 23 to 25, the processor 81 uses a memory (for example, a DRAM 85). That is, the processor 81 stores information (in other words, data) obtained by each processing step in the memory, and when using the information in a subsequent processing step, reads the information from the memory and uses it.

[0153] 23, processor 81 sets voxel objects in an initial state in the game space (step S1) and proceeds to the next step. Specifically, processor 81 acquires voxel data indicating the arrangement of voxel objects in the initial state and stores (in other words, writes) some or all of the acquired voxel data in DRAM 85 as voxel object data. Note that the voxel data indicating the arrangement of voxel objects in the initial state is stored, for example, in a storage medium attached to slot 23 of main unit 2. Note that a computer that stores, for each voxel included in a voxel space arranged in a virtual space, voxel data including at least a density indicating the degree to which an object occupies a space defined by the voxel, and thereby stores volume data representing the shape of the terrain in the virtual space in a storage medium, corresponds to, for example, processor 81 that performs the processing of step S1.

[0154] Note that the voxel data written to DRAM 85 as voxel object data may be voxel data for a partial range of the voxel data for the entire range of the game space, which is used to generate a game image. For example, processor 81 may generate an image of an object using voxel data for only a partial range of the game space (for example, a range within a predetermined distance from the position of the virtual camera). In this case, the voxel object data may include voxel data for that range. Furthermore, when voxel data for a partial range of the game space is written, a process similar to step S1 above is executed at an appropriate timing during execution of a series of processes in steps S3 to S13 described below (for example, at a timing when the position of the virtual camera has moved by more than a predetermined distance).

[0155] Next, processor 81 generates a mesh for the voxel object (step S2), proceeds to the next step to start the game, and repeatedly executes the processes of steps S3 to S13 during the game. The mesh is generated according to the method described above. Here, processor 81 generates the mesh based on voxel object data stored in DRAM 85. By the process of step S2, voxel objects such as terrain objects are constructed in the game space.

[0156] Next, the processor 81 acquires data corresponding to the user operation from the left controller 3, the right controller 4, and / or the main unit 2, updates the operation data (step S3), and proceeds to the next step.

[0157] Next, processor 81 controls the movements of various objects (e.g., player character and enemy character) that appear in the game space (step S4), and proceeds to the next step. For example, processor 81 controls the movements of the player character based on the operation data acquired in step S3 above, and updates the player character data. Processor 81 also controls the movements of enemy characters based on an algorithm defined in the game program. Note that a computer that moves the player character on the terrain based on the user's operation input corresponds to processor 81 that performs the processing of step S4, as an example.

[0158] Next, the processor 81 determines whether or not an erasure condition for erasing at least a portion of the voxel object is satisfied (step S5). For example, when a terrain object TO is hit by a destruction action performed by the player character PC, the processor 81 sets the position of the hit and its surrounding area as a destruction area, updates the destruction area data, destroys the terrain object TO (voxel object) present in the destruction area, and erases the destroyed portion. As an example, to represent that the destruction area is destroyed, the density values ​​indicated by the voxel data of at least some voxels within the destruction area are set to 0, thereby erasing the objects within the destruction area. Therefore, the processor 81 makes a positive determination in step S5 if the voxels of the voxel object are included in the destruction area caused by the player character's hit. Then, if the erasure condition is satisfied, the processor 81 proceeds to step S6. On the other hand, if the erasure condition is not satisfied, the processor 81 proceeds to step S8.

[0159] In step S6, processor 81 updates the voxel data for the voxel object that satisfies the deletion condition and proceeds to the next step. For example, processor 81 changes the voxel density for the voxels in the portion struck by the player character and the voxels in the surrounding portion so that at least a portion of the voxel object that satisfies the deletion condition is deleted, and updates the voxel data corresponding to each voxel. Processor 81 also deforms the voxel object in the voxels surrounding the destruction range (e.g., the range of the strike) by reducing the density of the voxels (however, to 0 or greater) around the deleted destruction range. Specifically, processor 81 updates the voxel object data stored in DRAM 85 so as to change the density data for the voxel data for the voxels in the deleted range and its surrounding voxels. Processor 81 may also update the density data so that the density indicates a value less than the above-mentioned reference value. For example, processor 81 may set the density of voxels in the area struck by the player character (destruction area) to 0, and decrease the density of voxels in the surrounding area by a predetermined value.

[0160] Next, processor 81 updates the mesh of the voxel object whose voxel data was changed in step S6 (step S7) and proceeds to the next step. That is, processor 81 generates a mesh of the voxel object whose deletion condition is satisfied based on the voxel object data updated in step S6. This allows the mesh of the terrain object to be dynamically changed during the game. Processor 81 updates the mesh data stored in DRAM 85 to content indicating the newly generated mesh. Note that a computer that causes the player character to perform a destruction action to destroy the terrain in response to a first instruction based on an operation input, and updates the voxel data of voxels included in a first range set at a position based on the position of the player character when the destruction action hits the terrain, so that the density indicates that the terrain does not exist, corresponds to processor 81, for example, performing the processing of steps S6 and S7. Furthermore, a computer that generates a polygon mesh using an algorithm that determines the vertex positions of polygons based on voxel data between voxels defined inside the terrain and voxels defined outside the terrain based on density, and recalculates the vertices of the polygon mesh in a range that includes at least the voxels whose voxel data has been updated based on the occurrence of a destruction action or flattening action, corresponds to, as an example, processor 81 that performs the processing of step S7.

[0161] Next, processor 81 determines whether or not a flattening action has been performed by the player character (step S8). If a flattening action has been performed, processor 81 proceeds to process step S9. On the other hand, if a flattening action has not been performed, processor 81 proceeds to process step S10.

[0162] In step S9, processor 81 performs a flattening process, and the process proceeds to step S10. The flattening process performed in step S9 will be described below with reference to Fig. 24. Note that a computer that, in response to a second instruction based on an operation input, causes the player character to perform a flattening action that flattens the terrain, and that, in response to the flattening action, updates the density of voxel data for voxels included in a second range that is set at a position based on the position of the player character, so that the surface shape of the terrain approaches a plane that is set based on the position of the player character, corresponds to processor 81 that performs the process of step S9, as an example.

[0163] 24, the processor 81 sets a flattening range (step S81) and proceeds to the next step. For example, the flattening range is generated based on a reference position based on the position where the flattening action was performed according to the above-described method, and the processor 81 updates the flattening range data stored in the DRAM 85 to content indicating the newly generated flattening range.

[0164] Next, processor 81 sets a target plane and a normal vector (step S82) and proceeds to the next step. For example, the target plane and the normal vector of the target plane are generated based on the position of the player character PC according to the method described above, and processor 81 updates the target plane data stored in DRAM 85 to indicate the newly generated target plane and normal vector.

[0165] Next, processor 81 performs an expansion process to raise the ground level for voxels below the target plane set in step S82 (step S83), and proceeds to the next step. For example, processor 81 increases the density of voxels whose density is equal to or greater than a reference value, and increases the density of voxels whose density is less than the reference value according to the density of adjacent voxels in the opposite direction of the normal vector, according to the method described above. Processor 81 then updates the voxel data stored in DRAM 85 to indicate the changed density. Processor 81 also updates the mesh of the voxel object whose voxel data has been updated based on the voxel data, and updates the mesh data stored in DRAM 85 to indicate a newly generated mesh.

[0166] Next, processor 81 performs a contraction process to lower the ground surface for voxels above the target plane set in step S82 (step S84), and proceeds to the next step. For example, processor 81, according to the method described above, decreases the density of voxels whose density is less than a reference value, and decreases the density of voxels whose density is equal to or greater than the reference value according to the densities of adjacent voxels in the direction of the normal vector. Processor 81 then updates the voxel data stored in DRAM 85 to indicate the changed density. Processor 81 also updates the mesh of the voxel object whose voxel data has been updated based on the voxel data, and updates the mesh data stored in DRAM 85 to indicate a newly generated mesh. In addition, a computer that generates a polygon mesh using an algorithm that determines the vertex positions of polygons based on voxel data between voxels defined inside the terrain and voxels defined outside the terrain based on density, and recalculates the vertices of the polygon mesh in a range that includes at least the voxels whose voxel data has been updated based on the occurrence of a destruction action or flattening action, corresponds to, as an example, processor 81 that performs the processing of steps S83 and S84.

[0167] Next, the processor 81 sets the shaking flag to ON (step S85) and ends the processing of this subroutine. For example, the processor 81 sets the shaking flag indicated by the shaking flag data stored in the DRAM 85 to ON, and updates the shaking flag data.

[0168] The flattening process performed in steps S81 to S85 may be repeated multiple times for each flattening action, and in this case, a negative judgment may be made after a positive judgment is made multiple times in step S8.

[0169] 23, in step S10, the processor 81 determines whether the shaking flag is set to on by referring to the shaking flag data stored in the DRAM 85. If the shaking flag is set to on, the processor 81 proceeds to step S11. On the other hand, if the shaking flag is set to off, the processor 81 proceeds to step S12.

[0170] In step S11, processor 81 performs a shaking process, and the process proceeds to step S12. The shaking process performed in step S11 will be described below with reference to FIG. 25. During the game, the process of step S12 is repeatedly executed once per predetermined time (for example, per frame time). A computer that displays a shaking surface of the terrain by changing the positions of the vertices of a polygon mesh for a predetermined period in response to a flattening action corresponds to processor 81 that performs the process of step S11, for example.

[0171] 25, the processor 81 extracts vertices that have moved due to the flattening process of step S9 from among the polygon mesh vertices within the flattening range (step S91), and proceeds to the next step. For example, the processor 81 extracts vertices that have moved due to the flattening process of step S9 from among the vertices of the polygon mesh that are located within the flattening range indicated by the flattening range data, by referring to the mesh data stored in the DRAM 85.

[0172] Next, processor 81 changes the vertices of the mesh extracted in step S91 based on a predetermined algorithm (step S92), and proceeds to the next step. For example, processor 81 changes the positions of the vertices of the mesh using an algorithm that causes the mesh to appear to sway, and updates the mesh data stored in DRAM 85 using the changed positions.

[0173] Next, the processor 81 updates the mesh using the vertex positions changed in step S92 (step S93), and proceeds to the next step. That is, the processor 81 generates a mesh using the vertex positions changed in step S92. This makes it possible to dynamically change the mesh of the landform object so that it fluctuates. The processor 81 also updates the mesh data stored in the DRAM 85 to content indicating the newly generated mesh.

[0174] Next, the processor 81 determines whether or not to end the shaking process (step S94). For example, a period for performing the shaking process is determined in advance, and if the period has ended, the processor 81 makes a positive determination in step S94. If the shaking process is to be ended, the processor 81 proceeds to step S95. On the other hand, if the shaking process is to be continued, the processor 81 ends the processing of the subroutine.

[0175] In step S95, processor 81 returns the positions of the vertices of the mesh changed in step S92 to the positions before the wobbling process was performed, and proceeds to the next step. For example, processor 81 returns the positions of the vertices of the mesh changed in step S92 to their original positions, and updates the mesh data stored in DRAM 85 using the returned positions.

[0176] Next, the processor 81 sets the shaking flag to OFF (step S96) and ends the processing of this subroutine. For example, the processor 81 sets the shaking flag indicated by the shaking flag data stored in the DRAM 85 to OFF, and updates the shaking flag data.

[0177] Returning to FIG. 23, in step S12, processor 81 generates a game image representing the game space, displays it on the display device, and proceeds to the next step. Specifically, processor 81 generates a game image representing the game space including voxel objects and other objects (e.g., a player character and an enemy character). The image of the voxel object is generated according to the method described above using voxel object data and mesh data stored in DRAM 85. The image of the player character is generated using player character data stored in DRAM 85. Processor 81 then displays the generated game image on the display device. During the game, the processing of step S12 is repeatedly executed once per predetermined time (e.g., one frame time). A computer that generates an image of the virtual space by drawing at least a polygon mesh representing the surface of the terrain based on volume data corresponds to processor 81, for example, that performs the processing of step S12.

[0178] Next, processor 81 determines whether or not to end the game (step S13). Conditions for ending the game processing in step S13 above include, for example, a condition for ending the game processing being satisfied, or the user performing an operation to end the game processing. If processor 81 does not end the game processing, it returns to step S3 above and repeats the processing, and if it ends the game processing, it ends the processing according to this flowchart. Thereafter, the series of processing from step S3 to step S13 is repeatedly executed until it is determined in step S13 that the processing should end.

[0179] In this way, in this embodiment, terrain objects generated from voxels can be freely destroyed in response to user operations, while the terrain around the player character can be flattened and leveled, allowing the terrain objects to be deformed with a high degree of freedom while playing the game.

[0180] Furthermore, the game system 1 may be any device, such as a portable game device or any portable electronic device (PDA (Personal Digital Assistant), mobile phone, personal computer, camera, tablet, etc.). In this case, the input device for performing operations to move the player object PO does not have to be the left controller 3, the right controller 4, or the touch panel 13, but may be another controller, a mouse, a touchpad, a touch panel, a trackball, a keyboard, a cross key, a slide pad, etc.

[0181] Furthermore, although the above description uses an example in which information processing is performed by the game system 1, at least some of the above processing steps may be performed by another device. For example, if the game system 1 is configured to be able to communicate with yet another device (e.g., another server, another image display device, another game device, or another mobile terminal), the above processing steps may be executed by cooperation with the other device. In this way, by performing at least some of the above processing steps in another device, processing similar to the above-described processing becomes possible. Furthermore, the above-described information processing may be executed by one processor or cooperation between multiple processors included in an information processing system composed of at least one information processing device. Furthermore, in the above embodiment, information processing can be performed by the processor 81 of the game system 1 executing a predetermined program, but some or all of the above processing may be performed by a dedicated circuit provided in the game system 1.

[0182] According to the above-described modified example, the present invention can also be realized in a so-called cloud computing system configuration, or in a distributed wide area network or local network system configuration. For example, in a distributed local network system configuration, the above processing can be performed cooperatively between a stationary information processing device (stationary game device) and a portable information processing device (portable game device). Note that in these system configurations, there is no particular limitation on which device performs the above processing, and it goes without saying that the present invention can be realized regardless of the processing division.

[0183] Furthermore, the processing order, setting values, conditions used for judgment, etc. used in the information processing described above are merely examples, and it goes without saying that this embodiment can be realized even with other orders, values, and conditions.

[0184] The program may be supplied to the game system 1 not only through an external storage medium such as an external memory, but also through a wired or wireless communication line. The program may be pre-recorded in a nonvolatile storage device within the device. The information storage medium for storing the program may be a nonvolatile memory, a CD-ROM, a DVD, or similar optical disk-shaped storage media, a flexible disk, a hard disk, a magneto-optical disk, or a magnetic tape. The information storage medium for storing the program may also be a volatile memory for storing the program. Such a storage medium may be a recording medium readable by a computer or the like. For example, the various functions described above can be provided by having a computer or the like read and execute the program from such a recording medium.

[0185] The present invention has been described in detail above. However, the above description is merely illustrative of the present invention in all respects and is not intended to limit its scope. It goes without saying that various improvements and modifications can be made without departing from the scope of the present invention. Furthermore, those skilled in the art will understand that, from the description of specific embodiments of the present invention, they will be able to implement equivalents based on the description of the present invention and common technical knowledge. Furthermore, unless otherwise specified, it should be understood that the terms used in this specification are used in the same sense as commonly used in the art. Therefore, unless otherwise defined, all technical and technical terms used in this specification have the same meaning as commonly understood by those skilled in the art to which this invention belongs. In the event of any conflict, the present specification (including definitions) will prevail. [Industrial Applicability]

[0186] As described above, the present invention can be used as a game program, game system, game device, game processing method, etc. that allows a user to destroy or flatten objects generated from voxels through user operation, thereby enabling the objects to be deformed with a high degree of freedom in playing a game. [Explanation of symbols]

[0187] 1. Information processing system 2...Main unit 3...Left controller 4...Right controller 11. Housing 12...Display 13...Touch panel 32, 52...Analog stick 42, 64...Terminals 81...Processor 82...Network Communication Department 83...Controller communication section 85...DRAM 101, 111...Communication control unit

Claims

1. A game program executed on a computer of an information processing device, The computer, storing volume data representing the shape of the terrain in the virtual space in a storage medium by retaining voxel data including at least a density indicating the degree to which an object occupies the space defined by the voxel for each voxel included in the voxel space arranged in the virtual space; moving a player character on the terrain based on a user's operation input; causing the player character to perform a destruction action to destroy the terrain in response to a first instruction based on the operation input, and when the destruction action hits the terrain, updating the voxel data for voxels included in a first range set at a position based on the position of the player character so that the density indicates that the terrain does not exist; causing the player character to perform a flattening action to flatten the terrain in response to a second instruction based on the operation input, and updating the density of the voxel data for voxels included in a second range set at a position based on the position of the player character in response to the flattening action so that a surface shape of the terrain approaches a plane set based on the position of the player character; a game program that generates an image of the virtual space by drawing at least a polygon mesh that represents the surface of the terrain based on the volume data;

2. In response to the flattening action: For voxels included on one side of the plane, the density of voxels whose density is equal to or greater than a reference value is increased, and, among voxels whose density is less than the reference value, the density of voxels whose density obtained by interpolating the density of one adjacent voxel or the densities of multiple adjacent voxels adjacent to the one side of the plane is equal to or greater than the reference value, is increased; 2. The game program of claim 1, wherein, for voxels on the other side of the plane, the density of voxels whose density is less than the reference value is reduced, and the density of voxels whose density is equal to or greater than the reference value and whose density obtained by interpolating the density of one adjacent voxel adjacent to the other side or the densities of multiple adjacent voxels is reduced.

3. 3. The game program according to claim 2, wherein the one direction is a direction opposite to a normal vector of the plane, and the other direction is a direction of the normal vector of the plane.

4. 4. The game program according to claim 2, wherein the one direction is a downward direction in the virtual space, and the other direction is an upward direction in the virtual space.

5. The game program according to claim 4 , wherein the plane is a horizontal plane in the virtual space.

6. The game program according to claim 1 , wherein the plane is a plane passing through a position where the player character contacts the terrain.

7. The game program according to claim 6 , wherein the plane has an inclination corresponding to an inclination of the terrain at the position of the player character.

8. The computer further comprises:

8. The game program according to claim 1, wherein the positions of the vertices of the polygon mesh are changed for a predetermined period in response to the flattening action, thereby causing the surface of the terrain to appear to fluctuate.

9. the voxel data includes data indicating the hardness or material of an object within a space defined by the voxels; The computer further comprises:

8. The game program according to claim 1, wherein the density of voxels within the second range whose hardness or material satisfies a predetermined condition is updated based on the flattening action.

10. The computer further comprises: generating the polygon mesh using an algorithm that determines vertex positions of polygons based on the voxel data between voxels defined inside the terrain and voxels defined outside the terrain based on the density; 8. The game program according to claim 1, wherein, based on the occurrence of the destruction action or the flattening action, the vertices of the polygon mesh in a range including at least the voxels whose voxel data has been updated are recalculated.

11. a storage medium for storing volume data representing the shape of the terrain within the virtual space by retaining voxel data including at least a density indicating the degree to which an object occupies the space defined by the voxel for each voxel included in the voxel space arranged within the virtual space; moving a player character on the terrain based on a user's operation input; in response to a first instruction based on the operation input, having the player character perform a destruction action to destroy the terrain, and when the destruction action hits the terrain, updating the voxel data for voxels included in a first range set at a position based on the position of the player character so that the density indicates that the terrain does not exist; in response to a second instruction based on the operation input, having the player character perform a flattening action to flatten the terrain, and in response to the flattening action, updating the density of the voxel data for voxels included in a second range set at a position based on the position of the player character so that a surface shape of the terrain approaches a plane set based on the position of the player character; a processor that generates an image of the virtual space by drawing at least a polygon mesh representing the surface of the terrain based on the volume data.

12. The processor, in response to the flattening action, For voxels included on one side of the plane, the density of voxels whose density is equal to or greater than a reference value is increased, and, among voxels whose density is less than the reference value, the density of voxels whose density obtained by interpolating the density of one adjacent voxel or the densities of multiple adjacent voxels adjacent to the one side of the plane is equal to or greater than the reference value, is increased; 12. The game system of claim 11, wherein, for voxels on the other side of the plane, the density of voxels whose density is less than the reference value is reduced, and the density of voxels whose density is equal to or greater than the reference value and whose density obtained by interpolating the density of one adjacent voxel adjacent to the other side or the densities of multiple adjacent voxels is reduced.

13. The game system according to claim 12 , wherein the one direction is a direction opposite to a normal vector of the plane, and the other direction is a direction of the normal vector of the plane.

14. 14. The game system according to claim 12, wherein the one direction is a downward direction in the virtual space, and the other direction is an upward direction in the virtual space.

15. The game system according to claim 14 , wherein the plane is a horizontal plane in the virtual space.

16. The game system according to claim 11 , wherein the plane is a plane passing through a position where the player character contacts the terrain.

17. The game system according to claim 16 , wherein the plane has an inclination corresponding to an inclination of the terrain at the position of the player character.

18. The processor further comprises:

18. The game system according to claim 11, wherein the positions of the vertices of the polygon mesh are changed for a predetermined period in response to the flattening action, thereby displaying a fluctuating surface of the terrain.

19. the voxel data includes data indicating the hardness or material of an object within a space defined by the voxels; The processor further comprises:

18. The game system according to claim 11, 12, 13, 16, or 17, wherein the density is updated based on the flattening action for voxels within the second range whose hardness or material satisfies a predetermined condition.

20. The processor further comprises: generating the polygon mesh using an algorithm that determines vertex positions of polygons based on the voxel data between voxels defined inside the terrain and voxels defined outside the terrain based on the density; The game system according to claim 11, 12, 13, 16, or 17, wherein, based on the occurrence of the destruction action or the flattening action, the vertices of the polygon mesh in a range including at least the voxels whose voxel data has been updated are recalculated.

21. a storage medium for storing volume data representing the shape of the terrain within the virtual space by retaining voxel data including at least a density indicating the degree to which an object occupies the space defined by the voxel for each voxel included in the voxel space arranged within the virtual space; moving a player character on the terrain based on a user's operation input; in response to a first instruction based on the operation input, having the player character perform a destruction action to destroy the terrain, and when the destruction action hits the terrain, updating the voxel data for voxels included in a first range set at a position based on the position of the player character so that the density indicates that the terrain does not exist; in response to a second instruction based on the operation input, having the player character perform a flattening action to flatten the terrain, and in response to the flattening action, updating the density of the voxel data for voxels included in a second range set at a position based on the position of the player character so that a surface shape of the terrain approaches a plane set based on the position of the player character; a processor that generates an image of the virtual space by drawing at least a polygon mesh that represents the surface of the terrain based on the volume data.

22. The processor, in response to the flattening action, For voxels included on one side of the plane, the density of voxels whose density is equal to or greater than a reference value is increased, and, among voxels whose density is less than the reference value, the density of voxels whose density obtained by interpolating the density of one adjacent voxel or the densities of multiple adjacent voxels adjacent to the one side of the plane is equal to or greater than the reference value, is increased; 22. The game device according to claim 21, wherein, for voxels included on the other side of the plane, the density of voxels whose density is less than the reference value is reduced, and, among voxels whose density is equal to or greater than the reference value, the density of voxels whose density obtained by interpolating the density of one adjacent voxel adjacent on the other side or the densities of multiple adjacent voxels is reduced.

23. The processor further comprises:

23. The game device according to claim 21, wherein the positions of the vertices of the polygon mesh are changed for a predetermined period in response to the flattening action, thereby displaying a fluctuating surface of the terrain.

24. The processor of the information processing device storing volume data representing the shape of the terrain in the virtual space in a storage medium by retaining voxel data including at least a density indicating the degree to which an object occupies the space defined by the voxel for each voxel included in the voxel space arranged in the virtual space; moving a player character on the terrain based on a user's operation input; causing the player character to perform a destruction action to destroy the terrain in response to a first instruction based on the operation input, and when the destruction action hits the terrain, updating the voxel data for voxels included in a first range set at a position based on the position of the player character so that the density indicates that the terrain does not exist; causing the player character to perform a flattening action to flatten the terrain in response to a second instruction based on the operation input, and updating the density of the voxel data for voxels included in a second range set at a position based on the position of the player character in response to the flattening action so that a surface shape of the terrain approaches a plane set based on the position of the player character; A game processing method that generates an image of the virtual space by drawing at least a polygon mesh that represents the surface of the terrain based on the volume data.

25. causing the processor to, in response to the flattening action: For voxels included on one side of the plane, the density of voxels whose density is equal to or greater than a reference value is increased, and, among voxels whose density is less than the reference value, the density of voxels whose density obtained by interpolating the density of one adjacent voxel or the densities of multiple adjacent voxels adjacent to the one side of the plane is equal to or greater than the reference value, is increased; 25. The game processing method according to claim 24, further comprising: reducing the density of voxels included on the other side of the plane, the density of which is less than the reference value; and reducing the density of voxels whose density is equal to or greater than the reference value, the density of which is less than the reference value when the density of one adjacent voxel adjacent on the other side or the density of multiple adjacent voxels is interpolated.

26. The processor further comprises:

26. A game processing method according to claim 24, wherein the positions of the vertices of the polygon mesh are changed for a predetermined period in response to the flattening action, thereby causing the surface of the terrain to appear to fluctuate.

Citation Information

Patent Citations

  • Program, recording medium, game character drawing method and game machine

    JP2004062666A

  • Program, information storage medium and image generation system

    JP2008033521A

  • Server system, game system, and program

    JP2021122302A

  • Data processing apparatus, data processing method, and program

    JP2022171068A

  • Method and system for generating polygon meshes approximating surfaces using root-finding and iteration for mesh vertex positions

    JP2023178274A