(57)【特許請求の範囲】
【請求項１】
ユーザに装着されたヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを検出するステップと、
前記コントローラの動きに基づいて、前記ユーザのジェスチャによる第１動作指示を決定するステップと、
前記第１動作指示に応じて、前記ユーザの視点が注がれている第１キャラクタに第１動作を行わせ、視点が注がれていない第２キャラクタに第２動作を行わせるステップと、
を含む方法。
【請求項２】
ユーザに装着されたヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを取得するステップと、
前記コントローラの動きに基づいて、前記ユーザのジェスチャによる第１動作指示を決定するステップと、
前記第１動作指示に応じて、前記ユーザの視界領域内に存在するキャラクタに第１動作を行わせ、ユーザの視界領域外に存在する第３キャラクタに第３動作を行わせるステップと、
を含む方法。
【請求項３】
前記ユーザの視界領域内に存在するキャラクタは、ユーザの視点が注がれている第１キャラクタと、ユーザの視点が注がれていない第２キャラクタを含み、
前記第１動作指示に応じて、前記第１キャラクタに第１動作を行わせ、前記第２キャラクタに第２動作を行わせるステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記コントローラの動きに基づいて、前記第１動作指示とは異なる第２動作指示を決定するステップと、
前記第２動作指示に応じて、ユーザの視界領域内に存在する第４キャラクタに第４動作を行わせ、ユーザの視界領域外に存在する第５キャラクタに第５動作を行わせるステップ
を含む、請求項３に記載の方法。
【請求項５】
前記第１キャラクタ、前記第２キャラクタ、前記第３キャラクタは第１の属性を有しており、前記第４キャラクタ、前記第５キャラクタは第２の属性を有しており、第１の属性と、第２の属性は異なる、請求項４に記載の方法。
【請求項６】
前記第１動作指示の種類に応じて、前記第１動作、前記第２動作、前記第３動作をそれぞれ異ならせるステップをさらに含む、請求項３に記載の方法。
【請求項７】
前記第２動作指示の種類に応じて、前記第４動作、及び前記第５動作をそれぞれ異ならせるステップをさらに含む、請求項４に記載の方法。
【請求項８】
前記第２動作は、前記第１動作指示を受けてから所定期間経過後に行われる前記第１動作である、請求項１又は３に記載の方法。
【請求項９】
前記第３動作は、前記第１動作指示を受けてから所定期間経過後に所定の確率で行われる前記第１動作である、請求項２に記載の方法。
【請求項１０】
前記第５動作は、前記第２動作指示を受けてから所定期間経過後に行われる前記第４動作である、請求項４に記載の方法。
【請求項１１】
前記コントローラの動きは、ユーザの右手、左手にそれぞれ保持された２つの前記コントローラの動きである、請求項１、２に記載の方法。
【請求項１２】
請求項１〜１１のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
【請求項１３】
前記プログラムはサッカーゲームに関するプログラムである、請求項１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間内のオブジェクトへの動作指示方法、及びプログラムに関し、より詳細には、ユーザがヘッドマウントディスプレイ（Ｈｅａｄ−Ｍｏｕｎｔｅｄ  Ｄｉｓｐｌａｙ：ＨＭＤ）を用いて没入する仮想空間に表示されるオブジェクトを、ジェスチャにより制御する方法、及びプログラムに関する。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特開２０１２−２２１４９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
特許文献１に開示されたシステムにおいては、ディスプレイに表示されているオブジェクトに対しジェスチャにより動作指示を与えるものであり、仮想空間内のオブジェクトに対し動作指示を与えることはできない。
【課題を解決するための手段】
【０００４】
上述した課題を解決するために、本発明によれば、
ヘッドマウントディスプレイに表示される仮想空間内のキャラクタに指示を与える方法であって、
コントローラの動きを検出するステップと、
前記コントローラの動きに基づいて、第１動作指示を決定するステップと、
前記第１動作指示に応じて、ユーザの視点が注がれている第１キャラクタに第１動作を行わせ、視点が注がれていない第２キャラクタに第２動作を行わせるステップと、
を含む方法が提供される。
【０００５】
更に、本発明によれば、ヘッドマウントディスプレイに表示される仮想空間内のキャラクタに指示を与える方法であって、
コントローラの動きを取得するステップと、
前記コントローラの動きに基づいて、第１動作指示を決定するステップと、
前記第１動作指示に応じて、ユーザの視界領域内に存在するキャラクタに第１動作を行わせ、ユーザの視界領域外に存在する第３キャラクタに第３動作を行わせるステップと、
を含む方法が提供される。
【発明の効果】
【０００６】
本発明によれば、仮想空間におけるオブジェクトに対しジェスチャによる様々な動作指示を提供し得る。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態によるＨＭＤシステムを示す図である。
【図２】制御回路部のハードウェア的な構成を示す図である。
【図３】コントローラの外観図を示す図である。
【図４】仮想空間の一例を示すＸＹＺ空間図である。
【図５】ＨＭＤシステムの機能を実現するための、制御回路部の機能を示すブロック図である。
【図６】ＨＭＤシステムの機能を実現するための処理を示すフローチャートである。
【図７】ＨＭＤシステムの機能を実現するための処理を示すフローチャートである。
【図８】ユーザによるジェスチャを示す図である。
【図９】仮想空間内に位置するキャラクタと、キャラクタの分類を示す図である。
【発明を実施するための形態】
【０００８】
最初に、本発明の実施形態の内容を列記して説明する。本発明の一実施形態によるＨＭＤを制御する方法、及びプログラムは、以下のような構成を備える。
（項目１）
ヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを検出するステップと、
前記コントローラの動きに基づいて、第１動作指示を決定するステップと、
前記第１動作指示に応じて、ユーザの視点が注がれている第１キャラクタに第１動作を行わせ、視点が注がれていない第２キャラクタに第２動作を行わせるステップと、
を含む方法。
（項目２）
ヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを取得するステップと、
前記コントローラの動きに基づいて、第１動作指示を決定するステップと、
前記第１動作指示に応じて、ユーザの視界領域内に存在するキャラクタに第１動作を行わせ、ユーザの視界領域外に存在する第３キャラクタに第３動作を行わせるステップと、
を含む方法。
（項目３）
前記ユーザの視界領域内に存在するキャラクタは、ユーザの視点が注がれている第１キャラクタと、ユーザの視点が注がれていない第２キャラクタを含み、
前記第１動作指示に応じて、前記第１キャラクタに第１動作を行わせ、前記第２キャラクタに前記第２動作を行わせるステップをさらに含む、項目２に記載の方法。
（項目４）
前記コントローラの動きに基づいて、前記第１動作指示とは異なる第２動作指示を決定するステップと、
前記第２動作指示に応じて、ユーザの視界領域内に存在する第４キャラクタに第４動作を行わせ、ユーザの視界領域外に存在する第５キャラクタに第５動作を行わせるステップ
を含む、項目３に記載の方法。
（項目５）
前記第１キャラクタ、前記第２キャラクタ、前記第３キャラクタは第１の属性を有しており、前記第４キャラクタ、前記第５キャラクタは第２の属性を有しており、第１の属性と、第２の属性は異なる、項目４に記載の方法。
（項目６）
前記第１動作指示の種類に応じて、前記第１動作、前記第２動作、前記第３動作をそれぞれ異ならせるステップをさらに含む、項目３に記載の方法。
（項目７）
前記第２動作指示の種類に応じて、前記第４動作、及び前記第５動作をそれぞれ異ならせるステップをさらに含む、項目４に記載の方法。
（項目８）
前記第２動作は、前記第１動作指示を受けてから所定期間経過後に行われる前記第１動作である、項目１又は３に記載の方法。
（項目９）
前記第３動作は、前記第１動作指示を受けてから所定期間経過後に所定の確率で行われる前記第１動作である、項目２に記載の方法。
（項目１０）
前記第５動作は、前記第２動作指示を受けてから所定期間経過後に行われる前記第４動作である、項目４に記載の方法。
（項目１１）
前記コントローラの動きは、ユーザの右手、左手にそれぞれ保持された２つの前記コントローラの動きである、項目１，２に記載の方法。
（項目１２）
項目１〜１１のいずれか１項に記載の方法をコンピュータに実行させるためのプログラム。
（項目１３）
前記プログラムはサッカーゲームに関するプログラムである、請求項１２に記載のプログラム。
［本発明の一実施形態の詳細］
本発明の一実施形態に係るヘッドマウントディスプレイシステムを制御するプログラムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【０００９】
図１は、本実施形態にかかるＨＭＤ１１０を備えるＨＭＤシステム１００を示す。ＨＭＤシステム１００は、ユーザ１５０の頭部に装着されるＨＭＤ１１０と、制御回路部１２０と、トラッキングセンサ１３２と、コントローラ１４０とを備える。以下、ＨＭＤシステム１００を構成する構成要素ＨＭＤ１１０、制御回路部１２０、トラッキングセンサ１３２、コントローラ１４０について、図１〜図３を参照しながらそれぞれ詳細に説明する。
〔ＨＭＤシステム１００の概要〕
〔ＨＭＤ１１０〕
ＨＭＤ１１０は、非透過型の表示装置であるディスプレイ１１２と、センサ部１１４と、注視センサ１１６を含む。ディスプレイ１１２に表示される右目用画像と左目用画像により、両目の視差を利用した３次元画像が仮想空間として提供される。ディスプレイ１１２がユーザの眼前に配置されることによって、ユーザは仮想空間に没入できる。仮想空間は、背景やユーザが操作可能な各種オブジェクト、メニュー画像等を含む。
【００１０】
ディスプレイ１１２は、右目用画像を提供する右目用サブディスプレイと、左目用画像を提供する左目用サブディスプレイを含んでもよい。また、右目用画像と左目用画像を提供できれば、１つの表示装置で構成されていても良い。例えば、表示画像が一方の目にしか認識できないようにするシャッターを高速に切り替えることにより、右目用画像と左目用画像を独立して提供し得る。
【００１１】
ＨＭＤ１１０はまた、ＨＭＤを装着したユーザ１５０の頭がどちらの方向を向いているかを検知するためのセンサ１１４部（例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせ）を備えてもよい。検知されたユーザ１５０の頭の向きは、ユーザ１５０が頭を動かした際にその動きに追従するようにディスプレイ１１２の表示画像を変化させるのに利用することとしてよい。これにより、ユーザ１５０が体感する仮想現実空間への没入感を更に高めることができる。また、センサ部１１４は、複数の光源を含んでもよい。光源は、例えば赤外線を発するＬＥＤである。光源からの赤外線はトラッキングセンサ１３２によりＨＭＤ１１０の検知点として検知される。
【００１２】
ＨＭＤ１１０はまた、ユーザの右目および左目の視線が向けられる方向を検出するアイトラッキング機能を有する注視センサ１１６を備えてもよい。注視センサ１１６は、右目用センサと左目用センサを備えていることが好ましく、それぞれが右目と左目の視線が向けられる方向を検出することにより、ユーザが注視する視線方向を検知する。注視センサ１１６はアイトラッキング機能を有する公知のセンサを採用することができ、例えば、右目及び左目に赤外光を照射し、角膜や虹彩からの反射光を取得することにより、眼球の回転角を求めることとしても良い。
【００１３】
注視センサ１１６はユーザの右目および左目の視線方向を検知し、両者の交点である注視点を特定する。ユーザが近くを見ている場合に特定される注視点は、ユーザが遠くを見ている場合に特定される注視点よりもユーザに近くなる。注視点が特定されると、ユーザの視線方向が特定される。視線方向はユーザが両目により実際に視線が向けられている方向である。視線方向は、例えばユーザの右目および左目の中心と、注視点が通る直線の伸びる方向として定義される。
〔制御回路部１２０〕
制御回路部１２０は、ＨＭＤ１１０に接続されるコンピュータである。図２に示すように、制御回路部１２０は、データ伝送路としてのバスで互いに接続された処理回路２０２と、メモリ２０４と、入出力インターフェース２０６と、通信インターフェース２０８を含む。
【００１４】
処理回路２０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ−ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）といった各種処理回路等を含んで構成され、制御回路部１２０およびＨＭＤシステム１００全体を制御する機能を有する。
【００１５】
メモリ２０４はＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含んで構成され、処理回路が使用するプログラムや演算パラメータなどの制御用データを一時的に記憶する。メモリ２０４は、フラッシュメモリやＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）などの不揮発性記憶装置を含んで構成されてもよい。この場合、メモリ２０４には、各種画像やオブジェクトに関するデータ、シミュレーションプログラムやユーザの認証プログラムが格納され、さらに、各種データを管理するためのテーブルを含むデータベースが構築されていてもよい。
【００１６】
入出力インターフェース２０８は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子やＤＶＩ（Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）端子やＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子等の各種有線接続端子や、無線接続のための各種処理回路を含んで構成され、ＨＭＤ１１０、トラッキングセンサ１３２、コントローラ１４０を接続する。
【００１７】
通信インターフェース２０６は、ネットワークＮＷを介して外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んで構成され、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットを介して通信するための各種通信規格・プロトコルに適合するように構成されている。
【００１８】
制御回路部１２０は、メモリに格納された所定のアプリケーションを実行することにより、ディスプレイ１１２に仮想空間を提示する。また、メモリには、当該仮想空間内に表示される各種オブジェクトを操作したり、各種メニュー画像等を表示・制御したりするためのプログラムが格納される。制御回路部１２０はＨＭＤ１１０に搭載されていなくてもよく、別のハードウェア（例えば公知のパーソナルコンピュータ、ネットワークを通じたサーバ・コンピュータ）として構成してもよい。また、制御回路部１２０は、一部の機能のみをＨＭＤ１１０に実装し、残りの機能を別のハードウェアに実装してもよい。
〔コントローラ１４０〕
コントローラ１４０は、ユーザ１５０がコンピュータゲーム内のオブジェクトの動きを制御するのに用いる装置である。図３は、コントローラ１４０の外形の一例を表す図であり、以下の説明において図３を参照する。コントローラ１４０は、ユーザ１５０が右手に持って使用する右手用コントローラ１４２と、ユーザ１５０が左手に持って使用する左手用コントローラ１４４からなる。右手用コントローラ１４２と左手用コントローラ１４４は、別体の装置として構成される。そのため、ユーザ１５０は、右手用コントローラ１４２を持った右手と左手用コントローラ１４４を持った左手を、相互に自由に動かすことができる。右手用コントローラ１４２と左手用コントローラ１４４は、それぞれ、操作ボタン３０２と、赤外線ＬＥＤ（Light Emitting Diode）３０４と、センサ３０６と、トランシーバ３０８とを備える。後述するように、赤外線ＬＥＤ３０４とセンサ３０６は、どちらか一方だけが択一的に設けられてもよい。
【００１９】
右手用コントローラ１４２と左手用コントローラ１４４は、それぞれ、グリップ（３２４及び３３４）の両側面から天面（３２２及び３３２）とは反対側の方向へ延びて半円状のリングを形成するフレーム３２６、３３６を備える。各フレーム３２６及び３３６の外表面には、複数の赤外線ＬＥＤ３０４が埋め込まれている。例えば、複数（例えば１０個程度）の赤外線ＬＥＤ３０４が、フレーム３２６、３３６の円周方向に沿って一列に並んで設けられる。フレーム３２６、３３６の円周方向に沿って、赤外線ＬＥＤ３０４を複数列（例えば２列）配列することとしてもよい。ユーザ１５０がコントローラ３００を握る際には、ユーザ１５０の親指以外の指はグリップ（３２４又は３３４）とフレーム（３２６又は３３６）との間にある。したがって、各フレーム３２６、３３６の外表面に配置された赤外線ＬＥＤ３０４は、ユーザ１５０の手や指によって覆い隠されてしまうことはない。フレーム３２６、３３６の外表面に加えて、更に、グリップ３２４及び３３４の表面のうちユーザ１５０の指で隠されない部分にも、赤外線ＬＥＤ３０４が埋め込まれてもよい。これらの赤外線ＬＥＤ３０４は、コンピュータゲームのプレイ中に赤外線を発光する。赤外線ＬＥＤ３０４から発せられた赤外光は、右手用コントローラ１４２と左手用コントローラ１４４のそれぞれの位置や姿勢（傾き、向き）、速度、加速度を検出するために利用可能である。
【００２０】
各コントローラ１４２、１４４の位置及び姿勢の検出を可能にするために、右手用コントローラ１４２と左手用コントローラ１４４は、赤外線ＬＥＤ３０４の代わりに、又は赤外線ＬＥＤ３０４に加えて更に、センサ３０６を内蔵する。センサ３０６は、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってよい。センサ３０６は、ユーザ１５０が各コントローラ１４２、１４４をそれぞれ右手と左手で持って動かした際に、各コントローラ１４２、１４４の向きや動きに応じた値（磁気、角速度、又は加速度の値）を出力する。センサ３０６からの出力値を適宜の方法で加工することで、右手用コントローラ１４２と左手用コントローラ１４４のそれぞれの位置及び姿勢、速度、加速度を検出することができる。
〔トラッキングセンサ１３２〕
トラッキングセンサ１３２は例えば赤外線センサであり、センサ部１１４の光源からの赤外線をＨＭＤ１１０の検知点として検知することで、ＨＭＤ１１０の動きを追跡する。トラッキングセンサ１３２は、また、右手用コントローラ１４２と左手用コントローラ１４４のそれぞれの光源３０４から発せられた赤外線を検知点として検知することで、各コントローラの動きを追跡する。例えば、トラッキングセンサ１３２は、赤外波長領域で画像を撮像する赤外線カメラとして構成され、撮像した画像のデータを制御回路部１２０へ送信する。そして、トラッキングセンサ１３２により検出された情報の経時的変化に基づいて、ＨＭＤ１１０やコントローラ１４０の位置や角度の時間変化を決定し、ＨＭＤ１１０やコントローラ１４０の動きに関する情報を検知することができる。一例として、各コントローラのフレーム３２６、３３６上には、複数の光源３０４が一列に配列している。赤外カメラの撮像画像においてこの一列の光源３０４に対応する明点の並びを識別することで、各コントローラの位置と姿勢を検出することができる。
〔一実施形態の説明〕
本実施形態に係るＨＭＤシステム１００は、仮想空間内に存在するコンピュータ制御のオブジェクトに対し、ボディジェスチャによる各種の動作指示を与えるシステムである。ボディジェスチャは２つのコントローラ１４２、１４４の動き（例えば、位置の変化）に基づき決定される。コンピュータ制御のオブジェクトとは例えば、仮想空間内でサッカーゲームを行うキャラクタである。
【００２１】
さらに、本実施形態に係るＨＭＤシステム１００は、仮想空間内におけるオブジェクトの位置とユーザ１５０の位置の関係、及び／又はオブジェクトの属性に応じて、オブジェクトに行わせる実際の動作を決定する。例えば、ユーザ１５０の視界領域内／外のオブジェクト、ユーザ１５０の視点が注がれている／視点が注がれていないオブジェクトに対して異なる動作を行わせることができる。２つのコントローラ１４２、１４４の位置や姿勢の変化に基づく動作指示の与え方、動作指示に応じて決定されるオブジェクトの実際の動作の仕方については、後述する。
【００２２】
図４は、本発明の一実施形態に係る仮想空間の一例を示すＸＹＺ空間図である。図４においてＸＺ平面は地表面を表し、Ｙ軸は高さ方向に延びている。仮想空間６は、中心３を中心として天球状に形成される。仮想空間６内には仮想カメラ１と、コンピュータ制御の１又は複数のオブジェクト（図示せず）が配置されている。仮想カメラ１は、ユーザの一人称視点、またはユーザのアバターに関連付けられた視点を有する。動きセンサ１３０は、ＨＭＤ１１０の位置や傾きに関する情報を検出する。動きセンサ１３０は、センサ部１１４と、トラッキングセンサ１３２を含む。動きセンサ１３０を用いてＨＭＤ１１０の位置や傾きに関する情報を検出する機能をポジション・トラッキングと称する。
【００２３】
図４を参照して、動きセンサ１３０によるポジション・トラッキングと、仮想空間６内に配置される仮想カメラ１との関係を説明する。仮想カメラ１と動きセンサ１３０の位置関係を説明するために、以下では動きセンサ１３０の位置は、トラッキングセンサ１３２を有する場合にはトラッキングセンサ１３２の位置とし、トラッキングセンサ１３２を有しない場合にはセンサ部１１４の位置とする。
【００２４】
本実施形態では、ＸＺ面において、天球の中心３が仮想カメラ１と動きセンサ１３０を結ぶ線上に常に配置されるように調整することが好ましい。例えば、仮想カメラ１が常に中心３に配置されてもよい。また、ＨＭＤ１１０を装着したユーザが移動して仮想カメラ１の位置がＸ方向に移動した場合に、中心３が仮想カメラ１と動きセンサ１３０の延長線上に位置するように、仮想空間６の領域が変更されてもよい。これらの場合には、仮想空間６における仮想カメラ１の位置は固定され、傾きのみが変化する。一方、動きセンサ１３０のＸＹＺ方向への移動に連動して仮想カメラ１の位置を移動させるようにすれば、仮想空間６における仮想カメラ１の位置は可変に設定される。
【００２５】
図５は、本発明の一実施形態に係るＨＭＤシステム１００における表示処理及びボディジェスチャによるキャラクタ（オブジェクトの一例）への動作指示等を行うための、制御回路部１２０の機能的な構成を示すブロック図である。制御回路部１２０は、表示制御部４００、オブジェクト制御部５００、記憶部６００を有する。表示制御部４００は更に、ＨＭＤ動作検知部４１０と、視線検知部４２０と、基準視線特定部４３０と、視界領域決定部４４０と、視界画像生成部４５０とを含む。オブジェクト制御部５００は、コントローラ検出部５１０と、指示決定部５２０と、オブジェクト動作制御部５３０とを含む。記憶部６００は、図２に示されたメモリ２０４に対応する。記憶部６００は、空間情報格納部６１０と、テーブル格納部６２０とを含む。表示制御部４００と、オブジェクト制御部５００は、図２に示された処理回路２０２がメモリ２０４内のコンピュータプログラムを読み出して実行することによって実現される。コンピュータプログラムはゲームプログラム（例えば、サッカーゲームプログラム）を含む。記憶部６００は、空間情報格納部６１０と、テーブル格納部６２０とを含む。記憶部６００は更に、センサ部１１４や注視センサ１１６、トラッキングセンサ１３２、コントローラ１４０からの入力に対応した出力情報をディスプレイ１１２へ提供するための演算に必要な各種データを含む。
【００２６】
まず、図４〜図６を参照して、仮想カメラ１に対応する視界領域５を決定するための各機能部（４１０〜４４０）の処理フローを説明する。仮想空間６は、ＨＭＤ１１０（注視センサ１１６、動きセンサ１３０）および制御回路部１２０の相互作用によって提供され得る。
【００２７】
まず、ＨＭＤ動作検出部４１０は、動きセンサ１３０によって検知されたＨＭＤ１１０の位置情報や傾き情報を取得し、該ＨＭＤ１１０の位置情報や傾き情報に基づいて、ユーザの視界方向を特定する（ステップＳ１）。なお、ＨＭＤ１１０の位置情報や傾き情報は、ディスプレイ１１２の近くに固定されたセンサ部１１４、トラッキングセンサ１３２の両方又は一方を用いて取得することができる。例えば、角速度センサは、ＨＭＤ１１０の動きに応じて、ＨＭＤ１１０の３軸回りの角速度を経時的に検出し、各軸回りの角度の時間変化を決定することができる。この場合には、トラッキングセンサ１３２は無くてもよい。また、トラッキングセンサ１３２は光学カメラを含んで構成されても良い。この場合には、画像情報に基づいてＨＭＤ１１０の動きに関する情報を検出することができ、センサ部１１４は無くてもよい。
【００２８】
次に、視線検知部４２０は、注視センサ１１６によって検出されたユーザの左右の目の眼球の動きに関する情報を取得し、該ユーザの眼球の動きに関する情報に基づいてユーザの視線方向を特定する（ステップＳ２）。
【００２９】
次に、基準視線特定部４３０は、ＨＭＤ１１０の傾きにより特定された視界方向、及び／又はユーザの視線方向に基づいて基準視線４を特定する（ステップＳ３）。例えば、ユーザ１５０の右目及び左目の中心と、視界方向に位置するディスプレイ１１２の中心とを結ぶ直線を基準視線４として特定する。また、例えば、注視センサ１４０により特定されたユーザの視線方向を基準視線４として特定する。
【００３０】
次に、視界領域決定部４４０は、基準視線４に基づいて、仮想空間６における仮想カメラ１の視界領域５を決定する（ステップＳ４）。仮想カメラ１の視界領域５は、ＨＭＤ１１０の傾き、及び／またはユーザの視線方向などに対応付けられる。図４に示すように、視界領域５は仮想空間６のうちユーザの視界を構成する部分である。基準視線４は仮想カメラ１の位置および傾きに基づいて定められる。視界領域５は、基準視線４と仮想空間６のＹＺ断面によって定義される第１領域と、基準視線４と仮想空間６のＸＺ断面によって定義される第２領域とを有する。第１領域は、基準視線４を中心として所定の極角を含む範囲として設定され、第２領域は、基準視線４を中心として所定の方位角を含む範囲として設定される。
【００３１】
次に、図５、図７から図９を参照して、キャラクタ（オブジェクトの一例）に動作指示を与え、キャラクタを動作させるための各機能部（５１０〜５３０）の処理フロー等を説明する。
〔ステップＳ５〕
コントローラ検出部５１０は、右手用コントローラ１４２と左手用コントローラ１４４のそれぞれの位置を検出し、検出された位置に基づいてそれぞれのコントローラの動き（位置の変化）を検出する（ステップＳ５）。まず、例えば、右手用コントローラ１４２と左手用コントローラ１４４は、コンピュータゲームの開始時などの初期状態において、それぞれの天面３２２、３３２を水平に向け、ユーザの腰辺りに位置させるホームポジションに保持される。コンピュータゲームが開始されると、ユーザ１５０は、コンピュータゲーム内のキャラクタに対しジェスチャによる動作指示を行うために、右手用コントローラ１４２と左手用コントローラ１４４を様々な位置へ移動させる。一例として、コンピュータゲームは、サッカーゲームである。
【００３２】
そして、コントローラ検出部５１０は、トラッキングセンサ１３２（赤外カメラ１３０）から取得される撮像画像内の明点（赤外線ＬＥＤ３０４）を識別することによって、ユーザ１６０に握られた右手用コントローラ１４２と左手用コントローラ１４４がそれぞれどこに位置しているかを検出する。一例として、コントローラ検出部５１０は、撮像画像から識別された２つの明点の集団のうち、左側の集団を構成している複数の明点の重心位置を右手用コントローラ１４２の位置と判別し、右側の集団を構成している複数の明点の重心位置を左手用コントローラ１４４の位置と判別するものであってよい。
【００３３】
あるいはまた、コントローラ検出部５１０は、各コントローラ１４２、１４４のセンサ３０６（例えば加速度センサ）による検知データを用いて、各コントローラ１４２、１４４の位置を検出することとしてもよい。
【００３４】
あるいはまた、コントローラ検出部５１０は、各コントローラ１４２、１４４のセンサ３０６（例えば角速度センサ）により右手用コントローラ１４２と左手用コントローラ１４４のそれぞれの３軸方向の角度の変化を検出し、検出された角度の変化に基づいてそれぞれのコントローラの動き（位置の変化）を検出してもよい。
〔ステップＳ６〕
次に、指示決定部５２０は、コントローラの動きに基づいて、動作指示を決定する（ステップＳ６）。まず、指示決定部５２０は、コントローラ検出部５１０により検出された各コントローラ１４２と１４４の位置の変化に基づいて、コントローラの位置の軌跡を求める。そして、指示決定部５２０は、求められたコントローラ１４２と１４４の位置の軌跡に基づいて、コントローラの動きを判定する。そして、指示決定部５２０は、テーブル格納部６２０に格納されたジェスチャテーブルを参照して、コントローラ検出部５１０によって検出された右手用コントローラ１４２と左手用コントローラ１４４のそれぞれの動きに対応するジェスチャが、ジェスチャテーブル内に存在するか否かを判定する。ジェスチャが存在する場合に、該ジェスチャに対応する動作指示を決定する。ジェスチャテーブルの一例を表１に示す。ジェスチャテーブルは、ボディジェスチャと、該ボディジェスチャに対応する動作指示を示す。ジェスチャテーブルに示されないコントローラの動きは、ジェスチャと判定されない。
【００３５】
例えば、指示決定部５２０は、右手用コントローラ１４２と左手用コントローラ１４４の動きを検出し、当該動きが右手用コントローラ１４２と左手用コントローラ１４４を共に前方から後方へ移動しているジェスチャ（ジェスチャ１）と判定すると、当該ジェスチャに対応する第１動作指示を決定する。第１動作指示とは、ユーザ１５０のジェスチャにより、味方キャラクタに対して与える指示をいう。図８は、ユーザ１５０がホームポジションａから、コントローラを保持している手を動かして各種ボディジェスチャ１〜３を行う様子を示す。
【００３６】
指示決定部５２０は、更に、ジェスチャとキャラクタの属性（例えば、敵／味方）に基づいて動作指示を異ならせてもよい。例えば、指示決定部５２０は、ジェスチャに基づいて敵キャラクタに与える動作指示（第２動作指示）を決定してもよい。第２動作指示は、第１動作指示とは異なる。例えば、ジェスチャ３に対応する第１動作指示が味方キャラクタに対し「ユーザ１５０へパスをせよ」である場合に、第２動作指示は敵キャラクタに対し、「ユーザ１５０をマークせよ」という指示となる。ユーザ１５０のジェスチャに対応する第１動作指示、第２動作指示は、ジェスチャテーブルにあらかじめ規定されている。
【００３７】
表１に示すように、複数のボディジェスチャに、同じ動作指示を関連付けてもよい。例えば、ジェスチャ３及びジェスチャ４は１つの第１動作指示に関連付けられている。
さらに、異なるジェスチャに対し、第２動作指示のみを異ならせてもよい。例えば、ジェスチャ３及びジェスチャ４は、同じ内容の第１動作指示に関連付けられているが、第２動作指示の内容は異なる。
【００３８】
また、１つのボディジェスチャに対し、複数の動作指示を関連付けてもよい。例えばユーザが守備側であるか、攻撃側であるかに応じて１つのボディジェスチャに関連付ける動作指示を変更する。ユーザが攻撃側の場合、ジェスチャ１に対応する第１動作指示、第２動作指示をそれぞれ、ユーザが守備側の場合の動作指示とは異ならせることができる。
【００３９】
【表１】
0005980404.tif 000002
【００４０】
〔ステップＳ７〕
ここで、図９を参照しながら、仮想空間内のキャラクタの位置と、キャラクタの属性に基づいてキャラクタを分類する。キャラクタ１〜３はユーザキャラクタの味方キャラクタであり、キャラクタ４、５はユーザキャラクタの敵キャラクタである。キャラクタ１、２は視界領域５内に位置し、そのうちキャラクタ１はユーザ１５０の視点が注がれている（ユーザ１５０にフォーカスされている）キャラクタである。ユーザ１５０がキャラクタ１の視線を視認できる場合には、キャラクタ１はユーザ１５０と視線を合わせているキャラクタでもよい。キャラクタ３は視界領域５外に位置するキャラクタである。キャラクタ４はユーザ１５０の視界領域５内に位置し、キャラクタ５は視界領域５外に位置するキャラクタである。
【００４１】
オブジェクト動作制御部５３０は、キャラクタの位置とキャラクタの属性に基づいて、キャラクタに行わせる動作を決定する。一例として、オブジェクト動作制御部５３０は、ユーザの視界領域５内に存在し、かつユーザからの視点が注がれている味方キャラクタ１に、第１動作を行わせ、ユーザからの視点が注がれていないが視界領域内に存在する味方キャラクタ２に第２動作を行わせ、ユーザの視界領域外に存在する味方キャラクタ３に第３動作を行わせる。第１動作は、第１動作指示を受けて（又はジェスチャを判定して）即時に第１動作指示に対応する動作を開始する動作であり、第２動作は、例えば、第１動作指示を受けてから第１の所定期間経過後（例えば、２秒後）に行われる第１動作である。第３動作は、例えば、第１動作指示を受けてから第２の所定期間経過後（例えば、３秒後）に第１の所定の確率（例えば、５０％の確率）で行われる第１動作である。ユーザからの視点が注がれている味方キャラクタは動作指示に基づいて迅速に反応して動作をする一方、視界領域内に存在するがユーザからの視点が注がれていない味方キャラクタ２、視界領域外に存在する味方キャラクタ３は動作指示に即座には反応しない。また、視界領域５外の複数の味方キャラクタ３は、動作指示に応じて動作する場合と、動作しない場合がある。なお、オブジェクト動作制御部５３０は、第１動作指示に応じて全ての味方キャラクタ１〜３に同じ動作をさせてもよい。
【００４２】
また、他の一例として、オブジェクト動作制御部５３０はユーザの視界領域５内に存在する敵キャラクタ４に第４動作を行わせ、ユーザの視界領域５外に存在する敵キャラクタ５に第５動作を行わせる。第４動作は、例えば第２動作指示を受けて（又はジェスチャを判定して）即時に第２動作指示に対応する動作を開始する動作であり、第５動作は、例えば、第２動作指示を受けてから第３の所定期間経過後（例えば、２秒後）に行われる第４動作である。視界領域５内に存在する敵キャラクタ４は第２動作指示に基づいて迅速に反応して動作をする一方、視界領域５外に存在する敵キャラクタ５は第２動作指示に即座には反応しない。また、視界領域５内外の敵キャラクタ４、５は、動作指示に応じて第２の所定の確率（例えば、４０％の確率）で第４動作、第５動作を行ってもよい。さらに、オブジェクト動作制御部５３０は、第２動作指示に応じて全ての敵キャラクタ４、５に同じ動作をさせてもよい。このように、本発明においては１つのジェスチャに基づいて、複数のキャラクタにそれぞれ異なる動作を行わせることができる。また、本発明においては、キャラクタの属性やキャラクタの位置に応じて、プログラムにより各キャラクタに行わせる動作が自動的に設定される。従って、簡単なジェスチャ操作で複雑なゲームを展開することができる。さらに、オブジェクトへ指示を与えるために用いられるジェスチャは、現実のゲーム（例えば、サッカー）で用いられるジェスチャに対応付けることができる。従って、現実のゲームに慣れ親しんでいるユーザであれば、オブジェクトへ指示を与えるための特別なジェスチャを学ぶ必要が無い。本発明によれば、現実のゲームで用いられる直感的なジェスチャ操作に基づいてキャラクタに指示を与えることができるため、より趣向性の高いゲームを展開することができる。
【００４３】
【表２】
0005980404.tif 000003
【００４４】
【表３】
0005980404.tif 000004
【００４５】
〔ステップＳ８〕
視界画像生成部４５０は、オブジェクト動作制御部５３０により動作制御されたキャラクを仮想空間６内に配置し、更に空間情報格納部６１０を参照して、視界領域５に対応する視界画像８を生成する（ステップＳ８）。これにより、視界領域５内に存在するキャラクタを配置した視界画像８が生成される。なお、空間情報格納部６１０は仮想空間６を構成する３次元仮想空間画像を格納する。
〔ステップＳ９〕
次に、ＨＭＤ１１０は、視界画像８に関する情報を制御回路部１２０から受信して、ディスプレイ１１２に視界画像８を出力し、表示させる（ステップＳ９）。視界画像は左目用と右目用の２つの２次元画像を含み、これらがディスプレイ１１２に重畳されることにより、３次元画像としての仮想空間６がユーザに提供される。
【００４６】
以上、本発明の実施の形態について説明したが、本発明は上記実施形態に限定されるものではない。前述の請求項に記載されるこの発明の精神及び範囲から逸脱することなく、様々な実施形態の変更がなされ得ることを当業者は理解するであろう。
【符号の説明】
【００４７】
１００…ヘッドマウントディスプレイ（ＨＭＤ）システム、１１０…ＨＭＤ、１１２…ディスプレイ、１１４…センサ部、１１６…注視センサ、１２０…制御回路部、１３０…動きセンサ、１３２…トラッキングセンサ、１４０…コントローラ、１４２…右手コントローラ、１４４…左手コントローラ、４００…表示制御部、５００…オブジェクト制御部、６００…記憶部、１…仮想カメラ、４…基準視線、５…視界領域、６…仮想空間
【要約】
【課題】仮想空間におけるオブジェクトに対しボディジェスチャによる様々な動作指示を行う
【解決手段】ユーザの両手に保持されるコントローラの動きを検出するステップと、コントローラの動きに基づいて、第１動作指示を決定するステップと、第１動作指示に応じて、ユーザの視点が注がれている第１キャラクタに第１動作を行わせ、視点が注がれていない第２キャラクタに第２動作を行わせるステップとを備える。これにより仮想空間内のキャラクタにボディジェスチャにより指示を与える。
【選択図】図７【図１】
0005980404.tif 000005
【図２】
0005980404.tif 000006
【図３】
0005980404.tif 000007
【図５】
0005980404.tif 000008
【図６】
0005980404.tif 000009
【図７】
0005980404.tif 000010
【図８】
0005980404.tif 000011
【図４】
0005980404.tif 000012
【図９】
0005980404.tif 000013