特許第5980404号(P5980404)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社コロプラの特許一覧

特許5980404仮想空間内オブジェクトへの動作指示方法、及びプログラム
<>
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000005
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000006
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000007
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000008
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000009
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000010
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000011
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000012
  • 特許5980404-仮想空間内オブジェクトへの動作指示方法、及びプログラム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】5980404
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】仮想空間内オブジェクトへの動作指示方法、及びプログラム
(51)【国際特許分類】
   G06F 3/01 20060101AFI20160818BHJP
【FI】
   G06F3/01 570
   G06F3/01 514
【請求項の数】13
【全頁数】16
(21)【出願番号】特願2015-230526(P2015-230526)
(22)【出願日】2015年11月26日
【審査請求日】2016年3月8日
【早期審査対象出願】
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100075270
【弁理士】
【氏名又は名称】小林 泰
(74)【代理人】
【識別番号】100101373
【弁理士】
【氏名又は名称】竹内 茂雄
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100162846
【弁理士】
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】近藤 一平
【審査官】 浜岸 広明
(56)【参考文献】
【文献】 特開2015−141686(JP,A)
【文献】 FIFA10 ワールドクラスサッカー,ファミ通Xbox 360,株式会社エンターブレイン,2009年12月 1日,第8巻 第12号,p.50−54
【文献】 ルームスケールの衝撃! SteamVR初号機「HTC Vive」試遊レポート,GAME Watch,日本,株式会社インプレス,2015年 7月24日,URL,http://game.watch.impress.co.jp/docs/news/20150724_713206.html
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24
13/00−13/98
G06F 3/01
3/033−3/039
3/048−3/0489
G06T 1/00
11/60−13/80
17/05
19/00−19/20
(57)【特許請求の範囲】
【請求項1】
ユーザに装着されたヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを検出するステップと、
前記コントローラの動きに基づいて、前記ユーザのジェスチャによる第1動作指示を決定するステップと、
前記第1動作指示に応じて、前記ユーザの視点が注がれている第1キャラクタに第1動作を行わせ、視点が注がれていない第2キャラクタに第2動作を行わせるステップと、
を含む方法。
【請求項2】
ユーザに装着されたヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを取得するステップと、
前記コントローラの動きに基づいて、前記ユーザのジェスチャによる第1動作指示を決定するステップと、
前記第1動作指示に応じて、前記ユーザの視界領域内に存在するキャラクタに第1動作を行わせ、ユーザの視界領域外に存在する第3キャラクタに第3動作を行わせるステップと、
を含む方法。
【請求項3】
前記ユーザの視界領域内に存在するキャラクタは、ユーザの視点が注がれている第1キャラクタと、ユーザの視点が注がれていない第2キャラクタを含み、
前記第1動作指示に応じて、前記第1キャラクタに第1動作を行わせ、前記第2キャラクタに第2動作を行わせるステップをさらに含む、請求項2に記載の方法。
【請求項4】
前記コントローラの動きに基づいて、前記第1動作指示とは異なる第2動作指示を決定するステップと、
前記第2動作指示に応じて、ユーザの視界領域内に存在する第4キャラクタに第4動作を行わせ、ユーザの視界領域外に存在する第5キャラクタに第5動作を行わせるステップ
を含む、請求項3に記載の方法。
【請求項5】
前記第1キャラクタ、前記第2キャラクタ、前記第3キャラクタは第1の属性を有しており、前記第4キャラクタ、前記第5キャラクタは第2の属性を有しており、第1の属性と、第2の属性は異なる、請求項4に記載の方法。
【請求項6】
前記第1動作指示の種類に応じて、前記第1動作、前記第2動作、前記第3動作をそれぞれ異ならせるステップをさらに含む、請求項3に記載の方法。
【請求項7】
前記第2動作指示の種類に応じて、前記第4動作、及び前記第5動作をそれぞれ異ならせるステップをさらに含む、請求項4に記載の方法。
【請求項8】
前記第2動作は、前記第1動作指示を受けてから所定期間経過後に行われる前記第1動作である、請求項1又は3に記載の方法。
【請求項9】
前記第3動作は、前記第1動作指示を受けてから所定期間経過後に所定の確率で行われる前記第1動作である、請求項2に記載の方法。
【請求項10】
前記第5動作は、前記第2動作指示を受けてから所定期間経過後に行われる前記第4動作である、請求項4に記載の方法。
【請求項11】
前記コントローラの動きは、ユーザの右手、左手にそれぞれ保持された2つの前記コントローラの動きである、請求項1、2に記載の方法。
【請求項12】
請求項1〜11のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
【請求項13】
前記プログラムはサッカーゲームに関するプログラムである、請求項12に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想空間内のオブジェクトへの動作指示方法、及びプログラムに関し、より詳細には、ユーザがヘッドマウントディスプレイ(Head−Mounted Display:HMD)を用いて没入する仮想空間に表示されるオブジェクトを、ジェスチャにより制御する方法、及びプログラムに関する。
【先行技術文献】
【特許文献】
【0002】
【特許文献1】特開2012−221498号公報
【発明の概要】
【発明が解決しようとする課題】
【0003】
特許文献1に開示されたシステムにおいては、ディスプレイに表示されているオブジェクトに対しジェスチャにより動作指示を与えるものであり、仮想空間内のオブジェクトに対し動作指示を与えることはできない。
【課題を解決するための手段】
【0004】
上述した課題を解決するために、本発明によれば、
ヘッドマウントディスプレイに表示される仮想空間内のキャラクタに指示を与える方法であって、
コントローラの動きを検出するステップと、
前記コントローラの動きに基づいて、第1動作指示を決定するステップと、
前記第1動作指示に応じて、ユーザの視点が注がれている第1キャラクタに第1動作を行わせ、視点が注がれていない第2キャラクタに第2動作を行わせるステップと、
を含む方法が提供される。
【0005】
更に、本発明によれば、ヘッドマウントディスプレイに表示される仮想空間内のキャラクタに指示を与える方法であって、
コントローラの動きを取得するステップと、
前記コントローラの動きに基づいて、第1動作指示を決定するステップと、
前記第1動作指示に応じて、ユーザの視界領域内に存在するキャラクタに第1動作を行わせ、ユーザの視界領域外に存在する第3キャラクタに第3動作を行わせるステップと、
を含む方法が提供される。
【発明の効果】
【0006】
本発明によれば、仮想空間におけるオブジェクトに対しジェスチャによる様々な動作指示を提供し得る。
【図面の簡単な説明】
【0007】
図1】本発明の実施形態によるHMDシステムを示す図である。
図2】制御回路部のハードウェア的な構成を示す図である。
図3】コントローラの外観図を示す図である。
図4】仮想空間の一例を示すXYZ空間図である。
図5】HMDシステムの機能を実現するための、制御回路部の機能を示すブロック図である。
図6】HMDシステムの機能を実現するための処理を示すフローチャートである。
図7】HMDシステムの機能を実現するための処理を示すフローチャートである。
図8】ユーザによるジェスチャを示す図である。
図9】仮想空間内に位置するキャラクタと、キャラクタの分類を示す図である。
【発明を実施するための形態】
【0008】
最初に、本発明の実施形態の内容を列記して説明する。本発明の一実施形態によるHMDを制御する方法、及びプログラムは、以下のような構成を備える。
(項目1)
ヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを検出するステップと、
前記コントローラの動きに基づいて、第1動作指示を決定するステップと、
前記第1動作指示に応じて、ユーザの視点が注がれている第1キャラクタに第1動作を行わせ、視点が注がれていない第2キャラクタに第2動作を行わせるステップと、
を含む方法。
(項目2)
ヘッドマウントディスプレイに表示される仮想空間内のキャラクタを動作させる方法であって、
コントローラの動きを取得するステップと、
前記コントローラの動きに基づいて、第1動作指示を決定するステップと、
前記第1動作指示に応じて、ユーザの視界領域内に存在するキャラクタに第1動作を行わせ、ユーザの視界領域外に存在する第3キャラクタに第3動作を行わせるステップと、
を含む方法。
(項目3)
前記ユーザの視界領域内に存在するキャラクタは、ユーザの視点が注がれている第1キャラクタと、ユーザの視点が注がれていない第2キャラクタを含み、
前記第1動作指示に応じて、前記第1キャラクタに第1動作を行わせ、前記第2キャラクタに前記第2動作を行わせるステップをさらに含む、項目2に記載の方法。
(項目4)
前記コントローラの動きに基づいて、前記第1動作指示とは異なる第2動作指示を決定するステップと、
前記第2動作指示に応じて、ユーザの視界領域内に存在する第4キャラクタに第4動作を行わせ、ユーザの視界領域外に存在する第5キャラクタに第5動作を行わせるステップ
を含む、項目3に記載の方法。
(項目5)
前記第1キャラクタ、前記第2キャラクタ、前記第3キャラクタは第1の属性を有しており、前記第4キャラクタ、前記第5キャラクタは第2の属性を有しており、第1の属性と、第2の属性は異なる、項目4に記載の方法。
(項目6)
前記第1動作指示の種類に応じて、前記第1動作、前記第2動作、前記第3動作をそれぞれ異ならせるステップをさらに含む、項目3に記載の方法。
(項目7)
前記第2動作指示の種類に応じて、前記第4動作、及び前記第5動作をそれぞれ異ならせるステップをさらに含む、項目4に記載の方法。
(項目8)
前記第2動作は、前記第1動作指示を受けてから所定期間経過後に行われる前記第1動作である、項目1又は3に記載の方法。
(項目9)
前記第3動作は、前記第1動作指示を受けてから所定期間経過後に所定の確率で行われる前記第1動作である、項目2に記載の方法。
(項目10)
前記第5動作は、前記第2動作指示を受けてから所定期間経過後に行われる前記第4動作である、項目4に記載の方法。
(項目11)
前記コントローラの動きは、ユーザの右手、左手にそれぞれ保持された2つの前記コントローラの動きである、項目1,2に記載の方法。
(項目12)
項目1〜11のいずれか1項に記載の方法をコンピュータに実行させるためのプログラム。
(項目13)
前記プログラムはサッカーゲームに関するプログラムである、請求項12に記載のプログラム。
[本発明の一実施形態の詳細]
本発明の一実施形態に係るヘッドマウントディスプレイシステムを制御するプログラムの具体例を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。以下の説明では、図面の説明において同一の要素には同一の符号を付し、重複する説明を省略する。
【0009】
図1は、本実施形態にかかるHMD110を備えるHMDシステム100を示す。HMDシステム100は、ユーザ150の頭部に装着されるHMD110と、制御回路部120と、トラッキングセンサ132と、コントローラ140とを備える。以下、HMDシステム100を構成する構成要素HMD110、制御回路部120、トラッキングセンサ132、コントローラ140について、図1図3を参照しながらそれぞれ詳細に説明する。
〔HMDシステム100の概要〕
〔HMD110〕
HMD110は、非透過型の表示装置であるディスプレイ112と、センサ部114と、注視センサ116を含む。ディスプレイ112に表示される右目用画像と左目用画像により、両目の視差を利用した3次元画像が仮想空間として提供される。ディスプレイ112がユーザの眼前に配置されることによって、ユーザは仮想空間に没入できる。仮想空間は、背景やユーザが操作可能な各種オブジェクト、メニュー画像等を含む。
【0010】
ディスプレイ112は、右目用画像を提供する右目用サブディスプレイと、左目用画像を提供する左目用サブディスプレイを含んでもよい。また、右目用画像と左目用画像を提供できれば、1つの表示装置で構成されていても良い。例えば、表示画像が一方の目にしか認識できないようにするシャッターを高速に切り替えることにより、右目用画像と左目用画像を独立して提供し得る。
【0011】
HMD110はまた、HMDを装着したユーザ150の頭がどちらの方向を向いているかを検知するためのセンサ114部(例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせ)を備えてもよい。検知されたユーザ150の頭の向きは、ユーザ150が頭を動かした際にその動きに追従するようにディスプレイ112の表示画像を変化させるのに利用することとしてよい。これにより、ユーザ150が体感する仮想現実空間への没入感を更に高めることができる。また、センサ部114は、複数の光源を含んでもよい。光源は、例えば赤外線を発するLEDである。光源からの赤外線はトラッキングセンサ132によりHMD110の検知点として検知される。
【0012】
HMD110はまた、ユーザの右目および左目の視線が向けられる方向を検出するアイトラッキング機能を有する注視センサ116を備えてもよい。注視センサ116は、右目用センサと左目用センサを備えていることが好ましく、それぞれが右目と左目の視線が向けられる方向を検出することにより、ユーザが注視する視線方向を検知する。注視センサ116はアイトラッキング機能を有する公知のセンサを採用することができ、例えば、右目及び左目に赤外光を照射し、角膜や虹彩からの反射光を取得することにより、眼球の回転角を求めることとしても良い。
【0013】
注視センサ116はユーザの右目および左目の視線方向を検知し、両者の交点である注視点を特定する。ユーザが近くを見ている場合に特定される注視点は、ユーザが遠くを見ている場合に特定される注視点よりもユーザに近くなる。注視点が特定されると、ユーザの視線方向が特定される。視線方向はユーザが両目により実際に視線が向けられている方向である。視線方向は、例えばユーザの右目および左目の中心と、注視点が通る直線の伸びる方向として定義される。
〔制御回路部120〕
制御回路部120は、HMD110に接続されるコンピュータである。図2に示すように、制御回路部120は、データ伝送路としてのバスで互いに接続された処理回路202と、メモリ204と、入出力インターフェース206と、通信インターフェース208を含む。
【0014】
処理回路202は、CPU(Central Processing Unit)やMPU(Micro−processing unit)、GPU(Graphics Processing Unit)といった各種処理回路等を含んで構成され、制御回路部120およびHMDシステム100全体を制御する機能を有する。
【0015】
メモリ204はROM(Read Only Memory)やRAM(Random Access Memory)等を含んで構成され、処理回路が使用するプログラムや演算パラメータなどの制御用データを一時的に記憶する。メモリ204は、フラッシュメモリやHDD(Hard Disc Drive)などの不揮発性記憶装置を含んで構成されてもよい。この場合、メモリ204には、各種画像やオブジェクトに関するデータ、シミュレーションプログラムやユーザの認証プログラムが格納され、さらに、各種データを管理するためのテーブルを含むデータベースが構築されていてもよい。
【0016】
入出力インターフェース208は、USB(Universal Serial Bus)端子やDVI(Digital Visual Interface)端子やHDMI(登録商標)(High−Definition Multimedia Interface)端子等の各種有線接続端子や、無線接続のための各種処理回路を含んで構成され、HMD110、トラッキングセンサ132、コントローラ140を接続する。
【0017】
通信インターフェース206は、ネットワークNWを介して外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んで構成され、LAN(Local Area Network)やインターネットを介して通信するための各種通信規格・プロトコルに適合するように構成されている。
【0018】
制御回路部120は、メモリに格納された所定のアプリケーションを実行することにより、ディスプレイ112に仮想空間を提示する。また、メモリには、当該仮想空間内に表示される各種オブジェクトを操作したり、各種メニュー画像等を表示・制御したりするためのプログラムが格納される。制御回路部120はHMD110に搭載されていなくてもよく、別のハードウェア(例えば公知のパーソナルコンピュータ、ネットワークを通じたサーバ・コンピュータ)として構成してもよい。また、制御回路部120は、一部の機能のみをHMD110に実装し、残りの機能を別のハードウェアに実装してもよい。
〔コントローラ140〕
コントローラ140は、ユーザ150がコンピュータゲーム内のオブジェクトの動きを制御するのに用いる装置である。図3は、コントローラ140の外形の一例を表す図であり、以下の説明において図3を参照する。コントローラ140は、ユーザ150が右手に持って使用する右手用コントローラ142と、ユーザ150が左手に持って使用する左手用コントローラ144からなる。右手用コントローラ142と左手用コントローラ144は、別体の装置として構成される。そのため、ユーザ150は、右手用コントローラ142を持った右手と左手用コントローラ144を持った左手を、相互に自由に動かすことができる。右手用コントローラ142と左手用コントローラ144は、それぞれ、操作ボタン302と、赤外線LED(Light Emitting Diode)304と、センサ306と、トランシーバ308とを備える。後述するように、赤外線LED304とセンサ306は、どちらか一方だけが択一的に設けられてもよい。
【0019】
右手用コントローラ142と左手用コントローラ144は、それぞれ、グリップ(324及び334)の両側面から天面(322及び332)とは反対側の方向へ延びて半円状のリングを形成するフレーム326、336を備える。各フレーム326及び336の外表面には、複数の赤外線LED304が埋め込まれている。例えば、複数(例えば10個程度)の赤外線LED304が、フレーム326、336の円周方向に沿って一列に並んで設けられる。フレーム326、336の円周方向に沿って、赤外線LED304を複数列(例えば2列)配列することとしてもよい。ユーザ150がコントローラ300を握る際には、ユーザ150の親指以外の指はグリップ(324又は334)とフレーム(326又は336)との間にある。したがって、各フレーム326、336の外表面に配置された赤外線LED304は、ユーザ150の手や指によって覆い隠されてしまうことはない。フレーム326、336の外表面に加えて、更に、グリップ324及び334の表面のうちユーザ150の指で隠されない部分にも、赤外線LED304が埋め込まれてもよい。これらの赤外線LED304は、コンピュータゲームのプレイ中に赤外線を発光する。赤外線LED304から発せられた赤外光は、右手用コントローラ142と左手用コントローラ144のそれぞれの位置や姿勢(傾き、向き)、速度、加速度を検出するために利用可能である。
【0020】
各コントローラ142、144の位置及び姿勢の検出を可能にするために、右手用コントローラ142と左手用コントローラ144は、赤外線LED304の代わりに、又は赤外線LED304に加えて更に、センサ306を内蔵する。センサ306は、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってよい。センサ306は、ユーザ150が各コントローラ142、144をそれぞれ右手と左手で持って動かした際に、各コントローラ142、144の向きや動きに応じた値(磁気、角速度、又は加速度の値)を出力する。センサ306からの出力値を適宜の方法で加工することで、右手用コントローラ142と左手用コントローラ144のそれぞれの位置及び姿勢、速度、加速度を検出することができる。
〔トラッキングセンサ132〕
トラッキングセンサ132は例えば赤外線センサであり、センサ部114の光源からの赤外線をHMD110の検知点として検知することで、HMD110の動きを追跡する。トラッキングセンサ132は、また、右手用コントローラ142と左手用コントローラ144のそれぞれの光源304から発せられた赤外線を検知点として検知することで、各コントローラの動きを追跡する。例えば、トラッキングセンサ132は、赤外波長領域で画像を撮像する赤外線カメラとして構成され、撮像した画像のデータを制御回路部120へ送信する。そして、トラッキングセンサ132により検出された情報の経時的変化に基づいて、HMD110やコントローラ140の位置や角度の時間変化を決定し、HMD110やコントローラ140の動きに関する情報を検知することができる。一例として、各コントローラのフレーム326、336上には、複数の光源304が一列に配列している。赤外カメラの撮像画像においてこの一列の光源304に対応する明点の並びを識別することで、各コントローラの位置と姿勢を検出することができる。
〔一実施形態の説明〕
本実施形態に係るHMDシステム100は、仮想空間内に存在するコンピュータ制御のオブジェクトに対し、ボディジェスチャによる各種の動作指示を与えるシステムである。ボディジェスチャは2つのコントローラ142、144の動き(例えば、位置の変化)に基づき決定される。コンピュータ制御のオブジェクトとは例えば、仮想空間内でサッカーゲームを行うキャラクタである。
【0021】
さらに、本実施形態に係るHMDシステム100は、仮想空間内におけるオブジェクトの位置とユーザ150の位置の関係、及び/又はオブジェクトの属性に応じて、オブジェクトに行わせる実際の動作を決定する。例えば、ユーザ150の視界領域内/外のオブジェクト、ユーザ150の視点が注がれている/視点が注がれていないオブジェクトに対して異なる動作を行わせることができる。2つのコントローラ142、144の位置や姿勢の変化に基づく動作指示の与え方、動作指示に応じて決定されるオブジェクトの実際の動作の仕方については、後述する。
【0022】
図4は、本発明の一実施形態に係る仮想空間の一例を示すXYZ空間図である。図4においてXZ平面は地表面を表し、Y軸は高さ方向に延びている。仮想空間6は、中心3を中心として天球状に形成される。仮想空間6内には仮想カメラ1と、コンピュータ制御の1又は複数のオブジェクト(図示せず)が配置されている。仮想カメラ1は、ユーザの一人称視点、またはユーザのアバターに関連付けられた視点を有する。動きセンサ130は、HMD110の位置や傾きに関する情報を検出する。動きセンサ130は、センサ部114と、トラッキングセンサ132を含む。動きセンサ130を用いてHMD110の位置や傾きに関する情報を検出する機能をポジション・トラッキングと称する。
【0023】
図4を参照して、動きセンサ130によるポジション・トラッキングと、仮想空間6内に配置される仮想カメラ1との関係を説明する。仮想カメラ1と動きセンサ130の位置関係を説明するために、以下では動きセンサ130の位置は、トラッキングセンサ132を有する場合にはトラッキングセンサ132の位置とし、トラッキングセンサ132を有しない場合にはセンサ部114の位置とする。
【0024】
本実施形態では、XZ面において、天球の中心3が仮想カメラ1と動きセンサ130を結ぶ線上に常に配置されるように調整することが好ましい。例えば、仮想カメラ1が常に中心3に配置されてもよい。また、HMD110を装着したユーザが移動して仮想カメラ1の位置がX方向に移動した場合に、中心3が仮想カメラ1と動きセンサ130の延長線上に位置するように、仮想空間6の領域が変更されてもよい。これらの場合には、仮想空間6における仮想カメラ1の位置は固定され、傾きのみが変化する。一方、動きセンサ130のXYZ方向への移動に連動して仮想カメラ1の位置を移動させるようにすれば、仮想空間6における仮想カメラ1の位置は可変に設定される。
【0025】
図5は、本発明の一実施形態に係るHMDシステム100における表示処理及びボディジェスチャによるキャラクタ(オブジェクトの一例)への動作指示等を行うための、制御回路部120の機能的な構成を示すブロック図である。制御回路部120は、表示制御部400、オブジェクト制御部500、記憶部600を有する。表示制御部400は更に、HMD動作検知部410と、視線検知部420と、基準視線特定部430と、視界領域決定部440と、視界画像生成部450とを含む。オブジェクト制御部500は、コントローラ検出部510と、指示決定部520と、オブジェクト動作制御部530とを含む。記憶部600は、図2に示されたメモリ204に対応する。記憶部600は、空間情報格納部610と、テーブル格納部620とを含む。表示制御部400と、オブジェクト制御部500は、図2に示された処理回路202がメモリ204内のコンピュータプログラムを読み出して実行することによって実現される。コンピュータプログラムはゲームプログラム(例えば、サッカーゲームプログラム)を含む。記憶部600は、空間情報格納部610と、テーブル格納部620とを含む。記憶部600は更に、センサ部114や注視センサ116、トラッキングセンサ132、コントローラ140からの入力に対応した出力情報をディスプレイ112へ提供するための演算に必要な各種データを含む。
【0026】
まず、図4図6を参照して、仮想カメラ1に対応する視界領域5を決定するための各機能部(410〜440)の処理フローを説明する。仮想空間6は、HMD110(注視センサ116、動きセンサ130)および制御回路部120の相互作用によって提供され得る。
【0027】
まず、HMD動作検出部410は、動きセンサ130によって検知されたHMD110の位置情報や傾き情報を取得し、該HMD110の位置情報や傾き情報に基づいて、ユーザの視界方向を特定する(ステップS1)。なお、HMD110の位置情報や傾き情報は、ディスプレイ112の近くに固定されたセンサ部114、トラッキングセンサ132の両方又は一方を用いて取得することができる。例えば、角速度センサは、HMD110の動きに応じて、HMD110の3軸回りの角速度を経時的に検出し、各軸回りの角度の時間変化を決定することができる。この場合には、トラッキングセンサ132は無くてもよい。また、トラッキングセンサ132は光学カメラを含んで構成されても良い。この場合には、画像情報に基づいてHMD110の動きに関する情報を検出することができ、センサ部114は無くてもよい。
【0028】
次に、視線検知部420は、注視センサ116によって検出されたユーザの左右の目の眼球の動きに関する情報を取得し、該ユーザの眼球の動きに関する情報に基づいてユーザの視線方向を特定する(ステップS2)。
【0029】
次に、基準視線特定部430は、HMD110の傾きにより特定された視界方向、及び/又はユーザの視線方向に基づいて基準視線4を特定する(ステップS3)。例えば、ユーザ150の右目及び左目の中心と、視界方向に位置するディスプレイ112の中心とを結ぶ直線を基準視線4として特定する。また、例えば、注視センサ140により特定されたユーザの視線方向を基準視線4として特定する。
【0030】
次に、視界領域決定部440は、基準視線4に基づいて、仮想空間6における仮想カメラ1の視界領域5を決定する(ステップS4)。仮想カメラ1の視界領域5は、HMD110の傾き、及び/またはユーザの視線方向などに対応付けられる。図4に示すように、視界領域5は仮想空間6のうちユーザの視界を構成する部分である。基準視線4は仮想カメラ1の位置および傾きに基づいて定められる。視界領域5は、基準視線4と仮想空間6のYZ断面によって定義される第1領域と、基準視線4と仮想空間6のXZ断面によって定義される第2領域とを有する。第1領域は、基準視線4を中心として所定の極角を含む範囲として設定され、第2領域は、基準視線4を中心として所定の方位角を含む範囲として設定される。
【0031】
次に、図5図7から図9を参照して、キャラクタ(オブジェクトの一例)に動作指示を与え、キャラクタを動作させるための各機能部(510〜530)の処理フロー等を説明する。
〔ステップS5〕
コントローラ検出部510は、右手用コントローラ142と左手用コントローラ144のそれぞれの位置を検出し、検出された位置に基づいてそれぞれのコントローラの動き(位置の変化)を検出する(ステップS5)。まず、例えば、右手用コントローラ142と左手用コントローラ144は、コンピュータゲームの開始時などの初期状態において、それぞれの天面322、332を水平に向け、ユーザの腰辺りに位置させるホームポジションに保持される。コンピュータゲームが開始されると、ユーザ150は、コンピュータゲーム内のキャラクタに対しジェスチャによる動作指示を行うために、右手用コントローラ142と左手用コントローラ144を様々な位置へ移動させる。一例として、コンピュータゲームは、サッカーゲームである。
【0032】
そして、コントローラ検出部510は、トラッキングセンサ132(赤外カメラ130)から取得される撮像画像内の明点(赤外線LED304)を識別することによって、ユーザ160に握られた右手用コントローラ142と左手用コントローラ144がそれぞれどこに位置しているかを検出する。一例として、コントローラ検出部510は、撮像画像から識別された2つの明点の集団のうち、左側の集団を構成している複数の明点の重心位置を右手用コントローラ142の位置と判別し、右側の集団を構成している複数の明点の重心位置を左手用コントローラ144の位置と判別するものであってよい。
【0033】
あるいはまた、コントローラ検出部510は、各コントローラ142、144のセンサ306(例えば加速度センサ)による検知データを用いて、各コントローラ142、144の位置を検出することとしてもよい。
【0034】
あるいはまた、コントローラ検出部510は、各コントローラ142、144のセンサ306(例えば角速度センサ)により右手用コントローラ142と左手用コントローラ144のそれぞれの3軸方向の角度の変化を検出し、検出された角度の変化に基づいてそれぞれのコントローラの動き(位置の変化)を検出してもよい。
〔ステップS6〕
次に、指示決定部520は、コントローラの動きに基づいて、動作指示を決定する(ステップS6)。まず、指示決定部520は、コントローラ検出部510により検出された各コントローラ142と144の位置の変化に基づいて、コントローラの位置の軌跡を求める。そして、指示決定部520は、求められたコントローラ142と144の位置の軌跡に基づいて、コントローラの動きを判定する。そして、指示決定部520は、テーブル格納部620に格納されたジェスチャテーブルを参照して、コントローラ検出部510によって検出された右手用コントローラ142と左手用コントローラ144のそれぞれの動きに対応するジェスチャが、ジェスチャテーブル内に存在するか否かを判定する。ジェスチャが存在する場合に、該ジェスチャに対応する動作指示を決定する。ジェスチャテーブルの一例を表1に示す。ジェスチャテーブルは、ボディジェスチャと、該ボディジェスチャに対応する動作指示を示す。ジェスチャテーブルに示されないコントローラの動きは、ジェスチャと判定されない。
【0035】
例えば、指示決定部520は、右手用コントローラ142と左手用コントローラ144の動きを検出し、当該動きが右手用コントローラ142と左手用コントローラ144を共に前方から後方へ移動しているジェスチャ(ジェスチャ1)と判定すると、当該ジェスチャに対応する第1動作指示を決定する。第1動作指示とは、ユーザ150のジェスチャにより、味方キャラクタに対して与える指示をいう。図8は、ユーザ150がホームポジションaから、コントローラを保持している手を動かして各種ボディジェスチャ1〜3を行う様子を示す。
【0036】
指示決定部520は、更に、ジェスチャとキャラクタの属性(例えば、敵/味方)に基づいて動作指示を異ならせてもよい。例えば、指示決定部520は、ジェスチャに基づいて敵キャラクタに与える動作指示(第2動作指示)を決定してもよい。第2動作指示は、第1動作指示とは異なる。例えば、ジェスチャ3に対応する第1動作指示が味方キャラクタに対し「ユーザ150へパスをせよ」である場合に、第2動作指示は敵キャラクタに対し、「ユーザ150をマークせよ」という指示となる。ユーザ150のジェスチャに対応する第1動作指示、第2動作指示は、ジェスチャテーブルにあらかじめ規定されている。
【0037】
表1に示すように、複数のボディジェスチャに、同じ動作指示を関連付けてもよい。例えば、ジェスチャ3及びジェスチャ4は1つの第1動作指示に関連付けられている。
さらに、異なるジェスチャに対し、第2動作指示のみを異ならせてもよい。例えば、ジェスチャ3及びジェスチャ4は、同じ内容の第1動作指示に関連付けられているが、第2動作指示の内容は異なる。
【0038】
また、1つのボディジェスチャに対し、複数の動作指示を関連付けてもよい。例えばユーザが守備側であるか、攻撃側であるかに応じて1つのボディジェスチャに関連付ける動作指示を変更する。ユーザが攻撃側の場合、ジェスチャ1に対応する第1動作指示、第2動作指示をそれぞれ、ユーザが守備側の場合の動作指示とは異ならせることができる。
【0039】
【表1】
【0040】
〔ステップS7〕
ここで、図9を参照しながら、仮想空間内のキャラクタの位置と、キャラクタの属性に基づいてキャラクタを分類する。キャラクタ1〜3はユーザキャラクタの味方キャラクタであり、キャラクタ4、5はユーザキャラクタの敵キャラクタである。キャラクタ1、2は視界領域5内に位置し、そのうちキャラクタ1はユーザ150の視点が注がれている(ユーザ150にフォーカスされている)キャラクタである。ユーザ150がキャラクタ1の視線を視認できる場合には、キャラクタ1はユーザ150と視線を合わせているキャラクタでもよい。キャラクタ3は視界領域5外に位置するキャラクタである。キャラクタ4はユーザ150の視界領域5内に位置し、キャラクタ5は視界領域5外に位置するキャラクタである。
【0041】
オブジェクト動作制御部530は、キャラクタの位置とキャラクタの属性に基づいて、キャラクタに行わせる動作を決定する。一例として、オブジェクト動作制御部530は、ユーザの視界領域5内に存在し、かつユーザからの視点が注がれている味方キャラクタ1に、第1動作を行わせ、ユーザからの視点が注がれていないが視界領域内に存在する味方キャラクタ2に第2動作を行わせ、ユーザの視界領域外に存在する味方キャラクタ3に第3動作を行わせる。第1動作は、第1動作指示を受けて(又はジェスチャを判定して)即時に第1動作指示に対応する動作を開始する動作であり、第2動作は、例えば、第1動作指示を受けてから第1の所定期間経過後(例えば、2秒後)に行われる第1動作である。第3動作は、例えば、第1動作指示を受けてから第2の所定期間経過後(例えば、3秒後)に第1の所定の確率(例えば、50%の確率)で行われる第1動作である。ユーザからの視点が注がれている味方キャラクタは動作指示に基づいて迅速に反応して動作をする一方、視界領域内に存在するがユーザからの視点が注がれていない味方キャラクタ2、視界領域外に存在する味方キャラクタ3は動作指示に即座には反応しない。また、視界領域5外の複数の味方キャラクタ3は、動作指示に応じて動作する場合と、動作しない場合がある。なお、オブジェクト動作制御部530は、第1動作指示に応じて全ての味方キャラクタ1〜3に同じ動作をさせてもよい。
【0042】
また、他の一例として、オブジェクト動作制御部530はユーザの視界領域5内に存在する敵キャラクタ4に第4動作を行わせ、ユーザの視界領域5外に存在する敵キャラクタ5に第5動作を行わせる。第4動作は、例えば第2動作指示を受けて(又はジェスチャを判定して)即時に第2動作指示に対応する動作を開始する動作であり、第5動作は、例えば、第2動作指示を受けてから第3の所定期間経過後(例えば、2秒後)に行われる第4動作である。視界領域5内に存在する敵キャラクタ4は第2動作指示に基づいて迅速に反応して動作をする一方、視界領域5外に存在する敵キャラクタ5は第2動作指示に即座には反応しない。また、視界領域5内外の敵キャラクタ4、5は、動作指示に応じて第2の所定の確率(例えば、40%の確率)で第4動作、第5動作を行ってもよい。さらに、オブジェクト動作制御部530は、第2動作指示に応じて全ての敵キャラクタ4、5に同じ動作をさせてもよい。このように、本発明においては1つのジェスチャに基づいて、複数のキャラクタにそれぞれ異なる動作を行わせることができる。また、本発明においては、キャラクタの属性やキャラクタの位置に応じて、プログラムにより各キャラクタに行わせる動作が自動的に設定される。従って、簡単なジェスチャ操作で複雑なゲームを展開することができる。さらに、オブジェクトへ指示を与えるために用いられるジェスチャは、現実のゲーム(例えば、サッカー)で用いられるジェスチャに対応付けることができる。従って、現実のゲームに慣れ親しんでいるユーザであれば、オブジェクトへ指示を与えるための特別なジェスチャを学ぶ必要が無い。本発明によれば、現実のゲームで用いられる直感的なジェスチャ操作に基づいてキャラクタに指示を与えることができるため、より趣向性の高いゲームを展開することができる。
【0043】
【表2】
【0044】
【表3】
【0045】
〔ステップS8〕
視界画像生成部450は、オブジェクト動作制御部530により動作制御されたキャラクを仮想空間6内に配置し、更に空間情報格納部610を参照して、視界領域5に対応する視界画像8を生成する(ステップS8)。これにより、視界領域5内に存在するキャラクタを配置した視界画像8が生成される。なお、空間情報格納部610は仮想空間6を構成する3次元仮想空間画像を格納する。
〔ステップS9〕
次に、HMD110は、視界画像8に関する情報を制御回路部120から受信して、ディスプレイ112に視界画像8を出力し、表示させる(ステップS9)。視界画像は左目用と右目用の2つの2次元画像を含み、これらがディスプレイ112に重畳されることにより、3次元画像としての仮想空間6がユーザに提供される。
【0046】
以上、本発明の実施の形態について説明したが、本発明は上記実施形態に限定されるものではない。前述の請求項に記載されるこの発明の精神及び範囲から逸脱することなく、様々な実施形態の変更がなされ得ることを当業者は理解するであろう。
【符号の説明】
【0047】
100…ヘッドマウントディスプレイ(HMD)システム、110…HMD、112…ディスプレイ、114…センサ部、116…注視センサ、120…制御回路部、130…動きセンサ、132…トラッキングセンサ、140…コントローラ、142…右手コントローラ、144…左手コントローラ、400…表示制御部、500…オブジェクト制御部、600…記憶部、1…仮想カメラ、4…基準視線、5…視界領域、6…仮想空間
【要約】
【課題】仮想空間におけるオブジェクトに対しボディジェスチャによる様々な動作指示を行う
【解決手段】ユーザの両手に保持されるコントローラの動きを検出するステップと、コントローラの動きに基づいて、第1動作指示を決定するステップと、第1動作指示に応じて、ユーザの視点が注がれている第1キャラクタに第1動作を行わせ、視点が注がれていない第2キャラクタに第2動作を行わせるステップとを備える。これにより仮想空間内のキャラクタにボディジェスチャにより指示を与える。
【選択図】図7
図1
図2
図3
図5
図6
図7
図8
図4
図9