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

The information processing program addresses the challenge of restoring objects in a virtual space by updating voxel data and performing restoration processes, ensuring smooth gameplay and reduced processing load.

JP7857325B2Active Publication Date: 2026-05-12NINTENDO CO LTD
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
NINTENDO CO LTD
Filing Date
2024-01-30
Publication Date
2026-05-12

AI Technical Summary

Technical Problem

Existing technologies lack efficient methods for gradually restoring objects in a virtual space after changes have occurred, leading to inconveniences and potential game-related issues.

Method used

An information processing program that updates voxel data and performs a restoration process to gradually return objects to their original state by using reference data and voxel restoration means, allowing for mesh generation and image output.

Benefits of technology

Enables objects to be automatically and gradually restored after changes, reducing processing load and preventing player inconvenience by ensuring objects are restored in a controlled manner.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007857325000001
    Figure 0007857325000001
  • Figure 0007857325000002
    Figure 0007857325000002
  • Figure 0007857325000003
    Figure 0007857325000003
Patent Text Reader

Abstract

To gradually restore an altered object.SOLUTION: An information processing system is configured to: store voxel data related to a plurality of voxels related to a restoration object and reference data serving as a standard about the restoration object and indicative of reference values of parameters included in the voxel data; when a change event occurs for the restoration object, update the voxel data related to the restoration object; when restoration conditions are met for a restoration object where the change event has occurred, execute restoration processing for gradually altering the restoration object by returning parameter values included in the plurality of updated voxel data to the reference values included in the reference data; and generate a mesh of the restoration object on the basis of the voxel data.SELECTED DRAWING: Figure 19
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 apparatus, and an information processing method for restoring an object to which a change has been made in a virtual space.

Background Art

[0002] Conventionally, for example, a mesh of an object has been generated using voxel data (see, for example, Non-Patent Document 1). Further, changes such as deformation have been made to such an object.

Prior Art Documents

Non-Patent Documents

[0003]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] There has been room for improvement in gradually restoring an object to which a change has been made to its state before the change.

[0005] Therefore, an object of the present invention relates to an information processing program, an information processing apparatus, an information processing system, and an information processing method capable of gradually restoring an object to which a change has been made.

Means for Solving the Problems

[0006] In order to solve the above problems, the present invention employs the following configurations (1) to (17).

[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 device stores voxel data relating to a plurality of voxels relating to a restoration object in a virtual space, and reference data that serves as a reference for the restoration object, indicating reference values ​​of parameters included in the voxel data. The information processing program causes the computer to function as a voxel update means, a voxel restoration means, a mesh generation means, and an image generation means. The voxel update means updates the voxel data relating to the restoration object when a change event occurs to the restoration object. The voxel restoration means executes a restoration process that gradually changes the restoration object by returning the values ​​of the parameters included in the updated plurality of voxel data back to the reference values ​​included in the reference data when the restoration conditions are met for the restoration object on which the change event occurred. The mesh generation means generates a mesh of the restoration object based on the voxel data. The image generation means generates an image of the virtual space including an image of the mesh of the restoration object drawn on it, for output to a display device.

[0008] According to the configuration described in (1) above, objects that have been modified by a change event can be gradually restored through a restoration process.

[0009] (2) The voxel restoration means may determine that the restoration conditions are met at a second timing after the first timing in which the change event occurred, and execute the restoration process.

[0010] According to the configuration described in (2) above, the restored object can be automatically restored after a change event occurs.

[0011] (3) A change event may occur when a player object is placed on a restored object within the virtual space. When a change event occurs, the voxel update means may update the voxel data such that the portion of the restored object that includes the location where the player object is placed is erased.

[0012] According to the configuration described in (3) above, after the object beneath the player object is deleted, the object is restored, thus preventing the inconvenience of the player losing the ability to move because the object disappears as they continue to move.

[0013] (4) The voxel restoration means may determine that the restoration conditions have been met in response to the player's actions and then execute the restoration process.

[0014] According to the configuration described in (4) above, objects can be restored in response to player operations.

[0015] (5) The reference data may show reference values ​​for each of the multiple voxels related to the restored object.

[0016] According to the configuration in (5) above, voxel-level restoration of the restored object can be easily performed.

[0017] (6) The voxel restoration means may sequentially specify target voxels to be restored from among multiple voxels relating to the restoration object based on a specified rule, and perform restoration on the specified voxels.

[0018] According to the configuration described in (6) above, the restored object can be gradually restored according to a certain rule.

[0019] (7) The voxel restoration means may sequentially specify target voxels along a restoration path set up in the virtual space.

[0020] According to the configuration of (7) above, the restored object can be gradually restored in the direction along the set path.

[0021] (8) The change event may be that the destroyed object contacts the restored object in the virtual space. When the change event occurs, the voxel update means may update the voxel data so that the part including the position where the destroyed object contacts among the restored objects is erased. The voxel restoration means may set a restoration path so as to be in a direction corresponding to the contact direction based on the position where the destroyed object contacts the restored object.

[0022] According to the configuration of (8) above, restoration can be performed in a direction corresponding to the content of the change event (in the above example, the direction of the punch) at a position corresponding to the contact position.

[0023] (9) When the first restoration condition is satisfied for the part of the restored object where the first change event occurs as the change event, the voxel restoration means may sequentially specify target voxels based on the first restoration region data that defines the restoration path in the first restoration process, which is the restoration process corresponding to the first change event. When the second restoration condition is satisfied for the part of the restored object where the second change event different from the first change event occurs as the change event, the voxel restoration means may sequentially specify target voxels based on the second restoration region data that defines the restoration path in the second restoration process, which is the restoration process corresponding to the second change event. During the period when the first restoration process is executed and the period when the second restoration process is executed overlap, the voxel restoration means may perform restoration using the voxels specified based on at least one of the first restoration region data and the second restoration region data as the target voxels.

[0024] According to the configuration of (9) above, even when multiple restoration processes are executed in parallel due to the continuous occurrence of multiple change events, the possibility of the restoration process becoming complicated can be reduced.

[0025] (10) The voxel restoration means may set a restoration area in the virtual space, specify target voxels from the voxels overlapping with the restoration area among the plurality of voxels related to the restoration object, and sequentially specify the target voxels by moving the restoration area along the restoration path.

[0026] According to the configuration of (10) above, it is possible to easily specify the target voxels along the path.

[0027] (11) The voxel restoration means may sequentially specify the target voxels in the direction from the inside to the outside of the restoration object.

[0028] According to the configuration of (11) above, it is possible to express the state where the restoration object is gradually restored from the inside.

[0029] (12) The reference data may indicate a reference value for a parameter indicating the density used to generate a mesh among the parameters included in the voxel data. When a change event occurs for the restoration object, the voxel update means may update the voxel data so as to change the parameter indicating the density. When the restoration condition is satisfied for the restoration object for which a change event has occurred, the voxel restoration means may execute a restoration process of gradually changing the restoration object by returning the value of the parameter indicating the density included in the updated voxel data to the reference value included in the reference data.

[0030] According to the configuration of (12) above, it is possible to easily restore the shape of the restoration object deformed by the occurrence of a change event.

[0031] (13) The reference data may indicate reference values ​​for the material set in the voxel among the parameters included in the voxel data. The voxel update means may update the voxel data to change the parameter indicating the material when a change event occurs in the restored object. The voxel restoration means may perform a restoration process that gradually changes the restored object by returning the values ​​of the parameter indicating the material included in the updated voxel data back to the reference value included in the reference data when the restoration conditions are met for the restored object in which a change event has occurred.

[0032] According to the configuration described in (13) above, the material of a restored object whose material has changed due to the occurrence of a change event can be easily restored to its original state.

[0033] (14) The voxel update means may update the voxel data relating to the restored object if a change event occurs with respect to the restored object, such that the area occupied by the restored object in the virtual space decreases.

[0034] According to the configuration described in (14) above, a restored object whose volume has decreased due to a change event can be restored to its original state through the restoration process.

[0035] (15) If a change event occurs with respect to a restored object, the area occupied by the restored object in the virtual space may be reduced, and a separate object corresponding to the reduced portion may be generated. The voxel restoration means may perform a restoration process on a restored object if the restoration conditions are met, but may not perform a restoration process on a separate object.

[0036] According to the configuration described in (15) above, the possibility of game-related problems occurring can be reduced by performing a restoration process on restored objects, while the processing load on the information processing system can be reduced by not performing a restoration process on separated objects.

[0037] (16) The voxel update means may update the voxel data relating to the restored object if a change event occurs with respect to the restored object, so as to increase the area occupied by the restored object in the virtual space.

[0038] According to the configuration described in (16) above, a restored object whose volume has increased due to a change event can be restored to its original state through the restoration process.

[0039] (17) The information processing program may further utilize the computer as an object control means. The object control means moves and / or rotates the restored object in the virtual space by moving and / or rotating the voxel space in the virtual space where the voxels relating to the restored object are set. If the restored object has moved and / or rotated after a change event, the voxel restoration means may perform the restoration process using the voxel data relating to the voxel space after the move and / or rotation.

[0040] According to the configuration described in (17) above, the processing load on the information processing system can be reduced even when the restored object is moved and / or rotated.

[0041] 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 (17) 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 (17) above. [Effects of the Invention]

[0042] According to the above-described information processing program, information processing device, information processing system, and information processing method, an object that has been altered can be gradually restored. [Brief explanation of the drawing]

[0043] [Figure 1] This diagram shows an example of the main unit with the left and right controllers attached. [Figure 2] This diagram shows an example of the left and right controllers being removed from the main unit. [Figure 3] A six-view drawing showing an example of the main unit. [Figure 4] A six-view drawing showing an example of a left controller. [Figure 5] A six-view drawing showing an example of a right controller. [Figure 6] Block diagram showing an example of the internal configuration of the main unit. [Figure 7] Block diagram showing an example of the internal configuration of the main unit, left controller, and right controller. [Figure 8] This diagram shows an example of a terrain object that is a voxel object. [Figure 9] Figure 8 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 10] Figure 8 shows an example of what the terrain object looks like before and after a portion of it is deleted. [Figure 11] A diagram showing an example of the contents of voxel data. [Figure 12] A diagram showing an example of property information that indicates the properties of a material. [Figure 13] A diagram showing an example of texture information that indicates the texture of a material. [Figure 14] A diagram showing an example of a mesh generation method. [Figure 15] A diagram showing an example of a game image that includes terrain objects. [Figure 16]This is an example of a game image showing a player character punching a terrain object. [Figure 17] This is an example of a game image showing how part of a terrain object is erased by a punch from a player character. [Figure 18] This image shows an example of a game screenshot illustrating how erased parts of terrain objects are gradually restored. [Figure 19] A diagram showing an example of movement of the restoration area during the restoration process. [Figure 20] This diagram shows an example of a game image containing terrain objects that trigger change events. [Figure 21] This is an example of a game image showing a player character moving across a platform object. [Figure 22] A diagram showing an example of a primary voxel object and a secondary voxel object. [Figure 23] This diagram shows an example of how a restored object moves during the restoration process. [Figure 24] A diagram illustrating an example of how a portion of a restored object is separated. [Figure 25] This diagram shows an example of various types of data used in information processing within a game system. [Figure 26] A flowchart illustrating an example of the game processing flow executed by the game system. [Figure 27] Figure 26 shows a subflowchart illustrating an example of a detailed flow of the restoration process in step S9. [Modes for carrying out the invention]

[0044] [1. Game System Configuration] The following describes a game system according to an example of this embodiment. An example of the game system 1 in this embodiment includes a main unit (information processing device; functioning as the game device main unit in this embodiment) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are detachable from the main unit 2. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. Alternatively, the game system 1 can be used with the main unit 2 and the left controller 3 and right controller 4 as separate components (see Figure 2). The hardware configuration of the game system 1 in this embodiment will be described below, followed by a description of the control of the game system 1 in this embodiment.

[0045] Figure 1 shows an example of the main unit 2 with the left controller 3 and right controller 4 attached. As shown in Figure 1, the left controller 3 and right controller 4 are attached to the main unit 2 and integrated together. The main unit 2 is a device that performs various processes (e.g., game processing) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and right controller 4 are devices equipped with operation parts for user input.

[0046] Figure 2 shows an example of the left controller 3 and right controller 4 being removed from the main unit 2. As shown in Figures 1 and 2, the left controller 3 and right controller 4 are detachable from the main unit 2. In the following, the left controller 3 and right controller 4 will be collectively referred to as "controllers".

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

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

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

[0050] Furthermore, the main unit 2 is equipped with a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (for example, a capacitive touch panel). However, the touch panel 13 may be of any type, for example, a type that allows single-touch input (for example, a resistive touch panel).

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

[0052] 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.

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

[0054] The main unit 2 is equipped with a lower terminal 27. The lower terminal 27 is a terminal for the main unit 2 to communicate with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main unit 2 alone is placed on the cradle, the game system 1 can display the images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has the function of charging the integrated device or the main unit 2 alone that is placed on it. The cradle also has the function of a hub device (specifically, a USB hub).

[0055] Figure 4 is a six-view drawing showing an example of the left controller 3. As shown in Figure 4, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically elongated shape, that is, it is long in the vertical direction (i.e., in the y-axis direction as shown in Figures 1 and 4). The left controller 3 can also be held in a vertically elongated orientation when detached from the main device 2. The housing 31 is shaped and sized to be held with one hand, especially the left hand, when held in a vertically elongated orientation. The left controller 3 can also be held in a horizontally elongated orientation. When the left controller 3 is held in a horizontally elongated orientation, it may be held with both hands.

[0056] The left controller 3 is equipped with an analog stick 32. As shown in Figure 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a directional input unit that can input direction. The user can input direction (and magnitude according to the angle of tilt) by tilting the analog stick 32. In addition, the left controller 3 may be equipped with a directional pad or a slide stick that allows slide input instead of the analog stick as the directional input unit. Furthermore, in this embodiment, input by pressing the analog stick 32 is also possible.

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

[0058] Furthermore, the left controller 3 is equipped with a terminal 42 for wired communication between the left controller 3 and the main unit 2.

[0059] Figure 5 is a six-view drawing showing an example of the right controller 4. As shown in Figure 5, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically elongated shape, that is, a shape that is long in the vertical direction. When the right controller 4 is detached from the main unit 2, it can also be held in a vertically elongated orientation. The housing 51 is shaped and sized to be held with one hand, especially the right hand, when held in a vertically elongated orientation. The right controller 4 can also be held in a horizontally elongated orientation. When the right controller 4 is held in a horizontally elongated orientation, it may be held with both hands.

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

[0061] Furthermore, the right controller 4 is equipped with a terminal 64 for wired communication between the right controller 4 and the main unit 2.

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

[0063] 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).

[0064] 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.

[0065] 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.

[0066] 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.

[0067] 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.

[0068] 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.

[0069] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27 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. 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. When the processor 81 communicates with the cradle, it transmits data to the cradle via the lower terminal 27. 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. Furthermore, when the left controller 3 and the right controller 4 are mounted on the main unit 2 as an integrated unit, or when the main unit 2 alone is mounted on the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

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

[0071] 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.

[0072] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speakers 88 and the audio input / output terminals 25, as well as to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to the speakers 88 and the audio input / output terminals 25.

[0073] The main unit 2 comprises a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown in the figures, the power control unit 97 is also connected to various parts of the main unit 2 (specifically, the parts that receive power from the battery 98, the left terminal 17, and the right terminal 21). Based on commands from the processor 81, the power control unit 97 controls the power supply from the battery 98 to the aforementioned parts.

[0074] The battery 98 is also connected to the lower terminal 27. When an external charging device (for example, a cradle) is connected to the lower terminal 27 and power is supplied to the main unit 2 via the lower terminal 27, the supplied power charges the battery 98.

[0075] Figure 7 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 6 and are therefore omitted in Figure 7.

[0076] The left controller 3 includes a communication control unit 101 that communicates with the main unit 2. As shown in Figure 7, the communication control unit 101 is connected to each component, including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 both 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). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed according to, for example, the Bluetooth® standard.

[0077] 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.

[0078] The left controller 3 is equipped with buttons 103 (specifically, buttons 33-39, 43, 44, and 47). The left controller 3 is also equipped with an analog stick (referred to as "stick" in Figure 7) 32. Each button 103 and the analog stick 32 repeatedly output information about the operations performed on them to the communication control unit 101 at appropriate intervals.

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

[0080] 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 the operation of each button 103 and the analog stick 32 based on the operation data.

[0081] 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).

[0082] As shown in Figure 7, 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.

[0083] The right controller 4 is equipped with the same inputs as the left controller 3. Specifically, it 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.

[0084] 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.

[0085] [2. Overview of processing in the game system] Next, an overview of the processes performed in the game system 1 will be described with reference to Figures 8 to 24. In this embodiment, the game system 1 generates a game image in which terrain objects and characters (for example, player characters controlled 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 stationary monitor.

[0086] [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.

[0087] Figure 8 shows an example of a terrain object that is a voxel object. As shown in Figure 8, in this embodiment, terrain objects representing the ground and other terrain are defined by voxel data (i.e., they are voxel objects). Each cube shown in Figure 8 represents a terrain object. Note that in Figure 8, the edges of the terrain objects are shown with thick lines, but these thick lines are added for the purpose of making the drawing easier to read, and in reality, the edges of the terrain objects do not need to be displayed with thick lines.

[0088] Furthermore, the terrain object shown in Figure 8 is generated using a rule such as, "If the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the voxel's position; if it is less than or equal to the predetermined value, nothing is placed at the voxel's position." The terrain object shown in Figure 8 is provided to illustrate the relationship between voxels and voxel objects in an easy-to-understand manner. In this embodiment, in practice, voxel objects are generated (based on voxel data) using a rule that results in a shape more complex than the length of one side of a voxel, such as the terrain object shown in Figure 15, which will be described later. 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 8 or as shown in Figure 15 based on object data.

[0089] For voxel objects, the shape can be changed by modifying the voxel data of each voxel. Figures 9 and 10 show examples of what the terrain object shown in Figure 8 looks like before and after a portion of it is deleted. That is, when the shaded portion of the terrain object shown in Figure 9 is destroyed, the terrain object changes to the shape shown in Figure 10. At this time, the game system 1 can easily delete the terrain object by rewriting the voxel data of the shaded portion voxel 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.

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

[0091] Figure 11 shows an example of the contents of voxel data. In this embodiment, the game space can be divided into a plurality of voxels arranged in a grid. 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 the voxel data.

[0092] As shown in Figure 11, 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.

[0093] 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.

[0094] 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.

[0095] As shown in Figure 11, 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.

[0096] As shown in Figure 11, 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. 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 11).

[0097] Figure 12 shows an example of property information indicating the properties of a material. As shown in Figure 12, the game system 1 stores property information that associates the above property ID with information indicating the content of the property indicated by the property ID. The properties of a material are the properties that the voxel object to which the material is set has in the game, such as weight and slipperiness as shown in Figure 12. The specific content of the properties is arbitrary, and for example, the following information may be set as the properties of the material. ·temperature • Fragility (for example, the number of times 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 the player character recovers when the player character destroys a voxel object. • The amount of in-game currency a player character acquires when they destroy 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.

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

[0099] 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.

[0100] 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 shown in Figure 11). 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 shown in Figure 11).

[0101] As described above, in this embodiment, the game system 1 manages the properties and textures of materials separately. Therefore, in this embodiment, it is possible to easily set 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.

[0102] 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.

[0103] 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).

[0104] As shown in Figure 11, 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.

[0105] [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.

[0106] Figure 14 shows an example of a mesh generation method. Note that in Figure 14, 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.

[0107] As described above, in this embodiment, the density set for a voxel is set in the range of 0 to 255. In this embodiment, voxels with a density equal to or greater than a reference threshold are considered to be inside the object, and voxels with a density less than the reference threshold 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 threshold = 1), and the reference threshold can be, for example, 128. In the example shown in Figure 14, the density of voxel 201 and the other outer voxels is set to 0, voxel 202 has a density of 100 which is less than the reference threshold, and voxels 203 and 204 have densities of 150 and 200 which are equal to or greater than the reference threshold. In this embodiment, the game system 1 generates vertices between voxels with a density equal to or greater than the reference threshold and voxels with a density less than the reference threshold. 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 threshold and voxels with a density below a threshold. Furthermore, a polygon mesh is generated by connecting vertices when the boundary between adjacent vertices (the boundary of the region containing each vertex) passes through a range of voxels with a density above the threshold and voxels with a density below the threshold. The coordinates of 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 14, since the density of voxel 202 is below the threshold, 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 reference threshold is set to a value lower than the density of voxel 202, the result will be an increase in the number of vertices on the upper right and upper left sides of voxel 202 in Figure 14.

[0108] 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. In addition, in this embodiment, voxels below a reference threshold are treated as being outside the object, so the volume is smaller because there are 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.

[0109] Figure 15 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.

[0110] The method for generating the mesh based on the voxel data is optional. 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 (see Figure 8).

[0111] 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.

[0112] In other embodiments, a single voxel data may contain multiple types (e.g., two types) of material data. In this case, the voxel data includes ratio data relating to the multiple types of material data. The ratio data is 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 (specifically, density data, multiple types of material data, and ratio data) contained in the voxel data of the target voxel. For example, if multiple types of materials are set for a target voxel 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.

[0113] 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.

[0114] [2-3. Restoring Voxel Objects] Next, the process for restoring voxel objects will be described. In this embodiment, certain voxel objects placed in the game space are changed when a game event that changes the voxel object (hereinafter referred to as a "change event") occurs, and are then restored to their original state when the restoration conditions are met. Hereafter, objects that are restored to their original state after being changed will be referred to as "restored objects." The details of the restoration process for restored objects will be described below.

[0115] Figure 16 shows an example of a game image illustrating a player character punching a terrain object. Figure 17 shows an example of a game image illustrating a portion of a terrain object being erased by the player character's punch. In the examples described here, the terrain object 211 representing a rock wall is assumed to be a voxel object and also a restoreable object. Not all terrain objects in the game space need to be restoreable objects; some terrain objects may be restoreable objects. Furthermore, objects other than terrain objects may also be restoreable objects.

[0116] In this embodiment, the player character 212 can perform a punching motion in response to player input. Furthermore, by hitting the terrain object 211 with a punch, the player character 212 can erase (or destroy) the terrain object 211, as shown in Figure 17. In the example shown in Figure 17, the part of the terrain object 211 that was hit by the player character 212's punch and the surrounding area (i.e., the altered part 223 shown in Figure 19) is erased.

[0117] As described above, in this embodiment, the game system 1 changes a voxel object in response to a change event (for example, when the player character 212 lands a punch) (specifically, it changes the shape of the voxel object). Note that the change event is not limited to when the player character 212 lands a punch on the voxel object, but may be any game event. For example, the change event may be when another object hits the voxel object, or when an explosion occurs near the voxel object. Furthermore, the range that is changed by the change event (i.e., the part of the voxel object that is changed) may be determined in any way, for example, depending on the location where the change event occurred and / or the content of the change event.

[0118] Figure 18 is an example of a game image showing how erased parts of a terrain object are gradually restored. As shown in Figure 18, in this embodiment, when a terrain object 211 is erased, the game system 1 gradually restores the terrain object 211 in accordance with the restoration conditions being met. Specifically, the game system 1 gradually restores the erased parts of the terrain object 211 to their original state, so as to gradually fill the space created by the erasure of the terrain object 211 (see the arrows shown in Figure 18). In this way, the game system 1 can represent the process of the terrain object 211 being gradually restored to its original shape.

[0119] In this embodiment, the restoration condition is that a predetermined time (for example, 2 seconds) has elapsed since the terrain object 211 was erased in response to the change event. In other words, the game system 1 executes the restoration process at a second timing after the first timing in which the change event occurred, which is determined based on the first timing in which the change event occurred. This allows the restoration object to be restored automatically after the change event occurs (i.e., regardless of whether or not the player gives instructions).

[0120] In this embodiment, the second timing is the timing after a predetermined time has elapsed since the occurrence of the change event, but it is not limited to this. For example, in other embodiments, if a series of change events occur (for example, if multiple punches are performed in a series of consecutive actions), the second timing may be the timing after a predetermined time has elapsed since the completion of the series of change events.

[0121] In other embodiments, the restoration conditions are arbitrary and not limited to those described above. For example, the restoration condition may be that the player has performed a restoration operation. In other words, the game system 1 may start the restoration process in response to an operation by the player. This allows the player to freely restore objects. Here, "starting the restoration process in response to an operation by the player" means both (a) starting the restoration process in response to the player performing a predetermined operation on the controller, and (b) the player character performing an action that satisfies a specific game condition, which is the restoration condition, as a result of the player's operation on the player character. A concrete example of the former is, for example, the player pressing a specific button on the controller. A concrete example of the latter is, for example, the player character standing in a specific location in the game space as a result of the player's operation, or the player character using a predetermined item.

[0122] Figure 19 shows an example of the movement of the restoration area during the restoration process. Figure 19 shows how the restoration area moves when the restoration process is performed on the terrain object 211 shown in Figure 18. A specific example of the restoration process in this embodiment will be described below with reference to Figure 19.

[0123] As shown in Figure 19, in this embodiment, when the game system 1 performs the restoration process, it sets a restoration area 221 in the game space. The restoration area 221 is the area in which the restoration object is restored during the restoration process. In other words, during the restoration process, the portion of the changed restoration object that is within the restoration area 221 is returned to its original state. In this embodiment, the restoration area 221 is a spherical area. However, the shape of the restoration area is arbitrary, and in other embodiments, it may be a different shape (for example, a cylinder or a cube).

[0124] Figure 19(a) shows the state at the start of the restoration process. At the start of the restoration process, the game system 1 sets the size of the restoration area 221 and the path 222. In this embodiment, the restoration area 221 is spherical, so the size of the restoration area 221 is defined by the radius of the sphere. In this embodiment, the size of the restoration area 221 is set to be large enough to include the entire changed portion (specifically, the erased portion) 223 of the terrain object 211 that has been changed.

[0125] Furthermore, the path 222 is the path along which the restored area 221 (specifically, the center of the restored area 221) moves during the restoration process. In this embodiment, the path 222 is defined by a starting position Ps and an ending position Pe. The starting position Ps is the position of the restored area 221 at the start of the restoration process, and the ending position Pe is the position of the restored area 221 at the end of the restoration process. In this embodiment, the path 222 is assumed to be a straight line. Therefore, the path 222 is defined only by the starting position and the ending position. However, in other embodiments, the path 222 does not need to be a straight line and may be a curve or a polyline. For example, if an object moving on an arc trajectory comes into contact with a terrain object 211, causing the contact portion of the terrain object 211 to be erased, the path may be set along that arc trajectory. Also, if the path is a curve or a polyline, the game system 1 sets information for defining the curve or polyline path in addition to the starting position and the ending position. The information for defining the path is arbitrary and is not limited to the starting position and the ending position. For example, in other embodiments, the path may be defined by a starting position, a direction of movement from the starting position, and a distance traveled, or by a starting position, a direction from the starting position, a speed of movement, and a travel time.

[0126] At the start of the restoration process, the game system 1 places a restoration area 221 of a set size at the starting position Ps (see Figure 19(a)). In this embodiment, the position of the restoration area 221 is the position of the center of the spherical restoration area 221. In this embodiment, the starting position Ps is set such that the restoration area 221 is placed near the changed portion (specifically, the erased portion) 223 of the terrain object 211, which is the restoration object, and the restoration area 221 does not overlap with the changed portion 223 (see Figure 19(a)). As will be described in detail later, the ending position Pe is set so that the restoration area 221 placed at the ending position Pe includes the entire changed portion 223.

[0127] During the restoration process, the game system 1 moves the restoration area 221 from the starting position Ps along the path 222 to the ending position Pe. Figure 19(b) shows the state where the restoration area 221 has progressed partway along the path 222. In this state, the game system 1 restores the object in the portion of the changed portion 223 that overlaps with the restoration area 221 (the shaded area shown in Figure 19(b)). As a result, a portion of the changed portion 223 of the terrain object 211 returns to its shape before the change.

[0128] In this embodiment, the determination of overlap between the changed portion 223 and the restored region 221 is performed based on voxels. That is, the game system 1 restores the object for voxels in the changed portion 223 that overlap with the restored region 221. In this embodiment, the game system 1 stores the value of the voxel data before the change for each voxel of the restored object as the restoration reference value. The game system 1 updates the voxel data of the target voxel to be restored to the restoration reference value. Thus, in this embodiment, object restoration is performed on a voxel-by-voxel basis.

[0129] As described above, in this embodiment, if a portion of the restored object (in this case, terrain object 211) is erased in response to a change event, the density value in the voxel data of the restored object is updated. Therefore, the game system 1 stores the density value as the restoration reference value, and in the restoration process, it returns the density value in the voxel data of the voxel to be restored to the restoration reference value.

[0130] The restoration reference value mentioned above is, for example, the value when the restored object is in its initial state (i.e., the state at the start of the game), but is not limited to this. For example, if the restored object gradually deforms from its initial shape to a predetermined shape, the restoration reference value may be the value at which it reaches that predetermined shape.

[0131] In this embodiment, the game system 1 gradually restores objects by moving the restoration area 221 along the path 222 while restoring the objects during the restoration process. In this embodiment, the game system 1 restores objects on a voxel-by-voxel basis, so as the restoration area 221 moves along the path 222, the target voxels to be restored are sequentially specified along the path 222. In this embodiment, the game system 1 repeatedly performs the movement of the restoration area 221 and the restoration of objects based on the restored area 221 after the movement, for each frame time during which the game image is generated and displayed.

[0132] As described above, in this embodiment, the game system 1 sequentially designates the target voxels to be restored along a path set in the game space. This allows the game system 1 to gradually restore the changed parts of the restored object in the direction along the set path.

[0133] Furthermore, in this embodiment, the game system 1 uses a restoration area to sequentially specify the target voxels. That is, the game system 1 sets a restoration area in the game space, designates the voxels that overlap the restoration area with the restoration object as target voxels, and sequentially specifies the target voxels by moving the restoration area along a path. This makes it easy to specify target voxels along a path by moving the restoration area.

[0134] In other embodiments, the game system 1 is not required to designate all voxels that overlap with the restoration region among a plurality of voxels relating to the restoration object as target voxels; it may select target voxels from among the plurality of voxels that overlap with the restoration region. For example, the game system 1 may designate voxels as target voxels in which a predetermined percentage (e.g., 50%) or more of the voxel's area overlaps with the restoration region. This also makes it easy to specify target voxels along the path, similar to this embodiment.

[0135] Figure 19(c) shows the state in which the restored region 221 has reached the end position Pe at the end of the restoration process. In this embodiment, when the restored region 221 has reached the end position Pe, the restored region 221 is positioned to cover the entire changed portion 223 (the shaded area shown in Figure 19(c)). This ensures that the entire changed portion 223 can be reliably restored at the end of the restoration process.

[0136] In other embodiments, the game system 1 does not need to be positioned so that the restored area 221 covers the entire changed area 223 at the end of the restoration process. In this case, the entire changed area 223 can be reliably restored by setting the path 222 and size of the restored area 221 so that the area 221 passes through during the restoration process covers the entire changed area 223.

[0137] In this embodiment, the path 222 is set based on the content of the change event. For example, if the change event is an event caused by the punching motion of the player character 212 as described above, the path 222 is set to a position corresponding to the punch's contact position and in a direction corresponding to the punch's contact direction. The punch's contact position is the position where the player character 212's punch contacts the restored object (i.e., the terrain object 211). The punch's contact direction is the direction in which the punch moves when it contacts the restored object. For example, in the example shown in Figures 16 to 19, a predetermined range of the restored object based on the punch's contact position is erased, and the end position Pe is set so that the restored area 221 includes the entirety of that portion. Therefore, it can be said that the path 222 is set based on the contact position.

[0138] Furthermore, the starting position Ps of the path 222 is set such that the direction of the path 222 (i.e., the direction from the starting position Ps to the ending position Pe) corresponds to the direction of the punch's contact (for example, the direction that matches the contact direction). For example, in the examples shown in Figures 16 to 19, the direction of the punch's contact is from the front left to the back right as seen from the perspective of the player character 212, so the starting position Ps is set so that the direction of the path 222 is from the front left to the back right. With this, the game system 1 can restore along the direction corresponding to the content of the change event (specifically, the direction of the punch). For example, in the above example, by restoring along the direction of the punch, even if the entire change portion 223 is actually erased at once by the punch, the player can be given the impression that the terrain object 211 was erased along the direction of the punch.

[0139] In the examples shown in Figures 16 to 19, the player character 212 can also dig through the terrain object 211 and form a tunnel by repeatedly performing punching motions while moving forward before the terrain object 211 is restored. In this case, the terrain object 211 will be restored sequentially from the parts that were previously erased (it can also be said that it will be restored in the direction of travel as the player 212 digs the tunnel). Here, the game system 1 restores the terrain object 211 in the direction corresponding to the direction of the punch, so that the terrain object 211 is restored from a position far from the player character 212 and in a direction approaching the player character 212, making it less likely for the player character 212 to be buried in the terrain object 211. In addition, when viewed as a whole erased part of the terrain object 211, it is restored in the direction of travel, and when viewed as a single voxel unit, it is restored in the direction corresponding to the direction of the punch (which is roughly the same direction as the direction of travel). Therefore, it is possible to represent the terrain object 212 being continuously restored in the direction of travel of the player character 212.

[0140] As described above, in this embodiment, a change event occurs when a destroyed object (player character 212 in the above example) comes into contact with a restored object (terrain object 211 in the above example) in the virtual space. When a change event occurs, the game system 1 updates the voxel data so that the portion of the restored object that includes the position where the destroyed object made contact is erased. The game system 1 also sets the path 222 of the restored area 221 so that it is in the direction corresponding to the direction of contact, based on the position where the destroyed object made contact with the restored object. This allows for restoration at the position corresponding to the contact location in a direction corresponding to the content of the change event (direction of a punch in the above example).

[0141] Furthermore, the game system 1 does not need to accurately detect the direction of contact of the punch in order to set the direction of path 222. Instead, it may set the direction of path 222 based on the content of the change event so that the direction of path 222 corresponds to the direction of contact of the punch. For example, if the change event is "Player character 212's left hand punch hit terrain object 211", the game system 1 may set the direction of path 222 from the front left to the back right relative to player character 212. If the change event is "Player character 212's right hand punch hit terrain object 211", the game system 1 may set the direction of path 222 from the front right to the back left relative to player character 212.

[0142] In other embodiments, the path to the restoration area may be set based on the restoration object. For example, the game system 1 may pre-set a path for each restoration object.

[0143] Furthermore, in this embodiment, the restoration area 221 is moved along the path 222, but in other embodiments, the game system 1 may change the size of the restoration area 221 instead of moving it along the path, or in addition to moving it along the path. For example, if the change event is that an explosion occurs near a restoration object (specifically, a terrain object 211), and a predetermined area of ​​the restoration object centered on the explosion location is erased, the game system 1 may place the restoration area at the explosion location and gradually enlarge the restoration area. This makes it possible to represent the restoration of the restoration object sequentially from a location close to the explosion location to a location farther away from it.

[0144] As described above, in this embodiment, the game system 1 sequentially designates target voxels to be restored from among a plurality of voxels relating to the restoration object based on the designated rule, and performs restoration on the designated voxels. This makes it possible to gradually restore the restoration object according to the defined rules. Here, in this embodiment, the designated rule is "the voxels that overlap with the moving restoration area are designated as target voxels." Here, in other embodiments, the content of the designated rule is arbitrary. For example, in other embodiments, the designated rule may be "sequentially designating target voxels in the direction from the inside to the outside of the restoration object (regardless of the content of the change event)." This makes it possible to represent the restoration of the restoration object gradually from the inside. Alternatively, for example, the designated rule may be "randomly selecting target voxels from among the voxels of the change portion."

[0145] In this embodiment, the game system 1 performed restoration by updating the voxel data of the target voxel so that its density reached the restoration reference value in one step. In other embodiments, the game system 1 may update the voxel data of the target voxel so that the current (i.e., changed) density value returns to the restoration reference value in multiple steps. For example, the game system 1 may update the voxel data of the target voxel so that the density value approaches the restoration reference value, while setting an upper limit on the amount of change in a single step. In this case, the voxel data update may be repeated even after the voxel in question has moved out of the restoration region, until the density reaches the restoration reference value (in this case, it can be said that the restoration region expands to include both the restoration region before and after the movement).

[0146] In the examples shown in Figures 16 to 19, the case where a portion of the restored object is erased due to a change event was explained. That is, when a change event occurs to a restored object, the game system 1 updates the voxel data so that the area occupied by the restored object in the game space decreases (i.e., at least a portion of the restored object is erased). The restoration process then increases the area occupied by the restored object in the game space. Here, the game system 1 may also update the voxel data so that the area occupied by the restored object in the game space increases (i.e., the volume of the restored object increases). In this case, the restoration process becomes a process that decreases the area occupied by the restored object in the game space.

[0147] Next, we will describe the restoration process when multiple change events occur consecutively. In this embodiment, it is possible that after one change event occurs, another change event may occur before the restoration process corresponding to that change event is completed. Note that "restoration process corresponding to a change event" refers to the restoration process for restoring the portion of the restored object that has been changed by that change event. To address the above situation, in this embodiment, the game system 1 executes multiple restoration processes using multiple restoration area data. The details of the restoration process using restoration area data will be described below.

[0148] Figure 20 shows an example of a game image containing terrain objects that undergo change events. In the example shown in Figure 20, the first change event erases the first change portion 231 of the terrain object 211, and the second change event erases the second change portion 232 of the terrain object 211.

[0149] In this embodiment, the game system 1 performs a restoration process for each change event that occurs. In this embodiment, the game system 1 sets restoration area data for each restoration process to define the restoration area used for the restoration process. In the example shown in Figure 20, it is assumed that first restoration area data used for the first restoration process corresponding to the first change event and second restoration area data used for the second restoration process corresponding to the second change event are set. The game system 1 sets a buffer for each restoration area data and manages each restoration area for each restoration process by storing the restoration area data in each buffer. In the example shown in Figure 20, first restoration area data relating to the first restoration area 233 used for the first restoration process and second restoration area data relating to the second restoration area 234 used for the second restoration process are set.

[0150] In this embodiment, the recovery area data includes data defining the path of the recovery area and the current state of the recovery area (specifically, its current position and size). For example, the recovery area data may also include data indicating the position, direction of movement, size, and time elapsed since the recovery process began. In this embodiment, the game system 1 can identify the path of the recovery area and the current state of the recovery area based on this data.

[0151] Furthermore, the recovery area data may include any data that can identify the path of the recovery area and the current state of the recovery area. For example, if the size of the recovery area changes during the recovery process, the recovery area data may include data that can identify the size of the recovery area at each point in time during the recovery process.

[0152] In this embodiment, when multiple restoration processes are executed at a given time, the game system 1 independently executes each restoration process based on the restoration area data set for each restoration process. Therefore, during the period in which both the first and second restoration processes are executed, the game system 1 performs restoration on voxels that overlap with at least one of the restoration areas defined by the first restoration area data and the restoration area defined by the second restoration area data.

[0153] For example, consider the following two examples where a first change event occurs, followed by a second change event, in a portion of terrain object 211 corresponding to a certain voxel (specifically, the overlapping portion between the first change portion 231 and the second change portion 232 in Figure 20). (Example 1) When a second change event occurs in the range including the voxel before the first restoration process corresponding to the first change event is performed on the voxel in question. (Example 2) When, after the first restoration process corresponding to the first change event has been performed on the voxel in question, a second change event occurs in the range that includes the voxel.

[0154] In Example 1 above, game system 1 executes the first restoration process independently of the occurrence of the second change event. Therefore, for that voxel, the restoration is performed by the first restoration process without waiting for the second restoration process after the occurrence of the second change event. In other words, for that voxel, the restoration is performed at a predetermined time after the occurrence of the first change event, regardless of whether or not the second change event occurs.

[0155] On the other hand, in Example 2 above, the game system 1 erases the restored portion of the voxel again in response to the second change event. At this time, the voxel is restored again by a second restoration process corresponding to the second change event.

[0156] As described above, in this embodiment, the game system 1 independently executes the restoration process corresponding to the change event. In the case of Example 1, this allows for restoration without waiting for the second restoration process, and in the case of Example 2, it can also handle cases where an object being restored is deleted again. Furthermore, even when multiple restoration processes are executed in parallel due to the occurrence of multiple change events in succession, the game system 1 can reduce the risk of the restoration process becoming complicated by executing each restoration process independently.

[0157] As described above, in this embodiment, when the first restoration condition is met for a portion of the restored object in which a first change event has occurred, the game system 1 sequentially designates target voxels based on first restoration area data that defines the path in the first restoration process corresponding to the first change event. Furthermore, when the second restoration condition is met for a portion of the restored object in which a second change event different from the first change event has occurred, the game system 1 sequentially designates target voxels based on second restoration area data that defines the path in the second restoration process corresponding to the second change event. At this time, during the period in which the first restoration process is executed and the second restoration process is executed, the game system 1 performs restoration using voxels designated based on at least one of the first restoration area data and the second restoration area data as target voxels. This reduces the risk of the restoration process becoming complicated even when multiple restoration processes are executed in parallel due to the occurrence of multiple change events in succession.

[0158] In the above example, the case in which one restoration area data is set for one change event was described, but multiple restoration area data may be set for one change event. In other words, the game system 1 may perform multiple restoration processes using multiple restoration areas for one change event. For example, the game system 1 may set multiple restoration areas that move in different directions for one change event, and perform a restoration process for each restoration area based on the restoration area data set for each restoration area. Even when multiple restoration area data is set in this way, the game system 1 performs the restoration process based on each restoration area data independently, just as when multiple restoration area data is set according to multiple change events. This makes it possible to achieve the same effects as in the above embodiment.

[0159] Next, with reference to Figures 21 to 24, other examples of restoring objects will be described. As shown in Figures 21 to 24, the game system 1 can apply the restoration process to objects in various situations in the game, not just in situations where a part of a terrain object is erased by a punching action by the player character.

[0160] (Example of ground collapse) Figure 21 shows an example of a game image representing a player character moving on a platform object. In the example shown in Figure 21, the platform object 241 is a type of terrain object and is a restoration object.

[0161] In the example shown in Figure 21, the change event that causes the scaffolding object 241 to disappear is when the player character 212 is placed on the scaffolding object 241 (i.e., the player character 212 comes into contact with the scaffolding object 241). When the above change event occurs, the game system 1 erases a predetermined portion of the scaffolding object 241 that includes the position where the player character 212 made contact. The scaffolding object 241 has a predetermined thickness, and if a part of the scaffolding object 241 is erased by the change event, the entire scaffolding object 241 will be erased down to its bottom. Therefore, when the scaffolding object 241 is erased, the player character 212 cannot remain in the place where the scaffolding object 241 was erased and will fall downwards. Accordingly, in order to prevent the player character 212 from falling off the scaffolding object 241, the player must perform game operations so that the player character 212 continues to move on the scaffolding object 241. In this embodiment, the removal of the scaffolding object 241 in response to the occurrence of a change event is initiated a short time after the occurrence of the change event, so as not to cause the player character 212 to fall at the same time as contact with the scaffolding object 241.

[0162] In the example shown in Figure 21, the restoration condition for the scaffolding object 241 is the same as in the examples shown in Figures 16 to 19 above: a predetermined time (for example, 2 seconds) has elapsed since the scaffolding object 241 was deleted in response to a change event. When the restoration condition is met, the game system 1 restores the scaffolding object using the restoration process described above.

[0163] In the example shown in Figure 21, a change event occurs each time the player character 212 comes into contact with the platform object 241 through movement. Therefore, a restoration area is set each time the player character 212 comes into contact with the platform object 241 through movement, and the restoration process is executed for each restoration area. In the example shown in Figure 21, the time from when the platform object 241 is erased until the erased portion is restored is constant, regardless of the portion that is erased. Therefore, the parts of the platform object 241 that were erased in the past are restored first.

[0164] As described above, in the example shown in Figure 21, the change event is that the player object (player character 212 in the above example) is placed on the restoration object in the game space. When a change event occurs, the game system 1 updates the voxel data so that the portion of the restoration object that includes the position where the player object is placed is erased. Then, the game system 1 executes the restoration process at a second timing after the first timing in which the change event occurred. This makes it possible to create a situation in the game where the player object will fall down if it does not continue to move on the restoration object (platform object 241 in the above example), thereby improving the enjoyment of the game. In addition, since the restoration object is restored, it is possible to prevent the inconvenience of the player object running out of places to move as a result of continuing to move.

[0165] (Example of a restored object moving) The restored object is not limited to terrain objects; it may also be an object that moves and / or rotates in the game space. In this case, the voxel object that is the restored object may also be a sub-voxel object as described below.

[0166] In this embodiment, the shape of voxel objects other than the terrain object 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 the primary voxels will be referred to as "primary voxel data." On the other hand, the voxel space relating to the other voxel objects will be referred to as the "sub-voxel space," the voxels in the sub-voxel space will be referred to as "sub-voxels," and the voxel data set for the sub-voxels will be referred to as "sub-voxel data." In this embodiment, the shape of the terrain object is defined by the primary voxel data, and the shape of the other voxel objects is defined by the sub-voxel data. In this embodiment, a voxel object whose shape is defined by the primary voxel data will be referred to as the "primary voxel object," and a voxel object whose shape is defined by the sub-voxel data will be referred to as the "sub-voxel object."

[0167] Figure 22 shows an example of a primary voxel object and a secondary voxel object. In Figure 22, for the purpose of clearly illustrating the difference between primary and secondary voxels, voxel objects (i.e., terrain object 251 and rock object 252) are shown whose meshes are generated by the same rules as when the mesh of the terrain object shown in Figure 8 is generated. In other words, the voxel objects shown in Figure 22 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 the voxel, and if it is less than or equal to the predetermined value, nothing is placed at the location of the voxel." In Figure 22, for the purpose of making the drawing easier to read, terrain object 251 is shown with a dotted line, rock object 252 is shown with a solid line, and the region 253 of the secondary voxel space is shown with a dashed line.

[0168] The shape of terrain object 251 is defined by the main voxel data. In this embodiment, the main voxel space is assumed to be set for the entire game space (therefore, the extent of the main voxel space is not shown in Figure 22).

[0169] On the other hand, the shape of the rock object 252 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 22, the area 253 shown by the dashed line is the range in which the sub-voxel space is set. The shape of the rock object 252 is defined by the sub-voxel data set for each sub-voxel set within the sub-voxel space. The rock object 252 will be placed within the range of the sub-voxel space.

[0170] The length of one side of a sub-voxel may be set to be different from or the same as the length of one side of a main voxel. For example, as shown in Figure 22, by defining a sub-voxel space in which voxels with shorter side lengths than main voxels are defined as sub-voxels, the shape of a sub-voxel object based on sub-voxel data can be represented in more detail than a terrain object based on main voxel data.

[0171] 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 22, 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 sub-voxel objects in a free orientation in the game space. For example, it becomes easy to place sub-voxel 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) sub-voxel objects independently of terrain objects.

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

[0173] In this embodiment, when multiple sub-voxel objects are generated, the game system 1 sets a sub-voxel space for each sub-voxel object. This allows the position and inclination of each sub-voxel space in the game space to be set for each sub-voxel space. Furthermore, it becomes easier to generate multiple sub-voxel objects that each have a different shape (for example, multiple sub-voxel 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 sub-voxel objects may be set in a single sub-voxel space.

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

[0175] When the above sub-voxel object is used as the restoration object, the restoration object can be moved and / or rotated within the game space. For restoration objects that move and / or rotate within the game space, the restoration process is performed as follows:

[0176] Figure 23 shows an example of how a restoration object is restored while moving. In the example shown in Figure 23, the restoration object 263 moves between terrain object 261 and terrain object 262. Figure 23(a) shows the state in which part of the restoration object 263 has been erased by a change event, and Figure 23(b) shows the state in which the restoration object 263 is being restored.

[0177] In Figure 23, the game system 1 moves the restored object 263 within the game space by moving the sub-voxel space 264 related to the restored object 263 within the game space. At this time, the positional relationship between the sub-voxel space and the restored object 263 (which can also be described as the position of the restored object 263 relative to the sub-voxel space) does not change.

[0178] As shown in Figure 23(a), when the restored object 263 is deleted, the game system 1 performs a restoration process for the restored object 263 when the restoration conditions (for example, a predetermined time has elapsed since deletion) are met. In the example shown in Figure 23, the restored object 263 continues to move even after being deleted, so the position of the restored object 263 is different at the time of deletion and restoration. Here, as described above, in this embodiment, the movement of the restored object 263 is performed by moving the sub-voxel space 264, so the positional relationship between the sub-voxel space and the restored object 263 does not change. In other words, by moving the sub-voxel space 264, each voxel relating to the restored object 263 moves to correspond to the position of the restored object 263 after the move, and the voxel data relating to the restored object 263 corresponds to the position of the restored object 263 after the move. Therefore, in the restoration process, the game system 1 can perform the restoration by updating the voxel data of the voxel corresponding to the deleted portion, just as in the case where the restored object 263 does not move.

[0179] As described above, in this embodiment, the game system 1 moves the restored object in the game space by moving the voxel space (in the example of Figure 23, the sub-voxel space 264) in the game space where the voxels related to the restored object are set. In addition to movement, the game system 1 may also rotate the voxel space and the restored object. If the restored object moves and / or rotates after the change event, the game system 1 performs the restoration process using the voxel data related to the voxel space after the movement and / or rotation. This allows the restored object to be restored using the same processing as when no movement and / or rotation occurs, even if the restored object moves and / or rotates, thus reducing the processing load on the game system 1.

[0180] (Example of a restored object being separated) A restored object may have the property of being partially separable by a change event. Here, object separation includes the creation of an object representing the part that was erased when a part of an object is erased. In other words, when an object is separated, two objects will be placed in the game space: the original object and the separated object (hereinafter referred to as the "separated object"). Note that the separated object and the original object from which it was separated do not need to be treated as a single object; they may be treated as separate objects. In this embodiment, the above-described separation may be performed on a restored object. The restoration process when a restored object is separated will be described below.

[0181] Figure 24 shows an example of how a portion of a restored object is separated. In the example shown in Figure 24, the player character 212 is capable of performing a separation operation on the restored object 271. That is, when the player character 212 performs a separation operation on the restored object 271, a portion of the restored object 271 is erased, and a separated object 272 representing the erased portion is generated (see Figure 24(a)).

[0182] In the example above, the player character 212 can grasp the separated object 272 and move it. For example, the restored object 271 may have certain properties (e.g., the property of exploding or the property of emitting light and illuminating the surroundings), and in this case, the separated object 272 is set to have the same properties as the restored object 271. Therefore, by obtaining the separated object 272 from the restored object 271, the player character 212 can utilize the properties of the immovable restored object 271 at a location away from the restored object 271. For example, the player character 212 can obtain the separated object 272 from the restored object 271 which has the property of exploding and throw it at an enemy character (not shown), or obtain the separated object 272 from the restored object 271 which has the property of illuminating the surroundings and illuminate the inside of a cave. The separated object 272 may be erased under certain conditions (e.g., after a predetermined amount of time has elapsed).

[0183] In the example shown in Figure 24, if a portion of the restored object 271 is erased due to separation, the game system 1 performs a restoration process on the restored object 271 when the restoration conditions are met (for example, when a predetermined amount of time has elapsed since the erasure) (see Figure 24(b)). This restoration process is performed in the same way as the restoration process in the examples shown in Figures 16 to 19. The restored object 271 may be the main voxel object or a sub-voxel object as described above.

[0184] For example, consider a case where utilizing the properties of the restored object 271 is a condition for progressing in the game. In this example, for instance, the restored object 271 has the property of exploding, and the game can be progressed by defeating enemy characters using the separated object 272. In the above example, if the restored object 271 cannot be restored, the player may be unable to progress in the game if the process of obtaining the separated object 272 from the restored object 271 is repeated and the restored object 271 eventually disappears. In this regard, in this embodiment, the possibility of such game-related inconveniences occurring can be reduced by restoring the restored object 271.

[0185] On the other hand, the game system 1 does not perform a restoration process on the separated object 272 that is generated as a result of the separation of the restored object 271 (see Figure 24(b)). This prevents problems such as the separated object becoming larger while being held by the player character 212. In addition, by not performing unnecessary restoration processes, the processing load on the game system 1 can be reduced. As mentioned above, since no restoration process is performed on the separated object, the separated object may or may not be a voxel object.

[0186] As described above, in this embodiment, when a change event occurs with respect to a restored object, a portion of the restored object is deleted, and a separate object corresponding to the reduced portion is generated. When the restoration conditions are met for the restored object, the game system 1 performs the restoration process for that restored object, but does not perform the restoration process for the separate object. This reduces the possibility of game-related problems occurring and also reduces the processing load on the game system 1.

[0187] [3. Specific examples of processing in game systems] Next, we will explain a specific example of information processing in game system 1 with reference to Figures 25 to 27.

[0188] Figure 25 shows an example of various types of data used for information processing in game system 1. As shown in Figure 25, game system 1 stores game programs, voxel space data, voxel object data, reference data, restoration region data, and mesh data.

[0189] The game program, voxel space data, and reference data are data that are stored in the game system 1 before the execution of the game process. These data are stored, for example, in a storage medium installed in slot 23 of the main unit 2. In addition to the data shown in Figure 25, the game system 1 also stores the aforementioned property information and texture information data, as well as data related to various characters that appear in the game, as data that is stored in the game system 1 before the execution of the game process. Furthermore, voxel object data, restoration area data, and mesh data are data that are generated during the execution of the game process. These data are stored, for example, in the DRAM 85 of the main unit 2.

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

[0191] The above voxel space data is stored for each voxel space. Note that if a voxel space is set for each voxel object (for example, if a sub-voxel space is set for each sub-voxel object), then the voxel space data and the data for the restored region are stored for each voxel object (i.e., the primary voxel object or the sub-voxel object). Furthermore, voxel object data, reference data, and mesh data are stored for each voxel object.

[0192] Voxel space data is data that defines the voxel space set up in the game space. Specifically, voxel space data indicates the length of one side of a voxel and the direction of each side of the voxel in the game space. In addition, if a voxel space is set up in only a part of the game space (for example, if that voxel space is a sub-voxel space), the voxel space data may also include data indicating the location and size of the voxel space (i.e., data indicating the range in the game space where voxels are set up).

[0193] Voxel object data is data that represents voxel objects (in this case, restored objects) placed in the game space. Specifically, voxel object data includes voxel data for each voxel in the voxel space related to that voxel object.

[0194] The reference data represents the restoration reference values ​​described above. In this embodiment, the reference data represents the restoration reference values ​​for each of the multiple voxels related to the restoration object. In this embodiment, since a restoration reference value is set for each voxel, restoration of the restoration object on a voxel-by-voxel basis can be easily performed. Note that the reference data may include only the density data for each voxel, or it may include the same content as the voxel data (i.e., data other than density).

[0195] The recovery area data contains various information about the recovery area described above. In this embodiment, the recovery area data includes data that defines the path of the recovery area and the current state of the recovery area (specifically, its current position and size).

[0196] Mesh data is data that represents the mesh assigned to a voxel object placed in game space (for example, the mesh of a restored object). Mesh data includes, for example, data indicating the position of each vertex in the mesh.

[0197] Figure 26 is a flowchart showing an example of the game processing flow executed by game system 1. The game processing shown in Figure 26 is initiated, for example, when the player issues an instruction to start the game while the game program is running.

[0198] 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 Figure 26. 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 Figure 26 may be executed by the other information processing device. Furthermore, the processing of each step shown in Figure 26 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.

[0199] Furthermore, the processor 81 executes the processing of each step shown in Figure 26 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.

[0200] In step S1 shown in Figure 26, the processor 81 sets up a voxel space in the game space. Specifically, the processor 81 acquires the 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 voxel space data when executing processing related to voxel objects (for example, the processing in step S2). In this case, the processor 81 refers to the voxel space data stored in the DRAM 85. The processing in step S2 is executed after step S1.

[0201] In step S2, the processor 81 sets up the voxel objects in the game space in their initial state. Specifically, the processor 81 acquires voxel data indicating the arrangement of the voxel objects in their initial state, and stores (in other words, writes) part or all of the acquired voxel data to the DRAM 85 as voxel object data. The voxel data indicating the arrangement of the voxel 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.

[0202] The voxel data written to the DRAM 85 as voxel object data may be a portion of the main voxel data used to generate game images from the entire range of the game space. The processor 81 may, for example, generate images of voxel objects using voxel data only for a portion of the game space (for example, a range within a predetermined distance from the virtual camera's position). In this case, the voxel object data may include the voxel data within that range. Furthermore, when 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 S3 to S12 described later (for example, when the virtual camera's position moves by a predetermined distance or more).

[0203] In step S3, the processor 81 controls the movement of various objects that appear in the game space (for example, the player character and the moving voxel object shown in Figure 23). For example, the processor 81 controls the movement of the player object based on operation data received from each controller 3 or 4, or controls the movement of the voxel object based on an algorithm defined in the game program. The processing in step S4 is executed after step S3.

[0204] In step S4, the processor 81 determines whether a change event occurred for the voxel object in response to the processing in step S3. For example, the processor 81 determines whether a change event occurred as a result of operating the player character or voxel object. If the result of the determination in step S4 is positive, the processing in step S5 is executed. On the other hand, if the result of the determination in step S4 is negative, the processing in step S5 is skipped and the processing in step S6 is executed.

[0205] In step S5, the processor 81 modifies the voxel object where the change event occurred in accordance with the change event. In this embodiment, the processor 81 changes the density indicated by the voxel data for at least some of the voxels related to the voxel object where the change event occurred. As a result, the voxel object where the change event occurred is deformed. The processor 81 also updates the voxel object data stored in the DRAM 85 to reflect the modified density. The processing in step S6 is executed after step S5.

[0206] In step S6, the processor 81 determines whether the restoration conditions have been met for the change event that was determined to have occurred in step S4. If the result of the determination in step S6 is positive, the process in step S7 is executed. On the other hand, if the result of the determination in step S6 is negative, the process in step S7 is skipped and the process in step S8 is executed.

[0207] In step S7, the processor 81 turns on the restore flag, which is set for change events in which the restore conditions have been met. In this embodiment, the game device 2 stores flag data for the restore flag in the DRAM 85, which indicates whether or not the restore process corresponding to the change event has been executed for each change event that has occurred. The restore flag is set for each change event. The flag data indicates that the flag is off at the time a change event occurs for the voxel object in question. In step S7, the processor 81 updates the above flag data for the voxel object in which the restore conditions have been met to indicate that it is on. The process in step S8 is executed after step S7.

[0208] In step S8, the processor 81 determines whether or not to perform a restoration process on the restoration object. Specifically, the processor 81 determines whether or not there is a restoration flag that is set to ON. If the result of the determination in step S8 is positive, the process in step S9 is executed. On the other hand, if the result of the determination in step S8 is negative, the process in step S9 is skipped and the process in step S10 is executed.

[0209] In step S9, the processor 81 performs a restore process to restore the restore object for which the restore flag is set to ON (i.e., the restore object corresponding to the change event for which the restore flag is set to ON). The detailed flow of the restore process will be explained below with reference to Figure 27.

[0210] Figure 27 is a subflowchart showing an example of a detailed flow of the restoration process in step S9 shown in Figure 26. In the restoration process, first in step S21, the processor 81 determines whether the restoration process in step S9 is the first time it is performed. In this embodiment, if the restoration condition is met, the process in step S9 is repeatedly executed over multiple frames (i.e., while the processing loop of steps S3 to S12 is repeated multiple times), thereby executing the restoration process corresponding to the restoration condition. The determination process in step S21 determines whether the process in step S9 is the first process among processes that are repeatedly executed over multiple frames, and determines whether the restoration process has started for a particular restoration object. If the determination result in step S21 is affirmative, the process in step S22 is executed. On the other hand, if the determination result in step S21 is negative, the process in step S23 is executed.

[0211] In step S22, the processor 81 sets the recovery area data for the recovery area to be used in the recovery process. The contents of the recovery area data (specifically, the path and size) are set according to the method described in "[2-3. Restoring Voxel Objects]" above. The processor 81 stores the recovery area data in the DRAM 85, which includes the path and size of the recovery area, as well as the current state (i.e., the state at the start of the recovery process). The process in step S24, described below, is executed after step S22.

[0212] In step S23, the processor 81 moves the recovery area along the path. That is, the processor 81 moves the recovery area by a distance equivalent to one frame time along the path set for the recovery area. At this time, the processor 81 updates the recovery area data stored in the DRAM 85 to indicate the position after the move. As the process in step S23 is repeatedly executed, the recovery area is moved, and the target voxels to be restored are sequentially specified along the path. The process in step S24 is executed after step S23.

[0213] In step S24, the processor 81 restores the target voxel that overlaps with the restoration area among the voxels related to the restoration object. Specifically, the processor 81 refers to the reference data stored in the DRAM 85 and identifies the restoration reference value for the target voxel. Then, the processor 81 updates the voxel object data stored in the DRAM 85 so that the density value in the voxel data of the target voxel becomes the above restoration reference value. The processing in step S25 is executed after step S24.

[0214] In step S25, the processor 81 determines whether or not to terminate the restoration process. Specifically, the processor 81 determines whether or not the restoration area has moved to the end position. If the result of the determination in step S25 is affirmative, the process in step S26 is executed. On the other hand, if the result of the determination in step S25 is negative, the processor 81 terminates the restoration process.

[0215] In step S26, the processor 81 turns off the restore flag for the restore process that has been determined to be terminated. That is, the processor 81 updates the flag data for the restore flag to indicate that it is off. After step S26, the processor 81 terminates the restore process.

[0216] The restoration process described above is executed for each restoration condition that is met. In other words, if multiple restoration flags are set to ON, the processor 81 executes each restoration condition corresponding to those multiple restoration flags. In this case, as mentioned above, multiple restoration processes are executed independently.

[0217] Returning to the explanation of Figure 26, the process of step S10 is executed after the restoration process of step S9. In step S10, the processor 81 generates a mesh for the voxel object. The mesh for the voxel object is generated according to the method described above in "[2-2. Mesh]". Note that in step S10, the processor 81 does not need to generate the mesh again for the mesh that was generated in the previous steps of step S10, and may instead generate the mesh again for the voxel data updated in step S5. This allows the mesh of the voxel object to be dynamically changed during the game. The processor 81 also updates the mesh data stored in the DRAM 85 to reflect the newly generated mesh. The process of step S11 is executed after step S10.

[0218] In step S11, 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. The image of the voxel object is generated using the voxel object data and 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 process in step S11 is repeatedly executed at a rate of once every predetermined time (for example, 1 frame time). The process in step S12 is executed after step S11.

[0219] In step S12, 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 S12 is negative, the process in step S3 is executed again. Thereafter, the series of processes from steps S3 to S12 are repeatedly executed until it is determined in step S12 that the game should be terminated. On the other hand, if the result of the determination in step S12 is positive, the processor 81 terminates the game process as shown in Figure 26.

[0220] [4. Effects and Modifications of This Embodiment] As described above, in the above embodiment, the information processing system (game system 1 in the above embodiment) stores voxel data corresponding to a plurality of voxels relating to a restored object in a virtual space (game space in the above embodiment), and reference data that serves as a standard for the restored object, and which indicates a standard value (in the above embodiment, restoration standard value) of a parameter (in the above embodiment, density) included in the voxel data. The information processing system is configured to include the following means. • Voxel update means (step S5) to update the voxel data related to the restored object when a change event occurs with respect to the restored object. • Voxel restoration means (step S9) executes a restoration process that gradually changes the restored object by returning the parameter values ​​included in the updated voxel data back to the reference values ​​included in the reference data when the restoration conditions are met for a restored object in which a change event has occurred. • Mesh generation means (step S10) that generates a mesh of the restored object based on voxel data Image generation means (step S11) for generating an image of a virtual space, including an image of the mesh of the restored object, for output to a display device.

[0221] According to the above, objects that have been altered by a change event can be gradually restored through a restoration process.

[0222] Furthermore, the phrase "returning the parameter values ​​contained in the voxel data to the reference values ​​contained in the reference data" means (a) returning the parameter values ​​in multiple voxel data to their reference values ​​by sequentially executing the process of returning the parameter values ​​contained in multiple voxel data to their reference values ​​for each voxel, as in the embodiment described above, and (b) returning the parameter values ​​to their reference values ​​by repeatedly performing the process of bringing the parameter values ​​contained in the voxel data closer to the reference values.

[0223] In the above embodiment, the case where the restored object is a voxel object was described as an example, but in other embodiments, the restored object does not have to be a voxel object. When an object other than a voxel object is used as the restored object, the game system 1 may perform the restoration process by restoring the object within the range of the restoration area, instead of restoring the voxels that overlap with the restoration area. In the above case, the game system 1 may store the shape that serves as the basis for the restored object, instead of storing a reference value for each voxel.

[0224] In the above embodiment, the parameter corresponding to the reference value indicated by the reference data was density. When a change event occurs with respect to the restored object, the game system 1 updates the voxel data to change the parameter indicating density, and when the restoration conditions are met, it gradually changes the voxel data by returning the value of the density parameter contained in the voxel data back to the reference value contained in the reference data. This allows the shape of the restored object, which has been deformed by the occurrence of a change event, to be restored to its original state through the restoration process.

[0225] In other embodiments, the parameter corresponding to the above reference value is not limited to density, but may be any parameter indicating the state of the restored object. For example, the above reference value may be a reference value for the material set in the voxel among the parameters included in the voxel data (e.g., the material ID mentioned above). In this case, when a change event occurs for the restored object, the game system 1 updates the voxel data to change the parameter indicating the material (e.g., the material ID mentioned above). Then, when the restoration conditions are met, the game system 1 gradually changes the voxel data by returning the value of the parameter indicating the material included in the voxel data back to the reference value included in the reference data. This allows the material of a restored object whose material has changed due to the occurrence of a change event (e.g., the properties and / or appearance of the restored object have changed) to its original state through the restoration process. According to the above, for example, it is possible to represent a situation where a restored object with a lava material changes to a rock material (solidified lava) in response to a change event that comes into contact with an ice object, and then reverts back to a lava material.

[0226] In other embodiments, the game system 1 may change both the density and material of the restored object in response to a change event, or it may reset both the density and material parameters to their baseline values ​​during the restoration process.

[0227] In other embodiments, the parameter corresponding to the above reference value may indicate the state of the restored object. For example, the parameter may indicate the amount of damage inflicted on the restored object. Furthermore, in this case, the game system 1 may change the appearance (e.g., texture) of the restored object according to the above parameter. This allows the game system 1 to change the appearance of the restored object in response to the occurrence of a change event, and to restore the appearance of the restored object to its original state when the restoration conditions are met.

[0228] In other embodiments, the information processing system 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]

[0229] The above embodiment can be used, for example, as a game system or game program, for purposes such as gradually restoring an object that has been altered. [Explanation of Symbols]

[0230] 1. Game System 2. Main unit 3 Left controller 4 Right controller 81 processors 211 Terrain Objects 212 Player Characters 221 Restoration Area Route 222 223 Changes 263,271 restored objects 264 Sub-voxel space 272 Separated Objects

Claims

1. An information processing program executed in a computer of an information processing device, The aforementioned information processing device is The system stores voxel data relating to multiple voxels of a restored object within a virtual space, and reference data that serves as a standard for the restored object, which indicates the standard values ​​of the parameters included in the voxel data. The aforementioned information processing program is A voxel update means updates the voxel data relating to the restored object so that, when a change event occurs in the virtual space in which another object comes into contact with the restored object, the portion of the restored object including the location where the other object made contact is erased. When the restoration conditions are met for the restored object in which the aforementioned change event has occurred, a voxel restoration means performs a restoration process that gradually changes the restored object by returning the parameter values ​​included in the updated plurality of voxel data to the reference values ​​included in the reference data, A mesh generation means for generating a mesh of the restored object based on the voxel data, An information processing program that causes the computer to function as an image generation means for generating an image of the virtual space, including an image of the mesh of the restored object, for output to a display device.

2. The information processing program according to claim 1, wherein the voxel restoration means determines that the restoration condition is met at a second timing after the first timing, which is determined based on the first timing at which the change event occurred, and executes the restoration process.

3. The aforementioned change event is that the player object is placed on the restored object as another object within the virtual space. The information processing program according to claim 2, wherein the voxel update means updates the voxel data such that, when the change event occurs, the portion of the restored object that includes the position where the player object is placed is deleted.

4. The voxel restoration means determines that the restoration conditions have been met in response to an operation by the player and executes the restoration process, as described in claim 1.

5. The information processing program according to any one of claims 1 to 4, wherein the reference data indicates the reference value for each of the plurality of voxels relating to the restored object.

6. The voxel restoration means sequentially designates target voxels to be restored from among the plurality of voxels relating to the restoration object based on designation rules, and performs restoration on the designated voxels, as described in any one of claims 1 to 4.

7. The information processing program according to claim 6, wherein the voxel restoration means sequentially designates the target voxels along a restoration path set in the virtual space.

8. The information processing program according to claim 7, wherein the voxel restoration means sets the restoration path in a direction corresponding to the direction of contact, based on the position where the other object contacts the restored object.

9. The voxel restoration means is If the first restoration condition is met for the portion of the restored object in which the first change event occurred as the change event, the target voxels are sequentially specified based on the first restoration area data that defines the restoration path in the first restoration process, which is the restoration process corresponding to the first change event. If the second restoration condition is met for the portion of the restored object in which a second change event different from the first change event occurred as the change event, the target voxels are sequentially specified based on the second restoration area data that defines the restoration path in the second restoration process, which is the restoration process corresponding to the second change event. The information processing program according to claim 7, wherein, during the period in which the period in which the first restoration process is performed and the period in which the second restoration process is performed overlap, the program restores a voxel designated based on at least one of the first restoration area data and the second restoration area data as the target voxel.

10. The information processing program according to claim 7, wherein the voxel restoration means sets a restoration area in the virtual space, designates the target voxel from among the plurality of voxels relating to the restoration object that overlap with the restoration area, and sequentially designates the target voxel by moving the restoration area along the restoration path.

11. The information processing program according to claim 6, wherein the voxel restoration means sequentially designates the target voxels in a direction from the inside outward of the restoration object.

12. The aforementioned reference data indicates a reference value for the parameter that represents the density used to generate the mesh, among the parameters included in the voxel data. The voxel update means updates the voxel data to change the density parameter when the change event occurs with respect to the restored object. The information processing program according to any one of claims 1 to 4, wherein the voxel restoration means performs the restoration process which gradually changes the restored object by returning the value of the density parameter included in the updated voxel data to the reference value included in the reference data when the restoration conditions are met for the restored object on which the change event occurred.

13. The aforementioned reference data indicates the reference values ​​for the material set for the voxel among the parameters included in the voxel data. The voxel update means updates the voxel data to change the parameters indicating the material when the change event occurs with respect to the restored object. The voxel restoration means, when the restoration conditions are met for the restoration object in which the change event has occurred, performs the restoration process which gradually changes the restoration object by returning the values ​​of the parameters indicating the material included in the updated voxel data to the reference values ​​included in the reference data. This is the information processing program according to any one of claims 1 to 4.

14. The information processing program according to any one of claims 1 to 4, wherein the voxel update means updates the voxel data relating to the restored object so that the area occupied by the restored object in the virtual space decreases when the change event occurs with respect to the restored object.

15. When the change event occurs with respect to the restored object, the area occupied by the restored object in the virtual space is reduced, and a separate object corresponding to the reduced portion is generated. The information processing program according to claim 14, wherein the voxel restoration means performs the restoration process on the restored object if the restoration conditions are met for the restored object, and does not perform the restoration process on the separated object.

16. The information processing program according to any one of claims 1 to 4, wherein the voxel update means updates the voxel data relating to the restored object so that the area occupied by the restored object in the virtual space increases when a change event occurs with respect to the restored object.

17. The aforementioned information processing program is The computer further functions as an object control means for moving and / or rotating the restored object in the virtual space by moving and / or rotating the voxel space in which the voxels relating to the restored object are set. The information processing program according to any one of claims 1 to 4, wherein the voxel restoration means performs the restoration process using the voxel data relating to the voxel space after the movement and / or rotation if the object to be restored has moved and / or rotated after the change event.

18. A storage means for storing voxel data relating to multiple voxels of a restored object in a virtual space, and reference data that serves as a standard for the restored object, which indicates the standard values ​​of the parameters included in the voxel data. A voxel update means updates the voxel data relating to the restored object so that, when a change event occurs in the virtual space in which another object comes into contact with the restored object, the portion of the restored object including the location where the other object made contact is erased. When the restoration conditions are met for the restored object in which the aforementioned change event has occurred, a voxel restoration means performs a restoration process that gradually changes the restored object by returning the parameter values ​​included in the updated plurality of voxel data to the reference values ​​included in the reference data, A mesh generation means for generating a mesh of the restored object based on the voxel data, An information processing apparatus comprising: an image generation means for generating an image of the virtual space, including an image of the mesh of the restored object, for output to a display device.

19. A storage means for storing voxel data relating to multiple voxels of a restored object in a virtual space, and reference data that serves as a standard for the restored object, which indicates the standard values ​​of the parameters included in the voxel data. A voxel update means updates the voxel data relating to the restored object so that, when a change event occurs in the virtual space in which another object comes into contact with the restored object, the portion of the restored object including the location where the other object made contact is erased. When the restoration conditions are met for the restored object in which the aforementioned change event has occurred, a voxel restoration means performs a restoration process that gradually changes the restored object by returning the parameter values ​​included in the updated plurality of voxel data to the reference values ​​included in the reference data, A mesh generation means for generating a mesh of the restored object based on the voxel data, An information processing system comprising: an image generation means for generating an image of the virtual space, including an image of the mesh of the restored object, for output to a display device.

20. An information processing method performed by an information processing system, The information processing system stores voxel data relating to multiple voxels of a restored object in a virtual space, and reference data that serves as a standard for the restored object, which indicates the standard values ​​of the parameters included in the voxel data. A voxel update step updates the voxel data relating to the restored object so that, when a change event occurs in the virtual space in which another object comes into contact with the restored object, the portion of the restored object including the location where the other object made contact is erased. If the restoration conditions are met for the restored object in which the aforementioned change event has occurred, a voxel restoration step is performed to gradually change the restored object by returning the parameter values ​​included in the updated plurality of voxel data to the reference values ​​included in the reference data, A mesh generation step of generating a mesh of the restored object based on the voxel data, An information processing method comprising: an image generation step of generating an image of the virtual space, including an image of the mesh of the restored object, for output to a display device.