JP2018045299A - 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム - Google Patents

情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム Download PDF

Info

Publication number
JP2018045299A
JP2018045299A JP2016177690A JP2016177690A JP2018045299A JP 2018045299 A JP2018045299 A JP 2018045299A JP 2016177690 A JP2016177690 A JP 2016177690A JP 2016177690 A JP2016177690 A JP 2016177690A JP 2018045299 A JP2018045299 A JP 2018045299A
Authority
JP
Japan
Prior art keywords
virtual camera
eye
sub
visual field
field image
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.)
Granted
Application number
JP2016177690A
Other languages
English (en)
Other versions
JP6216851B1 (ja
Inventor
真弥 青山
Masaya Aoyama
真弥 青山
集平 寺畑
Shuhei Terahata
集平 寺畑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Colopl Inc
Original Assignee
Colopl Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Colopl Inc filed Critical Colopl Inc
Priority to JP2016177690A priority Critical patent/JP6216851B1/ja
Application granted granted Critical
Publication of JP6216851B1 publication Critical patent/JP6216851B1/ja
Publication of JP2018045299A publication Critical patent/JP2018045299A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】仮想空間に対するユーザの体験をさらに改善する。【解決手段】仮想空間200データを生成するステップと、HMDの動きに応じて、左右メイン仮想カメラ300L,300Rの視野を更新するステップと、左右メイン仮想カメラの視野と仮想空間データに基づいて、第1の左目用視野画像データと第1の右目用視野画像データとを生成するステップと、左右メイン仮想カメラと反射オブジェクト500との間の相対位置関係に基づいて、左右サブ仮想カメラ400L,400Rの位置と向きを特定するステップと、左右サブ仮想カメラの視野と仮想空間データに基づいて、第2の左目用視野画像データと第2の右目用視野画像データとを生成するステップと、第1の左目用視野画像及び第2の左目用視野画像を左目用表示部に表示するステップと、第1の右目用視野画像及び前記第2の右目用視野画像を右目用表示部に表示するステップと、を含む。【選択図】図8

Description

本開示は、情報処理方法および当該情報処理方法をコンピュータに実行させるためのプログラムに関する。
特許文献1に開示されたVR(Virtual Reality)空間では、ユーザの頭部に装着されたヘッドマウントデバイス(Head Mounted Device:HMD)の傾きに基づいて、仮想カメラの向き及び/又は位置が変化する。このように、HMDの動きに応じて仮想カメラの視野が変化し、HMDに表示される視野映像が変化するため、ユーザはVR空間に対する没入感を得ることができる。
特許第5767386号公報
ところで、現実空間(現実世界)では、反射面を有するミラー等の手前に物体が存在する場合、ミラーを見ている観測者は、ミラーの反射面上に映された物体を視認することができる。VR空間、AR(Augmented Reality)空間、MR(Mixed Reality)空間等の仮想空間においても、現実空間と同じように、反射面を有する反射オブジェクトの手前に所定のオブジェクトが存在する場合、HMDを装着するユーザは、反射オブジェクトの反射面上に映された所定のオブジェクトを視認できることが好ましい。特に、ユーザの視点(仮想カメラの位置)と反射オブジェクトの反射面との間の相対的位置関係に応じて、反射面上に映された像が変化することが好ましい。
本発明は、仮想空間に対するユーザの体験をさらに改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することを目的とする。
本開示が示す一態様によれば、情報処理方法は、ユーザの左目に対応する左目用表示部と、当該ユーザの右目に対応する右目用表示部とを備えるヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される。
当該情報処理方法は、
(a)メイン仮想カメラと、サブ仮想カメラと、反射面を有する反射オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントデバイスの動きに応じて、前記メイン仮想カメラの視野を更新するステップと、
(c)前記メイン仮想カメラの視野と前記仮想空間データに基づいて、第1の左目用視野画像データと第1の右目用視野画像データとを生成するステップと、
(d)前記メイン仮想カメラと前記反射オブジェクトとの間の相対位置関係に基づいて、前記サブ仮想カメラの位置と向きを特定するステップと、
(e)前記サブ仮想カメラの視野と前記仮想空間データに基づいて、第2の左目用視野画像データと第2の右目用視野画像データとを生成するステップと、
(f)前記第1及び第2の左目用視野画像データに基づいて、第2の左目用視野画像が前記反射オブジェクトの反射面上に重畳されるように、第1の左目用視野画像及び前記第2の左目用視野画像を前記左目用表示部に表示するステップと、
(g)前記第1及び第2の右目用視野画像データに基づいて、第2の右目用視野画像が前記反射オブジェクトの反射面上に重畳されるように、第1の右目用視野画像及び前記第2の右目用視野画像を前記右目用表示部に表示するステップと、
を含む。
本開示によれば、仮想空間に対するユーザの体験をさらに改善することが可能な情報処理方法及び当該情報処理方法をコンピュータに実現させるためのプログラムを提供することを目的とする。
ヘッドマウントデバイス(Head Mounted Device:HMD)システムを示す概略図である。 HMDを装着したユーザの頭部を示す図である。 制御装置のハードウェア構成を示す図である。 視野画像をHMDに表示する処理を示すフローチャートである。 仮想空間の一例を示すxyz空間図である。 (a)は、図5に示す仮想空間のyx平面図である。(b)は、図5に示す仮想空間のzx平面図である。 HMDに表示された視野画像の一例を示す図である。 左右メイン仮想カメラと、左右サブ仮想カメラと、反射オブジェクトと、アバターオブジェクトとを含む仮想空間を示す図である。 第1実施形態に係る情報処理方法を説明するためのフローチャートである。 左右サブ仮想カメラの位置と向きを特定する処理を説明するためのフローチャートである。 左サブ仮想カメラの位置と向きを特定する方法を説明するための図である。 右サブ仮想カメラの位置と向きを特定する方法を説明するための図である。 (a)は、アバターオブジェクトに対する左サブ仮想カメラと右サブ仮想カメラとの間の輻輳角を説明するための図である。(b)は、反射オブジェクトの反射面に対する左メイン仮想カメラと右メイン仮想カメラとの間の輻輳角を説明するための図である。 (a)は、左目用表示部に表示された合成視野画像を示す図である。(b)は、右目用表示部に表示された合成視野画像を示す図である。 左右メイン仮想カメラと、単一のサブ仮想カメラと、反射オブジェクトと、アバターオブジェクトとを含む仮想空間を示す図である。 第2実施形態に係る情報処理方法を説明するためのフローチャートである。 単一のサブ仮想カメラの位置と向きを特定するための方法を説明するためのフローチャートである。 単一のメイン仮想カメラと、単一のサブ仮想カメラと、反射オブジェクトと、アバターオブジェクトとを含む仮想空間を示す図である。 第3実施形態に係る情報処理方法を説明するためのフローチャートである。 単一のサブ仮想カメラの位置と向きを特定するための方法を説明するためのフローチャートである。
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)ユーザの左目に対応する左目用表示部と、当該ユーザの右目に対応する右目用表示部とを備えるヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法であって、
(a)メイン仮想カメラと、サブ仮想カメラと、反射面を有する反射オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
(b)前記ヘッドマウントデバイスの動きに応じて、前記メイン仮想カメラの視野を更新するステップと、
(c)前記メイン仮想カメラの視野と前記仮想空間データに基づいて、第1の左目用視野画像データと第1の右目用視野画像データとを生成するステップと、
(d)前記メイン仮想カメラと前記反射オブジェクトとの間の相対位置関係に基づいて、前記サブ仮想カメラの位置と向きを特定するステップと、
(e)前記サブ仮想カメラの視野と前記仮想空間データに基づいて、第2の左目用視野画像データと第2の右目用視野画像データとを生成するステップと、
(f)前記第1及び第2の左目用視野画像データに基づいて、第2の左目用視野画像が前記反射オブジェクトの反射面上に重畳されるように、第1の左目用視野画像及び前記第2の左目用視野画像を前記左目用表示部に表示するステップと、
(g)前記第1及び第2の右目用視野画像データに基づいて、第2の右目用視野画像が前記反射オブジェクトの反射面上に重畳されるように、第1の右目用視野画像及び前記第2の右目用視野画像を前記右目用表示部に表示するステップと、
を含む、情報処理方法。
上記方法によれば、メイン仮想カメラと反射オブジェクトとの間の相対位置関係に基づいて、サブ仮想カメラの位置と向きが特定される。また、第2の左目用視野画像が反射オブジェクトの反射面上に重畳されるように、第1の左目用視野画像及び第2の左目用視野画像がヘッドマウントデバイス(HMD)の左目用表示部に表示される。さらに、第2の右目用視野画像が反射オブジェクトの反射面上に重畳されるように、第1の右目用視野画像及び第2の右目用視野画像がHMDの右目用表示部に表示される。
このように、HMDを装着したユーザは、反射オブジェクトと反射オブジェクトの反射面上に映された像(第2の左目用視野画像と第2の右目用視野画像)を立体的に視認(立体視)できると共に、ユーザの動きに応じて、反射オブジェクトの反射面上に映された像を変化させることができる。従って、仮想空間に対するユーザの体験をさらに改善することが可能な情報処理方法を提供することができる。
(2)前記ステップ(d)は、
前記反射オブジェクトの反射面上の所定の位置における法線ベクトルを特定するステップと、
前記メイン仮想カメラと前記所定の位置を通る入射軸を特定するステップと、
前記法線ベクトルと前記入射軸とによって形成される入射角度を特定するステップと、
前記所定の位置を通る反射軸と前記法線ベクトルとによって形成される反射角度が前記入射角度と同一となるように、前記反射軸を特定するステップと、
前記反射軸に基づいて、前記サブ仮想カメラの位置と向きを特定するステップと、
を含む、項目(1)に記載の情報処理方法。
上記方法によれば、メイン仮想カメラの位置と反射オブジェクトの反射面上の所定の位置とを通る入射軸と当該所定の位置での法線ベクトルとによって、サブ仮想カメラの位置と向きが特定される。このように、メイン仮想カメラと反射オブジェクトとの間の相対位置関係に応じてサブ仮想カメラの位置と向きを変化させることができる。
(3)前記第1の左目用視野画像に表示された反射オブジェクトと前記第1の右目用視野画像に表示された反射オブジェクトとの間の視差は、前記反射オブジェクトの反射面上に重畳された前記第2の左目用視野画像に表示された所定のオブジェクトと前記反射オブジェクトの反射面上に重畳された前記第2の右目用視野画像に表示された所定のオブジェクトとの間の視差よりも大きい、項目(1)又は(2)に記載の情報処理方法。
上記方法によれば、第1の左目用視野画像に表示された反射オブジェクトと第1の右目用視野画像に表示された反射オブジェクトとの間の視差は、第2の左目用視野画像に表示された所定のオブジェクトと第2の右目用視野画像に表示された所定のオブジェクトとの間の視差よりも大きい。このように、HMDを装着したユーザは、所定のオブジェクトが反射オブジェクトの反射面よりも奥側に位置していることを立体的に認識することができる。
(4)前記メイン仮想カメラは、左メイン仮想カメラと、右メイン仮想カメラを備え、
前記サブ仮想カメラは、左サブ仮想カメラと、右サブ仮想カメラを備え、
前記ステップ(b)は、
前記ヘッドマウントディスプレイの動きに応じて、前記左メイン仮想カメラの視野と前記右メイン仮想カメラの視野を更新するステップを含み、
前記ステップ(c)は、
前記左メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の左目用視野画像データを生成するステップと、
前記右メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の右目用視野画像データを生成するステップと、
を含み、
前記ステップ(d)は、
前記左メイン仮想カメラと前記反射オブジェクトとの間の相対位置関係に基づいて、前記左サブ仮想カメラの位置と向きを特定するステップと、
前記右メイン仮想カメラと前記反射オブジェクトとの間の相対位置関係に基づいて、前記右サブ仮想カメラの位置と向きを特定するステップと、
を含み、
前記ステップ(e)は、
前記左サブ仮想カメラの視野と前記仮想空間データに基づいて、前記第2の左目用視野画像データを生成するステップと、
前記右サブ仮想カメラの視野と前記仮想空間データに基づいて、前記第2の右目用視野画像データを生成するステップと、
を含む、項目(1)から(3)のうちいずれか一項に記載の情報処理方法。
上記方法によれば、左メイン仮想カメラを用いることで第1の左目用視野画像データを生成することができると共に、右メイン仮想カメラを用いることで第1の右目用視野画像データを生成することができる。さらに、左サブ仮想カメラを用いることで第2の左目用視野画像データを生成することができると共に、右サブ仮想カメラを用いることで第2の右目用視野画像データを生成することができる。
(5)前記左サブ仮想カメラの位置と向きを特定するステップは、
前記反射オブジェクトの反射面上の所定の位置における法線ベクトルを特定するステップと、
前記左メイン仮想カメラと前記所定の位置を通る左入射軸を特定するステップと、
前記法線ベクトルと前記左入射軸とによって形成される入射角度を特定するステップと、
前記所定の位置を通る左反射軸と前記法線ベクトルとによって形成される反射角度が前記入射角度と同一となるように、前記左反射軸を特定するステップと、
前記左反射軸に基づいて、前記左サブ仮想カメラの位置と向きを特定するステップと、
を含み、
前記右サブ仮想カメラの位置と向きを特定するステップは、
前記反射オブジェクトの反射面上の所定の位置における法線ベクトルを特定するステップと、
前記右メイン仮想カメラと前記所定の位置を通る右入射軸を特定するステップと、
前記法線ベクトルと前記右入射軸とによって形成される入射角度を特定するステップと、
前記所定の位置を通る右反射軸と前記法線ベクトルとによって形成される反射角度が前記入射角度と同一となるように、前記右反射軸を特定するステップと、
前記右反射軸に基づいて、前記右サブ仮想カメラの位置と向きを特定するステップと、
を含む、項目(4)に記載の情報処理方法。
上記方法によれば、左メイン仮想カメラの位置と反射オブジェクトの反射面上の所定の位置とを通る左入射軸と当該所定の位置での法線ベクトルとによって、左サブ仮想カメラの位置と向きが特定される。さらに、右メイン仮想カメラの位置と反射オブジェクトの反射面上の所定の位置とを通る右入射軸と当該所定の位置での法線ベクトルとによって、右サブ仮想カメラの位置と向きが特定される。このように、左メイン仮想カメラと反射オブジェクトとの間の相対位置関係に応じて左サブ仮想カメラの位置と向きを変化させることができると共に、右メイン仮想カメラと反射オブジェクトとの間の相対位置関係に応じて右サブ仮想カメラの位置と向きを変化させることができる。
(6)前記反射オブジェクトの反射面に対する前記左メイン仮想カメラと前記右メイン仮想カメラとの間の輻輳角は、前記左サブ仮想カメラ及び前記右サブ仮想カメラの視野内に存在する所定のオブジェクトに対する前記左サブ仮想カメラと前記右サブ仮想カメラとの間の輻輳角よりも大きい、項目(4)又は(5)に記載の情報処理方法。
上記方法によれば、反射オブジェクトの反射面に対する左メイン仮想カメラと右メイン仮想カメラとの間の輻輳角は、左サブ仮想カメラ及び右サブ仮想カメラの視野内に存在する所定のオブジェクトに対する左サブ仮想カメラと右サブ仮想カメラとの間の輻輳角よりも大きい。このように、HMDを装着したユーザは、所定のオブジェクトが反射オブジェクトの反射面よりも奥側に位置していることを立体的に認識することができる。
(7)前記メイン仮想カメラは、左メイン仮想カメラと、右メイン仮想カメラを備え、
前記サブ仮想カメラは、単一のサブ仮想カメラのみから構成され、
前記ステップ(b)は、
前記ヘッドマウントディスプレイの動きに応じて、前記左メイン仮想カメラの視野と前記右メイン仮想カメラの視野を更新するステップを含み、
前記ステップ(c)は、
前記左メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の左目用視野画像データを生成するステップと、
前記右メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の右目用視野画像データを生成するステップと、
を含み、
前記ステップ(d)は、
前記左メイン仮想カメラ及び前記右メイン仮想カメラのうちの少なくとも一方と前記反射オブジェクトとの間の相対位置関係に基づいて、前記サブ仮想カメラの位置と向きを特定するステップを含み、
前記第2の左目用視野画像は、前記第2の右目用視野画像と同一である、
項目(1)から(3)のうちいずれか一項に記載の情報処理方法。
上記方法によれば、2つのメイン仮想カメラと単一のサブ仮想カメラによって、HMDを装着したユーザは、反射オブジェクトと反射オブジェクトの反射面上に映された像を立体視できると共に、ユーザの動きに応じて、反射オブジェクトの反射面上に映された像を変化させることができる。特に、単一のサブ仮想カメラを用いた場合では、第2の左目用視野画像は、第2の右目用視野画像と同一となるため、第2の左目視野画像に表示された所定のオブジェクトと第2の右目用視野画像に表示された当該所定のオブジェクトとの間の視差はゼロとなる。このように、HMDを装着したユーザは、当該所定のオブジェクトが反射オブジェクトの反射面よりも奥側に位置していることを立体的に認識することができる。このように、当該情報処理方法を実行するプロセッサの演算量を軽減することが可能となる。
(8)前記メイン仮想カメラは、単一のメイン仮想カメラのみから構成され、
前記サブ仮想カメラは、単一のサブ仮想カメラのみから構成される、項目(1)から(3)のうちいずれか一項に記載の情報処理方法。
上記方法によれば、単一のメイン仮想カメラと単一のサブ仮想カメラを用いることで、第1及び第2の左目用視野画像データを生成することができると共に、第1及び第2の右目用視野画像データを生成することができる。このように、当該情報処理方法を実行するプロセッサの演算量を軽減することが可能となる。
(9)項目(1)から(8)のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
上記プログラムによれば、仮想空間に対するユーザの体験をさらに改善することが可能なプログラムを提供することができる。
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。尚、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
最初に、図1を参照してヘッドマウントデバイス(HMD)システム1の構成について説明する。図1は、HMDシステム1を示す概略図である。図1に示すように、HMDシステム1は、ユーザUの頭部に装着されたHMD110と、位置センサ130と、外部コントローラ320と、制御装置120とを備える。
HMD110は、表示部112と、HMDセンサ114と、注視センサ140とを備える。表示部112は、HMD110を装着したユーザUの視界(視野)を覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。尚、表示部112は、左目用表示部112Lと、右目用表示部112Rとを含む。左目用表示部112Lは、ユーザUの左目に対応しており、ユーザUの左目に左目用視野画像を提供するように構成されている。右目用表示部112Rは、ユーザ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に設けられた複数の検知点(図示せず)の位置、傾き及び/又は発光強度に関する情報を検出するように構成されている。検知点は、例えば、赤外線や可視光を放射する発光部である。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
外部コントローラ320は、ユーザUの手の動きを検知することにより、仮想空間内に表示される手オブジェクトの動作を制御するために使用される。外部コントローラ320は、ユーザUの右手によって操作される右手用外部コントローラ320Rと、ユーザUの左手によって操作される左手用外部コントローラ320Lと、を有する。コントローラ320Rは、ユーザUの右手の位置や右手の手指の動きを示す装置である。また、コントローラ320Rの動きに応じて仮想空間内に存在する右手オブジェクトが移動する。コントローラ320Lは、ユーザUの左手の位置や左手の手指の動きを示す装置である。また、コントローラ320Lの動きに応じて仮想空間内に存在する左手オブジェクトが移動する。コントローラ320Rとコントローラ320Lは略同一の構成を有する。
制御装置120は、HMD110を制御するように構成されたコンピュータである。制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。さらに、制御装置120は、位置センサ130から取得された情報に基づいて、外部コントローラ320の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間内に表示される手オブジェクトの位置と現実空間における外部コントローラ320の位置を正確に対応付けることができる。
また、制御装置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から図7を参照することで視野画像をHMD110に表示するための処理について説明する。図4は、視野画像をHMD110に表示する処理を示すフローチャートである。図5は、仮想空間200の一例を示すxyz空間図である。図6(a)は、図5に示す仮想空間200のyx平面図である。図6(b)は、図5に示す仮想空間200のzx平面図である。図7は、HMD110に表示された視野画像Vの一例を示す図である。
図4に示すように、ステップS1において、制御部121(図3参照)は、仮想カメラ300と、各種オブジェクトとを含む仮想空間200を示す仮想空間データを生成する。図5に示すように、仮想空間200は、中心位置21を中心とした全天球として規定される(図5では、上半分の天球のみが図示されている)。また、仮想空間200では、中心位置21を原点とするxyz座標系が設定されている。仮想カメラ300は、HMD110に表示される視野画像V(図7参照)を特定するための視軸Lを規定している。仮想カメラ300の視野を定義するuvw座標系は、現実空間におけるユーザUの頭部を中心として規定されたuvw座標系に連動するように決定される。また、制御部121は、HMD110を装着したユーザUの現実空間における移動に応じて、仮想カメラ300を仮想空間200内で移動させてもよい。
次に、ステップS2において、制御部121は、仮想カメラ300の視野CV(図6参照)を特定する。具体的には、制御部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は、図6(a)に示すxy平面において、視軸Lを中心とした極角αの角度範囲として設定される第1領域CVaと、図6(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に表示される視野画像Vを示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像Vを表示する(図7参照)。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが更新され、HMD110の表示部112に表示される視野画像Vが更新されるので、ユーザUは仮想空間200に没入することができる。
以降に説明するように、仮想カメラ300は、左目用仮想カメラと右目用仮想カメラを含んでもよい。この場合、制御部121は、仮想空間データと左目用仮想カメラの視野に基づいて、左目用の視野画像を示す左目用視野画像データを生成する。さらに、制御部121は、仮想空間データと、右目用仮想カメラの視野に基づいて、右目用の視野画像を示す右目用視野画像データを生成する。その後、制御部121は、左目用視野画像データに基づいて、HMD110の左目用表示部112Lに左目用視野画像を表示する。同様に、制御部121は、右目用視野画像データに基づいて、HMD110に右目用表示部112Rに右目用視野画像を表示する。このようにして、ユーザUは、左目用表示部112Lに表示された左目用視野画像を左目で視認しつつ、右目用表示部112Rに表示された右目用視野画像を右目で視認することで、視野画像を3次元画像として立体的に視認することができる。
(第1実施形態)
次に、図8及び図9を参照することで第1実施形態に係る情報処理方法について説明する。図8は、左メイン仮想カメラ300Lと、右メイン仮想カメラ300Rと、左サブ仮想カメラ400Lと、右サブ仮想カメラ400Rと、反射オブジェクト500と、アバターオブジェクト600(所定のオブジェクト)とを含む仮想空間200を示す図である。図9は、第1実施形態に係る情報処理方法を説明するためのフローチャートである。
図8に示すように、左メイン仮想カメラ300Lと右メイン仮想カメラ300Rは、既に説明した仮想カメラ300と同様の機能を有する。つまり、HMD110の動きに応じて左メイン仮想カメラ300Lと右メイン仮想カメラ300Rの視野が更新される。ユーザUの左目に提示される左目用視野画像は、左メイン仮想カメラ300Lの視野と仮想空間データに基づいて生成される。同様に、ユーザUの右目に提示される右目用視野画像は、右メイン仮想カメラ300Rの視野と仮想空間データに基づいて生成される。左目用視野画像に表示されたオブジェクトと右目用視野画像に表示されたオブジェクトとの間には所定の視差があるため、既に説明したように、ユーザUは、左目用視野画像と右目視野画像を見ることで仮想空間(オブジェクト)を立体的に視認することができる。
反射オブジェクト500は、反射面520を有する。仮想空間200内のオブジェクト(例えば、アバターオブジェクト600)の像は、反射面520上に表示される。本実施形態では、反射オブジェクト500は、水たまりオブジェクトであるが、所定のオブジェクトの像が表示される反射面を有するオブジェクトであれば、反射オブジェクト500の種類や形状等は特に限定されない。本実施形態では、左サブ仮想カメラ400Lと右サブ仮想カメラ400Rを用いることで反射面520上に表示されるオブジェクトの像が特定される。
次に、図9に示すように、ステップS11において、制御部121は、左メイン仮想カメラ300Lの視野と右メイン仮想カメラ300Rの視野を特定する。具体的には、制御部121は、HMD110の位置や向き(動き)に応じて、左メイン仮想カメラ300Lの位置や向きを特定した上で、当該特定された位置や向きに基づいて左メイン仮想カメラ300Lの視軸を特定する。さらに、制御部121は、決定された視軸から左メイン仮想カメラ300Lの視野を特定する。このように、制御部121は、HMD110の動きに応じて、左メイン仮想カメラ300Lの視野を更新する。同様に、制御部121は、HMD110の位置や向き(動き)に応じて、右メイン仮想カメラ300Rの位置や向きを特定した上で、当該特定された位置や向きに基づいて右メイン仮想カメラ300Rの視軸を特定する。さらに、制御部121は、決定された視軸から右メイン仮想カメラ300Rの視野を特定する。このように、制御部121は、HMD110の動きに応じて、右メイン仮想カメラ300Rの視野を更新する。尚、ステップS11の前に、制御部121は、図8に示す仮想空間200を規定する仮想空間データを生成している点に留意されたい。
次に、ステップS12において、制御部121は、左メイン仮想カメラ300Lの視野と仮想空間データに基づいて第1の左目用視野画像データを生成すると共に、右メイン仮想カメラ300Rの視野と仮想空間データに基づいて第1の右目用視野画像データを生成する。
次に、ステップS13において、制御部121は、左メイン仮想カメラ300Lと反射オブジェクト500の反射面520との間の相対位置関係に基づいて、左サブ仮想カメラ400Lの位置と向きを特定する。同様に、制御部121は、右メイン仮想カメラ300Rと反射面520との間の相対位置関係に基づいて、右サブ仮想カメラ400Rの位置と向きを特定する。具体的には、ステップS13に示す処理(左サブ仮想カメラ400Lの位置と向きと右サブ仮想カメラ400Rの位置と向きをそれぞれ特定する処理)について図10から図12を参照して説明する。
図10は、左サブ仮想カメラ400Lの位置と向きと右サブ仮想カメラ400Rの位置と向きをそれぞれ特定するための方法を説明するためのフローチャートである。図11は、左サブ仮想カメラ400Lの位置と向きを特定する方法を説明するための図である(図11では、説明の便宜上、図8に示す仮想空間200のうち、右メイン仮想カメラ300Rと、右サブ仮想カメラ400Rの図示が省略されている。)。図12は、右サブ仮想カメラ400Rの位置と向きを特定する方法を説明するための図である(図12では、説明の便宜上、図8に示す仮想空間200のうち、左メイン仮想カメラ300Lと、左サブ仮想カメラ400Lの図示が省略されている。)。
図10及び図11に示すように、制御部121は、反射オブジェクト500の反射面520上の所定の位置O(例えば、中心位置)における法線ベクトルNVを特定する(ステップS21)。ステップS22において、制御部121は、左メイン仮想カメラ300Lと所定の位置Oを通る左入射軸350Lを特定する。ここで、左入射軸350Lは、左メイン仮想カメラ300Lの視軸とは異なってもよい。次に、ステップS23において、制御部121は、左反射軸360Lを特定する。具体的には、制御部121は、法線ベクトルNVと左入射軸350Lとによって形成される入射角度θINを特定する。次に、制御部121は、左反射軸360Lと法線ベクトルNVとによって形成される反射角度θOUTが入射角度θINと同一となるように、左反射軸360Lを特定する。
次に、ステップS24において、制御部121は、左反射軸360Lに基づいて、左サブ仮想カメラ400Lの位置と向きを特定する。例えば、制御部121は、左サブ仮想カメラ400Lの視軸が左反射軸360Lと平行となるように、左サブ仮想カメラ400Lの向きを特定してもよい。さらに、制御部121は、左サブ仮想カメラ400Lの位置が左反射軸360L上に存在するように、左サブ仮想カメラ400Lの位置を設定してもよい。この点において、制御部121は、左サブ仮想カメラ400Lの位置を所定の位置Oに設定してもよい。
次に、図12に示すように、制御部121は、右メイン仮想カメラ300Rと所定の位置Oを通る右入射軸350Rを特定する(ステップS25)。ここで、右入射軸350Rは、右メイン仮想カメラ300Rの視軸とは異なってもよい。ステップS26において、制御部121は、右反射軸360Rを特定する。具体的には、制御部121は、法線ベクトルNVと右入射軸350Rとによって形成される入射角度θINを特定する。次に、制御部121は、右反射軸360Rと法線ベクトルNVとによって形成される反射角度θOUTが入射角度θINと同一となるように、右反射軸360Rを特定する。
次に、ステップS27において、制御部121は、右反射軸360Rに基づいて、右サブ仮想カメラ400Rの位置と向きを特定する。例えば、制御部121は、右サブ仮想カメラ400Rの視軸が右反射軸360Rと平行となるように、右サブ仮想カメラ400Rの向きを特定してもよい。さらに、制御部121は、右サブ仮想カメラ400Rの位置が右反射軸360R上に存在するように、右サブ仮想カメラ400Rの位置を設定してもよい。この点において、制御部121は、右サブ仮想カメラ400Rの位置を所定の位置Oに設定してもよい。このように、左メイン仮想カメラ300Lと反射オブジェクト500との間の相対的位置関係に応じて左サブ仮想カメラ400Lの位置と向きが特定されると共に、右メイン仮想カメラ300Rと反射オブジェクト500との間の相対的位置関係に応じて右サブ仮想カメラ400Rの位置と向きが特定される(ステップS13の処理が実行される)。
図9に戻ると、ステップS14において、制御部121は、左サブ仮想カメラ400Lの視野と仮想空間データに基づいて、第2の左目用視野画像データを生成すると共に、右サブ仮想カメラ400Rの視野と仮想空間データに基づいて、第2の右目用視野画像データを生成する。次に、制御部121は、第1及び第2の左目用視野画像データに基づいて、第2の左目用視野画像が反射オブジェクト500の反射面520上に重畳されるように、第1の左目用視野画像と第2の左目用視野画像を左目用表示部112Lに表示する(ステップS15)。同様に、制御部121は、第1及び第2の右目用視野画像データに基づいて、第2の右目用視野画像が反射オブジェクト500の反射面520上に重畳されるように、第1の右目用視野画像と第2の右目用視野画像を右目用表示部112Rに表示する(ステップS16)。
例えば、図14(a)は、左目用表示部112Lに表示された合成視野画像Vを示す図である。合成視野画像Vは、第1の左目用視野画像データに対応する第1の左目用視野画像と、第2の左目用視野画像データに対応する第2の左目用視野画像を合成することで得られる画像である。左サブ仮想カメラ400Lの視野内にアバターオブジェクト600が存在する場合、アバターオブジェクト600は第2の左目用視野画像内に表示されるので、図14(a)に示すように、アバターオブジェクト600の像は、反射オブジェクト500の反射面520上に表示される。同様に、図14(b)は、右目用表示部112Rに表示された合成視野画像Vを示す図である。合成視野画像Vは、第1の右目用視野画像データに対応する第1の右目用視野画像と、第2の右目用視野画像データに対応する第2の右目用視野画像を合成することで得られる画像である。右サブ仮想カメラ400Rの視野内にアバターオブジェクト600が存在する場合、アバターオブジェクト600は第2の右目用視野画像内に表示されるので、図14(b)に示すように、アバターオブジェクト600の像は、反射オブジェクト500の反射面520上に表示される。
また、図13に示すように、アバターオブジェクト600に対する左サブ仮想カメラ400Lと右サブ仮想カメラ400Rとの間の輻輳角θは、反射オブジェクト500の反射面520に対する左メイン仮想カメラ300Lと右メイン仮想カメラ300Rとの間の輻輳角θよりも小さくなるように(θ<θ)、制御部121は、左サブ仮想カメラ400Lと右サブ仮想カメラ400Rの位置と向きを設定する。例えば、制御部121は、図10に示すステップS24,S27の処理を実行する前に、輻輳角θを特定する。制御部121は、ステップS24,S27において、輻輳角θが輻輳角θよりも小さくなるように左サブ仮想カメラ400Lの位置と向きを設定すると共に、右サブ仮想カメラ400Rの位置と向きを設定する。
輻輳角θ<θである場合、第1の左目用視野画像に表示された反射オブジェクト500の反射面520(図14(a))と第1の右目用視野画像に表示された反射オブジェクト500の反射面520(図14(b))との間の視差は、反射面520上に重畳された第2の左目用視野画像に表示されたアバターオブジェクト600(図14(a))と反射面520上に重畳された第2の右目用視野画像に表示されたアバターオブジェクト600(図14(b))との間の視差よりも大きくなる。このように、HMD110を装着したユーザUは、アバターオブジェクト600が反射オブジェクト500の反射面520よりも奥側に位置していることを立体的に認識することができる。
本実施形態によれば、HMD110を装着したユーザUが反射オブジェクト500と反射オブジェクト500の反射面520上に映されたアバターオブジェクト600の像を立体的に視認できる。さらに、左メイン仮想カメラ300Lと反射オブジェクト500との相対位置関係に応じて左サブ仮想カメラ400Lの視野が変化すると共に、右メイン仮想カメラ300Rと反射オブジェクト500との間の相対位置関係に応じて右サブ仮想カメラ400Rの視野が変化する。このように、ユーザUの動きに応じて反射面520上に映された像(第2の左目用視野画像と第2の右目用視野画像)を変化させることができる。従って、仮想空間に対するユーザUの体験をさらに改善することが可能な情報処理方法を提供することができる。
(第2実施形態)
次に、図15から図17を参照することで第2実施形態に係る情報処理方法について説明する。図15は、左メイン仮想カメラ300Lと、右メイン仮想カメラ300Rと、単一のサブ仮想カメラ400と、反射オブジェクト500と、アバターオブジェクト600(所定のオブジェクト)とを含む仮想空間200Aを示す図である。図16は、第2実施形態に係る情報処理方法を説明するためのフローチャートである。図17は、単一のサブ仮想カメラ400の位置と向きを特定するための方法を説明するためのフローチャートである。
図15に示すように、仮想空間200Aは、サブ仮想カメラの数が1つである点で図8に示す仮想空間200とは異なる。つまり、第2実施形態に係る情報処理方法は、単一のサブ仮想カメラ400を用いることで第2の左目用視野画像データ及び第2の右目用視野画像データが生成される点で第1実施形態に係る情報処理方法とは相違する。次に、図16に示すように、最初に、ステップS31及びS32に示す処理が実行される。ステップS31及びS32の処理は、図9に示すステップS11及びS12の処理とそれぞれ同一である。次に、ステップS33において、制御部121は、左メイン仮想カメラ300Lと反射オブジェクト500との間の相対的位置関係に基づいて、サブ仮想カメラ400の位置と向きを特定する。具体的には、ステップS33の処理について図17を参照して説明する。
図17に示すように、制御部121は、反射オブジェクト500の反射面520上の所定の位置O(例えば、中心位置)における法線ベクトルNVを特定する(ステップS41)。ステップS42において、制御部121は、左メイン仮想カメラ300Lと所定の位置Oを通る左入射軸350Lを特定する。次に、ステップS43において、制御部121は、左反射軸360Lを特定する。具体的には、制御部121は、法線ベクトルNVと左入射軸350Lとによって形成される入射角度θINを特定する。次に、制御部121は、左反射軸360Lと法線ベクトルNVとによって形成される反射角度θOUTが入射角度θINと同一となるように、左反射軸360Lを特定する。次に、ステップS44において、制御部121は、左反射軸360Lに基づいて、サブ仮想カメラ400の位置と向きを特定する。
図16に戻ると、ステップS34において、制御部121は、サブ仮想カメラ400の視野と仮想空間データに基づいて、第2の左目用視野画像データと第2の右目用視野画像データを生成する。ここで、第2の左目用視野画像データと第2の右目用視野画像データは同一の画像データである(つまり、第2の左目用視野画像と第2の右目用視野画像は同一画像となる)。次に、制御部121は、ステップS35及びS36に示す処理をそれぞれ実行する。ステップS35及びS36の処理は、図9に示すステップS15及びS16の処理とそれぞれ同一である。
本実施形態では、第2の左目用視野画像と第2の右目用視野画像が同一となるため、第2の左目用視野画像に表示される所定のオブジェクト(例えば、アバターオブジェクト600)と第2の右目用視野画像に表示される当該所定のオブジェクトとの間の視差はゼロとなる。従って、第1の左目用視野画像に表示された反射オブジェクト500の反射面520(図14(a))と第1の右目用視野画像に表示された反射オブジェクト500の反射面520(図14(b))との間の視差は、反射面520上に重畳された第2の左目用視野画像に表示されたアバターオブジェクト600(図14(a))と反射面520上に重畳された第2の右目用視野画像に表示されたアバターオブジェクト600(図14(b))との間の視差よりも大きくなる。このように、HMD110を装着したユーザUは、アバターオブジェクト600が反射オブジェクト500の反射面520よりも奥側に位置していることを立体的に認識することができる。また、本実施形態に係る情報処理方法は、単一のサブ仮想カメラ400を用いて実行されるので、当該情報処理方法を実行するプロセッサの演算量を軽減することが可能となる。
尚、第2実施形態の説明では、サブ仮想カメラ400の位置と向きは、左メイン仮想カメラ300Lと反射オブジェクト500との間の相対的位置関係に基づいて特定されているが、本実施形態はこれには限定されない。例えば、制御部121は、右メイン仮想カメラ300Rと反射オブジェクト500との間の相対的位置関係に基づいて、サブ仮想カメラ400の位置と向きを特定してもよい。この場合、ステップS42において、制御部121は右入射軸350Rを特定する、その後、制御部121は、右反射軸360Rを特定した上で、右反射軸360Rに基づいてサブ仮想カメラ400の位置と向きを特定する。さらに、制御部121は、左メイン仮想カメラ300Lと反射オブジェクト500との間の相対位置関係及び右メイン仮想カメラ300Rと反射オブジェクト500との間の相対位置関係とに基づいて、サブ仮想カメラ400の位置と向きを特定してもよい。
また、ステップS34では、制御部121は、第2の左目用視野画像に表示されるアバターオブジェクト600と第2の右目用視野画像に表示されるアバターオブジェクト600との間の視差が第1の左目用視野画像に表示された反射オブジェクト500の反射面520と第1の右目用視野画像に表示された反射オブジェクト500の反射面520との間の視差よりも小さくなるように、第2の基準視野画像データに所定の演算処理を行うことで、第2の左目用視野画像データと第2の右目用視野画像データを生成してもよい。
(第3実施形態)
次に、図18から図20を参照することで第3実施形態に係る情報処理方法について説明する。図16は、単一のメイン仮想カメラ300Xと、単一のサブ仮想カメラ400と、反射オブジェクト500と、アバターオブジェクト600とを含む仮想空間200Bを示す図である。図19は、第3実施形態に係る情報処理方法を説明するためのフローチャートである。図20は、単一のサブ仮想カメラの位置と向きを特定するための方法を説明するためのフローチャートである。
図18に示すように、仮想空間200Bは、メイン仮想カメラの数とサブ仮想カメラの数がそれぞれ1つである点で図8に示す仮想空間200とは異なる。つまり、第3実施形態に係る情報処理方法は、単一のメイン仮想カメラ300Xを用いることで第1の左目用視野画像データと第1の右目用視野画像データが生成されると共に、単一のサブ仮想カメラ400を用いることで第2の左目用視野画像データ及び第2の右目用視野画像データが生成される点で第1実施形態に係る情報処理方法とは相違する。図19に示すように、最初に、制御部121は、HMD110の動きに応じて、メイン仮想カメラ300Xの視野を特定する(ステップS51)。次に、制御部121は、仮想カメラ300Xの視野と仮想空間データに基づいて、第1の左目用視野画像データと第1の右目用視野画像データを生成する(ステップS52)。
具体的には、制御部121は、仮想カメラ300Xの視野と仮想空間データに基づいて、第1の基準視野画像データを生成する。その後、制御部121は、第1の基準視野画像データに所定の演算処理を行うことで、第1の左目用視野画像データと第1の右目用視野画像データを生成する。例えば、制御部121は、第1の左目用視野画像に表示された反射オブジェクト500の反射面520と第1の右目用視野画像に表示された反射オブジェクト500の反射面520との間の視差が所定の視差となるように、第1の基準視野画像データに所定の演算処理を行うことで、第1の左目用視野画像データと第1の右目用視野画像データを生成する。
次に、ステップS53において、制御部121は、メイン仮想カメラ300Xと反射オブジェクト500との間の相対的位置関係に基づいて、サブ仮想カメラ400の位置と向きを特定する。具体的には、ステップS53の処理について図20を参照して説明する。
図20に示すように、制御部121は、反射オブジェクト500の反射面520上の所定の位置O(例えば、中心位置)における法線ベクトルNVを特定する(ステップS61)。ステップS62において、制御部121は、メイン仮想カメラ300Xと所定の位置Oを通る入射軸350を特定する。次に、ステップS63において、制御部121は、反射軸360を特定する。具体的には、制御部121は、法線ベクトルNVと入射軸350とによって形成される入射角度θINを特定する。次に、制御部121は、反射軸360と法線ベクトルNVとによって形成される反射角度θOUTが入射角度θINと同一となるように、反射軸360を特定する。次に、ステップS64において、制御部121は、反射軸360に基づいて、サブ仮想カメラ400の位置と向きを特定する。
図19に戻ると、ステップS54において、制御部121は、サブ仮想カメラ400の視野と仮想空間データに基づいて、第2の左目用視野画像データと第2の右目用視野画像データを生成する。具体的には、制御部121は、サブ仮想カメラ400の視野と仮想空間データに基づいて、第2の基準視野画像データを生成する。その後、制御部121は、第2の基準視野画像データに所定の演算処理を行うことで、第2の左目用視野画像データと第2の右目用視野画像データを生成する。制御部121は、第2の左目用視野画像に表示されるアバターオブジェクト600と第2の右目用視野画像に表示されるアバターオブジェクト600との間の視差が第1の左目用視野画像に表示された反射オブジェクト500の反射面520と第1の右目用視野画像に表示された反射オブジェクト500の反射面520との間の視差よりも小さくなるように、第2の基準視野画像データに所定の演算処理を行うことで、第2の左目用視野画像データと第2の右目用視野画像データを生成する。
次に、制御部121は、ステップS55及びS56に示す処理をそれぞれ実行する。ステップS55及びS56の処理は、図9に示すステップS15及びS16の処理とそれぞれ同一である。
本実施形態によれば、単一のメイン仮想カメラ300Xと単一のサブ仮想カメラ400を用いることで第1及び第2の左目用視野画像データを生成することができると共に、第1及び第2の右目用視野画像データを生成することができる。このように、当該情報処理方法を実行するプロセッサの演算量を低減することができる。
制御部121によって実行される各種処理をソフトウェアによって実現するために、本実施形態に係る情報処理方法をコンピュータ(プロセッサ)に実行させるための情報処理プログラムが記憶部123又はROMに予め組み込まれていてもよい。または、情報処理プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納された情報処理プログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた情報処理プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は本実施形態に係る情報処理方法を実行する。
また、情報処理プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該プログラムが記憶部123に組み込まれる。
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲及びその均等の範囲に基づいて定められるべきである。
1:HMDシステム
3:通信ネットワーク
21:中心位置
112:表示部
112L:左目用表示部
112R:右目用表示部
114:HMDセンサ
120:制御装置
121:制御部
123:記憶部
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
140:注視センサ
200,200A,200B:仮想空間
300:仮想カメラ
300X:メイン仮想カメラ
300L:左メイン仮想カメラ
300R:右メイン仮想カメラ
320:外部コントローラ
320L:左手用外部コントローラ(コントローラ)
320R:右手用外部コントローラ(コントローラ)
350:入射軸
350L:左入射軸
350R:右入射軸
360:反射軸
360L:左反射軸
360R:右反射軸
400:サブ仮想カメラ
400L:左サブ仮想カメラ
400R:右サブ仮想カメラ
500:反射オブジェクト
520:反射面
600:アバターオブジェクト(所定のオブジェクト)
CV:視野
CVa:第1領域
CVb:第2領域
L:視軸
NV:法線ベクトル

Claims (9)

  1. ユーザの左目に対応する左目用表示部と、当該ユーザの右目に対応する右目用表示部とを備えるヘッドマウントデバイスを制御するコンピュータのプロセッサによって実行される情報処理方法であって、
    (a)メイン仮想カメラと、サブ仮想カメラと、反射面を有する反射オブジェクトとを含む仮想空間を規定する仮想空間データを生成するステップと、
    (b)前記ヘッドマウントデバイスの動きに応じて、前記メイン仮想カメラの視野を更新するステップと、
    (c)前記メイン仮想カメラの視野と前記仮想空間データに基づいて、第1の左目用視野画像データと第1の右目用視野画像データとを生成するステップと、
    (d)前記メイン仮想カメラと前記反射オブジェクトとの間の相対位置関係に基づいて、前記サブ仮想カメラの位置と向きを特定するステップと、
    (e)前記サブ仮想カメラの視野と前記仮想空間データに基づいて、第2の左目用視野画像データと第2の右目用視野画像データとを生成するステップと、
    (f)前記第1及び第2の左目用視野画像データに基づいて、第2の左目用視野画像が前記反射オブジェクトの反射面上に重畳されるように、第1の左目用視野画像及び前記第2の左目用視野画像を前記左目用表示部に表示するステップと、
    (g)前記第1及び第2の右目用視野画像データに基づいて、第2の右目用視野画像が前記反射オブジェクトの反射面上に重畳されるように、第1の右目用視野画像及び前記第2の右目用視野画像を前記右目用表示部に表示するステップと、
    を含む、情報処理方法。
  2. 前記ステップ(d)は、
    前記反射オブジェクトの反射面上の所定の位置における法線ベクトルを特定するステップと、
    前記メイン仮想カメラと前記所定の位置を通る入射軸を特定するステップと、
    前記法線ベクトルと前記入射軸とによって形成される入射角度を特定するステップと、
    前記所定の位置を通る反射軸と前記法線ベクトルとによって形成される反射角度が前記入射角度と同一となるように、前記反射軸を特定するステップと、
    前記反射軸に基づいて、前記サブ仮想カメラの位置と向きを特定するステップと、
    を含む、請求項1に記載の情報処理方法。
  3. 前記第1の左目用視野画像に表示された反射オブジェクトと前記第1の右目用視野画像に表示された反射オブジェクトとの間の視差は、前記反射オブジェクトの反射面上に重畳された前記第2の左目用視野画像に表示された所定のオブジェクトと前記反射オブジェクトの反射面上に重畳された前記第2の右目用視野画像に表示された所定のオブジェクトとの間の視差よりも大きい、請求項1又は2に記載の情報処理方法。
  4. 前記メイン仮想カメラは、左メイン仮想カメラと、右メイン仮想カメラを備え、
    前記サブ仮想カメラは、左サブ仮想カメラと、右サブ仮想カメラを備え、
    前記ステップ(b)は、
    前記ヘッドマウントディスプレイの動きに応じて、前記左メイン仮想カメラの視野と前記右メイン仮想カメラの視野を更新するステップを含み、
    前記ステップ(c)は、
    前記左メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の左目用視野画像データを生成するステップと、
    前記右メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の右目用視野画像データを生成するステップと、
    を含み、
    前記ステップ(d)は、
    前記左メイン仮想カメラと前記反射オブジェクトとの間の相対位置関係に基づいて、前記左サブ仮想カメラの位置と向きを特定するステップと、
    前記右メイン仮想カメラと前記反射オブジェクトとの間の相対位置関係に基づいて、前記右サブ仮想カメラの位置と向きを特定するステップと、
    を含み、
    前記ステップ(e)は、
    前記左サブ仮想カメラの視野と前記仮想空間データに基づいて、前記第2の左目用視野画像データを生成するステップと、
    前記右サブ仮想カメラの視野と前記仮想空間データに基づいて、前記第2の右目用視野画像データを生成するステップと、
    を含む、請求項1から3のうちいずれか一項に記載の情報処理方法。
  5. 前記左サブ仮想カメラの位置と向きを特定するステップは、
    前記反射オブジェクトの反射面上の所定の位置における法線ベクトルを特定するステップと、
    前記左メイン仮想カメラと前記所定の位置を通る左入射軸を特定するステップと、
    前記法線ベクトルと前記左入射軸とによって形成される入射角度を特定するステップと、
    前記所定の位置を通る左反射軸と前記法線ベクトルとによって形成される反射角度が前記入射角度と同一となるように、前記左反射軸を特定するステップと、
    前記左反射軸に基づいて、前記左サブ仮想カメラの位置と向きを特定するステップと、
    を含み、
    前記右サブ仮想カメラの位置と向きを特定するステップは、
    前記反射オブジェクトの反射面上の所定の位置における法線ベクトルを特定するステップと、
    前記右メイン仮想カメラと前記所定の位置を通る右入射軸を特定するステップと、
    前記法線ベクトルと前記右入射軸とによって形成される入射角度を特定するステップと、
    前記所定の位置を通る右反射軸と前記法線ベクトルとによって形成される反射角度が前記入射角度と同一となるように、前記右反射軸を特定するステップと、
    前記右反射軸に基づいて、前記右サブ仮想カメラの位置と向きを特定するステップと、
    を含む、請求項4に記載の情報処理方法。
  6. 前記反射オブジェクトの反射面に対する前記左メイン仮想カメラと前記右メイン仮想カメラとの間の輻輳角は、前記左サブ仮想カメラ及び前記右サブ仮想カメラの視野内に存在する所定のオブジェクトに対する前記左サブ仮想カメラと前記右サブ仮想カメラとの間の輻輳角よりも大きい、請求項4又は5に記載の情報処理方法。
  7. 前記メイン仮想カメラは、左メイン仮想カメラと、右メイン仮想カメラを備え、
    前記サブ仮想カメラは、単一のサブ仮想カメラのみから構成され、
    前記ステップ(b)は、
    前記ヘッドマウントディスプレイの動きに応じて、前記左メイン仮想カメラの視野と前記右メイン仮想カメラの視野を更新するステップを含み、
    前記ステップ(c)は、
    前記左メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の左目用視野画像データを生成するステップと、
    前記右メイン仮想カメラの視野と前記仮想空間データに基づいて、前記第1の右目用視野画像データを生成するステップと、
    を含み、
    前記ステップ(d)は、
    前記左メイン仮想カメラ及び前記右メイン仮想カメラのうちの少なくとも一方と前記反射オブジェクトとの間の相対位置関係に基づいて、前記サブ仮想カメラの位置と向きを特定するステップを含み、
    前記第2の左目用視野画像は、前記第2の右目用視野画像と同一である、
    請求項1から3のうちいずれか一項に記載の情報処理方法。
  8. 前記メイン仮想カメラは、単一のメイン仮想カメラのみから構成され、
    前記サブ仮想カメラは、単一のサブ仮想カメラのみから構成される、請求項1から3のうちいずれか一項に記載の情報処理方法。
  9. 請求項1から8のうちいずれか一項に記載の情報処理方法をコンピュータに実行させるためのプログラム。
JP2016177690A 2016-09-12 2016-09-12 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム Active JP6216851B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016177690A JP6216851B1 (ja) 2016-09-12 2016-09-12 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016177690A JP6216851B1 (ja) 2016-09-12 2016-09-12 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム

Publications (2)

Publication Number Publication Date
JP6216851B1 JP6216851B1 (ja) 2017-10-18
JP2018045299A true JP2018045299A (ja) 2018-03-22

Family

ID=60107318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016177690A Active JP6216851B1 (ja) 2016-09-12 2016-09-12 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム

Country Status (1)

Country Link
JP (1) JP6216851B1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200870A (ja) * 1993-12-28 1995-08-04 Sharp Corp 立体視用3次元画像生成装置
JPH1094678A (ja) * 1996-07-31 1998-04-14 Konami Co Ltd ドライビングゲーム機及びドライビングゲームプログラムが格納された記録媒体
JP2000210468A (ja) * 1999-01-20 2000-08-02 Namco Ltd ゲ―ム装置
WO2007129476A1 (ja) * 2006-05-09 2007-11-15 Sega Corporation 画像処理プログラムおよび画像処理装置
JP2016525917A (ja) * 2013-06-07 2016-09-01 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウンテッドディスプレイ上でのゲームプレイの移行
JP2016162033A (ja) * 2015-02-27 2016-09-05 株式会社ソニー・インタラクティブエンタテインメント 画像生成システム、画像生成方法、プログラム及び情報記憶媒体

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200870A (ja) * 1993-12-28 1995-08-04 Sharp Corp 立体視用3次元画像生成装置
JPH1094678A (ja) * 1996-07-31 1998-04-14 Konami Co Ltd ドライビングゲーム機及びドライビングゲームプログラムが格納された記録媒体
JP2000210468A (ja) * 1999-01-20 2000-08-02 Namco Ltd ゲ―ム装置
WO2007129476A1 (ja) * 2006-05-09 2007-11-15 Sega Corporation 画像処理プログラムおよび画像処理装置
JP2016525917A (ja) * 2013-06-07 2016-09-01 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウンテッドディスプレイ上でのゲームプレイの移行
JP2016162033A (ja) * 2015-02-27 2016-09-05 株式会社ソニー・インタラクティブエンタテインメント 画像生成システム、画像生成方法、プログラム及び情報記憶媒体

Also Published As

Publication number Publication date
JP6216851B1 (ja) 2017-10-18

Similar Documents

Publication Publication Date Title
JP5996814B1 (ja) 仮想空間の画像をヘッドマウントディスプレイに提供する方法及びプログラム
JP6266814B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6002286B1 (ja) ヘッドマウントディスプレイ制御方法、および、ヘッドマウントディスプレイ制御プログラム
JP6117414B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6095830B1 (ja) 視野情報収集方法および当該視野情報収集方法をコンピュータに実行させるためのプログラム
JP2017021824A (ja) ヘッドマウントディスプレイ制御方法、および、ヘッドマウントディスプレイ制御プログラム
JP6212666B1 (ja) 情報処理方法、プログラム、仮想空間配信システム及び装置
JP6298874B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6113337B1 (ja) 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム
JP6118444B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6266823B1 (ja) 情報処理方法、情報処理プログラム、情報処理システム及び情報処理装置
JP6535699B2 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
JP2017211912A (ja) 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム
JP2018109940A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6216851B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018120583A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP2018171455A (ja) 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム
JP6449922B2 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6403843B1 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
JP2018092656A (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6205047B1 (ja) 情報処理方法及び当該情報処理方法をコンピュータに実行させるためのプログラム
JP6275809B1 (ja) 表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム
JP6941130B2 (ja) 情報処理方法、情報処理プログラム及び情報処理装置
JP2017142769A (ja) 仮想空間の画像をヘッドマウントディスプレイに提供する方法及びプログラム
JP2017033465A (ja) 方法、および、プログラム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170418

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20170814

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: 20170829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170925

R150 Certificate of patent or registration of utility model

Ref document number: 6216851

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