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

The information processing program deforms virtual objects by generating particle data and updating voxel data, addressing the limitation of static representations in existing technologies and enhancing simulation realism.

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

Patent Information

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

AI Technical Summary

Technical Problem

Existing methods fail to deform objects in a virtual space over time using particles, limiting the dynamic representation of objects in simulations.

Method used

An information processing program that generates particle data for objects, calculates particle movements, and updates voxel data to deform objects in a virtual space, using particle calculation means to update positions and control interactions with other objects.

Benefits of technology

Enables dynamic deformation of objects in a virtual space by accurately representing changes over time, reducing processing load, and enhancing the realism of simulations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025113070000001_ABST
    Figure 2025113070000001_ABST
Patent Text Reader

Abstract

To deform an existing object arranged in a virtual space over time using particles.SOLUTION: An information processing system is configured to: generate particle data including data indicative of positions of a plurality of particles corresponding to the shape of an existing object which is an object arranged in a virtual space; calculate temporal changes in the positions of the plurality of particles and update the particle data on the basis of calculation results; generate voxel data on a voxel object having a shape corresponding to the positions of the plurality of particles on the basis of the particle data; generate a mesh of the voxel object on the basis of the voxel data; and generate an image in which the mesh is rendered in the virtual space for output to a display device.SELECTED DRAWING: Figure 20
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 generating an object in a virtual space using voxel data.

Background Art

[0002] Conventionally, fluid simulation has been performed using particles, and the simulation results have been visualized using voxels (see, for example, Non-Patent Document 1).

Prior Art Documents

Non-Patent Documents

[0003]

Non-Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] Conventionally, an existing object arranged in a virtual space has not been deformed over time using particles.

[0005] Therefore, an object of the present invention is to provide an information processing program, an information processing system, an information processing apparatus, and an information processing method capable of deforming an existing object arranged in a virtual space over time using particles.

Means for Solving the Problems

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

[0007] (1) An example of the present invention is an information processing program executed in a computer of an information processing apparatus. The information processing program causes the computer to function as a particle generation means, a particle calculation means, a voxel data generation means, a mesh generation means, and an image generation means. The particle generation means generates particle data including data indicating positions of a plurality of particles corresponding to the shape of an existing object that is an object arranged in a virtual space. The particle calculation means calculates a change over time in the positions of the plurality of particles and updates the particle data based on the calculation result. The voxel data generation means generates voxel data regarding a voxel object having a shape corresponding to the positions of the plurality of particles based on the particle data. The mesh generation means generates a mesh of the voxel object based on the voxel data. The image generation means generates an image obtained by rendering the mesh in the virtual space for output to a display device.

[0008] According to the configuration of (1) above, an existing object can be deformed over time using particle data.

[0009] (2) The existing object may be an object generated based on voxel data generated before the particle data regarding the existing object is generated by the particle generation means.

[0010] According to the configuration of (2) above, a voxel object arranged in a virtual space can be deformed over time using particles.

[0011] (3) The particle generation means may generate particle data based on whether at least a part of the existing object exists in a plurality of unit regions obtained by dividing a region including the existing object in the virtual space into a grid.

[0012] According to the configuration of (3) above, particle data indicating a particle group arranged according to the shape of the existing object can be generated with a small amount of calculation.

[0013] (4) The length of one side of the unit area may be equal to the length of one side of a voxel corresponding to voxel data generated based on the particle data.

[0014] According to the configuration of (4) above, a voxel object that sufficiently reflects the shape represented by a plurality of particles can be generated, and the processing load can be reduced by suppressing the number of particles.

[0015] (5) The particle calculation means may update the particle data so that at least some of the plurality of particles disappear in response to the disappearance condition being satisfied.

[0016] According to the configuration of (5) above, it is possible to represent the state in which the object deforms and becomes smaller.

[0017] (6) The particle calculation means may repeatedly update the particle data. The particle calculation means may calculate the value of the current particle data indicating the new positions of the plurality of particles using the particle data updated last time without using the voxel data generated based on the particle data updated last time.

[0018] According to the configuration of (6) above, by using the particle data updated last time, the positions of the particles after movement can be accurately calculated.

[0019] (7) The information processing program may further cause the computer to function as voxel update means for updating the range of the voxel space in which voxels related to voxel data generated based on the particle data are set, based on the updated particle data.

[0020] According to the configuration of (7) above, it is possible to reduce the possibility that the particles after movement are located outside the sub-voxel space.

[0021] (8) The particle calculation means may control the positions of a plurality of particles so that they are located within a voxel space in which voxels related to voxel data generated based on the particle data are set.

[0022] According to the configuration of (8) above, the possibility that particles are located outside the sub-voxel space can be further reduced.

[0023] (9) The particle generation means may generate particle data corresponding to the existing object in response to the existing object coming into contact with a first object different from the existing object.

[0024] According to the configuration of (9) above, the processing load can be reduced by not generating particle data during the period before contact when it is not necessary to deform the existing object.

[0025] (10) The particle generation means may generate particle data corresponding to the existing object on at least the condition that the material set for the existing object and the material set for the first object are a predetermined combination.

[0026] According to the configuration of (10) above, it is possible to represent how the existing object deforms in response to coming into contact with a specific object.

[0027] (11) The information processing program may further cause the computer to function as contact determination means and disappearance means. The contact determination means determines whether a particle has come into contact with a second object different from the voxel object, or whether the voxel object has come into contact with the second object. The disappearance means, when it is determined that a particle has come into contact with the second object, or when it is determined that the voxel object has come into contact with the second object, causes the contacted portion of the second object to disappear from the virtual space.

[0028] According to the configuration of (11) above, it is possible to express the state in which other objects disappear due to the voxel object.

[0029] (12) The disappearing means may disappear the contacted part of the second object from the virtual space on the condition that at least the material set for the voxel object or the existing object and the material set for the second object are in a predetermined combination.

[0030] According to the configuration of (12) above, it is possible to make the voxel object disappear a specific object and not disappear other objects than the specific object.

[0031] (13) The particle calculation means may update the particle data so that each of the plurality of particles moves to the set destination position according to the passage of time.

[0032] According to the configuration of (13) above, each particle can be easily moved to a desired position, and the process of deforming an object into a desired shape becomes easy.

[0033] (14) The information processing apparatus may store data indicating the changed target position due to the change over time of the positions of the plurality of particles. The particle calculation means may set the destination position based on the target position and update the particle data until each of the plurality of particles reaches the target position.

[0034] According to the configuration of (14) above, the plurality of particles can be moved to free positions, and the object can be deformed into a desired shape.

[0035] (15) The information processing apparatus may store post-change data regarding the shape of an object after an existing object has changed due to changes over time. The mesh generation means may generate a mesh of a voxel object based on voxel data based on particle data, at least until each of a plurality of particles reaches a target position. The mesh generation means may end the generation of the mesh based on the voxel data based on the particle data and generate a mesh based on the post-change data at a predetermined timing after each of the plurality of particles has reached the target position.

[0036] According to the configuration of (15) above, the shape of the object after deformation can be adjusted to be of high accuracy.

[0037] Note that another example of the present invention may be an information processing apparatus (for example, a terminal device or a server) or an information processing system including all or part of each means in (1) to (15) above. Further, another example of the present invention may be an information processing method (specifically, a game processing method) in which an information processing system executes each process in (1) to (15) above.

Effects of the Invention

[0038] According to the above information processing program, information processing system, information processing apparatus, and information processing method, an existing object arranged in a virtual space can be deformed over time using particles.

Brief Description of the Drawings

[0039]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Figure 29

Mode for Carrying Out the Invention

[0040] [1. Configuration of the Game System] Hereinafter, a game system according to an example of the present embodiment will be described. An example of game system 1 in the present embodiment includes a main body device (information processing device; which functions as a game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The main body device 2 is detachable from the left controller 3 and the right controller 4 respectively. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 as separate entities (see FIG. 2). Hereinafter, the hardware configuration of game system 1 of the present embodiment will be described, and then the control of game system 1 of the present embodiment will be described.

[0041] FIG. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main body device 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. The main body device 2 is a device that executes various processes (for example, game processes) in the game system 1. The main body device 2 includes a display 12. The left controller 3 and the right controller 4 are devices provided with operation units for the user to input.

[0042] FIG. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 are respectively removed from the main body device 2. As shown in FIGS. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main body device 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller".

[0043] FIG. 3 is a six-sided view showing an example of the main body device 2. As shown in FIG. 3, the main body device 2 includes a substantially plate-shaped housing 11. In the present embodiment, the main surface of the housing 11 (in other words, the front surface, that is, the surface on which the display 12 is provided) is generally rectangular in shape.

[0044] Note that the shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Also, the main body device 2 alone or the integrated device in which the left controller 3 and the right controller 4 are attached to the main body device 2 may be a portable device. Further, the main body device 2 or the integrated device may be a hand-held device. Also, the main body device 2 or the integrated device may be a transportable device.

[0045] As shown in FIG. 3, the main body device 2 includes a display 12 provided on the main surface of the housing 11. The display 12 displays an image generated by the main body device 2. In the present embodiment, the display 12 is a liquid crystal display device (LCD). However, the display 12 may be any type of display device.

[0046] In addition, the main body device 2 is provided with a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type (e.g., capacitive type) capable of multi-touch input. However, the touch panel 13 may be of any type, for example, a type (e.g., resistive film type) capable of single-touch input may also be used.

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

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

[0049] As shown in FIG. 3, the main body device 2 includes a slot 23. The slot 23 is provided on the upper surface of the housing 11. The slot 23 has a shape capable of mounting a predetermined type of storage medium. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and information processing devices of the same type. The predetermined type of storage medium is used to store, for example, data used in the main body device 2 (e.g., save data of applications, etc.) and / or programs executed in the main body device 2 (e.g., application programs, etc.). In addition, the main body device 2 includes a power button 28.

[0050] The main body device 2 is provided with a lower terminal 27. The lower terminal 27 is a terminal for the main body device 2 to communicate with the cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the integrated device or the main body device 2 alone is placed on the cradle, the game system 1 can display the image generated and output by the main body device 2 on the stationary monitor. Further, in the present embodiment, the cradle has a function of charging the placed integrated device or the main body device 2 alone. Further, the cradle has a function of a hub device (specifically, a USB hub).

[0051] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In the present embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the vertical direction (that is, the y-axis direction shown in FIGS. 1 and 4). When the left controller 3 is removed from the main body device 2, it can also be gripped in a vertically long orientation. The housing 31 has a shape and size that can be gripped with one hand, particularly the left hand, when gripped in a vertically long orientation. Further, the left controller 3 can also be gripped in a horizontally long orientation. When the left controller 3 is gripped in a horizontally long orientation, it may be gripped with both hands.

[0052] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting a direction. The user can input a direction according to the tilting direction (and an input of a magnitude according to the tilted angle) by tilting the analog stick 32. Note that the left controller 3 may be provided with a cross key or a slide stick capable of slide input, etc. instead of the analog stick as the direction input unit. Further, in the present embodiment, it is possible to input by pressing the analog stick 32.

[0053] The left controller 3 is provided with various operation buttons. The left controller 3 has four operation buttons 33 to 36 (specifically, a right direction button 33, a down direction button 34, an up direction button 35, and a left direction button 36) on the main surface of the housing 31. Further, the left controller 3 is provided with a recording button 37 and a -(minus) button 47. The left controller 3 has a first L button 38 and a ZL button 39 at the upper left of the side surface of the housing 31. Also, the left controller 3 has a second L button 43 and a second R button 44 on the side surface of the housing 31 on the side where it is attached when attached to the main body device 2. These operation buttons are used to give instructions according to various programs (for example, an OS program or an application program) executed by the main body device 2.

[0054] Also, the left controller 3 is provided with a terminal 42 for the left controller 3 to perform wired communication with the main body device 2.

[0055] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In the present embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the vertical direction. The right controller 4 can also be gripped in a vertically long orientation when removed from the main body device 2. The housing 51 has a shape and size that can be gripped with one hand, particularly the right hand, when gripped in a vertically long orientation. Also, the right controller 4 can be gripped in a horizontally long orientation. When the right controller 4 is gripped in a horizontally long orientation, it may be gripped with both hands.

[0056] Similar to the left controller 3, the right controller 4 is provided with an analog stick 52 as a direction input unit. In the present embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. Further, instead of the analog stick, the right controller 4 may be provided with a cross key or a slide stick capable of slide input. Also, similar to the left controller 3, the right controller 4 is provided with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. Furthermore, the right controller 4 is provided with a + (plus) button 57 and a home button 58. Also, the right controller 4 is provided with a first R button 60 and a ZR button 61 at the upper right of the side surface of the housing 51. Also, similar to the left controller 3, the right controller 4 is provided with a second L button 65 and a second R button 66.

[0057] Also, the right controller 4 is provided with a terminal 64 for the right controller 4 to perform wired communication with the main body device 2.

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

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

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

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

[0062] The processor 81 appropriately reads and writes data between the flash memory 84, the DRAM 85, and each of the above storage media to execute the above information processes.

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

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

[0065] The processor 81 is connected to the above-described left terminal 17, right terminal 21, and lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. Also, when the processor 81 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. Further, when the processor 81 communicates with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, in the present embodiment, the main body device 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4, respectively. Also, when the left controller 3 and the right controller 4 are attached to the main body device 2 as an integrated device or when the main body device 2 alone is attached to the cradle, the main body device 2 can output data (for example, image data or audio data) to a stationary monitor or the like via the cradle.

[0066] Here, the main body device 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). Also, the main body device 2 can communicate with a plurality of right controllers 4 simultaneously (in other words, in parallel). Therefore, a plurality of users can simultaneously input to the main body device 2 using sets of the left controller 3 and the right controller 4, respectively. As an example, while a first user inputs to the main body device 2 using a first set of the left controller 3 and the right controller 4, it is possible for a second user to input to the main body device 2 using a second set of the left controller 3 and the right controller 4.

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

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

[0069] The main unit device 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Also, although not shown, the power control unit 97 is connected to each part of the main unit device 2 (specifically, each part that receives power supply from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the battery 98 to each of the above parts based on a command from the processor 81.

[0070] Also, the battery 98 is connected to the lower terminal 27. When an external charging device (for example, a cradle) is connected to the lower terminal 27 and power is supplied to the main unit device 2 via the lower terminal 27, the supplied power is used to charge the battery 98.

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

[0072] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In the present embodiment, the communication control unit 101 can communicate with the main body device 2 by both wired communication via the terminal 42 and wireless communication without using the terminal 42. The communication control unit 101 controls the communication method that the left controller 3 performs with respect to the main body device 2. That is, when the left controller 3 is attached to the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. Also, when the left controller 3 is detached from the main body device 2, the communication control unit 101 performs wireless communication with the main body device 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

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

[0074] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). Also, the left controller 3 includes an analog stick (described as "stick" in FIG. 7) 32. Each button 103 and the analog stick 32 output information regarding the operation performed on themselves to the communication control unit 101 repeatedly at an appropriate timing.

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

[0076] By transmitting the above operation data to the main body device 2, the main body device 2 can obtain the input performed on the left controller 3. That is, the main body device 2 can determine operations on each button 103 and the analog stick 32 based on the operation data.

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

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

[0079] The right controller 4 includes each input unit similar to each input unit of the left controller 3. Specifically, it includes each button 113 and the analog stick 52. These input units have the same functions as the input units of the left controller 3 and operate in the same manner.

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

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

[0082] [2-1. Voxels] In the present embodiment, for some objects in the game space, the shape is defined by voxel data. Here, a voxel is a rectangular parallelepiped (more specifically, a cube)-shaped region arranged in a grid pattern in the game space, and voxel data is data set for each voxel. Hereinafter, an object whose shape is defined by voxel data will be referred to as a "voxel object". In the present embodiment, the game system 1 stores voxel data as data for generating voxel objects in the game space for each of a plurality of voxels set in the game space.

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

[0084] Also, the terrain object shown in FIG. 8 is generated, for example, according to the rule that "when the parameter included in the voxel data set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and when it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". The terrain object shown in FIG. 8 is shown for the purpose of easily exemplifying the relationship between voxels and voxel objects. In the present embodiment, in reality, for example, like the terrain object shown in FIG. 13 described later, a voxel object is generated based on voxel data according to a rule that results in a more complex shape compared to the length of one side of a voxel. Note that the rule for determining the shape of a voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate a voxel object as shown in FIG. 8 or a voxel object as shown in FIG. 15 based on object data.

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

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

[0087] FIG. 11 is a diagram showing an example of the content of the voxel data. Here, in the present embodiment, the game space can be divided into a plurality of voxels arranged in a grid pattern. The game system 1 stores voxel data in association 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.

[0088] As shown in FIG. 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). Although details will be described 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. That is, in the present embodiment, the above density is used to create a mesh that defines the surface of the voxel object.

[0089] In the present embodiment, the density can take an integer value in the range from a lower limit value (for example, 0) to an upper limit value (for example, 255). In the present embodiment, in the game system 1, when the value of the density set for a voxel is high, the ratio of the volume occupied by the voxel object in the voxel tends to be large, and when the value of the density is low, the ratio tends to be small. The shape of the voxel object is determined based on the density. In this way, the density is an index that affects the ratio of the volume occupied by the voxel object in the voxel. It can also be said that the density is an index indicating the degree to which an object is included in the region where each voxel is defined. For example, when the density is 0, there is no voxel object in the voxel, when the density is 255, all of the voxel is the voxel object, and when the density is a value between 0 and 255, the voxel object can occupy the voxel at a ratio corresponding to the value. Then, based on the above density, the shape of the mesh, that is, the shape of the voxel object, can be determined. However, the voxel object generated based on the above density does not necessarily have a volume that exactly matches the ratio indicated by the density. For example, in the method of generating a voxel object as shown in FIG. 8 and the method of generating a voxel object as shown in FIG. 15, even if they are based on the same density, the volume of the voxel object may be different.

[0090] In other embodiments, the density may indicate either a state in which the voxel object occupies the entire area within the voxel or a state in which the voxel object is not included in the area within the voxel. For example, the density data may be data that can only take on values of 0 or 1.

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

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

[0093] FIG. 12 is a diagram showing an example of property information indicating the properties of a material. As shown in FIG. 12, the game system 1 stores property information associating the above property ID with information indicating the content of the property indicated by the property ID. The property of a material is a property that the voxel object to which the material is set has in the game, and is, for example, information such as the weight and slipperiness shown in FIG. 12. Note that the specific content of the property is arbitrary, and for example, the following information may be set as the property of the material. · Temperature · Fragility (for example, the number of times the voxel object breaks until it breaks when an impact is applied to the voxel object) · Whether another object adheres to the voxel object · The amount of the player character's physical strength recovered when the player character destroys the voxel object · The amount of in-game currency obtained by the player character when the player character destroys the voxel object Note that the specific content of the property set for the material is arbitrary. In other embodiments, information different from the above may be set as the information indicating the property of the material.

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

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

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

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

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

[0099] In addition, the material data may be information regarding the material and may further indicate other information different from the above-described properties and textures. For example, the material data may include effect data indicating an effect that occurs when an effect occurrence condition (e.g., a part of the voxel object is destroyed or a character steps on the voxel object) set for the voxel object is satisfied. Note that the effect data may be data indicating an effect image (e.g., an effect image representing that the voxel object is destroyed) or data indicating an effect sound (the sound of footsteps when a character walks on the voxel object).

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

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

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

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

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

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

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

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

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

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

[0110] [2-3. Main Voxels and Sub-Voxels] In the present embodiment, in addition to the above-described terrain object, other objects different from the terrain object may also be generated as voxel objects. Other objects are, for example, an object representing ice, an object representing a rock, an enemy object, and the like, which will be described later.

[0111] Here, in the present embodiment, the shape of the above other object is defined by voxel data related to voxels different from the terrain object. Hereinafter, the voxel space related to the terrain object is referred to as the "main voxel space", the voxels in the main voxel space are referred to as "main voxels", and the voxel data set in the main voxels is referred to as "main voxel data". On the other hand, the voxel space related to the above other object is referred to as the "sub-voxel space", the voxels in the sub-voxel space are referred to as "sub-voxels", and the voxel data set in the sub-voxels is referred to as "sub-voxel data". In the present embodiment, the shape of the terrain object is defined by the main voxel data, and the shape of the above other object is defined by the sub-voxel data. In the present embodiment, a voxel object whose shape is defined by the main voxel data is referred to as a "main voxel object", and a voxel object whose shape is defined by the sub-voxel data is referred to as a "sub-voxel object".

[0112] FIG. 16 is a diagram showing an example of a main voxel object and a sub-voxel object. In FIG. 16, for the purpose of clearly showing the difference between the main voxel and the sub-voxel, voxel objects (i.e., the terrain object 211 and the rock object 212) for which a mesh is generated according to the same rules as when the mesh of the terrain object shown in FIG. 8 is generated are shown. That is, it is assumed that the mesh of the voxel object shown in FIG. 16 is generated according to the rule that "when the density set for a voxel is greater than a predetermined value, a cube is placed at the position of the voxel, and when it is less than or equal to the predetermined value, nothing is placed at the position of the voxel". In FIG. 16, for the purpose of making the drawing easy to view, the terrain object 211 is shown by a dotted line, the rock object 212 is shown by a solid line, and the area 213 of the sub-voxel space is shown by a broken line.

[0113] Regarding the terrain object 211, its shape is defined by the main voxel data. In this embodiment, it is assumed that the main voxel space is set for the entire game space (therefore, the range of the main voxel space is not shown in FIG. 16).

[0114] On the other hand, regarding the rock object 212, its shape is defined by the sub-voxel data. Here, in this embodiment, the sub-voxel space is set in a part of the game space (which can also be said to be a part of the main voxel space). In the example shown in FIG. 16, the area 213 shown by the broken line is the range in which the sub-voxel space is set. The rock object 212 is defined by the sub-voxel data set for each sub-voxel set within the sub-voxel space. The rock object 212 will be arranged within the range of the sub-voxel space.

[0115] The length of one side of the sub-voxel may be set to be different from the length of one side of the main voxel, or may be set to be the same. Note that, for example, as shown in FIG. 16, by setting a sub-voxel space that defines a voxel having a shorter side length than the main voxel as a sub-voxel, the shape of the sub-voxel object based on the sub-voxel data can be expressed in finer detail than the terrain object based on the main voxel data.

[0116] Also, in the present embodiment, the game system 1 sets the direction of the coordinate axes in the sub-voxel space (i.e., the direction of each side of the sub-voxel) independently of the direction of the coordinate axes in the main voxel space (i.e., the direction of each side of the main voxel). For example, in the example shown in FIG. 16, 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. According to this, it becomes easier to arrange the sub-voxel object in a free orientation in the game space. For example, it becomes easier to arrange the sub-voxel object so as to extend in a direction different from the coordinate axes in the main voxel space. Also, it becomes easier to move (e.g., rotate) the sub-voxel object independently of the terrain object.

[0117] Note that the game system 1 can change the position of the sub-voxel object (more precisely, the position in the game space) by changing the position of the sub-voxel space in the game space. Also, the game system 1 can change the orientation of the sub-voxel object (more precisely, the orientation in the game space) by changing the orientation of the sub-voxel space with respect to the game space.

[0118] In this embodiment, when a plurality of sub-voxel objects are generated, the game system 1 sets a sub-voxel space for each sub-voxel object. As a result, the position and orientation of each sub-voxel space in the game space can be set for each sub-voxel space. In addition, it becomes easier to generate a plurality of sub-voxel objects having different shapes (for example, a plurality of sub-voxel objects having shapes extending in different directions from each other). Note that each sub-voxel space may be arranged such that a part of one sub-voxel space overlaps with a part of another sub-voxel space. In another embodiment, a plurality of sub-voxel objects may be set in one sub-voxel space.

[0119] Note that the method for generating the mesh of the sub-voxel object based on the sub-voxel data may be the same as or different from the method for generating the mesh of the terrain object based on the main voxel data.

[0120] [2-4. Deformation Processing Using Particle Data] Next, a process of deforming a voxel object using particle data will be described. Particle data is data indicating a plurality of particles corresponding to an object (hereinafter sometimes referred to as a "particle group"). Specifically, the particle data includes data indicating the position of each particle. In this embodiment, the game system 1 can naturally express how the voxel object deforms (for example, deforms as if it is melting) by using the particle data. Hereinafter, an example in which an ice object deforms as if it is melting will be described with reference to FIGS. 17 to 24.

[0121] FIG. 17 is a diagram showing an example of a game space in which ice objects are arranged. The example shown in FIG. 17 represents a state in which the player object 221 has thrown an ice object (i.e., an object whose material is set to ice) 222 toward a lava terrain object (i.e., a terrain object whose material is set to lava) 223. In the example shown in FIG. 17, the lava terrain object 223 is the main voxel object, and the ice object 222 is the sub-voxel object.

[0122] FIG. 18 is a diagram showing an example of a state in which the ice object 222 has come into contact with the lava terrain object 223 from the state shown in FIG. 17. Further, FIG. 19 is a diagram showing an example of a state in which the ice object has been deformed from the state shown in FIG. 18. As shown in FIGS. 18 and 19, in the present embodiment, when the ice object 222 comes into contact with the lava terrain object 223, it deforms and further becomes smaller. Thereby, it is possible to express how the ice object 222 melts by the lava terrain object 223. When performing such deformation of the ice object 222, the game system 1 executes a deformation process using particle data.

[0123] FIG. 20 is a diagram showing an example of a process of deforming an object using particle data. The object in the state (a) of FIG. 20 is the object 231 (for example, the ice object 222) before deformation using particle data. Hereinafter, the object 231 before the above deformation will be referred to as the "existing object".

[0124] In this embodiment, when the generation conditions are satisfied for an existing object, the game system 1 generates particle data based on the existing object. In the example shown in FIG. 20, the game system 1 generates particle data indicating the positions of a plurality of particles (that is, the particle group 232 shown in FIG. 20(b)) arranged so as to correspond to the shape of the existing object 231. Note that "a plurality of particles correspond to the shape of an object" means that the shape formed by the entire plurality of particles generally matches the shape of the object, and it does not mean that the shape formed by the plurality of particles needs to exactly match the shape of the object. The process of generating particle data can be said to be a process of converting an existing object into a plurality of particles corresponding to the shape of the existing object.

[0125] Note that the content of the above generation conditions is arbitrary. For example, the generation condition for the above ice object is that it has come into contact with an object of a specific material (specifically, a lava terrain object). In this way, in this embodiment, the game system 1 generates particle data corresponding to an existing object in response to the existing object coming into contact with an object different from the existing object. According to this, since particle data is not generated during the period before contact when it is not necessary to deform the existing object, the processing load on the game system 1 can be reduced.

[0126] Also, in this embodiment, the game system 1 generates particle data corresponding to an existing object on the condition that at least the material set for the existing object and the material set for another object are in a predetermined combination (for example, the material of the existing object is ice and the material of another object is lava). According to this, it is possible to express how the existing object deforms in response to coming into contact with a specific object.

[0127] FIG. 21 is a diagram showing an example of setting a plurality of particles based on existing objects. In the present embodiment, the game system 1 sets cuboid (more specifically, cubic) particle regions arranged in a grid pattern in the game space, and sets particles using the particle regions (see FIG. 21). Note that the grid shown in FIG. 21 is the grid of the particle region. The game system 1 determines whether to place particles in each particle region, and places particles in one or more particle regions. In FIG. 21, for the purpose of making the drawing easy to view and the explanation easy to understand, each element (that is, the particle region, the existing object, and the particle) is represented two-dimensionally, but these elements are actually arranged in a three-dimensional space.

[0128] The determination as to whether to place particles in a particle region is made based on whether an existing object exists in the particle region. That is, when an existing object exists in the particle region, particles are placed in the particle region, and when no existing object exists in the particle region, no particles are placed in the particle region. In the present embodiment, the determination as to whether an existing object exists in a particle region is made based on the voxel data of the existing object. Specifically, when an existing object exists in a voxel overlapping the particle region (for example, the density of the voxel is equal to or greater than the reference value), the game system 1 determines that an existing object exists in the particle region. On the other hand, when no existing object exists in a voxel overlapping the particle region (for example, the density of the voxel is less than the reference value), the game system 1 determines that no existing object exists in the particle region.

[0129] Note that the specific method for determining whether or not there is an existing object in the particle region is arbitrary and is not limited to the above. For example, in other embodiments, the game system 1 may perform the determination based on the mesh of the existing object instead of the voxel data of the existing object. Specifically, the game system 1 may determine that there is an existing object in the particle region if the mesh of the existing object exists in the particle region or if the particle region is the internal region of the existing object (i.e., the internal region surrounded by the mesh).

[0130] In the example shown in FIG. 21, it is assumed that for the particle region indicated by the hatching among the particle regions, it is determined that the existing object 231 exists. At this time, the game system 1 arranges particles in the particle region indicated by the hatching (that is, generates particle data indicating that particles are arranged in the particle region indicated by the hatching). As a result, a particle group 232 corresponding to the shape of the existing object 231 is set (see FIG. 21). Note that in the present embodiment, it is determined that the existing object 231 exists in the voxel when the density of the voxel is equal to or higher than the above reference value, while the mesh of the existing object 231 can also be generated for voxels with a density lower than the reference value (and 1 or higher). Therefore, in the example shown in FIG. 21, as shown in the figure, the mesh of the existing object 231 may exist in the particle regions other than the particle region indicated by the hatching.

[0131] As described above, in the present embodiment, the game system 1 generates particle data based on whether or not at least a part of the existing object exists in a plurality of unit regions (i.e., particle regions) obtained by dividing the region including the existing object in the virtual space into a grid pattern. According to this, it is possible to generate particle data indicating a particle group arranged according to the shape of the existing object with a small amount of calculation.

[0132] Note that how to set the particle region in the game space is arbitrary. That is, the size of the particle region and the orientation of each side of the particle region are arbitrary. In this embodiment, the length of one side of the particle region is equal to the length of one side of the voxel corresponding to the voxel data generated based on the particle data (for example, the voxel data of the voxel object 233 shown in FIG. 20). According to this, a voxel object that sufficiently reflects the shape represented by the particle group can be generated, and the processing load of the game system 1 can be reduced by suppressing the number of particles. Note that it can also be said that the length of one side of the particle region is equal to the length of one side of the voxel regarding the existing object. According to this, a particle group that sufficiently reflects the shape of the existing object can be set.

[0133] Also, in this embodiment, the orientation of each side of the particle region is set to be the same as the orientation of each side of the voxel corresponding to the voxel data generated based on the particle data. According to this, the orientation of the lattice of the particle region can be made to coincide with the orientation of the sub-voxel regarding the voxel object generated based on the particle data, so that the processing load for generating the voxel object can be reduced.

[0134] Note that the game system 1 does not need to set a particle region in the entire game space, and it may be set in the region within the range including the existing object. For example, the particle region is set in the sub-voxel space regarding the existing object. According to this, the particle region can be set efficiently, and the processing load of the game system 1 can be reduced.

[0135] In this embodiment, the particles are spherical, and the radius of the particles is equal to the length of one side of the voxel corresponding to the voxel data generated based on the particle data (it can also be said that it is the same as the length of one side of the particle region) (see FIG. 21). According to this, a voxel object that sufficiently reflects the shape represented by the particle group can be generated. However, the size of the particles is arbitrary and may be shorter or longer than the length of one side of the voxel related to the voxel object. Note that the radius of the particles can also be said to be equal to the length of one side of the voxel related to the existing object. According to this, a particle group that sufficiently reflects the shape of the existing object can be set.

[0136] Also, in this embodiment, it is assumed that the size of each generated particle is constant. However, in other embodiments, the size of each particle does not have to be constant. For example, the game system 1 may change the size of the particles arranged in the particle region according to the ratio of the volume occupied by the existing object in the particle region (specifically, the larger the ratio, the larger the size of the particles). At this time, the particle data may include data indicating the position of the particles and data indicating the size of the particles for each particle. Further, the particle data may further include data indicating the moving speed for each particle.

[0137] After generating the particle data, the game system 1 moves the particle group 232 indicated by the particle data for each particle in order to generate a voxel object obtained by deforming an existing object (as shown in (c) of FIG. 20). That is, the game system 1 updates the particle data so as to indicate the position of each particle after the movement. In the present embodiment, the game system 1 repeatedly executes the movement process at a rate of once per frame time. Here, the rule for moving the particles is arbitrary. For example, when expressing the state where the above-described ice object 222 melts, each particle may be moved according to the physical laws applied in the game space (for example, gravity or collision with other objects). Note that a conventional fluid simulation method may be used for moving each particle. Further, although details will be described later, the game system 1 may set a target position for each particle and move each particle toward the target position (see FIG. 25 described later).

[0138] After moving the particle group 232, the game system 1 generates a voxel object (referred to as a "deformed object") 233 that represents the shape obtained by deforming an existing object based on the particle group 232 after the movement (as shown in (d) of FIG. 20). That is, the game system 1 generates voxel data based on the particle data indicating the particle group after the movement, and generates a mesh of the deformed object 233 based on the generated voxel data. The process of generating the mesh in this way can be said to be a process of converting the particle group 232 into the deformed object 233.

[0139] FIG. 22 is a diagram showing an example of generating the deformed object 233 from the particle group 232. Note that the grid shown in FIG. 22 is a grid of sub-voxels related to the deformed object 233. The game system 1 generates the voxel data of the deformed object 233 by setting the density for each sub-voxel based on the particle group 232. In FIG. 22, similar to FIG. 21, for the purpose of making the drawing easy to view and the explanation easy to understand, each element (that is, the particle group, the sub-voxel, and the voxel object) is represented two-dimensionally, but these elements are actually arranged in a three-dimensional space.

[0140] The density of the sub-voxel is set based on whether or not there are particles in the sub-voxel. In the present embodiment, when there is at least one particle in the sub-voxel, the game system 1 sets the density of the sub-voxel to the upper limit value (i.e., 255), and when there are no particles in the sub-voxel, the game system 1 sets the density of the sub-voxel to the lower limit value (i.e., 0). According to this, voxel data can be generated by simple calculation, so the processing load on the game system 1 can be reduced.

[0141] Note that the specific method of generating voxel data based on particle data is arbitrary and is not limited to the above. For example, in other embodiments, the game system 1 may set the density of the sub-voxel based on the number of particles present in the sub-voxel (specifically, the greater the number of particles, the greater the density). Also for example, the game system 1 may set the density of the sub-voxel based on the distance from the center of the particle to the sub-voxel (specifically, the longer the distance from the center of the particle to the sub-voxel, the smaller the density).

[0142] The game system 1 generates a mesh of the deformed object 233 based on the generated voxel data. Note that the specific method of generating a mesh based on voxel data is arbitrary. The game system 1 may generate the mesh of the deformed object 233 in the same method as the mesh generation method in another object different from the deformed object 233 (for example, a terrain object or an existing object), or may generate it in a method different from the mesh generation method.

[0143] In the example shown in FIG. 22, by generating the mesh of the deformed object 233 by the above method, a mesh is generated so as to generally cover the particle group 232. As a result, a deformed object 233 having a shape corresponding to the general shape of the particle group 232 is generated.

[0144] The game system 1 changes the shape of the deformable object over time by repeatedly executing the movement of particles (shown in (c) in FIG. 20) and the generation of the deformable object (shown in (d) in FIG. 20). As a result, for example, it is possible to represent a state where an ice object is gradually melting.

[0145] In the present embodiment, when the game system 1 moves the particles again after generating the deformable object, the game system 1 moves the particles from the position of the previous particles without generating particles from the deformable object (that is, without converting the deformable object into a particle group) to calculate the position of the particles after the movement. That is, the game system 1 calculates the value of the current particle data (that is, the value indicating the new position of the particles) using the particle data updated last time without using the voxel data (that is, the voxel data of the deformable object) generated based on the particle data updated last time. This is because if the deformable object is converted into a particle group, there is a possibility that an error will occur in the position of the particles due to this conversion, and it may not be possible to accurately calculate the position of the particles after the movement. In contrast, in the present embodiment, the position of the particles after the movement can be accurately calculated by using the particle data updated last time. In other embodiments, the game system 1 may convert the deformable object into a particle group and calculate the particle data indicating the position of the particles after the movement using the particle data indicating the converted particle group.

[0146] In the present embodiment, the deformable object 233 generated based on the particle data is a sub-voxel object. Therefore, when particles are arranged outside the sub-voxel space related to the deformable object 233, the particles will not be reflected in the shape of the deformable object 233. As a result, the shape of the deformable object 233 may not correspond to the shape of the particle group 232. Therefore, in the present embodiment, the game system 1 executes a process of moving the sub-voxel space and a process of correcting the position of the particles. Hereinafter, these movement process and correction process will be described.

[0147] FIG. 23 is a diagram showing an example of a process of moving a sub-voxel space. In the example shown in FIG. 23, it is assumed that the particle group 232 changes from a state where it is at a position away from the ground 235 (state (a) in FIG. 23) to a state where it moves while approaching the ground 235 and is deformed (state (b) in FIG. 23).

[0148] In the example shown in FIG. 23, if the sub-voxel space 236 does not move from the state before movement, as a result of the movement of the particle group 232, some of the particles in the particle group 232 after movement will be at positions outside the sub-voxel space 236. As a result, the deformed object after movement will have a shape in which the particles are not reflected.

[0149] Therefore, in the present embodiment, the game system 1 updates the range (which can also be referred to as the position) of the sub-voxel space of the deformed object in response to updating the position of the particle group 232. In the present embodiment, the game system 1 calculates the center-of-gravity position 237 of each particle after movement, and moves the sub-voxel space so that the center-of-gravity position 237 becomes the center position of the sub-voxel space (see the arrow shown in FIG. 23). In other embodiments, the game system 1 may identify the particles at the positions of the front, rear, left, right, top, and bottom ends in the particle group 232, and determine the position of the updated sub-voxel space so that the center position of the sub-voxel space is located at the center position of the identified particles. As described above, in the present embodiment, the game system 1 updates the range of the voxel space in which the voxels related to the voxel data of the deformed object are set based on the updated particle data. Thereby, the possibility that the particles after movement are located outside the sub-voxel space can be reduced.

[0150] Note that the specific method for updating the position of the sub-voxel space is not limited to the above. In the present embodiment, the game system 1 changes the range of the sub-voxel space by moving the central position without changing the size of the sub-voxel space. However, in other embodiments, the game system 1 may change the range of the sub-voxel space by changing the size of the sub-voxel space.

[0151] FIG. 24 is a diagram showing an example of a process for correcting the position of particles. In the example shown in FIG. 24, as a result of the movement of the particle group 232, a state where the particle 238 is located outside the sub-voxel space 236 is shown (see (a) in FIG. 24). Note that, in the example shown in FIG. 24, some particles including the particle 238 are arranged at positions separated from other particles. Such a state may occur, for example, when some of the above particles are scattered and moved as a result of the particle group 232 contacting another object. Also, the position of the sub-voxel space 236 shown in FIG. 24 is the position after being moved by the above-described movement process of the sub-voxel space.

[0152] When the particle 238 is located outside the sub-voxel space 236 as described above, the game system 1 corrects the position of the particle 238 so that the particle 238 is located within the sub-voxel space 236 (see (b) in FIG. 24). In this way, the game system 1 controls the positions of a plurality of particles so that they are located within the voxel space in which the voxels related to the voxel data of the deformed object are set. Thereby, the possibility that the particles are located outside the sub-voxel space can be further reduced.

[0153] Note that the specific method for correcting the position of the particles is arbitrary. For example, in the present embodiment, the game system 1 corrects the position of the particles outside the sub-voxel space to a position within the sub-voxel space so that the amount of movement due to the correction is minimized. That is, the position of the particle after correction is set at the position where the normal line passing through the position of the particle before correction among the normal lines on the outer peripheral surface of the sub-voxel space intersects the outer peripheral surface.

[0154] In this embodiment, when deforming an object using particle data, the game system 1 causes particles to disappear in response to the disappearance condition being satisfied. For example, when the existing object is the above ice object, the disappearance condition includes the condition that "the particles have contacted the object of the above specific material (that is, the object related to the generation condition; specifically, the lava terrain object) a predetermined number of times". The game system 1 determines whether the disappearance condition is satisfied for each particle. Specifically, every time the game system 1 moves a particle, it determines whether the particle has contacted an object of a specific material, and when the number of times a certain particle has contacted the object reaches the above predetermined number, the certain particle is caused to disappear. When the particles disappear in this way, the deformed object is generated based on the remaining particles. Therefore, the deformed object gradually becomes smaller as the particles disappear (see FIG. 19).

[0155] As described above, in this embodiment, the game system 1 updates the particle data so that at least some of the plurality of particles disappear in response to the disappearance condition being satisfied. According to this, since the existing object (which can also be said to be the deformed object) can be deformed while becoming smaller, it is possible to express the state of the object melting and becoming smaller.

[0156] Note that the content of the disappearance condition is arbitrary and is not limited to the above. For example, the disappearance condition may be that a limited time has elapsed since the particles were generated. At this time, the deformed object corresponding to the existing object will disappear when the above limited time has elapsed since the deformed object was generated. According to this, it is possible to suppress an increase in the particle movement process and the deformed object generation process due to the deformed object remaining without disappearing. Therefore, the processing load on the game system 1 can be reduced.

[0157] Also, in other embodiments, the disappearance condition may be that the object has been struck by another object (e.g., a player object). For example, when the player object strikes the deformable object, the game system 1 may cause the particles within a range centered on the location where the strike occurred to disappear. According to this, it is possible to represent the state in which the deformable object disappears due to being struck.

[0158] In this embodiment, the game system 1 sets the disappearance condition as either that the particles have come into contact with an object of the specific material a predetermined number of times, or that the restricted time has elapsed since the particles were generated.

[0159] Also, in other embodiments, the game system 1 does not necessarily have to make the particles disappear. That is, when the game system 1 deforms an object using the particles, it is not necessary to deform the object so that it becomes smaller.

[0160] Also, in other embodiments, instead of (or together with) making the particles disappear, the game system 1 may change the material of the deformable object from the material of the existing object. For example, when the existing object is an iron object, in response to the existing object coming into contact with a lava object, the game system 1 may deform the existing object with the particles and change the material of the existing object from "iron" having a hard property to "molten iron" having a soft property.

[0161] In the above, the case where the existing object deforms so as to melt (and become smaller) has been described as an example. However, by using particle data, not only the state of melting, but also the state in which an object deforms in various ways can be represented. For example, as shown below, it is also possible to represent the state in which an object gradually becomes larger using particle data.

[0162] FIG. 25 is a diagram showing an example of how a voxel object gradually grows. In FIG. 25, in the initial state shown in (a), a small spherical object gradually grows into the state shown in (b) and takes the shape of an enemy object in the state shown in (c). Particle data can also be used to represent such a state.

[0163] In the example shown in FIG. 25, the existing object 242 is a small spherical object. When the generation conditions are satisfied for this existing object 242, the game system 1 generates particle data and executes a deformation process using the particle data. Note that the generation conditions in this example are predetermined game conditions (for example, the condition that an enemy object appears is satisfied). Thus, the generation conditions are not limited to the case where the existing object contacts another object, and may be other conditions.

[0164] When the generation conditions are satisfied, the game system 1 first arranges a plurality of particles (particle group 241 shown in FIG. 25) so as to correspond to the shape of the existing object 242. Depending on the size of the existing object 242, the number of particles required to correspond to the shape of the existing object 242 may be one. Even in such a case, the game system 1 arranges a particle group 241 composed of a plurality of predetermined particles. In the above case, the particles are arranged overlapping each other (that is, a plurality of particles are arranged at the same position).

[0165] When the particles are arranged, the game system 1 moves each particle of the particle group 241 and generates a deformed object 243 based on the particles after the movement, in the same manner as in the example described above (state (b) shown in FIG. 25). Here, in the example shown in FIG. 25, the game system 1 sets a target position for each particle. The target position is the position to which the particle should ultimately move, and in the example shown in FIG. 25, it is the position where the particle group 241 comes to correspond to the shape of the enemy object (i.e., the deformed object 244). In the present embodiment, the game system 1 stores target position data indicating the target position for each particle. It can be said that the target position data is data indicating the position after the change due to the change of each particle over time.

[0166] The game system 1 moves each particle toward the target position for each particle. In one movement process (i.e., the process of moving each particle for one frame), the game system 1 updates the particle data so that each particle of the particle group 241 moves to the set destination position for each of the particles. According to this, each particle can be easily moved to a desired position, and the process of deforming the object into a desired shape becomes easy.

[0167] The above destination position is, for example, the position obtained by moving from the current position of the particle to the target position by the amount of movement of the particle in one movement process. Here, the magnitude of the above movement amount is arbitrary. For example, the game system 1 sets the time until the movement of the particle is completed (referred to as the "movement completion time"), and in one movement process, each particle may be moved by a distance obtained by dividing the distance from the position of the particle in the initial state to the target position by the movement completion time. Also, in other embodiments, the game system 1 may preset the above movement amount for each particle. Also, the above movement amount does not have to be constant for each movement process of one frame, and may have different magnitudes for each movement process.

[0168] The game system 1 moves each particle of the particle group 241 until it reaches its respective target position. In the state where each particle has reached the target position (state (c) in FIG. 25), the deformed object 244 generated based on the particle group 241 becomes the shape of the completed enemy object (or a shape that generally matches the shape). As described above, by using particle-based deformation processing, a small object can be deformed into a large enemy object.

[0169] As described above, the game system 1 sets the destination position based on the target position and updates the particle data until each particle reaches its respective target position. According to this, each particle can be moved to a free position, and the object can be deformed into a desired shape.

[0170] In the present embodiment, at the switching timing after each particle has moved to its respective target position, the game system 1 ends the generation of the deformed object 244 based on the particle data. Here, the game system 1 stores in advance the changed data indicating the shape of the object after the change of the existing object (specifically, the above-mentioned enemy object). The shape indicated by the changed data is, for example, a shape that generally matches the shape of the particle group when each particle reaches the above target position. The changed data may be any data that can generate the mesh of the object after the change, and may be voxel data or bone data. The object after the change after the switching timing may or may not be a voxel object.

[0171] At the above switching timing, instead of generating the deformed object 244 based on the particle data, the game system 1 starts generating the object after the change based on the data after the change. That is, the game system 1 generates a mesh of the voxel object based on the voxel data based on the particle data at least until each of the plurality of particles reaches the target position. Then, at the switching timing after each of the plurality of particles reaches the target position, the game system 1 ends the generation of the mesh based on the voxel data based on the particle data and generates a mesh based on the data after the change. According to this, even when the shape of the object after the change cannot be accurately reproduced depending on the particle data, the shape can be adjusted to be accurate after the switching timing. In addition, since the game system 1 does not need to execute the generation process of the voxel object based on the particle data after the switching timing, the processing load on the game system 1 can be reduced.

[0172] Note that the above switching timing may be any timing after each particle has moved to the target position. For example, the switching timing may be the timing immediately after each particle has moved to the target position, or the timing when a predetermined time has elapsed after each particle has moved to the target position.

[0173] In the present embodiment, the deformed object may be one that affects another object in response to contact with the other object. For example, in the example shown in FIG. 19, when the ice object 222 contacts the lava terrain object 223, the game system 1 changes the contacted portion of the lava terrain object 223 to a terrain object 224 of rock (for example, rock formed by solidification of lava). This change can be made by changing the material data included in the voxel data. In this way, the deformed object may be one that changes the material of the other object in contact (specifically, the appearance and / or properties).

[0174] Further, the deformed object may cause other objects it contacts to disappear. That is, the game system 1 may be configured to cause the contacted portion of the object to disappear when the deformed object contacts another object.

[0175] FIG. 26 is a diagram showing an example of the state in which other objects are disappeared by a deformed object. In FIG. 26, when the deformed object 251 moving in the game space contacts the terrain object 253, the terrain object 253 is shown as being disappeared while the deformed object 251 itself deforms as if it melts.

[0176] In the example shown in FIG. 26, when the existing object 250 contacts the terrain object 253, the game system 1 generates a particle group 252 corresponding to the shape of the existing object 250 (FIG. 26(a)). In the above example, the generation condition for generating the particle data is that the existing object 250 contacts the terrain object 253.

[0177] After generating the particle group 252, the game system 1 determines the contact between the particles and the terrain object 253, and causes the portion of the terrain object 253 that contacts the particles to disappear (FIG. 26(b)). When the terrain object 253 is a voxel object, the shape of the terrain object 253 can be changed so that the above portion disappears by updating the voxel data. Also, when the above disappearance condition is satisfied in response to the contact between the particles and the terrain object 253, the game system 1 causes the particles for which the disappearance condition is satisfied to disappear.

[0178] As described above, the game system 1 repeats the movement of each particle in the particle group 252 and the generation of the deformation object 251. In the example shown in FIG. 26, as the deformation object 251 moves, the particle group 252 further contacts the terrain object 253, so that the contact between the particles and the terrain object 253 and the disappearance of the terrain object 253 due to the contact occur repeatedly. As a result, the disappeared portion of the terrain object 253 gradually becomes larger (shown in (c) in FIG. 26). Also, as the deformation object 251 moves, the disappearance conditions are sequentially satisfied, and as a result, the particles disappear (that is, the deformation object 251 becomes smaller). According to the above, it is possible to express the state in which the terrain object 253 is melted by the deformation object 251. For example, when an object with an acid material is set as the deformation object 251 and an object with an iron material is set as the terrain object 253, it is possible to express the state in which iron is melted by the acid.

[0179] As described above, in the present embodiment, the game system 1 determines whether a particle has contacted an object other than the deformation object. When it is determined that the particle has contacted the other object, the contacted portion of the other object is removed from the virtual space. According to this, it is possible to express the state in which the other object is melted by the deformation object.

[0180] In this embodiment, the game system 1 determines the contact between the particles and the other object. Here, in other embodiments, the game system 1 may determine the contact between the deformable object and the other object. Note that the determination of the contact between the deformable object and the other object may be performed using the voxel data of the deformable object or using the mesh of the deformable object. At this time, when it is determined that the deformable object has come into contact with the other object, the game system 1 causes the contacted portion of the other object to disappear from the virtual space. By this, the same effect as in this embodiment can also be achieved.

[0181] Also, in this embodiment, the game system 1 causes the contacted portion of the other object to disappear from the virtual space on at least the condition that the material set for the deformable object or the existing object and the material set for the other object are in a predetermined combination. For example, when an acid material is set for the deformable object, the game system 1 causes the iron material to disappear on the condition that an iron material is set for the other object. According to this, it is possible to make the deformable object dissolve a specific object and not dissolve the objects other than the specific object.

[0182] In this embodiment, the target object affected by the contact by coming into contact with the deformable object was a voxel object (specifically, a terrain object), but in other embodiments, the target object may not be a voxel object. When the target object is not a voxel object, the method of disappearing or changing the target object is arbitrary. For example, the game system 1 may cause a part of the target object to disappear by changing the mesh of the target object.

[0183] In addition, when the game system 1 causes a target object to disappear, it may generate particle data for the portions around the disappeared portion of the target object and deform the surrounding portions based on the particle data. According to this, the game system 1 can cause the target object to disappear and express the state of deformation such that the surrounding portions melt.

[0184] [3. Specific Examples of Processing in the Game System] Next, with reference to FIGS. 27 to 29, specific examples of information processing in the game system 1 will be described.

[0185] FIG. 27 is a diagram showing an example of various data used for information processing in the game system 1. As shown in FIG. 27, the game system 1 stores a game program, main voxel space data, main voxel object data, main mesh data, sub-voxel space data, sub-voxel object data, sub-mesh data, and particle data. The game program and the main voxel space data are data that are stored in advance in the game system 1 before the execution of game processing. The game program and the main voxel space data are stored, for example, in a storage medium mounted in the slot 23 of the main body device 2. Also, the main voxel object data, the main mesh data, the sub-voxel space data, the sub-voxel object data, the sub-mesh data, and the particle data are data that are generated during the execution of game processing. These data are stored, for example, in the DRAM 85 of the main body device 2.

[0186] The game program is a game program for executing the game processing (specifically, the game processing shown in FIG. 28) in the present embodiment.

[0187] The main voxel space data is data that defines the main voxel space set in the game space. Specifically, the main voxel space data indicates the length of one side of the main voxel and the direction of each side of the main voxel in the game space. Also, when the main voxel space is set only in a partial region of the game space, the main voxel space data may include data indicating the position and size of the space (i.e., the main voxel space) where the main voxel is set (i.e., data indicating the range in the game space where the main voxel is set).

[0188] The main voxel object data is data that indicates the main object (here, the terrain object) arranged in the game space. Specifically, the main voxel object data includes the main voxel data for each unit region within a partial or entire range in the game space.

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

[0190] The sub-voxel space data is data that defines the sub-voxel space set in the game space. Specifically, the sub-voxel space data indicates the position and size of the space (i.e., the sub-voxel space) where the sub-voxel is set, the length of one side of the sub-voxel, and the direction of each side of the sub-voxel in the game space.

[0191] The sub-voxel object data is data that indicates the sub-objects (specifically, existing objects, deformed objects, etc.) arranged in the game space. Specifically, the sub-voxel object data includes the sub-voxel data for each unit region within a partial or entire range in the game space.

[0192] Sub-mesh data is data indicating a mesh (i.e., the mesh of an existing object, the mesh of a deformed object, etc.) set for a sub-object arranged in the game space. The sub-mesh data includes, for example, data indicating the position of each vertex in the sub-mesh.

[0193] Particle data is data indicating the position of each particle in a particle group corresponding to a deformed object. Here, in the present embodiment, the set of the sub-voxel space data, the sub-voxel object data, the sub-mesh data, and the particle data is set for each sub-object. That is, when a plurality of sub-objects are arranged in the game space, the game system 1 stores the above set for each sub-object. When particle data and a deformed object are generated for a certain existing object, the game system 1 stores the sub-voxel space data, the sub-voxel object data, and the sub-mesh data related to the deformed object and the particle data as a set (i.e., in association).

[0194] In addition to the data shown in FIG. 27, the game system 1 stores, as data stored in the game system 1 in advance before the execution of the game process, the data of the above property information and texture information, the data of the above fragment generation information, and the data related to various characters appearing in the game.

[0195] FIG. 28 is a flowchart showing an example of the flow of a game process executed by the game system 1. The game process shown in FIG. 28 is started, for example, in response to an instruction to start the game being given by the player during the execution of the above game program.

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

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

[0198] In step S1 shown in FIG. 20, the processor 81 sets a voxel space in the game space. Specifically, the processor 81 acquires the voxel space data (specifically, main voxel space data and sub-voxel space data) and stores (in other words, writes) it in the DRAM 85. In the 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 of step S2 is executed after step S1.

[0199] In step S2, the processor 81 sets voxel objects in the initial state in the game space. Specifically, the processor 81 acquires voxel data (specifically, main voxel data and sub-voxel data) indicating the arrangement of the voxel objects in the initial state, and stores (or writes, in other words) part or all of the acquired voxel data in the DRAM 85 as voxel object data (specifically, main voxel object data and sub-voxel object data). Note that the voxel data indicating the arrangement of the voxel objects in the initial state is stored, for example, in a storage medium mounted in the slot 23 of the main device 2. The process of step S3 is executed after step S2.

[0200] Note that the voxel data written in the DRAM 85 as the main voxel object data may be part of the main voxel data in the entire range of the game space that is used for generating the game image. For example, the processor 81 may generate an image of an object using only the main voxel data for a partial range (for example, a range within a predetermined distance from the position of the virtual camera) in the game space. At this time, the main voxel object data may include the voxel data within the said range. Also, when the main voxel data for a partial range in the game space is written, the same process as step S2 is executed at an appropriate timing (for example, the timing when the position of the virtual camera has moved more than a predetermined distance) during the execution of a series of processes in steps S4 to S10 described later.

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

[0202] In step S4, the processor 81 controls the operations of various objects (for example, the player object and the enemy object) that appear in the game space. The processor 81 controls the operation of the player object based on, for example, the operation data received from each of the controllers 3 or 4, or controls the operation of the enemy object based on the algorithm defined in the game program. The process of step S5 is executed after step S4.

[0203] In step S5, the processor 81 executes particle processing for generating and updating particle data. Hereinafter, with reference to FIG. 29, the detailed flow of the particle processing will be described.

[0204] FIG. 29 is a sub-flowchart showing an example of the detailed flow of the particle processing in step S5 shown in FIG. 28. In the particle processing, first, in step S11, the processor 81 determines whether the above-described generation conditions are satisfied for the sub-objects arranged in the game space. Note that the generation conditions may be set for each sub-object and may be different conditions for each sub-object. If it is determined that the generation conditions are satisfied for at least one sub-object, the determination result in step S11 is affirmative. If there is no sub-object for which it is determined that the generation conditions are satisfied, the determination result in step S11 is negative. If the determination result in step S11 is affirmative, the process in step S12 is executed. On the other hand, if the determination result in step S11 is negative, the process in step S12 is skipped and the process in step S13 is executed.

[0205] In step S12, the processor 81 generates particle data corresponding to the sub-object (i.e., the existing object) for which the generation conditions are satisfied. Specifically, the processor 81 generates particle data indicating the positions of the particle group arranged so as to correspond to the shape of the existing object by the method described in the above “[2-4. Deformation processing using particle data]”. At this time, the processor 81 stores the generated particle data in the DRAM 85 in association with the sub-voxel object data related to the existing object. Further, when generating particle data for a specific existing object, the processor 81 sets the target position of each particle and stores the target position data indicating the target position in the DRAM 85. The process in step S13 is executed after step S12.

[0206] In step S13, the processor 81 determines whether there are particles in the game space. If the determination result in step S13 is affirmative, the process in step S14 is executed. On the other hand, if the determination result in step S13 is negative, the processor 81 ends the particle processing.

[0207] In step S14, the processor 81 moves the particle group arranged in the game space. At this time, the processor 81 updates the particle data stored in the DRAM 85 so as to indicate the position of each particle after the movement. As described in the above “[2-4. Transformation processing using particle data]”, the particles may be moved according to the physical laws applied in the game space, or may be moved based on the target positions set for the particles. Note that in one execution of the process of step S14, one movement process (that is, a process of moving each particle by one frame) is executed. Then, by repeating the process of step S14, the processor 81 calculates the change over time in the position of each particle in the particle group, and sequentially updates the particle data based on the calculation result. The process of step S15 is executed after step S14.

[0208] In step S15, the processor 81 updates the position of the sub-voxel space corresponding to the particle group arranged in the game space. Note that the “sub-voxel space corresponding to the particle group” is a sub-voxel space related to the deformed object generated based on the particle group. Specifically, the processor 81 calculates the updated position of the sub-voxel space based on the particle group by the method described in the above “[2-4. Transformation processing using particle data]”. At this time, the processor 81 updates the sub-voxel space data stored in the DRAM 85 so as to indicate the updated position. The process of step S16 is executed after step S15.

[0209] In step S16, the processor 81 determines whether there is a particle located outside the sub-voxel space corresponding to the particle group among the particles included in the particle group arranged in the game space. This determination can be made by referring to the particle data stored in the DRAM 85 and the sub-voxel space data associated with the particle data. If the determination result in step S16 is affirmative, the process of step S17 is executed. On the other hand, if the determination result in step S16 is negative, the process of step S17 is skipped and the process of step S18 is executed.

[0210] In step S17, the processor 81 corrects the positions of the particles determined to be located outside the sub - voxel space in step S17. Specifically, the processor 81 corrects the positions of the particles so that the particles are located within the sub - voxel space by the method described in the above “[2 - 4. Deformation processing using particle data]”. At this time, the processor 81 updates the particle data stored in the DRAM 85 to indicate the positions of the corrected particles. The process of step S18 is executed after step S17.

[0211] In step S18, the processor 81 determines whether the disappearance conditions are satisfied for the particles arranged in the game space. Note that the disappearance conditions may be set for each deformation object (or each existing object), and may be different conditions for each deformation object. If it is determined that the disappearance conditions are satisfied for at least one particle, the determination result of step S18 is affirmative. If there is no particle for which it is determined that the disappearance conditions are satisfied, the determination result of step S18 is negative. If the determination result of step S18 is affirmative, the process of step S19 is executed. On the other hand, if the determination result of step S18 is negative, the process of step S19 is skipped and the process of step S20 is executed.

[0212] In step S19, the processor 81 causes the particles for which the disappearance conditions are satisfied to disappear. Specifically, the processor 81 updates the particle data stored in the DRAM 85 to delete the positions of the particles for which the disappearance conditions are satisfied. The process of step S20 is executed after step S19.

[0213] In step S20, the processor 81 generates voxel data regarding a deformation object corresponding to the particle group based on the particle group arranged in the game space (it can also be said that the voxel data regarding the deformation object is updated if it has already been generated). Specifically, the processor 81 generates the voxel data regarding the deformation object so that the density indicated by the voxel data reflects the positions of the respective particles included in the particle group by the method described in the above “[2-4. Deformation processing using particle data]”. At this time, the processor 81 updates the sub-voxel object data regarding the deformation object so as to be the content of the generated voxel data. After step S20, the processor 81 ends the particle processing.

[0214] Returning to the description of FIG. 28, next to the particle processing in step S5, in step S6, the processor 81 determines whether a particle has come into contact with another object. If the determination result in step S6 is affirmative, the process of step S7 is executed. On the other hand, if the determination result in step S6 is negative, the process of step S6 is skipped and the process of step S8 is executed.

[0215] In step S7, the processor 81 changes the object with which the particle has come into contact according to the contact. For example, as a change according to the contact, the processor 81 changes the material of the contacted part of the object (see FIG. 19) or causes the contacted part to disappear (FIG. 26). The processor 81 updates the main voxel object data or the sub-voxel object data regarding the object with which the particle has come into contact, which is stored in the DRAM 85, so as to show the state after the change. The process of step S8 is executed after step S7.

[0216] In step S8, the processor 81 updates the mesh for the voxel object whose voxel data was changed in the above step S5 or S7. That is, the processor 81 generates a mesh based on the updated voxel data for the deformed object whose voxel data was updated in step S5 and the object whose voxel data was updated in step S7 (i.e., the object with which the particle contacted). Thereby, the mesh of the voxel object can be dynamically changed during the game. Note that the processor 81 updates the mesh data (i.e., the main mesh data and the sub-mesh data) stored in the DRAM 85 with the content indicating the newly generated mesh. The process of step S9 is executed after step S8.

[0217] In step S9, the processor 81 generates a game image representing the game space and causes it to be displayed on the display device. Specifically, the processor 81 generates a game image representing the game space including the voxel object and other objects (e.g., the player character and the enemy character). Note that the image of the voxel object is generated according to the method described in the above "[2-2. Mesh]" using the voxel object data and the mesh data stored in the DRAM 85. The processor 81 causes the generated game image to be displayed on the display device. Note that during the game, the process of step S9 is repeatedly executed at a rate of once per predetermined time (e.g., one frame time). The process of step S10 is executed after step S9.

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

[0219] [4. Effects and Modifications of this Embodiment] As described above, in the above embodiment, the information processing system (specifically, the game system 1) has a configuration including the following means. · Particle generation means for generating particle data including data indicating the positions of a plurality of particles corresponding to the shape of an existing object, which is an object arranged in the virtual space (step S12) · Particle calculation means for calculating the temporal change in the positions of the plurality of particles and updating the particle data based on the calculation result (step S14) · Voxel data generation means for generating voxel data regarding a voxel object having a shape corresponding to the positions of the plurality of particles based on the particle data (step S20) · Mesh generation means for generating a mesh of the voxel object based on the voxel data (step S8) · Image generation means for generating an image for outputting an image of the mesh drawn in the virtual space to the display device (step S9)

[0220] According to the above configuration, an existing object can be deformed over time using the particle data. Also, by calculating the temporal change in the position of each particle, a natural deformation of the object can be expressed.

[0221] Note that in the above embodiment, the case where the existing object is a voxel object has been described as an example. That is, in the above embodiment, the existing object is an object generated based on voxel data generated before the particle data regarding the existing object is generated (it can also be said that it is an object generated based on voxel data different from the voxel data of the deformed object generated based on the particle data). Thus, the above embodiment can express a natural deformation of a voxel object by using particles.

[0222] Here, in other embodiments, the existing object may be an object that is not a voxel object. When generating a particle group corresponding to an existing object that is not a voxel object, the game system 1 determines whether there is an existing object in the particle region based on the mesh of the existing object, and may generate a particle group by arranging particles in the particle region where the existing object exists.

[0223] In addition, in other embodiments, the information processing system may not include a part of the configuration in the above embodiment, or may not execute a part of the processing executed in the above embodiment. For example, in order for the information processing system to exhibit some specific effects in the above embodiment, it may include a configuration for achieving the effect and execute the processing for achieving the effect, and may not include other configurations or execute other processing.

Industrial Applicability

[0224] The above embodiment can be used, for example, as a game system and a game program for the purpose of deforming an existing object arranged in a virtual space over time using particles.

Explanation of Signs

[0225] 1 Game system 2 Main body device 3 Left controller 4 Right controller 81 Processor 231,242,250 Existing object 232,241,252 Particle group 233,243,251 Deformed object 236 Sub-voxel space

Claims

1. An information processing program executed by a computer of an information processing apparatus, the computer being caused to: particle generation means for generating particle data including data indicating positions of a plurality of particles corresponding to the shape of an existing object that is an object arranged in a virtual space; particle calculation means for calculating a change over time in the positions of the plurality of particles and updating the particle data based on the calculation result; voxel data generation means for generating voxel data regarding a voxel object having a shape corresponding to the positions of the plurality of particles based on the particle data; mesh generation means for generating a mesh of the voxel object based on the voxel data; An information processing program that functions as image generation means for generating an image obtained by rendering the mesh in the virtual space and outputting the image to a display device.

2. The information processing program according to claim 1, wherein the existing object is an object generated based on voxel data generated before the particle data regarding the existing object is generated by the particle generation means.

3. The information processing program according to claim 1, wherein the particle generation means generates the particle data based on whether at least a part of the existing object exists in a plurality of unit regions obtained by dividing a region including the existing object in the virtual space into a grid.

4. The information processing program according to claim 3, wherein the length of one side of the unit region is equal to the length of one side of a voxel corresponding to the voxel data generated based on the particle data.

5. The information processing program according to any one of claims 1 to 4, wherein the particle calculation means updates the particle data so that at least some of the plurality of particles disappear in response to a disappearance condition being satisfied.

6. The particle calculation means: repeatedly updates the particle data, and calculates the value of the current particle data indicating new positions of the plurality of particles using the particle data updated last time without using the voxel data generated based on the particle data updated last time. The information processing program according to any one of claims 1 to 5.

7. The computer is further caused to function as voxel update means for updating a range of a voxel space in which voxels related to the voxel data generated based on the particle data are set, based on the updated particle data, in the information processing program according to any one of claims 1 to 6.

8. The particle calculation means controls positions of the plurality of particles so as to be located within a voxel space in which voxels related to the voxel data generated based on the particle data are set, in the information processing program according to any one of claims 1 to 7.

9. The particle generation means generates the particle data corresponding to the existing object in response to the existing object coming into contact with a first object different from the existing object, in the information processing program according to any one of claims 1 to 8.

10. The particle generation means generates the particle data corresponding to the existing object on at least the condition that a material set for the existing object and a material set for the first object are in a predetermined combination, in the information processing program according to claim 9.

11. Contact determination means for determining whether or not the particle has come into contact with a second object different from the voxel object, or whether or not the voxel object has come into contact with the second object; When it is determined that the particle has come into contact with the second object, or when it is determined that the voxel object has come into contact with the second object, the computer is further caused to function as disappearance means for disappearing a contacted portion of the second object from the virtual space, in the information processing program according to any one of claims 1 to 10.

12. The disappearance means disappears a contacted portion of the second object from the virtual space on at least the condition that a material set for the voxel object or the existing object and a material set for the second object are in a predetermined combination, in the information processing program according to claim 11.

13. The particle calculation means updates the particle data so that each of the plurality of particles moves to a set destination position in accordance with the passage of time, according to any one of claims 1 to 12.

14. The information processing apparatus stores data indicating a target position after the change due to the temporal change in the positions of the plurality of particles. The particle calculation means sets the destination position based on the target position and updates the particle data until each of the plurality of particles reaches the target position, according to the information processing program of claim 13.

15. The information processing apparatus stores post-change data regarding the shape of an object after the existing object has changed due to the temporal change. The mesh generation means generates a mesh of the voxel object based on the voxel data based on the particle data at least until each of the plurality of particles reaches the target position, ends the generation of the mesh based on the voxel data based on the particle data at a predetermined timing after each of the plurality of particles has reached the target position, and generates a mesh based on the post-change data, according to the information processing program of claim 14.

16. A particle generation means for generating particle data including data indicating the positions of a plurality of particles corresponding to the shape of an existing object, which is an object arranged in a virtual space; a particle calculation means for calculating the temporal change in the positions of the plurality of particles and updating the particle data based on the calculation result; a voxel data generation means for generating voxel data regarding a voxel object having a shape corresponding to the positions of the plurality of particles based on the particle data; a mesh generation means for generating a mesh of the voxel object based on the voxel data; An information processing system comprising an image generation means for generating an image obtained by rendering the mesh in the virtual space for output to a display device.

17. A particle generation means for generating particle data including data indicating the positions of a plurality of particles corresponding to the shape of an existing object, which is an object arranged in a virtual space; a particle calculation means for calculating the temporal change in the positions of the plurality of particles and updating the particle data based on the calculation result; Voxel data generation means for generating voxel data related to a voxel object having a shape corresponding to the positions of the plurality of particles based on the particle data; Mesh generation means for generating a mesh of the voxel object based on the voxel data; An information processing apparatus comprising image generation means for generating an image obtained by rendering the mesh in the virtual space for output to a display device.

18. An information processing method executed by an information processing system, the method comprising: A particle generation step of generating particle data including data indicating the positions of a plurality of particles corresponding to the shape of an existing object that is an object arranged in a virtual space; A particle calculation step of calculating a change over time in the positions of the plurality of particles and updating the particle data based on the calculation result; A voxel data generation step of generating voxel data related to a voxel object having a shape corresponding to the positions of the plurality of particles based on the particle data; A mesh generation step of generating a mesh of the voxel object based on the voxel data; An information processing method comprising an image generation step of generating an image obtained by rendering the mesh in the virtual space for output to a display device.

Citation Information

Patent Citations

  • Image generation system, program and information storage medium

    JP2002216152A

  • Image generating system, program, and information storage medium

    JP2002279446A

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

    JP2004062666A

  • Program, information storage medium and image generation system

    JP2008033522A