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

A system for controlling the movement of a following character in games by tracing the footprints of a player character with a shortcut mechanism addresses unnatural movements and catch-up delays, ensuring efficient and natural following.

JP7799004B2Active Publication Date: 2026-01-14NINTENDO CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024189941
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-10-29
Publication Date
2026-01-14
Estimated Expiration
2042-10-05

AI Technical Summary

Technical Problem

Existing technologies for controlling the movement of a following character in games result in unnatural movements and prolonged time to catch up with a player character due to unnecessary following of the player's path.

Method used

Implementing a system where a second object moves in a virtual space by tracing the footprints of a first object, using a shortcut storage mechanism to determine passable routes and avoid obstacles, allowing for natural movement and reduced catch-up time.

Benefits of technology

The system enables the second object to move naturally and efficiently catch up with the first object by utilizing passable paths and shortcuts, reducing travel time and enhancing movement appearance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007799004000001
    Figure 0007799004000001
  • Figure 0007799004000002
    Figure 0007799004000002
  • Figure 0007799004000003
    Figure 0007799004000003
Patent Text Reader

Abstract

To provide an information processing program, an information processing system, and an information processing method capable of moving a prescribed character to a position close to a player character in an apparently natural motion in a shorter period of time, in an information processing for performing control of movement of the prescribed character so as to follow the player character.SOLUTION: A first object is moved to a first object coordinate on the basis of an operation input, and footprint coordinates being coordinates based on the first object coordinate following the movement are stored in a time series order. Regarding a first footprint coordinate among the plurality of stored footprint coordinates, it is determined whether a route to a second footprint coordinate being after the first footprint coordinate in the time series is passable or not, and when it is passable, the route is stored in association with the first footprint coordinate. If there is a route passable to the prescribed second footprint coordinate, the second object is moved along the route when following the plurality of stored footprint coordinates.SELECTED DRAWING: Figure 24
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to information processing in which a first object moves in a virtual space and at least one second object moves in accordance with the movement of the first object. [Background technology]

[0002] Conventionally, games in which a player character is followed by another following character have been known. Furthermore, in such games, when the following character gets caught on an obstacle such as a terrain and is left behind by the player character, a method is known in which the following character moves so as to follow the path (footprints) taken by the player character (for example, Patent Document 1). [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2005-287757 Summary of the Invention [Problem to be solved by the invention]

[0004] The above technology allows the following character to follow the movement path of the player character, which is likely to be operated to avoid obstacles, and as a result, it is possible to move the following character while avoiding obstacles. However, because it simply follows the movement path of the player character, it also follows unnecessary movements made by the player character. As a result of following such unnecessary movements, it may take a long time for the following character to catch up with the player character, or the following character's movements may appear unnatural.

[0005] Therefore, an object of the present disclosure is to provide an information processing program, an information processing system, and an information processing method that, in information processing for controlling the movement of a specified character so that it follows a player character, can move the character close to the player character in a shorter time with movements that appear natural. [Means for solving the problem]

[0006] To achieve the above object, the following configuration examples can be given.

[0007] (Configuration 1) Configuration 1 is an information processing program that causes a computer of an information processing device to execute information processing in which a first object moves in a virtual space and at least one second object moves in accordance with the movement of the first object, and causes the computer to function as a first object movement control means, a footprint coordinate storage means, a shortcut storage means, and a second object movement control means. The first object movement control means controls the movement of the first object to first object coordinates, which are coordinates in the virtual space, based on an operation input. The footprint coordinate storage means repeatedly acquires footprint coordinates, which are coordinates based on the first object coordinates, multiple times in conjunction with the movement control of the first object and stores them in chronological order. The shortcut storage means determines, for a first footprint coordinate among the multiple footprint coordinates acquired by the footprint coordinate storage means, whether a route connecting the first footprint coordinate and a second footprint coordinate stored chronologically after the first footprint coordinate is passable, and if it is determined that the route is passable, stores information identifying the route in association with the first footprint coordinate. The second object movement control means controls the movement of the second object so that it follows the footprint coordinates acquired by the footprint coordinate acquisition means in chronological order, and further, if a route determined to be passable exists for a given footprint coordinate, controls the movement of the second object so that it follows that route.

[0008] According to the above configuration, the movement trajectory of the first object is stored as footprints. Furthermore, the second object is moved so as to trace the movement trajectory of the first object. If a passable path exists from one footprint to another while tracing the movement trajectory, the second object can be moved using that path. This allows the second object to behave naturally in information processing in which the second object moves following the first object, while shortening the time it takes for the second object to catch up with the first object.

[0009] (Configuration 2) In a second aspect of the present invention, in the first aspect, the shortcut storage means may determine whether or not a straight line route connecting the footprint coordinates is passable.

[0010] According to the above configuration, it is determined whether a straight route can be used as a shortcut route. When the shortcut route is used, the user moves in a straight line, which can further reduce travel time.

[0011] (Configuration 3) In configuration 3, in configuration 1 or 2 above, when there are multiple second footprint coordinates that are determined to be passable from the first footprint coordinates, the shortcut storage means may store information that identifies the route to the most recent second footprint coordinate in chronological order, linked to the first footprint coordinates.

[0012] According to the above configuration, when multiple paths to other footprints are found for a certain footprint, the path to the footprint that is closest to the first object can be used, thereby further shortening the time it takes to catch up with the first object.

[0013] (Configuration 4) In a fourth aspect of the present invention, in the third aspect, the shortcut storage means may determine, for each predetermined frame, whether or not a route connecting each of the plurality of first footprint coordinates with a predetermined number of second footprint coordinates is passable.

[0014] (Configuration 5) In a fifth aspect of the present invention, in the fourth aspect, the shortcut storage means may change the predetermined number in accordance with a processing load.

[0015] According to the above configuration, the process relating to the route determination can be executed more efficiently in accordance with the processing load at the time.

[0016] (Configuration 6) In configuration 6, in the above configuration 1, the information processing program may further cause the computer to function as a following movement control means for controlling the following movement of the second object so that it moves toward movement target coordinates based on the first object coordinates, a detection means for detecting that the second object is unable to reach the movement target coordinates during the following movement control, and a footprint following movement control means for movement controlling the second object so that it moves toward one of the footprint coordinates when the detection means detects that the second object is unable to reach the movement target coordinates. Then, after the footprint following movement control means controls the movement of the second object so that it reaches one of the footprint coordinates, the second object movement control means may control the movement of the second object so that it follows the footprint coordinates in time series.

[0017] According to the above configuration, the second object is normally caused to move in a manner that directly follows the first object, but if its progress is impeded by an obstacle or the like during the following movement, it is caused to move in a manner that traces the movement path of the first object operated by the user so as to avoid the obstacle. Therefore, even if its progress is impeded, the second object can be moved close to the first object by taking a path that avoids the obstacle or the like.

[0018] (Configuration 7) In configuration 7, in configuration 6, the detection means may determine that the second object cannot reach the movement target coordinates when the coordinates of the second object do not change for a predetermined time or more, or when it is detected that the second object continues to collide with an obstacle object for a predetermined time or more.

[0019] (Configuration 8) In configuration 8, in configuration 6, when it is detected that the second object cannot reach the movement target coordinates, the footprint following movement control means may control the movement of the second object so that the second object moves toward the latest footprint coordinates that are within a predetermined range from the coordinates of the second object.

[0020] According to the above configuration, the most recent footprints within a predetermined range are selected, so that the robot can move in a way that traces the path of the first object, starting from the footprint closest to the first object, thereby further shortening the time it takes to catch up with the first object.

[0021] (Configuration 9) Configuration 9 is such that, in the above configuration 1, the shortcut storage means does not treat the last footprint coordinate stored and the footprint coordinate stored just before that among the multiple footprint coordinates acquired by the footprint coordinate storage means as first footprint coordinates, and does not determine whether the route to the second footprint coordinate is passable.

[0022] According to the above configuration, it is possible to omit processing for footprints for which there is no need to search for the route, thereby reducing the processing load. q [Effects of the Invention]

[0023] According to this embodiment, when a second object is moved to follow a first object, the second object can be made to move in a natural manner, and the time it takes for the second object to catch up with the first object can be shortened. [Brief explanation of the drawings]

[0024] [Figure 1] FIG. 1 shows an example of a state in which the left controller 3 and the right controller 4 are attached to the main unit 2. [Figure 2] FIG. 10 shows an example of a state in which the left controller 3 and the right controller 4 are detached from the main unit 2. [Figure 3] Six-sided views showing an example of the main unit 2 [Figure 4] Six-sided diagram showing an example of the left controller 3 [Figure 5] Six-sided diagram showing an example of the right controller 4 [Figure 6] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 7] A block diagram showing an example of the internal configuration of the main unit 2, the left controller 3, and the right controller 4. [Figure 8] Schematic diagram showing an example of a formation in this embodiment. [Figure 9] Schematic diagram showing an example of a formation in this embodiment. [Figure 10] A diagram explaining the relationship between slots and sub-characters [Figure 11] A diagram for explaining movement control by footprints [Figure 12] A diagram for explaining movement control by footprints [Figure 13] A diagram for explaining movement control by footprints [Figure 14] A diagram for explaining shortcut control [Figure 15] A diagram for explaining shortcut control [Figure 16] A diagram for explaining shortcut control [Figure 17] A diagram for explaining shortcut control [Figure 18] A diagram for explaining shortcut control [Figure 19] A diagram for explaining shortcut control [Figure 20] A memory map showing an example of various data stored in the DRAM 85 [Figure 21] An example of the data structure of footprint management data [Figure 22] A flowchart showing details of game processing according to the present embodiment. [Figure 23] Flowchart showing details of leader movement control processing [Figure 24]Flowchart showing details of shortcut creation process [Figure 25] Flowchart showing details of shortcut creation process [Figure 26] Flowchart showing details of sub-character movement control processing [Figure 27] Flowchart showing details of sub-character movement control processing DETAILED DESCRIPTION OF THE INVENTION

[0025] An embodiment will be described below.

[0026] First, a game system according to an example of this embodiment will be described. An example of the game system 1 according to this embodiment includes a main unit (information processing device; in this embodiment, it functions as the game device main unit) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are each detachable from the main unit 2. In other words, the game system 1 can be used as an integrated device by attaching the left controller 3 and the right controller 4 to the main unit 2. The game system 1 can also be used as a separate unit from the main unit 2, the left controller 3, and the right controller 4 (see FIG. 2). Below, the hardware configuration of the game system 1 according to this embodiment will be described, followed by a description of the control of the game system 1 according to this embodiment.

[0027] FIG. 1 is a diagram showing an example of a state in which a left controller 3 and a right controller 4 are attached to a main unit 2. As shown in FIG. 1, the left controller 3 and the right controller 4 are each attached to and integrated with the main unit 2. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 is equipped with a display 12. The left controller 3 and the right controller 4 are devices that have operation units that allow the user to perform inputs.

[0028] Fig. 2 is a diagram showing an example of the state in which the left controller 3 and the right controller 4 are detached from the main unit 2. As shown in Figs. 1 and 2, the left controller 3 and the right controller 4 are detachable from the main unit 2. Note that, below, the left controller 3 and the right controller 4 may be collectively referred to as "controllers."

[0029] Fig. 3 is a six-sided view showing an example of the main unit 2. As shown in Fig. 3, the main unit 2 includes a substantially plate-shaped housing 11. In this embodiment, the main surface of the housing 11 (in other words, the front surface, i.e., the surface on which the display 12 is provided) is generally rectangular.

[0030] The shape and size of the housing 11 are arbitrary. As an example, the housing 11 may be of a portable size. Furthermore, the main unit 2 alone or an integrated device in which the left controller 3 and right controller 4 are attached to the main unit 2 may be a portable device. Furthermore, the main unit 2 or the integrated device may be a handheld device. Furthermore, the main unit 2 or the integrated device may be a portable device.

[0031] 3, the main unit 2 includes a display 12 provided on the main surface of the housing 11. 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.

[0032] The main device 2 also includes a touch panel 13 on the screen of the display 12. In this embodiment, the touch panel 13 is of a type that allows multi-touch input (for example, a capacitance type). However, the touch panel 13 may be of any type, and may be of a type that allows single-touch input (for example, a resistive type).

[0033] The main unit 2 is provided with a speaker (i.e., speaker 88 shown in FIG. 6) inside the housing 11. As shown in FIG. 3, speaker holes 11a and 11b are formed on the main surface of the housing 11. The output sound of the speaker 88 is output from these speaker holes 11a and 11b, respectively.

[0034] The main unit 2 also has a left terminal 17, which is a terminal for the main unit 2 to communicate with the left controller 3 via a wired connection, and a right terminal 21, which is a terminal for the main unit 2 to communicate with the right controller 4 via a wired connection.

[0035] As shown in FIG. 3, the main unit 2 includes a slot 23. The slot 23 is provided on the upper side of the housing 11. The slot 23 has a shape that allows a predetermined type of storage medium to be inserted therein. The predetermined type of storage medium is, for example, a storage medium (e.g., a dedicated memory card) dedicated to the game system 1 and the same type of information processing device. The predetermined type of storage medium is used, for example, to store data used by the main unit 2 (e.g., application save data, etc.) and / or programs executed by the main unit 2 (e.g., application programs, etc.). The main unit 2 also includes a power button 28.

[0036] The main unit 2 has a lower terminal 27. The lower terminal 27 is a terminal through which the main unit 2 communicates with the cradle. In this embodiment, the lower terminal 27 is a USB connector (more specifically, a female connector). When the all-in-one device or the main unit 2 alone is placed on the cradle, the game system 1 can display images generated and output by the main unit 2 on a stationary monitor. In this embodiment, the cradle also has the function of charging the all-in-one device or the main unit 2 alone that is placed on it. The cradle also has the function of a hub device (specifically, a USB hub).

[0037] FIG. 4 is a six-sided view showing an example of the left controller 3. As shown in FIG. 4, the left controller 3 includes a housing 31. In this embodiment, the housing 31 has a vertically long shape, that is, a shape that is long in the up-down direction in FIG. 4 (the z-axis direction shown in FIG. 4). The left controller 3 can also be held in a vertically long orientation when detached from the main unit 2. The housing 31 has a shape and size that allows it to be held in one hand, particularly the left hand, when held in a vertically long orientation. The left controller 3 can also be held in a horizontally long orientation. When the left controller 3 is held in a horizontally long orientation, it may be held with both hands.

[0038] The left controller 3 is equipped with a left analog stick (hereinafter referred to as the left stick) 32, which is an example of a directional input device. As shown in FIG. 4, the left stick 32 is provided on the main surface of the housing 31. The left stick 32 can be used as a directional input unit that can input directions. By tilting the left stick 32, the user can input a direction corresponding to the tilt direction (and input a magnitude corresponding to the tilt angle). Note that the left controller 3 may be equipped with a cross key or a slide stick that can perform slide inputs, instead of an analog stick, as a directional input unit. In this embodiment, input can be made by pressing down the left stick 32.

[0039] The left controller 3 is equipped with various operation buttons. The left controller 3 is equipped with four operation buttons 33 to 36 (specifically, a right button 33, a down button 34, an up button 35, and a left button 36) on the main surface of the housing 31. The left controller 3 is also equipped with a record button 37 and a - (minus) button 47. The left controller 3 is equipped with a first L button 38 and a ZL button 39 on the upper left side of the housing 31. The left controller 3 is also equipped with a second L button 43 and a second R button 44 on the side of the housing 31 that is attached to the main unit 2. These operation buttons are used to issue instructions according to various programs (for example, OS programs and application programs) executed on the main unit 2.

[0040] The left controller 3 also includes a terminal 42 for wired communication between the left controller 3 and the main unit 2.

[0041] FIG. 5 is a six-sided view showing an example of the right controller 4. As shown in FIG. 5, the right controller 4 includes a housing 51. In this embodiment, the housing 51 has a vertically long shape, that is, a shape that is long in the up-down direction in FIG. 5 (the z-axis direction shown in FIG. 5). The right controller 4 can also be held in a vertically long orientation when detached from the main unit 2. The housing 51 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a vertically long orientation. The right controller 4 can also be held in a horizontally long orientation. When the right controller 4 is held in a horizontally long orientation, it may be held with both hands.

[0042] Like the left controller 3, the right controller 4 is equipped with a right analog stick (hereinafter referred to as the right stick) 52 as a directional input unit. In this embodiment, the right stick 52 has the same configuration as the left stick 32 of the left controller 3. The right controller 4 may also be equipped with a cross key or a slide stick capable of slide input, instead of an analog stick. Like the left controller 3, the right controller 4 is equipped with four operation buttons 53 to 56 (specifically, an A button 53, a B button 54, an X button 55, and a Y button 56) on the main surface of the housing 51. The right controller 4 is further equipped with a + (plus) button 57 and a home button 58. The right controller 4 is also equipped with a first R button 60 and a ZR button 61 on the upper right side of the housing 51. Like the left controller 3, the right controller 4 is also equipped with a second L button 65 and a second R button 66.

[0043] The right controller 4 also includes a terminal 64 for wired communication between the right controller 4 and the main unit 2.

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

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

[0046] The main device 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as examples of internal storage media built into the main device 2. The flash memory 84 and the DRAM 85 are connected to the processor 81. The flash memory 84 is a memory used primarily to store various types of data (which may be programs) saved in the main device 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing.

[0047] The main device 2 includes a slot interface (hereinafter abbreviated as "I / F") 91. The slot I / F 91 is connected to the processor 81. The slot I / F 91 is connected to the slot 23, and reads and writes data from and to a predetermined type of storage medium (e.g., a dedicated memory card) inserted into the slot 23 in accordance with instructions from the processor 81.

[0048] The processor 81 reads and writes data from and to the flash memory 84, DRAM 85, and the above-mentioned storage media as appropriate, to execute the above-mentioned information processing.

[0049] The main unit 2 includes a network communication unit 82. The network communication unit 82 is connected to the processor 81. The network communication unit 82 communicates with external devices via a network (specifically, wireless communication). In this embodiment, the network communication unit 82 connects to a wireless LAN and communicates with external devices using a method conforming to the Wi-Fi standard as a first communication mode. The network communication unit 82 also performs wireless communication with other main units 2 of the same type using a predetermined communication method (e.g., communication using a proprietary protocol or infrared communication) as a second communication mode. Note that wireless communication using the second communication mode enables wireless communication with other main units 2 located within a closed local network area, and realizes a function that enables so-called "local communication," in which data is transmitted and received by direct communication between multiple main units 2.

[0050] The main unit 2 is equipped with a controller communication unit 83. The controller communication unit 83 is connected to the processor 81. The controller communication unit 83 performs wireless communication with the left controller 3 and / or right controller 4. Any communication method may be used between the main unit 2 and the left controller 3 and right controller 4, but in this embodiment, the controller communication unit 83 performs communication with the left controller 3 and right controller 4 in accordance with the Bluetooth (registered trademark) standard.

[0051] The processor 81 is connected to the left terminal 17, right terminal 21, and lower terminal 27. When performing wired communication with the left controller 3, the processor 81 transmits data to the left controller 3 via the left terminal 17 and receives operation data from the left controller 3 via the left terminal 17. When performing wired communication with the right controller 4, the processor 81 transmits data to the right controller 4 via the right terminal 21 and receives operation data from the right controller 4 via the right terminal 21. When performing wired communication with the right controller 4, the processor 81 transmits data to the cradle via the lower terminal 27. As described above, in this embodiment, the main unit 2 can perform both wired and wireless communication with the left controller 3 and the right controller 4. When an integrated device in which the left controller 3 and the right controller 4 are attached to the main unit 2 or the main unit 2 alone is attached to the cradle, the main unit 2 can output data (e.g., image data and audio data) to a stationary monitor or the like via the cradle.

[0052] Here, the main unit 2 can communicate simultaneously (in other words, in parallel) with multiple left controllers 3. The main unit 2 can also communicate simultaneously (in other words, in parallel) with multiple right controllers 4. Therefore, multiple users can simultaneously input to the main unit 2 using their own sets of left controllers 3 and right controllers 4. For example, a first user can input to the main unit 2 using a first set of left controllers 3 and right controllers 4, while a second user can simultaneously input to the main unit 2 using a second set of left controllers 3 and right controllers 4.

[0053] The main device 2 includes a touch panel controller 86, which is a circuit that controls the touch panel 13. The touch panel controller 86 is connected between the touch panel 13 and the processor 81. Based on a signal from the touch panel 13, the touch panel controller 86 generates data indicating, for example, the position where a touch input was made, and outputs the data to the processor 81.

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

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

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

[0057] Furthermore, battery 98 is connected to lower terminal 27. When an external charging device (e.g., a cradle) is connected to lower terminal 27 and power is supplied to main device 2 via lower terminal 27, battery 98 is charged with the supplied power.

[0058] Figure 7 is a block diagram showing an example of the internal configuration of the main unit 2, left controller 3, and right controller 4. Note that details of the internal configuration of the main unit 2 are omitted in Figure 7 because they are shown in Figure 6.

[0059] The left controller 3 is equipped with a communication control unit 101 that communicates with the main unit 2. As shown in FIG. 7 , the communication control unit 101 is connected to each component, including the terminal 42. In this embodiment, the communication control unit 101 can communicate with the main unit 2 both via wired communication via the terminal 42 and via wireless communication without using the terminal 42. The communication control unit 101 controls the method of communication between the left controller 3 and the main unit 2. That is, when the left controller 3 is attached to the main unit 2, the communication control unit 101 communicates with the main unit 2 via the terminal 42. When the left controller 3 is detached from the main unit 2, the communication control unit 101 communicates wirelessly with the main unit 2 (specifically, with the controller communication unit 83). Wireless communication between the controller communication unit 83 and the communication control unit 101 is performed in accordance with, for example, the Bluetooth (registered trademark) standard.

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

[0061] The left controller 3 includes buttons 103 (specifically, buttons 33 to 39, 43, 44, and 47). The left controller 3 also includes a left stick 32. Each button 103 and left stick 32 repeatedly outputs information relating to an operation performed on that button 103 and left stick 32 to the communication control unit 101 at an appropriate timing.

[0062] The left controller 3 is equipped with an inertial sensor. Specifically, the left controller 3 is equipped with an acceleration sensor 104. The left controller 3 is also equipped with an angular velocity sensor 105. In this embodiment, the acceleration sensor 104 detects the magnitude of acceleration along three predetermined axes (for example, the x, y, and z axes shown in FIG. 4). The acceleration sensor 104 may detect acceleration along one or two axes. In this embodiment, the angular velocity sensor 105 detects angular velocity around three predetermined axes (for example, the x, y, and z axes shown in FIG. 4). The angular velocity sensor 105 may detect angular velocity around one or two axes. The acceleration sensor 104 and the angular velocity sensor 105 are each connected to the communication control unit 101. The detection results of the acceleration sensor 104 and the angular velocity sensor 105 are repeatedly output to the communication control unit 101 at appropriate timing.

[0063] The communication control unit 101 acquires information about the input (specifically, information about the operation or the detection results by the sensors) from each input unit (specifically, each button 103, left stick 32, and each sensor 104 and 105). The communication control unit 101 transmits operation data including the acquired information (or information obtained by performing a predetermined process on the acquired information) to the main unit 2. The operation data is repeatedly transmitted once every predetermined time. The interval at which the information about the input is transmitted to the main unit 2 may or may not be the same for each input unit.

[0064] By transmitting the above operation data to the main unit 2, the main unit 2 can obtain the input made to the left controller 3. That is, the main unit 2 can determine the operation of each button 103 and left stick 32 based on the operation data. Furthermore, the main unit 2 can calculate information regarding the movement and / or posture of the left controller 3 based on the operation data (specifically, the detection results of the acceleration sensor 104 and the angular velocity sensor 105).

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

[0066] As shown in FIG. 7, the right controller 4 is equipped with a communication control unit 111 that communicates with the main unit 2. The right controller 4 also has a memory 112 that is connected to the communication control unit 111. The communication control unit 111 is connected to each component, including the terminal 64. The communication control unit 111 and memory 112 have the same functions as the communication control unit 101 and memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both via wired communication via the terminal 64 and via wireless communication that does not use the terminal 64 (specifically, communication in accordance with the Bluetooth (registered trademark) standard), and controls the method of communication between the right controller 4 and the main unit 2.

[0067] The right controller 4 has input units similar to those of the left controller 3. Specifically, it has buttons 113, a right stick 52, and inertial sensors (an acceleration sensor 114 and an angular velocity sensor 115). These input units have the same functions as those of the left controller 3, and operate in the same manner.

[0068] The right controller 4 is equipped with a power supply unit 118. The power supply unit 118 has the same functions as the power supply unit 108 of the left controller 3 and operates in the same manner.

[0069] [Outline of Game Processing in This Embodiment] Next, an outline of the operation of the game processing executed by the game system 1 according to this embodiment will be described. The game executed in this embodiment is played by a user moving a character in a virtual game space using the controller. In addition to the character operated by the user (hereinafter referred to as the leader character), the game space also contains a plurality of characters (hereinafter referred to as sub-characters) whose movements are controlled by the processor 81 based on a predetermined algorithm. The movements of these sub-characters are controlled so that they follow the leader character in a predetermined formation.

[0070] Figure 8 shows a leader character and multiple sub-characters following it moving in formation. In reality, however, they do not move in such a neat formation as shown in Figure 8; rather, each sub-character's movement is controlled individually, so the formation may look like Figure 9 due to differences in movement speed between sub-characters and the effects of the terrain. Note that if a sufficient amount of time has passed since the leader character stopped moving, the sub-characters will basically stop in the position shown in Figure 8.

[0071] [About moving sub-characters] Next, the movement control of the sub-characters as described above will be explained. In this embodiment, the sub-characters basically move toward the position of a "slot" determined based on the position and orientation of the leader character. However, if the sub-characters get caught on the terrain during their movement, they are controlled to follow the "footprints" of the leader character and move toward the position of the leader character. Below, an overview of movement control using "slots" (slot mode) and movement control using "footprints" (footprint following mode) will be explained.

[0072] [Movement control by slots] First, an overview of movement control in slot mode will be described. In this embodiment, a plurality of movement target points are set in the game space as the slots. Then, one slot is assigned to each sub-character, and each sub-character moves toward the corresponding slot. Each slot is set around the leader character, using the leader character's position and orientation as a reference. For example, the slot is positioned on the opposite side of the leader character's orientation (direction of travel). Furthermore, when the leader character moves or changes orientation (posture) in the game space, the coordinates of each slot are changed accordingly. Therefore, when the leader character moves, each slot also moves accordingly.

[0073] Next, the relationship between each slot and each sub-character will be explained. Each sub-character is individually associated with a slot number, which is the movement target point. For example, sub-character number 1 is associated with slot number 1, sub-character number 2 is associated with slot number 2, and sub-character number 3 is associated with slot number 3. As a result, as shown in FIG. 10, a sub-character with sub-character number 1 (hereinafter simply referred to as sub-character 1) moves toward slot 1, sub-character 2 moves toward slot 2, and sub-character 3 moves toward slot 3. In the example of FIG. 10, the character number is equal to the slot number, but this is merely an example, and the correspondence may be set arbitrarily.

[0074] As described above, each sub-character moves toward the slot associated with it, and thus moves through the game space in a predetermined formation following the leader character.

[0075] [About movement control by footprints] Next, an overview of movement control in the footprint following mode will be described. When each sub-character moves through the game space in the movement control in the slot mode described above, the progress of the sub-character may be impeded by an obstacle such as a wall, as shown in FIG. 11. In the example of FIG. 11, sub-character 7 attempts to move toward slot 7, but because there is an obstacle (terrain) between sub-character 7 and slot 7, it cannot follow the leader character in this state. When a sub-character collides with an obstacle in this way, in this embodiment, the sub-character stops moving toward the slot and controls its movement so that it follows the path taken by the leader character. This is because as long as the sub-character follows the path of the leader character, its path will not be blocked by an obstacle.

[0076] In this embodiment, the path traveled by the leader character is managed as a "footprint." Specifically, the current position (coordinates in a spatial coordinate system) of the leader character is sequentially accumulated at predetermined timings as the leader character's "footprint." More specifically, the footprints are stored, for example, once every predetermined frame (for example, once every 10 frames). The data stored at this time (hereinafter referred to as footprint data) includes a timestamp at that time and the coordinates of the leader character.

[0077] In this embodiment, if 10 frames have passed since the previous footprint was stored and the leader character is not further away from that footprint by a certain distance, no new footprint is stored. This prevents the accumulation of meaningless footprint data and allows for efficient use of storage space. Since it is impossible to store footprint data infinitely, footprint data older than a certain number must be deleted from the storage space. For example, if the number of accumulated footprint data reaches a certain number, the oldest (i.e., the footprint data with the smallest frame number) of the accumulated footprint data can be deleted from the storage space when new footprint data is stored. Hereinafter, each footprint stored as footprint data will be referred to as a "footprint Ni." i is a positive integer, and i increases chronologically from the oldest footprint. For example, if there are five accumulated footprints, they will be referred to as footprint N1, footprint N2, ..., footprint N5, in chronological order.

[0078] As described above, when a sub-character's path is blocked by an obstacle, the newest footprint among the footprints present within a predetermined range centered on the sub-character is set as the movement target for the blocked sub-character. For example, as shown in Figure 12, when sub-character 7 hits a wall, it changes its movement target to footprint N4, which is the newest footprint among footprints N2, N3, and N4 within the predetermined range.

[0079] Thereafter, when the sub-character 7 reaches the footprint of the movement target, the movement target is changed to a newer footprint than this footprint. In the example of FIG. 12 above, when the sub-character 7 arrives at footprint N4, the movement target of the sub-character 7 is changed to footprint N5, as shown in FIG. 13. Furthermore, when the sub-character 7 arrives at footprint N5, the movement target of the sub-character 7 is changed to footprint N6. By repeating this, the sub-character 7 can follow the movement trajectory of the leader character and follow the leader character.

[0080] While the sub-character is following the movement trajectory of the leader character (i.e., while following the footprints), the distance between the sub-character's current coordinates and the coordinates of the slot corresponding to that sub-character is determined. Then, when the sub-character approaches within a certain distance of the corresponding slot, the movement target of the sub-character is changed from the footprints to the slot. In other words, the movement control switches from footprint following mode to slot mode. As a result, each sub-character will eventually move toward the slot corresponding to it, and can follow the leader character at its original position.

[0081] [About shortcut movement control] In the footprint-following mode, the movement control for following the footprints described above prevents obstacles from blocking the path. However, if the leader character makes unnecessary movements (e.g., a detour), the footprints resulting from the unnecessary movements will also be followed. This can result in a longer time to catch up with the leader character. Furthermore, from the perspective of the appearance of the sub-character's movement, the movement of a sub-character following the leader character's footprints may appear unnatural depending on the situation. Therefore, in this embodiment, when a certain footprint is reached, the presence or absence of a shortcut from that footprint to another footprint closer to the leader character's current position is determined. If a shortcut to another footprint is found, the movement target is further controlled to change to the shortcut destination.

[0082] An overview of control using the above shortcuts will be described. Here, an example will be described in which there are five accumulated footprints, as shown in FIG. 14. In FIG. 14, footprints N1 to N5 are shown in chronological order, starting from the oldest footprint. In this embodiment, for each footprint, a shortcut from that footprint to the chronologically succeeding footprint that is passable via a straight path and is closest to the leader character is calculated, and information about the shortcut is associated with the footprint and stored. Specifically, starting from the oldest footprint in chronological order, a process (hereinafter referred to as ray casting) is performed in which a straight line (ray) is cast from that footprint to each of the other footprints that are newer in chronological order. If the ray reaches the other footprints without hitting any obstacles along the way, the ray cast is considered successful (passable); if it does not reach the other footprints, the ray cast is considered unsuccessful (impassable). Then, information about the shortcut to the most recent footprint among the other footprints for which the ray cast was successful is stored. In this embodiment, when calculating such a shortcut, raycasts for footprints that are adjacent in time series (footprints that are next in time series) are omitted, as there is no point in calculating a shortcut for such footprints.

[0083] 15 to 17 show an example of shortcut calculation. FIG. 15 is an example of shortcut calculation when footprint N1 in FIG. 14 is used as a reference. In this case, raycasting is omitted for footprint N2, which is the next footprint after footprint N1, and raycasting is performed from footprint N1 to footprint N3, from footprint N1 to footprint N4, and from footprint N1 to footprint N5. As a result, all of these are successful, but information indicating the shortcut to footprint N5, which is closest to the leader character, is ultimately linked to footprint N1 and stored.

[0084] Figure 16 shows an example of shortcut calculation when footprint N2 is used as the reference. In this case, raycasting is omitted for footprint N3, which is the next footprint after footprint N2. Raycasts are then performed from footprint N2 to footprint N4, and from footprint N2 to footprint N5. As a result, all raycasts are successful, but information indicating the shortcut to footprint N5, which is closest to the leader character, is stored in association with footprint N2.

[0085] 17 shows an example of shortcut calculation when footprint N3 is used as the reference. In this case, raycasting is omitted for footprint N4, which is the next footprint after footprint N3. As a result, only a raycast is performed from footprint N3 to footprint N5. If this is successful, information indicating a shortcut to footprint N5 is stored in association with footprint N3.

[0086] Note that there is no point in calculating a shortcut for footprints N4 to N5 because they are adjacent to each other. Therefore, there is no need to calculate a shortcut when N4 is used as the reference. Also, since N5 is the most recent footprint, there is no shortcut destination for it. Therefore, in the examples of Figures 14 to 17 above, only footprints N1 to N3 are ultimately subject to the shortcut calculation process.

[0087] As described above, the presence or absence of a shortcut is determined for each footprint, and if there is one, the information on the footprints at the shortcut destination is stored. Then, when the sub-character is moving along footprints and reaches a footprint with a shortcut, the footprint at the shortcut destination is set as the next movement destination. In other words, the sub-character moves in a shortcut-like manner without following footprints. On the other hand, if the footprints that have been reached do not have a shortcut, the next newest footprint in the chronological order is set as the movement destination. In other words, in this case, the sub-character continues to move in a manner that follows footprints.

[0088] Based on the shortcut calculation examples shown in FIGS. 14 to 17, examples of a sub-character's movement path using a shortcut are shown in FIGS. 18 and 19. FIG. 18 shows an example when there is no obstacle, and FIG. 19 shows an example when there is an obstacle. In the case of FIG. 18, shortcut information to footprint N5 is stored in footprint N1. Therefore, when the sub-character reaches footprint N1, it sets footprint N5 as its next movement destination. As a result, the sub-character's movement path is footprint N1 → footprint N5. On the other hand, in the case of FIG. 19, where an obstacle is present, raycasts to footprints N1 and N2 have failed due to the presence of the obstacle. In other words, no shortcut information is stored in footprints N1 and N2. On the other hand, shortcut information to footprint N5 is stored in footprint N3. In this case, after the sub-character reaches footprint N1, it moves by retracing the footprints from footprint N2 to N3. Then, when the sub-character reaches footprint N3, it moves to footprint N5 based on the shortcut information stored in footprint N3. In other words, the sub-character's movement path is footprints N1 → N2 → N3 → N5.

[0089] In this manner, in this embodiment, the movement of the sub-character is controlled using the slots and footprints, and when the movement is controlled using footprints, the movement is also controlled using the shortcuts described above. This allows the sub-character to catch up with the leader character more quickly. Also, from the viewpoint of appearance, the sub-character can be expressed as moving to (attempting to catch up with) the leader character's position with more natural behavior.

[0090] [Details of the game processing of this embodiment] Next, the game processing in this embodiment will be described in more detail with reference to Figures 20 to 27. Note that the description here will mainly focus on the processing relating to the movement control of the sub-characters as described above, and detailed descriptions of other game processing will be omitted.

[0091] [About data usage] First, the various data used in this game processing will be described. Figure 20 is a memory map showing an example of the various data stored in the DRAM 85 of the main unit 2. The DRAM 85 of the main unit 2 stores at least a game program 301, leader character data 302, sub-character data 305, slot management data 311, slot association data 314, footprint management data 315, footprint information to be processed 316, and operation data 317.

[0092] The game program 301 is a program for executing the game processing in this embodiment.

[0093] The leader character data 302 is data relating to the leader character, and includes leader coordinates indicating the coordinates of the current position of the leader character, and a posture vector of the leader character.

[0094] Sub-character data 305 is data relating to the sub-characters. Sub-character data 305 stores, for each sub-character, sub-character coordinates, a footprint following flag, a target footprint, and a most recently reached footprint. Sub-character coordinates are the coordinates of the sub-character's current position. The footprint following flag is a flag that indicates whether the movement control of the sub-character is control of movement toward the slot (slot movement mode) or control of movement toward a predetermined footprint (footprint following mode). When on, it indicates footprint following mode, and when off, it indicates slot movement mode. The target footprint is information about the footprint that is the movement target, and the most recently reached footprint is information that identifies the most recent footprint among footprints that have already been reached.

[0095] The slot management data 311 is data for managing the above-mentioned slots. The slot management data 311 stores slot coordinates for each slot.

[0096] The slot correspondence data 314 is data that defines the correspondence between each slot and each sub-character.

[0097] The footprint management data 315 is data for managing the footprints. FIG. 21 shows an example of the data configuration of the footprint management data 315. The footprint management data 315 is data with a list structure and includes multiple footprint data. In this embodiment, an example will be described in which up to 10 pieces of footprint data (footprints N1 to N10) are stored as the footprint management data 315. Of course, the number of footprint data to be stored is not limited to this, and more footprint data may be stored. Each piece of footprint data includes at least footprint coordinates, a timestamp, a temporary shortcut, and shortcut calculation information. The footprint coordinates are the coordinates of the footprint in virtual space. The timestamp is information indicating the date and time the footprint was recorded. Note that a frame number may be used instead of the timestamp. The temporary shortcut and shortcut calculation information are working data used in the shortcut generation process described below. The shortcut calculation information is information indicating the footprint that last executed a raycast from a certain footprint, and the temporary shortcut is information indicating the most recent footprint among footprints that have successfully raycast.

[0098] Returning to Fig. 20, the processing target footprint information 316 is information indicating the footprint Ni to be processed in the current frame in the shortcut creation process described below. More specifically, this information is used to identify the footprint from which the ray is cast when the ray cast is performed. It is assumed that "footprint N1" is set as the initial value.

[0099] The operation data 317 is data obtained from the controller operated by the user, that is, data indicating the operation performed by the user.

[0100] [Details of the processing performed by Processor 81] Next, details of the game processing in this embodiment will be described. In this embodiment, one or more processors read and execute the above program stored in one or more memories, thereby realizing the flowchart shown below. Note that this flowchart is merely an example of the processing process. Therefore, the processing order of each step may be changed as long as the same results are obtained. Furthermore, the values ​​of variables and thresholds used in the determination steps are merely examples, and other values ​​may be used as necessary.

[0101] Fig. 22 is a flowchart showing details of the game processing according to this embodiment. Note that the processing loop of steps S2 to S6 in Fig. 22 is repeatedly executed for each frame.

[0102] [Preparation] First, in step S1, processor 81 executes a game preparation process to prepare for the start of a game. In this process, a virtual three-dimensional space including a game field is constructed, and various objects such as terrain objects, a leader character, and sub-characters are placed therein. Then, a game image is generated by capturing an image of the virtual space in which the various objects are placed using a virtual camera, and the image is output to a stationary monitor or the like. Various data to be used in the following processes are also initialized. Specifically, the footprint tracking flag is set to OFF. Footprint N1 is set in the footprint information 316 to be processed. A footprint timer also starts counting. The footprint timer is a timer for storing footprint data every 10 frames.

[0103] [Leader character movement control processing] Next, in step S2, processor 81 acquires operation data 317. Next, in step S3, processor 81 performs leader movement control processing. FIG. 23 is a flowchart showing the details of the leader movement control processing. In FIG. 23, first, in step S11, processor 81 controls the movement of the leader character by updating the leader coordinates and posture vector based on the operation content indicated by operation data 317.

[0104] Next, in step S12, processor 81 determines whether the count value of the footprint timer has exceeded a predetermined value. In this embodiment, the predetermined value is 10 frames. If the result of this determination is that the count value has not exceeded 10 frames (NO in step S12), the process proceeds to step S16, which will be described later.

[0105] On the other hand, if it exceeds 10 frames (YES in step S12), in step S13, processor 81 determines whether the distance between the current coordinates of the leader character and the coordinates of the most recent footprint is equal to or greater than a predetermined value. The coordinates of the most recent footprint may be obtained from the footprint with the most recent timestamp among the multiple footprint data included in footprint management data 315. If the result of this determination is that the distance is not equal to or greater than the predetermined value (NO in step S13), processing proceeds to step S16, which will be described later.

[0106] On the other hand, if the result of the determination in step S13 above is that the distance is equal to or greater than the predetermined value (YES in step S13), then in step S14 processor 81 stores the current coordinates and current timestamp of the leader character as new footprint data in footprint management data 315. If 10 pieces of footprint data are already stored in footprint management data 315, the new footprint data overwrites the area storing the footprint data with the oldest timestamp.

[0107] Next, in step S15, processor 81 resets the footprint timer and starts counting again.

[0108] Next, in step S16, processor 81 performs shortcut creation processing. In this processing, the above-described raycast is performed from each footprint stored at this point to other footprints, and processing is performed to determine and store the presence or absence of a shortcut.

[0109] [Shortcut creation process] 24 and 25 are flowcharts showing the details of the shortcut creation process. In the following description, when we say "footprint Ni (or target footprint Ni)," we mean the footprint that is the source of the ray in the ray cast. Also, the footprint that is the destination of the ray from footprint Ni is called "footprint Nj" (j is a positive integer). Also, as the initial value of footprint Nj, information indicating the next footprint of target footprint Ni, which will be described later, is set.

[0110] In FIG. 24, first, in step S21, the processor 81 sets the variable "ray cast execution count" to 0. This variable is used to count the number of times the above-described ray casts are executed in the processing for one frame. In this embodiment, in view of the fact that the above-described ray cast processing generally imposes a high processing load, a limit is placed on the number of times ray casts are executed in the processing for one frame. In this embodiment, a case where the limit (hereinafter referred to as the upper limit count) is set to two times will be described as an example.

[0111] In addition, in this embodiment, the number of times a ray is cast from footprint Ni to other footprints in the processing for one frame (hereinafter referred to as the number of times per footprint) is "one" is described as an example. That is, after a ray is cast from footprint Ni to another footprint once, the processing then moves to casting a ray from footprint Ni+1, the next footprint of footprint Ni, to other footprints. Note that this only means that a ray is cast from footprint Ni only once in one processing. Since the shortcut creation processing is repeatedly executed across frames, as will be described later, rays will ultimately be cast from footprint Ni to multiple footprints (all footprints recorded after footprint Ni). Needless to say, in other embodiments, the number of times per footprint may be two or more. For example, processing for one frame may be performed such that rays are cast from footprint Ni to two or more other footprints.

[0112] By setting the upper limit of raycasting per frame (two times) and the number of times per footprint (one time) as described above, shortcut determination for all footprints stored in the footprint management data 315 is performed over multiple frames. For example, in this embodiment, in processing for a certain frame, a raycast is performed from footprint N1 to footprint N3 and from footprint N2 to footprint N4. Then, in processing for the next frame, a raycast is performed from footprint N3 to footprint N5 and from footprint N4 to footprint N6. Thereafter, raycasting is performed once for each footprint per frame, for a total of two times. Furthermore, if the upper limit of raycasting is set to six and the number of times per footprint is set to two, raycasting will be performed twice for each of footprints N1, N2, and N3 in one frame, and twice for each of footprints N4, N5, and N6 in the next frame. Since determining whether or not there are shortcuts as described above does not require such real-time performance, by not determining whether or not there are shortcuts for all footprints in one frame of processing, but by performing the determination over multiple frames of processing, it is possible to efficiently determine whether or not there are shortcuts while reducing the processing load.

[0113] Next, in step S22, the processor 81 determines a footprint Ni to be processed (hereinafter referred to as the processing target footprint Ni). Specifically, the processor 81 sets the footprint Ni indicated in the processing target footprint information 316 as the processing target footprint Ni.

[0114] Next, in step S23, the processor 81 determines whether the target footprint Ni is the most recent footprint or the footprint immediately preceding it among the footprint data stored in the footprint management data. If the determination results in yes (YES in step S23), in step S24 the processor 81 determines footprint N1 as the target footprint Ni. This is to avoid unnecessary processing, since there is no point in calculating a shortcut for such footprints. For example, if data for footprints N1 to N10 are stored in chronological order at a certain point in time, there is no need to calculate shortcuts for footprints N9 and N10, so there is no need to calculate them. In this case, footprints N1 to N8 are processed over, for example, four frames, and then in the next frame, footprints N9 and N10 are skipped and the processing returns to footprint N1. That is, in the fifth frame, the shortcut creation processing is performed for footprints N1 and N2.

[0115] On the other hand, if the result of the above determination is that it does not apply (NO in step S23), the processing of step S24 is skipped.

[0116] Once the target footprint Ni has been determined, the processor 81 identifies the footprint to which the ray is to be cast from the target footprint Ni, and then performs ray casting. Specifically, in step S25, the processor 81 first acquires the footprint Nj stored in the shortcut calculation information for the target footprint Ni. That is, it acquires information about the footprint from which the ray was last cast in the processing related to the previous frame.

[0117] Next, in step S26, the processor 81 determines whether the footprint Nj is the most recent footprint. If the footprint Nj is the most recent footprint, it means that the calculation of shortcuts from the footprint Ni to other footprints has already been completed. If the footprint Nj is not the most recent footprint (NO in step S26), in step S27, the processor 81 identifies the footprint Nj+1 that is the next footprint after the footprint Nj. ​​Then, the processor 81 performs a ray cast from the footprint to be processed to the footprint Nj+1.

[0118] 25, the processor 81 adds 1 to the variable "number of raycast executions." Furthermore, the processor 81 stores information on the footprint that will become the footprint Nj+1 in the shortcut calculation information of the footprint Ni to be processed.

[0119] Next, in step S30, processor 81 determines whether the ray cast failed, i.e., whether the ray collided with an obstacle along the way. If the result of this determination is that the ray did not collide with an obstacle (the ray cast was successful) (NO in step S30), then in step S31 processor 81 stores information about the footprint that will become footprint Nj+1 in the temporary shortcut of the footprint to be processed. Then, the process proceeds to step S32. On the other hand, if the ray collided with an obstacle (the ray cast failed) (YES in step S30), the process of step S31 is skipped, and the process proceeds to the next step.

[0120] Returning to FIG. 24, if the result of the determination in step S26 above is that footprint Nj is the latest footprint (YES in step S26), then in step S28, processor 81 determines whether the contents of the shortcut calculation information for all footprints in footprint management data 315 are the latest footprints. In other words, it determines whether shortcut calculation has been completed for all footprints Ni. If the result of this determination is that none of the footprints are the latest footprints (NO in step S28), the process proceeds to step S32, which will be described later. On the other hand, if all of the footprints are the latest footprints (YES in step S28), processor 81 ends the shortcut creation process.

[0121] After the above-described ray casting process is completed, in step S32 of FIG. 28, the processor 81 sets (updates) the footprint (footprint Ni+1) next to the current footprint Ni to be processed as the next footprint to be processed.

[0122] Next, in step S33, processor 81 determines whether the variable "number of raycasts performed" has reached a predefined upper limit (two times in this example). If the result of this determination is that the upper limit has not yet been reached (NO in step S33), the process returns to step S23 and the process is repeated. On the other hand, if the upper limit has been reached (YES in step S33), processor 81 ends the shortcut creation process.

[0123] Returning to FIG. 23, when the shortcut creation process is completed, processor 81 ends the leader movement control process.

[0124] [Sub-character movement control processing] Returning to Fig. 22, once the leader movement control processing is completed, processor 81 then executes sub-character movement control processing in step S4. Figs. 26 and 27 are flowcharts showing the details of the sub-character movement control processing. In Fig. 26, first, in step S51, processor 81 calculates the position of each of the slots. For example, processor 81 calculates the coordinates of each slot based on the relative coordinates of each slot defined in advance, and the leader coordinates and posture vector.

[0125] Next, in step S52, processor 81 determines one sub-character to be the target of the processing described below. In other words, the processing of steps S53 to S66 described below is repeated sequentially the number of times equal to the number of sub-characters.

[0126] Next, in step S53, processor 81 determines whether the footprint following flag of the sub-character determined as the processing target (hereinafter referred to as the processing target character) is on. If the result of this determination is off (NO in step S53), movement control using the slot is performed (slot mode). Specifically, first, in step S54, processor 81 moves the processing target character a predetermined distance in the direction of the slot associated with the processing target character.

[0127] Next, in step S55, processor 81 determines whether the target character is in a "stuck state." A "stuck state" is a state in which the target character's progress toward a slot is hindered by an obstacle such as the terrain, as shown in FIG. 11 above. In this embodiment, whether the target character is in a stuck state is determined, for example, as follows. First, if the coordinates of the target character have not changed for a predetermined time or more (despite the above-described movement control being performed), the target character is determined to be in a stuck state. Also, if the target character has been in collision with (bumped into) an obstacle such as the terrain for a predetermined time or more, the target character is determined to be in a stuck state. Furthermore, in determining whether the predetermined time has elapsed, a counter for counting the time may be provided for each sub-character, and the count value may be compared with a predetermined comparison value. If the result of this determination is that the target character is not in a "stuck state" (NO in step S55), the process proceeds to step S58, which will be described later.

[0128] On the other hand, if the character is "stuck" (YES in step S55), in step S56, processor 81 sets the newest footprint among the footprints that exist within a predetermined range centered on the current position of the character being processed as the target footprint.

[0129] Next, in step S57, processor 81 sets the footprint following flag of the processing target character to ON. As a result, the movement control of the processing target character will be in footprint following mode from the next frame. Then, the process proceeds to step S58, which will be described later.

[0130] On the other hand, if the result of the determination in step S53 above is that the footprint following flag of the processing target character is on (YES in step S53), movement control using the footprints is performed (footprint following mode). Specifically, in step S59 of Figure 27, processor 81 calculates the direction of the target footprints as seen from the current position of the processing target character, and then processor 81 moves the processing target character a predetermined distance in the calculated direction.

[0131] Next, in step S60, processor 81 determines whether the character to be processed has reached the target footprint as a result of the movement of the character to be processed in step S59 above. If the result of this determination is that the character has not reached the target footprint (NO in step S60), the process proceeds to step S65, which will be described later.

[0132] On the other hand, if the target footprint has been reached (YES in step S60), processor 81 stores information indicating the target footprint as the "latest reached footprint" of the processing target character. Specifically, processor 81 reads the timestamp of the footprint data corresponding to the target footprint from footprint management data 315 and stores it as the "latest reached footprint" of the processing target character.

[0133] Next, in step S62, processor 81 determines whether or not the arrived target footprint has a shortcut. Specifically, it determines whether or not information about a footprint that is the shortcut destination is set in the temporary shortcut of the target footprint. If the result of the determination is that a shortcut exists (YES in step S62), processor 81 sets the footprint that is the shortcut destination as the target footprint in step S63. Then, the process proceeds to step S65.

[0134] On the other hand, if the result of the determination in step S62 above is that no shortcut is set for the arrived target footprint (NO in step S62), then in step S64 processor 81 extracts the footprint with the next most recent timestamp (the footprint that comes next in chronological order) from the multiple footprints stored in footprint management data 315. Then processor 81 sets the extracted footprint as the next target footprint.

[0135] Next, in step S65, processor 81 determines whether the distance from the current position of the processing target character to the target slot is equal to or less than a predetermined value. If the distance is equal to or less than the predetermined value (YES in step S65), then in step S66 processor 81 turns off the footprint following flag of the processing target character so that the processing target character will move toward the target slot in the next frame onwards. On the other hand, if the distance is not equal to or less than the predetermined value (NO in step S65), then the processing of step S66 is skipped. Then, the processing proceeds to step S58.

[0136] 26, next, in step S58, processor 81 determines whether the above processing has been completed for all sub-characters. As a result, if unprocessed sub-characters remain (NO in step S58), the process returns to step S52, where the next character to be processed is determined from among the unprocessed sub-characters, and the same processing is repeated. On the other hand, if processing has been completed for all sub-characters (YES in step S58), the sub-character movement control processing ends.

[0137] [Game image output processing] Returning to FIG. 22, once the sub-character movement control process is completed, then in step S5, processor 81 generates and outputs a game image that reflects the above process.

[0138] Next, in step S6, processor 81 determines whether the game end condition has been satisfied, and if not satisfied (NO in step S6), the process returns to step S2 and repeats. If the condition has been satisfied (YES in step S6), the game process ends.

[0139] This concludes the detailed description of the game processing according to this embodiment.

[0140] As described above, in this embodiment, the movement of the sub-character is basically controlled in slot movement mode, but if its progress is impeded by an obstacle, it switches to the footprint following mode. Furthermore, when moving in footprint following mode, shortcut control from one footprint to another as described above is also used. This makes it possible to shorten the time it takes for the sub-character to catch up with the leader character when moving in footprint following mode. It also makes it possible to express the sub-character's movement with more natural behavior.

[0141] Furthermore, although the processing of the above embodiment can be applied even when there is only one sub-character, it is particularly useful in game processing when there are many sub-characters. That is, when controlling the movement of many sub-characters individually so that they follow a leader character, by controlling their movement using footprints and shortcuts as described above, it is possible to control their movement more efficiently and with natural behavior, with less processing load.

[0142] Furthermore, as described above, in this embodiment, in the shortcut creation process, the footprints Ni to be processed are processed in a loop (after processing up to footprint N8, footprint N1 is processed next). Therefore, even if a footprint has once had its shortcut destination determined, by repeatedly processing it thereafter, it is determined whether a shortcut can be created closer to the leader character, and it becomes possible to create a shortcut based on the latest footprint status.

[0143] [Variations] In the above embodiment, a raycast process (called a Line Trace) is described as an example. Instead of a straight line, the raycast process may involve casting a sphere. In this case, the radius of the sphere may be the same as or slightly larger than the radius of the sub-character. This allows for a more accurate determination of whether a shortcut is possible. This allows for a wider determination than in the case of a straight line, preventing the sub-character from getting caught on an obstacle and being blocked while taking a shortcut from one footprint to another. Furthermore, when using such a sphere for raycasting, the path used as the shortcut is not limited to a straight line; a curved path may also be used within an area determined based on the diameter of the sphere.

[0144] In the above embodiment, an example was given in which the footprint coordinates of the footprint data were simply set as the target footprints in the footprint tracking mode. Alternatively, for example, the target coordinates may be set to be coordinates that are slightly offset from the footprint coordinates of the footprint data. In this case, the offset coordinates may be within a range that can be determined to prevent a "stuck state" from occurring based on the fact that the leader object has actually passed through.

[0145] Furthermore, in the above example of the shortcut creation process, the order in which raycasts are performed from one footprint to another is chronologically, starting with the oldest. That is, when casting a ray from footprint N1, raycasts are performed in the order of footprints N3, N4, N5, etc. In other embodiments, raycasts may be performed in order from the most recent footprint. For example, when casting a ray from footprint N1, raycasts may be performed in the order of footprint N10, footprint N9, footprint N8, etc. Once a footprint that can be used as a shortcut is found, further calculations are unnecessary. This may be more efficient, for example, in situations where the latest footprints are not updated frequently.

[0146] In the above embodiment, the shortcut creation process is executed for each frame. However, the execution interval of the shortcut creation process is not limited to this, and in other embodiments, the shortcut creation process may be executed every predetermined number of frames, such as every 5 frames or every 10 frames.

[0147] In the above embodiment, the number of raycasts performed in processing for one frame is limited to the above-mentioned upper limit. In other embodiments, the upper limit may be varied depending on the processing load at the time. For example, in a certain frame, raycasts are performed with a maximum of two times, but if the processing load in another frame is low and there is ample processing capacity, the upper limit may be set to four or five times, dynamically increasing the number of raycasts performed in the processing for that frame. The level of the processing load may also be determined, for example, depending on the number of objects (polygons) to be drawn in that frame. Similarly, the number of times each footprint is performed may also be varied depending on the processing load at the time.

[0148] In the above embodiment, a series of processes related to game processing is executed by a single main unit 2. In other embodiments, the series of processes may be executed in an information processing system including multiple information processing devices. For example, in an information processing system including a terminal device and a server device capable of communicating with the terminal device via a network, some of the processes may be executed by the server device. Furthermore, in an information processing system including a terminal device and a server device capable of communicating with the terminal device via a network, the main processes of the series of processes may be executed by the server device, and some of the processes may be executed by the terminal device. In the above information processing system, the server system may be composed of multiple information processing devices, and the processes to be executed on the server side may be shared and executed by the multiple information processing devices. A so-called cloud gaming configuration may also be used. For example, the main unit 2 may send operation data indicating user operations to a predetermined server, and the server may execute various game processes, with the execution results being streamed to the main unit 2 as video and audio. [Explanation of symbols]

[0149] 1. Game System 2 Main unit 3 Left Controller 4 Right Controller 81 processors 84 Flash memory 85 DRAM

Claims

1. An information processing program that causes a computer of an information processing device to execute information processing in which a first object moves in a virtual space and at least one second object moves in accordance with the movement of the first object, The computer a first object movement control means for controlling the movement of the first object to first object coordinates, which are coordinates in the virtual space, based on an operation input; a footprint coordinate storage means for repeatedly acquiring footprint coordinates, which are coordinates based on the first object coordinates, multiple times in accordance with movement control of the first object, and storing the footprint coordinates in chronological order; a determining means for determining whether or not a route connecting one of the plurality of footprint coordinates acquired by the footprint coordinate storage means with a footprint coordinate stored chronologically later than the one footprint coordinate is passable for each of the plurality of footprint coordinates acquired by the footprint coordinate storage means; a shortcut storage means for storing information specifying at least one of the routes determined by the determination means to be passable, in association with each of the plurality of footprint coordinates; causing the second object to function as a second object movement control means for controlling movement of the second object based on the plurality of footprint coordinates and information specifying the path; The determination means further determining whether a route connecting the one footprint coordinate and a footprint coordinate stored later in time series than the one footprint coordinate stored later in time series is passable; Information processing program.

2. 2. The information processing program according to claim 1, wherein said determining means determines whether a straight line route connecting said footprint coordinates is passable.

3. 2. The information processing program according to claim 1, wherein the shortcut storage means stores information specifying a route to the latest footprint coordinates in chronological order from among routes determined by the determination means to be passable for the one footprint coordinate.

4. The information processing program further causes the computer to a tracking movement control means for controlling the tracking movement of the second object so that the second object moves toward a movement target coordinate based on the first object coordinate; a detection means for detecting that the second object cannot reach the movement target coordinates during the following movement control; when it is detected by the detection means that the second object cannot reach the movement target coordinates, causing the second object to function as footprint following movement control means for controlling movement of the second object so that the second object moves toward one of the footprint coordinates; The information processing program according to claim 1, wherein the second object movement control means controls the movement of the second object so that after the footprint following movement control means controls the movement of the second object to reach one of the footprint coordinates, the second object follows the footprint coordinates in a chronological order.

5. the detection means determines that the second object cannot reach the movement target coordinates when the coordinates of the second object do not change for a predetermined time or more, or when it is detected that the second object continues to collide with an obstacle object for a predetermined time or more. The information processing program according to claim 4.

6. The information processing program according to claim 4, wherein the footprint-following movement control means, when it is detected that the second object cannot reach the movement target coordinates, controls the movement of the second object so that it moves toward the latest footprint coordinates that are within a predetermined range from the coordinates of the second object.

7. An information processing system that executes information processing in which a first object moves in a virtual space and at least one second object moves in accordance with the movement of the first object, a first object movement control means for controlling the movement of the first object to first object coordinates, which are coordinates in the virtual space, based on an operation input; a footprint coordinate storage means for repeatedly acquiring footprint coordinates, which are coordinates based on the first object coordinates, multiple times in accordance with movement control of the first object, and storing the footprint coordinates in chronological order; a determining means for determining whether or not a route connecting one of the plurality of footprint coordinates acquired by the footprint coordinate storage means with a footprint coordinate stored chronologically later than the one footprint coordinate is passable for each of the plurality of footprint coordinates acquired by the footprint coordinate storage means; a shortcut storage means for storing information specifying at least one of the routes determined by the determination means to be passable, in association with each of the plurality of footprint coordinates; a second object movement control means for controlling the movement of the second object based on the plurality of footprint coordinates and information specifying the path; The determination means further determining whether a route connecting the one footprint coordinate and a footprint coordinate stored later in time series than the one footprint coordinate stored later in time series is passable; Information processing system.

8. An information processing method for causing a computer of an information processing device to execute information processing in which a first object moves in a virtual space and at least one second object moves in accordance with the movement of the first object, The computer, Based on an operation input, the first object is moved and controlled to first object coordinates, which are coordinates in the virtual space; repeatedly acquiring footprint coordinates, which are coordinates based on the first object coordinates, in association with the movement control of the first object, and storing the footprint coordinates in chronological order; determining whether or not a route connecting one of the acquired footprint coordinates with a footprint coordinate stored chronologically later than the one footprint coordinate is passable for each of the acquired footprint coordinates; storing information specifying at least one of the routes determined to be passable in association with each of the plurality of footprint coordinates; controlling the movement of the second object based on the plurality of footprint coordinates and information specifying the path; In determining whether the route is passable, further determining whether a route connecting the one footprint coordinate and a footprint coordinate stored later in time series than the one footprint coordinate stored later in time series is passable; Information processing methods.

Citation Information

Patent Citations

  • Video game device and recording medium in which program is stored

    JP2001000742A

  • Game device, and game program

    JP2005287757A

  • Video game processing device, video game processing method, and video game processing program

    JP2007244536A

  • Information processing program, control method for information processing apparatus, the information processing apparatus, and information processing system

    JP2014233536A