JP2019114106A - 仮想体験を提供するためのプログラム、情報処理装置、及び情報処理方法 - Google Patents
仮想体験を提供するためのプログラム、情報処理装置、及び情報処理方法 Download PDFInfo
- Publication number
- JP2019114106A JP2019114106A JP2017247960A JP2017247960A JP2019114106A JP 2019114106 A JP2019114106 A JP 2019114106A JP 2017247960 A JP2017247960 A JP 2017247960A JP 2017247960 A JP2017247960 A JP 2017247960A JP 2019114106 A JP2019114106 A JP 2019114106A
- Authority
- JP
- Japan
- Prior art keywords
- area
- virtual
- view
- user
- virtual space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Processing Or Creating Images (AREA)
Abstract
【課題】仮想体験を提供するための処理負荷を低減する。【解決手段】画像表示装置を介して仮想体験をユーザに提供するためのコンピュータに、仮想体験を提供するための仮想空間を特定するステップと、ユーザの動き又は操作に応じて、仮想空間内の仮想視点からの視界を制御するステップと、仮想視点からの視界の範囲内に含まれる仮想空間の部分的空間である第1領域と、仮想空間における第1領域の外側の空間である第2領域とを特定するステップと、第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、第2領域に含まれる第2オブジェクトの状態を第1周期よりも長い第2周期で更新するステップと、第1オブジェクト及び第2オブジェクトの更新された状態に基づいて、仮想視点からの視界を表す視界画像を生成するステップと、視界画像を画像表示装置に表示させるステップと、を実行させるためのプログラムが提供される。【選択図】図11
Description
本開示は、仮想体験を提供するためのプログラム、情報処理装置、及び情報処理方法に関する。
近年、ユーザに仮想現実空間(VR空間。以下、仮想空間ともいう)を体験させることが可能な様々なデバイスが開発されている。例えば、ユーザは、ヘッドマウントディスプレイを装着して仮想空間内のアバターを操作することで、仮想空間上のゲームをプレイすることができる。ユーザの現実空間における位置や動きは、トラッキングセンサによって追跡され、それらがアバターに反映される。
ユーザに優れた仮想体験を提供するために、仮想空間を高品質な画像によって表現することが望まれる。しかしながら、高品質な画像の生成には、負荷の高い画像処理が要求される。特許文献1には、画面の各領域にレンダリング優先順位を割り当て、各領域のレンダリング優先順位に応じた画面更新頻度又はレンダリング解像度で画像をレンダリングする技術が開示されている。
特許文献1の技術では、画像をレンダリング(生成)する処理の段階で、各領域の更新頻度又は解像度を調整する必要があるため、依然として大きな負荷が必要とされる。
本開示は、上記の点に鑑みてなされたものであり、その目的の1つは、仮想体験を提供するための処理負荷を低減することにある。
上述した課題を解決するために、本開示の一態様は、画像表示装置を介して仮想体験をユーザに提供するためのコンピュータに、仮想体験を提供するための仮想空間を特定するステップと、前記ユーザの動き又は操作に応じて、前記仮想空間内の仮想視点からの視界を制御するステップと、前記仮想視点からの視界の範囲内に含まれる前記仮想空間の部分的空間である第1領域と、前記仮想空間における前記第1領域の外側の空間である第2領域とを特定するステップと、前記第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、前記第2領域に含まれる第2オブジェクトの状態を前記第1周期よりも長い第2周期で更新するステップと、前記第1オブジェクト及び前記第2オブジェクトの前記更新された状態に基づいて、前記仮想視点からの視界を表す視界画像を生成するステップと、前記視界画像を前記画像表示装置に表示させるステップと、を実行させるためのプログラムである。
本発明によれば、仮想体験を提供するための処理負荷を低減することができる。
[本開示の実施形態の説明]
最初に、本開示の実施形態の内容を列記して説明する。本開示の一実施形態は、以下のような構成を備える。
最初に、本開示の実施形態の内容を列記して説明する。本開示の一実施形態は、以下のような構成を備える。
(項目1)画像表示装置を介して仮想体験をユーザに提供するためのコンピュータに、仮想体験を提供するための仮想空間を特定するステップと、前記ユーザの動き又は操作に応じて、前記仮想空間内の仮想視点からの視界を制御するステップと、前記仮想視点からの視界の範囲内に含まれる前記仮想空間の部分的空間である第1領域と、前記仮想空間における前記第1領域の外側の空間である第2領域とを特定するステップと、前記第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、前記第2領域に含まれる第2オブジェクトの状態を前記第1周期よりも長い第2周期で更新するステップと、前記第1オブジェクト及び前記第2オブジェクトの前記更新された状態に基づいて、前記仮想視点からの視界を表す視界画像を生成するステップと、前記視界画像を前記画像表示装置に表示させるステップと、を実行させるためのプログラム。
(項目2)前記仮想視点からの視界の範囲内において前記ユーザが注視している又は注視することが期待される、前記仮想空間の部分的空間である注視領域を特定するステップを更に含み、前記第1領域を特定するステップにおいて、前記注視領域又は前記注視領域を基準に決定される範囲の領域を、前記第1領域と特定する、項目1に記載のプログラム。
(項目3)前記注視領域は、視線検出手段によって検出された前記ユーザの視線の方向、モーション検出手段によって検出された前記ユーザの頭部の向きに応じた前記仮想空間内の仮想カメラの視軸方向、又は前記仮想空間内におけるイベントの発生位置のいずれかに基づく領域である、項目2に記載のプログラム。
(項目4)前記第2領域は、前記第1領域からの距離に応じた複数の領域を含み、前記更新するステップにおいて、前記複数の領域のうち前記第2オブジェクトが属する領域の前記第1領域からの距離が大きいほど、より長い周期で当該第2オブジェクトの状態を更新する、項目1から3のいずれか1項に記載のプログラム。
(項目5)前記仮想視点からの視界は、前記ユーザによって操作される前記仮想空間内の第3オブジェクトからの視界を表し、前記第3オブジェクトの属性及び前記第3オブジェクトに関連する動的パラメータの少なくとも一方に基づいて、前記第1領域の大きさ、前記複数の領域の配置、及び前記複数の領域の各々に適用される周期の少なくとも1つが決定される、項目4に記載のプログラム。
(項目6)前記仮想視点からの視界の変化の速さに基づいて、前記第1領域の大きさ、前記複数の領域の配置、及び前記複数の領域の各々に適用される周期の少なくとも1つが決定される、項目4又は5に記載のプログラム。
(項目7)前記第2周期は、前記第2オブジェクトの属性に応じて設定される、項目1から3のいずれか1項に記載のプログラム。
(項目8)前記更新するステップにおいて、前記第2オブジェクトの状態の変化の速さが所定値よりも大きい場合、当該第2オブジェクトの状態を前記第2周期よりも短い第3周期で更新する、項目1から7のいずれか1項に記載のプログラム。
(項目9)前記更新するステップにおいて、前記仮想空間内のオブジェクト毎に当該オブジェクトの状態の更新を行う、項目1から8のいずれか1項に記載のプログラム。
(項目10)前記第1オブジェクトと前記第2オブジェクトは、別個のオブジェクトである、又は同一オブジェクトを構成する異なる部位に対応するサブオブジェクトである、項目1から9のいずれか1項に記載のプログラム。
(項目11)前記視界画像を生成するステップにおいて、前記第2周期よりも短い所定周期で前記視界に対応する画像をレンダリングして前記視界画像を生成する、項目1から10のいずれか1項に記載のプログラム。
(項目12)画像表示装置を介して仮想体験をユーザに提供するための情報処理装置であって、プロセッサと、プログラムを格納するメモリと、を備え、前記プログラムは、前記プロセッサによって実行されると、前記プロセッサに、仮想体験を提供するための仮想空間を特定するステップと、前記ユーザの動き又は操作に応じて、前記仮想空間内の仮想視点からの視界を制御するステップと、前記仮想視点からの視界の範囲内に含まれる前記仮想空間の部分的空間である第1領域と、前記仮想空間における前記第1領域の外側の空間である第2領域とを特定するステップと、前記第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、前記第2領域に含まれる第2オブジェクトの状態を前記第1周期よりも長い第2周期で更新するステップと、前記第1オブジェクト及び前記第2オブジェクトの前記更新された状態に基づいて、前記仮想視点からの視界を表す視界画像を生成するステップと、前記視界画像を前記画像表示装置に表示させるステップと、を実行させるように構成される、情報処理装置。
(項目13)ユーザの頭部に関連付けられた画像表示装置を介して当該ユーザに仮想体験を提供するための情報処理方法であって、仮想体験を提供するための仮想空間を特定するステップと、前記ユーザの動き又は操作に応じて、前記仮想空間内の仮想視点からの視界を制御するステップと、前記仮想視点からの視界の範囲内に含まれる前記仮想空間の部分的空間である第1領域と、前記仮想空間における前記第1領域の外側の空間である第2領域とを特定するステップと、前記第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、前記第2領域に含まれる第2オブジェクトの状態を前記第1周期よりも長い第2周期で更新するステップと、前記第1オブジェクト及び前記第2オブジェクトの前記更新された状態に基づいて、前記仮想視点からの視界を表す視界画像を生成するステップと、前記視界画像を前記画像表示装置に表示させるステップと、を含む情報処理方法。
[本開示の実施形態の詳細]
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図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と、コントローラ動作検知部910と、視界画像生成部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の傾きにより決定された視界方向を基準視線408として決定する。
ステップ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のフローチャートである。本開示の一実施形態において、コンピュータプログラムが、図11に示される各ステップをプロセッサ202(又はコンピュータ200)に実行させてもよい。また、本開示の別の実施形態は、方法1100を実行するプロセッサ202(又はコンピュータ200)として実施することができる。
以下、本開示の実施形態について具体的に説明する。ここでは、本開示の実施形態を適用することができる具体例として、ユーザが、当該ユーザのアバターが配置された仮想空間に没入して楽しむことができるゲームを想定する。しかし、本開示の実施形態は、必ずしもこのような態様に限定されない。本開示の実施形態が、特許請求の範囲において規定される範囲に含まれる様々な態様を取り得ることは、当業者にとって明らかであろう。
図12は、本実施形態において想定されるゲームの一態様例を概略的に説明する図である。この例では、ユーザ1212が、仮想空間1200上のゲームをプレイする。図12に示されるゲームは本実施形態の説明のための単なる例示にすぎず、他の任意の種類のゲーム又はゲーム以外のコンピュータアプリケーションが本実施形態に適用され得ることに留意すべきである。図12のゲームにおいて、ユーザ1212は、HMD110を頭部に装着し、さらにコントローラ160を把持して操作する。一例では、コントローラ160は、図8に関して上述した構成を有する。
仮想空間1200内には、ユーザ1212によって操作されるアバター1214、及びアバター1214がゲーム内で活動することができる空間であるゲームフィールド1222が配置される。ゲームフィールド1222は、複数のオブジェクトを含むように構成される。図12には、4つのオブジェクト1224A、1224B、1224C、及び1224D(以下、各々を区別しない時は、まとめて「オブジェクト1224」と記す)が示されている。これらのオブジェクト1224は、例えば、アバター1214以外のゲームキャラクタ、ゲームフィールド1222上に配置されたゲームアイテム、ゲームフィールド1222を構成する地面、建物、樹木、岩などの地形オブジェクト、及びゲームプレイ中のユーザ1212に様々な情報を視覚的に提示するためのユーザインターフェイス(UI)オブジェクト等のいずれかであってよい。仮想空間1200の外縁をなす天球面1202が、オブジェクトの1つとして取り扱われてもよい。ユーザ1212は、現実空間において例えばコントローラ160を用いて様々な操作を行うことによって、仮想空間1200内のアバター1214に、当該アバター1214の手1214Aと各オブジェクト1224とのインタラクションを行わせることもできる。
仮想空間1200内のアバター1214の位置に仮想カメラ1204が配置される。仮想カメラ1204は、アバター1214の視点から仮想空間1200を捉える。例えば、仮想カメラ1204が捉えるアバター1214の視点からの視界画像1210(前述したように、これは図4に示された視界領域410に対応する画像である)には、ゲームフィールド1222及びゲームフィールド1222上の各オブジェクト1224が含まれる。仮想カメラ1204によって得られた仮想空間1200の映像1210は、HMD110に表示される。ユーザ1212は、HMD110に表示された映像を見ることで、仮想空間1200をアバター1214の視点から視覚的に認識することができる。
仮想空間1200内に含まれる各オブジェクト1224は、当該オブジェクト1224の仮想空間1200における所在位置に応じて区別される。仮想空間1200は、仮想空間1200の部分的な空間である第1領域1250と、仮想空間1200の全体から第1領域1250を除いた残りの空間である第2領域1260とに区分けされる。第1領域1250は、ユーザ1212に提供される視界画像1210のうちユーザ1212が注目している部分に対応する空間である。図12の例において、第1領域1250は、仮想空間1200の天球面1202のうち視界領域410に含まれる部分に円形底面を有し、仮想カメラ1204の位置に頂点を有する、円錐1250の形状を備えた空間として示されている。また、円錐形状の領域1250の外側の空間が、第2領域1260である。図12に示されるように、オブジェクト1224A及び1224Bは第1領域1250の中に位置し、オブジェクト1224C及び1224Dは第2領域1260の中に位置している。このように、仮想空間1200内の各オブジェクト1224は、第1領域1250内に存在するオブジェクトと第2領域1260内に存在するオブジェクトに区別される。図12の例示的な配置において、ユーザ1212は、第1領域1250に含まれる2つのオブジェクト1224A及び1224Bに注目している。しかしながら、ユーザ1212は、視界画像1210内に視認可能ではあるが第2領域1260(即ち第1領域1250の外側)に含まれているオブジェクト1224C及び1224Dには、注意を向けていない。
図13は、図12に示される仮想空間1200内の三次元部分空間である第1領域1250及び第2領域1260を、視界画像1210に重ねて二次元的に示す図である。図13において、円錐形状の立体的な第1領域1250が、円Cによって平面上に表されている。円Cの内側の領域1310が図12の第1領域1250に対応し、円Cの外側の領域1320が図12の第2領域1260に対応する。図12における各オブジェクト1224の配置に対応して、視界画像1210の領域1310内には、ユーザ1212が注目しているオブジェクト1224A及び1224Bが含まれ、視界画像1210の領域1320内には、ユーザ1212が注目していないオブジェクト1224C及び1224Dが含まれる。
図12において、第1領域1250は、例えば、仮想カメラ1204の向き(即ち図4に示される基準視線408の方向)に応じて、その配置が定められる。一例として、第1領域1250は、基準視線408を中心とした所定の大きさの立体角で囲まれる円錐形の空間として画定されるのであってよい。前述したように、基準視線408を基準として視界領域410(視界画像1210)が決定される。したがって、仮想カメラ1204の向きに応じて第1領域1250を定める場合には、第1領域1250は、視界領域410に対して固定の相対位置に配置されることになる。例えば、第1領域1250は、図13の領域1310(円C)が視界画像1210の中心に位置するように、視界領域410に対して固定された位置に配置される。これにより、ユーザ1212がHMD110を動かすと、HMD110の動きに追従して、天球面1202上の視界領域410及び視界領域410に対して固定された第1領域1250が、仮想空間1200を移動する。
上記の例に代えて、第1領域1250は、視界画像1210内でユーザ1212が実際に視線を向けている方向に応じて、その配置が定められてもよい。例えば、第1領域1250は、注視センサ140を用いて検出されるユーザ1212の視線N0(図5参照)に対応する仮想空間1200内の方向を中心とした、所定の大きさの立体角で囲まれる円錐形の空間として画定されるのであってよい。このようにユーザ1212の実際の視線N0の方向に応じて第1領域1250を定める場合には、第1領域1250は、視界領域410(視界画像1210)に対して任意の相対位置に配置され得る。例えば、ユーザ1212がHMD110を静止させたまま視線を動かすと、視界領域410の移動は生じないが、注視センサ140によって検出された視線N0の動きに追従して、第1領域1250が、視界領域410との相対位置を変化させるように仮想空間1200を移動する。またこの時、第1領域1250に対応する図13の領域1310(円C)も、第1領域1250の移動に合わせて視界画像1210上を移動する。
更に別の例において、第1領域1250の配置は、ゲーム内の所定のイベントの発生位置に基づいて決定されるのであってもよい。一例として、第1領域1250は、仮想カメラ1204とイベントの発生位置とを結んだ直線を中心とした、所定の大きさの立体角で囲まれる円錐形の空間として画定されるのであってよい。イベントの発生位置は通常、仮想空間1200のXYZ座標値を用いて定義される。したがって、この例においては、第1領域1250は、視界領域410の位置とは無関係に、仮想空間1200を基準とした位置に配置される。もし第1領域1250が視界領域410と重なりを有していなければ、ユーザ1212は、HMD110を適切な向きに動かして視界領域410を移動させることで、第1領域1250が視界画像1210内に入るようにすることができる。
上記の説明では、第1領域1250は円錐形の空間であると想定されている。しかしながら、これは限定的であると解されるべきではない。例えば、第1領域1250は、任意の底面形状を有する任意の錐体、錐台、柱体、又はこれらに類似する任意の立体の形状を有する空間として規定されてもよい。
図11に戻り、処理はステップ1102において開始する。プロセッサ202は、メモリ204に格納されているアプリケーションデータ932に含まれるゲームプログラムを読み出して実行する。
処理はステップ1104に進み、プロセッサ202は、仮想空間データ928及びオブジェクトデータ930等に基づいて、図12に示されるような仮想空間1200を特定する。前述したように、仮想空間1200は、ユーザ1212のアバター1214、仮想カメラ1204、及びゲームフィールド1222を含み、ゲームフィールド1222は、複数のオブジェクト1224を含む。仮想空間データ928は、アバター1214、仮想カメラ1204、及び各オブジェクト1224の、仮想空間1200内の初期配置位置を規定する。オブジェクトデータ930は、これらの様々なオブジェクトのそれぞれに関する各種のプロパティ(例えば、アバター1214の容姿及びゲーム内の各種能力値等、ゲームフィールド1222上の各オブジェクト1224の形状、大きさ、色彩、及び模様等)を規定する。プロセッサ202は、メモリ204から仮想空間データ928及びオブジェクトデータ930を読み出し、当該読み出したデータに従って各オブジェクトを配置することによって、仮想空間1200を特定する。
処理はステップ1106に進み、プロセッサ202は、ユーザ1212の頭部の動きに応じて、仮想空間1200における仮想視点(仮想カメラ1204の位置)からの視界を制御する。例えば、ユーザ1212が頭部に装着したHMD110の位置及び傾きが、所定の時間間隔で連続的にトラッキングセンサ120によって検出される。プロセッサ202は、検出されたHMD110の位置に対応した仮想空間1200内の位置を仮想視点と定め、当該仮想視点に仮想カメラ1204を配置する。またプロセッサ202は、トラッキングセンサ120によって検出されたHMD110の傾きに対応した仮想空間1200内の方向を基準視線(図4に示される基準視線408)と定め、当該基準視線の方向に仮想カメラ1204を配向させる。図4を参照して前述されたように、仮想カメラ1204の位置と基準視線(基準視線408)とによって、仮想空間1200においてユーザ1212が視認できる視界(例えば図4及び図12に示されるような視界領域410)が決定される。このように、ユーザ1212が頭部を動かすと、その動きに連動するように、仮想カメラ1204によって捉えられる視界が変化する。
ステップ1106において、プロセッサ202は、ユーザ1212がコントローラ160を使用して行う操作に応じて、仮想視点からの視界を制御してもよい。例えば、仮想カメラ1204の位置を制御するためのユーザ操作が、図8に示される右コントローラ800のアナログスティック818を利用して入力され、仮想カメラ1204の向き(即ち基準視線408)を制御するためのユーザ操作が、図8の右コントローラ800と同様の構成を備える左コントローラのアナログスティック818を利用して入力される。あるいは、ユーザ操作は、ユーザ1212がコントローラ160(例えば右コントローラ800及び左コントローラ)を左右、前後、若しくは上下の方向に動かす操作、又はヨー軸、ピッチ軸、若しくはロール軸の回りに傾ける(回転させる)操作であってもよく、そのようなコントローラ160の動きが、トラッキングセンサ120又はコントローラ160に内蔵されたモーションセンサ130によって検出されてもよい。プロセッサ202は、これらのユーザ操作に従って、仮想カメラ1204をユーザ1212が指示した位置及び向きに配置させる。このように、ユーザ1212は、コントローラ160を用いて仮想カメラ1204からの視界を変化させることもできる。
処理はステップ1108に進み、プロセッサ202は、ユーザ1212の動きに応じて、仮想空間1200内のアバター1214を動かす。例えば、ユーザ1212が把持するコントローラ160の位置及び傾きが、トラッキングセンサ120又はモーションセンサ130によって検出される。プロセッサ202は、検出されたコントローラ160の位置及び傾きと整合するように、仮想空間1200におけるアバター1214の手1214Aの動きを制御する。これにより、ユーザ1212は、仮想空間1200内でアバター1214の手1214Aを動かしてオブジェクト1224とのインタラクションをする(例えば、アバター1214の手1214Aでオブジェクト1224を触る)ことができる。また上述したように、HMD110の位置及び傾きがトラッキングセンサ120によって検出される。プロセッサ202は、検出されたHMD110の位置及び傾きと整合するように、仮想空間1200におけるアバター1214の頭部の位置及び傾きを決定する。プロセッサ202は更に、アバター1214の全身の姿勢が、当該決定した頭部の位置及び傾きとの関係において自然な姿勢となるように、アバター1214の頭部以外の部位を制御する。これにより、ユーザ1212は、例えば、前後左右に歩くことで仮想空間1200内のアバター1214を前後左右に動かすことができ、また頭(HMD110)の位置を下げることで、アバター1214をしゃがませることもできる。
処理はステップ1110に進み、プロセッサ202は、仮想空間1200において注視領域を特定する。注視領域は、仮想カメラ1204によって捉えられる仮想視点からの視界全体のうち、ユーザ1212が実際に注視しているか、又はユーザ1212が注視することが期待される仮想空間1200の部分的な空間である。人間の視覚の特性上、ユーザ1212は注視領域の近傍しかはっきりと見えておらず、注視領域の外側はぼんやりとしか見えていない。注視領域は、例えば以下に例示するような領域として決定することができる。
第1の例において、注視領域は、仮想カメラ1204の視軸方向に基づいて決定されるのであってよい。ステップ1106に関して前述したように、仮想カメラ1204は、その視軸がHMD110の傾きに対応した基準視線408の方向を向くように配向される。プロセッサ202は、例えば、仮想空間1200における仮想視点、即ち仮想カメラ1204の位置を頂点とし、仮想空間1200における基準視線408の方向、即ち仮想カメラ1204の視軸方向を中心軸とする、所定の大きさの頂角を有する円錐形の空間(例えば図12に示される空間1250)を注視領域と特定する。一態様において、基準視線408は、仮想カメラ1204が捉える視界領域410の中心点を通る。したがって、この第1の例では、視界領域410の中心点及びその周辺近傍部分を含むように、注視領域が設定される。視界領域410のうち、その中心点及び中心点の近傍は、一般的にユーザ1212が注視する可能性が高いと考えられる部分である。
第2の例において、注視領域は、ユーザ1212の視線方向に基づいて決定されてもよい。前述したように、注視センサ140を用いてユーザ1212の視線N0が検出される。プロセッサ202は、例えば、仮想空間1200における仮想視点(仮想カメラ1204の位置)を頂点とし、検出されたユーザ1212の視線N0に対応する仮想空間1200内の方向を中心軸とする、所定の大きさの頂角を有する円錐形の空間(例えば図12に示される空間1250)を注視領域と特定する。この第2の例では、仮想空間1200における実際のユーザ1212の視線N0を取り囲む近傍領域が、注視領域として設定される。したがって、第2の例における注視領域は、仮想空間1200のうちユーザ1212が実際に注視している部分を表す。ユーザ1212が視線を動かすことによって視線N0の方向が変化すると、それに応じて第2の例の注視領域の位置も変化する。
第3の例において、注視領域は、ゲーム内における特定のイベントの発生位置に基づいて決定されるのであってもよい。例示的なゲーム内イベントは、ゲームのある登場キャラクタが別のキャラクタと会話をすること、ゲームのストーリーの進行に影響する何らかの事件が起きること、及びユーザ1212に仮想空間1200内の次に進むべき場所を案内すること等を含む。このような様々なイベントの発生位置は、仮想空間1200のXYZ座標値を用いて予め固定的に設定されるか、又はゲーム中のアバター1214の行動に応じて動的に決定することができる。プロセッサ202は、例えば、仮想空間1200における仮想視点(仮想カメラ1204の位置)を頂点とし、仮想視点とイベントの発生位置とを結んだ直線を中心軸とする、所定の大きさの頂角を有する円錐形の空間(例えば図12に示される空間1250)を注視領域と特定する。イベント発生位置が現在のユーザ1212の実際の注視点と乖離している場合、プロセッサ202は、現在の注視点から本来のイベント発生位置へ向かって所定の軌道上を所定のスピードで移動する点を、暫定的なイベント発生位置として取り扱ってもよい。この第3の例では、ユーザ1212がゲームを進行させるにあたって注視しておくことが望まれる仮想空間1200内の場所を含む領域が、注視領域として設定される。
処理はステップ1112に進み、プロセッサ202は、仮想空間1200において第1領域1250を特定する。一態様による第1領域1250が、図12を参照して既に説明された。第1領域1250は、注視領域に基づいて特定される。プロセッサ202は、例えば、上述のステップ1110において特定された仮想空間1200の注視領域を、第1領域1250と特定する。別の例において、プロセッサ202は、上述のステップ1110において特定された仮想空間1200の注視領域を基準に決定される範囲の領域、例えば、注視領域を包含し注視領域よりも一回り大きな領域を、第1領域1250と特定してもよい。
処理はステップ1114に進み、プロセッサ202は、仮想空間1200において第2領域1260を特定する。図12を参照して前述したように、第2領域1260は、仮想空間1200の全体から第1領域1250を除いた残りの空間(即ち第1領域1250の外側の空間)として特定される。
処理はステップ1116に進み、プロセッサ202は、仮想空間1200に含まれる各オブジェクト1224が第1領域1250又は第2領域1260のいずれに属するかを判定する。図12の例示的な配置において、オブジェクト1224A及び1224Bは第1領域1250に、オブジェクト1224C及び1224Dは第2領域1260に、それぞれ属するとの判定がなされる。
ステップ1116の判定にあたり、ある特定の1つのオブジェクト1224が第1領域1250と第2領域1260の両方に跨って存在していることがあり得る。そのような場合には、プロセッサ202は、当該オブジェクト1224を、第1領域1250に属しているとして取り扱ってもよいし、あるいは第2領域1260に属しているとして取り扱ってもよい。別の態様において、プロセッサ202は、当該オブジェクト1224を、第1領域1250に含まれる部分と第2領域1260に含まれる部分とに分割して取り扱うこととしてもよい。更に、第1領域1250と比べてサイズが比較的大きいオブジェクト1224(例えば、巨人や巨大モンスター、又はオブジェクトとしての天球面1202等)は、それぞれが当該大きなオブジェクト1224の異なる各部位(例えば、頭、首、胴体上部、胴体下部、上腕部、前腕部、上腿部、下腿部、又はこれらよりも更に細分化された部位)に対応する複数のサブオブジェクトの集合として構成されてもよく、プロセッサ202は、当該大きなオブジェクト1224を単位としてではなく、このようなサブオブジェクト毎に、第1領域1250に属するか第2領域1260に属するかを判定するのであってもよい。
オブジェクト1224(又はサブオブジェクト。以下、文脈に応じて「オブジェクト」との記載は「サブオブジェクト」を含むものとする)が第1領域1250に属すると判定された場合、処理はステップ1118に進み、プロセッサ202は、当該オブジェクト1224の状態を第1周期で更新する。一方、オブジェクト1224が第2領域1260に属すると判定された場合、処理はステップ1120に進み、プロセッサ202は、当該オブジェクト1224の状態を第1周期よりも長い第2周期で更新する。図12の例示的な配置において、第1領域1250に含まれるオブジェクト1224A及び1224Bは、第1周期で状態が更新され、第2領域1260に含まれるオブジェクト1224C及び1224Dは、より長い第2周期で状態が更新される。
第1周期及び第2周期の長さは、適宜の方法で設定することができる。例えば、視界画像1210のフレームレートを基準に第1周期及び第2周期の長さが設定されてよい。一例として、視界画像1210のフレームレートは90フレーム/秒であり得る。この特定の数値例の場合、第1周期の長さは、例えばフレームレートに対応する1/90秒に設定されるのであってよく、第2周期の長さは、例えばフレームレートに対応する時間長の2倍である2/90秒(あるいはnを2以上の整数としてn/90秒)に設定されるのであってよい。
一態様において、オブジェクト1224の「状態」とは、仮想空間1200における当該オブジェクト1224の現在位置のことである。例えば、図12を参照すると、各オブジェクト1224は、ゲーム内の人物キャラクタ、動物若しくはモンスターなどの非人物キャラクタ、車、バイク、若しくは飛行機などの乗用移動体、又はその他の移動体であってよく、これらのオブジェクト1224は、コンピュータ制御により、又はネットワーク192を介した他のユーザからの操作に従って、それぞれ独立して仮想空間1200内を移動しているのであってよい。仮想空間1200における各オブジェクト1224の現在位置を特定するために、プロセッサ202及びメモリ204においてある量の計算負荷が発生する。ステップ1118の処理によって、第1領域1250内のオブジェクト1224A及び1224Bの現在位置の更新は、例えばフレームレートと同じ1/90秒毎に行われ、ステップ1120の処理によって、第2領域1260内のオブジェクト1224C及び1224Dの現在位置の更新は、例えばフレームレートよりも遅い2/90秒毎に行われる。したがって、第2領域1260に属するオブジェクト1224C及び1224Dについて、現在位置の特定に関わる計算負荷を削減することができる。第2領域1260はユーザ1212が注視していない領域であるため、第2領域1260内のオブジェクト1224C及び1224Dについて現在位置の更新頻度が低下しても、そのことにユーザ1212が気付く可能性は低い。一方、ユーザ1212が注視している第1領域1250に含まれるオブジェクト1224A及び1224Bについては、より高い頻度で現在位置が更新されるので、それらのオブジェクト1224A及び1224Bに対するユーザ1212の視認体験を高く維持することができる。
別の態様において、オブジェクト1224の「状態」は、当該オブジェクト1224の外観、又は当該オブジェクト1224の表面に付加される視覚的表現であってよい。例えば、図12の各オブジェクト1224は、その形状、大きさ、色、模様(例えばオブジェクト1224の表面に貼り付けられたテクスチャ)などを経時的に変化させるように構成され得る。また、各オブジェクト1224の表面の少なくとも一部に、アニメーション又は動画像が表示されてもよい。このようにオブジェクト1224の外観又は視覚的表現を時々刻々変化させるために、プロセッサ202及びメモリ204は各時刻において所定の計算負荷を必要とする。ステップ1118の処理によって、第1領域1250に含まれるオブジェクト1224A及び1224Bの外観又は視覚的表現は、例えばフレームレートと同じ1/90秒毎に更新され、ステップ1120の処理によって、第2領域1260に含まれるオブジェクト1224C及び1224Dの外観又は視覚的表現は、例えばフレームレートよりも遅い2/90秒毎に更新される。これにより、上記と同様に、ユーザ1212が注視していない第2領域1260に属するオブジェクト1224C及び1224Dについては、ユーザ1212の視認体験を低下させることなく、動的に変化する外観及び視覚的表現を提供するための計算負荷を削減することができる。また、ユーザ1212が注視している第1領域1250内のオブジェクト1224A及び1224Bについては、ユーザ1212の視認体験を高く維持することができる。
更に別の態様において、オブジェクト1224の「状態」は、ユーザ1212への提示のために当該オブジェクト1224の表面に表示される通知情報であってもよい。例えば、図12のオブジェクト1224の少なくとも1つは、ユーザ1212に様々な情報を視覚的に提示するためのユーザインターフェイス(UI)オブジェクトであってよく、このUIオブジェクトには、例えば、ゲームの進行状況、ユーザ1212が獲得したゲームスコア、ゲーム内のアバター1214に関する各種ステータス(体力値、攻撃力、防御力等)などの通知情報が表示されるのであってよい。ゲームの進行に応じて随時変化し得る通知情報を作成するために、プロセッサ202及びメモリ204はある量の計算負荷を必要とする。UIオブジェクトが第1領域1250内に存在する場合、ステップ1118の処理によって、通知情報の更新は例えばフレームレートと同じ1/90秒毎に行われ、UIオブジェクトが第2領域1260内に存在する場合、ステップ1120の処理によって、通知情報の更新は例えばフレームレートよりも遅い2/90秒毎に行われる。これにより、上記と同様に、計算負荷の削減と視認体験の確保を実現することができる。
処理はステップ1118又はステップ1120からステップ1122に進む。ステップ1122において、プロセッサ202は、所定のフレームレートで視界画像1210を生成する。前述したように、視界画像1210は、仮想カメラ1204で仮想視点から仮想空間1200を捉えた、視界領域410の範囲に対応する画像である。視界画像1210の中には、第1領域1250に属するオブジェクト1224A及び1224Bと、第2領域1260に属するオブジェクト1224C及び1224Dが含まれている。フレームレートを90フレーム/秒、第1周期の長さを1/90秒、第2周期の長さを2/90秒とする前述の数値例に再び言及すると、第1領域1250内のオブジェクト1224A及び1224Bの状態(例えば現在位置)は1/90秒毎に、第2領域1260内のオブジェクト1224C及び1224Dの状態は2/90秒毎にそれぞれ更新され、視界画像1210は1/90秒毎に生成される。したがって、あるフレームの視界画像1210において第1領域1250及び第2領域1260内の全オブジェクト1224の状態が更新されているとすると、その1/90秒後の次のフレームの視界画像1210においては、第1領域1250内のオブジェクト1224A及び1224Bについてのみ状態の更新が行われ、第2領域1260内のオブジェクト1224C及び1224Dは、状態が更新されることなく(例えば現在位置を特定する処理が実行されることなく)依然として1つ前のフレームと同じ状態をそのまま保有している。このように当該次のフレームでは、状態が更新されたオブジェクトと状態が更新されていないオブジェクトに基づいて、1枚の視界画像1210が生成される。
なお、上記のように第2領域1260内のオブジェクト1224C及び1224Dの状態が更新されないフレームが生じることによって、視界画像1210のうちの第2領域1260に相当する周縁部分の画質が実質的に低下し得る。具体的には、視界画像1210の第1領域1250に相当する中央部分に比べ、第2領域1260に相当する周縁部分の動きが粗くなり得る(カクつき得る)。しかしながら、例えばVRゲームのように高フレームレート(一例として90fps)が要求される場合には、低フレームレートの場合に比べ、フレームレートが多少低下しても、画質の低下にはつながりにくい(画質の低下は目立ちにくい)。更に、HMD110は表示部112に表示した画像を広角レンズを介してユーザ1212に視認させるように構成されており、そのような構成においては、構造上の特性として、広角レンズを通過した像の周縁部分にレンズによる歪みが誘起され得る。したがって、第2領域1260内のオブジェクト1224C及び1224Dの状態更新頻度の低下によってもたらされる視界画像1210の周縁部分における画質低下は、HMDシステム100にとって大きな問題とはならない。
処理はステップ1124に進み、プロセッサ202は、視界画像1210をHMD110の表示部112に表示させる。ユーザ1212は、視界画像1210を視認することにより、仮想空間1200に没入する体験を味わうことができる。
方法1100は、上述された各ステップに加えて更に付加的なステップを含んでもよい。例えば、方法1100は、第2領域1260に属するオブジェクト1224C及び1224Dの状態を更新する際の第2周期の長さを、オブジェクト1224C及び1224Dの属性に基づいて決定するステップを含むのであってよい。例示的に、オブジェクトの属性としてオブジェクトの重要度が利用され得る。例えば、仮想空間1200に存在する各オブジェクト1224の重要度が、メモリ204内のオブジェクトデータ930に規定されている。一例として、ゲームのストーリーの進行に大きな影響を及ぼすオブジェクトには相対的に高い重要度が与えられ、そうでないオブジェクトには相対的に低い重要度が与えられる。プロセッサ202は、第2領域1260内のオブジェクト1224C及び1224Dの重要度をオブジェクトデータ930から特定し、当該特定された重要度に基づいて第2周期の長さを決定する。例えば、プロセッサ202は、オブジェクト1224Cの重要度とオブジェクト1224Dの重要度の平均値が大きい(重要度が高い)ほど、第2周期の長さを短く(但し第1周期の長さよりは長く)設定し、当該平均値が小さい(重要度が低い)ほど、第2周期の長さを長く設定するのであってよい。別の例において、プロセッサ202は、オブジェクト毎に異なる第2周期を設定してもよい。一例として、オブジェクト1224Cの重要度がオブジェクト1224Dの重要度よりも高い場合、プロセッサ202は、オブジェクト1224Cに対して適用される第2周期の長さを相対的に短く(例えば2/90秒に)設定し、オブジェクト1224Dに対して適用される第2周期の長さを相対的に長く(例えば3/90秒に)設定するのであってもよい。これにより、ユーザ1212が注視していない第2領域1260に重要なオブジェクト1224が存在していた場合に、当該オブジェクト1224に対するユーザ1212の視認体験を相対的に向上させることができる。
また、方法1100は、第2領域1260に属するオブジェクト1224C及び1224Dの状態を更新する際の第2周期の長さを、オブジェクト1224C及び1224Dの状態の変化の速さに基づいて決定するステップを含んでもよい。例えば、プロセッサ202は、第2領域1260内のオブジェクト1224C及び1224Dの移動速度をそれぞれ計算し、移動速度が所定値よりも大きいオブジェクトに対しては相対的に短い第2周期を適用し、移動速度が所定値よりも小さいオブジェクトに対しては相対的に長い第2周期を適用するのであってよい。これにより、仮想空間1200内を高速で移動するオブジェクト1224が、ユーザ1212が注視していない第2領域1260に存在している場合であっても、視界画像1210における当該オブジェクト1224の表示をより滑らかにすることができ、ユーザ1212の視認体験をより一層向上させることができる。
図14は、本開示の別の態様による第2領域1270を示す図である。前述した図13と同様に、図14は、三次元の第1領域1250及び第2領域1270を視界画像1210に重ねて二次元的に示しており、図中の円Cの内側の領域1310、及び円Cの外側の領域1320が、それぞれ第1領域1250と第2領域1270に対応する。第1領域1250は、図12及び図13を参照して上述された第1領域1250と同じものである。図を簡潔にするため、図14においてオブジェクト1224は省略されている。
本態様の第2領域1270は、第1領域1250からの距離に応じた複数のサブ領域1271、1272、及び1273を含むように構成される。図14には、円Cと同心円状であって円Cよりも大きい半径を有する2つの円C1及びC2が、内側からこの順に示されている。図14において、円Cと円C1の間の領域1321がサブ領域1271に、円C1と円C2の間の領域1322がサブ領域1272に、円C2の外側の領域がサブ領域1273に、それぞれ対応する。このように、仮想空間1200の一部分である第2領域1270は、円錐形を有した第1領域1250の周りを取り囲むサブ領域1271と、サブ領域1271の更に外側を取り囲むサブ領域1272と、更にこのサブ領域1272の外側に位置するサブ領域1273とに区分けされる。
図14に示される態様において、プロセッサ202は、第1領域1250に属するオブジェクト1224の状態を第1周期で更新し、サブ領域1271に属するオブジェクト1224の状態を第1周期よりも長い第2周期で更新し、サブ領域1272に属するオブジェクト1224の状態を第2周期よりも長い第3周期で更新し、サブ領域1273に属するオブジェクト1224の状態を第3周期よりも長い第4周期で更新する。オブジェクト1224は、その所在位置が第1領域1250から離れる(即ちユーザ1212の視線から離れる)ほど、ゆっくりとした周期で状態の更新が行われる。これにより、オブジェクト1224の状態の更新に関わる計算負荷をより効率的に低減することができるとともに、ユーザ1212の視認体験の低下も抑えることができる。
図14には3つのサブ領域1271、1272、及び1273が示されているが、これは例示にすぎず、限定的であると理解されるべきではない。第2領域1270は、任意の数のサブ領域に、任意の細かさで区分けされるのであってよく、これらの各サブ領域に対して設定されるオブジェクト1224の状態更新のための周期は、当該サブ領域の第1領域1250からの距離が遠くなるほど、より長い周期に設定されるのであってよい。また、個々のサブ領域の形状も、上述されるような環状(又は筒状)の形状には限定されず、任意の形状を有していてよい。
図12乃至図14の態様において、第1領域1250の大きさ、各サブ領域の配置(即ち、第2領域1270を構成するサブ領域の数、及びそれら各サブ領域の大きさ)、並びに第1領域1250及び各サブ領域に適用される、オブジェクト1224の状態更新のための周期は、様々な基準に基づいて定めることができる。そのような基準として、例えば、アバター1214の属性、又はアバター1214に関連する動的パラメータが利用可能である。一例として、アバター1214が熟練したゲームキャラクタ(例えばベテランの兵士)である場合と、アバター1214が未熟なゲームキャラクタ(例えば新米の兵士)である場合とで、第1領域1250の大きさが異なるように設定されてよく、各サブ領域の配置、及び各領域のオブジェクトの状態更新周期についても同様である。また別の例として、アバター1214の体力値が低下したら、第1領域1250が小さく(又は大きく)なるように変更が行われてもよい。同様に、各領域のオブジェクトの状態更新周期がアバター1214の体力値に応じて変化してもよい。
更に、仮想空間1200における仮想カメラ1204の移動又は回転に伴う視界領域410の変化の速さに基づいて、第1領域1250の大きさ、各サブ領域の配置、及び各領域のオブジェクトの状態更新周期が定められてもよい。一例として、仮想カメラ1204の回転速度が速いほど、第1領域1250が小さく設定されるのであってよい。仮想カメラ1204の動きが速いほどユーザ1212は視界画像1210の周辺部分を視認しにくくなるので、当該周辺部分に対応するサブ領域に存在するオブジェクト1224の状態更新周期を長くしても、ユーザ1212の視認体験にはほとんど影響がなく、また当該オブジェクト1224の状態更新周期を長くすることによって、計算負荷の低減を実現することができる。
本開示の実施形態は、主に、プロセッサ202(もしくはコンピュータ200)又は方法1100として実施されるものとして説明された。しかし、本開示の実施形態が、プロセッサ202に方法1100を実行させるコンピュータプログラムとして実施することができることは、当業者にとって明らかであろう。
本開示の実施形態が説明されたが、これらが例示にすぎず、本開示の範囲を限定するものではないことが理解されるべきである。本開示の趣旨及び範囲から逸脱することなく、実施形態の変更、追加、改良等を適宜行うことができることが理解されるべきである。本開示の範囲は、上述した実施形態のいずれによっても限定されるべきではなく、特許請求の範囲及びその均等物によってのみ規定されるべきである。
また、上述した様々な実施形態では、非透過型のHMD装置によってユーザが没入する仮想空間を提供する例について説明したが、HMD装置として、透過型のHMD装置を採用してもよい。そのような実施形態においては、透過型のHMD装置を介してユーザが視認する現実空間に仮想オブジェクトを含む画像を重ねて表示することにより、拡張現実(AR:Augmented Reality)空間または複合現実(MR:Mixed Reality)空間におけるユーザ体験を提供してもよい。
100…HMDシステム、110…HMD、112…表示部、114…センサ、120…トラッキングセンサ、130…モーションセンサ、140…注視センサ、150…サーバ、160…コントローラ、190…ユーザ、192…ネットワーク、200…コンピュータ、202…プロセッサ、204…メモリ、205…通信制御部、206…ストレージ、208…入出力インターフェース、210…通信インターフェース、212…バス、400…仮想空間、402…仮想空間画像、404…仮想カメラ、406…中心、408…基準視線、410…視界領域、602、702…領域、800…コントローラ、802…グリップ、804…フレーム、806…天面、808、810、814、816…ボタン、818…アナログスティック、902…仮想空間特定部、903…HMD動作検知部、904…視線検知部、906…基準視線決定部、908…視界領域決定部、910…コントローラ動作検知部、912…視界画像生成部、926…視界画像出力部、928…仮想空間データ、930…オブジェクトデータ、932…アプリケーションデータ、934…その他のデータ、1200…仮想空間、1202…天球面、1204…仮想カメラ、1210…視界画像、1212…ユーザ、1214…アバター、1214A…アバターの手、1222…ゲームフィールド、1224(A〜D)…オブジェクト、1250…第1領域、1260…第2領域、1270…第2領域、1271〜1273…サブ領域、1310…円Cの内側の領域、1320…円Cの外側の領域、1321…円Cと円C1の間の領域、1322…円C1と円C2の間の領域
Claims (13)
- 画像表示装置を介して仮想体験をユーザに提供するためのコンピュータに、
仮想体験を提供するための仮想空間を特定するステップと、
前記ユーザの動き又は操作に応じて、前記仮想空間内の仮想視点からの視界を制御するステップと、
前記仮想視点からの視界の範囲内に含まれる前記仮想空間の部分的空間である第1領域と、前記仮想空間における前記第1領域の外側の空間である第2領域とを特定するステップと、
前記第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、前記第2領域に含まれる第2オブジェクトの状態を前記第1周期よりも長い第2周期で更新するステップと、
前記第1オブジェクト及び前記第2オブジェクトの前記更新された状態に基づいて、前記仮想視点からの視界を表す視界画像を生成するステップと、
前記視界画像を前記画像表示装置に表示させるステップと、
を実行させるためのプログラム。 - 前記仮想視点からの視界の範囲内において前記ユーザが注視している又は注視することが期待される、前記仮想空間の部分的空間である注視領域を特定するステップを更に含み、
前記第1領域を特定するステップにおいて、前記注視領域又は前記注視領域を基準に決定される範囲の領域を、前記第1領域と特定する、
請求項1に記載のプログラム。 - 前記注視領域は、視線検出手段によって検出された前記ユーザの視線の方向、モーション検出手段によって検出された前記ユーザの頭部の向きに応じた前記仮想空間内の仮想カメラの視軸方向、又は前記仮想空間内におけるイベントの発生位置のいずれかに基づく領域である、請求項2に記載のプログラム。
- 前記第2領域は、前記第1領域からの距離に応じた複数の領域を含み、
前記更新するステップにおいて、前記複数の領域のうち前記第2オブジェクトが属する領域の前記第1領域からの距離が大きいほど、より長い周期で当該第2オブジェクトの状態を更新する、
請求項1から3のいずれか1項に記載のプログラム。 - 前記仮想視点からの視界は、前記ユーザによって操作される前記仮想空間内の第3オブジェクトからの視界を表し、
前記第3オブジェクトの属性及び前記第3オブジェクトに関連する動的パラメータの少なくとも一方に基づいて、前記第1領域の大きさ、前記複数の領域の配置、及び前記複数の領域の各々に適用される周期の少なくとも1つが決定される、
請求項4に記載のプログラム。 - 前記仮想視点からの視界の変化の速さに基づいて、前記第1領域の大きさ、前記複数の領域の配置、及び前記複数の領域の各々に適用される周期の少なくとも1つが決定される、請求項4又は5に記載のプログラム。
- 前記第2周期は、前記第2オブジェクトの属性に応じて設定される、請求項1から3のいずれか1項に記載のプログラム。
- 前記更新するステップにおいて、前記第2オブジェクトの状態の変化の速さが所定値よりも大きい場合、当該第2オブジェクトの状態を前記第2周期よりも短い第3周期で更新する、請求項1から7のいずれか1項に記載のプログラム。
- 前記更新するステップにおいて、前記仮想空間内のオブジェクト毎に当該オブジェクトの状態の更新を行う、請求項1から8のいずれか1項に記載のプログラム。
- 前記第1オブジェクトと前記第2オブジェクトは、別個のオブジェクトである、又は同一オブジェクトを構成する異なる部位に対応するサブオブジェクトである、請求項1から9のいずれか1項に記載のプログラム。
- 前記視界画像を生成するステップにおいて、前記第2周期よりも短い所定周期で前記視界に対応する画像をレンダリングして前記視界画像を生成する、請求項1から10のいずれか1項に記載のプログラム。
- 画像表示装置を介して仮想体験をユーザに提供するための情報処理装置であって、
プロセッサと、
プログラムを格納するメモリと、
を備え、
前記プログラムは、前記プロセッサによって実行されると、前記プロセッサに、
仮想体験を提供するための仮想空間を特定するステップと、
前記ユーザの動き又は操作に応じて、前記仮想空間内の仮想視点からの視界を制御するステップと、
前記仮想視点からの視界の範囲内に含まれる前記仮想空間の部分的空間である第1領域と、前記仮想空間における前記第1領域の外側の空間である第2領域とを特定するステップと、
前記第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、前記第2領域に含まれる第2オブジェクトの状態を前記第1周期よりも長い第2周期で更新するステップと、
前記第1オブジェクト及び前記第2オブジェクトの前記更新された状態に基づいて、前記仮想視点からの視界を表す視界画像を生成するステップと、
前記視界画像を前記画像表示装置に表示させるステップと、
を実行させるように構成される、情報処理装置。 - ユーザの頭部に関連付けられた画像表示装置を介して当該ユーザに仮想体験を提供するための情報処理方法であって、
仮想体験を提供するための仮想空間を特定するステップと、
前記ユーザの動き又は操作に応じて、前記仮想空間内の仮想視点からの視界を制御するステップと、
前記仮想視点からの視界の範囲内に含まれる前記仮想空間の部分的空間である第1領域と、前記仮想空間における前記第1領域の外側の空間である第2領域とを特定するステップと、
前記第1領域に含まれる第1オブジェクトの状態を第1周期で更新し、前記第2領域に含まれる第2オブジェクトの状態を前記第1周期よりも長い第2周期で更新するステップと、
前記第1オブジェクト及び前記第2オブジェクトの前記更新された状態に基づいて、前記仮想視点からの視界を表す視界画像を生成するステップと、
前記視界画像を前記画像表示装置に表示させるステップと、
を含む情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017247960A JP2019114106A (ja) | 2017-12-25 | 2017-12-25 | 仮想体験を提供するためのプログラム、情報処理装置、及び情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017247960A JP2019114106A (ja) | 2017-12-25 | 2017-12-25 | 仮想体験を提供するためのプログラム、情報処理装置、及び情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019114106A true JP2019114106A (ja) | 2019-07-11 |
Family
ID=67223214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017247960A Pending JP2019114106A (ja) | 2017-12-25 | 2017-12-25 | 仮想体験を提供するためのプログラム、情報処理装置、及び情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019114106A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021164626A (ja) * | 2020-04-07 | 2021-10-14 | エヌシーソフト・コーポレイションNcsoft Corporation | ゲームストリーミングのための方法および装置 |
-
2017
- 2017-12-25 JP JP2017247960A patent/JP2019114106A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021164626A (ja) * | 2020-04-07 | 2021-10-14 | エヌシーソフト・コーポレイションNcsoft Corporation | ゲームストリーミングのための方法および装置 |
JP7191900B2 (ja) | 2020-04-07 | 2022-12-19 | エヌシーソフト・コーポレイション | ゲームストリーミングのための方法および装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6523233B2 (ja) | 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるプログラム | |
JP2018190163A (ja) | 情報処理方法、コンピュータ、及びプログラム | |
JP2018124826A (ja) | 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるプログラム | |
JP2018194889A (ja) | 情報処理方法、コンピュータ及びプログラム | |
JP6495398B2 (ja) | 仮想空間を提供するための方法、プログラム、および当該プログラムを実行するための情報処理装置 | |
JP6927797B2 (ja) | ヘッドマウントデバイスを介して仮想空間をユーザに提供するための方法、プログラム及びコンピュータ | |
JP6306678B1 (ja) | 仮想空間にオブジェクトを提示するためにコンピュータによって実行される方法、当該方法をコンピュータに実行させるプログラム、および、コンピュータ装置 | |
JP2019133309A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
JP6203346B1 (ja) | 仮想空間を提供する方法、プログラム、および記録媒体 | |
JP2019016071A (ja) | 情報処理方法、プログラム及びコンピュータ | |
JP6382928B2 (ja) | 仮想空間における画像の表示を制御するためにコンピュータによって実行される方法、当該方法をコンピュータに実現させるためのプログラム、および、コンピュータ装置 | |
JP6278546B1 (ja) | 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018170013A (ja) | 仮想空間における画像の表示を制御するためにコンピュータによって実行される方法、当該方法をコンピュータに実現させるためのプログラム、および、コンピュータ装置 | |
JP6250779B1 (ja) | 仮想空間を介して通信するためにコンピュータで実行される方法、当該方法をコンピュータに実行させるプログラム、および、情報処理装置 | |
JP2019114106A (ja) | 仮想体験を提供するためのプログラム、情報処理装置、及び情報処理方法 | |
JP2019033906A (ja) | 情報処理方法、プログラム及びコンピュータ | |
JP6966336B2 (ja) | 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6856572B2 (ja) | 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6392953B1 (ja) | 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2019207714A (ja) | 情報処理方法、コンピュータ及びプログラム | |
JP2019155115A (ja) | プログラム、情報処理装置、及び情報処理方法 | |
JP2019145120A (ja) | 仮想空間を提供するための方法、プログラム、および当該プログラムを実行するための情報処理装置 | |
JP2019048045A (ja) | 情報処理方法、装置、および当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2019016358A (ja) | 情報処理方法、プログラム及びコンピュータ | |
JP2019211868A (ja) | 画像表示装置を介して仮想体験をユーザに提供するためのプログラム、コンピュータ及び方法 |