(58)【調査した分野】(Int.Cl.,DB名)
ユーザが把持するデバイスであって、所定可動範囲で押し込み可能なボタンと、前記ボタンの押し込みに反発する力覚を提示する力覚提示部とを、ユーザのいずれかの指が到達可能な範囲に備えるデバイスに接続されたコンピュータを、
前記所定可動範囲における力覚提示開始位置の入力を受け入れる手段と、
前記力覚提示部を制御して、前記力覚提示開始位置まで前記ボタンを引き込む手段と、
前記ボタンの押し込み量を取得する手段と、
前記押し込み量が、前記入力された力覚提示開始位置より押し込まれたときに、前記ボタンの押し込みに反発する力覚を提示するよう、前記力覚提示部に指示する手段と、
として機能させる制御プログラム。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明において各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【0010】
本発明の実施の形態の一例に係る制御装置10が制御の対象とするデバイス20は、コントローラデバイスであり、
図1,
図2に例示するようなものである。
図1はデバイス20を正面側から見た斜視図であり、
図2はデバイス20を背面側から見た斜視図である。本実施の形態の一例では、このデバイス20は、デバイス本体210と、附属品の一つである固定具220とを含んで構成される。
【0011】
デバイス本体210は、ユーザにより把持される把持部211と、操作部212とを含む。把持部211は、左側面221及び右側面222を有し、本実施の形態の一例では実質的に多角形柱状をなしている。操作部212は、把持部211から連続して形成されており、
図1,2の例では、正面側に親指センサ部231と、ボタン操作部232とを含み、背面側には、第1指センサ233と、押し込みボタン234と、表示部235とを含む。また把持部211の背面側には、第2指センサ241と、第3指センサ242とが配されている。
【0012】
デバイス本体210の左側面221または右側面222のいずれか一方側には、附属品としての固定具220が固定される。また、左側面221または右側面222の他方側には、別の附属品としてのバッテリ240が固定されてもよい。本実施の形態の例では、固定具220は、可撓性あるベルトを環状としたものであってもよい。またこの固定具220は、バックル等の係止手段を用いてベルトを環状とし、その直径を調整可能としたものなどであってもよい。
【0013】
このデバイス20は、環状としたベルト等の固定具220にユーザの人差指から小指までを通し、デバイス本体210をユーザの親指の付根に当接させた位置に固定して用いる。
図1,2の例では、このときには、デバイス20の右側面222側がユーザの手の平に押付けられてデバイス20が固定される。またこのデバイス20の大きさは、ここでユーザが自然にデバイス本体210を把持すると、ユーザの親指末節はデバイス20の正面側のボタン操作部232に到達し、ユーザの親指の基節側が親指センサ部231に近接する程度の大きさとする。またこのときユーザのいずれかの指の一例としての人差指がデバイス20背面側の押し込みボタン234に触れる位置となり、ユーザは把持部211を手の平と、中指、薬指、小指とで握りこむようになるものとする。もっとも、この状態からユーザが手を開いても、固定具220によりデバイス20はユーザの手に固定されるので、デバイス20が落下することはなく、ユーザは指に抵抗を感じることなく、指の曲げ伸ばしを行うことが可能となっている。
【0014】
親指センサ部231は、例えば、ユーザが自然にデバイス本体210を把持したとき、ユーザの親指の末節側が到達する位置よりやや下方、ユーザの親指の基節側が近接する位置に配される。この親指センサ部231は、デバイス20の正面側であってデバイス20の表面の法線方向を中心とし、デバイス20正面の左側面側から右側面側までの比較的広角の角度範囲を検出可能範囲として、この検出可能範囲においてユーザの親指を検出する。そして当該親指を検出した位置(上記角度範囲内の角度)と、親指センサ部231から、検出したユーザの親指までの距離とを検出し、検出結果情報として制御装置10に出力する。この検出結果情報には、親指を検出した位置の情報と、親指までの距離の情報とを含む。この親指センサ部231は例えば、カメラや、焦電センサ、静電容量センサ等、親指の位置と親指までの距離とが検出できればどのようなものでも構わない。ボタン操作部232は、少なくとも一つのボタンを含み、ユーザの押下操作があったときに、押下操作がされたボタンを特定する情報を制御装置10に出力する。
【0015】
押し込みボタン234は、デバイス20の背面側に突出した第1の位置と、デバイス20側へ押し込まれた第2の位置との間で移動可能なボタンノブを備えたボタンである。
図1,2では、この押し込みボタン234を、揺動スイッチ(ロッキングボタン)とした例を示している。この押し込みボタン234は、ユーザの人差指等いずれかの指で押し込み操作され、その押し込み量(ボタンノブの移動量)を表す情報を制御装置10に出力する。具体的にこの押し込みボタン234は、ポテンショメータ等を含んで構成できるが、押し込み量が検出できれば、この構成に限られるものではない。
【0016】
表示部235は、例えば多色に発光可能なLED(Light Emission Diode)を含む。この表示部235は、制御装置10から入力される指示に従い、LEDを、当該指示された発光態様(指示された色で点灯、あるいは指示された間隔で断続的に点灯するなどの態様)で発光させる。
【0017】
また本実施の形態においてはこの押し込みボタン234に、第1指センサ233が取り付けられる。第1指センサ233は、押し込みボタン234に人差指が触れているか否かを検出して、当該検出の結果を表す情報を制御装置10に出力する。この第1指センサ233は例えば静電容量センサ等で構成できる。
【0018】
さらに本実施の形態の一例では、押し込みボタン234には、力覚提示装置が含まれていてもよい。この力覚提示装置を含む押し込みボタン234は、制御装置10から入力される指示(提示するべき力の大きさF)に従い、ユーザが押し込みボタン234を押し込む力に抗する力を提示する。具体的にこの力覚提示装置を含む押し込みボタン234は、ユーザが押し込みボタン234を押し込む操作を行ったときに回転するロータを含むモーターや、押し込みボタン234の押し込みにより被駆動体が直線的に移動する直動型アクチュエータ等で構成できる。このようにモーター等を用いる場合、押し込みボタン234の力覚提示装置は押し込みによる回転や被駆動体の移動があったときに、当該回転や移動とは逆方向に力Fを加えるようモーターやアクチュエータを制御する。このように、押し込まれるボタンに備えられ、提示するべき力の大きさFを特定する指示を受けて力覚を提示する力覚提示装置については広く知られたものを採用できるので、ここでの詳しい説明を省略する。
【0019】
さらに本実施の形態では、デバイス20は、図示しないバイブレータや、ハプティックデバイス、スピーカー等、デバイス本体210を振動させ、デバイス20が固定されているユーザの手に振動を伝達することで、触覚を呈示することとしてもよい。このような触覚呈示の方法についてもここでの詳しい説明を省略する。
【0020】
第2指センサ241は、デバイス20の把持部211にユーザの中指が近接しているか(あるいは触れているか)否かを検出する。そして当該検出の結果を表す情報を、制御装置10に出力する。同様に、第3指センサ242は、デバイス20の把持部211にユーザの薬指または小指が近接しているか(あるいは触れているか)否かを検出する。そして当該検出の結果を表す情報を、制御装置10に出力する。これら第2指センサ241、第3指センサ242はいずれも、静電容量センサや光学センサ等で構成できる。ここで光学センサは、赤外光を放射する発光部と、赤外光を検出する受光部とを有し、発光部から放射された光が対象物に反射して受光部に入射する割合を測定するものなどがある。このような光学センサによると、光学センサ近傍に対象物が近接するほど、受光部に入射する光の強度を発光部から放射された光の強度で除した割合(比強度と呼ぶ)rが大きくなるので、指等の接近が検出できる。
【0021】
また本実施の形態では、デバイス20は、左側面221と右側面222とのいずれの側に、所定の附属品である固定具220が固定されているかを検出するセンサ(固定具センサ)を備えてもよい。この固定具センサは具体的には、固定具220を装着したときにオンとなるマイクロスイッチ等を、左側面221と右側面222とにそれぞれ配することで実現できる。このような所定の附属品を取り付けたときに、取り付けた側を検出する構成については、広く知られた方法を用いることができるので、ここでの詳しい説明を省略する。本実施の形態では、この固定具センサによる検出の結果は制御装置10に入力される。
【0022】
制御装置10は、例えばデバイス20のデバイス本体210に内蔵される。この制御装置10は
図3に例示するように、制御部11と、記憶部12と、デバイスインタフェース13と、通信部14とを含んで構成されている。制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態では制御部11は、予め定めた種類の附属品が装着されている側面が、デバイス20の左右いずれの側面であるかを検出し、当該検出の結果に基づいて、デバイス20がユーザの左手と右手のどちらに装着されるものであるかを判断する。この制御部11の具体的な処理の内容については、後に詳しく述べる。
【0023】
記憶部12は、メモリデバイス等であり、制御部11によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部12に複写されたものであってもよい。またこの記憶部12は、制御部11のワークメモリとしても動作する。
【0024】
デバイスインタフェース13は、デバイス20の親指センサ部231、ボタン操作部232、第1指センサ233、押し込みボタン234、第2指センサ241、第3指センサ242、及び、力覚提示装置に接続され、親指センサ部231、ボタン操作部232、第1指センサ233、押し込みボタン234、第2指センサ241、第3指センサ242が出力する情報を制御部11に出力する。また、このデバイスインタフェース13は、制御部11から入力される指示を、力覚提示装置に対して出力する。
【0025】
通信部14は、USB(Universal Serial Bus)等のシリアルインタフェースあるいは、ブルートゥース(登録商標)等の無線通信インタフェースを含んで構成される。この通信部14は、家庭用ゲーム機等、デバイス20が検出するユーザの手や指の動き等に基づいて動作する機器(以下本体機器と呼ぶ)との間で通信可能に接続され、この本体機器から指示を受信して制御部11に出力する。また制御部11が出力する情報を本体機器に対して送出する。
【0026】
ここで制御装置10の制御部11の動作について説明する。本実施の形態においてこの制御部11は、機能的には
図4に例示するように、力覚指示受入部41と、指示記憶部42と、押し込み量取得部43と、力覚提示処理部44とを含んで構成される。
【0027】
力覚指示受入部41は、本体機器から力覚に関する設定の入力を受け入れる。この設定は、押し込みボタン234の押し込み量に応じた力覚提示量を指示することにより行われる。具体的には、本体機器からは、力覚提示を開始する押し込み量(力覚提示開始位置)Dsが指定される。力覚指示受入部41は、ここで受け入れた力覚提示量の情報を指示記憶部42に出力する。指示記憶部42は、力覚指示受入部41が受け入れた力覚提示量の情報である力覚提示開始位置Dsを、記憶部12に格納する。
【0028】
押し込み量取得部43は、押し込みボタン234から、押し込みボタン234の押し込み量の情報Dを、所定のタイミングごと(例えば1/1000秒ごと)に繰り返し取得する。
【0029】
力覚提示処理部44は、押し込み量取得部43が取得した押し込み量の情報Dが、記憶部12に格納した力覚提示開始位置Dsを超えているか否か(D≧Dsであるか否か)を判断する。力覚提示処理部44は、ここで押し込み量取得部43が取得した押し込み量の情報Dが、記憶部12に格納した力覚提示開始位置Dsを超えている場合(D≧Dsである場合)には、押し込みボタン234の力覚提示装置を制御して、ユーザによる押し込みボタン234の押し込みに反発する力覚を提示させる。ここで提示させる力覚の大きさは、押し込み量がD+ΔDとなるとき、−ΔDだけ押し戻すに十分な力とする。
【0030】
本実施の形態の制御装置10は、以上の構成を備えており、次のように動作する。ユーザは、デバイス20を左右どちらの手に装着するかを決める。ユーザは、デバイス20を右手に装着する場合はデバイス20の右側面222に固定具220を取り付ける。またユーザは、デバイス20を左手に装着する場合はデバイス20の左側面221に固定具220を取り付ける。またこのとき、固定具220を取り付けた側面とは反対側の側面にバッテリ240が取り付けられてもよい。この場合、デバイス20の左側面221,右側面222には、いずれもバッテリ240からの給電を内部の回路に伝達する端子が設けられているものとする。
そしてユーザはデバイス20に装着した固定具220に、左手または右手の人差指、中指、薬指、小指を通し、デバイス20を親指の根元に当接させて装着する。そしてユーザは把持部211を中指、薬指、小指で把持する。
【0031】
制御装置10は、本体機器側から力覚に関する設定として、力覚提示を開始する押し込み量(力覚提示開始位置)Dsの入力を受け入れる。制御装置10は、受け入れた力覚提示を開始する押し込み量(力覚提示開始位置)Dsを記憶部12に格納する。
【0032】
また押し込みボタン234をユーザが人差指で押し込むと、制御装置10はその押し込み量の情報Dを1/1000秒ごとに繰り返し取得する。
【0033】
制御装置10は、記憶部12に格納した力覚提示開始位置Dsを超えているか否か(D≧Dsであるか否か)を判断する。ここで制御装置10が取得した押し込み量の情報Dが、記憶部12に格納した力覚提示開始位置Dsを超えない間(D<Dsである間)、制御装置10は、力覚提示装置の制御を行わない。従って、制御装置10は、押し込みボタン234の力覚提示装置を、押し込みボタン234の押し込みに反発する力覚を提示させないよう制御する。このため、ユーザは押し込みボタン234を抵抗なくさらに押し込むことが可能となる。
【0034】
やがて、制御装置10が取得した押し込み量の情報Dが、記憶部12に格納した力覚提示開始位置Dsを超えると(D≧Dsとなると)、制御装置10は、押し込みボタン234の力覚提示装置を制御して、押し込みボタン234の押し込みに反発する力覚を提示させる。このためユーザは、力覚提示開始位置Dsよりもさらに押し込むことができないかのように認識することとなる。
【0035】
これにより、例えばゲームソフトウエア側において、力覚提示開始位置Dsを、ゲーム内の仮想的な物体の大きさに応じて設定することで、ユーザに対して仮想的な物体の大きさに応じた押し込み可能量(押し込みボタン234の押し込み量)を認識させることが可能となる。
【0036】
本実施の形態の例によれば、ユーザが指に抵抗を感じることなく指の曲げ伸ばし動作を行っている間も、指の動きや押し込みボタン234の押し込み量を検出できるとともに、いずれかの指(本実施の形態の例では人差指)での押し込みボタン234の押し込み操作に対する力覚提示を行って、ユーザに対して仮想的な物体を握ったときの大きさ感や質感を与えることが可能となる。
【0037】
[提示する力覚の別の例]
なお、ここまでの説明において本体機器側から行われる力覚に関する設定は、力覚提示を開始する押し込み量(力覚提示開始位置)Dsであるものとしていた。すなわち、ここまでの例では、この押し込み量Dsを超える押し込みに対して反力を提示して、当該力覚提示開始位置以上に押し込めないかのような力覚を提示することとしていた。しかしながら本発明の実施の形態はこれに限られない。
【0038】
例えば、制御装置10は、力覚に関する設定として、所定可動範囲における押し込みボタン234の押し込み量Dに対する、当該押し込みボタン234の押し込みに反発する力Fの大きさの設定を受け入れてもよい。この例では、押し込み量に応じて力覚の提示量(ΔDだけ押し込むのに必要な力F)が本体機器側から設定される。この場合の設定は、力覚提示開始位置Dsと、その後の所定単位押し込み量ΔDあたり提示する最大の力覚の大きさの変化量ΔFとを指示すればよい。この例では、押し込み量がD=Ds+kΔD(k>0)であるとき、さらにΔDだけ押し込むのに必要な力Fが、F=kΔFとなる(
図5)。
【0039】
また、ここでは単位押し込み量ごとに増大する反力ΔFは直線的に変化するものとしたが、対数的、あるいは指数関数的に変化するよう設定することとしてもよい。また、提示する最大の力Fmaxが設定されてもよい。この最大の力Fmaxが設定される場合、演算される力F=kΔF等が、Fmaxを超える場合、制御装置10は、提示する力FをFmaxとして、押し込みボタン234の力覚提示装置に対して、この力Fmaxを提示するよう指示する。
【0040】
この例では、押し込みボタン234の押し込み量Dに対し、当該押し込み量DからさらにΔDだけ押し込むためにユーザが必要な力Fが
図5に例示するように設定される。そして
図6に例示するように、制御装置10により、この
図5に例示した変化に応じた(押し込み量Dに対する力Fの変化)を表す力覚値テーブルが生成されて、記憶部12に格納される。
【0041】
以下、制御装置10は、押し込みボタン234をユーザが人差指で押し込むと、制御装置10はその押し込み量の情報Dを例えば1/1000秒ごとに繰り返し取得する。
【0042】
制御装置10は、記憶部12に格納した力覚値テーブルを参照し、取得した押し込み量の情報Dに対応する、提示するべき力の値Fを取得する。そして制御装置10は、押し込みボタン234の力覚提示装置を制御して、押し込みボタン234の押し込みに反発する力Fの力覚を提示させる。
【0043】
この例では、ユーザが押し込みボタン234を力FにてDだけ押し込んだところで、力Fでの反力が提示されて、一旦はそれ以上の押し込みができない状態となる。ユーザがさらに、この力Fを超える力で押し込むと、さらにΔDだけの押し込みが可能となる(その時点ではさらにD+ΔDの情報に対応して力覚値テーブルに格納されている力F′を超えない限り、さらなる押し込みが不能となるよう反力F′が提示される)。これにより、あたかも復元力がある物体を握っているような感覚をユーザに与えることが可能となる。
【0044】
なお、ここまでの説明における力覚提示開始位置Dsや、所定単位押し込み量ΔDあたり提示する最大の力覚の大きさの変化量ΔF等の設定は、家庭用ゲーム機等の本体機器側において、例えば仮想的な物体に対する物理演算(物理法則を考慮した演算)の結果として得られた値としてもよい。具体的には、物体の弾性係数に関するパラメータを用い、フックの法則により押し込み量に対する復元力を演算して、所定単位押し込み量ΔDあたりに提示する最大の力覚の大きさの変化量ΔFを得てもよい。
【0045】
[予め押し込みボタンを引込んでおく例]
ここまでの説明において、制御装置10は、力覚提示開始位置Dsが入力されたときには、押し込みボタン234の力覚提示装置を制御して、この力覚提示開始位置Dsまで押し込みボタン234が押し込まれた状態に引込んでおいてもよい。
【0046】
この例では、ユーザは、力覚提示開始位置Dsに応じて、当該力覚提示開始位置Dsまで人差指を移動させなければ、押し込みボタン234に触れられないこととなる。このため、力覚提示開始位置Dsを変化させることで、異なる大きさの仮想的な物体に触れているかのように、ユーザに認識させることが可能となる。
【0047】
[人差指以外の指に対して力覚を提示する例]
また、本実施の形態のこれまでの説明では、押し込みボタン234は人差指によって操作されるものとしていたが、本実施の形態はこれに限られない。例えば、ユーザが自然にデバイス本体210を把持したとき、中指、薬指、小指のいずれかが到達する位置に、押し込みボタン234を配してもよい。
【0048】
このようにすると、指の動きに対し、人差指の代わりに中指や薬指、小指に対して力覚が提示されることとなる。
【0049】
さらにここまでの説明では、押し込みボタン234は、一つだけ(力覚を提示する指は一つだけ)とした例について説明したが、本実施の形態は、これに限られず、例えば、人差指と中指など、ユーザの指のうち、一部の指に対応して押し込みボタン234を複数設けてもよい。この場合、各押し込みボタン234において提示する力覚の力覚提示開始位置Dsや、その後の所定単位押し込み量ΔDあたり提示する最大の力覚の大きさの変化量ΔF等の設定は、互いに異なっていてもよいし、同じとしてもよい。
【0050】
さらにここまでに説明した例では、押し込みボタン234が力覚提示装置を備え、押し込みボタン234の押し込み操作に対して力覚を提示することとした。しかしながら本実施の形態はこれに限られず、押し込みボタン234が力覚提示装置を備えることに代えて、またはこれに加えて、ボタン操作部232に配されたボタンやスイッチ等(親指で操作されるボタン等)が力覚提示装置を備えて、これらのボタンの押下操作やスイッチの傾倒操作に対して力覚を提示(押下や傾倒に対する反力を提示するなど)することとしてもよい。
【0051】
この例によると、親指に対して力覚を提示でき、また、押し込みボタン234にも力覚提示装置を備えておけば、親指と、他の指とに力覚を提示できることとなる。