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

The game program addresses the lack of terrain deformation in conventional games by projecting a trace polygon mesh onto the terrain polygon mesh, enabling traces to be left on deformed terrain and maintaining them after destruction, thus enhancing gameplay realism and reducing processing costs.

JP2025113077AActive Publication Date: 2025-08-01NINTENDO CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
JP2024011600
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-01-30
Publication Date
2025-08-01
Estimated Expiration
2044-01-30

AI Technical Summary

Technical Problem

Conventional games do not effectively simulate terrain deformation, leaving room for improvement in how traces are left on deformed terrain.

Method used

A game program that stores terrain volume data and terrain polygon mesh data, allowing for terrain deformation based on player input, and projects a trace polygon mesh onto the terrain polygon mesh at the point of deformation, with vertices that cannot be projected being made invisible, and applying a trace texture to leave a trace on the terrain.

Benefits of technology

The solution allows for a trace of deformation actions to be left on the terrain object in a simple manner, with the ability to destroy terrain objects and maintain traces even after destruction, while reducing processing costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025113077000001_ABST
    Figure 2025113077000001_ABST
Patent Text Reader

Abstract

To provide a game program capable of giving a trace to topography that is deformed freely.SOLUTION: One example of an information processing system updates a voxel value of voxels included in a destruction range when a destruction action of a player character hits a topographic object, and deforms a topographic polygon mesh. The information processing system projects a polygon mesh for tracing on the topographic polygon mesh at a place that the destruction action hits, sets coordinates of an apex that can be projected on the topographic polygon mesh on the basis of the projected position, and sets an apex that cannot be projected on the topographic polygon mesh so as not to be displayed.SELECTED DRAWING: Figure 16
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a game program, an information processing system, an information processing apparatus, and an information processing method capable of executing a game using terrain.

Background Art

[0002] Conventionally, there is a game in which a polygon of a spool is generated when a character slides, and a texture is pasted to draw a trajectory (see, for example, Patent Document 1).

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] However, in the above conventional game, deformation of the ground is not assumed, and there is room for improvement to leave a trajectory when the terrain is deformed.

[0005] Therefore, an object of the present invention is to provide a game program, an information processing system, an information processing apparatus, and an information processing method capable of leaving a mark on freely deformable terrain.

Means for Solving the Problems

[0006] In order to solve the above problems, the present invention employs the following configuration.

[0007] The game program of this embodiment is a game program executed on a computer of an information processing apparatus. The computer is caused to store, in a storage medium, terrain volume data which is data for representing a terrain object in a virtual space and holds a voxel value indicating the degree to which an object occupies the space defined by each voxel in a voxel space arranged in the virtual space, and terrain polygon mesh data which is generated based on the terrain volume data and indicates a terrain polygon mesh representing the surface of the terrain object. Further, the game program causes the computer to perform a deformation action of deforming the terrain object on a player character in the virtual space based on an operation input of the player. When the deformation action hits the terrain object, the voxel values of the voxels included in a deformation range set based on the position where the deformation action hits are updated, and the terrain polygon mesh data is updated in response to the update of the voxel values. Further, the game program causes the computer to project a trace polygon mesh toward the terrain polygon mesh at a location where the deformation action hits the terrain object, and for each vertex included in the trace polygon mesh, set the coordinates of the vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that a polygon including vertices that cannot be projected onto the terrain polygon mesh is not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh. Then, the game program causes the computer to generate an image of the virtual space by a rendering process including rendering of the terrain polygon mesh or a display terrain polygon mesh for displaying the surface of the terrain object, which is generated separately from the terrain polygon mesh, and rendering of the trace polygon mesh using a trace texture indicating a trace of the deformation action.

[0008] According to the above, when a deformation action hits a terrain object, a trace polygon mesh is projected onto the terrain polygon mesh at the hit location, the coordinates of the vertices that can be projected are set based on the projected position, and the vertices that cannot be projected are made invisible. As a result, the trace polygon mesh can be arranged on the terrain object in a simple manner, and the trace of the deformation action can be left on the terrain object.

[0009] In the above configuration, the deformation action may be a destruction action that destroys the terrain object. When the destruction action hits the terrain object, the game program may cause the computer to update the voxel value so that the voxel included in the deformation range becomes a value indicating that the terrain object does not exist.

[0010] According to the above, the terrain object can be destroyed by a destruction action, and the trace of the destruction action can be left on the terrain object.

[0011] In the above configuration, the destruction action may be an action performed from the player character in a specified direction. The game program may cause the computer to project the trace polygon mesh in the direction in which the destruction action is performed from a starting position based on the position of the player character, thereby performing the projection at the location where the destruction action hits.

[0012] According to the above, the destruction action can be performed in a specified direction from the position of the player character, and the trace polygon mesh can be arranged on the terrain object according to the position of the player character and the direction of the destruction action.

[0013] In the above configuration, the game program may further cause the computer to, in the drawing of the trace polygon mesh, not draw a portion where the terrain object does not exist within a predetermined range on the back side of the trace polygon mesh, and draw a portion where the terrain object exists within the predetermined range.

[0014] According to the above, in the drawing process of the trace polygon mesh, by drawing a portion where the terrain object exists within a predetermined range on the back side of the trace polygon mesh, it is possible to leave some traces and make the traces in other portions invisible.

[0015] In the above configuration, when the destruction action is further performed on the terrain object on which the trace polygon mesh is disposed, the game program may further cause the computer to project the trace polygon mesh again toward the terrain polygon mesh, set the coordinates of the vertices that can be projected onto the terrain polygon mesh based on the projected position, and set the polygon including the vertices that cannot be projected onto the terrain polygon mesh not to be displayed, thereby disposing the trace polygon mesh on the terrain polygon mesh.

[0016] According to the above, when the destruction action is further performed on the terrain object on which the trace polygon mesh is disposed, by performing the same projection process again, it is possible to leave a trace on the destroyed terrain object.

[0017] In the above configuration, the game program may further cause the computer to set the opacity of the vertices in the trace polygon mesh that are in contact with the polygon set not to be displayed to be lower than the opacity of the other vertices that can be projected onto the terrain polygon mesh.

[0018] According to the above, by reducing the opacity of the vertices in contact with the polygon set not to be displayed, the vertices close to the vertices that cannot be projected onto the terrain object can be made translucent. Thereby, the boundary of the trace displayed on the terrain object can be made natural.

[0019] In the above configuration, the game program may cause the computer to generate the terrain polygon mesh by an algorithm for arranging polygons so that vertex positions are determined between voxels where the terrain object does not exist and voxels where it exists based on the voxel values, and based on the fact that the deformation action has hit, recalculate the vertex positions of the terrain polygon mesh in a range including at least the voxels whose voxel values have been updated.

[0020] According to the above, when the voxel value is updated, the terrain polygon mesh can be updated, and the deformation of the terrain object can be easily performed.

[0021] Also, a game program according to another embodiment is a game program executed on a computer of an information processing apparatus. The game program causes the computer to store, in a storage medium, terrain polygon mesh data indicating a terrain polygon mesh representing the surface of a terrain object in a virtual space. The game program causes the computer to generate a deformation event that deforms the terrain object in the virtual space, and based on the occurrence of the deformation event, deforms the terrain polygon mesh. Further, the game program causes the computer to project a trace polygon mesh toward the terrain polygon mesh at the location where the deformation event has occurred, and for each vertex included in the trace polygon mesh, set the coordinates of the vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that a polygon including vertices that cannot be projected onto the terrain polygon mesh is not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh. Then, the game program causes the computer to generate an image of the virtual space by a drawing process including drawing the terrain polygon mesh or a display terrain polygon mesh for displaying the surface of the terrain object, which is generated separately from the terrain polygon mesh, and drawing the trace polygon mesh using a trace texture indicating a trace of the deformation event.

[0022] According to the above, when a deformation event occurs, at the location where the event has occurred, a trace polygon mesh is projected onto the terrain polygon mesh, the coordinates of the vertices that can be projected are set based on the projected position, and the vertices that cannot be projected are made non-displayed. As a result, the trace polygon mesh can be arranged on the terrain object in a simple manner, and a trace of the deformation event can be left on the terrain object.

[0023] In the above configuration, when the deformation event occurs again for the terrain object on which the trace polygon mesh is arranged, the game program may further cause the computer to deform the terrain polygon mesh, leave the part of the trace polygon mesh corresponding to the part of the terrain polygon mesh that has not been deformed, and control so that the part of the trace polygon mesh corresponding to the deformed part of the terrain polygon mesh is not displayed.

[0024] According to the above, when the deformation event occurs again for the terrain object on which the trace polygon mesh is arranged, the terrain polygon mesh can be deformed and traces can be left on the part of the terrain polygon mesh that has not been deformed.

[0025] Also, another embodiment may be an information processing system that executes the above game program, or an information processing apparatus, or an information processing method.

Advantages of the Invention

[0026] According to the present invention, the trace polygon mesh can be arranged on the terrain object by a simple method, and for example, the trace of the deformation action can be left on the terrain object.

Brief Description of the Drawings

[0027]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Mode for Carrying Out the Invention

[0028] [1. Configuration of the Game System] Hereinafter, a game system according to an example of the present embodiment will be described. FIG. 1 is a diagram showing an example of the game system. An example of the game system 1 in the present embodiment includes a main body device (information processing device; functioning as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The main body device 2 is a device that executes various processes (for example, game processing) in the game system 1. The left controller 3 and the right controller 4 are devices provided with operation units for the user to input.

[0029] The main body device 2 is such that the left controller 3 and the right controller 4 are each detachable. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2 and the left controller 3 and the right controller 4 as separate entities. Note that hereinafter, the left controller 3 and the right controller 4 may be collectively referred to as "controller".

[0030] FIG. 2 is a block diagram showing an example of the internal configuration of the main body device 2. The main body device 2 includes, in addition to the configuration shown in FIG. 1, each of the components 17, 21, 23, 81 to 85, and 91 shown in FIG. 2. Some of these components 17, 21, 23, 81 to 85, and 91 may be mounted on an electronic circuit board as electronic components and housed in the housing 11.

[0031] The main body device 2 includes a display 12. The display 12 displays an image generated by the main body device 2. In the present embodiment, the display 12 is a liquid crystal display device (LCD). However, the display 12 may be any type of display device.

[0032] The main body device 2 also includes a left terminal 17 which is a terminal for the main body device 2 to perform wired communication with the left controller 3, and a right terminal 21 for the main body device 2 to perform wired communication with the right controller 4.

[0033] The main body device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes performed in the main body device 2. For example, it may be composed of only a CPU (Central Processing Unit), or may be composed of a SoC (System-on-a-chip) including a plurality of functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various information processes by executing an information processing program (for example, a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium mounted in the slot 23, etc.).

[0034] The main body device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as an example of an internal storage medium built therein. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is mainly a memory used to store various data (which may be programs) stored in the main body device 2. The DRAM 85 is a memory used to temporarily store various data used in information processing.

[0035] The main body device 2 includes a slot 23. The slot 23 has a shape capable of mounting a storage medium of a predetermined type. The storage medium of the predetermined type is, for example, a storage medium (for example, a dedicated memory card) dedicated to the game system 1 and information processing devices of the same type. The storage medium of the predetermined type is used to store, for example, data used in the main body device 2 (such as save data of an application, etc.) and / or programs executed in the main body device 2 (such as application programs, etc.).

[0036] The main body device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23 and reads and writes data to and from a storage medium of a predetermined type (for example, a dedicated memory card) mounted in the slot 23 according to instructions from the processor 81.

[0037] The processor 81 appropriately reads and writes data between the flash memory 84 and the DRAM 85 and the above-mentioned storage media to execute the above-mentioned information processing.

[0038] The main body device 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates (specifically, wirelessly communicates) with an external device via a network. In the present embodiment, the network communication unit 82 connects to a wireless LAN and communicates with an external device by a method compliant with the Wi-Fi standard as a first communication mode. Further, the network communication unit 82 performs wireless communication with other main body devices 2 of the same type by a predetermined communication method (for example, communication by a proprietary protocol or infrared communication) as a second communication mode. Note that the wireless communication by the second communication mode enables wireless communication with other main body devices 2 arranged within a closed local network area, and realizes a function enabling so-called "local communication" in which data is transmitted and received by direct communication between a plurality of main body devices 2.

[0039] The main body device 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. The communication method between the main body device 2 and the left controller 3 and the right controller 4 is arbitrary, but in the present embodiment, the controller communication unit 83 communicates with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.

[0040] The processor 81 is connected to the above-described left terminal 17 and right terminal 21. When the processor 81 performs 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. Further, when the processor 81 performs 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. Thus, in the present embodiment, the main body device 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4, respectively.

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

[0042] FIG. 3 is a block diagram showing an example of the internal configuration of the main body device 2, the left controller 3, and the right controller 4. Note that details of the internal configuration regarding the main body device 2 are shown in FIG. 2 and thus are omitted in FIG. 3.

[0043] The left controller 3 includes a terminal 42 for the left controller 3 to perform wired communication with the main body device 2. The left controller 3 also includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 3, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 both by wired communication via the terminal 42 and by wireless communication without using the terminal 42. The communication control unit 101 controls the communication method that the left controller 3 performs with the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. When the left controller 3 is removed from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83).

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

[0045] The left controller 3 includes one or more buttons 103. The left controller 3 also includes an analog stick (described as “stick” in FIG. 3) 32. The buttons 103 and the analog stick 32 output information regarding an operation performed on themselves to the communication control unit 101 repeatedly at an appropriate timing.

[0046] The communication control unit 101 acquires information related to input (specifically, information related to operations) from each input unit (specifically, the button 103 and the analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing predetermined processing on the acquired information) to the main body device 2. Note that the operation data is repeatedly transmitted at a rate of once every predetermined time. Note that the intervals at which the information related to input is transmitted to the main body device 2 may be the same or different for each input unit.

[0047] When the above operation data is transmitted to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine operations for moving the left controller 3 and operations on the button 103 and the analog stick 32 based on the operation data.

[0048] The left controller 3 includes a power supply unit 108. In the present embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and is also connected to each part of the left controller 3 (specifically, each part that receives power supply from the battery).

[0049] As shown in FIG. 3, the right controller 4 includes a communication control unit 111 that communicates with the main body device 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main body device 2 both by wired communication via the terminal 64 and by wireless communication without using the terminal 64 (specifically, communication according to the Bluetooth (registered trademark) standard), and controls the communication method performed by the right controller 4 with respect to the main body device 2.

[0050] The right controller 4 includes the same input units as those of the left controller 3. Specifically, the right controller 4 includes a button 113 and an analog stick 52. These input units have the same functions as those of the input units of the left controller 3 and operate in the same manner.

[0051] The right controller 4 includes a power supply unit 118. The power supply unit 118 has the same function as the power supply unit 108 of the left controller 3 and operates in the same manner.

[0052] [2. Outline of Processing in the Game System] Next, with reference to FIGS. 4 to 11, an outline of the processing executed in the game system 1 will be described. In the present embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters operated by a player) are arranged in a game space, which is a three-dimensional virtual space, and causes the display device to display the game image. Note that, in the present embodiment, the display device on which the game image is displayed may be the above-described display 12 or a stationary monitor.

[0053] [2-1. Voxel] In the present embodiment, for some objects in the game space, the shape is defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, a 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 the present embodiment, the game system 1 stores voxel data as data for generating voxel objects in the game space for each of a plurality of voxels set in the game space.

[0054] FIG. 4 is a diagram showing an example of a terrain object that is a voxel object. As shown in FIG. 4, in the present embodiment, a terrain object representing a terrain such as the ground is defined in shape by voxel data (that is, it is a voxel object). Each cube shown in FIG. 4 represents a terrain object. In FIG. 4, the portions that are the sides of the terrain object are shown with thick lines, but these thick lines are added for the purpose of making the drawing easier to view, and in reality, it is not necessary for the sides of the terrain object to be displayed thickly.

[0055] Also, the terrain object shown in FIG. 4 is generated, for example, according to the rule that "if the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and if it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 4 is shown for the purpose of clearly exemplifying the relationship between a voxel and a voxel object. In the present embodiment, in reality, for example, like the terrain object shown in FIG. 10 described later, a voxel object is generated (based on voxel data) according to a rule that results in a more complex shape compared to the length of one side of a voxel. 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. 4 or a voxel object as shown in FIG. 11 based on object data.

[0056] Regarding the voxel object, the shape can be changed by changing the voxel data of each voxel. FIGS. 5 and 6 are diagrams showing an example of the state before and after a part of the terrain object shown in FIG. 4 is deleted. That is, when the hatched portion of the terrain object shown in FIG. 5 is destroyed, the terrain object changes to the shape shown in FIG. 6. At this time, the game system 1 can easily erase the terrain object by rewriting the voxel data described later so as to indicate that there is no terrain object for the voxels in the hatched portion. Note that when the game system 1 adds a terrain object, it can easily change the shape of the terrain object by changing the voxel data of each voxel in the same manner as when erasing the terrain object.

[0057] In this way, the game system 1 can freely change the shape of the voxel object by rewriting the voxel data. For example, when the shape of a terrain object in a game is changed as a result of being destroyed for some reason (e.g., a player character strikes the terrain object), the game system 1 does not directly change the data indicating the outer shape of the terrain object (i.e., the mesh described later), but can freely change the shape of the terrain object by changing the voxel data used for generating the terrain object.

[0058] FIG. 7 is a diagram showing an example of the content of the voxel data. Here, in the present embodiment, the game space can be divided into a plurality of voxels arranged in a grid pattern. The game system 1 stores by associating voxel data with each voxel in the game space. The voxel data indicates the presence or absence of a voxel object in the voxel corresponding to the voxel data.

[0059] As shown in FIG. 7, the voxel data includes density data. The density data is data of density indicating the degree to which an object is included in the region where each voxel is defined. Although details will be described later, the position and shape of the surface of the voxel object (that is, the mesh described later) are determined based on the above density. That is, in the present embodiment, the above density is also data used to create a mesh that defines the surface of the voxel object.

[0060] In the present embodiment, the density can take an integer value in the range from a lower limit value (for example, 0) to an upper limit value (for example, 255). In the present embodiment, in the game system 1, when the value of the density set for a voxel is high, the above ratio in the voxel is large, and when the value of the density is low, the ratio of the volume occupied by the voxel object in the voxel is small. For example, when the density is 0, there is no object in the voxel, when the density is 255, all of the voxel is an object, and when the density is a value in between, the object can occupy the voxel at a ratio corresponding to the value. Then, based on the density, the shape of the voxel mesh, that is, the shape of the voxel object is determined. However, the shape of the voxel object generated based on the above density does not necessarily have a volume that exactly matches the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 4 and the method of generating a voxel object as shown in FIG. 11, the volumes may be different even though they are based on the same density.

[0061] In other embodiments, the density may indicate either a state in which the entire region within the voxel is occupied by the voxel object or a state in which the voxel object is not included in the region within the voxel. For example, the density data may be data that can only take either 0 or 1.

[0062] As shown in FIG. 7, the voxel data includes material data. The material data indicates the material (in other words, the substance) of the voxel object generated from the voxel data. Here, in the present embodiment, materials such as sand, rock, and soil are set for the voxel object. That is, in the present embodiment, a plurality of types of materials are prepared as materials that can be set for the voxel object, and any one of the plurality of types of materials is set for the voxel object.

[0063] As shown in FIG. 7, in the present embodiment, the material data indicates identification information of the material (referred to as "material ID"). Further, in the present embodiment, the game system 1 stores material information indicating the properties and textures of the materials prepared in the game for each material. In the present embodiment, the material information associates the material ID, the properties of the material, and the appearance of the material (specifically, the texture). Specifically, the material information is information that associates the material ID, the identification information of the properties of the material (referred to as "property ID"), and the identification information of the texture of the material (referred to as "texture ID") (see FIG. 7).

[0064] FIG. 8 is a diagram showing an example of property information indicating the properties of the material. As shown in FIG. 8, 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 properties of the material are the properties that the voxel object in which the material is set has in the game, and are, for example, information such as the weight and slipperiness shown in FIG. 8. Note that the specific content of the property is arbitrary, and for example, the following information may be set as the properties of the material. · Temperature · Fragility (for example, the number of times until the voxel object breaks when an impact is applied to the voxel object) · Whether another object adheres 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 obtained by the player character when the player character destroys a voxel object Note that the specific content of the properties set for the material is arbitrary. In other embodiments, information different from the above may be set as information indicating the properties of the material.

[0065] FIG. 9 is a diagram showing an example of texture information indicating the texture of a material. As shown in FIG. 9, the game system 1 stores texture information associating the above texture ID with the texture indicated by the texture ID.

[0066] Note that, as data defining the appearance of the voxel object, in addition to the texture information, any information regarding color and / or pattern may be set. For example, as information regarding the appearance of the voxel object, a crack pattern may be set. By using such a pattern, the game system 1 can generate an image of a voxel object representing an appearance with cracks.

[0067] As described above, in the present embodiment, the material data defines the properties of the voxel object and the texture used for the voxel object by the material ID. For example, when the material ID indicated by the material data included in the voxel data is "002", the property indicated by the property ID "001" associated with the material ID in the material information is set as the property of the voxel object corresponding to the voxel data (see the arrow shown in FIG. 7). Also, in the above case, the texture indicated by the texture ID "002" associated with the material ID in the material information is applied to the voxel object corresponding to the voxel data (see the arrow shown in FIG. 7).

[0068] As described above, in the present embodiment, the game system 1 manages the properties and textures of materials separately. Therefore, in the present embodiment, it is possible to easily set a plurality of types of materials that have the same properties but different appearances (i.e., textures), or a plurality of types of materials that have different properties but the same appearance.

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

[0070] Also, the material data may be information related to the material and may further indicate other information different from the above properties and textures. For example, the material data may include effect data indicating an effect that occurs when an effect generation condition (for example, a part of the voxel object is destroyed, or a character steps on the voxel object) set for the voxel object is satisfied. Note that the effect data may be data indicating an effect image (for example, an effect image representing that the voxel object has been destroyed), or may be data indicating an effect sound (the sound of footsteps when a character walks on the voxel object).

[0071] As shown in FIG. 7, the voxel data includes state data indicating the state of the voxel object. The specific content of the state data is arbitrary. For example, the state data may be data indicating whether the voxel object is in a wet state, or may be data indicating the amount of damage applied to the voxel object. The content of the state data may be updated during the game.

[0072] [2-2. Mesh] In this embodiment, the surface of the voxel object is represented by a mesh. A mesh is a collection of a plurality of surfaces (specifically, polygons) arranged in the game space. In this embodiment, the game system 1 generates a mesh of the voxel object based on the voxel data of each voxel set in the game space. Hereinafter, an example of generating a mesh based on voxel data will be described.

[0073] FIG. 10 is a diagram showing an example of a method for generating a mesh. In FIG. 10, for the purpose of making the drawing easy to view and the explanation easy to understand, the voxels and the mesh are represented two-dimensionally, but actually, a three-dimensional mesh is generated based on the voxels in the three-dimensional space.

[0074] As described above, in the present embodiment, the density set for a voxel is set in the range of 0 to 255. Also, in the present embodiment, a voxel with a density equal to or higher than the reference value is considered to be inside the object, and a voxel with a density lower than the reference value is considered to be outside the object. It is not necessary to define only the voxel with a density of 0 as being outside the object (i.e., reference value = 1), and the reference value may be, for example, 128. In the example shown in FIG. 10, the density is 0 in voxel 201 and other outer voxels, the density in voxel 202 is 100 which is lower than the reference value, and the densities in voxels 203 and 204 are set to 150 and 200 which are equal to or higher than the reference value. In the present embodiment, the game system 1 generates vertices between voxels with a density equal to or higher than the reference value and voxels with a density lower than the reference value. Specifically, for each region spanning eight (four in the drawing) adjacent voxels (the region surrounded by a dotted line in the drawing), a determination is made as to whether to generate a vertex. That is, a vertex is generated in a region spanning both a voxel with a density equal to or higher than the reference value and a voxel with a density lower than the reference value. Further, when the boundary between adjacent vertices (the boundary of the above-described region including each vertex) passes between a voxel with a density equal to or higher than the reference value and a voxel with a density lower than the reference value, a polygon mesh is generated by connecting those vertices. The coordinates of the vertex are determined by comparing the densities of adjacent voxels for each of the X, Y, and Z axes and performing interpolation based on the density difference. At this time, coordinate calculation can be further performed based on normal information. The normal information may be held in advance for at least some of the voxels, or if not held, the normal information may also be calculated based on the densities of adjacent voxels. In FIG. 10, since the density of voxel 202 is lower than the reference value, voxel 202 is treated as being outside the object in the determination of the presence or absence of a vertex, but the density value itself of voxel 202 is used for the coordinate calculation of the generated vertex. If the reference value is set to a value lower than the density of voxel 202, more vertices will be added to the upper right and upper left sides of voxel 202 in FIG. 10.

[0075] By generating a polygon mesh as described above, it is possible to generate a shape having a volume that reflects to some extent the density for each voxel. However, depending on the relationship with adjacent voxels, there may be cases where a voxel with a density of 0 includes a region within the object, or a voxel with a density of 255 includes a region outside the object. Also, in this embodiment, since voxels with a value less than the reference value are processed as outside the object, the volume is smaller by the amount that the number of vertices is reduced compared to the case of processing them as inside the object. That is, it is not necessary to calculate the polygon mesh so as to have a volume that exactly corresponds to the density value.

[0076] FIG. 11 is a diagram showing an example of a game image including a terrain object. In this embodiment, by generating a mesh as described above, a voxel object can be made into a shape with complex irregularities compared to, for example, the length of one side of a voxel.

[0077] Note that the method of generating a mesh based on voxel data is arbitrary. For example, in other embodiments, when the density of voxel data is greater than a predetermined value, a mesh may be generated such that a cube is arranged at the voxel (see FIG. 4).

[0078] For each face of the mesh generated as described above, the game system 1 determines the appearance (i.e., color and / or pattern) of each face according to the material specified by the voxel data. Specifically, the game system 1 determines the texture to be used for rendering each face of the mesh based on the voxel data, and generates an image of the voxel object by mapping the determined texture to each face. Note that the texture mapped to each face of the mesh is determined based on the voxel data of the voxels (referred to as target voxels) used to generate the face among the voxels where the voxel object exists. Note that the target voxels depend on the method of generating the mesh, and are, for example, one or more voxels arranged around the face. That is, the texture mapped to the face of the mesh is determined to be a texture corresponding to the material set for one or more voxels arranged around the face.

[0079] In other embodiments, one voxel data may include multiple types (e.g., two types) of material data. In this case, the voxel data includes ratio data regarding the multiple types of material data. The ratio data is data for determining the texture to be used for the voxel object, and indicates the ratio by which each material (specifically, the texture corresponding to the material) indicated by the multiple types of material data affects the appearance (specifically, color and / or pattern) of the voxel object. Also, when determining the texture mapped to each face of the mesh, the texture is determined based on various data (specifically, density data, multiple types of material data, and ratio data) included in the voxel data of the target voxels. For example, when multiple types of materials are set for the target voxels corresponding to one face, the texture corresponding to the material (one type) with the greatest degree of influence may be used considering the ratio, or each texture corresponding to the multiple types of materials may be used considering the ratio.

[0080] In another embodiment, there may be both a voxel object that uses voxel data including one type of material data and a voxel object that uses voxel data including two types of material data.

[0081] (Overview of Game Processing) Next, the deformation of the terrain object (voxel object) performed in the game of this embodiment will be described. In the game of this embodiment, a terrain object and a player character PC are arranged in a virtual space. The terrain object is an object that forms terrains such as the ground and mountains, and different terrain objects are arranged according to the game scene. For example, in a rocky mountain scene, objects imitating rocks and soil are arranged in the virtual space as the terrain object. Also, in another scene, an object imitating a grassland and an object imitating a river, lake, etc. are arranged as the terrain object. In addition to these, terrain objects forming various terrains are arranged according to scenes such as a desert scene, a volcanic scene, and a city street scene. Note that the terrain object may be an object imitating artificial structures such as roads, bridges, and buildings.

[0082] Based on the player's operation input, the player character PC moves on the terrain object, jumps on the terrain object, or performs a deformation action on the terrain object. The deformation action is an action that deforms the terrain and is an action that can change the voxel value (specifically, density) set for each voxel. In this embodiment, as an example of the deformation action for deforming the terrain object, the player character PC performs a destruction action to destroy the terrain object. FIG. 12 is a diagram showing an example of a game image when the player character PC performs a destruction action on the terrain object TO.

[0083] As shown in FIG. 12, the player character PC performs a punch as an example of a destruction action in response to the player's instruction. Specifically, the player character PC performs a destruction action in a direction corresponding to the player's direction input (for example, direction input using a stick). For example, the player character PC performs a destruction action in any one of the horizontal direction, the downward direction, and the upward direction. As shown in FIG. 12, when the player character PC performs a destruction action toward the terrain object TO, the destruction action may hit the terrain object TO. The determination as to whether the destruction action hits the terrain object TO is made based on the position of the player character PC, the direction of the destruction action, and the terrain polygon mesh representing the surface of the terrain object TO. When it is determined that the destruction action hits the terrain object TO, the hit position is determined. The hit position is determined based on the position of the player character PC, the direction of the destruction action, and the terrain polygon mesh.

[0084] FIG. 13 is a diagram showing an example of a game image after the destruction action hits the terrain object TO. As shown in FIG. 13, when the destruction action hits the terrain object TO, a trace tr is added on the terrain object TO at the location where the destruction action hits. The trace tr indicates that the destruction action has hit the terrain object TO and is displayed on the surface of the terrain object TO including the hit position. The trace tr is, for example, an image such as a crack in the terrain object TO.

[0085] FIG. 14 is a diagram showing an example of a game image when a destruction action further hits the terrain object TO from the state of FIG. 13. As shown in FIG. 14, when a destruction action is further performed by the player character PC and the destruction action hits the terrain object TO, the terrain object TO included in a predetermined destruction range including the hit position is destroyed. That is, the terrain object TO included in the destruction range ceases to exist, and a hole (cavity) is formed in the terrain object TO. When the terrain object TO included in the destruction range is destroyed, a part of the trace tr included in the destruction range also disappears, but a part of the trace tr not included in the destruction range remains.

[0086] As described above, when the destruction action hits the terrain object TO, a trace tr is added to the surface of the terrain object TO. Also, when the destruction action hits the terrain object TO, a part of the terrain object TO is destroyed.

[0087] Note that in the above description, it has been described that when the destruction action hits the terrain object TO once, the trace tr is added, and when the destruction action hits the terrain object TO one more time, the terrain object TO is destroyed. This is merely an example, and the number of hits of the destruction action until the trace tr is added and the number of hits of the destruction action until the terrain object TO is destroyed are not limited to this. For example, when the destruction action hits the terrain object TO a plurality of times, the trace tr may be added, and when the destruction action hits the terrain object TO one more time or a plurality of times, the terrain object TO may be destroyed. Also, when the destruction action hits the terrain object TO one time or a plurality of times, the trace tr may be added and the terrain object TO may be destroyed. That is, the addition of the trace tr and the destruction of the terrain object TO may be performed at the same timing.

[0088] Next, a specific method for adding the trace tr onto the terrain object will be described. FIG. 15 is a diagram for explaining a method of adding the trace tr onto the terrain object TOJ.

[0089] As shown in FIG. 15, when the destruction action of the player character PC hits the terrain object TOJ arranged in the virtual space, a polygon mesh trpm for trace is arranged at a starting position (initial position) based on the position of the player character PC. The polygon mesh trpm for trace is used to add the trace tr onto the terrain object TOJ where the destruction action hits. The polygon mesh trpm for trace is a plate-shaped object formed by a plurality of polygons including a plurality of vertices Vt. The polygon mesh trpm for trace arranged at the starting position is deformed and arranged along the surface of the terrain object TOJ. Specifically, the polygon mesh trpm for trace arranged at the starting position is projected toward the terrain object TOJ.

[0090] FIG. 16 is a diagram showing an example of the state where the polygon mesh trpm for trace is projected onto the terrain object TOJ. As shown in FIG. 16, each vertex Vt of the polygon mesh trpm for trace is projected onto the surface of the terrain object TOJ (terrain polygon mesh TOJPM representing the surface of the terrain object TOJ). In FIG. 16, the white circles are the vertices Vt of the polygon mesh trpm for trace before projection, and the black circles are the vertices Vt' of the polygon mesh trpm for trace after projection. Each vertex Vt is projected in the direction of the destruction action. For example, a straight line parallel to the direction of the destruction action passing through the vertex Vt is cast (raycast is performed), and the intersection point between the straight line and the terrain polygon mesh TOJPM is calculated. Based on the intersection point, the coordinates of the vertex Vt' after projection are set. The vertex Vt' after projection is set at a position closer to the vertex Vt before projection than the intersection point. Thereby, the polygon mesh trpm for trace is preferentially displayed over the terrain polygon mesh TOJPM. Note that the vertex Vt' after projection may be set at the position of the intersection point.

[0091] In this way, by projecting each vertex Vt of the polygon mesh trpm for traces onto the terrain object TOJ, the polygon mesh trpm for traces is arranged along the surface of the terrain object TOJ. Then, a trace texture (for example, an image representing cracked rock) indicating the trace of the destruction action is applied to the polygon mesh trpm for traces. As a result, a trace tr indicating that the destruction action has hit the terrain object TOJ remains, and the state of the rock cracking due to the destruction action can be displayed.

[0092] Here, there may be a case where the vertex Vt of the polygon mesh trpm for traces cannot be projected onto the terrain object TOJ. For example, when a straight line parallel to the direction of the destruction action passing through the vertex Vt does not intersect the terrain polygon mesh TOJPM, the vertex Vt cannot be projected onto the terrain object TOJ. Such a vertex Vt is excluded as an unnecessary vertex.

[0093] FIG. 17 is a diagram showing an example of a vertex Vtf that cannot be projected onto the terrain object TOJ. In FIG. 17, the white triangles represent the vertices Vtf that cannot be projected onto the terrain object TOJ. Also, the black circles represent the vertices Vt2 that can be projected onto the terrain object TOJ. Further, the white circles represent the vertices that can be projected onto the terrain object TOJ and are in contact with the polygon St1 including the vertex Vtf, which is the vertex Vt1. As shown in FIG. 17, among the plurality of vertices Vt of the polygon mesh trpm for traces, if the vertex Vtf cannot be projected onto the terrain object TOJ, the vertex Vtf is excluded from the display target as an unnecessary vertex. Also, the polygon St1 including the excluded vertex Vtf is excluded from the display target as an unnecessary polygon. Also, the vertex Vt1 in contact with the polygon St1 is made semi-transparent. For the other vertices Vt2 that can be projected onto the terrain object TOJ, they are set to be displayed.

[0094] For example, for a vertex Vtf that cannot be projected onto the terrain object TOJ, the opacity of the vertex Vtf is set to "0" so that it is not displayed. Also, the vertex Vtf may be set so as not to be connected to other vertices. As a result, the polygon St1 including the vertex Vtf is not displayed as part of the trace tr. Also, for the vertex Vt1 in contact with the polygon St1, the opacity is lowered compared to the vertex Vt2. Also, for the vertex Vt2, the opacity is set to a predetermined value (for example, the maximum value). In this way, the vertex Vtf that cannot be projected onto the terrain object TOJ can be made invisible, the vertex Vt2 that can be projected onto the terrain object TOJ can be displayed, and the intermediate vertex Vt1 can be made semi-transparent. Thereby, the trace tr can be left only on the terrain object TOJ where the destruction action has hit. Also, by lowering the opacity of the vertex Vt1, the contour of the boundary of the trace tr can be blurred, and a natural trace without a sense of incongruity can be displayed.

[0095] Note that the vertex Vtf that cannot be projected onto the terrain object TOJ may be deleted from the trace polygon mesh trpm. That is, the position information of the vertex Vtf that cannot be projected onto the terrain object TOJ may be deleted from the memory. Thereby, the vertex Vtf that cannot be projected onto the terrain object TOJ and the polygon including it may not be displayed.

[0096] FIG. 18 is a diagram showing an example of the trace polygon mesh trpm before and after excluding unnecessary vertices when the trace polygon mesh trpm is projected onto the terrain object TOJ.

[0097] As shown in FIG. 18, the vertex Vtf (the point indicated by the white triangle) is an unnecessary vertex that cannot be projected onto the terrain object TOJ, and the vertex Vt (the point indicated by the black circle) is the vertex projected onto the terrain object TOJ. When the unnecessary vertex Vtf is excluded after projection, as shown in the right figure of FIG. 18, the trace polygon mesh trpm is attached onto the terrain object TOJ, and a part of the trace polygon mesh trpm is not displayed outside the terrain object TOJ. As a result, when the destruction action hits the terrain object TOJ, the trace tr can be left only on the terrain object TOJ at the hit location.

[0098] In this embodiment, a plurality of voxel spaces are set in the virtual space, and a plurality of terrain objects are formed based on the voxel data of each voxel space. FIG. 19 is a diagram showing a state in which another terrain object TOJ is arranged on the terrain object TO, and the player character PC performs a destruction action on the terrain object TOJ.

[0099] In the virtual space, a field voxel space representing the entire game field is fixed. By setting voxel values (specifically, density data and material data) in the voxel data of each voxel in the field voxel space, a terrain object TO (terrain polygon mesh TOPM representing the surface of the terrain object TO) is formed. The player character PC advances the game while moving on the terrain object TO or performing a destruction action on the terrain object TO to create a hole in the terrain object TO. The terrain object TO is a voxel object fixed in the virtual space and represents, for example, an object such as the ground, a slope, or a mountain rising from the ground. Also, separately from the field voxel space, a second movable voxel space in the virtual space is set, and voxel values are set in the voxel data of each voxel in the second voxel space. As a result, another terrain object TOJ (terrain polygon mesh TOJPM representing the surface of the terrain object TOJ) is formed on the terrain object TO. The terrain object TOJ is, for example, a rock placed on the ground.

[0100] As shown in FIG. 19, when a destruction action is performed by the player character PC, it is determined which terrain object the destruction action has hit. For example, when the destruction action hits the terrain object TOJ defined by the second voxel space, as described above, a trace polygon mesh trpm is projected onto the terrain object TOJ. The vertices Vtf of the trace polygon mesh trpm that cannot be projected onto the terrain object TOJ are excluded as unnecessary vertices. Therefore, as shown in FIG. 19, for the part of the trace polygon mesh trpm projected onto the terrain object TOJ (the solid line part along the terrain object TOJ), it is displayed, and for the part projected onto the terrain object TO (the dashed line part along the terrain object TO), it is not displayed. As a result, the trace tr is displayed only on the surface of the terrain object TOJ that the destruction action has hit.

[0101] Also, although illustration is omitted, when a destruction action hits a terrain object TO defined by a voxel space, a trace polygon mesh trpm is projected onto the terrain object TO. Among the trace polygon meshes trpm, the part projected onto the terrain object TO is displayed, and the part projected onto terrain objects other than the terrain object TO is not displayed. As a result, the trace tr is displayed only on the surface of the terrain object TO that the destruction action has hit.

[0102] That is, when a plurality of terrain objects exist in the virtual space, the trace polygon mesh trpm is projected onto the surface of the terrain object that the destruction action has hit, and the trace tr remains on the terrain object.

[0103] In addition, when the destruction action hits the terrain object TOJ, a trace polygon mesh trpm is placed, and it is determined whether a straight line parallel to the direction of the destruction action passing through the vertex Vt intersects the terrain polygon mesh TOJPM. If the straight line parallel to the direction of the destruction action passing through the vertex Vt does not intersect the terrain polygon mesh TOJPM that the destruction action hits, the vertex Vt is treated as a vertex that cannot be projected onto the terrain object TOJ. Here, even if a straight line L parallel to the direction of the destruction action passing through a certain vertex Vts intersects the terrain polygon mesh TOJPM, the vertex Vts may be treated as a vertex that cannot be projected onto the terrain object TOJ. For example, if the intersection point of the straight line L parallel to the direction of the destruction action passing through the vertex Vts and the terrain polygon mesh TOJPM is too far from the hit position of the destruction action, such a vertex Vts may be treated as a vertex that cannot be projected onto the terrain object TOJ. For example, if such a vertex Vts is projected onto the terrain object TOJ and remains as part of the trace polygon mesh trpm, the trace polygon mesh trpm may have an unnaturally extended shape. Therefore, such a vertex Vts may be treated as a vertex that cannot be projected onto the terrain object TOJ and excluded from the projected trace polygon mesh trpm. Note that such a vertex Vts may not be excluded as a vertex that cannot be projected onto the terrain object TOJ.

[0104] Next, the processing when a destruction action is performed on the terrain object where the trace polygon mesh trpm is placed will be described.

[0105] FIG. 20 is a diagram showing the state before a destruction action is performed on a terrain object TOJ on which a trace polygon mesh trpm is arranged. FIG. 21 is a diagram showing the state after a destruction action is performed on the terrain object on which the trace polygon mesh trpm is arranged. In FIGS. 20 and 21, a cross-sectional view of the terrain object TOJ on which the trace polygon mesh trpm is arranged is shown. As shown in FIGS. 20 and 21, a virtual camera VC is arranged on the left side, and an image of the virtual space as seen from the virtual camera VC is to be displayed on the display as a game image.

[0106] As shown in FIG. 20, when a destruction action is performed on the terrain object TOJ, a trace polygon mesh trpm is arranged on the terrain object TOJ before it is destroyed. In this case, the image of the virtual space as seen from the virtual camera VC becomes an image with a trace tr added on the terrain object TOJ, and becomes an image as if the terrain object TOJ is cracked.

[0107] On the one hand, as shown in FIG. 21, when a further destruction action is performed on the terrain object TOJ with the trace polygon mesh trpm arranged thereon and a part of the terrain object TOJ is destroyed, a cavity is formed in the terrain object TOJ. In this case, the trace polygon mesh trpm maintains the same shape as before destruction. However, among the trace polygon mesh trpm, the part corresponding to the undestroyed part of the terrain object TOJ is displayed, and the part corresponding to the destroyed part of the terrain object TOJ is made non-displayed. Specifically, among the trace polygon mesh trpm, the part where the terrain object TOJ exists in a predetermined range on the back side as viewed from the virtual camera VC (the solid line part in FIG. 21) is displayed. On the other hand, among the trace polygon mesh trpm, the part where the terrain object TOJ does not exist in a predetermined range on the back side as viewed from the virtual camera VC (the dashed line part in FIG. 21) is not displayed. More specifically, when drawing the image, for each pixel, the depth value of the terrain polygon mesh TOJPM representing the surface of the terrain object TOJ is compared with the depth value of the trace polygon mesh trpm. As a result of the comparison, if the trace polygon mesh trpm is on the front side and the difference in depth values is within a predetermined range, the front-side trace polygon mesh trpm is drawn. If the difference in depth values exceeds the predetermined range, the back-side terrain polygon mesh TOJPM is drawn. Thereby, a hole is formed in a part of the terrain object TOJ, and the trace tr in the hole part disappears, and an image is displayed such that the trace tr remains around the hole.

[0108] In addition, when a destruction action is further performed on the terrain object TOJ on which the trace polygon mesh trpm is arranged, the process of projecting the trace polygon mesh trpm onto the terrain object TOJ after destruction may be performed again. In this case, when the terrain object TOJ is destroyed, the trace polygon mesh trpm on the terrain object TOJ is deleted, and a new plate-shaped trace polygon mesh trpm is arranged at the start position and projected toward the terrain object TOJ after destruction. Then, the solid line portion of the trace polygon mesh trpm shown in FIG. 21 is displayed as the trace tr. Also, the broken line portion of the trace polygon mesh trpm shown in FIG. 21 is made non-displayed. Thereby, an image similar to FIG. 21 is displayed. In addition, in this case, the vertices of the trace polygon mesh trpm may be projected onto the surface of the terrain object TOJ at the back of the hole. In this case, the trace polygon mesh trpm is arranged along the surface of the terrain object TOJ after destruction, and has a shape having a solid line portion (the portion around the hole) shown in FIG. 21 and a portion along the surface of the hole (inside the hole). Thereby, traces tr of the destruction action remain around the hole and inside the hole. In addition, in this case, the portion of the trace polygon mesh trpm attached inside the hole may be made non-displayed. Thereby, the trace tr can be left only around the hole.

[0109] As described above, in the game of this embodiment, it is possible to leave traces of destruction actions on the terrain object. When leaving a trace on the terrain object, it is conceivable to examine the shape of the terrain object and deform the polygon mesh for the trace so as to match the shape of the terrain object. However, in such a method, when the shape of the terrain object is complex, the processing cost may increase when examining the shape. In particular, when the shape of the terrain object is freely deformed during the game according to the player's operation, the shape of the terrain object tends to become complex, and the processing may not be in time. However, in the method of projecting the polygon mesh for the trace onto the terrain object and excluding unnecessary vertices as described above, the polygon mesh for the trace can be arranged on the terrain object to match the shape of the terrain object with relatively simple calculations. Therefore, even when the terrain object changes during the game, a trace can be left on the terrain object.

[0110] (Details of Game Processing) Next, with reference to FIGS. 22 to 25, the details of the game processing in the game system 1 will be described.

[0111] FIG. 22 is a diagram showing an example of various data used in the game processing in the game system 1. As shown in FIG. 22, the game system 1 stores a game program, field voxel space data, second voxel space data, player character data, terrain polygon mesh data, and polygon mesh data for traces.

[0112] The game program is a program for executing the game processing (the game processing shown in FIG. 23) in this embodiment. The game program is pre-stored in the storage medium mounted in slot 23 or the flash memory 84, and is read into the DRAM 85 when the game is executed.

[0113] The field voxel space data is data regarding the entire field voxel space. The field voxel space data includes terrain volume data. The terrain volume data includes voxel data for each voxel within the field voxel space. The terrain volume data is data for representing terrain objects within the virtual space, and for each voxel included in the field voxel space, holds a voxel value (voxel data) indicating the degree to which an object occupies the space defined by the voxel. Each voxel data includes density data, material data, and damage value. By setting density and material for each voxel within the terrain volume data and generating a mesh based on the voxel data, terrain is formed within the virtual space. Initial terrain volume data is pre-stored in the storage medium attached to slot 23 or the flash memory 84. At the start of the game, the terrain volume data stored in the storage medium attached to this slot 23 or the flash memory 84 is read into the DRAM 85. Thereby, an initial terrain is formed. For example, as the initial terrain, a terrain object representing a flat ground, a terrain object representing a rocky mountain, etc. are formed. During the execution of the game, the terrain is changed by updating each voxel data included in the terrain volume data stored in the DRAM 85.

[0114] The second voxel space data is data regarding a second voxel space different from the field voxel space, arranged within the virtual space. The second voxel space data includes second terrain volume data. The second terrain volume data holds a plurality of voxel data for representing a movable voxel object within the virtual space (for example, a terrain object TOJ representing a substantially spherical rock).

[0115] The player character data is data regarding the player character PC, and includes data indicating the position and orientation within the virtual space, and data indicating the shape of the player character PC (polygon mesh data).

[0116] Terrain polygon mesh data represents a terrain polygon mesh that represents the surface of a terrain object. The terrain polygon mesh data includes, for example, data indicating the positions of the respective vertices in the terrain polygon mesh. The terrain polygon mesh data is generated based on the above terrain volume data. Note that when a plurality of voxel spaces are arranged in the virtual space and a plurality of terrain objects are arranged, the terrain polygon mesh data corresponding to each terrain object is stored.

[0117] Trace polygon mesh data is data related to a trace polygon mesh, and includes data indicating the positions of the respective vertices in the trace polygon mesh, data related to the lines connecting between the respective vertices, and data related to the opacity of the respective vertices. When a destruction action is performed at a plurality of locations of a terrain object, a trace tr remains at each location. The trace polygon mesh data corresponding to each trace tr is stored.

[0118] Note that in addition to the data shown in FIG. 22, the game system 1 stores various data. For example, the game system 1 may store data related to enemy characters that can move within the virtual space. The enemy characters may be voxel objects or 3D objects whose shapes are predetermined by polygon meshes.

[0119] FIG. 23 is a flowchart showing an example of the flow of game processing executed by the game system 1. The game processing shown in FIG. 23 is started, for example, in response to an instruction to start the game being given by the player.

[0120] In the present embodiment, the processor 81 of the main body device 2 will be described as executing the processing of each step shown in FIG. 23 by executing the above game program. However, in other embodiments, some of the processing of each of the above steps may be executed by a processor (for example, a dedicated circuit or the like) different from the processor 81. Further, when the game system 1 can communicate with another information processing device (for example, a server), part of the processing of each step shown in FIG. 23 may be executed in the other information processing device. Also, the processing of each step shown in FIG. 23 is merely an example, and if the same result can be obtained, the order of the processing of each step may be changed, or another processing may be executed in addition to (or instead of) the processing of each step.

[0121] Further, the processor 81 executes the processing of each step shown in FIG. 23 using a memory (for example, DRAM 85). That is, the processor 81 stores the information obtained by each processing step in the memory, and when using the information in subsequent processing steps, reads out the information from the memory and uses it.

[0122] As shown in FIG. 23, in step S1, the processor 81 sets a virtual space in an initial state. Specifically, the processor 81 acquires terrain volume data representing the terrain of the virtual space in the initial state from the storage medium mounted in the slot 23, and stores part or all of the acquired terrain volume data in the DRAM 85. Further, the processor 81 reads out player character data from the above storage medium, sets the initial position and posture of the player character, and stores them in the DRAM 85. Also, the processor 81 sets the initial position and posture of the virtual camera and stores them in the DRAM 85.

[0123] Note that the voxel data stored in the DRAM 85 may be voxel data for the entire range of the virtual space, or may be voxel data for a partial range of the virtual space used for generating game images. For example, the processor 81 may generate an object image using voxel data of voxels included in a partial range (for example, a range within a predetermined distance from the position of the virtual camera) of the virtual space. Further, when voxel data for a partial range of the virtual space is written, the same processing as in step S1 is executed at an appropriate timing (for example, the timing when the position of the virtual camera has moved more than a predetermined distance) during the execution of the series of processes in steps S2 to S10.

[0124] In step S2, the processor 81 generates a mesh for the voxel object. Specifically, for the terrain object, a terrain polygon mesh is generated based on terrain volume data (such as the terrain volume data of the field voxel space data, the second terrain volume data, etc.). The terrain polygon mesh is generated according to the method described in the above "[2-2. Mesh]". Further, the processor 81 generates a mesh for voxel objects other than the terrain object in the same manner. After step S2, the game is started, and during the game, the processes in steps S3 to S10 are repeatedly executed at a predetermined frame time interval (for example, at intervals of 1 / 60 second).

[0125] In step S3, the processor 81 controls the operation of the player character PC. For example, the processor 81 moves the player character PC, causes the player character PC to perform a destruction action, or makes the player character PC jump based on the operation data received from the controllers 3 and 4. The destruction actions of the player character PC may include a plurality of actions such as punching, kicking, throwing a rock, firing a bullet, etc. The process of step S4 is executed after step S3.

[0126] In step S4, the processor 81 determines whether a destruction action has been performed by the player character PC. The processor 81 determines whether a predetermined button of the controller has been pressed. If the determination result in step S4 is affirmative, the process of step S5 is executed. On the other hand, if the determination result in step S4 is negative, the process of step S8 is executed.

[0127] In step S5, the processor 81 performs a destruction action process. Here, first, it is determined whether the destruction action by the player character PC has hit a terrain object. If the destruction action hits a terrain object, the terrain object is destroyed or a trace tr is added to the terrain object. Details of the destruction action process in step S5 will be described later. Next, the processor 81 executes the process of step S6.

[0128] In step S6, the processor 81 determines whether to update the mesh. Here, if in step S5 the destruction action hits a terrain object and the terrain object is destroyed (when the voxel data is updated), the processor 81 determines to update the terrain polygon mesh. If the determination result in step S6 is affirmative, the process of step S7 is executed. On the other hand, if the determination result in step S6 is negative, the process of step S8 is executed.

[0129] In step S7, the processor 81 updates the mesh. Specifically, the processor 81 updates the terrain polygon mesh for the terrain object whose voxel data was changed in step S5. Thereby, based on the updated voxel data, the vertex positions of the terrain polygon mesh are recalculated. The updated terrain polygon mesh is stored in the DRAM 85 as terrain polygon mesh data. After step S7, the process of step S8 is executed.

[0130] In step S8, the processor 81 generates an image (game image) of the virtual space as seen from the virtual camera by performing rendering processing. Here, the processor 81 performs the rendering of each polygon mesh (terrain polygon mesh, trace polygon mesh, polygon mesh representing the player character PC, etc.) using the texture image corresponding to each polygon mesh. Note that the game system 1 stores a terrain texture image representing the terrain and a trace texture image representing the trace for each type of terrain (type of material). For example, when a destruction action hits a rocky terrain, the terrain polygon mesh is rendered using the terrain texture image representing the rocky terrain, and the trace polygon mesh is rendered using the trace texture image corresponding to the rocky terrain (an image such as a cracked rock). Specifically, for each polygon mesh, the processor 81 calculates a depth value (a value representing the position in the imaging direction of the virtual camera) for each pixel, and renders the polygon mesh with the calculated smaller depth value. Here, when the processor 81 renders the trace polygon mesh, it renders the portion where the terrain polygon mesh exists within a predetermined range on the back side of the virtual camera, and does not render the portion where the terrain polygon mesh does not exist within the predetermined range on the back side of the virtual camera. Thereby, when a destruction action hits a terrain object, a trace tr is displayed at the hit location. When the terrain object with the trace polygon mesh arranged on its surface is destroyed, a trace tr is displayed around the destroyed portion, and the trace tr disappears for the destroyed portion. In this case, the terrain polygon mesh inside the destroyed portion is rendered. The process of step S9 is executed after step S8.

[0131] In step S9, the processor 81 outputs the game image generated in step S8 to the display. The process of step S10 is executed after step S9.

[0132] In step S10, the processor 81 determines whether to end the game. For example, the processor 81 determines whether an instruction to end the game has been given by the user. If the determination result in step S10 is negative, the process of step S3 is executed again. Thereafter, a series of processes from steps S3 to S10 are repeatedly executed until it is determined in step S10 to end the game. On the other hand, if the determination result in step S10 is positive, the processor 81 ends the game process shown in FIG. 23.

[0133] (Destruction action process) Hereinafter, the details of the destruction action process in step S5 will be described with reference to FIG. 24. FIG. 24 is a flowchart showing an example of the destruction action process in step S5.

[0134] In step S21, the processor 81 determines whether the destruction action has hit the terrain object. Specifically, the processor 81 determines whether the destruction action has hit the terrain object based on the terrain polygon mesh representing the shape of the terrain object, the position of the player character PC, and the direction of the destruction action. For example, the processor 81 uses an object for collision detection to determine whether the destruction action has hit the terrain object. For example, the processor 81 launches an object for collision detection a predetermined distance in the direction of the destruction action from the position of the player character PC, and determines whether the object has collided with the terrain polygon mesh. Note that, as the terrain polygon mesh representing the shape of the terrain object, a terrain polygon mesh for collision detection for determining whether the destruction action has hit, and a terrain polygon mesh for display (for generating a game image) for displaying the terrain are prepared. Here, the processor 81 uses the terrain polygon mesh for collision detection to determine whether the destruction action has hit the terrain object. The terrain polygon mesh for collision detection represents the shape of the terrain object and is coarser than the terrain polygon mesh for display. By using the terrain polygon mesh for collision detection, the processing load related to the collision determination of whether the destruction action has hit can be reduced. Note that the terrain polygon mesh for collision detection and the terrain polygon mesh for display may be the same. That is, one terrain polygon mesh representing the shape of the terrain object may be prepared, and collision determination and drawing processing may be performed based on the terrain polygon mesh. If the processor 81 determines YES in step S21, the processor 81 then executes the processing of step S22. If the processor 81 determines NO in step S21, the processor 81 ends the processing shown in FIG. 24.

[0135] In step S22, the processor 81 sets the hit position of the destruction action and sets the destruction range. Specifically, the processor 81 first sets the hit position based on the terrain polygon mesh, the position of the player character PC, and the direction of the destruction action. Next, the processor 81 sets a predetermined destruction range including the hit position. The destruction range indicates the range when the terrain object is destroyed. The destruction range has a predetermined shape, and may be, for example, a sphere, a cylinder, a cone, an ellipsoid, a shape obtained by deforming an ellipsoid asymmetrically in the left-right direction, etc. Also, the destruction range may differ in its size and / or shape according to the type of the terrain object, the type of the destruction action, etc. After the process of step S22, the processor 81 executes the process of step S23.

[0136] In step S23, the processor 81 determines whether to destroy the terrain object hit by the destruction action. If the destruction condition is satisfied, the processor 81 determines to destroy the terrain object. The destruction condition is a condition based on the type of the destruction action, the material of the terrain object included in the destruction range, and the number of times the destruction action has hit the terrain object included in the destruction range. For example, if it is set to be destroyed when the destruction action hits 3 times, the destruction condition is satisfied by the hit of the third destruction action. Specifically, a damage value is stored in each voxel of the terrain object, and when the destruction action hits, the damage value of each voxel included in the destruction range is added. Then, when the damage value exceeds a predetermined value, the voxel is destroyed. If the processor 81 determines YES in step S23, it then executes the process of step S26, and if it determines NO in step S23, it then executes the process of step S24.

[0137] In step S24, the processor 81 determines whether to leave a trace on the terrain object. For example, depending on the relationship between the type of destruction action and the type of terrain object (type of material), there are cases where a trace is left and cases where it is not. Also, depending on the number of times the destruction action hits, there are cases where a trace is left and cases where it is not. Based on these, the processor 81 determines whether to leave a trace on the terrain object. For example, when the type of destruction action is a punch and the type of terrain object (type of material) is a rock, and the destruction action hits the terrain object twice, it is determined that a trace is left. If the processor 81 determines YES in step S24, it then executes the process of step S25. If it determines NO in step S24, it ends the process shown in FIG. 24. Note that when it is not determined to leave a trace in step S24, the processor 81 may change the texture image of the terrain object within a predetermined range including the hit position. For example, when the destruction action hits the terrain object once, the texture image of the terrain object may be changed without placing a trace polygon mesh on the terrain object in the next trace process. In this case, even without adding a trace polygon mesh to the terrain object, the display mode (e.g., color) of the terrain object can be changed. On the other hand, when the destruction action hits the terrain object twice, it is determined YES in step S24, and a trace polygon mesh may be placed on the terrain object in the next trace process.

[0138] In step S25, the processor 81 executes a trace process to leave a trace on the terrain object that the destruction action has hit. Hereinafter, the details of the trace process in step S25 will be described with reference to FIG. 25. FIG. 25 is a flowchart showing an example of the trace process in step S25.

[0139] (Trace Process) In step S31, the processor 81 first arranges the trace polygon mesh trpm in the virtual space. Specifically, the processor 81 arranges the plate-shaped trace polygon mesh trpm at the starting position based on the position of the player character PC so as to be perpendicular to the direction of the destruction action. The starting position (initial position) where the trace polygon mesh trpm is arranged may be slightly behind the player character PC, or may be at the position of the player character PC. Also, the starting position where the trace polygon mesh trpm is arranged may be in front of the player character PC. Next to step S31, the process of step S32 is performed.

[0140] In step S32, the processor 81 projects each vertex of the trace polygon mesh trpm onto the terrain polygon mesh hit by the destruction action. Specifically, the processor 81 extends a straight line in the direction of the destruction action from the position of each vertex of the trace polygon mesh trpm arranged at the starting position, and determines whether the straight line intersects the terrain polygon mesh. Also, when the straight line intersects the terrain polygon mesh, the processor 81 calculates the coordinates of the intersection point. Next to step S32, the process of step S33 is performed.

[0141] In step S33, the processor 81 sets the coordinates of the vertices of the trace polygon mesh trpm that could be projected onto the terrain polygon mesh in the process of step S32. Specifically, the processor 81 sets the coordinates of the vertices based on the intersection point calculated in step S32. For example, the processor 81 sets the coordinates of the position on the virtual camera side of the intersection point as the coordinates of the vertices of the trace polygon mesh trpm after projection. Next to step S33, the process of step S34 is performed.

[0142] In step S34, the processor 81 excludes unnecessary vertices. Here, when the processor 81 cannot calculate the above intersection point in the process of step S32, that is, when the vertices of the trace polygon mesh trpm cannot be projected onto the terrain polygon mesh where the destruction action has hit, the processor 81 excludes the vertex (vertex Vtf in FIG. 17) as an unnecessary vertex. Specifically, the processor 81 sets it so that the vertex Vtf that cannot be projected onto the terrain polygon mesh is not displayed. For example, the processor 81 may set the vertex Vtf to be transparent, or may set it so that it is not connected to other vertices. As a result, the polygon including the excluded vertex is not displayed. Next to step S34, the process of step S35 is performed.

[0143] In step S35, the processor 81 performs a process of setting the opacity of each vertex of the projected trace polygon mesh trpm. Specifically, the processor 81 sets the opacity of each vertex (vertex Vt2 in FIG. 17) of the trace polygon mesh trpm projected onto the terrain polygon mesh to a predetermined value (for example, the maximum value). Also, the processor 81 sets the opacity of the vertex (vertex Vt1 in FIG. 17) in contact with the polygon including the vertex excluded in step S34 to a value smaller than the predetermined value. When the process of step S35 is executed, the processor 81 ends the process shown in FIG. 25 and returns the process to FIG. 24.

[0144] Returning to FIG. 24, when the process of step S25 is executed, the processor 81 ends the process shown in FIG. 24.

[0145] On the other hand, in step S26, the processor 81 performs a voxel data update process. Specifically, the processor 81 stores a value indicating that there is no terrain object in the voxel data of the voxels included in the destruction range. For example, the processor 81 sets the density of the voxels within the destruction range to "0". As a result, the terrain object included in the destruction range is destroyed. Based on the updated voxel data, when the process of step S7 is executed, the shape of the terrain object is updated.

[0146] Note that the processes shown in the above flowchart are merely examples, and the order and content of the processes may be changed as appropriate.

[0147] As described above, in the present embodiment, when a destruction action hits a terrain object, at the location where the destruction action hits, a trace polygon mesh is projected toward the terrain object. The coordinates of the vertices that can be projected onto the terrain object are set based on the projected position (the intersection point calculated in step S32), and a polygon including vertices that cannot be projected onto the terrain object is set not to be displayed. Then, a trace texture is applied to the trace polygon mesh arranged on the terrain object, and a drawing process is performed. As a result, at the location where the destruction action hits, a trace of the destruction action can be left on the terrain object. For example, a trace can be left in a range wider than the destruction range including the hit position of the destruction action (a range on the surface of the terrain object wider than the surface of the terrain object included in the destruction range), and a trace of the destruction action can be left on a complex terrain while suppressing the processing cost.

[0148] Also, in the present embodiment, the trace polygon mesh is projected in the direction of the destruction action from the start position based on the position of the player character. As a result, at the location where the destruction action is performed, the trace polygon mesh can be projected according to the direction of the destruction action, and a trace of the destruction action can be left on the terrain object.

[0149] Also, in the present embodiment, even after the terrain object is destroyed by the destruction action, a part of the trace polygon mesh is displayed. As a result, even after the terrain object is destroyed, a trace of the destruction action hitting can be left.

[0150] Also, in this embodiment, when a terrain object with a trace polygon mesh arranged on its surface is destroyed, the trace polygon mesh itself is not destroyed, and a part of the trace polygon mesh is made non-displayable. That is, even when the terrain object is destroyed, the trace polygon mesh itself maintains the shape along the surface of the terrain object before destruction without any vertex of the trace polygon mesh being deleted or the position of each vertex being changed. Then, in the rendering process, the pixels of the trace polygon mesh corresponding to the part of the destroyed terrain object are made non-displayable. Specifically, in the rendering process of the trace polygon mesh, the part where there is no terrain object in a predetermined range on the back side of the trace polygon mesh is not rendered, and the part where there is a terrain object in a predetermined range on the back side of the trace polygon mesh is rendered. Thereby, while reducing the processing cost, it is possible to express the state where a terrain object with a trace polygon mesh arranged on its surface is destroyed. For example, it is also conceivable to delete the vertices of the trace polygon mesh corresponding to the part of the destroyed terrain object and change the shape of the trace polygon mesh itself. In this case, it is necessary to calculate the shape of the part of the trace polygon mesh to be deleted, and the processing cost may increase. However, in the above embodiment, even when the terrain object as a voxel object is destroyed, the trace polygon mesh itself is not destroyed, and in the rendering process, the part of the trace polygon mesh corresponding to the part of the destroyed terrain object is made non-displayable, so that the processing cost can be reduced.

[0151] (Modification example) As described above, this embodiment has been explained, but the above embodiment is merely an example, and for example, the following modifications may be added.

[0152] For example, in the above embodiment, a destruction action was performed using a part of the player character PC (specifically, the arm part). In other embodiments, the player character PC may perform any other destruction action. For example, in other embodiments, the destruction action performed by the player character PC may use the entire player character PC. Also, the destruction action performed by the player character PC may not use at least a part of the player character PC. For example, a destruction action may be performed by the player character PC throwing a predetermined object. When the predetermined object thrown by the player character PC hits a terrain object, it is considered that a destruction action has hit the terrain object, and a trace may be left on the terrain object. Also, when the predetermined object thrown by the player character PC hits a terrain object, the terrain object may be destroyed.

[0153] Also, in the above embodiment, the player character PC was made to perform a destruction action to destroy the terrain object. In other embodiments, the player character PC may be made to perform an action to add a terrain object. For example, the player character PC may be made to perform an action of piling up soil or an action of stacking blocks. And when the action for adding terrain hits a terrain object (for example, when soil is piled up on the ground or blocks are stacked), the terrain may be added. Also, the player character PC may be made to perform an action of bending a terrain object. That is, the player character PC may be made to perform a deformation action for deforming (adding, destroying, bending) the terrain object. When the deformation action hits a terrain object, a deformation range is set based on the position where the deformation action hits, and the terrain object is deformed by updating the voxel values of the voxels included in the deformation range. Even in such a case, by projecting the above-described trace polygon mesh onto the terrain object, a trace of the destruction action may be left on the terrain object at the location where the deformation action hits.

[0154] Also, in the above embodiment, when the deformation action hits the terrain object, an initially plate-shaped trace polygon mesh is arranged in the virtual space and projected onto the terrain object. The shape of the initially arranged trace polygon mesh is not limited to plate-shaped, and any shape may be used.

[0155] Also, in the above embodiment, when the player character PC is made to perform a deformation action (for example, a destruction action) and the deformation action hits the terrain object, a trace is left on the terrain object. In other embodiments, not limited to the case where the player character PC is made to perform a deformation action, a trace may be left on the terrain object when any deformation event that deforms the terrain object occurs. The deformation event may be, for example, an action of the player character PC, or an event that occurs regardless of the player character PC. For example, the deformation event may be an event in which a predetermined object (for example, a meteorite) falls from the sky, an event in which an enemy character throws a predetermined object, an event in which the terrain changes at a predetermined time, or the like. That is, "a deformation event occurs" may include that the deformation action of the player character PC hits the terrain object, that an object other than the player character PC hits the terrain object, that a predetermined time has come, and the like.

[0156] In the above embodiment, the terrain object is a voxel object, and the terrain polygon mesh representing the surface of the terrain object is generated based on voxel data. In other embodiments, the terrain object may not be a voxel object, but a 3D object whose shape is determined based on pre-prepared polygon data. In this case, the terrain polygon mesh representing the surface of the terrain object is stored in advance, and the terrain polygon mesh is deformed in response to the occurrence of a deformation action. At the location where the deformation action occurs, the trace polygon mesh is projected onto the terrain polygon mesh, and the coordinates of the vertices that can be projected onto the terrain polygon mesh are set based on the projected position. Also, the polygon including the vertices that cannot be projected onto the terrain polygon mesh is set not to be displayed. Thereby, the trace polygon mesh is arranged on the terrain polygon mesh. Then, the terrain polygon mesh is drawn and the trace polygon mesh is drawn.

[0157] Also, in the above-described embodiment, for the voxels within the destruction range (an example of the deformation range), by setting the density of the voxels to "0", a value indicating that no object exists in the voxels was set. As a result, the portion within the destruction range in the voxel object was erased, and the voxel object was destroyed. The destruction (erasure) of the voxel object is not limited to setting the density in the voxel data to "0", and it may be performed by setting the density to other values. For example, regarding the density, the "value indicating that no object exists" is not limited to "0", and may be any value less than a reference value (e.g., 128). Also, regarding the density, the "value indicating that an object exists" may be a value in the range of 1 to 255, or may be a value equal to or greater than the reference value. Also, not limited to changing the density in the voxel data, the voxel object may be destroyed by other methods. For example, a flag indicating the presence or absence of an object may be stored in the voxel data. When the flag is set to ON, it indicates that an object exists in the voxel, and when the flag is set to OFF, it may indicate that no object exists in the voxel (i.e., a cavity).

[0158] Also, the above-described processing is not limited to the game system 1, and may be executed in any other information processing device or information processing system. The information processing system may be configured by a plurality of devices, and the plurality of devices may be connected via a network (e.g., LAN, Internet, etc.).

[0159] Also, the configurations according to the above-described embodiment and its modifications can be arbitrarily combined as long as they do not contradict each other. Also, the above is merely an example of the present invention, and various improvements and modifications may be added other than the above.

Explanation of Reference Numerals

[0160] 1 Game system 81 Processor 85 DRAM TO, TOJ Terrain object PC player character tr Trace trpm Trace polygon mesh

Claims

1. A game program executed on a computer of an information processing apparatus, the computer being caused to store, in a storage medium, data for representing a terrain object in a virtual space, the data including terrain volume data that holds, for each voxel included in a voxel space arranged in the virtual space, a voxel value indicating the degree to which an object occupies the space defined by the voxel, and terrain polygon mesh data generated based on the terrain volume data and indicating a terrain polygon mesh representing the surface of the terrain object, perform a deformation action that deforms the terrain object on a player character in the virtual space based on an operation input of a player, when the deformation action hits the terrain object, update the voxel value of voxels included in a deformation range set based on the position where the deformation action hits, update the terrain polygon mesh data in response to the update of the voxel value, project a trace polygon mesh toward the terrain polygon mesh at a location where the deformation action hits the terrain object, and for each vertex included in the trace polygon mesh, set coordinates of a vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that a polygon including vertices that cannot be projected onto the terrain polygon mesh is not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh, generate an image of the virtual space by a rendering process including rendering of the terrain polygon mesh or a display terrain polygon mesh for displaying the surface of the terrain object, which is generated separately from the terrain polygon mesh, and rendering of the trace polygon mesh using a trace texture indicating a trace of the deformation action.

2. The deformation action is a destruction action that destroys the terrain object, and the computer is caused to update the voxel value of voxels included in the deformation range to a value indicating that the terrain object does not exist when the destruction action hits the terrain object. The game program according to claim 1.

3. The destruction action is an action performed from the player character in a specified direction. On the computer, The game program according to claim 2, wherein the computer is caused to perform the projection at the location where the destruction action hits by projecting the trace polygon mesh from a starting position based on the position of the player character in the direction in which the destruction action is performed.

4. Further on the computer, In the drawing of the trace polygon mesh, the game program according to claim 2 or 3, wherein a portion where the terrain object does not exist within a predetermined range on the back side of the trace polygon mesh is not drawn, and a portion where the terrain object exists within the predetermined range is drawn.

5. Further on the computer, When the destruction action is further performed on the terrain object on which the trace polygon mesh is arranged, the game program according to claim 2 or 3, wherein the trace polygon mesh is projected again toward the terrain polygon mesh, and the coordinates of the vertices that can be projected onto the terrain polygon mesh are set based on the projected position, and a polygon including vertices that cannot be projected onto the terrain polygon mesh is set not to be displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh.

6. Further on the computer, The game program according to any one of claims 1 to 5, wherein the opacity of the vertices in contact with the polygon set not to be displayed among the vertices included in the trace polygon mesh is set to be lower than the opacity of the other vertices that can be projected onto the terrain polygon mesh.

7. On the computer, The terrain polygon mesh is generated by an algorithm for arranging a polygon such that vertex positions are determined between voxels where the terrain object does not exist and voxels where the terrain object exists based on the voxel values, The game program according to any one of claims 1 to 6, wherein based on the fact that the deformation action has hit, the vertex positions of the terrain polygon mesh in a range including at least the voxels whose voxel values have been updated are recalculated.

8. A game program executed on a computer of an information processing apparatus, wherein on the computer, Store terrain polygon mesh data representing a terrain polygon mesh that represents the surface of a terrain object in a virtual space in a storage medium, Generate a deformation event that deforms the terrain object within the virtual space, Based on the occurrence of the deformation event, deform the terrain polygon mesh, At the location where the deformation event occurred, project a trace polygon mesh toward the terrain polygon mesh, and for each vertex included in the trace polygon mesh, set the coordinates of the vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that a polygon including vertices that cannot be projected onto the terrain polygon mesh is not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh, A game program that generates an image of the virtual space by a rendering process including rendering of the terrain polygon mesh or a display terrain polygon mesh generated separately from the terrain polygon mesh for displaying the surface of the terrain object, and rendering of the trace polygon mesh using a trace texture indicating a trace of the deformation event.

9. Further to the computer, When the deformation event occurs again with respect to the terrain object on which the trace polygon mesh is arranged, deform the terrain polygon mesh, leave a portion of the trace polygon mesh corresponding to a portion of the terrain polygon mesh that has not been deformed, and control so that a portion of the trace polygon mesh corresponding to the deformed portion of the terrain polygon mesh is not displayed. The game program according to claim 8.

10. An information processing system including a processor and a storage medium, In the storage medium, Data for representing a terrain object in a virtual space, and for each voxel included in a voxel space arranged in the virtual space, terrain volume data that holds a voxel value indicating the degree to which an object occupies the space defined by the voxel, Terrain polygon mesh data generated based on the terrain volume data and indicating a terrain polygon mesh that represents the surface of the terrain object are stored, The processor, Based on the player's operation input, cause the player character to perform a deformation action in the virtual space to deform the terrain object. When the deformation action hits the terrain object, update the voxel values of the voxels included in the deformation range set based on the position where the deformation action hits, update the terrain polygon mesh data in response to the update of the voxel values, At the location where the deformation action hits the terrain object, project the trace polygon mesh toward the terrain polygon mesh, and for each vertex included in the trace polygon mesh, set the coordinates of the vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that the polygon including the vertex that cannot be projected onto the terrain polygon mesh is not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh. An information processing system that generates an image of the virtual space by a rendering process including rendering of the terrain polygon mesh or a display terrain polygon mesh for displaying the surface of the terrain object generated separately from the terrain polygon mesh, and rendering of the trace polygon mesh using a trace texture indicating the trace of the deformation action.

11. The deformation action is a destruction action that destroys the terrain object, The processor is When the destruction action hits the terrain object, update the voxel values of the voxels included in the deformation range so as to be values indicating that the terrain object does not exist, according to the information processing system of Claim 10.

12. The destruction action is an action performed from the player character in a specified direction, The processor is Project the trace polygon mesh in the direction in which the destruction action is performed from the start position based on the position of the player character, so as to perform the projection at the location where the destruction action hits, according to the information processing system of Claim 11.

13. The processor further In the drawing of the trace polygon mesh, a portion where the terrain object does not exist within a predetermined range on the back side of the trace polygon mesh is not drawn, and a portion where the terrain object exists within the predetermined range is drawn. The information processing system according to claim 11 or 12.

14. The processor further When the destruction action is further performed on the terrain object on which the trace polygon mesh is arranged, the trace polygon mesh is projected again toward the terrain polygon mesh, and the coordinates of the vertices that can be projected onto the terrain polygon mesh are set based on the projected position, and a polygon including vertices that cannot be projected onto the terrain polygon mesh is set so as not to be displayed. Thus, the trace polygon mesh is arranged on the terrain polygon mesh. The information processing system according to claim 11 or 12.

15. The processor further Of the vertices included in the trace polygon mesh, the opacity of the vertices in contact with the polygon set so as not to be displayed is set to be lower than the opacity of other vertices that can be projected onto the terrain polygon mesh. The information processing system according to any one of claims 10 to 14.

16. The processor Based on the voxel values, the terrain polygon mesh is generated by an algorithm that arranges polygons so that vertex positions are determined between voxels where the terrain object does not exist and voxels where the terrain object exists. Based on the fact that the deformation action has hit, the vertex positions of the terrain polygon mesh in a range including at least the voxels whose voxel values have been updated are recalculated. The information processing system according to any one of claims 10 to 15.

17. An information processing system including a processor and a storage medium, In the storage medium, Terrain polygon mesh data indicating a terrain polygon mesh representing the surface of a terrain object in a virtual space is stored. The processor Generates a deformation event for deforming the terrain object in the virtual space, Based on the occurrence of the deformation event, the terrain polygon mesh is deformed. At the location where the deformation event has occurred, project the trace polygon mesh towards the terrain polygon mesh, and for each vertex included in the trace polygon mesh, set the coordinates of the vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that polygons including vertices that cannot be projected onto the terrain polygon mesh are not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh. An information processing system that generates an image of the virtual space by a drawing process including drawing of the terrain polygon mesh or a display terrain polygon mesh for displaying the surface of the terrain object, which is generated separately from the terrain polygon mesh, and drawing of the trace polygon mesh using a trace texture indicating a trace of the deformation event.

18. The processor further When the deformation event occurs again for the terrain object on which the trace polygon mesh is arranged, deform the terrain polygon mesh, leave the portion of the trace polygon mesh corresponding to the portion of the terrain polygon mesh that has not been deformed, and control so that the portion of the trace polygon mesh corresponding to the deformed portion of the terrain polygon mesh is not displayed. The information processing system according to claim 17.

19. An information processing apparatus including a processor, wherein the processor Terrain volume data, which is data for representing a terrain object in a virtual space, and holds a voxel value indicating the degree to which an object occupies the space defined by a voxel for each voxel included in a voxel space arranged in the virtual space, and Terrain polygon mesh data indicating a terrain polygon mesh generated based on the terrain volume data and representing the surface of the terrain object are stored in a storage medium. Based on an operation input of a player, cause a player character to perform a deformation action of deforming the terrain object in the virtual space. When the deformation action hits the terrain object Update the voxel value of the voxels included in the deformation range set based on the position where the deformation action hits. Update the terrain polygon mesh data in response to the update of the voxel value. At the location where the deformation action hits the terrain object, project a trace polygon mesh towards the terrain polygon mesh, and for each vertex included in the trace polygon mesh, set the coordinates of the vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that a polygon including vertices that cannot be projected onto the terrain polygon mesh is not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh. An information processing apparatus that generates an image of the virtual space by a rendering process including rendering of the terrain polygon mesh or a display terrain polygon mesh for displaying the surface of the terrain object generated separately from the terrain polygon mesh, and rendering of the trace polygon mesh using a trace texture indicating a trace of the deformation action.

20. An information processing method executed using a processor, Data for representing a terrain object in a virtual space, for each voxel included in a voxel space arranged in the virtual space, terrain volume data that holds a voxel value indicating the degree to which an object occupies the space defined by the voxel, Terrain polygon mesh data indicating a terrain polygon mesh generated based on the terrain volume data and representing the surface of the terrain object is stored in a storage medium. The processor, Based on an operation input of a player, cause a player character to perform a deformation action that deforms the terrain object in the virtual space. When the deformation action hits the terrain object, Update the voxel values of the voxels included in a deformation range set based on the position where the deformation action hits. Update the terrain polygon mesh data in response to the update of the voxel values. At the location where the deformation action hits the terrain object, project the trace polygon mesh toward the terrain polygon mesh, and for each vertex included in the trace polygon mesh, set the coordinates of the vertex that can be projected onto the terrain polygon mesh based on the projected position, and set so that a polygon including vertices that cannot be projected onto the terrain polygon mesh is not displayed, thereby arranging the trace polygon mesh on the terrain polygon mesh. An information processing method for generating an image of the virtual space by a rendering process including rendering of the terrain polygon mesh or a display terrain polygon mesh for displaying the surface of the terrain object generated separately from the terrain polygon mesh, and rendering of the trace polygon mesh using a trace texture indicating a trace of the deformation action.

Citation Information

Patent Citations

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

    JP2004062666A

  • Image processing program and image processor

    JP2009043118A

  • 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

  • Image processing system and image processing method

    WO1999012129A1