Game program, information processing system, information processing method, and information processing device.
The game program enhances movement correction by adjusting to course edges, item usage, and path heights, ensuring smooth navigation and preventing deviations, addressing the challenges of complex courses in conventional systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- NINTENDO CO LTD
- Filing Date
- 2024-10-09
- Publication Date
- 2026-04-21
AI Technical Summary
Conventional game systems struggle with improving the movement correction of player objects, particularly in complex courses, leading to challenges in maintaining the player object within the defined course paths.
The game program controls player object movement based on predefined course paths, applying movement corrections that adjust according to the positional relationship between the player object and the course edges, item usage, and path heights, ensuring smooth navigation through various course configurations.
This approach allows for natural and effective movement control, preventing the player object from deviating from the course edges and enabling seamless transitions between different paths, even in complex scenarios.
Smart Images

Figure 2026067595000001_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a game program, an information processing system, an information processing method, and an information processing apparatus capable of moving a player object in a virtual space.
Background Art
[0002] Conventionally, in a game that moves a player object, there is a game system that performs correction for supporting the player (see, for example, Patent Document 1).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the above conventional system, there is room for improvement in the correction regarding the movement of the player object, for example, to handle a complex course.
[0005] Therefore, one object of the present invention is to provide a game program, an information processing system, an information processing method, and an information processing apparatus capable of performing correction corresponding to various courses.
Means for Solving the Problems
[0006] (First Configuration) In the first configuration of this embodiment, the game program causes the computer to control the movement of a player object based on an operation input in a field within a virtual space where course paths are defined along a course, indicating at least both ends of the course, and where multiple such course paths are set. The game program also causes the computer to perform course end movement correction, which corrects the movement of the player object in the movement control based on the positional relationship between one end of the course path and the player object, when the player object is in a first state, based on the one end of one of the multiple course paths and the other end of the other course path, and when the player object is in a second state, based on the ends of any of the multiple course paths that include the position of the player object.
[0007] As described above, movement control can be switched between controlling movement within a combined range of multiple course paths and controlling movement within the range of any one of the multiple course paths, depending on the state of the player object. For example, even with a complex course setup, course edge movement correction can be performed appropriately.
[0008] (Second structure) In the second configuration, in the first configuration described above, the course edge movement correction may be a correction that applies movement to the player object in a direction that does not approach the edge when the distance between the edge and the player object is short.
[0009] According to the above, it is possible to prevent the player object from getting too close to the edge of the course.
[0010] (The third structure) In the third configuration, in the second configuration described above, the course edge movement correction may be a correction that applies the movement with a stronger intensity the closer the distance between the edge and the player object is.
[0011] As described above, while controlling the movement of the player object in response to the player's input, the correction strength can be gradually increased as the player approaches the edge of the course, resulting in movement control that feels natural to the player.
[0012] (Fourth structure) In the fourth configuration, in any of the first to third configurations described above, the course path further indicates the height of the course, and the player object may enter the first state if, among the multiple course paths, the height of the lower end of a course path that does not include the position of the player object is less than or equal to the height of the position of the player object.
[0013] According to the above, when a player object is on the higher course path, it can move to the lower course path.
[0014] (Fifth component) In the fifth configuration, in any of the first to fourth configurations described above, the course path further indicates the height of the course, and the player object may enter the first state when it is located within the higher course path among a plurality of course paths, including the higher and lower courses, and the player object may enter the second state when it is located within the lower course path.
[0015] According to the above, when a player object is on the higher course path, it can move to the lower course path, and when a player object is on the lower course path, it can be prevented from moving to the higher course path.
[0016] (The sixth component) In the sixth configuration, in the fifth configuration described above, the game program further causes the computer to make the player object perform a jump action based on an operation input, and in a state where the player object is located within the lower course path, the player object may be changed from the second state to the first state in response to the jump action.
[0017] According to the above, even when the player object is on the lower course path, it can move to the higher course path by performing a jump action.
[0018] (The seventh configuration) In the seventh configuration, in any of the first to sixth configurations described above, the game program may cause the computer to set the player object to either the first state or the second state according to the type of the course path in which the position of the player object is included.
[0019] According to the above, the player object can be set to the first state or the second state according to the type of the course path in which the player object is located.
[0020] (The eighth configuration) In the eighth configuration, in any of the first to seventh configurations described above, when the position of the player object is included in a plurality of the course paths respectively, the game program may cause the computer to set the player object to the first state.
[0021] According to the above, when the position of the player object is included in a plurality of course paths respectively, course end movement correction can be performed based on the one end of the one-side course path and the other end of the other-side course path among the plurality of course paths.
[0022] (The ninth configuration) In the ninth configuration, in any of the first to eighth configurations, the field may include a deceleration field in which the speed of the moving player object is restricted. The game program may further cause the computer to move and control the player object without being affected by the deceleration field for a predetermined period in response to an instruction based on an operation input. When the position of the player object is included in a course path defined on the deceleration field among the plurality of course paths, if the item is being used or available, the player object may be set to the first state, and if the item is unavailable, the player object may be set to the second state.
[0023] According to the above, when the player object is using or can use an item, the player object can enter the deceleration field, and when the player object cannot use the item, the player object can be prevented from entering the deceleration field.
[0024] (Tenth configuration) In the tenth configuration, in the ninth configuration above, the game program may cause the computer to set the player object to the first state when the position of the player object is included in a course path defined on the deceleration field.
[0025] According to the above, the player object can move on the deceleration field while it is on the deceleration field.
[0026] (Eleventh configuration) In the 11th configuration, in any of the first to 10 configurations described above, the movement control may include control that changes the direction of movement according to the input amount. The game program may further cause the computer to perform input amount correction, where the computer defines the player object's position while it is moving and the position on the course path reached by a predetermined distance along the course path from the position while it is moving as the first position and the second position, respectively, and if the direction of movement of the player object is not included between the first direction toward the first position and the second direction toward the second position, the computer corrects the input amount so that the direction of movement approaches a third direction which is included between the first direction and the second direction.
[0027] According to the above, the input amount can be adjusted so that the player object moves towards the position it has reached along the course path.
[0028] (The 12th composition) In the 12th configuration, in any of the first to 11 configurations described above, the ends of the course path may be defined based on a curve defined by a plurality of discrete control points.
[0029] According to the above, the endpoints of the course path can be defined based on discrete control points, and course edge movement correction can be performed based on a smooth curve.
[0030] Furthermore, the other components may be an information processing system that executes the above-mentioned game program, an information processing device, or an information processing method. [Effects of the Invention]
[0031] According to one example of the present invention, movement control can be switched between controlling movement within a range encompassing multiple course paths combined, and controlling movement within the range of any one of the multiple course paths, depending on the state of the player object. [Brief explanation of the drawing]
[0032] [Figure 1] A diagram showing an example of a game system. [Figure 2] Block diagram showing an example of the internal configuration of the main unit. [Figure 3] A diagram showing an example of a course in which the racing game of this embodiment is played. [Figure 4] A diagram showing an example of a game image displayed on the screen during a racing game. [Figure 5] A diagram showing a portion of the course, intended to explain the course path. [Figure 6] A diagram illustrating the movement correction in the assist function of this embodiment. [Figure 7] A diagram illustrating movement correction when two course paths overlap. [Figure 8] This diagram illustrates an example of movement correction when two adjacent course paths with different elevations are located on the lower course path. [Figure 9] This diagram illustrates an example of movement correction when two adjacent course paths with different elevations are located on the higher course path, specifically for player object 50. [Figure 10] This diagram illustrates an example of movement correction when a jump action is performed on a player object 50 located on the lower course path, in a situation where two adjacent course paths have a difference in elevation. [Figure 11] A diagram illustrating an example of movement correction when player object 50 is not in a state where item X1 can be used and the effect of item X1 is not active. [Figure 12] A diagram illustrating an example of movement correction when player object 50 is in a state where item X1 is available or is currently using item X1. [Figure 13] A diagram illustrating an example of steering correction when player object 50 is traveling along a single course path. [Figure 14]A diagram illustrating steering correction when a course path branches into multiple paths. [Figure 15] A diagram showing the forced correction when player object 50 is moving in reverse. [Figure 16] This diagram shows an example of various data stored in Game System 1. [Figure 17] A flowchart illustrating an example of game processing for a racing game. [Figure 18] A flowchart showing an example of the player object control process in step S13. [Figure 19] A flowchart showing an example of the assistance process in step S24. [Figure 20] A diagram illustrating how to calculate the right and left endpoints of a single course path. [Figure 21] A diagram illustrating how to calculate curves at points where multiple course paths branch off. [Figure 22] Figure 21 shows an example of how the curve at the branching point was calculated using the method shown in Figure 21. [Figure 23] Figure 20 shows an example of how the curve at the branching point was calculated using the method shown in Figure 20. [Modes for carrying out the invention]
[0033] (Game system configuration) The following describes a game system according to an example of this embodiment. Figure 1 is a diagram showing an example of a game system. The example of the game system 1 in this embodiment includes a main unit (information processing device; in this embodiment, it functions as the main unit of the game device) 2, a left controller 3, and a right controller 4. The main unit 2 is a device that performs various processes (for example, game processing) in the game system 1. The left controller 3 and the right controller 4 include, as an example of an operation section for user input, a plurality of directional buttons 30 including up, down, right, and left buttons, a plurality of buttons (A button, B button, X button, Y button, L button, R button, etc.), a left analog stick 31, and a right analog stick 35.
[0034] The main unit 2 is configured so that the left controller 3 and the right controller 4 can be attached and detached. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2, or the main unit 2 and the left controller 3 and the right controller 4 can be used as separate units. In the following, the left controller 3 and the right controller 4 will be collectively referred to as "controllers".
[0035] Figure 2 is a block diagram showing an example of the internal configuration of the main unit 2. As shown in Figure 2, the main unit 2 includes a processor 21. The processor 21 is an information processing unit that performs various information processing (e.g., game processing) in the main unit 2, and includes, for example, one or more CPUs (Central Processing Units) and one or more GPUs (Graphics Processing Units). The processor 21 may consist only of a CPU, or it may consist of a SoC (System-on-a-chip) that includes multiple functions such as CPU functions and GPU functions. The processor 21 performs various information processing by executing information processing programs (e.g., game programs) stored in a storage unit (specifically, an internal storage medium such as flash memory 26, or an external storage medium installed in slot 29).
[0036] The main unit 2 also includes a display 12. The display 12 displays images 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. The display 12 is connected to the processor 21. The processor 21 displays images generated (for example, by executing the above-mentioned information processing) and / or images acquired from an external source on the display 12.
[0037] Furthermore, the main unit 2 is equipped with a left terminal 22, which is a terminal for the main unit 2 to communicate with the left controller 3 via wired connection, and a right terminal 23, which is for the main unit 2 to communicate with the right controller 4 via wired connection.
[0038] Furthermore, the main unit 2 includes a flash memory 26 and a DRAM (Dynamic Random Access Memory) 27 as examples of internal storage media built into it. The flash memory 26 and DRAM 27 are connected to the processor 21. The flash memory 26 is a memory mainly used to store various types of data (which may be programs) stored in the main unit 2. The DRAM 27 is a memory used to temporarily store various types of data used in information processing.
[0039] The main unit 2 is equipped with a slot 29. The slot 29 has a shape that allows a predetermined type of storage medium to be inserted. 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 similar information processing devices. The predetermined type of storage medium is used to store, for example, data used by the main unit 2 (e.g., save data for game applications, etc.) and / or programs executed by the main unit 2 (e.g., game programs, etc.).
[0040] The main unit 2 is equipped with a slot interface (hereinafter abbreviated as "I / F") 28. The slot I / F 28 is connected to the processor 21. The slot I / F 28 is connected to slot 29 and reads and writes data to a predetermined type of storage medium (for example, a dedicated memory card) installed in slot 29, according to instructions from the processor 21.
[0041] The processor 21 performs the above-mentioned information processing by appropriately reading and writing data to the flash memory 26 and DRAM 27, as well as to each of the above-mentioned storage media.
[0042] Furthermore, the main unit 2 includes a network communication unit 24. The network communication unit 24 is connected to the processor 21. The network communication unit 24 communicates with external devices wirelessly or via wired connection over a network. In this embodiment, as a first communication mode, the network communication unit 24 connects to a wireless LAN and communicates with external devices using a method compliant with the Wi-Fi standard. In addition, as a second communication mode, the network communication unit 24 performs wireless communication with other main unit 2 of the same type using a predetermined communication method (for example, communication using a proprietary protocol or infrared communication). The wireless communication using the second communication mode is possible with other main unit 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 communicating directly or indirectly via access points between multiple main unit 2.
[0043] The main unit 2 includes a controller communication unit 25. The controller communication unit 25 is connected to the processor 21. The controller communication unit 25 communicates wirelessly with the left controller 3 and / or the right controller 4. The communication method between the main unit 2 and the left controller 3 and the right controller 4 is arbitrary, but in this embodiment, the controller communication unit 25 communicates with the left controller 3 and with the right controller 4 in accordance with the Bluetooth® standard.
[0044] The processor 21 is connected to the left terminal 22 and the right terminal 23 described above. When the processor 21 communicates with the left controller 3 via a wired connection, it transmits data to the left controller 3 via the left terminal 22 and receives operation data from the left controller 3 via the left terminal 22. Similarly, when the processor 21 communicates with the right controller 4 via a wired connection, it transmits data to the right controller 4 via the right terminal 23 and receives operation data from the right controller 4 via the right terminal 23. Thus, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4, respectively.
[0045] In addition to the elements shown in Figure 2, the main unit 2 also includes a battery for supplying power and output terminals for outputting images and sound to a display device other than the display 12 (for example, a television).
[0046] (Game Overview) Next, an overview of the game executed in game system 1 will be described. The game in this embodiment is a racing game in which a player controls the movement of a player object 50 operated by the player and one or more opponent objects on a course set up in a field within a virtual space (game space). The opponent objects may include objects operated by other players and objects automatically controlled by processor 21.
[0047] The player object 50 and one or more opponent objects travel along a course set on the field, aiming for the goal of that course. The course is a concept that represents the entire route from the starting point to the goal point. The route is the area on the field where the player object 50 is expected to move.
[0048] Figure 3 shows an example of a course on which the racing game of this embodiment is played. Figure 4 shows an example of a game image displayed on the screen during the racing game.
[0049] As shown in Figure 3, the field is set up with, for example, a road R, and gates that serve as the start and finish points. When the race game starts, the player object 50 and the opponent object 51 start from the start point and move in the direction of the course (in the direction of the arrows in Figure 3). The player object 50 and the opponent object 51 play a race game in which they aim for the finish line by completing multiple laps along a route, for example, road R. The player moves the player object 50 so that it has a higher ranking when it reaches the finish line.
[0050] The player controls the accelerator by, for example, pressing the A button. When the accelerator is pressed, the player object 50 moves forward. The player also controls the steering by, for example, tilting the left analog stick 31 left or right. When the steering is controlled, the direction of movement of the player object 50 changes. Specifically, when the left analog stick 31 is tilted left or right, the orientation of the player object 50 changes left or right, and the direction of movement of the player object 50 changes left or right. A virtual camera is set up behind the player object 50, and a game image is generated from the perspective of this virtual camera, and a game image like the one shown in Figure 4 is displayed on the screen.
[0051] In Figure 4, the player object 50 and the opponent object 51 are displayed, and the direction of the course is towards the back of the screen. When the player operates the accelerator, the player object 50 moves towards the back of the screen. When the player tilts the left analog stick 31 to the left, for example, the player object 50 changes its orientation to the left of the screen and changes its direction of movement to the left, according to the amount of tilt.
[0052] Player object 50 and opponent object 51 can acquire and use items during the race game. For example, item acquisition objects are placed on the course for acquiring items, and when player object 50 comes into contact with such an item acquisition object, one of several items is given to player object 50. When an item is used, an effect occurs according to its type. For example, item X1 has the effect of temporarily increasing the speed of the object using item X1. For example, if player object 50 is using item X1, player object 50's speed will temporarily increase. Also, item X2 has the effect of hindering the movement of an object other than the one using item X2.
[0053] As shown in Figure 4, the player object 50 possesses items X1 and X2, and item X1 is available for use. At this time, icons representing items X1 and X2 are displayed in the item holding area 85, and an icon representing item X1 is displayed around the player object 50. When the player performs a predetermined operation input to use an item (for example, pressing the L button), the player object 50 uses item X1. When the player object 50 uses item X1, the player object 50 remains in a state of using item X1 for a predetermined period of time, and the player object 50's speed temporarily increases. After the predetermined period has elapsed, the effect of item X1 wears off, and the player object 50 is no longer using item X1. Then, the player object 50 becomes available for use with item X2. The player object 50 can, for example, possess up to two items simultaneously.
[0054] As shown in Figure 3, the course in the racing game of this embodiment has multiple course paths, and the player object 50 can move to the goal by following various course paths. Here, a course path is a pre-defined area that the player object 50 and the opponent object 51 can pass through during the racing game. For example, the course has a section where it branches into a course path road Ra and another course path road Rb. In addition, the course has sections where multiple course paths run parallel to each other (not shown).
[0055] The course also includes a dirt area D. Dirt area D is an area set on the field, such as grass, sand, mud, or soil. Dirt area D is an example of a deceleration field where the speed of player object 50 and opponent object 51 is limited. A course path is set in dirt area D, and player object 50 can travel through dirt area D during the race game. Normally, when player object 50 travels through dirt area D, player object 50 slows down. If player object 50 is using item X1, player object 50 does not slow down even when traveling through dirt area D. Therefore, player object 50 can use item X1 to travel through dirt area D and take a shortcut on the course. If player object 50 does not possess item X1, it is more advantageous for player object 50 to travel on road Rc than to travel through dirt area D. Therefore, if the player does not possess item X1, the player object 50 will move along road Rc.
[0056] Next, we will explain the course path. Figure 5 is a diagram showing a part of the course and is intended to illustrate the course path. In Figure 5, a part of the course is shown as viewed from above in the virtual space.
[0057] As shown in Figure 5, the course is defined based on multiple path points CP (CP1, CP2, ...). Each path point CP has coordinate values in the XYZ Cartesian coordinate system and a width W (W1, W2, ...). Specifically, each path point CP has a width Wx in the horizontal direction (parallel to the YZ plane) and a width Wy in the vertical direction (Y axis direction). In Figure 5, W1, W2, etc., indicate the width in the horizontal direction. In addition, each path point CP has information indicating the order from the start point to the goal point of the course, and information indicating whether or not it is a branching point. In Figure 5, the direction of travel of the course is from bottom to top, and path point CP2 is closer to the goal point than path point CP1.
[0058] The lateral ends of each path point CP are called "course ends." Of the two course ends at a path point CP, the right-hand course end is called the "right course end," and the left-hand course end is called the "right course end," relative to the direction of travel of the course.
[0059] Connecting each path point CP creates a line 40 that passes through the center of the course. This line 40 is referred to here as the "course centerline." Furthermore, connecting the right ends of each path point CP creates a line 40R indicating the right edge of the course, and connecting the left ends of each path point CP creates a line 40L indicating the left edge of the course. Here, line 40R is called the "course right edge line," and line 40L is called the "course left edge line." The course right edge line and the course left edge line are collectively referred to as "course edge lines."
[0060] The area enclosed by the right edge line 40R and the left edge line 40L of the course is the course path. The course path has height and an upper and lower end. The right edge line 40R and the left edge line 40L are actually represented as surfaces. The player object 50 moves along the course path enclosed by the right edge line 40R, the left edge line 40L, the upper end of the course, and the lower end of the course. The right edge line 40R and the left edge line 40L are represented by curves (surfaces) through interpolation processing, which will be described later. The method for calculating the right edge line and the left edge line of the course will be described later.
[0061] Path points CP are typically set at the center of the road R defined in the field. The lateral width W of the path point CP is typically set to the width of the road R defined in the field. Path points CP can also be set in areas other than roads within the field. For example, multiple path points CP may be set in areas such as grass, sand, mud, soil, water, or air within the field to define a course path.
[0062] The left and right edge lines of the course are internal lines used for the assist function and are not displayed on the screen. Also, the edges of the course displayed on the screen (for example, both ends of road R in Figure 4) do not need to exactly coincide with the left and right edge lines of the course; a slight discrepancy is acceptable.
[0063] (Assist function) In the game of this embodiment, support functions are provided so that even beginners or players unfamiliar with racing games can play comfortably. For example, the player can select to turn the support functions ON or OFF before starting the racing game. The player may also select to turn the support functions ON or OFF during the racing game. Specifically, the support functions include course edge movement correction to prevent the player object 50 from going off course, and steering correction to support the player's steering. Course edge movement correction is a correction performed when the player object 50 approaches the edge of the course. Hereafter, course edge movement correction will be simply referred to as "movement correction".
[0064] (Motion correction) Figure 6 is a diagram illustrating the movement correction in the assist function of this embodiment. In Figure 6, the player object 50 is moving along a course path 60 enclosed by the left edge line 40L and the right edge line 40R of the course. PD indicates the direction of movement of the player object 50. When the support function is set to ON and the position of the player object 50 meets the criteria, movement correction is performed on the player object 50 to prevent it from deviating from the course path. Specifically, if the player object 50 is, for example, close to the left edge line 40L of the course (for example, within a distance Lt from the left edge line 40L of the course), a movement vector TC is applied to the player object 50 in the direction away from the left edge line 40L of the course. For example, a movement vector TC perpendicular to the left edge line 40L of the course and toward the course center line 40 may be applied to the player object 50.
[0065] Furthermore, the amount of the movement vector TC (length of the movement vector TC) changes depending on the distance between the player object 50 and the left edge line of the course 40L. Here, the amount of movement vector TC applied to the player object 50 is called the "movement correction amount". Specifically, the closer the distance between the player object 50 and the left edge line of the course 40L, the larger the movement correction amount becomes. If the distance between the player object 50 and the left edge line of the course 40L is greater than the threshold Lt, the movement correction amount becomes zero.
[0066] This movement correction prevents the player object 50 from exceeding the left edge line 40L of the course. For example, if there is a wall object that acts as an obstacle along the edge of the course, and the support function is set to OFF, the player object 50 will collide with the wall object and decelerate. However, if the support function is set to ON, when the player object 50 approaches the left edge line 40L of the course, a movement vector TC is added to the player object 50 in the direction away from the left edge line 40L of the course. This prevents the player object 50 from colliding with the wall object. Note that if there is no wall object that acts as an obstacle along the edge of the course, and the support function is set to OFF, the player object 50 may move beyond the left edge line 40L of the course. The area beyond the left edge line 40L of the course is set as the dirt area described above, and when the player object 50 exceeds the left edge line 40L of the course, the player object 50 will decelerate. When the support function is set to ON, the above movement correction is applied to the player object 50, so that the player object 50 does not exceed the left edge line 40L and the right edge line 40R of the course, and the player object 50 does not decelerate.
[0067] Thus, when the assist function is set to ON, the movement of the player object 50 is controlled as if there were walls set on the left edge line 40L and the right edge line 40R of the course path to prevent it from going off course. Here, these walls that prevent it from going off course path are sometimes called "assist walls." The left edge line 40L and the right edge line 40R of the course function as assist walls.
[0068] When the player object 50 is close to the course edge, the above-mentioned movement correction is performed, as well as rotation correction, which applies a rotation to the player object 50. For example, the player object 50 is rotated so that its movement direction PD approaches parallel to the course edge. For example, in the example shown in Figure 6, the player object 50 is rotated to the right (clockwise). The closer the player object 50 is to the course edge, the greater the rotation applied. This makes it easier for the player object 50 to move in the direction of the course.
[0069] Thus, when the assist function is set to ON, the player object 50 is corrected for movement away from the edge of the course path and for rotation based on the positional relationship between the player object 50 and the edge of the course path.
[0070] Here, we will explain movement correction when multiple course paths exist. As mentioned above, the course in this embodiment has multiple course paths. For example, the course has a portion where it branches into multiple course paths and a portion where multiple course paths run parallel. Below, we will explain the assist function when the player object 50 passes through an area with multiple course paths.
[0071] Each of the multiple course paths has multiple path points CP, and each path point CP is assigned a width W in the left-right direction. Based on this data, the left edge line and the right edge line of the course are calculated for each of the multiple course paths. Figure 7 is a diagram illustrating the movement correction when two course paths overlap.
[0072] Figure 7 shows course path 60 enclosed by the left edge line 40L and the right edge line 40R, and course path 61 enclosed by the left edge line 41L and the right edge line 41R. As shown in Figure 7, these two course paths have overlapping portions, and the position of the player object 50 is included in each of the two course paths. When the assist function is set to ON, movement vectors are calculated based on the ends of multiple course paths, and the smallest of these movement vectors is applied to the player object 50.
[0073] For example, in Figure 7, the rightmost line of the course 40R is inside the rightmost line of the course 41R, and the distance between the player object 50 and the rightmost line of the course 41R is longer than the distance between the player object 50 and the rightmost line of the course 40R. Therefore, the movement correction amount based on the rightmost line of the course 41R is smaller than the movement correction amount based on the rightmost line of the course 40R. Consequently, the movement vector TC1R based on the leftmost line of the course 41R is applied to the player object 50. Also, the leftmost line of the course 41L is inside the leftmost line of the course 40L, and the distance between the player object 50 and the leftmost line of the course 40L is longer than the distance between the player object 50 and the leftmost line of the course 41L. Therefore, the leftmost line of the course 40L is used for movement correction of the player object 50. Note that in Figure 7, the player object 50 is sufficiently far from the leftmost line of the course 40L, so the movement correction amount based on the leftmost line of the course 40L is zero.
[0074] Thus, in this embodiment, if the position of the player object 50 is included in two course paths, the two course paths are substantially merged, and translation correction is performed based on the ends of the merged course paths. Even if there are three or more course paths that the player object 50 can traverse, a translation vector is calculated based on the ends of each course path, and the smallest translation vector is applied to the player object 50. The same applies to the rotation correction described above.
[0075] Next, we will explain movement correction when multiple course paths of different heights are adjacent. Figure 8 is a diagram illustrating an example of movement correction when the player object 50 is located on the lower course path when two course paths with a difference in height are adjacent. Figure 9 is a diagram illustrating an example of movement correction when the player object 50 is located on the higher course path when two course paths with a difference in height are adjacent. Figure 10 is a diagram illustrating an example of movement correction when the player object 50 performs a jump action when the player object 50 is located on the lower course path when two course paths with a difference in height are adjacent. In Figures 8 to 10, the back of the page is the direction of course progression, and the top of each figure indicates the height direction in the virtual space.
[0076] As shown in Figure 8, a course path set at a high position in the virtual space and a course path set at a low position are adjacent to each other. The lower course path is the course path enclosed by the left edge line 42L and the right edge line 42R. The higher course path is the course path enclosed by the left edge line 43L and the right edge line 43R. As mentioned above, a width in the height direction is also set for the path points, but in Figures 8 to 10, the lines indicating the ends in the height direction are omitted.
[0077] As shown in Figure 8, when the player object 50 is in a low course path and its position is lower than the height of the lower end of a high course path, the left edge line of the course 42L functions as an assist wall. Therefore, when the player object 50 is close to the left edge line of the course 42L, a movement vector TC2L based on the left edge line of the course 42L is applied to the player object 50. The right edge line of the course 42R also functions as an assist wall, and when the player object 50 is close to the right edge line of the course 42R, movement based on the right edge line of the course 42R is applied to the player object 50.
[0078] On the other hand, as shown in Figure 9, when the player object 50 is in a high course path, the left edge line 42L and the right edge line 43R of the course, which act as assist walls, are disabled. That is, of the adjacent high and low course paths, the right edge line 42R of the lower course path and the left edge line 43L of the high course path function as assist walls. Therefore, even when the player object 50 is located near the right edge of the high course path, movement based on the right edge line 43R is not applied to the player object 50. Consequently, the player object 50 can move from a high course path to a low course path even when the assist function is ON. When the player object 50 is located near the left edge of the high course path, movement based on the left edge line 43L is applied to the player object 50.
[0079] As shown in Figure 10, when the player object 50 is in a lower course path and the position of the player object 50 is higher than the height of the lower end of a higher course path, the left edge line 42L and the right edge line 43R of the course, which act as assist walls, are disabled. That is, of the adjacent higher and lower course paths, the right edge line 42R of the lower course path and the left edge line 43L of the higher course path function as assist walls. For example, the player object 50 can perform a jump action based on the player's actions. If the player object 50 performs a jump action while in a lower course path, the position of the player object 50 may be higher than the height of the lower end of a higher course path. In this case, even when the player object 50 is near the left edge of the lower course path, no movement based on the right edge line 43R is applied to the player object 50. Therefore, even when the assist function is ON, the player object 50 can move from a lower course path to a higher course path by, for example, performing a jump action.
[0080] Thus, depending on the state of player object 50 (whether or not it is higher than the adjacent course path), the two course paths may or may not be merged.
[0081] Next, we will explain the movement corrections that depend on the item possession status of the player object 50. Figure 11 is a diagram illustrating an example of movement correction when the player object 50 is not in a state where item X1 is usable and the effect of item X1 is not occurring. Figure 12 is a diagram illustrating an example of movement correction when the player object 50 is in a state where item X1 is usable or is using item X1.
[0082] As shown in Figure 11, a course path 64 is defined, enclosed by the right edge line 44R and the left edge line 44L, and the player object 50 is traveling along this course path 64. The course path 64 is defined, for example, along a road Rc. A dirt area is defined to the right of the right edge line 44R of the course path 64. Also in Figure 11, the assist function is set to ON, and the player object 50 is unable to use item X1. That is, the player object 50 does not possess item X1, or if the player object 50 possesses item X1, it is being held as the second item to be used. Also in Figure 11, the player object 50 is not using item X1. In this state, when the player object 50 approaches the right edge line 44R, a movement vector TC based on the right edge line 44R is applied to the player object 50. Rotation correction is also applied in the same manner as above. Therefore, when the assist function is set to ON, the player object 50 will not deviate from the course path while driving and will not enter the dirt area.
[0083] On the other hand, as shown in Figure 12, if the player object 50 has item X1 available, or is using item X1, the player object 50 can enter the dirt area even if the assist function is set to ON. Specifically, a course path 65 is pre-set on the dirt area. The course path 65 on the dirt area is a course path enclosed by the right edge line 45R and the left edge line 45L (the left edge line 45L is not shown). If the player object 50 has item X1 available, the right edge line 45R corresponding to course path 65 functions as the assist wall on the right, and the left edge line 44L corresponding to course path 64 functions as the assist wall on the left. That is, if the player object 50 has item X1 available, movement correction is performed based on the left edge line 44L of course path 64 and the right edge line 45R of course path 65. In other words, if player object 50 has item X1 available, the right edge line 44R of the course path 64 where player object 50 is located does not function as an assist wall and is disabled. Therefore, if player object 50 has item X1 available, player object 50 can enter the dirt area from course path 64. The same applies if player object 50 is using item X1. As mentioned above, item X1 temporarily increases the speed of player object 50 while using it and prevents deceleration even when entering the dirt area. Therefore, player object 50 can intentionally enter the dirt area to use item X1, for example, to take a shortcut on a curve. The same applies if player object 50 has an item with an effect equivalent to item X1 (an item that disables the deceleration effect in the dirt area) available or is using that item.
[0084] Furthermore, while the player object 50 is located on the course path 65 set on the dirt area, the player object 50 maintains the same state as when item X1 is available or in use. That is, as shown in Figure 12, the rightmost line 44R of the course path 64 remains disabled. Therefore, for example, even if the effect of item X1 wears off after the player object 50 has entered the dirt area using item X1, the player object 50 can continue to travel within the dirt area. In this case, the player object 50 will be slowed down.
[0085] As described above, when the assist function is set to ON, movement correction is performed based on the positional relationship between the player object 50 and one or more ends of the course paths. If there are multiple course paths, the multiple course paths are merged and movement correction is performed depending on the state of the player object 50. Specifically, when the player object 50 is in the first state, movement correction is performed based on the end of one course path and the other end of the course path among the multiple course paths. When the player object 50 is in the second state, movement correction is performed based on both ends of any of the multiple course paths that include the position of the player object 50. The first state may be, for example, a state in which the position of the player object 50 is included in each of the multiple course paths. The first state may also be, for example, a state in which the height of the lower end of a course path that does not include the position of the player object 50 is less than or equal to the height of the position of the player object 50, and the second state may be a state in which the height of the lower end of a course path that does not include the position of the player object 50 is higher than the height of the position of the player object 50. Furthermore, when a high course path and a low course path are adjacent, the first state may be that the player object 50 is located on the high course path, and the second state may be that the player object 50 is located on the low course path. In the state where the player object 50 is located on the low course path, the player object 50 may change from the second state to the first state in response to a jump action. Also, the first state may be that the player object 50 is in a state where a predetermined item is available, or is using a predetermined item.
[0086] Furthermore, the state of the player object 50 may be determined according to the type of course path in which the player object 50's position is located. For example, if the player object 50 is located in a first type of course path (e.g., a mud or soil area), the player object 50 is in the first state, and multiple course paths may be merged. On the other hand, if the player object 50 is located in a second type of course path, the player object 50 is in the second state, and movement correction may be performed based on the endpoints of any of the multiple course paths.
[0087] (Steering correction) Next, steering correction will be explained. In this embodiment, when the assist function is set to ON, in addition to the movement correction and rotation correction based on the course edge line (assist wall) described above, steering correction is performed to support the player's steering operation. First, the control of the movement direction of the player object 50 based on the player's directional input when steering correction is not performed will be explained.
[0088] For example, when the player tilts the left analog stick 31 left or right, a value between "-1" and "1" is obtained as the input amount. "-1" is the value obtained when, for example, the left analog stick 31 is tilted to the maximum extent to the left. "1" is the value obtained when, for example, the left analog stick 31 is tilted to the maximum extent to the right. "0" is the value obtained when the left analog stick 31 is not tilted left or right (neutral). A value between "-1" and "1" is obtained depending on the amount of tilt when the left analog stick 31 is tilted left or right. For example, if the left analog stick 31 is tilted to the left by half of the maximum value, a value of "-0.5" is obtained as the input amount.
[0089] If steering correction is not performed, the direction of movement of the player object 50 is controlled based on the input amount obtained in response to the left-right tilt of the left analog stick 31. For example, if an input of "-1" is continued for about 1 second, the direction of movement of the player object 50 is controlled to be approximately 45 degrees to the left, with the front being 0 degrees. Also, for example, if an input of "1" is continued for about 1 second, the direction of movement of the player object 50 is controlled to be approximately 45 degrees to the right.
[0090] When the assist function is set to ON, and the correction conditions are met, the input amount obtained according to the left-right tilt of the left analog stick 31 is corrected. Figure 13 is a diagram illustrating an example of steering correction when the player object 50 is traveling along a single course path.
[0091] As shown in Figure 13, assume that player object 50 is traveling along a course path enclosed by the right edge line 40R and the left edge line 40L. The position of player object 50 is "Q0", and the direction of movement of player object 50 is "PD". In this case, the positions Pa and Pb of both ends of the course path at position Q1, which is a certain distance from player object 50's position Q0 in the direction of the course path, can be determined. For example, the position of player object 50 on the course centerline 40 (Q0') can be determined based on the ratio of the distance between the path point that player object 50 just passed, player object 50's position Q0, and the next path point. Point Q1 is calculated by traveling a certain distance along the course centerline 40 from player object 50's position Q0' on the course centerline 40. Next, the positions of both ends of Q1 in the width direction are calculated as Pa and Pb. Specifically, Pa is calculated as the intersection point between the course centerline 40 passing through position Q1 and the course right edge line 40R. Also, Pb is calculated as the intersection point between the course centerline 40 passing through position Q1 and the course left edge line 40L. Then, it is determined whether the movement direction PD of the player object 50 falls between the line La (first direction) going from Q0 to Pa and the line Lb (second direction) going from Q0 to Pb. The area between these two lines, La and Lb, is referred to here as the "appropriate range AR". If the movement direction PD falls within the appropriate range AR, no steering correction is performed.
[0092] As shown in Figure 13, if the direction of movement PD is not within the appropriate range AR, steering correction is performed to bring the direction of movement PD closer to the direction within the appropriate range AR. Specifically, a steering correction value is calculated, and steering correction is performed by applying a correction based on the steering correction value to the input amount obtained according to the tilt of the left analog stick 31 in the left and right directions.
[0093] More specifically, steering correction is performed so that the direction of movement PD approaches the direction of movement PD closer to the direction of movement PD before correction, between the direction of La and the direction of Lb in the appropriate range AR. For example, in the example shown in Figure 13, the direction of movement PD before correction is pointed to the right of the straight line La in the appropriate range AR. Therefore, a steering correction value is calculated so that the direction of movement PD approaches the direction of the straight line La. A negative value (-1 to 0) indicating a leftward direction is calculated as the steering correction value. The larger the angle between the direction of movement PD and La, the larger the absolute value of the steering correction value calculated. Conversely, if the direction of movement PD is pointed to the left of the straight line Lb in the appropriate range AR, a positive value (0 to 1) indicating a rightward direction is calculated as the steering correction value. The correction method used is such that the corrected input amount is determined after considering both the acquired input amount and the steering correction value. As an example, if the sign of the acquired input amount and the steering correction value are the same, the corrected input amount can be the one with the larger absolute value between the acquired input amount and the steering correction value. On the other hand, if the acquired input amount and the handle correction value have different signs, the corrected input amount can be obtained by linearly interpolating a range from the handle correction value to the maximum input amount in the opposite direction (e.g., -1.0 or 1.0) at a ratio corresponding to the absolute value of the acquired input amount. Such a correction makes it easier for the movement direction PD to approach the direction of the straight line La within a range that is less unnatural than the original input. As another example of correction, the handle correction amount can be calculated as the difference to which the correction is applied, and this handle correction amount can be added to the acquired input amount.
[0094] In the above, the position Q0' of the player object 50 on the course centerline 40 was calculated, and the position Q1 on the course centerline 40 after traveling a certain distance from position Q0' was calculated. In other embodiments, the position Q0' on the course centerline 40 is not calculated, and the position on the course path after traveling a certain distance from the position Q0 of the player object 50 is calculated, and the ends of that position may be calculated as Pa and Pb.
[0095] Next, we will explain steering correction in sections where the course path branches into multiple paths. Figure 14 is a diagram illustrating steering correction when the course path branches into multiple paths.
[0096] As shown in Figure 14, the player object 50 is assumed to be traveling just before the path point CPD, which is a branching point. The position of the player object 50 is "Q0", and the direction of movement of the player object 50 is "PD". The course path branches into a left course path and a right course path at the path point CPD. The left course path is the course path enclosed by the right edge line 40R and the left edge line 40L, and the right course path is the course path enclosed by the right edge line 41R and the left edge line 41L. Line 40 represents the course centerline of the left course path, and line 41 represents the course centerline of the right course path.
[0097] In this case, the positions P1a and P1b of the ends of the left course path at position Q1, which is a certain distance from position Q0 of the player object 50 in the direction of the left course path, are determined. Also, the positions P2a and P2b of the ends of the right course path at position Q2, which is a certain distance from position Q0 in the direction of the right course path, are determined. P2a is a point on the right end line 41R of the right course path, and P1b is a point on the left end line 40L of the left course path. Next, a straight line La (first direction) from Q0 to P2a and a straight line Lb (second direction) from Q0 to P1b are calculated. Then, it is determined whether the movement direction PD of the player object 50 falls within a certain appropriate range AR between the straight lines La and Lb. In the example shown in Figure 14, the movement direction PD does not fall within the appropriate range AR, so steering correction is performed. The method of steering correction is the same as described above.
[0098] In this way, the input amount obtained in accordance with the left-right tilt of the left analog stick 31 is corrected, making it easier for the player object 50 to face the direction of travel on the course path. Furthermore, instead of directly changing the movement direction PD of the player object 50, the input amount is corrected, so the movement direction PD of the player object 50 can be adjusted to the appropriate direction while reflecting the player's steering input.
[0099] Furthermore, if the angle between the movement direction PD of the player object 50 and the direction of travel of the course path exceeds a certain value, a forced correction is performed so that the movement direction PD faces the direction of travel. For example, if the movement direction PD of the player object 50 is in the opposite direction to the direction of travel, a forced correction is performed. Figure 15 shows the forced correction when the player object 50 is moving in the wrong direction.
[0100] As shown in Figure 15, if the movement direction PD of the player object 50 is in the opposite direction to the direction of travel (i.e., the angle between the movement direction PD and the direction of travel is greater than 90 degrees), a forced correction is performed so that the movement direction PD faces the direction of travel. A forced correction is performed so that the angle between the movement direction PD and the direction of travel becomes smaller. For example, the input amount may be forcibly overwritten to the maximum input amount to the right, which is "1", or to the maximum input amount to the left, which is "-1". Alternatively, the movement direction PD of the player object 50 may be forcibly changed.
[0101] This forced correction prevents the player object 50 from moving in the wrong direction, which cannot be corrected by the movement correction or steering correction mentioned above.
[0102] As described above, when the assist function is set to ON, the first position and the second position are defined as the two ends of the player object 50's current position (Q0) and the position on the course path reached by a predetermined distance along the course path from the current position. If the direction of movement of the player object does not fall between the first direction (direction La) leading from the current position to the first position and the second direction (direction Lb) leading to the second position, the input amount is corrected so that the direction of movement approaches a third direction that is at least between the first and second directions. The third direction is the direction of the first and second directions that is closer to the direction of movement before correction. This allows the input amount to be corrected so that the player object 50 moves towards the position reached by a predetermined distance along the course path, and the direction of movement of the player object 50 can be appropriately corrected even when the course is wide.
[0103] For example, when the player object 50 approaches the edge of the course to a certain extent, it is conceivable to correct the input amount obtained in accordance with the left-right tilt of the left analog stick 31. In this case, correction is not performed until the player object 50 approaches the edge of the course to a certain extent, so for example, on a wide course, the player object 50 may take a roundabout route. However, in this embodiment, steering correction is performed if the direction of movement of the player object 50 does not fall between the first direction and the second direction. Therefore, correction can be performed before the player object 50 approaches the edge of the course, and correction can be performed appropriately without taking a roundabout route even on a wide course.
[0104] Furthermore, if the position on the course path reached by traveling a predetermined distance along the course path from the player object 50's current position is at a point where multiple course paths branch off, the first and second directions are calculated by defining the end of one of the course paths as the first position and the other end of the other course path as the second position. This allows for appropriate correction of input values even at points where multiple course paths branch off. When the player object 50 is traveling just before a branching point, it can be guided into a range that includes multiple course paths, rather than being guided into any one of the multiple course paths.
[0105] Furthermore, if the direction of movement of the player object 50 deviates from the direction of travel of the course path by a predetermined standard, the input amount is corrected so that the direction of movement of the player object 50 approaches the direction of travel of the course path. This prevents, for example, the player object 50 from moving in the wrong direction.
[0106] (Details of game processing) Next, we will explain the details of the game processing in game system 1.
[0107] Figure 16 shows an example of various data stored in the game system 1. As shown in Figure 16, the memory of the game system 1 (for example, DRAM 27, a storage medium installed in slot 29, or flash memory 26) stores the game program, operation data, player object data, field data, course data, course edge data, and steering correction data.
[0108] The game program is a program for executing the game processing of this embodiment. The game program is pre-stored in a storage medium or flash memory 26 installed in slot 29 and is loaded into DRAM 27 when the game is executed.
[0109] Operation data is, for example, data corresponding to player operations transmitted from controllers 3 and 4. Operation data includes, for example, data indicating the amount of input corresponding to the left or right tilt of the left analog stick 31, and data indicating whether or not each button was pressed. Operation data is transmitted from the controller to the main unit 2 at predetermined time intervals (for example, every 1 / 200 second).
[0110] Player object data is data relating to the player object 50 controlled by the player. The player object data includes object data representing the shape and appearance of the player object 50, position data representing the position of the player object 50, and velocity data representing the speed and direction of movement (orientation) of the player object 50. In addition, the player object data includes owned item data indicating information about the items owned by the player object 50, and assist flag data indicating whether the assist function is ON or OFF.
[0111] Field data represents the fields in a virtual space and includes data representing terrain. Field data includes data representing terrain type, shape, appearance, etc. Fields are configured with objects representing roads, objects representing dirt areas such as grasslands, lawns, sandy areas, soil, and mud, and objects representing walls, buildings, etc.
[0112] Course data is pre-stored data that defines the course from the start point to the finish point where the race game takes place. The course in the race game of this embodiment includes multiple course paths. The course data includes course path data representing each of the multiple course paths. The course path data includes multiple path points CP. Each path point CP includes a horizontal width, a vertical width, and an order, etc. Based on the multiple path points and the horizontal width of each path point, both ends of the course path are determined, and the course path is defined. In other embodiments, the course path data may include data indicating both ends of the course path, or data indicating one end of the course path and its width. Alternatively, the course path data may include data representing the center line and width of the course path.
[0113] The course edge data represents the left and right edges of the course, and also represents the assist walls. The left and right edges of the course are represented by curves (curved surfaces). The course edge data is generated at the start of the race game or during the race game based on the course data. Alternatively, the course edge data may be generated in advance based on the course data and stored in memory.
[0114] The handle correction data is data that indicates the handle correction value mentioned above. The handle correction value can take values in the range of -1 to 1, for example. If the handle correction value is negative, handle correction is performed to make it easier to direct the input quantity to the left, and if the handle correction value is positive, handle correction is performed to make it easier to direct the input quantity to the right.
[0115] In addition to this data, various other types of data are stored in memory. For example, data about the target object (such as its appearance, position, speed, and item ownership status) is stored.
[0116] Next, we will explain the game processing performed in game system 1. Figure 17 is a flowchart showing an example of game processing related to a racing game. Game processing begins when the player gives the instruction to start the racing game. Note that Figure 17 mainly explains the processing related to the assist function described above, and other processing is omitted from the explanation.
[0117] Furthermore, in this embodiment, the processor 21 of the main unit 2 executes the game program using memory, thereby executing the processing of each step shown in Figures 17 to 19. However, in other embodiments, some of the processing of each step may be executed by a processor other than the processor 21 (for example, a dedicated circuit). Also, if the game system 1 can communicate with other information processing devices (for example, a server), some of the processing of each step may be executed by the other information processing device. Moreover, the processing of each step is merely an example, and the processing order of each step may be changed, or other processing may be executed in addition to (or instead of) the processing of each step, as long as similar results can be obtained.
[0118] As shown in Figure 17, the processor 21 first performs initial processing (step S11). Here, the processor 21 sets one of several courses based on the player's selection and places the player object 50 and several opponent objects at the starting point of the set course. The processor 21 also sets the assist function ON / OFF based on the player's operation. For example, the assist function is set to OFF by default, and is set to ON based on the player's operation during the initial processing. When the assist function is set to ON, a value indicating ON is stored in the assist flag data. Once the initial processing is complete, the processor 21 starts the racing game and executes the next steps S12 and beyond.
[0119] When the racing game starts, the processor 21 acquires operation data from controllers 3 and 4 (step S12). Thereafter, the processor 21 repeatedly executes steps S12 to S16 at predetermined frame time intervals (for example, 1 / 60 second intervals). While steps S12 to S16 are being repeatedly executed, the racing game may be interrupted and the assist function may be switched ON / OFF based on the player's input.
[0120] Next, the processor 21 performs player object control processing (step S13). Here, the processor 21 updates the position, speed, direction of movement, item holding status, etc. of the player object 50 based on the operation data. The processor 21 also causes the player object 50 to perform a jump action or use an item based on the operation data. If the assist function is set to ON, the processor 21 also performs assist processing. The details of the player object control processing are described below.
[0121] (Player object control processing) Figure 18 is a flowchart showing an example of the player object control process in step S13.
[0122] As shown in Figure 18, the processor 21 determines whether the assist function is set to ON based on the assist flag data (step S21). For example, in the above initial processing, the assist function is set to ON based on the player's operation before the start of the racing game. Alternatively, after the racing game has started, the racing game may be interrupted based on the player's operation, and the assist function may be switched ON / OFF.
[0123] If the assist function is not set to ON (step S21: NO), the processor updates the position data and velocity data of the player object 50 without performing assist processing (step S22). Here, the processor 21 updates the velocity of the player object 50 depending on whether or not acceleration is being performed, updates the direction of movement of the player object 50 depending on the amount of input corresponding to the tilt of the left analog stick 31 in the left or right direction, and updates the position of the player object 50 depending on the velocity and direction of movement.
[0124] On the other hand, if the assist function is set to ON (step S21: YES), the processor 21 acquires course edge information around the player object 50 (step S23). Here, as course edge information, curves indicating the course edges around the player object 50 (course right edge line, course left edge line) are acquired. Specifically, in step S23, the course right edge line and course left edge line around the player object 50 are calculated based on course data (data indicating multiple path points CP and the width at each path point). The calculated data indicating the course right edge line and course left edge line is stored in memory as course edge data. Alternatively, data regarding the curves indicating the course edges calculated based on the course data may be stored in memory beforehand, and in step S23, the course edge information may be acquired by reading this data stored in memory. The calculation method for the curves indicating the course edges will be explained below.
[0125] Figure 20 illustrates how to calculate the right and left endpoints of a single course path.
[0126] The right and left endpoints of the course are determined by interpolating the endpoints of each path point CP. For example, Bézier interpolation is used as the interpolation method. CP0 to CP3, shown in Figure 20, are path points, and the direction from CP0 to CP3 is the direction of the course path. P0 to P3 are the left endpoints of the course for each of the path points CP0 to CP3. Figure 20 shows the method for calculating the curve 40L connecting P1 and P2.
[0127] As shown in Figure 20, when calculating the curve 40L connecting P1 and P2, the endpoints P0 and P3 before and after the curve are used. Specifically, a tangent line T parallel to the line connecting the endpoints before and after a given endpoint is calculated. For example, a line connecting P0 and P2 is calculated, and a tangent line T1 parallel to this line and with P1 as the point of tangency is calculated. Similarly, a line connecting P1 and P3 is calculated, and a tangent line T2 parallel to this line and with P2 as the point of tangency is calculated. Then, the Bézier curve is calculated based on the calculated tangent lines T1 and T2.
[0128] The 40R curve on the right is calculated using the same method. Specifically, for the rightmost endpoint (the rightmost point of the course), a tangent line parallel to the straight line connecting the endpoints before and after it is calculated, and the 40R curve is then calculated based on these two calculated tangent lines.
[0129] Figure 21 is a diagram illustrating a method for calculating curves at points where multiple course paths branch off.
[0130] As shown in Figure 21, the path points CP0 to CP2 form a single course path, which branches into two course paths at path point CP2. Figure 21 shows how to calculate the curve 41L connecting the leftmost point P2 of the branching point CP2 and the leftmost point P1 of the immediately preceding path point CP1. Specifically, for the leftmost point P1 of path point CP1, which is not a branching point, a tangent line T1 parallel to the line connecting the leftmost points P0 and P2 before and after it is calculated, as described above. On the other hand, for the leftmost point P2 of the branching point CP2, a line connecting P2 and the immediately preceding P1 is calculated, and a tangent line T2 parallel to that line is calculated. Then, a Bézier curve is calculated based on the calculated tangent lines T1 and T2. The curve 41R on the right is calculated in the same way.
[0131] Thus, at a branching point CP2, the Bézier curve is calculated based on a tangent line parallel to the line connecting the endpoint P2 of the branching point itself and the endpoint P1 immediately preceding it. On the other hand, at path points that are not branching points, the Bézier curve is calculated based on a tangent line parallel to the line connecting the endpoints before and after that endpoint. This allows for smoothing of the course endpoints at branching points.
[0132] Figure 22 shows an example of how the curve at the branching point was calculated using the method shown in Figure 21. Figure 23 shows an example of how the curve at the branching point was calculated using the method shown in Figure 20.
[0133] As shown in Figure 22, in the method shown in Figure 21, that is, the method using a tangent line parallel to the line connecting the endpoint of the branching point itself and the endpoint immediately preceding it, the curve connects smoothly at the branching point. In contrast, as shown in Figure 23, in the method shown in Figure 20, that is, the method using a tangent line parallel to the line connecting the endpoints before and after the endpoint of the branching point, the curve may change abruptly at the branching point. For this reason, in this embodiment, at the branching point, the curve indicating the course edge line is calculated using the endpoint of the branching point and the endpoint immediately preceding it.
[0134] Returning to Figure 18, after the processing in step S23, the processor 21 performs the assist processing (step S24). The details of the assist processing will be explained below.
[0135] (Assist processing) Figure 19 is a flowchart showing an example of the assist process in step S24.
[0136] As shown in Figure 19, the processor 21 enables or disables the course edge lines of adjacent course paths depending on the situation (step S31). Here, the processor 21 determines whether or not to disable the course edge lines (assist walls) based on the lower end of the course path adjacent to the course path where the player object 50 is located and the height position of the player object 50, as explained using Figures 8 to 10. For example, as shown in Figures 9 and 10, if the lower end of the course path adjacent to the course path where the player object 50 is located is lower than the height of the player object 50, the processor 21 disables the course edge lines (43R and 42L) between the adjacent course paths.
[0137] Next, the processor 21 enables or disables the course edge line depending on the state of the item (step S32). For example, as explained with reference to Figure 12, if the player object 50 has made a specific item X1 available for use among several types of items, the processor 21 disables the course right edge line 44R. Also, if the player object 50 is using the specific item X1, the course right edge line 44R is disabled. On the other hand, as explained with reference to Figure 11, if the player object 50 does not have item X1 available for use and is not using item X1, the processor 21 enables the course right edge line 44R.
[0138] Next, the processor 21 calculates a movement vector based on all the course edge lines, based on the course edge information obtained in step S23 (step S33). The further the player object 50 moves from the course edge line, the smaller the movement correction amount becomes, and beyond a certain distance, the movement correction amount becomes zero. The direction of the movement vector is either away from the course edge line, away from the course edge line, or along the course edge line.
[0139] Next, the processor 21 calculates the movement vector and rotation correction to be applied to the player object 50 based on the results of steps S31 to S33 (step S34). If there are multiple course paths, the course edge that minimizes the movement correction amount is identified, and the movement vector based on the identified course edge is calculated. In addition, the rotation correction based on the identified course edge is calculated.
[0140] Next, the processor 21 determines whether the direction of movement of the player object 50 is within the appropriate range (step S35). Here, as explained using Figures 13 and 14, it is determined whether the direction of movement of the player object 50 is within the appropriate range defined by the lines La and Lb.
[0141] If the direction of movement of the player object 50 is within the appropriate range (step S35: YES), the processor 21 calculates the direction of movement of the player object 50 based on the operation data (step S36). Specifically, the processor 21 calculates the direction of movement of the player object 50 based on the amount of input corresponding to the tilt of the left analog stick 31 in the left and right directions.
[0142] On the other hand, if the direction of movement of the player object 50 is outside the appropriate range (step S35: NO), the processor 21 determines whether the player object 50 is moving in the wrong direction (step S37). For example, the processor 21 determines whether the angle between the direction of movement of the player object 50 and the direction of travel of the course exceeds 90 degrees.
[0143] If the player object 50 is not moving in reverse (step S37: NO), the processor 21 corrects the input amount corresponding to the left-right tilt of the left analog stick 31 (step S38). Specifically, the processor 21 calculates a steering correction value based on the direction of movement of the player object 50 and the appropriate range, so that the direction of movement falls within the appropriate range. The larger the difference between the direction of movement of the player object 50 and the appropriate range, the larger the steering correction value calculated in absolute value. For example, in the example shown in Figure 13, the steering correction value is calculated so that the direction of movement PD approaches the direction of the straight line La. Then, the processor 21 calculates the corrected input amount based on the input amount corresponding to the left-right tilt of the left analog stick 31 and the steering correction value.
[0144] Next, the processor 21 calculates the direction of movement of the player object 50 based on the corrected input amount (step S39).
[0145] On the other hand, if the player object 50 is moving in the wrong direction (step S37: YES), the processor 21 overwrites the acquired input amount and calculates the direction of movement of the player object 50 (step S40). For example, as shown in Figure 15, if the direction of movement of the player object 50 is deviated by more than 90 degrees to the right of the direction of travel, the processor 21 corrects the input amount so that the direction of movement faces the direction of travel (to the left in Figure 15). Regardless of the value of the input amount corresponding to the tilt of the left analog stick 31 in the left or right direction, the input amount is forcibly corrected so that the direction of movement faces the direction of travel. Then, the processor 21 calculates the direction of movement of the player object 50 based on the corrected input amount. Alternatively, the direction of movement of the player object 50 may be forcibly corrected.
[0146] If the process in step S39 or step S40 is performed, the processor 21 updates the position data and velocity data (velocity and direction of movement) of the player object 50 (step S41). Specifically, the processor 21 updates the direction of movement of the player object 50 based on the rotation correction calculated in step S34 and the direction of movement calculated in step S36, step S39, or step S40, and stores it in the velocity data. The processor 21 also updates the velocity of the player object 50 based on information such as whether or not the accelerator is being operated and whether or not it is traveling in a dirt area, and stores it in the velocity data. Furthermore, the processor 21 updates the position of the player object 50 based on the position of the player object 50, the velocity data (velocity and direction of movement), and the movement vector calculated in step S34. Specifically, the processor 21 updates the current position of the player object 50 based on the velocity data, and then adds the movement vector calculated in step S34 to the updated position. This corrects the position of the player object 50.
[0147] If the process in step S41 is completed, the processor 21 terminates the process in Figure 19 and returns to the process in Figure 18.
[0148] Returning to Figure 18, the processor 21 performs item-related processing after the processing in step S23 or after the processing in step S22 (step S25). Here, the processor 21 determines whether the player object 50 has come into contact with an item acquisition object, and if so, randomly selects one of several types of items and has the player object 50 hold the selected item. The processor 21 also determines whether the player has given an instruction to use the item if the player object 50 is in a state where the item can be used, and if so, has the player object 50 use the item. When the player object 50 uses the item, an effect corresponding to the type of item occurs for a predetermined time.
[0149] Next, the processor 21 performs a jump operation (step S26). Here, the processor 21 determines whether or not an instruction for a jump action has been given based on the operation data, and if such an instruction has been given, it causes the player object 50 to perform the jump action.
[0150] If the processor 21 has completed the process in step S26, it terminates the process shown in Figure 18 and returns to the process shown in Figure 17.
[0151] Returning to Figure 17, after the processing in step S13, the processor 21 performs the opponent object control processing (step S14). Here, the processor 21 performs processing to control the movement of the opponent object 51, similar to the player object control processing. The opponent object 51 may be operated by another player or automatically controlled by the processor 21. If the opponent object 51 is operated by another player, the processor 21 updates the position, speed, item holding status, etc. of the opponent object 51 based on data obtained from a controller other than the controller used to operate the player object 50, or data obtained from another main unit 2. The processor 21 also makes the opponent object 51 use an item or perform a jump action based on the acquired data.
[0152] Next, the processor 21 performs drawing processing (step S15). In the drawing processing, the processor 21 generates a game image based on a virtual camera set up behind the player object 50 and outputs the generated game image to a display device (display 12 or an external display device).
[0153] Next, the processor 21 determines whether the player object 50 and the opponent object have reached the goal (step S16). If the player object 50 and the opponent object have reached the goal, the processor 21 displays the result of the race game and terminates the process shown in Figure 17. On the other hand, if the player object 50 and the opponent object have not reached the goal (step S16: NO), the processor 21 returns to step S12.
[0154] As described above, in this embodiment, when the assist function is set to ON, movement correction is performed to correct the position of the player object 50 based on the positional relationship between the player object 50 and the edge of the course (steps S31-S34, S41). Specifically, if the player object 50 is close to the edge of the course, movement is applied to the player object 50 in the direction away from the edge of the course. This prevents the player object 50 from going off course. In addition, in this embodiment, it is determined whether the direction of movement of the player object 50 is within an appropriate range (step S35), and if the direction of movement is not within an appropriate range, steering correction is performed (step S38). This corrects the player object 50 so that it moves toward a position along the course path.
[0155] (modified version) Although this embodiment has been described above, the above embodiment is merely an example, and modifications such as the following may be made.
[0156] For example, in the above embodiment, the movement correction was added to move the player object 50 away from the edge of the course. In other embodiments, the movement correction may be a correction to prevent the player object 50 from approaching the edge of the course. For example, the movement correction may be a correction to move the player object 50 along the edge of the course.
[0157] Furthermore, in the above embodiment, the movement of the player object 50 was corrected by updating the position of the player object 50 according to its velocity and direction of movement, and adding a movement vector to the updated position. In other embodiments, the movement of the player object 50 may be corrected by correcting the direction of movement of the player object 50.
[0158] Furthermore, in the above embodiment, course data for defining a course is provided in advance, which includes path points and data indicating the width at those path points, and the ends of the course are defined based on this course data. In other embodiments, course data may be provided in advance, which includes data indicating both ends of the course, or data indicating one end of the course and its width. Alternatively, course data may be provided in advance, which includes data indicating the center line and width of the course. Alternatively, course data may be provided in advance, which includes data indicating the end line of the course. In other words, any data that can define the ends of a course may be stored in advance.
[0159] Furthermore, in the above embodiment, when the player object 50 is in the first state, multiple course paths are merged, and movement correction is performed based on the one end of one course path and the other end of the other course path among the multiple course paths. Furthermore, in the above embodiment, when the player object 50 is in the second state, movement correction is performed based on both ends of any of the multiple course paths that include the position of the player object 50 (Figure 8). In the above embodiment, the first state is, for example, when the player object 50 is located on multiple overlapping course paths (Figure 7), or when the higher course path and the lower course path are adjacent and the player object 50 is located on the higher course path (Figure 9). Furthermore, in the above embodiment, the first state is, for example, when the higher course path and the lower course path are adjacent and the height of the lower end of a course path that does not include the position of the player object is less than or equal to the height of the position of the player object (Figures 9 and 10). Furthermore, in the above embodiment, the first state is when the player object 50 is using or has item X1 available. In other embodiments, the first state may be when the position of the player object 50 is included in a first type of course path, and the second state may be when the position of the player object 50 is included in a second type of course path. That is, in other embodiments, the player object 50 may be in the first state or the second state depending on the type of course path in which the position of the player object 50 is included.
[0160] Furthermore, in the above embodiment, movement correction and rotation correction were performed based on the right and left edge lines of the course. In other embodiments, rotation correction may not be performed, and only movement correction may be performed. In this case, the above steering correction may be performed.
[0161] Furthermore, in the above embodiment, the right and left edges of the course are defined by curves (surfaces) calculated by drawing tangents based on a discrete set of control points (the left and right edges of the course). The method of calculating the curve described above is merely an example, and the curve may be calculated by other methods. The right and left edges of the course may be defined by any curve (surface) specified by a discrete set of control points. In other embodiments, the right and left edges of the course may also be lines connecting each control point with straight lines.
[0162] Furthermore, in the above embodiment, if the direction of movement of the player object 50 does not fall within a certain appropriate range between the first direction (direction of the straight line La) and the second direction (direction of the straight line Lb), a handle correction value is calculated so that the direction of movement approaches the first or second direction. In other embodiments, if the direction of movement of the player object 50 does not fall within an appropriate range, a handle correction value may be calculated so that the direction of movement approaches a third direction that is included between the first and second directions. The third direction may be the direction closest to the direction of movement before correction among the first and second directions.
[0163] Furthermore, in the above embodiment, if the direction of movement of the player object 50 is opposite to the direction of course progression, the input amount is corrected so that the direction of movement faces the direction of progression. In other embodiments, the direction of movement of the player object 50 may be corrected so that the direction of movement faces the direction of progression.
[0164] Furthermore, in the above embodiment, movement correction and steering correction of the player object 50 are performed in a racing game. In other embodiments, the above movement correction and steering correction may be performed in any game in which the player object 50 is moved, not limited to racing games.
[0165] Furthermore, the above-described process may be performed not only in game system 1, but also in any other information processing device or information processing system. The information processing system may consist of multiple devices, and these multiple devices may be connected via a network (for example, a LAN or the Internet).
[0166] Furthermore, the configurations of the above embodiments and their modified forms can be combined in any way, as long as they do not contradict each other. Moreover, the above is merely an example of the present invention, and various other improvements and modifications may be made. [Explanation of symbols]
[0167] 1. Game System 21 processors 40 Course Centerline 40L leftmost line 40R Right edge of the course 50 Player Objects 51 Opponent Object
Claims
1. On the computer, In a virtual space field where a course path is defined along the course, indicating at least both ends of the course, and where multiple such course paths are set, the player object is controlled to move based on the operation input. Course edge movement correction is performed to correct the movement of the player object in the movement control based on the positional relationship between any end of the course path and the player object. When the player object is in the first state, The process is carried out based on one end of one of the multiple course paths and the other end of the other course path. When the aforementioned player object is in the second state, A game program that performs actions based on the ends of any of the course paths among a plurality of course paths that include the position of the player object.
2. The game program according to claim 1, wherein the course edge movement correction is a correction that applies movement to the player object in a direction that does not approach the edge when the distance between the edge and the player object is short.
3. The game program according to claim 2, wherein the course edge movement correction is a correction that applies the movement with greater intensity the closer the distance between the edge and the player object is.
4. The aforementioned course path further indicates the height of the course, The game program according to claim 1, wherein the player object enters the first state when, among a plurality of course paths, the height of the lower end of a course path that does not include the position of the player object is less than or equal to the height of the position of the player object.
5. The aforementioned course path further indicates the height of the course, Among the multiple course paths, including the one with the higher height and the one with the lower height, When the player object is located within the higher course path, the player object enters the first state. The game program according to claim 1, wherein the player object enters the second state when the player object is located within the lower course path.
6. The aforementioned computer further: Based on the input, the player object is made to perform a jump action. The game program according to claim 5, wherein, in a state in which the player object is located within the lower course path, the player object is moved from the second state to the first state in response to the jump action.
7. To the aforementioned computer, The game program according to claim 1, which causes the player object to be set to either the first state or the second state, depending on the type of course path that includes the position of the player object.
8. To the aforementioned computer, The game program according to claim 1, wherein the player object is placed in the first state when the position of the player object is included in each of the multiple course paths.
9. The field includes a deceleration field that limits the speed of the moving player object, The aforementioned computer further: In response to instructions based on the operation input, an item is used that allows the player object to be moved without being affected by the deceleration field for a predetermined period of time. If, in the location where one of the plurality of course paths includes a course path defined on the deceleration field, the position of the player object is included in a course path that is not defined on the deceleration field, When the aforementioned item is in use or available, the player object is placed in the first state. The game program according to claim 1, wherein if the aforementioned item is unusable, the player object is placed in the second state.
10. To the aforementioned computer, The game program according to claim 9, wherein the player object is placed in the first state when the position of the player object is included in the course path defined on the deceleration field.
11. The aforementioned movement control includes at least control that changes the direction of movement according to the input amount, The aforementioned computer further: A game program according to any one of claims 1 to 10, wherein the position of the player object while it is moving and the position on the course path reached by advancing a predetermined distance along the course path from the position while it is moving are defined as the first position and the second position, and if the direction of movement of the player object is not included between the first direction toward the first position from the position while it is moving and the second direction toward the second position, the program performs input amount correction to correct the input amount so that the direction of movement approaches a third direction which is included at least between the first direction and the second direction.
12. The game program according to any one of claims 1 to 10, wherein the ends of the course path are defined based on a curve defined by a plurality of discrete control points.
13. An information processing system comprising a processor, wherein the processor is In a field within a virtual space where a course path is defined along the course, indicating at least both ends of the course, and where multiple such course paths are set, the player object is controlled to move based on the operation input. Course edge movement correction is performed to correct the movement of the player object in the movement control based on the positional relationship between any end of the course path and the player object. When the player object is in the first state, This is done based on one end of one of the multiple course paths and the other end of the other course path. When the aforementioned player object is in the second state, An information processing system that performs operations based on the ends of any of the course paths among a plurality of course paths that include the positions of the player object.
14. The information processing system according to claim 13, wherein the course edge movement correction is a correction that applies movement to the player object in a direction that does not approach the edge when the distance between the edge and the player object is short.
15. The information processing system according to claim 14, wherein the course edge movement correction is a correction that applies the movement with a stronger intensity the closer the distance between the edge and the player object is.
16. The aforementioned course path further indicates the height of the course, The information processing system according to claim 13, wherein the player object enters the first state when, among a plurality of course paths, the height of the lower end of a course path that does not include the position of the player object is less than or equal to the height of the position of the player object.
17. The aforementioned course path further indicates the height of the course, Among the multiple course paths, including the one with the higher height and the one with the lower height, When the player object is located within the higher course path, the player object enters the first state. The information processing system according to claim 13, wherein the player object enters the second state when the player object is located within the lower course path.
18. The aforementioned processor further, Based on the input, the player object is made to perform a jump action. The information processing system according to claim 17, wherein, when the player object is located within the lower course path, the system causes the player object to change from the second state to the first state in response to the jump action.
19. The aforementioned processor, The information processing system according to claim 13, which causes the player object to be in either the first state or the second state depending on the type of course path that includes the position of the player object.
20. The aforementioned processor, The information processing system according to claim 13, wherein the player object is placed in the first state when the position of the player object is included in each of the multiple course paths.
21. The field includes a deceleration field that limits the speed of the moving player object, The aforementioned processor further, In response to instructions based on the operation input, an item is used that allows the player object to be moved without being affected by the deceleration field for a predetermined period of time. If, in the location where one of the plurality of course paths includes a course path defined on the deceleration field, the position of the player object is included in a course path that is not defined on the deceleration field, When the aforementioned item is in use or available, the player object is set to the first state. The information processing system according to claim 13, wherein the player object is placed in the second state when the aforementioned item is unusable.
22. The aforementioned processor, The information processing system according to claim 21, wherein the player object is placed in the first state when the position of the player object is included in the course path defined on the deceleration field.
23. The aforementioned movement control includes at least control that changes the direction of movement according to the input amount, The aforementioned processor further, An information processing system according to any one of claims 13 to 22, wherein the position of the player object while it is moving and the position on the course path obtained by advancing a predetermined distance along the course path from the position while it is moving are defined as the first position and the second position, and if the direction of movement of the player object is not included between the first direction toward the first position from the position while it is moving and the second direction toward the second position, input amount correction is performed to correct the input amount so that the direction of movement approaches a third direction which is included at least between the first direction and the second direction.
24. The information processing system according to any one of claims 13 to 22, wherein the ends of the course path are defined based on a curve defined by a plurality of discrete control points.
25. An information processing method performed in an information processing system, In a virtual space field where a course path is defined along the course, indicating at least both ends of the course, and where multiple such course paths are set, the player object is controlled to move based on an operation input. Course edge movement correction is performed to correct the movement of the player object in the movement control based on the positional relationship between any end of the course path and the player object. When the player object is in the first state, This is done based on the one end of one of the multiple course paths and the other end of the other course path, When the aforementioned player object is in the second state, An information processing method comprising performing the operation based on the ends of any of the course paths among a plurality of course paths that include the position of the player object.
26. The information processing method according to claim 25, wherein the course edge movement correction is a correction that applies movement to the player object in a direction that does not approach the edge when the distance between the edge and the player object is short.
27. The information processing method according to claim 26, wherein the course edge movement correction is a correction that applies the movement with a stronger intensity the closer the distance between the edge and the player object is.
28. The aforementioned course path further indicates the height of the course, The information processing method according to claim 25, wherein the player object enters the first state when, among a plurality of course paths, the height of the lower end of a course path that does not include the position of the player object is less than or equal to the height of the position of the player object.
29. The aforementioned course path further indicates the height of the course, Among the multiple course paths, including the one with the higher height and the one with the lower height, When the player object is located within the higher course path, the player object enters the first state. The information processing method according to claim 25, wherein the player object enters the second state when the player object is located within the lower course path.
30. The system further includes causing the player object to perform a jump action based on the input, The information processing method according to claim 29, wherein, in a state in which the player object is located within the lower course path, the player object changes from the second state to the first state in response to the jump action.
31. The information processing method according to claim 25, wherein the player object enters either the first state or the second state depending on the type of course path that includes the position of the player object.
32. The information processing method according to claim 25, wherein the player object enters the first state when the position of the player object is included in each of the multiple course paths.
33. The field includes a deceleration field that limits the speed of the moving player object, The system further includes using an item that allows the player object to be moved without being affected by the deceleration field for a predetermined period of time, in response to instructions based on the operation input. If, in the location where one of the plurality of course paths includes a course path defined on the deceleration field, the position of the player object is included in a course path that is not defined on the deceleration field, When the aforementioned item is in use or available, the player object enters the first state. The information processing method according to claim 25, wherein the player object enters the second state when the item is unavailable.
34. The information processing method according to claim 33, wherein the player object enters the first state when the position of the player object is included in the course path defined on the deceleration field.
35. The aforementioned movement control includes at least control that changes the direction of movement according to the input amount, The information processing method according to any one of claims 25 to 34, further comprising: taking the position of the player object while it is moving and the position on the course path reached by advancing a predetermined distance along the course path from the position while it is moving as the first position and the second position, respectively, and if the direction of movement of the player object is not included between the first direction toward the first position and the second direction toward the second position, performing input amount correction to correct the input amount so that the direction of movement approaches a third direction which is included at least between the first direction and the second direction.
36. The information processing method according to any one of claims 25 to 34, wherein the ends of the course path are defined based on a curve defined by a plurality of discrete control points.
37. An information processing apparatus comprising a processor, wherein the processor is In a field within a virtual space where a course path is defined along the course, indicating at least both ends of the course, and where multiple such course paths are set, the player object is controlled to move based on the operation input. Course edge movement correction is performed to correct the movement of the player object in the movement control based on the positional relationship between any end of the course path and the player object. When the player object is in the first state, This is done based on one end of one of the multiple course paths and the other end of the other course path. When the aforementioned player object is in the second state, An information processing device that performs operations based on the ends of any of the course paths among a plurality of course paths that include the position of the player object.
Citation Information
Patent Citations
Game program, game processing method, game system, and game device
JP6869692B2