Game processing method, game system, and game program
The game system with dual controllers and integrated mouse sensors addresses the lack of innovative control methods by offering simultaneous and relative movement modes, enhancing user interaction and operational clarity in game processing.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- NINTENDO CO LTD
- Filing Date
- 2024-11-26
- Publication Date
- 2026-06-05
AI Technical Summary
Existing game controllers lack innovative ways to utilize dual mouse sensors for enhanced game processing, particularly in controlling multiple virtual objects with precise positional relationships and movements.
A game processing method using a game system with dual controllers, each equipped with a mouse sensor, allowing for simultaneous and relative movement modes to control virtual objects, where the controllers can be used separately or together, with integrated data processing to manage complex movements and deformations.
Enhances user interaction and operational clarity by enabling synchronized and independent control of virtual objects, improving gameplay experience through varied movement modes and reducing operational confusion.
Smart Images

Figure 2026092556000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to game processing using a novel game controller.
Background Art
[0002] Conventionally, game controllers have been known (for example, Patent Document 1).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the above technology, there was room to provide users with novel game processing using a controller having a mouse sensor.
Means for Solving the Problems
[0005] In view of the above points, for example, the following configuration examples can be cited.
[0006] (Configuration 1) Configuration 1 is a game processing method implemented by a computer including at least one processor, wherein the processor is caused to acquire first data, including first mouse sensor data based on the output of the first mouse sensor, from a first controller held in the user's right hand and having a first mouse sensor; to acquire second mouse sensor data based on the output of the second mouse sensor, from a second controller held in the user's left hand and having a second mouse sensor; to move a first virtual object based on the first mouse sensor data; to move a second virtual object based on the second mouse sensor data; and to move at least one of the first virtual object and the second virtual object to a position where the first virtual object is located to the right of the second virtual object, based on at least one of the first data or the second data.
[0007] (Configuration 2) Configuration 2 is the same as Configuration 1 above, wherein at least one of the first controller and the second controller includes at least one of a button or a directional input unit, and at least one of the first data or the second data includes button data based on the button being pressed or directional input unit data based on the operation of the directional input unit, and based on the button data or directional input unit data, at least one of the first virtual object and the second virtual object may be moved to a position that has the first positional relationship described above.
[0008] (Composition 3) Configuration 3 may switch between a first movement mode in which the first virtual object and the second virtual object can move relative to each other, and a second movement mode in which the first virtual object and the second virtual object are moved while maintaining a second positional relationship, based on at least one of the first mouse sensor data and the second mouse sensor data.
[0009] (Composition 4) In configuration 4, the first positional relationship and the second positional relationship may be the same as in configuration 3 described above.
[0010] (Composition 5) Configuration 5 allows the amount of movement of the first virtual object and the second virtual object in the second movement mode to be larger when calculated based on both the first mouse sensor data and the second mouse sensor data than when calculated based on only one of the first mouse sensor data or the second mouse sensor data.
[0011] (Composition 6) In configuration 6, in configuration 5 described above, in the second movement mode, the movement direction and amount of the first virtual object and the second virtual object may be calculated as the sum of the values calculated from the first mouse sensor data and the second mouse sensor data, respectively.
[0012] (Composition 7) Configuration 7 is one of the above configurations 3 to 6, in which, in the first movement mode, the first virtual object and the second virtual object may each be able to move within a predetermined range with a predetermined position as the reference position.
[0013] (Composition 8) Configuration 8 may, in any of the above configurations 3 to 7, deform a predetermined area in the first movement mode according to the position of at least one of the first virtual object and the second virtual object, and move the predetermined area together with the first virtual object and the second virtual object in the second movement mode.
[0014] (Composition 9) Configuration 9 may produce a predetermined in-game effect when a predetermined area and a third virtual object are in a predetermined positional relationship in the above configuration 8.
[0015] (Composition 10) In Configuration 10, in any of the above Configurations 1 to 9, while moving at least one of the first virtual object and the second virtual object to a position with the first positional relationship, the movement control of the first virtual object and the second virtual object based on the first mouse sensor data and the second mouse sensor data may be temporarily restricted.
Brief Description of the Drawings
[0016] [Figure 1] A diagram showing an example of a state where the left controller 3 and the right controller 4 are attached to the main body device 2 [Figure 2] A diagram showing an example of a state where the main body device 2, the left controller 3, and the right controller 4 are used separately [Figure 3] A six-sided view showing an example of the left controller 3 [Figure 4] A six-sided view showing an example of the right controller 4 [Figure 5] A block diagram showing an example of the internal configuration of the main body device 2 [Figure 6] A block diagram showing an example of the internal configurations of the main body device 2, the left controller 3, and the right controller 4 [Figure 7] An example of the operation mode of the controller [Figure 8] An example of a game screen [Figure 9] An example of the posture of the controller [Figure 10] An example of how to move the controller [Figure 11] An example of a game screen [Figure 12] An example of a game screen [Figure 13] An example of a game screen [Figure 14] An example of a game screen [Figure 15] An example of the posture of the controller [Figure 16] An example of how to move the controller [Figure 17] An example of a game screen [Figure 18] An example of a game screen [Figure 19] An example of how to move the controller [Figure 20] Example of a game screen [Figure 21] Example of a game screen [Figure 22] An example of various data stored in the DRAM 85 of the main unit 2. [Figure 23] An example of the data structure of operation data 615 [Figure 24] A flowchart illustrating the details of the game processing. [Figure 25] Flowchart showing details of the second movement mode processing [Figure 26] Flowchart showing details of the second movement mode processing [Figure 27] Flowchart showing details of the second movement mode processing [Modes for carrying out the invention]
[0017] The following describes one embodiment. Figure 1 shows an example of the appearance of the game system according to this embodiment. An example of the game system 1 in this embodiment includes a main unit (information processing device; in this embodiment, it functions as the main unit of the game device) 2, a left controller 3, and a right controller 4. The left controller 3 and the right controller 4 are detachable from the main unit 2. In other words, as shown in Figure 1, 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. Also, as shown in Figure 2, the game system 1 can be used with the main unit 2 and the left controller 3 and right controller 4 as separate units. In the following, the left controller 3 and the right controller 4 may be collectively referred to as "controllers."
[0018] The main unit 2 includes a display 12. The display 12 displays images generated by the main unit 2. The display 12 is, for example, a liquid crystal display (LCD).
[0019] Next, the controller will be described. Figure 3 is a six-view drawing showing an example of the left controller 3. As shown in Figure 3, the left controller 3 has a vertically elongated shape, that is, a shape that is long in the z-axis direction as shown in Figure 3. When the left controller 3 is attached to the main unit 2, it has a protrusion 40 that fits into a recess (not shown) of the main unit 2. When the left controller 3 is removed from the main unit 2, it can also be held in a vertically elongated orientation. When the left controller 3 is held in a vertically elongated orientation, it has a shape and size that allows it to be held with one hand, especially the left hand. The left controller 3 can also be held in a horizontally elongated orientation, and when held in a horizontally elongated orientation, it may be held with both hands.
[0020] The left controller 3 is equipped with a left analog stick (sometimes referred to as the "left stick") 32, which is an example of a directional input device. As shown in Figure 2, the left stick 32 is located on the front of the left controller 3. The left stick 32 can be used as a directional input unit that can input directions. The user can input directions according to the direction of tilt by tilting the left stick 32, and can input an amount of force according to the angle of tilt.
[0021] The left controller 3 is equipped with various operation buttons. On its front, the left controller 3 is equipped with a right direction button 33, a down direction button 34, an up direction button 35, a left direction button 36, a record button 37, and a minus button 47. The left controller 3 is equipped with an L button 38 and a ZL button 39 on its top and left sides. Note that the L button 38 and ZL button 39 may be provided only on the top side of the left controller 3, or only on the left side. The left controller 3 is equipped with buttons 43 and 44 on a protrusion 40 on its right side.
[0022] The left controller 3 is provided with a mouse sensor aperture 70 on a protrusion 40 on its right side. The mouse sensor aperture 70 is an aperture that guides light to a mouse sensor 71 located inside it. The mouse sensor 71 is, for example, a general mouse sensor (e.g., an optical or laser mouse sensor), and acquires data for calculating the movement (direction of movement, distance of movement, speed of movement, etc.) of the left controller 3 on the work surface, which is positioned with its right side (i.e., the upper surface of the protrusion 40) facing the work surface.
[0023] Furthermore, the left controller 3 is equipped with a terminal 72 on the protrusion 40 on its right side for wired communication between the left controller 3 and the main unit 2.
[0024] Figure 4 is a six-view drawing showing an example of the right controller 4. As shown in Figure 4, the right controller 4 has a vertically elongated shape, that is, a shape that is long in the z-axis direction as shown in Figure 4. The right controller 4 has a protrusion 62 that fits into a recess (not shown) of the main unit 2 when it is attached to the main unit 2. When the right controller 4 is removed from the main unit 2, it can also be held in a vertically elongated orientation. When the right controller 4 is held in a vertically elongated orientation, it has a shape and size that allows it to be held with one hand, especially the right hand. The right controller 4 can also be held in a horizontally elongated orientation, and when held in a horizontally elongated orientation, it may be held with both hands.
[0025] The right controller 4 has a right analog stick (sometimes referred to as the "right stick") 52 on its front as a directional input section. 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 has various operation buttons. On its front, the right controller 4 has an A button 53, a B button 54, an X button 55, a Y button 56, a + (plus) button 57, and a home button 58. The right controller 4 has an R button 60 and a ZR button 61 on its top and right sides. Note that the R button 60 and ZR button 61 may be provided only on the top surface of the right controller 4, or only on the right side. The right controller 4 has buttons 65 and 66 on a protrusion 62 on its left side.
[0026] The right controller 4 is provided with a mouse sensor aperture 73 on a protrusion 62 on its left side. The mouse sensor aperture 73 is an aperture that guides light to a mouse sensor 74 located inside it. The mouse sensor 74 is, for example, a general mouse sensor (e.g., an optical or laser mouse sensor), and acquires data for calculating the movement (direction of movement, distance of movement, speed of movement, etc.) of the right controller 4 on the work surface, which is positioned with its left side (i.e., the upper surface of the protrusion 62) facing the work surface.
[0027] Furthermore, the right controller 4 is equipped with a terminal 75 on a protrusion 62 on its left side for wired communication between the right controller 4 and the main unit 2.
[0028] Figure 5 is a block diagram showing an example of the internal configuration of the main unit 2. The main unit 2 includes a processor 81. The processor 81 is an information processing unit that performs various information processing operations in the main unit 2, and may consist of, for example, one or more CPUs (Central Processing Units), or it may consist of a SoC (System-on-a-chip) that includes multiple functions such as CPU function and GPU (Graphics Processing Unit) function. The processor 81 performs various information processing operations by executing information processing programs (for example, game programs) stored in a storage unit (specifically, an internal storage medium such as flash memory 84, or an external storage medium installed in slot 23).
[0029] The main unit 2 includes a flash memory 84 and a DRAM (Dynamic Random Access Memory) 85 as examples of internal storage media. The flash memory 84 is a memory primarily used to store various types of data (which may be programs) stored in the main unit 2. The DRAM 85 is a memory used to temporarily store various types of data used in information processing. The processor 81 performs various information processing by appropriately reading and writing data to and from storage media such as the flash memory 84 and the DRAM 85.
[0030] Furthermore, the main unit 2 has various configurations as shown in Figure 5. These are briefly explained below. The slot interface (sometimes referred to as "slot I / F") 91 reads and writes data to a predetermined type of storage medium (e.g., a dedicated memory card) installed in slot 23, according to instructions from the processor 81. The network communication unit 82 communicates with external devices via the network (e.g., internet communication).
[0031] The controller communication unit 83 communicates wirelessly with the left controller 3 and / or the right controller 4 (for example, communication in accordance with the Bluetooth® standard). The left terminal 17 is a terminal for data communication between the processor 81 and the left controller 3. The right terminal 21 is a terminal for data communication between the processor 81 and the right controller 4. The lower terminal 27 is a terminal for outputting data (for example, image data or audio data) to a stationary monitor or the like via the cradle when the lower terminal 27 is mounted in the cradle.
[0032] The display 12 displays images generated by the processor 81 and / or images acquired from an external source. The codec circuit 87 controls the input and output of audio data to the speaker 88 and the audio input / output terminal 25. The power control unit 97 controls the power supply from the battery 98 to each part of the main unit 2 (i.e., each part that receives power from the battery 98) based on commands from the processor 81, and also starts or stops the power supply in response to the pressing of the power button 28.
[0033] Figure 6 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 the details of the internal configuration of the main unit 2 are shown in Figure 5 and are therefore omitted in Figure 6.
[0034] The left controller 3 includes a communication control unit 101 that communicates with the main unit 2. As shown in Figure 6, the communication control unit 101 is connected to each component, including terminal 42. When the left controller 3 is mounted on the main unit 2, the communication control unit 101 communicates with the main unit 2 via terminal 42, and when the left controller 3 is detached from the main unit 2, it performs wireless communication with the main unit 2.
[0035] The left controller 3 includes a memory 102, such as flash memory. The communication control unit 101 is composed of a microcontroller (also called a microprocessor) and performs various processes by executing firmware stored in the memory 102.
[0036] The left controller 3 is equipped with various buttons 103 (right direction button 33, down direction button 34, up direction button 35, left direction button 36, L button 38, ZL button 39, etc.) and a left stick 32. Each button 103 and the left stick 32 repeatedly output information about the operation performed on them to the communication control unit 101 at appropriate intervals.
[0037] The left controller 3 is equipped with an inertial sensor. Specifically, the left controller 3 is equipped with an acceleration sensor 104 and an angular velocity sensor 105. In this embodiment, the acceleration sensor 104 detects the magnitude of acceleration along a predetermined three-axis direction (for example, the x, y, and z axes shown in Figure 2). Note that the acceleration sensor 104 may also detect acceleration in one axis direction or two axis directions. In this embodiment, the angular velocity sensor 105 detects angular velocity around a predetermined three-axis direction (for example, the x, y, and z axes shown in Figure 2). Note that the angular velocity sensor 105 may also detect angular velocity around one axis direction or two axis directions. The acceleration sensor 104 and the angular velocity sensor 105 are each connected to the communication control unit 101. The detection results from the acceleration sensor 104 and the angular velocity sensor 105 are repeatedly output to the communication control unit 101 at appropriate timings.
[0038] The left controller 3 is equipped with a mouse sensor 71. The mouse sensor 71 acquires data to calculate the movement of the left controller 3 on the work surface (direction of movement, distance of movement, speed of movement, etc.). The data acquired by the mouse sensor 71 is repeatedly output to the communication control unit 101 at appropriate intervals.
[0039] The communication control unit 101 acquires information related to input (specifically, information related to operation or detection results from sensors) from each input unit (specifically, each button 103, the left stick 32, and each sensor 104, 105, and 71). The communication control unit 101 transmits operation data, which includes the acquired information or information that has been processed in a predetermined manner, to the main unit 2. The operation data is transmitted repeatedly at a rate of once every predetermined time.
[0040] When the above operation data is transmitted to the main unit 2, the main unit 2 can obtain input from the left controller 3. That is, the main unit 2 can determine operations on each button 103 and the left stick 32 based on the operation data. The main unit 2 can also calculate information about at least one of the movement 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). The main unit 2 can also calculate information about mouse operations performed on the left controller 3 based on the operation data (specifically, the detection results of the mouse sensor 71). Various determinations regarding the state of the left controller 3 may also be performed. For example, the main unit 2 may determine whether the mouse sensor opening 70 is in contact with or close to contacting the work surface based on the data transmitted from the communication control unit 101. Such calculations and determinations may be performed, for example, by the system software of the main unit 2, by the game application, or by the controller.
[0041] The left controller 3 includes a power supply unit 108. The power supply unit 108 has a battery and a power control circuit. 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).
[0042] As shown in Figure 6, the right controller 4 includes a communication control unit 111 that communicates with the main unit 2. The right controller 4 also includes a memory 112 connected to the communication control unit 111. The communication control unit 111 is connected to each component, including the terminal 64. The communication control unit 111 and the memory 112 have the same functions as the communication control unit 101 and memory 102 of the left controller 3. Therefore, the communication control unit 111 can communicate with the main unit 2 both by wired communication via the terminal 64 and by wireless communication without the terminal 64 (specifically, communication according to the Bluetooth® standard), and controls the communication that the right controller 4 makes to the main unit 2.
[0043] The right controller 4 is equipped with inputs similar to those of the left controller 3. Specifically, it is equipped with buttons 113 (A button 53, B button 54, X button 55, Y button 56, R button 60, ZR button 61, etc.), a right stick 52, inertial sensors (accelerometer 114 and angular velocity sensor 115), and a mouse sensor 74. These inputs may have the same functions as the inputs of the left controller 3 and may operate in the same manner.
[0044] [Overview of game processing in this embodiment] Next, an overview of the operation of the game processing performed by the game system 1 according to this embodiment will be described. In this embodiment, the main unit 2, with the left controller 3 and right controller 4 removed, is mounted on the cradle, and the main unit 2 outputs game images to a stationary monitor or the like via the cradle as an example of game play.
[0045] Here, the operation method of the controller assumed in this embodiment will be described. In this embodiment, the mouse sensors 71 and 74 described above are used to operate each controller as a mouse. Figure 7 shows an example of the operation method assumed in this embodiment. As shown in Figure 7, in this embodiment, each controller is operated with the left and right controllers in a position where the side with the mouse sensor opening is in contact with the work surface. Hereinafter, operating each controller in the position shown in Figure 7 will be referred to as "mouse operation". Furthermore, the operation of moving each controller on the work surface will be referred to as "mouse movement operation".
[0046] Next, the game envisioned in this embodiment (hereinafter referred to as "this game") will be described. This game involves moving two virtual objects, each equipped with a virtual trampoline. Figure 8 shows an example of the game screen. Figure 8 shows a fixed-screen game image, as if viewed from diagonally above in a three-dimensional virtual space. Figure 8 displays a first virtual object 301, a second virtual object 302, and a virtual trampoline object (hereinafter simply referred to as "trampoline") 302. The first virtual object 301 is controlled based on the output from the right controller 4. The second virtual object 302 is controlled based on the output from the left controller 3. In the following, for the sake of clarity, the first virtual object will be referred to as "right OBJ" and the second virtual object as "left OBJ". Also, in the following, the right OBJ 301, left OBJ 302, and trampoline 303 may be collectively referred to as the "player object group".
[0047] Figure 8 shows the state where one end of the trampoline 303 is being lifted by the right OBJ301 and the left OBJ302, respectively. The user can move the right OBJ301 and the left OBJ302, which are still holding the trampoline 303, by moving each controller with the mouse. Figure 9 shows an example of the position of each controller on the work surface in the state shown in Figure 8. From this state, for example, if the user moves each controller together in the downward-right direction on the work surface as shown in Figure 10, the player objects will move in the downward-right direction as shown in Figure 11.
[0048] Next, we will explain the game in more detail. Figures 12 and 13 show other examples of game images for this game. In this game, as shown in Figure 12, the third object 304 appears from the "start terrain" on the left side of the screen and jumps toward the right side of the screen. The user moves the player objects so that they can catch the third object 304 with the trampoline 303. If caught successfully, as shown in Figure 13, the third object 304 will bounce off the trampoline 303 and land on the "goal terrain" on the right side of the screen. In other words, this game is about catching the third object 304 that jumps from the start terrain with the trampoline 303, making it jump, and landing it on the goal terrain. If you land it successfully, points will be added. On the other hand, if you fail to catch it, the third object 304 will crash into the ground and disappear. In this case, no points will be awarded.
[0049] Here, we will explain the movement control of the player object group. In this game, you can switch between a first movement mode, relative movement mode, and a second movement mode, simultaneous movement mode. In this example, the switching operation is as follows: as long as at least one of the L button 38 or R button 60 is pressed down, it is in relative movement mode, and when neither is pressed down, it is in simultaneous movement mode.
[0050] This section will first explain the simultaneous movement mode, and then describe the relative movement mode later. The simultaneous movement mode is a mode in which movement is possible in the manner shown in Figures 8 and 11 above. That is, it is a mode in which movement is possible while maintaining the positional relationship between the right OBJ 301, the left OBJ 302, and the trampoline 303. To explain an example of operation in this mode, in simultaneous movement mode, as shown in Figures 9 and 10 above, the player object group can be moved by moving the right controller 4 and the left controller 3 simultaneously. It is also possible to move the player object group using only one controller. For example, to move the player object group to the lower right as shown in Figure 11 above, it is possible to move it by moving only the right controller 4 to the lower right, or by moving only the left controller 3 to the lower right. However, there is a difference in the amount of movement of the player object group per unit time between operating with only one controller and operating both controllers simultaneously. Specifically, in this game, in the second movement mode, the movement amount of each controller is calculated, and the sum of these is used as the movement amount of the player object group. For example, if the right controller 4 is moved by an amount of "3" in the downward-right direction, and the left controller 3 is not moved, the player object group will move by an amount of "3" in the downward-right direction. The same applies if only the left controller 3 is moved in the same way. On the other hand, if both the left controller 3 and the right controller 4 are moved by an amount of "3" in the downward-right direction, the movement amounts of each controller are added together, and the player object group will move by an amount of "6" in the downward-right direction. In other words, you can move the trampoline 303 more (faster) by operating it with both hands than by operating it with one hand.
[0051] In simultaneous movement mode, if each controller is moved by roughly the same amount in opposite directions (left and right), the amounts of movement in each direction may cancel each other out, resulting in a total movement of 0.
[0052] Next, we will explain the relative movement mode. In relative movement mode, the right OBJ301 and left OBJ302 can be moved individually using the left and right controllers, respectively. However, the range of motion of each object is limited to some extent. For example, the range of motion is a circular area with a predetermined radius, centered on the positions of the left and right objects when switching to relative movement mode (hereinafter referred to as the reference position of movement). Alternatively, for example, this reference position of movement may be the left and right ends of the trampoline 303 when switching to relative movement mode. In this case, for the right OBJ301, the right end of the trampoline 303 becomes the reference position of movement, and for the left OBJ302, the left end of the trampoline 303 becomes the reference position of movement. By setting a range of motion in this way, it is possible to suppress, for example, operational confusion. Alternatively, for example, it can provide motivation to move the player object group in simultaneous movement mode.
[0053] In other words, in the simultaneous movement mode described above, the player object group could be moved as a whole while maintaining the positional relationship shown in Figures 8 and 11. On the other hand, in relative movement mode, the right OBJ301 and left OBJ302 can be moved individually within the above range of motion by operating the left and right mice respectively. However, the trampoline 303 itself does not move as a whole; rather, the ends of the trampoline 303 are pulled by the right OBJ301 and left OBJ302, making it possible to change the shape of the trampoline 303. In other words, the relative movement mode can be said to be a mode in which the shape of the trampoline 303 can be deformed.
[0054] Figures 14 to 21 show example game images and controller positions when using relative movement mode. Figure 14 shows three third objects 304 jumping in a chain. Figure 15 shows the position of each controller at this time. In this case, if the trampoline 303 remains in the shape shown in Figure 14, it cannot catch all three objects at once. In this case, the user switches to relative movement mode and, for example, moves the right controller 4 to the right and the left controller 3 to the left, as shown in Figure 16, thereby transforming the trampoline 303 into a shape that is stretched horizontally, as shown in Figure 17. This allows it to successfully catch the three third objects 304.
[0055] Furthermore, in relative movement mode, the right OBJ301 and left OBJ302 can be moved independently within the above-mentioned range of motion. Therefore, deformations are not limited to those shown in Figure 17, but can also be made to stretch the screen vertically, as shown in Figure 18. An example of the orientation of each controller at this time is shown in Figure 19. In Figure 18, the orientation (direction) of the left OBJ302 and right OBJ301 has also changed compared to Figure 17. This reflects the orientation of each controller detected based on the output of the inertial sensor. Therefore, the orientations of the left OBJ302 and right OBJ301 in Figure 18 and the orientations of each controller in Figure 19 are similar. Note that this orientation reflection may also be performed in simultaneous movement mode. By indicating the orientation of each controller with the left OBJ302 and right OBJ301 in this way, the orientation of each controller becomes easier for users who are watching the display to understand. In addition, the sense of unity between the actual movement when each controller is moved and the movement on the game screen is improved, leading to improved operability.
[0056] Next, we will explain the control when switching from relative movement mode to simultaneous movement mode. For example, we will explain the operation when you release your finger from the L button 38 / R button 60 (hereinafter sometimes collectively referred to as the L / R buttons) while the trampoline 303 is deformed into the shape shown in Figure 18. In this case, as shown in Figures 20 to 21, the movement of the left OBJ 302 and right OBJ 301 so that their relative positions return to the "initial relative positions" will be displayed for a predetermined period of several tens of frames. The initial relative positions are such that, with the top end of the circular trampoline 303 as shown in Figure 21 being 0°, the right OBJ 301 is at 90° and the left OBJ 302 is at 270°. In other words, the right OBJ 301 is located to the right of the left OBJ 302. In addition, in accordance with this change in relative positions, the shape of the deformed trampoline 303 also returns to the shape shown in Figure 21. Hereafter, the shape of the trampoline 303 in the initial relative positions shown in Figure 21 will be referred to as the basic shape. In other words, when switching from relative movement mode to simultaneous movement mode, the relative positions of the right OBJ301 and left OBJ302 are reset to their initial relative positions, and the shape of the trampoline 303 is also reset.
[0057] Furthermore, in this embodiment, the positional relationship between the left OBJ302, the right OBJ301, and the trampoline 303 in the initial positional relationship described above is assumed to be the same as the positional relationship between the left OBJ302, the right OBJ301, and the trampoline 303 in the simultaneous movement mode (see Figure 8, etc.). In other words, the positional relationship maintained when moving the player object group in the simultaneous movement mode is the same as the initial positional relationship described above. In this respect, in other embodiments, the initial positional relationship and the positional relationship between each element of the player object group in the simultaneous movement mode may be different.
[0058] In this embodiment, the position of the player object group when it returns to the initial positional relationship (hereinafter referred to as the initial reference position) is, as an example, the position of the center of the trampoline 303 when the switching operation is performed, which becomes the center of the player object group when it returns to the initial positional relationship. In other words, when an operation is performed to switch from relative movement mode to simultaneous movement mode, the trampoline 303 is deformed into its basic shape so that the center position of the trampoline 303 when the switching operation was performed becomes the center point, and the movement is automatically controlled so that the right OBJ 301 is on its right side and the left OBJ 302 is on its left side. Hereafter, this series of operations that results in this initial positional relationship will be referred to as the "reset operation".
[0059] In this game, the "reset operation" described above is displayed for a predetermined period of time, such as several tens of frames. Furthermore, during the "reset operation," at least the mouse sensor-based operations of each controller are not accepted. In other words, as part of the "reset operation," the automatic movement of each object to return to the initial positional relationship is played as an animation over several tens of frames, and mouse operations are not accepted during this time. By returning to a fixed initial positional relationship in this way, it becomes easier for the user to return the relative positional relationship of the two controllers to their original position when transitioning from the first movement mode to the second movement mode. In addition, if the user moves each controller in conjunction with the "reset operation" to return the positions of each controller to the initial positional relationship described above, this movement operation can be prevented from causing the positions of the left OBJ302 and right OBJ301 to shift from the position that corresponds to the initial positional relationship described above, and consequently, from shifting the correspondence between the positions of the left OBJ302 and right OBJ301 and the actual positions of each controller.
[0060] [Examples of data used] Next, the various data used in the processing of this embodiment will be described. Figure 22 is a memory map showing an example of the various data stored in the DRAM 85 of the information processing device 2. The DRAM 85 stores the game program 601, first object data 602, second object data 606, third object data 610, trampoline object data 611, operation data 615, first mode flag 616, and the like.
[0061] The game program 601 is a program for executing the game processing according to this embodiment.
[0062] The first object data 602 is data relating to the right OBJ 301 described above. The first object data 602 includes at least the first OBJ position data 603, the first OBJ attitude data 604, and the first range of motion data 605. The first OBJ position data 603 is data indicating the current position of the right OBJ 301. The first OBJ attitude data 604 is data indicating the current attitude of the right OBJ 301. The first range of motion data 605 is data indicating the range of motion of the right OBJ 301 in the first movement mode (hereinafter referred to as the first range of motion). In addition, although not shown in the illustration, the first object data 602 also includes data indicating the appearance of the right OBJ 301, etc.
[0063] The second object data 606 is data relating to the left OBJ 302. The second object data 606 includes at least the second OBJ position data 607, the second OBJ attitude data 608, and the second range of motion data 609. The second OBJ position data 607 is data indicating the current position of the left OBJ 302. The second OBJ attitude data 608 is data indicating the current attitude of the left OBJ 302. The second range of motion data 609 is data indicating the range of motion of the left OBJ 302 in the first movement mode (hereinafter referred to as the second range of motion). In addition, although not shown in the illustration, the second object data 606 also includes data indicating the appearance of the left OBJ 302, etc.
[0064] The third object data 610 is data relating to the third object described above. The third object data 610 includes data that shows the appearance of the third object, as well as data that defines its appearance patterns and operation patterns.
[0065] The trampoline object data 611 is data relating to the trampoline 303. The trampoline object data 611 includes at least trampoline position data 612, basic shape data 613, and first mode shape data 614. The trampoline position data 612 is data indicating the current position of the trampoline 303. The basic shape data 613 is data defining the basic shape. The relative mode shape data 614 is data indicating the current shape of the trampoline 303 in relative movement mode.
[0066] Operation data 615 is data that indicates the operation performed on the controller. Figure 23 shows an example of the data structure of operation data 615. Operation data 615 includes right controller data 641 and left controller data 651.
[0067] The right controller data 641 includes right button operation data 642, right stick operation data 643, right mouse operation data 644, and right inertial sensor data 645. The right button operation data 642 is data indicating the pressed state of each button 113 of the right controller 4. The right stick operation data 643 is data indicating the input direction and input amount of the right stick 52. The right mouse operation data 644 is data indicating the detection result of the mouse sensor 74 of the right controller 4. The right mouse operation data 644 may be, for example, data indicating the amount of movement in the x and y axes, or the position coordinates (x, y) on the virtual mouse plane. The right inertial sensor data 645 is data indicating the detection result of the acceleration sensor 114 and the angular velocity sensor 115. For example, it may be 3-axis acceleration data or angular velocity data.
[0068] The left controller data 651 includes left button operation data 652, left stick operation data 653, left mouse operation data 654, and left inertial sensor data 655. The left button operation data 652 is data indicating the pressed state of each button 103 of the left controller 3. The left stick operation data 653 is data indicating the input direction and input amount of the left stick 32. The left mouse operation data 654 is data indicating the detection result of the mouse sensor 71 of the left controller 3. The left inertial sensor data 655 is data indicating the detection result of the acceleration sensor 104 and the angular velocity sensor 105.
[0069] Returning to Figure 22, the relative mode flag 616 is a flag used to determine whether the current movement mode is relative movement mode or simultaneous movement mode. It is set to ON when in relative movement mode, and its initial value is set to OFF.
[0070] [Example flowchart] Next, an example of a flowchart for the game processing will be described. In this embodiment, the flowchart shown below is realized by one or more processors reading and executing programs stored in one or more memories. Furthermore, this flowchart is merely one example of the processing process. Therefore, the processing order of each step may be changed if the same result can be obtained. Also, the values of the variables and the thresholds used in the judgment step are merely examples, and other values may be used as needed.
[0071] Figure 24 is a flowchart detailing an example of game processing according to this embodiment. The processing loop of steps S1 to S7 in Figure 24 is repeated multiple times per second depending on the frame rate.
[0072] When game processing begins, preparation processing is performed first (step S1). In this process, a virtual space is constructed as shown in Figure 8 above, and a group of player objects are placed at predetermined positions defined as initial placement locations. Then, an image of this virtual space is captured by a virtual camera and output as a game image, gameplay begins, and processing proceeds to step S2.
[0073] Next, based on the relative mode flag 616, it is determined whether the current mode is relative movement mode or simultaneous movement mode (step S2). If the result of this determination is relative movement mode (YES in step S2), relative movement mode processing is executed (step S3). On the other hand, if simultaneous movement mode is selected (NO in step S2), simultaneous movement mode processing is executed. Since the initial value of the relative mode flag 616 is set to off, simultaneous movement mode processing will be explained first here.
[0074] Figure 25 is a flowchart detailing the simultaneous movement mode processing described above. In Figure 25, first, operation data 615 is acquired (step S21).
[0075] Next, based on the operation data 615, the content of the mouse movement operation for each controller is determined (step S22). Specifically, based on the right mouse operation data 644, the movement direction and amount of the right controller 4 are calculated. Furthermore, based on the left mouse operation data 654, the movement direction and amount of the left controller 3 are calculated.
[0076] Next, the movement direction and amount of the player object group are determined based on the movement direction and amount of each controller calculated above (step S23). As described above, in simultaneous movement mode, the movement direction and amount of movement are determined by summing the movement direction and amount of each controller.
[0077] Next, the movement of the player object group is controlled based on the movement direction and amount determined above (step S24).
[0078] Next, it is determined whether or not a switch operation from simultaneous movement mode to relative movement mode has been performed (step S25). Specifically, it is determined based on the operation data 615 whether or not the state has changed from a state where neither L / R button is pressed to a state where at least one of them is pressed. If, as a result of this determination, a switch operation to relative movement mode has been performed (YES in step S25), the relative mode flag 616 is set to ON (step S26). Next, the range of motion of the right OBJ 301 is determined using the current position of the right OBJ 301 as the reference position and is stored as the first range of motion data 605. Furthermore, the range of motion of the left OBJ 302 is determined based on the current position of the left OBJ 302 and is stored as the second range of motion data 609 (step S27).
[0079] On the other hand, if the result of the determination in step S25 is that the operation to switch to relative movement mode has not been performed (NO in step S25), then the processes in steps S26 and S27 are skipped. After that, the simultaneous mode processing ends.
[0080] Next, we will explain the relative movement mode processing. Figures 26 and 27 are flowcharts detailing the relative movement mode processing. In Figure 26, it is first determined whether the player object group is currently in the "reset operation" described above (step S31). If the result of this determination is that it is not in the "reset operation" (NO in step S31), the process proceeds to step S35, which will be described later.
[0081] On the other hand, if the "reset operation" is in progress (YES in step S31), control of the "reset operation" continues (step S32). That is, playback of the animation related to the "reset operation" continues. Next, it is determined whether or not the "reset operation" has finished (step S33), and if it has finished (YES in step S33), the relative mode flag 616 is set to off (step S34). After that, the process proceeds to step S35. On the other hand, if the reset operation has not finished (NO in step S33), the relative movement mode processing ends.
[0082] Next, operation data 615 is acquired (step S35). Then, based on the operation data 615, the content of the mouse movement operation for each controller is determined (step S36). Specifically, based on the right mouse operation data 644, the movement direction and amount of the right controller 4 are calculated. Furthermore, based on the left mouse operation data 654, the movement direction and amount of the left controller 3 are calculated.
[0083] Next, the current attitude of each controller is calculated based on the output of the inertial sensors (step S37).
[0084] Next, in Figure 27, based on the calculated movement direction and amount of the right controller 4 and the first movable range data 605, it is determined whether or not movement beyond the first movable range occurs for the right OBJ 301 (step S38). If the result of this determination is that movement beyond the first movable range does not occur (NO in step S38), the movement of the right OBJ 301 is controlled based on the movement direction and amount of the right controller 4 (step S39). On the other hand, if movement beyond the first movable range does occur (YES in step S38), step S39 is skipped. In other words, control is performed to prevent movement beyond the first movable range.
[0085] Next, based on the movement direction and amount of the left controller 3 calculated above, and the second movable range data 609, it is determined whether or not movement beyond the second movable range occurs for the left OBJ 302 (step S40). If the result of this determination is that no movement beyond the second movable range occurs (NO in step S40), the movement of the left OBJ 302 is controlled based on the movement direction and amount of the left controller 3 (step S41). On the other hand, if movement beyond the second movable range occurs (YES in step S40), step S41 is skipped. In other words, control is performed to prevent movement beyond the second movable range.
[0086] Next, based on the calculated pose of the right controller 4, the first OBJ pose data 604 is set (step S42). Furthermore, based on the calculated pose of the left controller 3, the second OBJ pose data 608 is set (step S43). In other words, a process is performed to reflect the pose of each controller to the poses of the left and right objects.
[0087] Next, the shape of the trampoline 303 is calculated based on the current positions of the right OBJ 301 and the left OBJ 302, and set as the first mode shape data 614 (step S44). In other words, a process is performed to deform the shape of the trampoline 303 according to the positions of the right OBJ 301 and the left OBJ 302.
[0088] Next, it is determined whether an operation to switch from relative movement mode to simultaneous movement mode has been performed (step S45). Specifically, it is determined, based on the operation data 615, whether the state has changed from at least one of the L / R buttons being pressed to a state where neither of the L / R buttons is pressed. If, as a result of this determination, an operation to switch to simultaneous movement mode has been performed (YES in step S45), the center position of the trampoline 303 is determined as the initial reference position, and control of the "reset operation" as described above is started (step S46).
[0089] On the other hand, if the above determination does not result in an operation to switch to simultaneous movement mode (NO in step S45), the process in step S46 is skipped. After that, the first mode processing ends.
[0090] Returning to Figure 24, various motion controls are then performed for the third object 304. Along with this, collision detection between the third object and other objects is performed, and various processes are executed as appropriate based on the detection results (step S5). For example, if the third object 304 collides with the trampoline 303, a movement trajectory is calculated that causes the third object to bounce, and movement control is performed along this trajectory. If the third object 304 collides with the ground, a process is executed to make the third object disappear. Furthermore, if the third object 304 lands on the goal terrain, a process is executed to add points.
[0091] Next, a game image reflecting the results of the above processes is generated and output (step S6).
[0092] Next, it is determined whether the conditions for terminating the game process have been met (step S7). If the conditions are not met (NO in step S7), the process returns to step S1 and is repeated. If the conditions are met (YES in step S7), the game process is terminated.
[0093] In this embodiment, the left controller 3 and the right controller 4 are used as mice, respectively, and the left OBJ 302 and the right OBJ 301 can be moved by moving each mouse. However, when moving the left OBJ 302 and the right OBJ 301 with the mouse movements of the left controller 3 and the right controller 4, if the right controller (right hand) is positioned to the left of the left controller (left hand), or if the right OBJ 301 is positioned to the left of the left OBJ 302, the user may become confused about the operation. In view of this, in this embodiment, when the movement mode is switched in the first movement mode as described above, the positional relationship between the left OBJ 302 and the right OBJ 301 is controlled to be the initial positional relationship described above. This suppresses operational confusion when using two mice. Furthermore, even if the user becomes confused, it can be easily resolved.
[0094] [Differentiation] Furthermore, the above processing may be applied to game processing configured so that a virtual object on the right cannot move to the left of a virtual object positioned on the left. Also, for example, the above processing may be applied to games that use only the relative movement mode of movement control, without using the simultaneous movement mode in the above example.
[0095] Furthermore, the above processing may also be applied to a rhythm game, for example. In such a rhythm game, the user can manipulate a retractable area, similar to the trampoline 303 described above. Two types of notes, "scoring notes" and "obstacle notes," flow in from all directions in time with a predetermined background music or similar rhythm. In this game, the user adjusts the size and direction of the retractable area using the left and right controllers to allow the "scoring notes" to pass through and the "obstacle notes" to pass through. Applying the above processing to such a game can also suppress confusion during operation.
[0096] Furthermore, as an example of another game, this could also be applied to, for example, an action game played on a top-down screen. Specifically, it could be applied to an action game in which one user controls two player characters with the mouse on the left controller, respectively. A concrete example of such a game would be, for example, the user controls the first player character with the mouse on the left controller 3 and the second player character with the mouse on the right controller 4. The first and second player characters may each be able to move without restriction. There may not be an object like the trampoline 303 mentioned above between the first and second player characters. For example, when the positions of the two player characters become far apart, the second player character may be warped instantly to a predetermined position to the right of the first player character by performing a predetermined button operation.
[0097] Furthermore, the operation of switching movement modes is not limited to the operations described above. For example, when a predetermined button is pressed / held down, a predetermined operation is performed with the stick, the side of the controller with the mouse sensor moves away from the work surface, the controller's movement speed per unit time exceeds a predetermined speed, or the controller itself is shaken, these actions may be treated as a switch operation from relative movement mode to simultaneous movement mode. In addition, for example, a predetermined menu may be opened, and the movement mode may be switched in response to the selection of an item such as "Switch Movement Mode" from that menu.
[0098] Furthermore, the calculation of the movement amount of the player object group in the above simultaneous movement mode may be determined using other calculation methods that result in a larger movement amount when both controllers are moved in a certain direction than when only one of the left or right controllers is moved in that direction, for example. For example, the mouse movement amount of the right controller 4 may be multiplied by a certain percentage of the mouse movement amount of the left controller 3. In other examples, the mouse movement amount of only one controller may always be used, or only the mouse movement amount of the controller with the larger movement amount may be used.
[0099] Furthermore, as a control equivalent to the "reset operation" described above, the following control may be performed. For example, a predetermined position in the virtual world may be set as a fixed initial reference position, and both the right OBJ and the left OBJ may be moved to the left or right of this initial reference position, respectively. Alternatively, for example, the left OBJ may be moved to the left of the right OBJ based on the position of the right OBJ at the time the movement mode switching operation is performed. Or, conversely, the right OBJ may be moved based on the position of the left OBJ at the time the movement mode switching operation is performed.
[0100] Furthermore, regarding the range of motion in the relative movement mode described above, it is not limited to setting separate ranges of motion for the left OBJ and the right OBJ; the range of motion may be shared. For example, in the trampoline game example described above, a circular area of a predetermined size, with the center of the trampoline 303 as the center of the range of motion, may be set as the common range of motion for the left OBJ 302 and the right OBJ 301. In either case, an appropriate range can be set for the range of motion of the right OBJ 301 and the left OBJ 302 according to the game content.
[0101] Furthermore, the above example illustrates a game in which the shape of a virtual object called a trampoline 303 is deformed. In addition, the object to be deformed may be, for example, a region that divides the virtual space. Also, in the above game example, when the third object 304 and the trampoline 303 collide, the third object 304 is controlled to bounce as an effect. In this regard, in other embodiments, depending on the content of the game, when the third object 304 and a predetermined region corresponding to the trampoline 303 are in a predetermined positional relationship, various in-game effects corresponding to the content of the game may be produced.
[0102] Furthermore, the above game example describes a game in which the trampoline 303 is deformed based on the positions of both the right OBJ 301 and the left OBJ 302. In other embodiments, the deformation may be controlled based on only one of the positions.
[0103] Furthermore, the objects that can be controlled by the left and right controllers are not limited to the virtual objects described above. For example, in the trampoline game described above, two pointers that indicate a portion of the outer perimeter of trampoline 303 could be the objects that can be controlled by the left and right controllers, respectively.
[0104] In other embodiments, control may be performed in relative movement mode to fix the shape of the deformed object. For example, in the trampoline game described above, fixed points may be set by having the right OBJ301 and left OBJ302 drive fixing devices, such as tent pegs, into the trampoline 303 through a predetermined operation, thereby increasing the number of fixed points and making the extended shape of the trampoline more complex. In this case as well, an operation to return to the initial positional relationship is performed, and the right OBJ301 and left OBJ302 are moved to their initial positional relationship, including the return of the shape of the trampoline 303.
[0105] Furthermore, the above embodiment described a case in which the above processing is performed on a single information processing device 2. The information processing device 2 may include multiple storage devices and processors. The processing may be divided among these and executed by each of them. The information processing device may also be a server, and the above processing may be performed in a distributed system consisting of multiple information processing devices, including at least one server.
[0106] Furthermore, in other embodiments, the main unit 2 may be an information processing device such as a smartphone, tablet terminal, personal computer, or wearable device. Also, the main unit 2 may not have a display 12.
[0107] Furthermore, the above configuration of the controller is merely an example, and its shape is not limited to that shown above; it may take other shapes. Also, the controller may not be detachable from the main unit 2. The types and number of input sections are also not limited to those shown above. For example, one controller may have only one of the above-mentioned buttons or a directional input section. The controllers do not have to be a pair. Also, the controller may be a general-purpose mouse, and the above-described process may be applied to processes using such a mouse.
[0108] Furthermore, the above processing may be applied not only to game processing but also to other information processing. For example, the above processing may be applied to information processing for drafting. [Explanation of symbols]
[0109] 2. Information Processing Device 3 Left controller 4 Right controller 32 Left Stick 38 L button 39 ZL button 52 Right Stick 60 R button 61 ZR button 71 Mouse Sensor 74 Mouse detection 81 processors 85 DRAM
Claims
1. A game processing method implemented by a computer including at least one processor, The aforementioned processor, A first controller, which is held in the user's right hand and has a first mouse sensor, is used to acquire first data, including first mouse sensor data based on the output of the first mouse sensor. The second controller, which is held in the user's left hand and has a second mouse sensor, acquires second mouse sensor data based on the output of the second mouse sensor. Based on the first mouse sensor data, the first virtual object is moved. Based on the second mouse sensor data, the second virtual object is moved. A game processing method that moves at least one of the first virtual object and the second virtual object to a position where the first virtual object is located to the right of the second virtual object, based on at least one of the first data or the second data.
2. At least one of the first controller and the second controller includes at least one of a button or a directional input section. At least one of the first data or the second data includes button data based on the button being pressed or direction input data based on the direction input unit being operated. The game processing method according to claim 1, wherein at least one of the first virtual object and the second virtual object is moved to a position that has a first positional relationship based on the button data or the direction input data.
3. A first movement mode in which the first virtual object and the second virtual object can move relative to each other, The game processing method according to claim 1, wherein the system switches between a first mouse sensor data and a second movement mode, which moves the first virtual object and the second virtual object while maintaining a second positional relationship, based on at least one of the first mouse sensor data and the second mouse sensor data.
4. The game processing method according to claim 3, wherein the first positional relationship and the second positional relationship are the same positional relationship.
5. The game processing method according to claim 3, wherein the amount of movement of the first virtual object and the second virtual object in the second movement mode is calculated such that the amount of movement is greater when calculated based on both the first mouse sensor data and the second mouse sensor data than when calculated based on only one of the first mouse sensor data or the second mouse sensor data.
6. The game processing method according to claim 5, wherein in the second movement mode, the movement direction and amount of the first virtual object and the second virtual object are calculated as the sum of the values calculated from the first mouse sensor data and the second mouse sensor data, respectively.
7. The game processing method according to claim 3, wherein in the first movement mode, each of the first virtual object and the second virtual object is movable within a predetermined range with a predetermined position as the reference position.
8. In the first movement mode, a predetermined area is deformed according to the position of at least one of the first virtual object and the second virtual object. The game processing method according to claim 3, wherein in the second movement mode, the predetermined area is moved together with the first virtual object and the second virtual object.
9. The game processing method according to claim 8, which produces a predetermined in-game effect when the predetermined region and the third virtual object are in a predetermined positional relationship.
10. The game processing method according to any one of claims 1 to 9, wherein while at least one of the first virtual object and the second virtual object is being moved to a position having the first positional relationship, the movement control of the first virtual object and the second virtual object based on the first mouse sensor data and the second mouse sensor data is temporarily restricted.
11. A game system equipped with a processor, The aforementioned processor, First data, including first mouse sensor data based on the output of the first mouse sensor, is acquired from a first controller held in the user's right hand and having a first mouse sensor. From a second controller, which is held in the user's left hand and has a second mouse sensor, second data is acquired based on the output of the second mouse sensor. Based on the first mouse sensor data, the first virtual object is moved. Based on the second mouse sensor data, the second virtual object is moved. A game system that moves at least one of the first virtual object and the second virtual object to a position such that the first virtual object is located to the right of the second virtual object, based on at least one of the first data or the second data.
12. A game program to be run on a computer containing at least one processor, The aforementioned processor, A first controller, which is held in the user's right hand and has a first mouse sensor, is used to acquire first data, including first mouse sensor data based on the output of the first mouse sensor. The second controller, which is held in the user's left hand and has a second mouse sensor, is used to acquire second data based on the output of the second mouse sensor. Based on the first mouse sensor data, the first virtual object is moved. Based on the second mouse sensor data, the second virtual object is moved. A game program that moves at least one of the first virtual object and the second virtual object to a position such that the first virtual object is located to the right of the second virtual object, based on at least one of the first data or the second data.