Information processing program, information processing system, and information processing method
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-26
- Publication Date
- 2026-04-01
AI Technical Summary
Existing game technologies limit the movement range of non-player objects based on physical constraints of user input devices, such as sticks and touchpads, leading to unrealistic behavior and user experience issues.
Implementing a system where non-player objects are controlled using virtual mice that move within defined virtual ranges, transitioning between input and non-input states to mimic human-like behavior, allowing for more natural NPC movements.
Enhances user experience by making NPC movements more natural and reducing computational complexity, while maintaining realistic interactions with the game environment.
Smart Images

Figure 00000000_0001_ABST 
Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to information processing for games and the like. [Background technology]
[0002] Conventionally, there have been games in which non-player objects appear (for example, Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Publication No. 2020-185283 Summary of the Invention [Problem to be solved by the invention]
[0004] It is conceivable to operate non-player objects so that their behavior mimics that of a human. For example, when a player object is operated by a user using a stick input or touch input on a touchpad, the range of movement possible with the stick input or the range of touch input is subject to the physical constraints of the device. Therefore, it is conceivable that the non-player object is operated based on a virtual input within such a range of constraints. However, there is room for improvement in the appropriate operation of non-player objects in games using a user's mouse input. [Means for solving the problem]
[0005] For example, the following configuration example can be given.
[0006] (Configuration example 1) Configuration example 1 is an information processing program executed by a computer including one or more processors, which causes the processor to control a player object based on first mouse operation data acquired from a first mouse, and to control a non-player object based on the amount of movement of a first virtual mouse in an input state or a non-input state, which continuously moves within a first virtual range.
[0007] (Configuration example 2) In configuration example 2, in configuration example 1 above, when the processor does not need to control the non-player object based on the amount of movement of the first virtual mouse, the first virtual mouse moves to a predetermined position that is not the end of the virtual range in a non-input state.
[0008] (Configuration example 3) In configuration example 3, the predetermined position in configuration example 2 is the center position within the virtual range.
[0009] (Configuration example 4) In configuration example 4, in configuration example 2 or 3 above, when it becomes necessary to control a non-player object based on the amount of movement of the first virtual mouse while the first virtual mouse is moving to a predetermined position in a non-input state, the processor moves the first virtual mouse in an input state from the position of the first virtual mouse at the time when it becomes necessary to control the non-player object based on the amount of movement of the first virtual mouse.
[0010] (Configuration Example 5) Configuration example 5 is any one of configuration examples 1 to 4, in which the processor controls the player object based on second mouse operation data acquired from the second mouse, and controls the non-player object based on the amount of movement of the second virtual mouse in the input state, which continuously moves within the second virtual range in the input state or non-input state.
[0011] (Configuration Example 6) Configuration example 6 is the same as configuration example 5, except that the processor controls the movement of the player object based on the first mouse operation data and the second mouse operation data, and controls the movement of the non-player object based on the movement amount in the input state of the first virtual mouse and the movement amount in the input state of the second virtual mouse.
[0012] The configuration examples described above may be interpreted as information processing systems or information processing methods. [Brief explanation of the drawings]
[0013] [Figure 1] 1 is a block diagram showing an example of the internal configuration of a game device 10. [Figure 2] Schematic diagram showing an example of the appearance of the right controller 15 and the left controller 16. [Figure 3] A diagram for explaining an example of how to hold the right controller 15 and the left controller 16 and how to operate the mouse. [Figure 4] FIG. 1 is a diagram illustrating operation of a player character using a controller. [Figure 5] FIG. 1 is a diagram illustrating operation of a player character using a controller. [Figure 6] FIG. 1 is a diagram illustrating operation of a player character using a controller. [Figure 7] FIG. 10 is a diagram illustrating the operation of a non-player character using a virtual mouse. [Figure 8] FIG. 10 is a diagram illustrating the operation of a non-player character using a virtual mouse. [Figure 9] FIG. 1 is a diagram showing an example of various data stored in a storage unit (memory) 12. [Figure 10] FIG. 1 is a diagram showing an example of a flowchart of information processing; [Figure 11] FIG. 1 is a diagram showing an example of a flowchart of information processing; [Figure 12] FIG. 1 is a diagram showing an example of a flowchart of information processing; DETAILED DESCRIPTION OF THE INVENTION
[0014] An embodiment will be described below.
[0015] [Hardware configuration of information processing device] An information processing system for executing information processing according to this embodiment will be described. This information processing system is, for example, an information processing device such as a game device, a personal computer, a tablet terminal, a smartphone, a wearable terminal, or a server. Note that the information processing system according to this embodiment may be composed of multiple information processing devices, and may be composed of, for example, the above-mentioned game device and a server. In this embodiment, a game device will be described as an example of an information processing system and an information processing device.
[0016] FIG. 1 is a block diagram showing an example of the internal configuration of a game device 10 according to this embodiment. The game device 10 includes a processor 11. The processor 11 is an information processing unit that executes various types of information processing executed in the game device 10. The processor 11 may be composed of, for example, multiple processors or cores, typically multiple central processing units (CPUs) or cores, or may be composed of a system-on-a-chip (SoC) that includes multiple functions such as a CPU function and a graphics processing unit (GPU) function. The processor 11 executes various types of information processing by executing an information processing program (e.g., a game program) stored in a storage unit 12. The storage unit 12 may be, for example, an internal storage medium such as a flash memory or a dynamic random access memory (DRAM), or may be configured to use an external storage medium inserted into a slot (not shown). In this embodiment, the term "processor" may include at least a CPU, a GPU, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. In the present embodiment, the computer includes, for example, at least one processor and may further include a storage unit such as a memory. When the information processing system includes multiple information processing devices, each of the information processing devices may include at least one processor and may also include a storage unit.
[0017] The game device 10 includes a controller communication unit 13 for wireless and / or wired communication with the right controller 15 and the left controller 16. The controller communication unit 13 may be included in the processor 11.
[0018] A display unit 17 (e.g., a display) is connected to the game device 10 by wire or wirelessly via an image and sound output unit 14. The processor 11 outputs images and sounds generated by executing the above-described information processing, for example, via the image and sound output unit 14 to the display unit 17, which is also capable of sound output.
[0019] The right controller 15 is equipped with a mouse sensor 15c. The mouse sensor 15c acquires data that enables calculation of the movement of the right controller 15 due to mouse operation. This data is repeatedly transmitted to the controller communication unit 13 at appropriate timing.
[0020] The right controller 15 includes buttons 15d and an analog stick 15e. The analog stick (sometimes simply referred to as a "stick") 15e can be used as a direction control unit that can input directions. By tilting the stick 15e in any direction, the user can input a direction according to the tilt direction, and the input size can be determined according to the tilt angle. Data indicating the operation status of the buttons 15d and the stick 15e is repeatedly transmitted to the controller communication unit 13 at appropriate timing. The direction control unit may be a sliding stick, a directional key, or a set of four buttons.
[0021] The right controller 15 includes a processor 15a and a storage unit 15b. The processor 15a can acquire output data from, for example, the mouse sensor 15c, the buttons 15d, and the stick 15e, and can perform various processes using the acquired data. For example, the processor 15a can use the acquired data to determine various operations performed on the right controller 15.
[0022] The left controller 16 includes a processor 15a, a memory unit 15b, a mouse sensor 15c, a button 15d, and a stick 15e that are included in the right controller 15, as well as a memory unit 16b, a mouse sensor 16c, a button 16d, and a stick 16e that have similar functions.
[0023] The right controller 15, the left controller 16 and the display unit 17 may or may not be considered to be included in the game device 10.
[0024] FIG. 2(1) is a schematic diagram showing an example of the appearance of the right controller 15. As shown in FIG. 2(1), the right controller 15 has, as an example, a plate shape with the y-axis direction as the longitudinal direction (a rectangular parallelepiped or a shape similar thereto in which the thickness in the x-axis direction is smaller than the thickness in the y-axis direction and the thickness in the z-axis direction, and the thickness in the z-axis direction is smaller than the thickness in the y-axis direction) (see the mutually orthogonal xyz coordinate system shown in FIG. 2(1)). The right controller 15 may have other shapes. The y-axis may be called the longitudinal axis, and the x-axis and z-axis may be called the short axes.
[0025] As shown in FIG. 2(1), the right controller 15 has a mouse sensor opening 20 on its bottom. The mouse sensor opening 20 is an opening in a light guide path that guides light to the mouse sensor 15c located inside the opening 20. The mouse sensor 15c may be, for example, an optical mouse sensor and may include a light emitter and a light receiver. The light detected by the light receiver may be visible light or light of an invisible wavelength. The mouse sensor 15c acquires data that enables calculation of the movement of the controller 15 on a work surface when the controller 15 is placed with its bottom facing the work surface. This allows the right controller 15 to be used as a mouse. This mouse operation is sometimes referred to as "mouse operation." The mouse sensor may be, for example, a sensor that detects the movement of a trackball. The work surface is not limited to a flat surface, but may also be a curved surface, such as the surface of the user's thigh.
[0026] 2(1), the right controller 15 includes a button 15d, for example, at the tip of the front part of the upper part opposite the bottom. The stick 15e is provided, for example, on the left part, in a position that is easy to operate with the thumb when the user holds the right controller 15 in his right hand and operates the mouse (see FIG. 3).
[0027] As shown in Figure 2(2), the left controller 16 differs from the right controller 15 in that, for example, a stick (16e) is provided on the right side. Also, as shown in Figure 2(2), the mutually orthogonal xyz coordinate system defined on the left controller 16 has the z axis in the opposite direction to the mutually orthogonal xyz coordinate system defined on the right controller 15 (see Figure 2(1)). The right controller 15 may also be called the right mouse 15, and the left controller 16 may also be called the left mouse 16.
[0028] [Examples of how to hold the controller]
[0029] FIG. 3 is a diagram illustrating a method of mouse operation using the left controller 16 and the right controller 15. As shown in FIG. 3, the user holds the left controller 16 in the left hand 26, and the right controller 15 in the right hand 25, for example. As shown in FIG. 3, the user can perform mouse operation by moving the left controller 16 in, for example, the forward / backward direction (the y-axis direction in FIG. 2(2)) on the work surface, and can press the button 16d with the index finger or middle finger and operate the stick 16e with the thumb. The user can also perform mouse operation by moving the right controller 15 in, for example, the forward / backward direction (the y-axis direction in FIG. 2(1)) on the work surface, and can press the button 15d with the index finger or middle finger and operate the stick 15e with the thumb. Note that the left controller 16 and the right controller 15 can also be used for mouse operation in directions other than the forward / backward direction on the work surface.
[0030] The work surface of the left controller 16 and the work surface of the right controller 15 may not be a single work surface (i.e., a common work surface) but may be separate work surfaces. For example, the user may use the upper surface (front surface) of the left thigh as the work surface of the left controller 16 and the upper surface (front surface) of the right thigh as the work surface of the right controller 15.
[0031] [Games assumed in this embodiment] An overview of game processing executed by the game device 10 according to this embodiment will be described. As an example, the game assumed in this embodiment is a game in which a wheelchair placed in a field in a virtual space is moved. Specifically, it is a game in which a player character (a character object of a person in a wheelchair; sometimes referred to as a "PC") that moves in response to a user's operation moves and collects items, for example. In this game, non-player character objects (sometimes referred to as "NPCs") are placed in the field and are automatically controlled by a computer.
[0032] Note that games executed on the game device 10 are not limited to the above games. Games may be, for example, shooting games, sports games, or action games. Games may be games in which a user operates one controller with a mouse. Games may be games in which multiple users each operate an object. Multiple NPCs may be controlled in a game. For example, in a game in which one or more objects participate, one or more objects that are not operated by one or more users may be controlled as NPCs. For ease of explanation, the following description will be given assuming that one NPC is placed on the field in a single-player game played by one user.
[0033] [Outline of game processing in this embodiment] An outline of the operation of the game processing executed by the game device 10 according to this embodiment will be described. FIGS. 4 to 6 are diagrams for explaining an example of a method for a user to operate a PC. FIG. 4(1) is an example of a game image depicting the virtual space of this game. FIG. 4(1) displays a PC 100 operated by the user of the game device 10 and an NPC 200 automatically operated by the computer.
[0034] In this embodiment, the PC 100 can be moved by a mouse operation to move the left controller 16 in the y-axis direction (see FIG. 2(2)) and a mouse operation to move the right controller 15 in the y-axis direction (see FIG. 2(1)). This will be explained in detail below.
[0035] As shown in FIG. 4(2), when a mouse operation is performed to move the left controller 16 backward on the work surface (more precisely, in the positive y-axis direction in FIG. 2(2)), the left wheel 101 rotates in a direction in which the PC moves forward by an amount corresponding to the distance of the movement. At the same time, when a mouse operation is performed to move the right controller 15 backward on the work surface (more precisely, in the positive y-axis direction in FIG. 2(1)), the right wheel 102 rotates in a direction in which the PC moves forward by an amount corresponding to the distance of the movement. As a result, the PC 100 moves forward based on the amount of movement of the left controller 16 and the right controller 15. In the case of FIG. 4, the distance of movement of the mouse operation of the left controller 16 and the right controller 15 are the same, so the PC 100 moves forward in a straight line.
[0036] As shown in Fig. 5(1-b), when a mouse operation is performed to move the left controller 16 backward and at the same time a mouse operation is performed to move the right controller 15 backward a distance shorter than the movement distance of the left controller 16, the PC 100 moves forward while turning to the right, as shown in Fig. 5(1-a). As shown in Fig. 5(2-b), when a mouse operation is performed to move the right controller 15 backward and at the same time a mouse operation is performed to move the left controller 16 backward a distance shorter than the movement distance of the right controller 15, the PC 100 moves forward while turning to the left, as shown in Fig. 5(2-a).
[0037] As shown in Fig. 5(3-b), when a mouse operation is performed to move the left controller 16 backward and at the same time a mouse operation is performed to move the right controller 15 forward by the same distance as the movement of the left controller 16, the PC 100 rotates to the right on the spot, as shown in Fig. 5(3-a). As shown in Fig. 5(4-b), when a mouse operation is performed to move the left controller 16 forward and at the same time a mouse operation is performed to move the right controller 15 backward by the same distance as the movement of the left controller 16, the PC 100 rotates to the left on the spot, as shown in Fig. 5(4-a).
[0038] As shown in Fig. 6(5-b), when a mouse operation is performed in which the left controller 16 moves backward while the right controller 15 does not move backward or forward, the PC 100 rotates to the right around the contact point of the wheel 102 as the center, as shown in Fig. 6(5-a). As shown in Fig. 6(6-b), when a mouse operation is performed in which the right controller 15 moves backward while the left controller 16 does not move backward or forward, the PC 100 rotates to the left around the contact point of the wheel 101 as the center, as shown in Fig. 6(6-a).
[0039] As shown in Figure 6 (7-b), when a mouse operation is performed in which the left controller 16 and the right controller 15 move forward by the same distance, the PC 100 moves straight backward, as shown in Figure 6 (7-a). Note that mouse operations such as turning the head while moving backward can be seen from Figures 5 (1-b) (2-b) and the like, and therefore a description thereof will be omitted. The mouse operations described above are merely examples.
[0040] 7 and 8 are diagrams for explaining a method for automatically controlling the NPC 200 by a computer. FIG. 7(1) is an example of a game image depicting the virtual space of this game, in which the NPC 200 automatically controlled by the computer is displayed. For ease of explanation, FIG. 7 shows an image of the NPC 200 viewed from behind. In an actual game, an image of the NPC 200 viewed from behind may or may not be displayed.
[0041] In this embodiment, the concepts of a virtual left mouse 60 (sometimes referred to as a "virtual left mouse") and a virtual right mouse 61 (sometimes referred to as a "virtual right mouse") are introduced to control NPCs in the same manner as or similar to the mouse operation by the user described above. The virtual left mouse 51 and the virtual right mouse 61 are represented, as an example, by the movement of a point. The point moves continuously in the same manner as the movement of the coordinates indicated by the left controller 16 and the right controller 15 (in other words, it does not move to another position instantaneously). Note that the point does not need to be drawn by the game device. Furthermore, the movement of the point does not need to be actually calculated. For example, it is sufficient if a parameter corresponding to the position of the point is calculated at the required timing. Hereinafter, a point that moves in this manner may be referred to as a "virtual mouse."
[0042] As shown in FIG. 7(2), the virtual left mouse 51 can move within a virtual movement range 50 (sometimes referred to as a "virtual range") for the virtual left mouse 51, and the virtual right mouse 61 can move within a virtual range 60 for the virtual right mouse 61. The virtual range 50 and the virtual range 60 are straight lines, and, for example, the center is at 0 (zero) cm, the back end is at +12 cm, and the front end is at -12 cm. The back and front directions correspond to the back and front directions (see FIG. 4) when the user operates the controller with a mouse. For example, when the virtual mouse is moved forward 12 cm, the same behavior occurs in the NPC 200 as in the PC 100 when the user moves the controller forward 12 cm.
[0043] The virtual left mouse 50 and the virtual right mouse 60 are set to one of an "input state" and a "non-input state" as a state related to input. The input state is a state in which the wheel of the NPC 200 rotates in response to the movement of the virtual mouse, causing the NPC 200 to move, etc., and corresponds to, for example, a state in which the user is operating the controller as a mouse on the work surface. The non-input state is a state in which the movement of the virtual mouse does not affect the rotation of the wheel of the NPC 200 or the movement of the NPC 200, and corresponds, for example, to a state in which the user is lifting the controller off the work surface, such as a state in which the user returns the controller to its original position on the work surface and lifts and moves the controller off the work surface in order to operate the mouse again. In this embodiment, a virtual mouse in an input state is indicated by a black circle, and a virtual mouse in a non-input state is indicated by a white circle (see FIG. 7).
[0044] As shown in FIG. 7(1), a target position 300 to which the NPC 200 is to move is set. The target position 300 may be, for example, the position of the PC 100 or the position of an item to be acquired in the game. The target position 300 may be set so as to gradually approach the final target position. The target position 300 is set based on the game situation. As an example, a target may be set based on the state of the virtual space, the positions and states of the NPC 200 and the PC 100, the score, etc., and the target position 300 may be set based on the target. For example, the target position 300 is set to the next position when the NPC 200 reaches the target position 300. Furthermore, the target position 300 may be reset, for example, if an obstacle (e.g., the PC 100) moves between the NPC 200 and the target position 300 before the NPC 200 reaches the target position 300. The NPC 200 is controlled to move toward the target position 300. This will be described in detail below. Although the target position 300 is shown in FIG. 7(1) for the sake of convenience, the target position 300 does not have to be displayed.
[0045] As shown in FIG. 7(2), when a virtual mouse operation is performed to move the virtual left mouse 51 toward the back of the virtual area 50, the left wheel 201 rotates in a direction in which the NPC 200 moves forward by an amount corresponding to the distance of the movement. At the same time, when a virtual mouse operation is performed to move the virtual right mouse 61 toward the back of the virtual area 60, the right wheel 202 rotates in a direction in which the NPC 200 moves forward by an amount corresponding to the distance of the movement. As a result, the NPC 200 moves forward based on the amount of movement of the virtual left mouse 51 and the virtual right mouse 61. In the case of FIG. 7(2), the movement distance of the virtual left mouse 51 due to virtual mouse operation is the same as the movement distance of the virtual right mouse 61 due to virtual mouse operation, so the NPC 200 moves forward in a straight line. In this embodiment, the movement speed of the virtual mouse is variable, but may also be constant. The movement speed may be variable when the virtual mouse is in an input state and constant when it is in a non-input state. An upper limit may be set for the movement speed of the virtual mouse.
[0046] If the virtual mouse reaches the edge of the virtual range in the input state, it cannot move beyond that edge. If it is necessary to move the NPC 200 further forward, the virtual mouse must first be moved in the opposite direction in the non-input state, and then moved in the same direction again in the input state. If the virtual mouse were moved in the opposite direction in the input state, the NPC 200 would slow down or even retreat. For example, as shown in Figure 7(3), the virtual left mouse 51 and virtual right mouse 61 are temporarily put into the non-input state and moved forward. Then, as shown in Figure 7(4), the virtual left mouse 51 and virtual right mouse 61 are put into the input state again and moved backward. By repeating this control, the NPC 200 can be moved forward in a manner similar to that of a user operating the PC 100 by mouse operations using the left controller 16 and right controller 15.
[0047] While FIG. 7 shows an example in which the NPC 200 moves forward, the NPC 200 can perform a variety of actions similar to, for example, the PC 100. For example, the NPC 200 can perform actions similar to the PC 100 in FIGS. 5 and 6. Such actions of the NPC 200 are realized by the virtual left mouse 51 and the virtual right mouse 61 moving in the same manner as, for example, the left controller 16 and the right controller 15 shown in FIGS. 5 and 6. In other words, by the virtual left mouse 51 and the virtual right mouse 61 moving in a manner that imitates the actual left controller 16 and the right controller 15, the NPC 200 is controlled in the same manner as the PC 100, which is controlled based on the movement of the actual left controller 16 and the right controller 15.
[0048] When a user operates a controller with a mouse, theoretically, the range of movement of the controller is unlimited. However, in reality, the range is subject to physical constraints, such as the surface of a desk or the reach of an arm. For example, when the controller reaches the edge of the range, the user moves the controller toward the center of the range, either floating or not, and then resumes mouse operation. According to the above-described embodiment, the NPC 200 is controlled based on virtual mouse operation using a virtual mouse that moves within the virtual range in an input or non-input state. This makes the behavior of the NPC 200 more natural, similar to that of the PC 100, thereby improving the user experience. Furthermore, while a massive amount of calculations may be required to cause the NPC 200 to behave as if based on actual user operation, according to this embodiment, the virtual mouse has limited options for the direction and state (input or non-input state) that it can move at any given time, thereby reducing the amount of calculations required.
[0049] Here, as shown in FIG. 7(3), when the left and right virtual mice 51, 61 are moving to the center in a non-input state, the target position 300 may be changed. For example, consider a case where the NPC 200 needs to move forward to the right. In this case, the left and right virtual mice 51, 61 can be moved again in an input state before returning to the center. In this way, the moving mode of the virtual mouse may be changeable even during movement, similar to mouse operation by a real user.
[0050] As described above, when moving the NPC 200 forward to the right, various modes are possible for the input state and movement direction of the left and right virtual mice 51, 61. For example, as shown in FIG. 8(1), the virtual left mouse 51 may move backward in an input state, while the virtual right mouse 61 may continue to move toward the center in a non-input state. Alternatively, as shown in FIG. 8(2), the virtual left mouse 51 may move backward in an input state, while the virtual right mouse 61 may move backward in an input state, but at a slower speed than the virtual left mouse 51. Alternatively, as shown in FIG. 8(3), the virtual left mouse 51 may continue to move toward the center in a non-input state, while the virtual right mouse 61 may move forward in an input state. If the NPC 200 is moving forward by inertia, the NPC 200 can turn right while moving forward.
[0051] It should be noted that, even for each of the actions shown as examples in FIGS. 5 and 6, the input states and movements of the virtual left mouse 51 and the virtual right mouse 61 required to realize the action are not limited to one.
[0052] In this way, for example, when there are multiple movement modes of the virtual mouse for reaching a certain target position 300 or its surroundings, one of the movement modes may be selected based on a predetermined process. For example, the movement mode of the NPC 200 that can reach the target position 300 most quickly may be selected. Note that, for example, difficulty levels are set for the game, and the higher the difficulty level, the faster the movement mode of the NPC 200 that reaches the target position 300 may be selected.
[0053] In this embodiment, for example, when the virtual mouse is in an input state and is located outside the center position of the virtual range (i.e., position 0), if it becomes unnecessary to control the movement or direction change of the NPC 200 (for example, when the NPC 200 arrives at the target position 300), the virtual mouse is returned to the center position in a non-input state. This is similar to the behavior of a user who moves the controller to a position where it is easy to operate in either direction in preparation for the next mouse operation when there is no need to operate the mouse. By returning the virtual mouse to the center position, if it becomes necessary for the NPC 200 to move, etc. thereafter, the NPC 200 can easily move in either direction. As a result, the user experience can be improved. Note that the position to which the virtual mouse is returned is not limited to the center position and may be a position other than the edge of the virtual range.
[0054] Note that, as in the example shown in Figure 7, when the virtual mouse needs to be moved in the same direction multiple times in an input state, the destination to which it is returned in a non-input state during that time is not limited to the center position. For example, as shown in Figure 7(2), when the virtual mouse has been moved to +12 cm and NPC 200 needs to move or accelerate a little further in the backward direction, the virtual mouse may be returned to, for example, +10 cm in a non-input state, and then moved again in the backward direction by 2 cm to +12 cm in an input state. Alternatively, the virtual mouse may be returned from the +12 cm position to the -12 cm position in a non-input state.
[0055] Furthermore, for example, when the virtual mouse is returned to the center position of the virtual range in a non-input state, the position of the virtual mouse may be calculated every frame. Alternatively, while the virtual mouse is treated as moving toward the center position in a non-input state, the position of the virtual mouse may not be calculated, and the current position of the virtual mouse may be calculated when it becomes necessary to move the virtual mouse in a moving state. For example, the current position of the virtual mouse may be calculated by multiplying the time from when the virtual mouse entered a non-input state and started moving toward the center position to the present by the moving speed of the virtual mouse, and then calculating the calculated distance and the position where the virtual mouse started moving toward the center position. Furthermore, a predetermined waiting time or a calculated waiting time may be set before the virtual mouse is returned to the center position of the virtual range in a non-input state. The virtual mouse may not be able to move in an input state during the waiting time. After the waiting time has elapsed, the virtual mouse is located, for example, in the center position of the virtual range. In this way, whether the position of the virtual mouse is calculated constantly, for example, every frame, or at a certain timing, the virtual mouse can be said to be moving substantially continuously.
[0056] [Information processing in this embodiment] An example of information processing according to this embodiment will be described with reference to FIGS.
[0057] [About data usage] The following describes various types of data stored in the storage unit 12. Fig. 9 shows an example of data stored in the storage unit 12 of the game device 10. As shown in Fig. 9, the storage unit 12 is provided with at least a program storage area 300 and a data storage area 400.
[0058] The program memory area 300 stores at least a program 301. The data memory area 400 stores at least mouse sensor data 401, button / stick data 404, target position data 405, virtual mouse data 406, object data 407, image data 408, and virtual camera control data 409.
[0059] The program 301 is a game program for executing game processing.
[0060] The mouse sensor data 401 is data relating to the outputs of the mouse sensor 15c and the mouse sensor 16c, and includes dy / dz data 403.
[0061] The dy / dz data 403 is output data from the mouse sensors 15c and 16c, and indicates the movement distance per frame time (sometimes referred to as "dy / dz") in the y-axis and z-axis directions of the controller coordinate system (i.e., the yz plane; see FIGS. 2(1) and 2(2)) relative to the work surface, etc. Note that dy / dz may be calculated from the output data of the mouse sensors by a processor provided in the controller, the processor 11, etc.
[0062] The button / stick data 404 is data that indicates the operating state of the buttons and sticks of the controller.
[0063] The target position data 405 is data that indicates the position in the virtual space of the target position 300 described with reference to FIG.
[0064] The virtual mouse data 406 is data relating to the virtual left mouse 51 and the virtual right mouse 61 described using Figure 7 etc., and indicates whether the virtual left mouse 51 and the virtual right mouse 61 are in an input state or a non-input state, where they are located in the virtual range, whether they are moving or not, and in what direction they are moving, etc.
[0065] The object data 407 is data on virtual objects placed in a virtual space, such as the PC 100, NPC 200, the ground, buildings, items, etc. The object data 407 includes information on the position and posture of each virtual object.
[0066] The image data 408 is image data such as animation images, backgrounds, virtual effects, and the like.
[0067] The virtual camera control data 409 is data for controlling a virtual camera that is placed in the virtual space and captures images of the virtual space.
[0068] In addition, various data used in drawing processing etc. are stored as needed in the storage unit 12. As an example, the target position data 405, the virtual mouse data 406, the object data 407, the image data 408, and the virtual camera control data 409 may be considered as part of the program.
[0069] [Example of detailed information processing] An example of game processing according to this embodiment will be described with reference to a flowchart. FIGS. 10 to 12 are example flowcharts showing details of game processing according to this embodiment. The following mainly describes processing characteristic of this embodiment, and descriptions of other processing, such as drawing processing, will generally be omitted. The execution order of each processing is an example. For example, multiple processing may be executed in parallel, or some processing may be executed in the reverse order to that described. For convenience of explanation, the processing is divided into units, but these division units are arbitrary. Multiple processing may be integrated, or one processing may be divided into multiple parts. A processing may include other processing, or may not include some processing. The processing in FIGS. 10 to 12 is executed, for example, at predetermined intervals (for example, a processing frame interval executed every 1 / 60 seconds).
[0070] When this game process starts, processor 11 executes player character processing in step S100, after which the process proceeds to step S200.
[0071] In step S200, processor 11 executes non-player character processing, after which the processing returns to step S100.
[0072] FIG. 11 is an example of a flowchart of the player character processing in step S100. In step S101 of FIG. 11, processor 11 rotates left wheel 101 of PC 100 based on mouse sensor data 401. For example, processor 11 calculates the direction and distance of mouse operation in the y-axis direction (see FIG. 2(2)) of left controller 16 based on dy / dz data 403 output from mouse sensor 16c, and rotates left wheel 101 according to the direction and distance. Thereafter, processing proceeds to step S102. In step S102, right wheel 102 is similarly controlled. After step S102, processing proceeds to step S103.
[0073] In step S103, the processor 11 controls the movement of the PC 100 based on the rotation of the left wheel 101 executed in step S101 and the rotation of the right wheel 102 executed in step S102. Furthermore, when no wheel rotation is executed in step S101 and / or step S102, the processor 11 may control the movement of the PC 100 so that the PC 100 moves by inertia. Note that the PC 100 does not need to be controlled by physical calculation based on the rotation of the wheels, and may be controlled by appropriate calculation based on parameters related to the rotation speeds of the left and right wheels. The PC 100 may also be controlled based on the operation of the buttons or sticks on the controller. Thereafter, the process proceeds to step S200 in FIG. 10 .
[0074] Figure 12 is an example of a flowchart of the non-player character processing in step S200. In step S201 of Figure 12, processor 11 performs target position control processing. For example, processor 11 determines or changes target position 300 as described in the description of Figure 7, and updates target position data 405. Thereafter, the process proceeds to step S202.
[0075] In step S202, processor 11 determines whether the virtual mouse is being operated so as to move NPC 200 toward target position 300. For example, when NPC 200 is stationary or when target position 300 has been changed from its previous position, the determination in step S202 is NO. If the determination in step S202 is YES, the process proceeds to step S204, and if the determination is NO, the process proceeds to step S203.
[0076] In step S203, processor 11 determines how to operate the virtual mouse so that NPC 200 reaches target position 300. The virtual mouse operation may include the state (input state or non-input state), the movement direction, and the movement amount. The determined virtual mouse operation is the movement of the virtual mouse over multiple frames until NPC 200 reaches target position 300. Note that the virtual mouse operation may be the movement of the virtual mouse in the current processing frame. In this case, the virtual mouse operation is determined for each frame. Then, processing proceeds to step S204.
[0077] In step S204, processor 11 controls NPC 200 based on the virtual mouse operation determined in the latest processing of step S203. Note that NPC 200 may be controlled to move according to inertia or to behave in the same manner as PC 100, which is executed in response to mouse operations or button operations on the controller. Thereafter, processing returns to step S100 in FIG. 10.
[0078] [Variations] The virtual range in which the virtual mouse operation is performed may be a two-dimensional range. For example, in the above-described embodiment, an object (player object, PO) operated by the user may be controlled by mouse operation on the yz plane of the controller (see FIG. 2), and an object (non-player object, NPO) automatically controlled by the computer may be controlled by virtual mouse operation corresponding to the mouse operation. The two-dimensional range may be limited to, for example, a square, rectangular, or circular range.
[0079] The PO and NPO are not limited to objects in which a character sits in a wheelchair, but may be, for example, objects walking on the ground, objects flying in the air, crosshairs indicating the direction in which a bullet is fired, mouse cursors, etc.
[0080] The PO and the NPO may be different types of objects, and the NPO may be a type of object that cannot be operated by the user.
[0081] The behavior of the PO in response to mouse operation of the controller and the behavior of the NPO in response to movement of the virtual mouse are not limited. For example, the PO may face left or right in response to mouse operation of the controller left or right, or the NPO may face left or right in response to movement of the virtual mouse left or right. By controlling the virtual mouse as in the above embodiment, the NPO is prevented from performing actions that are unrealistic for a PO in response to user operation, such as large-angle direction changes or continuous direction changes in one direction in a short period of time.
[0082] As an example of the input and non-input states of the virtual mouse, an example corresponding to a state in which the controller is operated with the mouse on the work surface and a state in which the controller is floating above the work surface has been described. However, the states corresponding to the input and non-input states are not limited to these. For example, consider a game in which the PO performs a specific action when the controller is operated with the mouse while a specific button on the controller is pressed, and the PO does not perform an action corresponding to the operation even when the controller is operated with the mouse when the specific button is not pressed. In this case, the input and non-input states of the virtual mouse may correspond to the above-mentioned button pressed and button not pressed states, respectively. The input state of the virtual mouse is a state in which some effect occurs in the game in response to mouse operation, and the non-input state of the virtual mouse may be a state in which mouse operation does not have any effect in the game.
[0083] In the above, the input-related state of the virtual mouse may include four states: a grounded state, a non-grounded state, a button-pressed state, and a button-unpressed state. The non-grounded state may be an example of a non-input state, the button-unpressed state may be an example of a non-input state, or the non-grounded state and button-unpressed state may be examples of a non-input state. In addition, in the above, the input-related state of the virtual mouse may include three states: a grounded state (button pressed), a grounded state (button unpressed), and a non-grounded state. For example, when the virtual mouse is moved in the grounded state (button unpressed), the NPO may behave differently from when the button is pressed. In this case, the grounded state (button pressed) and the grounded state (button unpressed) are each an example of an input state, and the non-grounded state may be an example of a non-input state.
[0084] Furthermore, in the above-described embodiment, at least a part of the processing executed by the processor 11 may be executed by the processors (15a, 16a) of the controller, or may be executed by another processor.
[0085] The game device 10 is an example of an information processing device. The game device 10 is a device capable of executing a game. A personal computer or tablet terminal capable of executing a game is also an example of a game device. The information processing device may be a device that does not execute a game. Similarly, the information processing system may be a system that does not execute a game.
[0086] The shape of the controller is an example, and other shapes are also possible. Furthermore, the controller may not have some operation units, or may have other operation units.
[0087] The various data in the above-described embodiment are merely examples, and in each process, data converted into other data may be used as appropriate.
[0088] In this specification, even when the same term is used to describe data, the content of the data does not necessarily match exactly. At least, if one piece of data and another piece of data both convey specific information, they may be considered to be the same data. Furthermore, names given to data are for convenience only and do not limit the scope or technical meaning of the data.
[0089] In this specification, a program that causes a computer to execute a process may be a single program or a group of programs including multiple programs. In this disclosure, "a program" does not necessarily mean a single program, but may include a group of programs. Furthermore, "a program" does not necessarily have to be stored in its entirety in a single device. "A program" may refer to, for example, the entirety of multiple programs stored in multiple devices included in a computer.
[0090] In this specification, the term "computer" does not necessarily refer to a single device, but may include a whole of multiple devices connected by wire or wirelessly.
[0091] At least a part of the series of processes described above may be executed by a server-side device in an information processing system including a terminal-side device and a server-side device capable of communicating with the terminal-side device via a network. Note that the server may be configured by a plurality of information processing devices, and the processes may be shared and executed by the plurality of information processing devices.
[0092] Although the present embodiment and its modifications have been described above, these descriptions are merely illustrative in all respects and are not intended to limit the scope of the present invention. It goes without saying that various improvements and modifications can be made to the above-described embodiment and its modifications. [Explanation of symbols]
[0093] 10 Information processing system (game device) 11, 15a, 16a processors 12, 15b, 16b Memory 15, 16 Controller 50, 60 virtual range 51, 61 Virtual Mouse 100 player characters 200 non-player characters
Claims
1. An information processing program that causes a computer containing one or more processors to perform processing, The aforementioned process is, To control the player object based on the first mouse operation data obtained from the first mouse, The first virtual mouse is moved continuously within the first virtual range, either in an input state or a non-input state. An information processing program that includes controlling a non-player object based on the amount of movement of the first virtual mouse in the input state.
2. The aforementioned process is, The information processing program according to claim 1, which includes moving the first virtual mouse to a predetermined position that is not at the edge of the first virtual range when it is not necessary to control the non-player object based on the amount of movement of the first virtual mouse.
3. The information processing program according to claim 2, wherein the predetermined position is the central position within the first virtual range.
4. The aforementioned process is, The information processing program according to claim 2, which includes moving the first virtual mouse in the input state from the position of the first virtual mouse at the time when it becomes necessary to control the non-player object based on the amount of movement of the first virtual mouse when the first virtual mouse is moving to the predetermined position in the non-input state.
5. The aforementioned process is, The player object is controlled based on the second mouse operation data obtained from the second mouse. The second virtual mouse is moved continuously within the second virtual range, either in an input state or a non-input state. The information processing program according to claim 1, comprising controlling the non-player object based on the amount of movement of the second virtual mouse in the input state.
6. The aforementioned process is, Based on the first mouse operation data and the second mouse operation data, move the player object. The information processing program according to claim 5, comprising moving the non-player object based on the amount of movement in the input state of the first virtual mouse and the amount of movement in the input state of the second virtual mouse.
7. An information processing system comprising one or more processors, The aforementioned processor, Based on the first mouse operation data obtained from the first mouse, the player object is controlled. The first virtual mouse is moved continuously within the first virtual range, either in an input state or a non-input state. An information processing system that controls a non-player object based on the amount of movement of the first virtual mouse in the input state.
8. An information processing method implemented by a computer including one or more processors, Based on the first mouse operation data obtained from the first mouse, the player object is controlled. The first virtual mouse is moved continuously within the first virtual range, either in an input state or a non-input state. An information processing method for controlling a non-player object based on the amount of movement of the first virtual mouse in the input state.