(57)【特許請求の範囲】
【請求項１】
ユーザの手に固定されるデバイスに接続される情報処理装置であって、
前記デバイスは、少なくとも一部の指について、指の屈伸状態を検出する指センサと、
固定されている手の角度を検出する角度センサと、
を含み、
前記情報処理装置は、
少なくとも一つの手のポーズについて、手のポーズを特定する情報と行うべき処理を表す処理特定情報とを関連付けて保持する保持手段に接続され、
前記デバイスから指センサによる指の屈伸状態の検出結果と、手の角度の検出結果とを受け入れる受入手段と、
当該受け入れた検出結果に基づいて、前記保持手段に保持されている情報で特定される手のポーズのいずれかに一致するか否かを判断し、いずれかに一致すると判断したときに、当該一致した手のポーズを特定する情報に関連付けられた処理特定情報を取得する判別手段と、
前記判別手段が取得した処理特定情報で特定される処理を実行する実行手段と、
を含み、
前記処理特定情報には、受け入れた検出結果情報を破棄するべき旨の処理特定情報を含む情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記受入手段は、所定のタイミングごとに繰り返して前記デバイスから指センサによる指の屈伸状態の検出結果と、手の角度の検出結果とを受け入れており、
前記判別手段は、予め定めた時間に亘って繰り返し受け入れた検出結果がいずれも、前記保持手段に保持されている情報で特定されるいずれかの手のポーズのうち、同じ手のポーズに一致すると判断したときに、当該一致した手のポーズを特定する情報に関連付けられた処理特定情報を取得する情報処理装置。
【請求項３】
ユーザの手に固定されるデバイスに接続される情報処理装置であって、
前記デバイスは、少なくとも一部の指について、指の屈伸状態を検出する指センサと、
固定されている手の角度を検出する角度センサと、
を含み、
前記情報処理装置は、
少なくとも一つの手のポーズについて、手のポーズを特定する情報と行うべき処理を表す処理特定情報とを関連付けて保持する保持手段に接続され、
前記デバイスから指センサによる指の屈伸状態の検出結果と、手の角度の検出結果とを受け入れる受入手段と、
当該受け入れた検出結果に基づいて、前記保持手段に保持されている情報で特定される手のポーズのいずれかに一致するか否かを判断するとともに、所定の実行条件を満足するか否かを判断し、前記受け入れた検出結果が前記保持手段に保持されている情報で特定される手のポーズのいずれかに一致し、かつ、前記実行条件を満足すると判断したときに、当該一致した手のポーズを特定する情報に関連付けられた処理特定情報を取得する判別手段と、
前記判別手段が取得した処理特定情報で特定される処理を実行する実行手段と、
を含み、
前記実行条件は、前記情報処理装置により実行中のアプリケーションプログラムのレーティング情報または実行している地域に係る条件である情報処理装置。
【請求項４】
請求項３に記載の情報処理装置であって、
前記アプリケーションプログラムは、オンラインゲームのアプリケーションであり、前記実行条件は、オンラインゲームの対戦相手がメッセージ表示のために選択している言語の情報に係る条件を含む情報処理装置。
【請求項５】
ユーザの手に固定され、少なくとも一部の指について、指の屈伸状態を検出する指センサと、固定されている手の角度を検出する角度センサと、を備えたデバイスに接続され、少なくとも一つの手のポーズについて、手のポーズを特定する情報と行うべき処理を表す処理特定情報とを関連付けて保持する保持手段に接続される情報処理装置を用い、
取得手段が、前記デバイスから指センサによる指の屈伸状態の検出結果と、手の角度の検出結果と、手の位置の検出結果と、前記デバイスの加速度の検出結果と、のうち、少なくとも指の屈伸状態の検出結果と、手の角度の検出結果とを含む検出結果を取得する工程と、
判別手段が、当該取得した検出結果に基づいて、前記保持手段に保持されている情報で特定される手のポーズのいずれかに一致するか否かを判断し、いずれかに一致すると判断したときに、当該一致した手のポーズを特定する情報に関連付けられた処理特定情報を取得する工程と、
実行手段が、前記取得した処理特定情報で特定される処理を実行する工程と、
を含み、
前記処理特定情報には、受け入れた検出結果情報を破棄するべき旨の処理特定情報を含む情報処理装置の制御方法。
【請求項６】
ユーザの手に固定され、少なくとも一部の指について、指の屈伸状態を検出する指センサと、固定されている手の角度を検出する角度センサと、を備えたデバイスに接続され、
少なくとも一つの手のポーズについて、手のポーズを特定する情報と行うべき処理を表す処理特定情報とを関連付けて保持する保持手段に接続される情報処理装置を、
前記デバイスから指センサによる指の屈伸状態の検出結果と、手の角度の検出結果とを受け入れる受入手段と、
当該受け入れた検出結果に基づいて、前記保持手段に保持されている情報で特定される手のポーズのいずれかに一致するか否かを判断し、いずれかに一致すると判断したときに、当該一致した手のポーズを特定する情報に関連付けられた処理特定情報を取得する判別手段と、
前記判別手段が取得した処理特定情報で特定される処理を実行する実行手段と、
として機能させ、
前記処理特定情報には、受け入れた検出結果情報を破棄するべき旨の処理特定情報を含むプログラム。
【請求項７】
ユーザの手に固定され、少なくとも一部の指について、指の屈伸状態を検出する指センサと、固定されている手の角度を検出する角度センサと、を備えたデバイスに接続され、少なくとも一つの手のポーズについて、手のポーズを特定する情報と行うべき処理を表す処理特定情報とを関連付けて保持する保持手段に接続される情報処理装置を、
前記デバイスから指センサによる指の屈伸状態の検出結果と、手の角度の検出結果とを受け入れる受入手段と、
当該受け入れた検出結果に基づいて、前記保持手段に保持されている情報で特定される手のポーズのいずれかに一致するか否かを判断し、いずれかに一致すると判断したときに、当該一致した手のポーズを特定する情報に関連付けられた処理特定情報を取得する判別手段と、
前記判別手段が取得した処理特定情報で特定される処理を実行する実行手段と、
として機能させ、
前記処理特定情報には、受け入れた検出結果情報を破棄するべき旨の処理特定情報を含むプログラムを格納した、コンピュータ可読な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
家庭用ゲーム機等の情報処理装置において、仮想空間内のキャラクタの動作を制御するためのコントローラが広く用いられている。近年では、ユーザの手の動きを、仮想空間内のキャラクタの手指の動作に反映させるものも考えられている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、指によるサインは地域や場面によって何らかの意味を示す場合があり、キャラクタの手指の動作を制御する際には、ユーザが意図せず、オンラインゲーム等の場においてキャラクタに不適切なサインを提示させてしまう場合があった。【０００４】
本発明は上記実情に鑑みて為されたもので、不適切なサインの提示を防止できる情報処理装置、制御方法、プログラム及び記録媒体を提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００５】
上記従来例の問題点を解決する本発明は、ユーザの手に固定されるデバイスに接続される情報処理装置であって、前記デバイスは、少なくとも一部の指について、指の屈伸状態を検出する指センサと、固定されている手の角度を検出する角度センサと、を含み、前記情報処理装置は、少なくとも一つの手のポーズについて、手のポーズを特定する情報と行うべき処理を表す処理特定情報とを関連付けて保持する保持手段に接続され、前記デバイスから指センサによる指の屈伸状態の検出結果と、手の角度の検出結果とを受け入れる受入手段と、当該受け入れた検出結果に基づいて、前記保持手段に保持されている情報で特定される手のポーズのいずれかに一致するか否かを判断し、いずれかに一致すると判断したときに、当該一致した手のポーズを特定する情報に関連付けられた処理特定情報を取得する判別手段と、前記判別手段が取得した処理特定情報で特定される処理を実行する実行手段と、を含むこととしたものである。
【発明の効果】
【０００６】
本発明によると、不適切なサインの提示を防止できる。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施の形態の情報処理装置に接続されるコントローラデバイスの例を表す概略斜視図である。
【図２】本発明の実施の形態の情報処理装置に接続されるコントローラデバイスの構成例を表すブロック図である。
【図３】本発明の実施の形態の情報処理装置の構成例を表すブロック図である。
【図４】本発明の実施の形態の情報処理装置の例を表す機能ブロック図である。
【図５】本発明の実施の形態の情報処理装置が用いるポーズデータベースの内容例を表す説明図である。
【図６】本発明の実施の形態の情報処理装置の処理例を表すフローチャート図である。
【発明を実施するための形態】
【０００８】
本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明において各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【０００９】
本発明の実施の形態に係る情報処理装置１は、例えば家庭用ゲーム機等のコンピュータ機器であり、この情報処理装置１にはコントローラデバイス２０が接続される。
【００１０】
コントローラデバイス２０は、ユーザの左手または右手に装着されて固定される。以下の説明において、ユーザの左手に固定されるコントローラデバイス２０と、右手に固定されるコントローラデバイス２０とを区別する必要がある場合は、ユーザの左手に固定されるコントローラデバイス２０をコントローラデバイス２０Ｌ、ユーザの右手に固定されるコントローラデバイス２０をコントローラデバイス２０ＲとそれぞれＬ，Ｒの符号を付して区別する。
【００１１】
このコントローラデバイス２０の一例は、図１にその概要を例示するように、デバイス本体２１０と、このデバイス本体２１０に固定された固定具２２０とを含んで構成される。また、このコントローラデバイス２０は、図２に示すように、制御部２１と、記憶部２２と、操作インタフェース２３と、センサ部２４と、通信部２５とを含んで構成される。また本実施の形態では、この回路部は、デバイス本体２１０内に、収納されている。
【００１２】
以下の説明において、デバイス本体２１０の長手方向をＺ軸（デバイス本体２１０を手に固定したとき、手の平を横断する方向、なおユーザの親指が到達する側を正の方向とする）とし、正面側（デバイス本体２１０を手に固定して手の平を見たときに手前となる側）と背面側とを結ぶ方向（奥行き方向）をＹ軸、左右方向（デバイス本体２１０を手に固定して手を開いた（指を伸ばした）とき、手首側から指先側へ向かう方向）をＸ軸とする（図１）。
【００１３】
デバイス本体２１０は、ユーザの左手に装着されるものと、右手に装着されるものとで、それぞれの形状が互い同一となっていてよい。本実施の形態の例では、固定具２２０は可撓性あるベルトを環状としたものであり、この固定具２２０にユーザの人差指（いわゆる人差指）から小指（いわゆる小指）までを通し、デバイス本体２１０をユーザの親指の付根（人差指から小指のＭＰ関節に相当する位置）に当接させた位置に固定して用いる。
【００１４】
またこのコントローラデバイス２０の大きさは、ユーザが自然にデバイス本体２１０を把持したときに、その一方端がユーザの親指（いわゆる親指）の先端が到達する位置よりやや外側に位置し、その他方端が、小指の付け根（ＭＰ関節に相当する位置）からやや突出する位置にある程度の大きさとする。なおコントローラデバイス２０は、コントローラデバイス２０を装着した状態でユーザが手を開いても、固定具２２０によりユーザの手に固定されるので、落下することはない。
【００１５】
デバイス本体２１０は、ユーザにより把持される把持部２１１と、操作部２１２と、位置提示部２１３とを含む。把持部２１１は、本実施の形態の一例では実質的に多角形柱状をなしている。操作部２１２は、把持部２１１から連続して形成されており、図１の例では、ユーザの親指で操作可能な複数のボタンを備えたボタン操作部２３１を含む。またこのデバイス本体２１０の側面側（デバイス本体２１０の背面をユーザの手の平に当接させたときに指側に向いた面）と、ボタン操作部２３１とにはそれぞれ、後に説明するセンサ部２４の指センサ２４１が設けられている。
【００１６】
位置提示部２１３は、デバイス本体２１０の上側（ユーザの手に固定した際、親指側）背面に配され、例えばＬＥＤ等の発光素子を少なくとも一つ含んで構成される。この位置提示部２１３は、コントローラデバイス２０の動作中はコントローラデバイス２０ごとに固有の、予め指定された色の光を発光するものとする。またこの位置提示部２１３は、コントローラデバイス２０ごとに固有な色のマーカー等、各コントローラデバイス２０の位置をそれぞれ外部から検出できればよく、必ずしも発光素子でなくてもよい。
【００１７】
本実施の形態の一例において、指センサ２４１は光学センサであり、赤外光を放射する発光部と、赤外光を検出する受光部とを有し、発光部から放射された光が対象物に反射して受光部に入射する割合を測定することで、赤外光の放射方向にある障害物までの距離を検出する。具体的にここでは、ボタン操作部２３１に設けられた指センサ２４１が、ボタン操作部２３１のボタンを操作する親指（親指）までの距離を検出する。また、デバイス本体２１０の側面側（デバイス本体２１０の背面をユーザの手の平に当接させたときに指側に向いた面）に設けられた、人差指から小指までのそれぞれの指に対応する指センサ２４１が、それぞれ対応する指（のあるべき方向の障害物）までの距離を検出する。そして指センサ２４１は、当該検出した距離の情報を、検出結果の情報として出力する。
【００１８】
この例では、ユーザがデバイス本体２１０を手に固定し、人差指から小指までを伸ばした状態からデバイス本体２１０を握り込む形まで手を動かすとき、指センサ２４１は指を伸ばした状態では、ユーザの指の先端の方向にある対象物（例えばユーザが指を下方に向けて伸ばした状態であれば床面等）までの距離を検出することとなる。
【００１９】
また、ユーザの指が曲げられると、曲げられた指の第２関節または第３関節の表面までの距離が検出され、ユーザがデバイス本体２１０を握り込んだ状態では、指センサ２４１に指の表面が接するため、この指センサ２４１が検出する距離は「０」となる。本実施の形態ではこの指センサ２４１が指の屈伸状態を検出するセンサとして機能する。もっとも指の屈伸状態を検出するセンサとしては、各指の屈伸（曲げているか伸ばしているか）の状態を検出できれば、ここで説明したような光学的な指センサに限られるものではない。
【００２０】
本実施の形態では、ここで制御部２１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。本実施の形態ではこの制御部２１は、操作インタフェース２３からユーザが操作部２１２においてした操作の内容を表す情報の入力を受け、当該情報を、通信部２５を介して情報処理装置１へ出力する。またこの制御部２１は、センサ部２４に含まれるセンサが出力する情報を、通信部２５を介して情報処理装置１へ出力する。
【００２１】
記憶部２２は、メモリデバイス等であり、制御部２１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記録媒体に格納されて提供され、この記憶部２２に複写されたものであってもよいし、ネットワーク等の通信手段を介して提供され、この記憶部２２に格納されたものであってもよい。またこの記憶部２２は、制御部２１のワークメモリとしても動作する。
【００２２】
操作インタフェース２３は、操作部２１２にてユーザが行った操作の内容を表す情報を制御部２１に出力する。センサ部２４は、少なくとも一つのセンサを含み、当該センサが出力する情報を制御部２１に出力する。本実施の形態の一例では、このセンサ部２４は、既に説明した指センサ２４１のほか、コントローラデバイス２０のデバイス本体２１０の傾きを検出する傾きセンサ２４２や加速度センサ２４３を含んでもよい。
【００２３】
ここで傾きセンサ２４２は、デバイス本体２１０の長手方向のＺ軸の重力の向きに対する角度の情報を検出し、デバイス本体２１０のＺ軸の水平面からの仰俯角φの情報を演算して得る。また、この傾きセンサ２４２は、Ｚ軸まわりの回転角θの情報も検出し、このＺ軸まわりの回転角θと、Ｚ軸の水平面からの仰俯角φとを含む検出結果情報を出力する。加速度センサ２４３は、コントローラデバイス２０のＸ，Ｙ，Ｚ軸方向の加速度を検出して、その検出結果を表す検出結果情報を出力する。またこの加速度センサ２４３は、コントローラデバイス２０を装着している手（指を含む）が他の物体（もう一方の手や他人の手、壁など）に当たり、衝撃（加速度の時間変化を調べるとき、加速度がパルス状に大きくなる）が生じたときに、当該衝撃を検出して、衝撃を検出した旨の検出結果情報を出力する。
【００２４】
通信部２５は、ＵＳＢインタフェース等の有線インタフェースや、ブルートゥース（登録商標）等の無線インタフェースであり、制御部２１から入力される指示に従い、種々の情報を情報処理装置１に対して出力している。
【００２５】
情報処理装置１は、図３に例示するように、制御部１１と、記憶部１２と、インタフェース部１３と、撮像部１４と、出力部１５とを含んで構成されている。制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。
【００２６】
本実施の形態では制御部１１は、少なくとも一つの手のポーズについて、手のポーズを特定するポーズ特定情報と行うべき処理を表す処理特定情報とを関連付けたポーズデータベースにアクセス可能に接続される。またこの制御部１１は、コントローラデバイス２０から指の屈伸状態の検出結果と、手の角度の検出結果と、衝撃の検出結果と表す検出結果情報を受け入れる。そして制御部１１は、当該受け入れた検出結果情報の表す手のポーズが、上記ポーズデータベースに予め登録されたポーズ特定情報で特定される手のポーズのいずれかに一致したときに、当該一致したポーズ特定情報に関連付けて登録された処理特定情報を取得し、当該処理特定情報で特定される処理を実行する。この制御部１１の詳しい動作については後に述べる。
【００２７】
記憶部１２は、メモリデバイスやディスクデバイス等であり、制御部１１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。また、ネットワーク等の通信手段を介して提供され、この記憶部１２に格納されたものであってもよい。またこの記憶部１２は、制御部１１のワークメモリとしても動作する。
【００２８】
本実施の形態において、この記憶部１２は、図４に例示するように、少なくとも一つの手のポーズについて、手のポーズを特定するポーズ特定情報（Ｐ）と行うべき処理を表す処理特定情報（Ｑ）とを関連付けたポーズデータベースを保持する。ここでポーズ特定情報（Ｐ）は、指センサ２４１が検出する親指から小指の各指の屈伸状態（曲げているか伸ばしているかの別）に係る情報と、手の角度（Ｚ軸周りの回転角範囲とＺ軸の水平面に対する仰角）に係る情報との少なくとも一方を用いた判断条件である。
【００２９】
例えば、いわゆるサムズアップのポーズを特定するポーズ特定情報は、「親指が伸ばされ、人差指、中指、薬指、及び小指が曲げられた状態にあり、かつ、Ｚ軸が鉛直上向きとなっている」との条件として記述できる。また人差指と中指とでＶ字のサインを形成したポーズは、「親指、薬指、小指が曲げられ、人差指、中指が伸ばされ、Ｚ軸が水平方向から±１０度の範囲にある」との条件として記述できる。
【００３０】
処理特定情報（Ｑ）は、例えばキャラクタの手の形の描画処理に係る処理を特定する。一例として、処理特定情報（Ｑ）は、受け入れた検出結果情報を破棄する（この場合はキャラクタの各指が、直前の手のポーズのままとなる）処理を特定する情報等である。
【００３１】
インタフェース部１３は、コントローラデバイス２０に無線又は有線にて接続され、コントローラデバイス２０からユーザの操作の内容を表す情報や、指センサ２４１において検出した距離の情報（指センサ２４１が各指に対応して複数ある場合は、各指に対応する指センサ２４１が検出した複数の距離の情報）を受け入れ、制御部１１に出力する。
【００３２】
撮像部１４は、ユーザの位置する範囲を撮像範囲として設置されたカメラ等であり、ユーザを含む画像を所定のタイミングごとに繰り返して撮像し、当該画像のデータを制御部１１に出力する。出力部１５は、例えばＨＤＭＩ（登録商標）インタフェース等、家庭用テレビジョンに対して映像等を出力するインタフェースを有する。この出力部１５は、制御部１１から入力される指示に従い、表示するべき映像の情報を出力する。
【００３３】
次に本実施の形態の制御部１１の動作について説明する。本実施の形態の制御部１１は、機能的には図５に例示するように、受入部１１１と、判別部１１２と、処理実行部１１３とを含む。
【００３４】
ここで受入部１１１は、コントローラデバイス２０から所定のタイミングごと（例えば一定の時間が経過するごと）に、指の屈伸状態の検出結果と、手の角度の検出結果とを受け入れる。またこの受入部１１１は、コントローラデバイス２０が衝撃を検出したときに、衝撃を検出した旨の情報を受け入れる。
【００３５】
判別部１１２は、受入部１１１が受け入れた情報に基づいて手のポーズを判別する。具体的に、この判別部１１２は、受入部１１１が受け入れた指の屈伸状態の検出結果情報に基づいて、各指が曲げられているか伸ばされているかを判別する。既に述べたように、コントローラデバイス２０が出力する検出結果情報では、指が曲げられた状態にあるときには、当該曲げられた指に対応する指センサ２４１の検出結果情報（指までの距離）は比較的「０」に近い値となる。一方、指が伸ばされた状態にあるときには、当該曲げられた指に対応する指センサ２４１の検出結果情報（指までの距離）は比較的大きい値となる。そこで判別部１１２は、各指の検出結果情報と予め定められたしきい値とを比較し、当該しきい値よりも大きい検出結果情報となっている場合は、対応する指が伸ばされていると判別する。また、当該しきい値を下回る検出結果情報となっている場合は、対応する指が曲げられていると判別する。
【００３６】
これにより判別部１１２は、コントローラデバイス２０が固定されているユーザの手の各指が伸ばされているか（以下「伸び」と表す）、曲げられているか（以下「曲げ」と表す）を判別する。
【００３７】
またこの判別部１１２は、記憶部１２が保持するポーズデータベースを参照し、受入部１１１が受け入れた指の屈伸状態の検出結果情報に基づいて判別した各指の曲げ伸ばし状態や、手の角度の検出結果情報に合致するポーズ特定情報（各検出結果情報で判別されるポーズを特定するポーズ特定情報）を検索する。判別部１１２は、検索の結果、合致するポーズ特定情報が見いだされたときには、当該ポーズ特定情報（Ｐ）に関連付けられた処理特定情報（Ｑ）を読み出して、処理実行部１１３に出力する。
【００３８】
一例として受入部１１１が受け入れた指の屈伸状態の検出結果情報から、「親指、人差指、中指、薬指、及び小指がそれぞれ、伸び、曲げ、曲げ、曲げ、曲げ」と判別され、手の角度を表す検出結果情報が「Ｚ軸が鉛直上向き」であることを表しているときには、判別部１１２は、いわゆるサムズアップのポーズに相当するポーズ特定情報の条件に合致する（「親指が伸ばされ、人差指、中指、薬指、及び小指が曲げられた状態にあり、かつ、Ｚ軸が鉛直上向きとなっている」との条件に合致する）と判断する。そして当該サムズアップのポーズ特定情報に関連付けられた処理特定情報を読み出して、処理実行部１１３に出力する。
【００３９】
またこの判別部１１２は、記憶部１２が保持するポーズデータベースに、受入部１１１が受け入れた情報が満足する条件に係るポーズ特定情報がない（検索により合致するポーズ特定情報が見いだせない）と判断したときには、ポーズデータベースに、対応するポーズがない旨の情報を出力する。
【００４０】
処理実行部１１３は、判別部１１２が出力した処理特定情報で特定される処理を実行する。ここで実行される処理は例えば、ユーザの指示したポーズをキャラクタに反映させないよう制御する処理や、キャラクタの手が表示される画像部分に対してガウシアンブラーを適用するなど所定の方法で隠蔽する処理等のほか、音声を鳴動する処理や、予め定めた画像を合成する処理など、種々の処理であってもよい。
【００４１】
またこの処理実行部１１３は、判別部１１２がポーズデータベースに対応するポーズがない旨の情報を出力したときには、予め定められた処理を実行する。例えばこの処理実行部１１３は、受入部１１１が受け入れた指の屈伸状態や手の角度と同じ屈伸状態、手の角度となるよう、仮想空間内のキャラクタのポーズを制御する。
【００４２】
［時間経過の考慮］
なお、ここまでの説明において判別部１１２は、受入部１１１が受け入れた指の屈伸状態の検出結果や手の角度の検出結果に合致するポーズ特定情報を検索し、検出結果に合致するポーズ特定情報が見いだされたときには、直ちに当該ポーズ特定情報（Ｐ）に関連付けられた処理特定情報（Ｑ）を読み出して、処理実行部１１３に出力するものとして説明したが、本実施の形態はこれに限られない。
【００４３】
すなわち判別部１１２は、予め定められた時間の間、受入部１１１が受け入れた検出結果（この時間内に複数回受け入れるものとする）に合致すると判断されたポーズ特定情報がいずれも同じであるとき、つまり、予め定めた時間の間に、受入部１１１が複数回受け入れた検出結果情報がいずれも、ポーズデータベースに保持されたポーズ特定情報で特定されるいずれかの手のポーズのうち、同じ手のポーズに一致する（同じポーズ特定情報に係る条件を満足する）と判断したときに、当該一致した手のポーズを特定するポーズ特定情報に関連付けられた処理特定情報を取得して、処理実行部１１３に出力することとしてもよい。
【００４４】
この例によると、例えばユーザが手のポーズを変化させている過程で、一時的にいずれかのポーズ特定情報によって特定されるポーズが形成されたときに、当該ポーズ特定情報に関連付けられた処理特定情報で特定される処理が実行されてしまうことが防止され、キャラクタのポーズ変化過程で余計な処理が行われることが防止される。
【００４５】
［動作］
次に、本発明の実施の形態に係る情報処理装置１の基本的な動作例について説明する。本実施の形態の以下の例では、記憶部１２のポーズデータベースにおいて、「親指が伸ばされ、人差指、中指、薬指、及び小指が曲げられた状態にあり、かつ、Ｚ軸が鉛直下向きとなっている」との条件（いわゆるサムズダウンのポーズ）を表すポーズを特定するポーズ特定情報に対し、キャラクタの各指を、ユーザにより指示された手のポーズ（指センサ２４１にて検出したユーザの指の屈伸状態）に設定せず、指示がなかったものとして直前の手のポーズを継続する処理を特定する処理特定情報を関連付けて記憶しているものとする。
【００４６】
ここでコントローラデバイス２０を左右の手にそれぞれ固定したユーザが、例えば右手の親指を伸ばし、それ以外の人差指から小指までを曲げてコントローラデバイス２０を握った形で、親指を鉛直上方へ向けると、コントローラデバイス２０の複数の指センサ２４１が、対応する親指から小指までのそれぞれまでの距離を表す検出結果情報を出力する。また、センサ部２４の傾きセンサ２４２が、手の角度としてＺ軸方向（コントローラデバイス２０の長手方向であって、ユーザの親指がある側）が鉛直上向きであることを表す検出結果情報を出力する。
【００４７】
情報処理装置１の制御部１１は、当初「」（空白文字列）に初期化される、前回検索されたポーズ特定情報を表す変数ｐと、当初「０」に初期化されるカウンタ変数ｃとを設定して図６に例示する処理を実行しており、コントローラデバイス２０が出力する検出結果情報を受け入れる（Ｓ１１）。制御部１１は、処理Ｓ１１で受け入れた検出結果情報のうち、指センサ２４１の検出結果情報に基づき、各指の屈伸状態を表す情報を生成する（Ｓ１２）。ここでは制御部１１は、「伸び、曲げ、曲げ、曲げ、曲げ」の屈伸状態にある旨の情報を生成することとなる。
【００４８】
制御部１１は、そして、この屈伸状態を表す情報と、処理Ｓ１１で受け入れた検出結果のうち、手の角度の情報とが満足する条件を含むポーズ特定情報を、ポーズデータベースから検索し、検索できたかを判断する（Ｓ１３）。ここでの例では、「親指が伸ばされ、人差指、中指、薬指、及び小指が曲げられた状態にあり、かつ、Ｚ軸が鉛直上向きとなっている」との条件がポーズデータベースに含まれないので、制御部１１は、検索によりポーズ特定情報が見いだせなかったと判断し（Ｓ１３：Ｎｏ）、予め定められた処理を実行する。ここでは制御部１１は、変数ｐを「」（空白文字列）に、カウンタ変数ｃを「０」にそれぞれ初期化し、また一例として処理Ｓ１１で受け入れた指の屈伸状態や手の角度と同じ屈伸状態、手の角度となるよう、仮想空間内のキャラクタのポーズを制御して（Ｓ１４）、処理Ｓ１１に戻って処理を続ける。
【００４９】
次に、ユーザが右手の親指を伸ばし、それ以外の人差指から小指までを曲げてコントローラデバイス２０を握った状態で、親指を鉛直下方へ向けると、コントローラデバイス２０の複数の指センサ２４１が、対応する親指から小指までのそれぞれまでの距離を表す検出結果情報を出力する。また、センサ部２４の傾きセンサ２４２が、手の角度としてＺ軸方向（コントローラデバイス２０の長手方向であって、ユーザの親指がある側）が鉛直下向きであることを表す検出結果情報を出力する。
【００５０】
この場合、制御部１１は、処理Ｓ１１で受け入れた検出結果情報に基づいて、処理Ｓ１２にて指の屈伸状態が、「伸び、曲げ、曲げ、曲げ、曲げ」の屈伸状態にある旨の情報を生成する。そして処理Ｓ１３において、「親指が伸ばされ、人差指、中指、薬指、及び小指が曲げられた状態にあり、かつ、Ｚ軸が鉛直下向きとなっている」との条件がポーズデータベースに含まれるので、このいわゆるサムズダウンのポーズを特定するポーズ特定情報が検索できたと判断する（Ｓ１３：Ｙｅｓ）。
【００５１】
そして制御部１１は、前回検索されたポーズ特定情報（変数ｐが表す）と、処理Ｓ１３にて今回検索されたポーズ特定情報とが一致しているか否かを判断する（Ｓ１５）、ここで、前回検索されたポーズ特定情報と、処理Ｓ１３にて今回検索されたポーズ特定情報とが一致していれば（Ｓ１５：Ｙｅｓ）、カウンタ変数ｃを「１」だけインクリメントし（Ｓ１６）、カウンタ変数ｃが予め定めたしきい値（カウントしきい値）を超えたか否かを判断する（Ｓ１７）。ここでカウンタ変数ｃが予め定めたカウントしきい値を超えたと判断されると（Ｓ１７：Ｙｅｓ）、予め定められた時間の間、受け入れた検出結果（この時間内に複数回受け入れる）に合致すると判断されたポーズ特定情報がいずれも同じであったこととなるので、制御部１１は、検索されたポーズ特定情報（変数ｐが表す）に関連付けてポーズデータベースに格納された処理特定情報（Ｑ）を取得する（Ｓ１８）。
【００５２】
そして制御部１１は、ここで取得した処理特定情報で特定される処理を実行する（Ｓ１９）。例えばここではキャラクタの手の形を予め定めた形（例えばすべての指を伸ばしている形）に設定し、処理Ｓ１１に戻って処理を続ける。
【００５３】
また処理Ｓ１５において、前回検索されたポーズ特定情報と、処理Ｓ１３にて今回検索されたポーズ特定情報とが一致していなければ（Ｓ１５：Ｎｏ）、変数ｐを、処理Ｓ１３にて今回検索されたポーズ特定情報に設定し、カウンタ変数ｃを「１」にセットして（Ｓ２０）、処理Ｓ１１に戻って処理を続ける。
【００５４】
また処理Ｓ１７において、カウンタ変数ｃが予め定めたカウントしきい値を超えていないとき（Ｓ１７：Ｎｏ）には、処理Ｓ１４に移行して処理を続ける。
【００５５】
なお、ここでの例ではコントローラデバイス２０は、０．５秒あたりに複数回、指の屈伸状態や手の角度等を検出して検出結果情報を出力するものとし、カウントしきい値は、例えば０．５秒間に検出結果情報が入力される回数とする。このようにすると、最大で０．５秒だけ、キャラクタがサムズダウンのポーズをとることとなるが、その後、予め定められたポーズに変更されて、場面において不適切とされるポーズ（ここではサムズダウンのポーズ）がとられることが防止される。
【００５６】
［指の開き具合を特定できる場合］
また本実施の形態において、情報処理装置１に接続されるコントローラデバイス２０が、少なくとも一部の指について指の傾きを判断できる場合（指センサ２４１の一部が、対象物までの距離だけでなく、比較的近い対象物の方向も判別できる場合）は、当該屈伸状態の情報だけでなく、指の傾きの情報も用いてポーズを判別してもよい。
【００５７】
一例として人差指の傾きを判別できる場合、人差指、中指を伸ばした状態で人差指と中指とを平行に（くっつけるようにして）伸ばしているのか、人差指、中指でＶ字をつくるように伸ばしているのかを区別可能となる。この場合、ポーズ特定情報は、人差指と中指とでＶ字のサインを形成したポーズは、「親指、薬指、小指が曲げられ、人差指、中指が伸ばされ、かつ、人差指が中指から離れた方向へ伸びており、Ｚ軸が水平方向から±１０度の範囲にある」との条件として記述でき、制御部１１は、人差指と中指とが平行に伸びている状態（Ｖ字にしない状態）と区別した処理を実行することが可能となる。
【００５８】
［手の接触判定］
さらに本実施の形態の一例では、コントローラデバイス２０の加速度センサ２４３の検出結果情報を用いてもよい。例えば加速度センサ２４３の検出結果情報を用いて、ポーズ特定情報を、ハイタッチのポーズを表す、「第１から小指までが伸ばされた状態であり、Ｚ軸が水平方向から±１０度の範囲にあって、かつ、加速度センサ２４３が衝撃を検出した」との条件とすれば、ハイタッチ等のポーズに対応した処理を実行させることが可能となる。
【００５９】
［手の動きの情報］
さらに本実施の形態の情報処理装置１は、加速度センサ２４３と傾きセンサ２４２との検出結果情報を用いて、ユーザの手の動きの情報を得てもよい。コントローラデバイス２０の加速度センサ２４３と傾きセンサ２４２との検出結果情報を用いたユーザの手の動きの情報取得は、広く知られた方法があるので、ここでの詳しい説明を省略する。
【００６０】
このようにユーザの手の動きの情報が取得できる場合は、ポーズ特定情報を、ハイタッチのポーズを表す、「第１から小指までが伸ばされた状態であり、Ｚ軸が水平方向から±１０度の範囲にあって、ユーザの手が上昇し、加速度センサ２４３が衝撃を検出した」との条件とすれば、情報処理装置１は、より確実にハイタッチ等のポーズに対応した処理を実行させることが可能となる。
【００６１】
［手の位置判定］
また本実施の形態の別の例では、手の位置を検出してポーズの判別に用いてもよい。すなわち本実施の形態の情報処理装置１は、撮像部１４が出力する画像データからデバイス２０の位置提示部２１３を検出する。
【００６２】
具体的にこのデバイス位置検出処理では、撮像部１４が出力する画像データを受け入れて、当該画像データ中から、ユーザの手に固定されているコントローラデバイス２０の位置提示部２１３を検出する。このような位置提示部の検出方法は広く知られているので、ここでの詳しい説明を省略する。
【００６３】
このようにユーザの手の位置の情報が取得できる場合は、ポーズ特定情報を、ハイタッチのポーズを表す、「第１から小指までが伸ばされた状態であり、Ｚ軸が水平方向から±１０度の範囲にあって、ユーザの手がユーザの頭部より高い位置にあり、加速度センサ２４３が衝撃を検出した」との条件とすれば、情報処理装置１は、より確実にハイタッチ等のポーズに対応した処理を実行させることが可能となる。
【００６４】
［アプリによるパターン登録］
なお、本実施の形態の情報処理装置１は、アプリケーションプログラムを実行し、アプリケーションプログラムの指示に従って、ポーズ特定情報と、それに関連付けられた処理特定情報とを、ポーズデータベースに登録・削除する処理を行ってもよい。
【００６５】
これによると、例えば、ゲームアプリケーション等でハイタッチ等の喜びの表現が不適切である場面では、ハイタッチを表すポーズ特定情報と、キャラクタにハイタッチの動作を行わせない（例えばキャラクタを予め定めた直立姿勢などの所定の姿勢に設定する）処理特定情報とを関連付けて登録することで、場面に応じて不適切なポーズが提示されないように処理できる。
【００６６】
［ゲームのレーティング、地域を考慮した処理］
また、手のポーズの妥当性は、ユーザの年齢や居住地域等にも依存することを考慮して、ポーズデータベースは、ポーズ特定情報と、当該ポーズ特定情報により特定されるポーズが指示されたときに処理を実行する条件（以下実行条件と呼ぶ）と、処理特定情報とを互いに関連付けて保持するものであってもよい。
【００６７】
ここで実行条件は例えば実行中のアプリケーションプログラムのレーティング情報（年齢制限情報）や、実行している地域（またはメッセージ表示等のために選択された言語）に係る条件等であり、一例として「ゲームのレーティングで『Ａ』または『Ｂ』である」などの条件であってもよいし、「メッセージの表示のために選択された言語が『ギリシア語』である」との条件であってもよい。
【００６８】
そしてポーズデータベースでは、例えばギリシア等では、人差指と中指とを伸ばし、その他の指を曲げて手のひら側を相手に向ける手のポーズが社会的に不適切とされていることを考慮し、Ｖ字のサインを提示するポーズを表す「親指、薬指、小指が曲げられ、人差指、中指が伸ばされ、Ｚ軸が水平方向から±１０度の範囲にある」となっているポーズ特定情報に対して、実行条件を、「メッセージの表示のために選択された言語が『ギリシア語』であり、かつゲームのレーティングが『Ｚ』以外である」とし、処理特定情報が特定する処理を、キャラクタに指示されたポーズを提示させない（例えばキャラクタを予め定めた直立姿勢などの所定の姿勢に設定する）処理特定情報を関連付けて登録しておく。
【００６９】
この例によると、情報処理装置１はレーティングが『Ａ』であるオンラインゲームの実行中に、ユーザ（情報処理装置１のユーザのほか、オンラインゲームの対戦相手を含む）がメッセージの表示のために選択している言語の情報を取得し、当該取得した言語の情報のうちに、「ギリシア語」が含まれるときに、実行条件を満足するとして、いずれかのユーザ（情報処理装置１のユーザのほか、オンラインゲームの対戦相手を含む）がＶ字のサインを提示するポーズをとるようコントローラデバイス２０を固定した手でＶ字のサインを形成しても、当該ユーザのキャラクタがＶ字のサインを提示することがなくなり、ギリシア語を選択している対戦相手のユーザに対して不用意に不快感を与えることがなくなる。
【００７０】
［変形例］
また図６に例示した本実施の形態において、処理Ｓ１７で比較するカウンタしきい値は、ポーズ特定情報ごとに異なっていてもよい。この場合、カウンタしきい値をポーズデータベースに、ポーズ特定情報に関連付けて登録しておけばよい。この例では制御部１１は、処理Ｓ２０にて変数ｐを処理Ｓ１３にて今回検索されたポーズ特定情報に設定し、カウンタ変数ｃを「１」にセットするとともに、処理Ｓ１３にて今回検索されたポーズ特定情報に関連付けて登録されているカウンタしきい値を読み出して、処理Ｓ１７にて使用すればよい。
【００７１】
［他のデバイスとの相対的位置］
なお、ここまでの説明において、コントローラデバイス２０の位置（当該コントローラデバイス２０を装着したユーザの手の位置）を検出する方法として、情報処理装置１が備える撮像部１４にてコントローラデバイス２０を撮像する方法について説明したが、本実施の形態において、コントローラデバイス２０の位置を検出する方法は、他の方法であってもよい。
【００７２】
一例として、ユーザがコントローラデバイス２０の他にデバイス（例えば頭部に装着するヘッドマウントディスプレイ等のディスプレイデバイスなど）を装着している場合、当該他のデバイスとの相対的位置に基づいてコントローラデバイス２０の位置を検出してもよい。
【００７３】
具体的に当該他のデバイスがヘッドマウントディスプレイであれば、情報処理装置１は、撮像部１４にて撮像した画像に基づきヘッドマウントディスプレイの位置を検出する（ヘッドマウントディスプレイの鉛直方向に対する角度など、姿勢の情報も合わせて検出してもよい）とともに、コントローラデバイス２０の位置を検出する。
【００７４】
そして情報処理装置１は、検出したヘッドマウントディスプレイの位置（撮像部１４の光軸方向と、当該光軸方向を法線方向とする面内において鉛直方向（重力の方向）及びそれに直交する方向の各軸上の位置）を基準位置として、この基準位置に対するコントローラデバイス２０の相対位置の座標を求める。なお、以下では鉛直上向きを正の向きとする。
【００７５】
ヘッドマウントディスプレイは、ユーザの頭部に装着されるものであるので、当該ヘッドマウントディスプレイの位置座標の鉛直方向成分の値は、ユーザの頭の高さを表すと想定できる。そこで情報処理装置１は、コントローラデバイス２０の位置座標の鉛直方向成分の値から、ヘッドマウントディスプレイの位置座標の鉛直方向成分の値を引いた値が、予め定めたしきい値を超え、かつ、正の値である（コントローラデバイス２０がヘッドマウントディスプレイより高い位置にある）ときに、ユーザの手がユーザの頭部より高い位置にあると判断できる。
【００７６】
また、情報処理装置１は、コントローラデバイス２０の位置座標の鉛直方向成分の値から、ヘッドマウントディスプレイの位置座標の鉛直方向成分の値を引いた値が、予め定めたしきい値を超え、かつ、負の値である（コントローラデバイス２０がヘッドマウントディスプレイより高い位置にある）ときには、ユーザが手を下げていると判断できる。
【００７７】
さらに本実施の形態のある例では、ヘッドマウントディスプレイがカメラを有し、ヘッドマウントディスプレイから手の先（あるいはコントローラデバイス２０）までの相対的な位置を検出してもよい。
【００７８】
この場合、ヘッドマウントディスプレイのカメラにて撮像された画像から、ヘッドマウントディスプレイよりも鉛直上方、かつ、所定のしきい値を超えた距離だけ離れた位置にコントローラデバイス２０があるときに、ユーザが手を上げている（ユーザの手がユーザの頭部より高い位置にある）と判断できる。
【００７９】
さらに、ここでは他のデバイスとしてヘッドマウントディスプレイを例としたが、本実施の形態はこれに限られず、ユーザの頭部に装着されるヘッドフォンや、ヘッドバンド、ユーザの腕に装着される腕時計型のデバイス等、種々のデバイスからコントローラデバイス２０の相対的位置を検出して、ユーザの手の動きを判別しても構わない。
【符号の説明】
【００８０】
１  情報処理装置、１１  制御部、１２  記憶部、１３  インタフェース部、１４  撮像部、１５  出力部、２０  コントローラデバイス、２１  制御部、２２  記憶部、２３  操作インタフェース、２４  センサ部、２５  通信部、１１１  受入部、１１２  判別部、１１３  処理実行部、２１０  デバイス本体、２１１  把持部、２１２  操作部、２１３  位置提示部、２２０  固定具、２３１  ボタン操作部、２４１  指センサ、２４２  傾きセンサ、２４３  加速度センサ。
【図１】
0006687749.tif 000002
【図２】
0006687749.tif 000003
【図３】
0006687749.tif 000004
【図４】
0006687749.tif 000005
【図５】
0006687749.tif 000006
【図６】
0006687749.tif 000007