(57)【特許請求の範囲】
【請求項１】
ユーザの手に固定されるコントローラデバイスと、当該コントローラデバイスに接続され、コントローラデバイスとの間で情報の送受信を行う情報処理装置とを含む情報処理システムであって、
前記コントローラデバイスが、コントローラデバイスの筐体を振動させる振動子を備え、
前記振動子の振動強度と振動周波数とを表す情報を受け入れる受入手段と、
コントローラデバイスとユーザの手との接触状態に係る情報として、ユーザの指の屈伸の状態の情報を取得する指センサを含む取得手段と、
前記振動子を振動させる振動制御手段と、
を有し、
前記コントローラデバイスと情報処理装置とのいずれかが、前記コントローラデバイスの取得手段が取得した情報が表すユーザの指の屈伸の状態に応じて、振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する補正手段を備え、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、前記補正手段は、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みｗｎと、それ以外の指に対する重みｗｄとを、０＜ｗｎ＜ｗｄとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正し、
前記コントローラデバイスの振動制御手段が、当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる情報処理システム。
【請求項２】
ユーザの手に固定されるコントローラデバイスであって、
コントローラデバイスの筐体を振動させる振動子を備え、
前記振動子の振動強度と振動周波数とを表す情報を受け入れる受入手段と、
コントローラデバイスとユーザの手との接触状態に係る情報として、ユーザの指の屈伸の状態の情報を取得する指センサを含む取得手段と、
前記取得手段が取得した情報が表すユーザの指の屈伸の状態に応じて、前記受け入れた振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する補正手段と、
当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる振動制御手段と、
を含み、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、前記補正手段は、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みｗｎと、それ以外の指に対する重みｗｄとを、０＜ｗｎ＜ｗｄとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正するコントローラデバイス。
【請求項３】
請求項１に記載の情報処理システムであって、
前記補正手段は、前記重みづけ平均した情報Ｌの増大率ｒ＝（αＬ＋１）（ただしαは正の比例定数）を用い、振動強度をｒ倍とするよう、前記振動強度を表す情報を補正する情報処理システム。
【請求項４】
ユーザの手に固定され、自身の筐体を振動させる振動子を備えたコントローラデバイスを用い、
受入手段が、前記振動子の振動強度と振動周波数とを表す情報を受け入れる工程と、
指センサを含む取得手段が、コントローラデバイスとユーザの手との接触状態に係る情報として、ユーザの指の屈伸の状態の情報を取得する工程と、
補正手段が、前記取得した情報が表すユーザの指の屈伸の状態に応じて、前記受け入れた振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する工程と、
振動制御手段が、当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる工程と、
を含み、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、前記補正手段は、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みｗｎと、それ以外の指に対する重みｗｄとを、０＜ｗｎ＜ｗｄとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正するコントローラデバイスの制御方法。
【請求項５】
ユーザの手に固定され、コントローラデバイスの筐体を振動させる振動子と、指センサとを備えるコントローラデバイスを、
前記振動子の振動強度と振動周波数とを表す情報を受け入れる受入手段と、
コントローラデバイスとユーザの手との接触状態に係る情報として、前記指センサによりユーザの指の屈伸の状態の情報を取得する取得手段と、
前記取得手段が取得した情報に基づき、前記受け入れた振動強度を表す情報を補正するとともに、振動周波数を表す情報を補正する補正手段と、
当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させる振動制御手段と、
として機能させ、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、
前記補正手段として機能させる際には、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みｗｎと、それ以外の指に対する重みｗｄとを、０＜ｗｎ＜ｗｄとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正させるプログラム。
【請求項６】
ユーザの手に固定され、コントローラデバイスの筐体を振動させる振動子と、指センサとを備えるコントローラデバイスに接続された情報処理システムを、
前記振動子の振動強度を表す情報を受け入れる受入手段と、
前記コントローラデバイスとユーザの手との接触状態に係る情報として、前記指センサにより検出されるユーザの指の屈伸の状態の情報を取得する手段と、
前記取得した情報に基づき、前記受け入れた振動強度と振動周波数の少なくとも一方を表す情報を補正する補正手段と、
当該補正された情報で表される振動強度と振動周波数を、前記コントローラデバイスに出力する手段と、
として機能させ、
前記ユーザの指の屈伸の状態の情報は、前記指センサからユーザの各指までの距離の情報であり、
前記補正手段として機能させる際には、当該指センサからユーザの各指までの距離の情報を用い、指を曲げたときにもっとも前記振動子の取り付け位置に近い位置に接する指に対する重みｗｎと、それ以外の指に対する重みｗｄとを、０＜ｗｎ＜ｗｄとなるように設定して重みづけ平均した情報を用いて、前記振動強度を表す情報を補正させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、コントローラデバイス、コントローラデバイスの制御方法、及びプログラムに関する。
【背景技術】
【０００２】
家庭用ゲーム機等におけるコントローラデバイスは、ユーザが行ったボタン押下やデバイスを振る等の動作を検出して、ゲーム機等の本体に当該検出したユーザの動作を表す情報を送出している。従来、こうしたコントローラデバイスのうちには、手袋のようにユーザの手に装着して、指の動きを検出するものが知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
また、こうしたコントローラデバイスでは、ユーザに対して振動をフィードバックする振動子を有しているものがある。このようなコントローラデバイスは、家庭用ゲーム機等の情報処理装置から入力される振動強度で、振動子を振動させる。【０００４】
しかしながら、コントローラデバイスの振動によりユーザが感じる振動は、ユーザの手とコントローラデバイスとの密着の度合いによって異なる。またコントローラデバイスを手に固定する方法によっては密着の度合いがプレイの度に異なる場合がある。このため、本来提示されるべき振動強度による体感と、ユーザが実際に体感する振動とが大きく異なってしまったり、同じ強度の振動であってもプレイごとに異なってしまったりといった事態が生じる。【０００５】
本発明は上記実情に鑑みて為されたもので、ユーザに対してより安定した体感を提示できるコントローラデバイス及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００６】
上記従来例の問題点を解決する本発明の一態様は、ユーザの手に固定されるコントローラデバイスと、当該コントローラデバイスに接続され、コントローラデバイスとの間で情報の送受信を行う情報処理装置とを含む情報処理システムであって、前記コントローラデバイスが、コントローラデバイスの筐体を振動させる振動子を備え、前記振動子の振動強度と振動周波数との少なくとも一方を表す情報を受け入れる受入手段と、コントローラデバイスとユーザの手との接触状態に係る情報を取得する取得手段と、前記振動子を振動させる振動制御手段と、を有し、前記コントローラデバイスと情報処理装置とのいずれかが、前記コントローラデバイスの取得手段が取得した情報に基づき、振動強度と振動周波数との少なくとも一方を表す情報を補正する補正手段を備え、前記コントローラデバイスの振動制御手段が、当該補正された情報で表される振動強度と振動周波数にて、前記振動子を振動させることとしたものである。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態に係るコントローラデバイスの例を表す概要説明図である。
【図２】本発明の実施の形態に係るコントローラデバイスの例を表す構成ブロック図である。
【図３】本発明の実施の形態に係る情報処理システムの例を表す構成ブロック図である。
【図４】本発明の実施の形態に係るコントローラデバイスの例を表す機能ブロック図である。
【図５】本発明の実施の形態に係る情報処理システムが用いる補正のパラメータの例を表す説明図である。
【図６】本発明の実施の形態に係る情報処理システムの動作例を表すフローチャート図である。
【発明を実施するための形態】
【０００８】
本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明において各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【０００９】
本発明の実施の形態に係る情報処理システムは、情報処理装置１とコントローラデバイス２０とを含む。ここで情報処理装置１は、例えば家庭用ゲーム機等のコンピュータ機器であり、コントローラデバイス２０は、この情報処理装置１に接続される。
【００１０】
本発明の実施の形態に係るコントローラデバイス２０は、ユーザの左手または右手に装着されて固定される。以下の説明において、ユーザの左手に固定されるコントローラデバイス２０と、右手に固定されるコントローラデバイス２０とを区別する必要がある場合は、ユーザの左手に固定されるコントローラデバイス２０をコントローラデバイス２０Ｌ、ユーザの右手に固定されるコントローラデバイス２０をコントローラデバイス２０ＲとそれぞれＬ，Ｒの符号を付して区別する。
【００１１】
このコントローラデバイス２０の一例は、図１にその概要を例示するように、デバイス本体２１０と、このデバイス本体２１０に固定された固定具２２０とを含んで構成される。また、このコントローラデバイス２０は、図２に示すように、デバイス本体２１０内に、制御部２１と、記憶部２２と、操作インタフェース２３と、センサ部２４と、バイブレータ２５と、通信部２６とを含んだ回路部を備えて構成される。
【００１２】
デバイス本体２１０は、ユーザの左手に装着されるものと、右手に装着されるものとで、いずれもその形状が同一となっていてもよい。本実施の形態の例では、固定具２２０は例えば可撓性あるベルトとバックルとを有し、ベルトとバックルとにより直径が調整可能な環状部を形成するものとする。そしてユーザは、この環状部に人差指から小指までを通し、デバイス本体２１０がユーザの親指の付根（人差指から小指のＭＰ関節に相当する位置）に当接させた位置に固定されるように環状部の直径を適宜調整し、バックルで固定する。
【００１３】
デバイス本体２１０は、ユーザにより把持される把持部２１１と、操作部２１２と、位置提示部２１３とを含む。把持部２１１は、本実施の形態の一例では実質的に多角形柱状をなしている。操作部２１２は、把持部２１１から連続して形成されており、図１の例では、ボタン操作部２３１を含む。またこのデバイス本体２１０の側面側（デバイス本体２１０の背面をユーザの手の平に当接させたときに指側に向いた面）には、後に説明するセンサ部２４の指センサ２４１が設けられている。位置提示部２１３は、デバイス本体２１０の上側（ユーザの手に固定した際、親指側）背面に配され、例えばＬＥＤ等の発光素子を少なくとも一つ含んで構成される。この位置提示部２１３は、コントローラデバイス２０の動作中はコントローラデバイス２０ごとに固有の、予め指定された色の光を発光するものとする。またこの位置提示部２１３は、コントローラデバイス２０ごとに固有な色のマーカー等、各コントローラデバイス２０の位置をそれぞれ外部から検出できればよく、必ずしも発光素子でなくてもよい。
【００１４】
またこのコントローラデバイス２０の大きさは、ユーザが自然にデバイス本体２１０を把持したときに、その一方端がユーザの親指の先端が到達する位置よりやや外側に位置し、その他方端が、小指の付け根（ＭＰ関節に相当する位置）からやや突出する位置にある程度の大きさとする。なおコントローラデバイス２０は、コントローラデバイス２０を装着した状態でユーザが手を開いても、固定具２２０によりユーザの手に固定されるので、落下することはない。
【００１５】
本実施の形態の一例において、指センサ２４１は光学センサであり、赤外光を放射する発光部と、赤外光を検出する受光部とを有し、発光部から放射された光が対象物に反射して受光部に入射する割合を測定することで、障害物までの距離を検出する。この指センサ２４１の位置からデバイス本体２１０の側面側（デバイス本体２１０の背面をユーザの手の平に当接させたときに指側に向いた面）にある障害物までの距離を検出する。この例では、ユーザがデバイス本体２１０を手に固定し、指を伸ばした状態からデバイス本体２１０を握り込む形まで手を動かすと、指センサ２４１は指を伸ばした状態では、ユーザの指の先端の方向にある障害物（例えばユーザが指を下方に向けた状態であれば床面等）までの距離を検出することとなる。その後、ユーザの指が曲げられると、指の第２関節または第３関節の表面までの距離が検出され、ユーザがデバイス本体２１０を握り込んだ状態では、指センサ２４１に指の表面が接するため、この指センサ２４１が検出する距離は「０」となる。
【００１６】
なお、この指センサ２４１は、少なくとも人差指から小指までのそれぞれに対応して設けられ、それぞれが障害物までの距離の情報を得てもよいし、人差指から小指までのうち一部の指（一つの指だけでもよい）に対応して設けられ、それぞれが障害物までの距離の情報を得るものであってもよい。さらに指センサ２４１は、５個以上備えられ、コントローラデバイス２０の側面側（デバイス本体２１０の背面をユーザの手の平に当接させたときに指側に向いた面）に一列に配されていてもよい。またこの指センサ２４１は、所定のタイミングごとに繰り返して障害物までの距離を検出し、当該検出した距離の情報を出力するものとする。
【００１７】
本実施の形態では、ここで制御部２１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。本実施の形態ではこの制御部２１は、操作インタフェース２３からユーザが操作部２１２においてした操作の内容を表す情報の入力を受け、当該情報を、通信部２６を介して情報処理装置１へ出力する。またこの制御部２１は、センサ部２４に含まれるセンサが出力する情報を、通信部２６を介して情報処理装置１へ出力する。
【００１８】
記憶部２２は、メモリデバイス等であり、制御部２１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部２２に複写されたものであってもよい。またこの記憶部２２は、制御部２１のワークメモリとしても動作する。
【００１９】
操作インタフェース２３は、操作部２１２にてユーザが行った操作の内容を表す情報を制御部２１に出力する。センサ部２４は、少なくとも一つのセンサを含み、当該センサが出力する情報を制御部２１に出力する。本実施の形態の一例では、このセンサ部２４は、既に説明した指センサ２４１のほか、コントローラデバイス２０のデバイス本体２１０の傾きを検出する傾きセンサ２４２や、コントローラデバイス２０の動きを検出する加速度センサ２４３を含んでもよい。さらにこのセンサ部２４は、複数の静電容量センサ２４５を含んでもよい。
【００２０】
ここで傾きセンサ２４２は、デバイス本体２１０の長手方向の軸まわりの回転角の情報と、長手方向の軸の重力の向きに対する角度の情報とを検出して出力する。加速度センサ２４３は、コントローラデバイス２０に加えられる各軸方向の加速度を検出し、当該検出の結果を出力する。なお、ここで加速度の方向は、コントローラデバイス２０の長手方向をＺ軸とし、このＺ軸を法線とする面内で、ユーザの指が位置するべき方向をＸ軸、上記面内でＸ軸に直交する方向をＹ軸とするなどして予め定めておけばよい。
【００２１】
バイブレータ２５は、本発明の振動子に相当し、制御部２１から振動周期と振動強度とを指示する信号の入力を受けて、当該指示された振動周期・振動強度にて振動する。通信部２６は、ＵＳＢインタフェース等の有線インタフェースや、ブルートゥース（登録商標）等の無線インタフェースであり、制御部２１から入力される指示に従い、種々の情報を情報処理装置１に対して出力している。
【００２２】
情報処理装置１は、図３に例示するように、制御部１１と、記憶部１２と、インタフェース部１３と、撮像部１４と、出力部１５とを含んで構成されている。制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。
【００２３】
記憶部１２は、メモリデバイス等であり、制御部１１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部１２に複写されたものであってもよい。またこの記憶部１２は、制御部１１のワークメモリとしても動作する。
【００２４】
インタフェース部１３は、コントローラデバイス２０に無線又は有線にて接続され、コントローラデバイス２０からユーザの操作の内容を表す情報や、指センサ２４１において検出した距離の情報（指センサ２４１が各指に対応して複数ある場合は、各指に対応する指センサ２４１が検出した複数の距離の情報）を受け入れ、制御部１１に出力する。
【００２５】
撮像部１４は、ユーザの位置する範囲を撮像範囲として設置されたカメラ等であり、ユーザを含む画像を所定のタイミングごとに繰り返して撮像し、当該画像のデータを制御部１１に出力する。
【００２６】
出力部１５は、例えばＨＤＭＩ（登録商標）インタフェース等、家庭用テレビジョンに対して映像等を出力するインタフェースを有する。この出力部１５は、制御部１１から入力される指示に従い、表示するべき映像の情報を出力する。
【００２７】
本実施の形態の一例では、コントローラデバイス２０の制御部２１が、情報処理装置１から振動子の振動強度を表す情報を受け入れる。またこの制御部２１は、コントローラデバイス２０とユーザの手との接触状態に係る情報を取得する。そして制御部２１は、当該取得した情報に基づき、受け入れた振動強度を表す情報を補正する。制御部２１は、ここで補正された情報で表される振動強度にて、振動子であるバイブレータ２５を振動させる。
【００２８】
ここでコントローラデバイス２０とユーザの手との接触状態に係る情報には、コントローラデバイス２０とユーザの手との接触面積に係る情報や、ユーザの手がコントローラデバイス２０に対して加える圧力の情報等が含まれる。
【００２９】
この例の制御部２１は、機能的には、図４に例示するように、受入部４１と、取得部４２と、補正部４３と、振動制御部４４とを含んで構成される。
【００３０】
受入部４１は、情報処理装置１から振動子の振動強度と振動周波数とを表す情報を受け入れる。この振動強度と振動周波数とを表す情報は、具体的には、振動振幅の時間ｔに対する変化を表す波形情報ｖ（ｔ）であり、音声信号と同様のものでよい。もっとも、本実施の形態においてこの振動強度や振動周波数を表す情報は、波形情報に限られず、振動強度を指定する数値の情報や、振動周波数を指定する数値の情報であってもよい。
【００３１】
取得部４２は、コントローラデバイス２０とユーザの手との接触面積に係る情報を取得する。本実施の形態の一例に係る取得部４２は、ユーザの指の屈伸の状態を、コントローラデバイス２０とユーザの手との接触面積に係る情報として取得する。すなわち、この取得部４２は、指センサ２４１が検出するデバイス本体２１０の表面から各指までの距離の情報に基づいて、ユーザの指が曲げられてデバイス本体２１０の表面に触れている（コントローラデバイス２０を握っている）か、ユーザの指が伸ばされて、デバイス本体２１０の表面から離れているかを表す情報を取得する。
【００３２】
具体的に、取得部４２は、ある指までの距離が「０」または予め定めた値より小さい場合に、当該指が曲げられてデバイス本体２１０の表面に触れている（コントローラデバイス２０を握っている）と判断する。また、取得部４２は、ある指までの距離が予め定めた値より大きい場合に、当該指が伸ばされてデバイス本体２１０の表面から離れていると判断する。
【００３３】
補正部４３は、取得部４２が取得した情報に基づき、受入部４１が受け入れた振動強度または振動周波数の少なくとも一方を表す情報を補正する。以下の例では、説明を簡単にするため、振動強度を補正する例について述べる。例えば、この補正部４３は、ユーザの指が伸びているほど振動強度を強めるよう補正する。具体的に、この補正部４３は、取得部４２により、伸ばされてデバイス本体２１０の表面に触れていない（コントローラデバイス２０を握っていない）と判断された指の数に基づき、次のように振動強度を補正する。
【００３４】
すなわち補正部４３は、予め設定され、記憶部２２に格納されている補正率の情報を参照する。この補正率の情報は、例えば、図５に例示するように、伸ばされて、デバイス本体２１０の表面に触れていない指の数（ｎ＝０，１，２…）と、振動強度の補正率ｒ（ｎ）とを関連付けたものである。補正部４３は、取得部４２が取得した情報により、伸ばされてデバイス本体２１０の表面に触れていない指の数がｎであったときには、この数ｎに関連付けられている補正率ｒ（ｎ）を用いて次のように演算する。すなわち補正部４３は、受入部４１が受け入れた情報が表す波形情報ｖ（ｔ）に対する補正後の波形情報Ｖ（ｔ）を、Ｖ（ｔ）＝ｒ（ｎ）×ｖ（ｔ）として得て出力する。この補正はつまり、波形情報ｖ（ｔ）の振幅をｒ（ｎ）倍することに相当する。
【００３５】
ここで予め設定された補正率ｒ（ｎ）が振動強度の低減率（つまり０＜ｒ（ｎ）≦１）であるときは、Ｎ＞ｎなるＮ，ｎについて、ｒ（Ｎ）＜ｒ（ｎ）としておく。これにより、伸ばされてデバイス本体２１０の表面に触れていない指が多いほど、つまり、ユーザの指が伸びているほど振動強度の低減率が小さくなり、ユーザの指が伸びているほど振動強度を強めるよう補正されることとなる。また予め設定された補正率ｒ（ｎ）が振動強度の増大率（つまりｒ（ｎ）≧１）であるときは、Ｎ＞ｎなるＮ，ｎについて、ｒ（Ｎ）＞ｒ（ｎ）としておく。これにより、伸ばされてデバイス本体２１０の表面に触れていない指が多いほど、つまり、ユーザの指が伸びているほど振動強度の増大率が大きくなり、ユーザの指が伸びているほど振動強度を強めるよう補正されることとなる。
【００３６】
振動制御部４４は、補正部４３から補正された情報で表される波形情報Ｖ（ｔ）の入力を受け入れて、当該補正後の波形情報Ｖ（ｔ）にて、振動子であるバイブレータ２５を振動させる。このような、波形情報に基づいてバイブレータ等の振動子を振動させる制御の方法は、広く知られているので、ここでの詳しい説明を省略する。なお、波形情報ではなく、振動強度や振動周波数の情報が入力されるときには、この振動制御部４４は、当該入力された情報によって表される振動強度に比例する振幅で、入力された情報によって表される振動周波数に比例する周波数にて、振動子を振動させる。なお、いずれか一方の入力がない場合は、予めデフォルトとして定められた振動強度、または振動周波数で振動子を振動させることとしておけばよい。
【００３７】
また、本実施の形態の一例において補正部４３は、上述のように、伸ばされてデバイス本体２１０の表面に触れていない指の数に応じて振動強度を補正する場合に代えて、指センサ２４１が検出した指までの距離の値に応じて振動強度を補正してもよい。
【００３８】
例えば補正部４３は、人差指、中指、薬指、小指の各指に対応する指センサ２４１が検出したそれぞれの指までの距離Ｌi（ｉは、人差指、中指、薬指、小指に対応するインデックスであり、ｉ＝１，２，３，４）を用い、これらの平均などの統計値Ｌに応じて、次のように振動強度を補正してもよい。すなわち、補正部４３は、距離に係る統計値Ｌが大きいほど、つまりユーザの指が伸びているほど振動強度を強めるよう補正する。一例として、統計値Ｌを用いた増大率ｒ＝（αＬ＋１）を用い、受入部４１が受け入れた情報が表す振動強度ｖ（ｔ）に対する補正後の振動強度Ｖ（ｔ）を、Ｖ（ｔ）＝ｒ×ｖ（ｔ）として得て、出力する。この補正はつまり、振幅をｒ＝（αＬ＋１）倍することに相当する。なお、ここでαは正の比例定数であり、実験的に定めることとすればよい。
【００３９】
また、この統計値Ｌは重みづけ平均であってもよい。例えば補正部４３は、振動子の取り付け位置により、指を曲げたときにもっとも振動子の取り付け位置に近い位置に接する指に対する重みｗnと、そうでない指に対する重みｗdとで、０＜ｗn＜ｗdとなるように設定した重みを用いて、指を曲げたときにもっとも振動子の取り付け位置に近い位置に接する指までの距離Ｌnと、それ以外の指までの距離Ｌd1，Ｌd2，Ｌd3とを用い、Ｌ＝（ｗn×Ｌn＋wd×（Ｌd1＋Ｌd2＋Ｌd3））／（ｗn＋３ｗd）として演算してもよい。
【００４０】
また、補正部４３は人差指、中指、薬指、小指の各指について、それぞれの指を曲げたときに触れるデバイス本体２１０の表面上の位置と、振動子の位置との距離に応じて、この距離が大きいほど大きい値となるように設定された重みｗi（このｉも、人差指、中指、薬指、小指に対応するインデックスであり、ｉ＝１，２，３，４とする）を用い、Ｌ＝Σ（ｗi×Ｌi）／Σｗiとしてもよい。ここでΣは、ｉを１から４まで変化させたときの総和を意味する。
【００４１】
さらに本実施の形態の別の例では、コントローラデバイス２０とユーザの手との接触面積に係る情報として、指センサ２４１が検出した指までの距離の値に基づく情報に代えて、またはこれとともに、コントローラデバイス２０と手との密着の度合いや圧力に関する情報を用いてもよい。この情報を用いるのは、すべての指が伸ばされた状態であっても、ユーザの手の平との接触面積が大きい場合と小さい場合とでユーザの振動の感じ方が異なることを考慮したものである。
【００４２】
一例として、取得部４２は、コントローラデバイス２０とユーザの手との接触面積に係る情報（の少なくとも一部）として、振動子を振動している間に、コントローラデバイス２０自体がどれだけ振動するか（つまり、加速度センサ２４３がどれだけの振動を検出するか）を調べる。例えば取得部４２は、振動制御部４４が振動子としてのバイブレータ２５を振動制御している間に、加速度センサ２４３が検出する加速度の大きさの情報Ａ（Ｘ，Ｙ，Ｚの各軸ごとの加速度Ａx，Ａy，Ａzを合成した合成加速度の情報、例えばＡ＝√（Ａx2＋Ａy2＋Ａz2）とする）を用いて次の演算を行う。すなわち取得部４２は、ここで求めた加速度の大きさの情報Ａ（なお、この加速度の大きさＡは、時間τとともに変動するので以下ではＡ（τ）と表す）の、振動制御に用いた補正後の振動強度Ｖ（τ）に対する割合Ｅ（τ）＝Ａ（τ）／Ｖ（τ）を求める。このとき、デバイス本体２１０の振動がユーザの手によって押さえられているほど、この割合Ｅ（τ）は小さくなるため、この割合Ｅ（τ）が小さいほど、コントローラデバイス２０とユーザの手との密着の度合いが大きく、この割合Ｅ（τ）が大きいほど、コントローラデバイス２０とユーザの手との密着の度合いが小さいと推定できる。
【００４３】
そこで取得部４２は、この割合Ｅ（τ）に基づく情報を、コントローラデバイス２０とユーザの手との接触面積に係る情報（の少なくとも一部）として出力する。例えばこの割合Ｅ（τ）を振動中の時間全体で積分して（所定のタイミングごとのＥ（τ）の値を総和するなどして近似的に積分の結果を得て）、その結果の情報εを出力する。この積分の結果εにおいても、この値εが小さいほど、コントローラデバイス２０とユーザの手との密着の度合いが大きく、この値εが大きいほど、コントローラデバイス２０とユーザの手との密着の度合いが小さいと推定できる。
【００４４】
なお、取得部４２は、ユーザの指の屈伸の状態も、コントローラデバイス２０とユーザの手との接触面積に係る情報として取得して、この割合に係る情報εとともに出力してもよい。
【００４５】
この例では補正部４３は、取得部４２が出力する割合に係る情報εが大きいほど（つまり、コントローラデバイス２０とユーザの手との密着の度合いが小さいと推定されるほど）、受入部４１が受け入れた情報が表す振動強度ｖ（ｔ）を、強めるよう補正する。
【００４６】
一例として補正部４３は、割合に係る情報εを用いて、１より大きい値βを生成し（例えばβ＝γ×（１＋ε）とすればよい。ここでγは１より大きい値であり実験的に定めればよい）、受入部４１が受け入れた情報が表す波形情報ｖ（ｔ）に対する補正後の波形情報Ｖ（ｔ）を、Ｖ（ｔ）＝β×ｖ（ｔ）として得て出力する。この補正はつまり、振幅をβ倍することに相当する。
【００４７】
なお、補正部４３は、取得部４２が上記割合に係る情報εとともに、指の屈伸の状態を表す情報も出力しているときには、この指の屈伸の状態を表す情報に基づいて得られた補正のパラメータ（上述のｒ（ｎ）またはｒ）を併せて用い、受入部４１が受け入れた情報が表す波形情報ｖ（ｔ）に対する補正後の波形情報Ｖ（ｔ）を、Ｖ（ｔ）＝β×ｒ（ｎ）×ｖ（ｔ）またはＶ（ｔ）＝β×ｒ×ｖ（ｔ）として得て、出力してもよい。
【００４８】
さらに、別の例では、この補正部４３は、取得部４２が出力する割合Ｅ（τ）またはεが、予め定めたしきい値を超える（または下回る）場合に、波形情報ｖ（ｔ）を補正してもよい。この場合の補正率は、割合Ｅ（τ）やεによらず、予め定めたβ′を用いて、Ｖ（ｔ）＝β′×ｖ（ｔ）とすることとしてもよい。
【００４９】
［動作］
本発明の実施の形態に係る情報処理システムは以上の構成を備えており、次のように動作する。本実施の形態の情報処理システムでは、図６に例示するように、情報処理装置１が、ゲームプログラム等のアプリケーションプログラムの指示に従って、コントローラデバイス２０に対し、振動を提示する指示を出力する（Ｓ１）。この指示は例えば振動強度（振動振幅）の時間ｔに対する変化を表す波形情報ｖ（ｔ）として出力される。
【００５０】
コントローラデバイス２０は、情報処理装置１から振動強度を表す情報を受け入れる。またコントローラデバイス２０は、コントローラデバイス２０自身とユーザの手との接触面積に係る情報を取得する（Ｓ２）。具体的に本実施の形態の一例では、コントローラデバイス２０は、指センサ２４１が検出するデバイス本体２１０の表面から各指までの距離の情報に基づいて、ユーザの指が曲げられてデバイス本体２１０の表面に触れている（コントローラデバイス２０を握っている）か、ユーザの指が伸ばされて、デバイス本体２１０の表面から離れているかを表す情報を取得する。
【００５１】
そしてコントローラデバイス２０は、人差指、中指、薬指、小指の各指に対応する指センサ２４１が検出したそれぞれの指までの距離Ｌi（ｉは、人差指、中指、薬指、小指に対応するインデックスであり、ｉ＝１，２，３，４）を用い、これらの平均Ｌを求める。
【００５２】
コントローラデバイス２０は、ここで求めた統計値である平均Ｌを用いて増大率ｒ＝（αＬ＋１）とする。コントローラデバイス２０は、情報処理装置１から受け入れた情報が表す波形情報ｖ（ｔ）に、この増大率を乗じて（振動強度である振幅を増大率ｒだけ振幅を増大させて）、補正後の波形情報Ｖ（ｔ）を得る（Ｓ３）。
【００５３】
コントローラデバイス２０は、ここで得た補正後の波形情報Ｖ（ｔ）に基づいて、振動子であるバイブレータ２５を振動させる（Ｓ４）。
【００５４】
この例によると、ユーザの指が伸びているほど距離に係る統計値Ｌが大きくなり、振動強度が強めに補正される。このため、情報処理装置１から入力される振動の指示が同じであっても、ユーザがコントローラデバイス２０を握っている（コントローラデバイス２０のデバイス本体２１０にユーザの手がより密接に接触している）ときよりも、ユーザがコントローラデバイス２０から指を放しているときのほうが、振幅が大きく補正された状態で振動が提示されることとなる。こうしてユーザの指がデバイス本体２１０から離れているか否かに関わらず、同等の振動体験がユーザに提示されることとなる。
【００５５】
また本実施の形態の例では、コントローラデバイス２０は、振動子としてのバイブレータ２５を振動させている間に、加速度センサ２４３が検出する加速度の大きさの情報Ａを得る。そしてコントローラデバイス２０は、指示した振動（補正後の振動強度）に対するこの加速度の大きさＡの割合の平均（振動中の平均）εを求める。
【００５６】
このεは、その値が小さいほど、コントローラデバイス２０とユーザの手との密着の度合いが大きく、εの値が大きいほど、コントローラデバイス２０とユーザの手との密着の度合いが小さいと推定できる。
【００５７】
コントローラデバイス２０は、上記εの値を求めた後、当該εの値が大きいほど（つまり、コントローラデバイス２０とユーザの手との密着の度合いが小さいと推定されるほど）、情報処理装置１から入力される振動強度ｖ（ｔ）を、強めるよう補正する。例えば、コントローラデバイス２０は、上記の割合に係る情報εを用いて、β＝γ×（１＋ε）などのようにして、１より大きい値βを生成する。
【００５８】
そして、コントローラデバイス２０は、情報処理装置１から波形情報ｖ（ｔ）を表す情報を受け入れると、指の屈伸の状態を表す情報に基づいて得られた補正のパラメータｒと、ここで生成したβとを用い、受け入れた情報が表す波形情報ｖ（ｔ）に対する補正後の波形情報Ｖ（ｔ）を、Ｖ（ｔ）＝β×ｒ×ｖ（ｔ）として得る。
【００５９】
そしてコントローラデバイス２０は、ここで得た補正後の波形情報Ｖ（ｔ）に基づいて、振動子であるバイブレータ２５を振動させる。
【００６０】
本実施の形態の例によると、ユーザの手とコントローラデバイス２０との接触面積が小さいほど、入力された振動強度を強くなるように（振幅が増大されるように）制御される。また、ユーザの手とコントローラデバイス２０との接触面積が大きいほど、入力された振動強度が弱くなるように（振幅を減衰させるように）制御される。
【００６１】
［情報処理装置において補正を行う例］
また、ここまでの説明においては、コントローラデバイス２０が情報処理装置１から受け入れた振動強度や振動周波数の情報を補正することとしていたが、振動強度や振動周波数の補正は情報処理装置１側において行っても構わない。この場合、情報処理装置１の制御部１１が、受入部４１、取得部４２、及び補正部４３としての動作を行うこととなる。
【００６２】
すなわちこの例では、制御部１１が実現する受入部４１は、アプリケーションプログラムからコントローラデバイス２０を振動させる指示を受け入れる。この場合も、振動強度や振動周波数を表す情報は、具体的には、振動強度（振動振幅）や振動周波数の時間ｔに対する変化を表す波形情報ｖ（ｔ）であり、音声信号と同様のものである。
【００６３】
制御部１１の取得部４２は、コントローラデバイス２０とユーザの手との接触面積に係る情報を取得する。この例では、制御部１１は、コントローラデバイス２０から、ユーザの指の屈伸の状態を表す情報（例えば伸ばされている指の数や、各指までの距離の情報等）を受け入れる。
【００６４】
制御部１１の補正部４３は、取得部４２が取得した情報に基づき、受入部４１が受け入れた振動強度や振動周波数を表す情報を補正する。この補正部４３の動作は、コントローラデバイス２０の制御部２１により補正部４３が実現される場合の動作と同様である。制御部１１は、この補正部４３にて補正して得られた振動強度や振動周波数の情報（補正した波形情報Ｖ（ｔ））を、コントローラデバイス２０へ出力する。
【００６５】
そしてコントローラデバイス２０が、補正後の波形情報Ｖ（ｔ）を情報処理装置１から受信して、当該受信した補正後の波形情報Ｖ（ｔ）に基づいて、振動子であるバイブレータ２５を振動させる。
【００６６】
また、この例のように振動強度や振動周波数の補正を情報処理装置１側において行う場合、情報処理装置１は、ゲームプログラム等のアプリケーションプログラムの処理として当該補正の処理を実行してもよい。この場合、コントローラデバイス２０から取得した、コントローラデバイス２０とユーザの手との接触面積に係る情報に基づき、振動強度や振動周波数の情報を補正する処理がゲーム等の処理として行われることとなる。このため、ゲームの内容に応じた補正を実行することが可能となる。
【００６７】
［カメラで情報を取得する例］
なお、このように情報処理装置１にて補正を行う場合に、ユーザの手との接触面積に係る情報（ユーザの指の屈伸に関する情報等）は、コントローラデバイス２０から受信することとしてもよいが、これに代えて、撮像部１４にて撮像したユーザの画像から手の位置を検出し、その形状等を認識する処理を実行して、ユーザの指が伸びているか否かを判断することとしてもよい。
【００６８】
一例としてユーザの画像から検出された手の部分の肌色部分に外接する矩形の面積を求め、この面積が予め定めた閾値を超える場合に、ユーザの指が伸びているとしてアプリケーションプログラムから指示された波形情報ｖ（ｔ）の振動強度を強める（振幅を増大させる）補正を行ってもよい。または、上記面積が予め定めた閾値を下回る場合に、ユーザの指が曲げられているとして、アプリケーションプログラムから指示された波形情報ｖ（ｔ）の振動強度を弱める（振幅を減衰させる）補正を行ってもよい。
【００６９】
［ベルトの長さを使う例］
また、ここまでの説明ではコントローラデバイス２０が、コントローラデバイス２０自身と、ユーザの手との密着の度合いを表す情報として、振動子を振動している間に、コントローラデバイス２０自体がどれだけ振動するか（つまり、加速度センサ２４３がどれだけの振動を検出するか）を調べることとしていたが、本実施の形態はこれに限られない。
【００７０】
具体的にこの密着の度合いを表す情報は、固定具２２０の環状部の直径（あるいは環状部のベルトの周長やバックルの固定位置）を表すものであってもよい。例えばコントローラデバイス２０は、ベルト全体の長さとバックルの固定位置とから、環状部のベルトの周長を求めて密着の度合いを表す情報としてもよい。この例では、コントローラデバイス２０は、当該情報を情報処理装置１へ送出する。
【００７１】
情報処理装置１では、ユーザを認証しておく。また情報処理装置１は、当該認証したユーザについて、コントローラデバイス２０から過去ｐ回（例えばｐ＝５などと予め定めておく）に亘って受信した環状部のベルトの周長等の密着度合いの情報を記憶しておく。情報処理装置１は、過去ｐ回に亘って受信した密着度合いの情報の平均値ＡＶと、今回コントローラデバイス２０から受信した密着の度合いを表す情報Ｃとの比Ｃ／ＡＶを得る。なお、過去ｐ回分の情報が記憶されていない場合は、一般的なユーザの平均値を予め記憶部１２に格納しておき、この一般的なユーザの平均値を平均値ＡＶとしてもよい。
【００７２】
ここで、密着度合いの情報を、環状部のベルトの周長とし、比Ｃ／ＡＶを用いる場合は、この値が１を超えて大きいほど、密着度合いは低い（締めつけが緩い）こととなる。そこで、情報処理装置１またはコントローラデバイス２０は、この比の値Ｃ／ＡＶを用いて、受け入れた情報が表す波形情報ｖ（ｔ）に対する補正後の波形情報Ｖ（ｔ）を、Ｖ（ｔ）＝Ｃ／ＡＶ×ｖ（ｔ）と補正する。
【００７３】
なお、指の屈伸に基づく情報ｒ（ｎ）またはｒが得られている場合は、情報処理装置１またはコントローラデバイス２０は、受け入れた情報が表す波形情報ｖ（ｔ）に対する補正後の波形情報Ｖ（ｔ）を、Ｖ（ｔ）＝Ｃ／ＡＶ×ｒ（ｎ）×ｖ（ｔ）またはＶ（ｔ）＝Ｃ／ＡＶ×ｒ×ｖ（ｔ）とする。
【００７４】
［静電容量センサを用いる例］
さらに、本実施の形態の例では、指の屈伸状態や、ベルトの締めつけの度合い（環状部のベルトの周長等）、あるいは振動子を振動させているときのコントローラデバイス２０自身の振動の強さにより、ユーザの手とコントローラデバイス２０との接触面積に係る情報を得ていたが、本実施の形態はこれに限られない。
【００７５】
例えば本実施の形態の別の例では、コントローラデバイス２０のデバイス本体２１０表面であって、ユーザの手が接触し得る範囲に亘って、複数の静電容量センサ２４５を配してもよい。この場合、各静電容量センサ２４５の出力により、ユーザの手とデバイス本体２１０との接触面積Ｑと、密着の度合い（ユーザの手がどの程度の強さでデバイス本体２１０表面を押圧しているか）Ｆとがより直接的に検出できる。
【００７６】
この場合も、予め基準となる接触面積Ｑavと、密着度合いＦavと（実験的に、平均的な接触面積と密着度合いとを得ておけばよい）に対して、ここで検出した接触面積Ｑと密着度合いＦとの比、Ｑ／Ｑav及びＦ／Ｆavを求め、情報処理装置１またはコントローラデバイス２０が、受け入れた情報が表す波形情報ｖ（ｔ）に対する補正後の波形情報Ｖ（ｔ）を、Ｖ（ｔ）＝Ｑ／Ｑav×Ｆ／Ｆav×ｖ（ｔ）とすればよい。
【００７７】
これにより、上記検出により取得した情報が表す接触面積が小さいほど、振動強度が強めるよう補正されることとなる。
【００７８】
［他の補正態様の例］
なお、ここまでの例ではコントローラデバイス２０とユーザの手との接触面積が小さいほど、振動強度を強める補正を行うものとしたが、本実施の形態はこれに限られず、コントローラデバイス２０とユーザの手との接触面積が小さいほど振動強度を弱めるよう補正してもよい。これはユーザの手との接触面積があまりにも小さい場合には、振動させても演出効果が低いと考えられるからである。
【００７９】
また、コントローラデバイス２０とユーザの手との接触面積の大小に応じて単調に（大きいほど振動強度を強める、あるいは大きいほど振動強度を弱めるというように単調に）補正するのではなく、接触面積に応じた補正率の大きさを接触面積の関数として設定しておき、当該設定に基づいて補正率を定めても構わない。例えば、コントローラデバイス２０とユーザの手との接触面積が所定のしきい値未満のときには、当該しきい値より接触面積が小さいほど振動強度を弱める補正を行い、接触面積が当該しきい値を超える場合は、当該しきい値より接触面積が大きいほど、振動強度を弱める補正を行うようにしてもよい。この例では、接触面積がしきい値に等しい場合には指示された波形情報ｖ（ｔ）に基づく振動が提示され、当該しきい値から離れるほど、波形情報ｖ（ｔ）より減衰された振動が提示されることとなる。
【００８０】
［振動周波数の補正］
なお、ここまでの例では、波形情報ｖ（ｔ）のうち、振動強度に対応する振幅を増幅または減衰させる例について説明してきたが、本実施の形態はこれに限られない。例えば、これまでの説明で波形情報の振幅を補正するとしていたのに代えて、または振幅を補正するときに、振幅の補正とともに、振動周波数を高める、あるいは低くする補正してもよい。
【００８１】
なお、与えられた波形情報ｖ（ｔ）の振動振幅を変化させる補正は、ピッチ変更等の広く知られた処理によって実現できるため、補正方法に関する詳しい説明は省略する。また振動強度と振動周波数との双方を補正してもよい。
【００８２】
［圧力センサの例］
さらに、本実施の形態の一例では、コントローラデバイス２０が圧力センサを備えて、コントローラデバイス２０とユーザの手との密着度合いの情報の一つとして、ユーザの手からコントローラデバイス２０に加えられる圧力（コントローラデバイス２０を握る力）を検出してもよい。このような圧力センサは広く知られた種々のものが利用できるので、ここでの詳しい説明を省略する。
【００８３】
本実施の形態において圧力センサを用いる場合は、圧力センサが検出したユーザの手からコントローラデバイス２０に加えられる圧力が予め定めたしきい値を超える場合に、情報処理装置１またはコントローラデバイス２０の制御部２１が波形情報等、振動強度や振動周波数を補正することとしてもよい。
【００８４】
また、圧力センサが検出したユーザの手からコントローラデバイス２０に加えられる圧力が予め定めたしきい値を下回る場合に、情報処理装置１またはコントローラデバイス２０の制御部２１が波形情報等、振動強度や振動周波数を補正することとしてもよい。
【００８５】
さらに、圧力センサが検出したユーザの手からコントローラデバイス２０に加えられる圧力の値に応じた補正率で、情報処理装置１またはコントローラデバイス２０の制御部２１が波形情報等、振動強度や振動周波数を補正することとしてもよい。
【００８６】
［実施例の効果］
このように本実施の形態によると、ユーザの手とコントローラデバイス２０との間の接触面積が変動しても、それに応じて振動の強度が補正されるので、ユーザに対してより安定した体感を提示できる。
【符号の説明】
【００８７】
１  情報処理装置、１１  制御部、１２  記憶部、１３  インタフェース部、１４  撮像部、１５  出力部、２０  コントローラデバイス、２１  制御部、２２  記憶部、２３  操作インタフェース、２４  センサ部、２５  バイブレータ、２６  通信部、４１  受入部、４２  取得部、４３  補正部、４４  振動制御部、２１０  デバイス本体、２１１  把持部、２１２  操作部、２１３  位置提示部、２２０  固定具、２３１  ボタン操作部、２４１  指センサ、２４２  傾きセンサ、２４３  加速度センサ、２４５  静電容量センサ。
【図１】
0006799077.tif 000002
【図２】
0006799077.tif 000003
【図３】
0006799077.tif 000004
【図４】
0006799077.tif 000005
【図５】
0006799077.tif 000006
【図６】
0006799077.tif 000007