[本開示の実施形態の説明]
最初に、本開示の実施形態の内容を列記して説明する。本開示の一実施形態は、以下のような構成を備える。
(項目1)プレイヤが乗用するための乗用部と、前記プレイヤの頭部に装着可能なヘッドマウントデバイスと、前記プレイヤの頭部を除く身体の動きに応じたゲーム入力を生成するコントローラと、前記ヘッドマウントデバイスの姿勢と前記コントローラからのゲーム入力に応じた視界画像を前記ヘッドマウントデバイスに表示させるプロセッサと、前記プレイヤをアテンドするための音声情報が受信された場合に当該音声情報を出力する音声出力部と、を備えるゲーム装置。
(項目2)
前記乗用部は、前記プレイヤが着席するための着席部であり、前記着席部の近傍に配置され、前記音声情報が受信された場合に前記プレイヤの身体に物理的に接触するように構成された可動式人形を更に備える、項目1に記載のゲーム装置。
(項目3)
前記可動式人形は、前記音声情報の内容に応じて前記プレイヤに接触する位置を変化させるように構成される、項目2に記載のゲーム装置。
(項目4)
前記音声情報は、アテンダントによって発せられた、前記プレイヤに対してゲームの操作を案内する音声指示である、項目1から3のいずれか1項に記載のゲーム装置。
(項目5)
前記音声情報は、第1音声情報と第2音声情報を含み、前記第1音声情報は、前記プレイヤのゲームプレイに応じてコンピュータによって生成又は再生された、前記プレイヤに対してゲームの操作を案内する音声指示であり、前記第2音声情報は、アテンダントによって発せられた、前記プレイヤが行ったゲームプレイに対する音声コメントである、項目1から3のいずれか1項に記載のゲーム装置。
(項目6)
前記音声情報は、第1音声情報と第2音声情報を含み、前記第1音声情報は、副アテンダントによって発せられた、前記プレイヤに対してゲームの操作を案内する音声指示であり、前記第2音声情報は、アテンダントによって発せられた、前記プレイヤが行ったゲームプレイに対する音声コメントである、項目1から3のいずれか1項に記載のゲーム装置。
(項目7)
前記可動式人形は、前記プレイヤ宛ての前記第2音声情報が受信された場合に、前記プレイヤの身体に物理的に接触するように構成される、項目5又は6に記載のゲーム装置。
(項目8)
前記アテンダントによって発せられた前記音声指示又は前記音声コメントを音声認識する音声認識部と、前記音声認識部による音声認識の結果に基づいて前記可動式人形の動きを制御する制御部と、を更に備える、項目4から7のいずれか1項に記載のゲーム装置。
(項目9)
前記可動式人形は、前記アテンダントによる手動操作に従って動くように構成される、項目4から7のいずれか1項に記載のゲーム装置。
(項目10)
項目4から9のいずれか1項に記載された複数のゲーム装置と、前記複数のゲーム装置の各々と通信可能に接続され、各ゲーム装置におけるプレイヤのゲームプレイに応じて生成されたプレイヤ毎の視界画像を前記アテンダントに対して提示する表示装置と、前記アテンダントからの音声指示又は音声コメントを入力するための音声入力装置と、前記アテンダントの操作によって、前記音声指示又は音声コメントの出力先として前記複数のゲーム装置のうちの少なくとも1つを選択可能な切換装置と、を備えるゲームシステム。
(項目11)
前記複数のゲーム装置の各々は、当該ゲーム装置におけるゲームプレイが終了した後に当該ゲーム装置のプレイヤから他のゲーム装置のプレイヤに対する音声指示又は音声コメントの入力を受け付ける音声入力部を備える、項目10に記載のゲームシステム。
(項目12)
前記複数のゲーム装置の各々における前記ヘッドマウントデバイスは、当該ゲーム装置におけるゲームプレイが終了した後に他のゲーム装置における視界画像を表示するように構成される、項目11に記載のゲームシステム。
[本開示の実施形態の詳細]
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図1を参照して、ヘッドマウントデバイス(Head−Mounted Device、HMD)システム100の構成について説明する。図1は、HMDシステム100の構成を概略的に示す。一例では、HMDシステム100は、家庭用のシステム又は業務用のシステムとして提供される。HMDは、表示部を備える所謂ヘッドマウントディスプレイであってもよく、表示部を有するスマートフォン等の端末を装着可能なヘッドマウント機器であってもよい。
HMDシステム100は、HMD110(画像表示装置)と、トラッキングセンサ120と、コントローラ160と、コンピュータ200とを備える。HMD110は、表示部112と、注視センサ140とを含む。コントローラ160は、モーションセンサ130を含んでもよい。
一例では、コンピュータ200は、インターネット等のネットワーク192に接続可能であってもよく、ネットワーク192に接続されるサーバ150等のコンピュータと通信可能であってもよい。別の態様において、HMD110は、トラッキングセンサ120の代わりにセンサ114を含んでもよい。
HMD110は、ユーザ190の頭部に装着され、動作中に仮想空間をユーザに提供し得る。より具体的には、HMD110は、右目用の画像及び左目用の画像を表示部112にそれぞれ表示する。ユーザの各目がそれぞれの画像を視認すると、ユーザは、両目の視差に基づき当該画像を3次元の画像として認識し得る。
表示部112は、例えば、非透過型の表示装置として実現される。一例では、表示部112は、ユーザの両目の前方に位置するように、HMD110の本体に配置される。したがって、ユーザは、表示部112に表示される3次元画像を視認すると、仮想空間に没入することができる。ある実施形態において、仮想空間は、例えば、背景、ユーザが操作可能なオブジェクト、ユーザが選択可能なメニューの画像等を含む。ある実施形態において、表示部112は、スマートフォン等の情報表示端末が備える液晶表示部又は有機EL(Electro Luminescence)表示部として実現され得る。
一例では、表示部112は、右目用の画像を表示するためのサブ表示部と、左目用の画像を表示するためのサブ表示部とを含み得る。別の態様において、表示部112は、右目用の画像と左目用の画像とを一体として表示する構成であってもよい。この場合、表示部112は、高速シャッタを含む。高速シャッタは、画像がいずれか一方の目にのみ認識されるように、右目用の画像と左目用の画像とを交互に表示可能に作動する。
一例では、HMD110は、複数の光源(図示せず)を含む。各光源は、例えば、赤外線を発するLED(Light Emitting Diode)により実現される。トラッキングセンサ120は、HMD110の動きを検出するためのポジショントラッキング機能を有する。より具体的には、トラッキングセンサ120は、HMD110が発する複数の赤外線を読み取り、現実空間内におけるHMD110の位置及び傾きを検出してもよい。
ある態様において、トラッキングセンサ120は、カメラにより実現されてもよい。この場合、トラッキングセンサ120は、カメラから出力されるHMD110の画像情報を用いて、画像解析処理を実行することにより、HMD110の位置及び傾きを検出することができる。また、トラッキングセンサ120は、カメラによって撮像されたユーザの画像を解析することにより、ユーザの身体の一部(例えば頭や手)の位置を検出するように構成されてもよい。
別の態様において、HMD110は、位置検出器として、トラッキングセンサ120の代わりに、センサ114を備えてもよい。HMD110は、センサ114を用いて、HMD110自身の位置及び傾きを検出し得る。例えば、センサ114が角速度センサ、地磁気センサ、加速度センサ、ジャイロセンサ等である場合、HMD110は、トラッキングセンサ120の代わりに、これらの各センサのいずれかを用いて、自身の位置及び傾きを検出し得る。一例として、センサ114が角速度センサである場合、角速度センサは、現実空間におけるHMD110の3軸周りの角速度を経時的に検出する。HMD110は、各角速度に基づいて、HMD110の3軸周りの角度の時間的変化を算出し、さらに、角度の時間的変化に基づいて、HMD110の傾きを算出する。また、HMD110は、透過型表示装置を備えていても良い。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、視界画像は、仮想空間を構成する画像の一部に、現実空間を提示する構成を含んでいてもよい。例えば、HMD110に搭載されたカメラで撮影した画像を視界画像の一部に重畳して表示させてもよいし、当該透過型表示装置の一部の透過率を高く設定することにより、視界画像の一部から現実空間を視認可能にしてもよい。
注視センサ140は、ユーザ190の右目及び左目の視線が向けられる方向(視線)を検出する。当該方向の検出は、例えば、公知のアイトラッキング機能によって実現される。注視センサ140は、当該アイトラッキング機能を有するセンサにより実現される。ある態様において、注視センサ140は、右目用のセンサ及び左目用のセンサを含むことが好ましい。注視センサ140は、例えば、ユーザ190の右目及び左目に赤外光を照射するとともに、照射光に対する角膜及び虹彩からの反射光を受けることにより各眼球の回転角を検出するセンサであってもよい。注視センサ140は、検出した各回転角に基づいて、ユーザ190の視線を検知することができる。
サーバ150は、コンピュータ200にプログラムを送信し得る。別の態様において、サーバ150は、他のユーザによって使用されるHMDに仮想現実を提供するための他のコンピュータ200と通信し得る。例えば、アミューズメント施設において、複数のユーザが参加型のゲームを行う場合、各コンピュータ200は、各ユーザの動作に基づく信号を他のコンピュータ200と通信して、同じ仮想空間において複数のユーザが共通のゲームを楽しむことを可能にする。
コントローラ160は、有線又は無線によりコンピュータ200に接続される。コントローラ160は、ユーザ190からコンピュータ200への命令の入力を受け付ける。ある態様において、コントローラ160は、ユーザ190によって把持可能に構成される。別の態様において、コントローラ160は、ユーザ190の身体又は衣類の一部に装着可能に構成される。別の態様において、コントローラ160は、コンピュータ200から送信される信号に基づいて、振動、音、光のうちの少なくともいずれかを出力するように構成されてもよい。別の態様において、コントローラ160は、ユーザ190から、仮想空間に配置されるオブジェクトの位置や動きを制御するための操作を受け付ける。
ある態様において、モーションセンサ130は、ユーザの手に取り付けられて、ユーザの手の動きを検出する。例えば、モーションセンサ130は、手の回転速度、回転数等を検出する。検出された信号は、コンピュータ200に送られる。モーションセンサ130は、例えば、手袋型のコントローラ160に設けられる。ある実施形態において、現実空間における安全のため、コントローラ160は、手袋型のようにユーザ190の手に装着されることにより容易に飛んで行かないものに装着されるのが望ましい。別の態様において、ユーザ190に装着されないセンサがユーザ190の手の動きを検出してもよい。ユーザ190の身体の様々な部分の位置、向き、動きの方向、動きの距離などを検知する光学式センサが用いられてもよい。例えば、ユーザ190を撮影するカメラの信号が、ユーザ190の動作を表す信号として、コンピュータ200に入力されてもよい。モーションセンサ130とコンピュータ200とは、一例として、無線により互いに接続される。無線の場合、通信形態は特に限られず、例えば、Bluetooth(登録商標)その他の公知の通信手法が用いられる。
図2を参照して、本開示の実施形態に係るコンピュータ200について説明する。図2は、本開示の一実施形態によるコンピュータ200の基本的なハードウェア構成の例を表すブロック図である。コンピュータ200は、主たる構成要素として、プロセッサ202と、メモリ204と、ストレージ206と、入出力インターフェース208と、通信インターフェース210とを備える。各構成要素は、それぞれ、バス212に接続される。
プロセッサ202は、コンピュータ200に与えられる信号に基づいて、あるいは、予め定められた条件が成立したことに基づいて、メモリ204又はストレージ206に格納されているプログラムに含まれる一連の命令を実行する。ある態様において、プロセッサ202は、CPU(Central Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field−Programmable Gate Array)等のデバイスとして実現される。
メモリ204は、プログラム及びデータを一時的に保存する。プログラムは、例えば、ストレージ206からロードされる。データは、コンピュータ200に入力されたデータと、プロセッサ202によって生成されたデータとを含む。ある態様において、メモリ204は、RAM(Random Access Memory)等の揮発性メモリとして実現される。
ストレージ206は、プログラム及びデータを永続的に保持する。ストレージ206は、例えば、ROM(Read−Only Memory)、ハードディスク装置、フラッシュメモリ等の不揮発性記憶装置として実現される。ストレージ206に格納されるプログラムは、HMDシステム100において仮想空間を提供するためのプログラム、シミュレーションプログラム、ゲームプログラム、ユーザ認証プログラム、他のコンピュータ200との通信を実現するためのプログラム等を含む。ストレージ206に格納されるデータは、仮想空間を規定するためのデータ及びオブジェクト等を含む。
別の態様において、ストレージ206は、メモリカードのように着脱可能な記憶装置として実現されてもよい。さらに別の態様において、コンピュータ200に内蔵されたストレージ206の代わりに、外部の記憶装置に保存されているプログラム及びデータを使用する構成が使用されてもよい。このような構成によれば、例えば、アミューズメント施設のように複数のHMDシステム100が使用される場面において、プログラムやデータの更新を一括して行なうことが可能になる。
ある実施形態において、入出力インターフェース208は、HMD110、トラッキングセンサ120及びモーションセンサ130との間で信号を通信する。ある態様において、入出力インターフェース208は、USB(Universal Serial Bus、USB)、DVI(Digital Visual Interface)、HDMI(登録商標)(High−Definition Multimedia Interface)等の端子を用いて実現される。なお、入出力インターフェース208は上述のものに限られない。
ある実施形態において、入出力インターフェース208は、さらに、コントローラ160と通信し得る。例えば、入出力インターフェース208は、コントローラ160及びモーションセンサ130から出力された信号の入力を受ける。別の態様において、入出力インターフェース208は、プロセッサ202から出力された命令を、コントローラ160に送る。当該命令は、振動、音声出力、発光等をコントローラ160に指示する。コントローラ160は、当該命令を受信すると、その命令に応じて、振動、音声出力、発光等を実行する。
通信インターフェース210は、ネットワーク192に接続され、ネットワーク192に接続されている他のコンピュータ(例えば、サーバ150)と通信する。ある態様において、通信インターフェース210は、例えば、LAN(Local Area Network)等の有線通信インターフェース、あるいは、WiFi(Wireless Fidelity)、Bluetooth(登録商標)、NFC(Near Field Communication)等の無線通信インターフェースとして実現される。なお、通信インターフェース210は上述のものに限られない。
ある態様において、プロセッサ202は、ストレージ206にアクセスし、ストレージ206に格納されている1つ以上のプログラムをメモリ204にロードし、当該プログラムに含まれる一連の命令を実行する。当該1つ以上のプログラムは、コンピュータ200のオペレーティングシステム、仮想空間を提供するためのアプリケーションプログラム、仮想空間で実行可能なゲームソフトウェア等を含み得る。プロセッサ202は、入出力インターフェース208を介して、仮想空間を提供するための信号をHMD110に送る。HMD110は、その信号に基づいて表示部112に映像を表示する。
図2に示される例では、コンピュータ200は、HMD110の外部に設けられている。しかし、別の態様において、コンピュータ200は、HMD110に内蔵されてもよい。一例として、表示部112を含む携帯型の情報通信端末(例えば、スマートフォン)がコンピュータ200として機能してもよい。
また、コンピュータ200は、複数のHMD110に共通して用いられる構成であってもよい。このような構成によれば、例えば、複数のユーザに同一の仮想空間を提供することもできるので、各ユーザは同一の仮想空間で他のユーザと同一のアプリケーションを楽しむことができる。
ある実施形態において、HMDシステム100では、グローバル座標系が予め設定されている。グローバル座標系は、現実空間における鉛直方向、鉛直方向に直交する水平方向、ならびに、鉛直方向及び水平方向の双方に直交する前後方向にそれぞれ平行な、3つの基準方向(軸)を有する。本実施形態では、グローバル座標系は視点座標系の1つである。そこで、グローバル座標系における水平方向、鉛直方向(上下方向)、及び前後方向は、それぞれ、x軸、y軸、z軸として規定される。より具体的には、グローバル座標系において、x軸は現実空間の水平方向に平行である。y軸は、現実空間の鉛直方向に平行である。z軸は現実空間の前後方向に平行である。
ある態様において、トラッキングセンサ120は、赤外線センサを含む。赤外線センサが、HMD110の各光源から発せられた赤外線をそれぞれ検出すると、HMD110の存在を検出する。トラッキングセンサ120は、さらに、各点の値(グローバル座標系における各座標値)に基づいて、HMD110を装着したユーザ190の動きに応じた、現実空間内におけるHMD110の位置及び傾きを検出する。より詳しくは、トラッキングセンサ120は、経時的に検出された各値を用いて、HMD110の位置及び傾きの時間的変化を検出できる。また、後述するように、トラッキングセンサ120は、コントローラ160から発せられる赤外線を検出することによって、現実空間におけるコントローラ160の位置及び傾きを検出するように構成されてもよい。
グローバル座標系は現実空間の座標系と平行である。したがって、トラッキングセンサ120によって検出されたHMD110の各傾きは、グローバル座標系におけるHMD110の3軸周りの各傾きに相当する。トラッキングセンサ120は、グローバル座標系におけるHMD110の傾きに基づき、uvw視野座標系をHMD110に設定する。HMD110に設定されるuvw視野座標系は、HMD110を装着したユーザ190が仮想空間において物体を見る際の視点座標系に対応する。
図3を参照して、uvw視野座標系について説明する。図3は、ある実施形態に従うHMD110に設定されるuvw視野座標系を概念的に表す図である。トラッキングセンサ120は、HMD110の起動時に、グローバル座標系におけるHMD110の位置及び傾きを検出する。プロセッサ202は、検出された値に基づいて、uvw視野座標系をHMD110に設定する。
図3に示されるように、HMD110は、HMD110を装着したユーザの頭部を中心(原点)とした3次元のuvw視野座標系を設定する。より具体的には、HMD110は、グローバル座標系を規定する水平方向、鉛直方向、及び前後方向(x軸、y軸、z軸)を、グローバル座標系内においてHMD110の各軸周りの傾きだけ各軸周りにそれぞれ傾けることによって新たに得られる3つの方向を、HMD110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)、及びロール方向(w軸)として設定する。
ある態様において、HMD110を装着したユーザ190が直立し、かつ、正面を視認している場合、プロセッサ202は、グローバル座標系に平行なuvw視野座標系をHMD110に設定する。この場合、グローバル座標系における水平方向(x軸)、鉛直方向(y軸)、及び前後方向(z軸)は、HMD110におけるuvw視野座標系のピッチ方向(u軸)、ヨー方向(v軸)及びロール方向(w軸)に一致する。
uvw視野座標系がHMD110に設定された後、トラッキングセンサ120は、HMD110の動きに基づいて、設定されたuvw視野座標系におけるHMD110の傾き(傾きの変化量)を検出できる。この場合、トラッキングセンサ120は、HMD110の傾きとして、uvw視野座標系におけるHMD110のピッチ角(θu)、ヨー角(θv)及びロール角(θw)をそれぞれ検出する。ピッチ角(θu)は、uvw視野座標系におけるピッチ方向周りのHMD110の傾き角度を表す。ヨー角(θv)は、uvw視野座標系におけるヨー方向周りのHMD110の傾き角度を表す。ロール角(θw)は、uvw視野座標系におけるロール方向周りのHMD110の傾き角度を表す。
トラッキングセンサ120は、検出されたHMD110の傾き角度に基づいて、HMD110が動いた後のHMD110におけるuvw視野座標系を、HMD110に設定する。HMD110と、HMD110のuvw視野座標系との関係は、HMD110の位置及び傾きに関わらず、常に一定である。HMD110の位置及び傾きが変わると、当該位置及び傾きの変化に連動して、グローバル座標系におけるHMD110のuvw視野座標系の位置及び傾きが変化する。
ある態様において、トラッキングセンサ120は、赤外線センサからの出力に基づいて取得される赤外線の光強度及び複数の点間の相対的な位置関係(例えば、各点間の距離等)に基づいて、HMD110の現実空間内における位置を、トラッキングセンサ120に対する相対位置として特定してもよい。また、プロセッサ202は、特定された相対位置に基づいて、現実空間内(グローバル座標系)におけるHMD110のuvw視野座標系の原点を決定してもよい。
図4を参照して、仮想空間についてさらに説明する。図4は、ある実施形態に従う仮想空間400を表現する一態様を概念的に表す図である。仮想空間400は、中心406の360度方向の全体を覆う全天球状の構造を有する。図4では、説明を複雑にしないために、仮想空間400のうちの上半分の天球が例示されている。仮想空間400では各メッシュが規定される。各メッシュの位置は、仮想空間400に規定されるXYZ座標系における座標値として予め規定されている。コンピュータ200は、仮想空間400に展開可能なコンテンツ(静止画、動画等)を構成する各部分画像を、仮想空間400において対応する各メッシュにそれぞれ対応付けて、ユーザによって視認可能な仮想空間画像が展開される仮想空間400をユーザに提供する。
ある態様において、仮想空間400では、中心406を原点とするxyz座標系が規定される。xyz座標系は、例えば、グローバル座標系に平行である。xyz座標系は視点座標系の一種であるため、xyz座標系における水平方向、鉛直方向(上下方向)及び前後方向は、それぞれx軸、y軸及びz軸として規定される。したがって、xyz座標系のx軸(水平方向)がグローバル座標系のx軸と平行であり、xyz座標系のy軸(鉛直方向)がグローバル座標系のy軸と平行であり、xyz座標系のz軸(前後方向)がグローバル座標系のz軸と平行である。
HMD110の起動時、すなわちHMD110の初期状態において、仮想カメラ404が、仮想空間400の中心406に配置される。ある態様において、プロセッサ202は、仮想カメラ404が撮影する画像をHMD110の表示部112に表示する。仮想カメラ404は、現実空間におけるHMD110の動きに連動して、仮想空間400を同様に移動する。これにより、現実空間におけるHMD110の位置及び向きの変化が、仮想空間400において同様に再現され得る。
HMD110の場合と同様に、仮想カメラ404には、uvw視野座標系が規定される。仮想空間400における仮想カメラ404のuvw視野座標系は、現実空間(グローバル座標系)におけるHMD110のuvw視野座標系に連動するように規定される。したがって、HMD110の傾きが変化すると、それに応じて、仮想カメラ404の傾きも変化する。また、仮想カメラ404は、HMD110を装着したユーザの現実空間における移動に連動して、仮想空間400において移動することもできる。
コンピュータ200のプロセッサ202は、仮想カメラ404の配置位置と、基準視線408とに基づいて、仮想空間400における視認領域410を規定する。視認領域410は、仮想空間400のうち、HMD110を装着したユーザが視認する領域に対応する。
注視センサ140によって検出されるユーザ190の視線は、ユーザ190が物体を視認する際の視点座標系における方向である。HMD110のuvw視野座標系は、ユーザ190が表示部112を視認する際の視点座標系に等しい。また、仮想カメラ404のuvw視野座標系は、HMD110のuvw視野座標系に連動している。したがって、ある態様に従うHMDシステム100は、注視センサ140によって検出されたユーザ190の視線を、仮想カメラ404のuvw視野座標系におけるユーザの視線とみなすことができる。
図5を参照して、ユーザの視線の決定について説明する。図5は、ある実施形態に従うHMD110を装着するユーザ190の頭部を上から表した図である。
ある態様において、注視センサ140は、ユーザ190の右目及び左目の各視線を検出する。ある態様において、ユーザ190が近くを見ている場合、注視センサ140は、視線R1及びL1を検出する。別の態様において、ユーザ190が遠くを見ている場合、注視センサ140は、視線R2及びL2を検出する。この場合、ロール方向wに対して視線R2及びL2がなす角度は、ロール方向wに対して視線R1及びL1がなす角度よりも小さい。注視センサ140は、検出結果をコンピュータ200に送信する。
コンピュータ200が、視線の検出結果として、視線R1及びL1の検出値を注視センサ140から受信した場合には、その検出値に基づいて、視線R1及びL1の交点である注視点N1を特定する。一方、コンピュータ200は、視線R2及びL2の検出値を注視センサ140から受信した場合には、視線R2及びL2の交点を注視点として特定する。コンピュータ200は、特定した注視点N1の位置に基づき、ユーザ190の視線N0を特定する。コンピュータ200は、例えば、ユーザ190の右目Rと左目Lとを結ぶ直線の中点と、注視点N1とを通る直線の延びる方向を、視線N0として検出する。視線N0は、ユーザ190が両目により実際に視線を向けている方向である。また、視線N0は、視認領域410に対してユーザ190が実際に視線を向けている方向に相当する。
別の態様において、HMDシステム100は、HMDシステム100を構成するいずれかの部分に、マイク及びスピーカを備えてもよい。ユーザは、マイクに発話することにより、仮想空間400に対して、音声による指示を与えることができる。
また、別の態様において、HMDシステム100は、テレビジョン放送受信チューナを備えてもよい。このような構成によれば、HMDシステム100は、仮想空間400においてテレビ番組を表示することができる。
さらに別の態様において、HMDシステム100は、インターネットに接続するための通信回路、あるいは、電話回線に接続するための通話機能を備えていてもよい。
図6及び図7を参照して、視認領域410について説明する。図6は、仮想空間400において視認領域410をx方向から見たyz断面を表す図である。図7は、仮想空間400において視認領域410をy方向から見たxz断面を表す図である。
図6に示されるように、yz断面における視認領域410は、領域602を含む。領域602は、仮想カメラ404の配置位置と基準視線408と仮想空間400のyz断面とによって定義される。プロセッサ202は、仮想空間おける基準視線408を中心として極角αを含む範囲を、領域602として規定する。
図7に示されるように、xz断面における視認領域410は、領域702を含む。領域702は、仮想カメラ404の配置位置と基準視線408と仮想空間400のxz断面とによって定義される。プロセッサ202は、仮想空間400における基準視線408を中心とした方位角βを含む範囲を、領域702として規定する。極角α及びβは、仮想カメラ404の配置位置と仮想カメラ404の向きとに応じて定まる。
ある態様において、HMDシステム100は、コンピュータ200からの信号に基づいて、視界画像を表示部112に表示させることにより、仮想空間における視界をユーザ190に提供する。視界画像は、仮想空間画像402のうち視認領域410に重畳する部分に相当する。ユーザ190が、頭に装着したHMD110を動かすと、その動きに連動して仮想カメラ404も動く。その結果、仮想空間400における視認領域410の位置が変化する。これにより、表示部112に表示される視界画像は、仮想空間画像402のうち、仮想空間400においてユーザが向いた方向の視認領域410に重畳する画像に更新される。ユーザは、仮想空間400における所望の方向を視認することができる。
このように、仮想カメラ404の向き(傾き)は仮想空間400におけるユーザの視線(基準視線408)に相当し、仮想カメラ404が配置される位置は、仮想空間400におけるユーザの視点に相当する。したがって、仮想カメラ404を移動(配置位置を変える動作、向きを変える動作を含む)させることにより、表示部112に表示される画像が更新され、ユーザ190の視界(視点、視線を含む)が移動される。
ユーザ190は、HMD110を装着している間、現実世界を視認することなく、仮想空間400に展開される仮想空間画像402のみを視認できる。そのため、HMDシステム100は、仮想空間400への高い没入感覚をユーザに与えることができる。
ある態様において、プロセッサ202は、HMD110を装着したユーザ190の現実空間における移動に連動して、仮想空間400において仮想カメラ404を移動し得る。この場合、プロセッサ202は、仮想空間400における仮想カメラ404の位置及び向きに基づいて、HMD110の表示部112に投影される画像領域(すなわち、仮想空間400における視認領域410)を特定する。
ある実施形態に従うと、仮想カメラ404は、2つの仮想カメラ、すなわち、右目用の画像を提供するための仮想カメラと、左目用の画像を提供するための仮想カメラとを含んでもよい。また、ユーザ190が3次元の仮想空間400を認識できるように、適切な視差が、2つの仮想カメラに設定されてもよい。
図8を参照して、コントローラ160の一例について説明する。図8は、ある実施形態に従うコントローラ160の概略構成を表す図である。
ある態様において、コントローラ160は、右コントローラと左コントローラとを含み得る。説明を簡単にするために、図8には右コントローラ800のみが示される。右コントローラ800は、ユーザ190の右手で操作される。左コントローラは、ユーザ190の左手で操作される。ある態様において、右コントローラ800と左コントローラとは、別個の装置として対称に構成される。したがって、ユーザ190は、右コントローラ800を把持した右手と、左コントローラを把持した左手とをそれぞれ自由に動かすことができる。別の態様において、コントローラ160は両手の操作を受け付ける一体型のコントローラであってもよい。以下、右コントローラ800について説明する。
右コントローラ800は、グリップ802と、フレーム804と、天面806とを備える。グリップ802は、ユーザ190の右手によって把持されるように構成されている。例えば、グリップ802は、ユーザ190の右手の掌と3本の指(中指、薬指、小指)とによって保持され得る。
グリップ802は、ボタン808及び810と、モーションセンサ130とを含む。ボタン808は、グリップ802の側面に配置され、右手の中指による操作を受け付ける。ボタン810は、グリップ802の前面に配置され、右手の人差し指による操作を受け付ける。ある態様において、ボタン808、810は、トリガー式のボタンとして構成される。モーションセンサ130は、グリップ802の筐体に内蔵されている。なお、ユーザ190の動作がカメラその他の装置によってユーザ190の周りから検出可能である場合には、グリップ802は、モーションセンサ130を備えなくてもよい。
フレーム804は、その円周方向に沿って配置された複数の赤外線LED812を含む。赤外線LED812は、コントローラ160を使用するプログラムの実行中に、当該プログラムの進行に合わせて赤外線を発光する。赤外線LED812から発せられた赤外線は、右コントローラ800と左コントローラ(図示しない)との各位置や姿勢(傾き、向き)を検出するためにトラッキングセンサ120によって使用され得る。図8に示される例では、2列に配置された赤外線LED812が示されているが、配列の数は図8に示されるものに限られない。1列あるいは3列以上の配列が使用されてもよい。
天面806は、ボタン814及び816と、アナログスティック818とを備える。ボタン814及び816は、プッシュ式ボタンとして構成される。ボタン814及び816は、ユーザ190の右手の親指による操作を受け付ける。アナログスティック818は、ある態様において、初期位置(ニュートラルの位置)から360度任意の方向への操作を受け付ける。当該操作は、例えば、仮想空間400に配置されるオブジェクトを移動するための操作を含む。
ある態様において、右コントローラ800及び左コントローラは、赤外線LED812等の部材を駆動するための電池を含む。電池は、1次電池及び2次電池のいずれであってもよく、その形状は、ボタン型、乾電池型等任意であり得る。別の態様において、右コントローラ800と左コントローラは、例えば、コンピュータ200のUSBインターフェースに接続され得る。この場合、右コントローラ800及び左コントローラは、USBインターフェースを介して電力を供給され得る。
図9は、本開示の一実施形態による、HMDシステム100における仮想空間400の表示処理等を実現するための、コンピュータ200の機能を示すブロック図である。コンピュータ200は、主にトラッキングセンサ120、モーションセンサ130、注視センサ140、コントローラ160からの入力に基づいて、表示部112への画像出力を制御する。
コンピュータ200は、プロセッサ202と、メモリ204と、通信制御部205とを備える。プロセッサ202は、仮想空間特定部902と、HMD動作検知部903と、視線検知部904と、基準視線決定部906と、視界領域決定部908と、視界画像生成部912と、視界画像出力部926とを含み得る。メモリ204は様々な情報を格納するように構成され得る。一例では、メモリ204は、仮想空間データ928、オブジェクトデータ930、アプリケーションデータ932、その他のデータ934を含んでもよい。メモリ204はまた、トラッキングセンサ120、モーションセンサ130、注視センサ140、コントローラ160等からの入力に対応した出力情報を、HMD110に関連付けられる表示部112へ提供するための演算に必要な各種データを含んでもよい。オブジェクトデータ930は、仮想空間内に配置される操作オブジェクト、仮想オブジェクト等に関するデータを含んでもよい。表示部112は、HMD110に内蔵されてもよいし、HMD110に取り付け可能な別のデバイス(例えば、スマートフォン)のディスプレイであってもよい。
図9においてプロセッサ202内に含まれるコンポーネントは、プロセッサ202が実行する機能を具体的なモジュールとして表現する1つの例にすぎない。複数のコンポーネントの機能が単一のコンポーネントによって実現されてもよい。プロセッサ202がすべてのコンポーネントの機能を実行するように構成されてもよい。
図10は、ユーザが没入する仮想空間の画像を表示部112に表示するための一般的な処理のフロー図である。
図9及び図10を参照して、仮想空間の画像を提供するためのHMDシステム100の一般的な処理を説明する。仮想空間400は、トラッキングセンサ120、注視センサ140及びコンピュータ200等の相互作用によって提供され得る。
処理はステップ1002において開始する。一例として、アプリケーションデータに含まれるゲームアプリケーションがコンピュータ200によって実行されてもよい。ステップ1004において、プロセッサ202(仮想空間特定部902)は、仮想空間データ928を参照するなどして、ユーザが没入する仮想空間400を構成する天球状の仮想空間画像402を生成する。トラッキングセンサ120によってHMD110の位置や傾きが検知される。トラッキングセンサ120によって検知された情報はコンピュータ200に送信される。ステップ1006において、HMD動作検知部903は、HMD110の位置情報や傾き情報を取得する。ステップ1008において、取得された位置情報及び傾き情報に基づいて視界方向が決定される。
注視センサ140がユーザの左右の目の眼球の動きを検出すると、当該情報がコンピュータ200に送信される。ステップ1010において、視線検知部904は、右目及び左目の視線が向けられる方向を特定し、視線方向N0を決定する。ステップ1012において、基準視線決定部906は、HMD110の傾きにより決定された視界方向又はユーザの視線方向N0を基準視線408として決定する。基準視線408はまた、HMD110の位置や傾きに追随する仮想カメラ404の位置及び傾きに基づいて決定されてもよい。
ステップ1014において、視界領域決定部908は、仮想空間400における仮想カメラ404の視界領域410を決定する。図4に示すように、視界領域410は、仮想空間画像402のうちユーザの視界を構成する部分である。視界領域410は基準視線408に基づいて決定される。視界領域410をx方向から見たyz断面図及び視界領域410をy方向から見たxz断面図は、既に説明した図6及び図7にそれぞれ示されている。
ステップ1016において、視界画像生成部912は、視界領域410に基づいて視界画像を生成する。視界画像は、右目用と左目用の2つの2次元画像を含む。これらの2次元画像が表示部112に重畳される(より具体的には、右目用画像が右目用表示部に出力され、左目用画像が左目用表示部に出力される)ことにより、3次元画像としての仮想空間400がユーザに提供される。ステップ1018において、視界画像出力部926は、視界画像に関する情報を表示部112に出力する。表示部112は、受信した視界画像の情報に基づいて、当該視界画像を表示する。処理はステップ1020において終了する。
以下、本開示の実施形態について具体的に説明する。ここでは、本開示の実施形態を適用することができる具体例として、アミューズメント施設などにおいて提供されるアーケードゲームであって、プレイヤ(ユーザ)がアバターとなって仮想空間に没入し、仮想空間内の乗り物を操縦するゲームを想定する。しかし、本開示の実施形態は、必ずしもこのような態様に限定されない。本開示の実施形態が、特許請求の範囲において規定される範囲に含まれる様々な態様を取り得ることは、当業者にとって明らかであろう。
図11は、本開示の一実施形態によるゲームシステム1100の構成を概略的に示す図である。ゲームシステム1100は、2つのプレイヤ装置1120A及び1120B(以下、まとめて「プレイヤ装置1120」と記す)と、アテンダント装置1140と、切換装置1146とを備える。プレイヤ装置1120、アテンダント装置1140、及び切換装置1146は、同じ施設内に設置され、無線又は有線で相互に接続されている。あるいは、プレイヤ装置1120、アテンダント装置1140、及び切換装置1146は、離れた場所に設置され、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク)、又はインターネット等のネットワーク(不図示)を介して相互に通信可能に接続されてもよい。図11の構成は例示であって、これに限定されるものではなく、例えば、プレイヤ装置1120は1台であっても3台以上であってもよい。1台のプレイヤ装置1120を複数のプレイヤ1132が操作可能に構成されてもよい。なお、プレイヤ装置1120Bの構成は、プレイヤ装置1120Aの構成と同じであるため、図11にはプレイヤ装置1120Bの構成の詳細は記載しない。
プレイヤ装置1120は、プレイヤ1132によって操作される装置である。プレイヤ1132は、プレイヤ装置1120を操作することによってアーケードゲームを楽しむことができる。図11に示されるように、プレイヤ装置1120Aは、HMD110と、HMDセンサ(トラッキングセンサ)120と、コンピュータ200と、着席部1122と、コントローラ1124A及び1124B(以下、まとめて「コントローラ1124」と記す)と、音声出力部1126と、可動式人形1128とを備える。HMD110、HMDセンサ120、及びコンピュータ200は、図1等に関連して既に説明したものと同様の構成を有する。HMD110、HMDセンサ120、コントローラ1124、音声出力部1126、及び可動式人形1128は、コンピュータ200(図2に示す入出力インターフェース208)に接続される。なお、図11の構成は例示であって、これに限定されるものではなく、例えば、複数台のプレイヤ装置1120に1台のコンピュータ200が接続されてもよい。
プレイヤ1132は、HMD110を装着した状態で着席部1122に着席し、HMD110の表示部112に表示された仮想空間内の視界を表すゲーム画像を視認しながら、コントローラ1124を操作することによって仮想空間上のゲームをプレイする。ゲームのプレイ中、プレイヤ1132は、コントローラ1124を様々に操作することによって、仮想空間内のオブジェクトである乗り物(または他のオブジェクト)の動きを制御することができる。
コントローラ1124は、プレイヤ1132が手で把持して操作するハンドル1124A、及びプレイヤ1132が足で操作するペダル1124Bを含む。ペダル1124Bは、自転車のペダルのように漕ぐ動作によって回転するように構成されてもよいし、あるいは、自動車のアクセルペダルのように踏み込む動作によって操作されるように構成されてもよい。コントローラ1124は、プレイヤ1132の操作(例えば、プレイヤ1132がハンドル1124A又はペダル1124Bを動かす操作)を受けて、当該操作に応じた信号を生成しコンピュータ200へ出力する。この信号は、プレイヤ1132からゲームシステム1100に対するゲーム入力を表す。なお、ハンドル1124A及びペダル1124Bは、コントローラ1124の一例にすぎない。コントローラ1124は、図8に関して上述した構成を有してもよい。ユーザの身体の他の部分に装着可能、又はユーザの身体の他の部分で操作可能な様々な態様のコントローラを、代替的に適用してもよい。着席部1122をコントローラ1124に含めるようにしてもよい。例えば、着席部1122をプレイヤ1132の体重移動により傾けられるように構成しておき、この着席部1122の傾きに応じた信号を生成しコンピュータ200へ出力して、仮想空間内の乗り物の動きを制御するようにしてもよい。この場合、着席部1122は、ボードなどプレイヤ1132が乗用可能なもの(乗用部)であればよく、着席を必須とする必要はない。着席部1122をコントローラ1124に含める場合、ハンドル1124Aやペダル1124Bをコントローラ1124に含めなくてもよい。
音声出力部1126は、着席部1122の近傍、例えばプレイヤ1132が着席部1122に着席した時に当該プレイヤ1132の頭部に近接する位置に配置されている。音声出力部1126は、アテンダント1134からの音声情報及びコンピュータ200によって生成又は再生された音声情報を出力することができる。音声出力部1126を着席部1122の近傍に設けずに、HMD110と一体型に構成するようにしてもよいし、HMD110とともに装着するヘッドフォンとして構成するようにしてもよい。
可動式人形1128は、着席部1122の近傍、例えばプレイヤ1132が着席部1122に着席した時に当該プレイヤ1132の後方となる位置に配置されている。可動式人形1128は、着席部1122に着席したプレイヤ1132の身体に物理的に接触することができるように構成される。例えば、可動式人形1128は、着席部1122に着席したプレイヤ1132の身体に物理的に接触することができる可動式の二本の腕を備える。可動式人形1128の当該腕は、アテンダント1134又はコンピュータ200から音声情報が受信された場合にプレイヤ1132の身体に物理的に接触するように駆動される。
アテンダント装置1140は、プレイヤ1132のゲームプレイ中における操作を支援する補助員であるアテンダント1134によって操作される装置である。図11に示されるように、アテンダント装置1140は、表示部1142と、音声入力部1144とを備える。表示部1142は、プレイヤ装置1120のHMD110に表示されるのと同じゲーム画像を表示するように構成される。表示部1142として、例えば、液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイ、又はプロジェクタを適用可能である。音声入力部1144は、アテンダント1134の音声を電気信号に変換するためのマイクロホンである。
アテンダント1134は、表示部1142に表示されたプレイヤ1132のゲーム画像を見ながら、音声入力部1144を用いてプレイヤ1132に対する音声案内等を入力する。アテンダント1134からの音声情報は、切換装置1146を介してプレイヤ装置1120へ送信されて、プレイヤ装置1120の音声出力部1126から出力される。これにより、アテンダント1134は、プレイヤ1132のゲーム操作を支援することができる。
図12は、第1実施形態による方法1200のフローチャートである。第1実施形態では、プレイヤ1132のゲームプレイ中にアテンダント1134が音声を発すると、アテンダント1134の音声がプレイヤ装置1120の音声出力部1126から出力されるとともに、可動式人形1128がアテンダント1134の音声に応じてプレイヤ1132の身体に接触するよう駆動される。本開示の一実施形態において、コンピュータプログラムが、図12に示される各ステップをプロセッサ202(又はコンピュータ200)に実行させてもよい。また、本開示の別の実施形態は、方法1200を実行するプロセッサ202(又はコンピュータ200)として実施することができる。
処理はステップ1202において開始する。プロセッサ202は、メモリ204に格納されているアプリケーションデータ932に含まれるゲームプログラムを読み出して実行する。
処理はステップ1204に進み、コントローラ1124は、プレイヤ1132の身体の動きに応じたゲーム入力を生成し、コンピュータ200へ出力する。例えば、プレイヤ1132が手でハンドル1124Aを回す、又は傾けると、ハンドル1124Aの回転量又は傾き量が所定の時間間隔で連続的に検出され、その検出結果を表す信号が、仮想空間内の乗り物を操縦するためのゲーム入力として、ハンドル1124Aからコンピュータ200へと出力される。また、例えば、プレイヤ1132が脚でペダル1124Bを踏む、又は漕ぐ(回転させる)と、ペダル1124Bの踏み込み量又は回転量が所定の時間間隔で連続的に検出され、その検出結果を表す信号が、仮想空間内の乗り物を操縦するためのゲーム入力として、ペダル1124Bからコンピュータ200へと出力される。
処理はステップ1206に進み、プロセッサ202は、コントローラ1124から出力されたゲーム入力に基づいて、仮想空間内においてプレイヤ1132のアバターが乗っている乗り物(例えば、自転車、自動車、バイクなど)の位置及び傾きを制御する。例えば、プレイヤ1132がハンドル1124Aを右又は左に切ると、仮想空間上の乗り物は、ハンドル1124Aの回転角度に応じて、その進行方向あるいは機体の傾きを右又は左に変化させる。また、例えば、プレイヤ1132がペダル1124Bを漕ぐと、仮想空間上の乗り物は、ペダル1124Bの回転数に応じて仮想空間内を上昇又は下降し、あるいはその移動スピードを変化させる。このように、プレイヤ1132はコントローラ1124を操作して、仮想空間内の乗り物の動きを制御することができる。
処理はステップ1208に進み、HMDセンサ120は、HMD110の位置及び傾きを所定の時間間隔で連続的に検出し、検出結果をコンピュータ200へ出力する。
処理はステップ1210に進み、プロセッサ202は、ステップ1206による制御を反映した仮想空間上の乗り物の位置及び傾きと、ステップ1208において検出されたHMD110の位置及び傾き(即ちプレイヤ1132の頭部の位置及び傾き)とに基づいて、仮想空間上の乗り物に乗っているプレイヤ1132のアバターの位置から仮想空間を見たゲーム画像を生成する。具体的に、プロセッサ202は、ステップ1206の処理に従って制御された仮想空間上の乗り物の位置及び傾きを基準として、HMDセンサ120によるHMD110の検出位置に対応する仮想空間上の相対位置を、プレイヤ1132のアバターの頭部の位置、即ち仮想視点と定め、当該仮想視点に仮想カメラを配置する。またプロセッサ202は、HMDセンサ120によって検出されたHMD110の傾きに対応した仮想空間内の方向を基準視線(例えば図4に示される基準視線408)と定め、当該基準視線の方向に仮想カメラを配向させる。図4を参照して前述されたように、仮想カメラの位置と基準視線(例えば基準視線408)とによって、仮想空間においてプレイヤ1132が視認できる視界(例えば図4に示されるような視認領域410)が決定される。この視界の範囲内の画像が、ステップ1210において生成されるゲーム画像である。プロセッサ202は、このようにして生成したゲーム画像を、表示のためにHMD110及びアテンダント装置1140に出力する。プレイヤ1132は、HMD110に表示されたゲーム画像を見ることで、仮想空間上の乗り物に乗ったアバターの視点から仮想空間を視覚的に認識することができる。
処理はステップ1212に進み、アテンダント装置1140は、プレイヤ装置1120から出力されたゲーム画像を取得し、表示部1142に表示する。これにより、アテンダント1134は、プレイヤ1132のHMD110に表示されたゲーム画像と同じゲーム画像を見ることができる。表示部1142は、複数のプレイヤ装置1120から取得された異なる複数のゲーム画像を、画面を分割することにより同時に表示してもよいし、それら各ゲーム画像を時間的に切り換えることによって順次表示してもよい。アテンダント1134は、表示部1142に表示されたゲーム画像を見ることで各プレイヤ1132のプレイ状況を把握することができ、それに基づいて、各プレイヤ1132又は特定の一プレイヤに対して、音声入力部1144を用いて、ゲームを適切にプレイするための指示を与えたり、プレイ状況に関するコメント(感想など)を伝えたりすることができる。
処理はステップ1214に進み、アテンダント装置1140の音声入力部1144は、アテンダント1134から音声情報を取得する。この音声情報は、アテンダント1134によって発せられた、プレイヤ1132に対してゲームの操作を案内する音声指示や、プレイヤ1132が行ったゲームプレイに対する音声コメントを含む。例えば、アテンダント1134は、プレイヤ1132の操作が適切でないと判断した場合に、適切なゲームの操作を案内する音声指示(例えば、「右に曲がってください」や「ペダルを速く漕いでください」等の発話)を行うことができる。あるいは、アテンダント1134は、プレイヤ1132のプレイを応援する又は褒める音声コメント(例えば、「頑張れ」や「すごい」等の発話)を発することもできる。音声を発することに加えて、アテンダント1134は、切換装置1146を操作して、複数のプレイヤ装置1120のうち少なくとも一つのプレイヤ装置1120を音声情報の宛先として選択することができる。アテンダント装置1140は、切換装置1146を介して、当該宛先のプレイヤ装置1120へ音声情報を送信する。アテンダント1134が切換装置1146を手動で操作することに代えて、切換装置1146が、アテンダント装置1140から送信された音声情報を音声認識し(例えば、音声情報に含まれるアテンダント1134から特定のプレイヤ1132への呼びかけを音声認識し)、その認識結果に従って宛先のプレイヤ装置1120を決定してもよい。
処理はステップ1216に進み、アテンダント1134によって選択されたプレイヤ装置1120は、アテンダント装置1140から送信された音声情報を取得し、当該音声情報を音声出力部1126から出力する。プレイヤ1132は、自分の近くに配置された音声出力部1126から音が発せられるため、それが自分に宛てられた音声指示又は音声コメントであることを確実に認識することができる。このように、アテンダント1134が操作支援対象のプレイヤ装置1120を音声情報の宛先として選択し、この音声情報を操作支援対象のプレイヤ装置1120の音声出力部1126から出力する。このため、操作支援対象のプレイヤ装置1120でプレイするプレイヤは、他のプレイヤに対してではなく、自分に宛てられた音声指示又は音声コメントであることを確実に認識することができ、適切な操作を行えていないプレイヤに対して的確に操作支援を行うことができる。
処理はステップ1218に進み、アテンダント装置1140から音声情報を取得したプレイヤ装置1120のプロセッサ202は、取得した音声情報を音声認識し、その認識結果に従って、可動式人形1128の所定部位がプレイヤ1132の身体の一部(例えば、頭、肩、腕、手、腰、脚など)に物理的に接触するように、可動式人形1128を駆動させる。音声情報の認識結果と、当該認識結果に対応する可動式人形1128の動作内容(例えば、可動式人形1128を動かす部位、当該部位を動かす量、速度など)との対応関係は、予め設定情報としてコンピュータ200のメモリ204に記憶されている。例えば、音声情報が「左へ旋回してください」という音声指示である場合、プロセッサ202は、当該音声情報を音声認識し、可動式人形1128の左腕がプレイヤ1132の左腕あるいは左手に接触するように、可動式人形1128を駆動する。あるいは、音声情報が「上昇してください」という音声指示である場合、プロセッサ202は、当該音声情報を音声認識し、可動式人形1128の両腕がプレイヤ1132の両脚に接触するように、可動式人形1128を駆動する。このように、音声情報の内容に応じて、プロセッサ202は、可動式人形1128がプレイヤ1132の身体に接触する位置を変化させる。
プレイヤ1132は、非透過型のHMD110を装着して仮想空間に没入しているため、ゲームプレイ中になされた当該プレイヤ1132への身体的接触が、可動式人形1128によるものであるのか、アテンダント1134によるものであるのかを判別することができない。一方、プレイヤ1132の耳元には、音声出力部1126からアテンダント1134が発した音声が聴こえている。従って、プレイヤ1132は、仮想空間に没入してゲームをプレイしている間に可動式人形1128により身体を接触されると、あたかも生身の人間であるアテンダント1134が自分のすぐそばにいて、ゲームの操作を案内したり応援してくれたりしているかのような感覚を得ることができる。
なお、可動式人形1128は、プロセッサ202による音声認識ではなく、アテンダント1134による手動操作に従って動くように構成されてもよい。例えば、アテンダント1134は、表示部1142に表示されたゲーム画像を見てプレイヤ1132のプレイ状況を把握し、音声入力部1144に向かって音声案内又は音声コメントを発するとともに、不図示のリモートコントローラを操作して可動式人形1128を手動で駆動するのであってもよい。
処理はステップ1220に進み、プロセッサ202は、ゲームが終了したか否かを判断する。この判断は、例えば、プレイヤ1132が操縦する仮想空間上の乗り物がゴールに到達したか否か、あるいはプレイヤ1132からゲーム終了コマンドが入力されたか否か等に基づいて行うことができる。ステップ1220においてゲームがまだ終了していないと判断された場合、処理はステップ1206に戻る。一方、ステップ1220においてゲームが終了したと判断された場合、処理はステップ1222において終了する。
以上に説明した方法1200では、ステップ1216において、アテンダント1134からの音声情報が音声出力部1126から出力された。しかしながら、別の態様として、コンピュータ200によって自動的に生成された音声情報を、アテンダント1134からの音声情報と併せて、又はアテンダント1134からの音声情報の代わりに、音声出力部1126から出力してもよい。例えば、プレイヤ1132にゲームの操作を案内する音声指示を、アテンダント1134が発話するのではなく、コンピュータ200が自動的に生成することとし、アテンダント1134は、プレイヤ1132を応援等するための音声コメントのみを発するのであってもよい。
具体的には、プロセッサ202は、ステップ1206の処理によって制御された(即ちプレイヤ1132の操作による)仮想空間上の乗り物の動きが適切であるか否かを、所定の基準(例えば、乗り物が通るべき推奨コース)との比較に基づいて判断する。乗り物の動きが適切ではないと判断した場合、プロセッサ202は、仮想空間上の乗り物に適切な動きをとらせる(例えば、乗り物の位置を推奨コースに近づける)のに必要な操作をプレイヤ1132に案内する音声指示を、自動的に生成して音声出力部1126から出力させる。また、音声出力部1126からは、アテンダント1134によって発せられた音声コメントも出力される。プロセッサ202は、自動生成した音声指示に従って可動式人形1128を駆動させてもよいし、アテンダント1134からの応援などの音声コメントに従って可動式人形1128を駆動させてもよい。この態様によれば、アテンダント1134は音声指示を行わず、音声コメントのみ発すればよいので、アテンダント1134の作業負荷を軽減することができる。また、アテンダント1134からの音声コメントに合わせて可動式人形1128が駆動されてプレイヤ1132の身体に接触した場合、プレイヤ1132は、あたかもアテンダント1134が自分のすぐそばにいて、ゲーム中に応援してくれているかのような感覚を得ることができる。
また、方法1200では、ステップ1216において、一人のアテンダント1134が発した音声情報が音声出力部1126から出力された。しかしながら、別の態様として、複数のアテンダント1134が発した音声情報を、音声出力部1126から出力してもよい。複数のアテンダント1134は、プレイヤ1132が興味を有する主アテンダント(不図示)と、プレイヤ1132が主アテンダントほどには興味を有しない副アテンダント(不図示)とを含む。一例として、プレイヤ1132が男性である場合、主アテンダントは女性、副アテンダントは男性であってよい。例えば、主アテンダントは、プレイヤ1132が行ったゲームプレイに対する音声コメントを発し、副アテンダントは、プレイヤ1132にゲームの操作を案内する音声指示を発する。可動式人形1128は、主アテンダントからの音声情報の内容に応じて駆動され、副アテンダントからの音声情報の内容に応じては駆動されないように構成されてもよい。
具体的には、コンピュータ200は、主アテンダントからの音声コメントを音声出力部1126から出力させるとともに、当該音声コメントを音声認識し、その認識結果に従って可動式人形1128を駆動させる。一方、コンピュータ200は、副アテンダントからの音声指示については、単に当該音声指示を音声出力部1126から出力させることだけを行い、当該音声指示に従って可動式人形1128を駆動することは行わない。主アテンダントは、音声指示を行わずに音声コメントのみ発すればよいので、主アテンダントの作業負荷を軽減することができる。また、他の例として、主アテンダントが音声指示を発し、副アテンダントが音声コメントを発し、可動式人形1128は、主アテンダントからの音声指示に従って駆動するように構成されてもよい。このように、本態様では、主アテンダントと副アテンダントの音声が音声出力部1126から出力されるとともに、主アテンダントの音声(音声指示又は音声コメント)に従って可動式人形1128が駆動される。したがって、プレイヤ1132は、あたかも主アテンダントが自分のすぐそばにいて、ゲームの操作を案内したり応援してくれたりしているかのような感覚を得ることができる。
さらに、方法1200では、複数のプレイヤ装置1120のうちアテンダント1134によって選択された特定のプレイヤ装置1120のみが、音声出力部1126から音声情報を出力し、可動式人形1128を駆動させた。しかしながら、他の態様として、音声情報については全てのプレイヤ装置1120の音声出力部1126から出力し、可動式人形1128の駆動については、当該選択された特定のプレイヤ装置1120においてのみ実施することとしてもよい。この場合、全てのプレイヤ1132が音声情報を聴くことになるが、可動式人形1128により接触されたプレイヤ1132のみが、その音声情報が自分に宛てられたものであると把握することができ、一方、可動式人形1128により接触されなかったプレイヤ1132は、音声情報を聴いたとしても、当該音声情報は自分宛ではないと判断することができる。
図13は、第2実施形態による方法1300のフローチャートである。第2実施形態では、仮想空間内で同じゲームをプレイしている複数のプレイヤのうち、先にゲームプレイを終了したプレイヤ(例えばプレイヤ装置1120Aのプレイヤ1132。以下、第1プレイヤ1132Aと記す)が、ゲームを継続している他のプレイヤ(例えばプレイヤ装置1120Bのプレイヤ1132。以下、第2プレイヤ1132Bと記す)へ音声指示又は音声コメントを送ることが可能である。第1プレイヤ1132A及び第2プレイヤ1132Bは、それぞれ複数人であってもよい。プレイヤ装置1120A及び1120Bは、第1プレイヤ1132Aがプレイヤ装置1120Aにおいてゲームプレイを終了するまでは、前述した第1実施形態による方法1200に従って処理を実施する。図13の方法1300のフローチャートは、第1プレイヤ1132Aがゲームプレイを終了した後に、各装置において実施される処理を示す。
方法1300の処理は、第1プレイヤ1132Aのプレイヤ装置1120Aにおいてゲームプレイが終了すると(方法1200におけるステップ1222)、ステップ1302において開始する。
処理はステップ1304、ステップ1306、及びステップ1308に順次進む。これらのステップの各処理は、それぞれ前述したステップ1204、ステップ1206、及びステップ1208の処理と同じである。したがって、第1プレイヤ1132Aがゲームプレイを終了した後も、第2プレイヤ1132Bのプレイヤ装置1120Bは、ゲームの処理を引き続き実施し、第2プレイヤ1132Bは、仮想空間内の乗り物の操縦を継続する。
処理はステップ1310に進み、プレイヤ装置1120Bのプロセッサ202は、方法1200のステップ1210と同様にしてゲーム画像を生成する。また、プレイヤ装置1120Bのプロセッサ202は、生成したゲーム画像を、方法1200のステップ1210と同じく当該プレイヤ装置1120BのHMD110及びアテンダント装置1140に出力するとともに、当該ゲーム画像を第1プレイヤ1132Aのプレイヤ装置1120Aにも出力する。第2プレイヤ1132Bは、HMD110に表示されたゲーム画像を見て、第1プレイヤ1132Aのゲームプレイ終了後も自分のゲームプレイを続行することができる。
ステップ1310の後、アテンダント装置1140においてステップ1312及びステップ1314が実施される。ステップ1312及びステップ1314の各処理は、それぞれ前述したステップ1212及びステップ1214の処理と同じである。アテンダント1134は、第1プレイヤ1132Aがゲームプレイを終了する前(第1実施形態)と同様に、表示部1142に表示された第2プレイヤ1132Bのゲーム画像を見ることができ、また音声入力部1144を介して第2プレイヤ1132Bに対する音声指示又は音声コメントを入力することもできる。
ステップ1310の後、第1プレイヤ1132Aのプレイヤ装置1120Aにおいて処理はステップ1316に進み、プレイヤ装置1120Aは、第2プレイヤ1132Bのプレイヤ装置1120Bから出力されたゲーム画像を取得し、当該プレイヤ装置1120AのHMD110に表示する。これにより、第1プレイヤ1132Aは、自分のゲームプレイが終了した後に、第2プレイヤ1132Bのゲーム画像を見ることができる。
処理はステップ1318に進む。第1プレイヤ1132Aは、HMD110に表示された第2プレイヤ1132Bのゲーム画像を見て、第2プレイヤ1132Bに対する音声指示又は音声コメントを発することができる。図11に示されるように、第1プレイヤ1132Aのプレイヤ装置1120Aは、第1プレイヤ1132Aが発した音声を取得するための音声入力部1138を備えている。ステップ1318において、音声入力部1138は、第1プレイヤ1132Aから音声指示又は音声コメントを取得し、取得した音声指示又は音声コメントを第2プレイヤ1132Bのプレイヤ装置1120Bへ送信する。このように、第1プレイヤ1132Aは、自分のゲームプレイを終了した後に、第2プレイヤ1132Bのゲームプレイを支援するアテンダントとして振る舞うことができる。
処理はステップ1320に進み、第2プレイヤ1132Bのプレイヤ装置1120Bは、アテンダント装置1140及び第1プレイヤ1132Aのプレイヤ装置1120Aから送信された音声情報を取得し、当該音声情報を音声出力部1126から出力する。第2プレイヤ1132Bは、アテンダント1134からの音声指示又は音声コメントに加えて、先にゲームプレイを終えた第1プレイヤ1132Aからの音声指示又は音声コメントも聴くことができる。
処理はステップ1322に進み、第2プレイヤ1132Bのプレイヤ装置1120Bは、方法1200のステップ1210と同様にして、アテンダント装置1140若しくはプレイヤ装置1120Aから取得された音声情報の音声認識、又は、アテンダント1134若しくは第1プレイヤ1132Aによる手動操作に従って、可動式人形1128を駆動させる。第1プレイヤ1132Aからの音声指示又は音声コメントに合わせて可動式人形1128が駆動される場合、第2プレイヤ1132Bは、あたかも第1プレイヤ1132Aが自分のすぐそばにいて、ゲームの操作案内や応援をしてくれているかのような感覚を得ることができる。
処理はステップ1324に進み、方法1200のステップ1210と同様にして、第2プレイヤ1132Bのゲームプレイが終了したか否かが判断される。第2プレイヤ1132Bのゲームプレイが終了していない場合、処理はステップ1304に戻り、第2プレイヤ1132Bのゲームプレイが終了すると、処理はステップ1326において終了する。
本実施形態によると、先にゲームプレイを終了した第1プレイヤ1132Aは、ゲームプレイを終了していない第2プレイヤ1132Bに対し音声指示や音声コメントを伝えることができるので、第1プレイヤ1132Aはゲームプレイ終了後も第2プレイヤ1132と一緒にゲームを楽しむことができる。特に、第1プレイヤ1132Aと第2プレイヤ1132Bとが友人同士である場合、第2プレイヤ1132Bは、音声出力部1126からの音声、及び当該音声に合わせた可動式人形1128による身体的接触によって、友人である第1プレイヤ1132Aからゲームプレイの応援等を受けているという感覚を得ることができるので、より嗜好性の高いゲームを実現することができる。
本開示の実施形態は、主に、プロセッサ202(もしくはコンピュータ200)又は方法1200若しくは1300として実施されるものとして説明された。しかし、本開示の実施形態が、プロセッサ202に方法1200若しくは1300を実行させるコンピュータプログラムとして実施することができることは、当業者にとって明らかであろう。
本開示の実施形態が説明されたが、これらが例示にすぎず、本開示の範囲を限定するものではないことが理解されるべきである。本開示の趣旨及び範囲から逸脱することなく、実施形態の変更、追加、改良等を適宜行うことができることが理解されるべきである。本開示の範囲は、上述した実施形態のいずれによっても限定されるべきではなく、特許請求の範囲及びその均等物によってのみ規定されるべきである。
また、上述した様々な実施形態では、非透過型のHMD装置によってユーザが没入する仮想空間を提供する例について説明したが、HMD装置として、透過型のHMD装置を採用してもよい。そのような実施形態においては、透過型のHMD装置を介してユーザが視認する現実空間に仮想オブジェクトを含む画像を重ねて表示することにより、拡張現実(AR:Augmented Reality)空間または複合現実(MR:Mixed Reality)空間におけるユーザ体験を提供してもよい。