(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】情報処理システム、コントローラ装置、その制御方法、及びプログラム
(51)【国際特許分類】
G06F 3/01 20060101AFI20240925BHJP
G06F 3/16 20060101ALI20240925BHJP
【FI】
G06F3/01 510
G06F3/01 514
G06F3/16 610
(21)【出願番号】P 2023546715
(86)(22)【出願日】2021-09-13
(86)【国際出願番号】 JP2021033551
(87)【国際公開番号】W WO2023037548
(87)【国際公開日】2023-03-16
【審査請求日】2024-02-26
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】石川 清隆
(72)【発明者】
【氏名】木村 真
(72)【発明者】
【氏名】殿谷 政明
(72)【発明者】
【氏名】沢田 拓郎
(72)【発明者】
【氏名】榎本 和義
【審査官】三吉 翔子
(56)【参考文献】
【文献】特開2015-015600(JP,A)
【文献】国際公開第2015/019593(WO,A1)
【文献】特開2013-003911(JP,A)
【文献】国際公開第2020/079852(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/16
G06F 3/048
A63F 13/20
(57)【特許請求の範囲】
【請求項1】
ユーザが
手に装着し、触れて操作するコントローラ装置と、
当該コントローラ装置に接続される情報処理装置とを含む情報処理システムであって、
前記コントローラ装置は、
ユーザが手に装着したときにユーザの手指が接触した状態となるコントローラ装置の表面には、ユーザの手指が接触したか否かを検出する接触センサを備え、
ユーザの操作を受け入れて、当該受け入れた操作に関する情報を前記情報処理装置へ送出する第1の状態と、当該第1の状態とは異なる第2の状態であって、ユーザの接触状態に基づく所定の処理を実行する第2の状態と、のいずれかの動作状態で動作
し、
前記第2の状態では、ユーザの接触状態に基づいて、ユーザが操作を開始するか否かを推定して、
前記推定の結果、前記接触センサの検出結果に基づいてユーザが操作を開始すると推定されたときに、前記第1の状態での動作を開始する情報処理システム。
【請求項2】
情報処理装置に接続され、ユーザが
手に装着し、触れて操作するコントローラ装置であって、
ユーザが手に装着したときにユーザの手指が接触した状態となるコントローラ装置の表面には、ユーザの手指が接触したか否かを検出する接触センサを備え、
ユーザの操作を受け入れて、当該受け入れた操作に関する情報を前記情報処理装置へ送出する第1の状態と、当該第1の状態とは異なる第2の状態であって、ユーザの接触状態に基づく所定の処理を実行する第2の状態と、のいずれかの動作状態で動作
し、
前記第2の状態では、ユーザの接触状態に基づいて、ユーザが操作を開始するか否かを推定して、
前記推定の結果、前記接触センサの検出結果に基づいてユーザが操作を開始すると推定されたときに、前記第1の状態での動作を開始するコントローラ装置。
【請求項3】
請求項2に記載のコントローラ装置であって、
音声を発生させる発音デバイスを含み、
前記第2の状態では、前記情報処理装置からの指示に応じて、ユーザが接触するまでの間、前記発音デバイスを音声を発生させるよう制御するコントローラ装置。
【請求項4】
請求項3に記載のコントローラ装置であって、
ユーザの手指との空間的な位置の変位に関する情報を検出するセンサをさらに備え、
前記第2の状態にある間、前記センサにより、ユーザの手指が近接していることを検出すると、前記発音デバイスに発声させる音声を、ユーザの手指が近接していることを前記センサが検出していない間と異なる音声となるよう制御するコントローラ装置。
【請求項5】
情報処理装置に接続され、ユーザが
手に装着し、触れて操作するコントローラ装置の制御方法であって、
前記コントローラ装置のユーザが手に装着したときにユーザの手指が接触した状態となるコントローラ装置の表面には、ユーザの手指が接触したか否かを検出する接触センサを備え、
コンピュータを用いて、
ユーザの操作を受け入れて、当該受け入れた操作に関する情報を前記情報処理装置へ送出する第1の状態と、当該第1の状態とは異なる第2の状態であって、ユーザの接触状態に基づく所定の処理を実行する第2の状態と、のいずれかの動作状態で動作するよう制御
し、
前記第2の状態では、ユーザの接触状態に基づいて、ユーザが操作を開始するか否かを推定して、
前記推定の結果、前記接触センサの検出結果に基づいてユーザが操作を開始すると推定されたときに、前記第1の状態での動作を開始する
コントローラ装置の制御方法。
【請求項6】
情報処理装置に接続され、ユーザが
手に装着し、触れて操作するコントローラ装置
であって、ユーザが手に装着したときにユーザの手指が接触した状態となるコントローラ装置の表面に、ユーザの手指が接触したか否かを検出する接触センサを備えるコントローラ装置が備えるコンピュータに、
ユーザの操作を受け入れて、当該受け入れた操作に関する情報を前記情報処理装置へ送出する第1の状態と、当該第1の状態とは異なる第2の状態であって、ユーザの接触状態に基づく所定の処理を実行する第2の状態と、のいずれかの動作状態で動作するよう制御させ
、
前記第2の状態では、ユーザの接触状態に基づいて、ユーザが操作を開始するか否かを推定して、
前記推定の結果、前記接触センサの検出結果に基づいてユーザが操作を開始すると推定されたときに、前記第1の状態での動作を開始するよう制御させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、コントローラ装置、その制御方法、及びプログラムに関する。
【背景技術】
【0002】
家庭用ゲーム機等で利用されるコントローラ装置には、種々のものがあり、その操作の方法も多様化している。例えば、ユーザが手に装着した状態で利用することが想定されているものがある。
【0003】
また近年ではヘッドマウントディスプレイを装着した状態でコントローラ装置を利用する場合も多い。
【発明の概要】
【発明が解決しようとする課題】
【0004】
このようにコントローラ装置が多様化しており、また、ヘッドマウントディスプレイを装着しているときなど、コントローラ装置を利用しようとする場面で、ユーザが周辺を視認できない場合もある。
【0005】
本発明は上記実情に鑑みて為されたもので、多様な場面でコントローラ装置の利用を支援できる情報処理システム、コントローラ装置、その制御方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決するための本発明の一態様は、ユーザが触れて操作するコントローラ装置と、当該コントローラ装置に接続される情報処理装置とを含む情報処理システムであって、前記コントローラ装置が、ユーザの操作を受け入れて、当該受け入れた操作に関する情報を前記情報処理装置へ送出する第1の状態と、当該第1の状態とは異なる第2の状態であって、ユーザの接触状態に基づく所定の処理を実行する第2の状態と、のいずれかの動作状態で動作することとしたものである。
【発明の効果】
【0007】
本発明によると、多様な場面でコントローラ装置の利用を支援できる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施の形態に係るコントローラ装置の構成及びその接続例を表す概要図である。
【
図2】本発明の実施の形態に係るコントローラ装置におけるセンサの配置例を表す説明図である。
【
図3】本発明の実施の形態に係るコントローラ装置において指の検出に用いるセンサを決定するための設定例を表す説明図である。
【
図4】本発明の実施の形態に係る情報処理システムの動作例を表すフローチャート図である。
【
図5】本発明の実施の形態に係るコントローラ装置の動作例を表すフローチャート図である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システム100は、コントローラ装置1と情報処理装置2とを含んで構成される。ここで本実施の形態の一例に係るコントローラ装置1は、ユーザの手に装着して用いられるものとするが、本実施の形態はこのようなコントローラ装置1に限られるものではなく、例えば手に持って操作するコントローラ装置1であっても構わない。
【0010】
手に装着して用いられるここでの例のコントローラ装置1は、
図1に例示するように、コントローラ本体10と、コントローラ本体10とユーザの手との位置関係が保たれるようにする固定具20とを含んで構成され、有線または無線にて情報処理装置2との間で通信可能に接続される。
【0011】
本実施の形態の以下の説明において、各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【0012】
図1(a)は、本発明の実施の形態のコントローラ装置1の左側面図、
図1(b)は、当該コントローラ装置1の右側面図、
図1(c)は当該コントローラ装置1を正面やや左側から見た概略斜視図を示す。
【0013】
コントローラ装置1の固定具20は、例えばコントローラ本体10に両端が固定された環状のベルト部材であり、ユーザはこの固定具20とコントローラ本体10との間に人差し指から小指までの4本の指を通した状態で固定具20のベルト部材を締めて(固定具20とコントローラ本体10との間の間隙を狭くして)、コントローラ本体10が手の平に接した状態で、ユーザの手にコントローラ本体10を装着する。このように固定具20によりコントローラ装置1を手に装着することで、ユーザがコントローラ本体10を把持した状態(指をコントローラ本体10に巻き付けて保持した状態)から、指を伸ばした状態としても、コントローラ本体10がユーザの手から離れて落ちてしまうことがなくなる。
【0014】
なお、固定具20の位置により、コントローラ装置1を装着する手は左右の手のいずれかに設定される。例えば
図1の例では固定具20は右側面に配されているため、右手に装着して用いるものとなっている。
【0015】
コントローラ本体10は、ユーザが固定具20に通した指の少なくとも一部(ここでは中指から小指)で把持可能な把持部11と、操作部12とを含む。把持部11は、実質的に多角形柱状をなし、操作部12が、この把持部11から連続して形成される。また、操作部12には、正面側にセンサ部15と、ボタン操作部16とを含み、背面側に、揺動ボタン17を備えて構成される。またこの操作デバイス10は、内部に制御部31と、バイブレータ等の振動デバイス32と、通信部33とを含んで構成されている。
【0016】
図1の例では、ユーザは、人差し指を操作部12の揺動ボタン17を操作可能な位置に配し、親指を正面側のボタン操作部16に含まれるボタンに到達可能な位置に配する。このとき、ユーザの中指、薬指、小指は把持部11を把持可能な状態(把持部11に巻き付けることができる状態)となる。
【0017】
またコントローラ本体10をユーザが握ったときに、ユーザの中指、薬指、小指の指の付け根部分が当接する把持部11上の位置には、ユーザの上記各指の空間的な位置の変位に応じた値を出力し、ユーザの各指が把持部11の表面に対して近接しているかどうかを検出する少なくとも一つの第1のセンサ21が配される。この第1のセンサ21は例えば静電センサ21Sと、当該静電センサ21Sの検出結果を電気的信号に変換して出力するセンサ回路21Cとを含んで構成される(図ではこれらをまとめて第1のセンサ21として図示している)。
【0018】
次に、本実施の形態の一例に係る第1,第2のセンサ21,22の配置例について
図2を参照しつつ説明する。
【0019】
本実施の形態の例では、一般的な成人の手の幅の平均の長さを超える長さに亘って、複数の第1のセンサ21を、実質的に把持部11の長手方向に沿って一列に配する。
図2の例では、6つの第1のセンサ21を一列に配した例としているが、この数に限られるものではない。
【0020】
さらにコントローラ本体10をユーザが握ったときに、ユーザの中指、薬指、小指の腹から先端までの範囲が当接するコントローラ本体10上の位置には、ユーザの上記各指までの距離を検出する複数の第2のセンサ22が離散的に(互いに検出範囲が重複することなく)配される。この第2のセンサ22もまた、例えば静電センサ22Sと、当該静電センサ22Sの検出結果を電気的信号に変換して出力するセンサ回路22Cとを含んで構成される(図ではこれらをまとめて第2のセンサ22として図示している)。そして第2のセンサ22も、ユーザの上記各指の空間的な位置の変位に応じた値を出力する。
【0021】
本実施の形態の一例では、複数の第2のセンサ22はマトリクス状に(二次元的に)配される。
図2の例では、把持部11の長手方向に沿って2列、各列6個ずつの第2のセンサ22を配している。もっとも本実施の形態は、このように6行×2列に配列する例に限られず、複数の第2のセンサ22がコントローラ本体10の把持部11をユーザが握ったときに、ユーザの各指の腹から先端までの範囲が当接するコントローラ本体10上の範囲に配され、各指の曲げ伸ばしが検出できれば、配置の態様はどのようなものでも構わない。
【0022】
この
図2の例では、第1のセンサ21の各静電センサ21Sが、第2のセンサ22の静電センサ22Sの行方向にそれぞれ配されて、第1、第2のセンサ21,22で全体として3×6の格子状(斜交格子状)に静電センサが配された状態となっている。
【0023】
なお、ここでは第1,第2のセンサ21,22はいずれも静電センサである例としているが、本実施の形態はこれに限られず、カメラや、光学センサ、焦電センサ、超音波センサ等であっても、指や手の表面との相対的な位置関係(距離や変位等、空間的な位置の変位)に応じた情報が得られればよい。
【0024】
また本実施の形態の一例では、少なくとも一部の第2のセンサ22の検出面(静電容量を測定するための面、あるいは第2のセンサ22が赤外センサであれば、赤外光を受け入れる開口面など)の幅w(把持部11の長手方向の幅)は、一般的なユーザ(想定されるユーザ、例えば平均的な成人)の指の幅よりも短くしておく。これにより、各指が単独で接触する第2のセンサ22を確保する。また、互いに隣接する第2のセンサ22間の、把持部11の長手方向の間隙は、上記幅wよりもさらに小さくする。
【0025】
このとき、人差し指側(揺動ボタン17の側)の行に配列された第2のセンサ22の幅wについては、他の第2のセンサ22の幅wよりも大きめとしておいてもよい。この行に配列される第2のセンサ22には、必ず中指が接触することが想定されるため、中指の検出を確実に行うためである。このように、第2のセンサ22A,B…のそれぞれの検出面の幅や長さなどは、それぞれ共通でなくてもよく、いずれかの幅が大きくまたは小さく設定されてもよい。または長さについてもそれぞれの目的に応じて適宜異ならされていてもよい。
【0026】
ここでの例では、第2のセンサ22のうち、中指が接触すると想定される第2のセンサ22A,Gが、他の第2のセンサ22B,C…に比べ、大きい幅に亘って配されていることとなる。
【0027】
また、第1のセンサ21についても、それぞれの第1のセンサ21A,B,…の検出面(第1のセンサ21も静電センサであれば静電容量を測定する面、あるいは赤外センサであれば、赤外光を受け入れる開口面など)の幅や長さなどは、それぞれ共通でなくてもよく、いずれかの幅が大きくまたは小さく設定されてもよい。または長さについてもそれぞれの目的に応じて適宜異ならされていてもよい。
【0028】
操作部12のセンサ部15は、例えば、コントローラ本体10の正面側であって、その表面の法線方向を中心とし、コントローラ本体10から正面方向を見て、コントローラ本体10の左側面側から右側面側までの比較的広角の角度範囲を検出可能範囲として、この検出可能範囲においてユーザの親指を検出する。そして当該親指を検出した位置(上記角度範囲内の角度)や、センサ部15からユーザの親指までの距離等を検出し、これらの情報を含む、検出結果情報を制御部31に出力する。このセンサ部15は例えば、カメラや、光学センサ、焦電センサ、超音波センサ、静電容量センサ等、どのようなものでも構わない。
【0029】
ボタン操作部16は、コントローラ本体10の正面側に配された複数のボタンを含む。これらのボタンは例えばユーザの親指等によって押下操作される。また、ボタン操作部16に含まれる少なくとも一部のボタンは、押下操作のみならず傾倒操作が可能となっていてもよい。この場合、ユーザが親指等によって当該ボタンの傾倒操作を行うと、ボタン操作部16は、当該操作がされたボタンを特定する情報とともに、傾倒方向や傾倒量(傾倒角度に応じた量)等、操作の内容を表す情報を制御部31に出力する。
【0030】
揺動ボタン17は、ユーザがコントローラ本体10を把持した状態で、ユーザの人差し指が到達可能な位置(コントローラ本体10の背面側)に配される。揺動ボタン17は、ユーザの人差し指で押し込み操作され、その押し込み量(ボタンの移動量)を表す情報を制御部31に出力する。具体的にこの揺動ボタン17は、ポテンショメータ等を含んで構成できるが、押し込み量が検出できれば、この構成に限られるものではない。
【0031】
また制御部31は、マイクロコンピュータ等のプログラム制御デバイスを含み、メモリ等の記憶手段に格納されたプログラムに従って動作する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶手段に格納されたものであってもよい。
【0032】
またこの制御部31は、第1,第2のセンサ21,22や、操作部12のセンサ部15,ボタン操作部16,揺動ボタン17に接続され、これら第1,第2のセンサ21,22の出力に基づく信号や、センサ部15、ボタン操作部16等から入力されるユーザの操作の内容を表す信号等、各種の信号を受け入れ、当該受け入れた信号に基づいて、操作に関する情報を、情報処理装置2に対して送出する処理(以下、操作伝達処理と呼ぶ)を実行する。この制御部31は、例えばブルートゥース(登録商標)等の無線通信インタフェース、またはUSBや有線LAN等の有線通信インタフェース等を含み、この無線通信インタフェースや有線インタフェースを介して、情報処理装置2との間で種々の信号を授受する。
【0033】
また本実施の形態では、この制御部31は、上記操作伝達処理を実行する第1の状態と、この第1の状態とは異なる第2の状態であって、ユーザの接触状態に基づく所定の処理を実行する第2の状態と、これら第1,第2の状態のいずれとも異なり、省電力状態で動作して、外部(例えば情報処理装置2)からの所定の指示を受信したときに上記第1または第2の状態のいずれかの状態に変化する第3の状態(省電力動作状態)のいずれかの動作状態でコントローラ装置1の動作を制御する。この制御部31の具体的な動作については、後に述べる。
【0034】
振動デバイス32は、バイブレータ等であり、制御部31から入力される指示により、所定の波形の振動を提示する。この振動デバイス32は、振動の周波数によっては音声として可聴な振動を提示する。
【0035】
通信部33は、USB等のインタフェースや、ブルートゥース等の近距離無線通信インタフェースを含む。この通信部33は、情報処理装置2との間で通信可能に接続され、制御部31から入力される指示に従い、情報処理装置2に対して操作に関する情報を送出する。また情報処理装置2から入力される指示を受信し、制御部31に対して出力する。さらに本実施の形態の一例では、この通信部33は、例えば制御部31が上記第3の状態で動作している状態であってもBLE(Bluetooth Low Energy)の信号を待ち受け、BLEの信号を受信したときには当該信号に、コントローラ装置1に固有の、予め定められた情報が含まれるか否かを調べ、当該情報が含まれているときには、制御部31に対して、第1または第2の状態へ移行するよう信号を出力する(いわゆるウェイクアップ)処理を実行してもよい。
【0036】
情報処理装置2は、例えば家庭用ゲーム機等のコンピュータ制御デバイスであり、プロセッサとメモリデバイスやディスクデバイス等の記憶手段とコントローラ装置1から入力される操作の情報を受け入れてプロセッサに伝達する入出力手段と、ディスプレイやヘッドマウントディスプレイ(HMD)に対してプロセッサからの指示に従って情報を表示する表示手段とを含んで構成される。
【0037】
この情報処理装置2は、コントローラ装置1との間で例えばブルートゥース等の近距離無線通信により接続されてもよいし、USB等のケーブルにより有線で接続されてもよい。情報処理装置2は、コントローラ装置1から受け入れるユーザの操作に関する情報に基づいて、ゲームプログラムの処理等を実行する。
【0038】
[手幅の検出]
制御部31は、第1の状態において操作伝達処理を実行する際に、操作を受け入れるため、第1のセンサ21が出力する信号を得て、ユーザの手の幅を推定する。具体的に制御部31は、カウンタ(カウンタとなる変数)を用い、このカウンタを「0」にリセットしてから、人差し指側(揺動ボタン17側)に配されている第1のセンサ21Aから順に、第1のセンサ21の出力信号(対応するセンサ21Sの静電容量を表す信号、つまり検出値)を調べる。
【0039】
一例として、比較的手の小さいユーザが把持した場合、第1のセンサ21A,B,C,Dの4つが指の接触を検出し、第1のセンサ21E,Fは指の接触を検出しない状態となるなど、一部の第1のセンサ21が指の接触を検出しない状態となる。手幅が小さいほど、この、指の接触を検出しない第1のセンサ21が増えるが、人差し指は揺動ボタン17に配されるため、この揺動ボタン17に近い側の第1のセンサ21Aは必ず中指の接触を検出することとなり、揺動ボタン17から遠い側にある第1のセンサ21から順に、手幅小さいほど指の接触を検出しない状態となる。
【0040】
そこで制御部31は、調べた第1のセンサ21が指の接触を検出していれば(調べた第1のセンサ21の出力する検出値が予め定めた接触判定用のしきい値を超えていれば)カウンタを「1」だけインクリメントする。また、最初に指を検出していない第1のセンサ21(出力する検出値が予め定めた接触判定用のしきい値を下回る第1のセンサ21)が見いだされるか、または最後の第1のセンサ21まで調べ終えると、制御部31は、その時点のカウンタの値を、手幅を表す情報として得る。
【0041】
なお、比較的手の大きいユーザが把持した場合、全ての第1のセンサ21Aないし21Fが指の接触を検出することとなる。この場合、制御部31は、第1のセンサ21Aから順に出力を調べつつカウンタをインクリメントしてゆき、最後の第1のセンサ21Fにおいても指の接触を検出しているとしてカウンタをインクリメントする。従って、制御部31は、第1のセンサ21Aないし21Fのすべてで指の接触を検出しているものとしてカウンタを「1」ずつインクリメントし、最後の第1のセンサ21Fを調べた時点でのカウンタの値「6」を得る。
【0042】
制御部31は、ここで得られたカウンタの値を用いて、ユーザの中指、薬指、小指のそれぞれの曲げ伸ばしを検出する第2のセンサ22を、複数の第2のセンサ22のうちから選択して、当該選択した第2のセンサ22を特定する情報を出力する。
【0043】
具体的にこの割り当ては、予め、上記カウンタの値に対応して、ユーザの中指、薬指、小指のそれぞれの曲げ伸ばしを検出する第2のセンサ22を特定する情報を関連付けて記憶しておくことで行うことができる(
図3)。
【0044】
図3の例では、カウンタの値(W)に対し、中指、薬指、小指のそれぞれの基節骨に相当する部位との空間的な位置の変位に対応する信号(検出値)を出力する第2のセンサ22を特定する情報MM,RM,PMと、中指、薬指、小指のそれぞれの中節骨より遠位側に相当する部位との空間的な位置の変位に対応する信号を出力する第2のセンサ22を特定する情報MF,RF,PFとを関連付けて保持している。
【0045】
図3には、具体的な例としての設定が示されているが、この設定は、経験的な方法など、種々の方法で決定可能であり、コントローラ装置1の製造者側で予め定めて、制御部31内のメモリに記憶させておくものとする。なお、この設定は情報処理装置2等から入力される指示によって書き換えられてもよい。
【0046】
以下 制御部31は、上記設定とカウンタの値とで特定される第2のセンサ22の出力に基づいて、ユーザの各指の曲げ伸ばしの状態を表す情報を選択的に出力する。
【0047】
例えば、設定により、カウンタの値に対応する割り当てが、中指、薬指、小指のそれぞれの基節骨に相当する部位との空間的な位置の変位を検出する第2のセンサ22として、第2のセンサ22A、22C、22Dを特定する。
【0048】
そして制御部31は、第2のセンサ22Aが出力する情報を中指の曲げ伸ばしを表す情報として、第2のセンサ22Cが出力する情報を薬指の曲げ伸ばしを表す情報として、さらに第2のセンサ22Dが出力する情報を小指の曲げ伸ばしを表す情報として選択して情報処理装置2に対して送信出力する。
【0049】
このとき、制御部31は、第2のセンサ22B,22E,22Fの出力する信号を破棄する(出力しない)。
【0050】
ここで指が曲げられるほど、コントローラ装置1の把持部11に指が近接または接触するため、当該曲げられた指に対応するものとして選択された第2のセンサ22の出力する信号である検出値は、指と当該センサ22とが近接するほど大きい値となり、接触しているときに最大値となる。従ってこの検出値の大きさが指の曲げ伸ばしの程度を表す情報としても利用できる。
【0051】
[探索時処理]
次に、本発明の実施の形態におけるコントローラ装置1が、ユーザの接触状態に基づく所定の処理を実行する第2の状態を実行する際の制御部31の動作について説明する。
【0052】
本実施の形態の一例では、制御部31は、情報処理装置2から入力される指示に応じて、第2の状態で動作させる制御を行う。そしてこの第2の状態で動作する際には、制御部31は振動デバイス32を、音声を発生させる発音デバイスとして用い、ユーザが接触したことを、第1のセンサ21または第2のセンサ22のいずれかにより検出するまでの間、振動デバイス32を制御して、所定の音声を発生させる。
【0053】
本実施の形態のこの例では、情報処理装置2は、ブルートゥース等の無線通信にてコントローラ装置1が接続(ペアリング)されると、当該コントローラ装置1のMACアドレス等、コントローラ装置1ごとに固有な情報として予め定められた情報を取得して、過去に通信を行ったことのあるコントローラ装置1を特定する情報として記憶する。
【0054】
情報処理装置2は、予め定められた条件(コントローラ装置1の位置を報知するための条件)が満足されると、過去に接続されたことのあるコントローラ装置1に対して、ウェイクアップ処理を行わせる信号を送出する。具体的に、本実施の形態のコントローラ装置1が既に述べたように、BLEの信号を待ち受けており、BLEの信号として例えば上記MACアドレス等、予め定められた、コントローラ装置1に固有の情報を受信したときにウェイクアップ処理を行うものとすると、情報処理装置2は、過去に接続されたことのあるコントローラ装置1を特定する情報として記憶しているMACアドレスを含んだBLEの信号を送出する。
【0055】
ここで情報処理装置2がこのウェイクアップ処理を行わせる信号を送出させる際の上記条件としては、
(1)電源投入後、所定の時間に亘って、コントローラ装置1が接続されない(コントローラ装置1から情報を受信しない)、
(2)ユーザがHMDを装着して(HMDを装着したか否かは、例えば図示しないカメラによりHMDを撮像して、その姿勢を推定するなどして判断するなど、広く知られた方法を採用できるのでここでの詳しい説明を省略する)から所定の時間に亘って、コントローラ装置1から操作に関する情報を受け入れない(ユーザが何らの操作も行わない)、
などの条件とすればよい。
【0056】
またウェイクアップ処理を行ったコントローラ装置1の制御部31は、第3の状態から第2の状態での動作に移行し、振動デバイス32に対し、可聴な波長の振動を行わせて、音声を発生させる。制御部31は、第1のセンサ21または第2のセンサ22のいずれかによりユーザの指が接触したことを検出するまで、振動デバイス32を制御して、音声を発生させる動作を継続する。
【0057】
本実施の形態のこの例によると、例えば
図4に例示するように、ユーザがHMDを装着してからしばらく操作を行わない期間が継続したとの条件が満足されると(S1)、情報処理装置2が、ユーザがコントローラ装置1を見つけられない可能性があるものとして、過去に接続されたことのあるコントローラ装置1に対して、ウェイクアップ処理を行わせる信号を送出する(S2)。するとコントローラ装置1が当該信号によって起動し(S3)、ユーザにより探索されるモードで動作して(本実施の形態の第2の状態での動作の一例)、ユーザの手や指が触れたことを検出できるまで(S4)、振動によって自己の位置を報知する(S5)。これによりユーザはHMDを装着して視野が狭まっていたり(透過型のHMDである場合)、あるいは現実の空間が見えない状態(非透過型のHMDである場合)であっても、振動や音声により、コントローラ装置1の位置を知ることができ、その方向へ手を伸ばしてコントローラ装置1を容易に探すことが可能となる。
【0058】
そしてユーザの手や指が触れたことを検出すると、コントローラ装置1は、報知を停止して(S6)、第1の状態へ移行し(S7)、ユーザの操作を受け入れて、当該操作に関する情報を、情報処理装置2へ送出する動作を開始する。
【0059】
またこの例においては、コントローラ装置1の制御部31は、ユーザの手や指が触れたことを検出した後は、振動を停止し、次の処理を行ってもよい。ユーザの手や指が触れたことを検出した後は、制御部31は、ユーザが正しい状態でコントローラ装置1を持つまで第1の状態への移行を行わないよう制御してもよい。
【0060】
ここで正しい状態とは、本実施の形態のここでの例でのコントローラ装置1であれば、固定具20によってユーザが手にコントローラ装置1を固定した状態としたことを意味する。この検出のために制御部31は、上記第2の状態での動作において、ユーザの手や指が触れたことを検出して振動を停止した後、カウンタ(カウンタとなる変数)を設定し、このカウンタを「0」にリセットして、人差し指側(揺動ボタン17側)に配されている第1のセンサ21Aから順に、第1のセンサ21の出力信号(対応するセンサ21Sの静電容量を表す信号、つまり検出値)を調べ、調べた第1のセンサ21が指の接触を検出していれば(調べた第1のセンサ21の出力する検出値が予め定めた接触判定用のしきい値を超えていれば)カウンタを「1」だけインクリメントする。また、最初に指を検出していない第1のセンサ21(出力する検出値が予め定めた接触判定用のしきい値を下回る第1のセンサ21)が見いだされるか、または最後の第1のセンサ21まで調べ終えると、制御部31は、その時点のカウンタの値を、手幅を表す情報として得る。
【0061】
そして制御部31は、ここで得られた手幅を表す情報が、比較的小柄なユーザであっても必ず触れることとなる数(例えば「3」とする)を超えない場合、ユーザが正しい状態でコントローラ装置1を保持していないとして、カウンタを「0」にリセットして再度、第1のセンサ21の出力信号を調べる処理を繰り返す。
【0062】
また、制御部31は、手幅を表す情報として得られた値が、上記の比較的小柄なユーザであっても必ず触れることとなる数を超えた場合は、ユーザが正しい状態でコントローラ装置1を保持している状態となったと判断して、第1の状態に移行し(探索されるモードを脱して)、以下、ユーザの操作を受け入れて、当該操作に関する情報を、情報処理装置2へ送出する動作を開始する。
【0063】
[近接を知らせる例]
また本実施の形態の一例では、上記の探索されるモードとしての第2の状態の動作を行っている間、第1のセンサ21及び第2のセンサ22の検出感度を、第1の状態での動作を行うときの検出感度以上の検出感度に設定してもよい。
【0064】
具体的には第1の状態において第1,第2のセンサ21,22のセンサ回路21C,22Cが、静電センサ21S,22Sの静電容量(C)に対応して、検出対象であるユーザの指との間の空間的な変位(D)に応じた値を「0」から多段階的に(例えば8ビットの信号として)出力するよう設定されるのに対し、ここでの第2の状態(探索されるモード)では、第1,第2のセンサ21,22のセンサ回路21C,22Cが、静電センサ21S,22Sの静電容量(C)が所定のしきい値Cthを超えるまでは「0」とするが、このしきい値Cthを超えて最大の静電容量Cmax(ユーザの指が接触している状態)までを「0」より大きいVminと、出力の最大値Vmax(8ビットの信号とする場合「255」となる)として、対応する静電センサ21S,22Sの静電容量がCであるときの各センサ回路21C,22Cの出力する検出値Vを、
V=C×(Vmax-Vmin)/(Cmax-Cth)+Vmin
とする。なお、この場合、Cthは検出の下限値としても構わない。
【0065】
そして制御部31は、複数の第1,第2のセンサ21,22が出力する検出値のうち最大の検出値が
(1)「0」である(ユーザの手指が近接していない状態)、
(2)Vmin以上、Vmax未満(ユーザの手指が近接しており、接触はしていない状態)、
(3)Vmax(指が接触したことを表す検出値)となっているとき
のいずれであるかにより、互いに異なる振動態様で振動するよう、振動デバイス32を振動制御する。
【0066】
例えば、制御部31は、上記最大の検出値が(1)「0」であるときよりも、(2)Vmin以上、Vmax未満であるときの振動強度(振動波形の振幅)を大きくして振動デバイス32を制御してもよい。そして上記最大の検出値が(3)Vmaxとなったときには、制御部31は、一定の時間だけ所定の波形で振動してから振動を停止するよう制御してもよい。
【0067】
また制御部31は、上記最大の検出値が(2)Vmin以上、Vmax未満の間は、当該最大の検出値が大きくなるほど、振動の周波数を短く(あるいは長く)、または断続的に振動させるときには、振動しない時間を短く(あるいは長く)してもよい。このように制御すると、ユーザはコントローラ装置1に自己の手指が近接したときに振動が変化することから、HMDにより視野が遮られている場合であってもコントローラ装置1をより見出しやすくなる。
【0068】
[一斉に用いられる複数のコントローラ装置]
さらに本実施の形態の一例では、情報処理装置2に接続されるコントローラ装置1は一つとは限らず、ユーザが左手と右手のそれぞれで持って利用する場合のように複数のコントローラ装置1が同時期に利用される場合がある。
【0069】
この場合、情報処理装置2とコントローラ装置1とは上述の処理をコントローラ装置1ごとに個別に行ってもよい。このようにすると、ユーザがすべてのコントローラ装置1を見出して触れるまで、見出されていないコントローラ装置1が振動を続けることとなる。
【0070】
また、このように複数のコントローラ装置1が接続された状態にあるとき、情報処理装置2は、当該一度に接続された複数のコントローラ装置1の組み合わせを表す情報を記憶してもよい。ここでコントローラ装置1の組み合わせを表す情報は、接続されているコントローラ装置1を特定する情報(例えばブルートゥースで接続可能なコントローラ装置1であるときにはそのMACアドレス等でよい)のリスト(順序を問わないリスト)とすればよい。
【0071】
この例では、情報処理装置2がこのウェイクアップ処理を行わせる信号を送出させる際の条件として、先に述べた例に加えて、ユーザがHMDを装着したときに、ユーザが持っている(第1の状態で動作している)コントローラ装置1があり、かつ、当該コントローラ装置1を特定する情報を含むリストが記憶されており、当該リストに含まれる情報で特定されるコントローラ装置1のうちに、接続されていないものがあるとの条件を含めてもよい。この場合、情報処理装置2は、当該接続されていないコントローラ装置1に対してウェイクアップ処理を行わせる信号を送出し、既に接続されているコントローラ装置1に対しては、ウェイクアップ処理を行わせる信号を送出しないよう制御してもよい。
【0072】
この例によると、例えばユーザが過去にコントローラ装置1aとコントローラ装置1bとをそれぞれ左右の手に持って操作したことがある場合(情報処理装置2がコントローラ装置1a,1bが過去に一度に接続されたことがあるとしてそれぞれを特定する情報のリストを記憶している場合)であって、いまユーザが、コントローラ装置1bが接続されていない状態で、コントローラ装置1aを片手に持ったままHMDを装着したとき、情報処理装置2は、当該コントローラ装置1aとともに一度に接続されたことがあるコントローラ装置1bに対してウェイクアップ処理を行わせる信号を送出する。
【0073】
そして当該コントローラ装置1bが、上述の第2の状態の動作を行って、振動デバイス32を振動させ、ユーザにその位置を報知する。これによりユーザは片手でHMDを装着した後に、他方のコントローラ装置1bの位置を知ることが可能となる。
【0074】
[カメラを備えたHMDを用いる場合]
さらに、ここまでの説明では、第2の状態の動作においてコントローラ装置1は、振動デバイス32を振動させることとしていたが、本実施の形態はこれに限られない。例えばコントローラ装置1がスピーカーを備える場合は、振動デバイス32を振動させることに代えて、あるいはそれとともに、当該スピーカーから音声(ビープ音等でもよい)を鳴動してもよい。
【0075】
さらにユーザが前方に(ユーザの視線の方向を撮像する)カメラを備えたHMDを装着したときには、このHMDが備えるカメラで撮像された映像(現実の空間の映像)を表示してもよい。またコントローラ装置1がLED等の発光デバイスを備える場合、このようにカメラで撮像した映像を提示するとともに、当該発光デバイスを点滅させたり、発光デバイスを点灯させて、情報処理装置2によりここでのカメラで撮像した映像のうちから、コントローラ装置1の所在位置を認識させ、当該認識の結果に基づいて、コントローラ装置1が所在する位置として認識された領域(上記映像内の領域)を示す画像を、カメラで撮像した映像に重ね合わせた画像を、HMDに出力して、ユーザに提示してもよい。
【0076】
[ユーザの承諾を得る場合]
なお、ここまでの説明では、情報処理装置2がコントローラ装置1に対してウェイクアップ処理を行わせる信号を出力させる条件として予め定めた条件が満足されたときには、ユーザの承諾を得ずにコントローラ装置1に対してウェイクアップ処理を行わせる信号を出力していたが、本実施の形態はこれに限られない。
【0077】
例えばHMDを装着している場合、上記条件が満足したと判断した情報処理装置2は、コントローラ装置1に対してウェイクアップ処理を行わせる信号を出力するか否かをユーザに問い合わせる表示をHMDに対して行い、ユーザが問い合わせに対して肯定を表す動作、例えば頷く動作や、肯定を表す表示を見つめる動作を行ったか否かを判断し、肯定を表す動作が行われたときに、コントローラ装置1に対してウェイクアップ処理を行わせる信号を出力するようにしてもよい。なお、ユーザの動作の判断方法は、広く知られた方法を利用できるので、ここでの詳細な説明は省略する。
【0078】
[操作推定処理]
また本実施の形態において、コントローラ装置1の制御部31の第2の状態での動作は、上述の例に限られない。例えば制御部31は、第2の状態での動作として、ユーザのコントローラ装置1への接触状態に基づいて、ユーザが操作を開始するか否かを推定してもよい。この場合、制御部31は、当該推定の結果、ユーザが操作を開始すると推定されたときに、第1の状態での動作を開始する。
【0079】
この例では、コントローラ装置1の制御部31は、第3の状態(省電力動作状態)から他の状態に移行するときには、必ずこの第2の状態に移行するものとし、第3の状態から第1の状態に直接移行することはないものとする。
【0080】
またここで、ユーザが操作を開始するか否かを、制御部31が推定する処理は例えば次のようにして行われる。
【0081】
制御部31は、既に説明した例と同様、ユーザが正しい状態でコントローラ装置1を持ったときに、ユーザが操作を開始すると推定してもよい。この例では制御部31は、第1のセンサ21をユーザの手指が接触しているか否かを検出する接触センサとして用い、当該接触センサの検出結果に基づいて推定する。具体的に制御部31は、この例においても、次のように処理を行う。すなわち、制御部31は、
図5に例示するように、第2の状態での動作を開始すると、カウンタ(カウンタとなる変数)を「0」にリセットして初期化し(S11)、人差し指側(揺動ボタン17側)に配されている第1のセンサ21Aから順に、第1のセンサ21の出力信号(対応するセンサ21Sの静電容量を表す信号、つまり検出値)を調べて、調べた第1のセンサ21が指の接触を検出している(調べた第1のセンサ21の出力する検出値が予め定めた接触判定用のしきい値を超えている)か否かを判断する(S12)。
【0082】
そして制御部31は、調べた第1のセンサ21が指の接触を検出していれば(S12:Yes)、カウンタを「1」だけインクリメントする(S13)。制御部31は、最初に指を検出していない第1のセンサ21(出力する検出値が予め定めた接触判定用のしきい値を下回る第1のセンサ21)が見いだされるか、または最後の第1のセンサ21まで調べ終えるまで処理S12,S13を繰り返し実行し、このループを抜けた時点のカウンタの値を、手幅を表す情報として得る(S14)。
【0083】
そして制御部31は、ここで得られた手幅を表す情報が、比較的小柄なユーザであっても必ず触れることとなるものとして予め定めた数(判断閾値、例えば「3」とする)を超えるか否かを調べ(S15)、超えない場合(S15:No)、ユーザが正しい状態でコントローラ装置1を保持していないとして、処理S11に戻り、カウンタを「0」にリセットして再度、第1のセンサ21の出力信号を調べる処理を繰り返す。
【0084】
また、制御部31は、処理S15において、手幅を表す情報として得られた値が、上記の比較的小柄なユーザであっても必ず触れることとなる数を超えた場合(S15:Yes)は、ユーザが正しい状態でコントローラ装置1を保持している状態となったと判断し、ユーザが操作を開始するものと推定して第1の状態に移行し(S16)、以下、ユーザの操作を受け入れて、当該操作に関する情報を、情報処理装置2へ送出する動作を開始する。
【0085】
またこの例において制御部31は、上記の方法で得られた手幅を表す情報が、比較的小柄なユーザであっても必ず触れることとなる数(例えば「3」とする)を超えないにも関わらず(処理S15:Noのとき)、第2のセンサ22がユーザの手指が接触していることを検出したときには、情報処理装置2に対して警告の表示を行うよう要求してもよい。
【0086】
さらに別の例では、第2のセンサ22がユーザの手指が接触していることを検出した後、上記の方法で得られた手幅を表す情報が、比較的小柄なユーザであっても必ず触れることとなる数(例えば「3」とする)を超えた場合にも、情報処理装置2に対して警告の表示を行うよう要求してもよい。
【0087】
この例では、情報処理装置2は、コントローラ装置1から当該警告の表示を行うべき旨の要求を受けると、「コントローラは、正しく装着してください」といった表示を行って、ユーザにコントローラ装置1の装着状況が正常でないことを知らせてもよい。
【0088】
この別の例によると、ユーザが左右を誤ってコントローラ装置1を持ったとき(つまり右手用に設定されたコントローラ装置1を左手に持ったときなど)において、第1のセンサ21がユーザの手指の接触を検出するより前に、第2のセンサ22がユーザの手指の接触を検出することを利用して警告を行うことが可能となる。
【0089】
あるいはこのコントローラ装置1は、コントローラ本体10内に加速度センサ35を備えてもよい。このときコントローラ装置1の制御部31は、上記の方法で得られた手幅を表す情報が、比較的小柄なユーザであっても必ず触れることとなる数(例えば「3」とする)を超えないにも関わらず、加速度センサ35がコントローラ装置1の移動を検出したとき(あるいは予め定めた加速度しきい値を超える加速度を検出したとき)にも、情報処理装置2に対して警告の表示を行うよう要求してもよい。
【0090】
なお、ここでは、ユーザがコントローラ装置1を想定された正しい持ち方で持ったときにユーザが操作を開始すると推定することとしたが、本実施の形態はこの例に限られない。
【0091】
例えば、コントローラ装置1の制御部31は、揺動ボタン17に指が触れたこと(揺動ボタン17が少しでも押下されたこと、あるいは揺動ボタン17のボタントップに静電容量センサ等の接触センサを設けて、当該接触センサにより検出してもよい)を以て、ユーザが操作を開始すると推定すること推定してもよい。
【0092】
また別の例としてコントローラ装置1の制御部31は、ユーザが、いわゆるデフォルトポジションでコントローラ装置1を持った状態を意味するものと推定できる各センサ(及びボタン)の状況を以てユーザが操作を開始すると推定することとしてもよい。一例としては、制御部31は、第1のセンサ21の検出結果に基づいて上述の方法で得られる手幅を表す情報(上述のカウント値)が比較的小柄なユーザであっても必ず触れることとなる数(例えば「3」)以上であり、かつ、揺動ボタン17に指が触れたこと(揺動ボタン17が少しでも押下されたこと、あるいは揺動ボタン17のボタントップに静電容量センサ等の接触センサを設けて、当該接触センサにより検出してもよい)を以て、ユーザが操作を開始すると推定すること推定してもよい。
【0093】
これらの方法によると、例えばコントローラ装置1を単に移動のために持ち上げているときには制御部31は第2の状態の処理を継続し、コントローラ装置1から情報処理装置2に対して操作に関する情報は送出されない。そしてこの間、情報処理装置2に電源が入っていれば、コントローラ装置1は情報処理装置2に接続し、コントローラ装置1を、予め想定されている方法で持つよう案内する情報を、情報処理装置2に出力させる。
【0094】
また、ユーザが予め正しい持ち方として想定されている方法で持ったときに制御部31が第2の状態から第1の状態の処理へと移行し、コントローラ装置1がユーザの操作に基づいて、当該操作に関する情報を情報処理装置2へ出力するようになる。
【符号の説明】
【0095】
1 コントローラ装置、2 情報処理装置、10 コントローラ本体、11 把持部、12 操作部、15 センサ部、16 ボタン操作部、17 揺動ボタン、20 固定具、21 第1のセンサ、22 第2のセンサ、31 制御部、32 振動デバイス、33 通信部、35 加速度センサ、100 情報処理システム。