WO2024095731A1 - 操作装置、情報処理方法およびコンピュータプログラム - Google Patents
操作装置、情報処理方法およびコンピュータプログラム Download PDFInfo
- Publication number
- WO2024095731A1 WO2024095731A1 PCT/JP2023/037057 JP2023037057W WO2024095731A1 WO 2024095731 A1 WO2024095731 A1 WO 2024095731A1 JP 2023037057 W JP2023037057 W JP 2023037057W WO 2024095731 A1 WO2024095731 A1 WO 2024095731A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- value
- coordinate system
- input device
- analog input
- sensitivity
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 105
- 238000004590 computer program Methods 0.000 title claims description 14
- 238000003672 processing method Methods 0.000 title claims description 8
- 230000035945 sensitivity Effects 0.000 claims abstract description 136
- 238000006243 chemical reaction Methods 0.000 claims abstract description 15
- 238000003860 storage Methods 0.000 claims description 57
- 238000000034 method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000012937 correction Methods 0.000 description 85
- 230000006870 function Effects 0.000 description 43
- 238000004364 calculation method Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 21
- 238000010606 normalization Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 16
- 230000033001 locomotion Effects 0.000 description 11
- 230000006399 behavior Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 210000003811 finger Anatomy 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003825 pressing Methods 0.000 description 2
- 230000000284 resting effect Effects 0.000 description 2
- 239000003086 colorant Substances 0.000 description 1
- 230000002301 combined effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/24—Constructional details thereof, e.g. game controllers with detachable joystick handles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0338—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of limited linear or angular displacement of an operating part of the device from a neutral position, e.g. isotonic or isometric joysticks
Definitions
- the present invention relates to data processing technology, and in particular to an operating device, an information processing method, and a computer program.
- the present invention aims to provide a technology that reduces the calculation load required to reflect the sensitivity set in an analog input device in the output value of an operating device based on a user's operation of the analog input device.
- an operating device includes an analog input device, a storage unit that stores setting information related to the sensitivity of the analog input device, a generating unit that generates operating information based on a user's operation on the analog input device, and a transmitting unit that transmits the operating information generated by the generating unit to an external information processing device.
- the generating unit acquires a value in a Cartesian coordinate system based on the amount of operation of the analog input device, (B) converts the value in the Cartesian coordinate system into a value in another coordinate system, (C) converts the value in the other coordinate system based on the sensitivity of the analog input device indicated by the setting information, and (D) converts the value in the other coordinate system after conversion based on the sensitivity of the analog input device into a value in the Cartesian coordinate system to be set in the operating information.
- This device includes an analog input device, a storage unit that stores setting information related to the sensitivity of the analog input device, and a processor.
- the processor executes a process of generating operation information based on a user's operation on the analog input device, and a process of transmitting the generated operation information to an external information processing device, the generating process including: (A) acquiring a value in a Cartesian coordinate system based on the amount of operation of the analog input device; (B) converting the value in the Cartesian coordinate system into a value 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 after conversion based on the sensitivity of the analog input device into a value in the Cartesian coordinate system to be set in the operation information.
- an operation device including an analog input device and a storage unit that stores setting information related to the sensitivity of the analog input device executes the steps of: generating operation information based on a user's operation on the analog input device; and transmitting the operation information generated in the generating step to an external information processing device.
- the generating step includes: (A) acquiring a value in a Cartesian coordinate system based on the amount of operation of the analog input device; (B) converting the value in the Cartesian coordinate system into a value 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 after conversion based on the sensitivity of the analog input device into a value in the Cartesian coordinate system to be set in the operation information.
- any combination of the above components, and conversions of the present invention between a system, a computer program, and a recording medium storing a computer program are also valid aspects of the present invention.
- the present invention it is possible to reduce the calculation load required to reflect the sensitivity set in the analog input device in the output value of the operation device based on the user's operation of the analog input device.
- FIG. 1 is a diagram illustrating an information processing system according to an embodiment.
- FIG. 2 is a diagram showing the top surface of the controller.
- FIG. 2 is a diagram showing the rear side of the controller.
- FIG. 2 is a diagram illustrating a hardware configuration of a controller.
- FIG. 2 is a diagram illustrating a hardware configuration of an information processing device.
- FIG. 2 is a block diagram showing functional blocks of a controller.
- FIG. 2 is a block diagram showing functional blocks of the information processing device.
- FIG. 13 is a diagram illustrating an example of an analog stick setting screen.
- FIG. 13 is a diagram showing an example of a sensitivity curve.
- 4 is a diagram showing the relationship between the operation of an analog stick and an output value.
- FIG. 4 is a flowchart showing the operation of a controller.
- FIG. 4 is a flowchart showing the operation of a controller.
- FIG. 13 is a diagram showing an example of values in a polar coordinate system before sensitivity is applied.
- FIG. 13 is a diagram showing an example of values in a polar coordinate system after sensitivity is applied.
- 14(a), 14(b), and 14(c) show the relationship between the trigger stopper setting and the normalization range.
- 13 is a diagram showing the relationship between the setting of the trigger stopper and the dead zone.
- FIG. FIG. 13 is a diagram illustrating an example of a trigger setting screen.
- FIG. 13 is a diagram showing the relationship between a correction point and an output value of a controller.
- FIG. 13 is a diagram showing the relationship between a correction point and an output value of a controller.
- FIG. 13 is a diagram showing an example of assigning new output values to correction points.
- FIG. 13 is a diagram showing an example of assigning new output values to correction points.
- FIG. 1 shows an information processing system 1 according to an embodiment.
- the information processing system 1 includes an information processing device 10, a display device 4, and a controller 6.
- the information processing device 10 in the embodiment is a stationary game console.
- the information processing device 10 may be a computer, a tablet terminal, or a smartphone capable of executing applications such as games.
- the controller 6 is an operation device that accepts operations input by a user regarding information processing (e.g., a video game) executed by the information processing device 10.
- the controller 6 sequentially transmits operation information indicating operations input by the user to the information processing device 10.
- the controller 6 can also be called a game controller.
- the information processing device 10 and the controller 6 are connected by wire or wirelessly.
- the information processing device 10 in the embodiment is a device installed in a user's home or the like, but as a modified example, the functions of the information processing device 10 in the embodiment may be implemented in a server installed on a cloud that provides cloud services (cloud games, etc.) via the Internet or the like.
- the controller 6 may communicate with the server via a terminal or communication device installed in the user's home or the like.
- the information processing device 10 may transmit an output report, which is control data, to the controller 6 at a predetermined interval. Based on receiving the output report, the controller 6 may transmit an input report, which is notification data, to the information processing device 10.
- the display device 4 may be a television having a display for outputting images and a speaker for outputting sound, or it may be a computer display.
- the display device 4 may be connected to the information processing device 10 by a wired cable, or it may be connected wirelessly.
- the information processing device 10 receives operation information provided by the controller 6, it reflects the operation information in the processing of the system software and application software, and causes the display device 4 to display an image related to the processing result.
- the controller 6 of the embodiment stores setting information (hereinafter also referred to as “profile information” or simply “profile”) related to operations on the controller 6, customized by the user, in a non-volatile memory.
- the profile information includes setting information related to the behavior of the controller 6.
- the controller 6 is capable of storing multiple pieces of profile information, and is capable of switching the profile information to be applied in response to a user operation.
- the profile information may include predetermined setting values and the like related to operations on the controller 6.
- the profile information may also include setting information related to generating operation information to be input to the information processing device 10 based on an input operation on the controller 6.
- the profile information may also include information that is referenced when converting an analog value detected in response to an input operation on the controller 6 into a digital value.
- the profile information may also include setting information related to the strength of feedback (e.g., vibration, light emission, sound, etc.) in the controller 6.
- the profile information may also include setting information related to changing the image generation mode by the information processing device 10 or the image display mode by the display device 4 based on an operation input to the controller 6.
- the profile information may also include setting information related to changing the audio output mode from the information processing device 10 or headphones (not shown) based on an operation input to the controller 6.
- the profile information may also include setting information related to changing the chat mode based on an operation input to the controller 6.
- the profile information may also include setting information related to the microphone.
- the setting information related to the microphone may include, for example, on/off information for the noise cancellation function of the microphone, on/off information for the microphone mute function, microphone volume setting information, etc.
- the profile information in the embodiment includes a profile ID and name, button assignment information, sensitivity-related information for 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 on the controller 6.
- the button assignment information is information indicating the assignment status of various actions, commands, and functions to each button.
- the corresponding button information is identification information of the button on the controller 6 to which the profile information is associated, and is, for example, information indicating the circle button 72 and cross button 73 described below.
- the sensitivity-related information 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 specifies the magnitude of the operation recognized by the information processing device 10 relative to the magnitude of the operation (e.g., the amount of tilt or rotation) actually input by the user to the analog input device.
- the magnitude of the operation recognized by the information processing device 10 can also be said to be the magnitude of the operation input to data processing in the information processing device 10 (in other words, the application currently being executed).
- the sensitivity setting value may be the 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.
- the sensitivity-related information of the analog input device includes dead zone information of the analog input device, for example, a setting value related to the dead zone.
- a dead zone can also be called a dead band, and is a range in which operations input to an analog input device are not accepted. In other words, a dead zone is a range in which operations input to an analog input device are ignored.
- the setting value of the dead zone may be a value range of the tilt amount or rotation amount that corresponds to the dead zone.
- the profile information of the embodiment includes setting information of the analog input device of the controller 6. As described below, the controller 6 of the embodiment has an analog stick and a trigger button as analog input devices.
- the controller 6 acquires a value in a Cartesian coordinate system based on the amount of operation of the analog input device, and 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, but is not limited to a polar coordinate system as long as it is more advantageous than the Cartesian coordinate system in terms of calculation load.
- the controller 6 adjusts the converted value in the other coordinate system based on the sensitivity of the analog input device, and returns the adjusted value in the other coordinate system to a value in the Cartesian coordinate system, which is the format of the output value.
- the inventor also recognized that, as a second problem, when a user can set a dead zone of any range on an analog input device, it may not be possible to maintain the linearity of the output value in response to user operations on the analog input device using the correction points set during the manufacture of the controller 6.
- the controller 6 assigns new output values to each correction point outside the dead zone range so that the minimum to maximum output values correspond to the movable range of the analog input device excluding the dead zone.
- the controller 6 uses the new output values assigned to each correction point to generate output values according to user operations on the analog input device.
- FIG. 2 shows the top surface of the controller 6.
- the user operates the controller 6 by holding the left grip portion 78b with the left hand and the right grip portion 78a with the right hand.
- the top surface of the housing of the controller 6 is provided with input sections: directional buttons 71, right analog stick 77a, left analog stick 77b, and operation buttons 76.
- the directional buttons 71 are configured to allow input in eight directions, up, down, left, right, and diagonally, and in this embodiment include an up button 71a, a left button 71b, a down button 71c, and a right button 71d.
- the four types of operation buttons 76 are marked with different shapes in different colors in order to distinguish them from one another.
- the operation buttons 76 include a circle button 72, an x button 73, a square button 74, and a triangle button 75.
- the right analog stick 77a and the left analog stick 77b are also called control sticks, thumb sticks, or joysticks, and are used to input a direction and a tilt amount by being tilted.
- the amount of tilt can also be said to be the angle at which the right analog stick 77a or the left analog stick 77b is tilted.
- the right analog stick 77a and the left analog stick 77b also function as push-down buttons that sink downward when pressed by the user and return to their original position when the user releases their hand.
- the right analog stick 77a and the left analog stick 77b are also referred to collectively as the "analog stick 77".
- the operation button 76, the directional button 71, and the analog stick 77 are used to operate applications (e.g., games) executed on the information processing device 10.
- a touchpad 79 is provided on the flat area between the directional buttons 71 and the operation buttons 76 on the top surface of the housing. In addition to detecting touches by the user's finger, the touchpad 79 also functions as a push-down button that sinks downward when pressed by the user and returns to its original position when the user releases his/her hand.
- a speaker 89 and a microphone 91 are also provided on the top surface of the housing.
- a home button 80 is provided between the right analog stick 77a and the left analog stick 77b.
- the home button 80 is used to power on the controller 6 and the information processing device 10, and at the same time activate a communication function for wirelessly connecting 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 home screen.
- the menu screen or home screen is a screen that allows the user to select functions or applications to be executed by the information processing device 10.
- the CREATE button 81 is provided on the left side of the touchpad 79.
- the OPTIONS button 82 is provided on the right side of the touchpad 79.
- the CREATE button 81 and the OPTIONS button 82 are used to input instructions from the user to the OS (Operating System) or system software in the information processing device 10.
- the CREATE button 81 and the OPTIONS button 82 are buttons used to call up (operate) functions of the OS (Operating System) or system software in the information processing device 10.
- the CREATE button 81 and the OPTIONS button 82 may both be formed as push buttons.
- the light-emitting unit 86 is provided on the lower edge of the touchpad 79.
- the light-emitting unit 86 may include an LED.
- the light-emitting unit 86 includes multiple lamps (five lamps in the example of FIG. 2), and displays information related to a controller number that identifies the controller and information related to the state of the controller 6 based on the lighting state of the multiple lamps (i.e., a combination of on and off states).
- the light-emitting unit 86 is controlled to a lighting state specified by an application running on the information processing device 10. Furthermore, when the profile information to be applied to operations on the controller 6 is switched, the light-emitting unit 86 is controlled for a short time to a predetermined lighting state that indicates that the profile information of the controller 6 has been switched.
- a vertically long light-emitting unit 85 is provided on the left and right sides of the touch pad 79.
- the light-emitting unit 85 has red (R), green (G), and blue (B) LEDs, and lights up according to the light emission color information transmitted from the information processing device 10.
- the right function button 88a and the left function button 88b are buttons that change or expand the functions of other buttons.
- the profile information applied to the operation on the controller 6 is switched to the profile information associated with the type of operation button 76 operated together with the function button 88.
- the right function button 88a and the left function button 88b may be completely equivalent in terms of functionality. In that case, the same function is provided regardless of whether the left or right button is operated.
- FIG. 3 shows the rear side of the controller 6.
- a touchpad 79 is bent and extended from the top surface of the housing of the controller 6 on the upper side of the rear side of the housing.
- an R1 button 83a, an R2 button 84a, an L1 button 83b, an L2 button 84b, a right trigger stopper 87a, and a left trigger stopper 87b are provided at symmetrical positions in the longitudinal direction.
- the R1 button 83a and the R2 button 84a are operated by the index finger and middle finger of the user's right hand, respectively
- the L1 button 83b and the L2 button 84b are operated by the index finger and middle finger of the user's left hand, respectively.
- 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 rotationally supported trigger buttons.
- the R2 button 84a and L2 button 84b are capable of analog output, just like the right analog stick 77a and left analog stick 77b, and output a value according to the amount of rotation.
- the R2 button 84a and L2 button 84b are collectively referred to as trigger buttons 84.
- the right trigger stopper 87a is a member that adjusts or limits the rotation range of the R2 button 84a.
- the left trigger stopper 87b is a member that adjusts or limits the rotation range of the L2 button 84b.
- the right trigger stopper 87a and the left trigger stopper 87b are collectively referred to as trigger stoppers 87.
- the trigger stopper 87 can also be considered a limiting part that limits the movable range (which can also be considered the tiltable range or rotatable range) of the analog input device.
- Each of the right trigger stopper 87a and the left trigger stopper 87b can be set to one of the first, second, or third stages. 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.
- the controller 6 is configured with various input sections (various buttons, sticks, etc.).
- the user inputs operations into the input sections of the controller 6 while looking at the menu screen and game screen displayed on the display device 4.
- FIG. 4 shows the hardware configuration related to this embodiment of the controller 6.
- the controller 6 includes a vibrator 90, a memory unit 92, a communication control unit 94, and a processor 96.
- the processor 96 executes various data processing operations and also controls the operation of various hardware components.
- the processor 96 may include a CPU (Central Processing Unit), memory, and a SoC (System on a chip).
- the vibrator 90 vibrates based on a control signal from the processor 96, thereby providing the user with a tactile stimulus.
- the vibrator 90 may include a voice coil motor (VCM).
- VCM voice coil motor
- the vibrator 90 and the light-emitting unit 86 function as a notification device that notifies the user of various types of information.
- the vibrator 90 notifies the user through tactile information, and the light-emitting unit 86 notifies the user through visual information.
- the storage unit 92 stores data 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 variant, the communication control unit 94 may perform wired communication with the information processing device 10.
- FIG. 5 shows the hardware configuration related to this embodiment of the information processing device 10.
- the information processing device 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 module 34, a flash memory 36, a wireless communication module 38, a wired communication module 40, a subsystem 50, and a main system 60.
- the main system 60 comprises a main CPU, a memory and memory controller serving as the main storage device, a GPU (Graphics Processing Unit), etc.
- the GPU is primarily used for the calculation processing of the game program. These functions may be configured as a SoC (System on a chip) and formed on a single chip.
- the main CPU has the function of starting up the OS and, in the environment provided by the OS, executing applications installed in the storage unit (e.g., flash memory 36 or an auxiliary storage device not shown).
- the main system 60 also has the function of controlling the display content on the display device 4.
- the subsystem 50 includes a sub-CPU, a memory serving as a main storage device, a memory controller, and the like, but does not include a GPU.
- the number of circuit gates of the sub-CPU is less than that of the main CPU, and the operating power consumption of the sub-CPU is less than that of the main CPU.
- the sub-CPU operates while the main CPU is in standby mode, and its processing functions are limited in order to keep power consumption low.
- the sub-CPU and memory may be formed on separate chips.
- the main power button 20 is an input unit through which the user inputs operations, is provided on the front of the housing of the information processing device 10, and is operated to turn on or off the power supply to the main system 60 of the information processing device 10.
- the main power when the main power is on, it means that the main system 60 is in an active state, and when the main power is off, it means that the main system 60 is in a standby state.
- the power ON LED 21 lights up when the main power button 20 is on, and the standby LED 22 lights up when the main power button 20 is off.
- the system controller 24 detects when the user presses the main power button 20. When the main power button 20 is pressed while the main power is in the OFF state, the system controller 24 obtains the pressing operation as an "ON instruction.” On the other hand, when the main power button 20 is pressed while the main power is in the ON state, the system controller 24 obtains the pressing operation as an "OFF instruction.” The system controller 24 may obtain the same power ON/OFF instructions as above from the operation input from the controller 6.
- the sub-CPU While the main CPU has the function of executing game programs installed in a specified memory unit or ROM medium 44, the sub-CPU does not have such functions. However, the sub-CPU has the function of accessing the memory unit and the function of sending and receiving data with external devices. The sub-CPU is configured with only these limited processing functions, and therefore can operate with less power consumption compared to the main CPU. These functions of the sub-CPU are executed when the main CPU is in standby mode.
- the clock 26 is a real-time clock that generates current date and time information and supplies it to the system controller 24, the subsystem 50, and the main system 60.
- the device controller 30 is configured as an LSI (Large-Scale Integrated Circuit) that transfers information between devices like a south bridge. As shown in the figure, devices such as the system controller 24, media drive 32, USB module 34, flash memory 36, wireless communication module 38, wired communication module 40, subsystem 50, and main system 60 are connected to the device controller 30.
- the device controller 30 absorbs differences in the electrical characteristics and data transfer speeds of each device and controls the timing of data transfer.
- the media drive 32 is a drive device that operates by mounting a ROM medium 44 on which application software such as games and license information are recorded, and reads programs, data, and the like from the ROM medium 44.
- the ROM medium 44 is a read-only recording medium such as an optical disk, magneto-optical disk, or Blu-ray disk.
- the USB module 34 is a module that connects to an external device via a USB cable.
- the flash memory 36 is an auxiliary storage device that constitutes the internal storage.
- the wireless communication module 38 wirelessly communicates with, for example, the controller 6 using a communication protocol such as Bluetooth (trademark or registered trademark) protocol or IEEE802.11 protocol.
- the wired communication module 40 communicates with an external device via a wired connection, for example, to the Internet, a server, etc. via an access point (not shown).
- FIG. 6 is a block diagram showing the functional blocks of the controller 6.
- Each block shown in the block diagram in this specification can be realized in hardware terms by elements such as a computer processor, CPU, and memory, electronic circuits, and mechanical devices, and in software terms by computer programs loaded into memory, but here we have depicted functional blocks realized by the cooperation of these. Therefore, it will be understood by those skilled in the art that these functional blocks can be realized in various ways by combining hardware and software.
- the controller 6 includes a storage unit 100 and a processing unit 110.
- the storage unit 100 corresponds to the storage unit 92 in FIG. 4, and stores data that is referenced or updated by the processing unit 110.
- the storage unit 100 includes a profile storage unit 102 and a correction point information storage unit 104.
- the profile storage unit 102 includes a non-volatile memory that stores multiple pieces of profile information.
- the profile storage unit 102 stores each of the multiple pieces of profile information in association with a different slot and operation button 76.
- the profile storage unit 102 stores up to four pieces of profile information in association with four slots (slot 1 to slot 4) and four operation buttons 76 (circle button 72, cross button 73, square button 74, and triangle button 75).
- the correction point information storage unit 104 stores correction point information, which is information about multiple 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 removed 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 has been rotated to the upper limit of its physical range of motion.
- the multiple correction points can be thought of as multiple positions within the rotatable range of the trigger button 84.
- the multiple correction points also differ from one another in the amount of rotation of the trigger button 84 (which can also be thought of as the amount of operation of the trigger button 84 by the user).
- the correction point information is information measured when the controller 6 is manufactured, and includes pairs of characteristic values (e.g., voltage values) and output values (values indicating the magnitude of operation) for each of the multiple correction points.
- the processing unit 110 includes an operation detection unit 112, an operation information generation unit 114, an operation information transmission unit 116, a profile update unit 118, and an allocation unit 120.
- a computer program e.g., firmware
- the processor 96 of the controller 6 may perform at least some of these functions by reading this computer program into the main memory and executing it.
- the operation detection unit 112 detects user operations input to the controller 6.
- User operations include operations to move the analog input device, and specifically include operations to tilt the analog stick 77 and operations to rotate the trigger button 84.
- the operation detection unit 112 performs analog-to-digital conversion of the output from the analog input device related to the user's operation of the analog input device at a predetermined sampling rate and obtains the output value.
- the operation detection unit 112 detects analog values (e.g., voltage values) associated with operations on the analog input device, performs analog-to-digital conversion, and passes the converted digital values (hereinafter also referred to as "AD values") to the operation information generation unit 114.
- AD values converted digital values
- the operation information generating unit 114 generates operation information related to the user's operation on the controller 6 detected by the operation detecting unit 112 (e.g., the AD value output from the operation detecting unit 112). In particular, in the embodiment, the operation information generating unit 114 generates operation information related to the user's operation on the analog stick 77 and the trigger button 84.
- the operation information transmission unit 116 transmits the operation information generated by the operation information generation unit 114 to the information processing device 10.
- the operation information transmission unit 116 may transmit the operation information to the information processing device 10 in a form in which the operation information is included in an input report transmitted from the controller 6 to the information processing device 10.
- the profile update unit 118 updates the profile information of the controller 6 stored in the profile storage unit 102 in accordance with a profile update instruction sent from the information processing device 10.
- the profile update instruction includes, for example, an instruction to update the settings related to the sensitivity characteristics and dead zone of the analog stick 77. It also includes an instruction to update the settings related to the dead zone of the trigger button 84.
- the allocation unit 120 dynamically allocates an output value indicating the magnitude of the operation to each of the multiple correction points stored in the correction point information storage unit 104 based on the updated profile information.
- FIG. 7 is a block diagram showing 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 executes various information processing operations.
- the processing unit 210 is implemented by a processor of the information processing device 10, and may be implemented by the main system 60 shown in FIG. 5, for example.
- the storage unit 200 stores data referenced or updated by the processing unit 210.
- the storage unit 200 may include the flash memory 36 and ROM medium 44 shown in FIG. 5.
- the storage unit 200 includes an application storage unit 202 and a profile storage unit 204.
- the application storage unit 202 stores data of applications (e.g., game programs) that can be executed by the information processing device 10.
- the profile storage unit 204 stores the profile information of the controller 6 notified from the controller 6. Similar to the profile storage unit 102 of the controller 6, the profile storage unit 204 stores up to four pieces of profile information in association with four slots and four operation buttons 76 (circle button 72, cross button 73, square button 74, and triangle button 75). The profile storage unit 204 also stores information related to the currently applied profile of the controller 6 notified from the controller 6. Specifically, it stores which of slots 1 to 4 the profile corresponding to is the applied profile.
- the processing unit 210 includes a profile information acquisition unit 212, an operation information acceptance 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 that implements at least some of these functions 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
- the profile information acquisition unit 212 acquires information about multiple user-selectable profiles stored in the controller 6 connected to the information processing device 10 from the controller 6.
- the profile information acquisition unit 212 stores the information about multiple user-selectable profiles in the profile storage unit 204.
- the operation information receiving unit 214 receives user operation information for the controller 6 transmitted from the controller 6 connected to the information processing device 10.
- the application execution unit 216 executes applications (e.g., game programs and system software) stored in the application storage unit 202. For example, the application execution unit 216 progresses a game in accordance with operation information of the user on the controller 6, and sequentially generates images (hereinafter also referred to as "game screens") that show the results of the game progress.
- applications e.g., game programs and system software
- game screens images
- the setting screen generation unit 218 generates data for a profile setting screen for the controller 6 based on user operation information for the controller 6 while the application is running (e.g., while a game screen is being displayed).
- the profile setting screen in the embodiment includes a setting screen for an analog input device, and specifically includes a setting screen for the analog stick 77 and a setting screen for the trigger button 84.
- the display control unit 220 controls the display of information and images on the display device 4. For example, the display control unit 220 outputs game screen data generated by the application execution unit 216 to the display device 4, thereby causing the game screen to be displayed on the display device 4.
- the display control unit 224 also outputs setting screen data generated by the setting screen generation unit 218 to the display device 4, thereby causing the setting screen to be displayed on the display device 4.
- the profile update instruction unit 222 transmits 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 may transmit the profile update instruction to the information processing device 10 by including the profile update instruction in an output report transmitted from the information processing device 10 to the controller 6 at a predetermined interval.
- the setting screen generation unit 218 of the information processing device 10 generates an analog stick setting screen in response to a user operation input to the controller 6.
- the display control unit 220 of the information processing device 10 causes the analog stick setting screen to be displayed on the display device 4.
- FIG. 8 shows an example of an analog stick setting screen 130.
- the analog stick setting screen 130 in FIG. 8 shows content 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 target selection field 132, a sensitivity pattern selection field 134, a sensitivity curve adjustment gauge 136, a dead zone adjustment gauge 138, a sensitivity curve image 140, and a setting status image 148.
- the setting target selection field 132 is a screen element for selecting the type of analog stick 77 (in this embodiment, the right analog stick 77a or the left analog stick 77b) to be set on the analog stick setting screen 130. In FIG. 11, the left analog stick 77b is selected.
- the sensitivity pattern selection field 134 is a screen element for selecting a specific pattern from among a number of predetermined sensitivity curve patterns.
- the sensitivity curve is a curve (including a straight line) that shows the relationship between the tilt angle of the analog stick 77 and the output value.
- the sensitivity curve is a curve that associates the magnitude of the operation input by the user to the analog stick 77 (hereinafter also referred to as the "user input operation amount") with the magnitude of the operation recognized in the data processing of the information processing device 10 (hereinafter also referred to as the "system recognized operation amount").
- the user input operation amount can also be referred to as the actual tilt amount or tilt angle of the analog stick 77.
- the system recognized operation amount can also be referred to as the tilt amount or tilt angle of the analog stick 77 that is input to the data processing of the information processing device 10 (in this embodiment, the application execution unit 216).
- the multiple sensitivity curve patterns may include linear, delay, and quick.
- Linear is a pattern in which the system-recognized operation amount increases in proportion to an increase in the user input operation amount, and is, for example, a default pattern in which the slope of the sensitivity curve is constant.
- Delay is a pattern in which the system-recognized operation amount increases slowly while the user input operation amount is small, and as the user input operation amount increases, the system-recognized operation amount also increases significantly.
- Quick is a pattern in which the system-recognized operation amount increases rapidly even when the user input operation amount is small, and the system-recognized operation amount quickly reaches its upper limit.
- the sensitivity curve adjustment gauge 136 is a screen element that adjusts the correspondence between the amount of user input operation on the analog stick 77 and the amount of operation recognized by the system, and more specifically, is a screen element that adjusts the slope or curvature of the sensitivity curve.
- the sensitivity curve adjustment gauge 136 includes a slider that indicates the sensitivity value of the analog stick 77.
- the dead zone adjustment gauge 138 is a screen element that adjusts the range of the dead zone of the analog stick 77 (in other words, the size of the dead zone).
- the dead zone adjustment gauge 138 includes a slider that indicates the value of the dead zone of the analog stick 77.
- the analog stick setting screen 130 includes two images showing both the sensitivity and dead zone of the analog stick 77 on a common scale (in other words, a common standard).
- One image is a sensitivity curve image 140 that shows the sensitivity and dead zone along an axis related to the magnitude of the operation input by the user to the analog stick 77.
- the other image is a setting state image 148 that shows the sensitivity and dead zone according to the distance from the center based on the magnitude of the operation input by the user to the analog stick 77.
- the setting screen generation unit 218 places the sensitivity curve image 140 and the setting state image 148 on the analog stick setting screen 130.
- the sensitivity curve image 140 includes objects (initial sensitivity curve 146 and adjusted sensitivity curve 144) that indicate sensitivity curves arranged in a graph area with the horizontal axis representing the magnitude of the operation input by the user to the analog stick 77 and the vertical axis representing the magnitude of the operation recognized by the information processing device 10.
- the sensitivity curve can also be thought of as a graph that shows the relationship between the input value before adjustment that reflects the sensitivity (value on the horizontal axis) and the output value after adjustment that reflects the sensitivity (value on the vertical axis).
- the initial sensitivity curve 146 indicates the initial value of the sensitivity curve defined by the pattern selected in the sensitivity pattern selection field 134.
- the adjusted sensitivity curve 144 indicates the sensitivity curve after adjustment in the sensitivity curve adjustment gauge 136.
- the sensitivity curve image 140 also includes an object (dead zone 142) that indicates the range of the dead zone arranged along the horizontal axis of the graph area.
- the dead zone 142 in FIG. 6 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.
- the setting state image 148 includes an image showing the input part to be set (left analog stick 77b in FIG. 8), with information relating to sensitivity and dead zones superimposed on the image.
- the setting state image 148 includes a plurality of concentric circles (level lines 150) centered on the resting position of the analog stick 77 (in other words, the initial position) and showing the magnitude of operation from that resting position in multiple stages.
- the plurality of level lines 150 may include three level lines 150 showing 100%, 75%, and 50% of the maximum value of the operation magnitude, based on the maximum value of the operation magnitude.
- the level lines 150 can also be considered contour lines relating to the magnitude of operation.
- the setting state image 148 has a dead zone 152, which is a first object indicating a dead zone.
- the dead zone 152 indicates the range of the dead zone by the distance from the rest position of the analog stick 77, i.e., the center of the circle indicated by the level line 150.
- the setting state image 148 also has an adjusted operation amount indicator 154 and an unadjusted operation amount indicator 156. Both the adjusted operation amount indicator 154 and the unadjusted operation amount indicator 156 indicate the magnitude of the operation on the analog stick 77 by the distance from the center. Furthermore, 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 center.
- the adjusted operation amount indicator 154 indicates a value related to a user's operation input to the analog stick 77, adjusted using the profile information being adjusted in an adjustment mode (e.g., left analog stick adjustment mode). In other words, it indicates the operation amount of the analog stick 77 recognized by the information processing device 10 when the profile information being adjusted is applied to the controller 6.
- the profile information being adjusted includes, for example, a sensitivity setting value defined by a sensitivity curve adjusted by the sensitivity curve adjustment gauge 136 and the dead zone adjustment gauge 138.
- the unadjusted operation amount indicator 156 indicates a value related to the user's operation input to the analog stick 77 to which the profile information being adjusted in adjustment mode has not been applied. Specifically, the unadjusted operation amount indicator 156 indicates a value derived using the user's operation amount input to the analog stick 77 and a linear sensitivity curve, regardless of the profile information being adjusted in adjustment mode. The value indicated by the unadjusted operation amount indicator 156 is the default value of the operation amount of the analog stick 77 recognized by the information processing device 10 based on the user's operation amount input to the analog stick 77. Note that although the term "unadjusted" is used, the analog stick 77 has already been adjusted when the controller 6 is manufactured at the factory or when it is shipped.
- the setting state image 148 is an image that represents the sensitivity of the analog stick 77 based on the sensitivity curve that the user has set on the analog stick setting screen 130. Specifically, the setting state image 148 is an image that represents the relationship between the adjusted value using the profile information being adjusted, as indicated by the adjusted operation amount indicator 154, and the value to which the profile information being adjusted has not yet been applied, as indicated by the unadjusted operation amount indicator 156.
- the user selects a desired pattern from among a number of predetermined sensitivity curve patterns in the sensitivity pattern selection field 134.
- the setting screen generation unit 218 places an initial sensitivity curve 146 determined by the delay pattern in the sensitivity curve image 140.
- the setting screen generation unit 218 also places an adjusted sensitivity curve 144 that reflects the settings of the sensitivity curve adjustment gauge 136 and the dead zone adjustment gauge 138 in the sensitivity curve image 140.
- the user also adjusts and updates the sensitivity curve (including the dead zone) of the analog stick 77 while checking the setting state image 148 on the analog stick setting screen 130.
- the profile update instruction unit 222 of the information processing device 10 transmits to the controller 6 a profile update instruction including information on the apex of a line graph (e.g., the adjusted sensitivity curve 144 in FIG. 8) representing the sensitivity characteristics of the analog stick 77 specified on the analog stick setting screen 130.
- the profile update unit 118 of the controller 6 stores the information on the apex of the line graph representing the sensitivity characteristics of the analog stick 77 in the profile storage unit 102.
- Fig. 9 shows an example of a sensitivity curve.
- sensitivity information of the analog stick 77 including information on vertices 1, 2, 3, and 4 of the adjusted sensitivity curve 144 is stored in the profile storage unit 102.
- An example of information on each vertex of the adjusted sensitivity curve 144 is shown below.
- r Dz is a value indicating the range of the dead zone, that is, the range of 0 ⁇ input value ⁇ r Dz is the dead zone.
- the information of the vertex 4 may be a fixed value.
- a physical movable range 170 indicated by a solid circle indicates the range in which the analog stick 77 can actually be moved.
- a return position 174 can also be called a center return position, and is the position of the analog stick 77 when the finger is off the analog stick 77 (i.e., when the analog stick 77 is not being operated).
- the controller 6 When the controller 6 is manufactured, the minimum (X min and Y min ) and maximum (X max and Y max ) values of the AD value in the physical movable range 170, as well as the AD value at the return position 174 (X center and Y center ) are measured.
- a predetermined percentage (4% in this embodiment) of the distance from the return position 174 to the AD maximum value ( Xmax and Ymax ) based on the physical movable range 170 is set as an offset value, and a position ( X'max and Y'max ) on the inside by the offset value from the AD maximum value is set as the maximum output value from the controller 6.
- a predetermined percentage (4% in this embodiment) of the distance from the return position 174 to the AD minimum value ( Xmin and Ymin ) based on the physical movable range 170 is set as an offset value, and a position ( X'min and Y'min ) on the inside by the offset value from the AD minimum value is set as the minimum output value from the controller 6.
- the range defined by (X' max and Y' max ) and (X' min and Y' min ) is taken as a logically movable range 172.
- the output value from the controller 6 is normalized in the range of 0 to 255.
- the normalized output value changes within the logically movable range 172.
- the output value in the X-axis direction is calculated according to the AD value of the X-axis in the physical movable range 170 as follows. (1) If the value is equal to or less than X'min , the output value is set to 0. (2) In the case of X' min to X center , the output value is calculated by linear interpolation so that the output value falls within the range of 0 to 128. (3) In the case of X center to X′ max , the output value is calculated by linear interpolation so that the output value falls within the range of 128 to 255. (4) If the value is equal to or greater than X'max , the output value is set to 255.
- the output value in the Y-axis direction is calculated according to the AD value of the Y-axis in the physical movable range 170 as follows. (1) If the value is equal to or less than Y'min , the output value is set to 0. (2) In the case of Y' min to Y center , the output value is calculated by linear interpolation so that the output value falls within the range of 0 to 128. (3) In the case of Y center to Y′ max , the output value is calculated by linear interpolation so that the output value falls within the range of 128 to 255. (4) If Y' is equal to or greater than max , the output value is set to 255.
- the user can set a sensitivity curve of any shape (adjusted sensitivity curve 144) that may include a dead zone.
- the operation information generating unit 114 of the controller 6 needs to reflect the setting value of the sensitivity curve of any shape in the output value of the analog stick 77.
- FIG. 11 is a flowchart showing the operation of the controller 6.
- the operation detection unit 112 acquires an AD value corresponding to the amount of operation (in other words, the amount of tilt of the analog stick 77) (S10).
- the operation information generation unit 114 acquires values (x, y) of a virtual Cartesian coordinate system with 0 as the center, based on the AD value acquired in S10 (S11). To prevent a decrease in calculation accuracy in the later stages, a relatively high-precision value is acquired in S11; specifically, the numerical range is set to -32767 to 32767.
- the operation information generating unit 114 converts the value (x, y) in the Cartesian coordinate system acquired in S11 into a value (r, ⁇ ) in the polar coordinate system (S12).
- the operation information generating unit 114 derives a radial value r based on Equation 1.
- the operation information generating unit 114 does not derive the argument ⁇ , but derives tan 2 ⁇ and 1/tan 2 ⁇ .
- the operation information generating unit 114 converts the radial value r calculated in S12 into a value r' that reflects the sensitivity set for the analog stick 77, based on the sensitivity curve information for the analog stick 77 indicated by the profile information stored in the profile storage unit 102 (S13).
- FIG. 12 shows an example of values (r, ⁇ ) in the polar coordinate system before the sensitivity is applied
- FIG. 13 shows an example of values (r', ⁇ ) in the polar coordinate system after the sensitivity is applied.
- the physical movable range 170 indicates the physical movable range of the analog stick 77.
- the logical movable range 176 corresponds to the logical movable range 172 in FIG. 10, and indicates the logical value range related to the radial value r.
- the logical movable range 176 is a circle that is smaller than the physical movable range 170 by a predetermined offset, and in this embodiment, it is a circle with a radius that is 4% smaller than the physical movable range 170.
- r'2 in FIG. 13 is a value corresponding to r2 in FIG. 12 on the adjusted sensitivity curve 144.
- r'Max in FIG. 13 is a value corresponding to rMax in FIG. 12 on the adjusted sensitivity curve 144.
- the operation information generator 114 receives the radial value r found in S12 as an input, and derives a corresponding output value r' by linearly interpolating between the vertices of the adjusted sensitivity curve 144.
- the operation information generating unit 114 converts the value (r', ⁇ ) in the polar coordinate system after the radial value conversion into a value (x', y') in the Cartesian coordinate system (S14).
- the operation information generating unit 114 derives the values of x' (written as x in Equation 4) and y' (written as y in Equation 5) based on Equation 4 and Equation 5.
- the signs of x' and y' are the same as the signs of x and y before conversion to the polar coordinate system.
- the operation information generating unit 114 converts the values (x', y') of a provisional orthogonal coordinate system with a central value of 0 into output values (x out , y out ) of 0 to 128 to 255, which are in a prescribed format as operation information (S15).
- the output values (x out , y out ) are values of an orthogonal coordinate system with a lower limit of 0, a central value of 128, and an upper limit of 255, as shown in Fig. 10.
- the value range of (x', y') is high precision (-32767 to 32767) like (x, y), while the value range of the output values (x out , y out ) is set to low precision (0 to 255).
- the operation information generation unit 114 generates operation information including the above-mentioned output values (x out , y out ) as operation information based on a user operation on the analog stick 77.
- the operation information transmission unit 116 transmits the operation information generated by the operation information generation unit 114 to the information processing device 10 (S16).
- the application execution unit 216 of the information processing device 10 executes an application using output values (x out , y out ) based on the user's operation, and, for example, reflects the output values (x out , y out ) in the movement of a game character. Also, 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 of the analog stick setting screen 130 at a position based on the output values (x out , y out ).
- the values in the Cartesian coordinate system based on the user's operation on the analog input device are first converted to values in a polar coordinate system, and the sensitivity characteristics of the analog input device are reflected in the converted values. This reduces the calculation load for reflecting the sensitivity set in the analog input device in the output value of the controller 6 based on the user's operation on the analog input device.
- the controller 6 As described in relation to FIG. 10, the controller 6 generates a value (a value between 0 and 255) ranging from the minimum value to the maximum value that can be set in the operation information based on an operation within a range (logical movement range 176) that is narrower by a predetermined offset than the physical movement range 170 of the analog stick 77. This makes it possible to maintain a predetermined range of output values (minimum value to maximum value) even if the physical movement range of the analog stick 77 moves by the offset over time.
- the first feature of the information processing system 1 is not limited to the analog stick 77, and can also be applied to other types of analog input devices, such as the trigger button 84.
- Figures 14(a), 14(b), and 14(c) show the relationship between the setting of the trigger stopper 87 and the normalization range 180.
- Figure 14(a) shows the relationship when the trigger stopper 87 is set to the first stage (the trigger button 84 can be rotated by 26 degrees).
- Figure 14(b) shows the relationship when the trigger stopper 87 is set to the second stage (the trigger button 84 can be rotated by 14 degrees).
- Figure 14(c) shows the relationship when the trigger stopper 87 is set to the third stage (the trigger button 84 can be rotated by 10 degrees).
- the controller 6 When the controller 6 is manufactured, multiple positions between the released state and the full stroke state of the trigger button 84 are set as correction points, and the characteristic value (in this embodiment, the AD value) is measured at each correction point.
- the multiple correction points include nine correction points, from correction point P0 at the release position to correction point P8 at the full stroke position.
- Correction point P8 is also the position where a physical stopper is set. P0 to P8 are set at equal intervals. Note that when the controller 6 is manufactured, nine correction points are set in each of the first, second, and third stages of the trigger stopper 87, and the AD value is measured at each correction point.
- Normalization range 180 is the range in which output values are normalized to values ranging from 0 to 255. In the first stage of trigger stopper 87, normalization range 180 is P2 to P7. In the second stage of trigger stopper 87, normalization range 180 is P2 to P6. In the third stage of trigger stopper 87, normalization range 180 is P3 to P5. In this way, the smaller the rotational angle of trigger button 84 is restricted, the narrower normalization range 180 becomes.
- the release side offset 182 is a play area provided on the P0 side, which is realized by hardware.
- the full stroke side offset 184 is a play area provided on the P8 side, which is realized by hardware.
- the output value from the controller 6 does not change with the release side offset 182 and the full stroke side offset 184. For example, if the tilt amount of the analog stick 77 is within the range of the release side offset 182, the output value will be a constant value of "0". Also, if the tilt amount of the analog stick 77 is within the range of the full stroke side offset 184, the output value will be a constant value of "255".
- Figure 15 shows the relationship between the setting of the trigger stopper 87 and the dead zone.
- the dead zone is set on the analog stick setting screen 130, independent of the setting of the trigger stopper 87. If the dead zone is not set, the range of possible rotation excluding the release side offset 182 and full stroke side offset 184 becomes the normalized range 180, within which values from 0 to 255 are output.
- the release side dead zone 186 is a dead zone provided on the release side (P0 side)
- the full stroke side dead zone 188 is a dead zone provided on the full stroke side (P8 side).
- FIG. 16 shows an example of a trigger setting screen 300.
- the trigger setting screen 300 in FIG. 16 includes content for setting the dead zones of the trigger buttons 84 (R2 button 84a and L2 button 84b) of the controller 6.
- 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.
- the R2 dead zone setting area 302a is an area for inputting a setting value for the dead zone of the R2 button 84a
- the L2 dead zone setting area 302b is an area for inputting a setting value for the dead zone of the L2 button 84b.
- the start point and end point of the effective range are specified as a percentage in the R2 dead zone setting area 302a and the L2 dead zone setting area 302b.
- 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.
- no dead zone is set for the R2 button 84a, and the entire input range is specified as the valid range.
- the L2 button 84b 50% on the starting point side is specified as the dead zone (release side dead zone 186), and 50% on the ending point side is specified as the valid range.
- the L2 behavior confirmation area 304b is an area where the magnitude of the system input value corresponding to the rotation operation of the L2 button 84b is displayed, and an operation amount indicator 306 showing the operation amount (system input value) of the L2 button 84b is displayed.
- the R2 behavior confirmation area 304a may also display an operation amount indicator 306 showing the operation amount (system input value) of the R2 button 84a corresponding to the rotation operation of the R2 button 84a.
- the parts that fall into the dead zone are displayed in a relatively low brightness
- the parts that fall into the effective range are displayed in a relatively high brightness.
- the user inputs a setting value for 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 for 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 transmits a 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 to the controller 6.
- the profile update unit 118 of the controller 6 reflects the setting value of the dead zone transmitted from the information processing device 10 in the profile information in the profile storage unit 102.
- FIG. 17 shows the relationship between the correction points and the output values of the controller 6.
- FIG. 17 shows the relationship when the trigger stopper 87 is set to the first stage and the dead zone is not set.
- the allocation unit 120 of the controller 6 assigns the minimum output value 0 to P2 at the release end of the normalization range 180, and assigns the maximum output value "255" to P7 at the full stroke end of the normalization range 180. Values obtained by dividing 0 to 255 into 5 are assigned to P3, P4, P5, and P6.
- the allocation unit 120 stores in the correction point information storage unit 104 a pair of the AD value measured during the manufacture of the controller 6 and the output value assigned to each correction point.
- 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 based on the magnitude relationship between the AD value based on the user operation and the AD value of each correction point.
- 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 an application based on the output value corresponding to the user operation, which is indicated by the operation information transmitted from the controller 6.
- FIG. 18 also shows the relationship between the correction point and the output value of the controller 6.
- FIG. 18 shows the relationship when the trigger stopper 87 is set to the first stage and a dead zone is set.
- 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 correction point.
- the boundary of the release side dead zone 186 is set between P3 and P4, while the full stroke side dead zone 188 is not set. In this case, if the output values corresponding to P4, P5, and P6 are set to the values shown in FIG. 17, the linearity of the output value based on the user operation cannot be maintained.
- 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, when a dead zone is set for the trigger button 84, the allocation unit 120 assigns new output values to each of the correction points outside the dead zone range so that the minimum output value 0 to the maximum output value 255 corresponds to the rotatable range of the trigger button 84 excluding the dead zone. The area outside the dead zone range can also be said to be within the valid range.
- the allocation unit 120 allocates new output values to each of the correction points outside the release side dead zone 186 and the full stroke side dead zone 188 so that the minimum output value 0 to the maximum output value 255 corresponds to the rotational range of the trigger button 84 excluding the set release side dead zone 186 and full stroke side dead zone 188. In addition, the allocation unit 120 allocates new output values to each of the correction points outside the dead zone ranges each time the release side dead zone 186 or full stroke side dead zone 188 for the trigger button 84 is newly set or changed.
- the allocation unit 120 allocates the minimum output value 0 to the range from the rotation start position P0 of the trigger button 84 to a predetermined correction point.
- the predetermined correction point is the correction point included in the release side offset 182 and the correction point included in the release side dead zone 186 that has the largest rotation amount (AD value).
- the allocation unit 120 also allocates a maximum output value of 255 in the range from the predetermined correction point to the rotation end position P8 of the trigger button 84.
- the predetermined correction point is the correction point with the smallest rotation amount (AD value) among the correction points included in the full stroke side offset 184 and the full stroke side dead zone 188. In this way, by providing play areas near the release position and full stroke position of the trigger button 84, the operability of the trigger button 84 can be improved.
- FIG. 19 shows an example of assigning new output values to correction points.
- the trigger stopper 87 is set to the first stage. If the dead zone is not set, P2 to P7 become the normalization range 180, and the assignment unit 120 assigns output values corresponding to each correction point so that each section separated by the correction points divides 0 to 255 into 5 equal parts.
- a release side dead zone 186 is set from P2 to the starting point Pr between P3 and P4, and a full stroke side dead zone 188 is set from the end point Pf between P6 and P7 to P7.
- the rotatable range of the trigger button 84 i.e., normalized range 180
- the allocation unit 120 assigns new output values Np4, Np5, and Np6 to P4, P5, and P6, with Pr set to a minimum value of 0, Pf set to a maximum value of 255, and 0 to 255 assigned to the section from Pr to Pf.
- the size of the release side dead zone 186 is specified as x% of the normalized range 180 (P2 to P7) when no dead zone is set.
- the size of the full stroke side dead zone 188 is specified as y% of the normalized range 180 (P2 to P7) when no dead zone is set. Both x and y are values in the range from 0 to 99.
- the allocation unit 120 derives the output values of P4, P5, and P6 in accordance with Equations 7 to 9.
- Np4 255 * (20 - (x - 20 * m)) / (100 - x - y) ...
- Np5 Np4+255*20/(100-x-y) ...
- Np6 Np5+255*20/(100-x-y) ...
- Equation 9
- Figure 20 also shows an example of assigning a new output value to a correction point.
- the trigger stopper 87 is set to the first stage.
- a release side dead zone 186 (set value x is 24%) is set from P2 to the starting point Pr between P3 and P4.
- a full stroke side dead zone 188 is not set.
- the allocation unit 120 derives the ratio of Pr to P4 to the normalization range 180 (P2 to P7) when the dead zone is not set as 16% according to the above formula 6.
- the allocation unit 120 also derives Np4 as 54, Np5 as 121, and Np6 as 188 according to the above formulas 7 to 9.
- the allocation unit 120 stores a pair of the characteristic value of the correction point and the new output value for the correction point from which a new output value has been derived in the correction point information storage unit 104.
- the operation information generation unit 114 generates operation information based on a user operation on the trigger button 84, using the characteristic values and output values (new output values) of the multiple correction points.
- the assignment unit 120 detects the range excluding the dead zone from the rotatable range of the trigger button 84 limited by the trigger stopper 87 as the normalization range 180.
- the assignment unit 120 assigns new output values to each of the correction points within the normalization range 180 (in other words, outside the dead zone range) so that the minimum output value 0 to the maximum output value 255 corresponds to the normalization range 180.
- the value "20" included in the above formulas 6 to 9 is a fixed value when the trigger stopper 87 is set to the first stage, and is the ratio (%) of one correction point interval (e.g. P2 to P3) to the normalized range 180 (P2 to P7) when the dead zone is not set. This ratio will be referred to as the "interval ratio" below.
- the maximum rotation angle of the trigger button 84 is limited to 14 degrees. Also, as shown in FIG. 14(b), the normalized range 180 is P2 to P6, and the section ratio is 25%. Therefore, in this case, the formulas in which "20" in the above formulas 5 to 9 is replaced with "25" are used.
- the maximum rotation angle of the trigger button 84 is limited to 10 degrees. Furthermore, as shown in FIG. 14(c), the normalization range 180 is from P3 to P5, and the section ratio is 50%. Therefore, in this case, the formulas in which "20" in the above formulas 5 to 9 is replaced with "50" are used.
- the allocation unit 120 detects that an operation to limit the rotatable range of the trigger button 84 using the trigger stopper 87 has been input. This operation may be, for example, an operation of sliding a switch of the trigger stopper 87 to switch stages.
- the allocation unit 120 assigns new output values to each of the correction points outside the dead zone range each time an operation to limit 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.
- the more narrowly the rotatable range of the trigger button 84 is restricted by the trigger stopper 87 the more correction points the allocation unit 120 assigns the minimum output value to. Also, the more narrowly the rotatable range of the trigger button 84 is restricted by the trigger stopper 87, the more correction points the allocation unit 120 assigns the maximum output value to.
- the allocation unit 120 assigns an output value of 0 (minimum value) to P0, P1, and P2.
- the allocation unit 120 assigns an output value of 0 to P0, P1, P2, and P3.
- the normalization range 180 ends at P7. In this case, the allocation unit 120 allocates an output value of 255 (maximum value) to P7 and P8.
- the allocation unit 120 allocates an output value of 255 to P6, P7, and P8.
- the trigger stopper 87 is set to the third stage and the dead zone is not set, the normalization range 180 ends at P5. In this case, the allocation unit 120 allocates an output value of 255 to P5, P6, P7, and P8.
- the linearity of the output value associated with the user's operation on the trigger button 84 in which the release side dead zone 186 and/or the full stroke side dead zone 188 are set can be maintained.
- the second feature of the information processing system 1 is not limited to the trigger button 84, but can also be applied to other types of analog input devices in which a dead zone can be set, such as the analog stick 77.
- An analog input device ; a storage unit for storing setting information relating to the sensitivity of the analog input device; a generation unit that generates operation information based on a user's operation on the analog input device; a transmission unit that transmits the operation information generated by the generation unit to an external information processing device; Equipped with The generation unit is (A) acquiring a value in a Cartesian coordinate system based on an operation amount of the analog input device; (B) converting the values in the Cartesian coordinate system into values in another coordinate system; (C) converting the value of the different coordinate system based on the sensitivity of the analog input device indicated by the setting information; (D) converting the converted value in the different coordinate system based on the sensitivity of the analog input device into a value in the orthogonal coordinate system to be set in the operation information.
- the values in the Cartesian coordinate system are first converted into values in another coordinate system that is more advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected in the converted values.
- the other coordinate system is a polar coordinate system.
- the operating device according to item 1-1 values in a Cartesian coordinate system are first converted into values in a polar coordinate system, which is advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected in the converted values.
- the generating unit in (A), obtains a relatively high-precision value as a value in a Cartesian coordinate system based on an operation amount of the analog input device; In (D), the generation unit converts the converted value in the different coordinate system into a value in the Cartesian coordinate system based on a sensitivity of the analog input device, and further converts the converted value in the Cartesian coordinate system into a relatively low-precision value.
- An operating device according to any one of items 1-1 to 1-3. According to this operation device, a high-precision value is used in the sensitivity reflection calculation, so that a decrease in calculation accuracy can be suppressed.
- the generating unit generates a value from a minimum value to a maximum value that can be set in the operation information based on an operation within a range that is narrower than a physical possible range of the analog input device by a predetermined offset.
- An operating device according to any one of items 1-1 to 1-4. According to this operation device, even if the physical movable range of the analog input device moves by an offset amount over time, the predetermined range of output values can be maintained.
- An analog input device a storage unit for storing setting information relating to the sensitivity of the analog input device;
- a processor Equipped with the processor executes a process of generating operation information based on a user's operation on the analog input device, and a process of transmitting the generated operation information to an external information processing device;
- the generating process includes: (A) acquiring a value in a Cartesian coordinate system based on an operation amount of the analog input device; (B) converting the values in the Cartesian coordinate system into values in another coordinate system; (C) converting the value of the different coordinate system based on the sensitivity of the analog input device indicated by the setting information; (D) converting the value in the other coordinate system 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; Operating device.
- the values in the Cartesian coordinate system are first converted into values in another coordinate system that is more advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected in the converted values. This makes it possible to reduce the calculation load required to reflect the sensitivity set in the analog input device in the output value of the operation device based on the user's operation of the analog input device.
- An operating device including an analog input device and a storage unit that stores setting information related to a sensitivity of the analog input device, generating operation information based on a user's operation on the analog input device; transmitting the operation information generated in the generating step to an external information processing device;
- Run The generating step includes: (A) acquiring a value in a Cartesian coordinate system based on an operation amount of the analog input device; (B) converting the values in the Cartesian coordinate system into values in another coordinate system; (C) converting the value of the different coordinate system based on the sensitivity of the analog input device indicated by the setting information; (D) converting the value in the other coordinate system 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; Information processing methods.
- the values in the Cartesian coordinate system are first converted into values in another coordinate system that is more advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected in the converted values, thereby reducing the calculation load of the operation device for reflecting the sensitivity set in the analog input device in the output value of the operation device based on the user's operation of the analog input device.
- An operating device including an analog input device and a storage unit that stores setting information related to the sensitivity of the analog input device, a function of generating operation information based on a user's operation on the analog input device; a function of transmitting the operation information generated by the generating function to an external information processing device; Realize this,
- the generating function is (A) acquiring a value in a Cartesian coordinate system based on an operation amount of the analog input device; (B) converting the values in the Cartesian coordinate system into values in another coordinate system; (C) converting the value of the different coordinate system based on the sensitivity of the analog input device indicated by the setting information; (D) converting the value in the other coordinate system 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; Computer program.
- the values in the Cartesian coordinate system are first converted into values in another coordinate system that is more advantageous in terms of calculation load, and then the sensitivity of the analog input device is reflected in the converted values, thereby reducing the calculation load of the operation device for reflecting the sensitivity set in the analog input device in the output value of the operation device based on the user's operation of the analog input device.
- FIG. 2-1 an analog input device operated by a user; a storage unit that stores characteristic values measured at a plurality of correction points each having a different amount of movement of the analog input device; an assignment unit that assigns an output value indicating a magnitude of the operation to each of the plurality of correction points; an output unit that outputs, when an operation is input to the analog input device, an output value corresponding to the input operation based on a measured characteristic value and a characteristic value and an output value related to at least one correction point; Equipped with when a dead zone is set for the analog input device, the allocation unit allocates new output values to each of the correction points outside the dead zone range so that the minimum value to the maximum value of the output value corresponds to a movable range of the analog input device excluding the dead zone.
- the allocating unit allocates new output values to each of the correction points outside the first dead zone and the second dead zone so that the minimum value to the maximum value of the output value correspond to a movable range of the analog input device excluding the first dead zone and the second dead zone that are set.
- the allocation unit allocates a new output value to each of the correction points outside the range of the dead zone every time a dead zone is set for the analog input device;
- the operating device according to item 2-1 or 2-2. According to this operation device, it is possible to maintain the linearity of the output value accompanying the user's operation on the analog input device by following the setting or change of the dead zone.
- a limiting unit for limiting a movable range of the analog input device When a movable range of the analog input device is restricted and a dead zone is set for the analog input device, the allocation unit allocates new output values to each of the correction points outside the dead zone range so that the minimum value to the maximum value of the output value corresponds to a movable range obtained by excluding the dead zone from the restricted movable range of the analog input device.
- An operating device according to any one of items 2-1 to 2-3.
- the allocating unit allocates new output values to each of the correction points outside the dead zone range every time an operation for limiting a movable range of the analog input device is input or every time a dead zone is set for the analog input device.
- the operating device according to item 2-4. According to this operation device, it is possible to maintain the linearity of the output value accompanying the user's operation on the analog input device by following the change in the movable range of the analog input device and the change in the dead zone.
- the allocating unit allocates a 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 a maximum value of the output value to a range from the predetermined correction point to a movement end position of the analog input device.
- An operating device according to any one of items 2-1 to 2-5. According to this operating device, the operability of the analog input device can be improved by providing a play area at one or both of the start position (e.g., release position or initial position) and end position (e.g., full stroke position) of the analog input device.
- a limiting unit for limiting a movable range of the analog input device the narrower the movable range of the analog input device, the more correction points the allocation unit allocates the minimum value of the output value, or the more correction points the allocation unit allocates the maximum value of the output value.
- An operating device according to any one of items 2-1 to 2-6. According to this operating device, even if the movable range (e.g., stroke range or rotation range) of the analog input device is limited, the linearity of the output value associated with the user's operation on the analog input device in which a dead zone is set can be maintained.
- FIG. 2-8 an analog input device operated by a user; a storage unit that stores characteristic values measured at a plurality of correction points each having a different amount of movement of the analog input device; A processor; Equipped with The processor assigns an output value to each of the plurality of correction points indicative of a magnitude of manipulation; When an operation is input to the analog input device, the processor outputs to an outside an output value corresponding to the input operation based on the measured characteristic value and the characteristic value and output value related to at least one correction point; When a dead zone is set for the analog input device, the processor assigns new output values 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 a movable range of the analog input device excluding the dead zone.
- An operating device including an analog input device operated by a user and a storage unit that stores characteristic values measured at a plurality of correction points having different amounts of movement of the analog input device, assigning to each of the plurality of correction points an output value indicative of a magnitude of manipulation;
- an operation is input to the analog input device, outputting to an outside an output value corresponding to the input operation based on the measured characteristic value and the characteristic value and output value related to at least one correction point;
- the assigning step assigns new output values 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 a movable range of the analog input device excluding the dead zone.
- An operating device including an analog input device operated by a user and a storage unit that stores characteristic values measured at a plurality of correction points having different amounts of movement of the analog input device, a function of assigning an output value indicating a magnitude of the manipulation to each of the plurality of correction points; a function of outputting, when an operation is input to the analog input device, an output value corresponding to the input operation based on a measured characteristic value and a characteristic value and an output value related to at least one correction point; Realize this, The function of allocating allocates new output values 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 value to the maximum value of the output value corresponds to the movable range of the analog input device excluding the dead zone.
- the present invention can be applied to operating devices, information processing systems, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Position Input By Displaying (AREA)
Abstract
コントローラ6は、情報処理装置10へ送信される操作情報を生成する生成部を備える。生成部は、(A)アナログ入力デバイスの操作量に基づく直交座標系の値を取得する。生成部は、(B)直交座標系の値を別の座標系の値に変換する。生成部は、(C)設定情報が示すアナログ入力デバイスの感度に基づいて、上記別の座標系の値を変換する。生成部は、(D)アナログ入力デバイスの感度に基づき変換後の別の座標系の値を、操作情報に設定すべき直交座標系の値に変換する。
Description
本発明は、データ処理技術に関し、特に操作装置、情報処理方法およびコンピュータプログラムに関する。
アナログスティックやトリガーボタン等のアナログ入力デバイスを備える操作装置が普及している。アナログ入力デバイスを備える操作装置の中には、アナログ入力デバイスの感度を調整可能な操作装置もある。
アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷の低減が求められている。
本発明は、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減する技術を提供することを目的とする。
上記課題を解決するために、本発明のある態様の操作装置は、アナログ入力デバイスと、アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する生成部と、生成部により生成された操作情報を外部の情報処理装置へ送信する送信部と、を備える。生成部は、(A)アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、(B)直交座標系の値を別の座標系の値に変換し、(C)設定情報が示すアナログ入力デバイスの感度に基づいて、別の座標系の値を変換し、(D)アナログ入力デバイスの感度に基づき変換後の別の座標系の値を、操作情報に設定すべき直交座標系の値に変換する。
本発明の別の態様は、操作装置である。この装置は、アナログ入力デバイスと、アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、プロセッサと、を備える。プロセッサは、アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する処理と、生成した操作情報を外部の情報処理装置へ送信する処理を実行し、生成する処理は、(A)アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、(B)直交座標系の値を別の座標系の値に変換し、(C)設定情報が示すアナログ入力デバイスの感度に基づいて、別の座標系の値を変換し、(D)アナログ入力デバイスの感度に基づき変換後の別の座標系の値を、操作情報に設定すべき直交座標系の値に変換することを含む。
本発明のさらに別の態様は、情報処理方法である。この方法は、アナログ入力デバイスと、アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、を備える操作装置が、アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成するステップと、生成するステップで生成された操作情報を外部の情報処理装置へ送信するステップと、を実行し、生成するステップは、(A)アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、(B)直交座標系の値を別の座標系の値に変換し、(C)設定情報が示すアナログ入力デバイスの感度に基づいて、別の座標系の値を変換し、(D)アナログ入力デバイスの感度に基づき変換後の別の座標系の値を、操作情報に設定すべき直交座標系の値に変換することを含む。
なお、以上の構成要素の任意の組合せ、本発明の表現をシステム、コンピュータプログラム、コンピュータプログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によると、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減できる。
図1は、実施例に係る情報処理システム1を示す。情報処理システム1は、情報処理装置10、表示装置4、コントローラ6を備える。実施例の情報処理装置10は、据置型ゲーム機である。変形例として、情報処理装置10は、ゲーム等のアプリケーションを実行可能なコンピュータ、タブレット端末、スマートフォンであってもよい。
コントローラ6は、情報処理装置10が実行する情報処理(例えばビデオゲーム)に関してユーザが入力した操作を受け付ける操作装置である。コントローラ6は、ユーザから入力された操作を示す操作情報を情報処理装置10へ逐次送信する。コントローラ6は、ゲームコントローラとも言える。情報処理装置10とコントローラ6は、有線または無線にて接続される。実施例の情報処理装置10は、ユーザ宅等に設置された機器とするが、変形例として、実施例における情報処理装置10の機能は、クラウド上に設置された、インターネット等を介してクラウドサービス(クラウドゲーム等)を提供するサーバに実装されてもよい。コントローラ6は、ユーザ宅等に設置された端末や通信機器を介してサーバと通信してもよい。
情報処理システム1では、情報処理装置10は、コントローラ6へ制御データである出力レポートを所定の周期で送信してもよい。コントローラ6は、出力レポートの受信に基づいて、通知データである入力レポートを情報処理装置10へ送信してもよい。
表示装置4は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってもよく、コンピュータディスプレイであってもよい。表示装置4は、情報処理装置10に有線ケーブルで接続されてよく、無線接続されてもよい。情報処理装置10は、コントローラ6から提供された操作情報を受け付けると、その操作情報をシステムソフトウェアやアプリケーションソフトウェアの処理に反映し、処理結果に関する画像を表示装置4に表示させる。
実施例の情報処理システム1の概要を説明する。
実施例のコントローラ6は、ユーザによりカスタマイズされた、コントローラ6への操作に関する設定情報(以下「プロファイル情報」または単に「プロファイル」とも呼ぶ。)を不揮発メモリに保存する。プロファイル情報は、コントローラ6の挙動に関する設定情報を含む。コントローラ6は、複数のプロファイル情報を記憶可能であり、ユーザの操作に応じて、適用するプロファイル情報を切替可能である。
実施例のコントローラ6は、ユーザによりカスタマイズされた、コントローラ6への操作に関する設定情報(以下「プロファイル情報」または単に「プロファイル」とも呼ぶ。)を不揮発メモリに保存する。プロファイル情報は、コントローラ6の挙動に関する設定情報を含む。コントローラ6は、複数のプロファイル情報を記憶可能であり、ユーザの操作に応じて、適用するプロファイル情報を切替可能である。
プロファイル情報は、コントローラ6への操作に関して予め定められた設定値等を含んでもよい。また、プロファイル情報は、コントローラ6への入力操作をもとに情報処理装置10に入力される操作情報を生成することに関する設定情報を含んでもよい。また、プロファイル情報は、コントローラ6に対する操作の入力に応じて検出されたアナログ値をデジタル値に変換する際に参照される情報を含んでもよい。また、プロファイル情報は、コントローラ6におけるフィードバック(例えば振動や発光、音声等)の強度に関する設定情報を含んでもよい。
また、プロファイル情報は、コントローラ6に入力された操作をもとに情報処理装置10による画像生成態様や表示装置4による画像表示態様を変更することに関する設定情報を含んでもよい。また、プロファイル情報は、コントローラ6に入力された操作をもとに情報処理装置10やヘッドホン(不図示)等からの音声出力態様を変更することに関する設定情報を含んでもよい。また、プロファイル情報は、コントローラ6に入力された操作をもとにチャットの態様を変更することに関する設定情報を含んでもよい。
また、プロファイル情報は、マイクに関連する設定情報を含んでもよい。マイクに関連する設定情報は、例えば、マイクのノイズキャンセル機能のオン/オフ情報や、マイクミュート機能のオン/オフ情報、マイクのボリュームの設定情報等を含んでもよい。
実施例のプロファイル情報は、プロファイルのIDや名称、ボタン割り当て情報、アナログ入力デバイスの感度関連情報、対応ボタン情報を含む。ボタン割り当て情報は、コントローラ6の各ボタンにユーザが割り当てた、各種のアクションやコマンド、機能を示す情報である。言い換えれば、ボタン割り当て情報は、各ボタンに対する各種のアクションやコマンド、機能の割り当て状況を示す情報である。対応ボタン情報は、プロファイル情報が対応付けられたコントローラ6のボタンの識別情報であり、例えば、後述の○ボタン72や×ボタン73を示す情報である。
アナログ入力デバイスの感度関連情報は、アナログ入力デバイスの感度に関する設定値を示す情報を含む。アナログ入力デバイスの感度は、ユーザがアナログ入力デバイスに実際に入力した操作の大きさ(例えば傾動量や回動量)に対する情報処理装置10で認識される操作の大きさを規定するものである。情報処理装置10で認識される操作の大きさは、情報処理装置10におけるデータ処理(言い換えれば実行中のアプリケーション)に入力される操作の大きさとも言える。感度の設定値は、アナログ入力デバイスに実際に入力された操作量と、情報処理装置10で認識される操作量との比であってもよい。
また、アナログ入力デバイスの感度関連情報は、アナログ入力デバイスのデッドゾーン情報を含み、例えば、デッドゾーンに関する設定値を含む。デッドゾーンは、不感帯とも言え、アナログ入力デバイスに入力された操作を受け付けない範囲である。言い換えれば、デッドゾーンは、アナログ入力デバイスに入力された操作を無視する範囲である。デッドゾーンの設定値は、デッドゾーンに該当する傾動量や回動量の値範囲であってもよい。このように、実施例のプロファイル情報は、コントローラ6のアナログ入力デバイスの設定情報を含む。後述するように、実施例のコントローラ6は、アナログ入力デバイスとして、アナログスティックとトリガーボタンを備える。
本発明者は、第1の課題として、アナログ入力デバイスへのユーザの操作に基づくコントローラ6の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷の低減が求められていることを認識した。
上記第1の課題を解決するための、情報処理システム1の第1の特徴として、コントローラ6は、アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、その値を一旦、計算負荷の面で有利な別の座標系の値に変換する。別の座標系は実施例では極座標系とするが、計算負荷の面で直交座標系より有利であればよく極座標系には限られない。コントローラ6は、変換後の別の座標系の値をアナログ入力デバイスの感度に基づき調整し、調整後の別の座標系の値を、出力値の形式である直交座標系の値に戻す。
また、本発明者は、第2の課題として、ユーザがアナログ入力デバイスに任意の範囲のデッドゾーンを設定可能な場合、コントローラ6の製造時に設定された補正点を利用して、アナログ入力デバイスへのユーザ操作に応じた出力値の線形性を維持できないことがあることを認識した。
上記第2の課題を解決するための、情報処理システム1の第2の特徴として、コントローラ6は、アナログ入力デバイスにデッドゾーンが設定された場合、デッドゾーンを除いたアナログ入力デバイスの移動可能範囲に出力値の最小値から最大値が対応するように、デッドゾーン範囲外の各補正点に新たな出力値を割り当てる。コントローラ6は、各補正点に割り当てた新たな出力値を用いて、アナログ入力デバイスに対するユーザ操作に応じた出力値を生成する。
コントローラ6のボタン構成について説明する。図2は、コントローラ6の上面を示す。ユーザは左手で左側把持部78bを把持し、右手で右側把持部78aを把持して、コントローラ6を操作する。コントローラ6の筐体上面には、入力部である方向ボタン71、右アナログスティック77a、左アナログスティック77b、操作ボタン76が設けられている。方向ボタン71は、上下左右および斜めの8方向の入力が可能な構成となっており、本実施例においては、上ボタン71a、左ボタン71b、下ボタン71cおよび右ボタン71dを含む。4種の操作ボタン76には、それぞれを区別するために、異なる色で異なる図形が記されている。操作ボタン76は、○ボタン72、×ボタン73、□ボタン74および△ボタン75を含む。
右アナログスティック77aおよび左アナログスティック77bは、コントロールスティックまたはサムスティックまたはジョイスティックとも呼ばれ、傾動されて方向および傾動量を入力するために用いられる。傾動量は、右アナログスティック77aまたは左アナログスティック77bが傾けられた角度とも言える。右アナログスティック77aおよび左アナログスティック77bは、ユーザが押すことで下方に沈み込み、またユーザが手を離すと元の位置に復帰する押下式ボタンとしても機能する。以下、右アナログスティック77aと左アナログスティック77bを総称する場合、「アナログスティック77」とも呼ぶ。操作ボタン76、方向ボタン71、アナログスティック77は、情報処理装置10で実行されるアプリケーション(例えばゲーム)の操作に用いられる。
筐体上面において、方向ボタン71と操作ボタン76の間の平坦な領域には、タッチパッド79が設けられる。タッチパッド79は、ユーザの指によるタッチ検出に加え、ユーザが押すことで下方に沈み込み、またユーザが手を離すと元の位置に復帰する押下式ボタンとしても機能する。また、筐体上面にはさらに、スピーカ89とマイク91が設けられている。
右アナログスティック77aおよび左アナログスティック77bの間にはホームボタン80が設けられる。ホームボタン80はコントローラ6や情報処理装置10の電源をオンし、同時に情報処理装置10と無線接続する通信機能をアクティブにするために使用される。コントローラ6が情報処理装置10と接続した後は、ホームボタン80は、情報処理装置10にメニュー画面またはホーム画面を表示させるためにも使用される。メニュー画面またはホーム画面は、情報処理装置10に実行させるべき機能やアプリケーションをユーザに選択させるための画面である。
CREATEボタン81は、タッチパッド79の左側に設けられる。OPTIONSボタン82は、タッチパッド79の右側に設けられる。CREATEボタン81およびOPTIONSボタン82は、情報処理装置10におけるOS(Operating System)ないしはシステムソフトウェアに対するユーザからの指示を入力するために利用される。言い換えれば、CREATEボタン81およびOPTIONSボタン82は、情報処理装置10におけるOS(Operating System)ないしはシステムソフトウェアの機能を呼び出す(操作する)ために使用されるボタンである。CREATEボタン81およびOPTIONSボタン82は、いずれもプッシュ式ボタンとして形成されてよい。
発光部86は、タッチパッド79の下縁部に設けられる。発光部86は、LEDを含んでもよい。発光部86は、複数のランプ(図2の例では5つのランプ)を含み、複数のランプの点灯態様(すなわち点灯状態と消灯状態の組み合わせ)によりコントローラを識別するコントローラ番号に関する情報や、コントローラ6の状態に関する情報を表示する。発光部86は、情報処理装置10で実行中のアプリケーションにより指定された点灯態様に制御される。また、発光部86は、コントローラ6への操作に適用するプロファイル情報が切り替えられた場合、短時間、コントローラ6のプロファイル情報が切り替えられたことを示す所定の点灯態様に制御される。
タッチパッド79の左横および右横には、縦長の発光部85が設けられる。発光部85は、赤(R)、緑(G)、青(B)のLEDを有し、情報処理装置10から送信される発光色情報にしたがって点灯する。
右機能ボタン88aおよび左機能ボタン88b(以下、総称する場合、機能ボタン88とも呼ぶ。)は、他のボタンの機能を変更または拡張するボタンである。実施例では、機能ボタン88への操作を入力しながら操作ボタン76への操作を入力すると、コントローラ6への操作に適用するプロファイル情報が、機能ボタン88とともに操作された操作ボタン76の種類に対応づけられたプロファイル情報に切り替えられる。右機能ボタン88aおよび左機能ボタン88bは、機能的に全く等しくてもよい。その場合、左右どちらのボタンが操作された場合にも同じ機能を提供する。
図3は、コントローラ6の奥側側面を示す。コントローラ6の筐体奥側側面の上側には、タッチパッド79が筐体上面から折れ曲がって延設されている。筐体奥側側面において、R1ボタン83a、R2ボタン84aと、L1ボタン83b、L2ボタン84b、右トリガーストッパー87a、左トリガーストッパー87bとが長手方向の左右対称な位置に設けられる。R1ボタン83a、R2ボタン84aは、それぞれユーザ右手の人差し指、中指により操作され、L1ボタン83b、L2ボタン84bは、それぞれユーザ左手の人差し指、中指により操作される。
上側のR1ボタン83a、L1ボタン83bはプッシュ式ボタンとして構成され、下側のR2ボタン84a、L2ボタン84bは回動支持されたトリガー式のボタンとして構成される。R2ボタン84aおよびL2ボタン84bは、右アナログスティック77aおよび左アナログスティック77bと同様にアナログ出力が可能であり、回動の量に応じた値を出力する。R2ボタン84aとL2ボタン84bを総称する場合、トリガーボタン84と呼ぶ。
右トリガーストッパー87aは、R2ボタン84aの回動範囲を調節または制限する部材である。左トリガーストッパー87bは、L2ボタン84bの回動範囲を調節または制限する部材である。右トリガーストッパー87aと左トリガーストッパー87bを総称する場合、トリガーストッパー87と呼ぶ。トリガーストッパー87は、アナログ入力デバイスの移動可能範囲(傾動可能範囲や回動可能範囲とも言える)を制限する制限部とも言える。右トリガーストッパー87aと左トリガーストッパー87bのそれぞれは、第1段階、第2段階、第3段階のいずれかに設定可能である。第1段階では最大回動角度が26度、第2段階では最大回動角度が14度、第3段階では最大回動角度が10度になる。
図2と図3に示したように、コントローラ6は、様々な入力部(各種ボタンやスティック等)を有して構成される。ユーザは、表示装置4に表示されたメニュー画面やゲーム画面を見ながら、コントローラ6の入力部に操作を入力する。
図4は、コントローラ6の本実施例に関連するハードウェア構成を示す。コントローラ6は、図2と図3に関連して説明したハードウェアに加え、振動子90、記憶部92、通信制御部94、プロセッサ96を備える。プロセッサ96は、各種データ処理を実行し、また、各種ハードウェアの動作を制御する。プロセッサ96は、CPU(Central Processing Unit)やメモリ、SoC(System on a chip)を含んでもよい。
振動子90は、プロセッサ96からの制御信号に基づいて振動することにより、ユーザに対して触覚刺激を提供する。振動子90は、ボイスコイルモータ(VCM)を含んでもよい。振動子90と発光部86は、各種情報をユーザに通知する通知装置として動作する。振動子90は、触覚情報による通知を行い、発光部86は、視覚情報による通知を行う。
記憶部92は、プロセッサ96により参照または更新されるデータを記憶する。通信制御部94は、外部装置との通信を制御する。実施例では、通信制御部94は、情報処理装置10と無線通信を行うが、変形例として、通信制御部94は、情報処理装置10と有線通信を行ってもよい。
図5は、情報処理装置10の本実施例に関連するハードウェア構成を示す。情報処理装置10は、メイン電源ボタン20、電源ON用LED21、スタンバイ用LED22、システムコントローラ24、クロック26、デバイスコントローラ30、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60を備える。
メインシステム60は、メインCPU、主記憶装置であるメモリおよびメモリコントローラ、GPU(Graphics Processing Unit)などを備える。GPUはゲームプログラムの演算処理に主として利用される。これらの機能はSoC(System on a chip)として構成されて、1つのチップ上に形成されてよい。メインCPUはOSを起動し、OSが提供する環境下において、記憶部(例えばフラッシュメモリ36または不図示の補助記憶装置)にインストールされたアプリケーションを実行する機能をもつ。また、メインシステム60は、表示装置4における表示内容を制御する機能をもつ。
サブシステム50は、サブCPU、主記憶装置であるメモリおよびメモリコントローラなどを備え、GPUを備えない。サブCPUの回路ゲート数は、メインCPUの回路ゲート数よりも少なく、サブCPUの動作消費電力は、メインCPUの動作消費電力よりも少ない。サブCPUは、メインCPUがスタンバイ状態にある間に動作するものであり、消費電力を低く抑えるべく、その処理機能を制限されている。なおサブCPUおよびメモリは、別個のチップに形成されてもよい。
メイン電源ボタン20は、ユーザからの操作入力が行われる入力部であって、情報処理装置10の筐体の前面に設けられ、情報処理装置10のメインシステム60への電源供給をオンまたはオフするために操作される。以下、メイン電源がオン状態にあるとは、メインシステム60がアクティブ状態にあることを意味し、メイン電源がオフ状態にあるとは、メインシステム60がスタンバイ状態にあることを意味する。電源ON用LED21は、メイン電源ボタン20がオンされたときに点灯し、スタンバイ用LED22は、メイン電源ボタン20がオフされたときに点灯する。
システムコントローラ24は、ユーザによるメイン電源ボタン20の押下を検出する。メイン電源がオフ状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オン指示」として取得し、一方で、メイン電源がオン状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オフ指示」として取得する。システムコントローラ24は、コントローラ6からの操作入力から、上記と同様の電源オン・オフ指示を取得してもよい。
メインCPUは、所定の記憶部やROM媒体44にインストールされているゲームプログラムを実行する機能をもつ一方で、サブCPUはそのような機能をもたない。しかしながら、サブCPUは、記憶部にアクセスする機能、外部装置との間でデータを送受信する機能を有している。サブCPUは、このような制限された処理機能のみを有して構成されており、したがってメインCPUと比較して小さい消費電力で動作できる。これらのサブCPUの機能は、メインCPUがスタンバイ状態にある際に実行される。
クロック26はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ24やサブシステム50およびメインシステム60に供給する。
デバイスコントローラ30は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するLSI(Large-Scale Integrated Circuit)として構成される。図示のように、デバイスコントローラ30には、システムコントローラ24、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60などのデバイスが接続される。デバイスコントローラ30は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
メディアドライブ32は、ゲームなどのアプリケーションソフトウェア、およびライセンス情報を記録したROM媒体44を装着して駆動し、ROM媒体44からプログラムやデータなどを読み出すドライブ装置である。ROM媒体44は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
USBモジュール34は、外部機器とUSBケーブルで接続するモジュールである。フラッシュメモリ36は、内部ストレージを構成する補助記憶装置である。無線通信モジュール38は、Bluetooth(商標または登録商標)プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、例えばコントローラ6と無線通信する。有線通信モジュール40は、外部機器と有線通信し、例えば不図示のアクセスポイントを介してインターネットやサーバ等に接続する。
図6は、コントローラ6の機能ブロックを示すブロック図である。本明細書のブロック図で示す各ブロックは、ハードウェア的には、コンピュータのプロセッサ、CPU、メモリをはじめとする素子や電子回路、機械装置で実現でき、ソフトウェア的にはメモリにロードされたコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。
コントローラ6は、記憶部100と処理部110を備える。記憶部100は、図4の記憶部92に対応し、処理部110により参照または更新されるデータを記憶する。記憶部100は、プロファイル記憶部102と補正点情報記憶部104を含む。
プロファイル記憶部102は、複数のプロファイル情報を記憶する不揮発メモリを含む。プロファイル記憶部102は、複数のプロファイル情報のそれぞれを、互いに異なるスロットおよび操作ボタン76に関連付けて記憶する。実施例では、プロファイル記憶部102は、4つのスロット(スロット1~スロット4)と4つの操作ボタン76(○ボタン72、×ボタン73、□ボタン74、△ボタン75)に関連付けて、最大4つのプロファイル情報を記憶する。
補正点情報記憶部104は、トリガーボタン84のリリース状態からフルストローク状態の間の複数の位置(以下「補正点」とも呼ぶ。)に関する情報である補正点情報を記憶する。リリース状態は、トリガーボタン84から指が離れた状態であり、トリガーボタン84に操作が入力されていない状態である。フルストローク状態は、物理的な可動範囲の上限までトリガーボタン84が回動された状態である。
複数の補正点は、トリガーボタン84の回動可能範囲における複数の位置とも言える。また、複数の補正点は、トリガーボタン84の回動量(トリガーボタン84へのユーザの操作量とも言える)が互いに異なる。補正点情報は、コントローラ6の製造時に計測された情報であり、複数の補正点それぞれの特性値(例えば電圧値)と出力値(操作の大きさを示す値)との組を含む。
処理部110は、操作検出部112、操作情報生成部114、操作情報送信部116、プロファイル更新部118、割当部120を備える。これら複数の機能のうち少なくとも一部の機能を実装したコンピュータプログラム(例えばファームウェア)が、コントローラ6の記憶部92に記憶されてもよい。コントローラ6のプロセッサ96は、このコンピュータプログラムをメインメモリに読み出して実行することにより、これら複数の機能のうち少なくとも一部の機能を発揮してもよい。
操作検出部112は、コントローラ6に対して入力されたユーザの操作を検出する。ユーザの操作は、アナログ入力デバイスを移動させる操作を含み、具体的には、アナログスティック77を傾動する操作や、トリガーボタン84を回動させる操作を含む。操作検出部112は、所定のサンプリングレートでユーザによるアナログ入力デバイスの操作に関するアナログ入力デバイスからの出力をアナログデジタル変換し出力値を取得する。操作検出部112は、アナログ入力デバイスへの操作に伴うアナログ値(例えば電圧値)を検出してアナログデジタル変換し、変換後のデジタル値(以下「AD値」)とも呼ぶ。)を操作情報生成部114に渡す。
操作情報生成部114は、操作検出部112により検出されたコントローラ6に対するユーザの操作(例えば操作検出部112から出力されたAD値)に基づいて、そのユーザの操作に関連する操作情報を生成する。実施例では特に、アナログスティック77およびトリガーボタン84に対するユーザの操作に関連する操作情報を生成する。
操作情報送信部116は、操作情報生成部114により生成された操作情報を情報処理装置10へ送信する。操作情報送信部116は、コントローラ6から情報処理装置10へ送信される入力レポートに操作情報を含める形で、操作情報を情報処理装置10へ送信してもよい。
プロファイル更新部118は、情報処理装置10から送信されたプロファイル更新指示にしたがって、プロファイル記憶部102に記憶されたコントローラ6のプロファイル情報を更新する。プロファイル更新指示は、例えば、アナログスティック77の感度特性およびデッドゾーンに関する設定値の更新指示を含む。また、トリガーボタン84のデッドゾーンに関する設定値の更新指示を含む。
割当部120は、更新されたプロファイル情報に基づいて、補正点情報記憶部104に記憶された複数の補正点のそれぞれに、操作の大きさを示す出力値を動的に割り当てる。
図7は、情報処理装置10の機能ブロックを示すブロック図である。情報処理装置10は、記憶部200と処理部210を備える。処理部210は、各種情報処理を実行する。処理部210は、情報処理装置10のプロセッサにより実現され、例えば、図5に示したメインシステム60により実現されてもよい。記憶部200は、処理部210により参照または更新されるデータを記憶する。記憶部200は、図5に示したフラッシュメモリ36やROM媒体44を含み得る。
記憶部200は、アプリケーション記憶部202とプロファイル記憶部204を含む。アプリケーション記憶部202は、情報処理装置10で実行可能なアプリケーション(例えばゲームプログラム)のデータを記憶する。
プロファイル記憶部204は、コントローラ6から通知された、コントローラ6のプロファイル情報を記憶する。プロファイル記憶部204は、コントローラ6のプロファイル記憶部102と同様に、4つのスロットと4つの操作ボタン76(○ボタン72、×ボタン73、□ボタン74、△ボタン75)に関連付けて、最大4つのプロファイル情報を記憶する。また、プロファイル記憶部204は、コントローラ6から通知された、コントローラ6における現在の適用プロファイルに関する情報を記憶する。具体的には、スロット1~4のいずれのスロットに対応するプロファイルが適用プロファイルであるかを記憶する。
処理部210は、プロファイル情報取得部212、操作情報受付部214、アプリケーション実行部216、設定画面生成部218、表示制御部220、プロファイル更新指示部222を備える。これら複数の機能のうち少なくとも一部の機能を実装したコンピュータプログラムが、情報処理装置10の記憶部200に記憶されてもよい。情報処理装置10のプロセッサ(例えばメインシステム60)は、このコンピュータプログラムをメインメモリに読み出して実行することにより、これら複数の機能のうち少なくとも一部の機能を発揮してもよい。
プロファイル情報取得部212は、情報処理装置10に接続されたコントローラ6から、当該コントローラ6に記憶された、ユーザが選択可能な複数のプロファイルに関する情報を取得する。プロファイル情報取得部212は、ユーザが選択可能な複数のプロファイルに関する情報をプロファイル記憶部204に格納する。
操作情報受付部214は、情報処理装置10に接続されたコントローラ6から送信された、コントローラ6に対するユーザの操作情報を受け付ける。
アプリケーション実行部216は、アプリケーション記憶部202に記憶されたアプリケーション(例えばゲームプログラムやシステムソフトウェア)を実行する。例えば、アプリケーション実行部216は、コントローラ6に対するユーザの操作情報にしたがってゲームを進行させ、ゲームの進行結果を示す画像(以下「ゲーム画面」とも呼ぶ。)を逐次生成する。
設定画面生成部218は、アプリケーションの実行中(例えばゲーム画面の表示中)に、コントローラ6に対するユーザの操作情報に基づいて、コントローラ6のプロファイル設定画面のデータを生成する。実施例のプロファイル設定画面は、アナログ入力デバイスの設定画面を含み、具体的には、アナログスティック77の設定画面と、トリガーボタン84の設定画面を含む。
表示制御部220は、表示装置4における情報や画像の表示を制御する。例えば、表示制御部220は、アプリケーション実行部216により生成されたゲーム画面のデータを表示装置4へ出力することにより、ゲーム画面を表示装置4に表示させる。また、表示制御部224は、設定画面生成部218により生成された設定画面のデータを表示装置4へ出力することにより、設定画面を表示装置4に表示させる。
プロファイル更新指示部222は、ユーザがプロファイル設定画面に入力した内容に基づくプロファイル更新指示をコントローラ6へ送信する。プロファイル更新指示部222は、情報処理装置10からコントローラ6へ所定の周期で送信される出力レポートにプロファイル更新指示を含める形で、プロファイル更新指示を情報処理装置10へ送信してもよい。
以上の構成による情報処理システム1の動作を説明する。
まず、情報処理システム1の第1の特徴に関する動作として、主に、アナログスティック77(右アナログスティック77aおよび左アナログスティック77b)の調整と動作について説明する。
まず、情報処理システム1の第1の特徴に関する動作として、主に、アナログスティック77(右アナログスティック77aおよび左アナログスティック77b)の調整と動作について説明する。
情報処理装置10の設定画面生成部218は、コントローラ6に入力されたユーザの操作に応じて、アナログスティック設定画面を生成する。情報処理装置10の表示制御部220は、アナログスティック設定画面を表示装置4に表示させる。
図8は、アナログスティック設定画面130の例を示す。図8のアナログスティック設定画面130は、コントローラ6のアナログスティック77の感度およびデッドゾーンを設定するコンテンツを示している。アナログスティック設定画面130は、設定対象選択欄132、感度パターン選択欄134、感度カーブ調整ゲージ136、デッドゾーン調整ゲージ138、感度カーブ画像140、設定状態画像148を含む。
設定対象選択欄132は、アナログスティック設定画面130において設定対象とするアナログスティック77の種類(実施例では右アナログスティック77aまたは左アナログスティック77b)を選択する画面要素である。図11では、左アナログスティック77bが選択されている。
感度パターン選択欄134は、予め定められた複数の感度カーブのパターンの中から、特定のパターンを選択する画面要素である。感度カーブは、アナログスティック77の傾倒角度と出力値との関係を示す曲線(直線を含む)である。具体的には、感度カーブは、ユーザがアナログスティック77に入力した操作の大きさ(以下「ユーザ入力操作量」とも呼ぶ。)と、情報処理装置10のデータ処理において認識される操作の大きさ(以下「システム認識操作量」とも呼ぶ。)を対応づけた曲線である。ユーザ入力操作量は、アナログスティック77の実際の傾動量または傾倒角とも言える。また、システム認識操作量は、情報処理装置10のデータ処理(実施例ではアプリケーション実行部216)に入力されるアナログスティック77の傾動量または傾倒角度とも言える。
複数の感度カーブのパターンは、リニア、ディレイ、クイックを含んでもよい。リニアは、ユーザ入力操作量の増加に比例してシステム認識操作量が増加するパターンであり、例えば感度カーブの傾きが一定になるデフォルトのパターンである。ディレイは、ユーザ入力操作量が小さいうちはシステム認識操作量の増加量が緩やかであり、ユーザ入力操作量が大きくなるとシステム認識操作量も大きく増加するパターンである。クイックは、ユーザ入力操作量が小さくてもシステム認識操作量の増加量が大きく、システム認識操作量が早期に上限に達するパターンである。
感度カーブ調整ゲージ136は、アナログスティック77に対するユーザ入力操作量とシステム認識操作量との対応関係を調整する画面要素であり、具体的には、感度カーブの傾きまたは曲率を調整する画面要素である。感度カーブ調整ゲージ136は、アナログスティック77の感度の値を示唆するスライダーを含む。デッドゾーン調整ゲージ138は、アナログスティック77のデッドゾーンの範囲(言い換えればデッドゾーンの大きさ)を調整する画面要素である。デッドゾーン調整ゲージ138は、アナログスティック77のデッドゾーンの値を示唆するスライダーを含む。
アナログスティック設定画面130は、アナログスティック77の感度とデッドゾーンの両方を共通の尺度(言い換えれば共通の基準)で示す2つの画像を含む。1つの画像は、ユーザがアナログスティック77に入力した操作の大きさに関する軸に沿って感度とデッドゾーンとを示す感度カーブ画像140である。もう1つの画像は、ユーザーがアナログスティック77に入力した操作の大きさに基づく中心からの距離によって感度とデッドゾーンとを示す設定状態画像148である。設定画面生成部218は、感度カーブ画像140と設定状態画像148をアナログスティック設定画面130に配置する。
感度カーブ画像140は、ユーザがアナログスティック77に入力した操作の大きさを横軸とし、情報処理装置10で認識される操作の大きさを縦軸とするグラフ領域に配置された感度カーブを示すオブジェクト(初期感度カーブ146および調整感度カーブ144)を含む。感度カーブは、感度を反映する調整前の入力値(横軸の値)と、感度を反映した調整後の出力値(縦軸の値)との関係を示すグラフとも言える。
初期感度カーブ146は、感度パターン選択欄134において選択されたパターンで規定された感度カーブの初期値を示すものである。調整感度カーブ144は、感度カーブ調整ゲージ136において調整後の感度カーブを示すものである。また、感度カーブ画像140は、グラフ領域の横軸に沿って配置されたデッドゾーンの範囲を示すオブジェクト(デッドゾーン142)を含む。図6のデッドゾーン142は、アナログスティック77の静止位置(言い換えれば初期位置)からユーザが入力可能な傾動量のうち18%がデッドゾーンであることを示している。
設定状態画像148は、設定対象の入力部(図8では左アナログスティック77b)を示す画像を含み、その画像の上に、感度およびデッドゾーンに関する情報が重畳される。具体的には、設定状態画像148は、アナログスティック77の静止位置(言い換えれば初期位置)を中心とし、その静止位置からの操作の大きさを複数段階で示す複数の同心円(レベルライン150)を含む。複数のレベルライン150は、操作の大きさの最大値を基準として、その最大値の100%、75%、50%を示す3つのレベルライン150を含んでもよい。レベルライン150は、操作の大きさに関する等高線とも言える。
設定状態画像148には、不感帯を示す第1のオブジェクトであるデッドゾーン152が配置される。デッドゾーン152は、アナログスティック77の静止位置、すなわちレベルライン150で示す円の中心からの距離によってデッドゾーンの範囲を示す。設定状態画像148にはさらに、調整済操作量インジケータ154と未調整操作量インジケータ156が配置される。調整済操作量インジケータ154と未調整操作量インジケータ156はともに、上記中心からの距離によってアナログスティック77に対する操作の大きさを示す。また、調整済操作量インジケータ154と未調整操作量インジケータ156はともに、上記中心から線が延びる向きによってアナログスティック77の傾動方向を示す。
調整済操作量インジケータ154は、アナログスティック77に入力されたユーザの操作に関する値を、調整モード(例えば左アナログスティック調整モード)において調整中のプロファイル情報を用いて調整した値を示す。すなわち、調整中のプロファイル情報がコントローラ6に適用された場合に、情報処理装置10が認識するアナログスティック77の操作量を示す。調整中のプロファイル情報は、例えば、感度カーブ調整ゲージ136およびデッドゾーン調整ゲージ138により調整された感度カーブにより規定される感度の設定値を含む。
未調整操作量インジケータ156は、アナログスティック77に入力されたユーザの操作に関する値に対して、調整モードにおいて調整中のプロファイル情報を未適用の値を示す。具体的には、未調整操作量インジケータ156は、調整モードにおいて調整中のプロファイル情報にかかわらず、アナログスティック77に入力されたユーザの操作量と線形の感度カーブを用いて導出された値を示す。未調整操作量インジケータ156が示す値は、アナログスティック77に入力されたユーザの操作量に基づいて、情報処理装置10が認識するアナログスティック77の操作量のデフォルト値である。なお、「未調整」という用語を用いるが、工場でのコントローラ6の製造時や出荷時におけるアナログスティック77の調整は済んだ状態である。
設定状態画像148は、アナログスティック設定画面130においてユーザが設定した感度カーブに基づくアナログスティック77の感度を表す画像である。具体的には、設定状態画像148は、調整済操作量インジケータ154が示す調整中のプロファイル情報を用いた調整済の値と、未調整操作量インジケータ156が示す調整中のプロファイル情報を未適用の値との関係性を表す画像である。
アナログスティック設定画面130において、ユーザは、感度パターン選択欄134にて、予め定められた複数の感度カーブのパターンの中から所望のパターンを選択する。ここではディレイパターンを選択したこととする。設定画面生成部218は、ディレイパターンで定められた初期感度カーブ146を感度カーブ画像140に配置する。また、設定画面生成部218は、感度カーブ調整ゲージ136およびデッドゾーン調整ゲージ138の設定値を反映した調整感度カーブ144を感度カーブ画像140に配置する。また、ユーザは、アナログスティック設定画面130の設定状態画像148を確認しつつ、アナログスティック77の感度カーブ(デッドゾーンを含む)を調節し、更新する。
情報処理装置10のプロファイル更新指示部222は、アナログスティック設定画面130で指定されたアナログスティック77の感度特性を表す折れ線グラフ(例えば図8の調整感度カーブ144)の頂点の情報を含むプロファイル更新指示をコントローラ6へ送信する。コントローラ6のプロファイル更新部118は、アナログスティック77の感度特性を表す折れ線グラフの頂点の情報をプロファイル記憶部102に格納する。
図9は、感度カーブの例を示す。図9の例では、調整感度カーブ144の頂点1、頂点2、頂点3、頂点4の情報を含むアナログスティック77の感度情報がプロファイル記憶部102に格納される。調整感度カーブ144の各頂点の情報の例を示す。
頂点1の情報:(rDz,0)、頂点2の情報:(r1,r’1)
頂点3の情報:(r2,r’2)、頂点4の情報:(rMax,r’Max)
rDzはデッドゾーンの範囲を示す値であり、すなわち、0≦入力値≦rDzの範囲がデッドゾーンである。頂点4の情報は固定値であってもよい。
頂点1の情報:(rDz,0)、頂点2の情報:(r1,r’1)
頂点3の情報:(r2,r’2)、頂点4の情報:(rMax,r’Max)
rDzはデッドゾーンの範囲を示す値であり、すなわち、0≦入力値≦rDzの範囲がデッドゾーンである。頂点4の情報は固定値であってもよい。
図10は、アナログスティック77の操作と出力値との関係を示す。実線の円で示す物理可動範囲170は、アナログスティック77が実際に移動可能な範囲を示す。復帰位置174は、センター復帰位置とも言え、指がアナログスティック77から離れている時(すなわちアナログスティック77の未操作時)のアナログスティック77の位置である。コントローラ6の製造時、物理可動範囲170におけるAD値の最小値(XminおよびYmin)と最大値(XmaxおよびYmax)、さらに復帰位置174でのAD値(XcenterおよびYcenter)が計測される。
さらに、復帰位置174から物理可動範囲170に基づくAD最大値(XmaxおよびYmax)までの距離の所定割合(実施例では4%)をオフセット値とし、AD最大値からオフセット値分内側の位置(X’maxおよびY’max)をコントローラ6からの出力値の最大値とする。同様に、復帰位置174から物理可動範囲170に基づくAD最小値(XminおよびYmin)までの距離の所定割合(実施例では4%)をオフセット値とし、AD最小値からオフセット値分内側の位置(X’minおよびY’min)をコントローラ6からの出力値の最小値とする。
(X’maxおよびY’max)と(X’minおよびY’min)により規定される範囲を論理可動範囲172とする。コントローラ6からの出力値は、0~255の範囲で正規化される。正規化された出力値は、論理可動範囲172の範囲で値が変化する。
図10の下のグラフで示すように、X軸方向の出力値は、物理可動範囲170におけるX軸のAD値に応じて以下のように求められる。
(1)X’min以下の場合、出力値を0とする。
(2)X’min~Xcenterの場合、出力値が0~128になるように直線補間して出力値を求める。
(3)Xcenter~X’maxの場合、出力値が128~255になるように直線補間して出力値を求める。
(4)X’max以上の場合、出力値を255とする。
(1)X’min以下の場合、出力値を0とする。
(2)X’min~Xcenterの場合、出力値が0~128になるように直線補間して出力値を求める。
(3)Xcenter~X’maxの場合、出力値が128~255になるように直線補間して出力値を求める。
(4)X’max以上の場合、出力値を255とする。
同様に、図10の右のグラフで示すように、Y軸方向の出力値は、物理可動範囲170におけるY軸のAD値に応じて以下のように求められる。
(1)Y’min以下の場合、出力値を0とする。
(2)Y’min~Ycenterの場合、出力値が0~128になるように直線補間して出力値を求める。
(3)Ycenter~Y’maxの場合、出力値が128~255になるように直線補間して出力値を求める。
(4)Y’max以上の場合、出力値を255とする。
(1)Y’min以下の場合、出力値を0とする。
(2)Y’min~Ycenterの場合、出力値が0~128になるように直線補間して出力値を求める。
(3)Ycenter~Y’maxの場合、出力値が128~255になるように直線補間して出力値を求める。
(4)Y’max以上の場合、出力値を255とする。
図8および図9に示したように、アナログスティック設定画面130では、ユーザは、デッドゾーンを含み得る任意形状の感度カーブ(調整感度カーブ144)を設定できる。コントローラ6の操作情報生成部114は、アナログスティック77の出力値に、任意形状の感度カーブの設定値を反映させる必要がある。
図11は、コントローラ6の動作を示すフローチャートである。操作検出部112は、アナログスティック77を傾動させる操作が入力された場合に、その操作量(言い換えればアナログスティック77の傾動量)に応じたAD値を取得する(S10)。操作情報生成部114は、S10で取得されたAD値に基づいて、中心を0とする仮の直交座標系の値(x,y)を取得する(S11)。後段にて計算精度が低下することを防止するため、S11では相対的に高精度の値を取得し、具体的には数値の範囲を-32767~32767とする。
tan2θと1/tan2θは、乗算と除算のみで計算できる。また、今回の処理では偏角θは不変である。そのため、tan2θと1/tan2θを用いて後段の極座標系から直交座標系への変換を行うことができる。このような手順により、三角関数の計算(tan-1θおよびθの導出)が不要になり、計算負荷を低減できる。なお、x=0またはy=0の場合には、式2、式3の計算は行わない。
操作情報生成部114は、プロファイル記憶部102に記憶されたプロファイル情報が示すアナログスティック77の感度カーブ情報に基づいて、S12で求めた動径値rを、アナログスティック77に設定された感度を反映した値r’に変換する(S13)。
例えば、アナログスティック77の感度カーブ情報として、図9の調整感度カーブ144の頂点1~頂点4の情報が設定されていることとする。図12は、感度適用前の極座標系の値(r,θ)の例を示し、図13は、感度適用後の極座標系の値(r’,θ)の例を示す。物理可動範囲170は、アナログスティック77の物理的な可動範囲を示す。論理可動範囲176は、図10の論理可動範囲172に対応し、動径値rに関する論理的な値範囲を示す。論理可動範囲176は、物理可動範囲170より所定のオフセット分小さい円であり、実施例では、物理可動範囲170より半径が4%小さい円である。
動径値rが、rDz以下(すなわちデッドゾーン範囲178内の値)である場合、調整後の値は0になる。図13のr’1は、調整感度カーブ144において図12のr1に対応する値である。図13のr‘2は、調整感度カーブ144において図12のr2に対応する値である。図13のr’Maxは、調整感度カーブ144において図12のrMaxに対応する値である。操作情報生成部114は、S12で求めた動径値rを入力として、調整感度カーブ144の頂点間を直線補間することにより対応する出力値r’を導出する。
操作情報生成部114は、動径値変換後の極座標系の値(r’,θ)を直交座標系の値(x’,y’)に変換する(S14)。操作情報生成部114は、式4および式5に基づき、x’(式4ではxと表記)とy’(式5ではyと表記)の値を導出する。
x=0またはy=0の場合、式4および式5の計算は行わない。また、x’とy’の符号は、極座標系に変換する前のxとyの符号と同じである。
操作情報生成部114は、中心の値を0とする仮の直交座標系の値(x’,y’)から、操作情報としての規定の形式である0~128~255の出力値(xout,yout)に変換する(S15)。出力値(xout,yout)は、図10で示したように、下限値を0、中心値を128、上限値を255とする直交座標系の値である。(x’,y’)の値範囲は(x,y)と同様に高精度(-32767~32767)である一方、出力値(xout,yout)の値範囲は低精度(0~255)に定められる。
操作情報生成部114は、アナログスティック77に対するユーザ操作に基づく操作情報として、上記の出力値(xout,yout)を含む操作情報を生成する。操作情報送信部116は、操作情報生成部114が生成した操作情報を情報処理装置10へ送信する(S16)。
情報処理装置10のアプリケーション実行部216は、ユーザに操作に基づく出力値(xout,yout)を用いてアプリケーションを実行し、例えば、出力値(xout,yout)をゲームキャラクタの動きに反映させる。また、情報処理装置10の設定画面生成部218は、アナログスティック設定画面130の設定状態画像148の調整済操作量インジケータ154を、出力値(xout,yout)に基づく位置に配置する。
実施例の情報処理システム1の第1の特徴によると、アナログ入力デバイスへのユーザの操作に基づく直交座標系の値を極座標系の値に一旦変換した上で、変換後の値にアナログ入力デバイスの感度特性を反映させる。これにより、アナログ入力デバイスへのユーザの操作に基づくコントローラ6の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減できる。
また、図10に関連して説明したように、コントローラ6は、アナログスティック77の物理可動範囲170より予め定められたオフセット分狭い範囲(論理可動範囲176)での操作に基づいて、操作情報に設定可能な最小値から最大値までの値(0~255の値)を生成する。これにより、時間経過とともにアナログスティック77の物理的な可動範囲がオフセット分移動しても、予め定められた出力値の範囲(最小値~最大値)を維持することができる。情報処理システム1の第1の特徴は、アナログスティック77に限られず、トリガーボタン84等、他の種類のアナログ入力デバイスにも適用可能である。
次に、情報処理システム1の第2の特徴に関する動作として、主に、トリガーボタン84(R2ボタン84aおよびL2ボタン84b)に関する調整と動作について説明する。
図14(a)、図14(b)、図14(c)は、トリガーストッパー87の設定と正規化範囲180との関係を示す。図14(a)は、トリガーストッパー87を第1段階に設定した場合(トリガーボタン84の回動可能角度は26度)の関係を示している。図14(b)は、トリガーストッパー87を第2段階に設定した場合(トリガーボタン84の回動可能角度は14度)の関係を示している。図14(c)は、トリガーストッパー87を第3段階に設定した場合(トリガーボタン84の回動可能角度は10度)の関係を示している。
コントローラ6の製造時、トリガーボタン84のリリース状態からフルストローク状態までの間の複数の位置を補正点として、各補正点で特性値(実施例ではAD値)が計測される。実施例における複数の補正点は、リリース位置の補正点P0から、フルストローク位置の補正点P8までの、9個の補正点を含む。補正点P8は、物理的なストッパーが設定される位置でもある。P0~P8は、等間隔に設けられる。なお、コントローラ6の製造時には、トリガーストッパー87の第1段階、第2段階、第3段階のそれぞれにおいて、9個の補正点が設けられ、各補正点でのAD値が計測される。
正規化範囲180は、出力値が0~255の範囲の値に正規化される範囲である。トリガーストッパー87の第1段階では、P2~P7が正規化範囲180となる。トリガーストッパー87の第2段階では、P2~P6が正規化範囲180となる。トリガーストッパー87の第3段階では、P3~P5が正規化範囲180となる。このように、トリガーボタン84の回動可能角度が小さく制限されるほど、正規化範囲180は狭くなる。
リリース側オフセット182は、ハードウェアにて実現される、P0側に設けられた遊び領域である。フルストローク側オフセット184は、ハードウェアにて実現される、P8側に設けられた遊び領域である。リリース側オフセット182およびフルストローク側オフセット184では、コントローラ6からの出力値は変化しない。例えば、アナログスティック77の傾動量が、リリース側オフセット182の範囲内であれば出力値は一定値「0」となる。また、アナログスティック77の傾動量が、フルストローク側オフセット184の範囲内であれば出力値は一定値「255」となる。
図15は、トリガーストッパー87の設定とデッドゾーンとの関係を示す。デッドゾーンは、トリガーストッパー87の設定とは独立して、アナログスティック設定画面130にて設定される。デッドゾーンが未設定の場合、回動可能範囲から、リリース側オフセット182とフルストローク側オフセット184を除いた範囲が、0~255の値が出力される正規化範囲180となる。
一方、デッドゾーンが設定されている場合、回動可能範囲から、リリース側オフセット182とフルストローク側オフセット184を除き、さらに、リリース側デッドゾーン186とフルストローク側デッドゾーン188を除いた範囲が正規化範囲180となる。リリース側デッドゾーン186は、リリース側(P0側)に設けられたデッドゾーンであり、フルストローク側デッドゾーン188は、フルストローク側(P8側)に設けられたデッドゾーンである。
図16は、トリガー設定画面300の例を示す。図16のトリガー設定画面300は、コントローラ6のトリガーボタン84(R2ボタン84aおよびL2ボタン84b)のデッドゾーンを設定するためのコンテンツを含む。具体的には、トリガー設定画面300は、R2デッドゾーン設定エリア302a、R2挙動確認エリア304a、L2デッドゾーン設定エリア302b、L2挙動確認エリア304bを含む。
R2デッドゾーン設定エリア302aは、R2ボタン84aのデッドゾーンの設定値を入力するエリアであり、L2デッドゾーン設定エリア302bは、L2ボタン84bのデッドゾーンの設定値を入力するエリアである。実施例では、R2デッドゾーン設定エリア302aとL2デッドゾーン設定エリア302bでは、有効範囲(図15の正規化範囲180に対応)の始点および終点が百分率で指定される。始点の値は、リリース側デッドゾーン186の範囲を指定する値であり、言い換えれば、リリース側デッドゾーン186と正規化範囲180との境界を指定する値である。終点の値は、フルストローク側デッドゾーン188の範囲を指定する値であり、言い換えれば、フルストローク側デッドゾーン188と正規化範囲180との境界を指定する値である。
図16の例では、R2ボタン84aにはデッドゾーンが設定されておらず、入力範囲の全体が有効範囲に指定されている。一方、L2ボタン84bについては、始点側の50%がデッドゾーン(リリース側デッドゾーン186)に指定され、終点側の50%が有効範囲に指定されている。
L2挙動確認エリア304bは、L2ボタン84bの回動操作に応じたシステム入力値の大きさが表示されるエリアであり、L2ボタン84bの操作量(システム入力値)を示す操作量インジケータ306が表示される。図16には不図示だが、R2挙動確認エリア304aにも、R2ボタン84aの回動操作に応じた、R2ボタン84aの操作量(システム入力値)を示す操作量インジケータ306が表示されうる。R2挙動確認エリア304aおよびL2挙動確認エリア304bでは、デッドゾーンに該当する部分は相対的に低い明度で表示され、有効範囲に該当する部分は相対的に高い明度で表示される。
ユーザは、R2デッドゾーン設定エリア302aにR2ボタン84aの入力範囲の設定値(言い換えればデッドゾーンの設定値)を入力し、および/または、L2デッドゾーン設定エリア302bにL2ボタン84bの入力範囲の設定値(言い換えればデッドゾーンの設定値)を入力する。情報処理装置10のプロファイル更新指示部222は、R2デッドゾーン設定エリア302aに入力された設定値およびL2デッドゾーン設定エリア302bに入力された設定値を含むプロファイル更新指示をコントローラ6へ送信する。コントローラ6のプロファイル更新部118は、情報処理装置10から送信されたデッドゾーンの設定値をプロファイル記憶部102のプロファイル情報に反映させる。
図17は、補正点とコントローラ6の出力値との関係を示す。図17は、トリガーストッパー87が第1段階に設定され、かつ、デッドゾーンが未設定の場合の関係を示している。デッドゾーンが未設定の場合、コントローラ6の割当部120は、正規化範囲180におけるリリース側端部のP2に最小の出力値0を割り当て、正規化範囲180におけるフルストローク側端部のP7に最大の出力値「255」を割り当てる。P3、P4、P5、P6のそれぞれには、0~255を5等分した値を割り当てる。割当部120は、複数の補正点P0~P8のそれぞれについて、コントローラ6の製造時に計測されたAD値と、各補正点に割り当てられた出力値との組を補正点情報記憶部104に格納する。
コントローラ6の操作検出部112は、トリガーボタン84に対してユーザ操作が入力された場合に、ユーザ操作に基づくAD値を検出する。コントローラ6の操作情報生成部114は、操作検出部112により検出されたAD値と、少なくとも1つの補正点に関連付けられたAD値および出力値とに基づいて、入力されたユーザ操作に対応する出力値を導出する。具体的には、操作情報生成部114は、ユーザ操作に基づくAD値と各補正点のAD値との大小関係に基づく線形補間によりユーザ操作に対応する出力値(0~255の範囲の値)を導出する。
以降は既述したように、操作情報生成部114は、ユーザ操作に対応する出力値を含む操作情報を生成する。操作情報送信部116は、操作情報を情報処理装置10へ送信する。情報処理装置10のアプリケーション実行部216は、コントローラ6から送信された操作情報が示す、ユーザ操作に対応する出力値に基づいてアプリケーションを実行する。
図18も、補正点とコントローラ6の出力値との関係を示す。図18は、トリガーストッパー87が第1段階に設定され、かつ、デッドゾーンが設定された場合の関係を示している。図16に示したトリガー設定画面300では、ユーザは、補正点の位置にかかわらず、リリース側デッドゾーン186とフルストローク側デッドゾーン188を任意の大きさに設定可能である。図18の例では、リリース側デッドゾーン186の境界がP3とP4の間に設定される一方、フルストローク側デッドゾーン188は未設定である。この場合に、P4、P5、P6に対応する出力値を図17に示した値にすると、ユーザ操作に基づく出力値の線形性を維持できない。
そこで、実施例では、コントローラ6の割当部120は、トリガーボタン84のデッドゾーンの設定に応じて、少なくとも1つの補正点に対応する出力値を動的に変更する。具体的には、割当部120は、トリガーボタン84にデッドゾーンが設定された場合、デッドゾーンを除いたトリガーボタン84の回動可能範囲に出力値の最小値0から最大値255が対応するように、デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる。デッドゾーン範囲外は、有効範囲内とも言える。
割当部120は、設定されたリリース側デッドゾーン186とフルストローク側デッドゾーン188を除いたトリガーボタン84の回動可能範囲に出力値の最小値0から最大値255が対応するように、リリース側デッドゾーン186外かつフルストローク側デッドゾーン188外の補正点のそれぞれに新たな出力値を割り当てる。また、割当部120は、トリガーボタン84に関するリリース側デッドゾーン186またはフルストローク側デッドゾーン188が新規に設定され、または変更される都度、各デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる。
なお、割当部120は、トリガーボタン84の回動開始位置P0から所定の補正点までの範囲に出力値の最小値0を割り当てる。所定の補正点は、実施例では、リリース側オフセット182に含まれる補正点、および、リリース側デッドゾーン186に含まれる補正点のうち回動量(AD値)が最も大きい補正点である。
また、割当部120は、所定の補正点からトリガーボタン84の回動終了位置P8までの範囲に出力値の最大値255を割り当てる。所定の補正点は、実施例では、フルストローク側オフセット184に含まれる補正点、および、フルストローク側デッドゾーン188に含まれる補正点のうち回動量(AD値)が最も小さい補正点である。このように、トリガーボタン84のリリース位置近傍とフルストローク位置近傍に遊び領域を設けることで、トリガーボタン84の操作性を向上できる。
図19は、補正点に新たな出力値を割り当てる例を示す。ここでは、トリガーストッパー87は、第1段階に設定されている。デッドゾーンが未設定の場合、P2~P7が正規化範囲180となり、割当部120は、補正点により区切られる各区間が0~255を5等分するように、各補正点に対応する出力値を割り当てる。
次に、P2から、P3とP4の間の始点Prまでリリース側デッドゾーン186が設定され、P6とP7の間の終点Pfから、P7までフルストローク側デッドゾーン188が設定されたこととする。この場合、リリース側デッドゾーン186とフルストローク側デッドゾーン188を除いたトリガーボタン84の回動可能範囲(すなわち正規化範囲180)はPr~Pfとなる。割当部120は、Prを最小値0とし、Pfを最大値255とし、Pr~Pfの区間に0から255までを割り当てるように、P4、P5、P6に、新たな出力値Np4、Np5、Np6を割り当てる。
図19では、リリース側デッドゾーン186の大きさが、デッドゾーン未設定の場合の正規化範囲180(P2~P7)に対するx%に指定されている。また、フルストローク側デッドゾーン188の大きさが、デッドゾーン未設定の場合の正規化範囲180(P2~P7)に対するy%に指定されている。x、yはともに0~99の範囲の値である。
割当部120は、式6にしたがって、デッドゾーンが未設定の場合の正規化範囲180(P2~P7)に対するPr~P4の割合を導出する。
(20-(x-20*m))% ・・・(式6)
mは、リリース側デッドゾーン186に含まれる補正点の区間の個数であり、0~4の値になる。図19ではm=1である。
(20-(x-20*m))% ・・・(式6)
mは、リリース側デッドゾーン186に含まれる補正点の区間の個数であり、0~4の値になる。図19ではm=1である。
割当部120は、式7~式9にしたがって、P4、P5、P6の出力値を導出する。
Np4=255*(20-(x-20*m))/(100-x-y) ・・・(式7)
Np5=Np4+255*20/(100-x-y) ・・・(式8)
Np6=Np5+255*20/(100-x-y) ・・・(式9)
Np4=255*(20-(x-20*m))/(100-x-y) ・・・(式7)
Np5=Np4+255*20/(100-x-y) ・・・(式8)
Np6=Np5+255*20/(100-x-y) ・・・(式9)
図20も、補正点に新たな出力値を割り当てる例を示す。ここでも、トリガーストッパー87は、第1段階に設定されている。図20では、P2から、P3とP4の間の始点Prまでリリース側デッドゾーン186(設定値xは24%)が設定されている。フルストローク側デッドゾーン188は未設定である。
この場合、割当部120は、上記の式6にしたがって、デッドゾーン未設定の場合の正規化範囲180(P2~P7)に対するPr~P4の割合を16%と導出する。また、割当部120は、上記の式7~式9にしたがって、Np4を54、Np5を121、Np6を188と導出する。
割当部120は、新たな出力値を導出した補正点について、当該補正点の特性値と新たな出力値の組を補正点情報記憶部104に格納する。操作情報生成部114は、複数の補正点の特性値と出力値(新たな出力値)を用いて、トリガーボタン84へのユーザ操作に基づく操作情報を生成する。
トリガーストッパー87によりトリガーボタン84の回動可能範囲が制限され、かつ、トリガーボタン84にデッドゾーン(リリース側デッドゾーン186とフルストローク側デッドゾーン188の少なくとも一方)が設定された場合を考える。この場合、割当部120は、トリガーストッパー87により制限されたトリガーボタン84の回動可能範囲からデッドゾーンを除いた範囲を正規化範囲180として検出する。割当部120は、正規化範囲180に出力値の最小値0から最大値255が対応するように、正規化範囲180内(言い換えればデッドゾーン範囲外)の補正点のそれぞれに新たな出力値を割り当てる。
上記の式6~式9に含まれる値「20」は、トリガーストッパー87が第1段階に設定された場合の固定値であり、デッドゾーン未設定の場合の正規化範囲180(P2~P7)に対する1つの補正点区間(例えばP2~P3)の割合(%)である。この割合を以下「区間割合」と呼ぶ。
既述したように、トリガーストッパー87が第2段階に設定された場合、トリガーボタン84の最大回動角度は14度に制限される。また、図14(b)に示したように、正規化範囲180は、P2~P6になり、区間割合は25%になる。したがって、この場合、上記の式5~式9における「20」を「25」に置き換えた式を用いる。
また、トリガーストッパー87が第3段階に設定された場合、トリガーボタン84の最大回動角度は10度に制限される。また、図14(c)に示したように、正規化範囲180は、P3~P5になり、区間割合は50%になる。したがって、この場合、上記の式5~式9における「20」を「50」に置き換えた式を用いる。
割当部120は、トリガーストッパー87を用いた、トリガーボタン84の回動可能範囲を制限する操作が入力されたことを検出する。この操作は、例えば、トリガーストッパー87のスイッチをスライドさせて段階を切り替える操作であってもよい。割当部120は、トリガーボタン84の回動可能範囲を制限する操作が入力される都度、および、トリガーボタン84にデッドゾーンが設定(新規設定、変更等)される都度、デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる。
なお、割当部120は、トリガーストッパー87によりトリガーボタン84の回動可能範囲が狭く制限されるほど、より多くの補正点に出力値の最小値を割り当てる。また、割当部120は、トリガーストッパー87によりトリガーボタン84の回動可能範囲が狭く制限されるほど、より多くの補正点に出力値の最大値を割り当てる。
例えば、図14(a)、図14(b)に示したように、トリガーストッパー87が第1段階または第2段階に設定され、かつ、デッドゾーン未設定の場合、正規化範囲180は、P2が始点となる。この場合、割当部120は、P0、P1、P2に出力値0(最小値)を割り当てる。一方、図14(c)に示したように、トリガーストッパーが第3段階に設定され、かつ、デッドゾーン未設定の場合、正規化範囲180は、P3が始点となる。この場合、割当部120は、P0、P1、P2、P3に出力値0を割り当てる。
また、図14(a)に示したように、トリガーストッパー87が第1段階に設定され、かつ、デッドゾーン未設定の場合、正規化範囲180は、P7が終点となる。この場合、割当部120は、P7、P8に出力値255(最大値)を割り当てる。一方、図14(b)に示したように、トリガーストッパー87が第2段階に設定され、かつ、デッドゾーン未設定の場合、正規化範囲180は、P6が終点となる。この場合、割当部120は、P6、P7、P8に出力値255を割り当てる。さらに、トリガーストッパー87が第3段階に設定され、かつ、デッドゾーン未設定であれば、正規化範囲180は、P5が終点となる。この場合、割当部120は、P5、P6、P7、P8に出力値255を割り当てる。
実施例の情報処理システム1の第2の特徴によると、リリース側デッドゾーン186および/またはフルストローク側デッドゾーン188が設定されたトリガーボタン84に対するユーザ操作に伴う出力値の線形性を維持できる。情報処理システム1の第2の特徴は、トリガーボタン84に限られず、アナログスティック77等、デッドゾーンを設定可能な他の種類のアナログ入力デバイスにも適用可能である。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上述した実施例および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施例および変形例それぞれの効果をあわせもつ。また、請求項に記載の各構成要件が果たすべき機能は、実施例および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
上記実施例および変形例に記載の技術思想は、以下の各項目に記載の態様のように表現することができる。
[項目1-1]
アナログ入力デバイスと、
前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する生成部と、
前記生成部により生成された操作情報を外部の情報処理装置へ送信する送信部と、
を備え、
前記生成部は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、
操作装置。
この操作装置によると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-2]
前記別の座標系は、極座標系である、
項目1-1に記載の操作装置。
この操作装置によると、直交座標系の値を一旦、計算負荷的に有利となる極座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-3]
前記生成部は、前記(B)において、前記極座標系の動径値を導出する一方、偏角の値を導出せず、
前記生成部は、前記(C)において、前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記極座標系の動径値を変換する、
項目1-2に記載の操作装置。
この操作装置によると、極座標変換において偏角を導出しないことで計算負荷を低減できる。
[項目1-4]
前記生成部は、前記(A)において、前記アナログ入力デバイスの操作量に基づく直交座標系の値として相対的に高精度の値を取得し、
前記生成部は、前記(D)において、前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を前記直交座標系の値に変換し、変換後の前記直交座標系の値を相対的に低精度の値にさらに変換する、
項目1-1から1-3のいずれかに記載の操作装置。
この操作装置によると、高精度の値を感度反映の計算に用いることで、計算精度の低下を抑制できる。
[項目1-5]
前記生成部は、前記アナログ入力デバイスの物理的な可能範囲よりも予め定められたオフセット分狭い範囲での操作に基づいて、前記操作情報に設定可能な最小値から最大値までの値を生成する、
項目1-1から1-4のいずれかに記載の操作装置。
この操作装置によると、時間経過とともにアナログ入力デバイスの物理的な可動範囲がオフセット分移動しても、予め定められた出力値の範囲を維持できる。
[項目1-6]
アナログ入力デバイスと、
前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、
プロセッサと、
を備え、
前記プロセッサは、前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する処理と、生成した操作情報を外部の情報処理装置へ送信する処理を実行し、
前記生成する処理は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
操作装置。
この操作装置によると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-7]
アナログ入力デバイスと、前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、を備える操作装置が、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成するステップと、
前記生成するステップで生成された操作情報を外部の情報処理装置へ送信するステップと、
を実行し、
前記生成するステップは、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
情報処理方法。
この情報処理方法によると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、操作装置において、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-8]
アナログ入力デバイスと、前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、を備える操作装置に、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する機能と、
前記生成する機能により生成された操作情報を外部の情報処理装置へ送信する機能と、
を実現させ、
前記生成する機能は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
コンピュータプログラム。
このコンピュータプログラムによると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、操作装置において、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-1]
アナログ入力デバイスと、
前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する生成部と、
前記生成部により生成された操作情報を外部の情報処理装置へ送信する送信部と、
を備え、
前記生成部は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、
操作装置。
この操作装置によると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-2]
前記別の座標系は、極座標系である、
項目1-1に記載の操作装置。
この操作装置によると、直交座標系の値を一旦、計算負荷的に有利となる極座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-3]
前記生成部は、前記(B)において、前記極座標系の動径値を導出する一方、偏角の値を導出せず、
前記生成部は、前記(C)において、前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記極座標系の動径値を変換する、
項目1-2に記載の操作装置。
この操作装置によると、極座標変換において偏角を導出しないことで計算負荷を低減できる。
[項目1-4]
前記生成部は、前記(A)において、前記アナログ入力デバイスの操作量に基づく直交座標系の値として相対的に高精度の値を取得し、
前記生成部は、前記(D)において、前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を前記直交座標系の値に変換し、変換後の前記直交座標系の値を相対的に低精度の値にさらに変換する、
項目1-1から1-3のいずれかに記載の操作装置。
この操作装置によると、高精度の値を感度反映の計算に用いることで、計算精度の低下を抑制できる。
[項目1-5]
前記生成部は、前記アナログ入力デバイスの物理的な可能範囲よりも予め定められたオフセット分狭い範囲での操作に基づいて、前記操作情報に設定可能な最小値から最大値までの値を生成する、
項目1-1から1-4のいずれかに記載の操作装置。
この操作装置によると、時間経過とともにアナログ入力デバイスの物理的な可動範囲がオフセット分移動しても、予め定められた出力値の範囲を維持できる。
[項目1-6]
アナログ入力デバイスと、
前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、
プロセッサと、
を備え、
前記プロセッサは、前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する処理と、生成した操作情報を外部の情報処理装置へ送信する処理を実行し、
前記生成する処理は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
操作装置。
この操作装置によると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-7]
アナログ入力デバイスと、前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、を備える操作装置が、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成するステップと、
前記生成するステップで生成された操作情報を外部の情報処理装置へ送信するステップと、
を実行し、
前記生成するステップは、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
情報処理方法。
この情報処理方法によると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、操作装置において、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目1-8]
アナログ入力デバイスと、前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、を備える操作装置に、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する機能と、
前記生成する機能により生成された操作情報を外部の情報処理装置へ送信する機能と、
を実現させ、
前記生成する機能は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
コンピュータプログラム。
このコンピュータプログラムによると、直交座標系の値を一旦、計算負荷的に有利となる別の座標系の値に変換した上でアナログ入力デバイスの感度を反映させる。これにより、操作装置において、アナログ入力デバイスへのユーザの操作に基づく操作装置の出力値に対して、アナログ入力デバイスに設定された感度を反映するための計算負荷を低減することができる。
[項目2-1]
ユーザにより操作されるアナログ入力デバイスと、
前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、
前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当てる割当部と、
前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力する出力部と、
を備え、
前記割当部は、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
操作装置。
この操作装置によると、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-2]
前記アナログ入力デバイスには、前記デッドゾーンとして、操作開始側の第1デッドゾーンと、操作終了側の第2デッドゾーンの一方または両方を設定可能であり、
前記割当部は、設定された第1デッドゾーンと第2デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、設定された第1デッドゾーンと第2デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-1に記載の操作装置。
この操作装置によると、アナログ入力デバイスの操作開始側と操作終了側の一方または両方にデッドゾーンが設定された場合でも、アナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-3]
前記割当部は、前記アナログ入力デバイスにデッドゾーンが設定される都度、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-1または2-2に記載の操作装置。
この操作装置によると、デッドゾーンの設定や変更に追従して、アナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-4]
前記アナログ入力デバイスの移動可能範囲を制限する制限部をさらに備え、
前記アナログ入力デバイスの移動可能範囲が制限され、かつ、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記割当部は、前記アナログ入力デバイスの制限された移動可能範囲から前記デッドゾーンを除いた移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-1から2-3のいずれかに記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動可能範囲(例えばストローク範囲や回動範囲)が制限される場合でも、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-5]
前記割当部は、前記アナログ入力デバイスの移動可能範囲を制限する操作が入力される都度、または、前記アナログ入力デバイスにデッドゾーンが設定される都度、前記デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-4に記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動可能範囲の変更や、デッドゾーンの変更に追従して、アナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-6]
前記割当部は、前記アナログ入力デバイスの移動開始位置から所定の補正点までの範囲に前記出力値の最小値を割り当て、または、所定の補正点から前記アナログ入力デバイスの移動終了位置までの範囲に前記出力値の最大値を割り当てる、
項目2-1から2-5のいずれかに記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動開始位置(例えばリリース位置または初期位置)と移動終了位置(例えばフルストローク位置)の一方または両方に遊び領域を設けることで、アナログ入力デバイスの操作性を向上できる。
[項目2-7]
前記アナログ入力デバイスの移動可能範囲を制限する制限部をさらに備え、
前記アナログ入力デバイスの移動可能範囲が狭くなるほど、前記割当部は、より多くの補正点に前記出力値の最小値を割り当て、または、より多くの補正点に前記出力値の最大値を割り当てる、
項目2-1から2-6のいずれかに記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動可能範囲(例えばストローク範囲や回動範囲)が制限される場合でも、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-8]
ユーザにより操作されるアナログ入力デバイスと、
前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、
プロセッサと、
を備え、
前記プロセッサは、前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当て、
前記プロセッサは、前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力し、
前記プロセッサは、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
操作装置。
この操作装置によると、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-9]
ユーザにより操作されるアナログ入力デバイスと、前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、を備える操作装置が、
前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当てるステップと、
前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力するステップと、
を実行し、
前記割り当てるステップは、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
情報処理方法。
この情報処理方法によると、操作装置において、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-10]
ユーザにより操作されるアナログ入力デバイスと、前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、を備える操作装置に、
前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当てる機能と、
前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力する機能と、
を実現させ、
前記割り当てる機能は、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
コンピュータプログラム。
このコンピュータプログラムによると、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性維持を操作装置に実現させることができる。
ユーザにより操作されるアナログ入力デバイスと、
前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、
前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当てる割当部と、
前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力する出力部と、
を備え、
前記割当部は、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
操作装置。
この操作装置によると、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-2]
前記アナログ入力デバイスには、前記デッドゾーンとして、操作開始側の第1デッドゾーンと、操作終了側の第2デッドゾーンの一方または両方を設定可能であり、
前記割当部は、設定された第1デッドゾーンと第2デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、設定された第1デッドゾーンと第2デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-1に記載の操作装置。
この操作装置によると、アナログ入力デバイスの操作開始側と操作終了側の一方または両方にデッドゾーンが設定された場合でも、アナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-3]
前記割当部は、前記アナログ入力デバイスにデッドゾーンが設定される都度、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-1または2-2に記載の操作装置。
この操作装置によると、デッドゾーンの設定や変更に追従して、アナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-4]
前記アナログ入力デバイスの移動可能範囲を制限する制限部をさらに備え、
前記アナログ入力デバイスの移動可能範囲が制限され、かつ、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記割当部は、前記アナログ入力デバイスの制限された移動可能範囲から前記デッドゾーンを除いた移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-1から2-3のいずれかに記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動可能範囲(例えばストローク範囲や回動範囲)が制限される場合でも、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-5]
前記割当部は、前記アナログ入力デバイスの移動可能範囲を制限する操作が入力される都度、または、前記アナログ入力デバイスにデッドゾーンが設定される都度、前記デッドゾーン範囲外の補正点のそれぞれに新たな出力値を割り当てる、
項目2-4に記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動可能範囲の変更や、デッドゾーンの変更に追従して、アナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-6]
前記割当部は、前記アナログ入力デバイスの移動開始位置から所定の補正点までの範囲に前記出力値の最小値を割り当て、または、所定の補正点から前記アナログ入力デバイスの移動終了位置までの範囲に前記出力値の最大値を割り当てる、
項目2-1から2-5のいずれかに記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動開始位置(例えばリリース位置または初期位置)と移動終了位置(例えばフルストローク位置)の一方または両方に遊び領域を設けることで、アナログ入力デバイスの操作性を向上できる。
[項目2-7]
前記アナログ入力デバイスの移動可能範囲を制限する制限部をさらに備え、
前記アナログ入力デバイスの移動可能範囲が狭くなるほど、前記割当部は、より多くの補正点に前記出力値の最小値を割り当て、または、より多くの補正点に前記出力値の最大値を割り当てる、
項目2-1から2-6のいずれかに記載の操作装置。
この操作装置によると、アナログ入力デバイスの移動可能範囲(例えばストローク範囲や回動範囲)が制限される場合でも、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-8]
ユーザにより操作されるアナログ入力デバイスと、
前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、
プロセッサと、
を備え、
前記プロセッサは、前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当て、
前記プロセッサは、前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力し、
前記プロセッサは、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
操作装置。
この操作装置によると、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-9]
ユーザにより操作されるアナログ入力デバイスと、前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、を備える操作装置が、
前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当てるステップと、
前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力するステップと、
を実行し、
前記割り当てるステップは、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
情報処理方法。
この情報処理方法によると、操作装置において、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性を維持できる。
[項目2-10]
ユーザにより操作されるアナログ入力デバイスと、前記アナログ入力デバイスの移動量が異なる複数の補正点のそれぞれで計測された特性値を記憶する記憶部と、を備える操作装置に、
前記複数の補正点のそれぞれに、操作の大きさを示す出力値を割り当てる機能と、
前記アナログ入力デバイスに操作が入力された場合、計測された特性値と、少なくとも1つの補正点に関する特性値および出力値とに基づく、入力された操作に対応する出力値を外部へ出力する機能と、
を実現させ、
前記割り当てる機能は、前記アナログ入力デバイスにデッドゾーンが設定された場合、前記デッドゾーンを除いた前記アナログ入力デバイスの移動可能範囲に前記出力値の最小値から最大値が対応するように、前記デッドゾーンの範囲外の補正点のそれぞれに新たな出力値を割り当てる、
コンピュータプログラム。
このコンピュータプログラムによると、デッドゾーンが設定されたアナログ入力デバイスに対するユーザ操作に伴う出力値の線形性維持を操作装置に実現させることができる。
本発明は、操作装置や情報処理システム等に適用できる。
1 情報処理システム、 6 コントローラ、 10 情報処理装置、 77 アナログスティック、 84 トリガーボタン、 87 トリガーストッパー、 102 プロファイル記憶部、 104 補正点情報記憶部、 114 操作情報生成部、 116 操作情報送信部、 120 割当部。
Claims (8)
- アナログ入力デバイスと、
前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する生成部と、
前記生成部により生成された操作情報を外部の情報処理装置へ送信する送信部と、
を備え、
前記生成部は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、
操作装置。 - 前記別の座標系は、極座標系である、
請求項1に記載の操作装置。 - 前記生成部は、前記(B)において、前記極座標系の動径値を導出する一方、偏角の値を導出せず、
前記生成部は、前記(C)において、前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記極座標系の動径値を変換する、
請求項2に記載の操作装置。 - 前記生成部は、前記(A)において、前記アナログ入力デバイスの操作量に基づく直交座標系の値として相対的に高精度の値を取得し、
前記生成部は、前記(D)において、前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を前記直交座標系の値に変換し、変換後の前記直交座標系の値を相対的に低精度の値にさらに変換する、
請求項1に記載の操作装置。 - 前記生成部は、前記アナログ入力デバイスの物理的な可能範囲よりも予め定められたオフセット分狭い範囲での操作に基づいて、前記操作情報に設定可能な最小値から最大値までの値を生成する、
請求項1に記載の操作装置。 - アナログ入力デバイスと、
前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、
プロセッサと、
を備え、
前記プロセッサは、前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する処理と、生成した操作情報を外部の情報処理装置へ送信する処理を実行し、
前記生成する処理は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
操作装置。 - アナログ入力デバイスと、前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、を備える操作装置が、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成するステップと、
前記生成するステップで生成された操作情報を外部の情報処理装置へ送信するステップと、
を実行し、
前記生成するステップは、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
情報処理方法。 - アナログ入力デバイスと、前記アナログ入力デバイスの感度に関する設定情報を記憶する記憶部と、を備える操作装置に、
前記アナログ入力デバイスに対するユーザの操作に基づく操作情報を生成する機能と、
前記生成する機能により生成された操作情報を外部の情報処理装置へ送信する機能と、
を実現させ、
前記生成する機能は、
(A)前記アナログ入力デバイスの操作量に基づく直交座標系の値を取得し、
(B)前記直交座標系の値を別の座標系の値に変換し、
(C)前記設定情報が示す前記アナログ入力デバイスの感度に基づいて、前記別の座標系の値を変換し、
(D)前記アナログ入力デバイスの感度に基づき変換後の前記別の座標系の値を、前記操作情報に設定すべき前記直交座標系の値に変換する、ことを含む、
コンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-174280 | 2022-10-31 | ||
JP2022174280 | 2022-10-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024095731A1 true WO2024095731A1 (ja) | 2024-05-10 |
Family
ID=90930238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2023/037057 WO2024095731A1 (ja) | 2022-10-31 | 2023-10-12 | 操作装置、情報処理方法およびコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2024095731A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014535102A (ja) * | 2011-10-20 | 2014-12-25 | 株式会社ソニー・コンピュータエンタテインメント | 入力感度及び機能を向上させるために複数のセンサを有するコントロールスティック |
JP2020523673A (ja) * | 2017-06-07 | 2020-08-06 | ソニー インタラクティブ エンタテインメント ヨーロッパ リミテッド | 入力方法および装置 |
-
2023
- 2023-10-12 WO PCT/JP2023/037057 patent/WO2024095731A1/ja unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014535102A (ja) * | 2011-10-20 | 2014-12-25 | 株式会社ソニー・コンピュータエンタテインメント | 入力感度及び機能を向上させるために複数のセンサを有するコントロールスティック |
JP2020523673A (ja) * | 2017-06-07 | 2020-08-06 | ソニー インタラクティブ エンタテインメント ヨーロッパ リミテッド | 入力方法および装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906723B2 (en) | Method for selection between front-facing camera and rear-facing camera of mobile terminal and mobile terminal | |
US10288507B2 (en) | Piezoresistive sensors and sensor arrays | |
US7518595B2 (en) | Pointing device control apparatus and method, electronic instrument, and computer program for the pointing device control apparatus | |
JP4971177B2 (ja) | 照明パラメータの多次元制御 | |
US20200376376A1 (en) | Selecting Properties using Handheld Controllers | |
US8400434B2 (en) | Information processing apparatus, information processing method, and program therefor | |
US8013287B2 (en) | Optical pointing device, optical pointing system, and method of operating the same | |
US20140266569A1 (en) | Controlling music variables | |
WO2024095731A1 (ja) | 操作装置、情報処理方法およびコンピュータプログラム | |
WO2024095732A1 (ja) | 操作装置、情報処理方法およびコンピュータプログラム | |
US20100066673A1 (en) | Laser pointer capable of detecting a gesture associated therewith and representing the gesture with a function | |
TWM566602U (zh) | 具有可重配置的模擬搖桿靈敏度修改器按鈕的遊戲控制器 | |
JP2022549109A (ja) | ハンドヘルドコントローラを使用するプロパティの選択 | |
JP6723949B2 (ja) | 情報処理装置および操作信号の変換方法 | |
CN105682758A (zh) | 信息处理系统和信息处理设备 | |
US20140270256A1 (en) | Modifying Control Resolution | |
EP4386526A1 (en) | Information processing device and controller | |
WO2024095327A1 (ja) | 操作装置、情報処理システム、情報処理方法およびコンピュータプログラム | |
WO2024095329A1 (ja) | 操作装置、情報処理方法およびコンピュータプログラム | |
WO2024095328A1 (ja) | 操作装置、情報処理システム、情報処理方法およびコンピュータプログラム | |
JP7515057B2 (ja) | 発光制御装置、発光システム、端末装置、発光制御方法及びプログラム | |
WO2024034043A1 (ja) | 操作装置、情報処理システムおよびコンピュータプログラム | |
WO2024034044A1 (ja) | 情報処理装置、情報処理システムおよびコンピュータプログラム | |
WO2023145087A1 (ja) | 操作デバイス、情報処理装置、情報処理方法、及びプログラム | |
US20220241682A1 (en) | Analog Joystick-Trackpad |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23885493 Country of ref document: EP Kind code of ref document: A1 |