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

By combining the output data from the mouse's optical sensor and posture sensor, the movement and rotation control of virtual objects are adjusted, solving the problem of operational incoordination in existing technologies and improving operability and user experience.

CN121986314APending Publication Date: 2026-05-05NINTENDO CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
NINTENDO CO LTD
Filing Date
2023-11-06
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

In existing technologies, mouse-based movement and rotation operations are difficult to match the user's intentions when controlling virtual objects, resulting in a sense of incoherence and poor operability.

Method used

By acquiring the output data from the mouse's optical and posture sensors and combining it with conditional judgments, the movement and rotation control of virtual objects is adjusted to reduce parallel movement and improve the intuitiveness and consistency of operation.

Benefits of technology

It enables more intuitive control during mouse operation, reduces operational inconsistencies, and improves the operability and user experience of virtual objects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121986314A_ABST
    Figure CN121986314A_ABST
Patent Text Reader

Abstract

A first virtual object is moved in parallel on the basis of first data from an optical sensor of a mouse, and first control is performed on the first virtual object on the basis of second data from a posture sensor provided in the mouse. At this time, when the first data and the second data satisfy a first condition, first control is performed on the object based on the second data, and the amount of parallel movement of the first virtual object based on the first data is made smaller than the amount of parallel movement when the first condition is not satisfied.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to an information processing method for controlling virtual objects based on data output from a mouse. Background Technology

[0002] There is a technique for controlling a pointer on a monitor based on mouse movement and rotation operations (e.g., Patent Document 1).

[0003] Existing technical documents

[0004] Patent documents

[0005] Patent Document 1: Japanese Patent Application Publication No. 2004-70843 Summary of the Invention

[0006] The problem the invention aims to solve

[0007] Among the aforementioned technologies, there is room for improvement in the control of virtual objects to better align with the user's intentions.

[0008] Solution for solving the problem

[0009] In view of the above, for example, the following structural example can be given.

[0010] (Structure 1)

[0011] Structure 1 is an information processing method executed by a processor of an information processing device, wherein the processor performs the following processing: acquiring first data based on the output of an optical sensor installed on a mouse; acquiring second data based on the output of a posture sensor installed on a mouse; moving a first virtual object in parallel based on the first data; performing first control on the first virtual object based on the second data; and when the first data and the second data satisfy a first condition, performing first control on the object based on the second data, and making the amount of parallel movement of the first virtual object based on the first data smaller than the amount of parallel movement when the first condition is not satisfied.

[0012] Based on the above structural example, when the first condition is met, the influence of the first data during the first control is reduced. Therefore, it is easier to perform the first control in accordance with the user's intent.

[0013] (Structure 2)

[0014] Regarding structure 2, it is also possible that, in the above structure 1, the first virtual object is not moved in parallel when the first condition is met.

[0015] (Structure 3)

[0016] Regarding structure 3, it is also possible that, in structure 1 above, the processor performs the following processing: determining the degree to which the parallel movement of the first virtual object is minimized based on the first data and / or the second data.

[0017] According to the above structural example, for example, it is possible to improve the operability of making the first virtual object rotate and move in parallel.

[0018] (Structure 4)

[0019] Regarding structure 4, it could also be that in any of the structures 1 to 3 above, the first control is the control that causes the first virtual object to rotate.

[0020] (Structure 5)

[0021] Regarding structure 5, it can also be that, in the above structure 4, the movement direction of the first virtual object based on the first data corresponds to the posture of the first virtual object after rotation.

[0022] Based on the above structural example, intuitive operations can be performed.

[0023] (Structure 6)

[0024] Regarding structure 6, it could also be that, in structure 5 above, when the first virtual object rotates by a first angle, the movement direction of the first virtual object based on the first data is rotated by a first angle.

[0025] Based on the above structural example, as one example, the user's hand movement direction is consistent with the movement direction of the first virtual object, thereby enabling operation without any sense of incongruity.

[0026] (Structure 7)

[0027] Regarding structure 7, it is also possible that, in structure 5 or 6 above, the processor performs the following processing: acquiring third data based on the first operation on the mouse; and using the third data to make the pose of the first virtual object a specified pose.

[0028] Based on the above structural example, as one instance, if the correspondence between the mouse pose and the pose of the first virtual object becomes an unwanted correspondence by the user, this correspondence can be reset. This improves operability.

[0029] (Structure 8)

[0030] Regarding structure 8, it is also possible that, in any of the structures 5 to 7 above, the processor performs the following processing: executes the prescribed game processing; and when the game starts based on the prescribed game processing, displays a screen to guide the initial pose of the mouse at the start.

[0031] Based on the above structural example, by letting the user know the initial mouse posture at the start of the game, it is possible to avoid any sense of inconsistency in the subsequent correspondence between the mouse posture and the posture of the first virtual object.

[0032] (Structure 9)

[0033] Regarding structure 9, it is also possible that, in structure 8 above, the processor performs the following processing: acquiring fourth data based on the second operation on the mouse; and starting the game based on the fourth data.

[0034] Based on the above structural example, triggering the game start by the user can suppress any sense of operational incongruity. The information processing device may not be able to determine whether the mouse is in the prescribed posture, and even assuming it can, the prescribed posture might still feel incongruous to the user. For example, it's possible that although the user is guided to face the mouse forward and intends to set it to that posture, the mouse might actually be slightly turned to the right or left relative to the prescribed posture depending on the angle of their arm and hand. Therefore, by triggering the game start by ensuring the user is in a posture in which they do not perceive any incongruity, subsequent operational incongruity can be suppressed.

[0035] (Structure 10)

[0036] Regarding structure 10, in any of structures 1 to 9 above, the processor may perform the following processing: acquiring fifth data based on a third operation on the mouse; and acquiring sixth data based on a fourth operation on the mouse. Furthermore, when the first virtual object and the second virtual object are in a predetermined positional relationship, the second virtual object may be made movable based on the fifth data, and immovable based on the sixth data, so that the movable second virtual object moves and rotates according to the movement and rotation of the first virtual object.

[0037] Based on the above structural example, the operability of the second virtual object can be improved. When moving or rotating the second virtual object, the operation is limited if the user doesn't switch to the mouse position. For example, sometimes a single rotation operation without switching is insufficient to rotate the second virtual object significantly. Therefore, by enabling switching between movable and immovable states and allowing the first virtual object to intervene, the operability of the second virtual object can be improved. For instance, after rotating the second virtual object to a certain extent during the movable state, restoring the user's hand rotation posture during the immovable state, and then re-establishing the movable state, allows for further rotation of the second virtual object.

[0038] (Structure 11)

[0039] Regarding structure 11, it could also be that, in any of the structures 1 to 10 above, the first condition is a condition indicating that the center of the mouse rotation operation is within a specified range.

[0040] (Structure 12)

[0041] Regarding structure 12, it is also possible that, in the above structure 11, the defined range is the range contained within the bottom surface of the mouse.

[0042] Based on the above structural example, the accuracy of identifying movements such as the mouse rotating in place without moving can be improved.

[0043] (Structure 13)

[0044] Regarding structure 13, it could also be that in any of the structures 1 to 10 above, the first condition is a condition indicating that the horizontal movement of the mouse is smaller than the rotation of the mouse.

[0045] (Structure 14)

[0046] Regarding structure 14, it is also possible that, in any of the structures 1 to 13 above, the processor performs the following processing: obtains seventh data stored in the mouse from the mouse; and sets a first condition based on the seventh data.

[0047] Based on the above structural example, a first condition corresponding to the characteristics of the mouse's rotation trajectory can be set based on the size and shape of the mouse's bottom surface or the overall shape of the mouse. Attached Figure Description

[0048] Figure 1 This is a block diagram illustrating an example of the hardware structure of the information processing device 2 and the mouse 40.

[0049] Figure 2 This is an example of the appearance of the mouse 40.

[0050] Figure 3 This is an example of the appearance of the mouse 40.

[0051] Figure 4 This is an example of a game screen that is assumed to be processed in this embodiment.

[0052] Figure 5 This is an example of a game screen that is assumed to be processed in this embodiment.

[0053] Figure 6 This is an example of a game screen that is assumed to be processed in this embodiment.

[0054] Figure 7This is an example of a game screen that is assumed to be processed in this embodiment.

[0055] Figure 8 This is an example of a game screen that is assumed to be processed in this embodiment.

[0056] Figure 9 This is an example of a game screen that is assumed to be processed in this embodiment.

[0057] Figure 10 This is a diagram used to illustrate an example of "rotating in place".

[0058] Figure 11 This is a diagram used to illustrate an example of "rotating in place".

[0059] Figure 12 This is a diagram used to illustrate an example of "rotating in place".

[0060] Figure 13 This is a diagram used to illustrate an example of "rotating in place".

[0061] Figure 14 This is a diagram used to illustrate an example of "rotating in place".

[0062] Figure 15 This is a diagram used to illustrate an example of "rotating in place".

[0063] Figure 16 This is a diagram used to illustrate an example of "rotating in place".

[0064] Figure 17 This is a diagram used to illustrate an example of "rotating in place".

[0065] Figure 18 This is a diagram used to illustrate an example of "rotating in place".

[0066] Figure 19 This is a diagram used to illustrate an example of "rotating in place".

[0067] Figure 20 This is a diagram used to illustrate an example of a center of rotation.

[0068] Figure 21 This is a diagram used to illustrate an example of a center of rotation.

[0069] Figure 22 This is a diagram used to illustrate an example of a center of rotation.

[0070] Figure 23 It is a diagram used to illustrate symbols.

[0071] Figure 24 This is a diagram used to illustrate the correction of the direction of movement.

[0072] Figure 25 This is a diagram used to illustrate the correction of the direction of movement.

[0073] Figure 26 This is a diagram used to illustrate the correction of the direction of movement.

[0074] Figure 27 This is a diagram used to illustrate the correction of the direction of movement.

[0075] Figure 28 This is a diagram used to illustrate the correction of the direction of movement.

[0076] Figure 29 This is a memory mapping diagram showing an example of various data stored in the storage unit 22 of the information processing device 2.

[0077] Figure 30 This is a flowchart illustrating the details of the game processing.

[0078] Figure 31 This is a flowchart illustrating the details of the game processing.

[0079] Figure 32 This is a flowchart illustrating the details of the game processing.

[0080] Figure 33 This is a diagram used to illustrate a variation.

[0081] Figure 34 This is a diagram used to illustrate a variation. Detailed Implementation

[0082] The following describes one implementation method.

[0083] [Hardware structure of information processing device 2]

[0084] Figure 1 This is a block diagram illustrating an example of the hardware structure of the information processing apparatus 2 and a mouse as an input device according to this embodiment. Figure 1In this embodiment, the information processing device 2 includes a processor 21. The processor 21 is an information processing unit that performs various information processing tasks within the information processing device 2. In this embodiment, the processor 21 is configured as a System-on-a-Chip (SoC) that includes at least CPU (Central Processing Unit) and GPU (Graphics Processing Unit) functions. Furthermore, in other embodiments, the CPU and GPU may be independent structures. The processor 21 performs various information processing tasks by executing information processing programs (e.g., game programs) stored in the storage unit 22. Furthermore, the storage unit 22 may be, for example, an internal storage medium such as flash memory or DRAM (Dynamic Random Access Memory), or a structure utilizing an external storage medium mounted in a slot not shown.

[0085] In addition, the information processing device 2 includes a communication unit 23 for communicating with other information processing devices and designated servers.

[0086] Furthermore, the information processing device 2 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, as an example of an input device, a mouse 40, as described later, will be used for explanation.

[0087] In addition, the information processing device 2 is connected to the display unit 30 (e.g., a monitor) via the image and sound output unit 25. The processor 21 outputs, for example, the image and sound generated by the execution of the above-described information processing to the display unit 30 via the image and sound output unit 25.

[0088] Next, the mouse 40 described above will be explained. The mouse 40 in this embodiment is an input device that can be connected to the information processing device 2 via wireless communication. Figure 2 and Figure 3 The diagram shows the appearance of the mouse 40 as assumed in this embodiment. Figure 2 This is a 3D view showing an example of the mouse 40. Figure 3 This is a six-view diagram showing an example of a mouse 40. In this embodiment, the mouse 40 is assumed to have a shape that is roughly plate-like, with the horizontal width of a typical PC mouse narrowed. Specifically, the length of the mouse 40 in the left-right direction is shorter than its length in the up-down direction and its length in the front-back direction. Furthermore, the length of the mouse 40 in the up-down direction is shorter than its length in the front-back direction. Here, as... Figure 2As shown, in this embodiment, the left-right direction of the mouse 40 is defined as the x-axis, the front-back direction as the y-axis, and the up-down direction as the z-axis. The z-axis is perpendicular to the bottom surface of the mouse 40 (or, if the bottom surface of the mouse 40 is placed on a working surface, it is perpendicular to that working surface). Additionally, two buttons 42A and 42B are provided on the upper surface of the mouse 40. Button 42A may be used for left-clicking, and button 42B may be used for right-clicking. Furthermore, the 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 of the center of the bottom surface. However, the location where the mouse sensor 43 is exposed is not limited to this position. In this embodiment, an optical sensor is used as an example of the mouse sensor 43. Furthermore, the mouse sensor 43 may not be directly exposed through the opening 45 on the bottom surface of the mouse 40. For example, a light guide path can be formed from the opening 45 on the bottom surface of the mouse 40 to the mouse sensor 43 inside the mouse 40. Additionally, buttons 42C and 42D are 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 provided in a position operable by the right thumb. Furthermore, the operating unit on the left side is not limited to buttons. For example, a joystick or touch panel can be provided instead of buttons, or in addition to buttons.

[0089] Return to Figure 1 The hardware structure of mouse 40 will be explained again. Mouse 40 has the aforementioned buttons 42A to 42D. Hereinafter, they will sometimes be collectively referred to as buttons 42.

[0090] In addition, the mouse 40 is equipped with an optical mouse sensor 43 as described above. This mouse sensor 43 detects the movement of the mouse 40 and outputs its movement direction, movement amount, etc.

[0091] In addition, the mouse 40 includes a posture sensor 44. Specifically, the mouse 40 includes an angular velocity sensor as the posture sensor 44. In this embodiment, the angular velocity sensor detects the angular velocity about three predetermined axes. Furthermore, the posture sensor 44 is not limited to an angular velocity sensor; in other embodiments, various sensors capable of detecting posture, such as a geomagnetic sensor, may be used. These sensors may also be used together, as well as other sensors such as accelerometers. Alternatively, multiple optical sensors may be combined to form the posture sensor 44. For example, it is possible to detect rotation of the mouse 40 based on the differences in the detection values ​​of each optical sensor (differences in movement direction, etc.).

[0092] In addition, the mouse 40 also includes a wireless communication unit 41 for wireless communication with the aforementioned input device communication unit 24. Information indicating the pressed state of the aforementioned button unit 42, various detection results of the mouse sensor 43, and various detection results of the posture sensor 44 are repeatedly output to the wireless communication unit 41 at appropriate times and sent to the information processing device 2.

[0093] [Regarding the assumed processing in this embodiment]

[0094] Next, a summary of the information processing assumed in this embodiment will be described. In this embodiment, game processing is assumed as an example of information processing. Figures 4-9 The image shown is an example of a game screen depicting the assumed game processing in this embodiment. Regarding the game in this example, a 2D game is assumed, and the game image is displayed as if viewed from above in virtual space. Figure 4 The image displays obstacle objects 101 arranged to form a maze, a hand object 102 which also serves as a mouse pointer, and a stick object 103 which acts as the user's target. Furthermore, in this embodiment, the initial pose of the stick object 103 (the pose at the start of the game) is set as follows: Figure 4 That kind of elongated posture. This game involves moving the stick object 103 from the starting point to the finish line while avoiding contact with the obstacle object 101. The following is an explanation of how to operate the stick object 103.

[0095] This game provides an experiential element where the user uses a hand object 102 to grasp a stick object 103, causing the stick object 103 to move. Therefore, initially, the user moves the mouse 40 from the aforementioned... Figure 4 The hand object 102 moves to the lower left, causing it to overlap with the stick object 103. As a result, it becomes... Figure 5 The state shown.

[0096] Next, by pressing button 42A (hereinafter referred to as left-click to open), the display form of the hand object 102 changes from an image of an open hand to an image of... Figure 6 The image shown depicts a hand grasping the stick object 103. This indicates the state of grasping the stick object 103. In this game, when the hand object 102 is in this state of grasping the stick object 103, the stick object 103 can be moved (specifically, moved and rotated). Hereinafter, this state will be referred to as the "movable state". Furthermore, when the button 42A is stopped while in the movable state (referred to as left-click to close), the movable state is released, and the display mode of the hand object 102 is restored.

[0097] While maintaining the above Figure 6In that movable state, the user can move the mouse 40° forward horizontally, thus enabling... Figure 7 As shown, the stick object 103 and the hand object 102 are moved toward the screen. Furthermore, in this embodiment, more precisely, control is performed to move the stick object 103 in accordance with the movement of the hand object 102.

[0098] Next, as mentioned above Figure 7 After moving the stick object 103 to the corner of the road, the user now attempts to move the stick object 103 to the right along the road. During this movement, the user can rotate the stick object 103 in a horizontal position so that it does not come into contact with the obstacle object 101. The operation to rotate the stick object 103 is as follows: The user performs the following operation: while keeping the mouse 40 in the left-clicked state (keeping it movable), the user rotates the mouse 40 in place, for example, clockwise. That is, the user performs the following operation: while keeping the mouse 40 as parallel as possible, rotates it around the aforementioned... Figure 2 Rotation along the z-axis, in other words, rotation in the horizontal direction. Furthermore, in the following explanation, when simply referred to as "rotation of the mouse at 40 degrees," it means around... Figure 2 Rotation along the z-axis. Furthermore, in the following, an operation that rotates the mouse 40 degrees in place will be referred to as "rotation in place." By performing such "rotation in place," it is possible to... Figure 8 As shown, the hand object 102 and the rod object 103 are rotated about an axis orthogonal to the display surface, i.e., an axis moving inwards. Furthermore, in this embodiment, more precisely, the rod object 103 is controlled to rotate according to the rotation of the hand object 102. Here, as an example, it is assumed that the hand object 102 and the rod object 103 are ultimately rotated from... Figure 7 The state has rotated 90° clockwise.

[0099] If the rod object 103 can be rotated in a horizontal position, the user can move the mouse 40 horizontally to the right while maintaining its movable state, thus... Figure 9 As shown, the rod object 103 is moved to the right in a manner that does not contact the obstacle object 101.

[0100] The player moves the stick object 103 to the finish line by using its "movement" and "rotation" controls; this is the condition for clearing the game. Additionally, a mistake occurs when the stick object 103 touches an obstacle object 101.

[0101] Here, we would like to supplement the above-mentioned movable state and "rotation in place" operation. As mentioned above, when you want to rotate the mouse 40 while keeping it stationary, consider rotating the mouse 40 by holding it with your right thumb, middle finger, ring finger, and little finger (index finger for left-clicking). In this case, consider rotating using the base of your fingers and wrist as fulcrums. However, the range of motion of your fingers and wrist is limited. Therefore, for example, if you want to rotate the stick object 103 90° clockwise, a single rotation operation may not be sufficient to achieve the 90° rotation. In this game, by setting the stick object 103 to move only when it is in the above-mentioned movable state, you can perform the following operation. That is, the operation is as follows: to rotate the stick object 103 90°, rotate the stick object 103 to the middle (for example, about 45 degrees), temporarily deactivate the movable state, and after returning the mouse 40 to the position before the rotation, reactivate it to apply the remaining rotation. If the diagram illustrates an example of such an operation flow, then for example, let's say the initial state is... Figure 10 That state. In Figure 10 In the middle, the upper half of the quadrilateral frame shows the display status of the stick object 103 and the hand object 102, and the lower half shows a schematic diagram of the mouse 40 viewed from above in the actual space.

[0102] When in Figure 10 When the user left-clicks to open in the current state, such as Figure 11 It becomes movable as shown. Furthermore, in Figure 11 In the middle, by blacking out button 42A, it indicates that a left-click is being initiated. Then, rotate mouse 40 to... Figure 12 The angle shown. The hand object 102 and the stick object 103 rotate accordingly. Furthermore, it is designed so that the mouse 40 cannot be rotated further at the point where it is rotated to this position. Therefore, the user closes the position by leaving the button 42A with a left click. As a result, it becomes... Figure 13 The state shown. In Figure 13 In the process, the image of the hand object 102 is restored to the image when it is in a non-movable state (hereinafter referred to as the "non-movable state"). Then, the user, through, as... Figure 14 As shown (without left-clicking to activate), rotate mouse 40 counterclockwise to restore it to its original position. At this time, hand object 102 rotates counterclockwise according to the rotation of mouse 40 to restore its original position, while stick object 103 remains in the same position.

[0103] Then, as Figure 15 As shown, the user can left-click again to switch to the movable state, as shown. Figure 16Rotate the mouse 40 clockwise as shown. This allows the rod object 103 to be rotated to a horizontal position.

[0104] After that, as Figure 17 As shown, the movable state is deactivated by left-clicking to close the button. Figure 18 Restore the mouse 40 position to its pre-rotation position as shown. Then, as... Figure 19 Switching back to the movable state as shown, by moving the mouse 40, for example, horizontally to the right, the rod object 103 can be moved horizontally to the right. Of course, by maintaining the above... Figure 16 In the state shown, moving the mouse 40 horizontally to the right will also move the rod object 103 horizontally to the right.

[0105] In this way, by repeatedly rotating the stick object 103 in place while switching between movable and immobile states, it is possible to rotate it to the desired angle. Furthermore, this switching of movable states can be used not only for rotation but also for moving the stick object 103. For example, the stick object 103 can be moved horizontally from the left end of the screen to near the center, temporarily deactivated, and then reactivated after the mouse 40 returns to its original position to allow movement.

[0106] Furthermore, as mentioned above, in this game, hand object 102 and stick object 103 can become the user's operation target. However, in the following description, hand object 102 and stick object 103 will sometimes be collectively referred to as "operation target object".

[0107] Furthermore, as mentioned above, in this game, for example, when wanting to change the posture of the stick object 103 at a road corner, the user is required to rotate the mouse 40 as described above. On the other hand, since it is a mistake when the stick object 103 touches the obstacle object 101, the user is required to rotate carefully and meticulously. However, even when performing the "rotation in place" action described above, the rotation center of the mouse 40 sometimes does not align with the opening 45 due to factors such as the range of motion of the user's hand or fingers, and the positional relationship between the opening 45 on the bottom surface provided for guiding light to the mouse sensor 43 and the rotation center. Especially when the user wants to rotate the mouse 40 to a certain degree of angle, it is difficult to always keep the rotation center of the mouse 40 aligned with the opening 45. In other words, even when the posture of the mouse 40 is changed by "rotation in place," the output of the mouse sensor 43 changes according to the horizontal movement of the mouse 40 because the mouse 40 is actually moving horizontally relative to the working surface. For example, in Figures 20-22The diagram illustrates an example of "rotating in place" the mouse 40. In both diagrams, the center of rotation is within the bottom surface of the mouse 40, but its position within the bottom surface varies. Thus, even if the user performs a "rotation in place," as long as the position of the opening 45 is not the same as the position that becomes the center of rotation, the mouse sensor 43 may still produce a slight output corresponding to the parallel movement of the mouse 40. Furthermore, in Figure 20 , Figure 21 In the example, mouse sensor 43 moves to the lower right on the work surface. Figure 22 In the example, the mouse sensor 43 moves to the upper right on the work surface. As such, depending on where the rotation is centered, the amount and direction of movement detected by the mouse sensor 43 will differ. If this horizontal movement is thus reflected in the movement of the stick object 103, even if the user intends for the stick object 103 to merely rotate, it will still rotate while moving horizontally, resulting in a higher probability that the stick object 103 will come into contact with the obstacle object 101.

[0108] As described above, in this embodiment, when the mouse sensor 43 detects parallel movement of the mouse 40, it distinguishes between movement resulting from a "rotation in place" operation as described above, and movement resulting from (normal) parallel movement that is not a "rotation in place". Specifically, in this embodiment, it is determined whether the movement detected by the mouse sensor 43 is a movement resulting from a "rotation in place". Then, in the case of non-"rotation in place" (normal parallel movement), the target object is rotated based on the output of the posture sensor 44, and the target object is moved using the output data of the mouse sensor 43. On the other hand, in the case of "rotation in place", the same control as described above is performed regarding the rotation control of the target object based on the output of the posture sensor 44, but the control performed based on the output data from the mouse sensor 43 is different. Specifically, even if the output data of the mouse sensor 43 is the kind of data that would normally be used to move the target object a first distance (i.e., when the conditions considered as "rotation in place" are not met), control that moves the target object a first distance is not performed; instead, a different control is performed. More specifically, when moving the target object based on the output data from the mouse sensor 43, if it is "rotation in place," the amount of movement is smaller than the amount of movement in the case of not "rotation in place." Making the amount of movement smaller includes making the amount of movement zero.

[0109] [The principle behind determining "rotation in place"]

[0110] Next, the principle of determining whether a "rotation in place" is as described above will be explained in this embodiment. When a user intends to perform a "rotation in place" action, a certain position within the bottom surface (contact surface) of the mouse 40 may become the center of rotation. On the other hand, sometimes rotation occurs unintentionally when the user moves the mouse 40 horizontally; however, in this case, a position other than the bottom surface of the mouse 40, such as the user's elbow position, may become the center of rotation. Therefore, in this embodiment, whether a "rotation in place" is considered is determined by whether the center of rotation of the mouse 40 is within the bottom surface. Furthermore, the bottom surface of the mouse 40 in this embodiment is as described above. Figure 2 and Figure 3 As shown, it is longer in the y-axis direction and shorter in the x-axis direction. Therefore, in the "rotation in place" action, it is assumed that there will be no movement (deviation) of the center of rotation in the x-axis direction.

[0111] Strictly speaking, in a series of "rotation in place" movements, the center of rotation itself changes while rotating within the aforementioned premises. However, if we observe minute, instantaneous changes, the center of rotation can be considered fixed. Therefore, in situations like... Figure 23 As shown, if the slight rotation angle is set as Δθ, the amount of movement of the opening 45 is set as dx and dy, and the distance between the rotation center and the opening 45 is set as d, the following relationship is assumed to hold.

[0112] <When the center of rotation is lower than the opening at 45 degrees>

[0113]

[0114] <When the center of rotation is higher than the opening at 45 degrees>

[0115]

[0116] Furthermore, the above relationship takes advantage of the fact that it holds true when Δθ is sufficiently small.

[0117]

[0118] Regarding the distance d, based on the above formula, it can be calculated using the following formula.

[0119]

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

[0121]

[0122] Next, to determine whether the distances d(d1, d2) calculated above represent values ​​indicating that the rotation center of mouse 40 is within the bottom surface, it is determined whether distance d converges to a threshold. Here, when the position of opening 45 deviates from the center of the mouse's bottom surface relative to the front-rear direction, the distance from opening 45 to the front end of the mouse's bottom surface is different from the distance from opening 45 to the rear end of the mouse's bottom surface, therefore the threshold for comparison with distance d should be different. Therefore, firstly, it is determined whether the rotation center is located in front of or behind opening 45 based on the following conditions. Furthermore, regarding the sign of Δθ, in Figure 23 In the symbol, a counterclockwise rotation is set as a positive sign and a clockwise rotation as a negative sign.

[0123] (Condition 1: The center of rotation is located behind the opening at 45 degrees)

[0124] dy < 0, and dx and Δθ have different signs.

[0125] (Condition 2: The center of rotation is located in front of the opening at 45 degrees)

[0126] dy≥0, and dx and Δθ have the same sign.

[0127] If condition 1 is met, D1 (D1A, D1B) is set as the threshold. If condition 2 is met, D2 (D2A, D2B) is set as the threshold. In this embodiment, in the front-back direction, the opening 45 is located further forward than the center of the bottom surface, so D1 is a value larger than D2. Alternatively, condition 2 can be determined to be met even if condition 1 is not met. Furthermore, conditions 1 and 2 are examples; for instance, condition 1 can be determined simply by checking if dy < 0, or it can be determined by other criteria.

[0128] In the above, if condition 1 is met, the following determination will be made in this embodiment.

[0129] (Condition 3)

[0130] d1 <D1A

[0131] (Condition 4)

[0132] d2 <D1B

[0133] In this embodiment, if both conditions 3 and 4 are met, it is considered that the user intends to make the mouse 40 "rotate in place". Furthermore, the dx and dy values ​​obtained from the output of the mouse sensor 43 in this situation are not treated as parallel movement amounts in normal movement. Additionally, in the above description, D1B is a larger value than D1A. This is because the mouse 40 in this embodiment is as follows... Figure 2As shown, the shape is longer in the y-axis direction. When the mouse 40 is rotated in place, since dy is smaller than dx, the value of d2 is more likely to deviate due to the influence of the error of the mouse sensor 43 compared to d1. However, even if a slight deviation occurs, it will converge to D1B.

[0134] Furthermore, in the above, "rotation in place" is determined when both conditions 3 and 4 are met; however, it can also be determined when only one condition is met. Alternatively, only one of conditions 3 and 4 can be used in the determination, or other conditions can be used. Additionally, in the above, a threshold for comparison with distance d is set from either D1 or D2 based on whether the rotation center is in front of or behind the opening 45; however, a common threshold can also be used. Alternatively, d1 or d2 can be multiplied by a coefficient corresponding to whether the rotation center is in front of or behind the opening 45, and then compared with the threshold.

[0135] Furthermore, as described above, in this embodiment, when "rotation in place" is determined, the amount of movement of the target object based on the output data of the mouse sensor 43 is smaller than the amount of movement when it is determined not to be "rotation in place". Alternatively, even in the case of "rotation in place", the amount of movement can be small, but the target object can still be moved. For example, when the mouse 40 is rotated while moving laterally, the above determination may locally result in "rotation in place". In this case, consider the following situation: especially when the mouse 40 is moved slowly, the stick object 103 stops frequently during movement, making smooth movement impossible. Therefore, even if "rotation in place" is determined, moving the target object can suppress any sense of disharmony for the user. Furthermore, the degree of reduction in the amount of movement of the target object can be a fixed value or rate, or a variable value or rate. For example, it can be set such that the smaller the value of distance d, the greater the reduction. Alternatively, it can be set such that the degree of reduction is determined based on either the data from the mouse sensor 43 or the data from the posture sensor 44.

[0136] Furthermore, the aforementioned determination principle is based on the assumption that the center of rotation of the mouse is within the area of ​​the bottom surface of the mouse 40 when the user intends to perform "rotation in place." However, "rotation in place" can also be determined based on other principles. For example, when the user intends to "rotate in place," it is assumed that the amount of parallel movement detected by the mouse sensor 43 is (very) small relative to the amount of rotation of the mouse 40. Based on this assumption, when the amount of parallel movement is small relative to the amount of posture change, control based on suppressing parallel movement can also be performed. Furthermore, the conditions derived from the results can be the same as or different from the conditions described above.

[0137] [Pose-based movement direction correction]

[0138] Additionally, in the above explanation, the relationship between the movement direction of the mouse 40 and the movement direction of the virtual object on the screen is considered to take into account... Figure 24 The posture shown is used as a reference posture, and the vertical and horizontal directions on the designated working surface that the bottom of the mouse 40 contacts, allowing the mouse 40 to move, correspond to the vertical and horizontal directions of the screen. Specifically, the positive y-axis direction of the mouse 40 (the upward direction on the working surface) corresponds to the upward direction of the screen, and the positive x-axis direction of the mouse 40 (the rightward direction on the working surface) corresponds to the rightward direction of the screen. Furthermore, in Figure 24 In this context, it is assumed that a monitor is located on the positive y-axis side of the local coordinate system of the mouse 40. That is, it is assumed that the plane containing the display surface is approximately orthogonal to the y-axis of the local coordinate system of the mouse 40. Furthermore, when using a mouse, for example in a personal computer, operation is generally performed while maintaining this reference posture and positional relationship.

[0139] However, in this game, it is required to rotate the mouse 40. For example, the user rotates the mouse 40 around the z-axis from a reference posture as described above, thus performing a "rotation in place". In this embodiment, since control is performed to link the posture of the hand object 102 with the posture of the mouse 40, the posture of the hand object 102 changes (rotates) along with the "rotation in place" of the mouse 40. For example, when the mouse 40 is rotated from the aforementioned... Figure 24 When the mouse is rotated approximately 30° (+30°) counterclockwise from its base position, the mouse 40 becomes... Figure 25 That posture. Additionally, the hand rotates approximately 30° around the object 102. Consider the following situation: while maintaining this posture, the user moves the mouse 40 in actual space as follows... Figure 26As shown, it moved horizontally to the right. That is, assume the following situation: the user intends to move the hand object 102 (and, if movable, the stick object 103) to the right within the game screen. In this case, if the mouse 40 is in a position tilted 30° relative to the aforementioned reference posture, the direction of movement of the mouse 40 is detected as a 30° downward-right direction viewed from above 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 mouse's local coordinate system, is determined to be a right-rear direction. As a result, in the game screen, for example... Figure 27 As shown, moving the hand towards the object 102 to the lower right may not reflect the user's intention to move the mouse directly to the right.

[0140] In view of the above, in this embodiment, control is performed such that the direction of movement 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, control is performed as follows: First, the posture of the mouse 40 at the start of the game is stored as a reference posture. In this game, the user is required to perform a game start operation, and the posture of the mouse 40 at the time of this start operation is stored as a reference posture. Here, the reference posture of the mouse 40 is as described above. Figure 24 The posture shown is the same longitudinal posture as the initial posture of the rod object 103. Then, during gameplay, the posture difference data between the reference posture and the current posture of the mouse 40 is recorded. This difference data is, for example, the difference in angles around the z-axis between the reference posture and the current posture. In a specific example, when the mouse 40 is rotated 90° clockwise from the reference posture, "-90°" is recorded as the difference data; when the mouse 40 is rotated 90° counterclockwise from the reference posture, "+90°" is recorded as the difference data; and when the mouse 40 is rotated 180° from the reference posture, "+180° (or -180°)" is recorded as the difference data. Then, when determining the direction of hand movement towards object 102, the movement control of hand movement towards object 102 is performed based on correcting the movement direction of mouse 40 (the movement direction as seen from mouse 40) obtained from the output data of mouse sensor 43 using the differential data. For example, assuming as described above... Figure 25 That would mean a difference of 30° (+30°) counterclockwise relative to the reference posture. In this case, when determining the direction of movement of the hand towards the object 102, as... Figure 28The movement direction of the mouse 40, obtained from the output data of the mouse sensor 43, is corrected by rotating it approximately 30° counterclockwise. By correcting this movement direction, the direction of hand movement (while gripping the mouse 40) in real space is made consistent with the movement direction of the object 102 on the screen, allowing for intuitive movement of the object 102. Furthermore, regarding the stick object 103, by controlling its movement according to the movement of the hand object 102, the same result is obtained regarding the direction of movement of the stick object 103.

[0141] Furthermore, the control of correcting the aforementioned movement direction is one example. As another example, instead of the mouse 40's posture, the difference between the initial posture of the hand-object 102 and the current posture of the hand-object 102 can be used as the aforementioned difference data. Alternatively, the instantaneous rotation of the mouse 40 can be successively reflected in the correction amount of the hand-object 102's movement direction without using a reference posture.

[0142] [Details of the processing in this embodiment]

[0143] Next, refer to Figures 29-32 The game processing in this embodiment will be explained in more detail.

[0144] [Regarding Data Usage]

[0145] First, the various data used in the processing of this embodiment will be explained. Figure 29 This is a memory mapping diagram showing an example of various data stored in the storage unit 22 of the information processing device 2. The storage unit 22 stores game program 601, object data 602, operation data 603, mouse reference posture data 607, differential posture data 608, movable status flag 609, operation buffer 610, etc. Game program 601 is a program used to execute the game processing according to this embodiment.

[0146] Object data 602 contains data on various objects that appear in the game, such as the aforementioned stick object 103 and hand object 102. Additionally, object data 602 also includes data representing the reference pose (initial pose) of the aforementioned stick object 103 and hand object 102.

[0147] Operation data 603 is data used to represent the operations performed on the mouse 40. Operation data 603 includes mouse sensor data 604, posture sensor data 605, and button data 606. Mouse sensor data 604 is data output from mouse sensor 43. Mouse sensor data 604 includes data indicating the amount and direction of movement of the mouse 40. Furthermore, based on this data, for example, the current position of the mouse 40 in a defined two-dimensional coordinate system (mouse coordinate system) can be determined in the form of x and y coordinates. Posture sensor data 605 is data output from posture sensor 44. In this example, posture sensor data 605 includes data about three defined axes (…). Figure 2 The angular velocity (x, y, z axes). Button data 606 represents the pressed state of buttons 42A to 42D.

[0148] Mouse reference pose data 607 is data that stores data representing the pose used as the reference pose of mouse 40.

[0149] Differential pose data 608 is used to represent the difference in rotation angle around the z-axis between the current pose of mouse 40 and the reference pose.

[0150] The movable state flag 609 is a flag used to indicate whether it is in the above-mentioned movable state. When it is turned on, it indicates that it is in the movable state.

[0151] Operation buffer 610 is a storage area used, for example, to temporarily store operation data up to several frames ago. Operation buffer 610 is used to calculate, for example, the difference between the position / pose of mouse 40 one frame ago and the current position / pose of mouse 40.

[0152] [About Flowcharts]

[0153] Next, the details of the processing in this embodiment will be explained. Here, we will mainly explain the processing related to the operation of the stick object 103 as described above, and omit the details of other game processing. In addition, in this embodiment, the flowchart shown below is implemented by having one or more processors read the program stored in one or more memories and execute the program. In addition, this flowchart is just a simple example of the processing procedure. Therefore, the processing order of each step can be changed as long as the same result can be obtained. In addition, the values ​​of the variables and the thresholds used in the decision step are also simple examples, and other values ​​can be used as needed.

[0154] Figures 30-32This is a flowchart illustrating the details of the game processing involved in this embodiment. Furthermore, this processing is an example of the game processing for level 1 in a level-based game. Additionally, the processing loop of steps S3 to S23 is repeatedly executed multiple times within 1 second, depending on the frame rate.

[0155] First, in step S1, before the actual game begins, the processor 21 displays a guidance screen to the user explaining the game rules and how to operate the mouse 40. This screen, for example, displays an image instructing the user to place the mouse 40 in a prescribed posture on a prescribed work surface. As an example, this prescribed posture is the same as the initial posture of the hand on the object 102. In this embodiment, for example, it is set as... Figure 24 The posture shown is as depicted. Additionally, the screen indicates that the game can be started by pressing the designated button (the game start operation).

[0156] Next, in step S2, the processor 21 detects that the user has initiated a game start operation and performs game start processing. In this process, data representing the mouse 40's posture at that time is recorded as mouse reference posture data 607. Additionally, a process is performed to define the correspondence (initial correspondence) between the mouse 40's up, down, left, and right directions in the local coordinate system and the up, down, left, and right directions on the screen at the game start time. For example, initial correspondence data (not shown) representing this correspondence can be generated and stored in the storage unit 22. In this game, in order to... Figure 24 That posture is set as the baseline posture, and the above guidance screen is displayed, assuming that... Figure 24 Begin the game in that posture. If you operate as assumed, then... Figure 2 The initial correspondence is defined as follows: the positive y-axis of the mouse 40 in the local coordinate system corresponds to the upward direction of the screen, and the positive x-axis of the mouse 40 in the local coordinate system corresponds to the rightward direction of the screen. In addition, the processor 21 constructs as described above... Figure 4 The game image of the maze-like virtual space shown is generated and displayed at the starting point, where the bar object 103 is configured.

[0157] In addition, the game starts processing (recording of mouse baseline posture data 607), for example, whenever a player makes a mistake midway through a level and has to restart.

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

[0159] Next, in step S4, the processor 21 determines, based on the operation data 603, whether the user has performed an operation to switch between the movable and immobile states (hereinafter referred to as a switching operation). In this embodiment, the switch from the immobile state to the movable state is the pressing of button 42A when the hand object 102 and the stick object 103 are in a predetermined positional relationship. More specifically, this positional relationship is such that the hand object 102 and the stick object 103 partially overlap. In other examples, they do not need to overlap; for example, they may be adjacent. Furthermore, the switch from the movable state to the immobile state releases the previously pressed button 42A.

[0160] If the above determination indicates that a switching operation has been performed ("Yes" in step S4), in step S5, the processor 21 sets the movable state flag 609 to be on or off in a manner that switches the movable state flag 609 between a movable state and a non-movable state to a state different from the current state. For example, if a switching operation (pressing button 42A) is performed when the movable state flag 609 is off, the processor 21 sets the movable state flag 609 to be on. Then, the process proceeds to step S6, which will be described later.

[0161] On the other hand, if the result of the determination in step S4 is that no switching operation was performed ("No" in step S4), in step S6, the processor 21 determines whether a posture reset operation has been performed. A posture reset operation is an operation used to restore the posture of the hand object 102 to its initial posture. This operation is used, for example, to adjust the correspondence between the posture of the mouse 40 and the posture of the hand object 102 if it is not intended by the user. For example, in the case described above... Figure 24 When the game starts with that posture as the baseline posture, it is expected that the hand object 102 will also be displayed in a posture that is rotated 45° to the right when the mouse 40 is rotated 45° to the right. However, there may be a situation where, due to the accumulation of detection errors of the posture sensor 44, the posture of the hand object 102 deviates from the actual posture of the mouse 40, for example, only rotating 30°. In this case, by performing a posture reset operation based on, for example, the posture of the mouse 40 as the aforementioned baseline posture, the posture of the hand object 102 is restored to its initial posture, thereby making the baseline posture of the mouse 40 correspond to the posture of the hand object 102. In this embodiment, the posture reset operation is assumed to be the pressing of button 42D.

[0162] Furthermore, regarding the aforementioned posture reset operation, in other embodiments, it can also be configured to detect beforehand that the mouse 40 is lifted (picked up), and treat this as a posture reset operation. The method for detecting the lifting is not limited. For example, mouse sensor data 604 and posture sensor data 605 can also be used. Alternatively, the mouse 40 can also be equipped with other sensors for detecting lifting. In addition, the lifting can be determined by the mouse 40 itself, or by the information processing device 2 based on the output from the mouse 40. When the user lifts the mouse, the intention to restore the hand holding the mouse 40 to its original posture is also considered. Therefore, by resetting the posture of the hand holding the object 102 along with such an action, when the lifted mouse 40 is returned to the work surface, the posture of the mouse 40 corresponds to the posture of the hand holding the object 102, so that the user can continue to perform operations without any sense of incongruity. In this configuration, the movement of the finger used to press the button 42D is not required, and the posture reset of the hand holding the object 102 can be performed through a natural and intuitive movement during the series of actions of operating the mouse 40. In addition, as a posture reset operation, it is also possible to press the aforementioned button 42D, etc., in addition to lifting the mouse. Alternatively, the posture can be reset by returning the mouse 40 to the work surface after it has been lifted.

[0163] In other embodiments, when a posture reset operation is performed while the object is in a movable state, the posture of the rod object 103 can also be restored to the initial posture.

[0164] If the above determination indicates that a posture reset operation has been performed ("Yes" in step S6), then in step S9, the processor 21 resets the posture of the hand object 102. Alternatively, along with the reset, the processor 21 may again set the current posture of the mouse 40 at that point in time as the mouse reference posture data 607 and initialize the differential posture data 608. After that, the process proceeds to step S21, which will be described later.

[0165] On the other hand, if the result of the determination in step S6 above is that no posture reset operation was performed ("No" in step S6), then... Figure 31In step S10, the processor 21 determines whether the mouse 40 has undergone an action that can be considered as a "rotation in place" as described above, based on the mouse sensor data 604 and the posture sensor data 605. This determination is based on the principle described above. If the determination result is "rotation in place" ("yes" in step S10), in step S11, the processor 21 determines the degree to which the mouse sensor data 604 is reflected in the amount of movement of the hand object 102 based on a parameter related to the distance between the opening 45 and the rotation center (e.g., the distance d described above). For example, the smaller the parameter related to the distance between the opening 45 and the rotation center, the smaller the degree of reflection. That is, the closer the distance between the opening 45 and the rotation center, the more likely it is assumed that the user does not intend to make parallel movements, and therefore the smaller the amount of movement of the hand object 102 based on the mouse sensor data 604. Next, in step S12, the processor 21 determines the amount of movement of the hand object 102 based on this degree of reflection. Then proceed to step S15.

[0166] On the other hand, if the result of the determination in step S10 is not "rotation in place" ("No" in step S10), it is considered that the mouse 40 is in any of the following states: stopped, rotating while moving horizontally at a large distance, or only moving horizontally without rotating. Therefore, in step S13, the processor 21 determines whether the mouse 40 is undergoing horizontal movement (not due to "rotation in place") based on the mouse sensor data 604 and the operation buffer 610. That is, it determines whether the position of the mouse 40 has not changed and the mouse 40 is not moving at all. If the result of this determination is that no horizontal movement is occurring ("No" in step S13), the process proceeds to step S21 described later. On the other hand, if horizontal movement is occurring ("Yes" in step S13), in step S14, the processor 21 determines the amount of movement of the hand towards the object 102 based on the mouse sensor data 604. For example, referring to the operation buffer 610, 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.

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

[0168] Next, in step S16, the processor 21, based on the mouse sensor data 604 and the differential pose data 608, performs the following as described above. Figure 28As shown, the movement direction derived from mouse sensor data 604 is corrected, and the movement direction of the hand towards object 102 is determined 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 described above. Next, the processor 21 rotates this movement direction within the screen by an angle represented by the differential pose data 608 described above. Then, the processor 21 determines this rotated movement direction as the movement direction of the hand towards object 102.

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

[0170] Next, in step S18, the processor 21 rotates the hand object 102 based on the rotation amount calculated according to the posture sensor data 605.

[0171] Next, in Figure 32 In step S19, the processor 21 determines whether the current state is movable based on the movable state flag 609. If the determination result is that the state is movable ("Yes" in step S19), in step S20, the processor 21 causes the stick object 103 to move and rotate according to the movement and rotation of the hand object 102. For example, the processor 21 directly applies the amount of movement, direction of movement, and amount of rotation of the hand object 102 determined based on the mouse sensor data 604 and posture sensor data 605 to the stick object 103 to control its motion. Alternatively, the stick object 103 can be moved / rotated in a manner that makes it follow the movement / rotation of the hand object 102.

[0172] On the other hand, if the result of the determination in step S19 is that the object is not movable ("No" in step S19), the processing in step S20 is skipped. That is, only the hand moves / rotates the object 102.

[0173] Next, in step S21, the processor 21 performs collision detection between the stick object 103 and obstacle objects 101, etc. Additionally, the processor 21 executes various game processing steps, including processing based on this collision detection.

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

[0175] Next, in step S23, the processor 21 determines whether the prescribed game-ending conditions have been met. For example, it determines whether the stick object 103 has reached the finish line and whether the conditions for ending the game have been met. If the game-ending conditions have not been met ("No" in step S23), the process returns to step S3 and repeats. If the game-ending conditions are met ("Yes" in step S23), the processor 21 ends the game processing.

[0176] This concludes the detailed explanation of the game processing in this embodiment.

[0177] In this embodiment, the processing of the output data from the mouse sensor 43 is performed differently depending on whether it is a "rotation in place" or not. As described above, even when a "rotation in place" operation is performed, if the position of the opening 45 is not aligned with the rotation center, the output of the mouse sensor 43 will change accordingly to the parallel movement of the mouse 40, making it possible to perform object movement control even without the user's intention. Therefore, when the conditions for what is considered a "rotation in place" are met as described above, rotation control for the target object based on the posture sensor data 605 is performed, while the amount of parallel movement of the target object is smaller than that in the case of a "rotation in place". This makes it easier to reflect control that matches the user's intention during a "rotation in place" operation.

[0178] [Variation Example]

[0179] In the above embodiment, mouse sensor 43 detects the movement of mouse 40 and outputs its movement direction, movement amount, etc. In other embodiments, mouse sensor 43 may only output data related to reflected light from the working surface, and information processing device 2 may use this data to output whether mouse movement exists, its direction, and movement amount. Furthermore, in the above embodiment, information processing device 2 calculates the current position of mouse 40 in the mouse coordinate system. However, mouse sensor 43 may also calculate the current position of mouse 40 and send data related to the current position of mouse 40 to information processing device 2. Alternatively, neither information processing device 2 nor mouse sensor 43 may calculate the current position of mouse 40. The same applies to posture sensor 44; either information processing device 2 or mouse 40 may actually calculate the posture.

[0180] The shape of the mouse 40 in the above embodiment is one example. For example, it may also have a grip for easy holding and picking up by the user. As an example, the mouse 40 may also be used like a regular game controller. That is, a game controller with a mouse sensor 43 is included in the scope of the mouse in this disclosure. In addition, the mouse 40 may also be detachable from other devices. In addition, as an example, two mice may be used as a set. In this case, one mouse may have an operating unit on its left side, as in the mouse 40 of the above embodiment, and the other mouse may have an operating unit on its right side.

[0181] In the above embodiments, the virtual object can move in a two-dimensional direction on the screen, but it can also be configured to move only in a one-dimensional direction. Alternatively, the rotation range of the virtual object can be limited. Furthermore, the rotation angle of the mouse 40 can be inconsistent with the rotation angle of the virtual object.

[0182] In the above embodiments, an image of the 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 moving backward may also be displayed on the screen. Furthermore, the virtual object may move on a curved surface instead of a plane. This also includes parallel movement as described in this disclosure. Additionally, the plane for the virtual object to move may be an invisible plane, or it may not be defined by a surface, as long as the virtual object moves in parallel as a result.

[0183] Furthermore, in the above embodiments, an example is shown where 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 without causing the hand object 102 to rotate.

[0184] Furthermore, in the above embodiment, an example is shown where a hand object 102 is displayed as a mouse pointer, providing an operational experience as if the hand object 102 is grasping the stick object 103 to move it. In other embodiments, in the same game as described above, the game can also be set up without the hand object 102. In this case, the parallel movement / rotation operation of the mouse 40 is directly reflected in the movement / rotation of the stick object 103. When using such an operating system, for example, it is also possible to control the switching between the movable and immovable states each time a left-click operation (the on / off operation of button 42A) is performed.

[0185] Furthermore, in the above embodiment, the target object is "moved" based on output data from mouse sensor 43, and "rotated" based on output data from posture sensor 44. In other embodiments, output data from posture sensor 44 can also be used for object control other than "rotation". For example, control can also be performed as follows: when mouse 40 is being moved (as described above)... Figure 24 When the mouse is rotated clockwise from that reference position, it is set to an "attack state" where the target object is performing an attack. On the other hand, when the mouse is rotated counterclockwise, it is set to a "defense state" where the target object is performing a defensive action.

[0186] Furthermore, in the above embodiment, in the case of "rotation in place," control is performed to reduce the amount of parallel movement, and control is performed to correct the movement direction based on the output from the mouse sensor 43. That is, an example of using both controls simultaneously is shown. In other embodiments, either control may be performed only depending on the game content, etc. For example, in the case of "rotation in place," the control to reduce the amount of parallel movement may not be performed, and only the movement direction correction control as described above may be performed. Alternatively, the determination of whether it is "rotation in place" may not be performed, and only movement direction correction control may be performed consistently or in appropriate situations. Conversely, control may be performed when "rotation in place," but movement direction correction may not be performed.

[0187] Furthermore, in the above embodiment, when it is determined to be "rotation in place," control is performed to reduce the amount of parallel movement. However, in other embodiments, control to reduce the amount of parallel movement (including zero) may be performed without performing a binary determination of whether it is "rotation in place." For example, control may be performed to reduce the amount of parallel movement based on the distance d. As an example, the amount of parallel movement is defined as the value obtained by multiplying dx or dy by a value between 0 and 1, where the smaller d is, the closer it is to 0. In addition, in this case, for example, the value may be fixed to 0 if d is below a predetermined value, or the value may be fixed to 1 if d is above or above other predetermined values.

[0188] Furthermore, in the above embodiment, in the initial state, the forward / backward and left / right movements of the mouse 40 correspond to the up / down and left / right movements within the screen, respectively. In other embodiments, different correspondences can be set in the initial state. For example, the following relationships: Figure 33 and Figure 34As shown, from the perspective of mouse 40, the forward direction corresponds to the left direction of the screen, and the right direction corresponds to the top direction of the screen. That is to say, the correspondence between the forward, backward, left, and right directions of mouse 40 in the local coordinate system and the movement direction of object 112 on the screen can be pre-altered compared to the general correspondence. As an example, as... Figure 33 , Figure 34 As shown, when the virtual object operated by mouse 40 is a horizontally elongated object 112, rotating mouse 40 by 90 degrees allows for operation in a horizontally elongated position. Due to the similarity in shape, the user can operate it intuitively. Furthermore, the control described above, which corrects the movement direction based on the output from mouse sensor 43, can be performed or not. Similarly, the determination of "rotation in place" and various controls based on this determination can also be performed or not.

[0189] Furthermore, the above example illustrates the following: to determine whether it is a "rotation in place," the distance d is calculated, and it is determined whether the distance d is within a predetermined threshold range. Regarding this, in other embodiments, for example, the control could be performed as follows: if the amount of parallel movement detected by the mouse sensor 43 within a predetermined period is below a threshold, it is considered a "rotation in place," and the target object is not allowed to move parallel. That is, it is also possible to determine "rotation in place" without using the output of a posture sensor as described above.

[0190] Furthermore, in the above embodiment, the threshold for comparison with distance d is a predetermined value, but it can also be variable. For example, the threshold can be changed depending on the mouse used. This is because, depending on the mouse, the length of the bottom surface in the front-to-back direction may be different, or the bottom surface may not be a longitudinal shape but have a certain degree of lateral width in the front-to-back direction, or the position of the rotation center when intending to "rotate in place" may also be different depending on the way the user's hand is placed. In this case, multiple thresholds corresponding to multiple mice may be prepared in advance, and the threshold corresponding to the mouse used may be selected. For example, a model identification ID may be stored in the mouse itself for each mouse model in advance. Moreover, the information processing device 2 may obtain the model identification ID from the mouse connected to the information processing device 2 itself, and select the threshold corresponding to the model identification ID for use in the determination process described above. Alternatively, in addition to receiving the model identification ID from the mouse, data such as data representing the shape of the bottom surface of the mouse as an example, may be received, and the information processing device 2 (including a server, etc.) may calculate and correct the threshold based on this information. Furthermore, instead of making the threshold variable depending on the mouse, the distance d may be made variable, or the comparison method may be changed.

[0191] Furthermore, in the above embodiment, an example of applying the above-described processing is given in a game where the stick object 103 is moved to the finish line along a maze-like path. In addition, the above-described processing can also be applied to the following game processing. For example, it can be applied to a brick-breaking game. Specifically, the bounce platform (Bar) in the brick-breaking game is moved left and right by moving the mouse 40. Furthermore, the bounce platform can be rotated by rotating the mouse 40, thereby allowing some control over the direction of the ball's return. Moreover, the bounce platform on the screen can also be moved left and right by moving the mouse 40 in the forward and backward direction. That is, the user can also place their hand on the mouse with the long side of the mouse 40 facing horizontally to operate. Additionally, the bounce platform can also move only in the left and right direction. Furthermore, in such a game, in order to move the mouse 40 relative to... Figure 24 The pose shown is set as the baseline pose after rotating 90°, and a guide screen can also be displayed. Furthermore, an initial correspondence can be defined between the positive y-axis direction of the mouse cursor (40) in the local coordinate system and the left or right direction of the screen when the game start operation is performed. In other words, it is also possible to define... Figure 2 The initial correspondence between the x and y axes of the mouse 40 in the local coordinate system and the x and y axes of the screen is inconsistent. In this case, during the correction of the movement direction as described above, further correction is performed on the movement direction derived based on the initial correspondence defined here. Furthermore, this can also be applied to top-down 2D shooting games where a "tank" is the target object. In this case, for example, the tank's hull is moved by moving the mouse 40 horizontally. Additionally, the tank's gun is rotated by rotating the mouse 40, thereby changing the firing direction. When using such a control system, the aforementioned processing can be applied.

[0192] Furthermore, the above processing can also be applied to processing other than game processing. For example, when using drawing tools to perform operations such as stamping an image, it is possible to rotate the stamp image by rotating the mouse by 40 degrees and then stamping the image.

[0193] In other embodiments, for example, the detection results of the acceleration sensor can also be used when determining the distance d and the threshold. In the case of "rotation in place," the acceleration is considered to be small as well. Therefore, by also considering whether the acceleration is small, the accuracy of determining whether the motion is "rotation in place" can be improved.

[0194] Furthermore, the above embodiment describes a scenario where the game processing described above is performed by a single information processing device 2. This information processing device 2 may also include multiple storage devices and processors. Moreover, the processing can be distributed among the various storage devices and processors to perform the game processing. Additionally, this information processing device may also include a server. Furthermore, the above processing can also be performed in a distributed system comprising multiple information processing devices, including a server.

[0195] Industrial availability

[0196] The information processing methods, procedures, and systems disclosed herein can improve operability when using a mouse to manipulate virtual objects and are useful in various information processing applications that utilize a mouse.

[0197] Explanation of reference numerals in the attached figures

[0198] 2: Information processing device; 21: Processor; 22: Storage unit; 30: Display unit; 40: Mouse.

Claims

1. An information processing method, wherein a processor of an information processing device performs the following processing: Acquire first data based on the output of the optical sensor set in the mouse; Acquire second data based on the output of the gesture sensor set in the mouse; Based on the first data, the first virtual object is moved in parallel. The first virtual object is controlled based on the second data. as well as When the first data and the second data satisfy the first condition, the object is controlled based on the second data, and the parallel movement of the first virtual object based on the first data is smaller than the parallel movement when the first condition is not satisfied.

2. The information processing method according to claim 1, wherein, When the first condition is met, the first virtual object is not allowed to move in parallel.

3. The information processing method according to claim 1, wherein, The processor performs the following processing: determining, based on the first data and / or the second data, the extent to which the parallel movement of the first virtual object is minimized.

4. The information processing method according to any one of claims 1 to 3, wherein, The first control is the control that causes the first virtual object to rotate.

5. The information processing method according to claim 4, wherein, Make the movement direction of the first virtual object based on the first data correspond to the posture of the first virtual object after rotation.

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

7. The information processing method according to claim 5 or 6, wherein, The processor is instructed to perform the following processing: Acquire third data based on the first operation performed on the mouse; and The pose of the first virtual object is determined based on the third data.

8. The information processing method according to any one of claims 5 to 7, wherein, The processor is instructed to perform the following processing: Perform the prescribed game processing; as well as When the game starts based on the specified game processing, a screen is displayed to guide the initial position of the mouse at that start.

9. The information processing method according to claim 8, wherein, The processor is instructed to perform the following processing: Acquire fourth data based on the second operation performed on the mouse; and The game is started based on the fourth data.

10. The information processing method according to any one of claims 1 to 9, wherein, The processor is instructed to perform the following processing: Obtain fifth data based on the third operation performed on the mouse; Acquire sixth data based on the fourth operation performed on the mouse; and When the first virtual object and the second virtual object are in a predetermined positional relationship, the second virtual object is made movable based on the fifth data. Based on the sixth data, the second virtual object is made into a non-movable state. The second virtual object in the movable state moves and rotates according to the movement and rotation of the first virtual object.

11. The information processing method according to any one of claims 1 to 10, wherein, The first condition is that the center of the mouse rotation operation is within a specified range.

12. The information processing method according to claim 11, wherein, The specified range is the area encompassed on the bottom surface of the mouse.

13. The information processing method according to any one of claims 1 to 10, wherein, The first condition is a condition that indicates that the horizontal movement of the mouse is smaller than the rotation of the mouse.

14. The information processing method according to any one of claims 1 to 13, wherein, The processor is instructed to perform the following processing: Obtain the seventh data stored in the mouse; as well as The first condition is set based on this seventh piece of data.

15. An information processing program that causes the processor of an information processing device to perform the following processes: Acquire first data based on the output of the optical sensor set in the mouse; Acquire second data based on the output of the gesture sensor set in the mouse; Based on the first data, the first virtual object is moved in parallel. The first virtual object is controlled based on the second data. as well as When the first data and the second data satisfy the first condition, the object is controlled based on the second data, and the parallel movement of the first virtual object based on the first data is smaller than the parallel movement when the first condition is not satisfied.

16. An information processing system comprising a mouse and a processor, wherein, The mouse has an optical sensor and a posture sensor. The mouse performs the following processing: Send first data based on the output of the optical sensor; and Send second data based on the output of the posture sensor. The processor performs the following processing: The first virtual object is moved in parallel based on the first data obtained. The first virtual object is controlled based on the acquired second data; as well as When the first data and the second data satisfy the first condition, the object is controlled based on the second data, and the parallel movement of the first virtual object based on the first data is smaller than the parallel movement when the first condition is not satisfied.

Citation Information

Patent Citations

  • Processing method by computer, and mouse

    JP2004070843A