Information processing method, information processing system and information processing program
Patent Information
- Application Number
- JP2024205079
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-11-26
- Publication Date
- 2025-10-07
- Estimated Expiration
- 2044-11-26
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to information processing for games and the like. [Background technology]
[0002] It has been known in the past to switch between operating the aiming position based on the operation of an operation unit and operating based on acquired coordinates on a display screen. It is also known that an acceleration sensor may be used to acquire the coordinates used to operate the aiming position. It is also known that this operation switching can take into account the acquired coordinates, the movement of the controller, and the operating state of the operation unit. For example, see paragraphs
[0146] ,
[0151] , and
[0155] of Patent Document 1. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2013-90941 Summary of the Invention [Problem to be solved by the invention]
[0004] The above-described techniques have room for improvement in controlling the aim position. [Means for solving the problem]
[0005] For example, the following configuration example can be given.
[0006] (Configuration 1) Configuration 1 is an information processing method using a controller equipped with at least one of a mouse sensor and a directional operation unit operated by a user, and an inertial sensor, and includes a mode setting step of setting one of a plurality of modes including a first mode and a second mode, and a virtual object control step of determining the position of a virtual object based on the output of the directional operation unit or the mouse sensor in the first mode and determining the position of the virtual object based on the output of the inertial sensor in the second mode, wherein in the virtual object control step, in the second mode, the position of the virtual object is determined according to the attitude of the controller based on a correspondence relationship whereby the virtual object is located at a predetermined position within a display range when the controller is in a reference attitude, and when the first attitude, which is the attitude of the controller when switching from the first mode to the second mode, satisfies at least a first condition, the reference attitude is updated to an attitude where the position of the virtual object according to the first attitude is within the display range.
[0007] (Configuration 2) In configuration 2 based on the above-mentioned configuration 1, the first condition may include that the position of the virtual object according to the first attitude is outside the display range.
[0008] (Configuration 3) In a third aspect of the present invention, in the first or second aspect, when the first attitude satisfies a first condition, the reference attitude may be updated to the first attitude.
[0009] (Configuration 4) Configuration 4 is any one of configurations 1 to 3, wherein the predetermined position may be a center position of the display range.
[0010] (Configuration 5) Configuration 5 may be such that, in any of configurations 1 to 4, when the first attitude does not satisfy the first condition, the virtual object is moved from the position of the virtual object in the first mode toward the position of the virtual object in the second mode at a slower speed than when the first attitude satisfies the first condition.
[0011] (Configuration 6) Configuration 6 may be configured such that in any of configurations 1 to 5, when switching from the second mode to the first mode, if the virtual object is outside the display range, the virtual object is positioned within the display range.
[0012] (Configuration 7) Configuration 7 may be configured as in configuration 6, wherein the position of the virtual object within the display range is determined according to the position of the virtual object outside the display range when switching from the second mode to the first mode.
[0013] (Configuration 8) Configuration 8 may be such that in any of configurations 1 to 7, in the first mode and the second mode, the position of the virtual object is updated to a predetermined position in response to a button operation, and when the position of the virtual object is updated to the predetermined position, the reference attitude is updated to the attitude of the controller at the time of the update.
[0014] (Configuration 9) A ninth configuration may be configured in any one of the first to eighth configurations, wherein the first mode is switched to the second mode when at least the output of the inertial sensor satisfies a second condition.
[0015] (Configuration 10) Configuration 10 may be configured in any one of configurations 1 to 9, wherein in the first mode, the position of the virtual object is determined based on the output of the mouse sensor.
[0016] (Configuration 11) Configuration 11 is the same as configuration 10, wherein the mode setting step sets one of a plurality of modes including a first mode, a second mode, and a third mode, and the virtual object control means step determines the position of the virtual object based on the output of the direction operation unit in the third mode, and when the first attitude when switching from the first mode or the third mode to the second mode satisfies at least a first condition, the reference attitude may be updated to an attitude in which the position of the virtual object according to the first attitude is within the display range. [Effects of the Invention]
[0017] According to this embodiment, it is possible to provide more appropriate control of virtual objects such as a crosshair. [Brief explanation of the drawings]
[0018] [Figure 1] FIG. 1 shows an example of a state in which the right controller 3 and the left controller 4 are attached to the main unit 2. [Figure 2] Six-sided diagram showing an example of the right controller 3 [Figure 3] Six-sided diagram showing an example of the left controller 4 [Figure 4] A block diagram showing an example of the internal configuration of the main unit 2. [Figure 5] A block diagram showing an example of the internal configuration of the main unit 2, the right controller 3, and the left controller 4. [Figure 6] FIG. 10 shows an example of a state in which the right controller 3 is held and operated in the right hand. [Figure 7] FIG. 10 shows an example of a state in which the right controller 3 is held and operated in the right hand. [Figure 8] A diagram explaining the controller's operation modes [Figure 9] A diagram showing an example of a moving display of the crosshair [Figure 10] A diagram showing an example of a moving display of the crosshair [Figure 11] A diagram showing an example of a moving display of the crosshair [Figure 12] A diagram to explain the control of aiming when switching operation modes [Figure 13] A diagram to explain the control of aiming when switching operation modes [Figure 14] FIG. 10 shows an example of various data stored in the DRAM 69. [Figure 15] An example of a flowchart for information processing [Figure 16] An example of a flowchart for information processing [Figure 17] An example of a flowchart for information processing [Figure 18] An example of a flowchart for information processing DETAILED DESCRIPTION OF THE INVENTION
[0019] An embodiment will be described below.
[0020] [Example of hardware configuration of information processing system]
[0021] A game system, which is an example of an information processing system according to this embodiment, will be described below. The example of the game system 1 according to this embodiment includes an information processing device (sometimes referred to as a "main unit") 2, a right controller 3, and a left controller 4. The right controller 3 and the left controller 4 are each detachable from the main unit 2 according to this embodiment.
[0022] FIG. 1 is a diagram showing an example of a state in which a right controller 3 and a left controller 4 are attached to a main unit 2. As shown in FIG. 1, the right controller 3 and the left controller 4 are each attached to the main unit 2 and integrated together. The main unit 2 is a device that executes various processes (e.g., game processes) in the game system 1. The main unit 2 is equipped with a display 72. The right controller 3 and the left controller 4 are input devices that include an operation unit and the like for the user to input. Note that, below, the right controller 3 and the left controller 4 may be collectively referred to as the "controllers."
[0023] The display 72 displays an image generated by the main device 2. The display 72 is, for example, a liquid crystal display (LCD). A touch panel is provided on the screen of the display 72. The touch panel is, for example, of a type that allows multi-touch input (for example, a capacitance type).
[0024] FIG. 2 is a six-sided schematic diagram showing an example of the right controller 3. As shown in FIG. 2, the right controller 3 has a vertically elongated plate shape, includes a housing 11, and has a front, rear, top, bottom, right, and left sections. In the right controller 3, the rear is located opposite the front section, the bottom is located opposite the top section, and the left section is located opposite the right section. The distance between the front and rear sections is greater than the distance between the top and bottom sections. The distance between the top and bottom sections is greater than the distance between the right and left sections. Note that in other embodiments, the magnitude relationship between these distances may be other magnitude relationships. Furthermore, in this embodiment, the direction connecting the bottom and top sections may be referred to as the up-down direction, the direction connecting the front and rear sections perpendicular to the up-down direction may be referred to as the front-rear direction, and the direction connecting the right and left sections perpendicular to the up-down direction and the front-rear direction may be referred to as the left-right direction. In FIG. 2, the coordinate system of the right controller 3 (sometimes referred to as the "right controller coordinate system") is shown with the x, y, and z axes illustrated in a front view in which the left side faces forward. In this coordinate system, the direction from the left side to the right side is the positive z-axis. The direction perpendicular to the z-axis, from the bottom to the top, is the positive x-axis, and the direction perpendicular to the z-axis and x-axis, from the rear to the front, is the positive y-axis. When the bottom faces the direction of gravity, the negative x-axis and the direction of gravity coincide. In addition, the x-axis, y-axis, and z-axis in the description related to the right controller 3 refer to the x-axis, y-axis, and z-axis in the right controller coordinate system unless otherwise specified. In this embodiment, each part, such as the front part and the bottom part, does not need to be completely flat and may have irregularities or slopes. For example, the bottom part includes a convex part 25, which will be described later. The direction in which each part faces and the direction connecting each part indicate approximate directions.
[0025] The right controller 3 has a protrusion 25 that fits into a recess (not shown) of the main unit 2 when attached to the main unit 2. As shown in Fig. 2, the protrusion 25 has a convex shape that protrudes in the negative x-axis direction, with a width that is shorter than the left-right direction of the right controller 3 and a front-to-back width that is shorter than the front-to-back direction of the right controller 3. In this embodiment, the protrusion 25 is part of the bottom.
[0026] As will be described later, the right controller 3 can also be held in a portrait orientation when detached from the main unit 2. The right controller 3 has a shape and size that allows it to be held in one hand, particularly the right hand, when held in a portrait orientation. The right controller 3 can also be held in a landscape orientation, and when held in a landscape orientation, it may be held with both hands (not shown).
[0027] The right controller 3 has, on its left side, an analog stick (sometimes simply referred to as a "stick") 22, which is an example of a direction input unit. The stick 22 can be used as a direction input unit that can be operated to input a direction. The stick may also be called a direction operation unit. The user can tilt the stick 22 in any direction to input a direction according to the tilt direction, and can input a magnitude according to the tilt angle. The user can also input buttons by pressing the stick 22. The direction input unit may be, for example, a cross key or a slide pad. The direction input unit may also be called a direction operation unit.
[0028] The right controller 3 has a set of four buttons on its left side: an A button 12, a B button 13, an X button 14, a Y button 15, a + (plus) button 16, and a home button 17. The right controller 3 has an R button 20 and a ZR button 21 on its front and top. The R button 20 and ZR button 21 may be provided only on the front or only on the top of the right controller 3. The right controller 3 has buttons 18 and 19 on the top surface 25a of the protrusion 25.
[0029] The right controller 3 has a mouse sensor opening 23 on the top surface 25a of the convex portion 25. The mouse sensor opening 23 is an opening in a light guide path that guides light to the mouse sensor 24 located inside the right controller 3. The mouse sensor 24 is an optical mouse sensor and may include a light-emitting unit and a light-receiving unit. The light detected by the light-receiving unit may be visible light or light of an invisible wavelength. The mouse sensor 24 may include at least a light-receiving unit, but may not include a light-emitting unit. The mouse sensor 24 acquires data that enables calculation of the movement of the right controller 3 on a mounting surface when the right controller 3 is placed with the top surface 25a of the convex portion 25 of the bottom facing the mounting surface. This allows the right controller 3 to be used as a mouse. This operation using the right controller 3 as a mouse is sometimes referred to as a "mouse operation." The mounting surface is not limited to a flat surface, but may be a curved surface, such as the surface of the user's thigh.
[0030] In this embodiment, the right controller 3 is provided with a terminal 26 on the protrusion 25, which enables the right controller 3 to perform wired communication with the main unit 2. As an example, the terminal 26 is provided on the inner circumferential surface of a recess provided in the top surface 25a of the protrusion 25.
[0031] FIG. 3 is a six-sided schematic diagram showing an example of the left controller 4. Description of components similar to those of the right controller 3 will be omitted. The left controller 4 includes, on its right side, a stick 42, a set of four buttons: a right button 32, a down button 33, an up button 34, and a left button 35; a capture button 37; and a - (minus) button 36. The buttons 32 to 35 may be a single cross button. Note that, on the right controller 3, the stick 22 is located behind the buttons 12 to 15, whereas on the left controller 4, the stick 42 is located in front of the buttons 32 to 35. In FIG. 3, the coordinate system of the left controller 4 (sometimes referred to as the "left controller coordinate system") is shown with the x, y, and z axes illustrated in a front view in which the right side faces forward. In this coordinate system, the direction from the right side to the left side is the positive z-axis direction. Additionally, the direction perpendicular to the z-axis, from the bottom to the top, is the positive x-axis direction, and the direction perpendicular to the z-axis and x-axis, from the rear to the front, is the positive y-axis direction. When the bottom faces the direction of gravity, the negative x-axis and the direction of gravity coincide. Note that the x-axis, y-axis, and z-axis in the explanations related to the left controller 4 refer to the x-axis, y-axis, and z-axis in the left controller coordinate system, unless otherwise specified.
[0032] The left controller 4 has a protrusion 45 that fits into a recess (not shown) of the main unit 2 when attached to the main unit 2. Similar to the right controller 3, the protrusion 45 has buttons 38 and 39, an opening 43 for the mouse sensor, a mouse sensor 44, and a terminal 46.
[0033] When the left controller 4 is detached from the main unit 2, it can be held in a portrait or landscape orientation, similar to the right controller 3.
[0034] FIG. 4 is a block diagram showing an example of the internal configuration of the main unit 2. The main unit 2 includes a processor 63. The processor 63 is an information processing unit that executes various types of information processing executed in the main unit 2. The processor 63 may be composed of, for example, multiple processors or cores, typically multiple central processing units (CPUs) or cores, or may be composed of a system-on-a-chip (SoC) that includes multiple functions such as a CPU function and a graphics processing unit (GPU) function. The processor 63 executes various types of information processing by executing an information processing program (e.g., a game program) stored in a storage unit (specifically, an internal storage medium such as a flash memory 68, or an external storage medium inserted into a slot 51, etc.). In this embodiment, the term "processor" may include at least a CPU, a GPU, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. In this embodiment, the computer may include, for example, at least one processor and may further include a storage unit such as a memory.
[0035] The main device 2 includes, as examples of internal storage media, a flash memory 68 and a DRAM (Dynamic Random Access Memory) 69. The flash memory 68 is a memory used primarily to store various types of data saved in the main device 2. The DRAM 69 is a memory used primarily to temporarily store various types of data used in information processing. The processor 63 reads and writes data from and to storage media such as the flash memory 68 and the DRAM 69 as appropriate to perform various types of information processing.
[0036] Furthermore, the main device 2 has various components as shown in Fig. 4. A brief explanation is given below. A recording medium slot interface (sometimes called a "slot I / F") 52 reads and writes data from a storage medium (e.g., a dedicated memory card) inserted into the recording medium slot 51 in response to instructions from the processor 63. A second slot I / F 54 reads and writes data from a storage medium inserted into the second slot 53 in response to instructions from the processor 63.
[0037] The network communication unit 66 communicates with external devices via a network (for example, internet communication using wireless communication). The controller communication unit 67 communicates with the right controller 3 and / or left controller 4 wirelessly (for example, communication in accordance with the Bluetooth (registered trademark) standard).
[0038] The left-side terminal 50 is a terminal for wired communication between the processor 63 and the left controller 4. The right-side terminal 65 is a terminal for wired communication between the processor 63 and the right controller 3. The lower terminal 64 is a terminal for communicating with other devices (such as a stationary monitor) via the cradle when the lower terminal 64 is attached to the cradle, for example.
[0039] The touch panel controller 70 generates data indicating, for example, the position where a touch input has been made based on a signal from the touch panel 71 arranged on the display surface of the display 72, and outputs the data to the processor 63. The display 72 displays an image generated by the processor 63 and / or an image acquired from an external source.
[0040] The codec circuit 74 controls the input and output of audio data to the speaker 73 and the audio input / output terminal 75 .
[0041] The power control unit 61 controls the power supply from the battery 62 to each part of the main device 2 (i.e., each part that receives power from the battery 62) based on instructions from the processor 63, and also starts or stops the power supply in response to pressing the power button 60.
[0042] The volume button 59 is a button for controlling the volume output from the speaker 73 etc. The cooling fan 58 is a fan for cooling the inside of the main body device 2.
[0043] The main body device 2 includes various sensors such as a magnetic sensor 55, an ambient light sensor 56, a temperature sensor 57, an acceleration sensor 76, and an angular velocity sensor 77. The processor 63 can execute various processes based on information from these sensors.
[0044] 5 is a block diagram showing an example of the internal configuration of the main unit 2, right controller 3, and left controller 4. Note that details of the internal configuration of the main unit 2 are omitted in FIG. 5 because they are shown in FIG. 4.
[0045] The left controller 4 is equipped with a communication control unit 80 that communicates with the main unit 2. As shown in FIG. 5, the communication control unit 80 is connected to various components, including a terminal 88. When the left controller 4 is attached to the main unit 2, the communication control unit 80 performs wired communication with the main unit 2 via the terminal 88, and when the left controller 4 is detached from the main unit 2, the communication control unit 80 performs wireless communication with the main unit 2 (specifically, communication in accordance with the Bluetooth (registered trademark) standard).
[0046] The left controller 4 includes a memory 81, such as a flash memory. The communication control unit 80 is configured with a processor, such as a microcomputer (also called a microprocessor), and executes firmware stored in the memory 81 to perform various processes.
[0047] The left controller 4 includes buttons 82 (specifically, buttons 32 to 34, etc.) and a stick 42. Each button 82 and stick 42 outputs to the communication control unit 80 information relating to an operation performed on that button 82 and stick 42.
[0048] The left controller 4 is equipped with an inertial sensor. Specifically, the left controller 4 is equipped with an acceleration sensor 83 and an angular velocity sensor 84 as inertial sensors. The acceleration sensor 83 detects the magnitude of acceleration along three predetermined axes (for example, the x, y, and z axes shown in FIG. 3 ). The acceleration sensor 83 may detect acceleration in one or two axial directions. The angular velocity sensor 84 detects angular velocity around the three predetermined axes. The angular velocity sensor 84 may detect angular velocity around one or two axes. The angular velocity sensor may also be called a "gyro sensor." The acceleration sensor 83 and the angular velocity sensor 84 are each connected to the communication control unit 80. The detection results of the acceleration sensor 83 and the angular velocity sensor 84 are repeatedly output to the communication control unit 80 at appropriate timing. The right controller 3 and the left controller 4 may each be equipped with either an acceleration sensor or an angular velocity sensor as inertial sensors, or may be equipped with other sensors.
[0049] The left controller 4 is equipped with a mouse sensor 44. The mouse sensor 44 acquires data for calculating the movement of the left controller 4 placed on the placement surface. The data acquired by the mouse sensor 44 is repeatedly output to the communication control unit 80 at appropriate timing.
[0050] The communication control unit 80 acquires information about inputs (specifically, information about button and stick operation, and detection results by the sensors) from each input unit (specifically, each button 82, stick 42, and each sensor 83, 84, and 44). The communication control unit 80 transmits operation data including the acquired information or information obtained by performing predetermined processing on the acquired information to the main unit 2. The operation data is repeatedly transmitted once every predetermined time.
[0051] By transmitting the operation data to the main unit 2, the main unit 2 can obtain the input performed on the left controller 4. That is, the main unit 2 can determine the operation of each button 82 and stick 42 based on the operation data. The main unit 2 can also calculate information regarding the movement and / or posture of the left controller 4 based on the operation data (specifically, the detection results of the acceleration sensor 83 and / or angular velocity sensor 84). The main unit 2 can also calculate information regarding mouse operations performed on the left controller 4 based on the operation data (specifically, the detection results of the mouse sensor 44).
[0052] The left controller 4 includes an amplifier 85 and a vibrator 86. The amplifier 85 amplifies the control signal received from the communication control unit 80 and generates a drive signal. The vibrator 86 vibrates in response to the drive signal generated by the amplifier 85, causing the left controller 4 to vibrate.
[0053] The left controller 4 is equipped with a power supply unit 87. The power supply unit 87 has a battery and a power control circuit. The power control circuit is connected to the battery and supplies power to each part of the left controller 4 (specifically, each part that receives power from the battery).
[0054] As shown in FIG. 5, the right controller 3 is equipped with a communication control unit 91, which is composed of a processor and the like and which communicates with the main unit 2. The right controller 3 is equipped with a memory 94 connected to the communication control unit 91. The communication control unit 91 is connected to each component, including a terminal 92. The communication control unit 91 and memory 94 have the same functions as the communication control unit 80 and memory 81 of the left controller 4. Therefore, the communication control unit 91 can communicate with the main unit 2 both via wired communication via the terminal 92 and via wireless communication not via the terminal 92, and controls the communication between the right controller 3 and the main unit 2.
[0055] The right controller 3 has the same input units as the left controller 4. Specifically, it has buttons 95 (A button 12, B button 13, X button 14, Y button 15, etc.), a stick 22, inertial sensors (acceleration sensor 96 and angular velocity sensor 97), and a mouse sensor 24. Each of these input units has the same function as the input units of the left controller 4, and operates in the same way.
[0056] The right controller 3 includes an amplifier 98, a vibrator 99, and a power supply unit 100. The amplifier 98, the vibrator 99, and the power supply unit 100 have the same functions as the amplifier 85, the vibrator 86, and the power supply unit 87 of the left controller 4, respectively, and operate in the same manner.
[0057] The right controller 3 includes a processing unit 90 and an NFC antenna 93. The processing unit 90 controls the NFC antenna 93 in response to commands from the main unit 2 via a communication control unit 91. The NFC antenna 93 performs short-range wireless communication based on the NFC (Near Field Communication) standard.
[0058] [How to hold the controller] FIG. 6 is a schematic diagram showing an example of a state in which a user holds the right controller 3 in their right hand, places it on a surface, and uses it as a mouse, that is, operates the mouse. As shown in FIG. 6, when viewed from the user's perspective, the front of the right controller 3 faces forward and the left side faces left. The palm of the user's right hand covers the upper side of the right controller 3. The user's right thumb is placed on the left side of the right controller 3. The user's right thumb is placed on, for example, the A button 12. The user's right index finger is placed on, for example, the R button 20, and the user's right middle finger is placed on, for example, the ZR button 21. The user can operate the R button 20 and the ZR button 21 with their right index finger or middle finger. The user can operate each input unit located on the left side with their right thumb. Note that when using the left controller 4 as a mouse with their left hand, the left controller 4 can be held in their left hand and used on a surface in the same manner. At this time, the right part of the left controller 4 faces right.
[0059] FIG. 7 is a schematic diagram showing an example of a state in which a user holds the right controller 3 in their right hand and operates it in the air. As shown in FIG. 7, when the right controller 3 is detached from the main unit 2, it can be held so that the longitudinal direction of the right controller 3 is the up-down direction or the front-back direction for the user, and can be used in the air. The user can operate the stick 22 (sometimes referred to as "stick operation") with, for example, the thumb of their right hand. The user can also perform a swing operation (sometimes referred to as "swing operation") or an operation to change the position of the right controller 3 they are holding (sometimes referred to as "position change operation"). The same procedure can be used when the user uses the left controller 4 in their left hand and in the state in which it is detached from the main unit 2.
[0060] [Processing Overview of This Embodiment] An outline of the processing of this embodiment will be specifically described below with reference to FIGS. 8 to 13. The following description will take as an example a case where the right controller 3 is used. In the game of this embodiment, as an example, a crosshair, which is a virtual object, is displayed, and the crosshair moves in response to an operation, and a bullet can be fired in the direction of the crosshair in response to a predetermined operation (for example, a predetermined button operation). Note that the same can be applied to a case where the left controller 4 is used, and therefore a description thereof will be omitted.
[0061] [Controller operation mode] Fig. 8 is a diagram for explaining the operation modes of the controller and the transitions between the operation modes. As shown in Fig. 8, the operation modes of the controller (sometimes simply referred to as "modes") include "mouse mode," "gyro mode," and "stick mode."
[0062] In this embodiment, in mouse mode, when the inertial sensor detects a swing operation of the right controller 3 with a strength equal to or greater than a predetermined strength (for example, a swing operation of 0.2 G or greater; hereinafter, sometimes simply referred to as a "swing operation"), a transition to gyro mode occurs. In mouse mode, when a stick operation of the stick 22 is detected, a transition to stick mode occurs. In gyro mode, when a mouse operation of the right controller 3 is detected, a transition to mouse mode occurs. In gyro mode, when a stick operation of the stick 22 is detected, a transition to stick mode occurs. In stick mode, when the inertial sensor detects a swing operation of the right controller 3 with a strength equal to or greater than a predetermined strength (for example, a swing operation of 0.2 G or greater), a transition to gyro mode occurs. In stick mode, when a mouse operation of the right controller 3 is detected, a transition to mouse mode occurs. Note that the conditions for transitioning between operation modes are not limited to these, and other conditions may be met, or other conditions may be added.
[0063] Fig. 9 is a diagram for explaining the control of the aim 250 in the mouse mode and the stick mode. First, the control of the aim 250 in the mouse mode will be explained with reference to Fig. 9. The mouse mode is an operation mode in which the aim 250 is controlled based on the output of the mouse sensor.
[0064] [About aiming control in each operation mode] As shown in Fig. 9(1)(b), when a mouse operation is performed to move the right controller 3 placed on the placement surface in the positive direction of the z axis of the right controller coordinate system, the aim 250 (see position A) displayed on the display 72 moves to the right a distance corresponding to the mouse operation (see position B), as shown in Fig. 9(1)(a). Also, although not shown, when the right controller 3 is operated with the mouse in another direction on the placement surface, the aim 250 displayed on the display 72 similarly moves in a direction and a distance corresponding to the mouse operation.
[0065] However, in mouse mode, the crosshair 250 may be restricted so that the center of the crosshair 250 does not move outside the display area (sometimes simply referred to as the "display area") of the display 72. For example, as shown in FIG. 9(2)(a), when the center of the crosshair 250 is located at the right edge of the display area, even if a mouse operation is performed in which the right controller 3 placed on the placement surface moves in the positive direction of the z axis of the right controller coordinate system as shown in FIG. 9(2)(b), the crosshair 250 is controlled so that it does not move any further to the right. As a result, a part of the crosshair 250 is always displayed on the display 72.
[0066] Next, control of the aim 250 in the stick mode will be described with reference to Fig. 9. The stick mode is an operation mode in which the aim 250 is controlled based on the output from the stick operation.
[0067] For example, as shown in FIG. 9(1)(c), when the stick 22 is tilted in the positive direction of the x-axis of the right controller coordinate system, the crosshair 250 (see position A) displayed on the display 72 moves to the right a distance corresponding to the stick operation (see position B). Also, although not shown, when the stick is operated in another direction, the crosshair 250 displayed on the display 72 similarly moves in a direction and a distance corresponding to the stick operation. Also, in stick mode, as in mouse mode, the movement of the crosshair 250 may be limited so that the center of the crosshair 250 does not move outside the display area (see FIG. 9(2)(a)). Note that in mouse mode and stick mode, the movement of the crosshair 250 is not limited to this. For example, the movement of the crosshair 250 may be limited so that the entire crosshair 250 is located within the display area, or so that a predetermined percentage (e.g., 1 / 4 or 3 / 4) of the vertical or horizontal size of the crosshair 250 is located within the display area.
[0068] 10 and 11 are diagrams illustrating the control of the aim 250 in gyro mode. Gyro mode is an operation mode in which the aim 250 is controlled based on the output of the inertial sensor. In gyro mode, the attitude of the right controller 3 indicated by the output of the inertial sensor is associated with the display position of the aim 250, and the display position of the aim 250 is controlled according to the attitude of the right controller 3. A specific description will be given below.
[0069] In this embodiment, the attitude of the right controller 3 when the aim 250 is displayed in the center of the display 72 is referred to as the "reference attitude." Furthermore, the correspondence relationship in which the right controller 3 is in the reference attitude when the aim 250 is displayed in the center of the display 72 is referred to as the "aim attitude correspondence relationship." Then, based on the aim attitude correspondence relationship, the display position of the aim 250 is controlled and moved in accordance with changes in the attitude of the right controller 3. Note that, as will be described later using Figure 12 etc., there are cases in which the reference attitude is reset.
[0070] For example, consider the case where the orientation of the right controller 3 when the sight 250 is displayed at position A in the center of the display 72 is the orientation shown in (b) of Fig. 10(1). In this case, for example, if the orientation of the right controller 3 becomes the orientation shown in (b) of Fig. 10(2) (that is, an orientation rotated rightward in the positive direction of the z-axis from the orientation shown in (b) of Fig. 10(1)), the sight 250 will be displayed at the position shown in (a) of Fig. 10(2) (that is, position B to the right of position A shown in (a) of Fig. 10(1)). Then, for example, if the orientation of the right controller 3 becomes the orientation shown in (b) of Fig. 11 (that is, an orientation rotated further rightward in the positive direction of the z-axis from the orientation shown in (b) of Fig. 10(2), the sight 250 will be at the position shown in (a) of Fig. 11 (that is, position C further to the right of position B shown in (a) of Fig. 10(2)). 11(b), in response to an operation of rotating the right controller 3, the aim 250 may be located outside the display area, but not displayed on the display 72. At this time, processing may be performed to actually move the aim 250 outside the display area, or processing may be performed to simply calculate the coordinates corresponding to the aim 250. The same applies when the right controller 3 is in another position, so a detailed description thereof will be omitted.
[0071] As described above, in gyro mode, the crosshair 250 is not restricted so as to be positioned outside the display area. In gyro mode, in which the crosshair 250 moves according to the orientation of the right controller 3, if the crosshair 250 were restricted so as to be positioned so as not to be positioned outside the display area, as in mouse mode, the relationship between the orientation of the right controller 3 and the display position of the crosshair 250 may change significantly, which could make operation difficult for the user. For this reason, in gyro mode, control is set so that the crosshair 250 is not restricted so as to be positioned so as not to be positioned outside the display area.
[0072] [About aiming control when switching operation modes] FIG. 12 is a diagram illustrating control of the aim 250 when transitioning from mouse mode or stick mode to gyro mode. FIG. 13 is a diagram illustrating control of the aim 250 when transitioning from gyro mode to mouse mode or stick mode. The operation mode of mouse mode or stick mode may be referred to as "mouse / stick mode." In addition, in FIGS. 12 and 13, the calculated aim position for displaying the aim 250 is indicated by reference numeral 260. In addition, the center position of the aim 250 displayed on the display 72 may be referred to as the "display aim position," and the calculated aim position may be referred to as the "target aim position."
[0073] First, with reference to Fig. 12, control of the aim 250 when transitioning from mouse / stick mode to gyro mode will be described. Consider the case where a swing operation is performed in mouse / stick mode (see Fig. 12(1)) and transition to gyro mode occurs. In this case, if the target aim position 260 corresponding to the attitude of the right controller 3 at the time of transition to gyro mode is outside the display range (see Fig. 12(2-1)), the reference attitude of the right controller 3 is updated to the attitude at the time of transition to gyro mode, and the target aim position 260 and the displayed aim position 250 are reset to the center of the display range (see Fig. 12(3-1)). In this way, when transitioning to gyro mode, if the aim position corresponding to the attitude of the controller 3 satisfies a predetermined condition, for example, if it is outside the display range, the aim 250 is displayed within the display range, thereby preventing the user from becoming confused by losing sight of the aim 250. As another example, the crosshair 250 may be displayed at a position within the display range, for example, at a predetermined position, when the target crosshair position at the time of transition to the gyro mode is in a predetermined area within the display range or is a predetermined distance or more away from the currently displayed crosshair position. In this embodiment, the crosshair 250 is displayed in the center of the display range (see FIG. 12(3-1)), which prevents the user from losing sight of the crosshair 250. In this embodiment, the crosshair 250 is displayed while moving instantaneously (not limited to when moving at high speed, but also including when moving instantaneously without any intermediate steps), allowing the user to start operation comfortably. The position and moving speed of the crosshair 250 after movement are not limited to those described above.
[0074] In this embodiment, when transitioning to the gyro mode, for example, if the target aim position is outside the display range and the aim 250 is displayed in the center of the display range, the reference attitude is updated to the attitude of the controller 3 at the time of transition to the gyro mode. This makes it easier for the user to operate the aim 250 in the gyro mode thereafter. Note that such an update of the reference attitude may not be necessary, or an attitude other than the attitude of the controller 3 at the time of transition to the gyro mode, for example a predetermined attitude, may be updated as the reference attitude.
[0075] When a swing operation is performed in mouse / stick mode to transition to gyro mode, a case will be described where the target aim position 260 corresponding to the attitude of the right controller 3 at the time of transition to gyro mode is within the display range (see FIG. 12(2-2)). In this case, the aim 250 is displayed and moves toward the target aim position 260 (see FIG. 12(3-2)). The speed at which the aim 250 moves in this case may be, for example, a speed that allows the user to see it, and may be slower than when the aim 250 is out of the display range and is instantly displayed within the display range (see FIG. 12(3-1)). Note that the aim 250 may move while interpolating between its position before movement (see FIG. 12(2-2)) and its position after movement (see FIG. 12(3-2)). Moving the aim 250 in this manner prevents the user from losing sight of the aim 250. The aim 250 in (2-1) and (2-2) of Figure 12 is inherited from the aim 250 in the mouse / stick mode. Also, the target aim position 260 in (3-1) and (2-2) of Figure 12 can be considered as the actual initial aim position in the gyro mode.
[0076] Next, with reference to FIG. 13, control of the aim 250 when transitioning from gyro mode to mouse / stick mode will be described. As an example, consider a case where a mouse or stick operation is performed in gyro mode as shown in FIG. 13(1), resulting in transition to mouse / stick mode. In this case, if the target aim position 260 corresponding to the orientation of the right controller 3 at the time of transition to mouse / stick mode is outside the display range (see FIG. 13(2-1)), the target aim position 260 and the displayed aim position are set to positions within the display range. In this embodiment, the displayed aim position is set to, as an example, a position within the display range that is closest to the target aim position 260 (see FIG. 13(3-1)).
[0077] For example, consider a case where the display screen of display 72 is configured with 450 dots horizontally and 250 dots vertically, the lower left corner of the display range is the origin o (0,0), and the x and y coordinates of the display range are in the range from (0,0) to (450,250). In this case, in this embodiment, if target aim position 260 is at coordinates (600,100) outside the display range, for example, target aim position 260 and the display aim position are set to the nearest coordinates (450,100) within the display range, if target aim position 260 is at coordinates (100,350) outside the display range, for example, target aim position 260 and the display aim position are set to the nearest coordinates (100,250) within the display range, and if target aim position 260 is at coordinates (600,350) outside the display range, for example, target aim position 260 and the display aim position are set to the nearest coordinates (450,250) within the display range. That is, the x and y coordinates of the target aim position 260 and the displayed aim position are transformed to the nearest x and y coordinates within the display range, respectively.
[0078] In this way, when transitioning to mouse / stick mode, the crosshair 250 is displayed within the display range, so it is possible to avoid confusion for the user when the crosshair 250 disappears. Also, since the crosshair 250 is displayed at the nearest position within the display range, a user who has been operating in gyro mode until then can continue operating without feeling uncomfortable.
[0079] In this embodiment, when a mouse or stick operation is performed in gyro mode to transition to mouse / stick mode, if the target aiming position 260 corresponding to the attitude of the right controller 3 at the time of transition to mouse / stick mode is within the display range (see Figure 13 (2-2)), the target aiming position 260 is set as the displayed aiming position (see Figure 13 (3-2)).
[0080] [Details of information processing in this embodiment] Next, the information processing of this embodiment will be described in detail with reference to Figures 14 to 18. The following description will be given taking as an example a case where the right controller 3 is used. Note that the same can be applied to a case where the left controller 4 is used, and therefore a description thereof will be omitted.
[0081] [About data usage] Next, a description will be given of various data stored in the DRAM 69. Fig. 14 shows an example of data stored in the DRAM 69 of the main unit 2. As shown in Fig. 14, the DRAM 69 is provided with at least a program storage area 301 and a data storage area 302.
[0082] The program memory area 301 stores at least a program 401. The data memory area 302 stores at least operation mode data 402, mouse sensor data 403, stick / button input data 404, inertial sensor data 405, target aim position data 406, display aim position data 407, reference attitude data 408, aim attitude correspondence data 409, complement flag data 410, object data 411, image data 412, and virtual camera control data 413.
[0083] The program 401 is a game program for executing game processing.
[0084] The operation mode data 402 is data indicating whether the operation mode is mouse mode, gyro mode, or stick mode, and includes the history of the operation mode up to a predetermined number of frames before.
[0085] Mouse sensor data 403 is data related to the output of mouse sensor 24, and includes dy / dz data. The dy / dz data is output data from mouse sensor 24, and indicates the movement distance per frame time (sometimes referred to as "dy / dz") in the y-axis direction and z-axis direction of the right controller coordinate system (i.e., the yz plane; see FIG. 2) relative to the placement surface or the like when opening 23 of mouse sensor 24 is blocked by the placement surface or the like. Note that dy / dz may be calculated from the output data of mouse sensor 24 by communication control unit 91, processor 63, or the like.
[0086] The stick / button input data 404 is data that indicates operations performed on the stick 22 and each button 95 of the right controller 3.
[0087] The inertial sensor data 405 is data output from the inertial sensor of the right controller 3, and is data that enables calculation of, for example, the acceleration in the x, y, and z-axis directions of the right controller coordinate system (see FIG. 2) and the angular velocity around the x, y, and z-axis. Using the inertial sensor data, for example, the attitude and movement of the right controller 3 can be calculated.
[0088] The target aim position data 406 is data that indicates the target aim position (see target aim position 260 in FIGS. 12 and 13) in a screen coordinate system obtained by converting the virtual space photographed by the virtual camera into a planar coordinate system. The target aim position moves based on the dy / dz data in mouse mode, moves based on the operation of the stick 22 in stick mode, and moves based on changes in the attitude of the right controller 3 in gyro mode.
[0089] The display aim position data 407 is data that indicates the display position of the aim 250 in the above-mentioned screen coordinate system (that is, the display aim position).
[0090] The reference attitude data 408 is data that indicates the reference attitude, which is the attitude of the right controller 3 when the aim 250 is displayed in the center of the display 72.
[0091] The aim attitude correspondence data 409 is data indicating the aim attitude correspondence, which is the correspondence that results in the reference attitude indicated by the reference attitude data 408 when the aim 250 is displayed in the center of the display 72 .
[0092] The complement flag data 410 is flag data indicating whether or not to execute complement processing (see FIG. 12(3-2)) for moving the aim 250 toward the target aim position 260.
[0093] The object data 411 is data of virtual objects to be placed in a virtual space, such as a bullet fired in the direction of the crosshair 250, a player character, an opponent character, the ground, and the like.
[0094] The image data 412 is image data such as an image of the crosshair 250, which is a virtual object, an animation image, a background, and virtual effects. The image of the crosshair 250 is arranged in the above-described screen coordinate system and displayed on the display 72, etc. Note that instead of arranging the crosshair 250 in the screen coordinate system and displaying it on the display 72, etc., it is also possible to arrange the crosshair 250 in a virtual space and photograph it with a virtual camera, and then display it on the display 72, etc. In other words, the crosshair 250 may be object data 411 instead of image data 412.
[0095] The virtual camera control data 413 is data for controlling a virtual camera that is placed in the virtual space and captures images of the virtual space.
[0096] In addition, the DRAM 69 stores various types of data used in drawing processes and the like as needed.
[0097] [Example of detailed information processing] Next, the processing according to this embodiment will be described with reference to flowcharts and the like. Figs. 15 to 18 are examples of flowcharts showing the processing according to this embodiment. Note that, hereinafter, processing characteristic of this embodiment will be mainly described, and other descriptions such as drawing processing will basically be omitted. Furthermore, the following processing may be performed at predetermined intervals (for example, a processing frame interval executed every 1 / 60 seconds).
[0098] 15, processor 63 determines whether or not the current process is in gyro mode, based on operation mode data 402. If the determination in step S101 is YES, the process proceeds to step S102, and if the determination is NO, the process proceeds to step S104.
[0099] In step S102, processor 63 determines whether the previous process was in gyro mode based on operation mode data 402. If the determination in step S102 is YES, the process proceeds to step S103, and if NO, the process proceeds to gyro mode transition processing in step S200.
[0100] In step S103, the processor 63 controls the target aim position based on the current attitude in the gyro mode. Specifically, the processor 63 calculates the target aim position corresponding to the current attitude of the right controller 3 calculated based on the inertial sensor data 405, based on the aim attitude correspondence relationship indicated by the aim attitude correspondence relationship data 409 (see FIG. 10, etc.). Then, the process proceeds to step S111 in FIG. 16.
[0101] In step S200, the processor 63 executes a gyro mode transition process. Figure 17 is an example of a flowchart of the gyro mode transition process.
[0102] 17, processor 63 determines whether or not the target aim position based on the current attitude is within the display range, based on target aim position data 406. If the determination in step S201 is YES, the process proceeds to step S202, and if the determination is NO, the process proceeds to step S203.
[0103] In S202, processor 63 sets ON the complement flag in complement flag data 410. Thereafter, the process proceeds to step S111 in FIG.
[0104] In step S203, processor 63 sets the target aim position indicated by target aim position data 406 and the display aim position indicated by display aim position data 407 to the center of the display range (see (3-1) in FIG. 12). Thereafter, the process proceeds to step S204.
[0105] In step S204, the processor 63 sets the current attitude of the right controller 3 calculated based on the inertial sensor data 405 to the reference attitude indicated by the reference attitude data 408 (see (3-1) in FIG. 12). In other words, the processor 63 updates the reference attitude to the current attitude. Thereafter, the process proceeds to step S111 in FIG. 16.
[0106] 15, processor 63 determines whether the previous process was in gyro mode based on operation mode data 402. If the determination in step S104 is YES, the process proceeds to mouse / stick mode transition process in step S300, and if NO, the process proceeds to step S105.
[0107] In step S300, processor 63 executes mouse / stick mode transition processing. Figure 18 is an example of a flowchart of mouse / stick mode transition processing.
[0108] 18, the processor 63 sets the complement flag to OFF in the complement flag data 410. After that, the process proceeds to step S302.
[0109] In step S302, processor 63 determines whether or not the target aim position is within the display range based on target aim position data 406. If the determination in step S302 is YES, the process proceeds to step S303, and if the determination is NO, the process proceeds to step S304.
[0110] In step S303, processor 63 sets the display aim position indicated by display aim position data 407 to the target aim position indicated by target aim position data 406 (see (3-2) in FIG. 13). Thereafter, the process proceeds to step S111 in FIG.
[0111] In step S304, processor 63 sets the display aim position indicated by display aim position data 407 and the target aim position indicated by target aim position data 406 to the nearest positions within the display range (see (3-1) in FIG. 12). Thereafter, the process proceeds to step S111 in FIG. 16.
[0112] 15, processor 63 controls the target aim position based on the mouse sensor output or stick output (i.e., stick / button input data 404) in the mouse mode or stick mode (see FIG. 9). Thereafter, the process proceeds to step S111 in FIG.
[0113] 16, processor 63 determines whether or not the reset button has been operated. Specifically, processor 63 determines whether or not, for example, ZR button 21 of right controller 3 has been operated, based on stick / button input data 404. Note that the reset button may differ depending on the operation mode. If the determination in step S111 is YES, processing proceeds to step S112; if the determination is NO, processing proceeds to step S114.
[0114] In step S112, processor 63 sets the target aim position and the display aim position to the center of the display range, similarly to step S203 in Fig. 17. Thereafter, the processing proceeds to step S113.
[0115] In step S113, processor 63 sets the current attitude to the reference attitude, similarly to step S204 in Fig. 17. After that, the process proceeds to step S114.
[0116] In step S114, processor 63 determines whether or not the complement flag indicated by complement flag data 410 is ON. If the determination in step S114 is YES, the process proceeds to step S115, and if NO, the process proceeds to step S119.
[0117] In step S115, processor 63 determines whether the difference between the target aim position and the displayed aim position is greater than a predetermined value (for example, 10 dots) based on target aim position data 406 and displayed aim position data 407. If the determination in step S115 is YES, the process proceeds to step S116, and if the determination is NO, the process proceeds to step S118. Note that if the target aim position is outside the display range, the process may also proceed to step S118.
[0118] In step S116, processor 63 performs a complementary update to move the display aim position indicated by display aim position data 407 closer by a predetermined distance (e.g., 10 dots) to the target aim position indicated by target aim position data 406 (see (3-2) in FIG. 12). Thereafter, the process proceeds to step S117.
[0119] In step S118, processor 63 sets OFF the complement flag in complement flag data 410. After that, the process proceeds to step S119.
[0120] In step S119, processor 63 updates the display aim position indicated by display aim position data 407 to the target aim position indicated by target aim position data 406. Thereafter, the process proceeds to step S117.
[0121] In step S117, processor 63 displays aim 250 at the display aim position indicated by display aim position data 407. Thereafter, the processing returns to step S101 in FIG.
[0122] According to this embodiment, the aim position is reset in response to a button operation in mouse / stick mode and gyro mode, and the reference attitude is also reset when reset in either mode (see S111 to S113 in FIG. 16). When a user performs a reset by button operation in mouse / stick mode, the user may be in a position and / or a gripping state of the controller that is easy to operate, and there is a possibility that the transition to gyro mode will occur without a significant change in that state. For this reason, by resetting the aim position and the reference attitude, there is a possibility that the user will be able to smoothly start an attitude change operation when subsequently transitioning to gyro mode.
[0123] Furthermore, in this embodiment, the attitude of the controller at the time of transition to gyro mode may be displaced from the reference attitude because it satisfies the conditions for transitioning to gyro mode, and the aim position may be significantly displaced from the center of the display range. For example, this situation may occur when the conditions for transitioning to gyro mode are a swing operation or at least one of a predetermined angle condition, an angular velocity condition, and an acceleration condition. According to this embodiment, even in such a case, the aim 250 is displayed within the display range, thereby preventing the user from losing sight of the aim.
[0124] Furthermore, in this embodiment, for example, if an attitude change operation is performed in the air in gyro mode, then a mouse operation is performed on a work surface such as a desk or the user's thigh, and then an attitude change operation is performed in the air again in gyro mode, the attitude of the controller in the first and second gyro modes may be significantly different. According to this embodiment, control is performed to reset the aim position and reference attitude (see (2-1) and (3-1) in FIG. 12, etc.), so it is possible to prevent the user from losing sight of the aim when repeatedly switching between operation in gyro mode and operation in mouse mode, for example.
[0125] [Variations] The display manner of the virtual object, such as the color or shape of the crosshair 250, may change depending on the operation mode. In such a case, the crosshair can be considered to be substantially the same.
[0126] There are no limitations on the virtual object to be controlled, and for example, a cursor such as an arrow-shaped cursor, a pointer, a player object operated by the user, or other virtual objects may be controlled.
[0127] In the mouse / stick mode, the aim may be movable outside the display range, similar to the gyro mode (see FIG. 11).
[0128] In the above-described embodiment, an example has been given in which the mouse mode, gyro mode, and stick mode are provided, but in other examples, the mouse mode may not be provided, or the stick mode may not be provided.
[0129] Furthermore, in the above-described embodiment, an example has been given in which the reference attitude is updated to the current attitude of the controller when the condition that the target aim position corresponding to the attitude of the controller at the time of transition to gyro mode is outside the display range is satisfied (see FIGS. 12 and 17). However, for example, a range of controller attitudes in which the target aim position falls outside the display range may be calculated in advance based on the reference attitude. Then, when the condition that the attitude of the controller at the time of transition to gyro mode is included in the above-mentioned pre-calculated range is satisfied, the reference attitude may be updated to the current attitude of the controller.
[0130] In the above-described embodiment, when the target aim position corresponding to the attitude of the controller at the time of transition to gyro mode is outside the display range, the aim is displayed in the center of the display range and the reference attitude is updated (see FIGS. 12 and 17). Because the target aim position corresponds to the center of the aim, in this example, even if part of the aim is displayed within the display range, if the target aim position (i.e., the position corresponding to the center of the aim) is outside the display range, the aim is displayed in the center of the display range and the reference attitude is updated. Therefore, when the entire aim is outside the display range and is not displayed at all at the time of transition to gyro mode, the aim may be displayed in the center of the display range and the reference attitude may be updated. Furthermore, when the entire aim is located within a predetermined edge region of the display range (for example, an edge region having a width that can accommodate all or part of the aim) and an area outside the display range at the time of transition to gyro mode, the aim may be displayed in the center of the display range and the reference attitude may be updated. "A virtual object (e.g., a crosshair) is located within a certain range" may include both a case where the entire virtual object is located within a certain range and a case where only a portion of the virtual object is located within a certain range. When transitioning to gyro mode, if the virtual object is located in an edge region of the display range, control may be performed to display the virtual object in the center of the display range and update the reference attitude. When transitioning to gyro mode, if the virtual object is not located within a predetermined range that includes, for example, the center of the display range, control may be performed to display the virtual object in the center of the display range and update the reference attitude.
[0131] If the target aim position corresponding to the attitude of the controller at the time of transition to gyro mode is outside the display range, the aim may be displayed so that the center of the aim is at the closest position within the display range.
[0132] Furthermore, if the target aim position is within the display range when the gyro mode is switched, the aim may be moved to the target aim position instantaneously without performing complementary update (see (2-2) and (3-2) in FIG. 12).
[0133] Furthermore, the various data in the above-described embodiment are merely examples, and in each process, data converted into other data may be used as appropriate.
[0134] Furthermore, the game system is an example of an information processing system, and the information processing system may be a system that does not execute a game. Furthermore, the main unit may be a general-purpose personal computer.
[0135] The user may hold and operate both the right and left controllers in one hand. In this case, for example, each controller may be operable in three modes, or only one controller may be operable in three modes, or the two controllers may share the operation modes. For example, the right controller may perform mouse operations, and the left controller may perform gyro and stick operations. Alternatively, the right controller may perform mouse and gyro operations, and the left controller may perform mouse and stick operations. In other words, the mode sharing includes cases where both controllers are compatible with some modes. In such a case, a controller that cannot perform aiming operations in a certain mode may not transition to that certain mode even if there is a device input corresponding to that certain mode. For example, if the right controller can perform mouse and gyro operations for aiming but cannot perform stick operations, the right controller may not transition to stick mode even if there is stick operation. Note that devices not used for aiming operations may be used for other game processes. For example, in the above example, the stick on the right controller may be used to move the virtual camera or the player object.
[0136] The controllers in this embodiment are merely an example, and their shapes are not limited, for example. The controllers do not have to be detachable from the main unit. Neither of the two controllers may have a mouse sensor. Only one of the two controllers may have a mouse sensor. Neither of the two controllers may have a stick. Only one of the two controllers may have a stick. The controllers do not have to be a pair. In this case, one controller may not have a mouse sensor or a stick. Note that one controller may have two or more sticks. In this case, for example, operation of one stick may operate the aiming and transition to stick mode, while operation of the other stick may not operate the aiming or transition to stick mode. In this case, the other stick may be used to move the virtual camera or the player object.
[0137] The above-described processing is not limited to being applied to game processing. For example, it may be applied to a drafting application, a video editing application, or an operating system. As an example, it may be applied to menu operations in an operating system. When it is applied to game processing, it may also be applied to menu operations within the game.
[0138] At least a part of the series of processes described above may be executed by a server-side device in an information processing system including a terminal-side device and a server-side device capable of communicating with the terminal-side device via a network. Note that the server may be configured by a plurality of information processing devices, and the processes may be shared and executed by the plurality of information processing devices.
[0139] Although the present embodiment and its modifications have been described above, these descriptions are merely illustrative in every respect and are not intended to limit the scope of the present embodiment and its modifications. It goes without saying that various improvements and modifications can be made to the present embodiment and its modifications. [Explanation of symbols]
[0140] 1. Information Processing Systems 2 Main unit 3, 4 Controller 22, 42 sticks 24, 44 mouse sensor 63 processors 68, 69, 81, 94 Memory 72 Display 76, 77, 83, 84, 96, 97 Inertial sensors 82, 95 buttons 250 Aiming (display aiming position) 260 Target Aiming Position
Claims
1. An information processing method using a controller equipped with at least one of a mouse sensor and a direction operation unit operated by a user, and an inertial sensor, comprising: a mode setting step of setting one of a plurality of modes including a first mode and a second mode; In the first mode, a position of a virtual object is determined based on an output of the direction operation unit or the mouse sensor; a virtual object control step of determining a position of the virtual object based on an output of the inertial sensor in the second mode, In the virtual object control step, In the second mode, the position of the virtual object is determined in accordance with the attitude of the controller based on a correspondence relationship in which the virtual object is positioned at a predetermined position within a display range when the controller is in a reference attitude; when a first attitude, which is the attitude of the controller when the first mode is switched to the second mode, satisfies at least a first condition, the reference attitude is updated to an attitude in which a position of the virtual object corresponding to the first attitude is within the display range.
2. The information processing method according to claim 1 , wherein the first condition includes a condition that a position of the virtual object according to the first attitude is outside the display range.
3. The information processing method according to claim 2 , wherein when the first attitude satisfies the first condition, the reference attitude is updated to the first attitude.
4. The information processing method according to claim 3 , wherein the predetermined position is a center position of the display range.
5. 2. The information processing method according to claim 1, wherein, when the first attitude does not satisfy the first condition, the virtual object is moved from a position of the virtual object in the first mode toward a position of the virtual object in the second mode at a slower speed than when the first attitude satisfies the first condition.
6. The information processing method according to claim 1 , wherein when switching from the second mode to the first mode, if the position of the virtual object is outside the display range, the virtual object is positioned within the display range.
7. The information processing method according to claim 6 , further comprising determining a position of the virtual object within the display range according to a position of the virtual object outside the display range when switching from the second mode to the first mode.
8. In the first mode and the second mode, updating the position of the virtual object to the predetermined position in response to a button operation; The information processing method according to claim 1 , wherein, when the position of the virtual object is updated to the predetermined position, the reference attitude is updated to the attitude of the controller at the time of the update.
9. The information processing method according to claim 1 , wherein the first mode is switched to the second mode when at least the output of the inertial sensor satisfies a second condition.
10. The information processing method according to claim 1 , wherein in the first mode, the position of the virtual object is determined based on an output from the mouse sensor.
11. In the mode setting step, one of a plurality of modes including the first mode, the second mode, and a third mode is set, In the virtual object control means step, In the third mode, a position of the virtual object is determined based on an output of the direction operation unit; 11. The information processing method according to claim 10, wherein, when the first orientation when switching from the first mode or the third mode to the second mode satisfies at least the first condition, the reference orientation is updated to an orientation in which a position of the virtual object corresponding to the first orientation is within the display range.
12. An information processing system comprising: a controller having at least one of a mouse sensor and a direction operation unit operated by a user, an inertial sensor; and an information processing unit, a mode setting means for setting one of a plurality of modes including a first mode and a second mode; In the first mode, a position of a virtual object is determined based on an output of the direction operation unit or the mouse sensor; a virtual object control means for determining a position of the virtual object based on an output of the inertial sensor in the second mode; The virtual object control means In the second mode, the position of the virtual object is determined in accordance with the attitude of the controller based on a correspondence relationship in which the virtual object is positioned at a predetermined position within a display range when the controller is in a reference attitude; and when a first attitude, which is the attitude of the controller when the first mode is switched to the second mode, satisfies at least a first condition, the reference attitude is updated to an attitude in which the position of the virtual object corresponding to the first attitude is within the display range.
13. The information processing system according to claim 12 , wherein the first condition includes a condition that a position of the virtual object according to the first attitude is outside the display range.
14. The information processing system according to claim 13 , wherein when the first attitude satisfies the first condition, the reference attitude is updated to the first attitude.
15. The information processing system according to claim 14 , wherein the predetermined position is a center position of the display range.
16. A processor of an information processing system including a controller having at least one of a mouse sensor and a direction operation unit operated by a user, an inertial sensor, and an information processing unit, a mode setting step of setting one of a plurality of modes including a first mode and a second mode; In the first mode, the position of a virtual object is determined based on an output of the direction operation unit or the mouse sensor; a virtual object control step of determining a position of the virtual object based on an output of the inertial sensor when in the second mode; In the virtual object control step, in the second mode, determining a position of the virtual object in accordance with the attitude of the controller based on a correspondence relationship in which the virtual object is positioned at a predetermined position within a display range when the controller is in a reference attitude; an information processing program that, when a first attitude that is an attitude of the controller when the first mode is switched to the second mode satisfies at least a first condition, updates the reference attitude to an attitude in which a position of the virtual object corresponding to the first attitude is within the display range.
17. The information processing program according to claim 16 , wherein the first condition includes a condition that a position of the virtual object according to the first attitude is outside the display range.
18. The information processing program according to claim 17 , wherein when the first attitude satisfies the first condition, the reference attitude is updated to the first attitude.
19. The information processing program according to claim 18 , wherein the predetermined position is a center position of the display range.
20. The information processing program according to claim 16, wherein the information processing program causes the processor to execute game processing.