Game program, game system, game device, and game processing method
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- NINTENDO CO LTD
- Filing Date
- 2024-04-23
- Publication Date
- 2026-04-13
AI Technical Summary
Existing game programs lack variety in the actions that can be performed by a player character in a virtual space, particularly in aerial movements.
Implementing floating objects in a virtual space that are controlled using physical calculations to maintain position based on load capacities, applying forces to manage movement and orientation, and updating positions and orientations based on load conditions.
Enriches the gameplay by allowing player characters to interact with floating objects that can maintain position and move in the air, enhancing the variety of actions possible in virtual spaces.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a game program, a game system, a game device, and a game processing method for performing processing using objects in a virtual space. [Background technology]
[0002] Conventionally, there are game programs that use objects in a virtual space (for example, see Non-Patent Document 1). For example, the game programs allow a player character to glide and jump in the air in the virtual space. [Prior art documents] [Non-patent literature]
[0003] [Non-Patent Document 1] "The Legend of Zelda: Breath of the Wild", Features, By land, sea, and air, [online], Nintendo of America Inc., [Retrieved March 31, 2023], Internet<URL:https: / / www.zelda.com / breath-of-the-wild / features#! / bylandseaandair / > Summary of the Invention [Problem to be solved by the invention]
[0004] The game program disclosed in the above-mentioned Non-Patent Document 1 allows the player character to jump and glide through the air in a virtual space. However, there is room for further diversification of what can be done in the air in the game.
[0005] Therefore, an object of the present invention is to provide a game program, a game system, a game device, and a game processing method that can enrich the things that can be done in the air in a virtual space. [Means for solving the problem]
[0006] In order to achieve the above object, the present invention may employ the following configurations (1) to (8), for example.
[0007] (1) One configuration example of the game program of the present invention causes a computer of an information processing device to calculate, based on game processing, a load to be applied to at least one floating object placed in the air among dynamic objects that are placed in a virtual space and whose movement is controlled based on physics calculations, and in a first case in which the load does not exceed a first load capacity in a first direction including at least a downward direction in the virtual space, further applies a first force to the floating object to maintain the position of the floating object in the virtual space, and in a second case in which the load exceeds the first load capacity, releases the first force and updates the position and attitude of the floating object based on physics calculations.
[0008] According to the above configuration (1), it is possible to realize a floating object that can maintain its position in the air in the virtual space when a load is applied, provided that the load does not exceed the first load capacity, and can also be moved from that position.
[0009] (2) In the above configuration (1), the computer may store the position and posture of the floating object updated based on a physical calculation, and in a first case, apply a first force to the floating object to return it from its position and posture when it moves based on a load without applying a first force to the immediately previous stored position and posture.
[0010] According to the above configuration (2), a force is applied to the floating object to return it to the immediately previous position and orientation stored, so that the floating object can be prevented from being moved by the applied load.
[0011] (3) In the above configuration (1) or (2), the first direction may be a vertical direction in a virtual space.
[0012] According to the above configuration (3), it is also possible to raise the floating object upward in the virtual space.
[0013] (4) In the above configuration (3), the first force may be a force that maintains the position of the floating object in the up-down direction.
[0014] According to the above configuration (4), even when an upward load is applied to the floating object, the floating object can be made to rise upward in the virtual space while maintaining its position in the air in the virtual space.
[0015] (5) In any one of the above configurations (1) to (4), the computer may further be caused to apply a second force to the floating object in the virtual space to maintain the horizontal position of the floating object in the virtual space in a third case in which the load does not exceed a second load capacity in a second horizontal direction in the virtual space, and release the second force in a fourth case in which the load exceeds the second load capacity.
[0016] According to the configuration (5) above, by providing separate load-bearing capacities for the vertical and horizontal directions and having the device behave to maintain its position in each direction, it is possible to prevent a situation in which movement in one direction occurs when the load in the other direction exceeds the load-bearing capacity, and it is possible to control movement in the vertical and horizontal directions separately.
[0017] (6) In any one of the configurations (1) to (5) above, the load may include a load in the direction of gravity in the virtual space based on the weight of a dynamic object loaded on the floating object based on game processing, and a propulsive force applied based on contact from a dynamic object that generates propulsive force in a predetermined direction.
[0018] According to the above configuration (6), the floating object can be moved by using the propulsive force.
[0019] (7) In the above configuration (6), the computer may further control a player character in the virtual space based on an operation input. The load may include a load in the direction of gravity based on a weight of the player character riding on the floating object.
[0020] According to the above configuration (7), the player character can remain in the air while riding on the floating object, or can move in the air while riding on the floating object.
[0021] (8) In any one of the configurations (1) to (7) above, the computer may further control the moving speed of the floating object by generating a force that attenuates the moving speed of the floating object when the floating object moves based on a physical calculation.
[0022] According to the above configuration (8), by reducing the speed of movement of the floating object when it moves, the movement in the air can be slowed down, and it is possible to present the object as if it is trying to maintain its position even when it moves.
[0023] The present invention may also be embodied in the form of a game system, a game device, and a game processing method. Effect of the Invention
[0024] According to the present invention, it is possible to realize a floating object that can maintain its position in the air in a virtual space when a load is applied thereto and can also be moved from that position if the load does not exceed the load capacity. [Brief description of the drawings]
[0025] [Figure 1]FIG. 1 shows an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. [Diagram 2] FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are removed from the main unit 2. [Diagram 3] Six-sided views showing an example of the main unit 2 [Figure 4] Six-sided diagram showing an example of the left controller 3 [Diagram 5] Six-sided diagram showing an example of the right controller 4 [Figure 6] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 8] An example of a game image showing the floating stone object FS1 being placed in the air in a virtual space. [Figure 9] An example of a game image showing the floating stone object FS1 placed in the air with object OBJ1 placed on it. [Figure 10] An example of a game image showing the floating stone object FS1 descending through the air with object OBJ2 placed on it. [Figure 11] FIG. 13 is a diagram showing an example of a load applied to a floating stone object FS1 and a moving speed in each state in the first game processing example. [Figure 12] An example of a game image showing a floating stone object FS1 placed in the air with an upward thrust applied by object OBJ3. [Figure 13] An example of a game image showing the floating stone object FS1 rising in the air due to the upward thrust of object OBJ3. [Figure 14] FIG. 13 is a diagram showing an example of the load and the moving speed of the floating stone object FS1 in each state in the second game processing example. [Figure 15]An example of a game image showing a floating stone object FS1 placed in the air with a horizontal thrust applied by object OBJ5. [Figure 16] An example of a game image showing the floating stone object FS1 moving horizontally through the air due to the horizontal thrust of object OBJ6. [Figure 17] FIG. 13 is a diagram showing an example of the load and the moving speed of the floating stone object FS1 in each state in the third game processing example. [Figure 18] An example of a game image showing floating stage object FS2 being placed in mid-air with a horizontal thrust applied by object OBJ7. [Figure 19] FIG. 13 is a diagram showing an example of the load and moving speed applied to the floating stage object FS2 in the fourth game processing example. [Figure 20] An example of a game image showing the player character PC creating an assembly object AS through an object manipulation action. [Figure 21] FIG. 1 shows an example of a data area set in the DRAM 85 of the main unit 2. [Figure 22] A flowchart showing an example of a game process executed by the game system 1. [Figure 23] A subroutine showing an example of the dynamic object update process in step S123 of FIG. [Figure 24] A subroutine showing an example of the floating stone update process in step S134 of FIG. [Diagram 25] A subroutine showing an example of the floating stage update process in step S136 of FIG. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] A game system according to an example of this embodiment will be described below. An example of the game system 1 in this embodiment includes a main unit (information processing device; in this embodiment, it functions as a game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main unit 2. 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. The game system 1 can also be used as a separate device from the main unit 2, the left controller 3, and the right controller 4 (see FIG. 2). The hardware configuration of the game system 1 of this embodiment will be described below, and then the control of the game system 1 of this embodiment will be described.
[0027] Fig. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in Fig. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 includes a display 12. The left controller 3 and the right controller 4 are devices that include an operation unit that allows the user to perform input.
[0028] Fig. 2 is a diagram showing an example of a state in which the left controller 3 and the right controller 4 have been removed from the main unit 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controller."
[0029] Fig. 3 is a six-sided view showing an example of the main unit 2. As shown in Fig. 3, the main unit 2 includes a substantially plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is generally rectangular in shape.
[0030] The shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a size that is portable. Furthermore, the main unit 2 alone or an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 may be a portable device. Furthermore, the main unit 2 or the integrated device may be a handheld device. Furthermore, the main unit 2 or the integrated device may be a portable device.
[0031] 3, the main unit 2 includes a display 12 provided on a main surface of a housing 11. The display 12 displays an image generated by the main unit 2. In this embodiment, the display 12 is a liquid crystal display (LCD). However, the display 12 may be any type of display device.
[0032] The main unit 2 also includes a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (e.g., a capacitive type). However, the touch panel 13 may be of any type, and may be of a type that allows single-touch input (e.g., a resistive film type), for example.
[0033] The main unit 2 includes a speaker (i.e., speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed in the main surface of the housing 11. The output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.
[0034] The main unit 2 also has a left side terminal 17, which is a terminal through which the main unit 2 performs wired communication with the left controller 3, and a right side terminal 21 through which the main unit 2 performs wired communication with the right controller 4.
[0035] As shown in FIG. 3, the main unit 2 includes a slot 23. The slot 23 is provided on the upper side of the housing 11. The slot 23 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 in the main unit 2 (e.g., application save data, etc.) and / or programs executed in the main unit 2 (e.g., application programs, etc.). The main unit 2 also includes a power button 28.
[0036] The main unit 2 includes a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has a function of charging the all-in-one device or the main unit 2 alone that is placed on it. The cradle also has a function of a hub device (more specifically, a USB hub).
[0037] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the up-down direction (i.e., the y-axis direction shown in FIG. 1 and FIG. 4). The left controller 3 can also be held in a vertically long orientation when removed from the main unit 2. The housing 31 has a shape and size that allows it to be held in one hand, particularly the left hand, when held in a vertically long orientation. The left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.
[0038] The left controller 3 includes an analog stick 32. As shown in FIG. 4, the analog stick 32 is provided on the main surface of the housing 31. The analog stick 32 can be used as a direction input unit capable of inputting a direction. By tilting the analog stick 32, the user can input a direction according to the tilt direction (and input a magnitude according to the tilt angle). Note that the left controller 3 may include a cross key or a slide stick capable of slide input, instead of an analog stick, as the direction input unit. Also, in this embodiment, input is possible by pressing the analog stick 32.
[0039] The left controller 3 includes various operation buttons. The left controller 3 includes four operation buttons 33 to 36 (specifically, a right button 33, a down button 34, an up button 35, and a left button 36) on the main surface of the housing 31. Furthermore, the left controller 3 includes a record button 37 and a - (minus) button 47. The left controller 3 includes a first L button 38 and a ZL button 39 on the upper left of the side of the housing 31. The left controller 3 also includes a second L button 43 and a second R button 44 on the side of the housing 31 that is attached when the left controller 3 is attached to the main unit 2. These operation buttons are used to give instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.
[0040] In addition, the left controller 3 is equipped with a terminal 42 that enables the left controller 3 to communicate with the main unit 2 via wire.
[0041] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the up-down direction. The right controller 4 can also be held in a vertically long orientation when removed from the main unit 2. The housing 51 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a vertically long orientation. The right controller 4 can also be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.
[0042] The right controller 4, like the left controller 3, includes an analog stick 52 as a direction input unit. In this embodiment, the analog stick 52 has the same configuration as the analog stick 32 of the left controller 3. The right controller 4 may include a cross key or a slide stick capable of slide input, instead of the analog stick. The right controller 4, like the left controller 3, includes four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 further includes a + (plus) button 57 and a home button 58. The right controller 4 also includes a first R button 60 and a ZR button 61 on the upper right of the side surface of the housing 51. The right controller 4 also includes a second L button 65 and a second R button 66, like the left controller 3.
[0043] In addition, the right controller 4 is equipped with a terminal 64 for enabling the right controller 4 to communicate with the main unit 2 via wire.
[0044] Fig. 6 is a block diagram showing an example of the internal configuration of main unit 2. In addition to the configuration shown in Fig. 3, main unit 2 includes components 81-91, 97, and 98 shown in Fig. 6. Some of these components 81-91, 97, and 98 may be mounted on an electronic circuit board as electronic components and housed in housing 11.
[0045] The main unit 2 includes a processor 81. The processor 81 is an information processing unit that executes various types of information processing executed in the main unit 2, and may be composed of only a CPU (Central Processing Unit), or may be composed of a SoC (System-on-a-chip) including multiple functions such as a CPU function and a GPU (Graphics Processing Unit) function. The processor 81 executes various types of information processing by executing an information processing program (e.g., a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 84, or an external storage medium inserted in the slot 23, etc.).
[0046] The main unit 2 includes a flash memory 84 and a dynamic random access memory (DRAM) 85 as examples of internal storage media built into the main unit 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used mainly for storing various data (which may be programs) saved in the main unit 2. The DRAM 85 is a memory used for temporarily storing various data used in information processing.
[0047] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted in the slot 23 in response to an instruction from the processor 81.
[0048] The processor 81 appropriately reads and writes data from and to the flash memory 84, DRAM 85, and each of the above storage media to execute the above information processing.
[0049] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with an external device via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 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 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (for example, 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.
[0050] The main unit 2 includes a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or the right controller 4. 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 83 performs communication with the left controller 3 and the right controller 4 in accordance with the Bluetooth (registered trademark) standard.
[0051] The processor 81 is connected to the left terminal 17, the right terminal 21, and the lower terminal 27. When the processor 81 performs wired communication with the left controller 3, it transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When the processor 81 performs wired communication with the right controller 4, it transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When the processor 81 performs communication with the cradle, it transmits data to the cradle via the lower terminal 27. Thus, 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. When the main unit 2 alone or an integrated device with the left controller 3 and the right controller 4 attached to the main unit 2 is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.
[0052] Here, the main unit 2 can communicate with a plurality of left controllers 3 simultaneously (in other words, in parallel). The main unit 2 can also communicate with a plurality of right controllers 4 simultaneously (in other words, in parallel). Therefore, a plurality of users can simultaneously input to the main unit 2 using each set of left controllers 3 and right controllers 4. As an example, a first user can input to the main unit 2 using a first set of left controllers 3 and right controllers 4, while a second user can input to the main unit 2 using a second set of left controllers 3 and right controllers 4.
[0053] The display 12 is also connected to the processor 81. The processor 81 displays on the display 12 an image generated (for example, by executing the above-mentioned information processing) and / or an image acquired from the outside.
[0054] The main unit 2 includes a codec circuit 87 and speakers (specifically, a left speaker and a right speaker) 88. The codec circuit 87 is connected to the speaker 88 and the audio input / output terminal 25, and is also connected to the processor 81. The codec circuit 87 is a circuit that controls the input and output of audio data to and from the speaker 88 and the audio input / output terminal 25.
[0055] The main unit 2 includes a power control unit 97 and a battery 98. The power control unit 97 is connected to the battery 98 and the processor 81. Although not shown, the power control unit 97 is also connected to each unit of the main unit 2 (specifically, each unit that receives power from the battery 98, the left terminal 17, and the right terminal 21). The power control unit 97 controls the supply of power from the battery 98 to each of the above-mentioned units based on instructions from the processor 81.
[0056] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main unit 2 via lower terminal 27, battery 98 is charged with the supplied power.
[0057] Fig. 7 is a block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Fig. 7 because they are shown in Fig. 6.
[0058] The left controller 3 includes a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 7, the communication control unit 101 is connected to each component including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 by both wired communication via the terminal 42 and wireless communication not via the terminal 42. The communication control unit 101 controls the communication method by which the left controller 3 communicates with the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. Also, when the left controller 3 is detached from the main unit 2, the communication control unit 101 performs wireless communication with the main unit 2 (specifically, the controller communication unit 83). The wireless communication between the controller communication unit 83 and the communication control unit 101 is performed according to, for example, the Bluetooth (registered trademark) standard.
[0059] The left controller 3 also includes a memory 102, such as a flash memory. The communication control unit 101 is configured with, for example, a microcomputer (also called a microprocessor), and executes firmware stored in the memory 102 to perform various processes.
[0060] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes an analog stick (referred to as "stick" in FIG. 7) 32. Each button 103 and analog stick 32 repeatedly outputs information relating to operations performed on them to the communication control unit 101 at appropriate timing.
[0061] The communication control unit 101 acquires information related to the input (specifically, information related to the operation, or the detection results by the sensor) from each input unit (specifically, each button 103 and analog stick 32). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a specified process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every specified time. The interval at which the information related to the input is transmitted to the main unit 2 may or may not be the same for each input unit.
[0062] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input performed on the left controller 3. In other words, the main unit 2 can determine the operations performed on each button 103 and analog stick 32 based on the operation data.
[0063] The left controller 3 is equipped with a power supply unit 108. In this embodiment, the power supply unit 108 has a battery and a power control circuit. Although not shown, the power control circuit is connected to the battery and to each part of the left controller 3 (specifically, each part that receives power from the battery).
[0064] As shown in FIG. 7, the right controller 4 includes a communication control unit 111 that communicates with the main unit 2. The right controller 4 also includes a memory 112 that is connected to the communication control unit 111. The communication control unit 111 is connected to each component including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and the memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 by both wired communication via the terminal 64 and wireless communication (specifically, communication in accordance with the Bluetooth (registered trademark) standard) that does not go through the terminal 64, and controls the method of communication that the right controller 4 uses with the main unit 2.
[0065] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113 and an analog stick 52. These input units have the same functions as those of the left controller 3, and operate in the same manner.
[0066] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3, and operates in the same manner.
[0067] As described above, in the game system 1 of this embodiment, the left controller 3 and the right controller 4 are detachable from the main unit 2. In addition, by mounting an integrated device in which the left controller 3 and the right controller 4 are mounted on the main unit 2 or the main unit 2 alone on a cradle, it is possible to output images (and sounds) to an external display device such as a stationary monitor. In the following explanation, the game system 1 will be described in a usage mode in which images are displayed on the display 12. When using the game system 1 in a usage mode in which images are displayed on the display 12, it is also possible to use a game system 1 in a mode in which the left controller 3 and the right controller 4 are fixed to the main unit 2 (for example, a mode in which the main unit 2, the left controller 3, and the right controller 4 are integrated into one housing).
[0068] Game play is performed using a virtual space displayed on the display 12 in response to operations such as operations of the operation buttons and sticks of the left controller 3 and / or the right controller 4 in the game system 1, or touch operations on the touch panel 13 of the main unit 2. In this embodiment, as an example, game play is possible using a player character PC operating in the virtual space in response to user operations using the operation buttons and sticks.
[0069] An overview of the game processing performed in the game system 1 will be described with reference to Fig. 8 and Fig. 19. In this embodiment, when a load not exceeding the load capacity is applied in a predetermined direction of a floating object placed in the air in a virtual space, a returning force for maintaining the position of the floating object is further applied to the floating object, thereby realizing a floating object that can be ridden or moved in the air with a behavior that can withstand to some extent in the air. In the following description, examples of the floating object to be realized will be described using the first to fourth game processing examples as examples of loads applied to the floating object.
[0070] An outline of the first game processing example in which a load in the direction of gravity is applied to a floating object will be described with reference to Figs. 8 to 11. Fig. 8 is an example of a game image showing a floating stone object FS1 placed in the air in a virtual space. Fig. 9 is an example of a game image showing a floating stone object FS1 placed in the air with an object OBJ1 placed thereon. Fig. 10 is an example of a game image showing a floating stone object FS1 descending in the air with an object OBJ2 placed thereon. Fig. 11 is a diagram showing an example of the load and moving speed applied to the floating stone object FS1 in each state in the first game processing example.
[0071] In Fig. 8, an image is displayed on the display 12, in which a player character PC is placed on a game field in a virtual space and a floating stone object FS1 is placed in the air. The player character PC can move and act on the game field in the virtual space based on an operational input by the user. In this embodiment, the game image is displayed on the display 12 of the main unit 2, but may be displayed on another display device connected to the main unit 2.
[0072] The player character PC can move within the virtual space in response to the user's movement operation input, and can perform actions such as touching, hitting, or attacking other characters or virtual objects in response to the user's action instruction operation input (for example, an operation input to press the operation button 53 (A button)). As one example, the player character PC can be controlled to perform an action of standing on a floating stone object FS1 in response to the user's action instruction operation input. The player character PC has its own weight (self-weight) set, and when the player character PC stands on the floating stone object FS1, a load in the direction of gravity due to that weight is applied to the floating stone object FS1.
[0073] The floating stone object FS1 is an example of a floating object placed in the air in a virtual space. The floating stone object FS1 is a rigid body such as a rock or stone that can be stationary in the air in a virtual space, and other objects or characters (for example, a player character PC) can be placed on it. For example, as shown in FIG. 8, when there is nothing on the floating stone object FS1 and no load is applied to the floating stone object FS1 from the outside, the floating stone object FS1 is placed stationary in a floating state in the air in the virtual space or floating in its position. The floating stone object FS1 may be set as a rigid body without its own weight (dead weight), or may be set as a rigid body with a predetermined weight.
[0074] The floating stone object FS1 has a load capacity set. Even if an object lighter than the load capacity is placed on the floating stone object FS1, the floating stone object FS1 remains stationary in the virtual space or is placed floating in the virtual space. For example, the floating stone object FS1 shown in FIG. 9 has an object OBJ1 lighter than the load capacity placed on it. When the object OBJ1 is placed on the floating stone object FS1, the floating stone object FS1 is placed in the virtual space so as to maintain the position before the object OBJ1 was placed on it. This is also the case when the player character PC is placed on the floating stone object FS1, and the floating stone object FS1 is placed in the virtual space so as to maintain its position in the air if the sum of the weights of the player character PC and the object placed on the floating stone object FS1 does not exceed the load capacity.
[0075] On the other hand, when an object heavier than the load capacity is placed on the floating stone object FS1, the floating stone object FS1 moves so as to descend from the position where it was floating in the air in the virtual space. For example, the object OBJ2 shown in FIG. 10 is heavier than the object OBJ1 and has a weight exceeding the load capacity. When such an object OBJ2 is placed on the floating stone object FS1, the floating stone object FS1 descends in the direction of gravity in the virtual space at a moving speed V1 based on the weight of the object OBJ2 and moves through the air. This is also the case when the player character PC rides on the floating stone object FS1. When the sum of the weights of the player character PC and the object riding on the floating stone object FS1 exceeds the load capacity, the floating stone object FS1 descends in the direction of gravity in the virtual space at a moving speed based on the summed weight and moves through the air. In this embodiment, when the floating stone object FS1 descends and moves through the air, a force that attenuates its moving speed is applied to the floating stone object FS1, so its behavior becomes relatively slow.
[0076] With reference to FIG. 11, the load applied to the floating stone object FS1 in the above-mentioned two states and the moving speed of the floating stone object FS1 will be described. In the following description, mutually orthogonal XYZ axes are set in the virtual space, and the Y direction is the vertical direction of the virtual space (the upward direction is the Y positive direction, and the downward direction is the Y negative direction), and the XZ direction is the two-dimensional horizontal direction that is horizontal in the virtual space (the left-right direction is the X direction, and the depth direction is the Z direction). In the following description, the floating stone object FS1's own weight is set to 0, and in a state where nothing is placed on the floating stone object FS1 and no load is applied from the outside (the state shown in FIG. 8), there is no load applied to the floating stone object FS1, and it is assumed that it is stationary in a floating state in the air of the virtual space or is placed floating in its position.
[0077] In this embodiment, in order to float the floating stone object FS1 in the air and to express the load capacity of the floating stone object FS1, the load applied to the floating stone object FS1 is divided into the vertical direction (Y direction) and the two-dimensional horizontal direction (XZ direction), and each is controlled so that an independent resistance force is applied. For example, the upper diagram of FIG. 11 shows a state in which the floating stone object FS1 is carrying an object OBJ1. In this state, the load due to the weight of the object OBJ1 is applied to the floating stone object FS1 in the gravity direction (negative Y direction), and the load does not exceed the load capacity of the floating stone object FS1. In this embodiment, when a load that does not exceed the load capacity is applied to the floating stone object FS1 in the downward direction (negative Y direction) in the virtual space, a return force is further applied to the floating stone object FS1 to maintain the position of the floating stone object FS1 in the virtual space. As shown in the upper diagram of Figure 11, the returning force is a load opposite to the downward load (negative Y direction) applied to the floating stone object FS1, that is, a force in the upward direction (positive Y direction) in the virtual space with the same magnitude as the load. By further applying the returning force to the floating stone object FS1, the load due to the weight of the object OBJ1 riding on the floating stone object FS1 is cancelled out, so that the floating stone object FS1 is placed in the air in the virtual space so as to maintain the position it had before the object OBJ1 was placed on it.
[0078] The returning force may be calculated based on the movement of the floating stone object FS1. For example, the position and posture of the floating stone object FS1 updated based on physical calculations are stored. Then, the position and posture of the floating stone object FS1 when it moves in the negative Y direction due to the load caused by the weight of the object OBJ1 without applying the returning force is calculated, and a force for returning the floating stone object FS1 in the upward direction (positive Y direction) in the virtual space from the calculated position and posture to the position and posture immediately before the stored position and posture (specifically, the position and posture updated in the previous processing (processing of the previous frame)) is calculated as a returning force to be further applied to the floating stone object FS1. By calculating the returning force in this way, even if the load in the negative Y direction in the virtual space due to the weight of the object OBJ1 is applied to the floating stone object FS1, it is possible to calculate a load that balances the floating stone object FS1 while it stays in the air. In addition, by calculating the returning force based on the movement of the floating stone object FS1, even if various objects and characters are on the floating stone object FS1, the returning force can be easily calculated without performing a process of individually calculating each state and the load applied by each.
[0079] Also, whether or not the load in the negative Y direction applied to the floating stone object FS1 exceeds the load capacity may be determined based on the movement of the floating stone object FS1. For example, the returning force applied to the floating stone object FS1 is stored together with the position and posture of the floating stone object FS1. Then, the difference in the Y direction between the position and posture of the floating stone object FS1 calculated in the previous process and the position and posture of the floating stone object FS1 calculated in the current process, that is, the amount of movement in the Y direction of the floating stone object FS1 is calculated, and the load actually applied to the floating stone object FS1 in the current process is calculated by subtracting the returning force in the Y direction applied in the previous process from the force in the Y direction for generating the amount of movement. By comparing the load calculated in this way with the load capacity, it is possible to determine whether or not the load applied in the negative Y direction of the floating stone object FS1 exceeds the load capacity. Furthermore, since the load-bearing capacity is determined based on the movement of the floating stone object FS1, even if various objects or characters are placed on the floating stone object FS1, the load-bearing capacity can be easily determined without having to perform processing to individually calculate each state and the load applied by each of them.
[0080] The lower diagram of FIG. 11 shows a state in which the floating stone object FS1 is carrying the object OBJ2. In this state, the load due to the weight of the object OBJ2 is applied to the floating stone object FS1 in the gravity direction (negative Y direction), and the load exceeds the load capacity of the floating stone object FS1. In this embodiment, when a load exceeding the load capacity is applied to the floating stone object FS1 in the downward direction (negative Y direction) in the virtual space, the force returning to the positive Y direction is turned off (released). As a result, as shown in the lower diagram of FIG. 11, there is no force to offset the load due to the weight of the object OBJ2 applied to the floating stone object FS1, so the floating stone object FS1 descends in the air at a moving speed V1 based on the load due to the weight of the object OBJ2. When the floating stone object FS1 descends in the air and moves in the negative Y direction, a force in the positive Y direction that attenuates the moving speed is applied to the floating stone object FS1. As an example, the moving speed V1 at which the floating stone object FS1 moves is calculated by multiplying the speed calculated based on the applied load by a value less than 1, or by subtracting a predetermined value from the speed.
[0081] After the floating stone object FS1 is moved by a load exceeding the load capacity, if the load does not exceed the load capacity, a returning force corresponding to the load is applied to the floating stone object FS1 in the Y-positive direction. As a result, the floating stone object FS1 stops descending at the position where the applied load does not exceed the load capacity, and is positioned to be stationary or floating at that position in the air.
[0082] In this embodiment, when the floating stone object FS1 is descending and moving, the descended position and posture are constantly updated and recorded as the target position and target posture for stopping the floating stone object FS1 in the air. In this embodiment, when the load in the negative Y direction applied to the floating stone object FS1 during the descent of the floating stone object FS1 does not exceed the load capacity, a returning force in the positive Y direction is applied to the floating stone object FS1 to return it to the target position and target posture (i.e., the position and posture of the floating stone object FS1 calculated in the previous frame). In addition, when the floating stone object FS1 is descending and moving, the judgment of comparing the load in the negative Y direction applied to the floating stone object FS1 with the load capacity may be performed by comparing the load calculated based on the movement amount during the movement taking into account the attenuation of the movement speed with the load capacity, since the returning force is not applied to the floating stone object FS1.
[0083] An outline of the second game processing example in which an upward load is applied to the floating object will be described with reference to Figs. 12 to 14. Fig. 12 is an example of a game image showing a floating stone object FS1 placed in the air with an upward propulsive force applied by the object OBJ3. Fig. 13 is an example of a game image showing a floating stone object FS1 rising in the air with an upward propulsive force applied by the object OBJ3. Fig. 14 is a diagram showing an example of the load and moving speed applied to the floating stone object FS1 in each state in the second game processing example.
[0084] The floating stone object FS1 is also set with a load capacity for movement in the upward direction (positive Y direction) in the air in the virtual space. Even if the floating stone object FS1 is lifted with a load smaller than the load capacity, it does not move upward from that position and remains stationary in the state of floating in the air in the virtual space or is placed floating in that position. For example, the floating stone object FS1 shown in FIG. 12 is lifted by contact with an object OBJ3 rising by the thrust of two rockets. The object OBJ3 may be in a state of contacting and pushing the floating stone object FS1 in a state in which it can be separated from the floating stone object FS1, or may be combined with the floating stone object FS1 and integrated as described later. The object OBJ3 applies a load to the floating stone object FS1 that rises in the virtual space with a thrust smaller than the upward load capacity of the floating stone object FS1, so that the floating stone object FS1 is placed in the air in the virtual space so as to maintain the position before being lifted by the object OBJ3. The load capacity for upward movement set for the floating stone object FS1 may be the same as the load capacity for downward movement described above, or may be a different load capacity.
[0085] On the other hand, when the floating stone object FS1 is lifted with a propulsive force greater than the load capacity, it moves upward from the position where it was floating in the air in the virtual space. For example, the object OBJ4 shown in FIG. 13 has four rockets with a propulsive force greater than that of the object OBJ3, and can provide an upward propulsive force exceeding the load capacity by contacting the floating stone object FS1. The object OBJ4 may be in a state of contacting and pushing the floating stone object FS1 in a state in which it can be separated from the floating stone object FS1, or may be combined with the floating stone object FS1 and integrated as described later. When lifted by such an object OBJ4, the floating stone object FS1 rises in the virtual space at a moving speed V2 based on the load applied from the object OBJ4. Also, when the player character PC or other object is on the floating stone object FS1, if the load obtained by subtracting the load in the Y negative direction due to the weight of the player character PC and objects on the floating stone object FS1 from the load in the Y positive direction due to the upward propulsive force exceeds the load capacity, the floating stone object FS1 rises in the virtual space at a moving speed based on the load. In this embodiment, even when the floating stone object FS1 rises in the air, a force is applied to the floating stone object FS1 to reduce its moving speed.
[0086] With reference to FIG. 14, the load applied to the floating stone object FS1 and the moving speed of the floating stone object FS1 in the above-mentioned two states will be described.
[0087] For example, the upper diagram of FIG. 14 shows a state in which the floating stone object FS1 is lifted by the object OBJ3. In this state, a load due to the upward thrust of the object OBJ3 is applied to the floating stone object FS1 in the upward direction (Y positive direction), and the load does not exceed the load capacity of the floating stone object FS1. In this embodiment, when a load that does not exceed the load capacity is applied to the floating stone object FS1 in the upward direction (Y positive direction) in the virtual space, a returning force is further applied to the floating stone object FS1 to maintain the position of the floating stone object FS1 in the virtual space. As shown in the upper diagram of FIG. 14, the returning force is a load opposite to the load applied to the floating stone object FS1 in the upward direction (Y positive direction), that is, a force in the downward direction (Y negative direction) in the virtual space with the same magnitude as the load. As the above-mentioned returning force is further applied to the floating stone object FS1, the load due to the propulsion force of object OBJ3 applied to the floating stone object FS1 is offset, so that the floating stone object FS1 is placed in the air in the virtual space so as to maintain the position it had before being lifted by object OBJ3.
[0088] The returning force in the negative Y direction may also be calculated based on the movement of the floating stone object FS1. For example, the position and posture of the floating stone object FS1 when it moves in the positive Y direction due to the load caused by the propulsion force of the object OBJ3 without applying the returning force is calculated, and a force for returning the floating stone object FS1 in the downward direction (negative Y direction) in the virtual space to the immediately previous position and posture stored from the calculated position and posture (specifically, the position and posture updated in the previous processing (processing of the previous frame)) is calculated as a returning force to be further applied to the floating stone object FS1. By calculating the returning force in this way, even if the load in the positive Y direction in the virtual space due to the propulsion force of the object OBJ3 is applied to the floating stone object FS1, it is possible to calculate a load that balances the floating stone object FS1 by keeping it in the air. In addition, by calculating the returning force based on the movement of the floating stone object FS1, even if the floating stone object FS1 is lifted by the object OBJ3 in a state where various objects and characters are on it, the returning force can be easily calculated without performing a process of individually calculating each state and the load applied by each.
[0089] In addition, similarly to the load in the negative Y direction described above, whether or not the load in the positive Y direction lifting the floating stone object FS1 exceeds the load capacity may be determined based on the movement of the floating stone object FS1.
[0090] The lower diagram of FIG. 14 shows a state in which the floating stone object FS1 is lifted by the object OBJ4. In this state, the load due to the thrust of the object OBJ4 is applied to the floating stone object FS1 in the upward direction (Y positive direction), and the load exceeds the load capacity of the floating stone object FS1. In this embodiment, when a load exceeding the load capacity is applied to the floating stone object FS1 in the upward direction (Y positive direction) in the virtual space, the force returning to the Y negative direction is turned off (released). As a result, as shown in the lower diagram of FIG. 14, there is no force to offset the load due to the thrust of the object OBJ4 applied to the floating stone object FS1, so the floating stone object FS1 rises in the air at a moving speed V2 based on the load due to the thrust of the object OBJ4. Note that even when the floating stone object FS1 rises in the air and moves in the Y positive direction, a force in the Y negative direction that attenuates the moving speed is applied to the floating stone object FS1.
[0091] After the floating stone object FS1 is raised by a load exceeding the load capacity, if the load no longer exceeds the load capacity, a returning force corresponding to the load is applied to the floating stone object FS1 in the negative Y direction. As a result, the floating stone object FS1 stops rising at the position where the applied load no longer exceeds the load capacity, and is positioned so that it remains stationary or floats at that position in the air.
[0092] In this embodiment, even when the floating stone object FS1 is rising and moving, the rising position and posture are always updated and recorded as the target position and target posture for stopping the floating stone object FS1 in the air. In this embodiment, when the load in the Y positive direction applied to the floating stone object FS1 during the rising of the floating stone object FS1 does not exceed the above-mentioned load capacity, a returning force in the Y negative direction is applied to the floating stone object FS1 to return it to the above-mentioned target position and target posture (i.e., the position and posture of the floating stone object FS1 calculated in the previous frame). In addition, when the floating stone object FS1 is rising and moving, the judgment of comparing the load in the Y positive direction applied to the floating stone object FS1 with the above-mentioned load capacity may also be performed by comparing the load calculated based on the movement amount during the movement taking into account the attenuation of the movement speed with the above-mentioned load capacity, since the returning force is not applied to the floating stone object FS1.
[0093] An outline of the third game processing example in which vertical and horizontal loads are applied to the floating object will be described with reference to Figs. 15 to 17. Fig. 15 is an example of a game image showing a floating stone object FS1 placed in the air with a horizontal propulsive force applied by an object OBJ5. Fig. 16 is an example of a game image showing a floating stone object FS1 moving horizontally in the air by a horizontal propulsive force by an object OBJ6. Fig. 17 is a diagram showing an example of the load and moving speed applied to the floating stone object FS1 in each state in the third game processing example.
[0094] The floating stone object FS1 is also set with a load capacity for its movement in the air in the horizontal direction (XZ direction) in the virtual space, and the load in the vertical direction and the load in the horizontal direction are controlled independently. Even if the floating stone object FS1 is pushed in the horizontal direction or the vertical direction with a load smaller than the load capacity, it does not move from its position and remains still in the state of floating in the air in the virtual space, or is placed floating in its position. For example, the floating stone object FS1 shown in FIG. 15 is pushed in the horizontal direction by contact with the object OBJ5 that moves by the thrust of two rockets while carrying the player character PC that is lighter than the load capacity in the vertical direction. The object OBJ5 may be in a state of contacting and pushing the floating stone object FS1 in a state in which it can be separated from the floating stone object FS1, or may be combined with the floating stone object FS1 and integrated as described later. Regarding the vertical direction, even if the load due to the weight of the player character PC is added to the load due to the weight of the object OBJ5 or the like, the load does not exceed the load capacity in the vertical direction, so the floating stone object FS1 is placed in the air in the virtual space so as to maintain the vertical position before the player character PC is placed on it. Also, regarding the horizontal direction, a load that moves the floating stone object FS1 in the horizontal direction with a propulsion force smaller than the horizontal load capacity of the floating stone object FS1 is applied to the floating stone object FS1, so the floating stone object FS1 is placed in the air in the virtual space so as to maintain the horizontal position before being pushed by the object OBJ5. Note that the above-mentioned load capacity for horizontal movement set for the floating stone object FS1 may be the same load capacity as the load capacity for vertical movement described above, or may be a different load capacity.
[0095] On the other hand, when the floating stone object FS1 is pushed horizontally with a propulsive force greater than the load capacity, it moves horizontally in the air in the virtual space. For example, the object OBJ6 shown in FIG. 16 has four rockets with a propulsive force greater than that of the object OBJ5, and can give a horizontal propulsive force exceeding the load capacity by contacting the floating stone object FS1. The object OBJ6 may be in a state of contacting and pushing the floating stone object FS1 in a state in which it can be separated from the floating stone object FS1, or may be combined with the floating stone object FS1 and integrated as described later. When pushed by such an object OBJ6, the floating stone object FS1 moves horizontally in the virtual space at a moving speed V3 based on the load applied from the object OBJ6. On the other hand, with regard to the vertical direction, even if a load in the vertical direction due to the weight of the object OBJ5 or the like is added to the load due to the weight of the player character PC, the state in which the load capacity in the vertical direction is not exceeded continues, so the floating stone object FS1 is placed in the air in the virtual space so as to maintain the vertical position before the player character PC is placed on it. By controlling the horizontal and vertical directions, the floating stone object FS1 moves horizontally based on the thrust of the object OBJ5 but does not move vertically, so that the floating stone object FS1 moves horizontally in the virtual space at a speed V3. Note that the floating stone object FS1 moves horizontally at a speed based on the load in the XZ directions due to the thrust of the object OBJ5, but even when the floating stone object FS1 moves horizontally in the air, a force that reduces the speed of the movement may be applied to the floating stone object FS1.
[0096] With reference to FIG. 17, the load applied to the floating stone object FS1 and the moving speed of the floating stone object FS1 in the above-mentioned two states will be described.
[0097] For example, the upper diagram in Fig. 17 shows a state in which the floating stone object FS1 is being pushed by the object OBJ5 while the player character PC is riding on it. In this state, the load due to the thrust of the object OBJ5 is applied to the floating stone object FS1 in the horizontal direction (XZ direction), but the load does not exceed the horizontal load capacity of the floating stone object FS1 in the horizontal direction. Also, the load due to the weight of the player character PC (and object OBJ5) is applied to the floating stone object FS1 in the gravity direction (negative Y direction), but the load does not exceed the vertical load capacity of the floating stone object FS1 in the vertical direction.
[0098] In this embodiment, even if a load is applied in the horizontal direction (XZ direction) in the virtual space, if the load does not exceed the horizontal load capacity, a returning force is further applied to the floating stone object FS1 in the horizontal direction to maintain the horizontal position of the floating stone object FS1. As shown in the upper diagram of FIG. 17, the horizontal returning force is a load opposite to the horizontal load (XZ direction) applied to the floating stone object FS1, that is, a horizontal force of the same magnitude as the load but opposite to the load. By further applying this horizontal returning force to the floating stone object FS1, the horizontal load due to the propulsion force of the object OBJ5 applied to the floating stone object FS1 is offset, so that the floating stone object FS1 is placed in the air in the virtual space so as to maintain the horizontal position before being pushed by the object OBJ5.
[0099] The horizontal returning force may also be calculated based on the horizontal movement of the floating stone object FS1. For example, the position and orientation of the floating stone object FS1 when it moves in the XZ direction due to the load caused by the propulsion force of the object OBJ5 without applying the horizontal returning force is calculated, and a force for returning the floating stone object FS1 in the horizontal direction (XZ direction) in the virtual space to the position and orientation immediately before the calculated position and orientation (specifically, the position and orientation updated in the previous processing (processing of the previous frame)) is calculated as a returning force to be further applied to the floating stone object FS1. By calculating the horizontal returning force in this way, even if the load in the XZ direction in the virtual space due to the propulsion force of the object OBJ5 is applied to the floating stone object FS1, a load that balances the floating stone object FS1 while it stays in the air can be calculated.
[0100] In addition, similar to the load in the vertical direction described above, whether or not the load in the XZ direction pushing the floating stone object FS1 exceeds the load capacity may also be determined based on the horizontal movement of the floating stone object FS1.
[0101] As described above, when a load not exceeding the load capacity in the vertical direction (Y direction) is applied to the floating stone object FS1 in the vertical direction in the virtual space, a returning force is further applied to the floating stone object FS1 in the vertical direction to maintain the vertical position of the floating stone object FS1 in the virtual space. As shown in the upper diagram of FIG. 17, the returning force in the vertical direction is a load opposite to the downward load (negative Y direction) applied to the floating stone object FS1, that is, a force in the upward direction (positive Y direction) in the virtual space with the same magnitude as the load. By further applying the returning force in the vertical direction to the floating stone object FS1, the load in the vertical direction due to the weight of the player character PC (and object OBJ5) riding on the floating stone object FS1 is offset, so that the floating stone object FS1 is placed in the air in the virtual space so as to maintain the vertical position before the player character PC (and object OBJ5) is placed on it.
[0102] In this way, while the floating stone object FS1 is carrying the player character PC and being pushed horizontally by the object OBJ5, it is controlled so as to maintain both the horizontal and vertical positions, so that the floating stone object FS1 is positioned either stationary or floating in that position in the air in the virtual space.
[0103] The lower diagram of FIG. 17 shows a state in which the floating stone object FS1 is being pushed by the object OBJ6 while the player character PC is on it. In this state, the load due to the thrust of the object OBJ6 is applied to the floating stone object FS1 in the horizontal direction (XZ direction), and the load exceeds the horizontal load capacity of the floating stone object FS1. In this embodiment, when a load exceeding the horizontal load capacity is applied to the floating stone object FS1 in the horizontal direction (XZ direction) in the virtual space, the force returning the horizontal direction is turned off (released). As a result, as shown in the lower diagram of FIG. 17, there is no horizontal force that offsets the load due to the thrust of the object OBJ6 applied to the floating stone object FS1, so the floating stone object FS1 moves horizontally in the air at a moving speed V3 based on the load due to the thrust of the object OBJ6. Note that even when the floating stone object FS1 moves horizontally in the air, a horizontal force that attenuates the moving speed may be applied to the floating stone object FS1.
[0104] On the other hand, in the vertical direction (Y direction), a load that does not exceed the vertical load capacity is applied to the floating stone object FS1, so a returning force to maintain the vertical position of the floating stone object FS1 continues to be applied to the floating stone object FS1 in the vertical direction. Therefore, a returning force in the vertical direction that offsets the vertical load caused by the weight of the player character PC (and object OBJ5) riding on the floating stone object FS1 is further applied, so the floating stone object FS1 is placed in the air in the virtual space so as to maintain the vertical position it had before the player character PC (and object OBJ5) was placed on it.
[0105] In this way, when the floating stone object FS1 is pushed horizontally by the object OBJ6 while carrying the player character PC, the floating stone object FS1 is controlled to maintain its vertical position, but the horizontal position is controlled to move at the moving speed V3, so that the floating stone object FS1 moves horizontally in the air in the virtual space at the moving speed V3. In the third game processing example, by providing separate load capacity amounts for the vertical and horizontal directions and making the object maintain its position for each direction, it is possible to prevent a situation in which the object moves in the other direction when the load in one direction exceeds the load capacity, and it is possible to control the movements in the vertical and horizontal directions separately.
[0106] An outline of a fourth game processing example in which horizontal and vertical loads are applied to other floating objects will be described with reference to Fig. 18 and Fig. 19. Fig. 18 is an example of a game image showing a floating stage object FS2 placed in the air with a horizontal propulsive force applied by an object OBJ7. Fig. 19 is a diagram showing an example of the load and moving speed applied to the floating stage object FS2 in the fourth game processing example.
[0107] The floating stage object FS2 is another example of a floating object arranged in the air in a virtual space. The floating stage object FS2 is a stage-like rigid body that can be stationary in the air in a virtual space, and other objects and characters (for example, the player character PC) can be placed on it. When no load is applied from the outside, the floating stage object FS2 is stationary in a floating state in the air in the virtual space like the floating stone object FS1, or is placed floating in its position. Then, in response to the user's action instruction operation input, it is possible to control the player character PC to perform an action of standing on the floating stage object FS2, and in this case, the floating stage object FS2 functions as a floating foothold for the player character PC to stay at a high place. The floating stage object FS2 may also be set as a rigid body without its own weight (dead weight), or may be set as a rigid body with a predetermined weight.
[0108] The floating stone object FS1 described above can move in the vertical and horizontal directions in the virtual space while floating in the air, but the load capacity is set for each of the vertical, horizontal, and vertical directions in the virtual space, and it is controlled not to move from its position even if a load not exceeding the load capacity is applied to it. On the other hand, the floating stage object FS2 can also move in the vertical and horizontal directions in the virtual space while floating in the air, but the load capacity is set only for the downward direction in the virtual space. In other words, when a load not exceeding the load capacity is applied to the downward direction in the virtual space, the floating stage object FS2 is controlled not to move from its position to the downward direction in the virtual space, and when a load exceeding the load capacity is applied to the downward direction in the virtual space, it is controlled to descend from its position. Since the load capacity is not set for the floating stage object FS2 in other directions (upward and horizontal), when a load is applied to the direction, it moves in the air at a moving speed based on the load without being restricted by the load capacity. In addition, the load capacity for downward movement set for the floating stage object FS2 may be the same as the load capacity for vertical and horizontal movement of the floating stone object FS1 described above, or it may be a different load capacity.
[0109] In the floating stage object FS2, the load applied in the vertical direction and the load applied in the horizontal direction are also controlled independently. For example, the floating stage object FS2 shown in FIG. 18 is pushed in the horizontal direction by contact with an object OBJ7 moving by the thrust of two rockets while carrying the player character PC, which is lighter than the load capacity set for the downward load. The object OBJ7 may be in a state of contact with and pushing the floating stage object FS2 in a state in which it can be separated from the floating stage object FS2, or may be combined with and integrated with the floating stage object FS2 as described later. Even if a load in the downward direction due to the weight of the object OBJ7 or the like is added to the load due to the weight of the player character PC, the load does not exceed the load capacity in the downward direction, so the floating stage object FS2 is placed in the air in the virtual space so as to maintain the vertical position before the player character PC is carried on the floating stage object FS2.
[0110] On the other hand, when the floating stage object FS2 is pushed horizontally in the virtual space, it moves horizontally at a moving speed based on the load applied in the horizontal direction without being limited by the load capacity described above. Also, when the floating stage object FS2 is lifted upward in the virtual space, it rises at a moving speed based on the load applied in the upward direction without being limited by the load capacity described above. For example, as shown in Fig. 18, when pushed horizontally by the object OBJ7, the floating stage object FS2 moves horizontally in the virtual space at a moving speed V4 based on the load applied from the object OBJ7.
[0111] By controlling the horizontal direction and the vertical direction, the floating stage object FS2 moves horizontally based on the thrust of the object OBJ7 but does not move vertically, so that the floating stage object FS2 moves horizontally in the virtual space at a moving speed V4. Note that the floating stage object FS2 moves horizontally at a moving speed based on the load in the XZ directions due to the thrust of the object OBJ7, but even when the floating stage object FS2 moves horizontally in the air, a force that attenuates the moving speed may be applied to the floating stage object FS2. Also, even when the floating stage object FS2 moves in another direction in the air, a force that attenuates the moving speed may be applied to the floating stage object FS2.
[0112] With reference to FIG. 19, the load applied to the floating stage object FS2 and the moving speed of the floating stage object FS2 in the above-mentioned state will be described.
[0113] 19, a load due to the propulsive force of object OBJ7 is applied to the floating stage object FS2 in the horizontal direction (XZ direction). In this embodiment, when a load is applied to the floating stage object FS2 in the horizontal direction (XZ direction) in the virtual space, the floating stage object FS2 moves horizontally in the air at a moving speed V4 based on the load due to the propulsive force of object OBJ7 without being limited by the above-mentioned load capacity. Then, a horizontal force is applied to the floating stage object FS2 to attenuate the moving speed at which the floating stage object FS2 moves horizontally in the air.
[0114] On the other hand, in the downward direction (negative Y direction), a load that does not exceed the downward load capacity is applied to the floating stage object FS2, so a returning force is applied to the floating stage object FS2 in the upward direction (positive Y direction) to maintain the vertical position of the floating stage object FS2. Therefore, an upward returning force is further applied to offset the downward load caused by the weight of the player character PC (and object OBJ7) riding on the floating stage object FS2, so the floating stage object FS2 is placed in the air in the virtual space so as to maintain the vertical position it had before the player character PC (and object OBJ7) was placed on it.
[0115] The upward returning force applied to the floating stage object FS2 may also be calculated based on the downward movement of the floating stage object FS2. For example, the position and orientation of the floating stage object FS2 when it moves in the negative Y direction due to the load caused by the weight of the player character PC or the like without applying the upward returning force may be calculated, and a force for returning the floating stage object FS2 in the upward direction (positive Y direction) in the virtual space from the calculated position and orientation to the immediately previous position and orientation (specifically, the position and orientation updated in the previous process (processing of the previous frame)) may be calculated as a returning force to be further applied to the floating stage object FS2.
[0116] In this way, when the floating stage object FS2 is carrying the player character PC and being pushed horizontally by object OBJ7, it is controlled to maintain its up and down position, but its horizontal position is controlled to move at movement speed V4, so that the floating stage object FS2 ends up moving horizontally in the air in the virtual space at movement speed V4.
[0117] In this embodiment, a plurality of objects may be combined to generate an integrated assembly object. For example, an integrated assembly object may be generated by gluing another object to the floating object described above. Hereinafter, with reference to FIG. 20, an example of generating an assembly object by the player character PC using an object operation action will be described. FIG. 20 is an example of a game image showing a state in which the player character PC generates an assembly object AS by moving a control target (object OBJ8) using an object operation action and gluing it to a floating stone object FS1.
[0118] The player character PC can perform an object manipulation action as one of a plurality of actions performed in response to a user operation input. The object manipulation action is, for example, an action of remotely manipulating a controllable object in front of the player character PC as a control target. For example, based on the player's operation input, one of a plurality of controllable objects arranged in a virtual space is set as a control target of the object manipulation action, and the movement and attitude of the control target are controlled in the virtual space. Also, based on the object manipulation action, the control target is assembled to another object arranged in the virtual space and bonded to the other object to generate an assembly object.
[0119] As shown in FIG. 20, when a controllable object that can be a control target by an object operation action is located in front of the player character PC (or in the vicinity of the gaze point of the virtual camera), if a predetermined user operation input is performed, the player character PC can perform an object operation action on the controllable object. In the example shown in FIG. 20, the controllable object OBJ8 is selected as a control target in response to a predetermined user selection operation input, and an object operation action is performed. For example, the controllable object OBJ8 is an object (e.g., a rocket) that becomes a power source that provides propulsive force to another object by being joined to the other object. In a state in which an object operation action is performed on the controllable object OBJ8, the controllable object OBJ8 is in a state of floating above the ground in the virtual space and is displayed in a different manner from normal. Specifically, the controllable object that is the control target is displayed in a color different from other objects, displayed with an effect image added, or displayed with an effect image different from the effect image added to other objects (note that in FIG. 20, the difference in display manner is represented by diagonal lines). In this embodiment, an effect image indicating that an object manipulation action is being performed is also displayed (note that in FIG. 20, the effect image is represented by a dashed line). With these, in a state in which a game image showing a game field is displayed, it is possible to clearly present to the user that among the objects on the game field, a controllable object that is the control target of the object manipulation action and that an object manipulation action is being performed.
[0120] During the object operation action, when the player character PC moves in response to an operation input by a predetermined user (for example, a directional operation input by tilting the analog stick 32 of the left controller 3), the controllable object OBJ8 that is the control target of the object operation action also moves. Furthermore, when an operation input by a predetermined user (for example, a directional operation input by tilting the analog stick 52 of the right controller 4) is performed during the object operation action, the orientation of the player character PC changes and the controllable object OBJ8 may move in the virtual space so that the control target is located in front of the player character PC. Furthermore, when an operation input by a predetermined user (for example, a directional operation input by pressing the direction keys 33 to 36) is performed during the object operation action, only the controllable object OBJ8 that is the control target may move in the virtual space. Furthermore, when an operation input by a predetermined user (for example, a directional operation input by pressing the direction keys 33 to 36 while pressing the operation button 60 (R button)) is performed during the object operation action, only the controllable object OBJ8 that is the control target may rotate in the virtual space.
[0121] By using an object operation action, the operable object OBJ8 is moved toward the floating stone object FS1, and when the operable object OBJ8 and the floating stone object FS1 satisfy a predetermined connection condition (for example, the distance between them is less than a threshold), an adhesion object G appears connecting the operable object OBJ8 and the floating stone object FS1. Specifically, the position on the surface of the operable object OBJ8 that is closest to the floating stone object FS1 is set as one of the adhesion positions. Similarly, the position on the surface of the floating stone object FS1 that is closest to the operable object OBJ8 is set as the other adhesion position. Then, the adhesion object G is displayed so as to connect these two adhesion positions.
[0122] Then, in response to a user's operation input instructing adhesion (for example, an operation input of pressing the operation button 53 (A button)), the operable object OBJ8 and the floating stone object FS1 are glued together to generate an assembly object AS. As an example, the operable object OBJ8 and the floating stone object FS1 are glued together so that one of the above-mentioned glue positions on the operable object OBJ8 comes into contact with the other of the above-mentioned glue positions on the floating stone object FS1. Even after the operable object OBJ8 and the floating stone object FS1 are glued together, an adhesion object G may remain at the adhesion site of these objects and be displayed, deformed to a shape that matches the shape of the gap after the adhesion.
[0123] In this way, in this embodiment, the user can arbitrarily select the operable object to be glued, and can glue the selected operable object to the floating object at an arbitrary position and in an arbitrary posture to generate an assembled object. Here, in this embodiment, "gluing" objects together means that the objects are bonded to each other at a close position and behave as an integrated object. For example, when two objects are glued together, the two objects may be in contact with each other. Also, when two objects are glued together, the two objects do not have to be in strict contact with each other. For example, there may be a gap between the two objects, or the above-mentioned glue object G may be interposed. Also, "multiple objects behave as an integrated object" includes maintaining the relative positional relationship of the multiple objects, and moving or changing the posture of the multiple objects in the virtual space as if they were one object. In other words, the assembled object generated by bonding multiple objects is placed in the virtual space as an integrated object. It should be noted that the relative positional relationship between the multiple objects that are glued together is not completely fixed, and for example, if force or impact is applied to any of the multiple objects, there may be some change in their positional relationship while they remain glued together.
[0124] The above-mentioned physical determination and physical calculation may be performed in the same manner for an assembly object in which other objects are combined with such a floating object. For example, the assembly object may move as a whole by calculating the force applied to each object based on the interaction between the objects combined as the assembly object, or physical calculation may be performed on the assembly object as a single integrated object.
[0125] When the above-mentioned assembly object is generated, it may include a functional object that functions as a power source for operating the assembly object AS, a steering device for controlling the operation of the assembly object AS, or the like, as in the object OBJ8 constituting the assembly object AS illustrated in Fig. 20. For example, an assembly object may be formed by combining any of the above-mentioned objects OBJ3 to OBJ7 with a floating object (floating stone object FS1, floating stage object FS2). When the above-mentioned functional object is combined with the floating object and integrated, the assembly object may move or operate in the virtual space according to the action of the player character PC riding on it and operating it.
[0126] In the above-mentioned first to fourth game processing examples, a floating object (floating stone object FS1) that is movable in the vertical and horizontal directions in the virtual space with a limit set by the load capacity in each direction, and a floating object (floating stage object FS2) that is movable in the vertical and horizontal directions in the virtual space with a limit set by the load capacity in the downward direction, are described as examples, but the manner of the motion control in each direction for the floating object is not limited to these examples. As a first example, it may be a floating object that is movable in the vertical direction in the virtual space with a limit set by the load capacity in at least the downward direction, but cannot move in the horizontal direction. As a second example, it may be a floating object that is movable in the vertical and horizontal directions in the virtual space with a limit set by the load capacity in each direction. As a third example, it may be a floating object that is movable in the downward and horizontal directions in the virtual space with a limit set by the load capacity in each direction, but cannot move in the upward direction. As a fourth example, a floating object may be one in which a load-bearing capacity limit is set in the downward direction in virtual space, allowing it to move in that downward direction but not in the upward or horizontal directions.
[0127] In the above description, the floating stone object FS1 and the floating stage object FS2 are given as examples of floating objects, but the floating object may be a plate-shaped object of other shapes or an object of other forms. For example, the floating object may be a sheet-shaped object such as a thick fabric or a net, a cloud-shaped object made of frozen water droplets or ice, or a three-dimensional object made of rigid or soft bodies of various three-dimensional shapes or complex shapes.
[0128] The power source of the object that applies propulsive force to the floating object is not limited to a rocket. For example, it may be a power source that drives a propeller to move the object forward, a power source that applies propulsive force by expanding and contracting, a power source that applies propulsive force by magnetic force or buoyancy, a power source that applies propulsive force by blowing out compressed gas, or a character that applies propulsive force by an action to move the floating object (throwing, kicking, hitting, pushing, pulling, lifting, etc.).
[0129] The load applied to the floating object and the returning force applied to the floating object may be calculated by other methods. For example, the load applied to the floating object and the returning force applied to the floating object may be calculated based on the movement of the floating object (speed, acceleration, angular velocity, angular acceleration, etc.) caused by the load. Also, the load applied to the floating object and the returning force applied to the floating object may be calculated for each object that interacts with the floating object (for example, each object riding on the floating object), and the loads may be calculated by summing up the loads.
[0130] In the above example, the floating object's own weight is described as 0, but the own weight may be set to a predetermined weight. As an example, a returning force for returning the movement or motion of the floating object caused by the own weight to the position or posture before the movement may be constantly applied to the floating object, thereby realizing a floating object that is stationary or floating in the air. In this case, the load capacity set for the floating object may be set to less than the own weight of the floating object.
[0131] In the above description, an example was used in which the force for returning the floating object to the position and orientation stored in the previous process (the process of the previous frame) was calculated as the returning force. In another embodiment, the force for returning the floating object to the position and orientation stored in the process before the previous one (the process of two or more frames before) may be calculated as the returning force. In this case, the history of the position and orientation of the floating object may be stored up to two or more frames before, and the returning force may be calculated using the history.
[0132] Next, an example of a specific process executed by the game system 1 will be described with reference to Fig. 21. Fig. 21 is a diagram showing an example of a data area set in the DRAM 85 of the main unit 2. In addition to the data shown in Fig. 21, the DRAM 85 also stores data used in other processes, but detailed description thereof will be omitted.
[0133] The program storage area of the DRAM 85 stores various programs Pa executed by the game system 1. In this embodiment, the various programs Pa store application programs (e.g., game programs) for performing information processing based on data acquired from the left controller 3 and / or the right controller 4 or the main unit 2. The various programs Pa may be stored in advance in the flash memory 84, or may be acquired from a storage medium removable from the game system 1 (e.g., a predetermined type of storage medium inserted in the slot 23) and stored in the DRAM 85, or may be acquired from another device via a network such as the Internet and stored in the DRAM 85. The processor 81 executes the various programs Pa stored in the DRAM 85.
[0134] Further, the data storage area of the DRAM 85 stores various data used in processing such as information processing executed in the game system 1. In this embodiment, the DRAM 85 stores operation data Da, player character data Db, floating stone object data Dc, floating stage object data Dd, object data De, load data Df, movement amount data Dg, returning force data Dh, virtual camera data Di, image data Dj, and the like.
[0135] The operation data Da is operation data acquired appropriately from the left controller 3 and / or the right controller 4 and the main unit 2. As described above, the operation data acquired from the left controller 3 and / or the right controller 4 and the main unit 2 includes information on inputs (specifically, information on operations) from each input unit (specifically, each button, analog stick, touch panel). In this embodiment, the operation data is acquired from the left controller 3 and / or the right controller 4 and the main unit 2, and the operation data Da is appropriately updated using the acquired operation data. The update cycle of the operation data Da may be updated every frame, which is the cycle of processing executed by the game system 1 described later, or may be updated every cycle in which the above operation data is acquired.
[0136] The player character data Db is data that indicates the position, orientation, and posture of the player character PC placed in the virtual space, as well as the actions and states (including movement parameters such as movement speed) in the virtual space.
[0137] The floating stone object data Dc is data that indicates the position, direction, and posture of each floating stone object placed in the virtual space, as well as the movement and state in the virtual space (including parameters such as speed, acceleration, angular velocity, and angular acceleration).
[0138] The floating stage object data Dd is data that indicates the position, orientation, and posture of each floating stage object placed in the virtual space, as well as the movement and state in the virtual space (including parameters such as speed, acceleration, angular velocity, and angular acceleration).
[0139] The object data De is data that indicates the position, direction, and posture of each object placed in the virtual space, as well as the movement and state in the virtual space (including parameters such as speed, acceleration, angular velocity, and angular acceleration).
[0140] The load data Df is data that indicates the load (excluding returning forces) applied to each character (player character PC) and object (floating stone object and floating stage object) placed in the virtual space, and the load that each of them imparts to other objects.
[0141] The movement amount data Dg is data that indicates the movement amount of each of the floating stone objects and the floating stage objects placed in the virtual space.
[0142] The returning force data Dh is data indicating the returning forces in the Y direction and the XZ directions set for each of the floating stone objects and the floating stage objects placed in the virtual space.
[0143] The virtual camera data Di is data that indicates the position, direction, angle of view, etc. of a virtual camera placed in a virtual space.
[0144] The image data Dj is data for displaying images (e.g., an image of the player character PC, an image of each object, an image of other characters, an image of a field in a virtual space, a background image, etc.) on a display screen (e.g., the display 12 of the main unit 2).
[0145] Next, a detailed example of the game processing, which is an example of the information processing in this embodiment, will be described with reference to Figs. 22 to 25. Fig. 22 is a flow chart showing an example of the game processing executed by the game system 1. Fig. 23 is a subroutine showing an example of the dynamic object update processing in step S123 of Fig. 22. Fig. 24 is a subroutine showing an example of the floating stone update processing in step S134 of Fig. 23. Fig. 25 is a subroutine showing an example of the floating stage update processing in step S136 of Fig. 23. In this embodiment, the series of processes shown in Figs. 22 to 25 are performed by the processor 81 executing a predetermined application program (game program) included in the various programs Pa. In addition, the timing at which the game processing shown in Figs. 22 to 25 is started is arbitrary.
[0146] 22 to 25 are merely examples, and the order of the steps may be changed, or other processes may be executed in addition to (or instead of) the steps, as long as the same results are obtained. In addition, in this embodiment, the steps of the above flowcharts are described as being executed by the processor 81, but some of the steps of the above flowcharts may be executed by a processor other than the processor 81 or a dedicated circuit. Some of the processes executed in the main unit 2 may be executed by another information processing device that can communicate with the main unit 2 (for example, a server that can communicate with the main unit 2 via a network). That is, the processes shown in FIGS. 22 to 25 may be executed by a plurality of information processing devices including the main unit 2 working together.
[0147] In FIG. 22, the processor 81 performs initial settings in the game processing (step S121) and proceeds to the next step. For example, in the initial settings, the processor 81 initializes parameters for performing the processing described below and updates each piece of data. As an example, the processor 81 generates a virtual space in an initial state by arranging various objects, characters, and the like in a game field in the virtual space, and updates the floating stone object data Dc, the floating stage object data Dd, and the object data De. The processor 81 also arranges a player character PC and a virtual camera in a predetermined posture at default positions in the virtual space in the initial state, and updates the player character data Db and the virtual camera data Di.
[0148] Next, the processor 81 acquires operation data from the left controller 3, the right controller 4, and / or the main unit 2, updates the operation data Da (step S122), and proceeds to the next step.
[0149] Next, the processor 81 performs a dynamic object update process (step S123), and proceeds to step S124. Hereinafter, the dynamic object update process in the above step S123 will be described with reference to FIG.
[0150] In FIG. 23, the processor 81 determines whether the processes of steps S132 to S137 for all dynamic objects arranged in the virtual space have been completed (step S131). Here, the dynamic objects handled in the process of step S123 above are objects that can be moved in the virtual space, and are a concept that includes objects arranged in the virtual space including floating objects such as the floating stone object FS1 and the floating stage object FS2 described above, assembled objects in which a plurality of objects are combined, the player character PC, other non-player characters such as enemy characters, item objects arranged in the virtual space, and the like. Then, when the processes of steps S132 to S137 for all dynamic objects have not been completed, the processor 81 advances the process to step S132. On the other hand, when the processes of steps S132 to S137 for all dynamic objects have been completed, the processor 81 advances the process to step S138.
[0151] In step S132, processor 81 selects, from among all dynamic objects arranged in the virtual space, a dynamic object for which the processes of steps S133 to S137 have not been completed, and proceeds to the next step.
[0152] Next, processor 81 determines whether the dynamic object being processed is a floating stone object FS1 (see FIGS. 8 to 17) (step S133). If the dynamic object being processed is the floating stone object FS1, processor 81 advances the process to step S134. On the other hand, if the dynamic object being processed is not the floating stone object FS1, processor 81 advances the process to step S135.
[0153] In step S134, processor 81 performs floating stone update processing, and proceeds to the next step S 135. Hereinafter, the floating stone update processing in step S134 will be described with reference to FIG.
[0154] In Fig. 24, the processor 81 provisionally calculates the amount of movement of the floating stone object FS1 to be processed (step S151), and proceeds to the next step. For example, the processor 81 refers to the floating stone object data Dc, load data Df, and return force data Dh of the floating stone object FS1 to be processed, calculates the motion (movement speed, movement acceleration, movement angular velocity, movement angular acceleration, movement direction, etc.) of the floating stone object FS1 by physical calculation based on the force (including load due to weight or propulsion force and propulsion force when moving) applied to the floating stone object FS1 and collision between the floating stone object FS1 and other objects, and provisionally calculates the position and posture of the floating stone object FS1 after the motion. Then, the processor 81 refers to the floating stone object data Dc to obtain the position and posture of the floating stone object FS1 set in the previous processing (processing in the previous frame), provisionally calculates the difference in the vertical direction (Y direction) from the provisionally calculated position and posture of the floating stone object FS1, i.e., the amount of movement in the Y direction of the floating stone object FS1, and updates the movement amount data Dg for the floating stone object FS1.
[0155] Next, the processor 81 calculates the load in the vertical direction (Y direction) applied to the floating stone object FS1 being processed (step S152), and proceeds to the next step. For example, the processor 81 calculates the force in the Y direction for causing the floating stone object FS1 being processed to move in the Y direction by the amount provisionally calculated in the above step S151, based on physical calculations. Then, the processor 81 refers to the returning force data Dh to obtain the returning force in the Y direction applied to the floating stone object FS1 in the previous processing (processing in the previous frame), and calculates the load in the Y direction applied to the floating stone object FS1 by subtracting the returning force from the calculated force in the Y direction.
[0156] Next, the processor 81 determines whether the load in the Y direction calculated in step S152 is equal to or greater than the load capacity in the Y direction set for the floating stone object FS1 being processed (step S153). If the load in the Y direction is less than the load capacity, the processor 81 advances the process to step S154. On the other hand, if the load in the Y direction is equal to or greater than the load capacity, the processor 81 advances the process to step S155.
[0157] In step S154, the processor 81 applies the returning force in the Y direction to the floating stone object FS1 being processed, and the process proceeds to step S156. For example, the processor 81 further applies the returning force in the Y direction to the floating stone object FS1 from the position and orientation of the floating stone object FS1 provisionally calculated in step S151 to the position and orientation of the floating stone object FS1 set in the previous process (the process in the previous frame), to the floating stone object FS1, and updates the returning force in the Y direction of the floating stone object FS1 in the returning force data Dh.
[0158] On the other hand, in step S155, the processor 81 turns off (cancels) the returning force in the Y direction applied to the floating stone object FS1 being processed, and proceeds to step S156. For example, the processor 81 cancels the returning force in the Y direction applied to the floating stone object FS1 being processed, and updates the returning force in the Y direction of the floating stone object FS1 in the returning force data Dh.
[0159] In step S156, the processor 81 calculates the horizontal (XZ) load applied to the floating stone object FS1 to be processed, and proceeds to the next step. For example, the processor 81 calculates the force in the XZ direction for causing the floating stone object FS1 to be processed to move in the XZ direction, provisionally calculated in step S151, based on physical calculations. Then, the processor 81 refers to the returning force data Dh to obtain the returning force in the XZ direction applied to the floating stone object FS1 in the previous processing (processing in the previous frame), and calculates the load in the XZ direction applied to the floating stone object FS1 by subtracting the returning force from the calculated force in the XZ direction.
[0160] Next, the processor 81 judges whether the load in the XZ direction calculated in the above step S156 is equal to or greater than the load capacity in the XZ direction set for the floating stone object FS1 being processed (step S157). If the load in the XZ direction is less than the load capacity, the processor 81 advances the process to step S158. On the other hand, if the load in the XZ direction is equal to or greater than the load capacity, the processor 81 advances the process to step S159.
[0161] In step S158, the processor 81 applies the returning force in the XZ direction to the floating stone object FS1 being processed, and proceeds to step S160. For example, the processor 81 further applies the returning force in the XZ direction to the floating stone object FS1 from the position and orientation of the floating stone object FS1 provisionally calculated in step S151 to the position and orientation of the floating stone object FS1 set in the previous processing (processing in the previous frame), to the floating stone object FS1, and updates the returning force in the XZ direction of the floating stone object FS1 in the returning force data Dh.
[0162] On the other hand, in step S159, the processor 81 turns off (cancels) the returning force in the XZ direction applied to the floating stone object FS1 being processed, and proceeds to step S160. For example, the processor 81 cancels the returning force in the XZ direction applied to the floating stone object FS1 being processed, and updates the returning force in the XZ direction of the floating stone object FS1 in the returning force data Dh.
[0163] In step S160, when the floating stone object FS1 being processed is moving, the processor 81 applies a force to the floating stone object FS1 to attenuate the moving speed, updates the load data Df, and ends the processing of the subroutine. For example, the processor 81 applies a force to the floating stone object FS1 to attenuate the moving speed of the floating stone object FS1 being processed by multiplying the moving speed by a value less than 1, or a force to attenuate the moving speed by subtracting a predetermined value from the moving speed, to the floating stone object FS1 to update the load data Df. The force to attenuate the moving speed of the floating stone object FS1 may be attenuated differently depending on the moving direction. For example, the force to attenuate the moving speed may be attenuated differently for each of the moving speed component in the negative Y direction, the moving speed component in the positive Y direction, and the moving direction component in the XZ direction.
[0164] Returning to Fig. 23, the processor 81 determines whether the dynamic object being processed is a floating stage object FS2 (see Figs. 18 and 19) (step S135). If the dynamic object being processed is the floating stage object FS2, the processor 81 proceeds to step S136. On the other hand, if the dynamic object being processed is not the floating stage object FS2, the processor 81 proceeds to step S137.
[0165] In step S136, the processor 81 performs a floating stage update process, and proceeds to the next step S 137. Hereinafter, the floating stage update process in the above step S136 will be described with reference to FIG.
[0166] 25, the processor 81 provisionally calculates the amount of movement of the floating stage object FS2 being processed (step S171), and proceeds to the next step. For example, the processor 81 refers to the floating stage object data Dd, load data Df, and returning force data Dh of the floating stage object FS2 being processed, and calculates the movement (movement speed, movement acceleration, movement angular velocity, movement angular acceleration, movement direction, etc.) of the floating stage object FS2 by physical calculation based on the force acting on the floating stage object FS2 (including load due to weight or propulsion force, and propulsion force when moving) and collision between the floating stage object FS2 and other objects, and provisionally calculates the position and attitude of the floating stage object FS2 after the movement. Then, the processor 81 refers to the floating stage object data Dd to obtain the position and orientation of the floating stage object FS2 that was set in the previous processing (processing in the previous frame), and provisionally calculates the difference in the up-down direction (Y direction) from the provisionally calculated position and orientation of the floating stage object FS2, i.e., the amount of movement in the Y direction of the floating stage object FS2, and updates the movement amount data Dg for the floating stage object FS2.
[0167] Next, the processor 81 calculates the load in the downward direction (negative Y direction) applied to the floating stage object FS2 being processed (step S172), and proceeds to the next step. For example, when the movement amount provisionally calculated in the above step S171 includes a component moving in the negative Y direction, the processor 81 calculates a force in the negative Y direction for causing the floating stage object FS2 being processed to move in the negative Y direction, based on physical calculations. The processor 81 then refers to the returning force data Dh to obtain the returning force in the positive Y direction that was applied to the floating stage object FS2 in the previous process (processing in the previous frame), and calculates the load in the negative Y direction being applied to the floating stage object FS2 in question by subtracting the returning force from the calculated force in the negative Y direction.
[0168] Next, the processor 81 determines whether or not the load in the negative Y direction calculated in step S172 is equal to or greater than the load capacity in the negative Y direction set for the floating stage object FS2 being processed (step S173). If the load in the negative Y direction is less than the load capacity, the processor 81 advances the process to step S174. On the other hand, if the load in the negative Y direction is equal to or greater than the load capacity, the processor 81 advances the process to step S175.
[0169] In step S174, the processor 81 applies the returning force in the negative Y direction to the floating stage object FS2 being processed, and the process proceeds to step S176. For example, the processor 81 further applies to the floating stage object FS2 a returning force in the positive Y direction from the position and orientation of the floating stage object FS2 provisionally calculated in step S171 above to the position and orientation of the floating stage object FS2 set in the previous process (processing in the previous frame), thereby updating the returning force in the positive Y direction of the floating stage object FS2 in the returning force data Dh.
[0170] Meanwhile, in step S175, the processor 81 turns off (releases) the returning force in the positive Y direction applied to the floating stage object FS2 being processed, and proceeds to step S176. For example, the processor 81 releases the returning force in the positive Y direction applied to the floating stage object FS2 being processed, and updates the returning force in the positive Y direction of the floating stage object FS2 in the returning force data Dh.
[0171] In step S176, if the floating stage object FS2 being processed is moving, the processor 81 applies a force for attenuating the moving speed to the floating stage object FS2, updates the load data Df, and ends the processing of the subroutine. For example, the processor 81 applies a force for attenuating the moving speed of the floating stage object FS2 being processed by multiplying the moving speed of the floating stage object FS2 by a value less than 1 or a force for attenuating the moving speed by subtracting a predetermined value from the moving speed to the floating stage object FS2, and updates the load data Df. Note that the force for attenuating the moving speed of the floating stage object FS2 may be attenuated differently depending on the moving direction. For example, the force for attenuating the moving speed may be attenuated differently for each of the moving speed component in the negative Y direction, the moving speed component in the positive Y direction, and the moving direction component in the XZ directions.
[0172] Returning to Fig. 23, in step S137, the processor 81 calculates all forces generated by the dynamic object to be processed, and returns to step S131 to repeat the process. For example, the processor 81 calculates all forces generated by the dynamic object to be processed in the virtual space by physical calculation, and updates the load data Df. Here, the forces generated by the dynamic object are forces generated by the action or movement of the dynamic object, and various forces in the virtual space that the dynamic object receives from objects other than other objects around the dynamic object, and include inertial forces due to movement, action, and vibration in the virtual space, stress and scattering force related to destruction of at least a part of the dynamic object, gravity due to the weight of the dynamic object, and pressure caused by various phenomena occurring in the virtual space (excluding interactions with other objects).
[0173] If it is determined in step S131 that the processes of steps S132 to S137 have been completed for all dynamic objects, the processor 81 determines whether or not the processes of steps S139 to S140 have been completed for all dynamic objects placed in the virtual space (step S138). If the processes of steps S139 to S140 have not been completed for all dynamic objects, the processor 81 advances the process to step S139. On the other hand, if the processes of steps S139 to S140 have been completed for all dynamic objects, the processor 81 advances the process to step S141.
[0174] In step S139, the processor 81 selects, from among all dynamic objects placed in the virtual space, a dynamic object for which the processing of step S140 has not been completed, and proceeds to the next step.
[0175] Next, the processor 81 calculates the interaction between the dynamic object being processed and other objects (step S140), and returns to step S138 to repeat the process. For example, the processor 81 calculates the interaction between the objects that affect each other (force) and change their respective motion states by physical judgment, calculates the force acting on the dynamic object being processed based on the motion state changed by the interaction by physical calculation, and updates the load data Df of the dynamic object. For example, the force calculated by the interaction with other objects includes the force received by an attack from another object, the repulsive force due to an attack on another object, the impact force or friction force due to a collision or contact with another object or field, the propulsive force received by being pushed, pulled, lifted, or the like by another object, the gravity due to the weight of the other object in contact, the stress received from the other object in a state of being joined and integrated with the other object, and the like.
[0176] If it is determined in step S138 that the processes of steps S139 to S140 have been completed for all dynamic objects, processor 81 determines whether or not the processes of steps S142 to S144 have been completed for all dynamic objects placed in the virtual space (step S141). If the processes of steps S142 to S144 have not been completed for all dynamic objects, processor 81 advances the process to step S142. On the other hand, if the processes of steps S142 to S144 have been completed for all dynamic objects, processor 81 ends the process of this subroutine.
[0177] In step S142, the processor 81 selects, from among all dynamic objects placed in the virtual space, a dynamic object for which the processes of steps S143 and S144 have not been completed, and proceeds to the next step.
[0178] Next, the processor 81 calculates the motion of the dynamic object to be processed based on the force acting on the dynamic object (step S143), and proceeds to the next step. For example, the processor 81 refers to the load data Df and the returning force data Dh of the dynamic object to be processed, calculates the motion parameters (speed, acceleration, angular velocity, angular acceleration, etc.) of the dynamic object due to the influence (physical judgment) of the force (including the returning force) acting on the dynamic object, and updates the player character data Db, the floating stone object data Dc, the floating stage object data Dd, or the object data De. Note that, when motion parameters due to a plurality of forces are calculated for the dynamic object to be processed, these motion parameters may be offset or accumulated to be combined into one motion parameter.
[0179] The calculation of the motion of the dynamic object in step S143 includes setting the motion of the player character PC based on the user operation input and setting the motion of other characters. As an example, when the player character PC is the processing target, the processor 81 sets the posture, motion, state, and the like of the player character PC based on the user operation input indicated by the operation data Da and virtual physical calculations in the virtual space (for example, virtual inertia and gravity), and updates the player character data Db.
[0180] Next, the processor 81 updates the position and posture of the dynamic object to be processed in the virtual space (step S144), and returns to step S141 to repeat the process. For example, the processor 81 refers to the player character data Db, the floating stone object data Dc, the floating stage object data Dd, or the object data De to acquire the arrangement position, arrangement direction, arrangement posture, and movement parameters in the virtual space set for the dynamic object to be processed. Then, the processor 81 moves the dynamic object in the virtual space by performing a physical calculation based on the acquired movement parameters, and updates the player character data Db, the floating stone object data Dc, the floating stage object data Dd, or the object data De using the arrangement position, arrangement direction, and arrangement posture after the movement.
[0181] Returning to FIG. 22, after the dynamic object update process in step S123, the processor 81 performs a drawing process (step S124) and proceeds to the next step. For example, the processor 81 places the player character PC and each object in the virtual space based on the player character data Db, the floating stone object data Dc, the floating stage object data Dd, and the object data De. The processor 81 also sets the position and / or attitude of a virtual camera for generating a display image based on the virtual camera data Di, and places the virtual camera in the virtual space. Then, an image of the virtual space seen from the set virtual camera is generated, and the virtual space image is displayed on the display 12. The processor 81 may execute a process of controlling the movement of the virtual camera in the virtual space based on the position and attitude of the player character PC, and update the virtual camera data Di. The processor 81 may also move the virtual camera in the virtual space based on the operation data Da, and update the virtual camera data Di.
[0182] Next, processor 81 determines whether or not to end the game processing (step S125). Conditions for ending the game processing in step S125 above include, for example, a condition for ending the game processing being satisfied, or the user performing an operation to end the game processing. If processor 81 does not end the game processing, it returns to step S122 above to repeat the process, and if it ends the game processing, it ends the process according to this flowchart. Thereafter, the series of processes from step S122 to step S125 is repeatedly executed until it is determined in step S125 that the process is to end.
[0183] In this way, the floating stone object FS1 and the floating stage object FS2 in this embodiment can be realized as floating objects that can be moved from their positions while also floating in the air in the virtual space when a load is applied that does not exceed the load capacity.
[0184] The game system 1 may be any device, such as a portable game device, any portable electronic device (PDA (Personal Digital Assistant), mobile phone, personal computer, camera, tablet, etc.), and the like.
[0185] In the above description, an example was used in which the information processing (game processing) is performed by the game system 1, but at least a part of the above processing steps may be performed by another device. For example, if the game system 1 is configured to be capable of communicating with another device (e.g., a server, another information processing device, another image display device, another game device, another mobile terminal), the above processing steps may be executed by the cooperation of the other device. In this way, by performing at least a part of the above processing steps by another device, processing similar to the above processing is possible. In addition, the above information processing can be executed by one processor or by cooperation between multiple processors included in an information processing system composed of at least one information processing device. In the above embodiment, the processor 81 of the game system 1 can execute a predetermined program to perform information processing, but a part or all of the above processing may be executed by a dedicated circuit provided in the game system 1.
[0186] According to the above-mentioned modified example, the present invention can be realized in a so-called cloud computing system form or a distributed wide area network and local network system form. For example, in a distributed local network system form, the above-mentioned processing can be executed by cooperation between a stationary information processing device (stationary game device) and a portable information processing device (portable game device). In these system forms, there is no particular limitation on which device performs the above-mentioned processing, and it goes without saying that the present invention can be realized regardless of the division of processing load.
[0187] Furthermore, the processing sequence, setting values, conditions used for judgment, and the like used in the above-described information processing are merely examples, and it goes without saying that this embodiment can be realized even with other sequences, values, and conditions.
[0188] The program may be supplied to the game system 1 through an external storage medium such as an external memory, or may be supplied to the device through a wired or wireless communication line. The program may be pre-recorded in a non-volatile storage device inside the device. The information storage medium for storing the program may be a non-volatile memory, a CD-ROM, a DVD, or an optical disk-shaped storage medium similar to these, a flexible disk, a hard disk, a magneto-optical disk, a magnetic tape, or the like. The information storage medium for storing the program may be a volatile memory for storing the program. Such a storage medium may be a recording medium that can be read by a computer or the like. For example, the various functions described above can be provided by having a computer or the like read and execute the programs from these recording media.
[0189] Although the present invention has been described in detail above, the above description is merely illustrative of the present invention in all respects and is not intended to limit its scope. Needless to say, various improvements and modifications can be made without departing from the scope of the present invention. In addition, it is understood that a person skilled in the art can implement an equivalent range based on the description of the present invention and technical common sense from the description of specific examples of the present invention. In addition, it should be understood that the terms used in this specification are used in the sense commonly used in the field unless otherwise specified. Therefore, unless otherwise defined, all technical terms and technical terms used in this specification have the same meaning as commonly understood by a person skilled in the art to which this invention belongs. In the event of a conflict, this specification (including definitions) shall prevail. [Industrial Applicability]
[0190] As described above, the present invention can be used as a game program, a game system, a game device, a game processing method, and the like, which can enrich the things that can be done in the air in a virtual space. [Explanation of symbols]
[0191] 1. Information processing system 2. Main unit 3...Left controller 4…Right controller 11. Housing 12…Display 13...Touch panel 32, 52…Analog stick 42, 64…Terminals 81…Processor 82…Network communication section 83...Controller communication section 85…DRAM 101, 111...Communication control unit
Claims
1. In the computer of the information processing device, Of the dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, for at least one floating object placed in the air, Based on the game processing, the load applied to the floating object is calculated. A game program that, in the first case where the load in the virtual space, at least in the downward direction, does not exceed a first load-bearing capacity, further applies a first force to the floating object in the virtual space to maintain the vertical position of the floating object in the virtual space, thereby updating the position and orientation of the floating object based on the physics calculation.
2. To the aforementioned computer, The position and orientation of the floating object, which are updated based on the aforementioned physics calculations, are stored. The game program according to claim 1, in the first case, the program causes the floating object to be subjected to a force as the first force which returns the floating object to the previously stored vertical position and orientation from the vertical position and orientation of the floating object when it is moved based on the load without the first force being applied.
3. The aforementioned computer further, The game program according to claim 1, wherein, in the second case where the load in the horizontal direction within the virtual space does not exceed the second load-bearing capacity, a second force is further applied to the floating object to maintain the horizontal position of the floating object within the virtual space.
4. The game program according to any one of claims 1 to 3, wherein the load includes a load in the direction of gravity in the virtual space based on the weight of the dynamic object loaded onto the floating object based on the game processing, and a thrust force applied based on contact from the dynamic object that generates a thrust force in a predetermined direction.
5. The computer is further made to control the player character in the virtual space based on the operation input. The game program according to claim 4, wherein the load includes a load in the direction of gravity based on the weight of the player character riding on the floating object.
6. The game program according to any one of claims 1 to 3, further comprising causing the computer to generate a force that attenuates the speed of movement of the floating object when the floating object moves based on the physical calculations, thereby controlling the speed of movement of the floating object.
7. A game system equipped with a processor, The aforementioned processor, Of the dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, for at least one floating object placed in the air, Based on the game processing, the load applied to the floating object is calculated, A game system that, in the first case where the load in the virtual space, at least in the downward direction, does not exceed a first load-bearing capacity, further applies a first force to the floating object in the virtual space to maintain the vertical position of the floating object in the virtual space, and updates the position and orientation of the floating object based on the physics calculation.
8. The aforementioned processor, The position and orientation of the floating object, which are updated based on the aforementioned physics calculations, are stored. The game system according to claim 7, wherein, in the first case, a force is applied to the floating object as the first force to return it to the stored vertical position and orientation from the vertical position and orientation of the floating object when it moves based on the load without applying the first force.
9. The aforementioned processor further, The game system according to claim 7, wherein, in the second case where the horizontal load in the virtual space does not exceed the second load-bearing capacity, a second force is further applied to the floating object to maintain the horizontal position of the floating object in the virtual space.
10. The game system according to any one of claims 7 to 9, wherein the load includes a load in the direction of gravity in the virtual space based on the weight of the dynamic object loaded onto the floating object based on the game processing, and a thrust force applied based on contact from the dynamic object that generates a thrust force in a predetermined direction.
11. The processor further controls the player character in the virtual space based on the operation input. The game system according to claim 10, wherein the load includes a load in the direction of gravity based on the weight of the player character riding on the floating object.
12. The game system according to any one of claims 7 to 9, wherein the processor further controls the movement speed of the floating object by generating a force that attenuates the movement speed of the floating object when the floating object moves based on the physics calculation.
13. A game device equipped with a processor, The aforementioned processor, Of the dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, for at least one floating object placed in the air, Based on the game processing, the load applied to the floating object is calculated, A game device that, in the first case where the load in the virtual space, at least in the downward direction, does not exceed a first load-bearing capacity, further applies a first force to the floating object in the virtual space to maintain the vertical position of the floating object in the virtual space, and updates the position and orientation of the floating object based on the physics calculation.
14. The aforementioned processor, The position and orientation of the floating object, which are updated based on the aforementioned physics calculations, are stored. The game device according to claim 13, wherein, in the first case, a force is applied to the floating object as the first force to return it to the stored vertical position and orientation from the vertical position and orientation of the floating object when it moves based on the load without applying the first force.
15. A game processing method executed by an information processing system, The aforementioned information processing system is Of the dynamic objects placed in a virtual space and whose movement is controlled based on physics calculations, for at least one floating object placed in the air, Based on the game processing, the load applied to the floating object is calculated, A game processing method that, in the first case where the load in the virtual space, at least in the downward direction, does not exceed a first load-bearing capacity, further applies a first force to the floating object in the virtual space to maintain the vertical position of the floating object in the virtual space, and updates the position and orientation of the floating object based on the physics calculation.
16. The aforementioned information processing system is The position and orientation of the floating object, which are updated based on the aforementioned physics calculations, are stored. The game processing method according to claim 15, wherein, in the first case, a force is applied to the floating object as the first force to return it to the stored vertical position and orientation from the vertical position and orientation of the floating object when it moves based on the load without applying the first force.