【文献】
Unity5.3のVR機能(ユーザーインターフェース),TaoVisor,2016年 3月 3日,[2017年 4月 5日検索],URL,http://taovisor.com/news/unity-ui-vr/
(58)【調査した分野】(Int.Cl.,DB名)
前記ステップ(e)では、前記情報がテクスチャとしてマッピングされた表示オブジェクトを前記対象オブジェクトに沿って移動させることで、前記表示位置を移動させる、請求項1から5のいずれか一項に記載の表示制御方法。
【発明を実施するための形態】
【0009】
[本開示が示す実施形態の説明]
本開示が示す実施形態の概要を説明する。
(1)ヘッドマウントディスプレイを備えたシステムにおける表示制御方法であって、
当該表示制御方法は、
(a)仮想カメラを含む仮想空間を定義する仮想空間データを生成するステップと、
(b)前記仮想カメラの視野および前記仮想空間データに基づいて前記ヘッドマウントディスプレイに視野画像を表示させるステップと、
(c)前記ヘッドマウントディスプレイの動きに基づいて前記仮想カメラを動かすことで前記視野画像を更新するステップと、
(d)所定の情報を表示可能な対象オブジェクトを、前記仮想カメラの初期位置において前記仮想カメラを囲むように配置するステップと、
(e)前記仮想カメラの動きに追随するように、前記情報の表示位置を前記対象オブジェクトに沿って移動させるステップと、
を含む。
【0010】
上記方法によれば、ユーザ・インタフェースなどの各種情報をVR空間らしい方法で視野画像内に表示することができる。
【0011】
(2)前記ステップ(e)では、
前記ヘッドマウントディスプレイのヨー軸周りの動きに基づいて、前記表示位置を移動させ、
前記ヘッドマウントディスプレイのロール軸およびピッチ軸周りの動きに基づいて、前記表示位置を移動させなくても良い。
【0012】
上記方法によれば、ヘッドマウントディスプレイの動きを把握するために必要な検知データの量を少なくしつつ、情報の表示位置を制御することができる。
【0013】
(3)前記ステップ(c)では、前記仮想カメラは、前記ヘッドマウントディスプレイの動きと連動してその位置が変化せず、その向きが変化しても良い。
【0014】
上記方法によれば、仮想カメラの位置を固定することで、上記の(2)の方法を採用した場合でも、対象オブジェクトに沿って表示される情報の自然な移動動作をさせ得る。また、ヘッドマウントディスプレイの動きに応じて仮想カメラの向きを変更した場合でも仮想カメラの位置が変化することがないため、映像酔い(いわゆるVR酔い)を防止することができる。
【0015】
(4)前記情報は、所定の移動入力に基づいて前記仮想空間内で移動するキャラクタオブジェクトに関連付けられた情報を含んでも良い。
【0016】
キャラクタオブジェクトに関する各種パラメータ等の情報表示をヘッドマウントディスプレイの動きと連動させることで、VR空間らしさをユーザに体験させることができる。
【0017】
(5)(f)前記キャラクタオブジェクトの移動範囲を規定するフィールドを、前記対象オブジェクトと関連付けて構成するステップを、さらに含み、
前記情報は、前記フィールドに関連付けられた情報を含んでも良い。
【0018】
上記方法によれば、フィールド内におけるキャラクタオブジェクトの動きに追従したヘッドマウントディスプレイの動きに連動して、キャラクタオブジェクトやフィールドに関する情報の表示位置を変更することができる。
【0019】
(6)(g)前記フィールド内における前記キャラクタオブジェクトの所定方向への移動を制限するステップと、
(h)前記所定方向への前記キャラクタオブジェクトの移動の制限に応じて、前記対象オブジェクトに沿った前記情報の表示可能位置を制限するステップと、をさらに含んでも良い。
【0020】
上記方法によれば、キャラクタオブジェクトの移動可能な範囲が狭くなるのに合わせて情報の表示位置を制限することで、ユーザにフィールドの大きさをフィードバックすることができる。
【0021】
(7)(i)所定の条件を満たした場合には、前記情報のうち少なくとも一部を前記仮想カメラの動きに追随させないステップを、さらに含んでも良い。
【0022】
例えば、フィールドが狭くなった場合には仮想カメラの動きに情報の表示を追随させないことで、フィールドが狭くなったことをユーザが認識し得る。
【0023】
(8)前記ステップ(e)では、前記情報がテクスチャとして前記対象オブジェクトにマッピングされる位置を変更することで、前記表示位置を移動させても良い。
【0024】
(9)前記ステップ(e)では、前記情報がテクスチャとしてマッピングされた表示オブジェクトを前記対象オブジェクトに沿って移動させることで、前記表示位置を移動させても良い。
【0025】
これらの方法によれば、ヘッドマウントディスプレイの動きに連動して、各種情報の表示位置を容易に変更することができる。
【0026】
(10)一実施形態に係るプログラムは、(1)から(9)のうちいずれかに記載の表示制御方法をコンピュータに実行させるためのプログラムである。
【0027】
この構成によれば、ユーザ・インタフェースなどの各種情報をVR空間らしい方法で視野画像内に表示可能なプログラムを提供することができる。
【0028】
[本開示が示す実施形態の詳細]
以下、本開示が示す実施形態について図面を参照しながら説明する。なお、本実施形態の説明において既に説明された部材と同一の参照番号を有する部材については、説明の便宜上、その説明は繰り返さない。
【0029】
(第一の実施形態)
図1は、本開示が示す実施形態(以下、単に本実施形態という。)に係るヘッドマウントディスプレイ(以下、単にHMDという。)システム1を示す概略図である。
図1に示すように、HMDシステム1は、ユーザUの頭部に装着されたHMD110と、位置センサ130と、制御装置120と、外部コントローラ320とを備える。
【0030】
HMD110は、表示部112と、HMDセンサ114と、ヘッドフォン116とを備えている。なお、HMD110にヘッドフォン116を設けずに、HMD110とは独立したスピーカやヘッドフォンを用いても良い。
【0031】
表示部112は、HMD110を装着したユーザUの視界(視野)を覆うように構成された非透過型の表示装置を備えている。HMD110は、透過型表示装置を備えており、当該透過型表示装置の透過率を調整することにより、一時的に非透過型の表示装置として構成可能であってもよい。これにより、ユーザUは、表示部112に表示された視野画像のみを見ることで仮想空間に没入することができる。なお、表示部112は、ユーザUの左眼に投影される左眼用の表示部とユーザUの右眼に投影される右眼用の表示部とから構成されてもよい。
【0032】
HMDセンサ114は、HMD110の表示部112の近傍に搭載される。HMDセンサ114は、地磁気センサ、加速度センサ、傾きセンサ(角速度センサやジャイロセンサ等)のうちの少なくとも1つを含み、ユーザUの頭部に装着されたHMD110の各種動きを検出することができる。
【0033】
位置センサ130は、例えば、ポジション・トラッキング・カメラにより構成され、HMD110の位置を検出するように構成されている。位置センサ130は、制御装置120に無線または有線により通信可能に接続されており、HMD110に設けられた図示しない複数の検知点の位置、傾きまたは発光強度に関する情報を検出するように構成されている。また、位置センサ130は、赤外線センサや複数の光学カメラを含んでもよい。
【0034】
制御装置120は、位置センサ130から取得された情報に基づいて、HMD110の位置情報を取得し、当該取得された位置情報に基づいて、仮想空間における仮想カメラの位置と、現実空間におけるHMD110を装着したユーザUの位置を正確に対応付けることができる。
【0035】
次に、
図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軸回りの角度変化に基づいて、視野情報を定義する仮想カメラの視軸を制御するための角度情報を決定する。
【0036】
次に、
図3を参照して、制御装置120のハードウェア構成について説明する。
図3に示すように、制御装置120は、制御部121と、記憶部123と、I/O(入出力)インターフェース124と、通信インターフェース125と、バス126とを備える。制御部121と、記憶部123と、I/Oインターフェース124と、通信インターフェース125とは、バス126を介して互いに通信可能に接続されている。
【0037】
制御装置120は、HMD110とは別体に、パーソナルコンピュータ、タブレットまたはウェアラブルデバイスとして構成されてもよいし、HMD110の内部に搭載されていてもよい。また、制御装置120の一部の機能がHMD110に搭載されると共に、制御装置120の残りの機能がHMD110とは別体の他の装置に搭載されてもよい。
【0038】
制御部121は、メモリとプロセッサを備えている。メモリは、例えば、各種プログラム等が格納されたROM(Read Only Memory)やプロセッサにより実行される各種プログラム等が格納される複数ワークエリアを有するRAM(Random Access Memory)等から構成される。プロセッサは、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)および/またはGPU(Graphics Processing Unit)であって、ROMに組み込まれた各種プログラムから指定されたプログラムをRAM上に展開し、RAMとの協働で各種処理を実行するように構成されている。
【0039】
特に、プロセッサが本実施形態に係る表示制御方法をコンピュータに実行させるための表示制御プログラム(後述する)をRAM上に展開し、RAMとの協働で当該プログラムを実行することで、制御部121は、制御装置120の各種動作を制御してもよい。制御部121は、メモリや記憶部123に格納された所定のアプリケーション(ゲームプログラム)を実行することで、HMD110の表示部112に仮想空間(視野画像)を提供する。これにより、ユーザUは、表示部112に提供された仮想空間に没入することができる。
【0040】
記憶部(ストレージ)123は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、USBフラッシュメモリ等の記憶装置であって、プログラムや各種データを格納するように構成されている。記憶部123には、表示制御プログラムが組み込まれてもよい。また、ユーザの認証プログラムや各種画像やオブジェクトに関するデータを含むゲームプログラム等が格納されてもよい。さらに、記憶部123には、各種データを管理するためのテーブルを含むデータベースが構築されてもよい。
【0041】
I/Oインターフェース124は、位置センサ130と、HMD110と、外部コントローラ320をそれぞれ制御装置120に通信可能に接続するように構成されており、例えば、USB(Universal Serial Bus)端子、DVI(Digital Visual Interface)端子、HDMI(登録商標)(High―Definition Multimedia Interface)端子等により構成されている。なお、制御装置120は、位置センサ130と、HMD110と、外部コントローラ320のそれぞれと無線接続されていてもよい。
【0042】
通信インターフェース125は、制御装置120をLAN(Local Area Network)、WAN(Wide Area Network)またはインターネット等の通信ネットワーク3に接続させるように構成されている。通信インターフェース125は、通信ネットワーク3を介して外部装置と通信するための各種有線接続端子や、無線接続のための各種処理回路を含んでおり、通信ネットワーク3を介して通信するための通信規格に適合するように構成されている。
【0043】
次に、
図4から
図6を参照することで視野画像をHMD110に表示するための処理について説明する。
図4は、視野画像をHMD110に表示するための処理を示すフローチャートである。
図5は、仮想空間200の一例を示すxyz空間図を示す。
図6(a)は、
図5に示す仮想空間200のyx平面図であって、
図6(b)は、
図5に示す仮想空間200のzx平面図である。
【0044】
図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内で移動させてもよい。
【0045】
次に、ステップ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とを有する。
【0046】
このように、制御部121は、位置センサ130および/またはHMDセンサ114からのデータに基づいて、仮想カメラ300の視野CVを特定することができる。ここで、HMD110を装着したユーザUが動くと、制御部121は、位置センサ130および/またはHMDセンサ114から送信されたHMD110の動きを示すデータに基づいて、仮想カメラ300の視野CVを特定することができる。つまり、制御部121は、HMD110の動きに応じて、視野CVを移動させることができる。
【0047】
次に、ステップS3において、制御部121は、HMD110の表示部112に表示される視野画像を示す視野画像データを生成する。具体的には、制御部121は、仮想空間200を規定する仮想空間データと、仮想カメラ300の視野CVとに基づいて、視野画像データを生成する。すなわち、仮想カメラ300の視野CVにより、仮想空間データのうち視野画像データとして描画される範囲が定まる。
【0048】
次に、ステップS4において、制御部121は、視野画像データに基づいて、HMD110の表示部112に視野画像を表示する。このように、HMD110を装着しているユーザUの動きに応じて、仮想カメラ300の視野CVが変化し、HMD110に表示される視野画像Vが変化するので、ユーザUは仮想空間200に没入することができる。
【0049】
次に、本実施形態に係る表示制御方法について、
図7から
図9を参照して説明する。
図7は、本実施形態に係る表示制御方法を説明するためのフローチャートである。
図8(a)は、仮想空間内に仮想カメラ、バトルフィールド、およびキャラクタオブジェクトが配置された状態を示す模式図であり、
図8(b)は、
図8(a)の場合にHMDに表示される視野画像を示す図である。
図9(a)は、バトルフィールド内においてキャラクタオブジェクトが移動した状態を示す図であり、
図9(b)は、移動したキャラクタオブジェクトを追って仮想カメラが移動された状態を示す図である。
【0050】
最初に、
図8(a)に示すように、本実施形態に係る仮想空間200は、仮想カメラ300と、バトルフィールド400(フィールドの一例)と、キャラクタオブジェクトC1,C2とを含む。制御部121は、これらを含む仮想空間200を規定する仮想空間データを生成している。
【0051】
バトルフィールド400は、仮想空間200内において、仮想カメラ300の周囲を取り囲む領域として規定されている。バトルフィールド400は、仮想カメラ300の初期位置における仮想空間200の水平面(
図8(a)におけるxz面)内において、仮想カメラ300を囲むように配置されることが好ましい。本例においては、バトルフィールド400は、仮想カメラ300の初期位置における垂直軸(Y軸)周りに配置された真円状に形成されている。なお、バトルフィールド400は、仮想カメラ300の周囲を囲む形状であれば良く、楕円状や多角形状であっても良い。このバトルフィールド400は、キャラクタオブジェクトC1,C2が移動可能な範囲を定義する。また、バトルフィールド400の中心径に相当する経路410が、キャラクタオブジェクトC1,C2の移動経路として規定されている。移動経路410は、例えばバトルフィールド400の中心径(=(外径+内径)/2)上に設けられるが、バトルフィールド400の径方向において任意の場所に設定可能である。なお、移動経路410を設けることなく、バトルフィールド400内であればキャラクタオブジェクトC1,C2が任意に移動できるように構成しても良い。
【0052】
本例では、キャラクタオブジェクトC1,C2のうちプレイヤキャラクタC1が、HMD110を装着したユーザUが操作可能なオブジェクトであるものとする。一方、相手キャラクタC2は、ユーザ同士の対戦型ゲームの場合には他のユーザによって操作されるオブジェクトであり、ユーザ対コンピュータの対戦型ゲームの場合には制御装置120(制御部121)によって操作されるオブジェクトであるものとする。すなわち、バトルフィールド400は、例えば格闘ゲームなどの対戦型ゲームにおいて、プレイヤキャラクタC1と相手キャラクタC2との対戦の舞台となるバトルフィールドとして構成されており、プレイヤキャラクタC1や相手キャラクタC2が移動経路410を移動しながら対戦が行われる。
【0053】
図7に示すように、ステップS20において、制御部121は、対戦ゲームの開始時に、仮想カメラ300の視野CV内にプレイヤキャラクタC1および相手キャラクタC2が含まれるように、仮想カメラ300の初期位置およびバトルフィールド400内でのキャラクタオブジェクトC1,C2の位置を決定する。
【0054】
ステップS20の状態で、HMD110の表示部112に表示される視野画像Vを
図8(b)に示す。
図8(b)に示すように、視野画像Vには、バトルフィールド400と、バトルフィールド400上のキャラクタオブジェクトC1,C2が表示される。また、視野画像Vの所定位置(ここでは、画面下方)には、各キャラクタオブジェクトC1,C2のヒットポイント(HP)値や必殺技を使用するためのスキルポイント(SP)値のゲージを含む固定ユーザ・インタフェース(UI)画像600が表示されている。
【0055】
次に、ステップS22において、制御部121は、各キャラクタオブジェクトC1,C2に対する操作入力を受けたか否かを判定する。例えば、ユーザUが外部コントローラ320の操作ボタンを操作した場合、制御部121は、プレイヤキャラクタC1に対する操作入力を受けたと判定する。具体的には、外部コントローラ320は、操作ボタンに対するユーザUの入力操作に応じて、プレイヤキャラクタC1を動作させることを指示する指示信号を生成し、当該生成された指示信号を制御装置120へ送信する。また、制御部121は、プレイヤキャラクタC1に対する操作入力とは別に、相手キャラクタC2に対する操作入力を受けたか否かを判定する。
【0056】
プレイヤキャラクタC1および/または相手キャラクタC2への操作入力を受けたと判定した場合(ステップS22のYes)、ステップS24において、制御部121は、当該操作入力に基づいて各キャラクタオブジェクトC1,C2を動作させる。具体的には、制御部121は、I/Oインターフェース124を介して外部コントローラ320からの指示信号を受信し、当該受信した指示信号に基づいて、プレイヤキャラクタC1を動作させる。また、制御部121は、他のユーザが操作する外部コントローラからの指示信号に基づいて、あるいは制御部121自身が生成する指示信号に基づいて、相手キャラクタC2を動作させる。例えば、
図9(a)に示すように、各キャラクタオブジェクトC1,C2に対して水平方向(図中のX方向)の移動入力操作が行われた場合には、制御部121は、キャラクタオブジェクトC1,C2を仮想カメラ300の周方向に(移動経路410上を)移動させる。
【0057】
次に、ステップS22と並行して(あるいはステップS24の後に)、ステップ26において、制御部121は、HMD110を装着したユーザUが動いたか否か、すなわち、仮想カメラ300に対する移動入力があったか否かを判定する。そして、制御部121は、仮想カメラ300に対する移動入力があったと判定した場合には(ステップS26のYes)、ステップS28において、
図9(b)に示すように、当該移動入力に基づいて仮想空間200内で仮想カメラ300の向きを変更する。具体的には、制御部121は、HMD110の動きと連動するように、仮想カメラ300の位置はそのままの状態で回転させる。すなわち、制御部121は、HMD110の動きに連動して仮想カメラ300の位置を変化させず、仮想カメラ300の向きを変化させる。このように、HMD100の動きに応じて仮想カメラ300の位置を変化させずに向きのみ変化させることで、ユーザUの映像酔い(いわゆるVR酔い)を防止することができる。
【0058】
次に、ステップS30において、制御部121は、所定の条件を満たしているか否かを判定する。そして、所定の条件を満たしていないと判定した場合には、制御部121の処理はステップS22および/またはステップS26に戻る。一方、所定の条件を満たしていると判定した場合には(ステップS30のYes)、ステップS32において、制御部121は、
図10に示すように、バトルフィールド400内の所定位置に障壁オブジェクトW1を配置する。ここで、所定の条件とは、例えば、対戦型ゲームの種類や対戦型ゲームの各ラウンドでの経過時間等を含む。すなわち、ゲームの種類に応じて、予めバトルフィールド400内に障壁オブジェクトW1を配置しても良く、また、対戦ラウンドの開始から所定時間経過後にバトルフィールド400内に障壁オブジェクトW1を配置しても良い。
【0059】
障壁オブジェクトW1は、仮想カメラ300の初期位置において、仮想カメラ300の視野の方向とは反対側(仮想カメラ300の後方側)に配置されることが好ましい。仮想カメラ300の初期位置における後方側はユーザUが見難いため、この後方側のバトルフィールド400を潰していくことが好都合である。また、制御部121は、対戦ラウンドのレベルまたは1ラウンド中の時間経過に応じて、障壁オブジェクトW1の位置を変更したり、新たな障壁オブジェクトW2(
図10)を配置しても良い。なお、仮想カメラ300の視野CV内に障壁オブジェクトW2を含むように仮想カメラ300の向きが変更された場合には、
図11(a)に示すように、視野画像内に障壁オブジェクトW2が表示される。
【0060】
次に、ステップS34において、制御部121は、プレイヤキャラクタC1および相手キャラクタC2の少なくとも一方が、障壁オブジェクトW1,W2に接触したかどうかを判定する。そして、キャラクタオブジェクトC1,C2が障壁オブジェクトW1,W2に接触したと判定した場合には(ステップS34のYes)、ステップS36において、制御部121は、キャラクタオブジェクトC1,C2が所定以上の力で障壁オブジェクトW1,W2に接触したかどうかを判定する。そして、キャラクタオブジェクトC1,C2が所定以上の力で接触していないと判定した場合には(ステップS36のNo)、ステップS38において、制御部121は、キャラクタオブジェクトC1,C2が障壁オブジェクトW1,W2よりも先に進めないよう、キャラクタオブジェクトC1,C2の移動を制限する。すなわち、障壁オブジェクトW1,W2がバトルフィールド400内に設置されることで、キャラクタオブジェクトC1,C2が移動可能な範囲が制限される。
【0061】
一方、所定以上の力で接触したと判定した場合には(ステップS36のYes)、ステップS40において、制御部121は、障壁オブジェクトW1,W2を破壊する。例えば、
図11(b)に示すように、相手キャラクタC2がプレイヤキャラクタC1を攻撃し、プレイヤキャラクタC1が障壁オブジェクトW2に所定の力以上で接触した(強くぶつかった)場合には、障壁オブジェクトW2が破壊される。これにより、障壁オブジェクトW2によるキャラクタオブジェクトC1,C2の移動の制限が解除される。
【0062】
以上説明したように、本実施形態によれば、制御部121は、キャラクタオブジェクトC1,C2が移動可能な範囲を定義するバトルフィールド400を、仮想カメラ300の初期位置において仮想カメラ300を囲むように構成し、所定の移動入力に基づいて、キャラクタオブジェクトC1,C2をバトルフィールド400内で移動させる。これにより、従来のゲームの操作感を踏襲しつつ、VR空間らしい体験をユーザに提供することができる
【0063】
また、ステップS24で説明したように、移動入力の横方向成分に応じて、キャラクタオブジェクトC1,C2が仮想カメラ300の周方向に移動される。このように、キャラクタオブジェクトC1,C2がHMD110を装着したユーザUを中心として弧を描くように移動するため、VRらしい新規な体験をユーザUに提供することができる。
【0064】
また、ステップS32で説明したように、所定の条件を満たした場合には、キャラクタオブジェクトC1,C2が移動可能な範囲をさらに制限する障壁オブジェクトW1,W2をバトルフィールド400内に配置する。このように、ゲームの種類や対戦ラウンド中の時間経過に応じてプレイヤキャラクタC1や相手キャラクタC2の移動可能範囲を狭くすることで、ゲーム性を高めつつVR空間らしい体験をユーザに提供することができる。また、新たな障壁オブジェクトを追加したり、障壁オブジェクトの位置を変更したりすることで、対戦ラウンドのレベルや1ラウンド中の時間経過とともに徐々にキャラクタオブジェクトC1,C2の逃げ場が狭くなっていくといったVR空間らしい体験をユーザに提供することができる。
【0065】
このように、ラウンドの進行等に伴って障壁オブジェクトをバトルフィールド400に設置することで、ラウンドの開始時はキャラクタオブジェクトC1,C2が周方向に無限に移動できる、いわゆる無限フィールドをユーザに提供することができる。また、ラウンドの経過に伴って障壁オブジェクトが設置されると、障壁オブジェクトに向けて、相手キャラクタC2を追い詰める、または、プレイヤキャラクタC1が障壁オブジェクトに追い詰められないようにする、といった駆け引きをプレイヤであるユーザUに提供することができる。ここで、バトルフィールド400は、上述したように仮想カメラ300を囲むように配置されている。これにより、無限フィールドの状態から障壁オブジェクトが設置されたとしても、プレイヤに対し、キャラクタオブジェクトC1,C2が移動可能な範囲を、仮想カメラ300を垂直軸(Y軸)周りに回転させることで容易に把握させることができる。すなわち、プレイヤは、障壁オブジェクトがバトルフィールド400に設置されると、キャラクタオブジェクトC1,C2が移動可能な範囲の広さを、仮想カメラ300を垂直軸(Y軸)周りに回転させる範囲として容易に認識することができる。
【0066】
なお、上記の実施形態では、制御部121は、障壁オブジェクトW1,W2をバトルフィールド400内に設置することでキャラクタオブジェクトC1,C2が移動可能な範囲を制限しているが、この例に限られない。例えば、
図12に示すように、バトルフィールド400自体の形状を変更することでキャラクタオブジェクトC1,C2が移動可能な範囲を制限しても良い。このとき、対戦ラウンドのレベルや1ラウンド中の時間経過等に応じて、破線Mで示したように、バトルフィールド400の形状を徐々に狭くしても良い。
【0067】
(第二の実施形態)
次に、第二の実施形態に係る表示制御方法について、
図13から
図16を参照して説明する。
図13は、第二の実施形態に係る表示制御方法を説明するためのフローチャートである。
図14(a)は、バトルフィールドに関連付けられて表示オブジェクトが配置された状態を示す模式図であり、
図14(b)は、
図14(a)の場合の視野画像を示す図である。
図15(a)は、仮想カメラの向きが
図14(a)から水平方向に変化した状態を示す図であり、
図15(b)は、
図15(a)の場合の視野画像を示す図である。
図16は、仮想カメラの向きが
図14(a)から上方向に変化した場合の視野画像を示す図である。
【0068】
最初に、
図14(a)に示すように、本実施形態に係る仮想空間200は、仮想カメラ300と、バトルフィールド400と、キャラクタオブジェクトC1,C2と、ユーザ・インタフェース・オブジェクト500(以下、UIオブジェクトと称する。UIオブジェクトは対象オブジェクトの一例である)と、を含む。制御部121は、これらを含む仮想空間200を規定する仮想空間データを生成している。仮想カメラ300、バトルフィールド400、およびキャラクタオブジェクトC1,C2は第一の実施形態と同様の構成であるため、その詳細な説明は省略する。
【0069】
UIオブジェクト500は、仮想空間200内において、仮想カメラ300の周囲を取り囲むように配置されている。具体的には、UIオブジェクト500は、仮想カメラ300を囲むように配置されたバトルフィールド400の外周部に配置されている。このUIオブジェクト500は、Y軸方向において、バトルフィールド400から所定の高さだけ上方に設置されていることが好ましい。
【0070】
図13に示すように、ステップ50において、制御部121は、対戦ゲームの開始時に、仮想カメラ300の初期位置における視野CV内に、キャラクタオブジェクト(プレイヤキャラクタC1、相手キャラクタC2)とUIオブジェクト500とが含まれるように、仮想カメラ300の初期位置およびバトルフィールド400内でのキャラクタオブジェクトC1,C2の位置を決定する。次に、ステップ52において、制御部121は、仮想カメラ300の初期位置の視野CV内に含まれる領域に、UIオブジェクト500に沿って表示オブジェクト510を配置する。表示オブジェクト510の仮想カメラ300と対向する面(表面)には、各種情報を含むテクスチャ515がマッピングされている。
【0071】
ステップS52においてHMD110の表示部112に表示される視野画像Vを
図14(b)に示す。
図14(b)に示すように、視野画像Vには、バトルフィールド400およびバトルフィールド400上のキャラクタオブジェクトC1,C2が表示されるとともに、UIオブジェクト500およびUIオブジェクト500に沿って配置された表示オブジェクト510にマッピングされたテクスチャ515が表示される。UIオブジェクト500は、例えば、ユーザUの周囲を取り囲む円筒形の電光掲示板として、仮想カメラ300の初期位置における視野画像V内の上方に表示される。なお、UIオブジェクト500の形状は、本実施形態に例示のものに限られず、様々な態様を採用することができる。表示オブジェクト510の表面にマッピングされるテクスチャ515は、例えば、各キャラクタオブジェクトC1,C2のHP値やSP値、ラウンドの残り時間、得点、武器・防具等の各種情報を含む。なお、視野画像Vの下方には、例えば、HP値やSP値を含む固定UI画像600が表示されている。固定UI画像600は、UIオブジェクト500とは異なり、プレイヤキャラクタC1と相手キャラクタC2との対戦中に常に視野画像Vの所定位置に固定表示される。
【0072】
次に、ステップS54において、制御部121は、プレイヤキャラクタC1および/または相手キャラクタC2に対する操作入力を受けたか否かを判定する。プレイヤキャラクタC1および/または相手キャラクタC2への操作入力を受けたと判定した場合(ステップS54のYes)、ステップS56において、制御部121は、当該操作入力に基づいて各キャラクタオブジェクトC1,C2を動作させる。第一実施形態と同様に、各キャラクタオブジェクトC1,C2に対して水平方向(図中のX方向)の移動入力操作が行われた場合には、制御部121は、バトルフィールド400内でキャラクタオブジェクトC1,C2を仮想カメラ300の周方向に移動させる(
図9(a)参照)。そして、制御部121は、処理をステップS54へ戻す。
【0073】
ステップS54と並行して(あるいはステップS56の後に)、ステップ58において、制御部121は、仮想カメラ300に対する移動入力があったか否かを判定する。そして、制御部121は、仮想カメラ300に対する移動入力があったと判定した場合には(ステップS58のYes)、ステップS60において、
図15(a)に示すように、当該移動入力に基づいて仮想空間200内で仮想カメラ300の位置を固定した状態で、仮想カメラ300の向きを変更する。すなわち、仮想カメラ300は、HMD110の動きと連動してその位置が変化せず、その向きのみが変化する。これにより、ユーザUの映像酔い(いわゆるVR酔い)を防止することができる。
【0074】
次に、ステップS62において、制御部121は、ステップS60で変更された仮想カメラ300の向きに応じて、仮想カメラ300の視野CV内にテクスチャ515が表示されるようにUIオブジェクト500に沿って配置される表示オブジェクト510の位置を変更する。このときの視野画像Vの表示を
図15(b)に示す。
図15(b)に示すように、制御部121は、仮想カメラ300の動きに追随するように、表示オブジェクト510の位置をUIオブジェクト500に沿って移動させる。これにより、仮想カメラ300の視野CV内に常にテクスチャ515が表示される。
【0075】
本例では、UIオブジェクト500は、バトルフィールド400から所定の高さだけ上方において水平方向に延在するように設置されている。そのため、HMD110の動きに応じて仮想カメラ300の向きが初期位置から上方向(Y軸方向)に変更された場合には、
図16に示すように、視野画像V内においてUIオブジェクト500の位置が下方に移動した状態でテクスチャ515がUIオブジェクト500に沿って表示される。このように、表示オブジェクト510の位置(すなわち、テクスチャ515の表示位置)は、仮想カメラ300のY軸方向における向きの変更に連動することがない。すなわち、ステップS52において、制御部121は、HMD110のヨー軸(v軸)周りの動きに基づいて、テクスチャ515の表示位置を移動させる一方、HMD110のロール軸(w軸)およびピッチ軸(u軸)周りの動きに基づいて、テクスチャ515の表示位置を移動させないように制御する。
【0076】
次に、ステップS64において、制御部121は、対戦型ゲームの種類や対戦型ゲームの各ラウンドでの経過時間等を含む所定の条件を満たしているか否かを判定する。そして、所定の条件を満たしていると判定した場合には(ステップS64のYes)、ステップS66において、制御部121は、
図17に示すように、バトルフィールド400内の所定位置に障壁オブジェクトWを配置する。そして、制御部121は、処理をステップS54およびステップS58へ戻す。
【0077】
障壁オブジェクトWは、バトルフィールド400だけではなくUIオブジェクト500に対しても配置されることが好ましい。これにより、プレイヤキャラクタC1や相手キャラクタC2が移動可能な範囲を変更することができるとともに、UIオブジェクト500に沿った表示オブジェクト510の移動位置も制限することができる。なお、第一の実施形態と同様に、制御部121は、対戦ラウンドのレベルまたは1ラウンド中の時間経過に応じて、障壁オブジェクトWの位置を変更したり、障壁オブジェクトWとは異なる新たな障壁オブジェクトを配置しても良い。また、第一の実施形態のステップS40のように、制御部121は、キャラクタオブジェクトC1,C2が障壁オブジェクトWに所定以上の力で接触した場合には障壁オブジェクトWを破壊するように制御しても良い。
【0078】
以上説明したように、本実施形態によれば、制御部121は、所定の情報を含むテクスチャ515を表示可能な表示オブジェクト510の位置を定義するUIオブジェクト500を、仮想カメラ300の初期位置において仮想カメラ300を囲むように配置し、仮想カメラ300の動きに追随するように、表示オブジェクト510の位置(テクスチャ515の表示位置)をUIオブジェクト500に沿って移動させる。これにより、HMD110を装着したユーザUが自らの動きに追随して移動するテクスチャ515を常に視認することができる。また、UIオブジェクト500を仮想空間200内における看板(電光掲示板)のような態様で構成すれば、仮想空間200の世界観に適するようにユーザUにテクスチャ515を視認させることができる。これにより、VR空間らしい体験をユーザに提供することができる。
【0079】
また、ステップS52で説明したように、制御部121は、HMD110のヨー軸(v軸)周りの動きに基づいて、テクスチャ515の表示位置を移動させる一方、HMD110のロール軸(w軸)およびピッチ軸(u軸)周りの動きに基づいて、テクスチャ515の表示位置を移動させないように制御する。これにより、HMD110の動きを仮想カメラ300の動きに反映させるために必要な検知データの量を少なくしつつ、テクスチャ515の表示位置の変更を制御することができる。
【0080】
また、ステップS50で説明したように、仮想カメラ300は、HMD110の動きと連動してその位置が変化せず、その向きが変化する。このように仮想カメラ300の位置を固定することで、HMD110のロール軸周りの動きに基づいてのみテクスチャ515の表示位置を制御する場合でも、UIオブジェクト500に沿って表示される情報の自然な移動動作をさせることができる。
【0081】
また、ステップS54およびS56で説明したように、制御部121は、バトルフィールド400内におけるプレイヤキャラクタC1や相手キャラクタC2の所定方向への移動を制限するとともに、所定方向へのキャラクタオブジェクトC1,C2の移動の制限に応じて、テクスチャ515の表示可能位置を制限するために、障壁オブジェクトWを仮想空間200内に配置する。キャラクタオブジェクトC1,C2の移動可能な範囲が狭くなるのに合わせて、テクスチャ515の表示位置を制限することで、ユーザUにバトルフィールド400の大きさをフィードバックすることができる。
【0082】
なお、例えばゲームの状況に応じて所定の条件を満たした場合には、テクスチャ515に含まれる情報のうち少なくとも一部を仮想カメラ300の動きに追随させないようにしてもよい。例えば、バトルフィールド400が狭くなった場合には、テクスチャ515に含まれる一部の情報の表示を仮想カメラ300の動きに追随させないことで、バトルフィールド400が狭くなったことをユーザUが認識し得る。
【0083】
また、第二の実施形態においては、各種情報がテクスチャ515としてマッピングされた表示オブジェクト510をUIオブジェクト500に沿って移動させることで、テクスチャ515の表示位置を移動させているが、この例に限られない。例えば、テクスチャがUIオブジェクト500に直接マッピングされ、このテクスチャのUIオブジェクト510上でのマッピング位置を変更することで、テクスチャの表示位置を移動させる構成としても良い。
【0084】
以上、本開示の実施形態について説明をしたが、本発明の技術的範囲が本実施形態の説明によって限定的に解釈されるべきではない。本実施形態は一例であって、特許請求の範囲に記載された発明の範囲内において、様々な実施形態の変更が可能であることが当業者によって理解されるところである。本発明の技術的範囲は特許請求の範囲に記載された発明の範囲およびその均等の範囲に基づいて定められるべきである。
【0085】
制御部121によって実行される各種処理をソフトウェアによって実現するために、本実施形態に係る表示制御方法をコンピュータ(プロセッサ)に実行させるための表示制御プログラムが記憶部123またはROMに予め組み込まれていてもよい。または、表示制御プログラムは、磁気ディスク(HDD、フロッピーディスク)、光ディスク(CD−ROM,DVD−ROM、Blu−ray(登録商標)ディスク等)、光磁気ディスク(MO等)、フラッシュメモリ(SDカード、USBメモリ、SSD等)等のコンピュータ読取可能な記憶媒体に格納されていてもよい。この場合、記憶媒体が制御装置120に接続されることで、当該記憶媒体に格納されたプログラムが、記憶部123に組み込まれる。そして、記憶部123に組み込まれた表示制御プログラムがRAM上にロードされて、プロセッサがロードされた当該プログラムを実行することで、制御部121は本実施形態に係る表示制御方法を実行する。
【0086】
また、表示制御プログラムは、通信ネットワーク3上のコンピュータから通信インターフェース125を介してダウンロードされてもよい。この場合も同様に、ダウンロードされた当該プログラムが記憶部123に組み込まれる。
【解決手段】ヘッドマウントディスプレイ(HMD)を備えたシステムにおける表示制御方法であって、当該方法は、(a)仮想カメラ300を含む仮想空間200を定義する仮想空間データを生成するステップと、(b)仮想カメラ300の視野CVおよび仮想空間データに基づいてHMDに視野画像Vを表示させるステップと、(c)HMDの動きに基づいて仮想カメラ300を動かすことで視野画像Vを更新するステップと、(d)所定の情報515を表示可能な対象オブジェクト500を、仮想カメラ300の初期位置において仮想カメラ300を囲むように配置するステップと、(e)仮想カメラ300の動きに追随するように、情報515の表示位置を対象オブジェクト500に沿って移動させるステップと、を含む。