Operation device, information processing method, and computer program
By designing a generation unit in the operating device, obtaining the operation amount of the analog input device, converting the coordinate system and reflecting the sensitivity, the problem of high calculation load is solved, and efficient sensitivity reflection is achieved.
Patent Information
- Application Number
- CN202380068052.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-10-31
- Filing Date
- 2023-10-12
- Publication Date
- 2025-05-06
AI Technical Summary
There is a need to reduce the calculation load for reflecting the sensitivity set by the analog input device in the output value of the operation device based on the operation performed by the user on the analog input device.
An operating device is designed, including an analog input device, a storage unit, a generation unit and a transmission unit. The generation unit obtains the value in the orthogonal coordinate system that simulates the operation amount of the input device, converts it into another coordinate system, converts it based on the sensitivity, and finally converts the value back to the output value in the orthogonal coordinate system.
By this method, the calculation load is reduced, the operation efficiency is improved, and the sensitivity of the analog input device can be effectively reflected.
Smart Images

Figure CN119948442A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a data processing technology, and in particular to an operating device, an information processing method and a computer program. Background Art
[0002] An operating device including an analog input device such as an analog joystick and a trigger button has become common. Among the operating devices including the analog input device, there is an operating device configured to support adjustment of the sensitivity of the analog input device. Summary of the invention
[0003] [Technical issues]
[0004] It is necessary to reduce the calculation load for reflecting the sensitivity set for the analog input device in the output value of the operation means based on the operation performed by the user on the analog input device.
[0005] An object of the present invention is to provide a technique that reduces a calculation load for reflecting a sensitivity set for an analog input device in an output value of an operation means based on an operation performed by a user on the analog input device.
[0006] [Solution to the problem]
[0007] In order to solve the above-mentioned problems, an operation device according to a certain aspect of the present invention includes: an analog input device; a storage unit configured to store setting information associated with the sensitivity of the analog input device; a generation unit configured to generate operation information based on an operation performed by a user on the analog input device; and a transmission unit configured to transmit the operation information generated by the generation unit to an external information processing device. The generation unit is configured to (A) obtain a value in an orthogonal coordinate system based on an operation amount of the analog input device, (B) convert the value in the orthogonal coordinate system into a value in another coordinate system, (C) convert the value in another coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) convert the value in another coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
[0008] Another aspect of the present invention is an operating device. The device includes: an analog input device; a storage unit configured to store setting information associated with the sensitivity of the analog input device; and a processor. The processor performs processing to generate operation information based on the operation performed by the user on the analog input device, and processing to send the generated operation information to an external information processing device. The generated processing includes (A) obtaining a value in an orthogonal coordinate system based on the operation amount of the analog input device, (B) converting the value in the orthogonal coordinate system to a value in another coordinate system, (C) converting the value in another coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) converting the value in another coordinate system obtained after the conversion based on the sensitivity of the analog input device to a value in the orthogonal coordinate system to be set in the operation information.
[0009] Another embodiment of the present invention is an information processing method. The method, which is performed by an operating device including an analog input device and a storage unit configured to store setting information associated with the sensitivity of the analog input device, includes: a step of generating operation information based on an operation performed by a user on the analog input device and a step of sending the operation information generated in the generating step to an external information processing device. The generating step includes: (A) acquiring a value in an orthogonal coordinate system based on an operation amount of the analog input device, (B) converting the value in the orthogonal coordinate system into a value in another coordinate system, (C) converting the value in another coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) converting the value in another coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
[0010] Note that any combination of the above-described constituent elements and modes obtained by converting expressions of the present invention between systems, computer programs, recording media having the computer program stored therein, and the like are also effective as aspects of the present invention.
[0011] [Beneficial Effects of the Invention]
[0012] According to the present invention, it is possible to reduce the calculation load for reflecting the sensitivity set for the analog input device in the output value of the operating means based on the operation performed by the user on the analog input device. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] [ Figure 1 ]
[0014] Figure 1 is a schematic diagram illustrating an information processing system according to an embodiment.
[0015] [ Figure 2 ]
[0016] Figure 2is a view illustrating the upper surface of the controller.
[0017] [ Figure 3 ]
[0018] Figure 3 is a view illustrating a rear side surface of the controller.
[0019] [ Figure 4 ]
[0020] Figure 4 is a schematic diagram illustrating the hardware configuration of the controller.
[0021] [ Figure 5 ]
[0022] Figure 5 is a diagram illustrating a hardware configuration of an information processing apparatus.
[0023] [ Figure 6 ]
[0024] Figure 6 is a block diagram illustrating the functional blocks of a controller.
[0025] [ Figure 7 ]
[0026] Figure 7 is a block diagram illustrating functional blocks of an information processing device.
[0027] [ Figure 8 ]
[0028] Figure 8 is a diagram illustrating an example of an analog stick setting screen.
[0029] [ Fig. 9 ]
[0030] Fig. 9 is a schematic diagram illustrating an example of a sensitivity curve.
[0031] [ Fig.10 ]
[0032] Fig.10 The diagram is a schematic diagram illustrating the relationship between the operation of the analog stick and the output value.
[0033] [ Fig.11 ]
[0034] Fig.11 is a flow chart illustrating the operation of the controller.
[0035] [ Fig.12 ]
[0036] Fig.12 is a schematic diagram illustrating an example of values in the polar coordinate system before sensitivity application.
[0037] [ Fig.13 ]
[0038] Fig.13 is a diagram illustrating an example of values in the polar coordinate system after sensitivity application.
[0039] [ Fig.14 ]
[0040] Fig.14 (a) Fig.14 (b) and Fig.14 (c) Each illustrates the relationship between the setting of the trigger stop and the normalized range.
[0041] [ Fig.15 ]
[0042] Fig.15 is a schematic diagram illustrating the relationship between the setting of the trigger stop and the dead band.
[0043] [ Fig.16 ]
[0044] Fig.16 is a schematic diagram illustrating an example of a trigger setting screen.
[0045] [ Fig.17 ]
[0046] Fig.17 is a schematic diagram illustrating the relationship between the correction point and the output value of the controller.
[0047] [ Fig.18 ]
[0048] Fig.18 is a schematic diagram illustrating the relationship between the correction point and the output value of the controller.
[0049] [ Fig.19 ]
[0050] Fig.19 is a schematic diagram illustrating an example of assigning a new output value to a correction point.
[0051] [ Fig. 20 ]
[0052] Fig. 20 is a schematic diagram illustrating an example of assigning a new output value to a correction point. DETAILED DESCRIPTION
[0053] Figure 1The information processing system 1 according to the embodiment is illustrated. The information processing system 1 includes an information processing device 10, a display device 4, and a controller 6. The information processing device 10 of the embodiment is a fixed game machine. As a variation, the information processing device 10 may be a computer, a tablet terminal, or a smartphone capable of executing applications such as games.
[0054] The controller 6 is an operating device configured to receive information processing (e.g., video games) performed by the information processing device 10 input by the user. The controller 6 sequentially sends operating information indicating the operations input by the user to the information processing device 10. The controller 6 may also be referred to as a game controller. The information processing device 10 is connected to the controller 6 via a cable or wirelessly. The information processing device 10 of the embodiment is assumed to be an equipment installed in the user's home, etc., but as a variation, the functions of the information processing device 10 in the embodiment may be implemented on a server installed on the cloud and configured to provide cloud services (such as cloud games) via the Internet, etc. The controller 6 may also communicate with the server via a terminal or communication equipment installed in the user's home, etc.
[0055] In the information processing system 1, the information processing device 10 may transmit an output report corresponding to the control data to the controller 6 at predetermined intervals. The controller 6 may transmit an input report corresponding to the notification data to the information processing device 10 based on the reception of the output report.
[0056] The display device 4 may be a television including a display configured to output images and a speaker configured to output audio, or may be a computer display. The display device 4 may be connected to the information processing device 10 via a wired cable or wirelessly. When receiving the operation information provided from the controller 6, the information processing device 10 reflects the operation information in the processing of the system software or the application software, and causes the display device 4 to display an image related to the processing result.
[0057] An overview of the information processing system 1 of the embodiment is described.
[0058] The controller 6 of the embodiment stores user-customized setting information (hereinafter also referred to as "profile information" or simply "profile") associated with operations on the controller 6 in a non-volatile memory. The profile information includes setting information associated with the behavior of the controller 6. The controller 6 can store multiple pieces of profile information, and can switch the profile information to be applied in response to an operation performed by the user.
[0059] The profile information may include, for example, predetermined setting values regarding operations on the controller 6. Furthermore, the profile information may include setting information associated with generating operation information to be input to the information processing device 10 based on an input operation on the controller 6. Furthermore, the profile information may include information to be referred to when an analog value detected in response to an operation input to the controller 6 is converted into a digital value. In addition, the profile information may include setting information associated with the intensity of feedback (e.g., vibration, light emission, audio, etc.) in the controller 6.
[0060] Furthermore, the profile information may include setting information associated with changing a mode of image generation performed by the information processing device 10 or a mode of image display performed by the display device 4 based on an operation input to the controller 6. Furthermore, the profile information may include setting information associated with changing a mode of audio output from the information processing device 10, headphones (not shown), etc. based on an operation input to the controller 6. In addition, the profile information may include setting information associated with changing a chat mode based on an operation input to the controller 6.
[0061] In addition, the profile information may include setting information associated with the microphone. The setting information associated with the microphone may include, for example, on / off information about a noise cancellation function of the microphone, on / off information about a mute function of the microphone, setting information about the volume of the microphone, and the like.
[0062] The profile information of the embodiment includes a profile ID (identifier) and name, button assignment information, information related to the sensitivity of the analog input device, and corresponding button information. The button assignment information is information indicating various actions, commands, and functions assigned by the user to each button of the controller 6. In other words, the button assignment information is information indicating the assignment status of various actions, commands, and functions for each button. The corresponding button information is identification information related to the button of the controller 6 associated with the profile information, and is information indicating, for example, the circular button 72 or the cross button 73 described later.
[0063] The information related to the sensitivity of the analog input device includes information indicating a setting value related to the sensitivity of the analog input device. The sensitivity of the analog input device limits the size of the operation recognized by the information processing device 10 relative to the size of the operation actually input to the analog input device by the user (for example, the amount of tilt or the amount of rotation). The size of the operation recognized by the information processing device 10 can also be referred to as the size of the operation input to the data processing (in other words, the application being executed) in the information processing device 10. The setting value of the sensitivity can be a ratio between the amount of operation actually input to the analog input device and the amount of operation recognized by the information processing device 10.
[0064] Further, the information related to the sensitivity of the analog input device includes dead zone information about the analog input device, and includes, for example, setting values related to the dead zone. The dead zone may also be referred to as an insensitive zone, which is a range in which operations input to the analog input device are not accepted. In other words, the dead zone is a range in which operations input to the analog input device are ignored. The setting value for the dead zone may be a value range corresponding to the tilt amount or rotation amount of the dead zone. In this way, the profile information of the embodiment includes setting information about the analog input device of the controller 6. As described later, the controller 6 of the embodiment includes an analog joystick and a trigger button as analog input devices.
[0065] The inventors of the present invention have recognized that, as a first problem, there is a need to reduce a calculation load for reflecting the sensitivity set for the analog input device in an output value of the controller 6 based on an operation performed by a user on the analog input device.
[0066] As a first feature of the information processing system 1 for solving the above-mentioned first problem, the controller 6 obtains a value in an orthogonal coordinate system based on the operation amount of the analog input device, and once converts the value into a value in another coordinate system that is advantageous in terms of calculation load. The other coordinate system is a polar coordinate system in the embodiment, but it is sufficient if the other coordinate system is superior to the orthogonal coordinate system in terms of calculation load, and the other coordinate system is not limited to the polar coordinate system. The controller 6 adjusts the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device, and sets the value in the other coordinate system obtained after the adjustment back to the value in the orthogonal coordinate system, which is the format of the output value.
[0067] In addition, the inventors of the present invention have recognized that, as a second problem, in a case where a user can set a dead zone of any range for the analog input device, it may not be possible to maintain the linearity of the output value corresponding to the user's operation of the analog input device by utilizing the correction points set when manufacturing the controller 6.
[0068] As a second feature of the information processing system 1 for solving the above-mentioned second problem, the controller 6, when a dead zone is set for the analog input device, assigns a new output value to each correction point outside the dead zone range so that the minimum value to the maximum value of the output value corresponds to the movable range of the analog input device excluding the dead zone. The controller 6 generates an output value corresponding to the operation performed by the user on the analog input device by using the new output value assigned to each correction point.
[0069] The button configuration of the controller 6 is described. Figure 2The upper surface of the controller 6 is illustrated. The user operates the controller 6 by gripping the left grip unit 78b with the left hand and gripping the right grip unit 78a with the right hand. On the upper surface of the housing of the controller 6, a direction button 71, a right analog stick 77a, a left analog stick 77b and an operation button 76 as an input unit are provided. The direction button 71 is configured to support input in eight directions including up, down, left, right and diagonal, and in the present embodiment, includes an up button 71a, a left button 71b, a down button 71c and a right button 71d. The four operation buttons 76 are marked with different shapes in different colors to distinguish each other. The operation button 76 includes a circular button 72, a cross button 73, a square button 74 and a triangular button 75.
[0070] The right analog stick 77a and the left analog stick 77b are also referred to as control sticks, thumb sticks or joysticks, and are used to input directions and tilt amounts by tilting. The tilt amount can also be referred to as the angle at which the right analog stick 77a or the left analog stick 77b has been tilted. The right analog stick 77a and the left analog stick 77b are also used as push-type buttons, which are configured to sink downward when pressed by the user and return to the original position when the user releases his hand. In the following, when collectively referring to the right analog stick 77a and the left analog stick 77b, they are also referred to as "analog sticks 77". The operation button 76, the direction button 71 and the analog stick 77 are used to operate applications (e.g., games) to be executed on the information processing device 10.
[0071] The touch pad 79 is provided in a flat area between the direction button 71 and the operation button 76 on the upper surface of the housing. The touch pad 79 is not only used to detect the touch of the user's finger, but also used as a push-down button configured to sink downward when pressed by the user and return to the original position when the user releases his hand. In addition, a speaker 89 and a microphone 91 are also provided on the upper surface of the housing.
[0072] The home button 80 is provided between the analog stick 77a on the right side and the analog stick 77b on the left side. The home button 80 is used to turn on the power of the controller 6 and the information processing device 10, and to simultaneously activate a communication function for establishing a wireless connection with the information processing device 10. After the controller 6 is connected to the information processing device 10, the home button 80 is also used to cause the information processing device 10 to display a menu screen or a home screen. The menu screen or the home screen is a screen for a user to select a function or application to be executed by the information processing device 10.
[0073] The create button 81 is provided on the left side of the touch panel 79. The option button 82 is provided on the right side of the touch panel 79. The create button 81 and the option button 82 are used to input user instructions to the OS (operating system) or system software on the information processing device 10. In other words, the create button 81 and the option button 82 are buttons for calling (operating) functions of the OS or system software on the information processing device 10. Both the create button 81 and the option button 82 can be formed as push-type buttons.
[0074] The light emitting unit 86 is provided at the lower edge of the touch panel 79. The light emitting unit 86 may include an LED (light emitting diode). The light emitting unit 86 includes a plurality of lamps (in Figure 2 The light emitting unit 86 is controlled to display information associated with the controller number for identifying the controller and information associated with the state of the controller 6 by the light emission pattern of the plurality of lights (i.e., a combination of the on state and the off state). The light emitting unit 86 is controlled to be a lighting pattern specified by the application being executed on the information processing apparatus 10. Furthermore, in a case where the profile information to be applied to the operation on the controller 6 is switched, the light emitting unit 86 is controlled to be a predetermined lighting pattern indicating that the profile information on the controller 6 has been switched for a short period of time.
[0075] The vertically long light emitting units 85 are provided to the left and right sides of the touch panel 79. The light emitting units 85 include a red (R) LED, a green (G) LED, and a blue (B) LED, and light up according to light emission color information transmitted from the information processing device 10.
[0076] The right function button 88a and the left function button 88b (hereinafter, also referred to as the function button 88 in the case of collective reference) are buttons for changing or expanding the functions of other buttons. In this embodiment, when an operation to the operation button 76 is input while an operation to the function button 88 is input, the profile information to be applied to the operation of the controller 6 is switched to the profile information associated with the type of the operation button 76 operated together with the function button 88. The right function button 88a and the left function button 88b may be functionally identical. In that case, the right function button 88a and the left function button 88b provide the same function regardless of which button on the left or right side is operated.
[0077] Figure 3The rear side surface of the controller 6 is shown. On the upper side of the rear side surface of the housing of the controller 6, the touch panel 79 is folded and extended from the upper surface of the housing. On the rear side surface of the housing, the R1 button 83a, the R2 button 84a, the L1 button 83b, the L2 button 84b, the right trigger stopper 87a and the left trigger stopper 87b are arranged at positions symmetrical in the long side direction. The R1 button 83a and the R2 button 84a are operated by the index finger and the middle finger of the user's right hand, respectively, and the L1 button 83b and the L2 button 84b are operated by the index finger and the middle finger of the user's left hand, respectively.
[0078] The upper R1 button 83a and L1 button 83b are configured as push buttons, while the lower R2 button 84a and L2 button 84b are configured as trigger buttons that are rotatably supported. The R2 button 84a and L2 button 84b support analog output and output values corresponding to the rotation amount in the same manner as the right analog stick 77a and the left analog stick 77b. When the R2 button 84a and the L2 button 84b are collectively referred to as trigger buttons 84.
[0079] The right trigger stopper 87a is a member configured to adjust or limit the rotation range of the R2 button 84a. The left trigger stopper 87b is a member configured to adjust or limit the rotation range of the L2 button 84b. When the right trigger stopper 87a and the left trigger stopper 87b are collectively referred to as trigger stopper 87. The trigger stopper 87 can also be referred to as a limiting unit configured to limit the movable range (also referred to as the tiltable range or the rotatable range) of the analog input device. The right trigger stopper 87a and the left trigger stopper 87b can be set to any one of the first stage, the second stage and the third stage, respectively. In the first stage, the maximum rotation angle is 26 degrees, in the second stage, the maximum rotation angle is 14 degrees, and in the third stage, the maximum rotation angle is 10 degrees.
[0080] like Figure 2 and Figure 3 As illustrated, the controller 6 includes various input units such as various buttons and a joystick. The user inputs operations to the input units of the controller 6 while viewing a menu screen or a game screen displayed on the display device 4.
[0081] Figure 4 The hardware configuration of the controller 6 according to the present embodiment is illustrated. Figure 2 and Figure 3 In addition to the hardware described above, a vibrator 90, a storage unit 92, a communication control unit 94, and a processor 96 are also included. The processor 96 performs various types of data processing and controls the operation of various types of hardware. The processor 96 may include a CPU (central processing unit), a memory, and a SoC (system on chip).
[0082] The vibrator 90 provides tactile stimulation to the user by vibrating based on a control signal from the processor 96. The vibrator 90 may include a VCM (voice coil motor). The vibrator 90 and the light emitting unit 86 operate as a notification device configured to notify the user of various types of information. The vibrator 90 provides notification through tactile information, and the light emitting unit 86 provides notification through visual information.
[0083] The storage unit 92 stores data to be referenced or updated by the processor 96. The communication control unit 94 controls communication with external devices. In the embodiment, the communication control unit 94 performs wireless communication with the information processing device 10, but as a variation, the communication control unit 94 may perform wired communication with the information processing device 10.
[0084] Figure 5 The hardware configuration of the information processing apparatus 10 according to the present embodiment is illustrated. The information processing apparatus 10 includes a main power button 20, a power-on LED 21, a standby LED 22, a system controller 24, a clock 26, a device controller 30, a media drive 32, a USB (Universal Serial Bus) module 34, a flash memory 36, a wireless communication module 38, a wired communication module 40, a subsystem 50, and a main system 60.
[0085] The main system 60 includes a main CPU, a memory as a main storage device, a memory controller, a GPU (graphics processing unit), etc. The GPU is mainly used for arithmetic processing of game programs. These functions can be configured as an SoC and formed on a single chip. The main CPU has the function of starting the OS and executing the application installed in the storage unit (e.g., flash memory 36 or an auxiliary storage device, which is not shown) under the environment provided by the OS. In addition, the main system 60 has the function of controlling the display content on the display device 4.
[0086] The subsystem 50 includes a sub-CPU, a memory as a main storage device, a memory controller, etc., but does not include a GPU. The number of circuit gates of the sub-CPU is less than the number of circuit gates of the main CPU, and the operating power consumption of the sub-CPU is lower than that of the main CPU. The sub-CPU works when the main CPU is in a standby state, and its processing function is limited to achieve low power consumption. Note that the sub-CPU and the memory can be formed on separate chips.
[0087] The main power button 20 is an input unit that performs an operation input from a user and is provided on the front surface of the housing of the information processing device 10. The main power button 20 is operated to turn on or off the power to the main system 60 of the information processing device 10. Hereinafter, the main power is in the on state means that the main system 60 is in the active state, and the main power is in the off state means that the main system 60 is in the standby state. The power on LED 21 lights up when the main power button 20 is turned on, and the standby LED 22 lights up when the main power button 20 is turned off.
[0088] The system controller 24 detects a press performed by the user on the main power button 20. When the main power button 20 is pressed in a state where the main power is in an off state, the system controller 24 acquires the pressing operation as a "turn-on instruction". On the other hand, in a case where the main power button 20 is pressed in a state where the main power is in an on state, the system controller 24 acquires the pressing operation as a "turn-off instruction". The system controller 24 can acquire a turn-on / turn-off instruction similar to the above-mentioned instruction from the operation input from the controller 6.
[0089] Although the main CPU has a function of executing a game program installed in a predetermined storage unit or ROM medium 44, the sub-CPU does not have such a function. However, the sub-CPU has a function of accessing the storage unit and a function of sending and receiving data to and from an external device. The sub-CPU has only such limited processing functions and is therefore capable of operating with lower power consumption than the main CPU. These functions of the sub-CPU are executed when the main CPU is in a standby state.
[0090] The clock 26 is a real-time clock that generates information about the current date and time and provides the information to the system controller 24, the subsystem 50, and the main system 60.
[0091] Similar to the south bridge, the device controller 30 is configured as an LSI (Large Scale Integrated Circuit) and is configured to perform information exchange between devices. Figure 5 As shown, the device controller 30 is connected to devices such as the system controller 24, the media drive 32, the USB module 34, the flash memory 36, the wireless communication module 38, the wired communication module 40, the subsystem 50, and the main system 60. The device controller 30 absorbs the difference in electrical characteristics and the difference in data transfer rate among the devices, and controls the timing of data transfer.
[0092] The media drive 32 is a drive device configured to drive a ROM medium 44 on which application software such as games and license information are installed to read out programs, data, etc. from the ROM medium 44. The ROM medium 44 is a read-only recording medium such as an optical disc, a magneto-optical disc, or a Blu-ray disc.
[0093] The USB module 34 is a module to be connected to an external device via a USB cable. The flash memory 36 is an auxiliary storage device forming an internal memory. The wireless communication module 38 wirelessly communicates with the controller 6 by, for example, using a communication protocol such as the Bluetooth (trademark or registered trademark) protocol or the IEEE (Institute of Electrical and Electronics Engineers) 802.11 protocol. The wired communication module 40 communicates with external equipment via a wired connection, and is connected to the Internet, a server, etc. via, for example, an access point not shown.
[0094] Figure 6 6 is a block diagram illustrating the functional blocks of the controller 6. Each block shown in the block diagram herein can be implemented in hardware by an element, an electronic circuit or a mechanical device (such as a computer processor, a CPU or a memory) and in software by a computer program loaded into the memory, etc. However, the functional blocks implemented by their cooperation are shown here. Therefore, it should be understood by those skilled in the art that these functional blocks can be implemented in various forms by a combination of hardware and software.
[0095] The controller 6 includes a storage unit 100 and a processing unit 110. The storage unit 100 corresponds to Figure 4 The storage unit 92 stores data referenced or updated by the processing unit 110. The storage unit 100 includes a configuration file storage unit 102 and a correction point information storage unit 104.
[0096] The profile storage unit 102 includes a nonvolatile memory configured to store a plurality of profile information. The profile storage unit 102 stores each of the plurality of profile information in association with a different slot and operation button 76. In the embodiment, the profile storage unit 102 stores a maximum of four profile information in association with four slots (slots 1 to 4) and four operation buttons 76 (circular button 72, cross button 73, square button 74, triangle button 75).
[0097] The correction point information storage unit 104 stores correction point information, which is information associated with a plurality of positions (hereinafter, also referred to as "correction points") between the released state and the full stroke state of the trigger button 84. The released state is a state in which the finger is released from the trigger button 84 and no operation is input to the trigger button 84. The full stroke state is a state in which the trigger button 84 is rotated to the upper limit of the physically movable range.
[0098] The plurality of correction points can also be referred to as a plurality of positions within the rotatable range of the trigger button 84. Further, the plurality of correction points are different from each other in the amount of rotation of the trigger button 84 (also referred to as the amount of user operation on the trigger button 84). The correction point information is information measured when the controller 6 is manufactured, and includes a pair of a characteristic value (e.g., a voltage value) and an output value (a value indicating the magnitude of the operation) for each of the plurality of correction points.
[0099] The processing unit 110 includes an operation detection unit 112, an operation information generation unit 114, an operation information transmission unit 116, a configuration file update unit 118, and an allocation unit 120. A computer program (e.g., firmware) having at least some of these multiple functions implemented thereon may be stored in the storage unit 92 of the controller 6. The processor 96 of the controller 6 may exhibit at least some of these multiple functions by reading the computer program into a main memory and executing it.
[0100] The operation detection unit 112 detects an operation performed by a user and input to the controller 6. The operation performed by the user includes an operation for moving the analog input device, specifically, an operation for tilting the analog joystick 77 and an operation for rotating the trigger button 84. The operation detection unit 112 performs analog-to-digital conversion on the output from the analog input device related to the operation performed by the user on the analog input device at a predetermined sampling rate, thereby acquiring an output value. The operation detection unit 112 detects an analog value (e.g., a voltage value) associated with the operation on the analog input device, performs analog-to-digital conversion on the analog value, and transmits the digital value obtained after the conversion (hereinafter also referred to as an "AD value") to the operation information generation unit 114.
[0101] The operation information generation unit 114 generates operation information associated with the operation performed by the user based on the operation performed by the user on the controller 6 and detected by the operation detection unit 112 (for example, the AD value output from the operation detection unit 112). In the embodiment, the operation information generation unit 114 specifically generates operation information associated with the operation performed by the user on the analog joystick 77 and the trigger button 84.
[0102] The operation information transmitting unit 116 transmits the operation information generated by the operation information generating unit 114 to the information processing device 10. The operation information transmitting unit 116 may transmit the operation information to the information processing device 10 by including the operation information in an input report to be transmitted from the controller 6 to the information processing device 10.
[0103] The profile update unit 118 updates the profile information about the controller 6 that has been stored in the profile storage unit 102 according to the profile update instruction sent from the information processing device 10. The profile update instruction includes, for example, an instruction for updating the setting values related to the sensitivity characteristics and the dead zone of the analog stick 77. In addition, the profile update instruction includes an instruction for updating the setting values related to the dead zone of the trigger button 84.
[0104] The allocating unit 120 dynamically allocates an output value indicating the size of the operation to each of the plurality of correction points stored in the correction point information storage unit 104 based on the updated profile information.
[0105] Figure 7 2 is a block diagram illustrating functional blocks of the information processing device 10. The information processing device 10 includes a storage unit 200 and a processing unit 210. The processing unit 210 performs various types of information processing. The processing unit 210 is implemented by a processor of the information processing device 10 and may be implemented by, for example, Figure 5 The main system 60 shown is implemented. The storage unit 200 stores data to be referenced or updated by the processing unit 210. The storage unit 200 may include Figure 5 Flash memory 36 and ROM media 44 are illustrated.
[0106] The storage unit 200 includes an application storage unit 202 and a configuration file storage unit 204. The application storage unit 202 stores data on an application executable on the information processing device 10 (for example, a game program).
[0107] The profile storage unit 204 stores profile information about the controller 6 and notifications given by the controller 6. The profile storage unit 204 is similar to the profile storage unit 102 of the controller 6, and stores up to 4 profile information in association with 4 slots and 4 operation buttons 76 (circular button 72, cross button 73, square button 74, triangle button 75). In addition, the profile storage unit 204 stores information associated with the profile currently applied in the controller 6 and notifications given by the controller 6. Specifically, the profile storage unit 204 stores a profile corresponding to any slot of slots 1 to 4 corresponding to the applied profile.
[0108] The processing unit 210 includes a profile information acquisition unit 212, an operation information receiving unit 214, an application execution unit 216, a setting screen generation unit 218, a display control unit 220, and a profile update instruction unit 222. A computer program having at least some of these multiple functions implemented thereon may be stored in the storage unit 200 of the information processing device 10. The processor of the information processing device 10 (e.g., the main system 60) may exhibit at least some of these multiple functions by reading the computer program into the main memory and executing it.
[0109] The profile information acquisition unit 212 acquires information associated with a plurality of user-selectable profiles stored in the controller 6 from the controller 6 connected to the information processing apparatus 10. The profile information acquisition unit 212 stores the information associated with the plurality of user-selectable profiles in the profile storage unit 204.
[0110] The operation information receiving unit 214 receives information about an operation performed by a user on the controller 6 , which has been transmitted from the controller 6 connected to the information processing apparatus 10 .
[0111] The application execution unit 216 executes an application (e.g., a game program or system software) stored in the application storage unit 202. For example, the application execution unit 216 advances a game based on information about an operation performed by a user on the controller 6, and sequentially generates an image indicating a result of game progress (hereinafter also referred to as a "game screen").
[0112] The setting screen generation unit 218 generates data on a profile setting screen for the controller 6 based on information on operations performed by the user on the controller 6 during execution of the application (for example, during display of a game screen). The profile setting screen of the embodiment includes a setting screen for an analog input device, specifically, a setting screen for the analog joystick 77 and a setting screen for the trigger button 84.
[0113] The display control unit 220 controls display of information and images on the display device 4. For example, the display control unit 220 outputs data on a game screen generated by the application execution unit 216 to the display device 4, and causes the display device 4 to display the game screen. In addition, the display control unit 224 outputs data on a setting screen generated by the setting screen generation unit 218 to the display device 4, and causes the display device 4 to display the setting screen.
[0114] The profile update instruction unit 222 sends a profile update instruction to the controller 6 based on the content input by the user on the profile setting screen. The profile update instruction unit 222 can send the profile update instruction to the information processing device 10 by including the profile update instruction in an output report to be sent from the information processing device 10 to the controller 6 at predetermined intervals.
[0115] The operation of the information processing system 1 having the above configuration is described.
[0116] First, as operations related to the first feature of the information processing system 1, mainly, adjustment and operation of the analog sticks 77 (right analog stick 77a and left analog stick 77b) are described.
[0117] The setting screen generation unit 218 of the information processing device 10 generates the analog stick setting screen in response to an operation performed by the user and input to the controller 6. The display control unit 220 of the information processing device 10 causes the display device 4 to display the analog stick setting screen.
[0118] Figure 8 An example of the analog stick settings screen 130 is shown. Figure 8 The analog stick setting screen 130 indicates the contents for setting the sensitivity and dead zone of the analog stick 77 of the controller 6. The analog stick setting screen 130 includes a setting object selection bar 132, a sensitivity pattern selection bar 134, a sensitivity curve adjustment gauge 136, a dead zone adjustment gauge 138, a sensitivity curve image 140, and a setting status image 148.
[0119] The setting object selection bar 132 is a screen element for selecting the type of analog stick 77 (in the embodiment, the right analog stick 77a or the left analog stick 77b) set in the analog stick setting screen 130. Fig.11 The left analog stick 77b is selected.
[0120] The sensitivity mode selection bar 134 is a screen element for selecting a specific mode from a plurality of predetermined sensitivity curve modes. The sensitivity curve is a curve (including a straight line) indicating the relationship between the tilt angle of the analog stick 77 and the output value. Specifically, the sensitivity curve is a curve that associates the size of the operation input by the user to the analog stick 77 (hereinafter also referred to as the "user input operation amount") with the size of the operation recognized in the data processing of the information processing device 10 (hereinafter also referred to as the "system recognition operation amount"). The user input operation amount may also be referred to as the actual tilt amount or tilt angle of the analog stick 77. In addition, the system recognition operation amount may also be referred to as the tilt amount or tilt angle of the analog stick 77 input to the data processing of the information processing device 10 (the application execution unit 216 in the embodiment).
[0121] The plurality of sensitivity curve modes may include a linear mode, a delay mode, and a fast mode. The linear mode is a mode in which the system recognition operation amount increases in proportion to the increase in the user input operation amount, and is, for example, a default mode in which the slope of the sensitivity curve is constant. The delay mode is a mode in which the increase in the system recognition operation amount is gradual when the user input operation amount is small and in which the system recognition operation amount increases significantly as the user input operation amount becomes larger. The fast mode is a mode in which the increase in the system recognition operation amount is large even when the user input operation amount is small and the system recognition operation amount reaches the upper limit early.
[0122] The sensitivity curve adjustment gauge 136 is a screen element for adjusting the correspondence between the user input operation amount and the system recognition operation amount of the analog joystick 77. Specifically, the sensitivity curve adjustment gauge 136 is a screen element for adjusting the slope or curvature of the sensitivity curve. The sensitivity curve adjustment gauge 136 includes a slider that suggests the sensitivity value of the analog joystick 77. The dead zone adjustment gauge 138 is a screen element for adjusting the range of the dead zone of the analog joystick 77 (in other words, the size of the dead zone). The dead zone adjustment gauge 138 includes a slider that suggests the value of the dead zone of the analog joystick 77.
[0123] The analog stick setting screen 130 includes two images indicating both the sensitivity and the dead zone of the analog stick 77 in a common scale (in other words, a common standard). One image is a sensitivity curve image 140 indicating the sensitivity and the dead zone along the axis related to the size of the operation input to the analog stick 77 by the user. The other image is a setting state image 148 indicating the sensitivity and the dead zone by the distance from the center based on the size of the operation input to the analog stick 77 by the user. The setting screen generation unit 218 arranges the sensitivity curve image 140 and the setting state image 148 on the analog stick setting screen 130.
[0124] The sensitivity curve image 140 includes objects indicating sensitivity curves (initial sensitivity curve 146 and adjusted sensitivity curve 144) placed in a graphic area having a horizontal axis of the magnitude of an operation input to the analog stick 77 by the user, and a vertical axis of the magnitude of the operation recognized by the information processing device 10. The sensitivity curve may also be referred to as a graph indicating a relationship between an input value (horizontal axis value) obtained before the sensitivity reflects adjustment and an output value (vertical axis value) obtained after the sensitivity reflects adjustment.
[0125] The initial sensitivity curve 146 indicates the initial value of the sensitivity curve defined by the mode selected in the sensitivity mode selection field 134. The adjusted sensitivity curve 144 indicates the sensitivity curve obtained after adjustment with the sensitivity curve adjustment gauge 136. In addition, the sensitivity curve image 140 includes an object indicating the range of a dead zone (dead zone 142), which is placed along the horizontal axis of the graph area. Figure 6 The dead zone 142 indicates that 18% of the tilt amount that the user can input from the rest position (in other words, the initial position) of the analog stick 77 is the dead zone.
[0126] The setting state image 148 includes an input unit ( Figure 8 , and information associated with the sensitivity and the dead zone is superimposed on the image. Specifically, the setting state image 148 includes a plurality of concentric circles centered on the static position (in other words, the initial position) of the analog stick 77, representing the size of the operation from the static position in a plurality of stages (gradation lines 150). The plurality of grade lines 150 may include three grade lines 150 indicating 100%, 75%, and 50% of the maximum value using the maximum value of the operation amplitude as a reference. The grade lines 150 may also be referred to as contour lines associated with the size of the operation.
[0127] A dead zone 152 as a first object indicating an insensitive zone is placed on the setting state image 148. The dead zone 152 indicates the range of the dead zone by the distance from the rest position of the analog stick 77, that is, the center of the circle represented by the grade line 150. An adjusted operation amount indicator 154 and an unadjusted operation amount indicator 156 are further placed on the setting state image 148. Both the adjusted operation amount indicator 154 and the unadjusted operation amount indicator 156 indicate the size of the operation on the analog stick 77 by the distance from the above-mentioned center. In addition, both the adjusted operation amount indicator 154 and the unadjusted operation amount indicator 156 indicate the tilt direction of the analog stick 77 by the direction in which the line extends from the above-mentioned center.
[0128] The adjusted operation amount indicator 154 indicates a value obtained by adjusting a value related to an operation performed by a user and input to the analog stick 77 using the profile information adjusted in the adjustment mode (e.g., the left analog stick adjustment mode). That is, the adjusted operation amount indicator 154 indicates the operation amount of the analog stick 77 recognized by the information processing device 10 in a case where the profile information being adjusted is applied to the controller 6. The profile information being adjusted includes, for example, a setting value of the sensitivity defined by the sensitivity curve adjusted by the sensitivity curve adjustment gauge 136 and the dead zone adjustment gauge 138.
[0129] The unadjusted operation amount indicator 156 indicates a value related to the operation performed by the user and input to the analog stick 77, and the value is not applied to the profile information being adjusted in the adjustment mode. Specifically, the unadjusted operation amount indicator 156 indicates a value derived using the amount of operation performed by the user and input to the analog stick 77 and the linear sensitivity curve, regardless of the profile information being adjusted in the adjustment mode. The value indicated by the unadjusted operation amount indicator 156 is a default value of the operation amount of the analog stick 77 recognized by the information processing device 10 based on the amount of operation performed by the user and input to the analog stick 77. Note that although the term "unadjusted" is used, the adjustment of the analog stick 77 is completed at the time of manufacturing or shipment of the controller 6 at the factory.
[0130] The setting state image 148 is an image showing the sensitivity of the analog stick 77 based on the sensitivity curve set by the user on the analog stick setting screen 130. Specifically, the setting state image 148 is an image showing the relationship between the adjusted value indicated by the adjusted operation amount indicator 154 using the profile information being adjusted and the value indicated by the unadjusted operation amount indicator 156 not applying the profile information being adjusted.
[0131] On the analog stick setting screen 130, the user selects a desired mode from a plurality of predetermined sensitivity curve modes in the sensitivity mode selection bar 134. It is assumed here that the delay mode has been selected. The setting screen generation unit 218 places the initial sensitivity curve 146 determined by the delay mode on the sensitivity curve image 140. In addition, the setting screen generation unit 218 places the adjusted sensitivity curve 144 reflecting the setting values of the sensitivity curve adjustment gauge 136 and the dead zone adjustment gauge 138 on the sensitivity curve image 140. In addition, the user adjusts and updates the sensitivity curve (including the dead zone) of the analog stick 77 when confirming the setting status image 148 of the analog stick setting screen 130.
[0132] The profile update instruction unit 222 of the information processing device 10 sends a profile update instruction to the controller 6, the profile update instruction including information about a line graph (eg, Figure 8 The profile updating unit 118 of the controller 6 stores information about the vertices of the line graph representing the sensitivity characteristics of the analog stick 77 in the profile storage unit 102.
[0133] Fig. 9 An example of a sensitivity curve is shown. Fig. 9In the example of , sensitivity information about the analog stick 77 is stored in the profile storage unit 102, the sensitivity information including information about the vertex 1, vertex 2, vertex 3, and vertex 4 of the adjusted sensitivity curve 144. An example of information about each vertex of the adjusted sensitivity curve 144 is described.
[0134] Information about vertex 1: (r Dz ,0)
[0135] Information about vertex 2: (r1, r'1)
[0136] Information about vertex 3: (r2, r'2)
[0137] Information about vertex 4: (r Max ,r' Max )
[0138] r Dz is a value indicating the range of the dead zone, that is, 0 ≤ input value ≤ r Dz The range of is a dead zone. The information about vertex 4 may be a fixed value.
[0139] Fig.10 The relationship between the operation and the output value of the analog stick 77 is illustrated. The physical movable range 170 indicated by the solid circle indicates the range in which the analog stick 77 can actually move. The return position 174, which may also be referred to as the center return position, is the position of the analog stick 77 when the finger is away from the analog stick 77 (i.e., when the analog stick 77 is not operated). When manufacturing the controller 6, the minimum value (X) of the AD value in the physical movable range 170 is measured. min and Y min ) and the maximum value of AD value (X max and Y max ) and returns the AD value at position 174 (X center and Y center ).
[0140] In addition, based on the physical movable range 170, the return position 174 can be extended to the AD maximum value (X max and Y max ) is set as the offset value, and the offset value (X') within the AD maximum value is set as the offset value (X' max and Y' max ) is set as the maximum value of the output value from the controller 6. Similarly, the position from the return position 174 to the AD minimum value (X) is set based on the physical movable range 170. min and Y min ) is set as the offset value, and the offset value (X') within the AD minimum value is set as the offset value (X' minand Y' min ) is set to the minimum value of the output value from the controller 6.
[0141] By (X' max and Y' max ) and (X' min and Y' min ) is set as the logical movable range 172. The output value from the controller 6 is normalized within the range of 0 to 255. The normalized output value varies within the range of the logical movable range 172.
[0142] like Fig.10 As illustrated in the graph below, the output value in the X-axis direction is determined as follows according to the AD value on the X-axis in the physical movable range 170.
[0143] (1) When AD value is X' min or less, the output value is set to 0.
[0144] (2) When AD value is at X' min and X center In the case between, the output value is determined by linear interpolation to set the output value in the range from 0 to 128.
[0145] (3) When AD value is X center and X' max In the case between, the output value is determined by linear interpolation to set the output value in the range from 128 to 255.
[0146] (4) When AD value is X' max or greater, the output value is set to 255.
[0147] Similarly, if Fig.10 As illustrated in the graph on the right side of , the output value in the Y-axis direction is determined as follows based on the AD value of the Y-axis in the physical movable range 170 .
[0148] (1) When AD value is Y' min or less, the output value is set to 0.
[0149] (2) When AD value is at Y' min and Y center In the case between, the output value is determined by linear interpolation to set the output value in the range from 0 to 128.
[0150] (3) When AD value is Y center and Y' max In the case between, the output value is determined by linear interpolation to set the output value in the range from 128 to 255.
[0151] (4) When AD value is Y' max or greater, the output value is set to 255.
[0152] like Figure 8 and Fig. 9 As illustrated, on the analog stick setting screen 130, the user can set a sensitivity curve (adjusted sensitivity curve 144) of any shape that can include a dead zone. The operation information generation unit 114 of the controller 6 needs to reflect the setting value for the sensitivity curve of any shape in the output value of the analog stick 77.
[0153] Fig.11 is a flowchart showing the operation of the controller 6. The operation detection unit 112 acquires an AD value corresponding to the operation amount (in other words, the tilt amount of the analog stick 77) when an operation for tilting the analog stick 77 is input (S10). The operation information generation unit 114 acquires a temporary value (x, y) in an orthogonal coordinate system with 0 as the center based on the AD value acquired in S10 (S11). In order to prevent a decrease in the calculation accuracy in the subsequent stage, in S11, a relatively high-precision value is acquired, specifically, a numerical range of -32767 to 32767 is used.
[0154] The operation information generation unit 114 converts the value (x, y) in the orthogonal coordinate system acquired in S11 into a value (r, θ) in the polar coordinate system (S12). The operation information generation unit 114 derives the radius value r based on Equation 1.
[0155] [Mathematical formula 1]
[0156]
[0157] Furthermore, as shown in Equation 2 and Equation 3, the operation information generating unit 114 derives tan θ without deriving the deflection angle θ. 2 θ and 1 / tan 2 θ.
[0158] [Mathematical formula 2]
[0159]
[0160] You can calculate tan using only multiplication and division 2 θ and 1 / tan 2 θ. In addition, the deflection angle θ remains constant during this process. Therefore, it is possible to use tan 2 θ and 1 / tan 2 θ is used to convert the polar coordinate system to the orthogonal coordinate system in the subsequent stage. This process does not require the calculation of trigonometric functions (tan -1Note that in the case of x=0 or y=0, the calculations in Equation 2 and Equation 3 are not performed.
[0161] The operation information generation unit 114 converts the radius value r determined in S12 into a value r′ reflecting the sensitivity set for the analog stick 77 based on the sensitivity curve information about the analog stick 77 indicated by the profile information stored in the profile storage unit 102 ( S13 ).
[0162] For example, assuming that Fig. 9 Information on vertex 1 to vertex 4 of the adjusted sensitivity curve 144 has been set as sensitivity curve information about the analog stick 77 . Fig.12 illustrates an example of values (r, θ) in polar coordinates before sensitivity application, and Fig.13 An example of the value (r', θ) in the polar coordinate system after the sensitivity is applied is illustrated. The physical movable range 170 represents the physical movable range of the analog joystick 77. The logical movable range 176 corresponds to Fig.10 The logical movable range 172 is a circle having a radius that is 4% smaller than the radius of the physical movable range 170.
[0163] In the case where the radius value r is equal to or smaller than rDz (ie, is a value within the dead zone range 178 ), the value obtained after adjustment is 0. Fig.13 The r'1 is related to the adjusted sensitivity curve 144 Fig.12 The value corresponding to r1. Fig.13 The r'2 is related to the adjusted sensitivity curve 144 Fig.12 The value corresponding to r2. Fig.13 R' Max is the value on the adjusted sensitivity curve 144 Fig.12 R Max The operation information generating unit 114 uses linear interpolation between the vertices of the adjusted sensitivity curve 144 with the radius value r obtained in S12 as input to derive the corresponding output value r′.
[0164] The operation information generation unit 114 converts the value (r', θ) in the polar coordinate system obtained after the radius value conversion into the value (x', y') in the orthogonal coordinate system (S14). The operation information generation unit 114 derives the values of x' (expressed as x in equation 4) and y' (expressed as y in equation 5) based on equations 4 and 5.
[0165] [Mathematical formula 3]
[0166]
[0167] [Formula 4]
[0168]
[0169] In the case of x=0 or y=0, the calculations in Equation 4 and Equation 5 are not performed. In addition, the signs of x' and y' are the same as the signs of x and y obtained before conversion to the polar coordinate system.
[0170] The operation information generating unit 114 converts the temporary value (x', y') in the orthogonal coordinate system whose center value is 0 into an output value (x', y') ranging from 0 to 128 or from 128 to 255 in the default format. out ,y out ) as operation information (S15). Output value (x out ,y out )like Fig.10 The example is a value in an orthogonal coordinate system with a lower limit of 0, a center value of 128, and an upper limit of 255. Although the value range of (x', y') is high-precision (-32767 to 32767) like the value range of (x, y), the output value (x out ,y out ) is determined to have a low precision value range (0 to 255).
[0171] The operation information generating unit 114 generates the output value (x) including the above description based on the user operation on the analog stick 77. out ,y out ) as the operation information. The operation information sending unit 116 sends the operation information generated by the operation information generating unit 114 to the information processing device 10 (S16).
[0172] The application execution unit 210 of the information processing device 10 executes the operation by using the output value (x out ,y out ) to execute the application and reflect the output value (x) in the movement of the game character, for example out ,y out ). In addition, the setting screen generation unit 218 of the information processing device 10 places the adjusted operation amount indicator 154 of the setting state image 148 on the analog stick setting screen 130 on the basis of the output value (x out ,y out ) position.
[0173] By the first feature of the information processing system 1 of the embodiment, the value in the orthogonal coordinate system based on the operation performed by the user on the analog input device is once converted into a value in the polar coordinate system, and then the sensitivity characteristic of the analog input device is reflected in the value obtained after the conversion. In this way, the calculation load for reflecting the sensitivity set for the analog input device in the output value of the controller 6 based on the operation performed by the user on the analog input device can be reduced.
[0174] In addition, as regards Fig.10 As described, the controller 6 generates a value ranging from a minimum value to a maximum value (a value ranging from 0 to 255), which is settable in the operation information, based on an operation within a range (logical movable range 176) narrower than the physical movable range 170 of the analog stick 77 by a predetermined offset. Thus, even if the physical movable range of the analog stick 77 moves by an offset over time, the predetermined output value range (minimum value to maximum value) can be maintained. The first feature of the information processing system 1 can be applied not only to the analog stick 77 but also to other types of analog input devices (such as the trigger button 84).
[0175] Next, as operations related to the second feature of the information processing system 1 , adjustments and operations related to the trigger buttons 84 (the R2 button 84 a and the L2 button 84 b ) are mainly described.
[0176] Fig.14 (a) Fig.14 (b) and Fig.14 (c) each illustrates the relationship between the setting of the trigger stopper 87 and the normalized range 180. Fig.14 (a) illustrates the relationship in the case where the trigger stopper 87 is set to the first stage (the rotatable angle of the trigger button 84 is 26 degrees). Fig.14 (b) shows the relationship in the case where the trigger stopper 87 is set to the second stage (the rotatable angle of the trigger button 84 is 14 degrees). Fig.14 (c) shows the relationship in the case where the trigger stopper 87 is set to the third stage (the rotatable angle of the trigger button 84 is 10 degrees).
[0177] When manufacturing the controller 6, with multiple positions between the release state and the full stroke state of the trigger button 84 set as calibration points, a characteristic value (AD value in the embodiment) is measured at each calibration point. The multiple calibration points of the embodiment include 9 calibration points from the calibration point P0 of the release position to the calibration point P8 of the full stroke position. The calibration point P8 is also the position where the physical stopper is set. P0 to P8 are set at equal intervals. Note that when manufacturing the controller 6, nine calibration points are set for each of the first stage, the second stage, and the third stage of the trigger stopper 87, and the AD value is measured at each calibration point.
[0178] The normalized range 180 is a range in which the output value is normalized to a value within the range of 0 to 255. For the first stage of the trigger stopper 87, the range of P2 to P7 is used as the normalized range 180. For the second stage of the trigger stopper 87, the range of P2 to P6 is used as the normalized range 180. For the third stage of the trigger stopper 87, the range of P3 to P5 is used as the normalized range 180. In this way, the more the rotatable angle of the trigger button 84 is restricted, the narrower the normalized range 180 becomes.
[0179] The release side offset 182 is a play area set on the P0 side, which is implemented by hardware. The full stroke side offset 184 is a play area set on the P8 side, which is implemented by hardware. In the release side offset 182 and the full stroke side offset 184, the output value from the controller 6 does not change. For example, in the case where the tilt amount of the analog stick 77 is within the range of the release side offset 182, the output value takes a constant value of "0". In addition, when the tilt amount of the analog stick 77 is within the range of the full stroke side offset 184, the output value takes a constant value of "255"
[0180] Fig.15 The relationship between the setting of the trigger stopper 87 and the dead zone is shown. The dead zone is set on the analog stick setting screen 130 independently of the setting of the trigger stopper 87. In the case where the dead zone is not set, the range excluding the release side offset 182 and the full stroke side offset 184 from the rotatable range is used as the normalized range 180 of the output value ranging from 0 to 255.
[0181] On the other hand, in the case where the dead zone is set, a range excluding the release side offset 182 and the full stroke side offset 184, and the release side dead zone 186 and the full stroke side dead zone 188 from the rotatable range is used as the normalized range 180. The release side dead zone 186 is a dead zone set on the release side (P0 side), and the full stroke side dead zone 188 is a dead zone set on the full stroke side (P8 side).
[0182] Fig.16 An example of the trigger setting screen 300 is illustrated. Fig.16The trigger setting screen 300 includes contents for setting the dead zone of the trigger button 84 (R2 button 84a and L2 button 84b) of the controller 6. Specifically, the trigger setting screen 300 includes an R2 dead zone setting area 302a, an R2 behavior confirmation area 304a, an L2 dead zone setting area 302b, and an L2 behavior confirmation area 304b.
[0183] The R2 dead zone setting area 302a is an area for inputting the setting value of the dead zone of the R2 button 84a, and the L2 dead zone setting area 302b is an area for inputting the setting value of the dead zone of the L2 button 84b. In the embodiment, in the R2 dead zone setting area 302a and the L2 dead zone setting area 302b, the effective range (corresponding to Fig.15 The start point and end point of the normalized range 180 of the release side are specified as percentages. The value of the start point is a value that specifies the range of the release side dead zone 186, in other words, a value that specifies the boundary between the release side dead zone 186 and the normalized range 180. The value of the end point is a value that specifies the range of the full stroke side dead zone 188, in other words, a value that specifies the boundary between the full stroke side dead zone 188 and the normalized range 180.
[0184] exist Fig.16 In the example of , no dead zone is set for the R2 button 84a, and the entire input range is designated as the effective range. Meanwhile, for the L2 button 84b, 50% of the start point side is designated as the dead zone (release side dead zone 186), and 50% of the end point side is designated as the effective range.
[0185] The L2 behavior confirmation area 304b is an area that displays the size of the system input value corresponding to the rotation operation of the L2 button 84b, and displays an operation amount indicator 306 indicating the operation amount (system input value) of the L2 button 84b. Fig.16 Although not shown in the figure, in the R2 behavior confirmation area 304a, an operation amount indicator 306 indicating the operation amount (system input value) of the R2 button 84a corresponding to the rotation operation of the R2 button 84a may also be displayed. In the R2 behavior confirmation area 304a and the L2 behavior confirmation area 304b, the portion corresponding to the dead zone is displayed with a relatively low brightness, and the portion corresponding to the effective range is displayed with a relatively high brightness.
[0186] The user inputs a setting value of the input range of the R2 button 84a (in other words, the setting value of the dead zone) in the R2 dead zone setting area 302a, and / or inputs a setting value of the input range of the L2 button 84b (in other words, the setting value of the dead zone) in the L2 dead zone setting area 302b. The profile update instruction unit 222 of the information processing device 10 sends a profile update instruction to the controller 6, the profile update instruction including the setting value input in the R2 dead zone setting area 302a and the setting value input in the L2 dead zone setting area 302b. The profile update unit 118 of the controller 6 reflects the setting value of the dead zone sent from the information processing device 10 in the profile information in the profile storage unit 102.
[0187] Fig.17 The relationship between the correction point and the output value of the controller 6 is shown. Fig.17 1 shows the relationship in the case where the trigger stopper 87 is set to the first stage and the dead zone is not set. In the case where the dead zone is not set, the allocation unit 120 of the controller 6 allocates the minimum output value 0 to P2 at the release side end of the normalized range 180, and allocates the maximum output value "255" to P7 at the full stroke side end of the normalized range 180. The allocation unit 120 allocates a value that divides 0 to 255 into five equal parts to each of P3, P4, P5, and P6. The allocation unit 120 stores a pair of the AD value measured when the controller 6 is manufactured and the output value allocated to each correction point in the correction point information storage unit 104 for each of the plurality of correction points P0 to P8.
[0188] In the case where a user operation is input to the trigger button 84, the operation detection unit 112 of the controller 6 detects an AD value based on the user operation. The operation information generation unit 114 of the controller 6 derives an output value corresponding to the input user operation based on the AD value detected by the operation detection unit 112 and the AD value and output value associated with at least one correction point. Specifically, the operation information generation unit 114 derives an output value (a value in the range of 0 to 255) corresponding to the user operation by linear interpolation according to the magnitude relationship between the AD value based on the user operation and the AD value of each correction point.
[0189] Thereafter, as has been described, the operation information generating unit 114 generates operation information including an output value corresponding to the user operation. The operation information transmitting unit 116 transmits the operation information to the information processing device 10. The application executing unit 216 of the information processing device 10 executes the application based on the output value corresponding to the user operation, which is indicated by the operation information transmitted from the controller 6.
[0190] Fig.18 The relationship between the correction point and the output value of the controller 6 is also illustrated. Fig.18 1 and 2 show the relationship in the case where the trigger stopper 87 is set to the first stage and a dead zone is set. Fig.16 On the illustrated trigger setting screen 300, the user can set the release-side dead zone 186 and the full-stroke-side dead zone 188 to any size regardless of the position of the calibration point. Fig.18 In the example of FIG. 1 , the boundary of the release side dead zone 186 is set between P3 and P4, and on the other hand, the full stroke side dead zone 188 is not set. In this case, when the output values corresponding to P4, P5, and P6 are set to Fig.17 When the values shown in the example are used, the linearity of the output value based on the user operation cannot be maintained.
[0191] Therefore, in the embodiment, the allocation unit 120 of the controller 6 dynamically changes the output value corresponding to at least one correction point according to the setting of the dead zone of the trigger button 84. Specifically, the allocation unit 120 allocates a new output value to each correction point outside the dead zone range when the dead zone of the trigger button 84 is set, so that the minimum value 0 to the maximum value 255 of the output value corresponds to the rotatable range of the trigger button 84 excluding the dead zone. The range outside the dead zone can also be called an effective range.
[0192] The allocating unit 120 allocates a new output value to each correction point outside the release-side dead zone 186 and the full-stroke-side dead zone 188 so that the minimum value 0 to the maximum value 255 of the output value corresponds to the rotatable range of the trigger button 84 excluding the set release-side dead zone 186 and the full-stroke-side dead zone 188. In addition, the allocating unit 120 allocates a new output value to each correction point outside each dead zone range every time the release-side dead zone 186 or the full-stroke-side dead zone 188 related to the trigger button 84 is newly set or changed.
[0193] Note that the allocation unit 120 allocates the minimum value 0 of the output value to the range from the rotation start position P0 of the trigger button 84 to a predetermined correction point. The predetermined correction point is a correction point having the largest rotation amount (AD value) among the correction points included in the release-side offset 182 and the correction points included in the release-side dead zone 186 in the embodiment.
[0194] In addition, the allocation unit 120 allocates the maximum value 255 of the output value to the range from the predetermined correction point to the rotation end position P8 of the trigger button 84. The predetermined correction point is, in the embodiment, a correction point having the smallest rotation amount (AD value) among the correction points included in the full stroke side offset 184 and the correction points included in the full stroke side dead zone 188. In this way, a play area is set near the release position and the full stroke position of the trigger button 84, so that the operability of the trigger button 84 can be improved.
[0195] Fig.19An example of assigning a new output value to a correction point is illustrated. Here, the trigger stopper 87 is set to the first stage. In the case where no dead zone is set, the range of P2 to P7 is used as the normalized range 180, and the assigning unit 120 assigns the output value corresponding to each correction point so that each interval divided by the correction point divides 0 to 255 into five equal parts.
[0196] Next, it is assumed that the release-side dead zone 186 has been set from P2 to the start point Pr between P3 and P4, and the full-stroke-side dead zone 188 has been set from the end point Pf between P6 and P7 to P7. In this case, the rotatable range of the trigger button 84 excluding the release-side dead zone 186 and the full-stroke-side dead zone 188 (i.e., the normalized range 180) is the range Pr to Pf. The allocation unit 120 sets Pr to the minimum value 0 and Pf to the maximum value 255, and allocates new output values Np4, Np5, Np6 to P4, P5, and P6 in a manner that allocates 0 to 255 to the interval from Pr to Pf.
[0197] exist Fig.19 , the size of the release-side dead zone 186 is specified as x% of the normalized range 180 available when no dead zone (P2 to P7) is set. In addition, the size of the full-stroke-side dead zone 188 is specified as y% of the normalized range 180 available when no dead zone (P2 to P7) is set. Both x and y are values in the range of 0 to 99.
[0198] The allocating unit 120 derives a ratio of the range of Pr to P4 with respect to the normalized range 180 (P2 to P7) available if the dead zone is not set, by using Equation 6.
[0199] (20-(x-20*m))%...(Equation 6)
[0200] m is the number of correction point intervals included in the release-side dead zone 186, and takes a value in the range of 0 to 4. Fig.19 , m=1.
[0201] The allocating unit 120 derives output values of P4, P5, and P6 by using Equations 7 to 9.
[0202] Np4 = 255*(20-(x-20*m)) / (100-xy)...(Equation 7)
[0203] Np5 = Np4 + 255*20 / (100-xy) ... (Equation 8)
[0204] Np6 = Np5 + 255*20 / (100-xy) ... (Equation 9)
[0205] Fig. 20An example of assigning a new output value to a calibration point is also illustrated. The trigger stop 87 is also set as the first stage. Fig. 20 In FIG. 1 , the release-side dead zone 186 (having a setting value x of 24%) is set from P2 to the starting point Pr between P3 and P4. The full-stroke-side dead zone 188 is not set.
[0206] In this case, the allocation unit 120 derives that the ratio of the range of Pr to P4 relative to the normalized range 180 available without setting the dead zone (P2 to P7) is 16% by using the above-described equation 6. In addition, the allocation unit 120 derives that Np4 is 54, Np5 is 121, and Np6 is 188 by using the above-described equations 7 to 9.
[0207] The allocation unit 120 stores, for the correction point at which the new output value is derived, a pair of the characteristic value of the correction point and the new output value in the correction point information storage unit 104. The operation information generation unit 114 generates operation information based on the user operation on the trigger button 84 by using the characteristic values and output values (new output values) of the plurality of correction points.
[0208] Consider a case where the rotatable range of the trigger button 84 is limited by the trigger stopper 87, and a dead zone (at least one of the release-side dead zone 186 and the full-stroke-side dead zone 188) is set for the trigger button 84. In this case, the allocation unit 120 detects a range excluding the dead zone from the rotatable range of the trigger button 84 limited by the trigger stopper 87 as the normalized range 180. The allocation unit 120 allocates a new output value to each correction point within the normalized range 180 (in other words, outside the dead zone range) so that the minimum value 0 to the maximum value 255 of the output value correspond to the normalized range 180.
[0209] The value "20" included in the above equations 6 to 9 is a fixed value for the case where the trigger stopper 87 is set to the first stage, and is a ratio (%) of a single correction point interval (e.g., P2 to P3) relative to the normalized range 180 available when the dead zone (P2 to P7) is not set. This ratio is hereinafter referred to as a "interval ratio".
[0210] As already described, in the case where the trigger stopper 87 is set to the second stage, the maximum rotation angle of the trigger button 84 is limited to 14 degrees. Fig.14 As shown in (b), the normalized range 180 is the range from P2 to P6, and the interval ratio is 25%. Thus, in this case, equations obtained by replacing "20" with "25" in the above equations 5 to 9 are used.
[0211] Furthermore, when the trigger stopper 87 is set to the third stage, the maximum rotation angle of the trigger button 84 is limited to 10 degrees. Fig.14 In the example shown in (c), the normalized range 180 is the range from P3 to P5, and the interval ratio is 50%. Thus, in this case, the equations obtained by replacing "20" with "50" in the above equations 5 to 9 are used.
[0212] The allocating unit 120 detects that an operation for limiting the rotatable range of the trigger button 84 using the trigger stopper 87 is input. This operation may be, for example, an operation for switching the stage by sliding the switch of the trigger stopper 87. The allocating unit 120 allocates a new output value to each correction point outside the dead zone range each time an operation for limiting the rotatable range of the trigger button 84 is input and each time a dead zone is set (newly set, changed, etc.) for the trigger button 84.
[0213] Note that the allocating unit 120 allocates the minimum value of the output value to more correction points as the rotatable range of the trigger button 84 is more narrowly limited by the trigger stopper 87. In addition, the allocating unit 120 allocates the maximum value of the output value to more correction points as the rotatable range of the trigger button 84 is more narrowly limited by the trigger stopper 87.
[0214] For example, Fig.14 (a) and Fig.14 As shown in (b), when the trigger stopper 87 is set to the first stage or the second stage and the dead zone is not set, P2 is used as the starting point of the normalized range 180. In this case, the allocation unit 120 allocates the output value 0 (minimum value) to P0, P1, and P2. Fig.14 As illustrated in (c), when the trigger stop is set to the third stage and the dead zone is not set, P3 serves as the starting point of the normalized range 180. In this case, the allocation unit 120 allocates the output value 0 to P0, P1, P2, and P3.
[0215] In addition, if Fig.14 As illustrated in (a), in the case where the trigger stopper 87 is set to the first stage and the dead zone is not set, P7 is used as the end point of the normalized range 180. In this case, the allocation unit 120 allocates the output value 255 (maximum value) to P7 and P8. Fig.14As illustrated in (b), when the trigger stopper 87 is set to the second stage and the dead zone is not set, P6 is used as the end point of the normalized range 180. In this case, the distribution unit 120 distributes the output value 255 to P6, P7, and P8. In addition, when the trigger stopper 87 is set to the third stage and the dead zone is not set, P5 is used as the end point of the normalized range 180. In this case, the distribution unit 120 distributes the output value 255 to P5, P6, P7, and P8.
[0216] By utilizing the second feature of the information processing system 1 of the embodiment, it is possible to maintain the linearity of the output value associated with the user operation on the trigger button 84 to which the release-side dead zone 186 and / or the full-stroke-side dead zone 188 have been set. The second feature of the information processing system 1 can be applied not only to the trigger button 84 but also to other types of analog input devices for which a dead zone can be set, such as the analog joystick 77.
[0217] The present invention has been described above based on the embodiment. The embodiment is exemplary, and those skilled in the art will appreciate that various modifications are possible for the combination of constituent elements and processing procedures, and such modifications are also within the scope of the present invention.
[0218] Any combination of the embodiments and variations described above is also useful as an embodiment of the present invention. The new embodiment produced by the combination has the effect of the combined embodiment and variation. In addition, those skilled in the art should also understand that the function to be served by each component feature described in the claims is realized by the various component elements described in the embodiments and variations or by their cooperation.
[0219] The technical concept described in the above-mentioned embodiment and modified examples can be expressed as the forms described in the following items.
[0220] [Item 1-1]
[0221] An operating device, comprising:
[0222] Analog input devices;
[0223] a storage unit configured to store setting information associated with the sensitivity of the analog input device;
[0224] a generating unit configured to generate operation information based on an operation performed by a user on the analog input device; and
[0225] a sending unit configured to send the operation information generated by the generating unit to an external information processing device, wherein:
[0226] The generating unit is configured to
[0227] (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device,
[0228] (B) converting the values in the orthogonal coordinate system into values in another coordinate system,
[0229] (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and
[0230] (D) converting the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
[0231] With this operation device, the value in the orthogonal coordinate system is once converted into a value in another coordinate system that is advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected. In this way, the calculation load for reflecting the sensitivity set for the analog input device in the output value of the operation device based on the operation performed by the user on the analog input device can be reduced.
[0232] [Item 1-2]
[0233] The operating device according to item 1-1, wherein
[0234] Another coordinate system is the polar coordinate system.
[0235] With this operation device, the value in the orthogonal coordinate system is once converted into a value in another coordinate system that is advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected. In this way, the calculation load for reflecting the sensitivity set for the analog input device in the output value of the operation device based on the operation performed by the user on the analog input device can be reduced.
[0236] [Items 1-3]
[0237] The operating device according to item 1-2, wherein
[0238] In (B), the generating unit derives the radius value of the polar coordinate system but does not derive the deflection angle value.
[0239] In the (C), the generation unit converts the radius value of the polar coordinate system based on the sensitivity of the analog input device indicated by the setting information.
[0240] With this operating device, no deflection angle is derived in the polar coordinate conversion, so that the computational load can be reduced.
[0241] [Items 1-4]
[0242] An operating device according to any one of items 1-1 to 1-3, wherein:
[0243] In (A), the generation unit acquires a relatively high-precision value as a value in the orthogonal coordinate system based on the operation amount of the analog input device, and
[0244] In (D), the generation unit converts the value in the other coordinate system obtained after conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system, and further converts the value in the orthogonal coordinate system obtained after the conversion into a relatively low-precision value.
[0245] With this operation device, a high-precision value is used for the sensitivity reflection calculation, so that a decrease in the calculation accuracy can be prevented.
[0246] [Items 1-5]
[0247] An operating device according to any one of items 1-1 to 1-4, wherein
[0248] The generation unit generates a value ranging from a minimum value to a maximum value, the value being settable in the operation information, based on an operation within a range narrower by a predetermined offset than a physically possible range of the analog input device.
[0249] With this operating apparatus, even when the physically movable range of the analog input device shifts over time, a predetermined output value range can be maintained.
[0250] [Items 1-6]
[0251] An operating device, comprising:
[0252] Analog input devices;
[0253] a storage unit configured to store setting information associated with the sensitivity of the analog input device; and
[0254] A processor, wherein:
[0255] The processor performs a process of generating operation information based on an operation performed by a user on the analog input device and a process of transmitting the generated operation information to an external information processing device, and
[0256] The generated processing includes
[0257] (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device,
[0258] (B) converting the values in the orthogonal coordinate system into values in another coordinate system,
[0259] (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and
[0260] (D) converting the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
[0261] With this operation device, the value in the orthogonal coordinate system is once converted into a value in another coordinate system that is advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected. In this way, the calculation load for reflecting the sensitivity set for the analog input device in the output value of the operation device based on the operation performed by the user on the analog input device can be reduced.
[0262] [Items 1-7]
[0263] An information processing method performed by an operating apparatus, the operating apparatus comprising an analog input device and a storage unit, the storage unit being configured to store setting information associated with the sensitivity of the analog input device, the information processing method comprising:
[0264] The step of generating operation information based on an operation performed by a user on the analog input device; and
[0265] a step of transmitting the operation information generated in the generating step to an external information processing device, wherein:
[0266] The steps to generate include
[0267] (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device,
[0268] (B) converting the values in the orthogonal coordinate system into values in another coordinate system,
[0269] (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and
[0270] (D) converting the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
[0271] By this information processing method, the value in the orthogonal coordinate system is once converted into the value in another coordinate system which is advantageous in terms of calculation load, and then, the sensitivity of the analog input device is reflected. Thus, in the operation device, the calculation load for reflecting the sensitivity set for the analog input device in the output value of the operation device based on the operation performed by the user on the analog input device can be reduced.
[0272] [Items 1-8]
[0273] A computer program for causing an operating apparatus including an analog input device and a storage unit configured to store setting information associated with the sensitivity of the analog input device to implement:
[0274] A function of generating operation information based on an operation performed by a user on the analog input device; and
[0275] a function of transmitting the operation information generated by the generating function to an external information processing device, wherein
[0276] The generated features include
[0277] (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device,
[0278] (B) converting the values in the orthogonal coordinate system into values in another coordinate system,
[0279] (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and
[0280] (D) converting the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
[0281] By this computer program, the value in the orthogonal coordinate system is once converted into the value in another coordinate system which is advantageous in terms of calculation load, and then, the sensitivity of the analog input device is reflected. Thus, in the operation information, the calculation load for reflecting the sensitivity set for the analog input device in the output value of the operation means based on the operation performed by the user on the analog input device can be reduced.
[0282] [Item 2-1]
[0283] An operating device, comprising:
[0284] simulated input devices operated by the user;
[0285] a storage unit configured to store a characteristic value measured at each of a plurality of correction points at which the movement amount of the analog input device is different;
[0286] an allocating unit configured to allocate an output value indicating a magnitude of the operation to each of the plurality of correction points; and
[0287] an output unit configured to output an output value to the outside when an operation is input to the analog input device, the output value corresponding to the operation input and based on the measured characteristic value and the characteristic value and the output value related to at least one of the correction points, wherein
[0288] The allocation unit allocates a new output value to each of the correction points outside the range of the dead zone when a dead zone is set for the analog input device so that the minimum to maximum values of the output values correspond to the movable range of the analog input device excluding the dead zone.
[0289] With this operation means, it is possible to maintain the linearity of an output value associated with a user's operation of an analog input device for which a dead band has been set.
[0290] [Item 2-2]
[0291] The operating device according to item 2-1, wherein:
[0292] For the analog input device, one or both of a first dead zone on the operation start side and a second dead zone on the operation end side can be set as the dead zone,
[0293] The allocation unit allocates the new output value to each of the correction points outside the range of the set first dead zone and the range of the set second dead zone so that the minimum to maximum values of the output value correspond to the movable range of the analog input device excluding the set first dead zone and the second dead zone.
[0294] With this operation device, even when a dead zone is set on one or both of the operation start side and the operation end side of the analog input device, the linearity of the output value associated with the user operation on the analog input device can be maintained.
[0295] [Item 2-3]
[0296] The operating device according to item 2-1 or 2-2, wherein
[0297] The allocating unit allocates the new output value to each of the correction points outside the range of the dead band every time the dead band is set for the analog input device.
[0298] With this operation means, it is possible to maintain the linearity of an output value associated with a user operation on an analog input device in response to setting or changing of a dead band.
[0299] [Item 2-4]
[0300] The operating device according to any one of items 2-1 to 2-3 further includes:
[0301] a limiting unit configured to limit a movable range of the analog input device, wherein
[0302] In a case where the movable range of the analog input device is limited and a dead zone is set for the analog input device, the allocation unit allocates the new output value to each of the correction points outside the range of the dead zone so that the minimum value to the maximum value of the output value correspond to the movable range excluding the dead zone from the limited movable range of the analog input device.
[0303] With this operation device, even when the movable range (eg, stroke range or rotation range) of the analog input device is limited, the linearity of the output value associated with the user's operation of the analog input device for which a dead zone has been set can be maintained.
[0304] [Item 2-5]
[0305] The operating device according to item 2-4, wherein:
[0306] The assigning unit assigns the new output value to each of the correction points outside the range of the dead zone every time an operation for limiting the movable range of the analog input device is input or every time the dead zone is set for the analog input device.
[0307] With this operation device, it is possible to maintain the linearity of an output value associated with a user operation on an analog input device in response to a change in the movable range or a change in the dead band of the analog input device.
[0308] [Item 2-6]
[0309] An operating device according to any one of items 2-1 to 2-5, wherein:
[0310] The allocating unit allocates the minimum value of the output value to a range from a movement start position of the analog input device to a predetermined correction point, or allocates the maximum value of the output value to a range from a predetermined correction point to a movement end position of the analog input device.
[0311] With this operating device, a play area is set at one or both of a movement start position (e.g., a release position or an initial position) and a movement end position (e.g., a full stroke position) of the analog input device, thereby improving the operability of the analog input device.
[0312] [Item 2-7]
[0313] The operating device according to any one of items 2-1 to 2-6 further includes:
[0314] a limiting unit configured to limit a movable range of the analog input device, wherein
[0315] The allocating unit allocates the minimum value of the output value to more correction points, or allocates the maximum value of the output value to more correction points, as the movable range of the analog input device becomes narrower.
[0316] With this operation device, even when the movable range (eg, stroke range or rotation range) of the analog input device is limited, the linearity of the output value associated with the user's operation of the analog input device for which a dead zone has been set can be maintained.
[0317] [Item 2-8]
[0318] An operating device, comprising:
[0319] simulated input devices operated by the user;
[0320] a storage unit configured to store a characteristic value measured at each of a plurality of correction points at which the movement amount of the analog input device is different; and
[0321] processor, where
[0322] the processor assigning an output value indicating a magnitude of the operation to each of the plurality of correction points,
[0323] In a case where an operation is input to the analog input device, the processor outputs an output value to the outside, the output value corresponding to the operation input and based on the measured characteristic value and the characteristic value and the output value associated with at least one of the correction points, and
[0324] When a dead zone is set for the analog input device, the processor assigns a new output value to each of the correction points outside the range of the dead zone so that a minimum value to a maximum value of the output value correspond to a movable range of the analog input device excluding the dead zone.
[0325] With this operation means, it is possible to maintain the linearity of an output value associated with a user's operation of an analog input device for which a dead band has been set.
[0326] [Item 2-9]
[0327] An information processing method performed by an operation apparatus, the operation apparatus including an analog input device operated by a user and a storage unit configured to store a characteristic value measured at each of a plurality of correction points at which the movement amount of the analog input device is different, the information processing method comprising:
[0328] a step of assigning an output value indicating the magnitude of the operation to each of the plurality of correction points; and
[0329] In the case where an operation is input to the analog input device, a step of outputting an output value to the outside, the output value corresponding to the operation input and based on the measured characteristic value and the characteristic value and the output value associated with at least one of the correction points, wherein
[0330] The allocating step includes: in the case where a dead zone is set for the analog input device, allocating a new output value to each of the correction points outside the range of the dead zone, so that the minimum value to the maximum value of the output value corresponds to the movable range of the analog input device excluding the dead zone.
[0331] With this information processing method, in the operation apparatus, the linearity of the output value associated with the user's operation of the analog input device for which the dead band has been set can be maintained.
[0332] [Item 2-10]
[0333] A computer program for causing an operation apparatus including an analog input device operated by a user and configured to store a characteristic value measured at each of a plurality of correction points at which the movement amount of the analog input device is different to achieve:
[0334] a function of assigning an output value indicating a magnitude of an operation to each of the plurality of correction points; and
[0335] A function of outputting an output value to the outside when an operation is input to the analog input device, the output value being input for the operation and based on the measured characteristic value and the characteristic value and the output value associated with at least one of the correction points, wherein
[0336] The assigned function includes: when a dead zone is set for the analog input device, assigning a new output value to each of the correction points outside the range of the dead zone, so that the minimum value to the maximum value of the output value corresponds to the movable range of the analog input device excluding the dead zone.
[0337] The computer program allows the operating means to maintain the linearity of an output value associated with a user's operation of an analog input device for which a dead band has been set.
[0338] [Industrial Applicability]
[0339] The present invention can be applied to an operating device, an information processing system, and the like.
[0340] [reference numerals list]
[0341] 1: Information Processing System
[0342] 6: Controller
[0343] 10: Information processing device
[0344] 77: Analog stick
[0345] 84: Trigger button
[0346] 87: Trigger stop
[0347] 102: Configuration file storage unit
[0348] 104: Calibration point information storage unit
[0349] 114: Operation information generation unit
[0350] 116: Operation information sending unit
[0351] 120: Allocation Unit
Claims
1. An operating device, comprising: Analog input devices; a storage unit configured to store setting information associated with the sensitivity of the analog input device; a generating unit configured to generate operation information based on an operation performed by a user on the simulation input device; as well as a sending unit configured to send the operation information generated by the generating unit to an external information processing device, wherein The generating unit is configured to (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device, (B) converting the values in the orthogonal coordinate system into values in another coordinate system, (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) converting the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
2. The operating device according to claim 1, wherein: The other coordinate system is a polar coordinate system.
3. The operating device according to claim 2, wherein: In (B), the generating unit derives the radius value of the polar coordinate system but does not derive the deflection angle value. In the (C), the generation unit converts the radius value of the polar coordinate system based on the sensitivity of the analog input device indicated by the setting information.
4. The operating device according to claim 1, wherein: In (A), the generation unit acquires a relatively high-precision value as a value in the orthogonal coordinate system based on the operation amount of the analog input device, and In (D), the generation unit converts the value in the other coordinate system obtained after conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system, and further converts the value in the orthogonal coordinate system obtained after the conversion into a relatively low-precision value.
5. The operating device according to claim 1, wherein: The generating unit generates a value ranging from a minimum value to a maximum value, the value being settable in the operation information, based on an operation within a range narrower by a predetermined offset than a physically possible range of the analog input device.
6. An operating device, comprising: Analog input devices; a storage unit configured to store setting information associated with the sensitivity of the analog input device; as well as processor, where The processor performs a process of generating operation information and a process of transmitting the generated operation information to an external information processing device based on an operation performed by a user on the analog input device, and The generated processing includes (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device, (B) converting the values in the orthogonal coordinate system into values in another coordinate system, (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) converting the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
7. An information processing method performed by an operating device, the operating device comprising an analog input device and a storage unit, the storage unit being configured to store setting information associated with the sensitivity of the analog input device, the information processing method comprising: a step of generating operation information based on an operation performed by a user on the analog input device; as well as a step of transmitting the operation information generated in the generating step to an external information processing device, wherein The steps to generate include (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device, (B) converting the values in the orthogonal coordinate system into values in another coordinate system, (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) converting the value in the other coordinate system obtained after conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
8. A computer program for causing an operating apparatus including an analog input device and a storage unit configured to store setting information associated with the sensitivity of the analog input device to implement: A function of generating operation information based on an operation performed by a user on the analog input device; and a function of transmitting the operation information generated by the generating function to an external information processing device, wherein The generated features include (A) acquiring a value in an orthogonal coordinate system based on the operation amount of the analog input device, (B) converting the values in the orthogonal coordinate system into values in another coordinate system, (C) converting the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) converting the value in the other coordinate system obtained after the conversion based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.