JP2018018497A - 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム - Google Patents
情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム Download PDFInfo
- Publication number
- JP2018018497A JP2018018497A JP2017031599A JP2017031599A JP2018018497A JP 2018018497 A JP2018018497 A JP 2018018497A JP 2017031599 A JP2017031599 A JP 2017031599A JP 2017031599 A JP2017031599 A JP 2017031599A JP 2018018497 A JP2018018497 A JP 2018018497A
- Authority
- JP
- Japan
- Prior art keywords
- hmd
- user
- mounted display
- information processing
- processing method
- 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
Abstract
【課題】仮想オブジェクトに対するユーザの体験をさらに改善する。【解決手段】情報処理方法は、仮想カメラ300と、左手オブジェクト400Lと、壁オブジェクト500とを含む仮想空間200を規定する仮想空間データを生成するステップと、HMD110の動きに応じて、仮想カメラ300の視野CVを更新するステップと、仮想カメラ300の視野CVと仮想空間データに基づいて、視野画像データを生成するステップと、視野画像データに基づいて、HMD110に視野画像Mを表示させるステップと、左手用外部コントローラ320Lの動きに応じて、左手オブジェクト400Lを移動させるステップと、HMD110の絶対速度に応じて、左手オブジェクト400Lが壁オブジェクト500に与える影響を規定するコリジョン効果を設定するステップと、を含む。【選択図】図11
Description
本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプ
ログラムに関する。
ログラムに関する。
非特許文献1は、現実空間におけるユーザの手の状態(位置や傾き等)に応じて、VR(Virtual Reality)空間における手オブジェクトの状態を変化させると共に、当該手オブジェクトを操作することでVR空間内の所定のオブジェクトに所定の作用を与えることを開示している。
"Toybox Demo for Oculus Touch"、[online]、平成27年10月 13日、Oculus、[平成28年7月6日検索]、インターネット<https://ww w.youtube.com/watch?v=iFEMiyGMa58>
しかしながら、非特許文献1では、現実空間におけるユーザの動きに応じて、VR空間内の所定のオブジェクトに与える所定の効果を設定することは開示されていない。特に、非特許文献1では、ユーザの手の動きに応じて、手オブジェクトと仮想オブジェクト(対象オブジェクト)との間のコリジョン(衝突)に起因して手オブジェクトが仮想オブジェクトに与える影響を規定する効果(以下、コリジョン効果という。)を変化させることは開示されていない。従って、ユーザの動きに応じて仮想オブジェクトに与える影響を改善することにより、ユーザのVR空間、AR(Augmented Reality)空間およびMR(Mixed Reality)空間における体験を改善する余地がある。
本開示は、仮想オブジェクトに対するユーザの体験をさらに改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することを目的とする。
本開示が示す一態様によれば、ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法が提供される。
当該情報処理方法は、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイの絶対速度に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、を含む。
前記ステップ(f)は、
(f1)前記ヘッドマウントディスプレイの絶対速度が所定の値以下である場合、前記コリジョン効果を第1のコリジョン効果に設定するステップと、
(f2)前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記コリジョン効果を前記第1のコリジョン効果とは異なる第2のコリジョン効果に設定するステップと、を含む。
当該情報処理方法は、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイの絶対速度に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、を含む。
前記ステップ(f)は、
(f1)前記ヘッドマウントディスプレイの絶対速度が所定の値以下である場合、前記コリジョン効果を第1のコリジョン効果に設定するステップと、
(f2)前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記コリジョン効果を前記第1のコリジョン効果とは異なる第2のコリジョン効果に設定するステップと、を含む。
本開示によれば、仮想オブジェクト(対象オブジェクト)に対するユーザの体験をさらに改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することができる。
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイの絶対速度に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、を含み、
前記ステップ(f)は、
(f1)前記ヘッドマウントディスプレイの絶対速度が所定の値以下である場合、前記コリジョン効果を第1のコリジョン効果に設定するステップと、
(f2)前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記コリジョン効果を前記第1のコリジョン効果とは異なる第2のコリジョン効果に設定するステップと、を含む、情報処理方法。
本開示が示す実施形態の概要を説明する。
(1)ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイの絶対速度に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、を含み、
前記ステップ(f)は、
(f1)前記ヘッドマウントディスプレイの絶対速度が所定の値以下である場合、前記コリジョン効果を第1のコリジョン効果に設定するステップと、
(f2)前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記コリジョン効果を前記第1のコリジョン効果とは異なる第2のコリジョン効果に設定するステップと、を含む、情報処理方法。
上記方法によれば、ヘッドマウントディスプレイの絶対速度に応じてコリジョン効果が設定される。特に、ヘッドマウントディスプレイの絶対速度が所定の値以下である場合、コリジョン効果が第1のコリジョン効果に設定される一方、ヘッドマウントディスプレイの絶対速度が所定の値より大きい場合、コリジョン効果が第2のコリジョン効果に設定される。このように、仮想オブジェクト(対象オブジェクト)に対するユーザの体験(以下、仮想体験という。)をさらに改善することが可能となる。
(2)前記ステップ(f1)は、
前記ヘッドマウントディスプレイの絶対速度が前記所定の値以下である場合、前記操作オブジェクトのコリジョンエリアの大きさを第1の大きさに設定するステップと、
前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、を含み、
前記ステップ(f2)は、
前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記操作オブジェクトのコリジョンエリアの大きさを前記第1の大きさとは異なる第2の大きさに設定するステップと、
前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、を含む、項目(1)に記載の情報処理方法。
前記ヘッドマウントディスプレイの絶対速度が前記所定の値以下である場合、前記操作オブジェクトのコリジョンエリアの大きさを第1の大きさに設定するステップと、
前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、を含み、
前記ステップ(f2)は、
前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記操作オブジェクトのコリジョンエリアの大きさを前記第1の大きさとは異なる第2の大きさに設定するステップと、
前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、を含む、項目(1)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイの絶対速度に応じて、操作オブジェクトのコリジョンエリアの大きさが設定される。特に、ヘッドマウントディスプレイの絶対速度が所定の値以下である場合、操作オブジェクトのコリジョンエリアの大きさが第1の大きさに設定される。一方、ヘッドマウントディスプレイの絶対速度が所定の値よりも大きい場合、操作オブジェクトのコリジョンエリアの大きさが第2の大きさに設定される。さらに、操作オブジェクトのコリジョンエリアと対象オブジェクトとの間の位置関係に応じて、対象オブジェクトに影響が与えられる。このように、仮想体験をさらに改善することが可能となる。
(3)(g)前記ヘッドマウントディスプレイに対する前記ユーザの身体の一部の相対速度を特定するステップをさらに含み、
前記ステップ(f)では、前記特定されたヘッドマウントディスプレイの絶対速度と前記特定された相対速度とに応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
前記ステップ(f)では、前記特定されたヘッドマウントディスプレイの絶対速度と前記特定された相対速度とに応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイの絶対速度とヘッドマウントディスプレイに対するユーザの身体の一部(ユーザの頭部を除く)の相対速度とに応じてコリジョン効果が設定されるので、仮想体験をさらに改善することができる。
(4)(h)前記ヘッドマウントディスプレイに対する前記ユーザの身体の一部の相対加速度を特定するステップをさらに含み、
前記ステップ(f)では、前記特定されたヘッドマウントディスプレイの絶対速度と前記特定された相対加速度に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
前記ステップ(f)では、前記特定されたヘッドマウントディスプレイの絶対速度と前記特定された相対加速度に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイの絶対速度とヘッドマウントディスプレイに対するユーザの身体の一部(ユーザの頭部を除く)の相対加速度とに応じてコリジョン効果が設定されるので、仮想体験をさらに改善することができる。
(5)項目(1)から(4)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
仮想体験をさらに改善することが可能なプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
最初に、図1を参照してヘッドマウントディスプレイ(HMD)システム1の構成について説明する。図1は、HMDシステム1を示す概略図である。図1に示すように、HMDシステム1は、ユーザUの頭部に装着されたHMD110と、位置センサ130と、制御装置120と、外部コントローラ320とを備える。
HMD110は、表示部112と、HMDセンサ114と、注視センサ140とを備える。表示部112は、HMD110を装着したユーザUの視界(視野)を覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。尚、表示部112は、ユーザUの左目に画像を提供するように構成された左目用の表示部とユーザUの右目に画像を提供するように構成された右目用の表示部から構成されてもよい。また、HMD110は、透過型表示装置を備えてもよい。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動きを検出することができる。
注視センサ140は、ユーザUの視線方向を検出するアイトラッキング機能を有する。注視センサ140は、例えば、右目用注視センサと、左目用注視センサを備えてもよい。右目用注視センサは、ユーザUの右目に例えば赤外光を照射して、右目(特に、角膜や虹彩)から反射された反射光を検出することで、右目の眼球の回転角に関する情報を取得してもよい。一方、左目用注視センサは、ユーザUの左目に例えば赤外光を照射して、左目(特に、角膜や虹彩)から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110と外部コントローラ320の位置を検出するように構成されている。位置センサ130は、制御装置120に無線又は有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ130は、外部コントローラ320に設けられた複数の検知点304(図4参照)の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御装置120は、位置センサ130から取得された情報に基づいて、外部コントローラ320の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間内に表示される手指オブジェクト(後述する)の位置と現実空間における外部コントローラ320とHMD110との間の相対関係位置を正確に対応付けることができる。
また、制御装置120は、注視センサ140から送信された情報に基づいて、ユーザUの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。さらに、制御装置120は、特定された注視点に基づいて、ユーザUの視線方向を特定することができる。ここで、ユーザUの視線方向は、ユーザUの両目の視線方向であって、ユーザUの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。
次に、図2を参照して、HMD110の位置や傾きに関する情報を取得する方法について説明する。図2は、HMD110を装着したユーザUの頭部を示す図である。HMD110を装着したユーザUの頭部の動きに連動したHMD110の位置や傾きに関する情報は、位置センサ130及び/又はHMD110に搭載されたHMDセンサ114により検出可能である。図2に示すように、HMD110を装着したユーザUの頭部を中心として、3次元座標(uvw座標)が規定される。ユーザUが直立する垂直方向をv軸として規定し、v軸と直交しHMD110の中心を通る方向をw軸として規定し、v軸およびw軸と直交する方向をu軸として規定する。位置センサ130及び/又はHMDセンサ114は、各uvw軸回りの角度(すなわち、v軸を中心とする回転を示すヨー角、u軸を中心とした回転を示すピッチ角、w軸を中心とした回転を示すロール角で決定される傾き)を検出する。制御装置120は、検出された各uvw軸回りの角度変化に基づいて、仮想カメラの視軸を制御するための角度情報を決定する。
次に、図3を参照することで、制御装置120のハードウェア構成について説明する。図3は、制御装置120のハードウェア構成を示す図である。図3に示すように、制御装置120は、制御部121と、記憶部123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。制御部121と、記憶部123と、I/Oインターフェース124と、通信インターフェース125は、バス126を介して互いに通信可能に接続されている。
制御装置120は、HMD110とは別体に、パーソナルコンピュータ、タブレット又はウェアラブルデバイスとして構成されてもよいし、HMD110に内蔵されていてもよい。また、制御装置120の一部の機能がHMD110に搭載されると共に、制御装置120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
制御部121は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)及び/又はGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
特に、プロセッサが本実施形態に係る情報処理方法をコンピュータに実行させるためのプログラム(後述する)をRAM上に展開し、RAMとの協働で当該プログラムを実行することで、制御部121は、制御装置120の各種動作を制御してもよい。制御部121は、メモリや記憶部123に格納された所定のアプリケーションプログラム(ゲームプログラム)を実行することで、HMD110の表示部112に仮想空間(視野画像)を表示する。これにより、ユーザUは、表示部112に表示された仮想空間に没入することができる。
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123は、本実施形態に係る情報処理方法をコンピュータに実行させるプログラムを格納してもよい。また、ユーザUの認証プログラムや各種画像やオブジェクトに関するデータを含むゲームプログラム等が格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320とをそれぞれ制御装置120に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。尚、制御装置120は、位置センサ130と、HMD110と、外部コントローラ320とのそれぞれと無線接続されていてもよい。
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)又はインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介してネットワーク上の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
次に、図4を参照して外部コントローラ320の具体的構成の一例について説明する。外部コントローラ320は、ユーザUの身体の一部(頭部以外の部位であり、本実施形態においてはユーザUの手)の動きを検知することにより、仮想空間内に表示される手オブジェクトの動作を制御するために使用される。外部コントローラ320は、ユーザUの右手によって操作される右手用外部コントローラ320R(以下、単にコントローラ320Rという。)と、ユーザUの左手によって操作される左手用外部コントローラ320L(以下、単にコントローラ320Lという。)と、を有する。コントローラ320Rは、ユーザUの右手の位置や右手の手指の動きを示す装置である。また、コントローラ320Rの動きに応じて仮想空間内に存在する右手オブジェクト400R(図9参照)が移動する。コントローラ320Lは、ユーザUの左手の位置や左手の手指の動きを示す装置である。また、コントローラ320Lの動きに応じて仮想空間内に存在する左手オブジェクト400L(図9参照)が移動する。コントローラ320Rとコントローラ320Lは略同一の構成を有するので、以下では、図4を参照してコントローラ320Rの具体的構成についてのみ説明する。尚、以降の説明では、便宜上、コントローラ320L,320Rを単に外部コントローラ320と総称する場合がある。
図4に示すように、コントローラ320Rは、操作ボタン302と、複数の検知点304と、図示しないセンサと、図示しないトランシーバとを備える。検知点304とセンサは、どちらか一方のみが設けられていてもよい。操作ボタン302は、ユーザUからの操作入力を受付けるように構成された複数のボタン群により構成されている。操作ボタン302は、プッシュ式ボタン、トリガー式ボタン及びアナログスティックを含む。プッシュ式ボタンは、親指による押下する動作によって操作されるボタンである。例えば、天面322上に2つのプッシュ式ボタン302a,302bが設けられている。トリガー式ボタンは、人差し指や中指で引き金を引くような動作によって操作されるボタンである。例えば、グリップ324の前面部分にトリガー式ボタン302eが設けられると共に、グリップ324の側面部分にトリガー式ボタン302fが設けられる。トリガー式ボタン302e,302fは、人差し指と中指によってそれぞれ操作されることが想定されている。アナログスティックは、所定のニュートラル位置から360度任意の方向へ傾けて操作されうるスティック型のボタンである。例えば、天面322上にアナログスティック320iが設けられており、親指を用いて操作されることが想定されている。
コントローラ320Rは、グリップ324の両側面から天面322とは反対側の方向へ延びて半円状のリングを形成するフレーム326を備える。フレーム326の外側面には、複数の検知点304が埋め込まれている。複数の検知点304は、例えば、フレーム326の円周方向に沿って一列に並んだ複数の赤外線LEDである。位置センサ130は、複数の検知点304の位置、傾き又は発光強度に関する情報を検出した後に、制御装置120は、位置センサ130によって検出された情報に基づいて、コントローラ320Rの位置や姿勢(傾き・向き)に関する情報を取得する。
コントローラ320Rのセンサは、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってもよい。センサは、ユーザUがコントローラ320Rを動かしたときに、コントローラ320Rの向きや動きに応じた信号(例えば、磁気、角速度、又は加速度に関する情報を示す信号)を出力する。制御装置120は、センサから出力された信号に基づいて、コントローラ320Rの位置や姿勢に関する情報を取得する。
コントローラ320Rのトランシーバは、コントローラ320Rと制御装置120との間でデータを送受信するように構成されている。例えば、トランシーバは、ユーザUの操作入力に対応する操作信号を制御装置120に送信してもよい。また、トランシーバは、検知点304の発光をコントローラ320Rに指示する指示信号を制御装置120から受信してもよい。さらに、トランシーバは、センサによって検出された値を示す信号を制御装置120に送信してもよい。
次に、図5から図8を参照することで視野画像をHMD110に表示するための処理について説明する。図5は、視野画像をHMD110に表示する処理を示すフローチャートである。図6は、仮想空間200の一例を示すxyz空間図である。図7(a)は、図6に示す仮想空間200のyx平面図である。図7(b)は、図6に示す仮想空間200のzx平面図である。図8は、HMD110に表示された視野画像Mの一例を示す図である。
図5に示すように、ステップS1において、制御部121(図3参照)は、仮想カメラ300と、各種オブジェクトとを含む仮想空間200を示す仮想空間データを生成する。図6に示すように、仮想空間200は、中心位置21を中心とした全天球として規定される(図6では、上半分の天球のみが図示されている)。また、仮想空間200では、中心位置21を原点とするxyz座標系が設定されている。仮想カメラ300は、HMD110に表示される視野画像M(図8参照)を特定するための視軸Lを規定している。仮想カメラ300の視野を定義するuvw座標系は、現実空間におけるユーザUの頭部を中心として規定されたuvw座標系に連動するように決定される。また、制御部121は、HMD110を装着したユーザUの現実空間における移動に応じて、仮想カメラ300を仮想空間200内で移動させてもよい。また、仮想空間200内における各種オブジェクトは、例えば、左手オブジェクト400L、右手オブジェクト400R、壁オブジェクト500を含む(図9参照)。
次に、ステップS2において、制御部121は、仮想カメラ300の視野CV(図7参照)を特定する。具体的には、制御部121は、位置センサ130及び/又はHMDセンサ114から送信されたHMD110の状態を示すデータに基づいて、HMD110の位置や傾きに関する情報を取得する。次に、制御部121は、HMD110の位置や傾きに関する情報に基づいて、仮想空間200内における仮想カメラ300の位置や向きを特定する。次に、制御部121は、仮想カメラ300の位置や向きから仮想カメラ300の視軸Lを決定し、決定された視軸Lから仮想カメラ300の視野CVを特定する。ここで、仮想カメラ300の視野CVは、HMD110を装着したユーザUが視認可能な仮想空間200の一部の領域に相当する。換言すれば、視野CVは、HMD110に表示される仮想空間200の一部の領域に相当する。また、視野CVは、図7(a)に示すxy平面において、視軸Lを中心とした極角αの角度範囲として設定される第1領域CVaと、図7(b)に示すxz平面において、視軸Lを中心とした方位角βの角度範囲として設定される第2領域CVbとを有する。尚、制御部121は、注視センサ140から送信されたユーザUの視線方向を示すデータに基づいて、ユーザUの視線方向を特定し、ユーザUの視線方向に基づいて仮想カメラ300の向きを決定してもよい。
このように、制御部121は、位置センサ130及び/又はHMDセンサ114からのデータに基づいて、仮想カメラ300の視野CVを特定することができる。ここで、HMD110を装着したユーザUが動くと、制御部121は、位置センサ130及び/又はHMDセンサ114から送信されたHMD110の動きを示すデータに基づいて、仮想カメラ300の視野CVを変化させることができる。つまり、制御部121は、HMD110の動きに応じて、視野CVを変化させることができる。同様に、ユーザUの視線方向が変化すると、制御部121は、注視センサ140から送信されたユーザUの視線方向を示すデータに基づいて、仮想カメラ300の視野CVを移動させることができる。つまり、制御部121は、ユーザUの視線方向の変化に応じて、視野CVを変化させることができる。
次に、ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像Mを示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像Mを表示する(図7参照)。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが更新され、HMD110の表示部112に表示される視野画像Mが更新されるので、ユーザUは仮想空間200に没入することができる。
尚、仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部121は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部121は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部121は、左目用視野画像データと右目用視野画像データに基づいて、HMD110の表示部112に左目用視野画像と右目用視野画像を表示する。このようにして、ユーザUは、左目用視野画像と右目用視野画像から、視野画像を3次元画像として視認することができる。尚、本明細書では、説明の便宜上、仮想カメラ300の数は一つとする。勿論、本開示の実施形態は、仮想カメラの数が2つの場合でも適用可能である。
次に、仮想空間200に含まれる左手オブジェクト400L、右手オブジェクト400R及び壁オブジェクト500について図9を参照して説明する。図9(a)は、HMD110とコントローラ320L,320Rを装着したユーザUを示す図である。図9(b)は、仮想カメラ300と、左手オブジェクト400L(操作オブジェクトの一例)と、右手オブジェクト400R(操作オブジェクトの一例)と、壁オブジェクト500(仮想オブジェクトである対象オブジェクトの一例)とを含む仮想空間200を示す図である。
図9に示すように、仮想空間200は、仮想カメラ300と、左手オブジェクト400Lと、右手オブジェクト400Rと、壁オブジェクト500とを含む。制御部121は、これらのオブジェクトを含む仮想空間200を規定する仮想空間データを生成している。上述したように、仮想カメラ300は、ユーザUが装着しているHMD110の動きに連動する。つまり、仮想カメラ300の視野は、HMD110の動きに応じて更新される。左手オブジェクト400Lは、ユーザUの左手に装着されるコントローラ320Lの動きに応じて移動する。同様に、右手オブジェクト400Rは、ユーザUの右手に装着されるコントローラ320Rの動きに応じて移動する。尚、以降では、説明の便宜上、左手オブジェクト400Lと右手オブジェクト400Rを単に手オブジェクト400と総称する場合がある。また、左手オブジェクト400Lと右手オブジェクト400Rは、それぞれコリジョンエリアCAを有する。コリジョンエリアCAは、手オブジェクト400と対象オブジェクト(例えば、壁オブジェクト500)とのコリジョン判定(当たり判定)に供される。例えば、手オブジェクト400のコリジョンエリアCAと対象オブジェクトのコリジョンエリアとが接触することで、壁オブジェクト500等の対象オブジェクトに所定の影響が与えられる。図9に示すように、コリジョンエリアCAは、例えば、手オブジェクト400の中心位置を中心とした直径Rを有する球により規定されてもよい。以下の説明では、コリジョンエリアCAは、オブジェクトの中心位置を中心とした直径Rの球状に形成されているものとする。
壁オブジェクト500は、左手オブジェクト400L,右手オブジェクト400Rによって影響を受ける仮想オブジェクトである。例えば、左手オブジェクト400Lが壁オブジェクト500に接触した場合、左手オブジェクト400LのコリジョンエリアCAに接触する壁オブジェクト500の部分が破壊される。また、壁オブジェクト500もコリジョンエリアを有しており、本実施形態では、壁オブジェクト500のコリジョンエリアは、壁オブジェクト500を構成する領域に一致しているものとする。
次に、本実施形態に係る情報処理方法について図10から図12を参照して説明する。図10は、本実施形態に係る情報処理方法を説明するためのフローチャートである。図11(a)は、ユーザU自身が前方(+w方向)に所定速度vthより速い絶対速度vで移動している様子を示す図である。図11(b)は、図11(a)に示す状態において、左手オブジェクト400Lによって破壊された壁オブジェクト500を示す図である。図12(a)は、ユーザU自身が前方(+w方向)に所定速度vthより遅い絶対速度vで移動している様子を示す図である。図12(b)は、図12(a)に示す状態において、左手オブジェクト400Lによって破壊された壁オブジェクト500を示す図である。
本実施形態に係る情報処理方法では、制御部121は、コントローラ320Lが壁オブジェクト500に与える影響を規定するコリジョン効果を設定すると共に、コントローラ320Rが壁オブジェクト500に与える影響を規定するコリジョン効果を設定するように構成されている。一方、コントローラ320L,320Rは略同一の構成を有するため、以降では、説明の便宜上、コントローラ320Lが壁オブジェクト500に与える影響を規定するコリジョン効果についてのみ言及する。また、制御部121は、図10に示す各処理をフレーム(動画像を構成する静止画像)毎に実行するものとする。尚、制御部121は、図10に示す各処理を所定の時間間隔ごとに実行してもよい。
図10に示すように、ステップS11において、制御部121は、HMD110の絶対速度vを特定する。ここで、絶対速度vとは、現実空間内の所定の場所に設置された位置センサ130に対するHMD110の速度を指す。また、ユーザUがHMD110を装着しているため、HMD110の絶対速度はユーザUの絶対速度に相当する。つまり、本実施形態では、HMD110の絶対速度を特定することで、ユーザUの絶対速度を特定している。
具体的には、制御部121は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、HMD110のw軸方向におけるHMD110の絶対速度vを特定する。尚、本実施形態では、制御部121は、w軸方向におけるHMD110の絶対速度vを特定しているが、w軸方向以外の所定方向におけるHMD110の絶対速度vを特定してもよい。
例えば、n番目(nは1以上の整数)のフレームのときのHMD110の位置P n のw軸方向の位置をw n とし、(n+1)番目のフレームのときのHMD110の位置P n+1 のw軸方向の位置をw n+1 とし、各フレーム間の時間間隔をΔTとした場合、n番目のフレームのときのw軸方向におけるHMD110の絶対速度v n は、v n =(w n+1−w n )/ΔTとなる。ここで、動画像のフレームレートが90fpsである場合、ΔTは1/90となる。
次に、ステップS12において、制御部121は、特定されたHMD110の絶対速度vが所定速度vthよりも大きいかどうかを判定する。ここで、所定速度vthはゲーム内容に応じて適宜設定されてもよい。制御部121は、特定された絶対速度vが所定速度vthよりも大きい(v>vth)と判定した場合(ステップS12でYES)、図11(b)に示すように、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する(ステップS13)。一方、制御部121は、特定された絶対速度vが所定速度vth以下である(v≦vth)と判定した場合(ステップS12でNO)、図12(b)に示すように、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R1(R1<R2)に設定する(ステップS14)。このように、HMD110の絶対速度vに応じて、コリジョンエリアCAの大きさが設定される。尚、ステップS13,S14では、コリジョンエリアCAの直径の代わりに、絶対速度vに応じてコリジョンエリアCAの半径が設定されてもよい。また、所定速度vth=0である場合、制御部121は、HMD110が+w方向に移動していることを判定したときに、ステップS13の処理を実行する一方、HMD110が+w方向に移動していないと判定したときに、ステップS14の処理を実行する。
次に、ステップS15において、制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCAに接触しているかどうかを判定する。制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCAに接触していると判定した場合(ステップS15でYES)、コリジョンエリアCAに接触している壁オブジェクト500の部分に所定の影響を与える(ステップS16)。例えば、コリジョンエリアCAに接触している壁オブジェクト500の部分が破壊されてもよいし、所定のダメージ量が壁オブジェクト500に与えられてもよい。図11(b)に示すように、左手オブジェクト400LのコリジョンエリアCAに接触する壁オブジェクト500の部分が破壊される。また、図11(b)に示す左手オブジェクト400LのコリジョンエリアCAは、図12(b)に示す左手オブジェクト400LのコリジョンエリアCAよりも大きいので(R2>R1であるため)、図11に示す状態では、図12に示す状態よりも左手オブジェクト400Lにより破壊される壁オブジェクト500の量が大きくなる。
一方、制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCAに接触していないと判定した場合(ステップS15でNO)、壁オブジェクト500には所定の影響は与えられない。その後、制御部121は、壁オブジェクト500を含む仮想空間を規定する仮想空間データを更新した上で、更新された仮想空間データに基づいて次のフレーム(静止画像)をHMD110に表示する(ステップS17)。その後、処理がステップS11に戻る。
このように、本実施形態によれば、HMD110の絶対速度vに応じて、コントローラ320Lが壁オブジェクト500に与える影響を規定するコリジョン効果が設定される。特に、HMD110の絶対速度vが所定速度vth以下である場合、図12(b)に示すようなコリジョン効果が得られる一方、HMD110の絶対速度vが所定速度vthよりも大きい場合、図11(b)に示すようなコリジョン効果が得られる。このように、HMD110の絶対速度v(換言すれば、ユーザUの絶対速度)に応じて異なるコリジョン効果が設定されるため、仮想空間に対するユーザUの没入感をさらに高めることができ、リッチな仮想体験が提供される。
より具体的には、HMD110の絶対速度vに応じて左手オブジェクト400LのコリジョンエリアCAが設定される。特に、HMD110の絶対速度vが所定速度vth以下である場合、左手オブジェクト400Lの直径RがR1に設定される一方、HMD110の絶対速度vが所定速度vthよりも大きい場合、左手オブジェクト400Lの直径RがR2(R1<R2)に設定される。さらに、左手オブジェクト400LのコリジョンエリアCAと壁オブジェクト500との間の位置関係に応じて、壁オブジェクト500に所定の影響が与えられる。このため、仮想空間200に対するユーザUの没入感をさらに高めることが可能となる。
この点において、図11に示すように、ユーザU(又はHMD110)がw軸方向にv>vthとなるように移動したとき、左手オブジェクト400LのコリジョンエリアCAが大きくなるため、左手オブジェクト400Lによって破壊される壁オブジェクト500の量が大きくなる。一方、図12に示すように、ユーザU(又はHMD110)がw軸方向にv≦vthとなるように移動したとき、左手オブジェクト400LのコリジョンエリアCAが小さくなるため、左手オブジェクト400によって破壊される壁オブジェクト500の量が小さくなる。このため、ユーザUの動作に応じて破壊される壁オブジェクト500の量が変化するため、ユーザUはさらに仮想空間に没入することができる。
尚、本実施形態では、ステップS13においてw軸方向におけるHMD110の絶対速度vが所定速度vthよりも大きいかどうかが判定されているが、w軸方向におけるHMD110の絶対速度vが所定速度vthよりも大きいかどうかが判定されると共に、HMD110の移動方向(本例では、w軸方向)におけるHMD110に対するコントローラ320Lの相対速度Vが所定の相対速度Vthよりも大きいかどうかが判定されてもよい。つまり、v>vth且つV>Vthであるかどうかが判定されてもよい。ここで、所定の相対速度Vthは、ゲーム内容に応じて適宜設定されてもよい。
この場合、ステップS13の前において、制御部121は、w軸方向におけるHMD110に対するコントローラ320Lの相対速度Vを特定する。例えば、n番目(nは1以上の整数)のフレームのときのw軸方向におけるHMD110とコントローラ320Lとの間の距離をD n とし、(n+1)番目のフレームのときのw軸方向におけるHMD110とコントローラ320Lとの間の距離をD n+1 とし、各フレーム間の時間間隔をΔTとした場合、n番目のフレームのときのw軸方向における相対速度V n はV n =(D n −D n+1 )/ΔTとなる。
制御部121は、w軸方向におけるHMD110の絶対速度vが所定速度vthよりも大きい(v>vth)と共に、HMD110の移動方向(w軸方向)におけるHMD110に対するコントローラ320Lの相対速度Vが所定の相対速度Vthよりも大きい(V>Vth)と判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。一方、制御部121は、v>vth且つV>Vthの条件を満たさないと判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。このように、HMD110の絶対速度vとHMD110に対するコントローラ320Lの相対速度Vに応じてコリジョン効果が設定されるので、仮想空間200に対するユーザUの没入感をさらに高めることができる。
さらに、ステップS13において、w軸方向におけるHMD110の絶対速度vが所定速度vthよりも大きいかどうかが判定されると共に、HMD110の移動方向(本例では、w軸方向)におけるHMD110に対するコントローラ320Lの相対加速度aが所定の相対加速度athよりも大きいかどうかが判定されてもよい。
この場合、ステップS13の前において、制御部121は、w軸方向におけるHMD110に対するコントローラ320Lの相対加速度aを特定する。例えば、n番目(nは1以上の整数)のフレームのときのw軸方向におけるHMD110に対するコントローラ320Lの相対速度をV n+1 とし、(n+1)番目のフレームのときのw軸方向におけるHMD110に対するコントローラ320Lの相対速度をV n+1 とし、各フレーム間の時間間隔をΔTとした場合、n番目のフレームのときのw軸方向における相対加速度a nはa n =(V n −V n+1 )/ΔTとなる。
制御部121は、w軸方向におけるHMD110の絶対速度vが所定速度vthよりも大きい(v>vth)と共に、HMD110の移動方向(w軸方向)におけるHMD110に対するコントローラ320Lの相対加速度aが所定の相対加速度athよりも大きい(a>ath)と判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。一方、制御部121は、v>vth且つa>athの条件を満たさないと判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。このように、HMD110の絶対速度vとHMD110に対するコントローラ320Lの相対速度Vに応じてコリジョン効果が設定されるので、仮想空間200に対するユーザUの没入感をさらに高めることができる。
また、ステップS12で規定された判定条件が満たされた場合に、制御部121は、コリジョンエリアCAの直径Rと相対速度Vとの間の関係を示すテーブルや関数を参照することで、相対速度Vの大きさに応じて連続的又は段階的にコリジョンエリアCAの直径R(換言すれば、コリジョンエリアCAの大きさ)を変化させてもよい。例えば、制御部121は、相対速度Vが大きくなるに連れて、連続的又は段階的にコリジョンエリアCAの直径R(換言すれば、コリジョンエリアCAの大きさ)を増大させてもよい。
(第1変形例)
次に、図13を参照して本実施形態の第1変形例に係る情報処理方法について説明する。図13は、本実施形態の第1変形例に係る情報処理方法を説明するためのフローチャートである。図13に示すように、第1変形例に係る情報処理方法は、図10に示すステップS12からS14の処理の代わりに、ステップS22からS28の処理が実行される点で、本実施形態に係る情報処理方法と相違する。従って、図13に示すステップS21,S29〜S31の処理は、図10に示すS11,S15〜S17の処理と同一であるため、S22〜S28の処理についてのみ説明を行う。
次に、図13を参照して本実施形態の第1変形例に係る情報処理方法について説明する。図13は、本実施形態の第1変形例に係る情報処理方法を説明するためのフローチャートである。図13に示すように、第1変形例に係る情報処理方法は、図10に示すステップS12からS14の処理の代わりに、ステップS22からS28の処理が実行される点で、本実施形態に係る情報処理方法と相違する。従って、図13に示すステップS21,S29〜S31の処理は、図10に示すS11,S15〜S17の処理と同一であるため、S22〜S28の処理についてのみ説明を行う。
ステップS22において、制御部121は、HMD110の絶対速度vが0<v≦v1であるかどうかを判定する。ステップS22の判定結果がYESの場合、制御部121は、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R1に設定する(ステップS23)。一方、ステップS22の判定結果がNOである場合、制御部121は、HMD110の絶対速度vがv1<v≦v2であるかどうかを判定する(ステップS24)。ステップS24の判定結果がYESの場合、制御部121は、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する(ステップS25)。一方、ステップS24の判定結果がNOである場合、制御部121は、HMD110の絶対速度vがv2<v≦v3であるかどうかを判定する(ステップS26)。ステップS26の判定結果がYESの場合、制御部121は、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R3に設定する(ステップS27)。一方、ステップS26の判定結果がNOである場合、制御部121は、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R4に設定する(ステップS28)。ここで、所定速度v1,v2,v3は、0<v1<v2<v3の関係を満たすものとする。また、コリジョンエリアCAの直径R1,R2,R3,R4は、R1<R2<R3<R4の関係を満たすものとする。
本変形例によれば、制御部121は、コリジョンエリアCAの直径Rと絶対速度vとの間の関係を示すテーブルや関数を参照することで、HMD110の絶対速度vの大きさに応じて、左手オブジェクト400LのコリジョンエリアCAの直径Rを段階的に変化させることができる。また、本変形例によれば、HMD110の絶対速度vが大きくなる程、左手オブジェクト400LのコリジョンエリアCAが段階的に大きくなる。このように、HMD110の絶対速度v(換言すれば、ユーザUの絶対速度)が大きくなるに連れて、左手オブジェクト400LのコリジョンエリアCAが大きくなり、最終的に、左手オブジェクト400Lが壁オブジェクト500に与える影響を規定するコリジョン効果が大きくなるので、仮想空間に対するユーザUの没入感をさらに高めることができ、リッチな仮想体験を提供することができる。
尚、制御部121は、コリジョンエリアCAの直径Rと絶対速度vとの間の関係を示すテーブルや関数を参照することで、相対速度Vの大きさに応じて連続的にコリジョンエリアCAの直径Rを変化させてもよい。この場合も同様に、仮想空間に対するユーザUの没入感をさらに高めることができ、リッチな仮想体験を提供することができる。
(第2変形例)
図10と図14を参照して本実施形態の変形例に係る情報処理方法について説明する。図14(a)及び(b)は、左手オブジェクト400LのコリジョンエリアCAと壁オブジェクト500に影響を与える影響範囲EAを示している。図14(a)に示すコリジョンエリアCAの大きさ(直径)は、図14(b)に示すコリジョンエリアCAの大きさ(直径)と同一である一方で、図14(a)に示す影響範囲EAの大きさ(直径)は、図14(b)に示す影響範囲EAの大きさ(直径)よりも小さい。ここで、左手オブジェクト400Lの影響範囲EAは、左手オブジェクト400Lが壁オブジェクト500等の対象オブジェクトに影響を与える範囲として規定される。
図10と図14を参照して本実施形態の変形例に係る情報処理方法について説明する。図14(a)及び(b)は、左手オブジェクト400LのコリジョンエリアCAと壁オブジェクト500に影響を与える影響範囲EAを示している。図14(a)に示すコリジョンエリアCAの大きさ(直径)は、図14(b)に示すコリジョンエリアCAの大きさ(直径)と同一である一方で、図14(a)に示す影響範囲EAの大きさ(直径)は、図14(b)に示す影響範囲EAの大きさ(直径)よりも小さい。ここで、左手オブジェクト400Lの影響範囲EAは、左手オブジェクト400Lが壁オブジェクト500等の対象オブジェクトに影響を与える範囲として規定される。
本実施形態に係る情報処理方法では、図10に示すステップS12で規定される判定条件が満たされた場合(ステップS12でYES)、コリジョンエリアCAの直径Rが直径R2に設定される一方(ステップS13)、当該判定条件が満たされない場合(ステップS12でNO)、コリジョンエリアCAの直径Rが直径R1(R2>R1)に設定される(ステップS14)。
これに対して、第2変形例に係る情報処理方法では、ステップS12で規定される判定条件が満たされた場合(ステップS12でYES)、図14(b)に示すように、コリジョンエリアCAの直径Rが直径R1に設定されると共に、影響範囲EAの直径がRbに設定される。一方、当該判定条件が満たされない場合(ステップS12でNO)、図14(a)に示すように、コリジョンエリアCAの直径Rが直径R1に設定されると共に、影響範囲EAの直径がRa(Rb>Ra)に設定される。このように、第2変形例に係る情報処理方法では、ステップS12で規定される判定条件に応じて、コリジョンエリアCAの直径は変更されない一方で、影響範囲EAの直径が変更される。
その後、ステップS15において、制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCA又は影響範囲EAに接触しているかどうかを判定する。制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCA又は影響範囲EAに接触していると判定した場合(ステップS15でYES)、コリジョンエリアCA又は影響範囲EAに接触している壁オブジェクト500の部分に所定の影響を与える(ステップS16)。例えば、図14に示すように、コリジョンエリアCA又は影響範囲EAに接触している壁オブジェクト500の部分が破壊される。また、図14(b)に示す左手オブジェクト400Lの影響範囲EAは、図14(a)に示す左手オブジェクト400Lの影響範囲EAよりも大きいので(Rb>Raであるため)、図14(b)に示す状態では、図14(a)に示す状態よりも左手オブジェクト400Lにより破壊される壁オブジェクト500の量が大きくなる。
一方、制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCA又は影響範囲EAに接触していないと判定した場合(ステップS15でNO)、壁オブジェクト500には所定の影響は与えられない。
このように、本変形例によれば、HMD110の絶対速度vに応じて、コントローラ320Lが壁オブジェクト500に与える影響(コリジョン効果)が設定されるので、仮想空間200に対するユーザUの没入感をさらに高めることが可能となり、リッチな仮想体験を提供することができる。特に、ステップS12で規定される判定条件に応じて、左手オブジェクト400Lの影響範囲EAの大きさ(直径)が設定される。さらに、コリジョンエリアCA及び影響範囲EAと壁オブジェクト500との間の位置関係に応じて、壁オブジェクト500に所定の影響が与えられる。このため、仮想空間200に対するユーザUの没入感をさらに高めることが可能となり、リッチな仮想体験を提供することができる。
制御部121によって実行される各種処理をソフトウェアによって実現するために、本実施形態に係る情報処理方法をコンピュータ(プロセッサ)に実行させるための情報処理プログラムが記憶部123又はROMに予め組み込まれていてもよい。または、情報処理プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納された情報処理プログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた情報処理プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は本実施形態に係る情報処理方法を実行する。
また、情報処理プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該プログラムが記憶部123に組み込まれる。
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
本実施形態では、ユーザUの手の動きを示す外部コントローラ320の動きに応じて、手オブジェクトの移動が制御されているが、ユーザUの手自体の移動量に応じて、仮想空間内における手オブジェクトの移動が制御されてもよい。例えば、外部コントローラを用いる代わりに、ユーザの手指に装着されるグローブ型デバイスや指輪型デバイスを用いることで、位置センサ130により、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。また、位置センサ130は、ユーザUの手(手指を含む)を撮像するように構成されたカメラであってもよい。この場合、カメラを用いてユーザの手を撮像することにより、ユーザの手指に直接何らかのデバイスを装着させることなく、ユーザの手が表示された画像データに基づいて、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。
また、本実施形態では、ユーザUの頭部以外の身体の一部である手の位置及び/又は動きに応じて、手オブジェクトが壁オブジェクトに与える影響を規定するコリジョン効果が設定されているが、本実施形態はこれには限定されない。例えば、ユーザUの頭部以外の身体の一部である足の位置及び/又は動きに応じて、ユーザUの足の動きに連動する足オブジェクト(操作オブジェクトの一例)が対象オブジェクトに与える影響を規定するコリジョン効果が設定されてもよい。このように、本実施形態では、HMD110とユーザUの身体の一部との間の相対的な関係(距離及び相対速度)を特定し、特定された相対的な関係に応じて、当該ユーザUの身体の一部と連動する操作オブジェクトが対象オブジェクトに与える影響を規定するコリジョン効果が設定されてもよい。
また、本実施形態では、手オブジェクトにより所定の影響を受ける仮想オブジェクト(対象オブジェクト)の一例として壁オブジェクト500が説明されているが、仮想オブジェクトの属性は特に限定されない。例えば、仮想オブジェクトが土オブジェクトの場合、図10に示すステップS13の判定条件に応じて、手オブジェクト400によって掘削される土オブジェクトの掘削量が設定されてもよい。また、仮想オブジェクトが他のユーザにより操作されるアバターオブジェクトの場合、図10に示すステップS13の判定条件に応じて、アバターオブジェクトに与えられるダメージ量が設定されてもよい。
1:HMDシステム
3:通信ネットワーク
21:中心位置
112:表示部
114:HMDセンサ
120:制御装置
121:制御部
123:記憶部
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
140:注視センサ
200:仮想空間
300:仮想カメラ
302:操作ボタン
302a,302b:プッシュ式ボタン
302e,302f:トリガー式ボタン
304:検知点
320:外部コントローラ
320i:アナログスティック
320L:左手用外部コントローラ(コントローラ)
320R:右手用外部コントローラ(コントローラ)
322:天面
324:グリップ
326:フレーム
400:手オブジェクト
400L:左手オブジェクト
400R:右手オブジェクト
500:壁オブジェクト
CA:コリジョンエリア
CV:視野
CVa:第1領域
CVb:第2領域
EA:影響範囲
3:通信ネットワーク
21:中心位置
112:表示部
114:HMDセンサ
120:制御装置
121:制御部
123:記憶部
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
140:注視センサ
200:仮想空間
300:仮想カメラ
302:操作ボタン
302a,302b:プッシュ式ボタン
302e,302f:トリガー式ボタン
304:検知点
320:外部コントローラ
320i:アナログスティック
320L:左手用外部コントローラ(コントローラ)
320R:右手用外部コントローラ(コントローラ)
322:天面
324:グリップ
326:フレーム
400:手オブジェクト
400L:左手オブジェクト
400R:右手オブジェクト
500:壁オブジェクト
CA:コリジョンエリア
CV:視野
CVa:第1領域
CVb:第2領域
EA:影響範囲
Claims (5)
- ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイの絶対速度に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、を含み、
前記ステップ(f)は、
(f1)前記ヘッドマウントディスプレイの絶対速度が所定の値以下である場合、前記コリジョン効果を第1のコリジョン効果に設定するステップと、
(f2)前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記コリジョン効果を前記第1のコリジョン効果とは異なる第2のコリジョン効果に設定するステップと、を含む、情報処理方法。 - 前記ステップ(f1)は、
前記ヘッドマウントディスプレイの絶対速度が前記所定の値以下である場合、前記操作オブジェクトのコリジョンエリアの大きさを第1の大きさに設定するステップと、
前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、を含み、
前記ステップ(f2)は、
前記ヘッドマウントディスプレイの絶対速度が前記所定の値より大きい場合、前記操作オブジェクトのコリジョンエリアの大きさを前記第1の大きさとは異なる第2の大きさに設定するステップと、
前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、を含む、請求項1に記載の情報処理方法。 - (g)前記ヘッドマウントディスプレイに対する前記ユーザの身体の一部の相対速度を特定するステップをさらに含み、
前記ステップ(f)では、前記特定されたヘッドマウントディスプレイの絶対速度と前記特定された相対速度とに応じて、前記コリジョン効果が設定される、請求項1又は2に記載の情報処理方法。 - (h)前記ヘッドマウントディスプレイに対する前記ユーザの身体の一部の相対加速度を特定するステップをさらに含み、
前記ステップ(f)では、前記特定されたヘッドマウントディスプレイの絶対速度と前記特定された相対加速度に応じて、前記コリジョン効果が設定される、請求項1又は2に記載の情報処理方法。 - 請求項1から4のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017031599A JP2018018497A (ja) | 2017-02-22 | 2017-02-22 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017031599A JP2018018497A (ja) | 2017-02-22 | 2017-02-22 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016148491A Division JP6118444B1 (ja) | 2016-07-28 | 2016-07-28 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018018497A true JP2018018497A (ja) | 2018-02-01 |
Family
ID=61076320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017031599A Pending JP2018018497A (ja) | 2017-02-22 | 2017-02-22 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018018497A (ja) |
-
2017
- 2017-02-22 JP JP2017031599A patent/JP2018018497A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6093473B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6117414B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
WO2018020735A1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6122537B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018120519A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2017138832A (ja) | 仮想空間の提供方法、およびプログラム | |
JP2017187952A (ja) | 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム | |
JP6220937B1 (ja) | 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム及びコンピュータ | |
JP2017138973A (ja) | 仮想空間の提供方法、およびプログラム | |
JP6118444B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6140871B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6416338B1 (ja) | 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置 | |
JP6266823B1 (ja) | 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置 | |
JP2018026105A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6449922B2 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018018499A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6122194B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018195172A (ja) | 情報処理方法、情報処理プログラム及び情報処理装置 | |
JP6403843B1 (ja) | 情報処理方法、情報処理プログラム及び情報処理装置 | |
JP6934374B2 (ja) | プロセッサを備えるコンピュータにより実行される方法 | |
JP2018026099A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018018497A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6469752B2 (ja) | 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置 | |
JP2018045338A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6941130B2 (ja) | 情報処理方法、情報処理プログラム及び情報処理装置 |