WO2023170843A1 - コントローラ装置、コントローラ装置の制御方法、及びプログラム - Google Patents

コントローラ装置、コントローラ装置の制御方法、及びプログラム Download PDF

Info

Publication number
WO2023170843A1
WO2023170843A1 PCT/JP2022/010425 JP2022010425W WO2023170843A1 WO 2023170843 A1 WO2023170843 A1 WO 2023170843A1 JP 2022010425 W JP2022010425 W JP 2022010425W WO 2023170843 A1 WO2023170843 A1 WO 2023170843A1
Authority
WO
WIPO (PCT)
Prior art keywords
controller
controller device
user
sensor
main body
Prior art date
Application number
PCT/JP2022/010425
Other languages
English (en)
French (fr)
Inventor
祐未 植田
宗孝 安藤
仁 中村
Original Assignee
株式会社ソニー・インタラクティブエンタテインメント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ソニー・インタラクティブエンタテインメント filed Critical 株式会社ソニー・インタラクティブエンタテインメント
Priority to PCT/JP2022/010425 priority Critical patent/WO2023170843A1/ja
Publication of WO2023170843A1 publication Critical patent/WO2023170843A1/ja

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads

Definitions

  • the present invention relates to a controller device, a method of controlling the controller device, and a program.
  • VR virtual reality
  • HMD Head Mounted Display
  • the present invention has been made in view of the above-mentioned circumstances, and one of its objects is to provide a controller device, a control method for the controller device, and a program that can improve convenience.
  • controller device including a controller main body and a control section, the control section including an operation receiving means for accepting a user's operation on the controller main body
  • the apparatus includes: an estimation means for estimating the posture of the controller main body; and an operation information generation means for generating and outputting information representing the content of the accepted operation using the estimation result of the estimation means. It is.
  • the posture is estimated and the estimation result is used to generate information representing the content of the accepted operation, it is possible to generate information representing the content of the operation regardless of the user's holding position, which is convenient. You can improve your sexuality.
  • FIG. 1 is a schematic block diagram showing a configuration example of a controller device and an information processing device connected thereto according to an embodiment of the present invention.
  • FIG. 1 is a configuration block diagram of an example of a controller device according to an embodiment of the present invention.
  • FIG. 1 is a functional block diagram of an example of a controller device according to an embodiment of the present invention.
  • FIG. 3 is an explanatory diagram showing an example of detection of a user's hand or finger by the controller device according to the embodiment of the present invention. It is a flowchart figure showing an example of operation of a controller device concerning an embodiment of the present invention.
  • a controller device 10 includes a controller main body 11 and a circuit section 12 built in the controller main body 11, and has communication with an information processing device 30.
  • the devices are connected to each other for wired or wireless communication.
  • the information processing device 30 is, for example, a home game machine or the like, and includes a control section 31, a storage section 32, a communication section 33, and a display section 34.
  • the control unit 31 is a program control device such as a CPU, and operates according to a program stored in the storage unit 32. In the example of this embodiment, the control unit 31 executes processing such as a game application using information representing the content of the user's operation received from the controller device 10 via the communication unit 33. The control unit 31 also executes processing such as displaying guidance to the user in response to instructions received from the controller device 10.
  • the storage unit 32 includes a disk device, a memory device, etc., and holds programs executed by the control unit 31. Further, the storage section 32 may also operate as a work memory for the control section 31.
  • the communication unit 33 is connected to the controller device 10 so as to be able to communicate wirelessly or by wire, receives information representing the content of the user's operation from the controller device 10, and outputs the information to the control unit 31.
  • the display unit 34 is, for example, a display controller or the like, and outputs and displays images on a display (not shown) according to instructions input from the control unit 31.
  • the controller main body 11 preferably has a rotationally symmetrical shape around at least one axis, and includes a housing 110 that is substantially spherical, for example.
  • the sphere is just an example, and the housing 110 may be cylindrical or other shapes, such as a regular hexahedron, even if it is not rotationally symmetrical.
  • the surface of the casing 110 may be textured by blasting or the like.
  • the housing 110 may be elastically deformable, and in that case, it may be made of a polymer gel material such as a silicone polymer gel material, a urethane gel material, or a polystyrene elastomer. It is constructed using elastically deformable materials such as various elastomer materials such as olefin elastomer, polyvinyl chloride elastomer, polyurethane elastomer, polyester elastomer, and polyamide elastomer.
  • a polymer gel material such as a silicone polymer gel material, a urethane gel material, or a polystyrene elastomer.
  • elastically deformable materials such as various elastomer materials such as olefin elastomer, polyvinyl chloride elastomer, polyurethane elastomer, polyester elastomer, and polyamide elastomer.
  • the circuit section 12 includes a control section 121, a storage section 122, a sensor section 123, and a communication section 124, as illustrated in FIG. Each part of these circuit units 12 is operated by a battery (not shown).
  • This battery may be a secondary battery that can be charged by, for example, a wireless power supply method or a wired power supply method.
  • the circuit section 12 is disposed on the rotation axis of the controller main body 11.
  • the circuit section 12 is disposed such that its center of gravity is located at the center of the casing 110 of the spherical controller main body 11. This is to ensure smooth rotation around the rotation axis.
  • the control unit 121 of the circuit unit 12 includes a program control device such as a CPU, and operates according to a program stored in the storage unit 122.
  • this control unit 121 accepts a user's operation on the controller main body 11.
  • the control unit 121 also estimates the orientation of the controller body 11, uses this estimation result to generate information representing the content of the accepted operation, and executes a process of outputting the generated information to the information processing device 30.
  • the detailed operation of this control section 121 will be described later.
  • the storage unit 122 is, for example, a memory device, and holds programs executed by the control unit 121. This storage section 122 also operates as a work memory for the control section 121.
  • the sensor unit 123 is a sensor such as an electrostatic sensor, a pressure sensor, a strain sensor, a temperature sensor, or a combination thereof, when the user touches or approaches the surface of the controller main body 11 or when the user touches the surface of the controller main body 11.
  • a plurality of surface sensors 123a capable of detecting applied force are provided.
  • the sensor unit 123 is also provided with an attitude sensor 123b that detects the attitude and movement of the controller device 10 and includes at least one of a position information sensor such as GPS, an acceleration sensor, a geomagnetic sensor, and a gyro sensor.
  • This attitude sensor 123b may be, for example, a so-called 9-axis IMU sensor that includes an acceleration sensor, a geomagnetic sensor, and a gyro sensor.
  • the attitude sensor 123b is assumed to be a 9-axis IMU sensor.
  • This attitude sensor 123b has the position of the attitude sensor 123b as its origin, and detects acceleration in three mutually orthogonal axes (hereinafter referred to as ⁇ , ⁇ , and ⁇ axes), and a coordinate system ( ⁇ ) defined by the three axes. Detects the geomagnetic direction (north or south pole direction) and the rotational angular velocity around each of the ⁇ , ⁇ , and ⁇ axes in the orthogonal coordinate system (hereinafter referred to as the sensor coordinate system), and generates a signal representing the detection result. It is output to the control section 121.
  • the controller device 10 uses an analog multiplexer (MPX) to sequentially select and output the output of one of the acceleration sensor, geomagnetic sensor, and gyro sensor among the attitude sensors 123b,
  • the signal may be A/D converted, subjected to predetermined signal processing such as filter processing using a DSP (Digital Signal Processor), etc., and then output to the control unit 121.
  • MPX analog multiplexer
  • the surface sensor 123a detects a user's touch on the controller body 11 or a deformation operation of the controller body 11 by the user, and outputs an electrical signal to the control unit 121 based on the detected contact or deformation operation.
  • the output of the surface sensor 123a may also be A/D converted, subjected to predetermined signal processing such as filter processing using a DSP, etc., and then output to the control unit 121.
  • the capacitance sensor includes an oscillation circuit that oscillates a signal to be supplied to the capacitance sensor, so a detailed explanation thereof will be omitted here.
  • a plurality of surface sensors 123a are arranged on the surface of the controller main body 11 or near the surface (a range at a predetermined distance from the surface), preferably evenly distributed over the entire surface.
  • the surface sensor 123a is arranged at the vertex of a regular octahedron, regular dodecahedron, etc. that is inscribed in the spherical controller main body 11.
  • the control unit 121 allows the user to (1) touch the controller body 11, (2) press a part of the controller body 11 with a finger, and (3) bring the hand close to the controller body 11. It becomes possible to detect operations, etc. Further, in the sensor coordinate system, the position where the user touches, presses, or approaches the user's hand can be detected from the position of the surface sensor 123a that detects these positions.
  • the control unit 121 can be configured as described in (1) above by using the surface sensor 123a that detects the direction and magnitude of the force applied to the controller main body 11 by the user.
  • the surface sensor 123a that detects the direction and magnitude of the force applied to the controller main body 11 by the user.
  • An operation of rubbing the surface of the controller body 11 with the palm or fingers An operation of twisting the controller body 11 (6)
  • An operation of pinching a part of the controller body 11 an operation of pinching and pulling
  • the operations (1) to (3) above such as (1) a touching operation and (3) an operation of bringing a hand closer, can be detected by using a capacitance sensor as the surface sensor 123a.
  • an operation of rubbing the surface (5) an operation of twisting, (6) an operation of pinching a part (an operation of pinching and pulling), specifically, while holding the controller body 11 with one hand.
  • Operations such as pinching and pulling a portion, and (7) squeezing or crushing operations can be detected by using a pressure sensor, strain sensor, acceleration sensor, or the like as the surface sensor 123a.
  • the positions and directions in the sensor coordinate system of these rubbed positions, twisted directions, pinched positions, crushed directions, etc. are detected based on the position of the surface sensor 123a that detects these positions.
  • the communication unit 124 is an interface for a wired communication method such as a USB or a wireless communication method such as Bluetooth (registered trademark), and is connected to the information processing device 30 in a wired or wireless manner so as to be communicable.
  • the communication unit 124 sends information to the information processing device 30 according to instructions input from the control unit 121.
  • the communication unit 124 also outputs information received from the information processing device 30 to the control unit 121.
  • control section 121 controls the operation receiving unit 21, the posture estimation unit 22, the operation information generation unit 23, and the sending unit 24, as illustrated in FIG. Realize a configuration that functionally includes the following.
  • the operation acceptance unit 21 accepts a user's operation on the controller main body 11. Specifically, the operation receiving unit 21 detects, for example, the user operations illustrated in (1) to (7) above based on the detection results output by each surface sensor 123a, and detects, for example, when the controller main body 11 is pressed.
  • the directional information is output as directional information in the sensor coordinate system.
  • the posture estimation unit 22 estimates the posture of the controller main body 11 at a predetermined timing.
  • This timing may be, for example, the timing at which the operation receiving section 21 detects a predetermined initialization operation, or every time the operation receiving section 21 detects an operation.
  • this initialization operation may include, for example, continuing to press a part of the controller body 11 with a force equal to or higher than a predetermined threshold for a predetermined time or longer, or holding the controller and pressing the controller body 11 for a predetermined amount of time. It may be an operation such as swinging a number of times (for example, twice) or in an angular range larger than a predetermined angular range (reciprocating within the angular range).
  • the attitude estimation unit 22 detects the direction of gravity in the sensor coordinate system using the output of the attitude sensor 123b output by the sensor unit 123.
  • the method of detecting the direction of gravity using the 9-axis IMU sensor, which is the attitude sensor 123b, is widely known, so detailed explanation thereof will be omitted.
  • the posture estimating section 22 estimates the posture of the controller main body 11 using the output of the sensor section 123. Specifically, after the initialization operation is performed and the direction of gravity is detected, the posture estimation unit 22 instructs the information processing device 30 to output a guidance screen that guides the user to a predetermined operation.
  • the predetermined operation guided here is, for example, an operation that applies acceleration in a predetermined direction to the controller device 10.
  • the posture estimation unit 22 may say, “Hold the controller device 10 with your right hand and shake it left and right.”
  • the information processing device 30 is instructed to display such a display. At this time, it is assumed that the user grasps the controller device 10 with his right hand and shakes it from side to side as seen from himself, in accordance with this instruction.
  • the posture estimating section 22 estimates the posture of the controller main body 11 using the detection result output by the sensor section 123 according to the operation guided here and performed by the user. As an example, the posture estimation unit 22 estimates the left and right direction of the user using the output of the surface sensor 123a.
  • This estimation is performed, for example, as follows. That is, when the user holds the controller main body 11, as illustrated in FIG. will be detected.
  • the left and right direction as seen from the user is the X axis (the right direction as seen from the user is the positive direction)
  • the normal direction of the coronal plane of the user's body is the Y axis (the direction away from the user is the positive direction).
  • the direction of gravity is the Z-axis (the upward direction is the positive direction).
  • this XYZ orthogonal coordinate system will be referred to as a user coordinate system.
  • the surface sensor 123a is located on the vertex of a regular octahedron inscribed in the controller main body 11, which is a sphere. However, in reality, a larger number of surface sensors 123a may be arranged.
  • the surface sensor 123a located at least in the direction of gravity (negative Z-axis direction) from the center of the controller main body 11, as illustrated in FIGS. 4(a) and 4(b), -B and the surface sensors 123a-P on the user's body side do not detect contact between the user's finger or hand H.
  • the surface sensors 123a-L on the user's left side and the surface sensors 123a-F on the opposite side of the body detect the contact of the user's fingers, and the surface sensors 123a-T above the controller main body 11 detect the touch of the user's fingers. detects palm contact.
  • the posture estimation unit 22 assumes that the surface sensors 123a-L and R in that direction are in the left-right direction of the user (that is, the direction is parallel to the X-axis).
  • a surface sensor 123a- on the user's body side is a surface sensor 123a that is different from these surface sensors 123a-L and R and is in a direction perpendicular to the direction of gravity (that is, in a horizontal plane).
  • the detection results of P and the surface sensors 123a-F on the opposite side of the body are referred to.
  • the direction of the Y-axis is determined assuming that the user's body is on the side where contact is not detected (in this example, the surface sensors 123a-P). Furthermore, the direction of the X-axis (in this example, the right direction of the user is set as the positive direction) is determined using the direction of the Y-axis determined here and the direction of the Z-axis determined by the direction of gravity.
  • the posture estimation unit 22 determines the respective directions of the X, Y, and Z axes.
  • the example here is just one example, and a different method may be used as long as the orientation of the user's body can be detected, that is, the directions of the X, Y, and Z axes can be determined.
  • the posture estimation unit 22 uses a conversion formula (hereinafter referred to as user This is called the coordinate system transformation formula. This transformation formula is expressed as a quaternion). This user coordinate system conversion formula corresponds to posture information representing the posture of the controller device 10 (each direction of the controller main body as seen from the user).
  • attitude estimation unit 22 obtains a conversion formula for mutually converting the orientation detected by the orientation sensor 123b (the direction of the north or south pole) and the user coordinate system (referred to as an orientation transformation formula. This transformation formula is also a quaternion. expressed).
  • the operation information generation unit 23 acquires at least the user coordinate system conversion formula obtained by the posture estimation unit 22, and each time the user performs an operation, the operation information generation unit 23 calculates the position detected by the operation reception unit 21 where the user's hand or finger is in contact, or The information representing the user's operation such as the direction of the force applied by the user to the controller body 11 (both expressed in the sensor coordinate system) is expressed as the user's operation in the user coordinate system using the above conversion formula. Convert into information.
  • the sending unit 24 sends information representing the user's operation in the user coordinate system generated by the operation information generating unit 23 to the information processing device 30.
  • the information processing device 30 receives information representing a user's operation in the user coordinate system from the controller device 10, and uses the information for processing, for example, controlling a game application.
  • the controller device 10 of this embodiment basically has the above configuration, and operates as follows. A user who uses this controller device 10 initially holds the controller device 10 and performs a predetermined initialization operation.
  • the controller device 10 executes the initialization process as illustrated in FIG. 5 (S11), and first detects the direction of gravity in the sensor coordinate system using the output of the attitude sensor 123b.
  • This initialization operation includes an operation in which the user moves the controller device 10 back and forth in the left-right direction, and then moves the controller device 10 back and forth in the front-back direction (swinging the controller device 10 in order in two directions, left and right and front and back).
  • the controller device 10 is held in a predetermined posture by keeping the controller device 10 stationary with a predetermined surface facing the user's ventral side (for example, by pressing the predetermined surface against the user's ventral side). operations, etc.
  • this controller device 10 communicates with the information processing device 30 and displays a message to the information processing device 30 such as “Hold the controller device 10 with your right hand and shake it left and right.” Instruct them to do so.
  • the information processing device 30 displays a message such as "Hold the controller device 10 with your right hand and shake it left and right.”
  • the controller device 10 detects the contact of the user's hand or fingers on the surface sensor 123a and the posture.
  • the direction of the X-axis is detected based on the detection result of the moving direction by the sensor 123b.
  • the direction in which the controller device 10 first moves is assumed to be the negative direction of the X-axis.
  • the controller device 10 communicates with the information processing device 30 again, and tells the information processing device 30, ⁇ While holding the controller device 10 in your right hand, first press it against your stomach, then shake it back and forth.'' Instruct the driver to display a message such as "Please do so.”
  • the information processing device 30 displays a message such as "While holding the controller device 10 in your right hand, first press it against your stomach and shake it back and forth.”
  • the controller device 10 When the user follows this instruction and presses the controller device 10 against his or her abdomen while maintaining the state in which the controller device 10 is held in the right hand, and then shakes it back and forth as seen from the user, the controller device 10
  • the direction of the user's body (the negative Y-axis direction) is detected based on the detection result of the contact of the user's hand or finger by the surface sensor 123a and the detection result of the movement direction by the posture sensor 123b.
  • the first direction of movement is the direction away from the user's body (positive Y-axis direction).
  • the controller device 10 detects the positive directions of the X-axis and Y-axis from the movement direction by the attitude sensor 123b.
  • the controller device 10 sets the direction perpendicular to both the detected X-axis and Y-axis as the Z-axis direction, and determines the positive direction of the Z-axis assuming, for example, a left-handed system. Thereby, the controller device 10 obtains vectors in the sensor coordinate system that represent the positive directions of the X, Y, and Z axes of the user coordinate system. Then, the controller device 10 obtains a user coordinate system conversion formula for mutually converting the sensor coordinate system and the user coordinate system (XYZ coordinate system), and ends the initialization process. In this example, when the user operates the controller device 10 while standing, the direction of gravity is the negative direction of the Z-axis of the user coordinate system. Further, when the user operates the controller device 10 while lying down, the direction of gravity is the negative direction of the Y-axis of the user coordinate system.
  • controller device 10 repeatedly executes the following steps S12 to S15 until the user's operation ends (for example, until the user's hand or finger is not detected for a predetermined period of time). do.
  • the controller device 10 updates the user coordinate system conversion formula according to the change in the posture of the controller device 10 after the initialization process (S12: update of posture information).
  • This update method can be done using widely known methods such as using the output of a gyro sensor, or using an orientation conversion formula in addition to the output of a gyro sensor (for example, https://qiita.com/Tanba28/items/ 5092c3e5e2c631b804f3 etc.) may be used.
  • the controller device 10 receives information indicating the user's operation, such as the position where the user's hand or finger is in contact, detected by the surface sensor 123a, and the direction of the force applied by the user to the controller body 11 (both of which are detected by the sensor). (expressed in a coordinate system) (S13), and converts the obtained information into information representing the user's operation in the user coordinate system using the user coordinate system conversion formula updated in step S12 (S14) .
  • the controller device 10 outputs the information representing the user's operation in the user coordinate system obtained in step S14 to the information processing device 30 (S15).
  • the information processing device 30 receives information representing the user's operation in the user coordinate system from the controller device 10, and provides the information for processing such as controlling the game application.
  • the controller device 10 of the present embodiment may also proceed to the initialization process (step S11) and continue the process whenever a predetermined initialization operation is performed. This allows the user to reset the operation of the controller device 10 at any time.
  • the controller device 10 of this embodiment may be held not only with five fingers as described above, but also with three fingers: the thumb, index finger, and middle finger.
  • the palm of the right hand will be either upward (Fig. 4(b)) or downward, as illustrated in Fig. 4. (FIG. 4(c)) or the palm of the hand is on the right side (FIG. 4(d)).
  • the direction of the palm can be detected, and the position of the thumb and each finger such as the index finger and middle finger can be estimated.
  • the controller device 10 may send information indicating which finger pressed the controller body 11 to the information processing device 30.
  • the information processing device 30 may perform processing as if different operations were accepted depending on the settings of the game application or the like, for example, when the position of the thumb is pressed and when the position of the index finger is pressed. It becomes possible. That is, in this example, no matter what orientation the user holds the controller device 10 in, the position of the user's fingers on the controller body 11 will function in the same way as the buttons on a conventional controller. Furthermore, by combining this with pressure information, for example, it is possible to determine whether a specified finger is pressing with the optimum pressure in software for training massage methods, or to knead bread with the optimum pressure in a cooking game. It can be used to judge whether the rice ball is cooked properly and whether the rice ball can be held with the correct shape of the hand.
  • controller main body 11 of the controller device 10 of the present embodiment preferably has a symmetrical shape around at least one axis, an operation of rotating it around this axis may be performed.
  • the controller device 10 When the user rotates the controller device 10 by rolling it on the palm of the hand, the controller device 10 sequentially detects the contact position of the user's hand or detects the output of the gyro sensor as described above. Information on the rotation direction, rotation amount, and rotation speed is obtained by updating the user coordinate system conversion formula.
  • the controller device 10 transmits this information to the information processing device 30, and the information processing device 30 uses information on the rotation direction, amount of rotation, and rotation speed of the controller device 10 for processing of controlling the game application, etc. For example, it can be applied to games in which the player moves while rolling a ball along a predetermined course, or in which the player performs actions such as polishing the surface of an object.
  • the controller device 10 obtains information on the rotation direction, rotation amount, and rotation speed by updating the user coordinate system conversion equation described above, such as the output of a gyro sensor.
  • this controller device 10 may be used by throwing it away.
  • the controller device 10 starts from a state in which the user's hand or fingers are in contact with each other, and then from the time when the user's hand or fingers are no longer detected, the controller device 10 receives an impact of a predetermined acceleration or more. (or until the controller device 10 comes to rest, that is, until the user coordinate system transformation formula is no longer updated for a predetermined period of time due to the user coordinate system transformation formula update process). It is determined that the controller device 10 is in the air. While the controller device 10 determines that the controller device 10 is in the air, the controller device 10 detects its own movement locus and rotation using the output of the gyro sensor or the process of updating the user coordinate system conversion formula.
  • the controller device 10 transmits the detected movement trajectory and rotation information to the information processing device 30, and the information processing device 30 transmits the movement trajectory and rotation information while the controller device 10 is in the air to the game application.
  • Used for control processing, etc. This example can be applied to, for example, games that involve the action of throwing a ball, such as a baseball game or a ball tossing game.
  • a ball of a pitch type such as a curve or fork is pitched using information on the position of the user's finger in contact with the surface, or using information on the position of the finger and information on the starting trajectory and rotation.
  • processing such as a game may be executed.
  • the controller device 10 may also be used while being placed on a desk or the like.
  • the controller device 10 placed on a desk may be manipulated to crush it, the object may be manipulated by applying force in the shearing direction with the index finger, or the controller device 10 may be used as a substitute for a pointing device (so-called mouse device) on a computer device.
  • a pointing device so-called mouse device
  • Possible examples include moving a cursor on a graphical user interface and selecting a radio button.
  • controller devices 10 there may be two controller devices 10 connected to the information processing device 30 for each user.
  • each controller device 10 communicates with the information processing device 30, it includes identification information uniquely assigned to itself in the information it sends to the information processing device 30.
  • the information processing device 30 guides the user to the controller device 10 held in each of the left and right hands in order, such as "Please pick up the controller device held in your right hand first," and
  • the identification information of the controller device 10 held in the user's right hand and the identification information of the controller device 10 held in the left hand may be identified.
  • the information processing device 30 may ask the user to do something about the controller device 10 held in each of the left and right hands, such as "Please slam the controller device you are holding in your right hand on the desk.” By guiding the user to perform an operation and detecting that the corresponding operation has been performed, the identification information of the controller device 10 held in the user's right hand and the identification information of the controller device 10 held in the left hand are identified. You can also do it.
  • the user can control each controller device 10 at any timing (for example, when changing the controller devices 10 held in the left and right hands, etc.). Perform initialization operations. For this reason, the controller device 10 may accept an initialization operation and execute initialization processing when a predetermined operation is performed.
  • the number of controller devices 10 connected to the information processing device 30 does not need to be two for each user, and may be three or more.
  • the user performs an initialization operation on each controller device 10 in advance, places each controller device 10 within his/her reach, and picks up an appropriate controller device 10. Perform operations. For example, in a game such as ball toss, it is conceivable to sequentially throw a plurality of controller devices 10.
  • Reference Signs List 10 controller device 11 controller main body, 12 circuit section, 21 operation receiving section, 22 attitude estimation section, 23 operation information generation section, 24 sending section, 30 information processing device, 31 control section, 32 storage section, 33 communication section, 34 Display unit, 110 housing, 121 control unit, 122 storage unit, 123 sensor unit, 124 communication unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

コントローラ本体と、制御部とを備えるコントローラ装置であって、制御部は、コントローラ本体に対するユーザの操作を受け入れ、コントローラ本体の姿勢を推定し、当該推定結果を用いて、受け入れた操作の内容を表す情報を生成して出力する。

Description

コントローラ装置、コントローラ装置の制御方法、及びプログラム
 本発明は、コントローラ装置、コントローラ装置の制御方法、及びプログラムに関する。
 HMD(Head Mounted Display)を装着するVR(仮想現実)ゲーム等では、没入感を向上させるために、ユーザに対して現実の空間の映像を見せないようにしておくことがある。このような場合に、ユーザは、手元を見ることができないため、手にしたゲームコントローラの方向を確認できない。
 このため現状では、ユーザは、コントローラ装置の形状(一般に非対称となっている)を手探りし、想定された持ち方となるようにコントローラ装置の方向を調整するなどしており、利便性が低い。
 本発明は上記実状に鑑みて為されたもので、利便性を向上できるコントローラ装置、コントローラ装置の制御方法、及びプログラムを提供することを、その目的の一つとする。
 上記従来例の問題点を解決する本発明の一態様は、コントローラ本体と、制御部とを備えるコントローラ装置であって、前記制御部は、前記コントローラ本体に対するユーザの操作を受け入れる操作受入手段と、前記コントローラ本体の姿勢を推定する推定手段と、前記推定手段の推定結果を用いて、前記受け入れた操作の内容を表す情報を生成して出力する操作情報生成手段と、とを含むこととしたものである。
 本発明によると、姿勢を推定し、当該推定結果を用いて、受け入れた操作の内容を表す情報を生成するので、ユーザの持ちかたによらずに操作の内容を表す情報を生成でき、利便性を向上できる。
本発明の実施の形態に係るコントローラ装置及びそれに接続される情報処理装置の構成例を表す概略ブロック図である。 本発明の実施の形態に係るコントローラ装置の一例に係る構成ブロック図である。 本発明の実施の形態に係るコントローラ装置の一例に係る機能ブロック図である。 本発明の実施の形態に係るコントローラ装置によるユーザの手や指の検出例を表す説明図である。 本発明の実施の形態に係るコントローラ装置の動作例を表すフローチャート図である。
 本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明及び図面において、各部のサイズや縦横高さの比率などは例示であり、現実にはこれと異なるサイズや比率となっていても構わない。
 本発明の実施の形態に係るコントローラ装置10は、図1に例示するように、コントローラ本体11と、コントローラ本体11内に内蔵される回路部12とを含んで構成され、情報処理装置30との間で、有線または無線にて通信可能に接続される。
 この情報処理装置30は、例えば家庭用ゲーム機等であり、制御部31と、記憶部32と、通信部33と、表示部34とを含んで構成される。この制御部31は、CPU等のプログラム制御デバイスであり、記憶部32に格納されたプログラムに従って動作する。本実施の形態の例では、この制御部31は、通信部33を介してコントローラ装置10から受信されるユーザの操作の内容を表す情報を用い、ゲームアプリケーション等の処理を実行する。またこの制御部31は、コントローラ装置10から受信した指示に応答して、ユーザに対して案内を表示する等の処理を実行する。
 記憶部32は、ディスクデバイスやメモリデバイス等を含み、制御部31によって実行されるプログラムを保持する。またこの記憶部32は、制御部31のワークメモリとしても動作してもよい。
 通信部33は、コントローラ装置10との間で無線または有線にて通信可能に接続され、コントローラ装置10からユーザの操作の内容を表す情報を受信して、制御部31に出力する。
 表示部34は、例えばディスプレイコントローラ等であり、制御部31から入力される指示に従って、ディスプレイ(図示せず)に対して画像を出力して表示させる。
 コントローラ本体11は、好適には少なくとも1つの軸周りに回転対称な形状を有し、一例としては実質的に球体をなす筐体110を含む。もっとも、球体は一例であり、筐体110は円筒形などであってもよいし、回転対称でなくとも正六面体など、他の形状であってもよい。また筐体110の表面には、ブラスト処理等による凹凸が施されてもよい。
 本実施の形態の一例において、この筐体110は、弾性変形可能なものであってもよく、その場合、例えばシリコーン系高分子ゲル素材、ウレタン系ゲル素材等の高分子ゲル素材、ポリスチレン系エラストマー、オレフィン系エラストマー、ポリ塩化ビニル系エラストマー、ポリウレタン系エラストマー、ポリエステル系エラストマー、ポリアミド系エラストマー等の種々のエラストマー素材など、弾性変形可能な材料を用いて構成される。
 回路部12は、図2に例示するように、制御部121と、記憶部122と、センサ部123と、通信部124とを含む。これらの回路部12の各部は、図示しないバッテリによって動作する。このバッテリは、例えば無線給電や有線の給電方法によって充電可能な二次バッテリであってもよい。
 またこの回路部12は、コントローラ本体11が回転対称な形状である場合、その回転軸上に配されることが好適である。例えばコントローラ本体11が球形である場合、この回路部12は、球形をなすコントローラ本体11の筐体110の中心にあたる位置にその重心が位置するように配されることが好ましい。これは回転軸周りの回転を円滑にするためである。
 回路部12の制御部121は、CPU等のプログラム制御デバイスを含み、記憶部122に格納されたプログラムに従って動作する。本実施の形態の例では、この制御部121は、コントローラ本体11に対するユーザの操作を受け入れる。またこの制御部121は、コントローラ本体11の姿勢を推定し、この推定結果を用いて、受け入れた操作の内容を表す情報を生成して、情報処理装置30に対して出力する処理を実行する。この制御部121の詳しい動作については後に述べる。
 記憶部122は、例えばメモリデバイスであり、制御部121によって実行されるプログラムを保持する。この記憶部122は、また、制御部121のワークメモリとしても動作する。
 センサ部123は、静電センサ、圧力センサ、歪みセンサ、温度センサ、及びこれらの組み合わせによるセンサなど、ユーザがコントローラ本体11の表面に接触あるいは近接し、またはユーザがコントローラ本体11の表面に対して加えた力を検出可能な表面センサ123aを複数備える。
 またこのセンサ部123は、コントローラ装置10の姿勢や移動を検出する、GPSなどの位置情報センサ、加速度センサ、地磁気センサ、ジャイロセンサの少なくとも一つを含む姿勢センサ123bを具備するものとする。この姿勢センサ123bは例えば、加速度センサ、地磁気センサ、及びジャイロセンサのすべてを備えた、いわゆる9軸IMUセンサでよい。以下の例では、姿勢センサ123bは、9軸IMUセンサであるものとする。
 この姿勢センサ123bは、姿勢センサ123bの位置を原点とし、互いに直交する3つの軸方向(以下、ξ,η,ζ軸とする)への加速度、当該3つの軸で規定される座標系(ξηζ直交座標系、以下センサ座標系と呼ぶ)における地磁気の方向(北極または南極の向き)、ξ,η,ζ軸の各軸周りの回転角速度を検出して、当該検出の結果を表す信号を、制御部121に出力する。
 本実施の形態の一例では、コントローラ装置10では、アナログマルチプレクサ(MPX)を用いて、姿勢センサ123bのうち、加速度センサ、地磁気センサ、及びジャイロセンサのいずれかの出力を順次選択して出力し、A/D変換し、DSP(Digital Signal Processer)等により、フィルタ処理など所定の信号処理を施したうえで、制御部121に出力することとしてもよい。
 表面センサ123aは、コントローラ本体11に対するユーザの接触や、ユーザによるコントローラ本体11の変形操作を検出、当該検出した接触ないし変形操作に基づく電気的信号を制御部121に出力する。この表面センサ123aの出力もまた、A/D変換され、DSP等により、フィルタ処理など所定の信号処理を行ったうえで、制御部121に出力することとしてもよい。なお、静電容量センサに対して供給されるべき信号を発振する発振回路などを備えることは広く知られているので、ここでの細かい説明を省略する。
 本実施の形態の一例では、この表面センサ123aは、コントローラ本体11の表面や、表面近傍(表面から所定の距離にある範囲)に複数、好ましくは表面全体に均等に配される。例えばこの表面センサ123aは、球体をなすコントローラ本体11に内接する正八面体や正十二面体等の頂点の位置に配される。
 以下において、複数の表面センサ123aのそれぞれのセンサ座標系での位置は既知であるものとする。
 この表面センサ123aを用いることにより、制御部121は、ユーザによる
(1)コントローラ本体11に触れる操作
(2)コントローラ本体11の一部を指で押圧する操作
(3)コントローラ本体11に手を近づける操作
などを検出可能となる。またセンサ座標系における、ユーザが触れた位置や、押圧した位置、手を近づけた位置を、それらを検出した表面センサ123aの位置から検出できる。
 さらにコントローラ本体11が弾性変形可能な材料で構成される場合、ユーザがコントローラ本体11に加えた力の向きや大きさを検出する表面センサ123aを用いることにより、制御部121は、上記(1)から(3)の操作に加え、
(4)手の平や指でコントローラ本体11の表面をこする操作
(5)コントローラ本体11を捩じる操作
(6)コントローラ本体11の一部をつまむ操作(つまんで引っ張る操作)
(7)コントローラ本体11全体を押しつぶす、握りつぶす操作
などが検出可能となる。
 例えば、(1)触れる操作や(3)手を近づける操作など、上記(1)から(3)の操作については、表面センサ123aとして静電容量センサを用いることで検出できる。
 また(4)表面をこする操作や、(5)捩じる操作、(6)一部をつまむ操作(つまんで引っ張る操作)、具体的には片手でコントローラ本体11を把持した状態で、その一部をつまんで引っ張るような操作、さらに(7)押しつぶす、握りつぶす操作などは、圧力センサや歪みセンサ、加速度センサ等を表面センサ123aとして用いることで検出できる。これらのこすられた位置や、捩じられた方向、つままれた位置、押しつぶされた方向などのセンサ座標系での位置や方向は、これらを検出した表面センサ123aの位置等によって検出される。
 通信部124は、USB等の有線、またはブルートゥース(登録商標)等の無線通信方式のインタフェースであり、有線または無線にて情報処理装置30との間で通信可能に接続される。この通信部124は、制御部121から入力される指示に従い、情報処理装置30に対して情報を送出する。またこの通信部124は、情報処理装置30から受信した情報を、制御部121に出力する。
 次に、回路部12の制御部121の動作について説明する。この制御部121は、記憶部122に格納されたプログラムを実行することで、図3に例示するように、操作受入部21と、姿勢推定部22と、操作情報生成部23と、送出部24とを機能的に含む構成を実現する。
 操作受入部21は、コントローラ本体11に対するユーザの操作を受け入れる。具体的に、この操作受入部21は、各表面センサ123aが出力する検出結果に基づいて、例えば上記(1)から(7)に例示したユーザの操作を検出し、例えばコントローラ本体11が押圧された方向の情報を、センサ座標系での方向の情報として出力する。
 姿勢推定部22は、所定のタイミングで、コントローラ本体11の姿勢を推定する。このタイミングは、例えば操作受入部21が予め定めた初期化操作を検出したタイミングとしてもよいし、操作受入部21が操作を検出するごととしてもよい。本実施の形態のある例では、この初期化操作は例えばコントローラ本体11の一部を予め定めたしきい値以上の力で、所定の時間以上押圧し続ける操作や、コントローラを把持して所定の回数(例えば2回)、予め定めた角度の範囲よりも大きい角度の範囲で振る(当該角度の範囲を往復する)などの操作としてよい。
 一例としてこの姿勢推定部22は、初期化操作を検出したときに、センサ部123が出力する姿勢センサ123bの出力を用いて、センサ座標系における重力の方向を検出する。ここで姿勢センサ123bである9軸IMUセンサにより重力方向を検出する方法は、広く知られているので、その詳しい説明は省略する。
 また姿勢推定部22は、重力方向の検出後、センサ部123の出力を用いて、コントローラ本体11の姿勢を推定する。具体的に、姿勢推定部22は、初期化操作が行われ、重力方向を検出した後、ユーザに対し所定の操作を案内する案内画面を出力するよう、情報処理装置30に対して指示する。ここで案内する所定の操作は、例えばコントローラ装置10に、所定方向の加速度を加える操作であり、一例として姿勢推定部22は、「コントローラ装置10を、右手で持ち、左右に振ってください」というような表示をするよう情報処理装置30に対して指示する。このときユーザは、この指示に従って、コントローラ装置10を右手で把持して、自分から見て左右に振る動作を行うものとする。
 姿勢推定部22は、ここで案内され、ユーザによって行われた操作に応じてセンサ部123が出力する検出結果を用いて、コントローラ本体11の姿勢を推定する。一例としてこの姿勢推定部22は、表面センサ123aの出力を用いてユーザの左右方向を推定する。
 この推定は例えば次のようにして行われる。すなわち、ユーザがコントローラ本体11を手にしたとき、図4(a)に例示するように、指が配される位置と、手の平に近接あるいは接触する位置にある表面センサ123aがユーザの指や手を検出することとなる。図4では、ユーザから見て左右方向をX軸(ユーザから見て右を正の方向とする)とし、ユーザの身体の冠状面の法線方向をY軸(ユーザから遠ざかる方向を正の方向とする)とし、重力の方向をZ軸(上方を正の方向とする)としている。以下、このXYZ直交座標系をユーザ座標系と呼ぶ。
 図4(a)では、説明のため、表面センサ123aが、球体であるコントローラ本体11に内接する正八面体の頂点上にあるものとする。もっとも実際にはこれより多数の表面センサ123aが配されてよい。
 ここでユーザが球体をなすコントローラ本体11を把持する態様は種々あるが、手首を不自然に曲げずに右手で把持するには、
(a)コントローラ本体11を上側から把持する(手の平がコントローラ本体11の上方にある)
(b)コントローラ本体11を下側から把持する(手の平がコントローラ本体11の下方にある)
(c)コントローラ本体11を右側から把持する(手の平がコントローラ本体11の右側にある)
のいずれかとなる。
 例えばユーザがコントローラ本体11を上側から把持したときには、図4(a),(b)に例示するように、少なくともコントローラ本体11の中心から重力の方向(Z軸負の向き)にある表面センサ123a-Bとユーザの身体側にある表面センサ123a-Pとは、ユーザの指や手Hの接触を検出しない。
 一方、このとき、ユーザの左側の表面センサ123a-Lや、身体とは反対側の表面センサ123a-Fはユーザの指の接触を検出し、またコントローラ本体11の上方にある表面センサ123a-Tは手の平の接触を検出する。
 ここでユーザが左右方向にこのコントローラ本体11を動かすと、姿勢推定部22は、その方向にある表面センサ123a-L,Rがユーザの左右方向にあるものとして(つまりその方向がX軸に平行な向きであるとして)、これら表面センサ123a-L,Rとは異なり、かつ重力の方向に垂直な方向(すなわち水平面内)にある表面センサ123aである、ユーザの身体側にある表面センサ123a-Pと身体とは反対側の表面センサ123a-Fとの検出結果を参照する。
 そして、接触を検出していない側(ここでの例では表面センサ123a-P)に、ユーザの身体があるものとしてY軸の方向を決定する。またここで決定したY軸の方向と、重力の方向により決定されるZ軸の方向とを用いてX軸の方向(ここでの例ではユーザの右側を正の方向とする)を決定する。
 またユーザが(b)コントローラ本体11を下側から把持したとき(図4(c))や、(c)コントローラ本体11を右側から把持したとき(図4(d))の場合も同様の処理により、姿勢推定部22がX,Y,Z軸のそれぞれの方向を決定する。
 なお、ここでの例は一例であり、ユーザの身体の向きを検出できれば、つまり、X,Y,Z軸の方向を決定できれば、これとは異なる方法が採用されても構わない。
 姿勢推定部22は、以上の方法で、姿勢センサ123bが検出する加速度の方向の各軸からなるセンサ座標系と、ユーザ座標系(XYZ座標系)とを相互に変換する変換式(以下、ユーザ座標系変換式と呼ぶ。この変換式はクォータニオンとして表される)を得る。このユーザ座標系変換式は、コントローラ装置10の姿勢(ユーザから見たコントローラ本体の各方向)を表す姿勢情報に相当する。
 また、姿勢推定部22は、姿勢センサ123bが検出する方位(北極または南極の方向)と、ユーザ座標系とを相互に変換する変換式を得る(方位変換式と呼ぶ。この変換式もクォータニオンで表される)。
 操作情報生成部23は、姿勢推定部22が得たユーザ座標系変換式を少なくとも取得し、ユーザが操作を行うごとに、操作受入部21が検出したユーザの手や指が接触した位置、あるいはユーザがコントローラ本体11に対して加えた力の方向などのユーザの操作を表す情報(いずれもセンサ座標系で表される)を、上記変換式を用いてユーザ座標系でのユーザの操作を表す情報に変換する。
 これにより、ユーザから見て、右側から押圧されているか、左側から押圧されているか、といった、ユーザの操作を表す情報が得られることになる。
 送出部24は、操作情報生成部23が生成したユーザ座標系でのユーザの操作を表す情報を、情報処理装置30に対して送出する。
 情報処理装置30では、コントローラ装置10から、ユーザ座標系でのユーザの操作を表す情報を受け入れて、例えばゲームアプリケーションの制御の処理等に供する。
[動作例]
 本実施の形態のコントローラ装置10は以上の構成を基本的に備えており、次のように動作する。このコントローラ装置10を使用するユーザは、当初、コントローラ装置10を把持して、予め定められた初期化操作を行う。
 するとコントローラ装置10は、図5に例示するように初期化の処理を実行し(S11)、まず、姿勢センサ123bの出力を用いて、センサ座標系における重力の方向を検出しておく。
 この初期化操作は、ユーザの左右方向にコントローラ装置10を往復するように動かした後、前後方向にコントローラ装置10を往復するように動かす(左右、前後の2方向にそれぞれ順番に振る)操作や、コントローラ装置10の所定の面をユーザの腹側にして静止した状態を維持する(例えば当該所定の面をユーザの腹側に押し当てる)などして、コントローラ装置10を所定の姿勢で把持する操作などとする。具体的にこのコントローラ装置10は、情報処理装置30との間で通信し、情報処理装置30に対して、「コントローラ装置10を、右手で持ち、左右に振ってください」というような表示をするよう指示する。情報処理装置30は、この指示に応じて、「コントローラ装置10を、右手で持ち、左右に振ってください」といった表示を行う。
 ユーザがこの指示に従って、コントローラ装置10を右手で把持して、自分から見て左右に振る動作を行うと、コントローラ装置10が、表面センサ123aにおけるユーザの手や指の接触の検出結果、及び姿勢センサ123bによる移動方向の検出結果に基づきX軸の向きを検出する。ここでは最初にコントローラ装置10が移動した方向をX軸負の向きとする。
 その後、コントローラ装置10は、また情報処理装置30との間で通信し、情報処理装置30に対して、「コントローラ装置10を、右手で持ったまま、まずお腹に押し当てて、それから前後に振ってください」というような表示をするよう指示する。情報処理装置30は、この指示に応じて、「コントローラ装置10を、右手で持ったまま、まずお腹に押し当てて、前後に振ってください」といった表示を行う。
 ユーザがこの指示に従って、コントローラ装置10を右手で把持した状態を維持したまま、自分の腹部にコントローラ装置10を押し当てた後、自分から見て前後に振る動作を行うと、コントローラ装置10が、表面センサ123aにおけるユーザの手や指の接触の検出結果、及び姿勢センサ123bによる移動方向の検出結果に基づき、ユーザの身体の方向(Y軸負の向き)を検出する。この例では最初に移動する方向がユーザの身体から離れる方向(Y軸正の向き)となる。
 具体的には、既に述べたように、コントローラ装置10は姿勢センサ123bによる移動方向からX軸,Y軸の正の向きを検出する。
 そしてコントローラ装置10は、検出したX軸,Y軸の双方に直交する方向をZ軸方向とし、例えば左手系と仮定してZ軸正の向きを決定する。これによりコントローラ装置10は、ユーザ座標系のXYZ軸のそれぞれの正の向きを表すセンサ座標系でのベクトルを得る。そしてコントローラ装置10は、センサ座標系と、ユーザ座標系(XYZ座標系)とを相互に変換するユーザ座標系変換式を得て初期化処理を終了する。この例では、重力の方向は、ユーザが立った状態でコントローラ装置10を操作する場合、ユーザ座標系のZ軸の負の方向となる。またユーザが寝ころんだ状態でコントローラ装置10を操作する場合、重力の方向はユーザ座標系のY軸負の方向となる。
 コントローラ装置10は、以下、ユーザによる操作が終了するまで(例えばユーザの手や指が検出されない状態が、予め定めた時間だけ継続したときまで)、次のステップS12からS15の処理を繰り返して実行する。
 コントローラ装置10は、ここで、初期化処理後のコントローラ装置10の姿勢変化に応じて、ユーザ座標系変換式を更新する(S12:姿勢情報の更新)。この更新方法は、例えばジャイロセンサの出力を用いる方法や、ジャイロセンサの出力に加え、方位変換式を用いる方法など、広く知られた方法(例えば、https://qiita.com/Tanba28/items/5092c3e5e2c631b804f3などに開示された方法)を用いればよい。
 コントローラ装置10は、表面センサ123aにより検出されたユーザの手や指が接触している位置や、ユーザがコントローラ本体11に対して加えた力の方向などのユーザの操作を表す情報(いずれもセンサ座標系で表される)を取得し(S13)、当該取得した情報を、ステップS12で更新したユーザ座標系変換式を用いてユーザ座標系でのユーザの操作を表す情報に変換する(S14)。
 そしてコントローラ装置10は、ステップS14で得た、ユーザ座標系でのユーザの操作を表す情報を、情報処理装置30に出力する(S15)。
 情報処理装置30は、コントローラ装置10から、ユーザ座標系でのユーザの操作を表す情報を受け入れて、ゲームアプリケーションの制御の処理等に供する。
[初期操作によるリセット]
 本実施の形態のコントローラ装置10は、また、所定の初期化操作が行われたときにはいつでも、上記初期化処理(ステップS11)に移行して、処理を続けてもよい。これにより、ユーザはいつでもコントローラ装置10の動作をリセット可能となる。
[コントローラ装置の操作方法の他の例]
 ここまでの説明ではコントローラ装置10を片手で把持し、いずれかの指で押圧したり、握って変形させたり、あるいは一部をつまむ、といった操作を行う例について述べたが、このコントローラ装置10に対する操作方法は、これらの例に限られない。
 本実施の形態のコントローラ装置10は、上述のように、5指を用いて把持するだけでなく、親指、人さし指、中指の3指で把持することとしてもよい。いずれの場合であっても、手首を捻らずに自然に把持した場合、図4に例示したように、右手であれば手の平が上方にある(図4(b))か、手の平が下方にある(図4(c))か、手の平が右側にある(図4(d))となると想定されるため、コントローラ装置10が、どの方向の表面センサ123aがユーザの手や指の接触を検出しているかにより、手の平の方向を検出可能となり、また、親指の位置や、人さし指、中指などの各指の位置が推定可能となる。
 そこでコントローラ装置10は、推定した各指のいずれかの位置において、コントローラ本体11が押圧されたときには、どの指で押圧されたかを示す情報を、情報処理装置30に送出してもよい。
 この例では、情報処理装置30は、ゲームアプリケーション等の設定により、例えば親指の位置が押圧されたときと、人さし指の位置が押圧されたときとで異なる操作を受け入れたものとして処理を行うことが可能となる。つまり、この例では、ユーザがコントローラ装置10をどのような向きで把持しようとも、コントローラ本体11のユーザの指の位置が従来のコントローラにおけるボタンと同様に機能することとなる。さらに、押圧情報と組み合わせることによって、例えば、マッサージ方法をトレーニングするソフトウェアにおいて指定された指で最適な押圧にて押せているかを判定する、料理を行うゲームにおいて最適な押圧にてパンをこねることができているか、おにぎりを正しい手の形状で握ることができるか等の判定に使用することができる。
 また本実施の形態のコントローラ装置10のコントローラ本体11は、好適には、少なくとも1つの軸周りに対称な形状を有しているため、この軸周りに回転させる操作が行われてもよい。
 ユーザがコントローラ装置10を、例えば手の平の上で転がして回転させた場合、コントローラ装置10は、ユーザの手の接触する位置を逐次的に検出することにより、あるいは、ジャイロセンサの出力などの既に述べたユーザ座標系変換式の更新の処理により、回転方向や回転量、回転速度の情報を得る。コントローラ装置10は、これらの情報を情報処理装置30に送信し、情報処理装置30では、コントローラ装置10の回転方向や回転量、回転速度の情報を、ゲームアプリケーションの制御の処理等に用いる。例えば、所定のコースに沿ってボールを転がしながら移動する、物体の表面を磨くような動作をするゲーム等に応用可能である。
 またユーザがHMDを装着していないか、あるいは透過型のHMDを装着している場合など、コントローラ装置10が手から離れてもよい場合には、ユーザは、コントローラ装置10を机上、あるいは床の上で転がしてもよい。この場合、コントローラ装置10は、例えばジャイロセンサの出力などの、既に述べたユーザ座標系変換式の更新の処理により、回転方向や回転量、回転速度の情報を得る。
 さらにこのコントローラ装置10は、投げて利用されてもよい。この例では、コントローラ装置10は、ユーザの手や指が接触している状態から、ユーザの手や指の接触が検出されなくなった時点から、その後、コントローラ装置10に所定の加速度以上の衝撃が加わる(着地、あるいは何かに衝突したとき)まで(あるいはコントローラ装置10が静止するまで、つまりユーザ座標系変換式の更新の処理によりユーザ座標系変換式が所定の時間以上更新されなくなるまで)、コントローラ装置10が空中にあるものと判断する。そしてコントローラ装置10は、空中にあると判断している間、コントローラ装置10自身の移動軌跡や回転を、ジャイロセンサの出力、あるいはユーザ座標系変換式の更新の処理などにより検出する。そしてコントローラ装置10は、この検出した移動軌跡や回転の情報を、情報処理装置30に送信し、情報処理装置30では、コントローラ装置10が空中にある間の移動軌跡や回転の情報を、ゲームアプリケーションの制御の処理等に用いる。この例は、例えば、野球のゲームや玉入れゲームなどボールを投げる動作を伴うゲーム等に応用可能であり、また例えば情報処理装置30は、空中にあると判断される直前の、コントローラ本体11の表面に接触しているユーザの指の位置の情報を用いて、あるいは当該指の位置の情報と、起動軌跡や回転の情報とを用いて、カーブやフォークなどの球種での投球が行われたものとしてゲーム等の処理を実行してもよい。
 またここまでの説明では、ユーザが手に把持して利用する例について説明したが、本実施の形態のコントローラ装置10は、机上等に置かれて利用されてもよい。例えば机上に置いたコントローラ装置10をたたきつぶすように操作する例、人さし指で剪断方向に力をかけることで対象を操作する例や、コンピューター機器のポインティング機器(所謂、マウス機器)の代替として使用してグラフィカルユーザインタフェースのカーソルの移動やラジオボタンなどの選択決定を操作する例などが考えられる。
[複数のコントローラ装置が存在する場合]
 さらに、情報処理装置30に接続されるコントローラ装置10は、ユーザごとに2つずつあってもよい。この場合、各コントローラ装置10は、情報処理装置30との間で通信を行う際、自己が情報処理装置30に対して送出する情報に、自己に固有に割り当てられた識別情報を含める。
 またこの場合、情報処理装置30は、ユーザに対して、「まず右手に持つコントローラ装置を取り上げてください」など、左右のそれぞれの手で持つコントローラ装置10を順番に案内し、取り上げられた順序によってユーザが右手に持っているコントローラ装置10の識別情報と、左手に持っているコントローラ装置10の識別情報とを識別することとしてもよい。
 また別の例では、情報処理装置30は、ユーザに対して、「右手に持っているコントローラ装置を、机にぶつけてください」などといったように、左右のそれぞれの手で持つコントローラ装置10について何らかの操作を行うよう案内し、対応する操作が行われたことを検出することで、ユーザが右手に持っているコントローラ装置10の識別情報と、左手に持っているコントローラ装置10の識別情報とを識別することとしてもよい。
 これらのように、ユーザが複数のコントローラ装置10を利用する例では、ユーザは、各コントローラ装置10に対して任意のタイミング(例えば左右のそれぞれの手に持つコントローラ装置10を入れ替えたタイミングなど)で初期化操作を行う。このためコントローラ装置10は、所定の操作が行われたときに、初期化操作を受け入れる、初期化の処理を実行するようにしてもよい。
 また、情報処理装置30に接続されるコントローラ装置10は、ユーザごとに2つでなくてもよく、3以上の数であってもよい。この例では、ユーザは、予め各コントローラ装置10に対して初期化操作を行ったうえで、各コントローラ装置10を、自己の手の届く範囲に配しておき、適宜のコントローラ装置10を取り上げて操作を行う。例えば玉入れなどのゲームにおいては、複数のコントローラ装置10を順次投げる操作を行うことが考えられる。
 10 コントローラ装置、11 コントローラ本体、12 回路部、21 操作受入部、22 姿勢推定部、23 操作情報生成部、24 送出部、30 情報処理装置、31 制御部、32 記憶部、33 通信部、34 表示部、110 筐体、121 制御部、122 記憶部、123 センサ部、124 通信部。
 
 

Claims (8)

  1.  コントローラ本体と、
     制御部とを備え、
     前記制御部は、前記コントローラ本体に対するユーザの操作を受け入れる操作受入手段と、
     前記コントローラ本体の姿勢を推定する推定手段と、
     前記推定手段の推定結果を用いて、前記受け入れた操作の内容を表す情報を生成して出力する操作情報生成手段と、
     とを含むコントローラ装置。
  2.  請求項1に記載のコントローラ装置であって、
     加速度センサ、
     地磁気センサ、
     及び
     ジャイロセンサ、
    のうち少なくとも一つのセンサを具備し、当該具備するセンサの検出結果を出力するセンサ部を備え、
     前記推定手段は、前記ユーザの操作を受け入れた時点での前記センサ部の出力を用いて、前記コントローラ本体の姿勢を推定するコントローラ装置。
  3.  請求項1または2に記載のコントローラ装置であって、
     少なくとも加速度センサを具備し、当該具備するセンサの検出結果を出力するセンサ部と、
     ユーザに対し、当該コントローラ装置に、所定方向の加速度を加える操作を案内する案内手段と、を備え、
     前記推定手段は、前記案内手段により案内された操作に応じて前記センサ部が出力する検出結果を用いて、前記コントローラ本体の姿勢を推定するコントローラ装置。
  4.  請求項1から3のいずれか一項に記載のコントローラ装置であって、
     前記コントローラ本体は、弾性変形可能な材料で形成されているコントローラ装置。
  5.  請求項1から4のいずれか一項に記載のコントローラ装置であって、
     前記コントローラ本体は、少なくとも一つの軸周りに回転対称な形状を有するコントローラ装置。
  6.  請求項5に記載のコントローラ装置であって、
     前記コントローラ本体は、球形であるコントローラ装置。
  7.  コントローラ本体と、
     制御部とを備えるコントローラ装置の制御方法であって、
     前記制御部が、前記コントローラ本体に対するユーザの操作を受け入れ、
     前記コントローラ本体の姿勢を推定し、
     当該姿勢の推定結果を用いて、前記受け入れた操作の内容を表す情報を生成して出力するコントローラ装置の制御方法。
  8.  コントローラ本体と、
     制御部とを備えるコントローラ装置の前記制御部を、
     前記コントローラ本体に対するユーザの操作を受け入れる操作受入手段と、
     前記コントローラ本体の姿勢を推定する推定手段と、
     前記推定手段の推定結果を用いて、前記受け入れた操作の内容を表す情報を生成して出力する操作情報生成手段と、
     として機能させるプログラム。
     
PCT/JP2022/010425 2022-03-09 2022-03-09 コントローラ装置、コントローラ装置の制御方法、及びプログラム WO2023170843A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/010425 WO2023170843A1 (ja) 2022-03-09 2022-03-09 コントローラ装置、コントローラ装置の制御方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/010425 WO2023170843A1 (ja) 2022-03-09 2022-03-09 コントローラ装置、コントローラ装置の制御方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2023170843A1 true WO2023170843A1 (ja) 2023-09-14

Family

ID=87936322

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/010425 WO2023170843A1 (ja) 2022-03-09 2022-03-09 コントローラ装置、コントローラ装置の制御方法、及びプログラム

Country Status (1)

Country Link
WO (1) WO2023170843A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065251A (ja) * 2009-09-15 2011-03-31 Nintendo Co Ltd 情報処理プログラムおよび情報処理装置
WO2016068262A1 (ja) * 2014-10-29 2016-05-06 京セラ株式会社 コミュニケーションロボット
JP2018079040A (ja) * 2016-11-16 2018-05-24 株式会社バンダイ 演出出力玩具
WO2021192115A1 (ja) * 2020-03-25 2021-09-30 株式会社ソニー・インタラクティブエンタテインメント コントローラ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011065251A (ja) * 2009-09-15 2011-03-31 Nintendo Co Ltd 情報処理プログラムおよび情報処理装置
WO2016068262A1 (ja) * 2014-10-29 2016-05-06 京セラ株式会社 コミュニケーションロボット
JP2018079040A (ja) * 2016-11-16 2018-05-24 株式会社バンダイ 演出出力玩具
WO2021192115A1 (ja) * 2020-03-25 2021-09-30 株式会社ソニー・インタラクティブエンタテインメント コントローラ

Similar Documents

Publication Publication Date Title
US10838495B2 (en) Devices for controlling computers based on motions and positions of hands
CN111356968B (zh) 基于检测到的手输入渲染虚拟手姿势
JP5969626B2 (ja) 高められたジェスチャ・ベースの対話のためのシステム及び方法
EP3559784B1 (en) Haptic interaction method and system
CN111638801B (zh) 用于手势辨识的控制器及其手势辨识的方法
KR101541082B1 (ko) 손 재활 운동 시스템 및 방법
US20040012557A1 (en) Hand-held computer interactive device
CN110546597A (zh) 使用电容式触控板的手持控制器
JP2008113719A (ja) コントローラ装置
US20150185852A1 (en) Ring mobile device and operation method of the same
JP2013025664A (ja) 入力装置、入力方法及び制御システム
US20230142242A1 (en) Device for Intuitive Dexterous Touch and Feel Interaction in Virtual Worlds
US11422624B2 (en) Hand interface device utilizing haptic force gradient generation via the alignment of fingertip haptic units
JP2019096312A (ja) 触覚アクセサリー装置
JPWO2008102432A1 (ja) 操作デバイス及び情報処理システム、情報処理方法
JP7248720B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JPWO2008139552A1 (ja) コントローラ及び操作対象装置
WO2023170843A1 (ja) コントローラ装置、コントローラ装置の制御方法、及びプログラム
CN206404297U (zh) 一种手环式游戏控制设备
EP4218972A1 (en) Control device, system and method
WO2023085687A1 (ko) 입력장치
US11003247B1 (en) Deployable controller
CN209590793U (zh) 单手操控装置和电子设备
WO2021070770A1 (ja) コントローラを使用したゲーム方法
CN104049876B (zh) 电子装置的控制方法

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: 22930824

Country of ref document: EP

Kind code of ref document: A1