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

The information processing program uses voxel data updates and center-of-gravity calculations to reduce motion data requirements, enabling natural character object movements in virtual spaces.

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

Patent Information

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

AI Technical Summary

Technical Problem

Conventional techniques for controlling object motion in virtual spaces require large amounts of motion data, leading to inefficiencies and potential increases in data complexity.

Method used

An information processing program that generates meshes and controls character object motion using voxel data, updating voxel data to change inclination and using center-of-gravity calculations to reduce motion data requirements while maintaining natural object movements.

Benefits of technology

Enables natural object motion with a reduced amount of motion data by employing voxel data updates and center-of-gravity calculations, allowing for efficient and realistic character object operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025113072000001_ABST
    Figure 2025113072000001_ABST
Patent Text Reader

Abstract

To make an object perform natural movements using a small amount of motion data.SOLUTION: An information processing system generates a mesh of a character object in a virtual space on the basis of voxel data related to the character object. A behavior of the character object is controlled using motion data. When an event occurs for the character object, the voxel data related to the character object is updated. When the voxel data is updated, the information processing system generates a mesh of the character object on the basis of the updated voxel data. When the event occurs, the information processing system controls the behavior of the character object using the motion data with at least a part of the character object having its inclination changed relative to the virtual space.SELECTED DRAWING: Figure 22
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to an information processing program, an information processing system, an information processing apparatus, and an information processing method for controlling the operation of an object generated using voxel data.

Background Art

[0002] Conventionally, there is a technique for controlling the operation of an object using different motion data according to the divided state when a part of an object arranged in a virtual space is divided (see, for example, paragraphs 0125-0130 of Patent Document 1).

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the above technique, since motion data is prepared for each divided state of the object, there is a possibility that the amount of motion data to be prepared increases.

[0005] Therefore, an object of the present invention is to provide an information processing program, an information processing system, an information processing apparatus, and an information processing method capable of causing an object to perform a natural operation with a small amount of motion data.

Means for Solving the Problems

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

[0007] (1) An example of the present invention is an information processing program executed on a computer of an information processing apparatus. The information processing program causes the computer to function as a mesh generation means, a motion control means, a voxel data update means, and an image generation means. The mesh generation means generates a mesh of a character object based on voxel data regarding the character object in a virtual space. The motion control means controls the motion of the character object using first motion data. The voxel data update means updates the voxel data regarding the character object when an event occurs for the character object. The image generation means generates an image of the virtual space including an image depicting the mesh of the character object for output to a display device. The mesh generation means generates a mesh of the character object based on the updated voxel data when the voxel data is updated. The motion control means controls the motion of the character object using the first motion data in a state where the inclination with respect to the virtual space of at least a part of the character object is changed when an event occurs.

[0008] According to the configuration of (1) above, by controlling the motion of the character object in a state where the inclination of the character object is changed, a natural motion can be caused to be performed by the character object. Further, by using the same motion data in a state where the inclination is changed and a state where it is not changed, the data amount of the motion data can be reduced. Therefore, according to the configuration of (1) above, a natural motion can be caused to be performed by the character object with a small amount of motion data.

[0009] (2) The information processing program may further cause a computer to function as a center-of-gravity calculation means. When the voxel data is updated, the center-of-gravity calculation means calculates the center of gravity of a part of the character object that at least includes the part generated by the voxel data, based on the updated voxel data. The motion control means determines the direction to change the inclination of at least a part of the character object based on the change in the center of gravity before and after the event occurs.

[0010] According to the configuration of (2) above, it is possible to cause the character object to operate with a natural inclination according to the change in the center of gravity.

[0011] (3) When a straight line passing through at least a part of the character object and parallel to the direction of gravity in the virtual space is used as a reference axis, when an event occurs, the motion control means rotates at least a part of the character object around the reference position set for the character object in such a direction that the part of the character object on the side where the center of gravity of the character object after the update of the voxel data exists approaches the direction of gravity with respect to the reference axis. Thus, the inclination of the character object may be changed.

[0012] According to the configuration of (3) above, the character object can be made to have a natural inclination.

[0013] (4) When a straight line passing through at least a part of the character object and parallel to the direction of gravity in the virtual space is used as a reference axis, when an event occurs, the motion control means rotates at least a part of the character object around the reference position set for the character object in the direction in which the center of gravity of the character object after the update of the voxel data approaches the reference axis. Thus, the inclination of the character object may be changed.

[0014] According to the configuration of (4) above, a natural inclination can be given to the character object.

[0015] (5) The reference axis may be a straight line that passes through a position different from the reference position and is parallel to the direction of gravity in the virtual space.

[0016] According to the configuration of (5) above, even when the reference axis passes through a biased position of the character object, the reference position can be set so that the tilting operation of the character object becomes natural.

[0017] (6) The reference axis may be a straight line that passes through the center of gravity of the character object before the voxel data is updated and is parallel to the direction of gravity in the virtual space.

[0018] According to the configuration of (6) above, the tilting operation of the character object can be made natural.

[0019] (7) The character object may have a portion associated with a bone set for the character object. The motion control means may cause the character object to perform an operation by moving the bone according to the first motion data.

[0020] According to the configuration of (7) above, by using the bone and the motion data, the character object can be freely made to perform an operation.

[0021] (8) The character object may have a first portion whose shape is defined based on the voxel data and a second portion that is different from the first portion and is associated with the bone. When an event occurs, the motion control means may change the inclination of at least a part of the character object, that is, the first portion and a part of the second portion.

[0022] According to the configuration of (8) above, the posture when the character object is tilted can be made more natural.

[0023] (9) The reference position may be the position of the joint at the waist of the character object among the joints connecting the bones.

[0024] According to the configuration of (9) above, the movement of the character object when it tilts can be made natural.

[0025] (10) The first motion data may indicate the walking motion of the character object.

[0026] According to the configuration of (10) above, a natural walking motion can be made for the character object.

[0027] (11) The motion control means may set an upper limit on the angle at which the character object is tilted.

[0028] According to the configuration of (11) above, it is possible to reduce the possibility that the movement of the character object becomes unnatural due to excessive tilt.

[0029] (12) When an event occurs, the voxel data update means may update the voxel data so as to reduce the volume of the character object.

[0030] According to the configuration of (12) above, when the volume of the character object decreases, the character object can be made to perform an operation in a state of natural tilt.

[0031] (13) When an event occurs, the voxel data update means may update the voxel data so as to increase the volume of the character object.

[0032] According to the configuration of (13) above, when the volume of the character object increases, the character object can be made to perform an operation in a state of natural inclination.

[0033] (14) The motion control means may further control the operation of the character object using second motion data different from the first motion data. When an event occurs, the motion control means may set the inclination of the character object when controlling the operation of the character object using the first motion data and the inclination of the character object when controlling the operation of the character object using the second motion data to different values.

[0034] According to the configuration of (14) above, it is possible to reduce the possibility that an unnatural operation is performed due to the inclination of the character object with respect to a specific operation.

[0035] (15) When an event occurs, the motion control means may control the operation of the character object using the second motion data with the inclination of the character object being the same as the inclination before the occurrence of the event.

[0036] According to the configuration of (15) above, it is possible to reduce the possibility that an unnatural attack operation is performed due to the inclination of the character object.

[0037] (16) The character object may be an enemy character object and may have a core inside a voxel object portion whose shape is defined based on voxel data. The event may be that the enemy character object is attacked. When the core is attacked, the information processing program may further cause the computer to function as character elimination means for eliminating the entire enemy character object.

[0038] According to the configuration of (16) above, it is possible to add strategy to the conquest of enemy character objects, and the interestingness of the game can be improved.

[0039] Another example of the present invention may be an information processing device (for example, a terminal device or a server) or an information processing system including all or part of each means in (1) to (16) above. Another example of the present invention may be an information processing method (specifically, a game processing method) in which an information processing system executes each process in (1) to (16) above.

Effects of the Invention

[0040] According to the information processing program, information processing system, information processing device, and information processing method described above, it is possible to cause an object to perform natural movements with a small amount of motion data.

Brief Description of the Drawings

[0041]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Figure 11

Figure 12

Figure 13

Figure 14

Figure 15

Figure 16

Figure 17

Figure 18

Figure 19

Figure 20

Figure 21

Figure 22

Figure 23

Figure 24

Figure 25

Figure 26

Figure 27

Figure 28

Mode for Carrying Out the Invention

[0042] [1. Configuration of the Game System] Hereinafter, 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 game device main body in the present embodiment) 2, a left controller 3, and a right controller 4. The main body device 2 is detachable from the left controller 3 and the right controller 4 respectively. That is, the game system 1 can be used as a device in which the left controller 3 and the right controller 4 are respectively attached to the main body device 2 and integrated. Also, the game system 1 can be used with the main body device 2, the left controller 3, and the right controller 4 as separate entities (see FIG. 2). Hereinafter, the hardware configuration of 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.

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

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

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

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

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

[0048] Also, the main body device 2 includes a touch panel 13 on the screen of the display 12. In the present embodiment, the touch panel 13 is of a type capable of multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, for example, a type capable of single-touch input (for example, a resistive film type).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0064] The processor 81 appropriately reads and writes data between the flash memory 84 and the DRAM 85, and the above storage media, and executes the above information processes.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0090] As shown in FIG. 11, the voxel data includes density data. The density data indicates the density, which is an index used to define the shape of the voxel object in the voxel corresponding to the voxel data (specifically, the shape defined by the mesh described later). Although details will be described later, the position and shape of the surface of the voxel object (that is, the mesh described later) are determined based on the above density. That is, in the present embodiment, the above density is used to create a mesh that defines the surface of the voxel object.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0111] In other embodiments, there may be both a voxel object using voxel data including one type of material data and a voxel object using voxel data including two types of material data.

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

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

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

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

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

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

[0118] Also, in the present embodiment, the game system 1 sets the direction of the coordinate axes in the sub-voxel space (that is, the direction of each side of the sub-voxel) independently of the direction of the coordinate axes in the main voxel space (that is, the direction of each side of the main voxel). For example, in the example shown in FIG. 16, the direction of the coordinate axes in the sub-voxel space is different from the direction of the coordinate axes in the main voxel space. According to this, it becomes easier to arrange the sub-voxel object in a free orientation in the game space. For example, it becomes easy to arrange the sub-voxel object so as to extend in a direction different from the coordinate axes in the main voxel space. Also, it becomes easy to move (for example, rotate) the sub-voxel object independently of the terrain object.

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

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

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

[0122] [2-4. Process of Changing the Orientation of the Enemy Character Object] Next, a process of changing the orientation of an enemy character object which is a voxel object (hereinafter simply referred to as "enemy character") will be described. In this embodiment, a part of a predetermined enemy character is composed of voxel objects. Therefore, the voxel object part (referred to as "voxel part") of the enemy character deforms during the game (that is, the volume decreases by a part being erased, or the volume increases by a new part being added). At this time, the game system 1 makes the behavior (that is, the movement and posture) of the enemy character natural by changing the orientation of the enemy character according to the deformation of the voxel part. Hereinafter, the details of the process of changing the orientation of the enemy character will be described.

[0123] [2-4-1. Configuration of the Enemy Character] FIG. 17 is a diagram showing an example of an enemy character. As shown in FIG. 17, the enemy character 221 has a voxel part 222 and non-voxel parts 223a to 223e (hereinafter sometimes collectively referred to as "non-voxel part 223"). The voxel part 222 is a part that is a voxel object and is composed of a mesh generated based on voxel data. Also, the non-voxel part 223 is a part that is not a voxel object and is composed of a mesh that is not generated based on voxel data. In the example shown in FIG. 17, for the enemy character 221, the torso is the voxel part 222, and the head and limbs are the non-voxel parts 223. The voxel part 222 is the above-mentioned sub-voxel object. Note that in other embodiments, the enemy character 221 only needs to have at least a part that is a voxel part, and may entirely be a voxel part.

[0124] Note that a rock material is set for the voxel part 222 of the torso of the enemy character 221. That is, the material data set in the voxel data of the voxel part 222 indicates a rock material. In this embodiment, the enemy character 221 is a character with an appearance as if it has limbs attached to a rock.

[0125] FIG. 18 is a diagram showing an example of the configuration of the enemy character shown in FIG. 17. As shown in FIG. 18, a plurality of bones 225a to 225m (hereinafter sometimes collectively referred to as "bones 225") and a plurality of joints 226a to 226i (hereinafter sometimes collectively referred to as "joints 226") are set for the enemy character 221.

[0126] Bone 225 defines the positions and orientations of the respective parts of the enemy character 221. Specifically, each of the non-voxel parts 223 of the enemy character 221 is associated with one of the bones 225. The position and orientation of the non-voxel part 223 are determined according to (specifically, so as to match) the position and orientation of the bone 225 associated therewith. As shown in FIG. 18, some bones (in FIG. 18, bones 225b, 225c, 225e, 225g, 225h, 225k) are arranged inside the voxel part 222. Although not shown in FIG. 17, the enemy character 221 also has non-voxel parts associated with the bones arranged inside the voxel part 222 in addition to the non-voxel parts arranged outside the voxel part 222. These non-voxel parts may be exposed when a part of the voxel part 222 is erased.

[0127] Joint 226 connects a plurality of bones to each other. Joint 226 connects one end of a bone to one end of another bone. The position and orientation of bone 225 are determined on the condition that the connection relationship with the other bones 225 connected to itself by joint 226 is maintained. The game system 1 controls the movement of the enemy character 221 by moving the bone 225 under the restriction of being connected by the joint 226.

[0128] The voxel part 222 is associated with a predetermined reference position of the enemy character 221, and is arranged such that the predetermined position of the voxel part 222 is located at the reference position. In the present embodiment, it is assumed that the reference position is the position of the joint 226e at the waist of the enemy character 221. However, the location of the reference position is arbitrary, and in other embodiments, it may be a location different from the waist. Also, although details will be described later, when the game system 1 changes the inclination of the voxel part 222, it rotates the voxel part 222 around the reference position.

[0129] In this embodiment, the enemy character 221 has a core 227 as one of the non-voxel parts. Although details will be described later, the core 227 is a part that becomes the weakness of the enemy character 221. The core 227 is arranged, for example, at the position of the heart of the enemy character 221.

[0130] [2-4-2. Process of Tilting the Enemy Character] Next, a process of tilting the enemy character 221 in response to the deformation of the voxel part 222 of the enemy character 221 will be described. FIG. 19 is a diagram showing an example of a state in which a part of the voxel part of the enemy character shown in FIG. 17 is erased. In this embodiment, in response to an event in which the voxel part 222 is attacked by the player character, the part of the voxel part 222 that has been attacked is erased (see FIG. 19). In the example shown in FIG. 19, the lower right part of the voxel part 222 has been erased.

[0131] When a part of the voxel part 222 is erased as described above, the game system 1 tilts the enemy character 221 to change its posture. FIG. 20 is a diagram showing an example of a state in which the enemy character is tilted. In the examples shown in FIGS. 19 and 20, since the lower right part of the voxel part 222 is erased, the left part of the voxel part 222 is relatively heavier than the right part (it can also be said that the center of gravity has moved to the left). Therefore, in this embodiment, the game system 1 changes the tilt of the enemy character 221 so that the left part of the voxel part 222 drops compared to the right part (see FIG. 20). As a result, the game system 1 can make the enemy character 221 assume a natural posture corresponding to the erasure of a part of the voxel part 222.

[0132] Note that the event that deforms the voxel part 222 is not limited to an event that decreases the volume of the voxel part 222 (for example, an event in which the voxel part 222 is attacked by the player character), but may also be an event that increases the volume of the voxel part 222. FIG. 21 is a diagram showing an example of a state in which the volume of the voxel part of the enemy character shown in FIG. 17 is increased. In the present embodiment, when another object (referred to as an "adhering object") that can adhere to the voxel part 222 contacts the voxel part 222, the game system 1 increases the volume of the voxel part 222. Specifically, the game system 1 changes the shape of the voxel part 222 so that it has a shape in which an adhering object is combined with the voxel part 222 (that is, the volume of the voxel part 222 increases by the amount of the adhering object).

[0133] Note that the adhering object is, for example, a voxel object in which a material having a property of being able to adhere to the material of the voxel part 222 is set. That is, when the material of the voxel part 222 and the material of another voxel object are a specific combination, the game system 1 determines that the other voxel object is an adhering object.

[0134] Even when the volume of the voxel part 222 is increased as described above, the game system 1 tilts the enemy character 221 to change its posture, as in the case where the volume is decreased. In the example shown in FIG. 21, since a new part is added to the lower left part of the voxel part 222, the left side part of the voxel part 222 is relatively heavier than the right side part. Therefore, also in the example shown in FIG. 21, as in the example shown in FIG. 20, the game system 1 changes the tilt of the enemy character 221 so that the left side part of the voxel part 222 goes down compared to the right side part. Therefore, even when the volume of the voxel part 222 is increased, the game system 1 can make the enemy character 221 assume a natural posture according to the deformation of the voxel part 222, as in the case where the volume is decreased.

[0135] As described above, in the present embodiment, when an event occurs that deforms the voxel portion of the enemy character, the game system 1 updates the voxel data so as to decrease (or increase) the volume of the enemy character. Further, when the voxel data is updated, the game system 1 generates a mesh of the enemy character based on the updated voxel data and changes the inclination of at least a part of the enemy character with respect to the virtual space. According to this, it is possible to make the enemy character 221 assume a natural posture corresponding to the change in the volume of the enemy character increasing or decreasing.

[0136] Note that the above event is not limited to occurring in response to the enemy character being attacked or coming into contact with another object, and may occur under any conditions. In other embodiments, the volume of the voxel portion of the enemy character may decrease or increase over time in response to a certain condition in the game being satisfied. For example, the voxel portion of the enemy character may become smaller by collapsing or melting over time, or may become larger by swelling over time. At this time, the game system 1 may tilt the enemy character according to the decrease or increase in volume.

[0137] FIG. 22 is a diagram showing an example of the state before and after the change in tilting the voxel portion of the enemy character. In FIG. 22, the case where a part (specifically, the lower right part) of the voxel portion 222 is deleted is taken as an example, and the direction and amount of tilting the voxel portion 222 will be described.

[0138] When the voxel part 222 is deformed, the game system 1 calculates the position of the center of gravity 231 of the deformed voxel part 222. In the example shown in FIG. 22, due to the deformation of the voxel part 222, the center of gravity 231 has moved to the left side of the reference axis L (see (a) of FIG. 22). The reference axis L is an axis passing through the center of gravity of the voxel part 222 in the reference state and parallel to the direction of gravity (in FIG. 22, the downward direction). In FIG. 22, the position of the center of gravity in the reference state is shown by a dotted line. Also, the reference state may be the initial state when the enemy character appears, but it does not have to be the initial state. For example, when the voxel part 222 gradually deforms from the shape at the time when the enemy character first appears to a predetermined shape, the reference state may be the state when it becomes the predetermined shape.

[0139] As shown in FIG. 22, when the center of gravity 231 moves to the left side with respect to the reference axis L, the game system 1 rotates the voxel part 222 in a direction such that the part of the voxel part 222 on the left side of the reference axis L approaches the side in the direction of gravity (i.e., the lower side), and the part on the right side, which is the opposite side, approaches the opposite side in the direction of weight (i.e., the upper side), thereby tilting the voxel part 222 (see (b) of FIG. 22). As described above, the game system 1 rotates the voxel part 222 around the reference position.

[0140] FIG. 23 is a diagram showing another example of the state before and after the change of tilting the voxel part of the enemy character. The example shown in FIG. 23 is an example when a part of the voxel part 222 (specifically, the lower right part) is deformed to become larger. In the example shown in FIG. 23, the center of gravity 231 moves to the right side with respect to the reference axis L. Therefore, the game system 1 rotates the voxel part 222 in a direction such that the part of the voxel part 222 on the right side of the reference axis L approaches the side in the direction of gravity (i.e., the lower side), and the part on the left side, which is the opposite side, approaches the opposite side in the direction of weight (i.e., the upper side), thereby tilting the voxel part 222 (see (b) of FIG. 23).

[0141] As described above, in this embodiment, when an event occurs, the game system 1 rotates at least a part of the enemy character so that the part on the side where the center of gravity of the enemy character exists after the update of the voxel data (the left side in FIG. 22 and the right side in FIG. 23) approaches the gravity direction side (the lower side in FIGS. 22 and 23) around the reference position with respect to the reference axis. According to this, since the enemy character leans toward the side where the center of gravity has moved in response to the occurrence of the event, the game system 1 can make the enemy character assume a natural posture after the event.

[0142] Further, in this embodiment, the reference axis is a straight line passing through the center of gravity of the voxel portion 222 in the reference state and parallel to the gravity direction in the virtual space (see FIGS. 22 and 23). According to this, since the enemy character can be tilted according to the side where the center of gravity has moved from the reference state, the tilting motion of the enemy character can be made natural for the user.

[0143] Note that in other embodiments, the reference axis is not limited to a straight line passing through the center of gravity of the voxel portion 222 in the reference state. For example, in other embodiments, the reference axis may be any straight line passing through the portion whose inclination is changed (specifically, the voxel portion 222) and parallel to the gravity direction in the virtual space. Also, as will be described later, in the reference state, the reference axis does not necessarily pass through the reference position (that is, it may pass through a position different from the reference position).

[0144] Further, in this embodiment, the reference position is the position of the joint (that is, the joint) of the waist of the enemy character. According to this, since the enemy character leans around the waist, the tilting motion of the enemy character can be made natural.

[0145] In this embodiment, when tilting the voxel part 222, in addition to the voxel part 222, the game system 1 tilts a part of the non-voxel part in the same manner as the voxel part 222 (see FIGS. 20 and 21). Specifically, the game system 1 rotates the non-voxel part above the reference position (i.e., the waist), specifically, the non-voxel part associated with the bones 225a to 225g, of the non-voxel part 223 in accordance with the rotation of the voxel part 222. On the other hand, the non-voxel part below the reference position (specifically, the non-voxel part associated with the bones 225h to 225m) does not rotate even when the voxel part 222 rotates. This is because if these non-voxel parts tilt, the enemy character 221 may assume a posture as if standing obliquely with respect to the ground, which may rather become unnatural. In this way, when an event occurs, the game system 1 changes the tilt of the voxel part 222 and a part of the part associated with the bones (i.e., the non-voxel part). According to this, the posture when the enemy character 221 tilts can be made more natural.

[0146] Note that the "above the reference position" can also be said to be, for example, the side closer to the head of the enemy character. Also, the "below the reference position" can also be said to be, for example, the side closer to the feet of the enemy character (which can also be said to be the part in contact with the ground).

[0147] Note that the game system 1 tilts the non-voxel part that is tilted together with the voxel part 222 of the non-voxel part 223 to rotate about the reference position in the same manner as the voxel part 222. According to this, since the positional relationship between the voxel part 222 and the non-voxel part does not change before and after tilting, the possibility that the enemy character 221 assumes an unnatural posture after tilting can be reduced.

[0148] In this embodiment, the above center of gravity is the center of gravity of the voxel portion 222, and the game system 1 calculates the center of gravity using voxel data (that is, using the density for each voxel indicated by each voxel data). According to this, the center of gravity position can be calculated by simple calculation using voxel data. In other embodiments, the center of gravity may be calculated based on the mesh of the voxel portion 222 instead of the voxel data.

[0149] Also, instead of calculating the above center of gravity only for the voxel portion 222, it may be calculated for the voxel portion 222 and the portion other than the voxel portion 222 of the enemy character 221. For example, the game system 1 may calculate the center of gravity for the voxel portion 222 and the portion that is rotated together with the voxel portion 222 among the non-voxel portions. Also for example, when the enemy character 221 is holding another object (for example, a weapon object), the game system 1 may add the other object to the object for which the center of gravity is calculated.

[0150] In this embodiment, the game system 1 determines the amount of tilting of the voxel portion 222 based on the change angle of the center of gravity. The change angle of the center of gravity is the angle θ formed by the above reference axis and the line segment extending from the center of gravity of the voxel portion 222 in the reference state to the center of gravity after deformation (see (a) of FIG. 22 and (a) of FIG. 23). The game system 1 tilts the voxel portion 222 more as the change angle θ is larger. For example, the game system 1 may use, as the rotation angle of the voxel portion 222, a value obtained by multiplying the change angle θ by a predetermined coefficient (for example, a coefficient greater than 0 and less than 1).

[0151] Also, in this embodiment, the game system 1 sets an upper limit on the angle at which the enemy character can be tilted. Specifically, the game system 1 sets an upper limit value for the tilt angle of the voxel portion 222 when taking the reference state (i.e., the state in which the voxel portion 222 is not deformed) as a reference, and ensures that the tilt angle does not exceed the upper limit value. The specific value of the above upper limit value is arbitrary, but it may be set to 30°, for example. Here, if the tilt angle becomes too large, the posture of the enemy character 221 may become unnatural, or the actions performed by the enemy character 221 may become unnatural (for example, a part of the enemy character 221 may be buried in the ground during the action). On the other hand, in this embodiment, by setting the above upper limit value, the above possibility can be reduced.

[0152] In addition, in this embodiment, the case where the reference position is located on the reference axis in the reference state (i.e., the state before deformation) has been described as an example. Here, in other embodiments, in the reference state, the reference position may not be arranged on the reference axis. That is, the reference state of the enemy character does not require that the reference position be arranged on the reference axis. According to this, the game system 1 can allow the enemy character to have an arbitrary tilt in the state where the voxel portion 222 is not deformed.

[0153] Note that in this embodiment, the change angle of the center of gravity is calculated based on the position of the center of gravity in the reference state (i.e., calculated as the angle θ formed by a straight line extending vertically from the center of gravity in the reference state and a line segment extending from the center of gravity in the reference state to the center of gravity after deformation). In contrast, in other embodiments, the change angle of the center of gravity may be calculated based on the reference position. Specifically, the change angle of the center of gravity may be calculated as the angle θ' formed by a line segment extending from the reference position to the center of gravity in the reference state and a line segment extending from the reference position to the center of gravity after deformation of the voxel portion 222.

[0154] However, in the method of using the above angle θ' as the change angle of the center of gravity, when the reference position is not arranged on the reference axis in the reference state, even if the center of gravity moves due to the deformation of the voxel portion 222, the angle θ' may become 0 or a value close to 0. At this time, there is a possibility that the inclination of the enemy character hardly changes contrary to the user's expectation. For example, consider an enemy character whose center of gravity is located above the left of the reference position in the reference state, and the case where the center of gravity moves further above the left due to the deformation of the voxel portion 222. In this case, since the center of gravity moves above the left, the user expects the enemy character to tilt to the left, but since the above angle θ' becomes 0 or a value close to 0, there is a risk that the inclination of the enemy character hardly changes actually.

[0155] On the other hand, in the present embodiment, the game system 1 can reduce the possibility that the change angle of the center of gravity becomes 0 or a value close to 0 in the above case by calculating the change angle of the center of gravity with reference to the position of the center of gravity in the reference state. Thereby, the possibility that the inclination of the enemy character hardly changes contrary to the user's expectation can be reduced.

[0156] As described above, in the present embodiment, the game system 1 tilted the enemy character 221 so that the side that became heavier with respect to the reference axis (that is, the side where the center of gravity moved) due to the deformation of the voxel portion 222 dropped (see FIG. 22). Here, as the behavior that the enemy character 221 takes when the voxel portion 222 is deformed, it can be said that the behavior of changing the inclination so that the center of gravity after deformation is located on the reference axis to balance is also a natural behavior. Therefore, in other embodiments, the direction of tilting the voxel portion 222 when the voxel portion 222 is deformed may be determined as follows.

[0157] FIG. 24 is a diagram showing an example of the state before and after a change in which the voxel portion of the enemy character is tilted in a modified example of the present embodiment. Note that in FIG. 24, as in FIG. 22, an example is shown in which the lower right portion of the voxel portion 222 is deleted.

[0158] Also in this modified example, similar to the above-described embodiment, the game system 1 calculates the position of the center of gravity 231 after the deformation of the voxel portion 222. Here, in this modified example, the game system 1 tilts the voxel portion 222 so that the center of gravity 231 is at a position on the reference axis L. Therefore, in the example of FIG. 24, the portion of the voxel portion 222 on the side where the center of gravity has moved (that is, the left side) approaches the side opposite to the direction of gravity (that is, the upper side), and the right side portion, which is the side opposite to the side where the center of gravity has moved, approaches the side in the weight direction (that is, the lower side), and the voxel portion 222 rotates (see (b) of FIG. 24), and the voxel portion 222 is tilted in the direction opposite to that of the above-described embodiment.

[0159] Note that in the above-described modified example, the game system 1 may rotate the voxel portion 222 in a direction in which the center of gravity after the deformation approaches the position on the reference axis L, and the center of gravity after the rotation may not be at the position on the reference axis L. That is, when an event occurs, the game system 1 may rotate the enemy character around the reference position in a direction in which the center of gravity of the enemy character after the update of the voxel data approaches the reference axis.

[0160] In the above description, the case where the inclination when viewed from the front of the enemy character 221 (i.e., the inclination with respect to rotation around an axis parallel to the front-rear direction) changes was taken as an example. However, in reality, the game system 1 changes the inclination when viewed from any horizontal direction (i.e., any direction perpendicular to the direction of gravity). Specifically, when the shape of the voxel portion 222 changes, the game system 1 tilts the voxel portion 222 with the direction perpendicular to the plane including the center of gravity and the reference axis after deformation as the orientation, and with the axis passing through the reference position as the rotation axis. According to this, the game system 1 can tilt the enemy character 221 forward, backward, left, and right, and can make the posture of the enemy character 221 after the deformation of the voxel portion 222 more natural. In other embodiments, the game system 1 may change the inclination of the enemy character only for the rotation direction around a specific axis (for example, an axis parallel to the front-rear direction).

[0161] [2-4-3. Operation Control in the Tilted State] When the enemy character 221 is tilted due to the deformation of the voxel portion 222 as described above, the game system 1 causes the enemy character 221 to perform a predetermined operation in the tilted state. FIG. 25 is a diagram showing an example of the state of an enemy character performing a walking operation and an attack operation. Note that the axis L' shown in FIG. 25 is shown for the purpose of making the inclination of the enemy character in the figure easy to understand, and is an axis that is parallel to the direction of gravity when the enemy character is in the above reference state.

[0162] In the present embodiment, when causing the enemy character 221 to perform a walking operation, the game system 1 controls the operation of the enemy character 221 while in the tilted state (i.e., the state where the axis L' is tilted with respect to the direction of gravity) (see (a) of FIG. 25). In this way, by keeping the enemy character 221 tilted even during the walking operation, the enemy character 221 can perform the walking operation more naturally.

[0163] In this embodiment, the game system 1 causes the enemy character 221 to perform an action using motion data. The game system 1 stores motion data for each type of action performed by the enemy character 221. The motion data is data that defines the movement of each part (specifically, the non-voxel part) when the character performs an action. Specifically, the motion data indicates the movement of each bone (i.e., the change in the position and orientation of the bone) when performing the action. In this embodiment, the motion data indicates the change from the position and orientation of each bone at the start of the action. Therefore, the game system 1 can use a single motion data to cause the enemy character to perform an action regardless of the orientation of the enemy character in the game space.

[0164] From the above, in this embodiment, when an event occurs, the game system 1 controls the action of the enemy character using motion data while changing the orientation of at least a part of the enemy character. At this time, the game system 1 causes the enemy character to perform an action by moving the bones according to the motion data. According to this, the enemy character can be made to perform actions freely. Also, in this embodiment, since a single motion data can be used regardless of whether the enemy character is in an inclined state or not, there is no need to prepare motion data for each state of the enemy character, and the amount of motion data to be prepared can be reduced.

[0165] Note that in this embodiment, the above motion data indicates the walking action of the character object. That is, the game system 1 controls the action of the enemy character while changing the orientation of at least a part of the enemy character for the walking action. According to this, the enemy character can be made to perform a natural walking action.

[0166] Also, in this embodiment, when causing the enemy character 221 to perform an attack action, the game system 1 controls the movement of the enemy character 221 with the inclination of the enemy character 221 returned to the reference state (see (b) of FIG. 25). As specific movement control, the game system 1 may return the inclination of the enemy character 221 to the reference state immediately before starting the attack action, and then cause the attack action to be performed, or may cause the attack action to be performed while gradually returning the inclination of the enemy character 221 to the reference state after starting the attack action.

[0167] Note that, like the walking action, the attack action is also controlled by moving each bone according to the motion data. That is, when an event occurs, the game system 1 controls the movement of the enemy character using the motion data with the inclination of the enemy character being the same as the inclination before the occurrence of the event.

[0168] Here, the attack action is, for example, an action of swinging the arm or swinging a weapon (not shown). Therefore, if the enemy character 221 performs an attack action in a tilted state, there is a possibility of unnatural actions such as the arm or weapon being buried in the ground during the action. Therefore, in this embodiment, for the attack action, by returning the inclination of the enemy character 221 to the reference state, the above possibility is reduced.

[0169] As described above, in this embodiment, when the game system 1 causes the enemy character to perform two different types of actions, the inclination of the enemy character is made different. That is, when an event occurs, the game system 1 sets the inclination of the enemy character when controlling the movement of the enemy character using the first motion data (for example, the motion data of the walking action) and the inclination of the enemy character when controlling the movement of the enemy character using the second motion data (for example, the motion data of the attack action) to different values. According to this, it is possible to reduce the possibility that unnatural actions will be performed depending on the type of action.

[0170] Note that, in this embodiment, the game system 1 is configured to return the inclination of the enemy character 221 to the reference state during an attack operation. Here, in other embodiments, instead of returning the inclination of the enemy character 221 to the reference state, the game system 1 may be configured to make the inclination amount during the attack operation smaller than the inclination amount during the walking operation. This can also reduce the possibility of unnatural movements occurring, similar to this embodiment.

[0171] [2-4-4. Game Processing] As described above, the player object can erase (also referred to as destroy) the voxel part 222 by attacking the enemy character 221. Here, in this embodiment, even if the voxel part 222 of the enemy character 221 is destroyed, no direct damage is given to the enemy character 221. That is, even if the voxel part 222 is destroyed, the health value of the enemy character 221 does not decrease, and the enemy character 221 is not defeated even if all of the voxel part 222 is erased.

[0172] However, when the voxel part 222 of the enemy character 221 is destroyed or an attached object contacts the voxel part 222, causing the voxel part 222 to deform and change the inclination of the enemy character 221, the position of the weak point of the enemy character 221 (for example, the core 227 set in the head or heart) may drop, making it easier to attack. As a result, the player can proceed with the game advantageously. Note that, in other embodiments, when the inclination of the enemy character 221 is changed, the enemy character 221 may perform a walking operation while dragging a part of the voxel part 222, thereby reducing the movement speed of the enemy character 221. This can also enable the player to proceed with the game advantageously by destroying the voxel part 222, similar to this embodiment.

[0173] In this embodiment, the player object can damage the enemy character 221 by attacking the core 227 of the enemy character 221 and can defeat the enemy character 221. That is, when an event occurs in which the voxel portion 222 of the enemy character 221 is attacked, the game system 1 eliminates at least a part of the voxel portion 222, and when the core 227 of the enemy character 221 is attacked, the entire enemy character is eliminated. Therefore, in this embodiment, the player first destroys the voxel portion 222 of the enemy character 221 to expose the core 227, and then attacks the core 227 to defeat the enemy character 221. In this way, in this embodiment, by configuring the enemy character 221 to have a voxel portion 222 and a core 227 inside it, the strategy for attacking the enemy character 221 can be made strategic, and the interest of the game can be improved.

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

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

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

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

[0178] The main voxel object data is data indicating the main object (here, the terrain object) arranged in the game space. Specifically, the main voxel object data includes main voxel data for each unit area within a part or all of the range in the game space.

[0179] The main mesh data is data indicating the mesh set for the main object arranged in the game space (that is, the mesh of the terrain object). The main mesh data includes, for example, data indicating the positions of the respective vertices in the main mesh.

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

[0181] Sub-voxel object data is data indicating sub-objects (specifically, voxel parts of enemy characters, etc.) arranged in the game space. Specifically, the sub-voxel object data includes sub-voxel data for each unit area within a part or all of the game space.

[0182] Sub-mesh data is data indicating a mesh set for a sub-object arranged in the game space (that is, a mesh of the voxel part of an enemy character, etc.). The sub-mesh data includes, for example, data indicating the positions of each vertex in the sub-mesh.

[0183] Enemy character data is data related to the enemy character 221. In the present embodiment, the enemy character data includes walking motion data, attack motion data, tilt reference value data, bone data, and tilt data. The walking motion data, attack motion data, and tilt reference value data are data stored in the game system 1 in advance before the execution of the game process. The bone data and tilt data are data generated during the execution of the game process.

[0184] The walking motion data indicates the movement of each bone in the walking action by the enemy character 221. The attack motion data indicates the movement of each bone in the attack action by the enemy character 221. The tilt reference value data indicates the tilt of the voxel part 222 in the reference state (specifically, the tilt with respect to the game space). The bone data indicates the position and orientation of each bone 225 set for the enemy character 221. The tilt data indicates the current tilt of the voxel part 222. In addition to the above-mentioned each data, the enemy character data may include data related to the joint 226 (for example, data indicating the connection relationship between bones), data indicating the physical strength value of the enemy character, and the like.

[0185] In addition to the data shown in FIG. 26, the game system 1 stores, as data that is stored in the game system 1 in advance before the execution of the game process, the above-described property information and texture information data, as well as data related to various characters appearing in the game, etc.

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

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

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

[0189] In step S1 shown in FIG. 27, the processor 81 sets a voxel space in the game space. Specifically, the processor 81 acquires the voxel space data (specifically, the main voxel space data and the sub-voxel space data) and stores (i.e., writes) it in the DRAM 85. In subsequent game processing, the processor 81 may refer to the voxel space data when executing processing related to voxel objects (e.g., the processing in step S2). In this case, the processor 81 refers to the voxel space data stored in the DRAM 85. The processing in step S2 is executed after step S1.

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

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

[0192] In step S3, the processor 81 generates a mesh for the object arranged in the game space. The mesh for the voxel object is generated according to the method described in the above “[2-2. Mesh]”. Here, the processor 81 generates a mesh based on the main voxel object data and the sub-voxel object data stored in the DRAM 85, and stores it in the DRAM 85 as the main mesh data or the sub-voxel data. By the process of step S3, the voxel object is constructed in the game space. Further, for an object that is not a voxel object (e.g., the non-voxel part of the enemy character 221), a mesh is generated based on, for example, bones. After the above step S3, the game starts, and the series of processes in steps S4 to S8 are repeatedly executed during the game.

[0193] In step S4, the processor 81 controls the operations of objects other than the enemy character 221. The above "other objects" are, for example, the player object and other enemy characters other than the enemy character 221 (for example, enemy characters without voxel parts). The processor 81 controls the operation of the player object based on, for example, the operation data received from each controller 3 or 4, or controls the operation of the other enemy characters based on the algorithm defined in the game program. The process of step S5 is executed after step S4.

[0194] In step S5, the processor 81 determines whether to deform the voxel object. The processor 81 determines, for example, whether an event for deforming the voxel object has occurred for the voxel part 222 of the enemy character 221 that is a voxel object or the terrain object. 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 S6 is skipped and the process of step S7 is executed.

[0195] In step S6, the processor 81 updates the voxel data regarding the voxel object determined to be deformed. Specifically, the processor 81 changes the density indicated by the voxel data so as to correspond to the shape of the voxel object after deformation. Further, the processor 81 updates the voxel object data stored in the DRAM 85 so as to indicate the changed density. The process of step S7 is executed after step S6.

[0196] In step S7, the processor 81 executes enemy character processing for controlling the operation of the enemy character 221. Hereinafter, with reference to FIG. 28, the detailed flow of the enemy character processing will be described.

[0197] FIG. 28 is a sub-flowchart showing an example of the detailed flow of the enemy character process in step S7 shown in FIG. 27. In the enemy character process, first, in step S11, the processor 81 determines whether or not the voxel portion 222 of the enemy character 221 has been deformed. That is, the processor 81 determines whether or not the voxel data of the voxel portion 222 has been updated in step S6 above. If the determination result in step S11 is affirmative, the process of step S12 is executed. On the other hand, if the determination result in step S11 is negative, the series of processes from steps S12 to S14 are skipped, and the process of step S15 described later is executed.

[0198] In step S12, the processor 81 calculates the center of gravity of the deformed voxel portion 222. That is, the processor 81 calculates the position of the new center of gravity according to the method described in the above "[2-4-2. Process of tilting the enemy character]". The process of step S13 is executed after step S12.

[0199] In step S13, the processor 81 determines the tilting direction and the tilting amount of the voxel portion 222 based on the position of the center of gravity calculated in step S12. These tilting directions and amounts are determined according to the method described in the above "[2-4-2. Process of tilting the enemy character]". The process of step S14 is executed after step S13.

[0200] In step S14, the processor 81 changes the tilt of the enemy character 221. Specifically, the processor 81 tilts the enemy character 221 based on the determined tilt direction and tilt amount determined in step S13. Specifically, as described in the above "[2-4-2. Process of tilting the enemy character]", the voxel portion 222 and the non-voxel portion above the reference position are tilted by the determined amount in the determined direction. At this time, the processor 81 stores the data indicating the tilt of the enemy character 221 after the change as the above tilt data in the DRAM 85. The process of step S15 is executed after step S14.

[0201] In step S15, the processor 81 determines whether to make the enemy character 221 perform a walking action. For example, the action that the enemy character 221 should perform is determined based on an algorithm defined in the game program. When the condition for making the enemy character 221 perform a walking action is satisfied in the said algorithm, it is determined to make the enemy character 221 perform a walking action. If the determination result in step S15 is affirmative, the process of step S16 is executed. On the other hand, if the determination result in step S15 is negative, the process of step S16 is skipped and the process of step S17 is executed.

[0202] In step S16, the processor 81 makes the enemy character 221 perform a walking action while maintaining the current inclination. Specifically, the processor 81 changes the position and orientation of each bone of the enemy character 221 based on the walking motion data stored in the DRAM 85 without changing the current inclination. In this embodiment, the process of step S16 is executed at a rate of once per frame time. Therefore, in one execution of the process of step S16, the processor 81 changes the position and orientation of each bone by the amount of change for one frame. At this time, the processor 81 updates the bone data stored in the DRAM 85 so as to indicate the position and orientation of each bone after the change.

[0203] Also, in step S16 above, the processor 81 changes the position and orientation of the voxel part 222 according to the position and orientation of each bone. For example, the position and orientation of the voxel part 222 can be changed by changing the position and orientation of the sub-voxel space related to the voxel part 222. At this time, the processor 81 updates the voxel data of the voxel part 222 stored in the DRAM 85. The process of step S17 is executed after step S16.

[0204] In step S17, the processor 81 determines whether to cause the enemy character 221 to perform an attack action. For example, if the condition for causing the attack action in the above algorithm is satisfied, it is determined to cause the enemy character 221 to perform an attack action. If the determination result in step S17 is affirmative, the process of step S18 is executed. On the other hand, if the determination result in step S17 is negative, the process of step S18 is skipped and the process of step S19 is executed.

[0205] In step S18, the processor 81 causes the enemy character 221 to perform an attack action with the inclination in the reference state. Specifically, the processor 81 sets the inclination of the enemy character 221 as the inclination in the reference state, and based on the attack motion data stored in the DRAM 85, changes the position and orientation of each bone of the enemy character 221. The inclination in the reference state can be specified by referring to the inclination reference value data stored in the DRAM 85. Similar to step S16 above, in one process of step S18, the processor 81 changes the position and orientation of each bone by the amount of change for one frame. Also, the processor 81 changes the position and orientation of the voxel part 222 according to the position and orientation of each bone. The processor 81 updates the bone data stored in the DRAM 85 so as to indicate the position and orientation of each bone after the change, and updates the voxel data stored in the DRAM 85 so as to indicate the position and orientation of the voxel part 222 after the change. The process of step S19 is executed after the process of step S18.

[0206] In step S19, the processor 81 determines whether the core 227 of the enemy character 221 has been attacked. If the determination result in step S19 is affirmative, the process of step S20 is executed. On the other hand, if the determination result in step S19 is negative, the processor 81 ends the enemy character process shown in FIG. 28.

[0207] In step S20, the processor 81 eliminates the enemy character 221 from the game space. At this time, the processor 81 deletes the sub-voxel space data and sub-voxel object data related to the enemy character 221 from the DRAM 85. After the processing of step S20 ends, the processor 81 ends the enemy character processing shown in FIG. 28.

[0208] Returning to the description of FIG. 27, after the enemy character processing in step S7, the processing of step S8 is executed. In step S8, the processor 81 updates the mesh for the voxel object whose voxel data was changed in the above step S6 or S7 (specifically, step S16 or S18). That is, the processor 81 generates a mesh based on the changed voxel data. Thereby, the mesh of the voxel object can be dynamically changed during the game. Note that the processor 81 updates the mesh data (that is, the main mesh data and the sub-mesh data) stored in the DRAM 85 with the content indicating the newly generated mesh. After step S8, the processing of step S9 is executed.

[0209] In step S9, the processor 81 generates a game image representing the game space and causes it to be displayed on the display device. Specifically, the processor 81 generates a game image representing the game space including the voxel object and other objects (for example, the non-voxel part of the enemy character 221). Note that the image of the voxel object is generated according to the method described in the above “[2-2. Mesh]” using the voxel object data and mesh data stored in the DRAM 85. The processor 81 causes the generated game image to be displayed on the display device. Note that during the game, the processing of step S9 is repeatedly executed at a rate of once per predetermined time (for example, one frame time). After step S9, the processing of step S10 is executed.

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

[0211] [4. Effects and Modifications of the Present Embodiment] As described above, in the above embodiment, the information processing system (specifically, the game system 1) has a configuration including the following means. - Mesh generation means (steps S3 and S8) for generating a mesh of the character object based on voxel data regarding the character object (for example, the enemy character 221) in the virtual space. - Motion control means (steps S16 and S18) for controlling the movement of the character object using the first motion data (for example, walking motion data). - Voxel data update means (step S6) for updating the voxel data regarding the character object when an event (for example, an event for deforming the voxel portion 222) occurs for the character object. - Image generation means (step S9) for generating an image of the virtual space including an image of the mesh of the character object to be output to the display device. In the above configuration, when the voxel data is updated, the mesh generation means generates a mesh of the character object based on the updated voxel data (step S8). When an event occurs, the motion control means controls the movement of the character object using the first motion data in a state where the inclination with respect to the virtual space of at least a part of the character object (for example, the voxel portion 222 and a part of the non-voxel portion 223) is changed (step S16).

[0212] According to the above configuration, when the voxel data is updated, by controlling the movement of the character object while changing the inclination of the character object, a natural movement can be caused in the character object. Further, by using the same motion data in the state where the inclination is changed and the state where it is not changed, the data amount of the motion data can be reduced. From the above, according to the above embodiment, a natural movement can be caused in the object with a small amount of motion data.

[0213] Also, in the above embodiment, when the voxel data is updated, the information processing system calculates the center of gravity regarding at least a portion of the character object that includes at least a portion generated by the voxel data based on the updated voxel data (step S12). Then, the information processing system determines the direction in which at least a part of the inclination of the character object is changed based on the change in the center of gravity before and after the event occurs (steps S13, FIGS. 22 and 24). According to the above, by calculating the center of gravity based on the voxel data, the processing load for the calculation can be reduced. Further, by determining the direction of the inclination according to the center of gravity, a natural movement can be caused in the object.

[0214] Note that the "center of gravity regarding at least a portion of the character object that includes at least a portion generated by the voxel data" refers to the center of gravity calculated for the portion of the character object that includes the portion. That is, the above center of gravity may be the center of gravity regarding the portion, or may be the center of gravity regarding the portion and a portion whose inclination changes together with the portion (for example, a part of the non-voxel portion 223), or may be the center of gravity regarding the entire character object.

[0215] (Modification example regarding the character object) In the above embodiment, the case of controlling the movement of an enemy character as an example of a character object has been described. Here, the type and appearance of the character object are arbitrary and are not limited to enemy characters. For example, the information processing system may perform the tilt control and movement control in the above embodiment for a player object operated by a player. Further, the above enemy character was a character object that performs bipedal walking. However, for example, the information processing system may perform the tilt control and movement control in the above embodiment for a character object that performs quadrupedal walking or a character object that flies in the air. Note that, for a character object that performs quadrupedal walking, the information processing system may change the tilt of the character object only in the rotational direction around an axis parallel to the front-rear direction and may not change the tilt of the character object in the rotational direction around an axis parallel to the left-right direction. Also, for a character object that flies in the air, the information processing system may cause the character object to perform a flapping motion in a state where the tilt is changed.

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

Industrial Applicability

[0217] The above embodiment can be used, for example, as a game system and a game program for the purpose of causing an object to perform a natural movement with a small amount of motion data.

Explanation of Signs

[0218] 1 Game system 2 Main body device 3 Left Controller 4 Right Controller 81 Processor 221 Enemy Character 222 Voxel Part 223 Non-Voxel Part 225 Bone 226 Joint 227 Core 231 Center of Gravity

Claims

Claim 1 An information processing program executed by a computer of an information processing apparatus, causing the computer to generate a mesh of the character object based on voxel data regarding the character object in a virtual space; a mesh generation means; control the motion of the character object using first motion data; a motion control means; when an event occurs for the character object, update the voxel data regarding the character object; a voxel data update means; function as an image generation means for generating an image of the virtual space including an image of the mesh of the character object and outputting the image to a display device; when the voxel data is updated, the mesh generation means generates the mesh of the character object based on the updated voxel data; when the event occurs, the motion control means controls the motion of the character object using the first motion data in a state where the inclination with respect to the virtual space of at least a part of the character object is changed. An information processing program. Claim 2 The information processing program further causes the computer to function as a center-of-gravity calculation means for calculating the center of gravity of a portion including at least a portion of the character object generated by the voxel data, based on the updated voxel data when the voxel data is updated; The motion control means determines the direction of changing the inclination of at least a part of the character object based on the change in the center of gravity before and after the event occurs. The information processing program according to claim 1. Claim 3 When passing through at least a part of the character object and using a straight line parallel to the direction of gravity in the virtual space as a reference axis, when the event occurs, the motion control means causes the part of the character object on the side where the center of gravity of the character object after the update of the voxel data exists to approach the direction of gravity with respect to the reference axis, and rotates at least a part of the character object around the reference position set for the character object so as to change the inclination of the character object. The information processing program according to claim 2.

4. When passing through at least a part of the character object and using a straight line parallel to the direction of gravity in the virtual space as a reference axis, when the event occurs, the motion control means rotates at least a part of the character object around the reference position set for the character object in the direction in which the center of gravity of the character object after the update of the voxel data approaches the reference axis, so as to change the inclination of the character object. The information processing program according to claim 2.

5. The reference axis is a straight line that passes through a position different from the reference position and is parallel to the direction of gravity in the virtual space. The information processing program according to claim 3 or claim 4.

6. The reference axis is a straight line that passes through the center of gravity of the character object before the voxel data is updated and is parallel to the direction of gravity in the virtual space. The information processing program according to any one of claims 3 to 5.

7. The character object has a part associated with a bone set for the character object. The motion control means causes the character object to perform an operation by moving the bone according to the first motion data. The information processing program according to any one of claims 3 to 6.

8. The character object has a first part whose shape is defined based on the voxel data and a second part that is different from the first part and is associated with the bone. The motion control means changes the inclination between the first part and a part of the second part as at least a part of the character object when the event occurs. The information processing program according to claim 7.

9. The reference position is the position of the joint at the waist of the character object among the joints connecting the bones. The information processing program according to claim 7 or claim 8.

10. The first motion data indicates a walking motion of the character object. The information processing program according to any one of claims 1 to 9.

11. The motion control means sets an upper limit on the angle at which the character object is tilted. The information processing program according to any one of claims 1 to 10.

12. When the event occurs, the voxel data updating means updates the voxel data so as to reduce the volume of the character object. The information processing program according to any one of claims 1 to 11.

13. When the event occurs, the voxel data updating means updates the voxel data so as to increase the volume of the character object. The information processing program according to any one of claims 1 to 11.

14. The motion control means further controls the motion of the character object using second motion data different from the first motion data, and when the event occurs, sets the inclination of the character object when controlling the motion of the character object using the first motion data and the inclination of the character object when controlling the motion of the character object using the second motion data to different values. The information processing program according to any one of claims 1 to 13.

15. When the event occurs, the motion control means controls the motion of the character object using the second motion data with the inclination of the character object being the same as the inclination before the occurrence of the event. The information processing program according to claim 14.

16. The character object is an enemy character object and has a core inside a voxel object part whose shape is defined based on the voxel data. The event is that the enemy character object is attacked. The computer is further caused to function as character elimination means for eliminating the entire enemy character object when the core is attacked, the information processing program according to any one of claims 1 to 15.

17. In a virtual space, mesh generation means for generating a mesh of the character object based on voxel data related to the character object, Motion control means for controlling the motion of the character object using first motion data, Voxel data update means for updating the voxel data related to the character object when an event occurs for the character object, Image generation means for generating an image of the virtual space including an image of the mesh of the character object to output to a display device, and The mesh generation means generates the mesh of the character object based on the updated voxel data when the voxel data is updated. The motion control means controls the motion of the character object using the first motion data in a state where the inclination with respect to the virtual space of at least a part of the character object is changed when the event occurs, the information processing system.

18. In a virtual space, mesh generation means for generating a mesh of the character object based on voxel data related to the character object, Motion control means for controlling the motion of the character object using first motion data, Voxel data update means for updating the voxel data related to the character object when an event occurs for the character object, Image generation means for generating an image of the virtual space including an image of the mesh of the character object to output to a display device, and When the voxel data is updated, the mesh generation means generates the mesh of the character object based on the updated voxel data. When the event occurs, the motion control means controls the motion of the character object using the first motion data in a state where the inclination with respect to the virtual space of at least a part of the character object is changed. An information processing apparatus.

19. An information processing method executed by an information processing system, A mesh generation step of generating a mesh of the character object based on voxel data related to the character object in a virtual space; A motion control step of controlling the motion of the character object using first motion data; A voxel data update step of updating the voxel data related to the character object when an event occurs for the character object; An image generation step of generating an image of the virtual space including an image of the mesh of the character object to be output to a display device, In the mesh generation step, when the voxel data is updated, the mesh of the character object is generated based on the updated voxel data. In the motion control step, when the event occurs, the motion of the character object is controlled using the first motion data in a state where the inclination with respect to the virtual space of at least a part of the character object is changed. An information processing method.

Citation Information

Patent Citations

  • Image generation system and information storage medium

    JP2001006000A

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

    JP2004062666A

  • Program, information storage medium and image generation system

    JP2008033521A

  • Video game processing apparatus and video game processing program

    JP2013000226A

  • Virtual environment-based object construction method, device, computer device, and computer program

    JP2022508162A