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

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

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

特許6122194情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
<>
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000002
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000003
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000004
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000005
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000006
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000007
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000008
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000009
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000010
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000011
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000012
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000013
  • 特許6122194-情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6122194
(24)【登録日】2017年4月7日
(45)【発行日】2017年4月26日
(54)【発明の名称】情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
(51)【国際特許分類】
   A63F 13/525 20140101AFI20170417BHJP
   A63F 13/25 20140101ALI20170417BHJP
   A63F 13/52 20140101ALI20170417BHJP
   A63F 13/211 20140101ALI20170417BHJP
   A63F 13/428 20140101ALI20170417BHJP
   A63F 13/55 20140101ALI20170417BHJP
   A63F 13/577 20140101ALI20170417BHJP
   G06F 3/01 20060101ALI20170417BHJP
   G06F 3/0346 20130101ALI20170417BHJP
   G06F 3/0481 20130101ALI20170417BHJP
【FI】
   A63F13/525
   A63F13/25
   A63F13/52
   A63F13/211
   A63F13/428
   A63F13/55
   A63F13/577
   G06F3/01 510
   G06F3/0346 425
   G06F3/0481 150
【請求項の数】8
【全頁数】18
(21)【出願番号】特願2016-156006(P2016-156006)
(22)【出願日】2016年8月8日
【審査請求日】2016年11月30日
【早期審査対象出願】
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(72)【発明者】
【氏名】猪俣 篤
【審査官】 古川 直樹
(56)【参考文献】
【文献】 特開2015−232783(JP,A)
【文献】 特開2011−215920(JP,A)
【文献】 特開平11−207029(JP,A)
【文献】 特開2010−273987(JP,A)
【文献】 特開2016−081408(JP,A)
【文献】 特開2003−241639(JP,A)
【文献】 特許第5869177(JP,B1)
【文献】 特開2000−350865(JP,A)
【文献】 特開2006−285509(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00 − 13/98
A63F 9/24
G06F 3/01
G06F 3/0346
G06F 3/0481
(57)【特許請求の範囲】
【請求項1】
ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを特定するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラを動かすステップと、
(c)前記身体の一部の動きに応じて、前記操作オブジェクトを動かすステップと、
(d)前記操作オブジェクトと前記対象オブジェクトが所定の条件を満足した場合には、前記ヘッドマウントディスプレイの動きに連動させずに前記仮想カメラを動かすステップと、
(e)前記仮想カメラの動きに基づいて前記仮想カメラの視野を定義し、前記視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(f)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
を含み、
(d)において、前記ヘッドマウントディスプレイと前記身体の一部の相対位置関係を維持するように、前記操作オブジェクトを前記仮想カメラの動きに追随して動かす、情報処理方法。
【請求項2】
前記所定の条件は、前記操作オブジェクトと前記対象オブジェクトが接触したことを含む、請求項の方法。
【請求項3】
(d)において、前記接触に基づいて、前記対象オブジェクトの前記仮想カメラと対向する対向部分を前記仮想カメラから遠ざけるように処理するステップと、
前記ヘッドマウントディスプレイと前記身体の一部の相対位置関係を維持するように、前記操作オブジェクトを前記仮想カメラの動きに追随して動かす場合に、前記仮想カメラを前記対向部分に近づけ、かつ、前記操作オブジェクトが前記対象オブジェクトに接触しないように、前記仮想カメラを動かす、請求項2の方法。
【請求項4】
(d)において、前記操作オブジェクトと前記対象オブジェクトが接触した時点における前記仮想カメラの視軸が延びる方向に、前記仮想カメラを動かす、請求項2または3の方法。
【請求項5】
前記操作オブジェクトと前記対象オブジェクトが接触した位置が、前記仮想カメラの視軸から離れるに従って、前記仮想カメラを動かす距離を小さくする、請求項4の方法。
【請求項6】
前記操作オブジェクトと前記対象オブジェクトが接触した位置が、前記仮想カメラの視野外である場合には、前記仮想カメラを動かさない、請求項2〜5のいずれかの方法。
【請求項7】
少なくともプロセッサとメモリを備えるコンピュータの前記メモリに格納されるプログラムであって、請求項1〜6のいずれかの方法を、前記プロセッサの制御により前記コンピュータに実行させるプログラム。
【請求項8】
少なくともプロセッサとメモリを備え、前記プロセッサの制御により請求項1〜6のいずれかの方法を実行するコンピュータ。


【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【0002】
非特許文献1は、現実空間におけるユーザの手の状態(位置や傾き等)に応じて、仮想現実(Virtual Reality:VR)空間における手オブジェクトの状態を変化させると共に、当該手オブジェクトを操作することで仮想空間内の所定のオブジェクトに所定の作用を与えることを開示している。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】“Toybox Demo for Oculus Touch”、[online]、平成27年10月13日、Oculus、[平成28年8月6日検索]、インターネット<https://www.youtube.com/watch?v=iFEMiyGMa58>
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1では、現実空間におけるヘッドマウントディスプレイ(Head Mounted Display:HMD)の動きに応じて、HMDに提示される視野画像が変化する。この場合、ユーザがVR空間内における所望のオブジェクトに到達するためには、現実空間において移動したり、コントローラ等のデバイスに移動先を指定するための入力を行ったりする必要がある。
【0005】
本開示は、VR空間におけるユーザの移動を容易にすることにより、仮想体験を改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示が示す一態様によれば、ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムにおける情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを特定するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラを動かすステップと、
(c)前記身体の一部の動きに応じて、前記操作オブジェクトを動かすステップと、
(d)前記操作オブジェクトと前記対象オブジェクトが所定の条件を満足した場合には、前記ヘッドマウントディスプレイの動きに連動させずに前記仮想カメラを動かすステップと、
(e)前記仮想カメラの動きに基づいて前記仮想カメラの視野を定義し、前記視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(f)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、を含む、情報処理方法が提供される。
【発明の効果】
【0007】
本開示によれば、仮想体験を改善し得る情報処理方法、及び、当該情報処理方法をコンピュータに実現させるためのプログラムを提供することができる。
【図面の簡単な説明】
【0008】
図1】ヘッドマウントディスプレイ(Head Mounted Display:HMD)システムを示す概略図である。
図2】HMDを装着したユーザの頭部を示す図である。
図3】制御装置のハードウェア構成を示す図である。
図4】外部コントローラの具体的な構成の一例を示す図である。
図5】視野画像をHMDに表示する処理を示すフローチャートである。
図6】仮想空間の一例を示すxyz空間図である。
図7】状態(a)は、図6に示す仮想空間のyx平面図である。状態(b)は、図6に示す仮想空間のzx平面図である。
図8】HMDに表示された視野画像の一例を示す図である。
図9】状態(a)は、HMDと外部コントローラを装着したユーザを示す図である。状態(b)は、仮想カメラと、手オブジェクトと、壁オブジェクトを含む仮想空間を示す図である。
図10】本実施形態に係る情報処理方法を説明するためのフローチャートである。
図11】状態(a)は、HMDと外部コントローラを装着したユーザを示す図である。状態(b)は、仮想カメラと、手オブジェクトと、壁オブジェクトを含む仮想空間を示す図である。
図12】状態(a)は、HMDと外部コントローラを装着したユーザを示す図である。状態(b)は、仮想カメラと、手オブジェクトと、壁オブジェクトを含む仮想空間を示す図である。
図13】状態(a)は、移動前の仮想カメラ、および、手オブジェクトと、壁オブジェクトを示す図である。状態(b)は、移動後の仮想カメラ、および、手オブジェクトと、壁オブジェクトを含む仮想空間を示す図である。
【発明を実施するための形態】
【0009】
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(項目1)
ヘッドマウントディスプレイと、前記ヘッドマウントディスプレイの位置とユーザの頭部以外の身体の一部の位置を検出するように構成された位置センサとを備えたシステムを制御するコンピュータによって情報処理方法であって、
(a)仮想カメラと、操作オブジェクトと、対象オブジェクトとを含む仮想空間を規定する仮想空間データを特定するステップと、
(b)前記ヘッドマウントディスプレイの動きに応じて、前記仮想カメラを動かすステップと、
(c)前記身体の一部の動きに応じて、前記操作オブジェクトを動かすステップと、
(d)前記操作オブジェクトと前記対象オブジェクトが所定の条件を満足した場合には、前記ヘッドマウントディスプレイの動きに連動させずに前記仮想カメラを動かすステップと、
(e)前記仮想カメラの動きに基づいて前記仮想カメラの視野を定義し、前記視野と前記仮想空間データに基づいて、視野画像データを生成するステップと、
(f)前記視野画像データに基づいて、前記ヘッドマウントディスプレイに視野画像を表示させるステップと、を含む、情報処理方法。
本項目の情報処理方法によれば、ユーザの身体の一部の動きに応じて動く操作オブジェクトと対象オブジェクトが所定の条件を満足した場合に、自動的に仮想カメラを動かすことができる。これにより、ユーザは意図に沿った形でVR空間内を移動していると認識することができ、仮想体験が改善され得る。
(項目2)
(d)において、前記ヘッドマウントディスプレイと前記身体の一部の相対位置関係を維持するように、前記操作オブジェクトを前記仮想カメラの動きに追随して動かす、項目1の方法。
本項目の情報処理方法によれば、ユーザは移動後も違和感なく操作オブジェクトを用いた仮想体験を継続できる。これにより、仮想体験が改善され得る。
(項目3)
前記所定の条件は、前記操作オブジェクトと前記対象オブジェクトが接触したことを含む、項目1または2の方法。
本項目の情報処理方法によれば、ユーザは意図に沿った形でVR空間内を移動することができる。
(項目4)
(d)において、前記接触に基づいて、前記対象オブジェクトの前記仮想カメラと対向する対向部分を前記仮想カメラから遠ざけるように処理するステップと、
前記ヘッドマウントディスプレイと前記身体の一部の相対位置関係を維持するように、前記操作オブジェクトを前記仮想カメラの動きに追随して動かす場合に、前記仮想カメラを前記対向部分に近づけ、かつ、前記操作オブジェクトが前記対象オブジェクトに接触しないように、前記仮想カメラを動かす、項目3の方法。
本項目の情報処理方法によれば、移動後に操作オブジェクトが対象オブジェクトに接触することによる、ユーザの意図しないVR空間内における移動が発生することを防止できる。
(項目5)
(d)において、前記操作オブジェクトと前記対象オブジェクトが接触した時点における前記仮想カメラの視軸が延びる方向に、前記仮想カメラを動かす、項目3または4の方法。
本項目の情報処理方法によれば、VR空間内においてユーザの正面方向に仮想カメラが移動されるので、仮想カメラ移動時に生じうる映像酔い(所謂VR酔い)が防止され得る。
(項目6)
前記操作オブジェクトと前記対象オブジェクトが接触した位置が、前記仮想カメラの視軸から離れるに従って、前記仮想カメラを動かす距離を小さくする、項目5の方法。
本項目の情報処理方法によれば、移動後に操作オブジェクトが対象オブジェクトに接触することによる、ユーザの意図しないVR空間内における移動が発生することを防止できる。
(項目7)
前記操作オブジェクトと前記対象オブジェクトが接触した位置が、前記仮想カメラの視野外である場合には、前記仮想カメラを動かさない、項目3〜6のいずれかの方法。
本項目の情報処理方法によれば、ユーザの意図しないVR空間内における移動が発生することを防止できる。
(項目8)
項目1〜7のいずれかの方法を、前記コンピュータに実行させるプログラム。
【0010】
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
【0011】
最初に、図1を参照してヘッドマウントディスプレイ(HMD)システム1の構成について説明する。図1は、HMDシステム1を示す概略図である。図1に示すように、HMDシステム1は、ユーザUの頭部に装着されたHMD110と、位置センサ130と、制御装置120と、外部コントローラ320とを備える。
【0012】
HMD110は、表示部112と、HMDセンサ114と、注視センサ140とを備える。表示部112は、HMD110を装着したユーザUの視界(視野)を覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像を見ることで仮想空間に没入することができる。尚、表示部112は、ユーザUの左目に画像を提供するように構成された左目用の表示部とユーザUの右目に画像を提供するように構成された右目用の表示部から構成されてもよい。また、HMD110は、透過型表示装置を備えていても良い。この場合、当該透過型表示装置は、その透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。また、視野画像は仮想空間を構成する画像の一部に、現実空間を提示する構成を含んでいてもよい。例えば、HMD110に搭載されたカメラで撮影した画像を視野画像の一部に重畳して表示させてもよいし、当該透過型表示装置の一部の透過率を高く設定することにより、視野画像の一部から現実空間を視認可能にしてもよい。
【0013】
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動きを検出することができる。
【0014】
注視センサ140は、ユーザUの視線方向を検出するアイトラッキング機能を有する。注視センサ140は、例えば、右目用注視センサと、左目用注視センサを備えてもよい。右目用注視センサは、ユーザUの右目に例えば赤外光を照射して、右目(特に、角膜や虹彩)から反射された反射光を検出することで、右目の眼球の回転角に関する情報を取得してもよい。一方、左目用注視センサは、ユーザUの左目に例えば赤外光を照射して、左目(特に、角膜や虹彩)から反射された反射光を検出することで、左目の眼球の回転角に関する情報を取得してもよい。
【0015】
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110と外部コントローラ320の位置を検出するように構成されている。位置センサ130は、制御装置120に無線又は有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾き又は発光強度に関する情報を検出するように構成されている。さらに、位置センサ130は、外部コントローラ320に設けられた複数の検知点304(図4参照)の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
【0016】
制御装置120は、HMDセンサ114や位置センサ130から取得された情報に基づいて、HMD110の位置や向きといった動き情報を取得し、当該取得された動き情報に基づいて、仮想空間における仮想視点(仮想カメラ)の位置や向きと、現実空間におけるHMD110を装着したユーザUの位置や向きを正確に対応付けることができる。さらに、制御装置120は、位置センサ130から取得された情報に基づいて、外部コントローラ320の動き情報を取得し、当該取得された動き情報に基づいて、仮想空間内に表示される手指オブジェクト(後述する)の位置や向きと、現実空間における外部コントローラ320とHMD110との間の、位置や向きの相対関係を正確に対応付けることができる。なお、外部コントローラ320の動き情報は、HMDセンサ114と同様に、外部コントローラ320に搭載された地磁気センサ、加速度センサ、傾きセンサ等であってもよい。
【0017】
制御装置120は、注視センサ140から送信された情報に基づいて、ユーザUの右目の視線と左目の視線をそれぞれ特定し、当該右目の視線と当該左目の視線の交点である注視点を特定することができる。さらに、制御装置120は、特定された注視点に基づいて、ユーザUの視線方向を特定することができる。ここで、ユーザUの視線方向は、ユーザUの両目の視線方向であって、ユーザUの右目と左目を結ぶ線分の中点と注視点を通る直線の方向に一致する。
【0018】
図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軸回りの角度変化に基づいて、仮想視点からの視軸を定義するための角度情報を決定する。
【0019】
図3を参照して、制御装置120のハードウェア構成について説明する。図3は、制御装置120のハードウェア構成を示す図である。制御装置120は、制御部121と、記憶部123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。制御部121と、記憶部123と、I/Oインターフェース124と、通信インターフェース125は、バス126を介して互いに通信可能に接続されている。
【0020】
制御装置120は、HMD110とは別体に、パーソナルコンピュータ、タブレット又はウェアラブルデバイスとして構成されてもよいし、HMD110に内蔵されていてもよい。また、制御装置120の一部の機能がHMD110に搭載されると共に、制御装置120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
【0021】
制御部121は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)及び/又はGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
【0022】
プロセッサが本実施形態に係る情報処理方法をコンピュータに実行させるためのプログラム(後述する)をRAM上に展開し、RAMとの協働で当該プログラムを実行することで、制御部121は、制御装置120の各種動作を制御してもよい。制御部121は、メモリや記憶部123に格納された所定のアプリケーションプログラム(ゲームプログラムやインターフェースプログラム等を含む。)を実行することで、HMD110の表示部112に仮想空間(視野画像)を表示する。これにより、ユーザUは、表示部112に表示された仮想空間に没入することができる。
【0023】
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123は、本実施形態に係る情報処理方法をコンピュータに実行させるプログラムを格納してもよい。また、ユーザUの認証プログラムや各種画像やオブジェクトに関するデータを含むゲームプログラム等が格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
【0024】
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320とをそれぞれ制御装置120に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。尚、制御装置120は、位置センサ130と、HMD110と、外部コントローラ320とのそれぞれと無線接続されていてもよい。
【0025】
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)又はインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介してネットワーク上の外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
【0026】
図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と総称する場合がある。
【0027】
図4に示すように、コントローラ320Rは、操作ボタン302と、複数の検知点304と、図示しないセンサと、図示しないトランシーバとを備える。検知点304とセンサは、どちらか一方のみが設けられていてもよい。操作ボタン302は、ユーザUからの操作入力を受付けるように構成された複数のボタン群により構成されている。操作ボタン302は、プッシュ式ボタン、トリガー式ボタン及びアナログスティックを含む。プッシュ式ボタンは、親指による押下する動作によって操作されるボタンである。例えば、天面322上に2つのプッシュ式ボタン302a,302bが設けられている。トリガー式ボタンは、人差し指や中指で引き金を引くような動作によって操作されるボタンである。例えば、グリップ324の前面部分にトリガー式ボタン302eが設けられると共に、グリップ324の側面部分にトリガー式ボタン302fが設けられる。トリガー式ボタン302e,302fは、人差し指と中指によってそれぞれ操作されることが想定されている。アナログスティックは、所定のニュートラル位置から360度任意の方向へ傾けて操作されうるスティック型のボタンである。例えば、天面322上にアナログスティック320iが設けられており、親指を用いて操作されることが想定されている。
【0028】
コントローラ320Rは、グリップ324の両側面から天面322とは反対側の方向へ延びて半円状のリングを形成するフレーム326を備える。フレーム326の外側面には、複数の検知点304が埋め込まれている。複数の検知点304は、例えば、フレーム326の円周方向に沿って一列に並んだ複数の赤外線LEDである。位置センサ130は、複数の検知点304の位置、傾き又は発光強度に関する情報を検出した後に、制御装置120は、位置センサ130によって検出された情報に基づいて、コントローラ320Rの位置や姿勢(傾き・向き)に関する情報を含む動き情報を取得する。
【0029】
コントローラ320Rのセンサは、例えば、磁気センサ、角速度センサ、若しくは加速度センサのいずれか、又はこれらの組み合わせであってもよい。センサは、ユーザUがコントローラ320Rを動かしたときに、コントローラ320Rの向きや動きに応じた信号(例えば、磁気、角速度、又は加速度に関する情報を示す信号)を出力する。制御装置120は、センサから出力された信号に基づいて、コントローラ320Rの位置や姿勢に関する情報を取得する。
【0030】
コントローラ320Rのトランシーバは、コントローラ320Rと制御装置120との間でデータを送受信するように構成されている。例えば、トランシーバは、ユーザUの操作入力に対応する操作信号を制御装置120に送信してもよい。また、トランシーバは、検知点304の発光をコントローラ320Rに指示する指示信号を制御装置120から受信してもよい。さらに、トランシーバは、センサによって検出された値を示す信号を制御装置120に送信してもよい。
【0031】
図5から図8を参照することで視野画像をHMD110に表示するための処理について説明する。図5は、視野画像をHMD110に表示する処理を示すフローチャートである。図6は、仮想空間200の一例を示すxyz空間図である。図7における状態(a)は、図6に示す仮想空間200のyx平面図である。図7における状態(b)は、図6に示す仮想空間200のzx平面図である。図8は、HMD110に表示された視野画像Mの一例を示す図である。
【0032】
図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参照)。
【0033】
ステップ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は、状態(a)に示すxy平面において、視軸Lを中心とした極角αの角度範囲として設定される第1領域CVaと、状態(b)に示すxz平面において、視軸Lを中心とした方位角βの角度範囲として設定される第2領域CVbとを有する。尚、制御部121は、注視センサ140から送信されたユーザUの視線方向を示すデータに基づいて、ユーザUの視線方向を特定し、ユーザUの視線方向に基づいて仮想カメラ300の向きを決定してもよい。
【0034】
制御部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を変化させることができる。
【0035】
ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像Mを示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。
【0036】
ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像Mを表示する(図7参照)。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが更新され、HMD110の表示部112に表示される視野画像Mが更新されるので、ユーザUは仮想空間200に没入することができる。
【0037】
仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部121は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部121は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部121は、左目用視野画像データと右目用視野画像データに基づいて、HMD110の表示部112に左目用視野画像と右目用視野画像を表示する。このようにして、ユーザUは、左目用視野画像と右目用視野画像から、視野画像を3次元画像として視認することができる。本開示では、説明の便宜上、仮想カメラ300の数は一つとするが、本開示の実施形態は、仮想カメラの数が2つの場合でも適用可能である。
【0038】
仮想空間200に含まれる左手オブジェクト400L、右手オブジェクト400R及び壁オブジェクト500について図9を参照して説明する。状態(a)は、HMD110とコントローラ320L,320Rを装着したユーザUを示す。状態(b)は、仮想カメラ300と、左手オブジェクト400L(操作オブジェクトの一例)と、右手オブジェクト400R(操作オブジェクトの一例)と、壁オブジェクト500(対象オブジェクトの一例)とを含む仮想空間200を示す。
【0039】
図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の球状に形成されているものとする。
【0040】
壁オブジェクト500は、左手オブジェクト400L,右手オブジェクト400Rによって影響を受ける対象オブジェクトである。例えば、左手オブジェクト400Lが壁オブジェクト500に接触した場合、左手オブジェクト400LのコリジョンエリアCAに接触する壁オブジェクト500の部分が破壊される。また、壁オブジェクト500もコリジョンエリアを有しており、本実施形態では、壁オブジェクト500のコリジョンエリアは、壁オブジェクト500を構成する領域に一致しているものとする。
【0041】
次に、本実施形態に係る情報処理方法について図10から図13を参照して説明する。図10は、本実施形態に係る情報処理方法を説明するためのフローチャートである。図11における状態(a)は、ユーザU自身が前方(+w方向)を向いた状態でコントローラ320Lを前方に移動させた様子を示す。図11における状態(b)は、状態(a)に示す状態において、左手オブジェクト400Lによって破壊される壁オブジェクト500を示す。図12における状態(a)は、図11における状態(a)に対応し、HMD110とコントローラ320の位置関係を示す。図12における状態(b)は、壁オブジェクト500が破壊されることによる壁オブジェクト500、および、仮想カメラ300における状態の変化を示す。図13における状態(a)は、壁オブジェクト500が破壊された後であって、仮想カメラ300が移動される前の状態を、仮想空間200におけるY方向から見た様子を示す。図13における状態(b)は、壁オブジェクト500が破壊された後であって、仮想カメラ300が移動された後の状態を、仮想空間200におけるY方向から見た様子を示す。
【0042】
図10に示すように、ステップS10において、HMD110に提示される視野画像を特定する。本実施形態においては、図11の状態(b)に示すように、仮想カメラ300の前方に壁オブジェクト500、および、手オブジェクト400L,400Rが存在している。従って、図8に示すように、視野画像M内には、壁オブジェクト500のうち仮想カメラ300に対向する側の面である対向部分510が表示される。視野内において壁オブジェクト500と仮想カメラ300の間に手オブジェクト400L,400Rが存在しているため、手オブジェクト400L,400Rが対向部分510に重畳されるようにして視野画像M内に表示されている。
【0043】
ステップS11において、制御部121は、コントローラ320によって検知されるユーザUの手の動きに応じて、前述のように手オブジェクト400を動かす。
【0044】
ステップS12において、制御部121は、壁オブジェクト500と手オブジェクト400が所定の条件を満たしたか否かを判定する。本実施形態においては、左手オブジェクト400L,右手オブジェクト400Rに設定されたコリジョンエリアCAに基づいて、各手オブジェクト400と壁オブジェクト500が接触したか否かを判定する。接触した場合には、ステップS13へ進む。接触していない場合には、再びユーザの手の動き情報を待ち受け、手オブジェクト400を動かす制御を継続する。
【0045】
ステップS13において、制御部121は、壁オブジェクト500のうち仮想カメラ300と対向する対向部分510の位置を、仮想カメラ300から遠ざけるように変化させる。本実施形態においては、図11の状態(b)に示すように、ユーザUの左手の移動に基づいて左手オブジェクト400Lが壁オブジェクト500と接触することにより、図12の状態(b)に示すように壁オブジェクト500の一部が破壊される。具体的には、壁オブジェクト500のうち対向部分510を含む一部の領域が消去されることにより、仮想カメラ300から視軸方向(+w方向)に新たな対向部分510が形成されるように、壁オブジェクト500が変化する。これにより、ユーザは自らの左手を動かすことにより、壁オブジェクト500の一部を破壊したような仮想体験を得ることができる。
【0046】
ステップS14において、制御部121は、手オブジェクト400と壁オブジェクト500が接触した位置が、仮想カメラ300の視野内に位置しているかどうかを判定する。視野内に位置していた場合にはステップS15に進み、制御部121は、仮想カメラ300を移動させる処理を実行する。視野内に位置していなかった場合には、再びユーザの手の動き情報を待ち受け、手オブジェクト400を動かす制御を継続する。
【0047】
ステップS15において、制御部121は、HMD110の動きに連動させずに仮想カメラ300を動かす。具体的には、図12の状態(b)に示すように、壁オブジェクト500が破壊された仮想カメラ300の視軸方向(+w方向)に仮想カメラ300を前進させる。ユーザUが壁オブジェクト500の一部を破壊した場合には、ユーザUはさらに壁オブジェクト500を破壊させるべく行動を実行することが予想される。この場合、対向部分510が仮想カメラ300から見て後退しているため、ユーザUが手を伸ばしたとしても手オブジェクト400が壁オブジェクト500に届かないため、ユーザUは仮想カメラ300を前進させる必要がある。本実施形態においては、ユーザUによるHMD110を前進させる動作を要することなく、換言すれば、HMD110の動きと連動させずに仮想カメラ300を壁オブジェクト500に近づけるように動かすことで、ユーザUの手間を削減しつつ直感的な操作感を提供することができる。
【0048】
本実施形態においては、仮想カメラ300を移動させる場合に、HMD110と手の相対位置関係を維持するように、手オブジェクト400を仮想カメラ300の動きに追随して動かすことが好ましい。例えば、図12の状態(a)に示すように、現実空間におけるHMD110と左手(左手コントローラ320L)の間の+w方向における距離d1、HMD110と右手(右手コントローラ320R)の間の+w方向における距離d2である場合を想定する。この場合、図12の状態(b)に示すように、移動前の仮想カメラ300と左手オブジェクト400Lの間の+x方向における距離はd1であり、移動前の仮想カメラ300と右手オブジェクト400Rの間の+x方向における距離はd2に設定される。上述のような仮想カメラの移動方向および移動量を定義する移動ベクトルFが特定された場合、仮想カメラ300の移動に追随して、手オブジェクト400が移動される。即ち、移動後の仮想カメラ300と左手オブジェクト400Lの間の+x方向における距離はd1であり、移動後の仮想カメラ300と右手オブジェクト400Rの間の+x方向における距離はd2に設定される。このように手オブジェクト400が移動されることにより、ユーザUは移動後も手オブジェクト400を介して対象オブジェクトと直感的に相互作用することを継続できる。なお、w方向およびx方向以外の方向についての相対位置関係についても同様である。
【0049】
本実施形態においては、手オブジェクト400を仮想カメラ300の移動に連動して移動させる場合に、手オブジェクト400が壁オブジェクト500に接触しないように仮想カメラ300を移動させることが好ましい。例えば、図12の状態(b)に示すように、移動ベクトルFの大きさは、手オブジェクト400(およびそのコリジョンエリアCA)が+x方向において壁オブジェクト500の手前側に位置されるように設定される。これにより、仮想カメラ300の移動後に再度手オブジェクト400が壁オブジェクト500に接触して再び対向部分510が後退し、ユーザUが意図しない壁オブジェクト500の変化、および、仮想カメラ300の移動が生じることを防止できる。
【0050】
本実施形態における移動ベクトルFの設定例を、図13を参照して説明する。図13は、仮想カメラ300が移動される前後の状態を、仮想空間200におけるY方向から見た様子を示す。図13の状態(a)において、左手オブジェクト400Lと壁オブジェクト500の接触により、対向部分510が後退したものとする。
【0051】
仮想カメラ300の移動ベクトルFの方向は、仮想カメラ300と左手オブジェクト400Lの位置関係によらず、仮想カメラ300と左手オブジェクト400Lが接触した時点における仮想カメラ300の視軸Lが延びる方向であることが好ましい。これにより、ユーザUから見て前方方向に仮想カメラ300が移動されることとなり、ユーザUによる移動方向の予測可能性が高まる。その結果、仮想カメラ300の移動によりユーザUが受ける映像酔い(所謂、VR酔い)を軽減することができる。なお、仮想カメラ300の移動が開始し、移動が完了する前にユーザUが頭を動かし、仮想カメラの向きが変化したとしても、仮想カメラ300と左手オブジェクト400Lが接触した時点における仮想カメラ300の視軸Lが延びる方向に仮想カメラ300を移動させることが好ましい。これによりユーザUによる移動方向の予測可能性が高まり、VR酔いが軽減される。
【0052】
仮想カメラ300の移動ベクトルFの大きさは、左手オブジェクト400Lと壁オブジェクト500が接触した位置が、仮想カメラ300の視軸Lから離れるに従って、小さくすることが好ましい。これにより、仮想カメラ300を視軸L方向に移動させたとしても、仮想カメラ300の移動後に再度左手オブジェクト400Lが壁オブジェクト500に接触することを好適に防止できる。
【0053】
図13の状態(a)において、左手オブジェクト400Lと壁オブジェクト500が接触した位置と、仮想カメラ300の視軸Lとの距離を、仮想カメラ300から左手オブジェクト400Lへ向かう方向と視軸Lの間の角度θに基づいて定義してもよい。壁オブジェクト500が接触した左手オブジェクト400Lの位置と、仮想カメラ300の位置との間の距離をDとすると、D*cosθによって定義される距離F1を得る。移動ベクトルFの大きさをαD*cosθ(αは、0<α<1なる定数)と定義することにより、移動ベクトルFの大きさは、左手オブジェクト400Lと壁オブジェクト500が接触した位置が、仮想カメラ300の視軸Lから離れるに従って、小さくなる。
【0054】
ステップS16において、制御部121は、移動された仮想カメラ300の視野に基づいて、視野画像を更新する。更新された視野画像がHMD110に提示されることにより、ユーザUは仮想空間内における移動を体験することができる。
【0055】
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
【0056】
本実施形態では、ユーザUの手の動きを示す外部コントローラ320の動きに応じて、手オブジェクトの移動が制御されているが、ユーザUの手自体の移動量に応じて、仮想空間内における手オブジェクトの移動が制御されてもよい。例えば、外部コントローラを用いる代わりに、ユーザの手指に装着されるグローブ型デバイスや指輪型デバイスを用いることで、位置センサ130により、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。また、位置センサ130は、ユーザUの手(手指を含む)を撮像するように構成されたカメラであってもよい。この場合、カメラを用いてユーザの手を撮像することにより、ユーザの手指に直接何らかのデバイスを装着させることなく、ユーザの手が表示された画像データに基づいて、ユーザUの手の位置や移動量を検出することができると共に、ユーザUの手指の動きや状態を検出することができる。
【0057】
また、本実施形態では、ユーザUの頭部以外の身体の一部である手の位置及び/又は動きに応じて、手オブジェクトが壁オブジェクトに与える影響を規定するコリジョン効果が設定されているが、本実施形態はこれには限定されない。例えば、ユーザUの頭部以外の身体の一部である足の位置及び/又は動きに応じて、ユーザUの足の動きに連動する足オブジェクト(操作オブジェクトの一例)が対象オブジェクトに与える影響を規定するコリジョン効果が設定されてもよい。このように、本実施形態では、HMD110とユーザUの身体の一部との間の相対的な関係(距離及び相対速度)を特定し、特定された相対的な関係に応じて、当該ユーザUの身体の一部と連動する操作オブジェクトが対象オブジェクトに与える影響を規定するコリジョン効果が設定されてもよい。
【0058】
また、本実施形態では、手オブジェクトにより所定の影響を受ける対象オブジェクトの一例として壁オブジェクト500が説明されているが、対象オブジェクトの属性は特に限定されない。さらに、仮想カメラ300を移動させるための条件は、手オブジェクト400と壁オブジェクト500の接触による以外に、適宜の条件を設定しておよい。例えば、手オブジェクト400の所定の指が壁オブジェクト500に対して一定時間向けられた場合には、壁オブジェクト500の対向部分510が移動されるとともに、仮想カメラ300が移動されることとしてもよい。この場合、ユーザUの手についても図2に示したように3軸を設定し、例えばロール軸を指差し方向と定義することによって、ユーザUにVR空間における直感的なオブジェクト操作、および、移動体験を提供することができる。
【符号の説明】
【0059】
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領域

【要約】      (修正有)
【課題】VR空間におけるユーザの移動を容易にすることにより、仮想体験を改善する。
【解決手段】コンピュータを用いてヘッドマウントディスプレイ(以下、HMD)110にユーザが没入する仮想空間を提供する方法であって、ヘッドマウントディスプレイ110の動きに応じて、仮想空間における視野を定義する仮想カメラ300を動かすステップと、ユーザの身体の一部の動きに応じて、操作オブジェクト400L、400Rを動かすステップと、操作オブジェクト400L、400Rと対象オブジェクト500が所定の条件を満足した場合には、ヘッドマウントディスプレイの動きに連動させずに仮想カメラ300を動かすステップと、を含む。
【選択図】図12
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13