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

The information processing program generates sub-objects in a virtual space using voxel data to represent damaged parts of main objects, addressing the challenge of representing destruction and improving game strategy through detailed sub-object generation.

JP2026077688APending Publication Date: 2026-05-13NINTENDO CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
NINTENDO CO LTD
Filing Date
2026-02-06
Publication Date
2026-05-13

AI Technical Summary

Technical Problem

Existing methods struggle to generate objects representing destroyed or damaged parts in a virtual space using voxel data.

Method used

An information processing program that employs a main object generation means, a fragment determination means, and a sub-object generation means to create meshes based on main and sub-voxel data, allowing for the generation of sub-objects in a virtual space that represent destroyed or altered parts of main objects.

Benefits of technology

Enables the generation of objects that accurately represent damaged or destroyed parts, enhancing the strategic nature of games by allowing for detailed and varied generation of sub-objects based on different types of deletion events.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026077688000001_ABST
    Figure 2026077688000001_ABST
Patent Text Reader

Abstract

It realistically depicts the fragments of an object when it is destroyed. [Solution] The information processing system generates a mesh of the main object in the virtual space based on the main voxel data for each main voxel. When an erasure event occurs, the information processing system updates the main voxel data of the voxel to be erased so that at least the portion corresponding to the voxel to be erased is erased. When an erasure event occurs, the information processing system determines whether the fragment generation conditions are met based on the property data of the voxel to be erased. If it is determined that the fragment generation conditions are met, the information processing system generates sub-voxel data, which is the voxel data of the sub-object, and generates a mesh of the sub-object in the virtual space based on the sub-voxel data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing program, an information processing system, an information processing device, and an information processing method for generating an object in a virtual space using voxel data.

Background Art

[0002] Conventionally, objects have been managed using voxel data, and a mesh of an object has been generated in a virtual space based on the voxel data (see, for example, Non-Patent Document 1).

Prior Art Documents

Non-Patent Documents

[0003]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] Conventionally, when an object based on voxel data is destroyed or the like in a virtual space, there has been a problem regarding how to generate an object corresponding to the destroyed part.

[0005] Therefore, an object of the present invention is to provide an information processing program, an information processing system, an information processing device, and an information processing method capable of generating an object representing a part where an object has been destroyed or the like.

Means for Solving the Problems

[0006] To solve the above problems, the present invention employs the following configurations (1) to (19).

[0007] (1) An example of the present invention is an information processing program executed in a computer of an information processing device. The information processing program causes the computer to function as a main object generation means, a main voxel update means, a fragment determination means, a sub-object generation means, and an image output means. The main object generation means generates a mesh of the main object in the virtual space based on the main voxel data for each main voxel defined in the main voxel space, which is a voxel space set up in the virtual space. The main voxel update means updates the main voxel data of the voxel to be erased if an erasure event occurs for at least some of the main voxels among the multiple main voxels in the main voxel space, so that at least the portion of the main object corresponding to the voxel to be erased, which is the main voxel on which the erasure event occurred, is erased. The fragment determination means determines whether the fragment generation conditions are met if an erasure event occurs, based on the property data relating to the voxel to be erased, among the property data that shows the properties of the main object for each main voxel. If the fragment generation conditions are determined to be met, the sub-object generation means generates sub-voxel data, which is the voxel data for the sub-object, defined in a sub-voxel space that is set up in the virtual space and is different from the main voxel space, and generates the mesh of the sub-object in the virtual space based on said sub-voxel data. The image output means outputs images of the mesh of the main object and the mesh of the sub-object in the virtual space to a display device.

[0008] According to the configuration described in (1) above, an object representing the part of the main object that has been destroyed or otherwise altered can be generated using sub-voxel data relating to a sub-voxel space different from the main voxel space.

[0009] (2) The information processing program may further enable the computer to function as a visual setting means. The visual setting means sets the color and / or pattern of the mesh of the main object based on visual data that defines the color and / or pattern of the main object for each main voxel.

[0010] According to the configuration described in (2) above, the color and / or pattern of the main object can be set for each main voxel by using the visual data.

[0011] (3) The appearance data may also be data that represents a texture. The appearance setting means may apply the texture represented by the appearance data for a certain main voxel to a mesh of the main object that is generated based on the voxel data of a certain main voxel.

[0012] According to the configuration described in (3) above, by using visual data, it is possible to set the texture to be applied to the main object for each main voxel. (4) The sub-object generation means may determine the appearance data to be set in the sub-voxels of the sub-object based on the appearance data that was set for the deleted portion of the main object.

[0013] According to the configuration in (4) above, it is possible to generate a sub-object that has an appearance corresponding to the appearance of the deleted part of the main object.

[0014] (5) The sub-object generation means may determine the property data to be set in the sub-voxels of the sub-object based on the property data that was set for the deleted portion of the main object.

[0015] According to the configuration in (5) above, it is possible to generate sub-objects having properties corresponding to the properties of the deleted parts of the main object.

[0016] (6) The information processing program may further cause a computer to function as the number determination means. The number determination means determines the number of sub-objects to be generated based on the type of the generated deletion event. When it is determined that a plurality of sub-objects are to be generated, the sub-object generation means generates sub-voxel data for each of the sub-objects for each of the plurality of independent sub-voxel spaces, and may generate a mesh of the sub-object in the virtual space based on each of the sub-voxel data.

[0017] According to the configuration of (6) above, the number of generated sub-objects can be set in detail for each type of deletion event.

[0018] (7) The fragment determination means may execute setting of conditions used as fragment generation conditions and / or determination of whether the fragment generation conditions are satisfied based on the type of the generated deletion event.

[0019] According to the configuration of (7) above, variations corresponding to the type of deletion event can be provided for the conditions under which sub-objects are generated and / or the generation results of sub-objects.

[0020] (8) When a deletion event is generated by an impact application event that applies an impact to the main object, the fragment generation determination means may determine the type of the deletion event based on the type of the impact application event.

[0021] According to the configuration of (8) above, variations corresponding to the type of impact application event can be provided for the conditions under which sub-objects are generated and / or the generation results of sub-objects.

[0022] (9) The fragment generation determination means may determine that different types of deletion events have occurred when a first impact application event occurs due to an action of causing a collision object possessed by a player object to collide with a main object, and when a second impact application event occurs due to an action of causing the collision object to collide with the main object by moving the collision object toward the main object by the player object.

[0023] According to the configuration of (9) above, the generation result of the sub-object can be varied by the action of the player object.

[0024] (10) The fragment generation determination means may determine whether a deletion event has occurred when an event in which a sub-object collides with a main object occurs as an impact application event.

[0025] According to the configuration of (10) above, since it is possible to further delete the main object using the sub-object obtained by deleting the main object, the strategic nature of the game regarding the deletion of the main object can be improved.

[0026] (11) The property data may indicate the strength of the main object. The fragment generation determination means may determine whether the fragment generation conditions are satisfied based on the strength corresponding to the type of the occurred deletion event and the strength indicated by the property data set in the deletion target voxel where the deletion event has occurred.

[0027] According to the configuration of (11) above, the generation result of the sub-object can be varied according to the type of the deletion event and the property of the main object.

[0028] (12) The property data may indicate the strength of the main object. When an impact event occurs that applies an impact to the main object, the fragment generation determination means may determine whether or not an erasure event occurs based on the strength of the impact event, which is set according to the type of impact event, and the strength indicated by the property data set in the main voxel where the impact event occurred.

[0029] According to the configuration in (12) above, whether or not an erase event occurs can be made to differ depending on the type of impact event and the nature of the main object.

[0030] (13) The sub-object generation means may generate sub-voxel data such that the sub-objects are of a size corresponding to the type of erasure event that occurred.

[0031] According to the configuration in (13) above, the size of the sub-object can be set in detail for each type of erase event.

[0032] (14) If the sub-object generation means determines that the fragment generation conditions are met, it may generate an erased portion object representing the erased part of the main object, and then generate sub-objects by dividing the erased portion object into multiple parts.

[0033] According to the configuration described in (14) above, a sub-object can be generated that conforms to the shape of the erased portion of the main object.

[0034] (15) The sub-object generation means may generate sub-voxel data such that, among the objects obtained by dividing the erased partial object into multiple parts, objects that are greater than the lower limit and less than the upper limit become sub-objects.

[0035] The configuration described in (15) above reduces the possibility of generating sub-objects that are too large or too small.

[0036] (16) The main object generation means may update the main voxel data based on the sub-voxel data so that when a sub-object collides with the main object, the portion corresponding to the sub-object is added to the main object in the main voxel space.

[0037] According to the configuration described in (16) above, two objects with different voxel spaces (i.e., a primary object and a secondary object) can be integrated into a single object defined by the primary voxel data.

[0038] (17) The sub-object generation means may set up a sub-voxel space in which voxels with a side length shorter than that of the main voxel are defined as sub-voxels.

[0039] According to the configuration described in (17) above, the shape of a sub-object based on sub-voxel data can be represented in more detail than that of a main object based on main voxel data.

[0040] (18) The sub-object generation means may set the direction of the coordinate axes in the sub-voxel space independently of the direction of the coordinate axes in the main voxel space.

[0041] According to the configuration described in (18) above, it becomes easier to freely position sub-objects in the virtual space.

[0042] (19) The main object may also be a terrain object placed in a virtual space.

[0043] According to the configuration described in (19) above, it is possible to generate an object that represents the part of the terrain object that has been destroyed or otherwise damaged.

[0044] Another example of the present invention is an information processing device (for example, a terminal device or server) or information processing system that includes all or part of the means described in (1) to (19) above. Another example of the present invention is an information processing method (specifically, a game processing method) in which the information processing system performs each of the processes described in (1) to (19) above. [Effects of the Invention]

[0045] According to the above-described information processing program, information processing system, information processing device, and information processing method, it is possible to generate an object that represents the part of an object that has been destroyed or otherwise damaged. [Brief explanation of the drawing]

[0046] [Figure 1] A diagram showing an example of a game system. [Figure 2] Block diagram showing an example of the internal configuration of the main unit. [Figure 3] Block diagram showing an example of the internal configuration of the main unit, left controller, and right controller. [Figure 4] This diagram shows an example of a terrain object that is a voxel object. [Figure 5] Figure 4 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 6] Figure 4 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 7] A diagram showing an example of the contents of voxel data and material information. [Figure 8] A diagram showing an example of property information that indicates the properties of a material. [Figure 9] A diagram showing an example of texture information that indicates the texture of a material. [Figure 10] A diagram showing an example of a mesh generation method. [Figure 11] A diagram showing an example of a game image that includes terrain objects. [Figure 12]This diagram shows an example of how a player object performs a punching action on a terrain object. [Figure 13] This diagram shows an example of a terrain object that has been partially destroyed by a player object's punch action. [Figure 14] A diagram showing an example of terrain objects and debris objects. [Figure 15] A diagram showing an example of fragment generation information. [Figure 16] A diagram showing an example of how to generate fragment objects. [Figure 17] This diagram shows an example of a player object throwing a fragment object towards a terrain object. [Figure 18] This diagram shows an example of how a terrain object is added as a result of a fragment object coming into contact with a terrain object. [Figure 19] This diagram shows an example of various types of data used in information processing within a game system. [Figure 20] A flowchart illustrating an example of the game processing flow executed by the game system. [Figure 21] Figure 20 shows a subflowchart illustrating an example of a detailed flow of the erase process in step S6. [Figure 22] Figure 20 shows a subflowchart illustrating an example of a detailed flow of the additional processing in step S8. [Modes for carrying out the invention]

[0047] [1. Game System Configuration] The following describes a game system according to an example of this embodiment. Figure 1 is a diagram showing an example of the game system. The example of the game system 1 in this embodiment includes a main unit (information processing device; in this embodiment, it functions as the main unit of the game device) 2, a left controller 3, and a right controller 4. The main unit 2 is a device that performs various processes (for example, game processing) in the game system 1. The left controller 3 and the right controller 4 are devices equipped with operation sections for user input.

[0048] The main unit 2 has detachable left controller 3 and right controller 4. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and right controller 4 to the main unit 2. Alternatively, the game system 1 can be used with the main unit 2 and the left controller 3 and right controller 4 as separate units. In the following, the left controller 3 and right controller 4 will sometimes be referred to collectively as "controllers".

[0049] Figure 2 is a block diagram showing an example of the internal configuration of the main unit 2. In addition to the configuration shown in Figure 1, the main unit 2 includes the components 17, 21, 23, 81-85, and 91 shown in Figure 2. Some of these components 17, 21, 23, 81-85, and 91 may be mounted on an electronic circuit board as electronic components and housed within the housing 11.

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

[0051] Furthermore, the main unit 2 is equipped with a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via wired connection, and a right terminal 21, which is for the main unit 2 to communicate with the right controller 4 via wired connection.

[0052] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that performs various information processing operations performed in the main unit 2, and may consist of, for example, only a CPU (Central Processing Unit), or it may consist of an SoC (System-on-a-chip) that includes multiple functions such as CPU function and GPU (Graphics Processing Unit) function. The processor 81 performs various information processing operations by executing information processing programs (for example, game programs) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium installed in slot 23).

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

[0054] The main unit 2 is provided with a slot 23. The slot 23 has a shape that allows a predetermined type of storage medium to be inserted. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and similar information processing devices. The predetermined type of storage medium is used to store, for example, data used by the main unit 2 (e.g., application save data, etc.) and / or programs executed by the main unit 2 (e.g., application programs, etc.).

[0055] The main unit 2 is equipped with 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 slot 23 and reads and writes data to a predetermined type of storage medium (for example, a dedicated memory card) installed in slot 23, according to instructions from the processor 81.

[0056] The processor 81 performs the above-mentioned information processing by appropriately reading and writing data to the flash memory 84 and DRAM 85, as well as to each of the above-mentioned storage media.

[0057] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with external devices via a network (specifically, wirelessly). In this embodiment, the network communication unit 82 communicates with external devices by connecting to a wireless LAN using a method compliant with the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main unit 2 of the same type using a predetermined communication method (for example, communication using a proprietary protocol or infrared communication) as a second communication mode. The wireless communication using the second communication mode is possible with other main unit 2 located within a closed local network area, and realizes a function that enables so-called "local communication" in which data is sent and received by communicating directly between multiple main unit 2.

[0058] The main unit 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 communicates wirelessly with the left controller 3 and / or the right controller 4. The communication method between the main unit 2 and the left controller 3 and the right controller 4 is arbitrary, but in this embodiment, the controller communication unit 83 communicates with the left controller 3 and with the right controller 4 in accordance with the Bluetooth® standard.

[0059] The processor 81 is connected to the left terminal 17 and the right terminal 21 described above. When the processor 81 communicates with the left controller 3 via a wired connection, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. Similarly, when the processor 81 communicates with the right controller 4 via a wired connection, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. Thus, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4, respectively.

[0060] The display 12 is also connected to the processor 81. The processor 81 displays images generated (for example, by performing the above information processing) and / or images acquired from an external source on the display 12.

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

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

[0063] The left controller 3 also includes a memory 102, such as flash memory. The communication control unit 101 is composed of, for example, a microcontroller (also called a microprocessor) and performs various processes by executing firmware stored in the memory 102.

[0064] The left controller 3 is equipped with one or more buttons 103. The left controller 3 is also equipped with an analog stick (referred to as "stick" in Figure 3) 32. The buttons 103 and the analog stick 32 repeatedly output information about operations performed on them to the communication control unit 101 at appropriate intervals.

[0065] The communication control unit 101 acquires information related to input (specifically, information related to operation) from each input unit (specifically, the buttons 103 and the analog stick 32). The communication control unit 101 transmits operation data, including the acquired information (or information that has been processed in a predetermined manner), to the main unit 2. The operation data is transmitted repeatedly at a rate of once per predetermined time. The interval at which information related to input is transmitted to the main unit 2 may or may not be the same for each input unit.

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

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

[0068] As shown in Figure 3, the right controller 4 includes a communication control unit 111 that communicates with the main unit 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 memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both by wired communication via the terminal 64 and by wireless communication without the terminal 64 (specifically, communication according to the Bluetooth® standard), and controls the method of communication that the right controller 4 performs with the main unit 2.

[0069] The right controller 4 is equipped with the same inputs as the left controller 3. Specifically, the right controller 4 is equipped with buttons 113 and an analog stick 52. These inputs have the same functions and operate in the same way as the inputs of the left controller 3.

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

[0071] [2. Overview of processing in the game system] Next, with reference to Figures 4 to 18, an overview of the processes performed in the game system 1 will be described. In this embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player objects operated by the player) are placed in a game space, which is a three-dimensional virtual space, and displays it on a display device. In this embodiment, the display device on which the game image is displayed may be the display 12 described above, or it may be a different display device (for example, a stationary monitor connected to the game system 1).

[0072] [2-1. Voxel] In this embodiment, the shape of some objects in the game space is defined by voxel data. Here, a voxel is a rectangular (more specifically, cubic) region arranged in a grid in the game space, and voxel data is the data set for each voxel. Hereafter, objects whose shape is defined by voxel data will be called "voxel objects". In this embodiment, the game system 1 stores voxel data for each of the multiple voxels set in the game space as data for generating voxel objects in the game space.

[0073] Figure 4 shows an example of a terrain object that is a voxel object. As shown in Figure 4, in this embodiment, terrain objects representing terrain such as the ground are defined by voxel data (i.e., they are voxel objects). Each cube shown in Figure 4 represents a terrain object. In Figure 4, the boundaries of voxels are shown with thin lines and the edges of terrain objects are shown with thick lines. These lines are added for the purpose of making the drawing easier to read, and in reality, it is not necessary to display lines indicating the boundaries of voxels or to display the edges of terrain objects with thick lines.

[0074] Furthermore, the terrain object shown in Figure 4 is generated using a rule such as, "If the parameter included in the voxel data set for a voxel (specifically, the density described later) is greater than a predetermined value, a cube is placed at the voxel's location; if it is less than or equal to the predetermined value, nothing is placed at the voxel's location." Figure 4 shows a terrain object generated using the above rule for the purpose of clearly illustrating the relationship between voxels and voxel objects. However, in this embodiment, in practice, voxel objects are generated using rules that result in a shape more complex than the length of one side of a voxel, such as the terrain object shown in Figure 11, which will be described later. Note that the rule for determining the shape of a voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate voxel objects as shown in Figure 4 or as shown in Figure 11 based on voxel data.

[0075] For voxel objects, the shape can be changed by modifying the voxel data of each voxel. Figures 5 and 6 show examples of what the terrain object shown in Figure 4 looks like before and after a portion of it is deleted. That is, when the shaded portion of the terrain object shown in Figure 5 is deleted, the terrain object changes to the shape shown in Figure 6. At this time, the game system 1 can easily delete the terrain object by rewriting the voxel data of the voxel in the shaded portion to indicate that the terrain object does not exist. Furthermore, when adding a terrain object, the game system 1 can easily change the shape of the terrain object by modifying the voxel data of each voxel, just as when deleting a terrain object.

[0076] In this way, Game System 1 can freely change the shape of voxel objects by rewriting the voxel data. For example, in a game, terrain objects may change shape as a result of being destroyed for some reason (for example, when a player object hits a terrain object). In such cases, Game System 1 can freely change the shape of terrain objects by modifying the voxel data used to generate the terrain objects, rather than directly changing the data that represents the external shape of the terrain object (i.e., the mesh described later).

[0077] Figure 7 shows an example of the contents of voxel data and material information. In this embodiment, the game space can be divided into a grid of multiple voxels. The game system 1 stores voxel data associated with each voxel in the game space. The voxel data indicates the presence or absence of a voxel object in the voxel corresponding to that voxel data.

[0078] As shown in Figure 7, the voxel data includes density data. The density data indicates the density, which is an index used to define the shape of the voxel object in the voxel corresponding to the voxel data (specifically, the shape defined by the mesh described later). As will be described in detail later, the position and shape of the surface of the voxel object (i.e., the mesh described later) are determined based on the above density. In other words, in this embodiment, the above density is used to create a mesh that defines the surface of the voxel object.

[0079] In this embodiment, density can take the form of an integer value within a range from a lower limit (e.g., 0) to an upper limit (e.g., 255). In this embodiment, the game system 1 determines the shape of a voxel object based on density, such that a higher density value for a voxel tends to result in a larger proportion of the volume occupied by voxel objects within that voxel, while a lower density value tends to result in a smaller proportion. Thus, density is an indicator that affects the proportion of the volume occupied by voxel objects within a voxel. Density can also be said to be an indicator that shows the degree to which objects are contained within the area in which each voxel is defined. For example, if the density is 0, there are no voxel objects within that voxel; if the density is 255, the entire voxel is filled with voxel objects; and if the density is between 0 and 255, voxel objects can occupy the voxel in proportion to the value. Based on the above density, the shape of the mesh, i.e., the shape of the voxel object, can be determined. However, the volume of the voxel object generated based on the above density does not need to exactly match the ratio indicated by the density. For example, the volume of the voxel object may differ between the method used to generate the voxel object shown in Figure 8 and the method used to generate the voxel object shown in Figure 15, even if they are based on the same density.

[0080] In other embodiments, density may indicate either a state in which voxel objects occupy the entire region within the voxel, or a state in which no voxel objects are contained within the region within the voxel. For example, density data may only take the values ​​of 0 or 1.

[0081] As shown in Figure 7, the voxel data includes material data. The material data indicates the material (in other words, substance) of the voxel object generated by the voxel data. In this embodiment, the voxel object is assigned materials such as sand, rock, and soil. That is, in this embodiment, multiple types of materials are provided as materials that can be assigned to the voxel object, and the voxel object is assigned one of these multiple types of materials.

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

[0083] Figure 8 shows an example of property information indicating the properties of a material. As shown in Figure 8, the game system 1 stores property information that associates the above-mentioned property ID with information indicating the content of the property indicated by the property ID. The properties of a material are the properties that the voxel object to which the material is set has in the game (it can also be said that these are properties that can affect the progress of the game), such as weight and slipperiness as shown in Figure 8. In this specification, the properties of a material do not include information related to appearance such as the above-mentioned texture. For example, the following information may be set as the properties of a material. ·temperature • Fragility (for example, the number of times a voxel object will break when subjected to an impact) • Whether or not other objects can be attached to a voxel object. • The amount of health restored to a player object when it destroys a voxel object. • The amount of in-game currency a player object acquires when it destroys a voxel object. The specific properties set for the material are arbitrary. In other embodiments, different information may be set as information indicating the properties of the material.

[0084] Figure 9 shows an example of texture information indicating the texture of a material. As shown in Figure 9, the game system 1 stores texture information that associates the above-mentioned texture ID with the texture indicated by that texture ID.

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

[0086] As described above, in this 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, if the material ID indicated by the material data included in the voxel data is "002", the properties indicated by the property ID "001" associated with that material ID in the material information are set as the properties of the voxel object corresponding to that voxel data (see the arrow in Figure 7). In the above case, the texture indicated by the texture ID "002" associated with that material ID in the material information is applied to the voxel object corresponding to that voxel data (see the arrow in Figure 7).

[0087] As described above, in this embodiment, the game system 1 manages the properties and textures of materials separately. Therefore, in this embodiment, by setting a pair of properties and textures in the material information, it is possible to easily set up multiple types of materials that have the same properties but different appearances (i.e., textures), or multiple types of materials that have different properties but the same appearance.

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

[0089] Furthermore, material data may also include information about the material, which may contain other information different from the properties and textures described above. For example, material data may include effect data that indicates an effect that occurs when the effect conditions set for a voxel object (for example, when a part of the voxel object is destroyed, or when a character steps on the voxel object) are met. Note that effect data may be data that indicates an effect image (for example, an effect image that represents the destruction of the voxel object) or data that indicates an effect sound (the sound of a character walking on the voxel object).

[0090] As shown in Figure 7, voxel data includes state data that indicates the state of the voxel object. The specific content of the state data is arbitrary. For example, the state data may indicate whether the voxel object is wet or not, or it may indicate the amount of damage inflicted on the voxel object. The content of the state data may be updated during gameplay.

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

[0092] Figure 10 shows an example of a mesh generation method. Note that in Figure 10, voxels and meshes are represented in two dimensions for clarity and ease of explanation; however, in reality, a three-dimensional mesh is generated based on voxels in three-dimensional space.

[0093] As described above, in this embodiment, the density set for a voxel is set within the range of 0 to 255. In this embodiment, voxels with a density equal to or greater than the reference value are considered to be inside the object, and voxels with a density less than the reference value are considered to be outside the object. It is not necessary to define only voxels with a density of 0 as being outside the object (i.e., reference value = 1), and the reference value can be, for example, 128. In the example shown in Figure 10, the density of voxel 201 and the other outer voxels is set to 0, the density of voxel 202 is set to 100 (less than the reference value), and the densities of voxels 203 and 204 are set to 150 and 200 (greater than or equal to the reference value). In this embodiment, the game system 1 generates vertices between voxels with a density equal to or greater than the reference value and voxels with a density less than the reference value. Specifically, for each region spanning eight adjacent voxels (four in the diagram) (the region enclosed by the dotted line in the diagram), a determination is made as to whether or not to generate a vertex. In other words, vertices are generated in regions that span both voxels with a density above a certain threshold and voxels with a density below that threshold. Furthermore, if the boundary between adjacent vertices (the boundary of the region containing each vertex) passes through a range of voxels with a density above a certain threshold and voxels with a density below that threshold, a polygon mesh is generated by connecting those vertices. The coordinates of the vertices are determined by comparing the densities of adjacent voxels along each of the X, Y, and Z axes and interpolating based on the density difference. At this time, coordinate calculations can also be performed based on normal information, but the normal information may be stored in advance for at least some voxels, or if it is not stored, the normal information may also be calculated based on the densities of adjacent voxels. Note that in Figure 10, the density of voxel 202 is below the threshold, so voxel 202 is treated as outside the object when determining the presence or absence of a vertex, but the density value of voxel 202 itself is used in the calculation of the coordinates of the generated vertices. If the baseline value is set lower than the density of voxel 202, the result will be that the upper right and upper left sides of voxel 202 in Figure 10 will have even more vertices.

[0094] As described above, by generating a polygon mesh, it is possible to generate a shape with a volume that reflects the density of each voxel to some extent. However, depending on the relationship with adjacent voxels, it is possible that voxels with a density of 0 may include some areas within the object, or that voxels with a density of 255 may include some areas outside the object. Also, in this embodiment, voxels below a certain threshold are treated as being outside the object, so the volume will be smaller because there will be fewer vertices compared to when they are treated as being inside the object. In other words, it is not necessary to calculate the polygon mesh so that the volume corresponds precisely to the density value.

[0095] Figure 11 shows an example of a game image including terrain objects. In this embodiment, by generating a mesh as described above, the voxel object can be made to have a shape with complex irregularities compared to the length of one side of a voxel.

[0096] The method for generating the mesh based on the voxel data is arbitrary. For example, in another embodiment, if the density of the voxel data is greater than a predetermined value, the mesh may be generated such that cubes are placed in the voxels corresponding to that voxel data (see Figure 4).

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

[0098] In other embodiments, a single voxel data set may contain multiple types (e.g., two types) of material data. In this case, the voxel data set includes ratio data relating to the multiple types of material data. The ratio data is used to determine the texture to be used for the voxel object, and indicates the ratio by which each material (specifically, the texture corresponding to the material) represented by the multiple types of material data affects the appearance (specifically, the color and / or pattern) of the voxel object. Furthermore, when determining the texture to be mapped to each face of the mesh, the texture is determined based on the various data included in the voxel data of the voxel to be generated (specifically, density data, multiple types of material data, and ratio data). For example, if multiple types of materials are set for a voxel to be generated corresponding to one face, the texture corresponding to the material with the greatest influence (one type) may be used, taking the above ratio into consideration, or each texture corresponding to the multiple types of materials may be used, taking the above ratio into consideration.

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

[0100] As described above, in this embodiment, the game system 1 sets the color and / or pattern of the mesh of a voxel object based on appearance data (specifically, a texture ID indicating the texture) that defines the color and / or pattern of each voxel. Specifically, the game system 1 applies the texture indicated by the appearance data for a certain voxel to the mesh of the voxel object that is generated based on the voxel data of a certain voxel. This makes it possible to set the color and / or pattern of a voxel object using the appearance data set for the voxel.

[0101] [2-3. Fragment Objects] Next, we will explain the case in which fragment objects are generated for terrain objects, which are voxel objects. Figure 12 shows an example of a player object performing a punch action on a terrain object. Figure 13 shows an example of a terrain object that has been partially destroyed by a punch action by a player object. As shown in Figures 12 and 13, in this embodiment, when an impact is applied to a terrain object 212 by a punch action by a player object 211, the terrain object 212 may be destroyed, and as a result, a part of the terrain object 212 may be erased. Hereinafter, the event in which a part of the terrain object 212 is erased will be called an erase event. An erase event is not limited to a punch action by a player object 211, but can also be caused by other actions by the player object 211, or by collision events such as when another object collides with the terrain object 212.

[0102] In this embodiment, when a terrain object 212 is erased, a fragment object 213 representing the fragments of the terrain object 212 may be generated (see Figure 13). For example, as shown in Figure 13, if the terrain object 212 represents a rocky area, a fragment object 213 resembling a rock fragment will be generated. In this way, the game system 1 can more realistically represent the destruction of a terrain object by making a fragment object appear in the game space when the terrain object is erased.

[0103] [2-3-1. Primary voxel space and secondary voxel space] In this embodiment, the fragment object is a voxel object whose shape is defined by voxel data, similar to the terrain object. However, in this embodiment, the fragment object's shape is defined by voxel data relating to voxels different from those of the terrain object. Hereinafter, the voxel space relating to the terrain object will be referred to as the "primary voxel space," the voxels in the primary voxel space will be referred to as "primary voxels," and the voxel data set for those primary voxels will be referred to as "primary voxel data." On the other hand, the voxel space relating to the fragment object will be referred to as the "secondary voxel space," the voxels in the secondary voxel space will be referred to as "secondary voxels," and the voxel data set for those secondary voxels will be referred to as "secondary voxel data." In this embodiment, the shape of the terrain object is defined by primary voxel data, and the shape of the fragment object is defined by secondary voxel data.

[0104] Figure 14 shows an example of a terrain object and a fragment object. In Figure 14, for the purpose of clearly illustrating the difference between primary and secondary voxels, voxel objects (i.e., terrain object 221 and fragment object 222) are shown whose meshes are generated by the same rules as when the mesh of the terrain object shown in Figure 4 is generated. In other words, the voxel objects shown in Figure 14 are assumed to have their meshes generated by the rule that "if the density set for a voxel is greater than a predetermined value, a cube is placed at the location of that voxel, and if it is less than or equal to the predetermined value, nothing is placed at the location of that voxel." In Figure 14, for the purpose of making the drawing easier to read, the terrain object 221 is shown with a dotted line, the fragment object 222 is shown with a solid line, and the region of the secondary voxel space 223 is shown with a dashed line.

[0105] As described above, the shape of the terrain object 221 is defined by the main voxel data. In this embodiment, the main voxel space is set for the entire game space (therefore, the extent of the main voxel space is not shown in Figure 14).

[0106] On the other hand, the shape of the fragment object 222 is defined by sub-voxel data. In this embodiment, the sub-voxel space is set as part of the game space (which can also be said to be part of the main voxel space). In the example shown in Figure 14, the area 223 indicated by the dashed line is the range in which the sub-voxel space is set. The shape of the fragment object 222 is defined by the sub-voxel data set for each sub-voxel set within the sub-voxel space. The fragment object 222 will be placed within the range of the sub-voxel space.

[0107] In this embodiment, the length of one side of a sub-voxel is set to be shorter than the length of one side of a main voxel (see Figure 14). In other words, the game system 1 sets up a sub-voxel space in which voxels with a shorter side length than main voxels are defined as sub-voxels. This allows the shape of fragment objects based on sub-voxel data to be represented in more detail than terrain objects based on main voxel data. For example, fragment objects smaller than one main voxel can be generated more easily, as shown in the fragment object 222 in Figure 14, and fragment objects with finer irregularities than one main voxel can be generated more easily. In other embodiments, the length of one side of a sub-voxel may be the same as the length of one side of a main voxel, or it may be longer than the length of one side of a main voxel.

[0108] Furthermore, in this embodiment, the game system 1 sets the direction of the coordinate axes in the sub-voxel space (i.e., the orientation of each edge of the sub-voxel) independently of the direction of the coordinate axes in the main voxel space (i.e., the orientation of each edge of the main voxel). For example, in the example shown in Figure 14, the direction of the coordinate axes in the sub-voxel space is different from the direction of the coordinate axes in the main voxel space. This makes it easier to place fragment objects in a free orientation in the game space. For example, it becomes easy to place fragment objects so that they extend in a direction different from the coordinate axes in the main voxel space. Also, it becomes easier to move (for example, rotate) fragment objects independently of terrain objects.

[0109] Game System 1 can change the position of fragment objects (more precisely, their position in game space) by changing the position of the sub-voxel space within the game space. Furthermore, Game System 1 can change the orientation of fragment objects (more precisely, their orientation in game space) by changing the orientation of the sub-voxel space relative to the game space.

[0110] In this embodiment, when multiple fragment objects are generated, the game system 1 sets up a sub-voxel space for each fragment object. This allows the position and orientation of each sub-voxel space in the game space to be set for each sub-voxel space. It also makes it easier to generate multiple fragment objects that have different shapes (for example, multiple fragment objects that have shapes extending in different directions from each other). Note that each sub-voxel space may be arranged so that a part of one sub-voxel space overlaps with a part of another sub-voxel space. In another embodiment, multiple fragment objects may be set up in a single sub-voxel space.

[0111] The method for generating the mesh of fragment objects based on sub-voxel data may be the same as, or different from, the method for generating the mesh of terrain objects based on primary voxel data.

[0112] [2-3-2. Deleting Terrain Objects] In this embodiment, terrain objects can be removed when an impact event occurs against them. An impact event is an event in which an impact is applied to a terrain object, such as a destruction action event in which a destruction action is performed on a terrain object by a player object, or a collision event in which another object (referred to as a collision object) collides with a terrain object. The destruction action is an action performed by a player object to destroy a terrain object, such as the punch action described above. A collision event is an event in which a collision object collides with a terrain object when a character such as a player object performs an action such as swinging a collision object or throwing a collision object (these actions can also be called destruction actions). The collision object may be any object placed in the game space, such as a weapon owned by a player object, or a fragment object may function as a collision object (details will be described later).

[0113] The impact events that can cause terrain objects to disappear are not limited to those mentioned above. For example, if a player object can use a bomb as an item, an impact event may occur in which the bomb explodes near a terrain object, and the terrain object may disappear in response to that event.

[0114] In this embodiment, when the above impact - applying event is performed, the game system 1 determines whether the deletion condition is satisfied. Here, in this embodiment, the intensity is set for each voxel of the terrain object, and for the impact - applying event as well, the intensity is set according to the type of the impact - applying event. The type of the impact - applying event is determined to be different, for example, according to the type of the destruction action performed in the impact - applying event or the type of the collision object that collided with the terrain object in the impact - applying event. The game system 1 determines whether the deletion condition is satisfied based on these intensities. In this embodiment, assume that the intensity of the terrain object is set as one of the properties of the material described above. That is, it can be said that the above property ID is data indicating the intensity of the terrain object. In this embodiment, the intensity can take an integer value from 1 to the upper limit value.

[0115] Also, in this embodiment, the deletion condition is set according to the relationship between the intensity A of the destruction side (i.e., the impact - applying event) and the intensity B of the destructed side (i.e., the terrain object). Specifically, the game system 1 determines the deletion condition as follows in (a) - (c) below. (a) When the intensity A of the destruction side is greater than or equal to the intensity B of the destructed side (i.e., when A ≥ B), it is determined that the deletion condition is satisfied. (b) When the value obtained by adding 1 to the intensity A of the destruction side is equal to the intensity B of the destructed side (i.e., when A + 1 = B), damage corresponding to the type of the destruction action and the collision object is applied to the terrain object, and when the damage to the terrain object is equal to or greater than the reference value, it is determined that the deletion condition is satisfied. (c) When the value obtained by adding 1 to the intensity A of the destruction side is less than the intensity B of the destructed side (i.e., when A + 1 < B), no damage is applied to the terrain object (as a result, the deletion condition is not satisfied). In this embodiment, the damage to terrain objects is managed for each main voxel. That is, the game system 1 stores data indicating the damage value as state data included in the main voxel data for each main voxel.

[0116] As described above, in this embodiment, when the strength A of the destroying side is the same as or greater than the strength B of the destroyed side (a) above, the erasure condition is met by the occurrence of an impact event. Also, when the strength A of the destroying side is slightly less than the strength B of the destroyed side (b) above, the erasure condition is met by the occurrence of impact events several times at the same location (i.e., the same main voxel) of the terrain object. In other words, in this case, a part of the terrain object is erased in accordance with the number of times impact events have occurred on that part. Also, when the strength A of the destroying side is considerably less than the strength B of the destroyed side (c) above, the erasure condition is not met even if an impact event occurs.

[0117] Game System 1 determines the elimination condition for each main voxel. Specifically, when an impact event occurs, the system determines the elimination condition for each main voxel within the range corresponding to the impact event, based on the intensity of the impact event and the intensity set for that main voxel. The range corresponding to the impact event is, for example, the range of influence of a destruction action set according to a destruction action, or the range of influence of a collision event set according to the type of collision event. Specifically, when a punch action is performed as a destruction action, the position where the player object's punch hits the terrain object and a predetermined range including that position become the "range corresponding to the impact event".

[0118] As described above, in this embodiment, when an impact event occurs that applies an impact to a main object (i.e., a terrain object), the game system 1 determines whether the erasure condition has been met (i.e., whether an erasure event occurs) based on the intensity of the impact event, which is set according to the type of impact event, and the intensity indicated by the intensity data set for the main voxel where the impact event occurred. As a result, even if the same impact event occurs, the occurrence or absence of an erasure event may change depending on the intensity of the main object, and even if the impact event is applied to the same main object, the occurrence or absence of an erasure event may change depending on the intensity of the impact event. This makes the occurrence of erasure events in response to impact events more natural.

[0119] If the erasure conditions are determined to be met, Game System 1 executes an erasure event to erase a portion of the terrain object. In the erasure event, Game System 1 designates the main voxel within the range corresponding to the impact event as the target voxel to be erased, and erases the terrain object within that target voxel. Specifically, Game System 1 sets the density of the target voxel to 0. Game System 1 also erases a portion of the terrain voxels surrounding the target voxel (for example, voxels that partially overlap the above range, or voxels adjacent to the target voxel). Specifically, Game System 1 subtracts the density of the voxels surrounding the target voxel based on a predetermined rule. The content of this rule is arbitrary. For example, Game System 1 subtracts the density of the surrounding voxels so that the shape of the terrain object after erasure does not become unnatural at the boundary between the target voxel and the surrounding voxels.

[0120] The method for erasing terrain objects in an erasure event is optional. For example, in another embodiment, the game system 1 may erase terrain objects only for voxels that are within the range corresponding to the impact event. Alternatively, the game system 1 may define voxels that are to be erased as voxels that are at least partially included within the range corresponding to the impact event.

[0121] Furthermore, the size and / or shape of the "range corresponding to the impact event" described above may be set for each type of impact event. For example, the range may be set differently depending on whether the impact event is caused by a punch action by a player object or by a collision between a specific collision object and a terrain object.

[0122] [2-3-3. Fragment generation conditions] When an erasure event occurs, the game system 1 determines whether the terrain object to be erased satisfies the fragment generation conditions. In this embodiment, the game system 1 stores fragment generation information that indicates various information regarding the generation of fragment objects, and executes processes related to the generation of fragment objects (for example, a process to determine the fragment generation conditions, and a process to generate fragments) based on this fragment generation information.

[0123] Figure 15 shows an example of fragment generation information. As shown in Figure 15, fragment generation information associates the type of erasure event with various information related to the generation of fragment objects (specifically, fragment generation conditions, the size of the fragment object, and the maximum number of fragment objects).

[0124] In the example shown in Figure 15, examples of types of elimination events include "normal punch," "strong punch," "shard swing," "shard throw," and "bomb." "Normal punch" refers to an elimination event caused by an impact event from a normal punch action by a player object. "Strong punch" refers to an elimination event caused by an impact event from a punch action by a player object that is more powerful than normal. Thus, the type of elimination event (which can also be called the type of impact event) differs depending on the type of destruction action. "Shard swing" refers to an elimination event caused by a collision event from an action in which a player object holds and swings a shard object as a collision object (i.e., the shard swing action). "Shard throw" refers to an elimination event caused by a collision event from an action in which a player object throws a shard object as a collision object (i.e., the shard throw action). Thus, the type of elimination event (which can also be called the type of impact event) also differs depending on the type of collision event. "Bomb" refers to an elimination event caused by a bomb explosion. As described above, the type of elimination event differs depending on the type of impact event.

[0125] In this embodiment, as shown in Figure 15, the fragment generation information indicates the presence or absence of fragment generation conditions and the content of those conditions for each type of erasure event. In the example shown in Figure 15, if the type of erasure event is "normal punch," the fragment generation condition is "the strength of the destroyed side is 2 or higher." In other words, when a "normal punch" erasure event occurs, the game system 1 generates fragments if the strength of the destroyed side (i.e., the terrain object) is 2 or higher. Also, if the type of erasure event is "fragment swing" or "fragment throw," the fragment generation condition is "the strength of the destroyed side is 2 or higher, AND the strength of the destroyed side is greater than the strength of the destroying side." Thus, in this embodiment, the fragment generation conditions (content) differ depending on the type of erasure event.

[0126] In this embodiment, the strength of the destroyed side used to determine the fragment generation conditions is the strength set for the voxel to be erased (i.e., the strength indicated by the property ID shown by the voxel data of the voxel to be erased). If there are multiple types of strength values ​​set for multiple voxels to be erased, the game system 1 may determine the strength of the destroyed side based on these multiple types of strength values. For example, the game system 1 may use the average, minimum, or maximum value of the multiple types of strength values ​​as the strength of the destroyed side.

[0127] Furthermore, in the example shown in Figure 15, if the type of erasure event is "strong punch" or "bomb," no fragment generation conditions are set. In other words, if a "strong punch" or "bomb" erasure event occurs, the game system 1 does not generate fragments. Thus, in this embodiment, whether or not fragments are generated is determined according to the type of erasure event. In other embodiments, fragment generation information may be set so that fragments are always generated when a specific type of erasure event occurs.

[0128] As described above, in this embodiment, the content of the fragment generation conditions differs depending on the type of erase event. In other words, the game system 1 sets the conditions to be used as fragment generation conditions based on the type of erase event that occurred. Also, in this embodiment, whether or not fragments are generated (i.e., the result of the fragment generation condition determination) differs depending on the type of erase event. In other words, the game system 1 determines whether or not the fragment generation conditions are met based on the type of erase event that occurred. In other embodiments, the game system 1 may perform only one of either setting the conditions to be used as fragment generation conditions or determining whether or not the fragment generation conditions are met based on the type of erase event that occurred. According to the above, the conditions for generating fragments can be varied according to the type of erase event. In addition, the conditions for generating fragments can be set in detail for each type of erase event.

[0129] In this embodiment, when a deletion event occurs due to an impact event, the game system 1 determines the type of deletion event based on the type of impact event. In other words, the conditions for generating fragments can be said to differ depending on the type of impact event, and whether or not fragments are generated can also be said to differ depending on the type of impact event. Therefore, in this embodiment, the conditions for generating fragments can be varied according to the type of impact event, and the conditions for generating fragments can be set in detail for each type of impact event.

[0130] Furthermore, in this embodiment, the game system 1 determines that different types of elimination events have occurred depending on whether a first impact event occurs due to an action by which a player object causes a collision object to collide with the main object (i.e., a fragment-swinging action), or a second impact event occurs due to an action by which the player object moves a collision object toward the main object, causing the collision object to collide with the main object (a fragment-throwing action). This makes it possible to create different fragment objects depending on the action taken by the player object, even when the same collision object collides with the main object.

[0131] Furthermore, in this embodiment, the game system 1 determines whether the fragment generation conditions are met based on the intensity corresponding to the type of erasure event that occurred (i.e., the intensity of the impact event) and the intensity indicated by the property data set for the voxel targeted for erasure where the erasure event occurred. Even if the same erasure event occurs, the result of generating fragment objects will change depending on the intensity of the main object, and even if the erasure event is performed on the same main object, the result of generating fragment objects will change depending on the intensity of the erasure event. In this way, the result of generating fragment objects can be made different depending on the properties (specifically, intensity) of the destroying side and the destroyed side. This makes the generation of fragment objects in response to erasure events more natural.

[0132] [2-3-4. Generating Fragment Objects] If the above fragment generation conditions are met, the game system 1 generates fragment objects. In this embodiment, when generating fragment objects, the game system 1 first determines the size level of the fragment objects and the maximum number of fragment objects. In this embodiment, as shown in Figure 15, the fragment generation information associates the size level and the maximum number of fragment objects with each type of erase event. The game system 1 determines the size level and the maximum number of fragment objects based on the type of erase event and the fragment generation information.

[0133] In this embodiment, the size level of the fragment object is determined to be one of three levels: large, medium, and small. The game system 1 generates fragment objects so that the size of the fragment object actually generated falls within the range corresponding to the determined level. For example, if the size level is "large," the fragment object will be generated within the range of 160 to 300; if the size level is "medium," it will be within the range of 30 to 120; and if the size level is "small," it will be within the range of 5 to 12. In this way, in this embodiment, the ranges corresponding to each level are set so as not to overlap with each other. This makes it easy for the user to understand what size level the generated fragment object is. For example, if different processes are executed in the game depending on the size level of the fragment object, it is effective to make the size level of the generated fragment object easy to understand as described above.

[0134] Based on the above, in this embodiment, the game system 1 generates sub-objects (i.e., sub-voxel data) such that the sub-objects (i.e., fragment objects) have a size corresponding to the type of erasure event that occurred. This allows the size of the fragment objects to vary according to the type of erasure event, and the size of the fragment objects can be set in detail for each type of erasure event. The game system 1 may determine the size based on other information instead of (or along with) the type of erasure event. For example, in another embodiment, the size may be determined based on the properties (e.g., strength) of the destroying and / or destroyed objects.

[0135] Furthermore, in this embodiment, the game system 1 determines the number of sub-objects (i.e., fragment objects) to be generated (specifically, the upper limit) based on the type of erasure event that occurred. This allows for variations in the number of fragment objects generated depending on the type of erasure event. In addition, the number of fragment objects generated can be set in detail for each type of erasure event. The game system 1 may determine the number based on other information instead of (or along with) the type of erasure event. For example, in another embodiment, the number may be determined based on the properties (e.g., strength) of the destroying and / or destroyed objects.

[0136] In other embodiments, the game system 1 may determine other information about the fragment objects in place of (or in addition to) the size level and number described above, based on the type of erase event and / or other information. For example, the direction in which the fragment objects scatter may be determined based on the type of erase event.

[0137] Once the size level and maximum number of fragment objects are determined as described above, the game system 1 generates fragment objects. In this embodiment, the game system 1 generates fragment objects based on the erased portion of the voxel object (specifically, by dividing the erased portion). An example of a method for generating candidate fragment objects will be described below with reference to Figure 16.

[0138] Figure 16 shows an example of a method for generating fragment objects. In this embodiment, the game system 1 first generates an erased portion object 231 corresponding to the erased portion of the terrain object due to an erase event (see column (a) in Figure 16). Next, the game system 1 generates multiple divided objects (four divided objects 232-235 in Figure 16) by dividing the erased portion object 231 (see column (b) in Figure 16). The specific method of division is arbitrary, but for example, the erased portion object 231 may be divided by Voronoi tessellation. The game system 1 may also perform the division based on the size level determined above (for example, so that at least some of the divided objects are within the size range corresponding to that level). Alternatively, the game system 1 may also perform the division based on the upper limit number determined above (for example, so that the number of divided objects is equal to the upper limit number, or the upper limit number plus a predetermined number).

[0139] Next, the game system 1 deletes some of the multiple divided objects 232-235 obtained by the division, as needed (see column (c) in Figure 16). Specifically, the game system 1 may delete divided objects 232-235 that are outside the range corresponding to the size level determined above. The game system 1 may also delete some divided objects from the multiple divided objects 232-235 so that the number is less than or equal to the upper limit determined above. In the example shown in Figure 16, divided object 235 is deleted from the four divided objects 232-235. In this embodiment, objects 232-234 that were not deleted become fragment objects. Fragment objects can be generated to satisfy the determined size level and number as described above. If the multiple divided objects obtained by the division satisfy the determined size level and number, the game system 1 does not need to perform the process of deleting those multiple divided objects.

[0140] The process of dividing the erased portion object described above may be performed using sub-voxel data or using a mesh. In other words, game system 1 may generate fragment objects represented by sub-voxel data by dividing the erased portion object represented by sub-voxel data, or it may generate fragment objects composed of meshes by dividing the erased portion object composed of meshes. In the former case, for example, in order to generate a divided object by Voronoi tessellation, a process is performed for each sub-voxel to determine the parent point closest to the sub-voxel among a set of parent points, and one or more sub-voxels belonging to one parent point are considered as one divided object, thereby generating a divided object. In this case, the divided fragment object is represented by sub-voxel data. On the other hand, in the latter case, since the fragment object obtained by division is composed of meshes, game system 1 generates sub-voxel data for the fragment object based on the mesh of the fragment object.

[0141] As described above, in this embodiment, when the game system 1 determines that the fragment generation conditions are met, it generates an erased portion object representing the erased part of the main object (i.e., terrain object), and generates sub-objects (i.e., fragment objects) by dividing the erased portion object into multiple parts. This makes it possible to generate fragment objects that conform to the shape of the erased part of the main object.

[0142] Furthermore, game system 1 generates sub-voxel data such that, among the objects obtained by dividing the erased portion object into multiple parts (divided objects 232-235 shown in Figure 16), objects that are larger than the lower limit and smaller than the upper limit become sub-objects (i.e., fragment objects). This reduces the possibility of generating fragment objects that are too large or too small. In addition, reducing the number of fragment objects generated reduces the processing load on game system 1.

[0143] As described above, in this embodiment, when multiple fragment objects are generated, the game system 1 sets up a sub-voxel space for each fragment object. That is, when it is decided to generate multiple fragment objects, the game system 1 generates sub-voxel data for each of the multiple independent sub-voxel spaces for the fragment objects. Then, as will be described in detail later, the game system 1 generates a mesh for each of the sub-objects in the virtual space based on the respective sub-voxel data.

[0144] Game System 1 sets up a sub-voxel space for fragment objects as follows, for example: The position of the sub-voxel space is set based on the location where the erase event occurred (i.e., the location where the terrain object was erased). The orientation of the sub-voxel space is set based on the orientation of the erased part of the terrain object relative to the part that is not erased. The size of the sub-voxel space may be determined based on the type of erase event that caused the generation of the fragment object, the size of the fragment object, or the properties (e.g., strength) of the destroying and / or destroyed objects.

[0145] Furthermore, in this embodiment, the length of one side of a sub-voxel in each sub-voxel space for each fragment object is predetermined and is the same in each sub-voxel space. However, in other embodiments, the length of one side of a sub-voxel in each sub-voxel space may be set for each fragment object. For example, in other embodiments, the length of one side of a sub-voxel may be determined based on the type of erasure event, the size of the fragment object, or the properties (e.g., strength) of the object being destroyed and / or destroyed.

[0146] For example, the length of one side of a sub-voxel may be set to be different for each fragment object by the process described below. Specifically, if the size of a divided object obtained by dividing the erased portion object does not fall within any of the above size levels, the game system 1 may perform a correction to enlarge or reduce the divided object so that it falls within one of the size levels, and the corrected divided object may be used as a fragment object. In this case, the game system 1 may correct the size of the divided object by correcting the size of the sub-voxel space of the divided object. When the size of the sub-voxel space is corrected in this way, the length of one side of a sub-voxel will be different for each fragment object.

[0147] When the above-mentioned fragment objects are generated, game system 1 generates meshes for both the terrain object, which is the primary voxel object, and the fragment objects, which are secondary voxel objects. Furthermore, when generating a game image in the above case, game system 1 generates an image representing the game space, including the primary voxel object and the fragment objects.

[0148] In this embodiment, fragment objects are also given a material (specifically, their properties and textures are set) in the same way as terrain objects. In this embodiment, the material of a fragment object is set based on the material of the original terrain object (specifically, the material of the part that was erased when the fragment object was generated). Specifically, if the erased part of the terrain object has only one type of material, the material of the fragment object is set to be the same as the material of the original terrain object. In other words, the properties of the fragment object are set to be the same as the properties of the original terrain object, and the texture of the fragment object is set to be the same as the texture of the original terrain object. Furthermore, if the erased part of the terrain object has multiple types of materials, the material of the fragment object may be set to be the same as the material that accounts for the highest proportion of the erased part, or the material of the fragment object may be set to be the same as the material at the location where the impact event occurred (for example, the location where it came into contact with the collision object). In other embodiments, the properties and / or texture of the fragment object may be set to be different from the properties and / or texture of the original terrain object, based on the properties and / or texture of the original terrain object.

[0149] As described above, in this embodiment, the game system 1 determines the appearance data (i.e., texture ID) set in the sub-voxels of the sub-object (i.e., fragment object) based on the appearance data that was set for the erased portion of the main object (i.e., terrain object). Furthermore, the game system 1 determines the property data (i.e., property ID) set in the sub-voxels of the sub-object (i.e., fragment object) based on the appearance data that was set for the erased portion of the main object (i.e., terrain object). This makes it possible to generate fragment objects that have properties and / or appearances corresponding to the erased terrain object.

[0150] In this embodiment, the state data included in the sub-voxel data relating to the fragment object is set to a predetermined initial value. However, in other embodiments, the state data relating to the fragment object may be set based on the content indicated by the state data of the original terrain object (for example, so that it is the same as that content).

[0151] When fragment objects are generated, the game system 1 first makes the fragment objects appear at the location where the terrain object was erased in the game space, and then moves the fragment objects in the direction of scattering from that location. This makes it possible to represent the way the fragments scatter according to the terrain object's location. The scattering direction may be determined based on the type of erasure event, based on the properties of the destroying and / or destroyed objects, or in a predetermined direction.

[0152] As described above, in this embodiment, when a terrain object is erased and a fragment object is generated, the fragment object is placed in the game space. In this embodiment, the player object can destroy the terrain object using the fragment object placed in the game space. That is, the player object can destroy the terrain object by the fragment swinging action or the fragment throwing action described above. Thus, in this embodiment, the fragment object is treated as the collision object described above. Specifically, the game system 1 determines whether an erasure event has occurred when an event occurs in which a sub-object (i.e., a fragment object) collides with a main object (i.e., a terrain object) as an impact event. According to this, the player object can further destroy the terrain object using the fragment object obtained by destroying the terrain object, thereby improving the strategic aspect of the game regarding the destruction of terrain objects and improving the enjoyment of the game.

[0153] [2-3-5. Adding terrain objects using fragment objects] Next, with reference to Figures 17 and 18, we will explain the case in which terrain objects are added by fragment objects. Figure 17 shows an example of a player object throwing a fragment object towards a terrain object. Figure 18 shows an example of a terrain object being added as a result of the fragment object contacting the terrain object. In this embodiment, as shown in Figures 17 and 18, for example, if a player object 241 throws a fragment object 242 towards a terrain object 243, the fragment object 242 may come into contact with the terrain object 243. In such a case, under certain conditions, the game system 1 changes the shape of the terrain object 243 so that it appears as if the fragment object 242 is combined with the terrain object 243 (that is, it adds the amount of the terrain object 243 equivalent to the fragment object 242) (see Figure 18). The process of adding terrain objects by fragment objects will be explained below.

[0154] When a fragment object comes into contact with a terrain object, the game system 1 first determines whether an additional condition is met. In the examples shown in Figures 17 and 18, the case where the fragment object 242 comes into contact with the terrain object 243 is shown as an example, but the event that causes the fragment object to come into contact with the terrain object is arbitrary.

[0155] The specific content of the additional conditions is arbitrary, but for example, they may be conditions relating to the materials or properties of the two contacting objects (i.e., the fragment object and the terrain object). Specifically, the additional conditions may be that one or both objects have properties that can be added to the other object, that the materials of the two contacting objects are a specific combination, or that the strengths of the two contacting objects are in a predetermined relationship. Note that the additional conditions are set so as not to overlap with the deletion conditions described above.

[0156] If additional conditions are met, game system 1 modifies the shape of the terrain object to which the fragment object has come into contact, based on the fragment object that has come into contact with it, so that the terrain object that the fragment object has come into contact with is added. In other words, game system 1 updates the main voxel data to change the shape of the terrain object.

[0157] Specifically, game system 1 determines which voxel in the main voxel space will have a terrain object added to it (referred to as the "target voxel"). The target voxel is determined based on the position where the fragment object and the terrain object come into contact, and the shape of the fragment object. For example, the target voxel will be the main voxel corresponding to the contact position and the main voxel that overlaps with the fragment object at the time of contact (i.e., where the fragment object exists).

[0158] Game system 1 may add terrain objects by increasing the density indicated by the voxel data for the determined target voxels. In this case, game system 1 adjusts the value of the increased density so that the shape of the added part corresponds to the shape of the fragment object. In this way, game system 1 can change the shape of the terrain object so that it becomes a shape in which the fragment object is attached to the terrain object, and can represent the appearance of the fragment object being attached to the terrain object.

[0159] Furthermore, when adding a terrain object, Game System 1 removes the fragment object from the game space. Also, because the fragment object is removed, Game System 1 also erases the sub-voxel space of that fragment object (i.e., the sub-voxel space is no longer defined).

[0160] As described above, in this embodiment, when a sub-object (i.e., a fragment object) collides with a main object (i.e., a terrain object), the game system 1 updates the main voxel data based on the sub-voxel data so that the portion corresponding to the sub-object is added to the main object in the main voxel space. This allows two objects with different voxel spaces (i.e., a terrain object and a fragment object) to be integrated into a single object defined by the main voxel data. Furthermore, since player objects can add terrain objects in addition to deleting them, the options available to player objects in the game can be increased, thereby improving the strategic depth of the game.

[0161] [3. Specific examples of processing in game systems] Next, we will explain specific examples of information processing in game system 1 with reference to Figures 19 to 22.

[0162] Figure 19 shows an example of various data used for information processing in Game System 1. As shown in Figure 19, Game System 1 stores the game program, main voxel space data, main voxel object data, main mesh data, sub-voxel space data, sub-voxel object data, and sub-mesh data. The game program and main voxel space data are data that are stored in Game System 1 in advance before the execution of game processing. The game program and main voxel space data are stored, for example, in a storage medium installed in slot 23 of the main unit 2. The main voxel object data, main mesh data, sub-voxel space data, sub-voxel object data, and sub-mesh data are data that are generated during the execution of game processing. These data are stored, for example, in the DRAM 85 of the main unit 2.

[0163] The game program is a game program for executing the game processing in this embodiment (specifically, the game processing shown in Figure 20).

[0164] The primary voxel space data defines the primary voxel space set in the game space. Specifically, the primary voxel space data indicates the length of one side of the primary voxel and the direction of each side of the primary voxel in the game space. Furthermore, if the primary voxel space is set in only a portion of the game space, the primary voxel space data may also include data indicating the location and size of the space in which the primary voxels are set (i.e., the primary voxel space) (i.e., data indicating the range in the game space in which the primary voxels are set).

[0165] The principal voxel object data is data that indicates the principal object (i.e., terrain object) placed in the game space. Specifically, the principal voxel object data includes principal voxel data for each unit region within a portion or all of the game space.

[0166] The main mesh data is data that indicates the mesh set for the main object placed in the game space (i.e., the mesh of the terrain object). The main mesh data includes, for example, data indicating the position of each vertex in the main mesh.

[0167] Sub-voxel space data is data that defines the sub-voxel space set up in the game space. Specifically, sub-voxel space data indicates the location and size of the space in which the sub-voxels are set up (i.e., the sub-voxel space), the length of one side of the sub-voxel, and the direction of each side of the sub-voxel in the game space.

[0168] Sub-voxel object data is data that indicates sub-objects (i.e., fragment objects) placed in the game space. Specifically, sub-voxel object data includes sub-voxel data for each unit region within a portion or all of the game space.

[0169] Sub-mesh data is data that indicates the mesh set for a sub-object placed in game space (i.e., the mesh of the fragment object). Sub-mesh data includes, for example, data indicating the position of each vertex in the sub-mesh.

[0170] In this embodiment, the set of sub-voxel space data, sub-voxel object data, and sub-mesh data is set for each sub-object. That is, when multiple sub-objects are placed in the game space, the game system 1 stores the above set for each sub-object.

[0171] In addition to the data shown in Figure 19, Game System 1 also stores the following data before the execution of game processing: the aforementioned property information and texture information data, the aforementioned fragment generation information data, and data related to various characters that appear in the game.

[0172] Figure 20 is a flowchart illustrating an example of the game processing flow performed by game system 1. The game processing shown in Figure 20 is initiated, for example, when the player issues an instruction to start the game during the execution of the game program described above.

[0173] In this embodiment, the processor 81 of the main unit 2 executes the game program stored in the game system 1, thereby executing the processing of each step shown in Figures 20 to 22. However, in other embodiments, some of the processing of each step may be executed by a processor other than the processor 81 (for example, a dedicated circuit). Also, if the game system 1 can communicate with other information processing devices (for example, a server), some of the processing of each step shown in Figures 20 to 22 may be executed by the other information processing device. Furthermore, the processing of each step shown in Figures 20 to 22 is merely an example, and the processing order of each step may be changed, or other processing may be performed in addition to (or instead of) the processing of each step, as long as similar results can be obtained.

[0174] Furthermore, the processor 81 executes the processing of each step shown in Figures 20 to 22 using memory (for example, DRAM 85). That is, the processor 81 stores the information (in other words, data) obtained by each processing step in memory, and when it is necessary to use that information in subsequent processing steps, it reads the information from memory and uses it.

[0175] In step S1 shown in Figure 20, the processor 81 sets up the main voxel space in the game space. Specifically, the processor 81 acquires the main voxel space data and stores it in the DRAM 85 (in other words, writes it). In subsequent game processing, the processor 81 may refer to the main voxel space data when executing processing related to terrain objects (for example, the processing in step S2). In this case, the processor 81 refers to the main voxel space data stored in the DRAM 85. The processing in step S2 is executed after step S1.

[0176] In step S2, the processor 81 sets the terrain objects in the game space in their initial state. Specifically, the processor 81 acquires voxel data indicating the arrangement of the terrain objects in their initial state, and stores (in other words, writes) part or all of the acquired voxel data to the DRAM 85 as main voxel object data. The voxel data indicating the arrangement of the terrain objects in their initial state is stored, for example, in a storage medium installed in slot 23 of the main unit 2. The processing in step S3 is executed after step S2.

[0177] The voxel data written to the DRAM 85 as main voxel object data may be a portion of the main voxel data used for generating game images, out of the main voxel data for the entire game space. The processor 81 may, for example, generate an image of an object using main voxel data for only a portion of the game space (for example, a portion within a predetermined distance from the virtual camera's position). In this case, the main voxel object data may include the voxel data within that portion. Furthermore, when main voxel data for a portion of the game space is written, the same processing as in step S2 is executed at an appropriate timing during the execution of the series of processes in steps S4 to S10 described later (for example, when the virtual camera's position moves by a predetermined distance or more).

[0178] In step S3, the processor 81 generates a mesh for the terrain object. The mesh is generated according to the method described above in "[2-2. Mesh]". Here, the processor 81 generates the mesh based on the main voxel object data stored in the DRAM 85 and stores it in the DRAM 85 as main mesh data. As a result of the processing in step S3, the terrain object is constructed in the game space. After step S3, the game starts, and the series of processes in steps S4 to S10 are repeatedly executed during the game.

[0179] In step S4, the processor 81 controls the behavior of various objects that appear in the game space (for example, player objects and enemy objects). For example, the processor 81 controls the behavior of player objects based on operation data received from each controller 3 or 4, or controls the behavior of enemy objects based on algorithms defined in the game program. The processing in step S5 is executed after step S4.

[0180] In step S5, the processor 81 determines whether the impact event described above occurred as a result of step S4. If the determination result in step S5 is positive, the process in step S6 is executed. On the other hand, if the determination result in step S5 is negative, the process in step S6 is skipped and the process in step S7 is executed.

[0181] In step S6, the processor 81 performs an erase process to erase a portion of the terrain object. The detailed flow of the erase process will be explained below with reference to Figure 21.

[0182] Figure 21 is a subflowchart showing an example of a detailed flow of the erase process in step S6 shown in Figure 20. In the erase process, first in step S11, the processor 81 determines whether the erase conditions described above have been met as a result of step S4. As described above, the determination of the erase conditions is performed for each primary voxel, so in the determination in step S4, if the erase conditions are met for at least one primary voxel, the determination result is affirmative. If the determination result in step S11 is affirmative, the process in step S12 is executed. On the other hand, if the determination result in step S11 is negative, the processor 81 terminates the erase process shown in Figure 21.

[0183] In step S12, the processor 81 updates the main voxel data stored in the DRAM 85 to erase a portion of the terrain object. Specifically, the processor 81 erases a portion of the terrain object in the manner described in "[2-3-2. Erasing Terrain Objects]" above. The process in step S13 is executed after step S12.

[0184] In step S13, the processor 81 updates the mesh for terrain objects whose main voxel data was modified in step S12. That is, the processor 81 generates a mesh for terrain objects based on the main voxel object data updated in step S12. This allows the mesh of terrain objects to be dynamically changed during gameplay. The processor 81 also updates the main mesh data stored in the DRAM 85 to reflect the newly generated mesh. The processing in step S14 is executed after step S13.

[0185] In step S14, the processor 81 determines whether the fragment generation conditions described above have been met based on the results of step S4. Specifically, the processor 81 sets fragment generation conditions according to the type of erasure event in accordance with the method described in "[2-3-3. Fragment Generation Conditions]" above, and determines whether the set fragment generation conditions have been met. If the result of the determination in step S14 is positive, the process in step S15 is executed. On the other hand, if the result of the determination in step S14 is negative, the processor 81 terminates the erasure process shown in Figure 21.

[0186] In step S15, the processor 81 divides the erased portion object as described above (see Figure 16). That is, the processor 81 first determines information regarding the size level and upper limit number of fragment objects, and then executes the process of dividing the erased portion object based on the determined information. The division process in step S15 is performed according to the method described in "[2-3-4. Generation of Fragment Objects]" above. The process in step S16 is executed after step S15.

[0187] In step S16, the processor 81 sets up a sub-voxel space for the fragment object to be generated. The setting up of the sub-voxel space is performed according to the method described in "[2-3-4. Generation of Fragment Objects]" above. At this time, the processor 81 stores the sub-voxel space data that defines the set sub-voxel space in the DRAM 85. The processing in step S17 is executed after step S16.

[0188] In step S17, the processor 81 generates sub-voxel data representing the fragment object obtained by the division process in step S15. Specifically, the processor 81 generates sub-voxel data of sub-voxels in the sub-voxel space set in step S16, which represents the fragment object generated in step S15. The processor 81 also stores the sub-voxel object data, including the generated sub-voxel data, in the DRAM 85. The sub-voxel data generated in step S17 only needs to include density data and does not need to include material data and state data. The processing in step S18 is executed after step S17.

[0189] In step S18, the processor 81 sets the material and state of the generated fragment object. That is, the processor 81 sets the material and state of the fragment object according to the method described in "[2-3-4. Generation of Fragment Objects]" above, and updates the sub-voxel data of the sub-voxel object data stored in the DRAM 85 to reflect the set content. The process in step S19 is executed after step S18.

[0190] In step S19, the processor 81 generates a mesh for the fragment object. For example, the processor 81 generates a mesh for the fragment object based on sub-voxel data in a similar manner to how the mesh for terrain objects is generated. The processor 81 stores data indicating the generated mesh for the fragment object as sub-mesh data in the DRAM 85. After step S19, the processor 81 terminates the erase process shown in Figure 21.

[0191] If multiple fragment objects are generated in step S15 (i.e., multiple objects are created after division), the series of processes in steps S16 to S19 will be executed for those multiple fragment objects.

[0192] Returning to the explanation of Figure 20, the process in step S7 is executed after the erasure process in step S6. In step S7, the processor 81 determines, based on the result of step S4, whether or not the fragment object has come into contact with the terrain object. If the result of the determination in step S7 is positive, the process in step S8 is executed. On the other hand, if the result of the determination in step S7 is negative, the process in step S8 is skipped and the process in step S9, which will be described later, is executed.

[0193] In step S8, the processor 81 performs additional processing to add terrain objects. The detailed flow of this additional processing will be explained below with reference to Figure 22.

[0194] Figure 22 is a subflowchart showing an example of a detailed flow of the additional processing in step S8 shown in Figure 20. In the additional processing, first in step S21, the processor 81 determines whether the above additional conditions have been met as a result of step S4. If the result of the determination in step S21 is positive, the processing in step S22 is executed. On the other hand, if the result of the determination in step S21 is negative, the processor 81 terminates the additional processing shown in Figure 22.

[0195] In step S22, the processor 81 updates the main voxel data to add terrain objects based on the fragment objects that have come into contact with the terrain object. Specifically, the processor 81 updates the main voxel data in accordance with the method described in "[2-3-5. Addition of Terrain Objects by Fragment Objects]" above. The processor 81 updates the main voxel object data stored in the DRAM 85 to include the updated main voxel data. The processing in step S23 is performed after step S22.

[0196] In step S23, the processor 81 deletes the fragment object that has come into contact with the terrain object and removes the sub-voxel space related to the fragment object from the game space. That is, the processor 81 deletes the sub-voxel space data, sub-voxel object data, and sub-mesh data related to the fragment object from the DRAM 85. After step S23, the processor 81 completes the additional processing shown in Figure 22.

[0197] Returning to the explanation of Figure 20, the processing in step S9 is executed after the additional processing in step S8. In step S9, the processor 81 generates a game image representing the game space and displays it on the display device. Specifically, the processor 81 generates a game image representing the game space, including voxel objects and other objects (e.g., player objects and enemy objects). The image of the voxel objects is generated using the main voxel object data, main mesh data, sub-voxel object data, and sub-mesh data stored in the DRAM 85, according to the method described in "[2-2. Mesh]" above. The processor 81 displays the generated game image on the display device. During the game, the processing in step S9 is repeatedly executed at a rate of once every predetermined time (e.g., 1 frame time). The processing in step S10 is executed after step S9.

[0198] In step S10, the processor 81 determines whether or not to terminate the game. For example, the processor 81 determines whether or not the user has given an instruction to terminate the game. If the result of the determination in step S10 is negative, the process in step S4 is executed again. Thereafter, the series of processes from steps S4 to S10 are repeatedly executed until it is determined in step S10 that the game should be terminated. On the other hand, if the result of the determination in step S10 is positive, the processor 81 terminates the game process shown in Figure 20.

[0199] [4. Effects and Modifications of This Embodiment] As described above, in the above embodiment, the information processing system (specifically, the game system 1) is configured to include the following means. - A main object generation means (step S3) that generates a mesh of a main object (i.e., terrain object) in the virtual space based on the main voxel data for each main voxel defined in the main voxel space, which is a voxel space set up in the virtual space. - A primary voxel update means (step S13) updates the primary voxel data of a primary voxel to be erased so that, if an erase event occurs for at least some primary voxels among multiple primary voxels in the primary voxel space, at least the portion of the primary object corresponding to the primary voxel to be erased (the primary voxel on which the erase event occurred) is erased. - When an erasure event occurs, a fragment determination means (step S14) determines whether the fragment generation conditions are met based on the property data relating to the voxel to be erased, from the property data that shows the properties (specifically, intensity) of the main object for each main voxel. If it is determined that the fragment generation conditions are met, a sub-object generation means (steps S17, S19) generates sub-voxel data which is the voxel data for each sub-voxel defined in a sub-voxel space that is set up in the virtual space but is different from the main voxel space, and is the voxel data for a sub-object (i.e., fragment object), and generates a mesh of the sub-object in the virtual space based on said sub-voxel data. Image output means (step S9) that outputs images of the mesh of the main object and the mesh of the sub-object in the virtual space to a display device.

[0200] With the above configuration, by representing sub-objects that represent fragments of the main voxel using sub-voxel data relating to a sub-voxel space different from the main voxel space, it is possible to realistically represent the fragments when the main object is destroyed.

[0201] Furthermore, with the above configuration, since the fragment generation conditions are determined based on property data relating to the voxel to be erased, whether or not a sub-object representing a fragment is generated can be made different for each erased main object, and also different for each position of the erased part of the main object. This makes it possible to more realistically represent the fragments when the main object is destroyed. In other embodiments, the game system 1 may determine the fragment generation conditions without relying on the above property data. For example, the game system 1 may determine the fragment generation conditions without relying on the above property data based on the type of erasure event described above.

[0202] Furthermore, in the above embodiment, the main object was a terrain object placed in the virtual space. However, in other embodiments, the main object may be any object in the virtual space. For example, the main object may be a player object or an enemy object, or it may be a movable object in the virtual space, such as a vehicle that a player object can ride. Also, the game system 1 may have multiple types of objects, each designated as a main object.

[0203] In the above embodiment, the determination of whether or not a voxel object and another object have come into contact (so-called collision detection) is performed on a voxel-by-voxel basis. That is, the game system 1 determines that the voxel object and the other object are in contact if the other object (for example, a collision detection area set for the other object) is contained within a voxel in the game space whose density is above a predetermined value. This reduces the processing load of collision detection. However, in other embodiments, the game system 1 may perform collision detection using the mesh of the voxel object. That is, the game system 1 may determine that the voxel object and the other object are in contact if the mesh of the voxel object comes into contact with the other object.

[0204] In other embodiments, the information processing system (specifically, the game system 1) may not have some of the configurations in the above embodiments, nor may it perform some of the processes executed in the above embodiments. For example, in order to achieve some of the specific effects in the above embodiments, the information processing system may have to have the configurations necessary to achieve those effects and perform the processes necessary to achieve those effects, but it may not have to have other configurations or perform other processes. [Industrial applicability]

[0205] The above embodiment can be used, for example, as a game system or game program, for the purpose of generating objects that represent parts of an object that have been destroyed or otherwise damaged. [Explanation of Symbols]

[0206] 1. Game System 2. Main unit 3 Left controller 4 Right controller 81 processors 211 Player Objects 212,221 terrain objects 213,222 fragment objects 231 Delete partial object 232-235 Divided Objects

Claims

1. An information processing program executed in a computer of an information processing device, A main object generation means that generates a mesh of a main object in the virtual space based on the main voxel data for each main voxel defined in the main voxel space, which is a voxel space set up in the virtual space, When an erasure event occurs for at least some of the primary voxels in the primary voxel space, a primary voxel update means updates the primary voxel data of the primary voxel to be erased so that at least the portion of the primary object corresponding to the primary voxel to be erased, which is the primary voxel on which the erasure event occurred, is erased. When the aforementioned erasure event occurs, a fragment determination means determines whether the fragment generation conditions are met based on the property data relating to the voxel to be erased, among the property data that shows the properties of the main object for each main voxel. If it is determined that the fragment generation conditions are met, the sub-object generation means generates sub-voxel data which is voxel data for each sub-voxel defined in a sub-voxel space set in the virtual space that is different from the main voxel space, and is voxel data for a sub-object, and generates a mesh of the sub-object in the virtual space based on said sub-voxel data, An information processing program that causes the computer to function as an image output means for outputting images of the mesh of the main object and the mesh of the sub-object in the virtual space to a display device.

2. The information processing program according to claim 1, further comprising the computer functioning as an appearance setting means for setting the color and / or pattern of the mesh of the main object based on appearance data that defines the color and / or pattern of the main object for each main voxel.

3. The aforementioned visual data is data that represents texture, The information processing program according to claim 2, wherein the appearance setting means applies the texture indicated by the appearance data relating to a certain principal voxel to a mesh generated based on the voxel data of a certain principal voxel among the meshes of the principal object.

4. The information processing program according to claim 2 or 3, wherein the sub-object generation means determines the appearance data to be set in the sub-voxels relating to the sub-object based on the appearance data that was set for the deleted portion of the main object.

5. The information processing program according to any one of claims 1 to 4, wherein the sub-object generation means determines the property data to be set in the sub-voxel relating to the sub-object based on the property data that was set for the deleted portion of the main object.

6. The aforementioned information processing program is The computer is further configured as a quantity determination means for determining the number of sub-objects to be generated based on the type of erasure event that occurred. The information processing program according to any one of claims 1 to 5, wherein, when it is determined that a plurality of sub-objects are to be generated, the sub-object generation means generates sub-voxel data for each of the sub-objects for each of the plurality of mutually independent sub-voxel spaces, and generates meshes of the sub-objects in the virtual space based on the respective sub-voxel data.

7. The information processing program according to any one of claims 1 to 6, wherein the fragment determination means performs setting conditions to be used as fragment generation conditions, and / or determining whether or not the fragment generation conditions are met, based on the type of erasure event that has occurred.

8. The information processing program according to claim 7, wherein the fragment generation determination means determines the type of erasure event based on the type of impact event when the erasure event occurs due to an impact event that applies an impact to the main object.

9. The information processing program according to claim 8, wherein the fragment generation determination means determines that different types of erasure events have occurred when a first impact event occurs due to an action in which a player object collides a collision object with the main object, and when a second impact event occurs due to an action in which the player object moves a collision object toward the main object, thereby causing the collision object to collide with the main object.

10. The information processing program according to claim 8 or 9, wherein the fragment generation determination means determines whether the erasure event has occurred when an event occurs in which the sub-object collides with the main object as the impact application event.

11. The aforementioned property data indicates the intensity of the main object. The information processing program according to any one of claims 1 to 10, wherein the fragment generation determination means determines whether the fragment generation condition is met based on the intensity corresponding to the type of erasure event that occurred and the intensity indicated by the property data set in the voxel to be erased where the erasure event occurred.

12. The aforementioned property data indicates the intensity of the main object. The information processing program according to any one of claims 1 to 11, wherein the fragment generation determination means determines whether or not the erasure event occurs when an impact event is performed on the main object, based on the intensity of the impact event, which is set according to the type of impact event, and the intensity indicated by the property data set on the main voxel on which the impact event occurred.

13. The information processing program according to any one of claims 1 to 12, wherein the sub-object generation means generates the sub-voxel data such that the sub-object is of a size corresponding to the type of erasure event that occurred.

14. The information processing program according to any one of claims 1 to 13, wherein the sub-object generation means, when it is determined that the fragment generation conditions are met, generates an erased portion object representing the erased portion of the main object, and generates the sub-object by dividing the erased portion object into a plurality of parts.

15. The information processing program according to claim 14, wherein the sub-object generation means generates sub-voxel data such that objects obtained by dividing the erased portion object into a plurality of parts, the objects that are greater than the lower limit and less than the upper limit, become the sub-objects.

16. The information processing program according to any one of claims 1 to 15, wherein the main object generation means updates the main voxel data based on the sub-voxel data such that when the sub-object collides with the main object, a portion corresponding to the sub-object is added to the main object in the main voxel space.

17. The information processing program according to any one of claims 1 to 16, wherein the sub-object generation means sets up the sub-voxel space in which voxels with a side length shorter than the main voxel are defined as sub-voxels.

18. The information processing program according to any one of claims 1 to 17, wherein the sub-object generation means sets the direction of the coordinate axes in the sub-voxel space independently of the direction of the coordinate axes in the main voxel space.

19. The information processing program according to any one of claims 1 to 18, wherein the main object is a terrain object placed in the virtual space.

20. A main object generation means that generates a mesh of a main object in the virtual space based on the main voxel data for each main voxel defined in the main voxel space, which is a voxel space set up in the virtual space, When an erasure event occurs for at least some of the primary voxels in the primary voxel space, a primary voxel update means updates the primary voxel data of the primary voxel to be erased so that at least the portion of the primary object corresponding to the primary voxel to be erased, which is the primary voxel on which the erasure event occurred, is erased. When the aforementioned erasure event occurs, a fragment determination means determines whether the fragment generation conditions are met based on the property data relating to the voxel to be erased, among the property data that shows the properties of the main object for each main voxel. If it is determined that the fragment generation conditions are met, the sub-object generation means generates sub-voxel data which is voxel data for each sub-voxel defined in a sub-voxel space set in the virtual space that is different from the main voxel space, and is voxel data for a sub-object, and generates a mesh of the sub-object in the virtual space based on said sub-voxel data, An information processing system comprising: an image output means for outputting images of the mesh of the main object and the mesh of the sub-object in the virtual space to a display device.

21. A main object generation means that generates a mesh of a main object in the virtual space based on the main voxel data for each main voxel defined in the main voxel space, which is a voxel space set up in the virtual space, When an erasure event occurs for at least some of the primary voxels in the primary voxel space, a primary voxel update means updates the primary voxel data of the primary voxel to be erased so that at least the portion of the primary object corresponding to the primary voxel to be erased, which is the primary voxel on which the erasure event occurred, is erased. When the aforementioned erasure event occurs, a fragment determination means determines whether the fragment generation conditions are met based on the property data relating to the voxel to be erased, among the property data that shows the properties of the main object for each main voxel. If it is determined that the fragment generation conditions are met, the sub-object generation means generates sub-voxel data which is voxel data for each sub-voxel defined in a sub-voxel space set in the virtual space that is different from the main voxel space, and is voxel data for a sub-object, and generates a mesh of the sub-object in the virtual space based on said sub-voxel data, An information processing apparatus comprising: an image output means for outputting images of the mesh of the main object and the mesh of the sub-object in the virtual space to a display device.

22. An information processing method performed by an information processing system, A main object generation step in which a mesh of the main object is generated in the virtual space based on the main voxel data for each main voxel defined in the main voxel space, which is a voxel space set up in the virtual space, If an erasure event occurs for at least some of the primary voxels in the primary voxel space, a primary voxel update step updates the primary voxel data of the primary voxel to be erased so that at least the portion of the primary object corresponding to the primary voxel to be erased, which is the primary voxel on which the erasure event occurred, is erased. When the aforementioned erasure event occurs, a fragment determination step is performed to determine whether the fragment generation conditions are met, based on the property data relating to the voxel to be erased, among the property data that shows the properties of the main object for each main voxel. If it is determined that the fragment generation conditions are met, a sub-object generation step is performed to generate sub-voxel data which is voxel data for each sub-voxel defined in a sub-voxel space set in the virtual space that is different from the main voxel space, and which is voxel data for a sub-object, and to generate a mesh of the sub-object in the virtual space based on said sub-voxel data, An information processing method comprising: an image output step of outputting images of the mesh of the main object and the mesh of the sub-object in the virtual space to a display device.