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

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

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

特許6333893表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム
<>
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000002
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000003
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000004
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000005
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000006
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000007
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000008
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000009
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000010
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000011
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000012
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000013
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000014
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000015
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000016
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000017
  • 特許6333893-表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6333893
(24)【登録日】2018年5月11日
(45)【発行日】2018年5月30日
(54)【発明の名称】表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラム
(51)【国際特許分類】
   A63F 13/525 20140101AFI20180521BHJP
   A63F 13/25 20140101ALI20180521BHJP
   A63F 13/211 20140101ALI20180521BHJP
   A63F 13/428 20140101ALI20180521BHJP
   G06F 3/048 20130101ALI20180521BHJP
【FI】
   A63F13/525
   A63F13/25
   A63F13/211
   A63F13/428
   G06F3/048
【請求項の数】8
【全頁数】19
(21)【出願番号】特願2016-132525(P2016-132525)
(22)【出願日】2016年7月4日
(65)【公開番号】特開2018-5610(P2018-5610A)
(43)【公開日】2018年1月11日
【審査請求日】2016年8月18日
【早期審査対象出願】
(73)【特許権者】
【識別番号】509070463
【氏名又は名称】株式会社コロプラ
(74)【代理人】
【識別番号】110001416
【氏名又は名称】特許業務法人 信栄特許事務所
(72)【発明者】
【氏名】吉岡 孝展
(72)【発明者】
【氏名】白石 多一郎
【審査官】 柴田 和雄
(56)【参考文献】
【文献】 国際公開第2017/199794(WO,A1)
【文献】 特開2015−191124(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00 − 13/98
A63F 9/24
G06F 3/048
(57)【特許請求の範囲】
【請求項1】
ヘッドマウントディスプレイを備えたシステムにおける表示制御方法であって、
眼用仮想カメラと右眼用仮想カメラとを含む仮想カメラを含んだ仮想空間を定義する仮想空間データを生成するステップと、
前記ヘッドマウントディスプレイの動きに基づいて変化する前記仮想カメラの視野および前記仮想空間データに基づいて前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
定の条件を満たす場合に、前記左眼用仮想カメラと前記右眼用仮想カメラとの間の距離を変動させることで前記仮想カメラによって描画される前記仮想空間の範囲を変化させるステップと、
記左眼用仮想カメラによって取得される左眼用視野画像と、前記右眼用仮想カメラによって取得される右眼用視野画像とを前記ヘッドマウントディスプレイに出力するステップと、
を含む、表示制御方法。
【請求項2】
前記所定の条件は、前記ヘッドマウントディスプレイの上方向への移動量が所定量を超えた場合には前記距離を拡げ、前記ヘッドマウントディスプレイの下方向への移動量が所定量を超えた場合には前記距離を縮めることを含む、請求項1に記載の表示制御方法。
【請求項3】
前記所定の条件は、前記ヘッドマウントディスプレイを装着したユーザにより選択されたプレイヤキャラクタの属性情報を含み、前記属性に基づいて前記距離を変動させる、請求項1に記載の表示制御方法。
【請求項4】
前記プレイヤキャラクタの一人称視点での前記距離が、前記プレイヤキャラクタの三人称視点での前記距離と一致している、請求項3に記載の表示制御方法。
【請求項5】
前記仮想空間の範囲を変化させるステップは、前記距離の変動に応じて前記左眼用仮想カメラおよび前記右眼用仮想カメラの画像取得部の大きさをそれぞれ変化させるステップを含む、請求項1から4のいずれか一項に記載の表示制御方法。
【請求項6】
前記仮想空間の範囲を変化させるステップは、前記左眼用仮想カメラの画角と前記右眼用仮想カメラの画角をそれぞれ変化させるステップを含む、請求項1から4のいずれか一項に記載の表示制御方法。
【請求項7】
請求項1から6のいずれか一項に記載の表示制御方法をコンピュータに実行させるためのプログラム。
【請求項8】
プロセッサと、コンピュータ可読命令を記憶するメモリと、を備えた装置であって、
前記コンピュータ可読命令が前記プロセッサにより実行されると、前記装置は請求項1から6のうちいずれか一項に記載の表示制御方法を実行する、装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、表示制御方法および当該表示制御方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【0002】
ユーザの頭部に装着され、仮想現実(VR:Virtual Reality)空間や拡張現実(AR:Augmented Reality)空間等の仮想空間として仮想空間画像を表示可能なヘッドマウントディスプレイ(HMD:Head‐Mounted Display)が知られている。特許文献1は、仮想空間を利用して建築物等の物件の設計支援を行うための視点情報表示機能付き設計支援システムを開示している。特許文献1には、リアルタイムで視点位置を変更する手段として、操作ボタン群を操作してユーザが仮想空間内で前後左右にウォークスルーする従来手段の他に、平面図表示部で視点位置を入力することにより瞬時に視点位置を移動させたり、視野角を変更することによって現実空間におけるユーザの移動量を仮想空間における移動量に変換する際の倍率(スケール)を変更させたりする手段が記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000−172740号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1に記載のシステムでは、視野角を変更することによって視点を切り替える手法を開示している。しかし、ヘッドマウントディスプレイを用いてユーザに様々な体験を提供するに当たり、視野画像を定義する手法には改善の余地がある。
【0005】
本開示は、ヘッドマウントディスプレイを用いてユーザに様々な体験を提供することができる表示制御方法を提供することを目的とする。また、本開示は、当該表示制御方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示が示す一態様によれば、ヘッドマウントディスプレイを備えたシステムにおける表示制御方法であって、
当該表示制御方法は、
(a)左眼用仮想カメラと右眼用仮想カメラとを含む仮想カメラを含んだ仮想空間を定義する仮想空間データを生成するステップと、
(b)前記仮想カメラの視野および前記仮想空間データに基づいて前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(c)所定の条件を満たす場合に、前記左眼用仮想カメラと前記右眼用仮想カメラとの間の距離を変動させることで前記仮想カメラによって描画される前記仮想空間の範囲を変化させるステップと、
(d)前記左眼用仮想カメラによって取得される左眼用視野画像と、前記右眼用仮想カメラによって取得される右眼用視野画像とを前記ヘッドマウントディスプレイに出力するステップと、
を含む。
【発明の効果】
【0007】
本開示によれば、ヘッドマウントディスプレイを用いてユーザに様々な体験を提供することができる表示制御方法を提供することができる。
【図面の簡単な説明】
【0008】
図1】本実施形態に係るヘッドマウントディスプレイ(HMD)システムを示す概略図である。
図2】HMDを装着したユーザの頭部を示す図である。
図3】制御装置のハードウェア構成を示す図である。
図4】視野画像をHMDに表示する処理を示すフローチャートである。
図5】仮想空間の一例を示すxyz空間図である。
図6】(a)は、図5に示す仮想空間のyx平面図であり、(b)は、図5に示す仮想空間のzx平面図である。
図7】仮想カメラの視点を切り替えるための処理を示すフローチャートである。
図8】仮想空間内における視点切り替えの一例を示す模式図である。
図9】(a)〜(d)は、HMDを装着したユーザの移動に対応するHMDの座標変化を示す図である。
図10】現実空間におけるHMDの移動に応じた仮想空間内での仮想カメラの座標変化を示す図である。
図11】仮想カメラの大きさを変動させる例を示す図である。
図12】仮想カメラの描画範囲を変化させる態様の例を示す図である。
図13】(a)は、通常視点での視野画像を示す図であり、(b)は巨人視点での視野画像を示す図である。
図14】第二の実施形態に係る仮想空間内における視点切り替えの例を示す模式図である。
図15】記憶部に記憶される属性情報テーブルを示す図である。
図16】仮想カメラの画角を変化させる態様の一例を示す図である。
図17】(a)は、一人称視点での仮想空間内における仮想カメラの配置構成を示す図であり、(b)は、三人称視点での仮想空間内における仮想カメラの配置構成を示す図である。(c)は、(a)の場合の視野画像を示す図であり、(d)は、(b)の場合の視野画像を示す図である。
【発明を実施するための形態】
【0009】
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)ヘッドマウントディスプレイを備えたシステムにおける表示制御方法であって、
当該表示制御方法は、
(a)左眼用仮想カメラと右眼用仮想カメラとを含む仮想カメラを含んだ仮想空間を定義する仮想空間データを生成するステップと、
(b)前記仮想カメラの視野および前記仮想空間データに基づいて前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(c)所定の条件を満たす場合に、前記左眼用仮想カメラと前記右眼用仮想カメラとの間の距離を変動させることで前記仮想カメラによって描画される前記仮想空間の範囲を変化させるステップと、
(d)前記左眼用仮想カメラによって取得される左眼用視野画像と、前記右眼用仮想カメラによって取得される右眼用視野画像とを前記ヘッドマウントディスプレイに出力するステップと、
を含む。
【0010】
上記方法によれば、ヘッドマウントディスプレイを用いてユーザに様々な体験を提供することができる。
【0011】
(2)前記所定の条件は、前記ヘッドマウントディスプレイの上方向への移動量が所定量を超えた場合には前記距離を拡げ、前記ヘッドマウントディスプレイの下方向への移動量が所定量を超えた場合には前記距離を縮めることを含んでもよい。
【0012】
上記方法によれば、視野の範囲をより直感的に切り替えることができるため、没入感の高い視野画像を提供することができる。
【0013】
(3)前記所定の条件は、前記ヘッドマウントディスプレイを装着したユーザにより選択されたプレイヤキャラクタの属性情報を含み、前記属性に基づいて前記距離を変動させても良い。
【0014】
上記方法によれば、ユーザは、選択したプレイヤキャラクタに関連付けられた視点で画像を楽しむことができる。
【0015】
(4)前記プレイヤキャラクタの一人称視点での前記距離が、前記プレイヤキャラクタの三人称視点での前記距離と一致していてもよい。
【0016】
上記方法によれば、一人称視点から三人称視点へ変化した場合も、各プレイヤキャラクタの属性に関連付けられた視点で画像を楽しむことができる。
【0017】
(5)前記ステップ(c)は、前記距離の変動に応じて前記左眼用仮想カメラおよび前記右眼用仮想カメラの画像取得部の大きさをそれぞれ変化させるステップを含んでもよい。
【0018】
(6)前記ステップ(c)は、前記左眼用仮想カメラと前記右眼用仮想カメラの画角をそれぞれ変化させるステップを含んでもよい。
【0019】
これらの方法によれば、より直感的に視野の範囲を変化させることができる。
【0020】
(7)一実施形態に係るプログラムは、(1)から(5)のうちいずれかに記載の表示制御方法をコンピュータに実行させるためのプログラムである。
【0021】
この構成によれば、ヘッドマウントディスプレイを用いてユーザに様々な体験を提供可能なプログラムを提供することができる。
【0022】
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。なお、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
【0023】
(第一の実施形態)
図1は、本開示が示す実施形態(以下、単に本実施形態という。)に係るヘッドマウントディスプレイ(以下、単にHMDという。)システム1を示す概略図である。図1に示すように、HMDシステム1は、ユーザUの頭部に装着されたHMD110と、位置センサ130と、制御装置120と、外部コントローラ320とを備える。
【0024】
HMD110は、表示部112と、HMDセンサ114と、ヘッドフォン116とを備えている。なお、HMD110にヘッドフォン116を設けずに、HMD110とは独立したスピーカやヘッドフォンを用いても良い。
【0025】
表示部112は、HMD110を装着したユーザUの視界(視野)を完全に覆うように構成された非透過型の表示装置を備えている。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。なお、表示部112は、ユーザUの左眼に投影される左眼用の表示部とユーザUの右眼に投影される右眼用の表示部とから構成されてもよい。
【0026】
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動きを検出することができる。
【0027】
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110の位置を検出するように構成されている。位置センサ130は、制御装置120に無線または有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾きまたは発光強度に関する情報を検出するように構成されている。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
【0028】
制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。
【0029】
次に、図2を参照して、HMD110の位置や傾きに関する情報を取得する方法について説明する。図2は、HMD110を装着したユーザUの頭部を示す図である。HMD110を装着したユーザUの頭部の動きに連動したHMD110の位置や傾きに関する情報は、位置センサ130および/またはHMD110に搭載されたHMDセンサ114により検出可能である。図2に示すように、HMD110を装着したユーザUの頭部を中心として、3次元座標(uvw座標)が規定される。ユーザUが直立する垂直方向をv軸として規定し、v軸と直交し表示部112の中心とユーザUとを結ぶ方向をw軸として規定し、v軸およびw軸と直交する方向をu軸として規定する。位置センサ130および/またはHMDセンサ114は、各uvw軸回りの角度(すなわち、v軸を中心とする回転を示すヨー角、u軸を中心とした回転を示すピッチ角、w軸を中心とした回転を示すロール角で決定される傾き)を検出する。制御装置120は、検出された各uvw軸回りの角度変化に基づいて、視野情報を定義する仮想カメラの視軸を制御するための角度情報を決定する。
【0030】
次に、図3を参照して、制御装置120のハードウェア構成について説明する。図3に示すように、制御装置120は、制御部121と、記憶部123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。制御部121と、記憶部123と、I/Oインターフェース124と、通信インターフェース125とは、バス126を介して互いに通信可能に接続されている。
【0031】
制御装置120は、HMD110とは別体に、パーソナルコンピュータ、タブレットまたはウェアラブルデバイスとして構成されてもよいし、HMD110の内部に搭載されていてもよい。また、制御装置120の一部の機能がHMD110に搭載されると共に、制御装置120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
【0032】
制御部121は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)および/またはGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
【0033】
特に、プロセッサが本実施形態に係る表示制御方法をコンピュータに実行させるための表示制御プログラム(後述する)をRAM上に展開し、RAMとの協働で当該プログラムを実行することで、制御部121は、制御装置120の各種動作を制御してもよい。制御部121は、メモリや記憶部123に格納された所定のアプリケーション(ゲームプログラム)を実行することで、HMD110の表示部112に仮想空間(視野画像)を提供する。これにより、ユーザUは、表示部112に提供された仮想空間に没入することができる。
【0034】
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123には、表示制御プログラムが組み込まれてもよい。また、ユーザの認証プログラムや各種画像やオブジェクトに関するデータを含むゲームプログラム等が格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
【0035】
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320をそれぞれ制御装置120に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。なお、制御装置120は、位置センサ130と、HMD110と、外部コントローラ320のそれぞれと無線接続されていてもよい。
【0036】
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)またはインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介して外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
【0037】
次に、図4から図6を参照することで視野画像をHMD110に表示するための処理について説明する。図4は、視野画像をHMD110に表示するための処理を示すフローチャートである。図5は、仮想空間200の一例を示すxyz空間図を示す。図6(a)は、図5に示す仮想空間200のyx平面図であって、図6(b)は、図5に示す仮想空間200のzx平面図である。
【0038】
図4に示すように、ステップS1において、制御部121(図3参照)は、仮想カメラ300を含む仮想空間200を定義する仮想空間データを生成する。図5および図6に示すように、仮想空間200は、中心位置21を中心とした全天球として規定される(図5および図6では、上半分の天球のみが図示されている)。また、仮想空間200には、中心位置21を原点とするxyz座標系が設定されている。HMDシステム1の初期状態では、仮想カメラ300が仮想空間200の中心位置21に配置されている。
仮想カメラ300の視野を定義するuvw座標系は、現実空間におけるユーザUの頭部を中心として規定されたuvw座標系に連動するように決定される。また、HMD110を装着したユーザUの現実空間における移動に連動して、仮想カメラ300を仮想空間200内で移動させてもよい。
【0039】
次に、ステップ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の一部の領域と一致する(換言すれば、HMD110に表示される仮想空間200の一部の領域に一致する)。また、視野CVは、図6(a)に示すxy平面において、基準視線Lを中心とした極角θαの角度範囲として設定される第1領域CVaと、図6(b)に示すxz平面において、基準視線Lを中心とした方位角θβの角度範囲として設定される第2領域CVbとを有する。
【0040】
このように、制御部121は、位置センサ130および/またはHMDセンサ114からのデータに基づいて、仮想カメラ300の視野CVを特定することができる。ここで、HMD110を装着したユーザUが動くと、制御部121は、位置センサ130および/またはHMDセンサ114から送信されたHMD110の動きを示すデータに基づいて、仮想カメラ300の視野CVを特定することができる。つまり、制御部121は、HMD110の動きに応じて、視野CVを移動させることができる。
【0041】
次に、ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像を示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。すなわち、仮想カメラ300の視野CVにより、仮想空間データのうち視野画像データとして描画される範囲が定まる。
【0042】
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像を表示する。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが変化し、HMD110に表示される視野画像Vが変化するので、ユーザUは仮想空間200に没入することができる。
【0043】
次に、図7から図11を参照して、HMD110の上下方向への移動に連動して仮想カメラ300の視点切り替えを行う処理の一例を説明する。図7は、仮想カメラ300の視点を切り替えるための処理を示すフローチャートである。図8は、仮想空間200内における視点切り替えの一例を模式的に示している。図8において、仮想空間200内の所定の位置にはオブジェクト(例えば建物オブジェクト)OBが配置されている。図9(a)〜(d)は、HMD100を装着したユーザUの移動に対応するHMD110の座標変化、すなわち現実空間におけるHMD100の位置変化を示している。図9では、図2に示すuvw座標をXr・Yr・Zr座標と規定する。図10は、現実空間におけるHMD100の移動に応じた仮想空間200内での仮想カメラ300の座標変化を示している。図10では、図5等に示すxyz座標をXv・Yv・Zv座標と規定する。
【0044】
図9(a)に示すように、ユーザUは、例えば椅子に座った状態でHMD110を装着して3次元画像を体験する場合が多い。このようにユーザUの姿勢が座位の場合に、仮想空間200において仮想カメラ300の視野CVで定義されるユーザUの視点を、例えば通常視点NVと定義する(図8参照)。
【0045】
図7に示すように、ステップS11において、制御部121は、HMD110を装着したユーザUが動いたか否か、あるいはコントローラ320から仮想カメラ300を移動させるための操作が入力されたか否かを判定する。すなわち、制御部121は、仮想カメラ300に対する移動入力があったか否かを判定する。そして、制御部121は、仮想カメラ300に対する移動入力があったと判定した場合には(ステップS11のYes)、ステップS12において、当該移動入力に基づいて仮想空間200内で仮想カメラ300を移動させる。
【0046】
次に、ステップS13において、制御部121は、HMD110の上下方向(図9のYr軸方向)への移動量が所定量を超えたか否かを判定する。例えば、ユーザUが座った状態(図9(a)参照)から立ち上がると(図9(b)参照)、現実空間では、HMD110の位置は座標Pr1(Xr1,Yr1,Zr1)から座標Pr2(Xr2,Yr2,Zr2)へと変化する。ここで、HMD110のYr軸方向への移動量をΔYrとし、Zr軸方向への移動量をΔXrとすると、HMD110の座標Yr2,Zr2は以下の関係式で示される。
(数1)
Yr2=Yr1+ΔYr ・・・(式1)
(数2)
Zr2=Zr1+ΔZr ・・・(式2)
【0047】
このようにHMD110が移動したときに、HMD110のYr軸方向への移動量が所定のしきい値を超えたと判定されると(ステップS13のYes)、制御部121は、現実空間におけるHMD110のYr軸方向への移動を仮想空間200内の仮想カメラ300のYv軸方向への移動に対応付ける。HMD110の移動量に応じた仮想カメラ300のYv軸方向への移動量は、以下の関係式で示される。
(数3)
Yv2=Yv1+ΔYr*α ・・・(式3)
【0048】
上記の関係式において、係数αは、HMD110のYr軸方向への移動に応じて決定される係数であって、例えば本実施形態に係る表示制御方法が適用される各種ゲームに応じて変化する任意の数値であればよい。また、HMD110のYr軸方向への移動量に対応する複数のしきい値を設けておき、しきい値ごとに異なる数値の係数αを設定してもよい。
【0049】
そして、制御部121は、ステップS14において、図10および図11に示すように、仮想カメラ300(特に仮想カメラ300の画像取得部301)の大きさを変動させる。画像取得部301は、仮想カメラ300の位置または向きにより決定される視野CVを定義し得るものであればその構成が限定されるものではないが、本例では説明の簡略化のため、例えば図10図11に示すような仮想カメラ300のレンズ表面に相当する部分を示すものとして説明する。
【0050】
なお、図11に示すように、仮想カメラ300のYv軸方向への移動に応じて、仮想カメラ300の中心座標Cの視軸方向(Zv軸方向)の位置を変化させずに仮想カメラ300の大きさを変化させてもよいが、この場合は、仮想カメラ300の拡大に伴って、例えば画像取得部301の中心として定義される仮想カメラ300の視点PvがZv軸方向に大きく変動してしまう。そのため、図10(a),(b)に示すように、仮想カメラ300の大きさが変化しても、仮想カメラ300の視軸方向における視点Pvが変動しないように仮想カメラ300の中心座標Cの位置を補正することが好ましい。そこで、制御部121は、ステップS14において、仮想カメラ300を拡大させながら、Zv2=Zv1を維持するべく、仮想カメラ300の中心座標Cを修正する。具体的には、制御部121は、仮想カメラ300の拡大に伴って生じる視点PrのZv軸方向の誤差ΔZv’の誤差をキャンセルすることで仮想カメラ300の中心座標Cを修正する。中心座標CのZv軸座標は以下の関係式で示される。
(数4)
Zc2=Zc1−ΔZv’・・・(式4)
【0051】
さらに、Zv2=Zv1を維持するためには、HMD110の座標Zr1から座標Zr2までの移動量であるΔZrを相殺することが必要である。ここで、仮想空間における仮想カメラ300の視点PvのZv軸方向への移動量ΔZvは、以下の関係式で示される。
(数5)
ΔZv=ΔZr*β=ΔZr*Yc*t ・・・(式5)
【0052】
上記の関係式において係数tは、仮想カメラ300の上下方向の位置(高さ位置)に対する、仮想カメラ300の拡大倍率の変化率を示す。式(5)によれば、仮想カメラ300が高い位置に移動するほど、すなわち、仮想カメラ300の拡大率が大きくなるほど、係数βの値が大きくなるため、HMD110の移動量に対するΔZvの変化量は大きくなる。したがって、制御部121は、仮想カメラ300のYv軸方向の中心座標Cを、さらに以下の関係式を満たすように補正する。
(数6)
Zc2=Zc1−ΔZv’−ΔZr*β ・・・(式6)
【0053】
このように、仮想カメラ300の中心座標CのZv軸座標を修正することで、仮想カメラ300の視軸方向における視点位置Pvの変動を抑えることができ、視野画像の不自然な変化を防止することができる。
【0054】
仮想カメラ300のYv軸方向への移動に応じて、仮想カメラ300の大きさを変化させると、図12(a),(b)に示すように、仮想カメラ300の描画範囲を変化させることができる。前記「描画範囲」は、仮想カメラ300の視軸方向に所定距離だけ離れた仮想スクリーンW上において画像取得部301が取得可能な視野画像の範囲、すなわち、仮想カメラ300によって描画される仮想空間の範囲として定義される。例えば、図12(a)に示すように、画像取得部301が三角錐形状であると仮定して、当該三角錐の頂点を仮想カメラ300の焦点と定義した場合には、仮想カメラ300の視軸方向における視点位置Pvを変化させずに仮想カメラ300を拡大すると、仮想カメラ300の焦点から仮想スクリーンWまでの距離が拡がる。そのため、仮想スクリーンW上での描画範囲を拡げることができる。
なお、図12(b)に示すように、仮想カメラ300の画像取得部301が撮像素子の撮像面に相当するものであって、仮想カメラ300と仮想スクリーンWとの間の所定距離に焦点fが存在するものと定義してもよい。この場合には、撮像面に相当する画像取得部301の面積が大きくなるにつれて、描画範囲を拡げることができる。
また、図6(a)に示す極角θαおよび図6(b)に示す方位角θβを変化させる、すなわち、仮想カメラ300の画角を変化させることで、画像取得部301の面積を変化させることなく描画範囲を拡げるようにしても良い。
【0055】
このように、仮想カメラ300の上下方向(Yv軸方向)での位置の変化に応じて、仮想カメラ300の描画範囲を変化させることで、図8に示すように、ユーザUの視点を通常視点NVから巨人視点GVへと切り替えることができる。これにより、図13(a)に示す通常視点NVでの視野画像Vから、図13(b)に示す巨人視点GVでの視野画像V(このとき、オブジェクトOBは通常視点NVよりも下方かつ小さく見えることとなる)へと、視野画像Vの表示を更新することができる。
【0056】
通常視点NVから巨人視点GVへと仮想カメラ300の視点が切り替えられた場合には、ステップS15において、制御部121は、HMD110の水平方向における移動量に対する仮想カメラ300の移動量を変動させる。例えば、図9(c)に示すようにユーザUがZr方向に移動した場合には、現実空間でのHMD110の移動に連動して、以下の関係式を満たすように仮想カメラ300の位置を移動させる。
(数7)
Zv3=Zv2+ΔZv=Zv2+ΔZr*β=Zv2+ΔZr*Yc*t ・・・(式7)
【0057】
このように、仮想カメラ300が高い位置に移動するほどHMD110のΔZrに対するΔZvの変化量は大きくなる。そのため、図8に示すように、巨人視点GVでは、仮想空間内を俯瞰しながら、仮想カメラ300へ水平方向への移動操作が入力された場合に、一気に遠くへ行くことができる。
【0058】
次に、ユーザUが図9(d)に示すようにかがんだ場合には、図9(a)から図9(b)に変化したときとは逆の操作が行われる。現実空間では、ユーザUの視点位置に「Zr4=Zr3+ΔZr、Yr4=Yr3+ΔYr(ΔYrはマイナスの値)」の動きが生じる。そこで、制御部121は、「Yv4=Yv3+ΔYr*α」となるように、HMD110のYr軸方向への移動と仮想カメラ300のYv軸方向への移動とを対応付ける。また、制御部121は、Zv4=Zv3を維持するように、仮想カメラ300のZv軸方向における位置を、さらに「Zc4=Zc3−ΔZv’−ΔZr*β」となるように補正する。
【0059】
このように、本実施形態によれば、制御部121は、上下方向へのHMD110の移動量が所定量を超えた場合に、仮想カメラ300の画像取得部301の大きさを変動させることで仮想カメラ300の描画範囲を変化させる。それとともに、制御部121は、HMD110の水平方向における移動量に対する仮想カメラ300の移動量を変動させる。これにより、より直感的に通常視点NVから巨人視点GVへ視点を切り替えることができる。そのため、より没入感の高い視野画像を提供することができる。
【0060】
また、制御部121は、視点の切り替えの前後、すなわち、描画範囲の変化の前後において、仮想カメラ300の視軸方向における視点Pvの位置が変動しないように、仮想カメラ300の中心座標Cを補正する。これにより、仮想カメラ300の大きさが変動した場合でも仮想カメラ300の視点Pvが変動することがなく、視野画像Vの不自然な変化を防止することができる。
【0061】
また、制御部121によって実行される各種処理をソフトウェアによって実現するために、本実施形態に係る表示制御方法をコンピュータ(プロセッサ)に実行させるための表示制御プログラムが記憶部123またはROMに予め組み込まれていてもよい。または、表示制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−rayディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納されたプログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた表示制御プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は本実施形態に係る表示制御方法を実行する。
【0062】
また、表示制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該プログラムが記憶部123に組み込まれる。
【0063】
(第二の実施形態)
上記説明した第一の実施形態においては、図10図11に示すように、HMD110の上下方向の移動に連動して仮想カメラ300の画像取得部301の大きさを変動させることで、仮想カメラ300の描画範囲を変化させているが、この例に限られない。例えば、第二の実施形態においては、図14(a)に示すように、仮想カメラは、視点位置が互いに異なる左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとを含んでも良い。この場合、制御部121は、仮想空間データと左眼用仮想カメラ300Lの視野に基づいて、左眼用視野画像データを生成するとともに、仮想空間データと右眼用仮想カメラ300Rの視野に基づいて、右眼用視野画像データを生成する。そして、制御部121は、左眼用仮想カメラによって取得される左眼用視野画像データと右眼用仮想カメラによって取得される右眼用視野画像データとに基づいて、HMD110の表示部112に左眼用視野画像および右眼用視野画像を表示する。これにより、ユーザUは、視野画像を3次元画像として視認することができる。
【0064】
本実施形態では、制御部121は、図7のステップS14において、仮想カメラの画像取得部の大きさを変化させることに代えて、図14(a),(b)に示すように、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を変動させる。制御部121は、HMD110の上方向への移動量が所定量を超えたと判定された場合には、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を拡げ、HMD110の下方向への移動量が所定量を超えた場合には左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を縮める。例えば、図14(a)に示す左眼用仮想カメラ300Lの中心線と右眼用仮想カメラ300Rの中心線との間の距離Dを、図14(b)に示すように距離Dまで拡げると、左眼用仮想カメラ300Lの視野CVと右眼用仮想カメラ300Rの視野CVとの相対位置が変化する。これにより、左眼用仮想カメラ300Lおよび右眼用仮想カメラ300Rによって仮想スクリーンW上に描画される視野画像の範囲(図14(a),(b)に示す描画範囲R)の大きさを左右方向において変化させることができる。なお、ここでの描画範囲Rは、左右どちらか一つの仮想カメラによって描画される範囲ではなく、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rの両方によって描画される範囲を合わせることにより、ユーザUによって実質的に視認可能な視野の範囲を意味する。すなわち、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を拡げることで、描画範囲Rが左右方向に広くなる。このようにして、例えば、図14(c)示す通常視点NVでの視野画像Vから、図14(d)に示す巨人視点GVでの視野画像Vへと、視野画像Vの表示を更新することができる。
【0065】
なお、記憶部123は、図15に示す属性情報テーブルを記憶していても良い。属性情報テーブルは、例えば、各プレイヤキャラクタに関連付けられたキャラクタIDと、キャラクタ属性と、左右カメラ間の距離と、パーツ属性と、に関する情報を含んでいる。キャラクタ属性は、主にプレイヤキャラクタの体格に関する情報であり、例えば「小型」、「中型」、「大型」に分類される。キャラクタ属性に応じて、左右の仮想カメラ間の距離が設定されている。例えば、プレイヤキャラクタの属性が「中型」であれば、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離(左右カメラ間隔)は50mmと設定されている。プレイヤキャラクタの属性が「小型」である場合は、左右カメラ間隔は「中型」よりも小さくなる(50−α1となる)ように設定されている。一方、プレイヤキャラクタの属性が「大型」である場合は、左右カメラ間隔は「中型」よりも大きくなる(50+α2となる)ように設定されている。パーツ属性は、プレイヤキャラクタが装備しているパーツの属性を示す。例えば、キャラクタID:004のプレイヤキャラクタ(キャラクタ属性は「中型」)が「大型」属性のパーツを装備している場合には、通常の「中型」属性のプレイヤキャラクタよりも、左右カメラ間隔が大きくなる(50+α3となる)ように設定されている。
【0066】
制御部121は、記憶部123に記憶された属性情報テーブルからユーザUにより選択されたプレイヤキャラクタの属性情報を読出し、読み出した属性情報に基づいて左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を変動させることができる。すなわち、HMD110の移動に連動せずに、例えばプレイヤキャラクタの属性に応じて視点を切り替えることも可能である。これにより、ユーザUは、自らが選択したプレイヤキャラクタに関連付けられた視点で画像を楽しむことができる。
【0067】
また、図15に示すように、属性情報テーブルは、さらに、各仮想カメラ300L,300Rの画角に関する情報を含んでいてもよい。例えば、プレイヤキャラクタの属性が「中型」であれば、各仮想カメラ300L,300Rの画角は60°と設定されている。プレイヤキャラクタの属性が「小型」である場合は、画角は「中型」よりも小さくなる(60°−β1となる)ように設定され、プレイヤキャラクタの属性が「大型」である場合は、画角は「中型」よりも大きくなる(60°+β2となる)ように設定されている。画角は、図16に示すように、左右の各仮想カメラ300L(300R)の基準視線Lを中心とした視野の角度θを変化させることで変更することができる。このように、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を拡げるとともに、各仮想カメラ300L,300Rの画角を拡大することで、より直感的かつ自然に視点を変化させることができる。
【0068】
なお、画角を変化させる代わりに、左右の仮想カメラ300L,300Rの各画像取得部301L,301Rの大きさを変化させても良い。このとき、例えば、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとを一体であるものとして扱い、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の中心線CL(図14(a)参照)を基準にして仮想カメラ300L,300Rを拡大しても良い。これにより、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を拡げるのと同時に、各仮想カメラ300L,300Rの描画範囲の拡大を実現することができる。
【0069】
また、図15に示すように、属性情報テーブルは、さらに、一人称視点用のカメラ設定に関する情報と、三人称視点用のカメラ設定に関する情報とを含んでいてもよい。各プレイヤキャラクタの一人称視点での各仮想カメラ300L,300Rの設定は、当該プレイヤキャラクタの三人称視点での各仮想カメラ300L,300Rの設定と一致している(キャラクタID:001のプレイヤキャラクタの一人称視点が設定Aの場合、同一プレイヤキャラクタの三人称視点は設定Aと略一致した設定A’となる。)。具体的には、図17(a),(b)に示すように、プレイヤキャラクタPの一人称視点での左右の仮想カメラ300L,300Rの間隔Dが、同一のプレイヤキャラクタPの三人称視点での左右の仮想カメラ300L,300Rの間隔Dと一致していることが好ましい。これにより、図17(c),(d)に示すように、視野画像Vは、一人称視点から三人称視点への変化の前後においてもほぼ一致した状態で(オブジェクトOBの表示位置がほぼ変わらない状態で)HMD110の表示部112上に表示される。そのため、ユーザUは、各プレイヤキャラクタPの属性に関連付けられた視点で視野画像Vを楽しむことができる。
【0070】
このように、本実施形態によれば、制御部121は、例えばHMD110の上下方向の移動や属性情報等の所定の条件を満たす場合に、左眼用仮想カメラ300Lと右眼用仮想カメラ300Rとの間の距離を変動させることで両方の仮想カメラによって描画される仮想空間の範囲(描画範囲R)を変化させ、左眼用仮想カメラ300Lによって取得される左眼用視野画像と、右眼用仮想カメラ300Rによって取得される右眼用視野画像と、をHMD110に出力する。これにより、HMDシステム1を用いてユーザに様々な体験を提供することができる。
【0071】
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲およびその均等の範囲に基づいて定められるべきである。
【符号の説明】
【0072】
1:HMDシステム
3:通信ネットワーク
21:中心位置
110:ヘッドマウントディスプレイ(HMD)
112:表示部
114:HMDセンサ
116:ヘッドフォン
120:制御装置
121:制御部
123:記憶部
124:I/Oインターフェース
125:通信インターフェース
126:バス
130:位置センサ
200:仮想空間
300:仮想カメラ
300L:左眼用仮想カメラ
300R:右眼用仮想カメラ
301:画像取得部
C:仮想カメラの中心座標
f:焦点
NV:通常視点
GV:巨人視点
Pv:仮想カメラの視点位置
R:描画範囲
U:ユーザ
V:視野画像
VL:左眼用視野画像
VR:右眼用視野画像
W:仮想スクリーン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17