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

JPWO2025099801A5Active Publication Date: 2026-04-14NINTENDO CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-06
Publication Date
2026-04-14

AI Technical Summary

Technical Problem

While controlling virtual objects, the prior art is difficult to accurately reflect the user's operating intentions, especially when the mouse rotates and moves.

Method used

By using the optical sensor and attitude sensor of the mouse in the information processing device, combined with specific control logic, the movement and rotation of the virtual object are adjusted to adapt to the user's operating intentions. Specific measures include reducing the parallel movement amplitude of the virtual object when a specific condition is met, and adjusting the movement direction of the object to match the user's gesture during the rotation operation.

Benefits of technology

It improves the operation convenience and accuracy of virtual objects, enables users to control virtual objects more intuitively, and reduces discomfort in operations.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

In the present invention, a first virtual object is moved in a parallel manner on the basis of first data based on an optical sensor of a mouse, and first control is performed on the first virtual object on the basis of second data based on an orientation sensor provided in the mouse. In this case, when the first data and the second data satisfy a first condition, the parallel movement amount of the first virtual object based on the first data is made smaller than the parallel movement amount when the first condition is not satisfied while the first control is being performed on the object on the basis of the second data.
Need to check novelty before this filing date? Find Prior Art

Description

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

[0001] The present disclosure relates to information processing for controlling a virtual object based on data output from a mouse.

[0002] There is a technique for controlling a pointer on a display based on the movement and rotation of a mouse (for example, see Patent Document 1).

[0003] Japanese Patent Application Laid-Open No. 2004-70843

[0004] The above-described techniques have room for improvement so that virtual objects can be controlled in accordance with the user's intentions.

[0005] In view of the above, the following configuration example can be given.

[0006] (Configuration 1) Configuration 1 is an information processing method executed by a processor of an information processing device, causing the processor to perform the following: acquire first data based on output of an optical sensor provided in a mouse, acquire second data based on output of an attitude sensor provided in the mouse, translate a first virtual object based on the first data, perform a first control of the first virtual object based on the second data, and, when the first data and the second data satisfy a first condition, perform the first control of the object based on the second data while making the amount of translation of the first virtual object based on the first data smaller than the amount of translation when the first condition is not satisfied.

[0007] According to the above configuration example, when the first condition is satisfied, the influence of the first data on the first control is reduced, which makes it easier to perform the first control in line with the user's intention.

[0008] (Configuration 2) In Configuration 2, in the above-described configuration 1, when a first condition is satisfied, the first virtual object may not be translated.

[0009] (Configuration 3) In Configuration 3 based on Configuration 1, the processor may determine a degree to which the translation amount of the first virtual object is to be reduced, in accordance with the first data and / or the second data.

[0010] According to the above configuration example, it is possible to improve operability when, for example, the first virtual object is translated while being rotated.

[0011] (Configuration 4) Configuration 4 is the configuration according to any one of the above configurations 1 to 3, wherein the first control may be control for rotating the first virtual object.

[0012] (Configuration 5) In configuration 5 based on configuration 4, a moving direction of the first virtual object based on the first data may correspond to an attitude of the first virtual object after rotation.

[0013] According to the above configuration example, intuitive operation becomes possible.

[0014] (Configuration 6) In configuration 6 based on configuration 5, when the first virtual object is rotated by a first angle, a movement direction of the first virtual object based on the first data may be rotated by the first angle.

[0015] According to the above configuration example, as one example, the moving direction of the user's hand and the moving direction of the first virtual object can be made to coincide with each other, thereby enabling a natural operation.

[0016] (Configuration 7) Configuration 7 may be configured in the above configuration 5 or 6, wherein the processor acquires third data based on a first operation on the mouse, and causes the first virtual object to assume a predetermined orientation based on the third data.

[0017] According to the above configuration example, for example, if the correspondence between the orientation of the mouse and the orientation of the first virtual object becomes unintended by the user, the correspondence can be reset, thereby improving operability.

[0018] (Configuration 8) Configuration 8 may be any of configurations 5 to 7, in which the processor executes a predetermined game process, and when play of a game using the predetermined game process starts, a screen is displayed that guides the user on the initial position of the mouse at the start of the game.

[0019] According to the above configuration example, by having the user assume the initial orientation of the mouse at the start of the game, it is possible to prevent any sense of incongruity from occurring in the correspondence between the orientation of the mouse and the orientation of the first virtual object thereafter.

[0020] (Configuration 9) Configuration 9 may be the configuration 8, in which the processor acquires fourth data based on a second operation on the mouse, and starts playing the game based on the fourth data.

[0021] According to the above configuration example, by having the user trigger the start of the game, it is possible to prevent the user from experiencing discomfort during operation. The information processing device cannot necessarily determine whether the mouse is in a predetermined position, and even if it could, the predetermined position may be uncomfortable for the user. For example, even if the user is guided to point the mouse forward and intends to maintain that position, the mouse may actually be pointing slightly to the right or left of the predetermined position due to the angle of the arm or hand. In light of this, by having the user assume a position that does not feel uncomfortable to them before triggering the start of the game, it is possible to prevent the user from experiencing discomfort during subsequent operation.

[0022] (Configuration 10) In configuration 10 of any of configurations 1 to 9, the processor may acquire fifth data based on a third operation on the mouse and sixth data based on a fourth operation on the mouse. Then, when the first virtual object has a predetermined positional relationship with the second virtual object, the second virtual object may be made movable based on the fifth data and the second virtual object may be made immovable based on the sixth data, and the movable second virtual object may be moved and rotated in accordance with the movement and rotation of the first virtual object.

[0023] According to the above configuration example, the operability of the second virtual object can be improved. When moving or rotating the second virtual object, there is a limit to how much the mouse can be operated without changing the grip. For example, a single rotation operation without changing the grip may not be enough to rotate the second virtual object significantly. Therefore, by making it possible to switch between a movable state and a non-movable state and by using a first virtual object as an intermediary, the operability of the second virtual object can be improved. As an example, after rotating the second virtual object to a certain extent while in the movable state, the user can return the rotational position of the user's hand to its original position while in the non-movable state and then switch the second virtual object back to the movable state, thereby further rotating the second virtual object.

[0024] (Configuration 11) Configuration 11 is any one of configurations 1 to 10, wherein the first condition may be a condition indicating that the center of a mouse rotation operation is within a predetermined range.

[0025] (Configuration 12) Configuration 12 is the above-mentioned configuration 11, wherein the predetermined area may be an area included in the bottom surface of the mouse.

[0026] According to the above configuration example, it is possible to improve the accuracy of determining a movement in which the mouse is rotated in place without being moved.

[0027] (Configuration 13) Configuration 13 is any one of configurations 1 to 10, wherein the first condition may be a condition indicating that the amount of horizontal movement of the mouse is small relative to the amount of rotation of the mouse.

[0028] (Configuration 14) Configuration 14 may be any of configurations 1 to 13, in which the processor acquires, from the mouse, seventh data stored in the mouse, and sets the first condition based on the seventh data.

[0029] According to the above configuration example, it is possible to set the first condition according to the characteristics of the rotation trajectory of the mouse, based on the size and shape of the bottom surface of the mouse or the overall shape of the mouse.

[0030] FIG. 1 is a block diagram showing an example of the hardware configuration of the information processing device 2 and the mouse 40. FIG. 1 is an example of the appearance of the mouse 40. FIG. 1 is an example of a game screen for the game processing assumed in this embodiment. FIG. 1 is an example of a game screen for the game processing assumed in this embodiment. FIG. 2 is an example of a game screen for the game processing assumed in this embodiment. FIG. 3 is an example of a game screen for the game processing assumed in this embodiment. FIG. 4 is an example of a game screen for the game processing assumed in this embodiment. FIG. 5 is a diagram for explaining an operation example of "rotate in place". FIG. 6 is a diagram for explaining an operation example of "rotate in place". FIG. 7 is a diagram for explaining an operation example of "rotate in place". FIG. 8 is a diagram for explaining an operation example of "rotate in place". FIG. 1 is a diagram for explaining an example of an operation of "rotate in place" FIG. 2 is a diagram for explaining an example of an operation of "rotate in place" FIG. 3 is a diagram for explaining an example of an operation center of "rotate in place" FIG. 4 is a diagram for explaining an example of an operation center of "rotate in place" FIG. 5 is a diagram for explaining an example of an operation center of "rotate in place" FIG. 6 is a diagram for explaining a symbol for explaining correction of the direction of movement of the figure FIG. 7 is a diagram for explaining correction of the direction of movement of the figure FIG. 8 is a diagram for explaining correction of the direction of movement of the figure

[0031] An embodiment will be described below.

[0032] [Hardware Configuration of Information Processing Device 2] FIG. 1 is a block diagram showing an example of the hardware configuration of an information processing device 2 according to this embodiment and a mouse, which is an example of an input device. In FIG. 1, the information processing device 2 includes a processor 21. The processor 21 is an information processing unit that executes various types of information processing executed in the information processing device 2. In this embodiment, the processor 21 is configured as a SoC (System-on-a-chip) that includes at least a CPU (Central Processing Unit) function and a GPU (Graphics Processing Unit) function. Note that in other embodiments, the CPU and GPU may be separate units. The processor 21 executes various types of information processing by executing an information processing program (e.g., a game program) stored in a storage unit 22. The storage unit 22 may be an internal storage medium such as a flash memory or a DRAM (Dynamic Random Access Memory), or may be configured to use an external storage medium inserted into a slot (not shown).

[0033] The information processing device 2 also includes a communication unit 23 for communicating with other information processing devices and a predetermined server.

[0034] The information processing device 2 also includes an input device communication unit 24 for wired or wireless communication between the information processing device 2 and various input devices. In this embodiment, a mouse 40 (described later) will be described as an example of an input device.

[0035] Furthermore, a display unit 30 (e.g., a monitor) is connected to the information processing device 2 via an image / audio output unit 25. The processor 21 outputs, for example, images and sounds generated by executing the above-described information processing to the display unit 30 via the image / audio output unit 25.

[0036] Next, the mouse 40 will be described. The mouse 40 of this embodiment is an input device connectable to the information processing device 2 via wireless communication. FIGS. 2 and 3 are schematic diagrams showing the exterior of the mouse 40 envisioned in this embodiment. FIG. 2 is a perspective view showing an example of the mouse 40, and FIG. 3 is a six-sided view showing an example of the mouse 40. The mouse 40 envisioned in this embodiment has a generally board-like shape with the width of a typical PC mouse reduced. Specifically, the left-right length of the mouse 40 is shorter than the up-down length and the front-back length. The up-down length of the mouse 40 is shorter than the front-back length. As shown in FIG. 2 , in this embodiment, the left-right direction of the mouse 40 is the x-axis direction, the front-back direction is the y-axis direction, and the up-down direction is the z-axis direction. The z-axis direction is perpendicular to the bottom surface of the mouse 40 (or may be perpendicular to the work surface when the bottom surface of the mouse 40 is placed on the work surface). Two buttons 42A and 42B are provided on the top surface of the mouse 40. Button 42A may be used for a left-click operation, and button 42B may be used for a right-click operation. A mouse sensor 43 is exposed on the bottom surface of the mouse 40. In this embodiment, the mouse sensor 43 is exposed through an opening 45 located slightly forward from the center of the bottom surface. Note that the location where the mouse sensor 43 is exposed is not limited to this location. In this embodiment, an optical sensor is used as an example of the mouse sensor 43. Note that the mouse sensor 43 does not have to be directly exposed through the opening 45 located on the bottom surface of the mouse 40. For example, a light guide path may be formed from the opening 45 located on the bottom surface of the mouse 40 to the mouse sensor 43 located inside the mouse 40. Buttons 42C and 42D are also provided on the left side of the mouse 40. For example, when operating the mouse 40 with the right hand, buttons 42C and 42D are located in positions that can be operated with the thumb of the right hand. Note that the operating means located on the left side is not limited to buttons. For example, instead of or in addition to the buttons, a stick or a touch panel may be provided.

[0037] 1, we will now explain the hardware configuration of the mouse 40. The mouse 40 is equipped with the above-mentioned buttons 42A to 42D. Below, these buttons may also be collectively referred to as buttons 42.

[0038] The mouse 40 also includes the above-described optical mouse sensor 43. The mouse sensor 43 detects the movement of the mouse 40 and outputs the direction and amount of movement.

[0039] The mouse 40 also includes an attitude sensor 44. Specifically, the mouse 40 includes an angular velocity sensor as the attitude sensor 44. In this embodiment, the angular velocity sensor detects angular velocity around three predetermined axes. Note that the attitude sensor 44 is not limited to an angular velocity sensor, and in other embodiments, various sensors capable of detecting attitude, such as a geomagnetic sensor, may be used. These sensors may also be used in combination, or other sensors such as an acceleration sensor may also be used in combination. Furthermore, a combination of multiple optical sensors may also be used as the attitude sensor 44. For example, it may be possible to detect that the mouse 40 has been rotated based on the difference in detection values ​​of each optical sensor (such as a difference in the direction of movement).

[0040] The mouse 40 also includes a wireless communication unit 41 for wirelessly communicating with the input device communication unit 24. Information indicating the pressed state of the button unit 42, various detection results by the mouse sensor 43, and various detection results by the attitude sensor 44 are repeatedly output to the wireless communication unit 41 at appropriate timing and transmitted to the information processing device 2.

[0041] [Regarding Processing Assumed in This Embodiment] Next, an overview of information processing assumed in this embodiment will be described. In this embodiment, game processing is assumed as an example of information processing. FIGS. 4 to 9 show examples of game screens for game processing assumed in this embodiment. The game in this example is assumed to be a 2D game, and a game image of a bird's-eye view of a virtual space is displayed. FIG. 4 displays obstacle objects 101 arranged to form a maze, a hand object 102 used as a mouse pointer, and a stick object 103 to be operated by the user. In this embodiment, the initial orientation of the stick object 103 (the orientation at the start of the game) is assumed to be vertically long, as shown in FIG. 4. This game involves moving the stick object 103 from a start point to a goal point while avoiding contact with the obstacle object 101. An example of how to operate the stick object 103 will be described below.

[0042] This game provides an operation experience of grabbing and moving a stick object 103 with a hand object 102. To achieve this, from the state shown in FIG. 4 above, the user first moves the mouse 40 downward and left to move the hand object 102 to a position where it overlaps with the stick object 103. As a result, the state shown in FIG. 5 is obtained.

[0043] Next, by pressing the button 42A (hereinafter referred to as left-click on), the display mode of the hand object 102 changes from an image of an open hand to an image of the hand grasping the stick object 103 as shown in FIG. 6 . This indicates that the stick object 103 is being grasped. In this game, when the hand object 102 is grasping the stick object 103 in this manner, the stick object 103 can be moved (specifically, moved and rotated). Hereinafter, this state will be referred to as a "movable state." Furthermore, when the button 42A is released from being pressed during the movable state (hereinafter referred to as left-click off), the movable state is released and the display mode of the hand object 102 returns to its original state.

[0044] By moving the mouse 40 forward in parallel while maintaining the movable state shown in Fig. 6, the user can move the stick object 103 and the hand object 102 toward the top of the screen as shown in Fig. 7. More precisely, in this embodiment, the stick object 103 is controlled to move in accordance with the movement of the hand object 102.

[0045] Next, after moving the rod object 103 to a corner of the passage as shown in FIG. 7 , the user attempts to move the rod object 103 to the right along the passage. During this movement, the user can rotate the rod object 103 so that the rod object 103 is horizontally oriented so that the rod object 103 does not come into contact with the obstacle object 101. The operation of rotating the rod object 103 at this time is as follows: The user left-clicks the mouse 40 (leaving it in a movable state) and rotates the mouse 40 itself, for example, clockwise. In other words, the user rotates the mouse 40 around the z-axis in FIG. 2 above, in other words, in the yaw direction, while minimizing translation of the mouse 40 itself. In the following description, the term "rotating the mouse 40" simply refers to rotation around the z-axis in FIG. 2 . In the following description, this operation of rotating the mouse 40 on the spot will be referred to as "rotating on the spot." By performing such "in-place rotation," the hand object 102 and the stick object 103 can be rotated around an axis perpendicular to the display surface, i.e., the depth direction axis, as shown in Fig. 8. More precisely, in this embodiment, the stick object 103 is controlled to rotate in accordance with the rotation of the hand object 102. Here, as an example, it is assumed that the hand object 102 and the stick object 103 are finally rotated 90° clockwise from the state shown in Fig. 7.

[0046] If the rod object 103 can be rotated to a horizontal position, the user can move the mouse 40 parallel to the right while maintaining the movable state, thereby moving the rod object 103 to the right without contacting the obstacle object 101, as shown in Figure 9.

[0047] To clear the game, the user must move the stick object 103 to the goal point by using such operations of "moving" and "rotating" the stick object 103. If the stick object 103 comes into contact with the obstacle object 101, the user will make a mistake.

[0048] Here, a supplementary explanation will be provided regarding the movable state and the "in-place rotation" operation. As described above, when attempting to rotate the mouse 40 without moving it, one possible operation is to rotate the mouse 40 while holding it between the thumb, middle finger, ring finger, and little finger of the right hand (the index finger is used for left-clicking). In this type of operation, it is conceivable to rotate the mouse 40 around the base of the fingers or the wrist as a fulcrum. However, because the range of motion of the fingers and wrist is limited, for example, if you want to rotate the rod object 103 clockwise by 90 degrees, it is not necessarily possible to rotate it 90 degrees with a single rotation operation. In this game, the rod object 103 can be moved only when it is in the movable state, enabling the following operation. That is, to rotate the rod object 103 90 degrees, the player rotates it partway (for example, about 45 degrees), releases the movable state, returns the mouse 40 to the position before rotation, and then reactivates the movable state to rotate the remaining amount of rotation. To illustrate an example of such an operation flow, let us assume that the initial state is as shown in Figure 10. In Figure 10, the upper half of the rectangular frame shows the display state of the stick object 103 and the hand object 102, and the lower half shows a schematic diagram of the mouse 40 in real space as seen from above.

[0049] When the user left-clicks the mouse 40 in the state shown in FIG. 10 , the mouse 40 enters a movable state as shown in FIG. 11 . Note that in FIG. 11 , the button 42A is blacked out to indicate a left-click. Assume that the mouse 40 is then rotated to the angle shown in FIG. 12 . Accordingly, the hand object 102 and the stick object 103 rotate. Assume that the mouse 40 reaches this point and cannot be rotated any further. The user then releases his or her finger from the button 42A to release the left click. As a result, the state shown in FIG. 13 is reached. In FIG. 13 , the image of the hand object 102 returns to the image of the hand object 102 when it is not in a movable state (hereinafter referred to as the “non-movable state”). Then, the user rotates the mouse 40 counterclockwise (without left-clicking) as shown in FIG. 14 to return the mouse 40 to its original orientation. At this time, the hand object 102 rotates counterclockwise in accordance with the rotation of the mouse 40, returning to its original orientation, while the orientation of the stick object 103 remains unchanged.

[0050] Then, as shown in Fig. 15, the user again left-clicks to switch to the movable state, and rotates the mouse 40 clockwise as shown in Fig. 16. This rotates the rod object 103, allowing it to assume a landscape orientation.

[0051] Thereafter, as shown in Fig. 17, the movable state is released by a left-click release operation, and the attitude of the mouse 40 is returned to the attitude before rotation, as shown in Fig. 18. Then, by switching back to the movable state as shown in Fig. 19 and translating the mouse 40, for example, to the right, the rod object 103 can be translated to the right. Of course, the rod object 103 can also be translated to the right by translating the mouse 40 to the right while keeping it in the state shown in Fig. 16 above.

[0052] In this way, by repeating the operation of rotating on the spot while switching between the movable state and the non-movable state, the rod object 103 can be rotated to a desired angle. Note that such switching of the movable state is used not only for rotation but also for moving the rod object 103. For example, the rod object 103 can be translated to the right from the left edge of the screen to near the center, temporarily released from the movable state, returned to the position of the mouse 40, and then re-enabled to move.

[0053] As described above, in this game, the hand object 102 and the stick object 103 can be the objects to be operated by the user, but in the following description, the hand object 102 and the stick object 103 may be collectively referred to as the "objects to be operated."

[0054] As described above, in this game, for example, when the user wants to change the orientation of the rod object 103 at a corner of a passageway, the user is required to rotate the mouse 40 as described above. On the other hand, because hitting the rod object 103 with the obstacle object 101 results in a miss, the user is required to perform a careful and delicate rotation. However, even when performing the "on-the-spot rotation" motion described above, the center of rotation of the mouse 40 may not coincide with the opening 45 provided on the bottom surface for guiding light to the mouse sensor 43, depending on the range of movement of the user's hand and fingers and the positional relationship between the center of rotation and the opening 45. In particular, when the user rotates the mouse 40 by a certain angle, it is difficult to always align the center of rotation of the mouse 40 with the opening 45. In other words, even if the orientation of the mouse 40 is changed by the "on-the-spot rotation," the mouse 40 actually moves horizontally relative to the work surface, and therefore the output of the mouse sensor 43 changes in accordance with the horizontal movement of the mouse 40. For example, FIGS. 20 to 22 show examples of "on-the-spot rotation" of the mouse 40. Although both figures show examples in which the center of rotation is located within the bottom surface of the mouse 40, the positions within the bottom surface are different. Thus, even if the user performs a "spin," unless the position of the opening 45 and the position of the center of rotation coincide, the mouse sensor 43 may output a signal corresponding to a slight translational movement of the mouse 40. Furthermore, in the examples of Figures 20 and 21, the mouse sensor 43 moves downward and to the right on the work surface, while in the example of Figure 22, it moves upward and to the right. Thus, the amount and direction of movement detected by the mouse sensor 43 differ depending on the center of rotation. If such horizontal movement were directly reflected in the movement of the rod object 103, the rod object 103 would move horizontally while rotating, even though the user intended only to rotate the rod object 103, which would increase the likelihood of the rod object 103 coming into contact with the obstacle object 101.

[0055] In light of the above, in this embodiment, when the mouse sensor 43 detects translation of the mouse 40, the movement is distinguished between whether it is a movement associated with the above-described "in-place rotation" operation or a (normal) translation that is not an "in-place rotation." Specifically, in this embodiment, it is determined whether the movement detected by the mouse sensor 43 is associated with an "in-place rotation." If it is not an "in-place rotation" (if it is a normal translation), the control target object is rotated based on the output of the orientation sensor 44, while the control target object is moved using the output data of the mouse sensor 43. On the other hand, in the case of an "in-place rotation," the control target object is rotated based on the output of the orientation sensor 44 in the same manner as described above, but the control executed based on the output data of the mouse sensor 43 is different. Specifically, even if the output data of the mouse sensor 43 normally (i.e., if the conditions for determining an "in-place rotation" are not satisfied), even if the data content is such that the control target object is moved by a first distance, the control to move the first distance is not executed, and a different control is executed. More specifically, when the object to be operated is moved based on the output data from the mouse sensor 43, if the object is a "turn in place", the amount of movement is made smaller than when the object is not a "turn in place". Making the amount of movement smaller also includes making the amount of movement zero.

[0056] [Principle of Determining "Turns in Place"] Next, the principle of determining whether or not an action is a "turn in place" in this embodiment will be described. When a user intentionally performs a "turn in place" action, the center of rotation may be somewhere within the bottom surface (contact surface) of the mouse 40. On the other hand, unintentional rotation may also occur when the user translates the mouse 40. In this case, the center of rotation may be somewhere outside the bottom surface of the mouse 40, such as the user's elbow. Therefore, in this embodiment, whether or not a turn in place is considered is determined by determining whether or not the center of rotation of the mouse 40 is within the bottom surface. Note that, since the bottom surface of the mouse 40 in this embodiment is long in the y-axis direction and short in the x-axis direction as shown in FIGS. 2 and 3 , it is assumed that the center of rotation does not move (shift) in the x-axis direction during a "turn in place" action.

[0057] Strictly speaking, it can be considered that the center of rotation itself changes as the rotation occurs within the range of the above assumptions during a series of "rotation in place" movements. However, when observing minute instantaneous changes, the center of rotation can be considered fixed. From this, as shown in FIG. 23, if the minute rotation angle is Δθ, the amount of movement of the position of opening 45 is dx and dy, and the distance between the center of rotation and the position of opening 45 is d, the following relationships are considered to hold. <When the center of rotation is below the position of opening 45> dx = -d × sin(Δθ) ≒ -d × Δθ dy = -d × (1 - cos(Δθ)) ≒ -d × (Δθ) 2 / 2 <When the rotation center is above the position of the opening 45> dx = d × sin(Δθ) ≈ d × Δθ dy = d × (1 - cos(Δθ)) ≈ d × (Δθ) 2 / 2 The above relationship utilizes the fact that when Δθ is sufficiently small, the following holds: sin(Δθ) ≒ Δθ cos(Δθ) ≒ 1-(Δθ) 2 / 2

[0058] The distance d can be calculated using the following formula based on the above formula. The above formula focuses on dx, but the distance d can also be calculated using the following formula, which focuses on dy.

[0059] Next, to determine whether the distance d (d1, d2) calculated above indicates that the center of rotation of the mouse 40 is located within the bottom surface, the distance d is checked to see if it falls within a threshold value. If the position of the opening 45 is offset from the center of the bottom surface of the mouse in the front-to-back direction, the distance from the opening 45 to the front end of the bottom surface of the mouse differs from the distance from the opening 45 to the rear end, and therefore the threshold value to be compared with the distance d differs. Therefore, first, whether the center of rotation is located in front of or behind the opening 45 is determined based on the following conditions: Note that, in FIG. 23, the sign of Δθ indicates counterclockwise rotation with a positive sign and clockwise rotation with a negative sign. (Condition 1: The center of rotation is behind the opening 45) dy<0 and dx and Δθ have opposite signs. (Condition 2: The center of rotation is in front of the opening 45) dy≧0 and dx and Δθ have the same sign. If condition 1 is met, D1 (D1A, D1B) is set as the threshold value. If condition 2 is satisfied, D2 (D2A, D2B) is set as the threshold value. In this embodiment, since the opening 45 is located forward of the center of the bottom surface in the front-to-rear direction, D1 is a value greater than D2. Note that condition 2 may be determined to be satisfied if condition 1 is not satisfied. Conditions 1 and 2 are merely examples, and for example, condition 1 may be determined only if dy<0, or other determinations may be made.

[0060] If Condition 1 above is satisfied, the present embodiment next makes the following determinations: (Condition 3) d1<D1A (Condition 4) d2<D1B In this embodiment, if Conditions 3 and 4 are both satisfied, it is assumed that the user is intentionally "rotating the mouse 40 in place." In this case, the dx and dy values ​​obtained from the output of the mouse sensor 43 are not considered to be the translation amounts associated with normal movement. Note that D1B is greater than D1A in the above. This is because the mouse 40 in this embodiment is elongated in the y-axis direction as shown in FIG. 2 . When the mouse 40 is rotated in place, dy is smaller than dx. Therefore, although the value of d2 may vary more than d1 due to the influence of errors in the mouse sensor 43, even if there is some variation, the value must be within D1B.

[0061] In the above, a "turn in place" is determined when both Condition 3 and Condition 4 are satisfied, but a "turn in place" may also be determined when either one of them is satisfied. Alternatively, only Condition 3 or Condition 4 may be used for the determination, or another condition may be used. Also, in the above, the threshold value to be compared with the distance d is set from either D1 or D2 depending on whether the center of rotation is in front of or behind the opening 45, but a common threshold value may also be used. Also, d1 or d2 may be multiplied by a coefficient depending on whether the center of rotation is in front of or behind the opening 45, and then compared with the threshold value.

[0062] As described above, in this embodiment, when a "spin in place" is determined, the movement amount of the controlled object based on the output data of the mouse sensor 43 is reduced compared to when a "spin in place" is not determined. Here, even in the case of a "spin in place," the controlled object may still be moved, albeit by a smaller movement amount. For example, when the mouse 40 is moved sideways while rotating, the above determination may result in a partial "spin in place." In this case, particularly when the mouse 40 is moved slowly, the rod object 103 may stop in places during movement, preventing smooth movement. Therefore, even when a "spin in place" is determined, moving the controlled object can prevent the user from feeling uncomfortable. The degree of reduction in the movement amount of the controlled object may be a fixed value or rate, or may be a variable value or rate. For example, the smaller the value of the distance d, the greater the degree of reduction. Alternatively, the degree of reduction may be determined based on data from either the mouse sensor 43 or the orientation sensor 44.

[0063] The above-described determination principle focuses on the fact that when the user is attempting to perform a "turn in place," it is assumed that the center of rotation of the mouse is within the range of the bottom surface of the mouse 40; however, other principles may also be used to determine "turn in place." As an example, when the user intends to perform a "turn in place," it is assumed that the amount of translation detected by the mouse sensor 43 is (very) small compared to the amount of rotation of the mouse 40. Focusing on this assumption, control may be performed such that when the amount of translation is small compared to the amount of change in posture, movement control based on translation is suppressed. The resulting conditions may be the same as the various conditions described above, or may be different conditions.

[0064] [Movement Direction Correction Based on Posture] In the above description, the relationship between the movement direction of the mouse 40 and the movement direction of a virtual object on the screen is assumed to be a reference posture, as shown in FIG. 24 , and the vertical and horizontal directions on a predetermined work surface on which the bottom surface of the mouse 40 can be moved by contacting the work surface correspond to the vertical and horizontal directions on the screen. Specifically, the positive y-axis direction of the mouse 40 (the upward direction on the work surface) corresponds to the upward direction on the screen, and the positive x-axis direction of the mouse 40 (the rightward direction on the work surface) corresponds to the rightward direction on the screen. Also, in FIG. 24 , it is assumed that the monitor is located on the positive y-axis side of the local coordinate system of the mouse 40. In other words, it is assumed that the plane including the display surface and the y-axis of the local coordinate system of the mouse 40 are substantially perpendicular to each other. When using a mouse on a personal computer, for example, it is common for the mouse to be operated while maintaining this reference posture and positional relationship.

[0065] However, in this game, the user is required to rotate the mouse 40. As an example, the user rotates the mouse 40 around the z-axis from the reference posture described above, thereby performing a "spin on the spot" of the mouse 40. In this embodiment, the posture of the hand object 102 is controlled to be linked to the posture of the mouse 40, and therefore the posture of the hand object 102 changes (rotates) in accordance with the "spin on the spot" of the mouse 40. For example, when the mouse 40 is rotated counterclockwise by approximately 30 degrees (+30 degrees) from the reference posture shown in FIG. 24 above, the mouse 40 assumes a posture as shown in FIG. 25. Accordingly, the hand object 102 also rotates by approximately 30 degrees. Now, consider a case where the user translates the mouse 40 directly to the right in real space, as shown in FIG. 26, while maintaining this posture. In other words, assume a case where the user intends to move the hand object 102 (and the stick object 103, if movable) directly to the right within the game screen. In this case, considering that the mouse 40 is tilted 30 degrees from the reference position, the direction in which the mouse 40 is moved is detected as a direction diagonally downward to the right at 30 degrees when viewed from a bird's-eye view of the work surface. In other words, the direction of movement as seen from the mouse 40, i.e., the direction of movement based on the local coordinate system of the mouse, is determined as a direction diagonally backward to the right. As a result, on the game screen, for example, as shown in FIG. 27 , the hand object 102 moves downward to the right, which may not reflect the user's intention to move directly to the right.

[0066] In view of the above, in this embodiment, control is performed so that the movement direction of the hand object 102 based on the output data of the mouse sensor 43 corresponds to the posture of the hand object 102 after rotation. Specifically, in this embodiment, the following control is performed. First, the posture of the mouse 40 at the start of game play is stored as a reference posture. In this game, the user is requested to perform an operation to start game play, and the posture of the mouse 40 at the time of the start operation is stored as a reference posture. Here, the reference posture of the mouse 40 is assumed to be the posture shown in FIG. 24 above, which is a vertically elongated posture that is the same as the initial posture of the stick object 103. Then, during game play, difference data between the reference posture of the mouse 40 and the current posture of the mouse 40 is recorded. The difference data is, for example, the difference in angle around the z-axis between the reference posture and the current posture. To give a specific example, when the mouse 40 is rotated 90° clockwise from the reference posture, the difference data is recorded as "-90°," when the mouse 40 is rotated 90° counterclockwise, the difference data is recorded as "+90°," and when the mouse 40 is rotated 180°, the difference data is recorded as "+180° (or -180°)." When determining the movement direction of the hand object 102, the movement direction of the mouse 40 (movement direction as seen from the mouse 40) obtained from the output data of the mouse sensor 43 is corrected using this difference data, and then the movement of the hand object 102 is controlled. For example, assume that the difference from the reference posture is 30° counterclockwise (+30°) as shown in FIG. 25 above. In this case, when determining the movement direction of the hand object 102, the movement direction of the mouse 40 obtained from the output data of the mouse sensor 43 is corrected by rotating it approximately 30° counterclockwise, as shown in FIG. 28. By correcting the movement direction in this way, the direction in which the hand (holding the mouse 40) is moved in real space can be made to coincide with the movement direction of the hand object 102 on the screen, enabling intuitive movement operation of the hand object 102. Furthermore, by controlling the stick object 103 to move in accordance with the movement of the hand object 102, the same result can be obtained for the movement direction of the stick object 103.

[0067] The above control for correcting the movement direction is one example. As another example, instead of the posture of the mouse 40, the difference between the initial posture of the hand object 102 and the current posture of the hand object 102 may be used as the difference data. Furthermore, without using the reference posture, the instantaneous amount of rotation of the mouse 40 may be sequentially reflected in the amount of correction of the movement direction of the hand object 102.

[0068] [Details of Processing in This Embodiment] Next, the game processing in this embodiment will be described in more detail with reference to FIGS.

[0069] [Regarding Data Used] First, various types of data used in the processing of this embodiment will be described. Fig. 29 is a memory map showing an example of various types of data stored in the storage unit 22 of the information processing device 2. The storage unit 22 stores a game program 601, object data 602, operation data 603, mouse reference attitude data 607, differential attitude data 608, a movable state flag 609, an operation buffer 610, etc. The game program 601 is a program for executing the game processing according to this embodiment.

[0070] The object data 602 is data on various objects that appear in the game, such as the stick object 103 and the hand object 102. The object data 602 also includes data indicating the reference postures (initial postures) of the stick object 103 and the hand object 102.

[0071] The operation data 603 is data indicating the operation performed on the mouse 40. The operation data 603 includes mouse sensor data 604, attitude sensor data 605, and button data 606. The mouse sensor data 604 is data output from the mouse sensor 43. The mouse sensor data 604 includes data indicating the amount and direction of movement of the position of the mouse 40. Based on this data, for example, the current position of the mouse 40 in a predetermined two-dimensional coordinate system (mouse coordinate system) can be determined in the form of x and y coordinates in the coordinate system. The attitude sensor data 605 is data output from the attitude sensor 44. In this example, the attitude sensor data 605 includes angular velocities around three predetermined axes (x, y, and z axes in FIG. 2). The button data 606 is data indicating the press states of the buttons 42A to 42D.

[0072] The mouse reference attitude data 607 is stored data indicating an attitude used as the reference attitude of the mouse 40 .

[0073] The differential attitude data 608 is data indicating the difference in the rotation angle around the z axis between the current attitude of the mouse 40 and the reference attitude.

[0074] The movable state flag 609 is a flag for indicating whether or not the movable state is in question, and when it is on, it indicates that the movable state is in question.

[0075] The operation buffer 610 is a storage area for temporarily storing operation data, for example, up to several frames before. The operation buffer 610 is used, for example, to calculate the difference between the position and orientation of the mouse 40 one frame before and the current position and orientation of the mouse 40.

[0076] [Regarding the Flowchart] Next, details of the processing in this embodiment will be described. Here, the processing related to the operation of the stick object 103 as described above will be mainly described, and details of other game processing will be omitted. Note that in this embodiment, the flowchart shown below is realized by one or more processors reading and executing a program stored in one or more memories. Furthermore, this flowchart is merely an example of the processing process. Therefore, the processing order of each step may be changed as long as the same results are obtained. Furthermore, the values ​​of variables and thresholds used in the determination steps are merely examples, and other values ​​may be used as necessary.

[0077] 30 to 32 are flowcharts showing details of the game processing according to this embodiment. This processing is an example of game processing for one stage in a stage-clear type game. The processing loop of steps S3 to S23 is repeated multiple times per second depending on the frame rate.

[0078] First, in step S1, prior to the start of actual game play, the processor 21 displays a guide screen to explain to the user the rules of the game and how to operate the mouse 40. On this screen, for example, an image is displayed instructing the user to place the mouse 40 in a predetermined posture on a predetermined work surface. As an example, this predetermined posture is the same as the initial posture of the hand object 102. In this embodiment, it is assumed to be the posture shown in FIG. 24, for example. The screen also displays a message that the game can be started by pressing a predetermined button (game start operation).

[0079] Next, in step S2, the processor 21 detects that the user has performed a game start operation and performs game start processing. This processing involves recording data indicating the orientation of the mouse 40 at this time as mouse reference orientation data 607. This processing also involves defining a correspondence (initial correspondence) between the up, down, left, and right directions in the local coordinate system of the mouse 40 and the up, down, left, and right directions on the screen at the start of game play. For example, initial correspondence data (not shown) indicating this correspondence may be generated and stored in the storage unit 22. In this game, the orientation shown in FIG. 24 is set as the reference orientation, and it is assumed that the game will start in the orientation shown in FIG. 24. If the mouse 40 is operated as expected, the initial correspondence is defined such that the positive y-axis direction in the local coordinate system of the mouse 40 in FIG. 2 corresponds to the upward direction on the screen and the positive x-axis direction corresponds to the rightward direction on the screen. Additionally, the processor 21 creates a maze-like virtual space as shown in FIG. 4 and generates and displays a game image in which a stick object 103 is placed at the starting point.

[0080] The game start process (recording of the mouse reference attitude data 607) may be performed each time, for example, when a mistake occurs during a stage and the game is restarted.

[0081] Next, in step S3, the processor 21 acquires the operation data 603. Furthermore, the processor 21 calculates the current position and the current orientation of the mouse 40 based on the operation data 603.

[0082] Next, in step S4, the processor 21 determines, based on the operation data 603, whether or not the user has performed an operation to switch between the movable state and the immovable state (hereinafter, referred to as a switching operation). In this embodiment, the switching from the immovable state to the movable state is performed by pressing the button 42A when the hand object 102 and the stick object 103 are in a predetermined positional relationship. More specifically, this positional relationship is a positional relationship in which the hand object 102 and the stick object 103 partially overlap. Note that in other examples, these do not need to overlap and may be adjacent, for example. The switching from the movable state to the immovable state is performed by releasing the pressed button 42A.

[0083] As a result of the above determination, if a switching operation has been performed (YES in step S4), in step S5, processor 21 sets movable state flag 609 to ON or OFF so as to switch between the movable state and the immovable state to a state different from the current state. For example, if a switching operation (pressing button 42A) is performed when movable state flag 609 is OFF, processor 21 sets movable state flag 609 to ON. Thereafter, the process proceeds to step S6, which will be described later.

[0084] On the other hand, if the determination result in step S4 indicates that a switching operation has not been performed (NO in step S4), the processor 21 determines in step S6 whether a posture reset operation has been performed. The posture reset operation is an operation for returning the posture of the hand object 102 to its initial posture. This operation is used, for example, to correct a correspondence between the posture of the mouse 40 and the posture of the hand object 102 that is not intended by the user. For example, if a game is started using the posture shown in FIG. 24 as the reference posture, it is desirable to display the hand object 102 in a posture rotated 45 degrees to the right when the mouse 40 is rotated 45 degrees to the right. However, due to the accumulation of detection errors in the posture sensor 44, for example, a state in which the posture of the hand object 102 is misaligned with the actual posture of the mouse 40 may occur, such as when the posture of the hand object 102 is rotated only 30 degrees. In such a case, for example, by setting the orientation of the mouse 40 to the above-mentioned reference orientation and then performing an orientation reset operation, the orientation of the hand object 102 can be returned to the initial orientation, and the orientation of the mouse 40 can be made to correspond to the orientation of the hand object 102. In this embodiment, the orientation reset operation is assumed to be pressing the button 42D.

[0085] In other embodiments, the posture reset operation may be configured to detect when the mouse 40 is lifted up, and the lifting up of the mouse 40 may be considered to be a posture reset operation. The method for detecting the lifting up is not limited. For example, mouse sensor data 604 or posture sensor data 605 may be used. Alternatively, the mouse 40 may be equipped with another sensor for detecting the lifting up. The mouse 40 may determine the lifting up, or the information processing device 2 may determine the lifting up based on output from the mouse 40. When the user performs the lifting up operation, it is considered that the user intends to return the hand holding the mouse 40 to its original posture. Therefore, by resetting the posture of the hand object 102 in accordance with this movement, when the lifted-up mouse 40 is returned to the work surface, the posture of the mouse 40 and the posture of the hand object 102 correspond to each other, allowing the user to continue operation without any discomfort. With this configuration, the finger movement required to press the button 42D is no longer necessary, and the posture of the hand object 102 can be reset through a natural and intuitive movement during the series of operations performed to operate the mouse 40. Note that the posture reset operation may require pressing the button 42D or the like in addition to lifting up the mouse 40. The posture reset may also be performed when the mouse 40 that has been lifted up is returned to the work surface.

[0086] In another embodiment, when an attitude reset operation is performed while the rod object 103 is in a movable state, the attitude of the rod object 103 may also be returned to its initial attitude.

[0087] If it is determined that a posture reset operation has been performed (YES in step S6), then in step S9, processor 21 resets the posture of hand object 102. Note that, in conjunction with the reset, processor 21 may reset the current posture of mouse 40 at this time point as mouse reference posture data 607 and initialize differential posture data 608. Thereafter, the process proceeds to step S21, which will be described later.

[0088] On the other hand, if the determination result of step S6 above shows that an orientation reset operation has not been performed (NO in step S6), then in step S10 of FIG. 31 , the processor 21 determines, based on the mouse sensor data 604 and the orientation sensor data 605, whether or not an action deemed to be the above-described "in-place rotation" has been performed on the mouse 40. This determination is made based on the principle described above. If the determination result shows "in-place rotation" (YES in step S10), then in step S11, the processor 21 determines a reflection rate for reflecting the mouse sensor data 604 on the movement amount of the hand object 102, depending on a parameter related to the distance between the opening 45 and the rotation center (e.g., the distance d). As an example, the reflection rate may be smaller as the parameter related to the distance between the opening 45 and the rotation center is smaller. In other words, the closer the distance between the opening 45 and the rotation center, the less the user is likely to intend translation, and therefore the movement amount of the hand object 102 based on the mouse sensor data 604 may be smaller. Next, in step S12, the processor 21 determines the amount of movement of the hand object 102 based on the reflection rate. Then, the process proceeds to step S15.

[0089] On the other hand, if the determination result in step S10 above is not "in-place rotation" (NO in step S10), the mouse 40 is considered to be in one of the following states: stopped, undergoing a large translation while being rotated, or only translation without being rotated. Therefore, in step S13, the processor 21 determines whether translation of the mouse 40 (not due to "in-place rotation") has occurred based on the mouse sensor data 604 and the operation buffer 610. That is, it is determined whether the position of the mouse 40 has not changed and the mouse 40 is not moving at all. If the determination result shows that translation has not occurred (NO in step S13), the process proceeds to step S21, which will be described later. On the other hand, if translation has occurred (YES in step S13), the processor 21 determines the amount of movement of the hand object 102 based on the mouse sensor data 604 in step S14. For example, the operation buffer 610 is referenced, and the amount of movement is determined based on the magnitude of the change from the position of the mouse 40 in the previous frame to the current position.

[0090] Next, in step S15, the processor 21 calculates the difference in angle around the z axis between the current attitude of the mouse 40 and the reference attitude, and records it in the differential attitude data 608 (updates it if it has already been recorded).

[0091] Next, in step S16, the processor 21 corrects the movement direction derived from the mouse sensor data 604, as shown in FIG. 28 , based on the mouse sensor data 604 and the differential orientation data 608, and determines the movement direction of the hand object 102 based on this. First, the processor 21 calculates the movement direction as seen from the mouse 40 as described above, based on the mouse sensor data 604. Next, the processor 21 converts the calculated movement direction of the mouse 40 into a movement direction within the screen, based on the initial correspondence. Next, the processor 21 rotates the movement direction within the screen by the angle indicated by the differential orientation data 608. Then, the processor 21 determines the movement direction after the rotation as the movement direction of the hand object 102.

[0092] Next, in step S17, the processor 21 moves the hand object 102 based on the amount and direction of movement.

[0093] Next, in step S18 , the processor 21 rotates the hand object 102 based on the amount of rotation calculated from the orientation sensor data 605 .

[0094] 32, the processor 21 determines whether the stick object 103 is currently in a movable state based on the movable state flag 609. If the determination result indicates a movable state (YES in step S19), the processor 21 moves and rotates the stick object 103 in accordance with the movement and rotation of the hand object 102 in step S20. For example, the processor 21 controls the operation of the stick object 103 by applying the movement amount, movement direction, and rotation amount of the hand object 102 determined based on the mouse sensor data 604 and the attitude sensor data 605 to the stick object 103 as is. Alternatively, the movement and rotation of the stick object 103 may be controlled so as to follow the movement and rotation of the hand object 102.

[0095] On the other hand, if the result of the determination in step S19 is that the hand object 102 is not in a movable state (NO in step S19), the process in step S20 is skipped. That is, only the hand object 102 is moved and rotated.

[0096] Next, in step S21, the processor 21 determines whether or not the stick object 103 has collided with the obstacle object 101, etc. The processor 21 also executes various game processes including processes based on the collision determination.

[0097] Next, in step S22, processor 21 generates a game image that reflects the above processing, and outputs it to display unit 30.

[0098] Next, in step S23, processor 21 determines whether a predetermined game end condition has been satisfied. For example, it determines whether stick object 103 has reached the goal point or whether a condition for game over has been satisfied. If the game end condition has not yet been satisfied (NO in step S23), the process returns to step S3 and the process is repeated. If the condition has been satisfied (YES in step S23), processor 21 ends the game processing.

[0099] This concludes the detailed description of the game processing of this embodiment.

[0100] As described above, in this embodiment, the output data from the mouse sensor 43 is handled differently depending on whether the operation is a "rotation in place" or not. As described above, even when a "rotation in place" operation is performed, unless the positions of the opening 45 and the center of rotation coincide, the output of the mouse sensor 43 may change in accordance with the translation of the mouse 40, potentially resulting in object movement control being executed despite the user's intention. Therefore, when the conditions for a "rotation in place" are met as described above, the rotation control of the target object based on the orientation sensor data 605 is executed, while the amount of translation of the target object is made smaller than in cases where a "rotation in place" is not performed. This makes it easier for the "rotation in place" operation to be controlled in accordance with the user's intention.

[0101] [Modifications] In the above embodiment, the mouse sensor 43 detects the movement of the mouse 40 and outputs the direction and amount of movement, etc. In other embodiments, the mouse sensor 43 may output only data related to reflected light from the work surface, and the information processing device 2 may output whether the mouse has moved, the direction and amount of movement, etc. based on the data. Also, in the above embodiment, the information processing device 2 calculates the current position of the mouse 40 in the mouse coordinate system. However, the mouse sensor 43 may calculate the current position of the mouse 40 and transmit data related to this to the information processing device 2. Also, neither the information processing device 2 nor the mouse sensor 43 may calculate the current position of the mouse 40. The same applies to the attitude sensor 44; either the information processing device 2 or the mouse 40 may calculate the actual attitude.

[0102] The shape of the mouse 40 in the above embodiment is an example. For example, the mouse 40 may be provided with a grip that allows the user to easily grasp and lift it. As an example, the mouse 40 may be used like a general game controller. That is, a game controller having a mouse sensor 43 is included in the scope of the mouse in this disclosure. The mouse 40 may also be detachable from another device. As an example, a set of two mice may be used. In this case, one mouse may have an operating unit on the left side, like the mouse 40 in the above embodiment, and the other mouse may have an operating unit on the right side.

[0103] In the above embodiment, the virtual object can move in two dimensions on the screen, but it may be movable only in one dimension. The range within which the virtual object can be rotated may also be limited. The rotation angle of the mouse 40 and the rotation angle of the virtual object do not have to match.

[0104] In the above embodiment, an image of a virtual object viewed from above is displayed on the screen, and the virtual object moves on a plane. In other embodiments, an image of the virtual object viewed from behind may be displayed on the screen. The virtual object may also move on a curved surface rather than on a plane. Note that such cases are also included in the translation in the present disclosure. Note that the plane on which the virtual object moves may be an invisible plane, or may not be defined as a surface, as long as the virtual object moves in a translational manner.

[0105] In the above embodiment, an example has been shown in which the rotation of the mouse 40 is also reflected in the rotation of the hand object 102. In other embodiments, the rotation of the mouse 40 may be reflected only in the stick object 103, and the hand object 102 may not be rotated.

[0106] In the above embodiment, an example has been shown in which a hand object 102 is displayed as a mouse pointer, and an operation experience of grabbing and moving the stick object 103 with the hand object 102 is provided. In another embodiment, a game similar to the above may be a game in which the hand object 102 is not included. In this case, the translation operation and rotation operation of the mouse 40 are directly reflected in the movement and rotation of the stick object 103. When using such an operation system, for example, the movable state and the immovable state may be switched each time a left click operation (on / off operation of the button 42A) is performed once.

[0107] Furthermore, in the above embodiment, the controlled object is "moved" based on the output data from the mouse sensor 43, and is "rotated" based on the output data from the orientation sensor 44. In other embodiments, the output data from the orientation sensor 44 may be used for object control other than "rotation." For example, when the mouse 40 is rotated clockwise (based on the reference orientation shown in FIG. 24 above), the controlled object is placed in an "attacking state" in which it is performing an attacking action. On the other hand, when the mouse 40 is rotated counterclockwise, the controlled object is placed in a "defensive state" in which it is performing a defensive action.

[0108] In the above embodiment, in the case of a "turn in place," control is performed to reduce the amount of parallel movement, and control is performed to correct the direction of movement based on the output from the mouse sensor 43. In other words, an example has been shown in which two types of control are used in combination. In other embodiments, only one of the types of control may be performed depending on the game content, etc. For example, in the case of a "turn in place," control to reduce the amount of parallel movement may not be performed, and only the above-mentioned movement direction correction control may be performed. Note that it is also possible to perform only movement direction correction control at all times or in appropriate situations without determining whether or not a "turn in place" is occurring. Conversely, control may be performed in the case of a "turn in place," but movement direction correction may not be performed.

[0109] In the above embodiment, the translation amount is reduced when a "rotation in place" is determined. However, in other embodiments, the translation amount may be reduced (including to zero) without determining whether or not a "rotation in place" is determined as a binary value. For example, the translation amount may be reduced according to the distance d. As an example, the translation amount may be determined by multiplying dx or dy by a value between 0 and 1 that approaches 0 as d decreases. In this case, for example, the value may be fixed to 0 when d is equal to or less than a predetermined value, or may be fixed to 1 when d is equal to or greater than another predetermined value.

[0110] In the above embodiment, the forward / backward and left / right movement of the mouse 40 initially corresponds to the up / down and left / right directions on the screen, respectively. In other embodiments, different correspondences may be set in the initial state. For example, as shown in FIGS. 33 and 34 , the forward direction from the perspective of the mouse 40 corresponds to the left direction on the screen, and the right direction corresponds to the up / down direction on the screen. In other words, the correspondence between the forward / backward / left / right directions in the local coordinate system of the mouse 40 and the movement direction of the object 112 on the screen may be changed in advance from the general correspondence. For example, as shown in FIGS. 33 and 34 , if the virtual object 112 operated with the mouse 40 is a horizontally long object, the user can intuitively operate it by rotating the mouse 40 90 degrees and operating it in a horizontally long state due to the similarity in shape. Note that the control to correct the movement direction based on the output from the mouse sensor 43 as described above may or may not be performed. Furthermore, a "turn in place" determination and various controls based on the "turn in place" determination may or may not be performed.

[0111] In the above example, the distance d is calculated and a determination is made as to whether or not the distance d is within a predetermined threshold value to determine whether or not the distance d is within the predetermined threshold value. In this regard, in another embodiment, for example, if the amount of translation detected by the mouse sensor 43 within a predetermined period is equal to or less than a threshold value, the translation of the object to be operated may be deemed to be "translation in place," and control may be performed such that the translation of the object to be operated is not performed. In other words, "translation in place" may be determined without using the output of the orientation sensor as described above.

[0112] Furthermore, while the threshold value compared with the distance d in the above embodiment is a predetermined value, it may be variable. For example, the threshold value may be changed depending on the mouse being used. This is because some mice have different lengths of their bottom surfaces in the front-to-back direction, or their bottom surfaces are not vertically elongated but have a certain width in the front-to-back direction, and the tendency of the position of the rotation center when attempting a "turn in place" varies depending on how the user holds the mouse. In this case, multiple threshold values ​​may be prepared for different mice, and a threshold value appropriate for the mouse being used may be selected. For example, a model identification ID may be stored in each mouse model. The information processing device 2 may then acquire the model identification ID from the mouse connected to it, select a corresponding threshold value, and use it in the above-described determination process. Alternatively, the information processing device 2 (including a server, etc.) may receive the model identification ID or, for example, data indicating the bottom shape of the mouse from the mouse, and calculate or correct the threshold value based on this information. Instead of varying the threshold value depending on the mouse, the distance d may be variable, or the comparison method may be changed.

[0113] In the above embodiment, the above-described processing is applied to a game in which the player moves a stick object 103 to a goal point through a maze-like passage. The above processing can also be applied to other game processes, such as a breakout game. For example, the processing can be applied to a breakout game. Specifically, a bar in a breakout game is moved left and right by moving the mouse 40. Rotating the mouse 40 can also rotate the bar, allowing the player to control the direction in which the ball is hit back to some extent. In this case, the bar on the screen may be moved left and right by moving the mouse 40 forward and backward. That is, the user may operate the mouse 40 by placing their hand on it so that the longitudinal direction of the mouse 40 faces sideways. The bar may also be moved only left and right. In such a game, a guide screen may be displayed to set the reference position to a position obtained by rotating the mouse 40 90 degrees from the position shown in FIG. 24 . When a game start operation is performed, an initial correspondence relationship may be defined in which the positive y-axis direction of the local coordinate system of the mouse 40 corresponds to the left or right direction on the screen. In other words, an initial correspondence relationship may be defined such that the x and y axes of the local coordinate system of the mouse 40 shown in FIG. 2 do not coincide with the x and y axes of the screen. In this case, the movement direction correction process described above involves further correcting the movement direction derived based on the initial correspondence relationship defined here. The present invention is also applicable to a 2D shooting game with a bird's-eye view in which a "tank" is controlled as the controlled object. In this case, for example, the tank's body is moved by translating the mouse 40. Furthermore, the tank's gun barrel is rotated by rotating the mouse 40, thereby changing the firing direction. The above-described process is applicable when using such an operation system.

[0114] The above processing can also be applied to processing other than games. For example, when performing an operation such as pressing a stamp image with a paint tool, it is possible to rotate the stamp image by rotating the mouse 40 and then press the stamp image.

[0115] In another embodiment, for example, the detection result of an acceleration sensor may be used in combination when determining whether the distance d is equal to the threshold value. In the case of a "turn in place," the acceleration is also likely to be a small value. Therefore, by further considering whether the acceleration is small, the accuracy of determining whether the movement is a "turn in place" can be improved.

[0116] In the above embodiment, the case where the above-described game processing is executed by a single information processing device 2 has been described. The information processing device 2 may include multiple storage devices and processors. The above-described game processing may be executed by sharing the processing among these devices. The information processing device may also include a server. The above-described processing may be executed in a distributed system consisting of multiple information processing devices including the server.

[0117] The information processing method, information processing program, and information processing system according to the present disclosure can improve operability when manipulating a virtual object using a mouse, and are useful for various information processing applications using a mouse.

[0118] 2 Information processing device 21 Processor 22 Storage unit 30 Display unit 40 Mouse

Claims

1. In the processor of the information processing device, First data is acquired based on the output of an optical sensor installed in the mouse. Second data is acquired based on the output of the posture sensor provided in the mouse. Based on the first data, the first virtual object is translated, Based on the second data, the first virtual object is controlled in the first way. When the first data and the second data satisfy the first condition, the first virtual object is controlled based on the second data, and the amount of translation of the first virtual object based on the first data is made smaller than the amount of translation when the first condition is not satisfied. Information processing methods.

2. When the first condition is met, the first virtual object is not translated. The information processing method according to claim 1.

3. The aforementioned processor, The information processing method according to claim 1, which determines the degree to which the amount of translation of the first virtual object is reduced according to the first data and / or the second data.

4. The information processing method according to claim 1, wherein the first control is a control for rotating the first virtual object.

5. The information processing method according to any one of claims 4, wherein the direction of movement of the first virtual object based on the first data corresponds to the orientation of the first virtual object after rotation.

6. When the first virtual object rotates by a first angle, The information processing method according to claim 5, wherein the direction of movement of the first virtual object based on the first data is rotated by a first angle.

7. The aforementioned processor, A third data is obtained based on the first operation performed on the mouse. The information processing method according to claim 5, wherein the orientation of the first virtual object is set to a predetermined orientation based on the third data.

8. The aforementioned processor, Perform the specified game process, The information processing method according to claim 5, wherein when a game is started by the predetermined game processing, a screen is displayed that guides the user to the initial position of the mouse at the start of the game.

9. The aforementioned processor, A fourth data is obtained based on the second operation performed on the mouse. The information processing method according to claim 8, wherein the game is started based on the fourth data.

10. The aforementioned processor, The fifth data is obtained based on the third operation performed on the mouse. The sixth data is obtained based on the fourth operation performed on the mouse. When the first virtual object is in a predetermined positional relationship with the second virtual object, the second virtual object is made movable based on the fifth data. Based on the sixth data, the second virtual object is made inactive. The information processing method according to claim 1, wherein the movable second virtual object is moved and rotated in accordance with the movement and rotation of the first virtual object.

11. The information processing method according to claim 1, wherein the first condition is a condition indicating that the center of the rotation operation of the mouse is within a predetermined range.

12. The information processing method according to claim 11, wherein the predetermined range is the range included in the bottom surface of the mouse.

13. The information processing method according to claim 1, wherein the first condition is a condition indicating that the amount of horizontal movement of the mouse is small relative to the amount of rotation of the mouse.

14. The aforementioned processor, The seventh data stored in the mouse is obtained from the mouse. The information processing method according to claim 1, which causes the first condition to be set based on the seventh data.

15. In the processor of the information processing device First data is acquired based on the output of an optical sensor installed in the mouse. Second data is acquired based on the output of the posture sensor provided in the mouse. Based on the first data, the first virtual object is translated, Based on the second data, the first virtual object is controlled in the first way. When the first data and the second data satisfy the first condition, the first virtual object is controlled based on the second data, and the amount of translation of the first virtual object based on the first data is made smaller than the amount of translation when the first condition is not satisfied. Information processing program.

16. An information processing system comprising a mouse having an optical sensor and a posture sensor, and a processor, The aforementioned mouse, The first data based on the output of the optical sensor is transmitted. A second data based on the output of the attitude sensor is transmitted. The aforementioned processor, Based on the acquired first data, the first virtual object is translated. Based on the acquired second data, the first virtual object is subjected to first control. When the first data and the second data satisfy the first condition, the first virtual object is controlled based on the second data, and the amount of translation of the first virtual object based on the first data is made smaller than the amount of translation when the first condition is not satisfied. Information processing system.