(57)【要約】ユーザが指で押し込むことにより、第１の位置から第２の位置までの間で移動する押し込みボタンと、この押し込みボタンに対して力覚を提示する力覚提示部と、押し込みボタンを備えたコントローラ装置に接続される情報処理装置であって、予め指示された力覚設定に基づいて、押し込みボタンに対して与える力覚の態様を決定し、当該決定に基づいて、コントローラ装置の力覚提示部を制御する。そして所定の操作が行われるごとに、現在の力覚設定とは異なる力覚設定に変更する。
2020111155.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが指で押し込むことにより、第１の位置から第２の位置までの間で移動する押し込みボタンと、前記押し込みボタンに対して力覚を提示する力覚提示部とを備えたコントローラ装置に接続される情報処理装置であって、
予め指示された力覚設定に基づいて、前記押し込みボタンに対して与える力覚の態様を決定する決定手段と、
前記決定手段の決定に基づいて、前記コントローラ装置の力覚提示部を制御する力覚制御手段と、
予め力覚設定を変更する操作として規定された操作が行われるごとに、前記決定手段が用いる力覚設定を、現在の力覚設定とは異なる力覚設定に変更する設定変更手段と、
を含む情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
さらに、所定のタイミングごとに繰り返し前記押し込みボタンの押し込み量の情報を取得する手段を備え、
前記決定手段は、当該繰り返し取得した押し込み量の情報に基づいて、押し込み量の時間的変化の情報を取得し、前記取得した現在の押し込み量の情報と、当該取得した押し込み量の時間的変化の情報と、予め指示された力覚設定とに基づいて、前記押し込みボタンに対して与える力覚の態様を決定する情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置であって、
前記決定手段は、前記設定変更手段により力覚設定が変更されると、当該変更された時点から、前記取得した押し込み量が予め定めた条件を満足する押し込み量となるまでの間は、力覚を提示しないよう決定する情報処理装置。
【請求項４】
ユーザが指で押し込むことにより、第１の位置から第２の位置までの間で移動する押し込みボタンと、前記押し込みボタンに対して力覚を提示する力覚提示部とを備えたコントローラ装置に接続される情報処理装置の制御方法であって、
決定手段が、予め指示された力覚設定に基づいて、前記押し込みボタンに対して与える力覚の態様を決定する工程と、
力覚制御手段が、前記決定手段の決定に基づいて、前記コントローラ装置の力覚提示部を制御する工程と、
設定変更手段が、予め力覚設定を変更する操作として規定された操作が行われるごとに、前記決定手段が用いる力覚設定を、現在の力覚設定とは異なる力覚設定に変更する工程と、
を含む情報処理装置の制御方法。
【請求項５】
ユーザが指で押し込むことにより、第１の位置から第２の位置までの間で移動する押し込みボタンと、前記押し込みボタンに対して力覚を提示する力覚提示部とを備えたコントローラ装置に接続される情報処理装置を、
予め指示された力覚設定に基づいて、前記押し込みボタンに対して与える力覚の態様を決定する決定手段と、
前記決定手段の決定に基づいて、前記コントローラ装置の力覚提示部を制御する力覚制御手段と、
予め力覚設定を変更する操作として規定された操作が行われるごとに、前記決定手段が用いる力覚設定を、現在の力覚設定とは異なる力覚設定に変更する設定変更手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、家庭用ゲーム機等の情報処理装置に接続されて用いられるコントローラ装置（ジョイスティック等を備え、ユーザの指示操作を受けて、当該指示操作の内容を情報処理装置に伝達する装置）は、高機能化しており、スイッチの押し込み量や傾倒量等のアナログ値の情報を比較的高精度に取得し、情報処理装置に提供できるようになっている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
このような背景の下、こうした高機能なコントローラ装置から受け入れた情報を用いた種々の処理により、コントローラ装置を用いた体験（エクスペリエンス）の品質を向上させることが要望されている。
【課題を解決するための手段】
【０００４】
上記従来例の問題点を解決する本発明の一態様は、ユーザが指で押し込むことにより、第１の位置から第２の位置までの間で移動する押し込みボタンと、前記押し込みボタンに対して力覚を提示する力覚提示部とを備えたコントローラ装置に接続される情報処理装置であって、予め指示された力覚設定に基づいて、前記押し込みボタンに対して与える力覚の態様を決定する決定手段と、前記決定手段の決定に基づいて、前記コントローラ装置の力覚提示部を制御する力覚制御手段と、予め力覚設定を変更する操作として規定された操作が行われるごとに、前記決定手段が用いる力覚設定を、現在の力覚設定とは異なる力覚設定に変更する設定変更手段と、を含むこととしたものである。
【発明の効果】
【０００５】
これにより、コントローラ装置を用いた体験の品質を向上できる。
【図面の簡単な説明】
【０００６】
【図１】本発明の実施の形態に係る情報処理装置の構成、及び接続の例を表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置に接続されるコントローラ装置の概要例を表す平面図である。
【図３】本発明の実施の形態に係る情報処理装置に接続されるコントローラ装置の構成例を表すブロック図である。
【図４】本発明の実施の形態に係る情報処理装置に接続されるコントローラ装置における力覚提示のための構造の例を表す説明図である。
【図５】本発明の実施の形態に係る情報処理装置が用いる力覚設定の情報の内容例を表す説明図である。
【発明を実施するための形態】
【０００７】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置１は、図１に例示するように、制御部１１と、記憶部１２と、インタフェース部１３と、表示制御部１４と、音声制御部１５と、通信部１６とを含んで構成されている。またこの情報処理装置１は、コントローラ装置２との間で、有線または無線にて通信可能に接続されている。さらに情報処理装置１には、ディスプレイ等の表示装置３が接続される。またこの表示装置３は音声を出力するスピーカーを備えてもよい。
【０００８】
本実施の形態の情報処理装置１に接続されるコントローラ装置２の一例は、図２に例示するように、ユーザが両手で把持可能なものであり、筐体の左右にそれぞれ設けられ、ユーザが通常の状態でコントローラ装置２を操作するときに、左手と右手のそれぞれで把持される把持部２１Ｌ，２１Ｒと、この把持部２１Ｌ，２１Ｒに連結された本体部２２とを含む。またこの本体部２２において、ユーザが把持部２１をそれぞれの手で把持した状態で、ユーザの左右の手の親指がそれぞれ到達する位置には、傾倒可能なジョイスティック２３Ｌ，２３Ｒ、並びに複数のボタン２４が配されている。
【０００９】
また、本体部２２の奥側の側面にはユーザが把持部２１をそれぞれの手で把持した状態で、ユーザの左右の手の中指が到達する位置に、押し込みボタンとしての揺動スイッチ２５Ｌ，２５Ｒが配される。また、ユーザが把持部２１をそれぞれの手で把持した状態で、ユーザの左右の手の人差し指が到達する位置には、ボタン２６Ｌ，２６Ｒが配されている。なお、以下の説明で、把持部２１Ｌ，２１Ｒ、ジョイスティック２３Ｌ，２３Ｒ、揺動スイッチ２５Ｌ，２５Ｒ、ボタン２６Ｌ，２６Ｒのそれぞれについて左右の構成を区別する必要がない場合は、例えば揺動スイッチ２５のようにＬ，Ｒの文字を省いて表記する。
【００１０】
ここで、これらのジョイスティックやボタン、スイッチの構成及び配置は一例であり、このコントローラ装置２には、さらに他のスイッチやボタン等が配されていてもよい。また本実施の形態の以下の説明において、各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【００１１】
さらにこのコントローラ装置２の内部には、図３に例示するように、制御部３１と、マイク３２と、スピーカー３３と、触覚提示デバイス３４と、通信部３６と、センサ部３７とが含まれている。
【００１２】
ここでまず、コントローラ装置２の各部の構成について説明する。本実施の形態において揺動スイッチ２５は、スイッチカバー２５０と、支持体２５２とを含む。ここで支持体２５２は、スイッチカバー２５０をコントローラ装置２の筐体に対して回動可能とする。具体的に支持体２５２は、スイッチカバー２５０を、コントローラ装置２の筐体に設けた所定の回転軸２５１周りに所定の角度範囲内で回動可能に支持する
【００１３】
以下の説明では、この角度範囲は、揺動スイッチ２５のスイッチカバー２５０が、筐体外側に最も突き出た位置である第一の位置と、筐体内方に向かって押し込まれた位置である第二の位置との間で揺動する範囲であるとする。
【００１４】
またこの揺動スイッチ２５は、コントローラ装置２の外側に向かって弾性体等で付勢されているものとする。つまりこの揺動スイッチ２５はユーザが操作していない状態では、最も突出した位置である第一の位置に移動した状態にある。
【００１５】
さらに本実施の形態の例では、この揺動スイッチ２５を支持する支持体２５２の回転軸２５１には、センサ部３７に含まれるセンサの一つとしてロータリーエンコーダ３７Ｒが設けられており、揺動スイッチ２５の回転角度を、揺動スイッチ２５の揺動位置（押し込み位置）の情報として検出して制御部３１に出力している。
【００１６】
また、この揺動スイッチ２５は、力覚を提示可能なデバイスとしても機能する。力覚提示の動作については後に説明する。
【００１７】
コントローラ装置２の制御部３１は、マイクロコンピュータ等のプログラム制御デバイスであり、制御部３１内に備えるメモリに格納したプログラムに従って動作する。本実施の形態の制御部３１は、マイク３２から入力される音声信号を処理し、また情報処理装置１等から受信した指示に従ってスピーカー３３を鳴動する。
【００１８】
またこの制御部３１は、触覚提示デバイス３４を情報処理装置１等から受信した指示に従って制御し、ユーザに触覚を提示する。さらにこの制御部３１は、揺動スイッチ２５の力覚提示デバイスを制御し、ユーザの押し込み操作に対して反力（押し込みに反する力）を提示させる。そして制御部３１はジョイスティック２３やボタン２４、揺動スイッチ２５に対するユーザの操作の内容（例えば揺動スイッチ２５の押し込み量等）を表す情報を、それぞれのボタンやセンサ部３７等から取得し、通信部３６を介して情報処理装置１に当該取得した情報を送出する。この制御部３１の動作については後に詳しく述べる。
【００１９】
マイク３２は、コントローラ装置２の周囲の音声に対応する音声信号を生成して制御部３１に出力する。スピーカー３３は、制御部３１から入力される音声波形に従って、当該音声波形を鳴動する。
【００２０】
触覚提示デバイス３４は、例えばボイスコイルモータ（ＶＣＭ）やバイブレータ等である。この触覚提示デバイス３４は、制御部３１から入力される指示に従い、指示された振動波形の振動を生じさせて、コントローラ装置２を把持するユーザに振動等の触覚を提示する。本実施の形態の触覚提示デバイス３４は、把持部２１Ｌ，２１Ｒにそれぞれ一つずつ配され、個別に制御することとしてもよい（図２に触覚提示デバイス３４Ｌ，３４Ｒとして示す）。このようにすると、左右の手のそれぞれに互いに異なる触覚を提示できる。
【００２１】
通信部３６は、ＵＳＢ（Universal Serial Bus）やネットワークインタフェース、ブルートゥース（登録商標）インタフェース等である。この通信部３６は、有線または無線にて情報処理装置１との間で通信を行い、情報処理装置１が送信する指示等を受信して制御部３１に出力する。またこの通信部３６は制御部３１から入力される指示に従って、指示された情報を情報処理装置１に送出する。
【００２２】
センサ部３７は、少なくとも一つのセンサを含む。ここでセンサは、例えば既に述べたように、揺動スイッチ２５の回転軸に取り付けられたロータリーエンコーダ３７Ｒを含む。またこのセンサ部３７は、コントローラ装置２そのものの傾きを検出する傾斜センサを備えてもよい。この傾斜センサは、例えばコントローラ装置２の左右方向（Ｘ軸方向とする）、手前から奥側への方向（Ｙ軸方向とする）、及びこれらのＸ軸，Ｙ軸で張られる面に直交する方向（鉛直方向。Ｚ軸方向とする）とのそれぞれのＸ，Ｙ，Ｚ軸周りの回転角を検出して出力するものとする。
【００２３】
［力覚提示］
次に制御部３１による、触覚提示デバイス３４の制御の処理と、揺動スイッチ２５に対する力覚提示の具体的処理とについて述べる。本実施の形態の制御部３１は、触覚提示デバイス３４に関する制御の情報を情報処理装置１等から受信する。ここで触覚提示デバイス３４に関する制御の情報は、具体的には振動波形の情報であり、制御部３１は、情報処理装置１から受信した振動波形の情報に基づいて、触覚提示デバイス３４を制御する。具体的に制御部３１は、ボイスコイルモータやバイブレータ等の触覚提示デバイス３４に対して振動波形の振幅に対応する電圧を供給して振動波形に対応する振動を提示させる。なお、制御部３１は、情報処理装置１から複数の振動波形の情報を受信してもよく、この場合、制御部３１は、複数の振動波形を合成して（平均化して）、触覚提示デバイス３４を制御する振動波形（合成振動波形）を生成し、当該合成振動波形を提示するよう、触覚提示デバイス３４を制御する。
【００２４】
また制御部３１は、揺動スイッチ２５の力覚提示部を制御するための指示を情報処理装置１から受け入れる。この指示は揺動スイッチ２５の構造（反力を与える構成）に応じて異なるので、以下、構成に応じて説明する。
【００２５】
本実施の形態の一例では、揺動スイッチ２５（左右の揺動スイッチ２５Ｌ，２５Ｒのそれぞれ）は、その回転軸２５１に、ロータリーエンコーダ３７Ｒとブレーキ装置を配し、このロータリーエンコーダ３７Ｒが検出する回転量（揺動スイッチ２５の押し込み量に相当する）に応じて制御部３１から入力される指示に従って、揺動スイッチ２５の回転を制動することで反力を提示してもよい。
【００２６】
この例では、ブレーキ装置が制御部３１によって制御される。すなわちこの例ではブレーキ装置による制動の強さが制御部３１から入力される指示に従って制御可能となっているものとする。このようなデバイスとしては、力覚を提示可能な揺動スイッチとして広く知られた構成のものを採用できるので、ここでの詳しい説明を省略する。
【００２７】
この例においては、制御部３１は、情報処理装置１に対してロータリーエンコーダ３７Ｒが検出した揺動スイッチ２５の押し込み量に係る情報を送出する。そして制御部３１は、当該情報に応じて情報処理装置１が送信する制動の強さの情報を受信して、当該受信した情報に応じた制動の強さで、ブレーキ装置を制御することとしてもよい。本実施の形態のこの例では、このブレーキ装置が、力覚提示部に相当する。
【００２８】
また制御部３１は、情報処理装置１から、揺動スイッチ２５の押し込み量に対する制動の強さの関係を指定した情報を、予め受信しておいてもよい。この情報は、例えば押し込み量の範囲に応じてその制動の強さを表す関数を指定するものであってよい。具体的にこの情報は、
押し込み量０度から３度：押し込み量Ｐに応じて制動の強さを、α・Ｐとする（αは定数として指定する）。
押し込み量３度から５度：押し込み量Ｐに応じた制動の強さを、βとする（βは定数として指定する）
…
というような指定をする情報であればよい。
制御部３１は、この情報による指定に従い、ロータリーエンコーダ３７Ｒが検出した揺動スイッチ２５の押し込み量を参照し、当該参照した押し込み量に応じて指示された関数に、（必要であれば）現在の押し込み量の値を代入するなどして、その時点での制動の強さを演算する。そして制御部３１は、当該演算により求められた制動の強さで、ブレーキ装置を制御する。
【００２９】
制御部３１は、この押し込み量に応じたブレーキ装置の制御を所定のタイミング（例えば１／６０秒ごとなど定期的なタイミングでよい）ごとに繰り替えして行う。これによりユーザは、揺動スイッチ２５の押し込み量に応じて異なる力覚の提示を受けるようになる。
【００３０】
また、本実施の形態のここでの例は、一例であり、揺動スイッチ２５の力覚提示の方式も、揺動スイッチ２５を内側から押し出す方向に移動制御するアクチュエータ等を用いるものであってもよい。
【００３１】
次に、力覚提示部としてアクチュエータを用いる場合の構造の例について説明する。この場合は、コントローラ装置２における揺動スイッチ２５Ｌ，２５Ｒの力覚提示部として、図４に例示するように、揺動スイッチ２５Ｌ，２５Ｒのそれぞれが、アクチュエータ２３１と、当該アクチュエータ２３１により回動するアーム２３２とを含む。ここでアーム２３２は、アクチュエータ２３１の回転軸に取り付けられており、当該回転軸を回転中心の中心軸として、中心軸まわりに所定の角度範囲で回動する。
【００３２】
またこのアーム２３２は、その先端部が揺動スイッチ２５のスイッチカバー２５０の底面２５０Ｂ（筐体内部側の面であって、押し込み方向とその法線とが平行、ないし実質的に平行な（平行から所定の角度範囲内にある）面）の可動範囲外となる範囲外位置Ｐｘと、揺動スイッチ２５をユーザが押し込んだときのスイッチカバー２５０の移動軌跡上にあって、揺動スイッチ２５の可動範囲を規制する所定の規制位置Ｐｙとの間の範囲で移動することが可能な位置に配される。
【００３３】
アクチュエータ２３１は、回転軸を備えて、制御部３１から入力される指示に従って、指示された方向に、この回転軸を回転動作させ、アーム２３２の先端部の位置を制御する。具体的にこのアクチュエータ２３１は、アーム２３２の先端が上記点Ｐｘ，Ｐｙの間の任意の点Ｐを目標位置として、この目標位置にアーム２３２の先端が位置することとなるよう、その回転方向や回転速度が制御される。また、このアクチュエータ２３１は、ユーザの操作により（つまりユーザが力を加えているために）アーム２３２が目標位置の方向に移動しない場合に、予め指示された目標位置の方向にどの程度の力（抵抗力）で回転させるかを表す抵抗力（Stiffness）の情報に基づいて、回転軸を介してアーム２３２を回転制御する。あるいは、このアクチュエータ２３１は、予め定めた抵抗力を提示するよう回転制御されてもよい。この場合、制御部３１は、アーム２３２の目標位置を逐次的に変更することで、ユーザに提示する反力の大きさを変動させてもよい。すなわち本実施の形態では、いずれの方法であっても、ユーザに対して指示された抵抗力が提示されればよい。また制御部３１は、揺動スイッチ２５の押し込み量が大きくなるにつれて単調増加する反力を提示するよう、アクチュエータ２３１を制御してもよい。例えば制御部３１は、弾性体を手にしているかのような反力を与えるよう、アクチュエータ２３１を制御してもよい。
【００３４】
このように構成される力覚提示デバイスの例によると、アーム２３２の先端部の目標位置が、揺動スイッチ２５の可動範囲を規制する位置Ｐであり、揺動スイッチ２５が第１の位置にあると、アーム２３２は揺動スイッチ２５のスイッチカバー２５０の底面に当接しないので、揺動スイッチ２５が押し込まれるとき、そのスイッチカバー２５０の底面が位置Ｐに達するまではユーザは揺動スイッチ２５を比較的軽い力（揺動スイッチ２５を第１の位置に移動する方向に付勢する付勢力に反する程度の力）で操作できる。
【００３５】
一方、揺動スイッチ２５のスイッチカバー２５０の底面が位置Ｐに達する位置まで押し込まれると、アーム２３２がスイッチカバー２５０の底面に当接し、ここから揺動スイッチ２５をさらに押し込むためには、ユーザは、アーム２３２の先端位置をこの位置Ｐの方向に移動（位置Ｐに維持）しようとするアクチュエータ２３１の抵抗力（Stiffness）に反して、比較的強い力で揺動スイッチ２５を押し込む操作をする必要がある。このようにして、アクチュエータ２３１を用いて、ユーザに対して、揺動スイッチ２５を押し込む力に対する反力（トルク）の力覚が提示される。
【００３６】
このように、目標位置をＰとする制御情報に基づく制御を行う場合、揺動スイッチ２５の押し込み位置に関係して、押し込み位置が位置Ｐまでは、提示される抵抗力の大きさは実質的に「０」であり、押し込み位置がＰを超えると、指示された大きさの抵抗力が提示される。
【００３７】
この例では、制御部３１は、情報処理装置１から入力される制御情報と、ロータリーエンコーダ３７Ｒが出力する回転角の検出結果とに基づいてアクチュエータ２３１を制御する。ここで具体的に情報処理装置１が出力する制御情報は、アーム２３２の先端部の目標位置に対応するアクチュエータ２３１の回転角度の情報を含む。
【００３８】
制御部３１は、情報処理装置１から制御情報が入力されると、当該制御情報に含まれるアクチュエータ２３１の回転角度の情報と、ロータリーエンコーダ３７Ｒが出力する回転角の検出結果とに基づいて、アクチュエータ２３１の回転方向及び回転速度（アクチュエータ２３１に対して供給する電流など）を制御する。この制御は、一般的なフィードバック制御により行うことができるので、ここでの詳しい説明を省略する。
【００３９】
また制御部３１は、所定のタイミングごとに、ロータリーエンコーダ３７Ｒが出力する回転角の検出結果を参照する。そして制御部３１は、回転方向及び回転速度の制御にも関わらず、ロータリーエンコーダ３７Ｒが出力する回転角の検出結果が、入力された制御情報に基づく制御を開始してから所定の時間内に目標位置に対応する角度に到達しない場合、フィードバック制御に代えて、指示された大きさの抵抗力を提示するよう、回転方向及び回転速度（アクチュエータ２３１に対して供給する電流など）を制御してもよい。さらに、この場合、指示された大きさの抵抗力を提示している間は、制御部３１は、前回参照した検出結果と今回参照した検出結果との間に目標位置に対応する角度が含まれる（制御により目標位置を行きすぎた）か否かを繰り返し調べる。そして制御部３１は、前回参照した検出結果と今回参照した検出結果との間に目標位置に対応する角度が含まれる場合（制御により目標位置を行きすぎた場合）、アクチュエータ２３１の制御をフィードバック制御に戻す。
【００４０】
また、本実施の形態において情報処理装置１が出力する制御情報は、別の例では、揺動スイッチ２５の位置（アクチュエータ２３１が出力する回転角の検出結果）に応じた目標位置の情報を含んでもよい。この場合、制御部３１は、アクチュエータ２３１が出力する回転角の検出結果と制御情報とを参照して、目標位置を決定する。そして制御部３１は、当該決定した目標位置の情報（アクチュエータ２３１の回転角度の情報）と、ロータリーエンコーダ３７Ｒが出力する回転角の検出結果とに基づいて、アクチュエータ２３１の回転方向及び回転速度（アクチュエータ２３１に対して供給する電流など）を制御することとなる。
【００４１】
またこの例では、アクチュエータ２３１を制御しているにも関わらず、所定のタイミングごとに参照しているロータリーエンコーダ３７Ｒが出力する回転角の検出結果が、入力された制御情報に基づく制御を開始してから所定の時間内に目標位置に対応する角度に到達しない場合、制御部３１は、フィードバック制御に代えて、予め指示された抵抗力を提示するよう、回転方向及び回転速度（アクチュエータ２３１に対して供給する電流など）を制御してもよい。この場合は、このように指示された抵抗力を提示するよう制御している間は、制御部３１は、前回参照した検出結果と今回参照した検出結果との間に目標位置に対応する角度が含まれる（制御により目標位置を行きすぎた）か否かを繰り返し調べる。そして制御部３１は、前回参照した検出結果と今回参照した検出結果との間に目標位置に対応する角度が含まれる場合（制御により目標位置を行きすぎた場合）、アクチュエータ２３１の制御をフィードバック制御に戻す。
【００４２】
なお、揺動スイッチ２５の位置Ｐに対して、目標位置をＰ＋ΔＰ（ΔＰは正または負の値）とする制御情報とすることでも、押し込みに対する抵抗力の大きさを段階的に指定できる。そこで制御部３１は、アクチュエータ２３１を制御しているにも関わらず、所定のタイミングごとに参照している、ロータリーエンコーダ３７Ｒが出力する回転角の検出結果が、目標位置に対応する角度に到達しない場合でも、フィードバック制御を継続することとしてもよい。この場合、揺動スイッチ２５の位置がＰであるときに、目標位置をＰよりも上側（押し込まれていない側）にΔＰだけ大きく設定すると、目標位置をＰあるいはＰよりも下側（より押し込まれる側）に設定する場合に比べ、より大きい抵抗力を提示することとなる。また制御の方法によっては、このΔＰの大きさを変更することで、さらに抵抗力の大きさを段階的に指定可能となる。そこで、この例では、制御部３１は、指示された抵抗力の大きさに対応して、ΔＰの値を決定することとなる。
【００４３】
この例では、制御部３１は、情報処理装置１から予め、力覚の提示を開始する位置（アーム２３２の先端の初期の位置）を表す情報の入力を受けておく。また制御部３１は、力覚の提示を開始する位置よりも押し込み量が大きい間は、情報処理装置１に対してロータリーエンコーダ３７Ｒが検出した揺動スイッチ２５の押し込み量に係る情報を送出し、当該情報に応じて情報処理装置１が送信するアクチュエータ２３１の回転方向及び回転速度の情報を受信する。そして制御部３１は、当該受信した情報に応じて、アクチュエータ２３１に対して供給する電流等を制御し、アクチュエータ２３１に、指示された抵抗力を提示させる。
【００４４】
また制御部３１は、情報処理装置１から予め、力覚の提示を開始する位置を表す情報とともに、揺動スイッチ２５の押し込み量に対する抵抗力の強さの関係を指定した情報を受信しておいてもよい。この情報は、例えば押し込み量の範囲に応じてその抵抗力の強さを表す関数を指定するものであってよい。具体的には、
押し込み量０度から３度：押し込み量Ｐに応じて抵抗力を、α・Ｐとする（αは定数として指定する）。
押し込み量３度から５度：押し込み量Ｐに応じた抵抗力を、βとする（βは定数として指定する）
…
というように指定する情報であればよい。
【００４５】
ここで情報処理装置１から受信する情報は、既に説明した、押し込み量に応じた制動力の強さを特定する情報と同様のものであり、このような情報を用いることにより、例えば図５（ａ）に例示するように、押し込み量Ｐ０から最大の押し込み量Ｐmaxまで押し込み量に比例して押し込むほど大きくなる反力（あるいは一定の反力でもよい）を提示する、といったように設定することができる。この設定によると、あたかも弓を引くときに、弓を引き絞るほど大きい反力を感じるような（あるいは弓を引いている間は一定の反力を感じるような）演出が可能となる。
【００４６】
また図５（ｂ）に例示するように、押し込み量Ｐ０から押し込み量Ｐ１までは押し込み量によらず一定の反力を提示し、押し込み量Ｐ１からＰ２までは押し込み量に比例して押し込むほど大きくなる反力を提示する（図５（ｂ）のＸまたはＹ）が、押し込み量Ｐ２を超えると、反力を「０」とするというように設定してもよい。この設定によると、あたかも銃（単発の銃）のトリガーを引くときのように、トリガーを引く間ほとんど一定の反力を感じ、弾丸を発射する際に反力が大きくなり、発射後はトリガーが軽くなる、という演出を行うことができる。
【００４７】
この図５（ｂ）の例では、押し込み量Ｐ１からＰ２までの間に提示する反力の最大値に応じてトリガーの重さや、押し込み量Ｐ２を超えたときの発射の衝撃感を変化させることができる。具体的に上記押し込み量Ｐ１からＰ２までの間に提示する反力の最大値が比較的小さい場合（図５（ｂ）のＸ）はトリガーが比較的軽く、発射の衝撃（トリガーが急激に軽くなる感触）も小さくなる。このような衝撃は例えばピストル等の小型の銃を操作する際の力覚提示に適している。
【００４８】
また上記押し込み量Ｐ１からＰ２までの間に提示する反力の最大値が比較的大きい場合（図５（ｂ）のＹ）はトリガーが比較的重くなり、発射の衝撃も大きくなる。このような衝撃の提示は、ショットガンなど単発でも威力の大きい銃の操作を行う際の力覚提示に適している。
【００４９】
さらにこの例では、ある押し込み量における反力を一定とする必要はない。例えば図５（ｃ）に示すように、押し込み量Ｐ０から押し込み量Ｐ１までは押し込み量によらず一定の反力を提示し、押し込み量Ｐ１から最大の押し込み量Ｐmaxまでの間では、反力を経過時刻ｔに応じて周期的に変化させるようにしてもよい。この設定は、例えば三角関数で指定すればよく、その振幅βや振動数に対応するωは提示する反力の内容に応じて予め定めておけばよい。この図５（ｃ）のように押し込む操作を行うのではなく、ユーザが一定の押し込み量を維持しようとしている間でも反力を提示できることが、アクチュエータ２３１を用いることの利点となっている。
【００５０】
制御部３１は、このような指示に従い、ロータリーエンコーダ３７Ｒが検出した揺動スイッチ２５の押し込み量を参照し、当該参照した押し込み量に応じて指示された関数に、（必要であれば）現在の押し込み量の値を代入するなどしてその時点で提供するべき反力を演算する。そして制御部３１は、当該演算により求められた反力を提示するよう、アクチュエータ２３１の回転方向や回転速度、あるいは回転位置を制御する。
【００５１】
［情報処理装置］
情報処理装置１の制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。本実施の形態では、このプログラムは、コンピュータ可読、かつ非一時的な記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。本実施の形態の制御部１１の処理例については後に説明する。
【００５２】
記憶部１２は、ディスクデバイスやメモリデバイス等であり、制御部１１によって実行されるプログラムを保持する。またこの記憶部１２は制御部１１のワークメモリとしても動作する。
【００５３】
インタフェース部１３は、ＵＳＢインタフェース等であり、ＵＳＢ等によって接続されたデバイス（コントローラ装置２等）との間で通信を行い、制御部１１から入力された指示やデータを送出する。またこのインタフェース部１３は、通信の相手方から受信した情報を制御部１１に出力する。
【００５４】
表示制御部１４は、制御部１１から入力される指示に従って、画像を描画し、当該描画した画像を表示装置３に出力して表示させる。音声制御部１５は、制御部１１から入力される指示に従って音声波形を生成して、表示装置３等、スピーカーを備えるデバイスに出力して、音声を鳴動させる。
【００５５】
通信部１６は、ネットワークインタフェースや、ブルートゥース（登録商標）インタフェース等であり、無線にて接続されたデバイス（コントローラ装置２等）や、外部のサーバ等との間で通信を行い、制御部１１から入力された指示やデータを送出する。またこの通信部１６は、通信の相手方から受信した情報を制御部１１に出力する。
【００５６】
次に、情報処理装置１の制御部１１及びコントローラ装置２の制御部３１の動作例について説明する。本実施の形態の制御部１１は、例えばゲームのアプリケーションプログラム等を実行して、例えば次のように動作する。
【００５７】
本実施の形態の一例に係る制御部１１は、アプリケーションプログラムの処理として、銃や弓等の射撃用の武器によってターゲットを射撃するゲームを提供する。また、このようなゲームアプリケーションでは、制御部１１は、ユーザが射撃のために揺動スイッチ２５Ｌまたは揺動スイッチ２５Ｒを押し込むときに、武器に応じた力覚を提示する。また制御部１１は、武器の切り替え操作を受けると、提示する力覚の設定を、当該切り替えられた武器に応じたものに変更する。
【００５８】
この動作は具体的に、次のようにして行われる。すなわち本実施の形態の一例では、情報処理装置１の制御部１１は、コントローラ装置２から揺動スイッチ２５の押し込み量の情報を所定のタイミングごと（例えば１／６０秒ごとなど）に受け入れるとともに、ボタン２６等が押下されたときには、コントローラ装置２から、押下されたボタンを特定する情報とともに、押下がされたことを表す情報を受信する。
【００５９】
［第１の例：射撃］
まず、動作例の一つとして射撃のゲームを想定する。このゲームでは、情報処理装置１の制御部１１は、射撃の的を描画した画像とともに、ユーザが選択した武器の画像を画面に表示する。ここで武器は、初期状態ではショットガンであるものとし、ユーザの操作によりショットガン、弓、マシンガン、ピストルのうちから選択できるものとする。またこの武器は、ボタン２６が押下されるごとに、ショットガン→弓→マシンガン→ピストル→ショットガン…というように切り替えて選択可能となっているものとする。
【００６０】
すなわち、本実施の形態のここでの例では、ボタン２６を押下する操作が、予め力覚設定を変更する操作として規定されているものとし、ボタン２６が押下されるごとに、制御部１１が、力覚設定を、ボタン２６が押下される前に選択していた力覚設定とは異なる力覚設定に変更する。
【００６１】
なお、力覚設定を変更する操作はボタン２６の押下操作に限られず、例えばコントローラ装置２自体を傾ける操作や、親指で操作されるボタン２４の押下操作等で行われてもよい。
【００６２】
またいずれの武器であっても、射撃は、揺動スイッチ２５を押し込むことによって行うが、弓に限っては揺動スイッチ２５を押し込んでから離す操作により射撃が行われるよう制御される。
【００６３】
この例を実現する制御部１１の動作について説明する。この例では記憶部１２には予めショットガン、弓、マシンガン、ピストルなど、選択可能な武器に応じた力覚設定の情報が保持されている。ここで力覚設定の情報は、押し込み量に応じて提示するべき力覚の内容を設定した情報であり、具体的には図５に例示した、制御部３１を制御するための情報と同様のものでよい。
【００６４】
制御部１１は、選択されている武器に対応する力覚設定の情報を、揺動スイッチ２５の押し込み量に応じて与える力覚の態様を表す情報として決定し、当該力覚設定の情報を記憶部１２から読み出して、コントローラ装置２に対して送出する。そしてコントローラ装置２の制御部３１が当該情報を受け入れて、揺動スイッチ２５の押し込みに対する力覚提示の制御を行う。
【００６５】
例えばショットガンが選択されている場面では、図５（ｂ）のＹに示したような態様の力覚提示を行うことを制御部１１が決定して、当該力覚提示を行うための指示をコントローラ装置２に対して出力する。コントローラ装置２の制御部３１は、当該指示と揺動スイッチ２５の押し込み量の大きさによって提示する力覚の大きさを制御する。
【００６６】
また揺動スイッチ２５が押し込まれている間、この押し込み量の情報（ロータリーエンコーダ３７Ｒにより検出された値）は、所定のタイミングごとにコントローラ装置２から情報処理装置１へ送信される。
【００６７】
制御部１１は、この押し込み量の情報に基づいてコントローラ装置２の触覚提示デバイス３４を制御するための振動波形を出力する。また、音声制御部１５を制御して音声を発生させ、また表示制御部１４に対して表示させる画像の内容を制御する。
【００６８】
具体的に、押し込み量の情報が、押し込み量Ｐ２より大きくなる（弾丸が発射された状態となる）と、コントローラ装置２の制御部３１は、情報処理装置１から受信していた設定に基づいて揺動スイッチ２５に対して提示する力覚を「０」とする。またこのとき情報処理装置１の制御部１１は、押し込み量がＰ２より大きくなったと判断して、弾丸が発射されたときの処理を開始し、予め定められた、ショットガンを発射したときの音声に対応する振動波形を、触覚提示デバイス３４を制御するための振動波形としてコントローラ装置２へ送出する。
【００６９】
また、制御部１１は、ショットガンが弾丸を発射したときの画像を描画して表示制御部１４に表示させ、的に的中したか否かを所定の方法（この方法は広く知られている方法を採用できるので、ここでの詳しい説明を省略する）で判断し、その判断に応じた画像を表示させるとともに、的に的中したと判断すると、的が破壊される音声を音声制御部１５に鳴動させる。
【００７０】
このように、仮想的にユーザの手元側で生じる音声に係る情報をコントローラ装置２に出力する振動波形で表現し、遠隔での音声を音声制御部１５を介してスピーカー等で鳴動させることにより、臨場感を高めている。
【００７１】
また制御部１１は、ボタン２６が押下されたことを検出すると、武器を切り替える処理を実行し（次の武器である「弓」に切り替え）、選択された武器に対応する力覚設定の情報を、揺動スイッチ２５の押し込み量に応じて与える力覚の態様を表す情報として決定し、当該力覚設定の情報を記憶部１２から読み出して、コントローラ装置２に対して送出する。
【００７２】
さらに制御部１１はこのとき、選択された武器に対応する画像を表示するよう、表示制御部１４を制御する。
【００７３】
この制御部１１の動作により、コントローラ装置２の制御部３１は、これより後は、制御部１１から新たに受信した情報に従って、揺動スイッチ２５の押し込み量の大きさによる力覚の大きさを制御するようになる。
【００７４】
具体的に弓に対応する力覚設定は図５（ａ）に例示したようなものとすることができる。すなわち、ユーザが揺動スイッチ２５を押し込むと、当該押し込みの量に応じた反力が提示される。このとき制御部１１も所定のタイミングごとに揺動スイッチ２５の押し込み量の情報を受信しており、揺動スイッチ２５が予め定められた量だけ押し込まれるごとに、所定の振動波形（例えば弓の弦の張力が変化するときの効果音に対応する振動波形）をコントローラ装置２に出力する。また押し込み量の変化が予め定めた閾値を下回る期間が継続している場合は、比較的低周波の振動波形（弓全体が揺れているかのような振動波形）をコントローラ装置２に出力する。
【００７５】
これにより、揺動スイッチ２５を押下している間、押下量を大きくするごとに、ユーザには弓を引く際に聞こえる効果音の音声が提示され、また、押下量を一定に保とうとしている間は、ユーザに対して、弓を引いた状態を維持するのに力が入っている状態を演出するため、比較的低周波の振動が提示される。
【００７６】
またユーザが揺動スイッチ２５を予め定めたしきい値を超えて押し込んでから、揺動スイッチ２５から指を離したときには、制御部１１は、上記しきい値を超えた位置から比較的早いタイミング（予め定めた時間しきい値以内）で揺動スイッチ２５の押し込み量が「０」まで変化したことを検出する。
【００７７】
制御部１１は、このように、予め定めた時間しきい値以内で、揺動スイッチ２５の押し込み量が所定のしきい値Ｐthより大きい値Ｐから「０」まで変化すると、矢を射る操作が行われた（射撃が行われた）として、その旨に対応する画像を表示するとともに、矢が飛ぶときの効果音を音声制御部１５に鳴動させる。なお矢が的に的中したか否かの判断などが行われることはショットガンにおける処理と同様である。
【００７８】
また制御部１１はこのとき、コントローラ装置２に対して揺動スイッチ２５の押し込み量によらず、提示する力覚を「０」とするべき旨の設定を表す情報を送出してもよい。制御部１１は、その後、ユーザが弓に矢を新たにつがえる操作（リロード操作）を行うまでは、揺動スイッチ２５の操作に応答した処理（弓を射る動作に対応する処理等）を行わない。また、リロード操作が行われたときには、制御部１１は、弓に対応する力覚設定を記憶部１２から読み出して、コントローラ装置２に対して送出する。なお、リロード操作は、例えばコントローラ装置２を傾けてから戻す操作であってもよいし、いずれかのボタンを押下する操作などであってもよい。
【００７９】
一方、（弓に矢がつがえられているとされる状態で）ユーザが揺動スイッチ２５を予め定めたしきい値を超えて押し込んでから、揺動スイッチ２５の押し込み量を徐々に小さくして「０」とするときには、制御部１１は、揺動スイッチ２５の押し込み量が上記時間しきい値を超える時間をかけて、押し込まれた位置から「０」まで変化したことを検出することとなる。
【００８０】
この場合、制御部１１は、矢を射る操作ではなく、射撃をやめる操作が行われたとして、矢を射る画像の提示は行わない。またこのときには、コントローラ装置２の制御部３１は、押し込み量が小さくなっていく間も、押し込み量に応じた力覚提示を行う動作を続けるので、ユーザは提示されている反力（揺動スイッチ２５を押し出そうとする力）に対抗して力を入れつつ揺動スイッチ２５の押し込み量を戻すこととなる。
【００８１】
このように本実施の形態では、制御部１１が所定のタイミングごとに繰り返して揺動スイッチ２５の押し込み量の情報を取得し、当該繰り返し取得した押し込み量の情報に基づいて、押し込み量の時間的変化の情報を得ることとしている。
【００８２】
そして制御部１１は、取得した現在の押し込み量の情報と、当該取得した押し込み量の時間的変化の情報と、予め指示された力覚設定とに基づいて、揺動スイッチ２５に対して与える力覚の態様を決定することとなる。つまり押し込み量の時間的変化が、上述の通り、時間しきい値以内に、所定のしきい値を超える押し込み位置から「０」まで戻ることを表す場合は、射撃が行われた場合の力覚提示を行ったうえで、その後リロード操作が行われるまでは力覚提示を行わないよう制御し、上記時間しきい値を超えている場合は、所定のしきい値を超える押し込み位置から押し込み位置が「０」まで戻ったとしても、その間、押し込み量に応じた力覚を提示させるのみで、射撃が行われた旨の力覚提示は行わない。
【００８３】
このように本実施の形態の例では、押し込み操作の速度にも応じて力覚提示の態様が変化する。これによりコントローラ装置２を利用した体験の品質を向上できる。また本実施の形態では、押し込みの操作に応じて力覚だけでなく触覚の提示や、音声、画像等の提示の内容も変化しており、総合的な演出が行われる。
【００８４】
［揺動スイッチを押し込み中にボタンを操作した場合］
また本実施の形態のここでの例では、揺動スイッチ２５が押し込まれている間に、ボタン２６が押下されて武器の切り替えが行われると、揺動スイッチ２５に対して提示するべき力覚の設定が変更されることとなる。
【００８５】
本実施の形態の制御部１１は、このように、力覚提示が行われている間に、提示するべき力覚の提示態様（力覚の設定）が変化するときには、次のように動作してもよい。すなわち、このときの制御部１１は、力覚の設定が変更された時点で力覚の提示を行わないようコントローラ装置２に指示する。
【００８６】
そして制御部１１は、その後、コントローラ装置２から受け入れる揺動スイッチ２５の押し込み量が予め定めた条件を満足する押し込み量となったか否かを調べ、当該条件を満足することとなったと判断すると、コントローラ装置２に対して新たな（変更後の）力覚の設定に係る情報を送出する。
【００８７】
このようにすると、例えばユーザが揺動スイッチ２５を押し込んで弓を引く操作を行っている間に、ユーザがボタン２６を押下すると、情報処理装置１の制御部１１は、武器がマシンガンに変更された旨の処理を実行する。制御部１１は、揺動スイッチ２５の押し込み量によらず、提示する力覚を「０」とするべき旨の設定を表す情報をコントローラ装置２に対して送信する。
【００８８】
これによりコントローラ装置２の制御部３１は、力覚の提示を停止する（アーム２３２を最下点まで下げ、揺動スイッチ２５を押下してもアーム２３２による反力を感じることがなくなるように制御する）。
【００８９】
制御部１１は、以下、所定のタイミングごとに入力される揺動スイッチ２５の押し込み量の情報を参照し、揺動スイッチ２５の押し込み量が予め定めた条件を満足したか否かを判断する。そして制御部１１が当該条件が満足されたと判断すると、選択された武器に対応する力覚設定の情報（ここではマシンガンに対応する設定、すなわち図５（ｃ）の設定）を記憶部１２から読み出して、コントローラ装置２に対して送出する。
【００９０】
なお、ここで上記条件は例えば、押し込み量が「０」となったとの条件（揺動スイッチ２５からユーザが指を離したとの条件）とすればよい。
【００９１】
これにより、この後、コントローラ装置２の制御部３１は、揺動スイッチ２５の押し込み量がＰ０からＰ１の間は押し込み量によらずに一定の反力を提示するようアーム２３２の位置を制御し、押し込み量がＰ１から最大の押し込み量Ｐmaxまでの間では、射撃が行われているとして、反力を周期的に変化させるようアーム２３２の位置を周期的に変化させる。なお、この射撃が行われているとしている間の処理として制御部１１は、弾丸が断続的に発射されているものとして処理を行い、その旨の画像を表示制御部１４に表示させる等の処理を実行する。
【００９２】
このように本実施の形態によれば、所定の力覚設定に基づいて力覚を提示ししている間に、当該提示している力覚設定とは異なる他の力覚設定を新たに設定するべき旨の指示があったときには、力覚を提示しているスイッチ等からユーザが指を離した（操作をしない状態となった）などといった所定の条件が満足されるまで力覚の提示を停止し、所定の条件が満足された後で新たな力覚設定（上記他の力覚設定）に基づく力覚提示の処理を再開するようにしてもよい。
【００９３】
また上記の条件はユーザが操作をしない状態となったことを条件とする例に限られず、所定の時間が経過したとの条件であってもよい。
【符号の説明】
【００９４】
１  情報処理装置、２  コントローラ装置、３  表示装置、１１  制御部、１２  記憶部、１３  インタフェース部、１４  表示制御部、１５  音声制御部、１６  通信部、２１  把持部、２２  本体部、２３  ジョイスティック、２４  ボタン、２５  揺動スイッチ、２６  ボタン、３１  制御部、３２  マイク、３３  スピーカー、３４  触覚提示デバイス、３６  通信部、３７  センサ部、２３１  アクチュエータ、２３２  アーム、２５０  スイッチカバー、２５１  回転軸、２５２  支持体。
【図１】
2020111155.tif 000003
【図２】
2020111155.tif 000004
【図３】
2020111155.tif 000005
【図４】
2020111155.tif 000006
【図５】
2020111155.tif 000007
【国際調査報告】
2020111155.tif 000008
2020111155.tif 000009
2020111155.tif 000010
2020111155.tif 000011