特許第6947776号(P6947776)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許6947776コントローラ装置、その制御方法、及びプログラム
<>
  • 特許6947776-コントローラ装置、その制御方法、及びプログラム 図000002
  • 特許6947776-コントローラ装置、その制御方法、及びプログラム 図000003
  • 特許6947776-コントローラ装置、その制御方法、及びプログラム 図000004
  • 特許6947776-コントローラ装置、その制御方法、及びプログラム 図000005
  • 特許6947776-コントローラ装置、その制御方法、及びプログラム 図000006
  • 特許6947776-コントローラ装置、その制御方法、及びプログラム 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6947776
(24)【登録日】2021年9月21日
(45)【発行日】2021年10月13日
(54)【発明の名称】コントローラ装置、その制御方法、及びプログラム
(51)【国際特許分類】
   G06F 3/041 20060101AFI20210930BHJP
   G06F 3/01 20060101ALI20210930BHJP
【FI】
   G06F3/041 520
   G06F3/01 514
【請求項の数】10
【全頁数】14
(21)【出願番号】特願2019-86346(P2019-86346)
(22)【出願日】2019年4月26日
(65)【公開番号】特開2020-181543(P2020-181543A)
(43)【公開日】2020年11月5日
【審査請求日】2020年4月23日
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】石川 清隆
(72)【発明者】
【氏名】木村 真
(72)【発明者】
【氏名】殿谷 政明
(72)【発明者】
【氏名】沢田 拓郎
(72)【発明者】
【氏名】榎本 和義
【審査官】 木内 康裕
(56)【参考文献】
【文献】 特開2019−046040(JP,A)
【文献】 国際公開第2015/002298(WO,A1)
【文献】 韓国登録特許第10−0880522(KR,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/03
G06F 3/041 − 3/0489
(57)【特許請求の範囲】
【請求項1】
ユーザの手に装着されるコントローラ装置であって、
複数のセンサを備え、
前記センサのそれぞれについて、ユーザの指が接触していないことを表す条件として予め定められた条件が満足されるか否かを判断する判断手段と、
前記判断の結果、前記予め定められた条件が満足されたセンサのキャリブレーションを実行するキャリブレーション手段と、
を含み、前記判断手段が用いる条件は、他のセンサがユーザの指を検出しているとの条件を含むコントローラ装置。
【請求項2】
請求項1に記載のコントローラ装置であって、
コントローラ装置の移動を検出するモーションセンサをさらに備え、
前記判断手段が用いる条件は、コントローラ装置の前記モーションセンサが移動を検出していないとの条件を含むコントローラ装置。
【請求項3】
請求項1または2に記載のコントローラ装置であって、
前記キャリブレーション手段は、予め定められたタイミングが到来した後、前記判断手段の判断の結果、前記予め定められた条件が満足されたセンサのキャリブレーションを実行するコントローラ装置。
【請求項4】
請求項に記載のコントローラ装置であって、
前記センサが検出した操作の内容を、当該コントローラ装置に接続された情報処理装置に対して送出する手段をさらに備え、
前記タイミングは、前記情報処理装置から指示されたタイミングであるコントローラ装置。
【請求項5】
請求項1からのいずれか一項に記載のコントローラ装置であって、
前記複数のセンサのそれぞれの出力の履歴を記録する手段をさらに備え、
前記判断手段が用いる前記条件は、センサの出力の履歴に基づく条件であるコントローラ装置。
【請求項6】
ユーザの手に装着されるコントローラ装置であって、
複数のセンサと、
前記センサの出力信号を受けて、前記センサの出力信号に基づく情報を出力するプロセッサとを備え、
前記プロセッサが、前記センサのそれぞれについて、ユーザの指が接触していないことを表す条件として予め定められた条件が満足されるか否かを判断し、当該判断の結果、前記予め定められた条件が満足されたセンサのキャリブレーション処理を実行し、前記条件は、他のセンサがユーザの指を検出しているとの条件を含むコントローラ装置。
【請求項7】
請求項6に記載のコントローラ装置であって、
コントローラ装置の移動を検出するモーションセンサをさらに備え、
前記プロセッサが用いる条件は、前記モーションセンサが移動を検出していないとの条件を含むコントローラ装置。
【請求項8】
請求項6または7に記載のコントローラ装置であって、
前記プロセッサは、予め定められたタイミングが到来した後、前記予め定められた条件が満足されるか否かの判断の結果、当該条件が満足されたセンサのキャリブレーションを実行するコントローラ装置。
【請求項9】
ユーザの手に装着され、複数のセンサを備えたコントローラ装置の制御方法であって、
判断手段が、前記センサのそれぞれについて、ユーザの指が接触していないことを表す条件として予め定められた条件が満足されるか否かを判断する工程と、
キャリブレーション手段が、前記判断の結果、前記予め定められた条件が満足されたセンサのキャリブレーションを実行する工程と、
を含み、前記条件は、他のセンサがユーザの指を検出しているとの条件を含むコントローラ装置の制御方法。
【請求項10】
ユーザの手に装着され、複数のセンサを備えたコントローラ装置を、
前記センサのそれぞれについて、ユーザの指が接触していないことを表す条件として予め定められた条件であって、他のセンサがユーザの指を検出しているとの条件を含む条件が満足されるか否かを判断する判断手段と、
前記判断の結果、前記予め定められた条件が満足されたセンサのキャリブレーションを実行するキャリブレーション手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コントローラ装置、その制御方法、及びプログラムに関する。
【背景技術】
【0002】
家庭用ゲーム機のコントローラ装置等、情報処理装置に接続され、情報処理装置を制御するための指示をユーザから受け入れるコントローラ装置には、ボタンやタッチセンサなど、ユーザの指の接触を検出可能なセンサが含まれている。
【0003】
こうしたコントローラ装置におけるセンサの中には、環境によって検出値が変化するものが存在する。例えば指とセンサとの間の空間的な位置の変位に応じた検出値を出力する静電容量センサ等のセンサは、周辺の温度によって上記変位に対する検出値の大きさが変化してしまう。このため、適宜キャリブレーションを行う必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、キャリブレーションはユーザの指が確実に離れているときなどに行う必要があるので、ユーザに対してコントローラのボタン等から一度指を離すよう案内し、それからキャリブレーションを行う、といった処理が必要となっていた。このため、例えばゲームのプレイ中などアプリケーションの実行中に温度が上昇するなどしてセンサのキャリブレーションが必要な状況となっても、アプリケーションの実行中にキャリブレーションを行うのでは、ユーザの操作を妨げることとなり、望ましくない。
【0005】
本発明は上記実情に鑑みて為されたもので、ユーザに意識させることなくキャリブレーションを実行できるコントローラ装置、その制御方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決する本発明は、ユーザの手に装着され、複数のセンサを備えたコントローラ装置であって、前記センサのそれぞれについて、ユーザの指が接触していないことを表す条件として予め定められた条件が満足されるか否かを判断する判断手段と、前記判断の結果、前記予め定められた条件が満足されたセンサのキャリブレーションを実行するキャリブレーション手段と、を含むこととしたものである。
【発明の効果】
【0007】
本発明によると、ユーザに意識させることなくキャリブレーションを実行できる。
【図面の簡単な説明】
【0008】
図1】本発明の実施の形態に係るコントローラ装置の構成及びその接続例を表すブロック図である。
図2】本発明の実施の形態に係るコントローラ装置が備えるセンサの検出値の例を表す説明図である。
図3】本発明の実施の形態に係るコントローラ装置におけるセンサの配置例を表す説明図である。
図4】本発明の実施の形態に係るコントローラ装置のハードウェア構成例を表すブロック図である。
図5】本発明の実施の形態に係るコントローラ装置が保持する、条件を設定した管理テーブル情報の例を表す説明図である。
図6】本発明の実施の形態に係るコントローラ装置の動作の例を表すフローチャート図である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るコントローラ装置1は、図1に例示するように、コントローラ本体10と、コントローラ本体10をユーザの手に固定する固定具20とを含んで構成され、有線または無線にて情報処理装置2との間で通信可能に接続される。本実施の形態の以下の説明において、各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【0010】
コントローラ装置1の固定具20は、例えばコントローラ本体10の長手方向に離れた二箇所に、両端のそれぞれが固定された環状のベルト部材であり、ユーザはこの固定具20とコントローラ本体10との間に人差し指から小指までの4本の指を通した状態で固定具20のベルト部材を締めて(固定具20とコントローラ本体10との間の間隙を狭くして)、コントローラ本体10が手の平に接した状態で、ユーザの手にコントローラ本体10を装着する。このように固定具20によりコントローラ装置1を手に装着することで、ユーザがコントローラ本体10を把持した状態(指をコントローラ本体10に巻き付けて保持した状態)から、指を伸ばした状態としても、コントローラ本体10がユーザの手から離れて落ちてしまうことがなくなる。
【0011】
コントローラ本体10は、ユーザが固定具20に通した指の少なくとも一部(ここでは人差し指から小指)で把持可能な把持部11と、操作部12とを含む。把持部11は、実質的に多角形柱状をなし、操作部12が、この把持部11から連続して形成される。また、操作部12には、正面側(ユーザがコントローラ装置1を自然に把持したとき、親指で操作可能な側)にボタン14や、ジョイスティック15、センサ部16を含む。またこの操作部12は、背面側(ユーザがコントローラ装置1を自然に把持したとき、人差し指から小指が位置する側)にも、揺動ボタン17及びセンサ部18を備えてもよい。またこのコントローラ装置1は、内部にプロセッサ19を含んで構成されている。
【0012】
ここでジョイスティック15やセンサ部16は、ユーザが固定具20によりコントローラ装置1を手に装着して把持部11を把持したとき、ユーザの親指が到達する位置に配される。つまりユーザは、操作部12の揺動ボタン17は人差し指で操作し、親指で正面側のジョイスティック15またはセンサ部16に触れるなどして操作する。
【0013】
センサ部16には、複数のセンサ160a,160b…が含まれる。図1では、4つのセンサ160a,160b,160c,160dが設けられている例が示されている。ここで各センサ160(以下、各センサを区別する必要がない場合はセンサ160と総称する)は、静電容量センサ等であり、ユーザの指との間の相対的な、空間的変位に基づく検出値を表すセンサ信号を出力する(以下、本実施の形態のここでの説明で単にセンサというときには、このようなセンサを示すものとするが、センサとしてはこのようなセンサに限られず、温度を検出するセンサであってもよいし、直近の物体(ユーザの指を含む)までの距離を検出するセンサであってもよい。また、ここでのセンサは焦電センサであってもよいし、その他種々のセンサがここでのセンサに含まれ得る)。
【0014】
ここでの例では、このセンサ信号が表す検出値は、例えばユーザの指が近接しているときには比較的大きい値となり、ユーザの指が接触すると予め定められた最大値となるものとする。また、このセンサ160は、配線の状況や温度の変化などの状況によって、ユーザの指との間の相対的な、空間的変位の大きさに対する上記検出値の大きさが変動する。
【0015】
例えば図2に例示するように、センサ160の検出値は、ユーザの指が離れている(空間的に十分離れていて、理想的には検出値が十分低い状態であるべき)状態でも、周囲の温度に応じて、温度が上昇するほど検出値も大きい値となる。
【0016】
また揺動ボタン17を背面側に設ける場合、揺動ボタン17は、上記のようにユーザが把持部11を把持した状態でユーザの人差し指が到達する位置に配する。
【0017】
さらに背面側に設けられるセンサ部18は、例えばセンサ部16のセンサ160と同様の静電容量センサなど、ユーザの指との間の相対的な、空間的変位の大きさに関する検出値を出力するセンサを複数含む。具体的に本実施の形態の例では、図3に例示するように、把持部11の固定具20に比較的近い側に、把持部11の長手方向に沿って一般的な成人の手の幅の平均の長さを超える長さに亘って、複数の第1のセンサ21を一列に配する。図3の例では、6つの第1のセンサ21を一列に配した例としているが、この数に限られるものではない。
【0018】
またコントローラ本体10をユーザが握ったときに、ユーザの中指、薬指、小指の腹から先端までの範囲が当接するコントローラ本体10上の位置には、ユーザの上記各指までの距離を検出する複数の第2のセンサ22が離散的に(互いに検出範囲が重複することなく)配される。
【0019】
図3の例では、複数の第2のセンサ22が把持部11の長手方向に2列、各列6個ずつ、6行×2列のマトリクス状に第2のセンサ22を配している。もっとも本実施の形態は、このように6行×2列のマトリクス状に配列する例に限られず、複数の第2のセンサ22がコントローラ本体10の把持部11をユーザが握ったときに、ユーザの各指の腹から先端までの範囲が当接し得るコントローラ本体10上の範囲に配され、指との間の空間的な変位が検出できれば、配置の態様はどのようなものでも構わない。
【0020】
なお図3の例では、第1のセンサ21のそれぞれは、第2のセンサ22の行方向にそれぞれ配されて、第1、第2のセンサ21,22で全体として6行×3列のマトリクス状(斜交格子状)に静電センサが配された状態となっている。
【0021】
そして第1のセンサ21は、ユーザが固定具20により手を固定して把持部11を把持しているときには必ずその指の付け根に相当する部分が接触する位置に配されるものとする。従って、ユーザがコントローラ装置1を利用するために固定具20によりコントローラ装置1を装着している限り、これら複数の第1のセンサ21のうちユーザの手幅に応じた範囲にある第1のセンサ21は、指が接触した状態にあることを表す検出値を出力し続ける。
【0022】
プロセッサ19は、マイクロコンピュータ等のプログラム制御デバイスであり、プロセッサ19が備えるメモリ等の記憶媒体に格納されたプログラムに従って動作する。このプログラムはコンピュータ可読かつ非一時的な記録媒体に格納されて提供され、このプロセッサ19のメモリ等に格納されたものであってもよい。
【0023】
本実施の形態のプロセッサ19は、センサ部16,18に含まれるセンサ160,第1のセンサ21,第2のセンサ22のそれぞれについて、ユーザの指が接触していないことを表す条件として予め定められた条件が満足されるか否かを判断する。この条件については、センサごとに異なっていてもよいものであるので、詳しくはこの判断の処理に関するプロセッサ19の動作とともに後述する。
【0024】
プロセッサ19は、上記判断の結果、当該予め定められた条件が満足されたセンサ160、第1のセンサ21または第2のセンサ22のキャリブレーションを実行する。このキャリブレーションは、例えば次のように行われる。
【0025】
すなわちプロセッサ19は、例えばセンサ160ごとに、センサ160の検出値について図2に例示するように、指が触れていることを検出するしきい値D1と、指が十分離れているときに出力されるべき検出値のしきい値D2とを予め設定しておく。そしてプロセッサ19は、センサ160の出力する信号が表す検出値Vに基づいて、当該センサ160とユーザの指との間の空間的な変位Sの値(どれだけ近づいているかを表す値)を、例えばS=(V−D2)/(D1−D2)で表す。プロセッサ19は、センサ160ごとにこの値Sを得て情報処理装置2へ送出する。情報処理装置2では、あるセンサ160についての値Sが「1」以上のときにはユーザの指が当該センサ160に接触しているとする。またあるセンサ160についての値Sが「0」以下であれば情報処理装置2はユーザの指は当該センサ160から離れていると判断する。そしてこの値Sが「0」と「1」との間である場合は、情報処理装置2は、当該値の大きさに応じてセンサ160とユーザの指との間の空間的な変位の大きさを判断する(値が大きいほどユーザの指が近接していると判断される)。
【0026】
プロセッサ19は、あるセンサ160についてキャリブレーションを実行するときには、当該センサ160に指が接触していないものとして、そのときの検出値をしきい値D2として定める。このようにすると、例えば図2の温度Tにおいて、あるセンサ160において、指が触れていないにも関わらずその検出値がVまで上昇したとしても(この状態では情報処理装置2には当該センサ160には指が近接していると判断されることとなる)、この検出値Vをしきい値D2として再設定するので、センサ160とユーザの指との間の空間的な変位の大きさが補正されることとなる。
【0027】
[判断の条件]
ここでプロセッサ19における、センサ160等において、ユーザの指が接触していないことを表す条件として予め定められた条件が満足されるか否かを判断する処理について説明する。
【0028】
この条件は例えば、次のように定められる。本実施の形態の一例では、一つの指で操作される(あるいはある一つの指が接触する)ことが想定されるセンサ160,第1のセンサ21,第2のセンサ22ごとにグループを形成しておく。
【0029】
一例としてセンサ部16に含まれるセンサ160は、正面側に設けられ、いずれも親指によって触れられる可能性があるが、その他の指が触れることは想定されない。そこで、これらセンサ部16に含まれるセンサ160は一つのグループとして設定しておく。
【0030】
またこのグループは動的に設定されてもよい。例えば第2のセンサ22については、第1のセンサ21のうちいくつのセンサが指の接触を検出しているかにより、どの第2のセンサ22がユーザのどの指の接触を検出するかを決定し、当該決定の結果に基づいてグループを設定してもよい。
【0031】
例えば図3の例において、第1のセンサ21A,21B,21C,21Dがユーザの指の接触を検出し、第1のセンサ21E,21Fがユーザの指の接触を検出していない状態では、比較的手の小さいユーザがこのコントローラ装置1を用いているものと判断できる。この場合、ユーザの人差し指は揺動ボタン17を操作するものとしているので、第2のセンサ22A,22Gが、ユーザの中指が接触し得る範囲にあると判断する。また第2のセンサ22C,22Iは、ユーザの薬指が接触し得る範囲にあると判断する。そして第2のセンサ22D,22Jは、ユーザの小指が接触し得る範囲にあると判断する。そこでこの場合は第2のセンサ22A,22Gを一つのグループG1とし、第2のセンサ22C,22Iをもう一つのグループG2とし、第2のセンサ22D,22Jをさらに別のグループG3として設定する。
【0032】
プロセッサ19は、あるセンサについて当該センサにユーザの指が接触していないことを表す条件として、当該センサがグループに属するものとして設定されていれば、当該センサと同じグループに属するセンサにユーザの指が接しているとの条件を用いる。
【0033】
例えば、プロセッサ19は、図1に例示したA,B,C,Dのようにセンサ160が配置されているとき、いずれかのセンサ160にユーザの指が接していれば、センサ部16内の他のセンサ160にはユーザの指が接触していないと判断する。例えばセンサ160aにユーザの指が接していれば、プロセッサ19は、センサ部16内の他のセンサ160b,160c,160dにはユーザの指が接触していないと判断する。そしてこのときにプロセッサ19は、当該ユーザの指が接触していないことを表す条件として予め定められた条件が満足されたセンサ160、つまり、センサ160b,160c,160dについてキャリブレーションを行う。
【0034】
もっとも、同じグループに属している他のセンサにユーザの指が触れていたとしても、キャリブレーションを行うことが妥当でない場合もある。例えば、第2のセンサ22Gに中指が触れている場合は、第2のセンサ22Aにも(指の腹部分が)触れることとなるので、第2のセンサ22A,22Gが同じグループに属していて、第2のセンサ22Gにユーザの指が接触している場合でも第2のセンサ22Aについてキャリブレーションを行うべきではない。
【0035】
またセンサ160においても、その配置によっては上記条件が適切でない場合がある。例えば図1のCの位置にあるセンサ160cにユーザの指が接触している場合、Dの位置にあるセンサ160dにもユーザの指(の腹)が接触ないし近接する可能性がある。従って、センサ160c,160dが同じグループに属しており、センサ160cにユーザの指が接触している場合でもセンサ160dについてキャリブレーションを行うべきではない。
【0036】
そこで本実施の形態では、次のようにセンサごとに、どのセンサにユーザの指が接触しているときに、自己にユーザの指が接触していないと判断するべきかの条件を設定してもよい。具体的にはプロセッサ19は、予め図5に例示するような管理テーブル情報としてこの条件の設定を受け入れて記憶しておく。
【0037】
図5の例では、図1のAの位置に配されたセンサ160aについては、B,C,Dの位置にあるセンサ160b,160c,160dのいずれかを条件に係るセンサとして、当該条件に係るセンサとして列挙された情報で特定されるセンサのいずれかにユーザの指が接触しているときに、自己にユーザの指が接触していないと判断する旨の設定が行われている。
【0038】
また図1のBの位置に配されたセンサ160bについては、C,Dの位置にあるセンサ160c,160dのいずれかを条件に係るセンサとして、当該条件に係るセンサとして列挙された情報で特定されるセンサのいずれかにユーザの指が接触しているときに、自己にユーザの指が接触していないと判断する旨の設定が行われている。
【0039】
この場合、プロセッサ19は、各センサを順次判断の対象として選択し、選択した判断の対象となったセンサを特定する情報に関連付けて、この管理テーブル情報に設定されている条件に係るセンサを特定する情報の一覧を取得する。そしてプロセッサ19は、当該取得したセンサを特定する情報の一覧に含まれる情報で表されるセンサのいずれかにユーザの指が接触しているときに、判断の対象として選択しているセンサにはユーザの指が接触していないと判断して、当該判断の対象として選択しているセンサのキャリブレーションを実行する。
【0040】
すなわち、本実施の形態のコントローラ装置1は、図4に例示するように、コントローラ装置1の正面側に配されたセンサ160a,b…と、背面側(コントローラ装置1をユーザが把持したときにユーザの人差し指、中指、薬指、小指が接触する側)に配された複数の第1のセンサ21及び第2のセンサ22と、プロセッサ19と、外部インタフェース31とを含んで構成される。このプロセッサ19は、内部に記憶部19mを備える。また外部インタフェース31は情報処理装置2に接続されている。
【0041】
プロセッサ19は、記憶部19mに格納されているプログラムを実行しており、このプログラムを実行することで、所定のタイミング(例えば予め定めた時間ごとのタイミング)で、上記センサ160,21,22のうち少なくとも一部のセンサの各々(例えばセンサ160のそれぞれ)についてキャリブレーションを実行するか否かを判断する。
【0042】
プロセッサ19は、上記プログラムを実行して、各センサが出力する検出値(出力信号が表す値)を参照して、各センサについて、ユーザの指が十分離れた位置にある(しきい値D2を下回っている)か、ユーザの指が接触している(しきい値D1を上回っている)か、ユーザの指が近接した位置にある(しきい値D2とD1との間にある)かを表す情報等を、外部インタフェース31を介して情報処理装置2へ出力している。
【0043】
またこのプロセッサ19は、上記プログラムを実行することにより、次の処理を行う。すなわちプロセッサ19は、予めキャリブレーションを実行する対象として設定されているセンサを順次選択し、選択したセンサを特定する情報に関連付けて予め、条件に係るセンサとして設定されているセンサを特定する情報の一覧を取得する。
【0044】
プロセッサ19は、ここで取得した一覧に含まれる各センサ(条件に係るセンサ)について、当該条件に係るセンサが出力する検出値が、予め指が接触している状態を表す値として設定されたしきい値を超えているか否かを調べる。
【0045】
プロセッサ19は、ここで当該調べた検出値が、指が接触している状態を表す値として設定されたしきい値を超えているならば選択したセンサについてキャリブレーションの処理を実行し、選択したセンサが出力している検出値を、ユーザの指が接触していない状態を表す値として記憶する。
【0046】
一方、プロセッサ19は、取得した一覧に含まれるセンサ(条件に係るセンサ)の出力する検出値のいずれも、指が接触している状態を表す値として設定されたしきい値を超えていなければ、選択したセンサについてのキャリブレーションの処理を行わないよう制御する。
【0047】
なお、ここではプロセッサ19が実行するプログラムや、プロセッサ19が処理の過程で用いる設定情報等は、プロセッサ19が備える記憶部19m内に格納されているものとしたが、本実施の形態はこの例に限られず、これらはプロセッサ19に接続された、プロセッサ19外部に設けられるメモリデバイス等に格納されていてもよい。
【0048】
[動作]
本発明の実施の形態の一例に係るコントローラ装置1は以上の構成を備えており、次のように動作する。なお、以下の説明では、センサごとにユーザの指が接触していないことを表す条件が設定されているものとする。具体的には、プロセッサ19は図5に例示した管理テーブル情報を記憶しているものとする。
【0049】
ユーザがコントローラ装置1の固定具20に人差し指から小指までの各指を通し、把持部11を把持して、親指を正面側の操作部12を操作可能な位置に配し、人差し指を揺動ボタン17上に置いた状態として、情報処理装置2を制御し、例えばゲームアプリケーションの操作を開始する。
【0050】
その後、コントローラ装置1の温度が上昇してくると、例えばセンサ160の検出値が、ユーザの指が触れていない状態でも上昇する。プロセッサ19は、所定のタイミング(例えば予め定めた時間ごとのタイミング)で、コントローラ装置1が備えるセンサ160、第1のセンサ21、第2のセンサ22の少なくとも一部についてキャリブレーションを実行するか否かを判断する。ここでキャリブレーションを実行するか否かを判断する対象となるセンサは、記憶している管理テーブル情報を参照して、当該管理テーブル情報において判断の対象として設定されているセンサとしてもよい。
【0051】
プロセッサ19は、図6に例示する処理を開始し、管理テーブル情報において判断の対象として設定されているセンサを順次選択して(S1)、選択したセンサを特定する情報に関連付けて管理テーブル情報に、条件に係るセンサとして記録されているセンサを特定する情報の一覧を取得する(S2)。なお、以下の例では、処理S1で選択されるセンサはセンサ部16に含まれるセンサ160のいずれかであるとする。
【0052】
プロセッサ19は、処理S2で取得した一覧に含まれる各センサ(センサ160のいずれか)について、当該センサ160がユーザの指に接触しているか否か(当該センサ160が出力する検出値が、予め指が接触している状態を表す値として設定されたしきい値D1を超えているか否か)を調べる(S3)。
【0053】
ここで処理S2で取得した一覧に含まれるセンサ160のいずれかが出力する検出値が、指が接触している状態を表す値として設定されたしきい値D1を超えているならば(S3:Yes)、プロセッサ19は、処理S1で選択したセンサ160についてキャリブレーションの処理を実行する(S4)。
【0054】
そしてプロセッサ19は、判断の対象として設定されているセンサのうちに、今回の処理で未選択のセンサがあれば、処理S1に戻って処理を続ける(S5)。
【0055】
またプロセッサ19は、処理S3において、処理S2で取得した一覧に含まれるセンサ160の出力する検出値のいずれも、指が接触している状態を表す値として設定されたしきい値D1を超えていなければ(S3:No)、処理S5へ移行して判断の対象として設定されているセンサのうちに、今回の処理で未選択のセンサがあれるか否かを調べ、未選択のものがあれば、処理S1に戻って処理を続ける。また処理S5において、今回の処理で未選択のセンサがなくなれば、処理を終了する。
【0056】
この処理によれば、キャリブレーションを行うか否かを判断するタイミングにおいて、ユーザがコントローラ装置1のセンサ160のうち、図1のAの位置にあるセンサ160aに親指を接触させる操作を行っていると、センサ160c,160dについて上記処理を行っているときに、対応する条件に係るセンサとして列挙されているセンサ160aにユーザの指が接触した状態となっていると判断され、センサ160c,160dについてキャリブレーションが行われる。
【0057】
その後、再びキャリブレーションを行うか否かを判断するタイミングとなったとき、ユーザが図1のCの位置にあるセンサ160cに指を接触させて操作をしていると、このときには、センサ160a,160bについて上記処理を行っているときに、対応する条件に係るセンサとして列挙されているセンサ160cにユーザの指が接触した状態となっていると判断され、センサ160a,160bについてキャリブレーションが行われる。
【0058】
本実施の形態のこの例では、上記キャリブレーションの際に、情報処理装置2がユーザに対して、センサ160から指を離すように求める案内を行うなどの処理を行う必要がなく、ユーザに意識させることなくキャリブレーションが実行される。
【0059】
[判断の条件の別の例]
ここまでの説明では、センサごとに定められた、当該センサに指が接触していないことを表す条件は、当該センサとは異なる他のセンサ(またはそのうち列挙されたセンサ)に指が接触していることとしていたが、当該センサに指が接触していないことを表す条件は、これだけに限られない。
【0060】
例えば、同じく親指で操作され得るジョイスティック15や、ボタン14をユーザが操作しているときにも、センサ160には指が接触していないと判断できる。そこで、プロセッサ19は、上記処理S5に移行する際に、ジョイスティック15が傾倒操作されている(傾けられている)か、あるいはボタン14が押下されているかを判断し、ジョイスティック15が傾倒操作されているかボタン14が押下されていると判断されるときには、センサ部16に含まれる全てのセンサ160についてキャリブレーションの処理を行うこととしてもよい。
【0061】
[モーションセンサを用いる例]
また、ユーザがコントローラ装置1を把持していない状態であれば、プロセッサ19はすべてのセンサ(センサ160,第1のセンサ21、第2のセンサ22のすべて)についてのキャリブレーションを実行してもよい。
【0062】
ここでユーザがコントローラ装置1を把持しているか否かは、例えば次のようにして判断できる。この例では、コントローラ装置1は、その内部にモーションセンサとして加速度センサ25を備えるものとする(図1に破線にて示す)。
【0063】
この加速度センサ25は、コントローラ装置1が動かされたときに、当該動きの方向の加速度を、XYZ直交座標の各軸(X,Y,Zの各軸)ごとに検出する(これらの各軸は加速度センサ25の配置方向によるが、例えばコントローラ装置1の把持部11の長手方向をZ軸、正面から背面に向かう軸をY軸、Z,Yの双方の軸に直交する軸をX軸とする)。プロセッサ19は、この加速度センサ25の検出結果を参照し、いずれの軸方向の加速度も「0」である(コントローラ装置1がユーザの手に把持されずに机などに置かれている状態であり、コントローラ装置1が移動を検出していないとの条件を満足している)ときに、各センサの出力を調べる。
【0064】
そしてプロセッサ19は、この状態(加速度センサ25による各軸の加速度の検出結果が「0」である状態)で、センサ160、第1のセンサ21、第2のセンサ22のうちに、その検出値が、ユーザの指が接触していないと判断するためのしきい値D2を上回っているものがあるか否かを調べる(ここでしきい値D2は、検出値が当該しきい値を下回るときにユーザの指が接触していないと判断するためのしきい値)。
【0065】
プロセッサ19は、ここで、上記しきい値D2を下回る検出値を出力するセンサ160、第1のセンサ21、第2のセンサ22があれば、当該センサについてキャリブレーションの処理を実行する。
【0066】
[情報処理装置からの指示]
さらにプロセッサ19は、情報処理装置2からの指示によりキャリブレーションのタイミングの指示を受けてもよい。この例では、情報処理装置2は、コントローラ装置1に対してキャリブレーションを行うべきセンサを特定する情報とともに、当該情報で特定されたセンサをキャリブレーションするよう指示する。
【0067】
プロセッサ19は、この指示を受け入れると、当該指示に含まれる情報で特定されるセンサのキャリブレーションを実行する。
【0068】
[キャリブレーションのタイミング]
またキャリブレーションを行うか否かを判断するタイミングについて、上述の例では定期的なタイミングごととしたが、本実施の形態はこれに限られない。例えば、プロセッサ19は温度センサTsを備えて、この温度センサTsにより測定される温度が予め定めた温度を超えたとき、及び超えている間は定期的なタイミングごとに、キャリブレーションを行うか否かを判断するため、図6に例示した処理を実行してもよい。
【0069】
さらにキャリブレーションを行うか否かを判断するタイミングは、情報処理装置2から指示されたタイミングとしてもよい。
【0070】
[検出値の履歴を参照する例]
また、センサに指が接触していないことを表す条件には、当該センサの出力の履歴に基づく条件が含まれてもよい。
【0071】
この例では、プロセッサ19は各センサ(センサ160、第1のセンサ21、第2のセンサ22のうち予め定めたセンサの各々)の検出値を予め定めたインターバル時間ごとに取得して記録する。このときプロセッサ19は、過去所定回数(例えば5回)分の検出値を記録することとしてもよい。以下の説明では記憶している検出値のうち最も過去に記録した検出値をV0=V(T0)とし、以下、記録した時刻が早い順に記録している検出値をV1=V(T0+ΔT),V2=V(T0+2ΔT)…,Vn=V(T0+nΔT)とする(ここでnは自然数)。
【0072】
プロセッサ19は、キャリブレーションを行うか否かを判断するタイミングで、センサごとに、記録している検出値の差分Vi+1−Viを求める。ここで差分は、センサごとにn−1個ずつ得られる。そしてプロセッサ19は得られた差分がすべて予め定めたしきい値を下回るセンサがあるか否かを判断する。ここで差分がすべて当該しきい値を下回るセンサがあれば、プロセッサ19は当該センサについてキャリブレーションを実行する。
【0073】
この条件は、ユーザが指を接触させた場合、通常ならばセンサの検出値が急激に上昇するのに対し、温度等、環境的な原因で検出値が上昇する場合は検出値の上昇がゆるやかな(差分が比較的小さい)ことに基づくものである。
【0074】
[実施形態の効果]
また本実施の形態のコントローラ装置1は、ここまでに示した条件を組み合わせて用い、センサごとにキャリブレーションを行うか否かを判断する、つまりキャリブレーションを実行するセンサを選択してもよい。
【0075】
本実施の形態によると、ユーザに対して特定の操作を求めることなく、ユーザがゲームアプリケーションなどの操作を行っている間に、ユーザに意識させることなく、センサのキャリブレーションを実行できる。
【符号の説明】
【0076】
1 コントローラ装置、2 情報処理装置、10 コントローラ本体、11 把持部、12 操作部、14 ボタン、15 ジョイスティック、16,18 センサ部、17 揺動ボタン、19 プロセッサ、20 固定具、21 第1のセンサ、22 第2のセンサ、25 加速度センサ、160 センサ。
図1
図2
図3
図4
図5
図6