Computer program product, information processing system, information processing device, and information processing method
By updating voxel data in the virtual space to destroy the object and generating a polygonal mesh, the problem of restricted character voxel deformation in the prior art is solved, and the object deformation and player action with high degree of freedom are achieved.
Patent Information
- Application Number
- CN202510106171.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-30
- Filing Date
- 2025-01-23
- Publication Date
- 2025-08-01
AI Technical Summary
In the prior art, character voxels generated based on camera information cannot be deformed with high degree of freedom, resulting in limited player characters' movements.
By using voxel data in the virtual space, the voxel data is updated according to player operations to destroy the object, and a polygonal mesh is generated to achieve high degree of freedom deformation of the object and high degree of freedom of the player character.
It realizes high degree of freedom deformation of the object and the free action of the player characters in the virtual space, improving the game experience.
Smart Images

Figure CN120393391A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a computer program product, an information processing system, an information processing apparatus, and an information processing method capable of generating an image using voxels. Background Art
[0002] Conventionally, there has been a game that creates a character voxel based on imaging information and generates polygon mesh information (for example, refer to Japanese Patent Laid-Open No. 2008-33521).
[0003] However, in the above prior art, voxels are used to generate an object based on imaging information, and the object is not deformed by updating voxel data.
[0004] Therefore, an object of the present invention is to provide a computer program product, an information processing system, an information processing apparatus, and an information processing method that can deform an object with a high degree of freedom and enable a player character to act with a high degree of freedom in a game using voxels. Summary of the Invention
[0005] In order to solve the above problems, the present invention adopts the following configuration.
[0006] The game program of the present invention is a game program executed by a processor of an information processing apparatus. The game program causes the processor to perform the following processing: storing first voxel data in a storage medium, the first voxel data being data for representing a first object in a virtual space, and the first voxel data holding voxel data indicating the existence of the object for each voxel included in a first voxel space arranged in the virtual space. In addition, the game program causes the processor to further perform the following processing: moving a player character on the first object based on a player's operation input; performing a destruction action by the player character based on a player's operation input. And, the game program causes the processor to further perform the following processing: when the destruction action hits the first object, updating the voxel data of the voxels included in a first elimination range to a value indicating the non-existence of the object, where the first elimination range is a range set according to the position of the player character and has a shape obtained by removing a range below a specified plane set based on the position of the player character from a specified shape; and generating an image of the virtual space by at least drawing a polygon mesh representing the surface of the first object based on the first voxel data.
[0007] According to the above, when the player character moves on the first object and performs a destruction action, and if the destruction action hits the first object, the voxel data of the voxels included in the first elimination range of the shape obtained by removing the range below the specified plane from the specified shape is updated, thereby enabling the destruction of the first object within the first elimination range. Thus, the shape of the first object after destruction can be set to a shape having a specified plane corresponding to the position of the player character, enabling the object to be deformed with a high degree of freedom and enabling the player character to act with a high degree of freedom. For example, the shape of the first object after destruction can be set to a flat surface, making it easier for the player character to move on the first object after destruction.
[0008] Alternatively, the destruction action may be a forward destruction action of the player character, and the first elimination range may be set in front of the player character when the destruction action hits the first object. Alternatively, the specified plane may be a horizontal plane having the height of the ground on which the player character lands when the destruction action hits the first object.
[0009] According to the above, when a forward destruction action hits the first object, the specified plane can be set to a horizontal plane having the same height as the ground. Thus, the first object after destruction can be set to a horizontal plane having the same height as the ground, making it easier for the player character to move on the first object after destruction.
[0010] Alternatively, the processor may also perform the following process: when the destruction action hits the first object, set the height of the specified plane based on the position of the player character. Alternatively, when the entire specified shape is located above the specified plane, the first elimination range is the specified shape.
[0011] According to the above, the height of the specified plane is set based on the position of the player character when the destruction action hits the first object. When the entire specified shape is located above the specified plane, that is, when there is no specified shape in the position below the specified plane, the first elimination range can be set to the specified shape. The height of the specified plane can be dynamically set based on the position of the player character, thereby setting the first elimination range.
[0012] Alternatively, the destruction action may be a forward destruction action of the player character. The first elimination range may be set in front of the player character when the destruction action hits the first object. The specified plane may be a horizontal plane having the height of the ground that is below the player character when the player character is in the air when the destruction action hits the first object.
[0013] According to the above, when the destruction action hits the first object while the player character is in the air, the horizontal plane of the height of the ground below the player character can also be set as a specified plane. Thus, after the player character lands, it is possible to make it easier for the player character to move on the first object.
[0014] Alternatively, the destruction action may be a diagonal upward destruction action of the player character. Alternatively, the first elimination range may be set in the diagonal upward direction of the player character when the destruction action hits the first object. Alternatively, the specified plane may be an inclined plane that passes through the position where the player character lands when the destruction action hits the first object and rises as it goes forward to the front of the player character.
[0015] According to the above, when the player character performs a diagonal upward destruction action, the specified plane can be set as an inclined plane. Thus, for example, the specified plane can be set along the direction of the destruction action, so that the shape of the first object after destruction can be set along the direction of the destruction action.
[0016] Alternatively, the specified shape may be any shape among a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming the ellipsoid.
[0017] According to the above, at least a part of the first elimination range can be set as a curved surface shape, so that the shape of the first object after destruction can be set as a natural shape.
[0018] Alternatively, the game program may also cause the computer to perform the following process: when the ground where the player character lands when the destruction action hits the first object is inclined with respect to the horizontal plane, set the specified plane inclined with respect to the horizontal plane.
[0019] According to the above, when the ground where the player character lands is inclined, the specified plane can also be inclined, so that the ground around the player character after destruction can be inclined in the same way as other parts.
[0020] Alternatively, it may be that the game program causes the processor to further perform the following processing: storing second object data in a storage medium, where the second object data is data for representing a second object in the virtual space, and the second object data holds the voxel data for each voxel included in a second voxel space configured in the virtual space. Alternatively, it may be that the game program causes the processor to further perform the following processing: when the destruction action hits the second object, updating the voxel data of the voxels included in a second elimination range having a size different from that of the first elimination range to a value indicating the absence of an object, where the second elimination range is a range set according to the position of the player character and has a shape obtained by removing a range below a specified plane set based on the position of the player character from a specified shape. And it may be that the game program causes the processor to further perform the following processing: based on the second object data, further drawing a polygon mesh representing the surface of the second object to generate an image of the virtual space.
[0021] According to the above, when performing a destruction action on the second object, it is also possible to set a second elimination range having a shape obtained by removing a range below a specified plane set based on the position of the player character from a specified shape. Since the size of the second elimination range is different from the size of the first elimination range, it is possible to make the destruction range in the first object different from the destruction range in the second object.
[0022] Alternatively, it may be that the defined size in the virtual space of one voxel included in the first object data is different from that of one voxel included in the second object data.
[0023] According to the above, for example, it is possible to make the size of one voxel included in the second object data smaller than the size of one voxel included in the first object data. Thus, for example, it is possible to represent the second object with a higher resolution than the first object.
[0024] Alternatively, it may be that the processor is further caused to perform the following processing: based on the player's operation input, causing the player character to perform a downward destruction action; and when the downward destruction action hits the first object, updating the voxel data of the voxels included in a third elimination range set below the player character to a value indicating the absence of the first object.
[0025] According to the above, when the downward destruction action performed by the player character hits the first object, it is possible to set a third elimination range below the player character and update the voxel data of the voxels included in the third elimination range. For example, when performing a downward destruction action, it is possible to destroy a predetermined third elimination range.
[0026] Alternatively, the first object may be the terrain within the virtual space.
[0027] Based on the above, it is possible to enable the player character to perform a destruction action on the terrain to destroy the terrain.
[0028] Alternatively, the game program may cause the processor to further perform the following processing: between the voxels where the first object does not exist and the voxels where the first object exists, determine the vertex positions of the polygon based on the voxel data, thereby generating the polygon mesh. Alternatively, the game program may cause the processor to further perform the following processing: when the voxel data of the voxels included in the first elimination range has been updated, recalculate the vertices of the polygon mesh of at least the range including the voxels whose voxel data has been updated.
[0029] Based on the above, it is possible to generate a polygon mesh based on voxel data, and it is possible to recalculate the vertex positions of the polygon by updating the voxel data. Thus, it is possible to change the shape of the object with a high degree of freedom.
[0030] Alternatively, other inventions may also be an information processing system that executes the above game program, may also be an information processing device, and may also be an information processing method.
[0031] According to the present invention, it is possible to set the shape of the destroyed first object to a shape having a specified surface corresponding to the position of the player character, and it is possible to deform the object with a high degree of freedom and enable the player character to act with a high degree of freedom.
[0032] By referring to the accompanying drawings, the above and other objects, features, aspects, and effects of the present invention will be further clarified from the following detailed description. BRIEF DESCRIPTION OF THE DRAWINGS
[0033] Figure 1 It is an example diagram showing a state in which the left controller 3 and the right controller 4 are mounted on the main device 2.
[0034] Figure 2 It 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 device 2.
[0035] Figure 3 It is a six-sided view showing an example of the main device 2.
[0036] Figure 4 It is a six-sided view showing an example of the left controller 3.
[0037] Figure 5 It is a six-sided view showing an example of the right controller 4.
[0038] Figure 6 is a block diagram showing an example of the internal structure of the main body device 2.
[0039] Figure 7 is a block diagram showing an example of the internal structures of the main body device 2, the left controller 3, and the right controller 4.
[0040] Figure 8 is a diagram showing an example of a terrain object as a voxel object.
[0041] Figure 9 shows Figure 8 a diagram showing an example of the situation before and after a part of the terrain object shown is deleted.
[0042] Figure 10 shows Figure 8 a diagram showing an example of the situation before and after a part of the terrain object shown is deleted.
[0043] Figure 11 is a diagram showing an example of the content of voxel data.
[0044] Figure 12 is a diagram showing an example of property information representing the properties of a material.
[0045] Figure 13 is a diagram showing an example of texture information representing the texture of a material.
[0046] Figure 14 is a diagram showing an example of a method for generating a mesh.
[0047] Figure 15 is a diagram showing an example of a game image including a terrain object.
[0048] Figure 16 is an image obtained by observing the game space in the game of the present embodiment from a virtual camera, and is a diagram showing an example of a game image displayed on a display device.
[0049] Figure 17 is a diagram showing an example of a situation where a player character performs a destruction action.
[0050] Figure 18 is a diagram showing an example of a destruction range without correcting the first shape and a terrain object after being destroyed within that destruction range.
[0051] Figure 19 is a diagram showing an example of a destruction range when correcting the first shape and a terrain object after being destroyed within that destruction range.
[0052] Figure 20It is a diagram showing an example of a destruction range set when a player character PC punches in the forward direction in the case where the ground with which the player character PC is in contact is inclined.
[0053] Figure 21 It is a diagram showing an example of a calculation method for the inclination of the ground with which the player character PC is in contact.
[0054] Figure 22 It is a diagram showing an example of correcting a destruction range in the case where the player character PC punches in the forward direction while in the air and the punch hits a terrain object 220.
[0055] Figure 23 It is a diagram showing an example of not correcting a destruction range in the case where the player character PC punches in the forward direction while in the air and the punch hits a terrain object 220.
[0056] Figure 24 It is a diagram comparing the destruction ranges before and after correction, and is a diagram showing an example of a destruction range in the case where the player character PC punches in an obliquely upward direction.
[0057] Figure 25 It is a diagram comparing the case of not correcting the destruction range with the case of performing correction, and is a diagram showing an example of the terrain after destruction in the case where the player character PC continuously punches in an obliquely upward direction.
[0058] Figure 26 It is a diagram showing an example of a destruction range set in the case where the player character PC punches in the downward direction.
[0059] Figure 27 It is a diagram showing an example of the terrain after destroying a terrain object with the set destruction range in the case where the player character PC punches in the downward direction.
[0060] Figure 28 It is a diagram showing an example of a voxel object other than the terrain objects 210 and 220 arranged in the game space.
[0061] Figure 29 It is a diagram showing an example of various data used in the information processing of the game system 1.
[0062] Figure 30 It is a flowchart showing an example of the flow of game processing executed by the game system 1.
[0063] Figure 31 It is a flowchart showing an example of the destruction range setting process in step S6. Detailed implementation
[0064] [1. Structure of the game system]
[0065] Next, a game system according to an example of the present embodiment will be described. An example of the game system 1 in the present embodiment includes a main body device (information processing device, which functions as the main body of the game device in the present embodiment) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 can be attached to and detached from the main body device 2 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 to be integrated. In addition, the game system 1 can also use the main body device 2, the left controller 3, and the right controller 4 independently (see Figure 2 ). In the following, the hardware structure of the game system 1 of the present embodiment will be described, and then the control of the game system 1 of the present embodiment will be described.
[0066] Figure 1 FIG. is an example showing a state in which the left controller 3 and the right controller 4 are attached to the main body device 2. As Figure 1 shown, the left controller 3 and the right controller 4 are respectively attached to the main body device 2 to be 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 that include operation units for user input.
[0067] Figure 2 FIG. is an example showing a state after the left controller 3 and the right controller 4 are respectively detached from the main body device 2. As Figure 1 and Figure 2 shown, the left controller 3 and the right controller 4 can be attached to and detached from the main body device 2. In addition, in the following, sometimes as a collective term for the left controller 3 and the right controller 4, it is described as "controller".
[0068] Figure 3 FIG. is a six-sided view of an example of the main body device 2. As Figure 3 shown, 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 side surface, that is, the surface provided with the display 12) is substantially rectangular.
[0069] In addition, the shape and size of the housing 11 are arbitrary. As an example, the housing 11 can be a size that can be carried. In addition, it can also be that the main body device 2 alone or the integrated device with the left controller 3 and the right controller 4 attached to the main body device 2 is a portable device. In addition, the main body device 2 or the integrated device can also be a hand-held device. In addition, the main body device 2 or the integrated device can also be a movable device.
[0070] As Figure 3As shown, the main device 2 includes a display 12 provided on the main surface of the housing 11. The display 12 is used to display images generated by the main device 2. In the present embodiment, it is assumed that the display 12 is a liquid crystal display device (LCD). However, the display 12 can be any type of display device.
[0071] In addition, the main device 2 has a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is a multi-touch input capable method (e.g., capacitive method). However, the touch panel 13 can also be of any type, for example, it can also be a single-touch input capable method (e.g., resistive film method).
[0072] The main device 2 includes a speaker (i.e., Figure 6 the shown speaker 88) inside the housing 11. As Figure 3 shown, speaker holes 11a and 11b are formed on the main surface of the housing 11. Moreover, the output sound of the speaker 88 is output from these speaker holes 11a and 11b respectively.
[0073] In addition, the main device 2 includes a left terminal 17 as a terminal for the main device 2 to communicate with the left controller 3 by wire, and a right terminal 21 for the main device 2 to communicate with the right controller 4 by wire.
[0074] As Figure 3 shown, the main device 2 includes a slot 23. The slot 23 is provided on the upper side surface of the housing 11. The slot 23 has a shape capable of mounting a storage medium of a specified type. The storage medium of the specified type is, for example, a storage medium dedicated to the game system 1 and information processing devices of the same type as it (e.g., a dedicated memory card). The storage medium of the specified type is used, for example, to store data used in the main device 2 (e.g., save data of applications, etc.) and / or programs executed in the main device 2 (e.g., application programs, etc.). In addition, the main device 2 includes a power button 28.
[0075] The main device 2 includes a lower terminal 27. The lower terminal 27 is a terminal for the main device 2 to communicate with a cradle. In the present embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the above integrated device or the main device 2 alone is placed on the cradle, the game system 1 can display the image generated and output by the main device 2 on a fixed monitor. In addition, in the present embodiment, the cradle has a function of charging the above integrated device or the main device 2 alone placed thereon. In addition, the cradle has a function of a hub device (specifically, a USB hub).
[0076] Figure 4 is a six-sided view showing an example of the left controller 3. AsFigure 4 As shown, the left controller 3 has a housing 31. In the present embodiment, the housing 31 has an elongated shape, that is, a shape that is long in the vertical direction (i.e., the Figure 1 and Figure 4 as shown, the y-axis direction). The left controller 3 can also be longitudinally held in a state of being detached from the main body device 2. The housing 31 is designed to have a shape and size that can be held with one hand, particularly the left hand, when held longitudinally. In addition, the left controller 3 can also be held horizontally. When the left controller 3 is held horizontally, it can also be held with both hands.
[0077] The left controller 3 is provided with an analog stick 32. As Figure 4 shown, 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 directions. The user can input a direction corresponding to the tilting direction (and input a magnitude corresponding to the tilting angle) by tilting the analog stick 32. In addition, the left controller 3 may be provided with a cross key or a slide stick capable of performing slide input, etc., instead of the analog stick as the direction input unit. In addition, in the present embodiment, input of pressing the analog stick 32 can be performed.
[0078] 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. And, the left controller 3 is provided with a video recording button 37 and a - (negative) 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. In addition, 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 mounted when mounted on the main body device 2. These operation buttons are used to give instructions corresponding to various programs (e.g., an OS program, an application program) executed by the main body device 2.
[0079] In addition, the left controller 3 is provided with a terminal 42 for the left controller 3 to communicate with the main body device 2 in a wired manner.
[0080] Figure 5 is a six-sided view showing an example of the right controller 4. As Figure 5 shown, the right controller 4 has a housing 51. In the present embodiment, the housing 51 has an elongated shape, that is, a shape that is long in the vertical direction. The right controller 4 can also be longitudinally held in a state of being detached from the main body device 2. The housing 51 is designed to have a shape and size that can be held with one hand, particularly the right hand, when held longitudinally. In addition, the right controller 4 can also be held horizontally. When the right controller 4 is held horizontally, it can also be held with both hands.
[0081] The right controller 4 is also provided with an analog joystick 52 as a direction input unit, similar to the left controller 3. In the present embodiment, the analog joystick 52 has the same structure as the analog joystick 32 of the left controller 3. Additionally, the right controller 4 may be provided with a cross key or a sliding joystick capable of performing sliding input instead of the analog joystick. Also, similar to the left controller 3, the right controller 4 has 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. Further, the right controller 4 has a + (plus) button 57 and a Home button 58. Moreover, the right controller 4 has a first R button 60 and a ZR button 61 on the upper right side of the side surface of the housing 51. Additionally, similar to the left controller 3, the right controller 4 has a second L button 65 and a second R button 66.
[0082] Furthermore, the right controller 4 is provided with a terminal 64 for enabling the right controller 4 to communicate with the main device 2 in a wired manner.
[0083] Figure 6 It is a block diagram showing an example of the internal structure of the main device 2. In addition to the Figure 3 structure shown, the main device 2 also has Figure 6 each of the components 81 to 91, 97, and 98 shown. Some of these components 81 to 91, 97, and 98 may also be mounted as electronic components on an electronic circuit board and housed in the housing 11.
[0084] The main device 2 includes a processor 81. The processor 81 is an information processing unit that executes various information processes performed in the main device 2. For example, it may be composed only of a CPU (Central Processing Unit), or may be composed of an SoC (System-on-a-chip) including multiple 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 (such as a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium installed in the slot 23).
[0085] As an example of internal storage media, the main 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 a memory primarily used to store various data (which may also be programs) stored in the main device 2. The DRAM 85 is a memory used to temporarily store various data used in information processing.
[0086] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23 and reads and writes data from a predetermined type of storage medium (e.g., a dedicated memory card) installed in the slot 23 according to instructions from the processor 81.
[0087] The processor 81 appropriately reads or writes data between the flash memory 84 , the DRAM 85 , and the above-mentioned storage media to execute the above-mentioned information processing.
[0088] The main 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 with an external device via a network (specifically, wireless communication). In the present embodiment, the network communication unit 82 is connected to a wireless LAN and communicates with an external device in a manner that complies with the Wi-Fi standard as a first communication method. In addition, the network communication unit 82 communicates wirelessly with other main devices 2 of the same type through a prescribed communication method as a second communication method (for example, communication based on a custom protocol (Japanese: 独プロトコル) or infrared communication). In addition, the wireless communication based on the above-mentioned second communication method can communicate wirelessly with other main devices 2 configured in a closed local area network, realizing a so-called "local communication" function that can send and receive data by directly communicating with multiple main devices 2.
[0089] The main device 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 wirelessly communicates with the left controller 3 and / or the right controller 4. The communication method between the main device 2 and the left controller 3 and the right controller 4 is arbitrary. In this 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.
[0090] The processor 81 is connected to the above-mentioned 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. In addition, 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. In addition, when the processor 81 communicates with the bracket, it transmits data to the bracket via the lower terminal 27. Thus, in the present embodiment, the main device 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4 respectively. In addition, when the left controller 3 and the right controller 4 are installed on the main device 2 to form an integrated device or the main device 2 alone is installed on the bracket, the main device 2 can output data (such as image data and sound data) to a fixed monitor or the like via the bracket.
[0091] Here, the main device 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). In addition, the main 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 device 2 by using combinations of the left controller 3 and the right controller 4 respectively. As an example, it can be that while the first user inputs to the main device 2 by using the first combination of the left controller 3 and the right controller 4, the second user inputs to the main device 2 by using the second combination of the left controller 3 and the right controller 4.
[0092] In addition, the display 12 is connected to the processor 81. The processor 81 displays the image generated (for example, by executing the above-mentioned information processing) and / or the image acquired from the outside on the display 12.
[0093] The main device 2 includes an encoding / decoding circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The encoding / decoding circuit 87 is connected to the speakers 88, the sound input / output terminal 25, and the processor 81. The encoding / decoding circuit 87 is a circuit that controls the input / output of sound data to / from the speakers 88 and the sound input / output terminal 25.
[0094] The main device 2 includes a power control unit 97 and a storage battery 98. The power control unit 97 is connected to the storage battery 98 and the processor 81. In addition, although not shown, the power control unit 97 is connected to each part of the main device 2 (specifically, each part that receives power supply from the storage battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the power supply from the storage battery 98 to the above-mentioned each part based on an instruction from the processor 81.
[0095] In addition, the storage battery 98 is connected to the lower terminal 27. When an external charging device (e.g., a stand) is connected to the lower terminal 27 and power is supplied to the main body device 2 via the lower terminal 27, the supplied power is charged into the storage battery 98.
[0096] Figure 7 It is a block diagram showing an example of the internal structure of the main body device 2, the left controller 3, and the right controller 4. In addition, regarding the details of the internal structure related to the main body device 2, they have been shown in Figure 6 and are thus omitted in Figure 7 here.
[0097] The left controller 3 includes a communication control unit 101 that communicates with the main body device 2. As shown in Figure 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 through both wired communication via the terminal 42 and wireless communication without passing through the terminal 42. The communication control unit 101 controls the communication method of the left controller 3 with respect to the main body device 2. That is, when the left controller 3 is installed on the main body device 2, the communication control unit 101 communicates with the main body device 2 via the terminal 42. In addition, when the left controller 3 is detached from the main body device 2, wireless communication is performed between the communication control unit 101 and the main body device 2 (specifically, the controller communication unit 83). For example, wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with the Bluetooth (registered trademark) standard.
[0098] In addition, the left controller 3 includes a memory 102 such as a flash memory, for example. The communication control unit 101 is constituted by a microcomputer (also called a microprocessor), for example, and performs various processes by executing the firmware stored in the memory 102.
[0099] The left controller 3 includes each button 103 (specifically, buttons 33 to 39, 43, 44, and 47). In addition, the left controller 3 includes an analog joystick (described as a "joystick" in Figure 7 ) 32. Each button 103 and the analog joystick 32 repeatedly output information related to the operations performed on themselves to the communication control unit 101 at appropriate times.
[0100] The communication control unit 101 obtains information related to an input (specifically, information related to an operation or a detection result of a sensor) from each input unit (specifically, each button 103 and the analog joystick 32). The communication control unit 101 transmits operation data including the obtained information (or information obtained by subjecting the obtained information to prescribed processing) to the main body device 2. In addition, the operation data is repeatedly transmitted at a rate of once every prescribed time. In addition, the intervals at which information related to an input is transmitted to the main body device 2 may be the same or different in each input unit.
[0101] By transmitting the above operation data to the main body device 2, the main body device 2 can learn about the input to the left controller 3. That is, the main body device 2 can determine operations on each button 103 and the analog joystick 32 based on the operation data.
[0102] 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 unit of the left controller 3 (specifically, each unit that receives power supply from the battery).
[0103] As Figure 7 shown, the right controller 4 includes a communication control unit 111 that communicates with the main body device 2. In addition, the right controller 4 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 by both wired communication via the terminal 64 and wireless communication without passing through the terminal 64 (specifically, communication conforming to the Bluetooth (registered trademark) standard), and the right controller 4 controls the communication method with the main body device 2.
[0104] The right controller 4 includes the same input units as those of the left controller 3. Specifically, it includes each button 113 and the analog joystick 52. Regarding these input units, they have the same functions as the input units of the left controller 3 and operate in the same manner.
[0105] The right controller 4 includes a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3 and operates in the same manner.
[0106] [2. Outline of Processing in the Game System]
[0107] Next, with reference to Figures 8 - 15To explain the outline of the processing executed in the game system 1. 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 that is a three-dimensional virtual space, and causes the display device to display the game image. Further, in the present embodiment, the display device for displaying the game image may be the above-described display 12 or a fixed monitor.
[0108] [2-1. Voxel]
[0109] In the present embodiment, for several objects in the game space, their shapes are defined by voxel data. Here, a voxel refers to a rectangular parallelepiped (more specifically, cubic) region arranged in a grid pattern in the game space, and voxel data refers to data set for each voxel. Hereinafter, an object whose shape is defined by voxel data is referred to as a "voxel object". In the present embodiment, the game system 1 stores voxel data for each of a plurality of voxels set in the game space as data for generating voxel objects in the game space.
[0110] Figure 8 FIG. is a diagram showing an example of a terrain object as a voxel object. As Figure 8 shown, in the present embodiment, the shape of a terrain object representing terrain such as the ground is defined by voxel data (that is, it is a voxel object). Figure 8 Each cube shown represents a terrain object. Further, in Figure 8 , the portions that become the edges of the terrain object are shown by thick lines, but these thick lines are marked for the purpose of making the drawings easier to view, and in fact, it is not necessary to thicken the edges of the terrain object.
[0111] In addition, Figure 8 the terrain object shown, for example, is generated according to the following rule: "When the parameter included in the voxel data set for a voxel is greater than a specified value, a cube is arranged at the position of the voxel, and when it is less than or equal to the specified value, nothing is arranged at the position of the voxel". Figure 8 The terrain object shown is shown for the purpose of exemplifying the relationship between voxels and voxel objects in an easy-to-understand manner. In the present embodiment, actually, for example, as the terrain object shown in Figure 14 described later, according to a rule that forms a more complex shape than the length of one side of a voxel, (based on voxel data) voxel objects are generated. Further, the rule for determining the shape of a voxel object based on voxel data is arbitrary. In other embodiments, the game system 1 may generate voxel objects as shown in Figure 8 or voxel objects as shown in Figure 15 based on object data.
[0112] For a voxel object, its shape can be changed by changing the voxel data of each voxel. Figure 9 and Figure 10 is a diagram showing an example of the situation before and after a part of the terrain object shown in Figure 8 is deleted. That is, when the slanted part in the terrain object shown in Figure 9 is damaged, the terrain object changes to the shape shown in Figure 10 At this time, the game system 1 rewrites the voxel data of the above-mentioned slanted part to represent the absence of the terrain object, thereby being able to easily eliminate the terrain object. In addition, in the game system 1, when adding a terrain object, the voxel data of each voxel is also changed in the same way as when eliminating the terrain object, thereby being able to easily change the shape of the terrain object.
[0113] 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 terrain object in the game is damaged for some reason (for example, the player character strikes the terrain object) and as a result the shape of the terrain object changes, the game system 1 can freely change the shape of the terrain object by changing the voxel data used in the generation of the terrain object without directly changing the data representing the external shape of the terrain object (that is, the mesh described later).
[0114] Figure 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 each voxel in the game space in association with voxel data. The voxel data represents the presence or absence of a voxel object in the voxel corresponding to the voxel data.
[0115] As Figure 11 shown, the voxel data includes density data. The density data is data of density, which represents the degree to which an object is included in the region defined by each voxel. Details will be described later, but the position and shape of the surface of the voxel object (that is, the mesh described later) are determined based on the above density. That is, in the present embodiment, the above density is also data used to create a mesh for defining the surface of the voxel object.
[0116] In this embodiment, the density can take integer values in the range from a lower limit value (e.g., 0) to an upper limit value (e.g., 255). In this embodiment, in the game system 1, when the value of the density set for a voxel is high, the proportion of the volume occupied by the voxel object in the voxel is large, and when the value of the density is low, the above-mentioned proportion in the voxel is small. For example, when the density is 0, there is no object in the voxel, when the density is 255, the voxel is entirely occupied by the object, and when the density is a value in between, the object can occupy a proportion corresponding to the value in the voxel. Moreover, based on the density, the shape of the voxel grid, that is, the shape of the voxel object, is determined. However, the shape of the voxel object generated based on the above density does not need to be a volume that is strictly consistent with the proportion indicated by the density. For example, in the method of generating a voxel object such as Figure 8 and the method of generating a voxel object such as Figure 15 , even based on the same density, the volumes may sometimes be different.
[0117] In other embodiments, the density can also represent either the state where the voxel object occupies the entire area within the voxel or the state where the area within the voxel does not contain the voxel object. For example, the density data can also be data that can only take either 0 or 1.
[0118] As Figure 11 shown, the voxel data includes material data. The material data represents the material (in other words, substance) of the voxel object generated based on the voxel data. Here, in this embodiment, materials such as sand, rock, and soil are set in the voxel object, for example. That is, in this embodiment, multiple types of materials are prepared as the materials that can be set for the voxel object, and any of the multiple types of materials is set for the voxel object.
[0119] As Figure 11 shown, in this embodiment, the material data represents the identification information of the material (referred to as "material ID"). In addition, in this embodiment, the game system 1 stores material information representing the properties and textures of the materials for each material prepared in the game. In this embodiment, the material information associates the material ID, the properties of the material, and the appearance (specifically, the texture) of the material. 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") (refer to Figure 11 ).
[0120] Figure 12 is a diagram showing an example of the property information representing the properties of the material. As Figure 12As shown, the game system 1 stores property information obtained by associating the above-mentioned property IDs with information representing the properties indicated by the property IDs. The properties of the material refer to the properties that the voxel object with the material set has in the game. For example, they are Figure 12 information such as the weight and slipperiness shown. In addition, the specific content of the property is arbitrary. For example, as the property of the material, the following information can also be set.
[0121] · Temperature
[0122] · Fragility (for example, the number of times until the voxel object is destroyed when an impact is applied to the voxel object)
[0123] · Whether the voxel object adheres to other objects
[0124] · The amount of the player character's physical strength restored when the player character destroys the voxel object
[0125] · The amount of in-game currency obtained by the player character when the player character destroys the voxel object
[0126] In addition, the specific content of the property set for the material is arbitrary. In other embodiments, as the information representing the properties of the material, information different from the above can also be set.
[0127] Figure 13 is a diagram showing an example of texture information representing the texture of the material. As Figure 13 shown, the game system 1 stores texture information obtained by associating the above-mentioned texture ID with the texture indicated by the texture ID.
[0128] In addition, as data for specifying the appearance of the voxel object, in addition to the texture information, any information related to color and / or pattern can also be set. For example, as information related to the appearance of the voxel object, the pattern of cracks can also be set. By using such a pattern, the game system 1 can generate an image of a voxel object that shows an appearance with cracks added.
[0129] As described above, in this embodiment, the material data specifies the properties of the voxel object and the texture for the voxel object through the material ID. For example, when the material ID shown in 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 (refer to the Figure 11 shown arrow). In addition, 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 (refer toFigure 11 the arrow shown).
[0130] As described above, in the present embodiment, the game system 1 separately manages the properties and textures of materials. Therefore, in the present embodiment, it is possible to easily set multiple types of materials with the same properties but different appearances (i.e., textures), and multiple types of materials with different properties but the same appearance.
[0131] In addition, the material data can be any data that can be used to determine the properties and / or textures of the material. For example, in other embodiments, the material data can also be data representing the above property ID and texture ID, and can also have a data structure that actually contains data representing the properties and textures of the material.
[0132] In addition, the material data is information related to the material, and can also represent other information different from the above properties and textures. For example, the material data can also include effect data representing the effects that occur when the effect occurrence conditions set for the voxel object are satisfied (for example, a part of the voxel object is destroyed, or a character steps on the voxel object). In addition, the effect data can also be data representing an effect image (for example, an effect image showing the destruction of the voxel object), or can also be data representing an effect sound (the sound of footsteps when a character walks on the voxel object).
[0133] As Figure 11 shown, the voxel data includes state data representing the state of the voxel object. The specific content of the state data is arbitrary. For example, the state data can be data representing whether the voxel object is wet, or can be data representing the amount of damage applied to the voxel object. The content of the state data can sometimes be updated in the game.
[0134] [2-2. Mesh]
[0135] In the present embodiment, the surface of the voxel object is represented by a mesh. A mesh refers to a set of multiple 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 set for each voxel in the game space. Hereinafter, an example of generating a mesh based on voxel data will be described.
[0136] Figure 14 is a diagram showing an example of a method for generating a mesh. In addition, in Figure 14 , for the purpose of making the drawings easy to view and the description easy to understand, the voxels and the mesh are two-dimensionally represented, but in fact, a three-dimensional mesh is generated based on the voxels in the three-dimensional space.
[0137] As described above, in the present embodiment, the density set for the voxels is within the range of 0 to 255. Further, in the present embodiment, the voxels having a density equal to or higher than the reference value are regarded as being inside the object, and the voxels having a density lower than the reference value are regarded as being outside the object. It is not necessary to define only the voxels having a density of 0 as being outside the object (i.e., reference value = 1), and this reference value is set to 128, for example. In Figure 14 In the example shown, the density is set to 0 in the voxel 201 and other voxels on the outside, the density of the voxel 202 is set to 100 which is lower than the reference value, and the densities in the voxels 203 and 204 are set to 150 and 200 which are higher than the reference value. In the present embodiment, the game system 1 generates vertices between the voxels having a density equal to or higher than the reference value and the voxels having a density lower than the reference value. Specifically, for each region of 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 vertices. That is, vertices are generated in a region that straddles both voxels having a density equal to or higher than the reference value and voxels having a density lower than the reference value. And when passing between adjacent vertices (the boundaries of the above-described regions each containing a vertex) through between the voxels having a density equal to or higher than the reference value and the voxels having a density lower than the reference value, these vertices are connected, thereby generating a polygon mesh. The densities of adjacent voxels are compared for each of the X, Y, and Z axes, and the coordinates of the vertices are determined by interpolation based on the density difference. At this time, it is also possible to perform coordinate calculation based on normal information, but it may also be that normal information is held in advance for at least some of the voxels, and in the case where normal information is not held, it may also be that the normal information is also calculated based on the densities of adjacent voxels. Further, in Figure 14 , since the density of the voxel 202 is lower than the reference value, the voxel 202 is regarded as being outside the object in the determination of the presence or absence of vertices, but the value of the density of the voxel 202 itself is used for the coordinate calculation of the generated vertices. Assuming that the reference value is set to a value lower than the density of the voxel 202, as a result, in Figure 14 , vertices are further increased at the upper right side and the upper left side of the voxel 202.
[0138] By generating a polygon mesh as described above, it is possible to generate a shape of a volume that to some extent reflects the density of each voxel. However, depending on the relationship with adjacent voxels, there are cases where a voxel having a density of 0 contains a part of the region inside the object, or a voxel having a density of 255 contains a part of the region outside the object. Further, in the present embodiment, the voxels having a density lower than the reference value are treated as being outside the object, and thus, compared with the case of treating them as being inside the object, the number of vertices is reduced, and accordingly the volume is also reduced. That is, it is not necessary to calculate the polygon mesh in such a way that it becomes a volume that strictly corresponds to the density value.
[0139] Figure 15This is a diagram showing an example of a game image including terrain objects. In the present embodiment, by generating a mesh as described above, the voxel object can be made into a shape with unevenness that is more complex than the length of one side of a voxel, for example.
[0140] In addition, the method of generating a mesh based on voxel data is arbitrary. For example, in other embodiments, a mesh may also be generated in such a way that a cube is arranged for a voxel when the density of the voxel data is greater than a specified value (refer to Figure 8 ).
[0141] The game system 1 determines the appearance (i.e., color and / or pattern) of each face of the mesh generated as described above according to the material determined by the above voxel data. Specifically, the game system 1 determines the texture for drawing each face of the mesh based on the above voxel data, and maps the determined texture to each face, thereby generating an image of the voxel object. In addition, the texture mapped to each face of the mesh is determined based on the voxel data of the voxel (referred to as an object voxel) used to generate the face in the voxel where the voxel object exists. In addition, although it also depends on the method of generating the mesh, the object voxel is, for example, one or more voxels arranged around the face. That is, the texture mapped to the face of the mesh is determined as a texture corresponding to the material set for one or more voxels arranged around the face.
[0142] In addition, in other embodiments, multiple types (for example, two types) of material data may be included in one voxel data. At this time, the voxel data includes ratio data related to the multiple types of material data. The ratio data is data for determining the texture for the voxel object, and represents the ratio of the influence of each material (specifically, the texture corresponding to the material) shown by the multiple types of material data on the appearance (specifically, color and / or pattern) of the voxel object. In addition, 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 above object voxel. For example, when multiple types of materials are set for the object voxel corresponding to one face, either the texture corresponding to the material with the greatest influence degree (one type) may be used considering the above ratio, or each texture corresponding to the multiple types of materials may be used considering the above ratio.
[0143] In addition, in other embodiments, there may be both voxel objects using voxel data including one type of material data and voxel objects using voxel data including two types of material data.
[0144] (Summary of game processing)
[0145] Next, the destruction of the voxel object in the game of this embodiment will be described. Figure 16 This is an image obtained by observing the game space in the game of this embodiment from a virtual camera, and is a diagram showing an example of the game image displayed on the display device. Figure 17 This is a diagram showing an example of the situation where a player character performs a destruction action.
[0146] As Figure 16 shown, a player character PC is arranged in the game space. The player character PC moves within the game space according to the player's operations (for example, operations on the analog stick 32). In addition, the player character PC performs various actions such as boxing and jumping within the game space according to the player's operations (for example, operations on the A button 53 and the B button 54). The player character PC is not a voxel object, but a 3D object whose shape is defined in advance by polygons.
[0147] When the game starts, within the game space, a fixed voxel space defined by the Xs - Ys - Zs coordinate system is set as the voxel space for representing the venue. It is assumed that the axial directions of the Xs - Ys - Zs coordinate system are parallel to the XYZ coordinate system of the game space. That is, the Ys axis is the axis facing upward in the game space, and the Xs axis and the Zs axis are axes perpendicular to the Ys axis. Sometimes, the voxel space defined by the Xs - Ys - Zs coordinate system will be referred to as the "venue voxel space" hereinafter. The positions of the respective objects existing in the game space are represented by the coordinate values of the Xs - Ys - Zs coordinate system. In addition, here, it is assumed that the orientation of the Xs - Ys - Zs coordinate system for representing the venue voxel space is the same as that of the XYZ coordinate system for representing the game space, but they may also be different.
[0148] In the venue voxel space, terrain objects are set as voxel objects. For example, as the terrain objects, a terrain object 210 representing the ground and a terrain object 220 representing a rocky mountain are set. For example, by setting the voxel data of each voxel located below in the venue voxel space with the material data representing rock, the terrain object 210 representing the ground composed of rock is formed. In addition, by setting the voxel data of a plurality of voxels located above the ground in the venue voxel space with the material data representing rock, the terrain object 220 representing a rocky mountain rising from the ground is formed.
[0149] The terrain object 210 representing the ground and the terrain object 220 representing the rocky mountain may be destroyed by the destruction action of the player character PC. By updating the voxel data of the voxels in the venue voxel space, the terrain objects 210 and 220 are destroyed.
[0150] For example, as Figure 17As shown, when the player character PC performs a punching action as a destruction action and the punch hits the terrain object 220, a destruction range is set based on the position where the punch hits (the position of the player character PC). Moreover, the terrain object 220 included in the destruction range is destroyed and eliminated. Specifically, by performing a destruction process of updating voxel data on the voxels included in the destruction range, the terrain object 220 included in the destruction range is eliminated.
[0151] The destruction range (an example of the elimination range) is a range set for the object hit by the destruction action of the player character PC, and is a range set based on the position where the destruction action hits. For example, the destruction range is a range obtained by removing the range below a specified plane set based on the position of the player character PC from a specified shape. The specified shape is a shape stored in advance and is a shape composed of curved surfaces. In the present embodiment, there are a plurality of specified shapes, which are determined according to the direction of the destruction action. For example, when the player character PC performs a forward destruction action, the specified shape is the first shape. The first shape can be, for example, a sphere, an ellipsoid, or a shape obtained by deforming the ellipsoid asymmetrically left and right (or up and down). For example, it can also be that the first shape when the player character PC performs a left punch is an ellipsoid that bulges on the left side and is asymmetric left and right, and the first shape when the player character PC performs a right punch is an ellipsoid that bulges on the right side and is asymmetric left and right.
[0152] In the present embodiment, when a forward punch of the player character PC hits an object, a first shape is set in front of the player character PC, and the destruction range is set by correcting the first shape. Specifically, a shape obtained by removing the range below a specified plane set based on the position of the player character PC from the first shape is set as the destruction range.
[0153] Figure 18 FIG. is an example showing the destruction range when the first shape is not corrected and the terrain object after destruction with this destruction range. Figure 19 FIG. is an example showing the destruction range when the first shape is corrected and the terrain object after destruction with this destruction range.
[0154] When a forward punch of the player character PC hits the terrain object 220, a destruction range of the first shape is set in front of the player character PC. For example, the destruction range of the first shape is set with the position in the field voxel space corresponding to the position of the player character PC's fist (or near the fist) in the game space as the center. As Figure 18As shown, without correcting the destruction range, the destruction range includes a part of the terrain object 220 representing the rocky mountain hit by the punch and a part of the terrain object 210 representing the ground. When the voxels included in the destruction range are destructed, the terrain objects included in the destruction range are eliminated. In this case, the terrain after destruction becomes a shape in which a part of the terrain object 220 representing the rocky mountain and a part of the terrain object 210 representing the ground are cut off. In this way, without correcting the first shape, the terrain after destruction becomes a concave shape around the player character PC, and the ground after destruction becomes uneven. When the player character PC advances while destructing the terrain object 220 in front, if the ground after destruction becomes uneven, it may be difficult for the player character PC to move.
[0155] Therefore, in the present embodiment, the first shape is corrected so that the ground after destruction becomes a flat surface. Specifically, as Figure 19 shown, when a punch in the forward direction of the player character PC hits the terrain object 220, a specified plane (flat plane) parallel to the ground is set at a position having the same height as the ground on which the player character PC is located. Moreover, the shape obtained by removing the portion below the specified plane from the first shape is set as the destruction range. That is, when the first shape set based on the position of the player character PC includes the specified plane having the same height as the ground, the shape obtained by removing the lower portion of the specified plane from the first shape is set as the destruction range so that the ground after destruction is not uneven. In Figure 19 the example shown, the range surrounded by the dashed line is set as the destruction range.
[0156] When the destruction range is set, the voxels included in the destruction range are destructed. For example, for the voxels completely included in the destruction range, the voxel data is rewritten to a value indicating the absence of an object. Specifically, for the voxels completely included in the destruction range, the density is set to "0". In addition, for the voxels partially included in the destruction range, the density of the voxels is set to a range of, for example, 128 to 254 (it may also be 1 to 255).
[0157] When the voxels in the destruction range set (corrected) in this way are destructed, regarding the terrain after destruction, a part of the terrain object 220 representing the rocky mountain is cut off to become a curved surface, and on the other hand, the ground becomes a flat surface. In this way, the ground after destruction can be maintained as a flat surface, so that the player character PC can easily move on the ground after destruction.
[0158] Here, when the ground on which the player character PC is in contact is inclined with respect to the horizontal plane when a punch in the forward direction of the player character PC hits the terrain object 220, the specified plane is also inclined with respect to the horizontal plane in the same manner as the ground. Figure 20 It is a diagram showing an example of a destruction range set when the player character PC makes a punch in the forward direction when the ground on which the player character PC is in contact is inclined.
[0159] As Figure 20 shown, it is assumed that when the ground on which the player character PC is in contact is inclined with respect to the horizontal plane (XZ plane), the player character PC makes a punch in the forward direction and the punch hits the terrain object 220. In this case, a specified shape is set based on the position where the punch hits, and a specified plane having an inclination corresponding to the inclination of the ground on which the player character PC is in contact is set. Specifically, the specified shape is set at a position diagonally above the player character PC. For example, the center of the specified shape may be set at a position in the diagonally upward direction along the ground from the position of the player character PC. The specified shape set at this time may also be a shape obtained by inclining the first shape according to the inclination of the ground, which is the same shape as the above-mentioned first shape. In addition, the specified shape may also be a shape corresponding to the inclination of the ground, which is a shape different from the above-mentioned first shape.
[0160] In addition, the specified plane is inclined in the same manner as the inclination of the ground on which the player character PC lands. For example, the game system 1 calculates the inclination of the ground on which the player character PC lands and sets a specified plane having that inclination. In addition, the specified plane is set to pass through a position (landing point) on the ground on which the player character PC lands. Moreover, the range obtained by removing the portion below the specified plane inclined according to the inclination of the ground from the specified shape is set as the destruction range. Therefore, the ground around the player character PC after destruction is inclined in the same manner as other ground. Thus, when the player character PC advances while making a punch in the forward direction on an inclined plane, the inclined plane can be maintained and the terrain can be destroyed.
[0161] In addition, the method of calculating the inclination of the ground (the inclination of the specified plane) is arbitrary. For example, it may be to calculate the inclination of the ground based on the normal vector of the reference points within a specified range including the position (landing point) on the ground on which the player character PC is in contact.
[0162] Figure 21 It is a diagram showing an example of a method of calculating the inclination of the ground on which the player character PC is in contact. As Figure 21As shown, alternatively, when a punch in the forward direction of the player character PC hits the terrain object 220, the inclination of the ground is calculated based on reference points within a specified range including the landing point of the player character PC, and a specified plane is set according to the inclination of the ground. For example, the average of the normal vectors at multiple reference points is calculated, and the plane having this average vector as the normal vector is calculated as the specified plane. However, alternatively, based on multiple normal vectors, it is determined whether the surrounding shape is flat to a certain extent or has unevenness. In the case where it is determined that the surrounding has unevenness, instead of setting the plane based on the average of the normal vectors as the specified plane, the horizontal plane passing through the coordinates where the player character PC lands may be set as the specified plane. Additionally, the specified plane is set to pass through points within this specified range (e.g., the landing point).
[0163] Next, a case where the player character PC punches in the forward direction while in the air and this punch hits the terrain object 220 will be described.
[0164] Figure 22 It is a diagram showing an example of correcting the destruction range in the case where the player character PC punches in the forward direction while in the air and this punch hits the terrain object 220. Figure 23 It is a diagram showing an example of not correcting the destruction range in the case where the player character PC punches in the forward direction while in the air and this punch hits the terrain object 220.
[0165] The player character PC sometimes jumps in the game space according to the player's operation and thus temporarily leaves the ground. The player character PC also punches according to the player's operation input while in the air due to jumping. As Figure 22 shown, in the case where a punch in the forward direction of the player character PC hits the terrain object 220 while the player character PC is in the air, the specified plane is calculated based on the ground directly below the player character PC. For example, in the case where the punch of the player character PC hits, the normal vector of the specified plane is calculated based on reference points within the above-mentioned specified range including the position on the ground directly below the player character PC at that time point. The specified plane having the calculated normal vector and passing through points within the specified range (e.g., the intersection of the straight line extending vertically downward from the position of the player character PC and the ground) is set. Moreover, as Figure 22 shown, in the case where a part of the first shape set based on the position where the punch of the player character PC hits is located below the specified plane, the shape obtained by removing the part below the specified plane from the first shape is set as the corrected destruction range. That is, in the case where the specified plane is included within the first shape set based on the position where the punch of the player character PC hits, the destruction range is corrected.
[0166] Accordingly, even when the player character PC is in the air, the destruction range can be corrected, so that the player character PC can easily move on the ground after destruction when landing.
[0167] On the other hand, as Figure 23 shown, when all of the first shape set based on the position hit by the punch of the player character PC is located above the specified plane, that is, when the specified plane is not included in the first shape, the destruction range is not corrected, and the entire first shape is set as the destruction range.
[0168] Accordingly, when the specified plane is not included in the first shape, the terrain object can be destroyed in the first shape, so that the shape after destruction can be set as a natural shape.
[0169] Next, the correction of the destruction range when the player character PC makes a punch in the obliquely upward direction will be described.
[0170] Figure 24 is a diagram comparing the destruction ranges before and after correction, and is a diagram showing an example of the destruction range when the player character PC makes a punch in the obliquely upward direction.
[0171] When the player, for example, inputs the upward direction (obliquely upward direction) of the analog stick 32 while performing an operation for punching (for example, pressing the A button 53), the player character PC makes a punch in the obliquely upward direction. As Figure 24 shown, when the punch in the obliquely upward direction of the player character PC hits the terrain object 220, a specified shape is set in the obliquely upward direction of the player character PC. For example, the center of the specified shape is set at a position corresponding to the position of the fist of the player character PC (the position in the obliquely upward direction of the player character PC) in the field voxel space in the game space. The specified shape set when the punch in the obliquely upward direction hits the terrain object 220 is a second shape different from the first shape set when the punch in the forward direction hits the terrain object 2 twenty. For example, the second shape set when the punch in the obliquely upward direction hits the terrain object 220 can be a bilaterally symmetric ellipsoid or a sphere. In addition, the specified shape set when the punch in the obliquely upward direction hits the terrain object 220 can also be the same as the first shape set when the punch in the forward direction hits the terrain object 220.
[0172] As Figure 24As shown in the figure on the right, in the case of performing an uppercut punch, the specified plane is set to be inclined in the upper diagonal direction. For example, the specified plane is set to have a specified angle with respect to the horizontal plane. However, when the player character PC performs an uppercut punch and the ground where the player character PC is located is more inclined than the above-specified angle, the specified plane can also be set to be inclined corresponding to the inclination of the ground.
[0173] [[ID=..]]Figure 25 This is a figure comparing the case of not performing correction of the destruction range with the case of performing correction, and is a figure showing an example of the terrain after destruction when the player character PC continuously performs uppercut punches.
[0174] As Figure 25 As shown in the left figure of, when not performing correction of the destruction range and the player character PC advances while continuously performing uppercut punches, the ground after destruction becomes uneven. On the other hand, as Figure 25 As shown in the right figure of, in the case of performing correction of the destruction range, the ground after destruction becomes an inclined plane without unevenness.
[0175] In this way, in the case of performing an uppercut punch, the second shape is set diagonally above the player character PC, and the specified plane is set in front of the player character PC and set high. Moreover, the shape obtained by removing the portion below the specified plane from the second shape is set as the destruction range. Thus, when the player character PC performs an uppercut punch, the ground after destruction becomes an inclined plane rising in front of the player character PC, and the ground after destruction can be formed in a manner along the destruction direction and movement direction of the player character PC.
[0176] Next, the destruction range when the player character PC performs a downward punch will be described.
[0177] Figure 26 This is a figure showing an example of the destruction range set when the player character PC performs a downward punch. Figure 27 This is a figure showing an example of the terrain after destroying the terrain object with the set destruction range when the player character PC performs a downward punch.
[0178] When the player performs an operation for punching while inputting the downward direction of the analog joystick 32, for example, the player character PC performs a downward punch. As Figure 26As shown, when the player character PC punches downward, the punch hits the terrain object 210 of the performance ground existing below the player character PC. In this case, the destruction range of the third shape is set based on the position where the punch hits. The third shape is a shape different from the above-mentioned first shape and second shape, for example, a cylindrical shape. The bottom surface of the third shape is a plane. The set third shape is not corrected as described above. When the voxels included in the destruction range of the set third shape are destructed, the voxel objects within the destruction range are eliminated. Thus, as Figure 27 shown, a hole of the third shape is formed on the ground. The bottom of the hole is a plane. When the player character PC punches downward further at the bottom of the hole, a hole of the third shape is further formed.
[0179] In this way, the third shape with a plane bottom surface is predetermined, and in the case of punching downward, this third shape is set as the destruction range. Thus, even without the above-mentioned correction, the shape of the ground after destruction can be a plane, enabling the player character PC to move easily on the ground after destruction.
[0180] In addition, in the present embodiment, it is assumed that the direction of the destruction action of the player character PC is any of the forward direction (a direction parallel to the horizontal plane), the obliquely upward direction, and the downward direction (a direction perpendicular to the horizontal plane). However, in other embodiments, the direction of the destruction action of the player character PC is not limited to these directions. For example, the player character PC can also punch in the obliquely downward direction. In this case, when the punch in the obliquely downward direction hits the terrain object, the first shape or the second shape can also be set in the obliquely downward direction of the player character PC. The specified surface is an inclined surface obtained by inclining a plane and is set to descend in the forward direction of the player character PC. Moreover, it can also be that the shape obtained by removing the range below the specified surface from the first shape or the second shape is set as the destruction range.
[0181] In addition, in the present embodiment, in the game space, in addition to arranging the above-mentioned terrain objects defined by the voxels in the venue voxel space, other voxel objects are also arranged. Figure 28 is a diagram showing an example of voxel objects other than the terrain objects 210 and 220 arranged in the game space.
[0182] As Figure 28 shown, an enemy object EC is arranged in the game space. The enemy object EC is a character automatically controlled by the processor 81, moves in the game space, changes its posture, or attacks the player character PC.
[0183] The enemy object EC is a voxel object, and the shape of the enemy object EC is defined by the voxel data of a plurality of voxels in the voxel space VLa. The voxel space VLa is a voxel space disposed in the game space and different from the field voxel space, and is defined by the Xa-Ya-Za coordinate system. Density values indicating the existence of an object and material data representing the enemy object are set for the voxel data of the plurality of voxels in the voxel space VLa. Thereby, the enemy object EC is formed. The enemy object EC is displayed by generating and rendering a polygon mesh based on the voxel data of each voxel as described above. In addition, it may be that the body of the enemy object EC is a voxel object, but the hands and feet are not voxel objects, but 3D objects whose shapes are defined in advance by polygons.
[0184] In addition, in Figure 28 the voxel space VLa is shown by dotted lines for the sake of explanation, but in fact, the dotted lines representing the voxel space VLa are not displayed in the game.
[0185] One voxel in the field voxel space is a region of a cube with a specified side length. Here, in the game space, a length is defined, and for example, "m (meter)" is used as the unit of length. For example, the height of the player character PC in the game space can also be defined as 2m. The length of one side of one voxel in the field voxel space is, for example, "1m". On the other hand, the length of one side of one voxel in the voxel space VLa is, for example, "0.5m".
[0186] When the player character PC performs a destruction action on the enemy object EC, the destruction range is set by the same method as described above. For example, when a punch in the forward direction of the player character PC hits the enemy object EC, the first shape is set at the position corresponding to the hit position (the position of the player character PC) in the voxel space VLa within the game space. The size of the first shape set here within the game space is smaller than the size of the first shape set when a punch in the forward direction of the player character PC hits the terrain object. For example, when a punch in the forward direction of the player character PC hits the terrain object, a first shape with a first size is set, and when a punch in the forward direction of the player character PC hits the enemy object EC, a first shape with a second size is set. When a punch in the forward direction of the player character PC hits the enemy object EC, the destruction range is corrected in the same way as when it hits the terrain object. Specifically, a specified plane is set as described above, and the shape obtained by removing the part below the specified plane from the first shape is set as the destruction range. When a punch in the forward direction hits the enemy object EC, the destruction range is relatively small, so the enemy object EC can be gradually destroyed in a small range. On the other hand, when a punch in the forward direction hits the terrain object 220, the destruction range is relatively large, so the terrain object 220 can be massively destroyed with one destruction action.
[0187] In addition, in addition to the enemy object EC, other voxel objects can also be arranged in the game space. In this case, a voxel space different from the field voxel space can also be set. For example, it can be that the terrain object included in the destruction range set as described above is destroyed, and a part of the terrain object is separated due to this destruction, thereby generating a fragment object as a fragment of the terrain object. In this case, a voxel space different from the field voxel space is newly generated. The fragment object can also be moved or its posture changed within the game space by changing the position and posture of the newly generated voxel space in the game space. When performing, for example, a forward destruction action on such a voxel object, the first shape is set within the voxel space corresponding to the voxel object, and a specified plane is set. Moreover, the shape obtained by removing the part below the specified plane from the first shape is set as the destruction range.
[0188] In addition, in the present embodiment, when a destruction action hits a voxel object, it is not always necessary to perform a destruction process (update of density) on the voxels included in the (corrected) destruction range set as described above. The density of the voxels included in the destruction range is updated according to the "vulnerability" of the material (also referred to as substance or raw material) in the material data set for the voxels. Specifically, depending on the "hardness of the side performing the destruction", the "hardness of the side being destroyed", and the "amount of damage" to the voxel, the density of the voxels included in the destruction range may or may not be updated.
[0189] More specifically, the "hardness of the side performing the destruction" is determined in the range of 1 to 5 according to the type of the destruction action. In addition, the "hardness of the side being destroyed" is a value corresponding to the material shown in the voxel data and is determined, for example, in the range of 1 to 5. When the "hardness of the side performing the destruction" and the "hardness of the side being destroyed" satisfy a specified condition, the amount of damage to the voxels included in the (corrected) destruction range set as described above is reduced. When the amount of damage to the voxel reaches a predetermined durability value, the density of the voxel is updated. That is, the density of the voxels in the destruction range set as described above is updated to a value indicating the absence of the object. Thereby, the voxel object in the destruction range is destroyed. On the other hand, when the amount of damage to the voxels included in the (corrected) destruction range set as described above does not reach the durability value, the density of the voxel is not updated. That is, the voxel object is not destroyed. In this case, when the amount of damage to the voxels in the set (corrected) destruction range reaches the durability value due to multiple destruction actions, the density of the voxels in this destruction range is updated and the voxel object is destroyed.
[0190] On the other hand, when the "hardness of the side performing the destruction" and the "hardness of the side being destroyed" satisfy other conditions, the amount of damage to the voxels in the set (corrected) destruction range is not reduced, and the density of the voxels in this destruction range is updated. In this case, the density of the voxels in this destruction range is updated due to one destruction action, and the voxel object is destroyed.
[0191] As described above, in the present embodiment, when the player character PC punches forward while on the ground and the punch hits a terrain object, a range having a shape obtained by removing a portion below a specified plane from a first shape, which is a shape predetermined according to the destruction action of the player character PC, is set as the destruction range. The specified plane is a plane set based on the position of the player character PC. Specifically, the specified plane is a plane parallel to the ground with which the player character PC is in contact and having the same height as the ground. By setting the destruction range in this way and destroying (eliminating) the voxel objects within the destruction range, the ground after destruction can be made into a flat surface, thereby making it easier for the player character PC to move.
[0192] In addition, when the player character PC punches forward while in the air and the punch hits a terrain object, the specified plane is set based on the ground located below (specifically, directly below) the player character PC. Moreover, when a part of the first shape is located below the specified plane, a shape obtained by removing the portion below the specified plane from the first shape is set as the destruction range. Thereby, even when the player character PC destroys a terrain object while in the air, the ground after destruction can be made into a flat surface, making it easier for the player character PC to move. On the other hand, when the entire first shape is located above the specified plane, the first shape is set as the destruction range. Thereby, when it has no impact on the movement of the player character PC after destruction, the terrain object can be destroyed within the range of the first shape, for example, the terrain after destruction can be made into a natural shape.
[0193] In addition, when the player character PC's punch in an obliquely upward direction hits a terrain object while the player character PC is on the ground, a specified plane inclined with respect to the horizontal plane is set. Specifically, the specified plane becomes an inclined plane that rises as it goes forward towards the player character PC. Moreover, a shape obtained by removing the portion below the specified plane from the specified shape is set as the destruction range. Thereby, when the player character PC punches in an obliquely upward direction, the ground after destruction can be made into an inclined plane without unevenness, and the terrain object can be destroyed in a manner along the direction of the destruction action and the movement direction of the player character PC.
[0194] In addition, when the player character PC's destruction action hits a terrain object while the ground on which the player character PC is located is inclined, the specified plane is also inclined in the same way as the ground. Thereby, the ground around the player character PC after destruction can be made into an inclined plane in the same way as the other parts of the ground, and the terrain object can be destroyed in a manner along the ground on which the player character PC is located.
[0195] In addition, in the present embodiment, when performing a destruction operation on an object (e.g., enemy object EC) formed by voxels in a second voxel space (e.g., voxel space VLa) different from the site voxel space, which is a voxel object different from the terrain object defined in the site voxel space, the destruction range is also set by the same method as described above.
[0196] When performing a destruction operation on the enemy object EC, the destruction range is set to be smaller than the destruction range when performing a destruction operation on the terrain object. Thus, the enemy object EC can be gradually destroyed in a small range, while the terrain object can be destroyed on a large scale.
[0197] In addition, the size of one voxel in the voxel space VLa for forming the enemy object EC is smaller than the size of one voxel in the site voxel space for forming the terrain object. Thus, the enemy object EC can be finely represented and finely destroyed.
[0198] [3. Specific Examples of Processing in the Game System]
[0199] Next, with reference to Figures 29 - 31 a specific example of the information processing in the game system 1 will be described.
[0200] Figure 29 is a diagram showing an example of various data used in the information processing of the game system 1. As Figure 29 shown, the game system 1 stores a game program, game space data, site voxel space data 310, second voxel space data 320, shape data, player character data, and grid data.
[0201] The game program is a program for executing the game processing in the present embodiment (specifically, Figure 30 the game processing shown). The game program is pre-stored in a storage medium or flash memory 84 installed in the slot 23 and is read into the DRAM 85 when the game is executed.
[0202] The game space data is data for defining the game space and includes data representing the above XYZ coordinate system.
[0203] The site voxel space data 310 is data related to the entire site voxel space. As Figure 29As shown, the site voxel space data 310 includes dimension data 311. The dimension data 311 represents the length of one side of each voxel in the site voxel space. For example, the length of one side of each voxel in the site voxel space is 1 m. In addition, the site voxel space data 310 includes position data 312. The position data 312 is data representing the position and rotation of the site voxel space in the game space. In this embodiment, it is assumed that the site voxel space is fixed in the game space.
[0204] In addition, the site voxel space data 310 includes first voxel data 313. The first voxel data 313 includes voxel data of each voxel in the site voxel space. Voxel data is set for each voxel, and a mesh is generated based on the voxel data, thereby forming a terrain in the game space. The initial first voxel data 313 is pre-stored in the storage medium or flash memory 84 installed in the slot 23. At the start of the game, the first voxel data 313 stored in the storage medium or flash memory 84 installed in this slot 23 is read into the DRAM 85. Thereby, an initial terrain is formed. For example, as the initial terrain, a terrain object 210 representing a flat ground and a terrain object 220 representing a rocky mountain are formed. During the execution of the game, the terrain is changed by changing the voxel data included in the first voxel data 313 stored in the DRAM 85.
[0205] In addition, the site voxel space data 310 includes destruction range data 314. The destruction range data 314 is data representing the destruction range set when the destruction action performed by the player character PC hits the terrain object formed based on the first voxel data 313.
[0206] The second voxel space data 320 is data related to the voxel space VLa arranged in the game space. The second voxel space data 320 includes dimension data 321, position data 322, second voxel data 323, and destruction range data 324. The dimension data 321 includes data representing the length of one side of each voxel in the voxel space VLa and data representing the number of voxels in the direction of each axis (Xa, Ya, Za axes) of the voxel space VLa. For example, the length of one side of each voxel in the voxel space VLa is "0.5 m". The size of the voxel space VLa in the game space is determined by this dimension data 321. In addition, the position data 322 is data representing the position and rotation of the voxel space VLa in the game space. For example, the position data 322 includes coordinate data representing the position in the game space and vector data representing the direction of each axis (Xa, Ya, Za axes) of the voxel space VLa in the game space. The position and / or posture of the voxel space VLa (i.e., the enemy object EC) in the game space is changed by changing this position data 322.
[0207] The second object data 323 is data for representing the enemy object EC. The second object data 323 holds voxel data indicating the existence of the object for each voxel included in the voxel space VLa. That is, the second object data 323 includes the voxel data of each voxel included in the voxel space VLa. Voxel data is set for each voxel in the voxel space VLa, and a mesh is generated based on the voxel data, thereby forming the enemy object EC.
[0208] The destruction range data 324 is data showing the destruction range set when the destruction action performed by the player character PC hits the enemy object EC formed based on the second object data 323.
[0209] The shape data is data representing the above-described specified shape, and includes data for pre-determining the representation of the first shape, data for representing the second shape, and data for representing the third shape. The player character data is data related to the player character PC, and includes data indicating the position and posture in the game space.
[0210] The mesh data is data representing the mesh set for the voxel object disposed in the game space. The mesh data includes, for example, data indicating the positions of the respective vertices in the mesh. The mesh data is generated based on the first object data 313, the second object data 323, and the like.
[0211] In addition, in addition to Figure 29 the data shown, as data pre-stored before executing the game process, the game system 1 also stores the above-described property information and texture information data, data related to various characters appearing in the game, and the like. In addition, 3D object data representing 3D objects different from the voxel object (for example, parts of the hands and feet of the player character PC and the enemy object EC) is stored. In addition, voxel space data is stored for each voxel object movable in the game space.
[0212] Figure 30 is a flowchart showing an example of the flow of the game process executed by the game system 1. Figure 30 The game process shown, for example, starts in response to an instruction by the player to start the game.
[0213] In addition, in the present embodiment, it is assumed that the processor 81 of the main device 2 executes Figure 30 the processing of each step shown. However, in other embodiments, part of the processing of each step shown may be executed by another processor (for example, a dedicated circuit, etc.) other than the processor 81. In addition, when the game system 1 can communicate with other information processing devices (for example, a server), the processing may also be executed in other information processing devices Figure 30Part of the processing of each of the steps shown. In addition, Figure 30 The processing of each of the steps shown is merely a simple example. As long as the same result can be obtained, the order of the processing of each step can be changed, and other processing can also be performed in addition to (or instead of) the processing of each step.
[0214] In addition, the processor 81 uses a memory (e.g., DRAM 85) to perform Figure 30 The processing of each of the steps shown. That is, the processor 81 stores the information (in other words, data) obtained through each processing step in the memory, and when using this information in subsequent processing steps, reads out this information from the memory and utilizes this information.
[0215] As Figure 30 shown, in step S1, the processor 81 sets the game space in the initial state. Specifically, the processor 81 acquires the first voxel data 313 representing the terrain of the game space in the initial state from the storage medium installed in the slot 23, and stores part or all of the acquired first voxel data 313 in the DRAM 85. In addition, the processor 81 reads out the second voxel data 323, the shape data, etc. from the above storage medium, and stores them in the DRAM 85. In addition, the processor 81 reads out the 3D object data from the above storage medium, sets the initial position and posture of the 3D object, and stores them in the DRAM 85. In addition, the processor 81 sets the initial position and posture of the virtual camera and stores them in the DRAM 85.
[0216] In addition, the voxel data read into the DRAM 85 can be voxel data of a partial range for generating a game image among the voxel data of the entire range of the game space. For example, the processor 81 can also generate an image of an object using the voxel data of the voxels included in a partial range (e.g., a range within a specified distance from the position of the virtual camera) in the game space. In addition, when reading in voxel data related to a partial range of the game space, the same processing as step S1 above is performed at an appropriate timing (e.g., when the position of the virtual camera has moved more than a specified distance) during the series of processing of steps S2 to S11.
[0217] In step S2, 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]". Specifically, the processor 81 generates a mesh representing each voxel object based on the respective volume data stored in the DRAM 85 in step S1. Thus, a terrain object is constructed in the game space, and the enemy object EC is arranged in the game space. For example, the processor 81 generates a polygon mesh between the voxels set with the value indicating the existence of an object and the voxels set with the value indicating the non-existence of an object based on the multiple voxel data included in the first volume data 313. An example of the specific method for determining the vertex positions is as referred to Figure 14 as described. In addition, the processor 81 generates a polygon mesh between the voxels set with the value indicating the existence of an object and the voxels set with the value indicating the non-existence of an object based on the multiple voxel data included in the second volume data 323. Thus, a polygon mesh representing the enemy object EC is generated. After step S2, the game starts, and the processing of steps S3 to S11 is repeatedly executed at a prescribed frame time interval (e.g., 1 / 60 second interval) during the game.
[0218] In step S3, the processor 81 controls the actions of various objects (e.g., the player character PC and the enemy object EC) appearing in the game space. For example, the processor 81 moves the player character PC based on the operation data received from the controllers 3 and 4, or causes the player character PC to perform a prescribed action (destruction action, jump, etc.). The destruction action of the player character PC can also be punching, kicking, throwing a bomb, etc. In addition, the processor 81 moves the enemy object EC based on the algorithm determined in the game program, or causes the enemy object EC to perform a destruction action (waving, throwing a weapon object, etc.). After step S3, the processing of step S4 is executed.
[0219] In step S4, the processor 81 determines whether a destruction action has been performed by the player character PC based on the operation data from the controller. Specifically, based on the operation data from the controller, it is determined whether a prescribed button of the left controller 3 or the right controller 4 has been pressed. If the determination result in step S4 is affirmative, the processing of step S5 is executed. On the other hand, if the determination result in step S4 is negative, the processing of step S10 is executed.
[0220] In step S5, the processor 81 determines whether the destruction action has hit the voxel object. Here, for example, it is determined whether the destruction action performed by the player character PC has hit the terrain object or the enemy object EC. The terrain object is the terrain object 210 representing the ground, the terrain object 220 representing the rocky mountain, etc. The determination of whether the destruction action has hit the voxel object is performed through the physical determination of the object on the side performing the destruction and the voxel object on the side being destroyed. For example, when the player character PC performs a punch, the object on the side performing the destruction is the fist of the player character PC. The voxel object on the side being destroyed is the terrain object or the enemy object EC, and a mesh for determination is generated. The mesh for determination can be the same as the mesh for display, or a coarser mesh for determination than the mesh for display can be prepared. A collision determination is performed between the mesh for determination and the object on the side performing the destruction to determine whether there is a hit. If the determination result in step S5 is affirmative, the process of step S6 is executed. On the other hand, if the determination result in step S5 is negative, the process of step S10 is executed.
[0221] In step S6, the processor 81 performs a destruction range setting process of setting a destruction range corresponding to the voxel object hit by the destruction action. The details of the destruction range setting process will be described later. After step S6, the process of step S7 is executed.
[0222] In step S7, the processor 81 executes a voxel data update process. For example, the processor 81 reduces the density of the voxels included in the destruction range set in step S6. Specifically, based on the "hardness of the side performing the destruction" corresponding to the destruction action and the "hardness of the side being destroyed" corresponding to the material of the voxel object hit by the destruction action, it is determined whether to update the damage amount to the voxels included in the destruction range or to update the density without updating the damage amount. If it is determined to update the damage amount, the damage amount to the voxels included in the destruction range set in step S6 is updated. If the updated damage amount exceeds the durability value corresponding to the material, the density of the voxels included in the set destruction range is reduced. In addition, if it is determined not to update the damage amount but to update the density, the density of the voxels included in the set destruction range is reduced. Specifically, the density of the voxels included in the set destruction range is set to a value indicating the absence of an object (for example, "0"). After the process of step S7, the processor 81 executes the process of step S8.
[0223] In step S8, the processor 81 determines whether to update the mesh. Here, when the voxel data is updated in step S7, the processor 81 determines to update the mesh. When the determination result in step S8 is affirmative, the process of step S9 is executed. On the other hand, when the determination result in step S8 is negative, the process of step S10 is executed. In addition, even when the updated voxels do not exist within the imaging range of the virtual camera when the voxel data is updated in step S7, the processor 81 may also determine in step S8 not to update the mesh. That is, when the destruction action hits the terrain object or the enemy object EC and a part or all of the terrain object or the enemy object EC is destroyed but the voxel object within the game space seen from the virtual camera is not destroyed, the mesh may not be updated. In addition, when the processing load is high, etc., the update of the mesh may not be performed in this frame, and the update may be left until after the next frame or later.
[0224] In step S9, the processor 81 updates the mesh for the voxel object whose voxel data has been changed in step S7. Specifically, the vertex positions of the mesh are recalculated based on the updated voxel data. The updated mesh is stored in the DRAM 85 as mesh data. That is, the processor 81 generates the mesh of the destroyed voxel object based on the voxel data updated in step S7. Thereby, the mesh of the voxel object (terrain object, enemy object EC) that has undergone the destruction action can be dynamically changed in the game. In step S9, only the vertex of the mesh for the part where the voxel data is updated is recalculated. For the mesh of the part where the voxel data is not updated, the vertex position of the mesh generated in step S2 is used. In this way, only the mesh for the updated voxel data is recalculated, so the processing load can be reduced. In addition, in other embodiments, in step S9, the vertex positions of the mesh may also be recalculated based on all the voxel data (or all the voxel data within the imaging range of the virtual camera) in the game space including the updated voxel data and the non-updated voxel data. After step S9, the process of step S10 is executed.
[0225] In step S10, the processor 81 generates a game image representing the game space based on the virtual camera and causes the display device to display the generated game image. Specifically, the processor 81 generates a game image when the mesh generated in step S2 or S9 is seen from the position of the virtual camera. Thereby, a game image representing the game space including the voxel object and other 3D objects (for example, the player character PC) is generated. Then, the processor 81 causes the display device to display the generated game image. After step S10, the process of step S11 is executed.
[0226] In step S11, 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 S11 is negative, the process of step S3 is executed again. After that, the series of processes of steps S3 to S11 are repeatedly executed until it is determined in step S11 that the game has ended. On the other hand, if the determination result in step S11 is positive, the processor 81 ends Figure 30 the game process shown.
[0227] (Destruction range setting process)
[0228] Next, the destruction range setting process in step S6 will be described. Figure 31 is a flowchart showing an example of the destruction range setting process in step S6.
[0229] In step S21, the processor 81 determines whether a downward destruction action has been performed. If the determination result in step S21 is positive, the process of step S22 is then executed. On the other hand, if the determination result in step S21 is negative, the process of step S23 is then executed.
[0230] In step S22, the processor 81 sets the destruction range of the third shape. Specifically, the destruction range of the third shape is set in the voxel space corresponding to the object hit by the destruction action. For example, when the destruction action hits the terrain object 210, based on the position where the destruction action hits (e.g., the position of the fist of the player character PC), the destruction range of the third shape is set in the field voxel space. The third shape is a shape with a flat bottom surface, for example, a cylindrical shape. Here, the size of the destruction range varies depending on the object hit by the destruction action. For example, when the destruction action hits a terrain object (210 or 220), a destruction range of the first size is set, and the destruction range data 314 representing this destruction range is stored. In addition, for example, when the destruction action hits the enemy object EC, a destruction range of the second size smaller than the first size is set, and the destruction range data 324 representing this destruction range is stored. Furthermore, the third shape can also be a shape that is a substantially cylindrical shape and the connecting part between the bottom surface and the side surface is curved. After the process of step S22 is performed, the processor 81 ends Figure 31 the process shown.
[0231] On the other hand, in step S23, the processor 81 temporarily sets the destruction range of the first shape or the second shape according to the direction of the destruction action. Specifically, the destruction range of the first shape or the second shape is temporarily set within the voxel space corresponding to the object hit by the destruction action. The destruction range of the first shape or the second shape is temporarily set at a position corresponding to the direction of the destruction action. For example, when the destruction action in the forward direction of the player character PC hits the terrain object 220, the destruction range of the first shape is temporarily set at a position within the field voxel space. Here, the pre-determined first shape is set as the temporary destruction range. The first shape is a shape with an overall curved surface, for example, an ellipsoid that is asymmetric left and right. In addition, when the destruction action in the obliquely upward direction of the player character PC hits the terrain object 220, the destruction range of the second shape is temporarily set at a position within the field voxel space. In addition, the size of the destruction range varies according to the object hit by the destruction action. For example, when the destruction action hits the terrain object (210 or 220), the destruction range of the first size is temporarily set, and when the destruction action hits the enemy object EC, the destruction range of the second size smaller than the first size is temporarily set. After step S23, the process of step S24 is executed.
[0232] In step S24, the processor 81 determines whether the player character PC is in contact with the ground. When the player character PC is on the ground, the process of step S25 is then executed. On the other hand, when the player character PC is not on the ground, the process of step S26 is then executed.
[0233] In step S25, the processor 81 calculates the height and normal of the surface (ground contact surface) where the player character PC is on the ground in the game space. For example, the processor 81 calculates the normal of the ground contact surface based on the normal vectors at a plurality of reference points within a specified range including the position (ground contact point) where the player character PC is on the ground. For example, the processor 81 calculates the average of the plurality of normal vectors as the normal vector of the ground contact surface. In addition, the processor 81 calculates the height of the ground contact surface based on the height (Y-axis coordinate value) of the ground contact point. For example, the processor 81 calculates the Y-axis coordinate value of the ground contact point as the height of the ground contact surface. In addition, the processor 81 may also calculate the Y-axis coordinate value of the highest (or lowest) point within the specified range including the ground contact point as the height of the ground contact surface. In addition, the processor 81 may also calculate the height of the ground contact surface based on the average of the heights of the above-mentioned plurality of reference points. After step S25, the process of step S27 is executed.
[0234] In step S26, the processor 81 calculates the height and normal of the ground directly below the player character PC. For example, the processor 81 calculates the intersection point of the line passing through the position of the player character PC and parallel to the Y-axis with the ground. Then, the processor 81 regards this intersection point as the above-mentioned landing point, and calculates the height and normal of the ground directly below the player character PC by the same method as in step S25. After step S26, the process of step S27 is executed.
[0235] In step S27, the processor 81 sets a prescribed plane. For example, in the case of a forward destruction action, the processor 81 sets a prescribed plane in the voxel space corresponding to the object hit by the destruction action based on the height and normal calculated in step S25 or step S26. Specifically, when the forward destruction action of the player character PC hits the terrain object 220, a prescribed plane having the normal calculated in step S25 or step S26 is set in the field voxel space. Thus, for example, when the ground that the player character PC is in contact with or the ground directly below the player character PC is a plane parallel to the horizontal plane, a plane parallel to the horizontal plane is set as the prescribed plane. In addition, the height of the prescribed plane is set to the same height as the ground. In addition, when the ground that the player character PC is in contact with or the ground directly below the player character PC is inclined by a prescribed angle with respect to the horizontal plane, a plane having a prescribed angle with respect to the horizontal plane is set as the prescribed plane. In this case, the prescribed plane is set to pass through the position where the player character PC lands or the position directly below the player character PC. Alternatively, the prescribed plane can also be set to pass through the highest (or lowest) point within a prescribed range including the position where the player character PC lands or the position directly below the player character PC. In this way, when the ground itself is inclined, the prescribed plane is inclined according to the inclination of the ground.
[0236] In addition, in the case of an obliquely upward destruction action, in step S27, the processor 81 sets a prescribed plane inclined with respect to the horizontal plane in the field voxel space. For example, in the case of an obliquely upward destruction action, a prescribed plane inclined by a predetermined angle with respect to the horizontal plane can also be set. In addition, the prescribed plane is set to pass through the position where the player character PC lands or the position directly below the player character PC. Alternatively, the prescribed plane can also be set to pass through the highest (or lowest) point within a prescribed range including the position where the player character PC lands or the position directly below the player character PC. In addition, the inclination of the prescribed plane can also be changed according to the player's operation. For example, when the angle of the destruction action can be adjusted according to the player's operation, the inclination of the prescribed plane can also be changed according to the angle of the destruction action. In this way, the prescribed plane is inclined according to the direction of the destruction action.
[0237] In addition, when a destructive action in an obliquely upward direction is performed while the ground surface itself is inclined with respect to the horizontal plane, the processor 81 sets the inclination of the specified plane according to the inclination of the ground and / or the direction of the destructive action. For example, when a destructive action in an obliquely upward direction is performed while the ground surface itself is inclined, the specified plane may also be inclined according to either the inclination of the ground or the direction of the destructive action. For example, the inclination of the specified plane may be set with the direction of the destructive action being given priority over the inclination of the ground surface itself. For example, when a destructive action in the forward direction is performed while the ground surface itself is inclined, the specified plane may also be set to be parallel to the horizontal plane. Additionally, the inclination of the ground surface itself may be given priority over the direction of the destructive action to set the inclination of the specified plane. For example, when a destructive action in the forward direction is performed while the ground surface itself is inclined, the specified plane may also be inclined at the same angle (or a different angle) as the ground. Additionally, it may be that when the inclination of the ground surface itself is equal to or greater than a specified value, the inclination of the ground surface itself is given priority over the direction of the destructive action, and the specified plane is inclined according to the inclination of the ground surface itself. When the inclination of the ground surface itself is less than the specified value, the direction of the destructive action is given priority over the inclination of the ground surface itself, and the specified plane is inclined according to the direction of the destructive action (destructive action in an obliquely upward direction). Additionally, it may be that when a destructive action in an obliquely upward direction is performed while the ground surface itself is inclined, the specified plane is inclined according to the inclination of the ground as described above, and the specified plane is also inclined according to the direction of the destructive action.
[0238] After step S27, the process of step S28 is executed.
[0239] In step S28, the processor 81 determines whether the specified plane set in step S27 is included within the first shape or the second shape set in step S23. Here, it is determined whether the set first shape or second shape intersects with the specified plane. In other words, it is determined whether a part of the first shape or the second shape is located at a position lower than the specified plane. If the determination result in step S28 is affirmative, the process of step S29 is then executed. On the other hand, if the determination result in step S28 is negative, the process of step S30 is then executed.
[0240] In step S29, the processor 81 sets the shape obtained by removing the portion of the first shape or the second shape that is lower than the specified plane as the destruction range, and stores it in the memory as destruction range data. Thereby, a shape with a planar bottom surface is determined as the destruction range.
[0241] In step S30, since the first shape or the second shape is located at a position higher than the specified plane, the processor 81 sets the first shape or the second shape as the destruction range, and stores it in the memory as destruction range data. Thereby, the first shape or the second shape with an overall curved surface is determined as the destruction range.
[0242] After the processing of step S29 or step S30 is performed, the processor 81 ends Figure 31 the processing shown.
[0243] In addition, the processing shown in the above flowchart is merely a simple illustration, and the order, content, etc. of the processing can also be appropriately changed.
[0244] As described above, in the present embodiment, the player character PC can move on the terrain object formed based on the voxel data, and can destroy the terrain object by a destruction action. When the destruction action hits the terrain object, a destruction range is set, and the destruction range is a range set according to the position of the player character PC, and has a shape obtained by removing the range below the specified plane set based on the position of the player character PC from a specified shape. Moreover, the voxel data of the voxels included in the destruction range is set to a value indicating the absence of an object. Thereby, the terrain object within the destruction range is destroyed. By setting the destruction range in this way, the terrain after destruction becomes a shape along the specified plane, so that it is easy for the player character PC to move on the terrain after destruction.
[0245] In addition, in the present embodiment, when the player character PC performs a destruction action in an obliquely upward direction, a specified shape is set at the position in the obliquely upward direction of the player character PC, and an inclined specified plane is set obliquely. Thereby, the terrain after destruction can be inclined, and the terrain after destruction can be formed along the direction of the destruction action.
[0246] In addition, in the present embodiment, when a part of the specified shape is below the specified plane, the shape obtained by removing the part below the specified plane from the specified shape is set as the destruction range, and when all of the specified shape is above the specified plane, the specified shape is set as the destruction range. Thereby, the destruction range can be dynamically set according to the game situation.
[0247] In addition, in the present embodiment, when the player character PC is in the air when the destruction action hits the terrain object, the specified plane is set based on the ground directly below the player character PC. Thereby, even when the player character PC is in the air, it is easy for the player character PC to move on the terrain after destruction.
[0248] In addition, in the present embodiment, when the destruction action of the player character PC hits the terrain object, a destruction range of the first size is set, and when the destruction action of the player character PC hits the enemy object EC, a destruction range of the second size smaller than the first size is set. Thereby, the terrain object can be destroyed on a large scale, and on the other hand, the enemy object can be destroyed in a small range.
[0249] In addition, in the present embodiment, the size of one voxel in the voxel space VLa for representing an enemy object in the game space is smaller than the size of one voxel in the field voxel space for representing a terrain object in the game space. That is, the resolution of the voxels in the voxel space VLa for representing an enemy object is higher than the resolution of the voxels in the field voxel space for representing a terrain object. Therefore, the enemy object can be represented more finely than the terrain object.
[0250] (Modification example)
[0251] The above has described the present embodiment. However, the above embodiment is merely an example, and for example, the following modifications can be added.
[0252] For example, in the above embodiment, when the destruction action of the player character PC hits a voxel object, a specified shape is set in the voxel space, and a specified surface is calculated, and the shape obtained by removing the portion below the specified surface from the specified shape is set as the destruction range. That is, in the above embodiment, the specified surface is dynamically calculated based on the position of the player character PC when the destruction action of the player character PC hits the object. In other embodiments, a solid having a shape obtained by removing the portion below the specified surface from the specified shape may be prepared in advance. For example, a plurality of solids having a shape obtained by cutting the lower side of a sphere or an ellipsoid with a plane may be prepared in advance. For example, a solid obtained by cutting with a plane located above a first distance from the lower end of the sphere or the ellipsoid, and a solid obtained by cutting with a plane located above a second distance from the lower end of the sphere or the ellipsoid may be prepared in advance. Moreover, based on the position of the player character PC when the destruction action hits, any solid may be selected from the plurality of solids prepared in advance, and the range surrounded by the selected solid may be set as the destruction range.
[0253] That is, "the shape obtained by removing the range below the specified surface from the specified shape" may be a shape calculated based on the position of the player character PC when the destruction action hits and the condition of the ground, or a shape prepared in advance selected based on the position of the player character PC and the condition of the ground.
[0254] In addition, in the above-described embodiment, it is assumed that the player character PC performs a destruction action on the terrain object 220 representing the rocky mountain. However, in other embodiments, a destruction action may be performed on any other object. In this case, for example, when the destruction action in the forward direction hits an object, a specified shape is set according to the hit position, and a specified plane is set according to the position of the player character PC. The shape obtained by removing the range below the specified plane from the specified shape is set as the destruction range. In addition, the size of the specified shape may also vary depending on the object hit by the destruction action.
[0255] In addition, in the above-described embodiment, it is assumed that the specified shape is the same regardless of the object hit by the destruction action, and only the size is different. In other embodiments, the specified shape may also vary depending on the object hit by the destruction action.
[0256] In addition, in the above-described embodiment, it is assumed that the direction of the destruction action of the player character PC is any of the forward direction, the diagonally upward direction, and the downward direction. In other embodiments, the destruction action of the player character PC may be performed in any direction.
[0257] In addition, in the above-described embodiment, when the destruction action hits, a specified plane serving as a flat surface is set based on the ground contacted by the player character PC or the ground directly below the player character PC. In other embodiments, the specified plane may not be a completely flat surface. For example, the specified plane may be a substantially flat surface with small irregularities. In addition, the specified plane may also change according to the shape of the ground in the game space. For example, when the ground is a substantially flat surface with small irregularities, the specified plane may be the same as the ground.
[0258] In addition, in the above-described embodiment, when the player character PC is in the air when the destruction action hits, the specified plane is set based on the ground directly below the player character PC. In other embodiments, when the player character PC is in the air, not limited to directly below the player character PC, the specified plane may also be set based on the ground below the player character PC and in a specified direction starting from the position of the player character PC. For example, when the player character PC is in the air when the destruction action hits, the falling position of the player character PC may be predicted based on the moving direction of the player character PC, and the specified plane may be set based on the ground at the falling position.
[0259] In addition, in the above-described embodiment, for the voxels within the destruction range, a value indicating the non-existence of an object is set for the voxels by setting the density of the voxels to "0". Thereby, the part within the destruction range in the voxel object is eliminated, and the voxel object is destroyed. The destruction (elimination) of the voxel object is not limited to being performed by setting the density in the voxel data to "0", and can also be performed by setting the density to other values. For example, regarding the density, the "value indicating the non-existence of an object" is not limited to "0", and can be any value lower than a reference value (e.g., 128). In addition, regarding the density, the "value indicating the existence of an object" can be a value in the range of 1 to 255, or a value equal to or higher than the reference value. In addition, not limited to changing the density in the voxel data, the destruction of the voxel object can also be performed by other methods. For example, it can also be that a flag indicating whether an object exists is stored in the voxel data. When the flag is set to "on", it indicates that an object exists in the voxel, and when the flag is set to "off", it indicates that no object exists in the voxel (that is, a void). In addition, it can also be that when material data is stored in the voxel data, an object composed of the material indicated by the material data exists in the voxel. On the contrary, it can also be that when no material data is stored in the voxel data, it indicates that no object exists in the voxel.
[0260] In addition, the above-described processing is not limited to being executed in the game system 1, and can also be executed in any other information processing device or information processing system. The information processing system can also be composed of multiple devices, and the multiple devices can also be connected via a network (e.g., LAN, Internet, etc.).
[0261] In addition, the structures related to the above-described embodiment and its modified examples can be arbitrarily combined as long as they do not contradict each other. In addition, the above is merely an illustration of the present invention, and various improvements and modifications can also be added in addition to the above.
[0262] Although several system examples, method examples, device examples, and apparatus examples have been described, it should be understood that the appended claims are not limited to the disclosed systems, methods, devices, and apparatuses, and various improvements and modifications can be made without departing from the spirit and scope of the appended claims, which is self-evident.
Claims
1. A computer program product comprising a program executed in a processor of an information processing device, the program causing the processor to perform the following processes: Store first volume data in a storage medium, the first volume data being data for representing a first object in a virtual space, the first volume data holding voxel data representing the existence of the object for each voxel included in a first voxel space arranged in the virtual space; Based on a player's operation input, cause a player character to move on the first object; Based on a player's operation input, cause the player character to perform a destruction action; When the destruction action hits the first object, update the voxel data of the voxels included in a first elimination range to a value representing the non-existence of an object, wherein the first elimination range is a range set according to the position of the player character and has a shape obtained by removing a range below a specified plane set based on the position of the player character from a specified shape; And Based on the first volume data, at least draw a polygon mesh representing the surface of the first object to generate an image of the virtual space.
2. The computer program product according to claim 1, wherein The destruction action is a forward destruction action of the player character, The first elimination range is set in front of the player character when the destruction action hits the first object, The specified plane is a horizontal plane having the height of the ground on which the player character lands when the destruction action hits the first object.
3. The computer program product according to claim 1, wherein Cause the processor to further perform the following process: When the destruction action hits the first object, set the height of the specified plane based on the position of the player character, When the whole of the specified shape is located at a position above the specified plane, the first elimination range is the specified shape.
4. The computer program product according to any one of claims 1 to 3, wherein The destruction action is a forward destruction action of the player character, The first elimination range is set in front of the player character when the destruction action hits the first object, The specified plane is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.
5. The computer program product according to claim 1, wherein The destruction action is a diagonal upward destruction action of the player character, The first elimination range is set in the diagonal upward direction of the player character when the destruction action hits the first object, The specified plane is an inclined plane passing through the position where the player character lands when the destruction action hits the first object and rising as it goes forward of the player character.
6. The computer program product according to any one of claims 1 to 5, wherein The specified shape is any shape among a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming an ellipsoid.
7. The computer program product according to any one of claims 1 to 6, wherein the processor is further caused to perform the following processing: when the ground on which the player character lands when the destruction action hits the first object is inclined with respect to the horizontal plane, a specified plane inclined with respect to the horizontal plane is set.
8. The computer program product according to any one of claims 1 to 7, wherein the processor is further caused to perform the following processing: second voxel data is stored in a storage medium, the second voxel data being data for representing a second object in the virtual space, and the second voxel data holds the voxel data for each voxel included in a second voxel space arranged in the virtual space; when the destruction action hits the second object, the voxel data of the voxels included in a second elimination range having a size different from that of the first elimination range is updated to a value indicating that no object exists, where the second elimination range is a range set according to the position of the player character and has a shape obtained by removing a range below a specified plane set based on the position of the player character from a specified shape; and based on the second voxel data, a polygon mesh representing the surface of the second object is further drawn to generate an image of the virtual space.
9. The computer program product according to claim 8, wherein the defined size in the virtual space of one voxel included in the first voxel data is different from that of one voxel included in the second voxel data.
10. The computer program product according to any one of claims 1 to 9, wherein the processor is further caused to perform the following processing: based on an operation input by a player, the player character is caused to perform a destruction action in the downward direction; and when the destruction action in the downward direction hits the first object, the voxel data of the voxels included in a third elimination range set below the player character is updated to a value indicating that the first object does not exist.
11. The computer program product according to any one of claims 1 to 10, wherein the first object is the terrain in the virtual space.
12. The computer program product according to any one of claims 1 to 11, wherein the processor is further caused to perform the following processing: between the voxels where the first object does not exist and the voxels where the first object exists, the vertex positions of the polygon are determined based on the voxel data, thereby generating the polygon mesh; and when the voxel data of the voxels included in the first elimination range has been updated, the vertices of the polygon mesh of at least the range including the voxels whose voxel data has been updated are recalculated.
13. An information processing system, comprising a storage medium and at least one processor, wherein Store first volumetric data in the storage medium, where the first volumetric data is data for representing a first object in a virtual space, and the first volumetric data holds voxel data representing the existence of the object for each voxel included in a first voxel space configured in the virtual space. The processor performs the following processes: Based on the player's operation input, move the player character on the first object; Based on the player's operation input, cause the player character to perform a destruction action; When the destruction action hits the first object, update the voxel data of the voxels included in a first elimination range to a value representing the non-existence of the object. The first elimination range is a range set according to the position of the player character and has a shape obtained by removing a range below a specified plane set based on the position of the player character from a specified shape; And Based on the first volumetric data, at least draw a polygon mesh representing the surface of the first object to generate an image of the virtual space.
14. The information processing system according to claim 13, wherein The destruction action is a forward destruction action of the player character, The first elimination range is set in front of the player character when the destruction action hits the first object, The specified plane is a horizontal plane having the height of the ground on which the player character lands when the destruction action hits the first object.
15. The information processing system according to claim 13, wherein The processor further performs the following processes: When the destruction action hits the first object, set the height of the specified plane based on the position of the player character; and When the entire specified shape is located above the specified plane, set the specified shape as the first elimination range.
16. The information processing system according to any one of claims 13 to 15, wherein The destruction action is a forward destruction action of the player character, The first elimination range is set in front of the player character when the destruction action hits the first object, The specified plane is a horizontal plane having the height of the ground located below the player character when the player character is in the air when the destruction action hits the first object.
17. The information processing system according to claim 13, wherein The destruction action is a diagonal upward destruction action of the player character, The first elimination range is set in the diagonal upward direction of the player character when the destruction action hits the first object, The specified plane is an inclined plane passing through the position where the player character lands when the destruction action hits the first object and rising as it goes forward to the front of the player character.
18. The information processing system according to any one of claims 13 to 17, wherein The specified shape is any shape among a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming an ellipsoid.
19. The information processing system according to any one of claims 13 to 18, wherein the processor further performs the following processing: when the ground on which the player character lands when the destruction action hits the first object is inclined with respect to the horizontal plane, a specified plane inclined with respect to the horizontal plane is set.
20. The information processing system according to any one of claims 13 to 19, wherein second voxel data is stored in a storage medium, the second voxel data being data for representing a second object in the virtual space, and the second voxel data holds voxel data for each voxel included in a second voxel space arranged in the virtual space, the processor further performs the following processing: when the destruction action hits the second object, the voxel data of the voxels included in a second elimination range having a size different from that of the first elimination range is updated to a value indicating the absence of an object, wherein the second elimination range is a range set according to the position of the player character and has a shape obtained by removing a range below a specified plane set based on the position of the player character from a specified shape; and based on the second voxel data, a polygon mesh representing the surface of the second object is further drawn to generate an image of the virtual space.
21. The information processing system according to claim 20, wherein the defined size in the virtual space of one voxel included in the first voxel data is different from that of one voxel included in the second voxel data.
22. The information processing system according to any one of claims 13 to 21, wherein the processor further performs the following processing: based on an operation input by the player, causing the player character to perform a downward destruction action; and when the downward destruction action hits the first object, the voxel data of the voxels included in a third elimination range set below the player character is updated to a value indicating the absence of the first object.
23. The information processing system according to any one of claims 13 to 22, wherein the first object is the terrain in the virtual space.
24. The information processing system according to any one of claims 13 to 23, wherein the processor further performs the following processing: between the voxels where the first object does not exist and the voxels where the first object exists, the vertex positions of the polygon are determined based on the voxel data, thereby generating the polygon mesh; and when the voxel data of the voxels included in the first elimination range has been updated, the vertices of the polygon mesh of at least the range including the voxels whose voxel data has been updated are recalculated.
25. An information processing apparatus, the information processing apparatus performing the following processing: storing first voxel data, the first voxel data being data for representing a first object in a virtual space, and the first voxel data holds voxel data indicating the existence of an object for each voxel included in a first voxel space arranged in the virtual space, Based on the player's operation input, move the player character on the first object; Based on the player's operation input, cause the player character to perform a destruction action; When the destruction action hits the first object, update the voxel data of the voxels included in the first elimination range to a value indicating the absence of an object, where the first elimination range is a range set according to the position of the player character and has a shape obtained by removing the range below a specified plane set based on the position of the player character from a specified shape; And Based on the first volume data, at least draw a polygon mesh representing the surface of the first object to generate an image of the virtual space.
26. The information processing apparatus according to claim 25, wherein The destruction action is a forward destruction action of the player character, The first elimination range is set in front of the player character when the destruction action hits the first object, The specified plane is a horizontal plane having the height of the ground on which the player character lands when the destruction action hits the first object.
27. The information processing apparatus according to claim 25, wherein When the destruction action hits the first object, set the height of the specified plane based on the position of the player character, When the entire specified shape is located above the specified plane, set the specified shape as the first elimination range.
28. The information processing apparatus according to any one of claims 25 to 27, wherein The destruction action is a forward destruction action of the player character, The first elimination range is set in front of the player character when the destruction action hits the first object, The specified plane is a horizontal plane having the height of the ground below the player character when the player character is in the air when the destruction action hits the first object.
29. The information processing apparatus according to claim 25, wherein The destruction action is a diagonal upward destruction action of the player character, The first elimination range is set in the diagonal upward direction of the player character when the destruction action hits the first object, The specified plane is an inclined plane passing through the position where the player character lands when the destruction action hits the first object and rising as it goes forward to the front of the player character.
30. The information processing apparatus according to any one of claims 25 to 29, wherein The specified shape is any shape among a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming an ellipsoid.
31. An information processing method, which is an information processing method performed in an information processing system, wherein In the information processing system, store first volume data, which is data for representing a first object in a virtual space, and the first volume data holds voxel data indicating the existence of an object for each voxel included in a first voxel space arranged in the virtual space, The information processing method includes the following steps: Based on the player's operation input, move the player character on the first object; Based on the player's operation input, cause the player character to perform a destruction action; When the destruction action hits the first object, update the voxel data of the voxels included in the first elimination range to a value indicating the absence of an object, where the first elimination range is a range set according to the position of the player character and has a shape obtained by removing the range below a specified plane set based on the position of the player character from a specified shape; and Based on the first voxel data, at least draw a polygon mesh representing the surface of the first object to generate an image of the virtual space.
32. The information processing method according to claim 31, wherein the destruction action is a forward destruction action of the player character, the first elimination range is set in front of the player character when the destruction action hits the first object, the specified plane is a horizontal plane having the height of the ground on which the player character lands when the destruction action hits the first object.
33. The information processing method according to claim 31, further comprising the following steps: When the destruction action hits the first object, set the height of the specified plane based on the position of the player character; and When the entire specified shape is located above the specified plane, set the specified shape as the first elimination range.
34. The information processing method according to any one of claims 31 to 33, wherein the destruction action is a forward destruction action of the player character, the first elimination range is set in front of the player character when the destruction action hits the first object, the specified plane is a horizontal plane having the height of the ground below the player character when the player character is in the air when the destruction action hits the first object.
35. The information processing method according to claim 31, wherein the destruction action is a diagonal upward destruction action of the player character, the first elimination range is set in the diagonal upward direction of the player character when the destruction action hits the first object, the specified plane is an inclined plane passing through the position where the player character lands when the destruction action hits the first object and rising as it goes forward to the front of the player character.
36. The information processing method according to any one of claims 31 to 35, wherein the specified shape is any shape among a sphere, an ellipsoid, and a shape obtained by asymmetrically deforming an ellipsoid.
Citation Information
Patent Citations
Program, information storage medium and image generation system
JP2008033521A