Game program, information processing system, information processing unit and information processing method
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- NINTENDO CO LTD
- Filing Date
- 2024-05-24
- Publication Date
- 2026-04-20
AI Technical Summary
Existing games do not adequately allow players to manipulate objects through the actions of their character, particularly when the character is riding on them, leading to issues with maintaining position and control.
The game program controls the movement of dynamic objects in a virtual space using physical calculations and operation inputs, preventing movement of objects when the player character is in contact with them, and allowing for the creation of assembly objects through manipulation actions while ensuring the player character remains stable on these objects.
This approach enables the player character to move seamlessly with dynamic objects without shifting position, maintaining control and stability, even when objects are in motion, thereby enhancing gameplay experience.
Smart Images

Figure 00000000_0001_ABST 
Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a game program, an information processing system, an information processing device, and an information processing method. [Background technology]
[0002] 2. Description of the Related Art Conventionally, there are games in which a player character can operate objects placed in a virtual space (for example, see Non-Patent Document 1). [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] “The Legend of Zelda: Breath of the Wild”, [online], 2022, Nintendo of America, [Retrieved April 13, 2023], Internet<URL:https: / / www.zelda.com / breath-of-the-wild / > Summary of the Invention [Problem to be solved by the invention]
[0004] However, when considering cases in which the player character rides on various objects, there is room for improvement in order to allow the objects to be appropriately operated by the actions of the player character.
[0005] Therefore, an object of the present invention is to provide a game program, an information processing system, an information processing device, and an information processing method that enable an object to be appropriately operated by the action of a player character. [Means for solving the problem]
[0006] In order to solve the above problems, the present invention employs the following configuration.
[0007] (First Configuration) A game program according to a first configuration causes a computer of an information processing device to control the movement of a movable dynamic object arranged in the virtual space based on a physical calculation, and to control a player character in the virtual space based on an operation input. The game program also causes the computer to perform an object operation action including at least a first operation for moving a designated dynamic object and a second operation for combining the designated dynamic object with another dynamic object to form the assembled object based on the operation input, to perform a contact determination with respect to a downward direction of the player character, and to perform control not to move the dynamic object by the first operation when the assembled object including the dynamic object designated by the object operation action includes the dynamic object in contact with the downward direction of the player character.
[0008] According to the above, when the player character is in contact with a dynamic object included in an assembly object, the assembly object can be prevented from being moved by an object manipulation action, thereby making it possible to prevent, for example, the assembly object on which the player character is riding from continuing to move by an object manipulation action.
[0009] (Second Configuration) In a second configuration, in the above first configuration, the computer may further perform control to prevent the dynamic object from being moved by the first operation when the dynamic object that is in contact with the player character in a downward direction is placed on the dynamic object specified by the object operation action or the assembly object that includes the dynamic object.
[0010] According to the above, when another dynamic object or assembly object is in contact with the dynamic object on which the player character is riding, the other dynamic object or assembly object cannot be specified and moved by an object manipulation action. This makes it possible to prevent the dynamic object or assembly object on which the player character PC is indirectly riding from being moved by an object manipulation action.
[0011] (Third Configuration) In a third configuration, in the first or second configuration, the dynamic object may include a propulsion object having an operating state and a non-operating state and generating a propulsion force in the operating state. The game program may cause the computer to control the movement of the assembly object based on the propulsion force when the assembly object includes the propulsion object in the operating state.
[0012] According to the above, it is possible to move the assembly object based on the propulsion object that generates a propulsion force, and for example, it is possible to move the player character by riding on the assembly object.
[0013] (Fourth Configuration) A game program according to a first configuration causes a computer of an information processing device to control the movement of a movable dynamic object arranged in the virtual space based on a physical calculation, and to control a player character in the virtual space based on an operation input. The game program also causes the computer to perform an object operation action including at least a first operation for moving a designated dynamic object based on the operation input, to perform a contact determination for an object on which the player character is riding, and to perform control not to move the dynamic object by the first operation when the player character is directly riding on the dynamic object designated by the object operation action and when the player character is indirectly riding on the dynamic object designated by the object operation action.
[0014] Based on the above, it is possible to specify a dynamic object on which the player character is directly riding and a dynamic object on which the player character is indirectly riding, and to prevent the dynamic object from moving by an object manipulation action.
[0015] Furthermore, the other configuration may be an information processing system, an information processing device, or an information processing method. Effect of the Invention
[0016] According to the present invention, when the player character is in contact with the dynamic object, the player character can be moved together with the dynamic object without being displaced from its position on the dynamic object. [Brief description of the drawings]
[0017] [Figure 1] FIG. 1 illustrates an example of a game system. [Diagram 2] A block diagram showing an example of the internal configuration of the main unit 2. [Diagram 3] FIG. 13 is a diagram showing an example of a game image displayed when the game of the present embodiment is executed. [Figure 4] FIG. 13 is a diagram showing an example of a game image when a dynamic object 31 is being operated by an object operation action of a player character PC. [Diagram 5] FIG. 13 is a diagram showing an example of a game image when an electric fan object 31a is being moved based on an object operation action. [Figure 6] FIG. 13 is a diagram showing an example of an airplane object 40, which is an example of an assembly object generated based on an object manipulation action, and includes an electric fan object 31a and a wing object 31d. [Figure 7] FIG. 13 is a diagram showing an example of a four-wheeled vehicle object 41, which is another example of an assembly object generated based on an object manipulation action. [Figure 8]FIG. 8 is a diagram showing the player character PC moving on the four-wheeled vehicle object 41 as viewed from the side in the virtual space, and shows the forces acting on each dynamic object and the movement of the four-wheeled vehicle object 41. [Figure 9] FIG. 13 is a diagram showing a state in which the player character PC, while riding on the moving four-wheeled vehicle object 41, moves further on the four-wheeled vehicle object 41 in response to a directional operation input. [Figure 10] FIG. 13 is a diagram showing a state in which the player character PC moves on an airplane object 40. [Figure 11] FIG. 13 is a diagram showing an example of an assembly object 42 including a first special object 31c and a board object 31e. [Figure 12] FIG. 13 is a diagram showing a state in which an assembly object 42 including a first special object 31c and a board object 31e performs a predetermined behavior when the first special object 31c is in an operating state. [Figure 13] FIG. 13 is a diagram showing a state in which the first special object 31c performs a predetermined behavior when the player character PC is standing on the assembly object 42 including the first special object 31c. [Figure 14] FIG. 13 is a diagram showing an example of a state in which the second special object 31f performs a predetermined behavior when the player character PC is standing on the second special object 31f. [Figure 15] FIG. 13 is a diagram showing an example of a situation in which, when a player character PC is standing on a dynamic object, another dynamic object cannot be moved by an object manipulation action. [Figure 16] FIG. 13 is a diagram showing an example of a situation in which, when a player character PC is standing on a dynamic object, another dynamic object cannot be moved by an object manipulation action. [Figure 17] FIG. 13 is a diagram showing an example of a situation in which, when a player character PC is standing on a dynamic object, another dynamic object cannot be moved by an object manipulation action. [Figure 18]FIG. 13 is a diagram showing an example of data stored in the memory of the main unit 2 during execution of the game process. [Figure 19] 1 is a flowchart showing an example of a game process executed by the processor 21. [Figure 20] A flowchart showing an example of the player character action process in step S102. [Figure 21] A flowchart showing an example of the dynamic object update process in step S103. [Figure 22] A flowchart showing an example of the player character update process in step S104. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0018] (Game System Configuration) A game system according to an example of the present embodiment will be described below. FIG. 1 is a diagram showing an example of the game system. An example of the game system 1 in the present embodiment includes a main unit (information processing device; in the present embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The main unit 2 is a device that executes various processes (for example, game processes) in the game system 1. The left controller 3 includes a plurality of buttons 5L (up, down, left, right directional keys) and an analog stick 6L as an example of an operation unit for a user to input. The right controller 4 includes a plurality of buttons 5R (A button, B button, X button, Y button) and an analog stick 6R as an example of an operation unit for a user to input. In addition, an L button 7L is provided on the top surface of the left controller 3, and an R button 7R is provided on the top surface of the right controller 4.
[0019] The main unit 2 is configured so that the left controller 3 and the right controller 4 can be detachably attached to it. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2, or the main unit 2 can be used as separate entities from the left controller 3 and the right controller 4. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller."
[0020] FIG. 2 is a block diagram showing an example of the internal configuration of the main unit 2. As shown in FIG. 2, the main unit 2 includes a processor 21. The processor 21 is an information processing section that executes various information processes (e.g., game processes) executed in the main unit 2, and includes, for example, a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit). The processor 21 may be composed of only a CPU, or may be composed of a SoC (System-on-a-chip) including multiple functions such as a CPU function and a GPU function. The processor 21 executes various information processes by executing an information processing program (e.g., a game program) stored in a storage section (specifically, an internal storage medium such as a flash memory 26, or an external storage medium attached to a slot 29, etc.).
[0021] The main device 2 also includes a display 12. The display 12 displays images generated by the main device 2. In this embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device. The display 12 is connected to a processor 21. The processor 21 displays images generated (for example, by executing the above-mentioned information processing) and / or images acquired from the outside on the display 12.
[0022] The main unit 2 also has a left side terminal 23, which is a terminal through which the main unit 2 performs wired communication with the left controller 3, and a right side terminal 22 through which the main unit 2 performs wired communication with the right controller 4.
[0023] Furthermore, the main device 2 includes a flash memory 26 and a dynamic random access memory (DRAM) 27 as examples of internal storage media built into the main device 2. The flash memory 26 and the DRAM 27 are connected to the processor 21. The flash memory 26 is a memory used mainly for storing various data (which may be programs) saved in the main device 2. The DRAM 27 is a memory used for temporarily storing various data used in information processing.
[0024] The main unit 2 includes a slot 29. The slot 29 has a shape that allows a predetermined type of storage medium to be attached thereto. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data used by the main unit 2 (e.g., save data of a game application, etc.) and / or a program executed by the main unit 2 (e.g., a game program, etc.).
[0025] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 28. The slot I / F 28 is connected to the processor 21. The slot I / F 28 is connected to a slot 29, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted in the slot 29 in response to instructions from the processor 21.
[0026] The processor 21 appropriately reads and writes data from and to the flash memory 26, the DRAM 27, and the above-mentioned storage media, to execute the above-mentioned information processing.
[0027] The main unit 2 also includes a network communication unit 24. The network communication unit 24 is connected to the processor 21. The network communication unit 24 communicates with an external device via a network, wirelessly or wired. In this embodiment, the network communication unit 24 connects to a wireless LAN and communicates with an external device using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 24 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (e.g., communication using a unique protocol or infrared communication) as a second communication mode. Note that the wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication" in which data is transmitted and received by directly communicating between multiple main units 2.
[0028] The main unit 2 includes a controller communication unit 25. The controller communication unit 25 is connected to the processor 21. The controller communication unit 25 performs wireless communication with the left controller 3 and / or the right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 25 performs communication with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0029] The processor 21 is connected to the above-mentioned left side terminal 23 and right side terminal 22. When the processor 21 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left side terminal 23 and receives operation data from the left controller 3 via the left side terminal 23. When the processor 21 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right side terminal 22 and receives operation data from the right controller 4 via the right side terminal 22. In this way, in this embodiment, the main unit 2 can perform both wired communication and wireless communication with the left controller 3 and the right controller 4, respectively.
[0030] In addition to the elements shown in FIG. 2, the main unit 2 also includes a battery for supplying power, and an output terminal for outputting images and sounds to a display device other than the display 12 (for example, a television).
[0031] (Game Overview) Next, the game of this embodiment will be described. In the game of this embodiment, a player character PC that is controlled based on operational inputs by the player is placed in a three-dimensional virtual space (game space).
[0032] FIG. 3 is a diagram showing an example of a game image displayed when the game of this embodiment is executed. As shown in FIG. 3, a player character PC and a plurality of dynamic objects 31 (for example, 31a to 31f) are placed on a ground 30 in a virtual space. The dynamic objects 31 are objects that can move in the virtual space. As described later, the dynamic objects 31 include objects that generate force by themselves and objects that do not generate force by themselves but receive force or gravity from other objects and move. Although omitted in FIG. 3, non-player characters (for example, enemy characters, characters that are friends of the player character PC, etc.) controlled by the processor 21 are placed in the virtual space in addition to the player character PC.
[0033] At least one of the multiple dynamic objects 31 may be placed in the virtual space in advance. Also, at least one of the multiple dynamic objects 31 may be placed in the virtual space in response to an operation input by a player. Also, at least one of the multiple dynamic objects 31 may be placed in the virtual space when the player character PC defeats an enemy character.
[0034] The player character PC moves within the virtual space and performs one of a plurality of actions within the virtual space based on operational input to the controller (3 or 4).
[0035] For example, based on a directional operation input to the analog stick 6L of the controller 3, the player character PC moves at a predetermined speed on the ground 30 in the virtual space. The speed at which the player character PC moves on the ground 30 may change according to the tilt angle of the analog stick 6L. In addition, the speed at which the player character PC moves on the ground 30 may change according to the friction between the player character PC and the ground 30 and the tilt of the ground 30.
[0036] Furthermore, the player character PC performs an attack action as one of a plurality of actions. Specifically, the player character PC equips a weapon object that he or she owns, and performs an attack action according to the equipped weapon object based on the operation input of the player.
[0037] Furthermore, the player character PC performs an object manipulation action as one of a plurality of actions. The object manipulation action is, for example, an action of remotely manipulating a dynamic object 31 in front of the player character PC. The dynamic object 31 is an object that can be a target of the object manipulation action of the player character PC. The player character PC manipulates the dynamic object 31 based on the object manipulation action.
[0038] Specifically, based on the operation input of the player, one of a plurality of dynamic objects arranged in the virtual space is set as a control target of the object manipulation action. Based on the object manipulation action, the control target is moved in the virtual space. Based on the object manipulation action, the attitude of the control target is controlled. Based on the object manipulation action, the control target is connected (combined) to another dynamic object arranged in the virtual space and combined with the other dynamic object. In this way, an assembled object that combines a plurality of dynamic objects is generated. The operation of the dynamic object 31 based on the object manipulation action will be described later.
[0039] The dynamic object 31 may be movable in the virtual space not only by the object operation action but also by other actions of the player character PC (for example, an action to lift an object). Although such other actions can move the dynamic object 31, they may not be able to combine the dynamic object with other dynamic objects, unlike the object operation action.
[0040] In addition, static objects that are not moved by the actions of the player character PC or by forces from other objects are also placed in the virtual space. Examples of static objects are terrain objects such as rocks, mountains, buildings, and the ground that are fixed in the virtual space. Static objects are objects that cannot be operated by object operation actions.
[0041] As shown in FIG. 3, the multiple dynamic objects 31 include, for example, an electric fan object 31a, a wheel object 31b, a first special object 31c, a wing object 31d, a board object 31e, and a second special object 31f.
[0042] The electric fan object 31a is an object that imitates an electric fan. The electric fan object 31a has a non-operating state and an operating state, and when in the operating state, it generates wind in the virtual space and can blow away objects (e.g., enemy characters) placed in the virtual space by the force of the wind. The electric fan object 31a also generates a propulsive force in the opposite direction to the wind direction.
[0043] The wheel object 31b is an object that resembles a wheel. The wheel object 31b has a non-operating state and an operating state, and rotates in a predetermined direction when in the operating state, generating a propulsive force by the rotation.
[0044] The first special object 31c has a non-operating state and an operating state, and when it is in the operating state, it performs a predetermined behavior of changing from a first posture to a second posture. In the non-operating state, the first special object 31c has the first posture based on its shape and center of gravity position, but when it is in the operating state, it generates a force that tries to change it to the second posture. The details of the first special object 31c will be described later.
[0045] The wing object 31d is an object for flying in the air, and generates an upward force in the virtual space when moving in the virtual space at a predetermined speed or faster.
[0046] The plate object 31e is a planar object and can be used as, for example, the body of a vehicle.
[0047] The second special object 31f is, for example, an object simulating a spring. The second special object 31f has a non-operating state and an operating state, and when in the operating state, performs a predetermined behavior of changing from a contracted state to an extended state. While performing the predetermined behavior, the second special object 31f can forcefully launch an object standing on it into the virtual space. Details of the second special object 31f will be described later.
[0048] The electric fan object 31a and the wheel object 31b are dynamic objects that generate a propulsive force by themselves when in an operating state, and can move in a virtual space by the propulsive force. The first special object 31c and the second special object 31f are dynamic objects that perform a predetermined behavior in a virtual space by a force generated by themselves when in an operating state. On the other hand, the wing object 31d and the board object 31e are objects that do not have a non-operating state and an operating state, and do not generate a propulsive force by themselves or perform a predetermined behavior by a force generated by themselves. For example, the wing object 31d generates a lift force when moving at a predetermined speed or higher in a virtual space by, for example, applying a force from another object, but cannot move by its own force. The board object 31e can move in a virtual space by applying a force from another object, but cannot move by its own force.
[0049] In addition to those shown in Fig. 3, various dynamic objects 31 are prepared. For example, as the dynamic object 31, a rocket object that temporarily generates a large propulsive force when in an operating state may be prepared.
[0050] (Manipulating dynamic objects with object manipulation actions) As described above, in the game of this embodiment, the dynamic object 31 can be moved based on the object operation action of the player character PC. In addition, a plurality of dynamic objects 31 can be combined based on the object operation action to generate an assembly object.
[0051] FIG. 4 is a diagram showing an example of a game image when the dynamic object 31 is being operated by an object operating action of the player character PC.
[0052] For example, when a dynamic object 31 is in front of the player character PC (or in the vicinity of the gaze point of the virtual camera) and a predetermined operation input is performed, the player character PC performs an object operation action on the dynamic object 31. For example, a fan object 31a is selected from among a plurality of dynamic objects 31 arranged in a virtual space in response to a predetermined selection operation. Then, when a predetermined operation input is performed, as shown in FIG. 4, the selected fan object 31a becomes a control target, and an object operation action is being performed on the control target. In the state where an object operation action is being performed on the fan object 31a, the fan object 31a is in a state of floating above the ground and is displayed in a different manner from normal. In addition, an effect image 60 indicating that an object operation action is being performed is displayed.
[0053] At this time, when the player character PC moves in response to a movement operation input by the player (for example, a directional operation input to the analog stick 6L of the left controller 3), the electric fan object 31a also moves. Also, for example, when a directional operation input is made to the analog stick 6R of the right controller 4, the direction of the player character PC changes and the electric fan object 31a may move in the virtual space so that the electric fan object 31a is positioned in front of the player character PC. Also, for example, in response to a key operation on the button 5L, the electric fan object 31a may be moved without moving the player character PC, or the electric fan object 31a may be rotated without changing the direction of the player character PC.
[0054] FIG. 5 is a diagram showing an example of a game image when the electric fan object 31a is moved based on the object operation action. As shown in FIG. 5, for example, when the player character PC moves toward the wing object 31d while operating the electric fan object 31a based on the object operation action, the electric fan object 31a also moves in the same direction following the player character PC. Alternatively, the electric fan object 31a may move toward the wing object 31d in response to a key operation on the button 5L while operating the electric fan object 31a based on the object operation action. When the electric fan object 31a and the wing object 31d satisfy a predetermined connection condition (for example, the distance between them is less than a threshold), a connection object 32 suggesting a connection position is displayed (FIG. 5). When the connection object 32 is displayed and a connection instruction (for example, pressing the A button) is performed by the player, the electric fan object 31a is connected (joined) to the wing object 31d. As a result, an assembly object including a plurality of dynamic objects 31 is generated. Here, an airplane object 40 including an electric fan object 31a and a wing object 31d is generated as the assembly object.
[0055] FIG. 6 is a diagram showing an example of an airplane object 40, which is an example of an assembly object generated based on an object operating action, and which includes an electric fan object 31a and a wing object 31d.
[0056] 6, a connection object 32 is placed between the electric fan object 31a and the wing object 31d. The connection object 32 is an object that indicates that the dynamic objects 31 are connected to each other and the connection positions, and is an object that fixes the positional relationship between the dynamic objects 31. A plurality of dynamic objects 31 included in an assembly object are connected by this connection object 32.
[0057] An assembly object including multiple dynamic objects 31 operates as a single unit in a virtual space. For example, when an electric fan object 31a included in an airplane object 40 changes from a non-operating state to an operating state, the electric fan object 31a generates a propulsive force. The propulsive force of the electric fan object 31a is also transmitted to a wing object 31d connected to the electric fan object 31a via a connection object 32, and the airplane object 40 including the electric fan object 31a and the wing object 31d starts to move.
[0058] After the airplane object 40 starts moving, if its speed exceeds a predetermined value, the airplane object 40 floats in the air due to the lift of the wing object 31d and flies in the virtual space. The player character PC can ride on the airplane object 40 and fly in the virtual space.
[0059] FIG. 7 is a diagram showing an example of a four-wheeled vehicle object 41, which is another example of an assembly object generated based on an object operating action.
[0060] 7, the four-wheeled vehicle object 41 includes a plank object 31e and four wheel objects 31b. For example, the four wheel objects 31b are connected in order to the sides of the plank object 31e based on an object manipulation action. The plank object 31e and the four wheel objects 31b are each connected by a connection object 32. In this way, the four-wheeled vehicle object 41, which is an assembled object that operates as a single unit, is generated.
[0061] When in an operating state, each wheel object 31b rotates in a predetermined direction. It is assumed that the four wheel objects 31b are connected to the plate object 31e so that the four wheel objects 31b rotate in the same direction. In this case, when the four wheel objects 31b are in an operating state, each of the four wheel objects 31b generates a propulsive force in the same direction, and the four-wheeled vehicle object 41 starts moving on the ground in the virtual space. By riding on the four-wheeled vehicle object 41, the player character PC can move faster than walking on the ground in the virtual space.
[0062] (When the player character moves on a dynamic object) Next, a description will be given of the control when the player character PC moves on a dynamic object.
[0063] In the game of this embodiment, when the player character PC is riding on a dynamic object, the dynamic object may be in an adhesion state. When the dynamic object on which the player character PC is riding is in an adhesion state, the player character PC moves together with the dynamic object as if the player character PC were attached to the dynamic object. The adhesion state will be described in detail below.
[0064] FIG. 8 is a diagram showing the player character PC moving on the four-wheeled vehicle object 41 as viewed from the side in the virtual space, and shows forces acting on each dynamic object and the movement of the four-wheeled vehicle object 41.
[0065] As shown in Fig. 8, various forces are applied to each dynamic object constituting the four-wheeled vehicle object 41. Note that, in Fig. 8, in order to simplify the drawing, only forces related to the movement of the objects are shown. For example, the downward gravity in the virtual space is applied to each object (dynamic object and player character PC), but this is omitted in Fig. 8.
[0066] Each wheel object 31b rotates in a predetermined direction when in an operating state. When the wheel object 31b is in contact with the ground 30, this rotation causes the wheel object 31b to generate a forward propulsive force. In addition, the wheel object 31b and the plate object 31e are connected by a connection object 32, and the propulsive force of the wheel object 31b is transmitted to the plate object 31e via the connection object 32, so that a forward force is applied to the plate object 31e. This force causes the four-wheeled vehicle object 41 to move forward.
[0067] In the game processing of this embodiment, physical calculations (calculations based on the laws of physics) are performed on each dynamic object at a predetermined frame time interval to calculate the speed, angular velocity, position, attitude, etc. of each dynamic object. Specifically, physical calculations are performed based on the propulsive force of the dynamic object itself, interactions (forces received and forces exerted) due to contact between dynamic objects, forces received from the environment (e.g. wind, friction with the ground), etc., to calculate the latest speed, angular velocity, position, attitude, etc. of each dynamic object. The movement (amount of movement and direction of movement) of a dynamic object in one frame is calculated from the difference between the latest position of the dynamic object and its position one frame before.
[0068] Similar physical calculations are performed on the player character PC. For example, when the dynamic object 31 collides with the player character PC from the side, the force of the collision is applied to the player character PC, and the velocity, angular velocity, position, and posture of the player character PC are calculated by physical calculations based on the force. As a result, the player character PC moves, for example, in the horizontal direction.
[0069] When the player character PC is on a dynamic object, the position is calculated by adhesion processing instead of the movement due to the force such as friction that the player character PC receives from the dynamic object on which the player character PC is riding. In other words, among all the forces applied to the player character PC, the force that the player character PC receives from the dynamic object on which the player character PC is riding is not used in the physical calculation. Instead, the same movement as the movement of the dynamic object on which the player character PC is riding is imparted to the player character PC. Specifically, the movement of the position of the player character PC on the dynamic object (the contact position between the dynamic object and the player character PC) may be calculated, and the movement of the contact position may be imparted to the player character PC.
[0070] For example, as shown in FIG. 8, when the player character PC is on the board object 31e, the player character PC normally receives a force Fe from the board object 31e as the board object 31e moves. By performing a physical calculation based on the force Fe from the board object 31e, the movement (amount of movement and direction of movement) of the player character PC can be calculated. However, in this embodiment, when the player character PC is on the board object 31e, instead of a physical calculation based on the force Fe from the board object 31e, the player character PC is given a movement Ta that is the same as the movement Ta of the board object 31e. As a result, the player character PC moves in the virtual space together with the movement of the four-wheeled vehicle object 41 without being displaced from its position on the board object 31e.
[0071] Note that a force other than the force Fe from the board object 31e may be applied to the player character PC. A physical calculation based on a force other than this force Fe may be performed, and the player character PC may move depending on the result. For example, when the player character PC is moving on the board object 31e, if another object collides with the player character PC from the side, the player character PC may be thrown away by the collision.
[0072] Furthermore, the player character PC moves on the ground in the virtual space in response to a directional operation input by the player (for example, a directional operation input to the analog stick 6L). Even when the player character PC is standing on a moving dynamic object, the player character PC moves on the moving dynamic object in response to the directional operation input by the player.
[0073] FIG. 9 is a diagram showing how the player character PC, while riding on the moving four-wheel vehicle object 41, moves further on the four-wheel vehicle object 41 in response to a directional operation input.
[0074] 9, when a directional operation input is performed by the player while the player character PC is riding on a moving four-wheeled vehicle object 41, the movement Ta of the four-wheeled vehicle object 41 is added to the movement Tb of the player character PC corresponding to the directional operation input. This calculates the movement Tc (=Ta+Tb) of the player character PC in the virtual space. In this way, by adding the movement Ta of the dynamic object to the movement Tb of the player character PC, the player character PC can be further moved on the dynamic object when the player character PC is riding on the dynamic object and moving.
[0075] The same is true when the player character PC is riding on another dynamic object. Figure 10 is a diagram showing a state in which the player character PC moves while riding on an airplane object 40. The airplane object 40 is flying at a predetermined speed in the depth direction of the paper surface of Figure 10.
[0076] The player character PC rides on the wing object 31d of the airplane object 40, and moves on the wing object 31d in response to an operation input by the player. Specifically, when the player character PC rides on the wing object 31d of the airplane object 40, the wing object 31d is in an adhering state, and the movement of the airplane object 40 (wing object 31d) is added to the movement of the player character PC. The movement of the airplane object 40 is calculated by a physical calculation based on the propulsive force of the electric fan object 31a, gravity acting on the airplane object 40, gravity acting on the player character riding on the airplane object 40, the effect of wind, and the like.
[0077] Here, as shown in FIG. 10, for example, when the player character PC moves to a position on the left side of the wing object 31d, the center of gravity of the entire airplane object 40 including the player character PC shifts to the left. As a result, the entire airplane object 40 including the wing object 31d tilts to the left, and the traveling direction of the airplane object 40 changes. This change in the traveling direction is calculated by physical calculation. That is, when the wing object 31d is in a horizontal position, the wing object 31d exerts a lift force in the upward direction in the virtual space, and the airplane object 40 moves straight. When the wing object 31d tilts to the left, the lift force of the wing object 31d tilts to the left, and a force in the left direction is applied to the wing object 31d. As a result, the airplane object 40 moves in the depth direction and left direction of the paper.
[0078] The movement of the airplane object 40 (wing object 31d) in the depth direction and left direction is given to the player character PC. As a result, the player character PC moves in the virtual space together with the wing object 31d. Here, the rotation of the wing object 31d (rotation in the roll direction) is not given to the player character PC. That is, even if the wing object 31d tilts to the left, the player character PC does not tilt to the left like the wing object 31d, but maintains a vertical posture. However, the posture of the feet of the player character PC is adjusted to match the tilt of the wing object 31d at the feet. This is not limited to the case where the wing object 31d rotates in the roll direction, but is similar to the case where it rotates in the pitch direction. Note that the rotation of the wing object 31d may be given to the player character PC in any direction among the roll, pitch, and yaw directions. For example, when the wing object 31d rotates in the roll direction and the yaw direction, the rotation of the wing object 31d in the roll direction is not given to the player character PC, but the rotation in the yaw direction may be given.
[0079] Although not shown in the drawings, the same applies when the player character PC is riding on the four-wheeled vehicle object 41. For example, when the four-wheeled vehicle object 41 rotates in a roll direction or a pitch direction while the four-wheeled vehicle object 41 is traveling, the player character PC may be given only the movement of the board object 31e included in the four-wheeled vehicle object 41, and may not be given the rotation in the roll direction or the pitch direction.
[0080] In this way, when the player character PC is riding on the dynamic object 31, the movement of the dynamic object 31 is imparted to the player character PC, but the rotation of the dynamic object 31 is not imparted to the player character PC. As a result, even if the dynamic object 31 rotates while moving, the player character PC can move together with the dynamic object 31 while maintaining its posture. Note that even in this case, if another force acts to tilt the player character PC, the player character PC will tilt due to that force.
[0081] When the player character PC is riding on the dynamic object 31, the player character PC may be given the same rotation as the dynamic object 31. When the player character PC is riding on the dynamic object 31, the player character PC may be given a rotation smaller than that of the dynamic object 31. In this case, the player character PC also rotates due to the rotation of the dynamic object 31, but the amount of rotation is reduced.
[0082] As described above, in the game of this embodiment, various dynamic objects are arranged in the virtual space, and the player can move the player character PC on the dynamic object in the virtual space. In addition, the player can freely combine multiple dynamic objects to generate various assembly objects, and can move the player character PC on the generated assembly object. In such a game with a high degree of freedom, the motion of each object can be controlled by performing physical calculations for each object in the virtual space. However, when it is assumed that the player character PC is moved on a dynamic object, if the movement of the dynamic object and the player character PC is calculated based on physical calculations, the position of the player character PC on the dynamic object may be shifted or the player character PC may move away from the dynamic object on which the player character PC is riding, in a certain situation. For example, the speed of each object, calculation errors, etc., may cause the movement of the player character PC to be delayed or shifted relative to the movement of the dynamic object. In addition, for example, when an object that generates a very large force (for example, a rocket object) is connected to the dynamic object on which the player character PC is riding, a large acceleration is applied to the dynamic object on which the player character PC is riding, and the player character PC may be dropped from the dynamic object. However, when the player character PC is riding on a dynamic object, the movement of the riding dynamic object can be imparted to the player character PC, so that the player character PC does not deviate from the position where the player character PC is standing and does not move away from the dynamic object. Also, by adding the movement of the riding dynamic object to the movement of the player character PC, even when the player character PC is riding on a dynamic object, for example, the player character PC can be moved further on the dynamic object in response to a movement operation input by the player, or the player character PC can be moved further by another force.
[0083] (Control of the first special object) Next, the first special object 31c will be described. The first special object 31c has a non-operating state and an operating state, and performs a predetermined behavior in response to becoming in the operating state. Specifically, the first special object 31c has a first posture in the non-operating state, but generates a force that tries to change from the first posture to a second posture in response to becoming in the operating state. The first special object 31c is usually set to a non-operating state, and is placed in the virtual space in the first posture. The first special object 31c can also be combined with other dynamic objects 31 based on an object operation action.
[0084] Fig. 11 is a diagram showing an example of an assembly object 42 including the first special object 31c and the board object 31e. Fig. 12 is a diagram showing a state in which the assembly object 42 including the first special object 31c and the board object 31e performs a predetermined behavior when the first special object 31c is in an operating state.
[0085] 11, an assembly object 42 including a first special object 31c and a plate object 31e is placed on the ground 30 in a virtual space. A tip end of the first special object 31c and a side of the plate object 31e are connected by a connection object 32. The first special object 31c is in a non-operating state and is in a first posture in which a line connecting the tip end and rear end of the first special object 31c is approximately parallel to the ground 30. Similarly, the plate object 31e is in a first posture approximately parallel to the ground 30.
[0086] When the first special object 31c becomes operational in this state, the first special object 31c rotates around its rear end (FIG. 12). Specifically, the first special object 31c rotates so that the line from the rear end to the front end is in a second posture (standing up posture) facing upward in the virtual space. Since the assembly object 42 operates as a single unit, the plate object 31e also rotates from the first posture to the second posture, similar to the first special object 31. Then, when a predetermined time has elapsed since the first special object 31c became operational, the first special object 31c becomes in the second posture, and the assembly object 42 becomes in a posture standing vertically to the ground 30.
[0087] The behavior of such an assembly object 42 is also calculated by physical calculation. The first special object 31c and the plate object 31e each have mass, and gravity is applied to each of them. In an operating state, the first special object 31c generates a force that tends to take the second posture, and the plate object 31e receives this force from the first special object 31c. Physical calculation is performed based on the forces applied to each of the first special object 31c and the plate object 31e.
[0088] The player character PC can ride on the assembly object 42. Even when the player character PC is riding on the assembly object 42 (the board object 31e), if the first special object 31c is in an operating state, the assembly object 42 including the first special object 31c performs the action shown in FIG.
[0089] FIG. 13 is a diagram showing a state in which the first special object 31c performs a predetermined behavior when the player character PC is standing on an assembly object 42 including the first special object 31c.
[0090] As shown in Fig. 13, when the player character PC is standing on a board object 31e of the assembly object 42, the board object 31e is set to an adhesion state in which the player character PC is attracted to the board object 31e. In this case, similar to the above, the movement of the board object 31e is imparted to the player character PC (Fig. 13 (1) to (2)). During this time, if the player character PC moves further due to another factor, such as a directional operation input by the player or a collision with another dynamic object, the movement of the player character PC due to this other factor is added to the movement of the board object 31e.
[0091] Specifically, the board object 31e rotates around the rear end of the first special object 31c, and the position of the player character PC on the board object 31e (the contact position between the board object 31e and the player character PC) moves due to this rotation. The rotation of the board object 31e is calculated based on physical calculation, the movement of the contact position between the board object 31e and the player character PC is calculated based on this rotation, and the movement of the contact position is given to the player character PC. As a result, while the board object 31e moves (while the board object 31e rotates around the rear end of the first special object 31c), the player character PC can be attracted to the board object 31e and moved, and further, when a directional operation input is performed, for example, the player character PC can be moved on the board object 31e.
[0092] Here, when a predetermined time has elapsed since the first special object 31c entered the operating state, the board object 31e enters the non-adherent state (FIG. 13(3)). In the non-adherent state, a process is not performed to give the player character PC the same movement as the board object 31e, and a physical calculation is performed based on the force Fe that the player character PC receives from the board object 31e. As a result of this physical calculation, the player character PC, for example, jumps out away from the board object 31e (FIG. 13(4)).
[0093] In this way, the first special object 31c has a non-operating state and an operating state, and performs a predetermined behavior of changing from a first attitude to a second attitude in response to changing from the non-operating state to the operating state. The first special object 31c has a function of causing the first special object 31c and the connected dynamic objects to be in an unadsorbed state during a predetermined period while performing the predetermined behavior. When the first special object 31c becomes in an unadsorbed state, all dynamic objects in an assembly object including the first special object 31c and a plurality of dynamic objects become in an unadsorbed state. During a first period after the first special object 31c starts the predetermined behavior, the dynamic objects connected to the first special object 31c maintain an adsorbed state, and become in an unadsorbed state during a second period after the first period has elapsed. Note that even during the second period, for example, if the angular velocity of the first special object 31c does not exceed a threshold, the adsorbed state may be maintained.
[0094] In the adhesion state, a process is performed in which the movement of the dynamic object on which the player character PC is riding is added to the movement of the player character PC. In the non-adhesion state, the movement of the player character PC is calculated based on a physical calculation accompanying the contact between the player character PC and the dynamic object. That is, in the non-adhesion state, a process is not performed in which the movement of the dynamic object is added to the movement of the player character PC, and the movement of the player character PC (movement based on the contact of the dynamic object on which the player character PC is riding; referred to here as "second movement") is calculated based on a physical calculation accompanying the contact between the player character PC and the dynamic object on which the player character PC is riding. The movement of the player character PC due to another factor (for example, movement in response to a directional operation input) is added to the second movement calculated by this physical calculation.
[0095] This allows the player character PC to be attached to the dynamic object and moved when the player character PC is riding on the dynamic object, and then the attachment can be released midway to cause the player character PC to perform a different behavior, such as moving away from the dynamic object.
[0096] Next, the second special object 31f will be described. Fig. 14 is a diagram showing an example of a state in which the second special object 31f performs a predetermined behavior when the player character PC is standing on the second special object 31f.
[0097] The second special object 31f has a non-operating state and an operating state, and performs a predetermined behavior of changing from a contracted state to an extended state when it becomes the operating state. The second special object 31f further performs a predetermined behavior of changing from an extended state to a contracted state when it becomes the non-operating state. Alternatively, the second special object 31f may perform a behavior of repeatedly transitioning between the contracted state and the extended state when it becomes the operating state.
[0098] As shown in FIG. 14, when the player character PC is riding on the second special object 31f, the second special object 31f is in an adhering state from a contracted state until it reaches a predetermined length. In the adhering state, the player character PC is given the same movement as the movement of the upper surface of the second special object 31f. Even when the player character PC is riding on the second special object 31f, the player character PC can move on the second special object 31f in response to a directional operation input. In this case, the movement of the upper surface of the second special object 31f is added to the movement of the player character PC. When the spring reaches a predetermined length, the second special object 31f is in an unadhering state. In this case, the process of adding the movement of the upper surface of the second special object 31f to the movement of the player character PC is not performed. Instead, the movement of the player character PC is calculated based on a physical calculation associated with the contact between the player character PC and the upper surface of the second special object 31f on which the player character PC is riding. As a result, the player character PC, for example, leaves the upper surface of the second special object 31f and jumps out upward.
[0099] In this way, the second special object 31f has a non-operating state and an operating state, and performs a predetermined behavior of changing from a contracted state to an extended state when it becomes an operating state. When the player character PC is standing on the second special object 31f, the second special object 31f is in an adsorbed state during a first period during which the second special object 31f performs a predetermined behavior, and in a non-adsorbed state during a second period. As a result, the player character PC is adsorbed onto the second special object 31f and moved during the first period, and the player character PC is moved away from the second special object 31f during the second period.
[0100] (Restricting object manipulation actions on dynamic objects) Next, the restriction of the object operation action when the player character PC is riding on the dynamic object will be described. As described above, the dynamic object 31 arranged in the virtual space can be moved based on the object operation action of the player character PC. When the player character PC is riding on the dynamic object, the movement of the dynamic object based on the object operation action may be restricted.
[0101] FIG. 15 is a diagram showing an example of a situation in which, when the player character PC is standing on a dynamic object, another dynamic object cannot be moved by an object manipulation action.
[0102] 15, a dynamic object 310 and a dynamic object 311 are connected by a connection object 32, and form an assembly object 43. The player character PC is standing on the dynamic object 310. In this case, even if the player character PC attempts to perform an object operation action with the dynamic object 311 as a control target, the dynamic object 311 cannot be moved by the object operation action.
[0103] 15, a dynamic object 310 and a dynamic object 311 are connected, and a dynamic object 312 is further connected to the dynamic object 311, and these three dynamic objects 310 to 312 form an assembly object 44. The player character PC is standing on the dynamic object 310. In this case, even if the player character PC attempts to perform an object operation action with the dynamic object 312 as a control target, the dynamic object 312 cannot be moved by the object operation action.
[0104] That is, if an assembly object including a dynamic object designated as a control target of an object manipulation action includes a dynamic object on which the player character PC is riding, the control target is not moved by the object manipulation action. In other words, when the player character PC is riding on an assembly object, the dynamic object included in the assembly object is controlled by the object manipulation action so as not to be moved.
[0105] Similarly, a dynamic object on which the player character PC is directly riding cannot be moved by the object manipulation action. For example, in case 1 or case 2, the player cannot set the dynamic object 310 as the control target of the object manipulation action and move the dynamic object 310 based on the object manipulation action.
[0106] The object manipulation action moves the controlled object based on the position of the player character PC. If a dynamic object included in an assembly object on which the player character PC is riding is moved by an object manipulation action, the entire assembly object will move due to the movement. When the entire assembly object moves, the player character PC also moves, which further moves the controlled object, which further moves the entire assembly object. In this way, if a dynamic object included in an assembly object on which the player character PC is riding is moved by an object manipulation action, the assembly object may continue to move, which may make it difficult to operate the controlled object by the object manipulation action.
[0107] For this reason, in this embodiment, when an assembly object including a dynamic object to be controlled includes a dynamic object on which the player character PC is riding, the control is performed so that the controlled object is not moved by the object manipulation action.
[0108] In addition, the assembly object including the dynamic object on which the player character PC is riding may be configured not to be a control target of the object manipulation action.
[0109] FIG. 16 is a diagram showing an example of a situation in which, when the player character PC is standing on a dynamic object, another dynamic object cannot be moved by an object manipulation action.
[0110] In case 3 shown in FIG. 16, the dynamic object 310 and the dynamic object 311 are not connected, and the dynamic object 310 is placed on the dynamic object 311. The player character PC is placed on the dynamic object 310. It can be said that the dynamic object 311 is indirectly placed on the player character PC. In this case, the player cannot move the dynamic object 311 by an object operation action. In this way, the dynamic object 311 indirectly placed on the player character PC is made unmovable by an object operation action.
[0111] In case 4 shown in FIG. 16, a dynamic object 311 and a dynamic object 312 are connected to form an assembly object 45. A dynamic object 310 is placed on the dynamic object 311, which is a part of the assembly object 45. The player character PC is placed on the dynamic object 310. In this case, it can be said that the assembly object 45 is indirectly ridden by the player character PC. In this case, the player cannot move the dynamic object 312 by an object operation action. In this way, the dynamic object 312 included in the assembly object 45 indirectly ridden by the player character PC is made unmovable by an object operation action.
[0112] FIG. 17 is a diagram showing an example of a situation in which, when the player character PC is riding on a dynamic object, another dynamic object cannot be moved by an object manipulation action.
[0113] In case 5 shown in Fig. 17, the dynamic object 310 and the dynamic object 311 are connected to each other, and form an assembly object 46. The dynamic object 312 is not connected to any other dynamic object, and the dynamic object 311 is placed on the dynamic object 312. The player character PC is placed on the dynamic object 310. In this case, the player cannot move the dynamic object 312 by an object operation action. It can be said that the dynamic object 312 is indirectly placed on the player character PC.
[0114] In case 6 shown in FIG. 17, the dynamic object 310 and the dynamic object 311 are connected to each other, and an assembly object 46 is formed by these. The player character PC rides on the dynamic object 310. The dynamic object 312 is a control target of the object manipulation action. When the dynamic object 312 is moved upward based on the object manipulation action and the dynamic object 312 comes into contact with the bottom of the dynamic object 311, the dynamic object 311 overlaps the dynamic object 312 at that moment. This state in which the dynamic object 311 overlaps the dynamic object 312 can also be considered as a state in which the dynamic object 312 is indirectly riding on the player character PC. In this case, the dynamic object 312 is controlled so that it cannot be moved further by the object manipulation action. That is, the player cannot move the dynamic object 312 further upward or to the left or right by the object manipulation action. In this case, the player may move the dynamic object 312 downward by the object manipulation action, and move the dynamic object 312 away from the dynamic object 311. Furthermore, when the dynamic object 312 comes into contact with the bottom of the dynamic object 311 while the dynamic object 312 is moving based on the object manipulation action, the force resisting gravity by the object manipulation action is cut, and the dynamic object 312 to be controlled may slightly drop. This slight drop may cause the dynamic object 312 to be separated from the dynamic object 311, and may again become movable based on the object manipulation action.
[0115] In case 7 shown in Fig. 17, none of the dynamic objects 310 to 312 are connected. A dynamic object 311 is placed on the dynamic object 312, and a dynamic object 310 is placed on the dynamic object 311. The player character PC is placed on the dynamic object 310. In this case, the player cannot move the dynamic object 312 by an object operation action. It can be said that the dynamic object 312 is indirectly placed on the player character PC.
[0116] As described above, a dynamic object indirectly ridden by the player character PC is controlled so as not to be moved by an object operation action. If such a dynamic object indirectly ridden is moved by an object operation action, the dynamic object 310 on which the player character PC is riding may move due to the movement. If this happens, the position of the player character PC will change, and the position of the controlled object will also change due to the change in the position of the player character PC, which may make it difficult to operate the controlled object.
[0117] Therefore, in this embodiment, a dynamic object indirectly ridden by the player character PC, or a dynamic object included in an assembly object indirectly ridden by the player character PC, is controlled so as to be unmovable by an object manipulation action.
[0118] Here, "a dynamic object indirectly ridden by the player character PC, or a dynamic object included in an assembly object indirectly ridden by the player character PC" refers to an object indirectly supporting the player character PC, and may be an object on which the weight of the player character PC is placed. In this embodiment, the interactions (pushing force, pushed force) between the player character PC and all dynamic objects are calculated by physical calculation. Whether a dynamic object is supporting the player character PC can be determined by the result of this physical calculation.
[0119] As described above, in the game of this embodiment, the player character PC is made to perform an object operation action of operating a dynamic object arranged in a virtual space based on the operation input of the player. Specifically, based on the object operation action, a first operation of moving a specified dynamic object among a plurality of dynamic objects arranged in a virtual space and a second operation of connecting (combining) the specified dynamic object to another dynamic object to generate an assembly object are performed. When an assembly object including a dynamic object specified by the object operation action includes a dynamic object (a dynamic object on which the player character is riding) that is in contact with the lower direction of the player character PC (case 1 or case 2), it is impossible to move the dynamic object by the object operation action. This makes it possible to prevent the assembly object on which the player character PC is riding from being moved by the object operation action, for example, to prevent the riding assembly object from continuing to move.
[0120] In this embodiment, when a dynamic object in contact with the player character PC in the downward direction is placed on a dynamic object specified by an object operation action (case 3), the dynamic object cannot be moved by the object operation action. When a dynamic object in contact with the player character PC in the downward direction is placed on an assembly object including a dynamic object specified by an object operation action (case 4), the dynamic object cannot be moved by the object operation action. This makes it possible to prevent a dynamic object or assembly object on which the player character PC is indirectly placed from being moved by an object operation action, making it easier to operate the controlled object.
[0121] In this embodiment, when the player character is directly riding on a dynamic object specified by an object operation action, the dynamic object cannot be moved by the object operation action. When the player character is indirectly riding on a dynamic object specified by an object operation action (cases 5 to 7), the dynamic object cannot be moved by the object operation action. This makes it possible to prevent a dynamic object on which the player character PC is riding directly or indirectly from being moved by an object operation action, making it easier to operate the controlled object.
[0122] In the game of this embodiment, the design information of the assembly object generated by the player is saved, and the assembly object can be reconstructed based on the saved design information in response to the player's instruction. The design information includes information on the type and number of dynamic objects constituting the assembly object, the connection positions of the dynamic objects, the posture of each dynamic object, and the like. The player can select the saved design information as necessary, reconstruct the assembly object based on the design information, and make the reconstructed assembly object appear in the virtual space. The reconstruction of the assembly object can use the dynamic objects arranged in the virtual space and the dynamic objects held by the player character PC as the player character data 120. For example, when the assembly object saved as design information includes a first dynamic object and a second dynamic object, the assembly object can be reconstructed using the first dynamic object held by the player character PC and the second dynamic object arranged in the virtual space. Specifically, when the assembly object is reconstructed, the second dynamic object arranged in the virtual space is moved and incorporated as a part of the assembly object. A dynamic object directly or indirectly ridden by the player character PC may not be used in the reconstruction of an assembly object. That is, a dynamic object directly or indirectly ridden by the player character PC is not moved and incorporated as a part of the assembly object when the assembly object is reconstructed. For example, even if a second dynamic object is placed in the virtual space, if the player character PC is directly or indirectly riding on the second dynamic object, the second dynamic object is not used in the reconstruction of the assembly object, and the second dynamic object is not moved.
[0123] (Data used for game processing) Next, details of the game processing related to the above-mentioned game will be described. First, data used in the game processing will be described. Fig. 18 is a diagram showing an example of data stored in the memory of the main unit 2 during execution of the game processing.
[0124] 18, the memory of the main unit 2 (DRAM 27, flash memory 26, or external storage medium) stores a game program 100, operation data 110, player character data 120, dynamic object data 130, static object data 140, and assembly object data 200. In addition to these data, the memory also stores various data used in game processing (e.g., data related to enemy characters, etc.).
[0125] The game program 100 is a program for executing game processing, which will be described later. The game program is stored in advance in an external storage medium inserted in the slot 29 or in the flash memory 26, and is read into the DRAM 27 when the game is executed. The game program may be obtained from another device via a network (for example, the Internet).
[0126] The operation data 110 is data transmitted from the controllers 3 and 4 to the main device 2. The controllers 3 and 4 repeatedly transmit the operation data 110 to the main device 2 at predetermined time intervals (for example, 1 / 200 second intervals).
[0127] The player character data 120 is data related to the player character PC, and includes position and posture data 121 , velocity and angular velocity data 122 , and status data 123 .
[0128] The position / posture data 121 is data related to the position and posture of the player character PC in the virtual space. Specifically, the position / posture data 121 includes data indicating the position and posture of the player character PC in the latest frame and data indicating the position and posture in at least the immediately preceding frame.
[0129] The velocity / angular velocity data 122 is data related to the velocity and angular velocity of the player character PC in the virtual space. Specifically, the velocity / angular velocity data 122 includes data indicating the velocity and angular velocity of the player character PC in the latest frame and data indicating the velocity and angular velocity in at least the immediately preceding frame.
[0130] The state data 123 includes data indicating whether the player character PC is riding on a dynamic object or not, and also includes data indicating whether the player character PC is performing an object operation action (operating a control target).
[0131] The dynamic object data 130 is data related to the dynamic object 31 arranged in the virtual space. The dynamic object data 130 is stored for each dynamic object 31 arranged in the virtual space. The dynamic object data 130 includes position / posture data 131, velocity / angular velocity data 132, state data 133, and type data 134.
[0132] The position / orientation data 131 is data related to the position and orientation in the virtual space of the dynamic object 31. Specifically, the position / orientation data 131 includes data indicating the position and orientation of the dynamic object 31 in the latest frame, and data indicating the position and orientation at least in the immediately preceding frame.
[0133] The velocity / angular velocity data 132 is data related to the velocity and angular velocity in the virtual space of the dynamic object 31. Specifically, the velocity / angular velocity data 132 includes data indicating the velocity and angular velocity of the dynamic object 31 in the latest frame and data indicating the velocity and angular velocity at least in the immediately preceding frame.
[0134] The state data 133 is data related to the state of the dynamic object 31. The state data 133 includes data indicating whether the dynamic object 31 is ridden directly or indirectly by a character (player character PC or non-player character). The state data 133 also includes data indicating whether the dynamic object 31 is in a non-adhesive state. The state data 133 of a dynamic object having a non-operating state and an operating state includes data indicating whether the dynamic object is in an operating state or a non-operating state.
[0135] The type data 134 is data indicating the type of the dynamic object 31. For example, the type data 134 includes data on the shape and appearance of the dynamic object 31, data on the mass of the dynamic object 31, and data on the behavior of the dynamic object 31 when the dynamic object 31 is in an operating state (for example, in the case of a dynamic object that generates a propulsive force, data on the magnitude, direction, etc. of the propulsive force).
[0136] The static object data 140 is data related to static objects (objects representing rocks, mountains, buildings, the ground, etc. fixed in the virtual space) arranged in the virtual space. Static object data 140 is stored for each static object. The static object data 140 includes data related to the position and posture of the static object, data related to the type of the static object, and data related to the shape and appearance of the static object.
[0137] The assembly object data 200 is data related to an assembly object arranged in a virtual space. The assembly object data 200 is stored for each assembly object. The assembly object data 200 includes a plurality of dynamic object data (1130, 2130, etc.). Each dynamic object data included in the assembly object data 200 has the same data as the dynamic object data 130.
[0138] Although not shown in the figure, the assembly object data 200 includes data indicating the position and orientation of each dynamic object constituting the assembly object within the assembly object, and data indicating the connection positions of each dynamic object within the assembly object. The assembly object data 200 may also include data regarding the mass, center of gravity position, velocity, angular velocity, etc. of the entire assembly object.
[0139] (Game Processing Details) Next, a detailed description will be given of the game processing performed in the main unit 2. FIG 19 is a flowchart showing an example of the game processing executed by the processor 21.
[0140] 19, when the game processing is started, the processor 21 executes an initial processing (step S100). Specifically, the processor 21 sets a virtual space, and arranges a static object (terrain object), a player character PC, a plurality of dynamic objects 31, an enemy character EC, etc. in the virtual space.
[0141] Next, the processor 21 acquires operation data transmitted from the controller and stored in the memory (step S101). The operation data includes data corresponding to operations on the buttons, analog sticks, etc. of the left and right controllers. After that, the processor 21 repeatedly executes the processes of steps S101 to S107 at a predetermined frame time interval (for example, 1 / 60 second interval).
[0142] Next, processor 21 performs player character action processing based on the operation data (step S102). Here, processor 21 controls the action of the player character PC in response to the operation input of the player. Specifically, in step S102, processing for causing the player character PC to start an object operation action, processing during the object operation action, and processing related to other actions are performed. Details of the player character action processing in step S102 will be described below.
[0143] (Player character action processing) FIG. 20 is a flowchart showing an example of the player character action process in step S102.
[0144] As shown in FIG. 20, the processor 21 determines whether or not the player character PC is performing an object operating action (Step S200).
[0145] If not in the middle of an object operation action (step S200: NO), processor 21 determines whether or not to start an object operation action (step S201). Specifically, processor 21 designates one of a plurality of dynamic objects 31 (a single dynamic object or a dynamic object included in an assembly object) in response to a selection operation by the player (e.g., pressing the L button). When a dynamic object 31 is designated, processor 21 determines whether or not a predetermined operation input (e.g., pressing the A button) has been performed. When the predetermined operation input has been performed, processor 21 determines YES in step S201. Note that when a dynamic object 31 is designated and the predetermined operation input has been performed, processor 21 determines YES in step S201 for a predetermined start period (several to several tens of frames).
[0146] When it is determined that an object operation action is to be started (step S201: YES), processor 21 performs an object operation action start process (step S202). Here, a process is performed in which the player character PC starts an object operation action in response to a predetermined operation input by the player. Specifically, processor 21 plays a start animation of the object operation action, and updates the animation by one frame each time the process of step S202 is executed. After the predetermined start period, the designated dynamic object 31 becomes a control target, and the object operation action for the control target becomes in progress (operational state) (see FIG. 4).
[0147] On the other hand, if an object operation action is in progress (step S200: YES), the processor 21 determines whether the control target of the object operation action is in a state of being directly ridden by the player character PC or in a state of being indirectly ridden (step S203). Here, by referring to the state data 133 of the dynamic object data 130, it is determined whether the dynamic object 31 to be controlled is set to a "ridden state" or an "indirectly ridden state". The setting of the "ridden state" or the "indirectly ridden state" will be described later.
[0148] When it is determined that the control target is directly or indirectly ridden (step S203: YES), the processor 21 performs a setting to cut the force due to the object manipulation action (step S204). When this processing is performed, in the next step S205, the force due to the object manipulation action is not generated.
[0149] When step S204 is executed or when step S203 is determined as NO, the processor 21 performs a process of generating a "force due to an object operation action" based on the operation data and a connection process (step S205). Here, a process of applying a "force due to an object operation action" to the control object in response to an operation input and a process of connecting the control object to another dynamic object in response to the operation input are performed. The "force due to an object operation action" includes a force that makes the control object float in the air, a force that moves the control object, and a force that rotates the control object. Specifically, the processor 21 applies a force that resists gravity to the control object regardless of the presence or absence of an operation input. This force that resists gravity keeps the control object floating in the air. In addition, the processor 21 applies a force that moves the control object in response to the operation input. For example, when a directional operation input is performed on the analog stick 6L, the processor 21 applies a force that moves the control object in a direction corresponding to the input direction. In addition, when an operation is performed on the button 5L, for example, the processor 21 applies a force that moves the control object or a force that rotates the control object. A physical calculation (processing of step S309 described later) is performed based on the "force due to the object manipulation action" applied here, so that the control target moves and rotates in the virtual space in response to the manipulation input. Note that when the processing of step S204 is performed, the "force due to the object manipulation action" is not generated in step S205.
[0150] Also, in step S205, the processor 21 performs a connection process. Specifically, when the control target and another dynamic object satisfy a predetermined connection condition (for example, the distance between them is less than a threshold value) and a connection instruction is given by the player, the processor 21 connects the control target to the other dynamic object. In response to the connection instruction, the control target and the other dynamic object approach each other as if they are attracted to each other, and after a predetermined time (for example, 0.5 seconds), the control target and the other dynamic object are connected. This generates an assembly object. When the control target is connected to the other dynamic object, the object operation action for the control target ends. Note that even if the "force due to the object operation action" is not generated, when the connection condition is satisfied and a connection instruction is given, the control target is connected to the other dynamic object that satisfies the connection condition.
[0151] When the process of step S205 or step S202 has been performed, the processor 21 performs other action process (step S206). Here, the processor 21 causes the player character PC to perform various actions other than the object operation action in response to the operation input. For example, the processor 21 determines whether or not an operation input for an attack action has been performed, and when the operation input has been performed, causes the player character PC to start the attack action. The processor 21 also determines whether or not an operation input for a jump has been performed, and when the operation input has been performed, causes the player character PC to start a jump action in the virtual space. Even when the player character PC is riding on a dynamic object, when an operation input for a jump is performed, the player character PC performs a jump action and temporarily moves away from the dynamic object.
[0152] Furthermore, in step S206, processor 21 performs a reconstruction process in response to an operation input, which causes an assembly object previously generated by the player to appear in the virtual space based on the design information stored as player character data 120. In the reconstruction process, processor 21 reconstructs an assembly object using dynamic objects arranged in the virtual space or dynamic objects stored as player character data 120 based on the design information, and causes the assembly object to appear in the virtual space. Specifically, the dynamic objects arranged in the virtual space are moved and incorporated as a part or the whole of the assembly object. Note that dynamic objects directly or indirectly ridden by the player character PC are not used in the reconstruction of the assembly object, and are not moved.
[0153] Next, the processor 21 calculates the force applied to other objects (step S207). Here, the processor 21 calculates the force applied by the player character PC to the dynamic object in the virtual space (a force other than the above-mentioned "force due to the object operation action"). For example, when the player character PC is standing on a dynamic object, the gravity of the player character PC is applied to the dynamic object. Also, for example, when the player character PC pushes or attacks the dynamic object, a force is applied to the dynamic object. In step S207, the processor 21 calculates the force applied by the player character PC to the dynamic object. With this, the processor 21 ends the processing of FIG. 20.
[0154] Returning to FIG. 19, the processor 21 then performs a dynamic object update process (step S103). Here, a process is performed in which the velocity and angular velocity of each dynamic object are calculated and the position and orientation are updated by performing a physical calculation based on the force acting on each dynamic object. Details of the dynamic object update process in step S103 will be described below.
[0155] (Dynamic Object Update Processing) FIG. 21 is a flowchart showing an example of the dynamic object update process in step S103.
[0156] As shown in FIG. 21, the processor 21 calculates the force generated by each of all dynamic objects (step S300). As described above, the dynamic objects 31 include objects that generate force by themselves and objects that do not generate force by themselves. For example, the electric fan object 31a and the wheel object 31b have a non-operating state and an operating state, and generate a propulsive force in the operating state. The first special object 31c and the second special object 31f have a non-operating state and an operating state, and generate a force that causes a predetermined behavior in the operating state. The wing object 31d does not have a non-operating state and an operating state, but generates a lift force when moving at a predetermined speed or higher. The processor 21 calculates the forces (propulsive force, lift force, and force that causes a predetermined behavior) generated by each of the dynamic objects 31 arranged in the virtual space.
[0157] Next, the processor 21 calculates the interaction between all dynamic objects 31 arranged in the virtual space (step S301). Here, the processor 21 calculates the force between contacting dynamic objects. Specifically, the processor 21 determines whether a dynamic object is in contact with another dynamic object, and if so, calculates the force acting between these dynamic objects. The processor 21 also calculates a force to be applied based on the action of the player character PC. For example, the "force due to the object manipulation action" generated in the above step S205 is applied to a dynamic object that is the control target of the object manipulation action.
[0158] Next, the processor 21 determines whether or not the processes of steps S303 to S309 described below have been performed for all dynamic objects arranged in the virtual space in the current process of FIG. 21 (step S302).
[0159] If the result of the determination in step S302 is NO, the processor 21 selects a dynamic object that has not yet been processed as a processing target (step S303).
[0160] Next, the processor 21 determines whether or not the dynamic object to be processed is indirectly ridden by the player character PC (step S304). Specifically, the processor 21 determines whether or not the dynamic object to be processed supports the player character PC based on the result of the process of the above step S301. In the above steps S207 and S301, the force applied to each dynamic object is calculated. Therefore, the processor 21 can determine whether or not the dynamic object to be processed supports the dynamic object on which the player character PC is riding. If the dynamic object to be processed supports the dynamic object on which the player character PC is riding, the processor 21 determines YES in step S304. For example, if the dynamic object to be processed is a part of an assembly object and the assembly object includes a dynamic object on which the player character PC is riding (case 1, case 2), the processor 21 determines YES in step S304. Also, if the dynamic object on which the player character PC is riding is in contact with the dynamic object to be processed (case 3), the processor 21 determines YES in step S304. In addition, when the dynamic object to be processed is a part of an assembly object, if a dynamic object ridden by the player character PC is in contact with another dynamic object constituting the assembly object (case 4), the processor 21 determines YES in step S304. In addition, if an assembly object including a dynamic object ridden by the player character PC is in contact with the dynamic object to be processed (case 5, case 6), the processor 21 determines YES in step S304. In addition, if a dynamic object indirectly ridden by the player character PC is in contact with the dynamic object to be processed (case 7), the processor 21 determines YES in step S304. Note that, if the dynamic object to be processed is a dynamic object directly ridden by the player character PC, the processor 21 determines NO in step S304.
[0161] When it is determined that the dynamic object to be processed is indirectly ridden by the player character PC (step S304: YES), the processor 21 sets the dynamic object to be processed to an "indirectly ridden state" (step S305). Specifically, the processor 21 sets a value indicating the "indirectly ridden state" to the state data 133 of the dynamic object to be processed.
[0162] When it is determined that the dynamic object to be processed is not indirectly ridden by the player character PC (step S304: NO), the processor 21 sets a value indicating a "not indirectly ridden state" to the state data 133 of the dynamic object to be processed (step S306). When the dynamic object to be processed is directly ridden by the player character PC, the processor 21 maintains the state data 133 of the dynamic object to be processed in step S306. That is, when the player character PC is riding on the dynamic object to be processed, a value indicating a "ridden state" is set in the state data 133 (step S409 described later), and therefore, the value is maintained.
[0163] When the process of step S305 or the process of step S306 is performed, the processor 21 determines whether or not to release the adsorption (step S307). Specifically, the processor 21 determines whether or not the dynamic object to be processed is the first special object 31c or a part of an assembly object including the first special object 31c, and whether or not the current period is a second period during which the first special object 31c is performing a predetermined behavior. Furthermore, the processor 21 may determine whether or not to release the adsorption based on the angular velocity of the first special object 31c. For example, the processor 21 may determine whether or not to release the adsorption based on whether or not the angular velocity of the first special object 31c exceeds a threshold value. Furthermore, when the dynamic object to be processed is the second special object 31f, the processor 21 determines whether or not the current period is a second period during which the second special object 31f is performing a predetermined behavior. Note that the condition for whether or not to release the adsorption is not limited to this and may be another condition.
[0164] When it is determined that adhesion is to be released (step S307: YES), the processor 21 sets the adhesion release state to the dynamic object to be processed (step S308). Specifically, the processor 21 stores a value indicating the adhesion release state in the state data 133 of the dynamic object to be processed.
[0165] When the process of step S308 has been performed, or when the result of the determination in step S307 is NO, the processor 21 performs a physical calculation on the dynamic object to be processed, thereby updating the velocity, angular velocity, position, attitude, etc. of the dynamic object (step S309). Here, the physical calculation is performed based on the force acting on the dynamic object to be processed (the force calculated in each of steps S207, S300, and S301), the current velocity, angular velocity, position, attitude, etc. of the dynamic object, and the latest velocity, angular velocity, position, attitude, etc. of the dynamic object are calculated. The latest calculated values are stored as the position / attitude data 131 and the velocity / angular velocity data 132.
[0166] When the process of step S309 has been performed, the processor 21 executes the process of step S302 again.
[0167] On the other hand, if the determination in step S302 is YES, the processor 21 ends the process shown in FIG.
[0168] Returning to Fig. 19, the processor 21 then performs a player character update process (step S104). Here, a process for updating the position and posture of the player character PC is performed. Details of the player character update process in step S104 will be described below.
[0169] (Player character update process) FIG. 22 is a flowchart showing an example of the player character update process in step S104.
[0170] 22, the processor 21 determines whether or not the player character PC is riding on a dynamic object (step S400). Since a value indicating whether or not the player character PC is in a "riding state" on a dynamic object is set in the state data 123 of the player character data 120, the processor 21 makes the determination in step S400 based on this data.
[0171] When the player character PC is riding on a dynamic object (step S400: YES), the processor 21 determines whether the dynamic object on which the player character PC is riding is in an attached state (step S401).
[0172] If the dynamic object on which the player character PC is riding is in an adsorbed state (step S401: YES), the processor 21 sets the same movement as that of the dynamic object on which the player character PC is riding (step S402). Specifically, the processor 21 sets the movement (movement amount and movement direction) of the dynamic object on which the player character PC is riding in one frame in the memory. The latest position and speed of each dynamic object are calculated in the above step S309. The processor 21 calculates the movement of the dynamic object on which the player character PC is riding in one frame based on, for example, the latest position of the dynamic object on which the player character PC is riding and the position of the previous frame. The processor 21 may also calculate the movement of the dynamic object on which the player character PC is riding in one frame based on the latest speed of the dynamic object on which the player character PC is riding. The processor 21 may set the movement of the contact position with the player character PC (the position of the feet of the player character PC) on the dynamic object on which the player character PC is riding as the movement of the dynamic object.
[0173] On the other hand, if the dynamic object on which the player character PC is riding is not in an adsorbed state (step S401: NO), the processor 21 calculates an interaction between the dynamic object on which the player character PC is riding and the player character PC (step S403). Specifically, the processor 21 calculates a force that the player character PC receives from the dynamic object on which the player character PC is riding.
[0174] When the process of step S402 or step S403 is performed, the processor 21 calculates the movement based on the interaction between the player character PC and other objects (step S404). Specifically, the processor 21 calculates all the forces received by the player character PC except the force from the dynamic object on which the player character PC is riding. For example, the processor 21 determines whether the player character PC is in contact with a dynamic object other than the dynamic object on which the player character PC is riding, and if the player character PC is in contact, calculates the force from the dynamic object in contact. The processor 21 also determines whether the player character PC is attacked by an enemy character, and if the player character PC is attacked, calculates the force according to the attack. Then, when the processor 21 executes step S404 after step S402, the processor 21 executes the physical calculation based on all the forces received by the player character PC except the force from the dynamic object on which the player character PC is riding. When the processor 21 executes step S404 after step S403, the processor 21 executes the physical calculation based on all the forces received by the player character PC including the force from the dynamic object on which the player character PC is riding, calculated in step S403. As a result of the physical calculations, the velocity and angular velocity of the player character PC based on "interaction with other objects" are calculated, and "movement based on interaction with other objects" is calculated.
[0175] Next, the processor 21 calculates the movement according to the operation input (step S405). Here, when the player character PC is on the ground or a dynamic object and a directional operation input is made to the analog stick 6L, the movement (movement amount and movement direction) according to the directional operation input is calculated. Here, the calculated movement amount and movement direction differ depending on the input amount of the directional operation input, the inclination and friction of the ground or dynamic object on which the player character PC is located, and the like. For example, when the player character PC moves on a ground with high friction or a ground with a high inclination, the calculated movement amount becomes small.
[0176] Next, the processor 21 calculates the total movement of the player character PC, and updates the position of the player character PC in the virtual space (step S406). Here, the processor 21 calculates the total movement of the player character PC based on the results of steps S402, S404, and S405. Specifically, when the dynamic object on which the player character PC rides is in an adsorption state, the processor 21 adds the movement calculated in step S404 to the movement set in step S402, and further adds the movement calculated in step S405. As a result, when the dynamic object on which the player character PC rides is in an adsorption state, the movement of the dynamic object on which the player character PC rides is imparted to the player character PC. Furthermore, when the player character PC comes into contact with another object, a movement according to the interaction with the other object is added, and when an operation input is being performed, a movement according to the operation input is added. On the other hand, when the dynamic object on which the player character PC is riding is in the adhesion release state, a movement based on an interaction with the riding dynamic object is calculated, and further, when the player character PC comes into contact with another object, a movement according to the interaction with the other object is added, and when an operation input is performed, a movement according to the operation input is added. When the player character PC is not riding on a dynamic object, the movement calculated in step S405 is added to the movement calculated in step S404. Then, the processor 21 updates the position of the player character PC based on the calculated total movement, and stores it as the position and posture data 121. The processor 21 also updates the velocity of the player character PC, and stores it as the velocity and angular velocity data 122.
[0177] Next, the processor 21 updates the posture of the player character PC (step S407). Specifically, the processor 21 updates the posture of the player character PC based on the result of step S404. When the player character PC is standing on a dynamic object, the processor 21 sets the posture of the player character PC so that the player character PC does not tilt with respect to the vertical axis of the virtual space (or so that the tilt with respect to the vertical axis falls within a predetermined range). The processor 21 also matches the posture of the feet of the player character PC to the object under the feet.
[0178] Next, the processor 21 determines whether or not the feet of the player character PC are in contact with a dynamic object (step S408). Here, it is determined whether or not a dynamic object is in contact with a downward direction of the player character PC.
[0179] When it is determined that the feet of the player character PC are in contact with the dynamic object (step S408: YES), the processor 21 sets the player character PC to a "riding state" on the dynamic object (step S409). In addition, the processor 21 sets the dynamic object that the feet of the player character PC are in contact with to a "(directly) ridden state".
[0180] When the process of step S409 has been executed, or when the result of step S408 is NO, the processor 21 ends the process shown in FIG.
[0181] Returning to FIG. 19, the processor 21 then performs an NPC update process (step S105). This NPC update process is a process for updating the positions and postures of enemy characters and other non-player characters (these will be referred to as "NPCs"). In the NPC update process, the processor 21 moves the NPC or makes the NPC perform an attack action based on a predetermined algorithm, not on the operation input of the player. In the NPC update process, the same process as the process of step S104 is performed. In the NPC update process, the processor 21 basically performs the same process as the player character update process, but instead of calculating the movement according to the operation input in step S405, the processor 21 calculates the movement of the NPC based on a predetermined algorithm. That is, when the NPC is riding on a dynamic object and the dynamic object is in an adsorbed state, the movement of the NPC is added to the movement of the dynamic object.
[0182] Next, processor 21 performs a drawing process (step S106). Here, an image of the virtual space viewed from a virtual camera arranged in the virtual space is generated. As a result, a game image is generated according to the processes of steps S101 to S105. The generated game image is output to display 12 or another display device. The drawing process of step S106 is repeatedly executed at predetermined frame time intervals, thereby displaying the player character PC moving in the virtual space and performing various actions.
[0183] Next, processor 21 determines whether or not to end the game (step S107). For example, when an instruction to end the game is given by the player, processor 21 determines to end the game, and ends the game processing shown in Fig. 19. On the other hand, when the determination is NO in step S107, processor 21 executes the processing of step S101 again.
[0184] As described above, in the game of the above embodiment, the dynamic object arranged in the virtual space is moved in the virtual space based on a physical calculation (S309). The player character is moved based on an operation input (S405), and a collision determination is performed in the downward direction of the player character (S408). If the player character and the dynamic object are in contact in the downward direction, a process is performed to add the movement of the dynamic object in contact in the downward direction to the movement of the player character (S406).
[0185] This allows the player character to move in the virtual space together with the dynamic object on which it is riding, and allows the player character to move on the dynamic object.
[0186] In the above embodiment, the player character is moved based on a physical calculation associated with the contact between the player character and a dynamic object on which the player character is not riding (S404, S406), and the dynamic object on which the player character is riding is not moved based on a physical calculation, but the movement of the dynamic object on which the player character is riding is given to the player character (S402). This makes it possible to move the player character together with the dynamic object on which the player character is riding in the virtual space, and to move the player character based on a physical calculation when the player character comes into contact with another dynamic object on which the player character is not riding. For example, when another dynamic object on which the player character is not riding collides with the player character, the player character can be moved further.
[0187] In the above embodiment, when an assembly object includes a special object, and the player character is riding on a dynamic object included in the assembly object, the movement of the dynamic object is not added to the movement of the player character during a predetermined period in which the special object is in motion, but the player character is moved based on a physical calculation accompanying the contact between the dynamic object and the player character (S403, S404, S406). This allows, for example, the player character to move away from the dynamic object on which he is riding while the assembly object is in motion.
[0188] In the above embodiment, the player character is made to perform an object operation action including a first operation for moving a designated dynamic object and a second operation for combining the designated dynamic object with another dynamic object to form an assembly object based on an operation input by the player. If an assembly object including a dynamic object designated by the object operation action includes a dynamic object on which the player character is riding, the object operation action is not performed to move the assembly object (S204). This makes it possible to prevent the assembly object from continuing to move by the object operation action, and makes it easier to operate the controlled object by the object operation action.
[0189] (Modification) Although the present embodiment has been described above, the above embodiment is merely an example, and the following modifications may be made, for example.
[0190] For example, the processing shown in the above flowchart is merely an example, and the order and contents of the processing may be changed as appropriate. For example, in the above embodiment, in the player character update processing, the processing is performed in the order of step S402, step S404, and step S405, but the order of these steps may be changed arbitrarily. Also, in the above embodiment, the physical calculation is performed for the dynamic object, and then the physical calculation is performed for the player character and the NPC, but in other embodiments, the physical calculation may be performed simultaneously for all objects (dynamic objects, player character, and NPC).
[0191] In the above embodiment, when the player character PC is riding on a dynamic object, the movement of the dynamic object is added to the movement of the player character PC, and the player character PC is kept in a constant posture. That is, in the above embodiment, the movement of the dynamic object is added to the movement of the player character PC, but the posture of the player character PC is adjusted so that the player character PC does not tilt with respect to the vertical axis of the virtual space or is within a predetermined range. In another embodiment, when the player character PC is riding on a dynamic object, the movement of the dynamic object may be added to the movement of the player character PC, and the change in the posture of the dynamic object may be given to the player character PC. In this case, when the dynamic object on which the player character PC is riding tilts, the player character PC also tilts in the same manner.
[0192] Also, in the above embodiment, if the player character PC jumps while in contact with a dynamic object, the player character PC temporarily moves away from the dynamic object, and during that time, the movement of the dynamic object is not imparted to the player character PC. In other embodiments, even when the player character PC jumps on a dynamic object and is temporarily away from the dynamic object, the movement of the dynamic object may be imparted to the player character PC. That is, in such a temporarily away state, the player character may be considered to be on the dynamic object (maintaining the adsorbed state), and the movement of the dynamic object may be imparted to the player character.
[0193] In the above embodiment, the object operation action of the player character PC performs a first operation of moving the controlled object in the virtual space and a second operation of connecting (combining) the controlled object to another dynamic object. In another embodiment, only the first operation of moving the controlled object may be performed by the object operation action. In this case, the process of connecting the dynamic object to another dynamic object to generate an assembly object may be performed based on another action of the player character. Also, the assembly object may be generated based on the operation of the player, regardless of the action of the player character. Also, the assembly object may be prepared in advance, without being generated based on the operation of the player.
[0194] In the above embodiment, one of the dynamic objects included in the assembly object is designated and set as a control target of the object manipulation action. In another embodiment, the entire assembly object may be designated and the entire assembly object may be set as a control target of the object manipulation action. Also, multiple dynamic objects included in the assembly object may be designated and the multiple dynamic objects may be set as control targets of the object manipulation action.
[0195] In the above embodiment, the dynamic object and the second special object connected to the first special object are changed from an attached state to a non-attached state when they are in an operating state. In other embodiments, regardless of whether such a special object is connected or not, the dynamic object may be in an attached state until a predetermined condition is satisfied, and when the predetermined condition is satisfied, the dynamic object may be in a non-attached state. The predetermined condition may be a condition related to the time since the dynamic object became in an operating state, or a condition related to the velocity, angular velocity, position, attitude, etc. of the dynamic object, or a combination of these conditions.
[0196] Furthermore, the hardware configuration for performing the above-mentioned game processing is merely an example, and the above-mentioned game processing may be performed in any other hardware. For example, the above-mentioned game processing may be executed in any information processing system, such as a personal computer, a tablet terminal, a smartphone, or a server on the Internet. Furthermore, the above-mentioned game processing may be executed in a distributed manner by a plurality of devices.
[0197] In addition, the configurations according to the above-described embodiments and their modifications can be combined in any manner as long as they are not inconsistent with each other. Furthermore, the above is merely an example of the present invention, and various improvements and modifications other than those described above may be made. [Explanation of symbols]
[0198] 1. Game System 2 Main Unit 3 Left Controller 4 Right Controller 21 Processors 31 Dynamic Objects 32 Connection Objects 40 Airplane Objects 41 Four-wheeled vehicle object 310, 311, 312 Dynamic objects
Claims
1. In the computer of the information processing device, The movement of movable, dynamic objects placed in a virtual space is controlled by physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, the player character is controlled within the virtual space. The player character is made to perform an object manipulation action that includes at least a first operation to move a specified dynamic object based on the input, and a second operation to combine it with other dynamic objects to form an assembled object. A game program that performs a contact detection for the player character in the downward direction, and if the assembled object, which includes the dynamic object specified by the object manipulation action, includes the dynamic object that is in contact with the player character in the downward direction, it performs control to cut off at least a portion of the force applied to the dynamic object based on the first operation.
2. The game program according to claim 1, wherein the control for cutting at least a portion of the force includes a control for cutting the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
3. The game program according to claim 2, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.
4. The aforementioned computer further: The game program according to claim 1, further controlling the movement of the dynamic object by the first operation if the dynamic object is in downward contact with the player character when it is resting on the dynamic object specified by the object operation action or the assembled object containing the dynamic object.
5. The dynamic object has an operating state and a non-operating state, and includes a propulsion object that generates thrust in the operating state, To the aforementioned computer, The game program according to any one of claims 1 to 4, wherein if the assembled object includes the propulsion object in operation, the program controls the movement of the assembled object based on the propulsion force.
6. In the computer of the information processing device, The movement of movable, dynamic objects placed in a virtual space is controlled by physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, the player character is controlled within the virtual space. The player character is instructed to perform an object manipulation action that includes at least a first operation to move the specified dynamic object based on the input. A game program that performs contact detection with an object on which the player character is standing, and controls the dynamic object specified by the object manipulation action to cut off at least a portion of the force applied to the dynamic object based on the first operation, depending on whether the player character is standing directly or indirectly on the dynamic object.
7. The game program according to claim 6, wherein the control for cutting at least a portion of the force includes a control for cutting the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
8. The game program according to claim 7, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.
9. An information processing system including a processor, wherein the processor is The movement of movable dynamic objects placed within the virtual space is controlled by physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, the player character is controlled within the virtual space. The player character is made to perform an object manipulation action that includes at least a first operation to move a specified dynamic object based on the input, and a second operation to combine it with other dynamic objects to form an assembled object. An information processing system that performs a contact determination for the player character in the downward direction, and if the assembled object, which includes the dynamic object specified by the object manipulation action, includes the dynamic object that is in contact with the player character in the downward direction, it performs control to cut off at least a portion of the force applied to the dynamic object based on the first operation.
10. The information processing system according to claim 9, wherein the control for cutting at least a portion of the force includes a control for cutting the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
11. The information processing system according to claim 10, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.
12. The aforementioned processor further, The information processing system according to claim 9, further controlling the movement of the dynamic object by the first operation if the dynamic object is in downward contact with the player character when it is resting on the dynamic object specified by the object operation action or the assembled object containing the dynamic object.
13. The dynamic object has an operating state and a non-operating state, and includes a propulsion object that generates thrust in the operating state, The aforementioned processor, If the assembled object includes the operational propulsion object, the information processing system according to any one of claims 9 to 12 controls the movement of the assembled object based on the propulsion force.
14. An information processing system including a processor, wherein the processor is The movement of movable, dynamic objects placed in a virtual space is controlled by physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, the player character is controlled within the virtual space. The player character is instructed to perform an object manipulation action that includes at least a first operation to move the specified dynamic object based on the input. An information processing system that performs contact detection with an object on which the player character is standing, and controls the dynamic object specified by the object manipulation action to cut off at least a portion of the force applied to the dynamic object based on the first operation, depending on whether the player character is standing directly or indirectly on the dynamic object.
15. The information processing system according to claim 14, wherein the control for cutting at least a portion of the force includes a control for cutting the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
16. The information processing system according to claim 15, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.
17. An information processing apparatus including a processor, wherein the processor is The movement of movable, dynamic objects placed in a virtual space is controlled by physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, the player character is controlled within the virtual space. The player character is made to perform an object manipulation action that includes at least a first operation to move a specified dynamic object based on the input, and a second operation to combine it with other dynamic objects to form an assembled object. An information processing device that performs a contact determination for the player character in the downward direction, and if the assembled object, which includes the dynamic object specified by the object manipulation action, includes the dynamic object that is in contact with the player character in the downward direction, it performs control to cut off at least a portion of the force applied to the dynamic object based on the first operation.
18. The information processing apparatus according to claim 17, wherein the control for cutting off at least a portion of the force includes a control for cutting off the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
19. The information processing apparatus according to claim 18, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.
20. The aforementioned processor further, The information processing apparatus according to claim 17, further controlling the movement of the dynamic object by the first operation when the dynamic object that is in downward contact with the player character is resting on the dynamic object specified by the object operation action or the assembled object containing the dynamic object.
21. The dynamic object has an operating state and a non-operating state, and includes a propulsion object that generates thrust in the operating state, The aforementioned processor, If the assembled object includes the operational propulsion object, the information processing device controls the movement of the assembled object based on the propulsion force, according to any one of claims 17 to 20.
22. An information processing apparatus including a processor, wherein the processor is The movement of movable, dynamic objects placed in a virtual space is controlled by physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, the player character is controlled within the virtual space. The player character is instructed to perform an object manipulation action that includes at least a first operation to move the specified dynamic object based on the input. An information processing device that performs contact detection with an object on which the player character is standing, and cuts off at least a portion of the force applied to the dynamic object based on the first operation when the player character is directly standing on the dynamic object specified by the object manipulation action or when the player character is indirectly standing on the dynamic object.
23. The information processing apparatus according to claim 22, wherein the control for cutting at least a portion of the force includes a control for cutting the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
24. The information processing apparatus according to claim 23, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.
25. An information processing method performed in an information processing system, Controlling the movement of movable, dynamic objects placed in a virtual space through physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, control the player character within the virtual space. The player character is instructed to perform an object manipulation action that includes at least a first operation to move a specified dynamic object based on the input, and a second operation to combine it with other dynamic objects to form an assembled object, and Information processing method comprising: performing a contact determination for the downward direction of the player character; and, if the assembled object including the dynamic object specified by the object manipulation action includes the dynamic object that is in contact with the downward direction of the player character, performing control to cut at least a portion of the force applied to the dynamic object based on the first operation.
26. The information processing method according to claim 25, wherein the control for cutting at least a portion of the force includes a control for cutting the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
27. The information processing method according to claim 26, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.
28. The information processing method according to claim 25, further comprising: if the dynamic object specified in the object manipulation action or the assembled object containing the dynamic object is in downward contact with the player character, then controlling the movement of the dynamic object by the first operation.
29. The dynamic object has an operating state and a non-operating state, and includes a propulsion object that generates thrust in the operating state, The information processing method according to any one of claims 25 to 28, further comprising controlling the movement of the assembled object based on the propulsion force if the assembled object includes the propulsion object in operation.
30. An information processing method performed in an information processing system, Controlling the movement of movable, dynamic objects placed in a virtual space through physics calculations based on their interaction with the player character and other dynamic objects. Based on the input, control the player character within the virtual space. The player character is instructed to perform an object manipulation action that includes at least a first operation to move the specified dynamic object based on the input, and Information processing method comprising: performing contact detection with an object on which the player character is standing; and, depending on whether the player character is directly or indirectly standing on the dynamic object specified by the object manipulation action, performing control to cut off at least a portion of the force applied to the dynamic object based on the first operation.
31. The information processing method according to claim 30, wherein the control for cutting at least a portion of the force includes a control for cutting the force that moves the dynamic object from the force applied to the dynamic object based on the first operation.
32. The information processing method according to claim 31, wherein the control for cutting at least a portion of the force further includes a control for causing the dynamic object to fall by cutting the force that levitates the dynamic object or the force that resists gravity.