JP6117414B1 - 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム - Google Patents
情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム Download PDFInfo
- Publication number
- JP6117414B1 JP6117414B1 JP2016148490A JP2016148490A JP6117414B1 JP 6117414 B1 JP6117414 B1 JP 6117414B1 JP 2016148490 A JP2016148490 A JP 2016148490A JP 2016148490 A JP2016148490 A JP 2016148490A JP 6117414 B1 JP6117414 B1 JP 6117414B1
- Authority
- JP
- Japan
- Prior art keywords
- user
- information processing
- hmd
- processing method
- relative
- 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.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
- Position Input By Displaying (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】仮想オブジェクトに対するユーザの体験をさらに改善する。【解決手段】情報処理方法は、仮想カメラ300と、左手オブジェクト400Lと、右手オブジェクト400Rと、壁オブジェクト500とを含む仮想空間200を規定する仮想空間データを生成するステップと、HMD110の動きに応じて、仮想カメラ300の視野CVを更新するステップと、仮想カメラ300の視野CVと仮想空間データに基づいて、視野画像データを生成するステップと、視野画像データに基づいて、HMD110に視野画像Mを表示させるステップと、左手用外部コントローラ320Lの動きに応じて、左手オブジェクト400Lを移動させるステップと、HMD110と左手用外部コントローラ320Lとの間の相対的な関係(距離及び相対速度)を特定するステップと、特定された相対的な関係に応じて、左手オブジェクト400Lが壁オブジェクト500に与える影響を規定するコリジョン効果を設定するステップと、を含む。【選択図】図11
Description
本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。
非特許文献1は、現実空間におけるユーザの手の状態(位置や傾き等)に応じて、VR(Virtual Reality)空間における手オブジェクトの状態を変化させると共に、当該手オブジェクトを操作することでVR空間内の所定のオブジェクトに所定の作用を与えることを開示している。
"Toybox Demo for Oculus Touch"、[online]、平成27年10月13日、Oculus、[平成28年7月6日検索]、インターネット<https://www.youtube.com/watch?v=iFEMiyGMa58>
しかしながら、非特許文献1では、現実空間におけるユーザの動きに応じて、VR空間内の所定のオブジェクトに与える所定の効果を設定することは開示されていない。特に、非特許文献1では、ユーザの手の動きに応じて、手オブジェクトと仮想オブジェクト(対象オブジェクト)との間のコリジョン(衝突)に起因して手オブジェクトが仮想オブジェクトに与える影響を規定する効果(以下、コリジョン効果という。)を変化させることは開示されていない。従って、ユーザの動きに応じて仮想オブジェクトに与える影響を改善することにより、ユーザのVR空間、AR(Augmented Reality)空間およびMR(Mixed Reality) 空間における体験を改善する余地がある。
本開示は、仮想オブジェクトに対するユーザの体験をさらに改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することを目的とする。
本開示が示す一態様によれば、ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法が提供される。
当該情報処理方法は、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の相対的な関係を特定するステップと、
(g)前記特定された相対的な関係に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、
を含む。
当該情報処理方法は、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の相対的な関係を特定するステップと、
(g)前記特定された相対的な関係に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、
を含む。
本開示によれば、仮想オブジェクト(対象オブジェクト)に対するユーザの体験をさらに改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することができる。
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の相対的な関係を特定するステップと、
(g)前記特定された相対的な関係に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、
を含む。
本開示が示す実施形態の概要を説明する。
(1)ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の相対的な関係を特定するステップと、
(g)前記特定された相対的な関係に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、
を含む。
上記方法によれば、ヘッドマウントディスプレイとユーザの身体の一部(ユーザの頭部を除く)との間の相対的な関係に応じて、コリジョン効果が設定されるので、仮想オブジェクト(対象オブジェクト)に対するユーザの体験(以下、仮想体験と称する)をさらに改善することが可能となる。
(2)前記ステップ(g)は、
(g1)前記特定された相対的な関係に応じて、前記操作オブジェクトのコリジョンエリアの大きさを設定するステップと、
(g2)前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、
を含む、項目(1)に記載の情報処理方法。
(g1)前記特定された相対的な関係に応じて、前記操作オブジェクトのコリジョンエリアの大きさを設定するステップと、
(g2)前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、
を含む、項目(1)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイとユーザの身体の一部(ユーザの頭部を除く)との間の相対的な関係に応じて、操作オブジェクトのコリジョンエリアの大きさが設定される、さらに、操作オブジェクトのコリジョンエリアと対象オブジェクトとの間の位置関係に応じて、対象オブジェクトに影響が与えられる。このように、仮想体験をさらに改善することが可能となる。
(3)前記ステップ(f)は、前記ヘッドマウントディスプレイとユーザの身体の前記一部との間の相対位置関係を特定するステップを含み、
前記ステップ(g)では、前記特定された相対位置関係に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
前記ステップ(g)では、前記特定された相対位置関係に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイとユーザの身体の一部(ユーザの頭部を除く)との間の相対位置関係に応じてコリジョン効果が設定されるので、仮想体験をさらに改善することが可能となる。
(4)前記ステップ(f)は、前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の距離を特定するステップを含み、
前記ステップ(g)では、前記特定された距離に応じて、前記コリジョン効果が設定される、項目(3)に記載の情報処理方法。
前記ステップ(g)では、前記特定された距離に応じて、前記コリジョン効果が設定される、項目(3)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイとユーザの身体の一部(ユーザの頭部を除く)との間の距離に応じてコリジョン効果が設定されるので、仮想体験をさらに改善することが可能となる。
(5)前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対速度を特定するステップを含み、
前記ステップ(g)では、前記特定された相対速度に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
前記ステップ(g)では、前記特定された相対速度に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイに対するユーザの身体の一部(ユーザの頭部を除く)の相対速度に応じてコリジョン効果が設定されるので、仮想体験をさらに高めることが可能となる。
(6)前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対速度を特定するステップを含み、
前記ステップ(g)では、前記特定された距離と前記特定された相対速度に応じて、前記コリジョン効果が設定される、項目(4)に記載の情報処理方法。
前記ステップ(g)では、前記特定された距離と前記特定された相対速度に応じて、前記コリジョン効果が設定される、項目(4)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイとユーザの身体の一部(ユーザの頭部を除く)との間の距離とヘッドマウントディスプレイに対する当該ユーザの身体の一部の相対速度に応じてコリジョン効果が設定されるので、仮想体験をさらに改善することが可能となる。
(7)前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対加速度を特定するステップをさらに含み、
前記ステップ(g)では、前記特定された相対加速度に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
前記ステップ(g)では、前記特定された相対加速度に応じて、前記コリジョン効果が設定される、項目(1)又は(2)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイに対するユーザの身体の一部(ユーザの頭部を除く)の相対加速度に応じてコリジョン効果が設定されるので、仮想体験をさらに改善することが可能となる。
(8)前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対加速度を特定するステップをさらに含み、
前記ステップ(g)では、前記特定された距離と前記特定された相対加速度に応じて、前記コリジョン効果が設定される、項目(4)に記載の情報処理方法。
前記ステップ(g)では、前記特定された距離と前記特定された相対加速度に応じて、前記コリジョン効果が設定される、項目(4)に記載の情報処理方法。
上記方法によれば、ヘッドマウントディスプレイとユーザの身体の一部(ユーザの頭部を除く)との間の距離とヘッドマウントディスプレイに対する当該ユーザの身体の一部の相対加速度に応じてコリジョン効果が設定されるので、仮想体験をさらに改善することが可能となる。
(9)項目(1)から(8)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
仮想体験をさらに改善することが可能なプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
最初に、図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の左目に例えば赤外光を照射して、左目(特に、角膜や虹彩)から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
注視センサ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と総称する場合がある。
外部コントローラ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がコントローラ320Lを前方(+W方向)に大きく移動させた状態を示す図である。図11(b)は、図11(a)に示す状態において、左手オブジェクト400Lによって破壊された壁オブジェクト500を示す図である。図12(a)は、ユーザUがコントローラ320Lを前方(+w方向)に小さく移動させた状態を示す図である。図12(b)は、図12(a)に示す状態において、左手オブジェクト400Lによって破壊された壁オブジェクト500を示す図である。
本実施形態に係る情報処理方法では、制御部121は、コントローラ320Lが壁オブジェクト500に与える影響を規定するコリジョン効果を設定すると共に、コントローラ320Rが壁オブジェクト500に与える影響を規定するコリジョン効果を設定するように構成されている。一方、コントローラ320L,320Rは略同一の構成を有するため、以降では、説明の便宜上、コントローラ320Lが壁オブジェクト500に与える影響を規定するコリジョン効果についてのみ言及する。また、制御部121は、図10に示す各処理をフレーム(動画像を構成する静止画像)毎に実行するものとする。尚、制御部121は、図10に示す各処理を所定の時間間隔ごとに実行してもよい。
図10に示すように、ステップS11において、制御部121は、HMD110とコントローラ320Lとの間の距離D(相対的な関係の一例)を特定する。具体的には、制御部121は、位置センサ130から取得された情報に基づいて、HMD110の位置情報と、コントローラ320Lの位置情報を取得し、当該取得された各位置情報に基づいて、HMD110のw軸方向におけるHMD110とコントローラ320Lとの間の距離Dを特定する。尚、本実施形態では、制御部121は、w軸方向におけるHMD110とコントローラ320Lとの間の距離Dを特定しているが、w軸方向以外の所定方向におけるHMD110とコントローラ320Lとの間の距離を特定してもよい。さらに、制御部121は、HMD110とコントローラ320Lとの間の直線距離を特定してもよい。この場合、HMD110の位置ベクトルをPHとし、コントローラ320Lの位置ベクトルをPLとした場合、HMD110とコントローラ320Lとの間の直線距離は |PH−PL|となる。
次に、ステップS12において、制御部121は、HMD110に対するコントローラ320Lの相対速度Vを特定する。具体的には、制御部121は、位置センサ130から取得された情報に基づいて、HMD110の位置情報と、コントローラ320Lの位置情報を取得し、当該取得された各位置情報に基づいて、w軸方向におけるHMD110に対するコントローラ320Lの相対速度V(相対的な関係の一例)を特定する。
例えば、n番目(nは1以上の整数)のフレームのときのw軸方向におけるHMD110とコントローラ320Lとの間の距離をDnとし、(n+1)番目のフレームのときのw軸方向におけるHMD110とコントローラ320Lとの間の距離をDn+1とし、各フレーム間の時間間隔をΔTとした場合、n番目のフレームのときのw軸方向における相対速度VnはVn=(Dn−Dn+1)/ΔTとなる。ここで、動画像のフレームレートが90fpsである場合、ΔTは1/90となる。
次に、ステップS13において、制御部121は、特定された距離Dが所定の距離Dthよりも大きいかどうかを判定すると共に、特定された相対速度Vが所定の相対速度Vthよりも大きいかどうかを判定する。ここで、所定の距離Dthと所定の相対速度Vthはゲーム内容に応じて適宜設定されてもよい。制御部121は、特定された距離Dが所定の距離Dthよりも大きく(D>Dth)、且つ特定された相対速度Vが所定の相対速度Vthよりも大きい(V>Vth)と判定した場合(ステップS13でYES)、図11(b)に示すように、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する(ステップS14)。一方、制御部121は、D>Dth且つV>Vthでないと判定した場合(ステップS13でNO)、図12(b)に示すように、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R1(R1<R2)に設定する(ステップS15)。このように、HMD110とコントローラ320Lとの間の距離DとHMD110に対するコントローラ320Lの相対速度Vに応じて、コリジョンエリアCAの大きさが設定される。尚、ステップS14,S15では、コリジョンエリアCAの直径の代わりに、距離Dと相対速度Vに応じてコリジョンエリアCAの半径が設定されてもよい。
次に、ステップS16において、制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCAに接触しているかどうかを判定する。制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCAに接触していると判定した場合(ステップS16でYES)、コリジョンエリアCAに接触している壁オブジェクト500の部分に所定の影響を与える(ステップS17)。例えば、コリジョンエリア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に接触していないと判定した場合(ステップS16でNO)、壁オブジェクト500には所定の影響は与えられない。その後、制御部121は、壁オブジェクト500を含む仮想空間を規定する仮想空間データを更新した上で、更新された仮想空間データに基づいて次のフレーム(静止画像)をHMD110に表示する(ステップS18)。その後、処理がステップS11に戻る。
このように、本実施形態によれば、HMD110とコントローラ320Lとの間の相対的な関係(相対位置関係と相対速度)に応じて、コントローラ320Lが壁オブジェクト500に与える影響(コリジョン効果)が設定されるので、仮想空間200に対するユーザUの没入感をさらに高めることが可能となる。特に、HMD110とコントローラ320Lとの間の距離DとHMD110に対するコントローラ320Lの相対速度Vとに応じて、左手オブジェクト400LのコリジョンエリアCAの大きさ(直径)が設定される。さらに、左手オブジェクト400LのコリジョンエリアCAと壁オブジェクト500との間の位置関係に応じて、壁オブジェクト500に所定の影響が与えられる。このため、仮想空間200に対するユーザUの没入感をさらに高めることが可能となる。
より具体的には、図11に示すように、ユーザUがコントローラ320Lを大きく且つ素早く動かしたときに(つまり、ユーザUがD>Dth且つV>Vthを満たすようにコントローラ320Lを動かしたときに)、左手オブジェクト400LのコリジョンエリアCAが大きくなるため、左手オブジェクト400Lによって破壊される壁オブジェクト500の量が大きくなる。一方、図12に示すように、ユーザUがコントローラ320Lを小さく動かしたときに(少なくともユーザUがD≦Dthとなるようにコントローラ320Lを動かしたときに)、左手オブジェクト400によって破壊される壁オブジェクト500の量が小さくなる。このため、ユーザUの動作に応じて破壊される壁オブジェクト500の量が変化するため、ユーザUはさらに仮想空間に没入することができ、リッチな仮想体験が提供される。
尚、本実施形態では、ステップS13において距離D>Dth且つ相対速度V>Vthであるかどうかが判定されているが、距離D>Dthのみが判定されてもよい。この場合、制御部121は、距離D>Dthであると判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。一方、制御部121は、距離D≦Dthであると判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R1に設定する。さらに、ステップS13において、相対速度V>Vthのみが判定されてもよい。この場合も同様に、制御部121は、相対速度V>Vthであると判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。一方、制御部121は、相対速度V≦Vthであると判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R1に設定する。
さらに、ステップS13において、HMD110に対するコントローラ320Lの相対加速度aが所定の相対加速度athよりも大きいかどうか(a>ath)が判定されてもよい。この場合、ステップS13の前において、制御部121は、w軸方向におけるHMD110に対するコントローラ320Lの相対加速度a(相対的な関係の一例)を特定する。
例えば、n番目(nは1以上の整数)のフレームのときのw軸方向におけるHMD110に対するコントローラ320Lの相対速度をVn+1とし、(n+1)番目のフレームのときのw軸方向におけるHMD110に対するコントローラ320Lの相対速度をVn+1とし、各フレーム間の時間間隔をΔTとした場合、n番目のフレームのときのw軸方向における相対加速度anはan=(Vn−Vn+1)/ΔTとなる。
この場合、制御部121は、相対加速度a>athであると判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。一方、制御部121は、相対加速度a≦athであると判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R1に設定する。
さらに、ステップS13において、距離D>Dth且つ相対加速度a>athであるかどうかが判定されてもよい。この場合も同様に、制御部121は、距離D>Dth且つ相対加速度a>athであると判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R2に設定する。一方、制御部121は、距離D>Dth且つ相対加速度a>athでないと判定した場合、左手オブジェクト400LのコリジョンエリアCAの直径Rを直径R1に設定する。
また、本実施形態では、ステップS13で規定された判定条件が満たされた場合に、左手オブジェクト400LのコリジョンエリアCAの直径Rが直径R1に設定されている。しかしながら、当該判定条件が満たされた場合に、制御部121は、コリジョンエリアCAの直径Rと相対速度Vとの間の関係を示すテーブルや関数を参照することで、相対速度Vの大きさに応じて連続的又は段階的にコリジョンエリアCAの直径R(換言すれば、コリジョンエリアCAの大きさ)を変化させてもよい。例えば、制御部121は、相対速度Vが大きくなるに連れて、連続的又は段階的にコリジョンエリアCAの直径R(換言すれば、コリジョンエリアCAの大きさ)を増大させてもよい。
同様に、当該判定条件が満たされた場合に、制御部121は、コリジョンエリアCAの直径Rと距離Dとの間の関係を示すテーブルや関数を参照することで、距離Dの大きさに応じて連続的又は段階的にコリジョンエリアCAの直径R(換言すれば、コリジョンエリアCAの大きさ)を変化させてもよい。例えば、制御部121は、距離Dが大きくなるに連れて、連続的又は段階的にコリジョンエリアCAの直径R(換言すれば、コリジョンエリアCAの大きさ)を増大させてもよい。
(変形例)
図10と図13を参照して本実施形態の変形例に係る情報処理方法について説明する。図13(a)及び(b)は、左手オブジェクト400LのコリジョンエリアCAと壁オブジェクト500に影響を与える影響範囲EAを示している。図13(a)に示すコリジョンエリアCAの大きさ(直径)は、図13(b)に示すコリジョンエリアCAの大きさ(直径)と同一である一方で、図13(a)に示す影響範囲EAの大きさ(直径)は、図13(b)に示す影響範囲EAの大きさ(直径)よりも小さい。ここで、左手オブジェクト400Lの影響範囲EAは、左手オブジェクト400Lが壁オブジェクト500等の対象オブジェクトに影響を与える範囲として規定される。
図10と図13を参照して本実施形態の変形例に係る情報処理方法について説明する。図13(a)及び(b)は、左手オブジェクト400LのコリジョンエリアCAと壁オブジェクト500に影響を与える影響範囲EAを示している。図13(a)に示すコリジョンエリアCAの大きさ(直径)は、図13(b)に示すコリジョンエリアCAの大きさ(直径)と同一である一方で、図13(a)に示す影響範囲EAの大きさ(直径)は、図13(b)に示す影響範囲EAの大きさ(直径)よりも小さい。ここで、左手オブジェクト400Lの影響範囲EAは、左手オブジェクト400Lが壁オブジェクト500等の対象オブジェクトに影響を与える範囲として規定される。
本実施形態に係る情報処理方法では、図10に示すステップS13で規定される判定条件が満たされた場合(ステップS13でYES)、コリジョンエリアCAの直径Rが直径R2に設定される一方(ステップS14)、当該判定条件が満たされない場合(ステップS13でNO)、コリジョンエリアCAの直径Rが直径R1(R2>R1)に設定される(ステップS15)。
これに対して、変形例に係る情報処理方法では、ステップS13で規定される判定条件が満たされた場合(ステップS13でYES)、図13(b)に示すように、コリジョンエリアCAの直径Rが直径R1に設定されると共に、影響範囲EAの直径がRbに設定される。一方、当該判定条件が満たされない場合(ステップS13でNO)、図13(a)に示すように、コリジョンエリアCAの直径Rが直径R1に設定されると共に、影響範囲EAの直径がRa(Rb>Ra)に設定される。このように、変形例に係る情報処理方法では、ステップS13で規定される判定条件に応じて、コリジョンエリアCAの直径は変更されない一方で、影響範囲EAの直径が変更される。
その後、ステップS16において、制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCA又は影響範囲EAに接触しているかどうかを判定する。制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCA又は影響範囲EAに接触していると判定した場合(ステップS16でYES)、コリジョンエリアCA又は影響範囲EAに接触している壁オブジェクト500の部分に所定の影響を与える(ステップS17)。例えば、図13に示すように、コリジョンエリアCA又は影響範囲EAに接触している壁オブジェクト500の部分が破壊される。また、図13(b)に示す左手オブジェクト400Lの影響範囲EAは、図13(a)に示す左手オブジェクト400Lの影響範囲EAよりも大きいので(Rb>Raであるため)、図13(b)に示す状態では、図13(a)に示す状態よりも左手オブジェクト400Lにより破壊される壁オブジェクト500の量が大きくなる。
一方、制御部121は、壁オブジェクト500が左手オブジェクト400LのコリジョンエリアCA又は影響範囲EAに接触していないと判定した場合(ステップS16でNO)、壁オブジェクト500には所定の影響は与えられない。
このように、本変形例によれば、HMD110とコントローラ320Lとの間の相対的な関係(距離と相対速度)に応じて、コントローラ320Lが壁オブジェクト500に与える影響(コリジョン効果)が設定されるので、仮想空間200に対するユーザUの没入感をさらに高めることが可能となる。特に、ステップS13で規定される判定条件に応じて、左手オブジェクト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 (8)
- ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラの視野を更新するステップと、
(c)前記仮想カメラの視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(d)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(e)前記ユーザの身体の前記一部の動きに応じて、前記操作オブジェクトを移動させるステップと、
(f)前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の相対的な関係を特定するステップと、
(g)前記特定された相対的な関係に応じて、前記操作オブジェクトが前記対象オブジェクトに与える影響を規定するコリジョン効果を設定するステップと、
を含み、
前記ステップ(g)は、
(g1)前記特定された相対的な関係に応じて、前記操作オブジェクトのコリジョンエリアの大きさを設定するステップと、
(g2)前記操作オブジェクトのコリジョンエリアと前記対象オブジェクトとの間の位置関係に応じて、前記対象オブジェクトに対して影響を与えるステップと、
を含み、
前記操作オブジェクトのコリジョンエリアは、前記操作オブジェクトと前記対象オブジェクトとの間の当たり判定に供される、情報処理方法。 - 前記ステップ(f)は、前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の相対位置関係を特定するステップを含み、
前記ステップ(g)では、前記特定された相対位置関係に応じて、前記コリジョン効果が設定され、
前記ステップ(g1)では、前記特定された相対位置関係に応じて、前記操作オブジェクトのコリジョンエリアの大きさが設定される、
請求項1に記載の情報処理方法。 - 前記ステップ(f)は、前記ヘッドマウントディスプレイと前記ユーザの身体の前記一部との間の距離を特定するステップを含み、
前記ステップ(g)では、前記特定された距離に応じて、前記コリジョン効果が設定され、
前記ステップ(g1)では、前記特定された距離に応じて、前記操作オブジェクトのコリジョンエリアの大きさが設定される、
請求項2に記載の情報処理方法。 - 前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対速度を特定するステップを含み、
前記ステップ(g)では、前記特定された相対速度に応じて、前記コリジョン効果が設定され、
前記ステップ(g1)では、前記特定された相対速度に応じて、前記操作オブジェクトのコリジョンエリアの大きさが設定される、
請求項1に記載の情報処理方法。 - 前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対速度を特定するステップを含み、
前記ステップ(g)では、前記特定された距離と前記特定された相対速度に応じて、前記コリジョン効果が設定され、
前記ステップ(g1)では、前記特定された距離と前記特定された相対速度に応じて、前記操作オブジェクトのコリジョンエリアの大きさが設定される、
請求項3に記載の情報処理方法。 - 前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対加速度を特定するステップをさらに含み、
前記ステップ(g)では、前記特定された相対加速度に応じて、前記コリジョン効果が設定され、
前記ステップ(g1)では、前記特定された相対加速度に応じて、前記操作オブジェクトのコリジョンエリアの大きさが設定される、
請求項1に記載の情報処理方法。 - 前記ステップ(f)は、前記ヘッドマウントディスプレイに対する前記ユーザの身体の前記一部の相対加速度を特定するステップをさらに含み、
前記ステップ(g)では、前記特定された距離と前記特定された相対加速度に応じて、前記コリジョン効果が設定され、
前記ステップ(g1)では、前記特定された距離と前記特定された相対加速度に応じて、前記操作オブジェクトのコリジョンエリアの大きさが設定される、
請求項3に記載の情報処理方法。 - 請求項1から7のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016148490A JP6117414B1 (ja) | 2016-07-28 | 2016-07-28 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
PCT/JP2017/012998 WO2018020735A1 (ja) | 2016-07-28 | 2017-03-29 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
US15/661,137 US20180032230A1 (en) | 2016-07-28 | 2017-07-27 | Information processing method and system for executing the information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016148490A JP6117414B1 (ja) | 2016-07-28 | 2016-07-28 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017047906A Division JP2018018499A (ja) | 2017-03-13 | 2017-03-13 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6117414B1 true JP6117414B1 (ja) | 2017-04-19 |
JP2018018326A JP2018018326A (ja) | 2018-02-01 |
Family
ID=58666943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016148490A Active JP6117414B1 (ja) | 2016-07-28 | 2016-07-28 | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6117414B1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019000174A (ja) * | 2017-06-12 | 2019-01-10 | 株式会社コロプラ | 情報処理方法、プログラム及びコンピュータ |
JP2020519992A (ja) * | 2017-04-26 | 2020-07-02 | フェイスブック・テクノロジーズ・リミテッド・ライアビリティ・カンパニーFacebook Technologies, Llc | Led追跡リングを用いたハンドコントローラ |
JP2020520491A (ja) * | 2017-04-20 | 2020-07-09 | フェイスブック・テクノロジーズ・リミテッド・ライアビリティ・カンパニーFacebook Technologies, Llc | 容量性タッチパッドを用いたハンドコントローラ |
US11511183B2 (en) | 2017-12-29 | 2022-11-29 | Meta Platforms Technologies, Llc | Hand-held controller using sensors for hand disambiguation |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020255723A1 (ja) * | 2019-06-19 | 2020-12-24 | ソニー株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
WO2024143620A1 (ko) * | 2022-12-29 | 2024-07-04 | 엘지전자 주식회사 | 휴대용 컨트롤러 및 휴대용 컨트롤러와 xr디바이스 연결방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5898756B1 (ja) * | 2014-11-28 | 2016-04-06 | 株式会社コロプラ | ディスプレイとネットワークを介して接続される複数のコントローラとを連動させて画面操作するシステム、プログラム、及び方法 |
JP2016158794A (ja) * | 2015-02-27 | 2016-09-05 | 株式会社ソニー・インタラクティブエンタテインメント | 表示制御プログラム、表示制御装置、及び表示制御方法 |
-
2016
- 2016-07-28 JP JP2016148490A patent/JP6117414B1/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5898756B1 (ja) * | 2014-11-28 | 2016-04-06 | 株式会社コロプラ | ディスプレイとネットワークを介して接続される複数のコントローラとを連動させて画面操作するシステム、プログラム、及び方法 |
JP2016158794A (ja) * | 2015-02-27 | 2016-09-05 | 株式会社ソニー・インタラクティブエンタテインメント | 表示制御プログラム、表示制御装置、及び表示制御方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020520491A (ja) * | 2017-04-20 | 2020-07-09 | フェイスブック・テクノロジーズ・リミテッド・ライアビリティ・カンパニーFacebook Technologies, Llc | 容量性タッチパッドを用いたハンドコントローラ |
JP6997798B2 (ja) | 2017-04-20 | 2022-01-18 | フェイスブック・テクノロジーズ・リミテッド・ライアビリティ・カンパニー | 容量性タッチパッドを用いたハンドコントローラ |
JP2020519992A (ja) * | 2017-04-26 | 2020-07-02 | フェイスブック・テクノロジーズ・リミテッド・ライアビリティ・カンパニーFacebook Technologies, Llc | Led追跡リングを用いたハンドコントローラ |
JP2019000174A (ja) * | 2017-06-12 | 2019-01-10 | 株式会社コロプラ | 情報処理方法、プログラム及びコンピュータ |
US11511183B2 (en) | 2017-12-29 | 2022-11-29 | Meta Platforms Technologies, Llc | Hand-held controller using sensors for hand disambiguation |
Also Published As
Publication number | Publication date |
---|---|
JP2018018326A (ja) | 2018-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6093473B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6117414B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
WO2018030453A1 (ja) | 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム、及びコンピュータ | |
WO2018020735A1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6122537B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2017187952A (ja) | 表示制御方法及び当該表示制御方法をコンピュータに実行させるためのプログラム | |
JP2017138832A (ja) | 仮想空間の提供方法、およびプログラム | |
JP6220937B1 (ja) | 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム及びコンピュータ | |
JP6113897B1 (ja) | 仮想空間を提供する方法、仮想体験を提供する方法、プログラム、および記録媒体 | |
JP2017138973A (ja) | 仮想空間の提供方法、およびプログラム | |
JP6118444B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6140871B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6416338B1 (ja) | 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置 | |
JP2018026099A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018026105A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6449922B2 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP6122194B1 (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018018499A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018045338A (ja) | 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム | |
JP2018110871A (ja) | 情報処理方法、当該情報処理方法をコンピュータに実行させるためのプログラム及びコンピュータ | |
JP6403843B1 (ja) | 情報処理方法、情報処理プログラム及び情報処理装置 | |
JP2018195172A (ja) | 情報処理方法、情報処理プログラム及び情報処理装置 | |
JP6934374B2 (ja) | プロセッサを備えるコンピュータにより実行される方法 | |
JP6469752B2 (ja) | 情報処理方法、情報処理プログラム、情報処理システムおよび情報処理装置 | |
JP6275809B1 (ja) | 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170322 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6117414 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |