Game program, information processing system, information processing unit and information processing method

JP2024159743A5Pending Publication Date: 2026-04-21NINTENDO CO LTD
View PDF 0 Cites 0 Cited by

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-21

AI Technical Summary

Technical Problem

In games where objects move, applying a propulsive force can result in speeds exceeding the allowable range, leading to uncontrolled acceleration.

Method used

A game program that attenuates the propulsive force of objects based on their speed, ensuring it disappears when the speed exceeds a predetermined standard, and controls the combination of dynamic objects to form assembly objects with adjusted propulsive forces.

Benefits of technology

Prevents objects from reaching speeds beyond the game's allowable limits by dynamically adjusting propulsive forces, allowing for complex object combinations while maintaining control over their movement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a game program capable of adding thrust to an object, and controlling to make it difficult to reach a speed exceeding an allowable range.SOLUTION: In a game in an embodiment, concerning a propulsion object in movable dynamic objects arranged in a virtual space, thrust is generated, and the propulsion object is moved in the virtual space based on physical calculation. The thrust is attenuated according to the magnitude of a component along a thrust direction of travel speed of the propulsion object, and when the component along the thrust direction exceeds a prescribed reference value, control is carried out so that the thrust is vanished.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

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 move while riding on a predetermined object (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] In a game in which such an object moves, if it is desired to be able to apply an arbitrary propulsive force to the object, there is a concern that the object may reach a speed that exceeds the range permitted by the game system.

[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 can apply propulsive force to an object while controlling it so that it is unlikely to reach a speed that exceeds an allowable range. [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 of a first configuration causes an information processing device computer to attenuate a propulsion force of a dynamic object, which is placed in the virtual space and whose movement is controlled based on physics calculations, in accordance with the movement speed of the propulsion object, such that the propulsion force is lost when the movement speed of the propulsion object based on physics calculations exceeds a predetermined standard. The propulsion force is generated by a propulsion object, and the propulsion force is controlled based on the movement speed of the propulsion object.

[0008] According to the above, the propulsion object is controlled so that its propulsion force is lost when its moving speed exceeds a predetermined standard, thereby preventing the propulsion object from reaching a speed that exceeds an allowable range.

[0009] (Second Configuration) In a second configuration, in the above first configuration, the computer may further be configured to combine a plurality of the dynamic objects to form an assembly object based on an operation input.

[0010] Based on the above, a plurality of dynamic objects can be combined to form an assembly object.

[0011] (Third Configuration) In a third configuration, in the second configuration, the computer may determine a moving speed for each of the dynamic objects included in the assembly object based on a physical calculation using a force acting from the combined dynamic objects, and attenuate each of the propulsion objects included in the assembly object in accordance with the moving speed of each of the propulsion objects.

[0012] According to the above, for each of the propulsion objects in the assembly object, the propulsion force can be attenuated in accordance with the speed thereof.

[0013] (Fourth Configuration) In a fourth configuration, in any one of the first to third configurations, the computer may attenuate the thrust in accordance with a component of the moving speed along the direction of the thrust, and the predetermined criterion may be that the component along the direction of the thrust reaches a predetermined reference value.

[0014] According to the above, the propulsion force can be attenuated according to the component of the movement speed of the propulsion object along the direction of the propulsion force, and when the component reaches a predetermined reference value, the propulsion force of the propulsion object can be controlled to disappear.

[0015] (Fifth Configuration) In a fifth configuration, in the first to fourth configurations above, a first propulsion object among the propulsion objects, which has a first state and a second state, may generate the propulsion force continuously in a predetermined direction in the first state.

[0016] Based on the above, when the first propulsion object is in the first state, a propulsion force can be generated in a predetermined direction.

[0017] (6th Configuration) In a sixth configuration, in the fifth configuration, the computer may further be caused to perform control such that the propulsion force is not generated even in the first state when the first propulsion object is not part of the assembly object and is in a predetermined posture.

[0018] According to the above, when the first propulsion object is in a predetermined posture, it is possible to prevent propulsion force from being generated even in the first state, for example, to maintain the first propulsion object in a predetermined posture.

[0019] (Seventh Configuration) In a seventh configuration, in the fifth configuration, the propulsion object may include a second propulsion object. In addition to the propulsion force, the computer may further generate a collision detection region in the virtual space for the first propulsion object, and when the collision detection region contacts the second propulsion object, generate a propulsion force for the second propulsion object.

[0020] Based on the above, it is possible to cause the second propulsion object to generate a propulsive force.

[0021] (8th Configuration) In an eighth configuration, in the seventh configuration, the computer may further generate the propulsion force against the second propulsion object when the second propulsion object comes into contact with a collision detection area excluding the collision detection area generated from the first propulsion object included in the assembly object including the second propulsion object.

[0022] According to the above, when the same assembly object includes the first propulsion object and the second propulsion object, it is possible to prevent the second propulsion object from generating a propulsion force in the collision detection area generated from the first propulsion object.

[0023] (Ninth Configuration) In a ninth configuration, in the fourth configuration, the computer may further generate the propulsion force for a predetermined period of time from a timing specified based on an operation input for a third propulsion object among the propulsion objects.

[0024] Based on the above, it is possible to cause the third propulsion object to generate a propulsion force for only a predetermined period of time.

[0025] (10th Item) In a tenth configuration, in the ninth configuration, the computer may further increase the mass and inertia tensor of the third propulsion object used in the physics calculation while the propulsion force is being generated in the third propulsion object.

[0026] According to the above, while a propulsion force is being generated in the third propulsion object, the mass of the third propulsion object can be increased, for example, to apply a large force to other objects in contact with the third propulsion object.

[0027] (11th Feature) In an eleventh configuration, in the fourth configuration, the computer may further generate the propulsion force in an upward direction in the virtual space for a fourth propulsion object among the propulsion objects.

[0028] Based on the above, it is possible to cause the fourth propulsion object to generate an upward propulsion force in the virtual space.

[0029] (12th Feature) In a 12th configuration, in the 11th configuration, the computer can further increase the propulsion force and the reference value for the fourth propulsion object, the larger a predetermined parameter given to the fourth propulsion object based on game processing is.

[0030] Based on the above, it is possible to increase the thrust of the fourth propulsion object in accordance with a predetermined parameter, and to increase the reference value until the thrust is lost.

[0031] (13th Feature) In a 13th configuration, in the 11th or 12th configuration, the computer may further increase the mass and inertia tensor of the fourth propulsion object used in the physics calculation while the propulsion force is being generated in the fourth propulsion object.

[0032] According to the above, while a propulsion force is being generated in the fourth propulsion object, the mass of the fourth propulsion object can be increased, for example, to apply a large force to other objects in contact with the fourth propulsion object.

[0033] Furthermore, the other configuration may be an information processing system, an information processing device, or an information processing method. Effect of the Invention

[0034] According to the present invention, the thrust of the propulsion object can be attenuated in accordance with the moving speed of the propulsion object, and the propulsion object can be prevented from reaching a speed exceeding an allowable range. [Brief description of the drawings]

[0035] [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. 1 is a diagram for explaining control of the propulsion force when a propulsion object is moving. [Figure 8] A diagram showing the relationship between the magnitude of the thrust direction component S of the velocity of a propelled object and the magnitude of the thrust F. [Figure 9] FIG. 13 is a diagram showing an example of an assembly object including a wing object 31g and a plurality of propulsion objects, and shows an example of controlling the propulsion force of each of the propulsion objects. [Figure 10] FIG. 13 is a diagram showing an example of an assembly object including a wing object 31g and a plurality of propulsion objects, in which the speeds of the propulsion objects are different. [Figure 11] A diagram showing the behavior of the rocket object 31c depending on the state. [Figure 12] A diagram showing behaviors of an electric fan object 31a according to its state. [Figure 13] FIG. 13 shows an example of a game image when an assembly object including a sail object 31d moves. [Figure 14] FIG. 14 is a diagram showing an example of a game image after a predetermined time has elapsed from the state shown in FIG. 13; [Figure 15] FIG. 13 is a diagram showing an example of an assembly object 44 including a second electric fan object 31ab, a sail object 31g, and a board object 31f. [Figure 16] A diagram showing the direction of the propulsive force of the balloon object 31e and the difference in propulsive force due to fire. [Figure 17] FIG. 13 is a diagram showing the relationship between the magnitude of the thrust direction component S of the velocity of a balloon object 31e and the magnitude of the thrust Fe. [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 object update process in step S103. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0036] (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.

[0037] 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."

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

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

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

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

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

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

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

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

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

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

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

[0049] (Game Overview) Next, the game of this embodiment will be described. Fig. 3 is a diagram showing an example of a game image displayed when the game of this embodiment is executed.

[0050] As shown in Fig. 3, a player character PC and a plurality of dynamic objects 31 (e.g., 31a to 31f) are arranged on a ground surface 30 in a three-dimensional virtual space (game space). Although omitted in Fig. 3, in addition to the player character PC, non-player characters (e.g., enemy characters, characters who are friends of the player character PC, etc.) controlled by the processor 21 are also arranged in the virtual space.

[0051] The player character PC moves within the virtual space and performs one of a number of actions within the virtual space based on operational input to the controller (3 or 4).

[0052] For example, the player character PC moves on the ground 30 in the virtual space based on a directional operation input to the analog stick 6L of the controller 3.

[0053] 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 owns, and performs an attack action according to the equipped weapon object based on the operation input of the player. For example, the player character PC can perform an attack action using a close-range weapon object (e.g., a sword object) and an attack action using a long-range weapon object (e.g., an arrow object).

[0054] The player character PC also 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.

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

[0056] A dynamic object 31 is an object that can move in a virtual space. Each of the dynamic objects 31 has its own mass, shape, characteristics, etc. As shown in Fig. 3, the dynamic objects 31 include, for example, a fan object 31a, a wheel object 31b, a rocket object 31c, a sail object 31d, a balloon object 31e, a board object 31f, and a wing object 31g.

[0057] 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 continuously generates wind in the virtual space, and applies force to an object (e.g., an enemy character) arranged in the virtual space by the force of the wind, so that the object can fly. Also, when in the operating state, the electric fan object 31a continuously generates a propulsive force in the direction opposite to the wind direction.

[0058] 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 when in the operating state, rotates in a predetermined direction and continuously generates a propulsive force by the rotation.

[0059] The rocket object 31c is an object that resembles a rocket. The rocket object 31c has a non-operating state and an operating state, and when in the operating state, generates a strong propulsive force in a predetermined direction for a predetermined period (for example, 10 seconds). The rocket object 31c disappears when the predetermined period has elapsed since it entered the operating state.

[0060] The sail object 31d is an object that imitates a sail. The sail object 31f is an object that receives wind blowing in the virtual space or wind from the electric fan object 31a to generate a propulsive force. As will be described in detail later, the sail object 31d is connected to, for example, a plank object 31f to form a ship object, and generates a propulsive force for the ship object.

[0061] The balloon object 31e is an object that imitates a hot air balloon and is an object that can fly in a virtual space. The balloon object 31e has a non-operating state and an operating state, and when in the operating state, it continuously generates a propulsive force upward in the virtual space. The propulsive force of the balloon object 31e varies depending on the magnitude of the firepower.

[0062] The plank object 31f is a flat object and can be used as, for example, the body of a vehicle, or can be floated on the water and used as a part of a ship object.

[0063] The wing object 31g is an object for flying in the air, and generates upward lift in the virtual space when moving in the virtual space at or above a predetermined speed.

[0064] The electric fan object 31a, the wheel object 31b, the rocket object 31c, and the balloon object 31e are dynamic objects that generate propulsive force by themselves when in operation, and can move in the virtual space by the propulsive force. The sail object 31d generates propulsive force by receiving wind generated by the electric fan object 31a or other objects, or wind blowing in the virtual space. These dynamic objects (31a to 31e) that generate propulsive force are collectively referred to as "propulsive objects."

[0065] On the other hand, the plank object 31f and the wing object 31g are objects that do not have a non-operating state and an operating state, and are objects that do not generate propulsive force. The wing object 31g generates lift when moving at a predetermined speed or faster in the virtual space by, for example, being subjected to a force from another object, but does not generate propulsive force by itself. Also, the plank object 31f can move in the virtual space by being subjected to a force from another object, but does not generate propulsive force by itself. These dynamic objects (31d, 31f) that do not generate propulsive force by themselves are collectively called "non-propelled objects". Non-propelled objects can move in the virtual space by receiving forces from the propelled objects, the player character PC, and the non-player characters.

[0066] In addition, static objects that do not move due to the actions of the player character PC or interactions with other objects are also placed in the virtual space. Examples of static objects are terrain objects such as rocks, mountains, buildings, the ground, rivers, and oceans that are fixed in the virtual space. Static objects are objects that cannot be operated by object operation actions.

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

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

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

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

[0071] FIG. 5 is a diagram showing an example of a game image when the electric fan object 31a is moved based on an object operation action. As shown in FIG. 5, for example, when the player character PC moves toward the wing object 31g while operating the electric fan object 31a based on an 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 31g in response to a key operation on the button 5L while operating the electric fan object 31a based on an object operation action. When the electric fan object 31a and the wing object 31g 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 31g. 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 31g is generated as the assembly object.

[0072] 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 31g.

[0073] 6, a connection object 32 is placed between the electric fan object 31a and the wing object 31g. 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.

[0074] 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 the wing object 31g connected to the electric fan object 31a via the connection object 32, and the airplane object 40 including the electric fan object 31a and the wing object 31g starts to move.

[0075] 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 31g and flies in the virtual space. The player character PC can ride on the airplane object 40 and fly in the virtual space.

[0076] (Thrust Control) Next, the control of the propulsion force of the propulsion object will be described with reference to Fig. 7. Fig. 7 is a diagram for explaining the control of the propulsion force when the propulsion object is moving.

[0077] As described above, in the game of this embodiment, the player can combine multiple dynamic objects 31 to generate an assembly object. The assembly object is movable in the virtual space. In Fig. 7, for example, the moving direction and the direction of the propulsion force of a propulsion object (for example, an electric fan object 31a) included in the assembly object are shown.

[0078] As shown in FIG. 7, the propulsion object is moving in the upward direction in FIG. 7 at a speed V (speed vector V). The propulsion object generates a propulsion force F in a predetermined direction. In FIG. 7, the direction of the propulsion force F of the propulsion object is diagonally upward to the left and has a predetermined angle with the speed V. Here, the component of the speed V of the propulsion object along the direction of the propulsion force F is defined as a propulsion force direction component S. The propulsion force direction component S is a three-dimensional vector. The propulsion force F of the propulsion object is changed according to the magnitude of this propulsion force direction component S.

[0079] FIG. 8 is a diagram showing the relationship between the magnitude of the thrust directional component S of the velocity of the propulsion object and the magnitude of the thrust F. In FIG.

[0080] As shown in FIG. 8, the thrust F of the propulsion object is attenuated according to the magnitude of the thrust directional component S. For example, when the magnitude of the thrust directional component S is zero, the magnitude of the thrust F of the propulsion object is set to the maximum F0. The magnitude of the thrust F of the propulsion object is attenuated linearly according to the magnitude of the thrust directional component S. For example, when the magnitude of the thrust directional component S is S1, the magnitude of the thrust F of the propulsion object is set to F1. FIG. 7 shows a state in which the magnitude of the thrust F is attenuated to F1. Then, when the magnitude of the thrust directional component S exceeds S2, the magnitude of the thrust F is set to zero. The magnitude of the thrust F of the propulsion object is set according to the magnitude of the thrust directional component S at the current time. For this reason, for example, while the magnitude of the thrust directional component S increases from zero to S2, the magnitude of the thrust F decreases from the maximum value to zero, and then, when the magnitude of the thrust directional component S starts to decrease and falls below S2, the magnitude of the thrust F increases and is set to a value according to the magnitude of the thrust directional component S at that time.

[0081] If the thrust F is not attenuated, the propulsion object will continue to accelerate, and there is a high possibility that the propulsion object will reach a speed that exceeds the range that is acceptable in the game. In this embodiment, the thrust F is attenuated according to the thrust direction component S of the velocity V of the propulsion object, and is controlled so that the thrust F disappears when the thrust direction component S increases to a predetermined standard. This makes it possible to prevent the propulsion object from continuing to accelerate and reaching a speed that exceeds the range that is acceptable in the game.

[0082] The relationship between the magnitude of the thrust direction component S of the thrust F of the propulsion object shown in Fig. 8 and the magnitude of the thrust F is determined according to the type of the propulsion object. That is, the slope of the straight line shown in Fig. 8 differs depending on the type of the propulsion object, the value of F when S = 0 differs, and the value of S when F = 0 differs. For example, a propulsion object with a large thrust set in advance (e.g., rocket object 31c) has a large value set for the thrust direction component S at which the thrust becomes zero.

[0083] The thrust of the propulsion object is attenuated according to the thrust directional component S of the velocity V of the propulsion object, whether the propulsion object is included in an assembly object or is a standalone object.

[0084] When multiple propulsion objects are included in an assembly object, a propulsion force is set for each propulsion object. Fig. 9 is a diagram showing an example of an assembly object including a wing object 31g and multiple propulsion objects, and is a diagram showing an example of control of the propulsion force of each propulsion object. Fig. 9 shows a diagram of the wing object 31g as seen from above. The upward direction in Fig. 9 is the front of the wing object 31g.

[0085] 9, a first electric fan object 31aa, a second electric fan object 31ab, and a rocket object 31c are connected to a wing object 31g of an assembly object 41 as a plurality of propulsion objects. The propulsion objects (31aa, 31ab, 31c) are in operation and generate propulsion force. The assembly object 41 is accelerated in the virtual space by the propulsion force of each of these propulsion objects, and moves at a speed V at a certain point in time.

[0086] Specifically, a first electric fan object 31aa is disposed at the rear left part of the wing object 31g. The first electric fan object 31aa generates wind toward the rear of the wing object 31g, and generates a propulsive force Fa in front of the wing object 31g. A second electric fan object 31ab is disposed at the rear right part of the wing object 31g. The second electric fan object 31ab generates wind to the right toward the front of the wing object 31g, and generates a propulsive force Fb to the left toward the front of the wing object 31g. A rocket object 31c is disposed at the approximate center part of the wing object 31g. The rocket object 31c ejects gas toward the rear of the wing object 31g, and generates a propulsive force Fc in front of the wing object 31g.

[0087] The assembly object 41 is in a state of moving at a speed V in the forward and leftward direction of the wing object 31g by the thrusts of the three propulsion objects. The thrusts of the propulsion objects of the assembly object 41 are attenuated according to the thrust direction component S. Specifically, the first electric fan object 31aa moves in the virtual space at a speed Vaa, and the thrust Fa is attenuated according to a component (thrust direction component) Saa of the speed Vaa along the direction of the thrust Fa. The second electric fan object 31ab moves in the virtual space at a speed Vab, and the thrust Fb is attenuated according to a component (thrust direction component) Sab of the speed Vab along the direction of the thrust Fb. The rocket object 31c moves in the virtual space at a speed Vc, and the thrust Fc is attenuated according to a component (thrust direction component) Sc of the speed Vc along the direction of the thrust Fc.

[0088] In the game of this embodiment, physical calculations (calculations based on the laws of physics) are performed on each object (dynamic object 31, player character PC, etc.) at a predetermined frame time interval to calculate the speed, angular velocity, position, attitude, etc. of each object. Specifically, physical calculations are performed based on the propulsive force of the propulsion object, other forces (lift, buoyancy, gravity, etc.) generated by each object, and interactions (forces received, forces exerted) due to contact between each object, and the like, to calculate the latest speed, angular velocity, position, attitude, etc. of each object.

[0089] 9 is fixed on the wing object 31g, and the speed V of the assembly object 41, the speed Vaa of the first electric fan object 31aa, the speed Vab of the second electric fan object 31ab, and the speed Vc of the rocket object 31c are the same. Even multiple propulsion objects included in the same assembly object may have different speeds.

[0090] FIG. 10 is a diagram showing an example of an assembly object including a wing object 31g and a plurality of propulsion objects, and shows a case in which the speeds of the propulsion objects differ depending on each other.

[0091] The assembly object 42 shown in FIG. 10 includes a first electric fan object 31aa, a second electric fan object 31ab, a rocket object 31c, and a wing object 31g, similar to the assembly object 41 shown in FIG. 9. The assembly object 42 further includes a wheel object 31b. Specifically, the wheel object 31b is rotatably connected to the top of the wing object 31g. As shown in FIG. 10, the wheel object 31b rotates around an axis perpendicular to the upper surface of the wing object 31g when in operation. The second electric fan object 31ab is connected to the wheel object 31b.

[0092] In the state shown in FIG. 10, the assembly object 42 moves at a speed V, similarly to FIG. 9. The first electric fan object 31aa and the rocket object 31c are directly fixed to the wing object 31g, and their positional relationship does not change even when the assembly object 42 moves. Therefore, the first electric fan object 31aa and the rocket object 31c move at the same speed V as the assembly object 42 (wing object 31g). On the other hand, the second electric fan object 31ab is fixed to the rotating wheel object 31b. Therefore, the second electric fan object 31ab rotates within the assembly object 42, and the speed due to the rotation is added to the speed V of the assembly object 42. That is, the second electric fan object 31ab moves in the virtual space at a speed Vab' obtained by adding the rotation speed of the wheel object 31b to the speed V of the assembly object 42. The thrust Fb of the second fan object 31ab is attenuated according to the magnitude of the thrust directional component Sab' of this velocity Vab'.

[0093] (Explanation of each propulsion object) Each type of propulsion object has different characteristics. Each propulsion object will be described in detail below.

[0094] FIG. 11 is a diagram showing behavior of rocket object 31c according to the state.

[0095] As shown in Fig. 11, rocket object 31c has mass mc when in a non-operational state. When rocket object 31c becomes operational in this state, the mass of rocket object 31c increases from mc to Mc (>mc) (Fig. 11 (2)). When rocket object 31c becomes operational, the inertia tensor of rocket object 31c also increases compared to when in a non-operational state.

[0096] In an assembly object including a rocket object 31c and a wing object 31g, when the rocket object 31c is in an inoperative state, the mass of the entire assembly object is mg+mc. When the wing object 31g moves in the virtual space at a speed equal to or greater than a predetermined speed, the wing object 31g generates lift, and when this lift exceeds (mg+mc), the assembly object floats and flies in the virtual space.

[0097] When the rocket object 31c is in an operating state, the mass of the rocket object 31c is increased to Mc. As a result, the rocket object 31c generates a large thrust Fc, which is applied to the wing object 31g, and a large force is applied to the assembly object including the rocket object 31c and the wing object 31g. Note that the thrust Fc is attenuated according to the thrust direction component S of the velocity of the rocket object 31c, as described above.

[0098] When the rocket object 31c is in an operating state, the mass of the rocket object 31c is increased to Mc, so that a large force can be applied to the dynamic object 31 connected to the rocket object 31c. For example, when the rocket object 31c is in an operating state, if the mass remains mc, only a thrust force fc=mc·α (α is acceleration) can be generated. On the other hand, when the rocket object 31c is in an operating state, the mass can be increased to Mc (>mc), so that a thrust force Fc=Mc·α (>fc) can be generated.

[0099] In this way, when the rocket object 31c is in an operating state, its mass and inertia tensor are increased compared to when it is in an inoperable state. As a result, when the rocket object 31c is in an operating state, a large force can be applied to the dynamic object 31 connected to the rocket object 31c. Even if the mass of the rocket object 31c is increased from mc to Mc, the increase in the gravity acting on the rocket object 31c is reduced, and is set to the same as when the mass is mc. If the gravity acting on the rocket object 31c is increased, the gravity acting on the rocket object 31c becomes greater than the lift generated by the wing object 31g, and for example, the assembled object including the rocket object 31c and the wing object 31g may fall. However, in this embodiment, even if the mass of the rocket object 31c is increased, the gravity is not increased (or the increase is reduced), so that it is possible to prevent the assembled object including the rocket object 31c and the wing object 31g from falling due to its own weight.

[0100] The rocket object 31c disappears (disappears from the virtual space and its mass becomes zero) when a predetermined period (for example, 10 seconds) has passed since it became operational. In this way, the rocket object 31c is in an operational state for only a predetermined period and generates a large propulsive force. Note that the rocket object 31c becomes in an inoperative state when a predetermined period has passed since it became operational, but it may continue to exist without disappearing. In this case, the mass of the rocket object 31c is returned to mc.

[0101] Next, the electric fan object 31a will be described. Fig. 12 is a diagram showing the behavior of the electric fan object 31a according to the state.

[0102] As shown in FIG. 12, a standalone electric fan object 31a that is not part of an assembly object generates wind in a predetermined direction when in an upright position and in an operating state, but does not generate propulsive force (FIG. 12 (1)). The electric fan object 31a has a mass ma, and if propulsive force were generated in a standing position, the electric fan object 31a would rotate due to friction with the ground 30 and may fall over. For this reason, a standalone electric fan object 31a does not generate propulsive force even when in an operating state when in a standing position. The electric fan object 31a maintains its operating state until it is set to a non-operating state. That is, the standalone electric fan object 31a continues to blow wind in a predetermined direction while in an upright position.

[0103] On the other hand, when a single electric fan object 31a is in an operating state in a fallen position, it generates wind in a predetermined direction and generates a propulsive force Fa in the direction opposite to the wind direction (FIG. 12 (2)). For example, when the electric fan object 31a is placed in the virtual space in a fallen position so that the propulsive force Fa is directed upward, when the electric fan object 31a is in an operating state, the electric fan object 31a flies upward due to its own propulsive force Fa. Note that the propulsive force Fa is attenuated according to the propulsive force directional component S of the speed of the electric fan object 31a, as described above.

[0104] Furthermore, when the electric fan object 31a is included in an assembly object, when it is upright and in operation, it generates wind in a predetermined direction and also generates a propulsive force Fa (FIG. 12 (3)). The electric fan object 31a included in an assembly object generates wind and also generates a propulsive force Fa when in operation, regardless of the posture. The mass of the electric fan object 31a is not increased, unlike the rocket object 31c. Furthermore, the propulsive force Fa is attenuated according to the propulsive force direction component S of the speed of the electric fan object 31a, as described above.

[0105] In contrast to (2) in Figure 12, when a single fan object 31a is placed in a leaning position so that the wind direction is upward, the fan object 31a may or may not generate a propulsion force Fa.

[0106] (Movement due to the propulsive force of the sail object) Next, the sail object 31d will be described. Fig. 13 is a diagram showing an example of a game image when an assembly object including the sail object 31d moves. Fig. 14 is a diagram showing an example of a game image after a predetermined time has elapsed from the state of Fig. 13.

[0107] 13, a water surface 35 is set in the virtual space as an example of a terrain object. The player can generate an assembly object for moving on the water surface 35 by performing the object operation action described above.

[0108] For example, as shown in FIG. 13, the player generates an assembly object 43 by connecting (joining) the sail object 31g onto the board object 31f. The board object 31f generates buoyancy when placed on the water surface 35. If the gravity of the objects (sail object 31g and player character PC) riding on the board object 31f is smaller than the buoyancy of the board object 31f, the board object 31f floats on the water surface 35. The sail object 31g receives wind and generates propulsive force. For example, the player places the electric fan object 31a in an upright position near the boundary between the water surface 35 and the ground 30. In this state, the player puts the electric fan object 31a into an operating state. For example, when an attack action of the player character PC hits the electric fan object 31a, the electric fan object 31a changes from a non-operating state to an operating state. The electric fan object 31a generates wind in the operating state.

[0109] More specifically, a predetermined collision detection region is generated from the electric fan object 31a to the left in FIG. 13. This collision detection region is an object having a predetermined shape for determining whether or not wind has hit an object, and is a three-dimensional object used for internal processing. The collision detection region is not displayed on the screen. Instead, when a collision detection region has occurred, an effect image indicating that wind is blowing may be displayed. Collision detection is performed between this collision detection region and the object. When the collision detection region hits an object, a force is applied to the object. A physical calculation is performed based on this force, and the behavior of the object when hit by wind is determined.

[0110] As shown in Fig. 13, when the wind (collision detection area) from the electric fan object 31a hits the sail object 31g, the sail object 31g generates a propulsive force Fg. This propulsive force Fg causes the assembly object 43 including the sail object 31g and the board object 31f to move leftward on the water surface (Fig. 14). This allows the player character PC to ride on the assembly object 43 and move on the water surface. As described above, the propulsive force Fg is attenuated according to the propulsive force directional component S of the speed of the sail object 31g.

[0111] When the electric fan object 31a is in operation, the collision detection region is continuously arranged, but the range of the collision detection region is limited. The size of the collision detection region may become smaller as the assembly object 43 moves away from the electric fan object 31a, and the propulsive force when the collision detection region hits the assembly object 43 may become weaker. When the assembly object 43 moves away from the electric fan object 31a by a predetermined distance or more, the collision detection region does not hit the sail object 31g, and the sail object 31g does not generate propulsive force. Therefore, the assembly object 43 loses propulsive force and stops on the water surface 35.

[0112] FIG. 15 is a diagram showing an example of an assembly object 44 including a second electric fan object 31ab, a sail object 31g, and a board object 31f.

[0113] As shown in FIG. 15, a second electric fan object 31ab and a sail object 31g are connected on a board object 31f of the assembly object 44. Also, as in FIG. 13, a first electric fan object 31aa is arranged in an upright position near the boundary between the water surface 35 and the ground 30. In this state, the first electric fan object 31aa on the ground 30 is put into operation, and further, the second electric fan object 31ab in the assembly object 44 is put into operation. In this case, the second electric fan object 31ab generates a propulsive force Fab in the left direction in FIG. 15, and the sail object 31g also generates a propulsive force Fg in the left direction. As a result, two propulsive forces are applied to the assembly object 44, and it starts moving on the water surface 35 with a larger acceleration. Even if the assembly object 44 moves away from the first fan object 31aa to a distance where it is no longer affected by the wind from the first fan object 31aa, the assembly object 44 can continue to move due to the propulsion force of the second fan object 31ab.

[0114] 15, even if a sail object 31g is placed in the direction of the wind blown by a second electric fan object 31ab included in the assembly object 44, the sail object 31g does not generate a propulsive force due to the wind from the second electric fan object 31ab hitting it. In other words, when the sail object 31g is hit by a collision detection region from a first electric fan object 31aa not included in the assembly object 44, the sail object 31g generates a propulsive force in the direction in which the collision detection region flies (in the wind direction), but when the sail object 31g is hit by a collision detection region from a second electric fan object 31ab included in the assembly object 44, the sail object 31g does not generate a propulsive force.

[0115] If the sail object 31g constituting a part of the assembly object 44 generates a propulsive force in response to a collision detection region from the second electric fan object 31ab included in the same assembly object 44, the propulsive forces are generated in opposite directions. Alternatively, depending on the angle between the second electric fan object 31ab and the sail object 31g in the assembly object 44, the assembly object 44 may continue to rotate due to the propulsive force of the second electric fan object 31ab and the propulsive force of the sail object 31g due to the wind from the second electric fan object 31ab. For this reason, the assembly object 44 cannot be moved as intended by the player. Therefore, in this embodiment, when the electric fan object 31a and the sail object 31g are included in the same assembly object, the sail object 31g does not generate a propulsive force due to the collision detection region from the electric fan object 31a included in the same assembly object. This makes it possible to prevent, for example, the electric fan object 31a and the sail object 31g from generating propulsive forces in opposite directions.

[0116] 15, when either the second electric fan object 31ab or the sail object 31g is not connected to the board object 31f, the sail object 31g generates a propulsive force according to the wind from the second electric fan object 31ab. For example, when the second electric fan object 31ab is not connected to the board object 31f and simply sits on the board object 31f, the sail object 31g generates a propulsive force according to the wind from the second electric fan object 31ab.

[0117] Next, the balloon object 31e will be described. FIG. 16 is a diagram showing the direction of the propulsive force of the balloon object 31e and the difference in propulsive force due to fire power. As shown in FIG. 16, the balloon object 31e generates a propulsive force Fe upward in the virtual space when in an operating state. Here, the balloon object 31e generates different propulsive forces Fe according to the fire power. For example, the player character PC can increase or decrease the fire power of the balloon object 31e by using an item (a predetermined parameter). The propulsive force Fe of the balloon object 31e differs according to the fire power.

[0118] FIG. 17 is a diagram showing the relationship between the magnitude of the thrust direction component S of the velocity of the balloon object 31e and the magnitude of the thrust Fe. As shown in FIG. 17, the thrust attenuation graph is different when the firepower of the balloon object 31e is small and when the firepower of the balloon object 31e is large. Specifically, the line showing the relationship between the thrust direction component S and the thrust Fe moves to the upper right of the graph as the firepower of the balloon object 31e is large. For example, in the case where the balloon object 31e is configured to be able to continuously change the firepower using a predetermined game parameter possessed by the player character PC, the line showing the relationship between the thrust direction component S and the thrust Fe moves continuously to the upper right of the graph as the firepower increases continuously.

[0119] Although not shown in the drawings, the mass and inertia tensor of the balloon object 31e are increased when it is in an operating state, similar to the rocket object 31c, compared to when it is in an inoperable state. This allows a large propulsive force to be applied to an assembly object including the balloon object 31e and other dynamic objects 31 when the balloon object 31e is in an operating state.

[0120] As described above, in the game of this embodiment, a plurality of types of dynamic objects 31 including a plurality of types of propulsion objects are arranged in a virtual space. A player can generate an assembly object by connecting (combining) a plurality of dynamic objects 31 based on an object operation action, and can move the assembly object including the propulsion object. The propulsion object generates a propulsion force that moves itself in a predetermined direction. The propulsion force F of the propulsion object is attenuated according to the magnitude of the propulsion force directional component S so that the propulsion force F disappears when the propulsion force directional component S of the speed of the propulsion object exceeds a predetermined standard. This makes it possible to prevent the propulsion object from continuing to accelerate due to the propulsion force and reaching a speed that exceeds the range allowable in the game. When a player can freely generate an assembly object including a plurality of propulsion objects, due to the interaction between the objects, the object receives not only the propulsion force generated by itself but also the force from the other propulsion objects, and also applies a force to the other objects. Even in this case, by performing a process of attenuating the propulsion force for each propulsion object, the speed of each propulsion object can be suppressed even if the assembly object is complicatedly combined, and the operation of the entire assembly object can be controlled.

[0121] In general, for example, it is conceivable to perform control such that a certain acceleration is given to an object that can move in a game space, and when the certain speed is reached, the speed is maintained. Although such control is considered to be suitable for moving a simple object that is determined in advance, it may not necessarily be suitable for a case where an assembly object can be freely generated by combining a plurality of dynamic objects. That is, when performing simple control such as giving a certain acceleration to an assembly object that is a combination of a plurality of dynamic objects, and maintaining the speed when the certain speed is reached, it is not possible to utilize the characteristics of each dynamic object included in the assembly object (the magnitude and direction of the thrust of the thrust object, other forces such as lift force, etc.), and only simple behavior can be realized. However, as in the present embodiment, by attenuating the thrust of each thrust object included in the assembly object according to the thrust direction component S, it is possible to control the entire assembly object while utilizing the characteristics of each thrust object and the effect of the arrangement. For example, when a large number of thrust objects are connected to an assembly object, the speed is limited by the attenuation of each thrust, but it is possible to obtain effects by increasing the thrust, such as easier acceleration and less susceptibility to resistance caused by the state of the terrain or obstacles.

[0122] (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.

[0123] 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, propulsion object data 130, non-propulsion object data 140, thrust calculation data 150, static object data 160, 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.).

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

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

[0126] The player character data 120 is data related to the player character PC. The player character data 120 includes, for example, data related to the position and posture of the player character PC, and data related to the speed and angular velocity of the player character PC. The player character data 120 also includes data indicating whether the player character PC is performing an object operation action.

[0127] The propulsion object data 130 is data related to a propulsion object among the dynamic objects 31 arranged in the virtual space. The propulsion object data 130 is stored for each of the propulsion objects arranged in the virtual space. The propulsion object data 130 includes position and orientation data 131, velocity and angular velocity data 132, thrust data 133, and type data 134.

[0128] The position / orientation data 131 is data related to the position and orientation of the propulsion object in the virtual space. Specifically, the position / orientation data 131 includes data indicating the position and orientation of the propulsion object in the latest frame and data indicating the position and orientation in at least the immediately preceding frame.

[0129] The velocity / angular velocity data 132 is data related to the velocity and angular velocity of the propulsion object in the virtual space. Specifically, the velocity / angular velocity data 132 includes data indicating the velocity and angular velocity of the propulsion object in the latest frame and data indicating the velocity and angular velocity at least in the immediately preceding frame.

[0130] The thrust data 133 is data related to the current thrust F of the propulsion object, and is, for example, a three-dimensional vector indicating the magnitude and direction of the thrust F. The direction of the thrust F is determined according to the attitude of the propulsion object. Furthermore, the magnitude of the thrust F is set according to the thrust direction component S of the velocity of the propulsion object.

[0131] The type data 134 is data indicating the type of the propulsion object. For example, the type data 134 includes data on the shape and appearance of the propulsion object, data on the mass of the propulsion object, data indicating whether the propulsion object is in an operating state or a non-operating state, and data on the behavior of the propulsion object when the propulsion object is in an operating state (e.g., data on the magnitude of the propulsion force, the direction of the propulsion force, etc.).

[0132] Non-propelled object data 140 is data relating to a non-propelled object among dynamic objects 31 arranged in virtual space. Non-propelled object data 140 is stored for each non-propelled object arranged in virtual space. Non-propelled object data 140 includes position / attitude data 141 relating to the position and attitude of the non-propelled object, velocity / angular velocity data 142 relating to the velocity and angular velocity, and type data 143. Type data 143 is data indicating the type of non-propelled object, and includes data relating to shape and appearance, data relating to mass, other characteristics (for example, generating lift according to speed, generating buoyancy on the water surface, etc.), etc.

[0133] The thrust calculation data 150 is data (for example, an equation representing the graph shown in FIG. 8) indicating the relationship between the magnitude of the thrust direction component S of the velocity of the propulsion object and the magnitude of the thrust F. The thrust calculation data 150 is prepared for each type of propulsion object.

[0134] The static object data 160 is data related to static objects (objects representing rocks, mountains, buildings, the ground, etc. fixed in the virtual space) arranged in the virtual space. The static object data 160 is stored for each static object. The static object data 160 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.

[0135] 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 propelled object data (e.g., 1130, 2130, etc.). Each piece of propelled object data included in the assembly object data 200 has data similar to that of the propelled object data 130. The assembly object data 200 also includes non-propelled object data (e.g., 1140, etc.). Each piece of non-propelled object data included in the assembly object data 200 has data similar to that of the non-propelled object data 140.

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

[0137] (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.

[0138] 19, when the game processing is started, the processor 21 executes an initial process (step S100). Specifically, the processor 21 sets up a virtual space, and arranges non-player characters such as a static object (a terrain object), a player character PC, a plurality of dynamic objects 31 (a plurality of propelled objects and a plurality of non-propelled objects), and an enemy character in the virtual space.

[0139] 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 S105 at a predetermined frame time interval (for example, 1 / 60 second interval).

[0140] Next, processor 21 performs a player character control process based on the operation data (step S102). Here, processor 21 controls the player character PC in the virtual space in response to an operation input to the controller. Specifically, in step S102, movement control of the player character PC, an attack action by the player character PC, an object operation action by the player character PC, and the like are performed based on the operation data.

[0141] For example, when a movement operation input (eg, a directional operation input to the analog stick 6L) is performed, the processor 21 controls the movement of the player character PC in step S102.

[0142] Also, when an operation input for an attack action is performed, the processor 21 causes the player character PC to start the attack action in step S102. When the attack action hits a propulsion object or an assembly object during the execution of the attack action of the player character PC, the processor 21 sets all the propulsion objects included in the propulsion object or assembly object hit by the attack action from a non-operating state to an operating state, or from an operating state to a non-operating state. Here, for example, when the attack action hits the rocket object 31c or an assembly object including the rocket object 31c, the processor 21 increases the mass and inertia tensor of the rocket object 31c. Also, when the attack action hits the balloon object 31e or an assembly object including the balloon object 31e, the processor 21 similarly increases the mass and inertia tensor of the balloon object 31e.

[0143] In addition, in step S102, processor 21 performs processing related to an object operation action. Specifically, processor 21 designates a dynamic object arranged in the virtual space based on an operation input by the player, and moves, rotates, or connects the designated dynamic object 31 to another dynamic object 31.

[0144] Next, the processor 21 performs an object update process (step S103). Here, the processor 21 performs physical calculations for each object (dynamic object 31, player character PC, non-player character, etc.) in the virtual space to update the velocity, angular velocity, position, attitude, etc. of each object. The object update process will be described in detail later.

[0145] Next, the processor 21 performs a drawing process (step S104). 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 S103. The generated game image is output to the display 12 or another display device. The drawing process of step S104 is repeatedly executed at predetermined frame time intervals, whereby the dynamic objects 31 move within the virtual space, the player character PC moves, and the player character PC performs various actions is displayed.

[0146] Next, processor 21 determines whether or not to end the game (step S105). 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 S105, processor 21 executes the processing of step S101 again.

[0147] (Object update process) FIG. 20 is a flowchart showing an example of the object update process in step S103.

[0148] As shown in FIG. 20, in the current process of FIG. 20, the processor 21 determines whether or not the processes of steps S201 to S204 have been performed for all objects (dynamic objects 31, player characters, and non-player characters) arranged in the virtual space (step S200).

[0149] If the determination in step S200 is NO, the processor 21 selects an object that has not yet been processed as a processing target (step S201).

[0150] Next, the processor 21 determines whether the object to be processed is a propulsion object (eg, the dynamic objects 31a to 31e) (step S202).

[0151] When it is determined that the object to be processed is a propulsion object (step S202: YES), the processor 21 attenuates the thrust F according to the magnitude of the thrust direction component S of the velocity of the propulsion object to be processed (step S203). Here, the processor 21 calculates the magnitude of the thrust generated by the propulsion object to be processed. A thrust according to the type of each propulsion object is predetermined, and the predetermined thrust is attenuated according to the magnitude of the thrust direction component S of the current velocity of the propulsion object. Specifically, the processor 21 calculates the thrust direction component S of the velocity of the propulsion object based on the velocity vector of the propulsion object updated in the previous frame stored in the velocity / acceleration data 132 and the thrust direction stored in the thrust data 133. Then, the processor 21 calculates the magnitude of the thrust F according to the magnitude of the thrust direction component S using data indicating the relationship between the magnitude of the thrust direction component S and the magnitude of the thrust F stored in the thrust calculation data 150. When the magnitude of the thrust direction component S exceeds a predetermined reference value set according to the propulsion object, the processor 21 sets the thrust F of the propulsion object to zero. For a propulsion object that has an operating state and a non-operating state, the processor 21 maintains the propulsion object in the operating state even if the propulsion force F of the propulsion object is set to zero.

[0152] For example, when the propulsion object to be processed is the electric fan object 31a and the electric fan object 31a is in an operating state, the processor 21 attenuates the propulsion force in accordance with the propulsion force direction component S of the speed of the electric fan object 31a in step S203. When the propulsion object to be processed is the rocket object 31c and the rocket object 31c is in an operating state, the processor 21 attenuates the propulsion force in accordance with the propulsion force direction component S of the speed of the rocket object 31c. When the propulsion object to be processed is the sail object 31d, the processor 21 determines whether or not a predetermined collision determination area (wind from the electric fan object 31a or wind blowing in the virtual space) hits the sail object 31d. When it is determined that the predetermined collision determination area hits the sail object 31d, the processor 21 causes the sail object 31d to generate a propulsion force. That is, since the sail object 31d is an object that is expected to move due to the wind, instead of the action of the wind force, the sail object 31d itself generates a propulsive force, making the influence of the wind easier to understand than other objects. When a propulsive force is generated in the sail object 31d, the processor 21 attenuates the propulsive force according to the propulsive force direction component S of the speed of the sail object 31d. Note that even if a collision detection region hits the sail object 31d, if the collision detection region is generated from the electric fan object 31a included in the same assembly object as the sail object 31d, the processor 21 does not generate a propulsive force in the sail object 31d. That is, when a collision detection region other than the collision detection region generated from the electric fan object 31a included in the assembly object including the sail object 31d hits the sail object 31d, the processor 21 generates a propulsive force in the sail object 31d.

[0153] When the process of step S203 has been executed, or when the result of step S202 is NO, processor 21 calculates other forces and the weight of the object being processed (step S204). Here, processor 21 calculates all forces generated by the object being processed other than the propulsive force (excluding forces due to interactions between objects in step S207 described below). For example, when the object being processed generates buoyancy or lift, processor 21 calculates the buoyancy or lift. Processor 21 also calculates the gravity of the object being processed. Processor 21 also calculates the force that the object being processed receives from the environment.

[0154] When the process of step S204 has been performed, the processor 21 executes the process of step S200 again.

[0155] If the result of the determination in step S200 is YES, it is determined whether or not the processing in steps S206 to S207 has been performed for all objects arranged in the virtual space in the current processing in FIG. 20 (step S205).

[0156] If the result of the determination in step S205 is NO, the processor 21 selects an object that has not yet been processed as a processing target (step S206).

[0157] Next, the processor 21 calculates the interaction between the object to be processed and other objects (step S207). Here, when the object to be processed is in contact with another object, the processor 21 calculates the force that the object to be processed receives from the contacting object and the force that the object to be processed exerts on the contacting object. In step S207, the interaction between the dynamic objects 31, the interaction between the dynamic object 31 and the player character PC, the interaction between the dynamic object 31 and a non-player character, and the interaction between the player character PC and a non-player character are calculated. In addition, the force corresponding to the wind generated in the virtual space (wind blowing in the virtual space, wind from the electric fan object 31a, etc.; specifically, a collision detection area indicating the wind) hitting the object is also calculated.

[0158] For example, if the dynamic object to be processed is connected (combined) with another dynamic object, the processor 21 calculates the force acting between these dynamic objects in step S207. The processor 21 also determines whether the object to be processed is in contact with another object that is not connected, and if it is determined that the object is in contact, calculates the force acting between these objects. For example, if a player character is riding on the dynamic object 31 to be processed, the processor 21 calculates the force acting between these objects. Also, for example, if the dynamic object 31 to be processed collides with another dynamic object 31, the processor 21 calculates the force acting between these dynamic objects 31. The processor 21 also determines whether the object to be processed has come into contact with wind (contact detection area) generated in the virtual space, and if it is determined that the object has come into contact, applies a force to the object to be processed according to the contact with the contact detection area. Note that if the object to be processed is a sail object 31d, a propulsive force is generated in response to the contact with the contact detection area in the above step S203, so that it is not necessary to apply a force in response to the contact with the contact detection area in step S207.

[0159] When the process of step S207 has been performed, the processor 21 executes the process of step S205 again.

[0160] If the result of the determination in step S205 is YES, it is determined whether or not the processes in steps S209 to S210 have been performed for all objects arranged in the virtual space in the current process of FIG. 20 (step S208).

[0161] If the result of the determination in step S208 is NO, the processor 21 selects an object that has not yet been processed as a processing target (step S209).

[0162] Next, the processor 21 performs a physical calculation based on the force applied to the object to be processed (step S210). Here, the processor 21 performs a physical calculation on the object to be processed based on the force applied to the object to be processed (the force calculated in S203, S204, and S207), thereby calculating the velocity, angular velocity, position, and attitude of the object to be processed, and stores them in the memory. For example, when the object to be processed is a propulsion object, the processor 21 stores the calculated velocity and angular velocity as velocity / angular velocity data 132, and stores the calculated position and attitude as position / attitude data 131. When the object to be processed is a non-propulsion object, the processor 21 stores the calculated velocity and angular velocity as velocity / angular velocity data 142, and stores the calculated position and attitude as position / attitude data 141. When the object to be processed is a player character PC, the processor 21 stores the calculated velocity, angular velocity, position, and attitude as the player character data 120.

[0163] When the process of step S210 has been performed, the processor 21 executes the process of step S208 again.

[0164] If the determination in step S208 is YES, the processor 21 ends the process shown in FIG.

[0165] As described above, in the game of the above embodiment, the movement of dynamic objects is controlled based on physical calculation in the virtual space (S210). For a propulsion object among the dynamic objects that generates a propulsion force and moves based on the propulsion force, the propulsion force is attenuated according to the moving speed of the propulsion object so that the propulsion force is lost when the moving speed of the propulsion object exceeds a predetermined standard (S203).

[0166] This makes it possible to prevent the propulsion object from continuing to accelerate due to the propulsion force and reaching a speed that exceeds an allowable range in the game.

[0167] In the above embodiment, the player can combine multiple dynamic objects to form an assembly object based on an operation input. The thrust of each of the propulsion objects included in the assembly object is attenuated according to the speed of each of the propulsion objects. This allows the thrust of each of the propulsion objects included in the assembly object that the player can freely form to be attenuated, and the movement of the assembly object can be appropriately controlled.

[0168] In the above embodiment, when the component of the speed of the propulsion object along the direction of the propulsion force exceeds a predetermined reference value, the propulsion object is controlled to lose its propulsion force. Thus, even if the direction of the speed of the propulsion object and the direction of the propulsion force of the propulsion object are different, when the component of the speed of the propulsion object along the direction of the propulsion force exceeds a predetermined reference value, the propulsion object can be controlled to lose its propulsion force.

[0169] In the above embodiment, the propulsion object includes a fan object 31a. The fan object 31a has an operating state and a non-operating state, and continuously generates a propulsive force in a predetermined direction in the operating state. The propulsive force of the fan object 31a is attenuated according to a propulsive force directional component S of the speed of the fan object 31a, and when the propulsive force directional component S exceeds a predetermined reference value, the propulsive force is set to zero even in the operating state.

[0170] In the above embodiment, the electric fan object 31a does not generate a propulsive force even when in an operating state if it is not part of an assembly object and is in a predetermined posture (for example, standing posture). This makes it possible to prevent the electric fan object 31a from generating a propulsive force in a predetermined posture, for example, to maintain the predetermined posture.

[0171] Furthermore, in the above embodiment, in addition to the propulsive force, the electric fan object 31a generates a collision detection area (an area for determining whether or not wind is blowing) in the virtual space, and when the collision detection area comes into contact with the sail object 31d, a propulsive force is generated for the sail object 31d.

[0172] In the above embodiment, when the sail object 31d comes into contact with a collision detection region other than the collision detection region generated from the fan object 31a included in the assembly object including the sail object 31d, a propulsive force is generated in the sail object 31d. That is, when the assembly object includes the second fan object 31ab and the sail object 31d (FIG. 15), the sail object 31d does not generate a propulsive force due to the collision detection region generated from the second fan object 31ab, but generates a propulsive force when it comes into contact with the collision detection region generated from the first fan object 31aa not included in the assembly object. This makes it possible to prevent, for example, the generation of repulsive propulsive forces within the same assembly object.

[0173] In the above embodiment, the rocket object 31c among the propulsion objects generates a propulsive force for a predetermined period of time from a timing designated based on an operation input (for example, a timing when an attack action of the player character PC hits). The rocket object 31c generates a larger propulsive force than other propulsion objects. This allows a large propulsive force to be generated in a short period of time. In addition, while the rocket object 31c is generating a propulsive force, the mass and inertia tensor of the rocket object 31c used in the physical calculation are increased. This allows a large propulsive force to be applied to the assembly object when the rocket object 31c is included in the assembly object.

[0174] In the above embodiment, the balloon object 31e among the propulsion objects generates a propulsive force in the upward direction in the virtual space. The larger a predetermined parameter (e.g., firepower) given based on the game processing, the greater the propulsive force of the balloon object 31e and the predetermined reference value at which the propulsive force becomes zero are increased. Also, while the balloon object 31e is generating a propulsive force, the mass and inertia tensor of the balloon object 31e used in the physical calculation are increased. As a result, when the balloon object 31e is included in an assembly object, a large propulsive force can be applied to the assembly object.

[0175] (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.

[0176] For example, the processes shown in the above flowcharts are merely examples, and the order and content of the processes, thresholds used for judgment, etc. may be changed as appropriate.

[0177] In the above embodiment, when the thrust directional component S of the velocity of the propulsion object exceeds a predetermined criterion, the thrust is set to zero. In other embodiments, when the thrust directional component S exceeds a predetermined criterion, the thrust of the propulsion object does not need to be set strictly to zero if the thrust of the propulsion object is substantially lost.

[0178] In the above embodiment, the thrust F of the propulsion object is linearly decreased according to an increase in the thrust direction component S of the velocity of the propulsion object. In other embodiments, the relationship between the thrust direction component S and the thrust F may be expressed by a curve rather than a straight line. A graph showing the relationship between the thrust direction component S and the thrust F may have a straight line portion and a curved line portion. In addition, the slope of the line showing the relationship between the thrust direction component S and the thrust F may be different, or the shape of the curve may be different, depending on the scene of the game. For example, for a certain propulsion object, the relationship between the thrust direction component S and the thrust F may be expressed by a straight line in the first scene of the game, and may be expressed by a curved line in the second scene. In addition, a propulsion object in which the relationship between the thrust direction component S and the thrust F is expressed by a straight line and a propulsion object in which the relationship between the thrust direction component S and the thrust F is expressed by a curved line may be prepared.

[0179] Furthermore, the propulsion objects described in the above embodiment are merely examples, and other propulsion objects may be prepared.

[0180] In the above embodiment, an assembly object is generated by connecting multiple dynamic objects through an object operation action of the player character PC. In other embodiments, an assembly object may be generated based on an operation of the player, not on an action of the player character. Also, a prepared assembly object may be placed in the virtual space.

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

[0182] In addition, the configurations according to the above-described embodiments and the modifications thereof 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]

[0183] 1. Game System 2. Main Unit 3 Left Controller 4 Right Controller 21 Processors 31 Dynamic Objects 32 Connection Objects 40 Airplane Objects 41, 42, 43, 44 Assembly object

Claims

1. In the computer of the information processing device, Among dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, propulsion objects that generate thrust and move based on at least that thrust, The propulsion force is attenuated according to the speed of movement, such that the propulsion force is eliminated when the speed of movement of the propulsion object, based on physics calculations, exceeds a predetermined standard. Based on the operation input, multiple of the aforementioned dynamic objects are combined to form an assembled object. For each of the dynamic objects included in the assembled object, the movement speed is determined based on physical calculations using the forces acting from the combined dynamic objects. For each of the propulsion objects included in the assembled object, the propulsion force is reduced according to the respective speed of movement. Game program.

2. The aforementioned computer further: The game program according to claim 1, wherein, with respect to a first propulsion object having a first state and a second state, the propulsion force is continuously generated in a predetermined direction in the first state.

3. The aforementioned computer further: The game program according to claim 2, which controls the first propulsion object to not generate the propulsion force even in the first state when the first propulsion object is not part of the assembled object and is in a predetermined posture.

4. The propulsion object includes a second propulsion object, The aforementioned computer further: The game program according to claim 2, wherein, in addition to the thrust force, a contact detection area is generated in the virtual space for the first propulsion object, and when the contact detection area comes into contact with the second propulsion object, a thrust force is generated for the second propulsion object.

5. The aforementioned computer further: The game program according to claim 4, wherein when the contact determination area, excluding the contact determination area generated from the first propulsion object included in the assembled object including the second propulsion object, comes into contact with the second propulsion object, the propulsion force is generated for the second propulsion object.

6. The aforementioned computer further: The game program according to claim 1, wherein the propulsion force is generated for a third propulsion object among the propulsion objects for a predetermined period of time starting from a timing specified based on an operation input.

7. The aforementioned computer further: The game program according to claim 6, wherein the mass and inertia tensor of the third propulsion object used in the physics calculation are increased while the propulsion force is being generated in the third propulsion object.

8. The aforementioned computer further: The game program according to claim 1, which generates the upward thrust in the virtual space for a fourth propulsion object among the propulsion objects.

9. The aforementioned computer further: The game program according to claim 8, wherein the thrust force and the reference value for the fourth propulsion object are increased as the size of a predetermined parameter given to the fourth propulsion object based on game processing increases.

10. The aforementioned computer further: The game program according to claim 8, wherein the mass and inertia tensor of the fourth propulsion object used in the physics calculation are increased while the propulsion force is being generated in the fourth propulsion object.

11. An information processing system comprising a processor, wherein the processor is Among dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, propulsion objects that generate thrust and move based on at least that thrust, The propulsion force is attenuated according to the speed of movement, such that the propulsion force is eliminated when the speed of movement of the propulsion object, based on physics calculations, exceeds a predetermined standard. Based on the operation input, multiple of the aforementioned dynamic objects are combined to form an assembled object. For each of the dynamic objects included in the assembled object, the movement speed is determined based on physical calculations using the forces acting from the combined dynamic objects. For each of the propulsion objects included in the assembled object, the propulsion force is reduced according to the respective speed of movement. Information processing system.

12. The aforementioned processor further, The information processing system according to claim 11, wherein, with respect to a first propulsion object having a first state and a second state among the propulsion objects, the propulsion force is continuously generated in a predetermined direction in the first state.

13. The aforementioned processor further, The information processing system according to claim 12, wherein, when the first propulsion object is not part of the assembled object and is in a predetermined posture, control is performed to prevent the generation of the propulsion force even in the first state.

14. The propulsion object includes a second propulsion object, The aforementioned processor further, The information processing system according to claim 12, wherein, in addition to the thrust force, a contact determination area is generated in the virtual space for the first propulsion object, and when the contact determination area comes into contact with the second propulsion object, a thrust force is generated for the second propulsion object.

15. The aforementioned processor further, The information processing system according to claim 14, wherein when the contact determination area, excluding the contact determination area generated from the first propulsion object included in the assembled object including the second propulsion object, comes into contact with the second propulsion object, the propulsion force is generated for the second propulsion object.

16. The aforementioned processor further, The information processing system according to claim 11, wherein the propulsion force is generated for a third propulsion object among the propulsion objects for a predetermined period of time starting from a timing specified based on an operation input.

17. The aforementioned processor further, The information processing system according to claim 16, wherein the mass and inertia tensor of the third propulsion object used in the physics calculation are increased while the propulsion force is being generated in the third propulsion object.

18. The aforementioned processor further, The information processing system according to claim 11, wherein the propulsion force is generated upward in the virtual space for a fourth propulsion object among the propulsion objects.

19. The aforementioned processor further, The information processing system according to claim 18, wherein the thrust force and the reference value for the fourth propulsion object are increased as the size of a predetermined parameter given to the fourth propulsion object based on game processing increases.

20. The aforementioned processor further, The information processing system according to claim 18, wherein the mass and inertia tensor of the fourth propulsion object used in the physics calculation are increased while the propulsion force is being generated in the fourth propulsion object.

21. An information processing apparatus comprising a processor, wherein the processor is Among dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, propulsion objects that generate thrust and move based on at least that thrust, The propulsion force is attenuated according to the speed of movement, such that the propulsion force is eliminated when the speed of movement of the propulsion object, based on physics calculations, exceeds a predetermined standard. Based on the operation input, multiple of the aforementioned dynamic objects are combined to form an assembled object. For each of the dynamic objects included in the assembled object, the movement speed is determined based on physical calculations using the forces acting from the combined dynamic objects. For each of the propulsion objects included in the assembled object, the propulsion force is reduced according to the respective speed of movement. Information processing device.

22. An information processing method performed in an information processing system, Among dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, propulsion objects that generate thrust and move based on at least that thrust, The propulsion force is attenuated according to the speed of movement, such that the propulsion force is eliminated when the speed of movement of the propulsion object, based on physics calculations, exceeds a predetermined standard. Based on the operation input, a plurality of the aforementioned dynamic objects are combined to form an assembled object. For each of the dynamic objects included in the assembled object, the movement speed is determined based on physical calculations using the forces resulting from the combined dynamic objects. With respect to each of the propulsion objects included in the assembled object, the propulsion force is reduced according to the respective speed of movement. Information processing methods, including those mentioned above.