本実施の形態では、ヘッドマウントディスプレイ(HMD)を用いた表示技術について説明する。ヘッドマウントディスプレイは、ユーザの両眼を覆うようにユーザの頭部に装着して、ユーザの眼前に設けられた表示画面に表示される静止画や動画などを鑑賞するための表示装置である。ヘッドマウントディスプレイに表示される対象は、映画やテレビ番組などのコンテンツであってもよいが、本実施の形態では、ゲームの画像を表示するための表示装置としてヘッドマウントディスプレイが用いられる例について説明する。
図1は、実施の形態に係るゲームシステム1の使用環境を示す。ゲームシステム1は、ゲームプログラムを実行するゲーム装置10と、ユーザの指示をゲーム装置10に入力するための入力装置20と、ユーザの周囲の実空間を撮像する撮像装置14と、ゲーム装置10により生成される第1ゲーム画像を表示するヘッドマウントディスプレイ100と、ゲーム装置10により生成される第2ゲーム画像を表示する表示装置12とを備える。
ゲーム装置10は、入力装置20又はヘッドマウントディスプレイ100により入力される指示入力や、入力装置20又はヘッドマウントディスプレイ100の位置又は姿勢などに基づいてゲームプログラムを実行し、第1ゲーム画像を生成してヘッドマウントディスプレイ100に伝送し、第2ゲーム画像を生成して表示装置12に伝送する。
ヘッドマウントディスプレイ100は、ゲーム装置10において生成された第1ゲーム画像を表示する。また、ヘッドマウントディスプレイ100に設けられた入力装置に対するユーザの入力に関する情報をゲーム装置10へ伝送する。ヘッドマウントディスプレイ100は、ゲーム装置10に有線ケーブルで接続されてもよく、また無線LANなどにより無線接続されてもよい。
表示装置12は、ゲーム装置10において生成された第2ゲーム画像を表示する。表示装置12は、ディスプレイおよびスピーカを有するテレビであってもよいし、コンピュータディスプレイなどであってもよい。
入力装置20は、ユーザによる指示入力をゲーム装置10に伝送する機能をもち、本実施の形態ではゲーム装置10との間で無線通信可能な無線コントローラとして構成される。入力装置20とゲーム装置10は、Bluetooth(登録商標)プロトコルを用いて無線接続を確立してもよい。なお入力装置20は、無線コントローラに限らず、ゲーム装置10とケーブルを介して接続される有線コントローラであってもよい。
入力装置20はバッテリにより駆動され、ゲームを進行させる指示入力を行うための複数のボタンを有して構成される。ユーザが入力装置20のボタンを操作すると、その操作による指示入力が無線通信によりゲーム装置10に送信される。
撮像装置14は、CCD撮像素子またはCMOS撮像素子などから構成されるビデオカメラであり、実空間を所定の周期で撮像して、周期ごとのフレーム画像を生成する。撮像装置14は、USB(Universal Serial Bus)あるいはその他のインタフェースを介してゲーム装置10と接続する。撮像装置14により撮像された画像は、ゲーム装置10において、入力装置20及びヘッドマウントディスプレイ100の位置及び姿勢を導出するために用いられる。撮像装置14は、距離を取得可能な測距カメラ又はステレオカメラであってもよい。この場合、撮像装置14により、撮像装置14と入力装置20又はヘッドマウントディスプレイ100などとの間の距離を取得することができる。
本実施例のゲームシステム1において、入力装置20及びヘッドマウントディスプレイ100は、複数色で発光可能に構成された発光部を有する。ゲーム中、発光部はゲーム装置10から指示された色で発光し、撮像装置14により撮像される。撮像装置14は入力装置20を撮像し、フレーム画像を生成してゲーム装置10に供給する。ゲーム装置10はフレーム画像を取得して、フレーム画像における発光部の画像の位置及び大きさから、実空間における発光部の位置情報を導出する。ゲーム装置10は、位置情報をゲームの操作指示として取り扱い、プレイヤーズキャラクタの動作を制御するなど、ゲームの処理に反映させる。
また、入力装置20及びヘッドマウントディスプレイ100は、加速度センサ及びジャイロセンサを有する。センサの検出値は、所定周期でゲーム装置10に送信され、ゲーム装置10は、センサの検出値を取得して、実空間における入力装置20及びヘッドマウントディスプレイ100の姿勢情報を取得する。ゲーム装置10は、姿勢情報をゲームの操作指示として取り扱い、ゲームの処理に反映させる。
図2は、実施の形態に係るヘッドマウントディスプレイ100の外観図である。ヘッドマウントディスプレイ100は、本体部110、頭部接触部112、及び発光部114を備える。
本体部110には、ディスプレイ、位置情報を取得するためのGPSユニット、姿勢センサ、通信装置などが備えられる。頭部接触部112には、ユーザの体温、脈拍、血液成分、発汗、脳波、脳血流などの生体情報を計測することのできる生体情報取得センサが備えられてもよい。発光部114は、上述したように、ゲーム装置10から指示された色で発光し、撮像装置14により撮像される画像においてヘッドマウントディスプレイ100の位置を算出するための基準として機能する。
ヘッドマウントディスプレイ100には、さらに、ユーザの目を撮影するカメラが設けられてもよい。ヘッドマウントディスプレイ100に搭載されたカメラにより、ユーザの視線、瞳孔の動き、瞬きなどを検出することができる。
本実施の形態においては、ヘッドマウントディスプレイ100について説明するが、本実施の形態の表示制御技術は、狭義のヘッドマウントディスプレイ100に限らず、めがね、めがね型ディスプレイ、めがね型カメラ、ヘッドフォン、ヘッドセット(マイクつきヘッドフォン)、イヤホン、イヤリング、耳かけカメラ、帽子、カメラつき帽子、ヘアバンドなどを装着した場合にも適用することができる。
図3は、ヘッドマウントディスプレイ100の機能構成図である。ヘッドマウントディスプレイ100は、入力インタフェース122、出力インタフェース130、バックライト132、通信制御部140、ネットワークアダプタ142、アンテナ144、記憶部150、GPSユニット161、無線ユニット162、姿勢センサ164、外部入出力端子インタフェース170、外部メモリ172、時計部180、表示装置190、及び制御部160を備える。これらの機能ブロックも、ハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できる。
制御部160は、画像信号、センサ信号などの信号や、命令やデータを処理して出力するメインプロセッサである。入力インタフェース122は、入力ボタンなどから操作信号や設定信号を受け付け、制御部160に供給する。出力インタフェース130は、制御部160から画像信号を受け取り、表示装置190に表示させる。バックライト132は、表示装置190を構成する液晶ディスプレイにバックライトを供給する。
通信制御部140は、ネットワークアダプタ142またはアンテナ144を介して、有線または無線通信により、制御部160から入力されるデータを外部に送信する。通信制御部140は、また、ネットワークアダプタ142またはアンテナ144を介して、有線または無線通信により、外部からデータを受信し、制御部160に出力する。
記憶部150は、制御部160が処理するデータやパラメータ、操作信号などを一時的に記憶する。
GPSユニット161は、制御部160からの操作信号にしたがって、GPS衛星から位置情報を受信して制御部160に供給する。無線ユニット162は、制御部160からの操作信号にしたがって、無線基地局から位置情報を受信して制御部160に供給する。
姿勢センサ164は、ヘッドマウントディスプレイ100の本体部110の向きや傾きなどの姿勢情報を検出する。姿勢センサ164は、ジャイロセンサ、加速度センサ、角加速度センサなどを適宜組み合わせて実現される。
外部入出力端子インタフェース170は、USB(Universal Serial Bus)コントローラなどの周辺機器を接続するためのインタフェースである。外部メモリ172は、フラッシュメモリなどの外部メモリである。
時計部180は、制御部160からの設定信号によって時間情報を設定し、時間データを制御部160に供給する。
図4は、入力装置20の外観構成を示す。図4(a)は、入力装置20の上面構成を示し、図4(b)は、入力装置20の下面構成を示す。入力装置20は、発光体22およびハンドル24を有する。発光体22は、その外側を光透過性を有する樹脂で球体に形成され、内側に発光ダイオードや電球などの発光素子を有する。内側の発光素子が発光すると、外側の球体全体が光る。ハンドル24の上面には、操作ボタン30、32、34、36、38が設けられ、下面には操作ボタン40が設けられる。ユーザはハンドル24の端部を手で把持した状態で、操作ボタン30、32、34、36、38を親指で操作し、操作ボタン40を人差し指で操作する。操作ボタン30、32、34、36、38は、押下式に構成され、ユーザは押下することで操作する。操作ボタン40は、アナログ量を入力できるものであってよい。
ユーザは表示装置12に表示されるゲーム画面を見ながらゲームを行う。撮像装置14は、ゲームアプリケーションの実行中に発光体22を撮像する必要があるため、その撮像範囲が表示装置12と同じ方向を向くように配置されることが好ましい。一般にユーザは表示装置12の正面でゲームをプレイすることが多いため、撮像装置14は、その光軸の方向が表示装置12の正面方向と一致するように配置される。具体的に、撮像装置14は、表示装置12の近傍において、表示装置12の表示画面をユーザが視認可能な位置を撮像範囲に含むように配置されることが好ましい。これにより、撮像装置14は、入力装置20を撮像できる。
図5は、入力装置20の内部構成を示す。入力装置20は、無線通信モジュール48、処理部50、発光部62および操作ボタン30、32、34、36、38、40を備える。無線通信モジュール48は、ゲーム装置10の無線通信モジュールとの間でデータを送受信する機能をもつ。処理部50は、入力装置20における所期の処理を実行する。
処理部50は、メイン制御部52、入力受付部54、3軸加速度センサ56、3軸ジャイロセンサ58および発光制御部60を有する。メイン制御部52は、無線通信モジュール48との間で必要なデータの送受を行う。
入力受付部54は、操作ボタン30、32、34、36、38、40からの入力情報を受け付け、メイン制御部52に送る。3軸加速度センサ56は、XYZの3軸方向の加速度成分を検出する。3軸ジャイロセンサ58は、XZ平面、ZY平面、YX平面における角速度を検出する。なお、ここでは、入力装置20の幅方向をX軸、高さ方向をY軸、長手方向をZ軸と設定する。3軸加速度センサ56および3軸ジャイロセンサ58は、入力装置20のハンドル24内に配置され、ハンドル24内の中心近傍に配置されることが好ましい。無線通信モジュール48は、操作ボタンからの入力情報とともに、3軸加速度センサ56による検出値情報、および3軸ジャイロセンサ58による検出値情報を、所定の周期でゲーム装置10の無線通信モジュールに送信する。この送信周期は、たとえば11.25m秒に設定される。
発光制御部60は、発光部62の発光を制御する。発光部62は、赤色LED64a、緑色LED64b、青色LED64cを有し、複数色の発光を可能とする。発光制御部60は、赤色LED64a、緑色LED64b、青色LED64cの発光を調整して、発光部62を所望の色に発光させる。
無線通信モジュール48はゲーム装置10から発光指示を受け取ると、メイン制御部52に供給し、メイン制御部52は、発光制御部60に発光指示を供給する。発光制御部60は、発光部62が発光指示により指定された色で発光するように、赤色LED64a、緑色LED64b、青色LED64cの発光を制御する。たとえば発光制御部60は、各LEDをPWM(パルス幅変調)制御で点灯制御してもよい。
図6は、ゲーム装置10の構成を示す。ゲーム装置10は、フレーム画像取得部80、画像処理部82、デバイス情報導出部84、無線通信モジュール86、入力受付部88、出力部90およびアプリケーション処理部300を備える。本実施例におけるゲーム装置10の処理機能は、CPU、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、ゲーム装置10に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。なおハードウェアの構成上、ゲーム装置10は複数のCPUを有してもよい。
無線通信モジュール86は、入力装置20の無線通信モジュール48との間で無線通信を確立する。これにより入力装置20は、操作ボタンの状態情報、3軸加速度センサ56および3軸ジャイロセンサ58の検出値情報を、ゲーム装置10に所定の周期で送信できるようになる。
無線通信モジュール86は、入力装置20から送信される操作ボタンの状態情報、およびセンサ検出値情報を受信し、入力受付部88に供給する。入力受付部88は、ボタン状態情報およびセンサ検出値情報を分離し、アプリケーション処理部300に引き渡す。アプリケーション処理部300は、ボタン状態情報およびセンサ検出値情報を、ゲームの操作指示として受け取る。アプリケーション処理部300は、センサ検出値情報を、入力装置20の姿勢情報として取り扱う。
フレーム画像取得部80はUSBインタフェースとして構成され、撮像装置14から所定の撮像速度(たとえば30フレーム/秒)でフレーム画像を取得する。画像処理部82は、フレーム画像から発光体画像を抽出する。画像処理部82は、フレーム画像中の発光体画像の位置、および大きさを特定する。入力装置20の発光体22が、たとえばユーザ環境内で使われそうにない色で点灯することで、画像処理部82は、フレーム画像から高精度に発光体画像を抽出できる。画像処理部82は、フレーム画像データを所定の閾値を用いて2値化処理し、2値化された画像を生成してもよい。この2値化処理により、所定の閾値より大きい輝度を保持する画素の画素値が“1”に符号化され、所定の閾値以下の輝度を保持する画素の画素値が“0”に符号化される。この所定の閾値を超える輝度で発光体22を点灯させることで、画像処理部82は、2値化された画像から、発光体画像の位置および大きさを特定できる。たとえば画像処理部82は、フレーム画像における発光体画像の重心座標と、発光体画像の半径を特定する。
デバイス情報導出部84は、画像処理部82で特定された発光体画像の位置および大きさから、撮像装置14からみた入力装置20およびヘッドマウントディスプレイ100の位置情報を導出する。デバイス情報導出部84は、発光体画像の重心座標からカメラ座標における位置座標を導出し、また発光体画像の半径から、撮像装置14からの距離情報を導出する。この位置座標および距離情報は、入力装置20およびヘッドマウントディスプレイ100の位置情報を構成する。デバイス情報導出部84は、フレーム画像ごとに入力装置20およびヘッドマウントディスプレイ100の位置情報を導出し、アプリケーション処理部300に引き渡す。アプリケーション処理部300は、入力装置20およびヘッドマウントディスプレイ100の位置情報を、ゲームの操作指示として受け取る。
アプリケーション処理部300は、入力装置20の位置情報および姿勢情報と、ボタン状態情報とからゲームを進行させて、ゲームアプリケーションの処理結果を示す画像信号を生成する。画像信号は出力部90から表示装置12に送られ、表示画像として出力される。
図7は、ゲーム装置10の機能構成図である。ゲーム装置10のアプリケーション処理部300は、制御部310及びデータ保持部360を備える。制御部310は、ゲーム制御部311、指示入力取得部312、HMD情報取得部314、入力装置情報取得部315、第1画像生成部316、及び第2画像生成部317を備える。
データ保持部360は、ゲーム装置10において実行されるゲームのプログラムデータや、ゲームプログラムが使用する各種のデータなどを保持する。
指示入力取得部312は、入力装置20又はヘッドマウントディスプレイ100が受け付けたユーザによる指示入力に関する情報を入力装置20又はヘッドマウントディスプレイ100から取得する。
HMD情報取得部314は、ヘッドマウントディスプレイ100から、ヘッドマウントディスプレイの姿勢に関する情報を取得する。また、HMD情報取得部314は、デバイス情報導出部84から、ヘッドマウントディスプレイ100の位置に関する情報を取得する。これらの情報は、ゲーム制御部311へ伝達される。ヘッドマウントディスプレイ100の姿勢に関する情報は、デバイス情報導出部84がヘッドマウントディスプレイ100の撮像画像を解析することにより取得されてもよい。
入力装置情報取得部315は、入力装置20から、入力装置20の姿勢に関する情報を取得する。また、入力装置情報取得部315は、デバイス情報導出部84から、入力装置20の位置に関する情報を取得する。これらの情報は、ゲーム制御部311へ伝達される。入力装置20の姿勢に関する情報は、デバイス情報導出部84が入力装置20の撮像画像を解析することにより取得されてもよい。
入力装置20が撮像装置14の撮像範囲から外れたり、ユーザの体や障害物などに隠されたりして、撮像装置14により撮像されなかった場合、入力装置情報取得部315は、前回取得された入力装置20の位置と、その時点以降に取得された入力装置20の姿勢に関する情報に基づいて、入力装置20の位置を算出する。例えば、入力装置20の加速度センサから取得される並進加速度のデータに基づいて、前回取得された入力装置20の位置からのずれを算出することにより、現在の入力装置20の位置を算出してもよい。入力装置20が撮像装置14により撮像されない間は、同様にして入力装置20の位置を逐次算出する。入力装置20が撮像装置14により再度撮像された場合、加速度データにより逐次算出された入力装置20の位置は、ドリフト誤差の累積により正確な位置を示していない可能性があるので、デバイス情報導出部84により新たに算出された入力装置20の位置を現在の入力装置20の位置としてもよい。ヘッドマウントディスプレイ100についても同様である。
ゲーム制御部311は、ゲームプログラムを実行し、指示入力取得部312が取得したユーザによる指示入力や、入力装置20又はヘッドマウントディスプレイ100の位置又は姿勢に関する情報に基づいてゲームを進行させる。ゲーム制御部311は、仮想的な三次元空間により構成されるゲームフィールドにおいて、入力装置20の方向キーやアナログスティックなどによる入力や、入力装置20又はヘッドマウントディスプレイ100の位置の変化などに基づいて、操作対象であるプレイヤーズキャラクタなどの位置を変更する。
第1画像生成部316は、ヘッドマウントディスプレイ100に表示すべき画像を生成する。第1画像生成部316は、ゲーム制御部311により制御される操作対象の位置に基づいて視点位置を設定し、ヘッドマウントディスプレイ100の姿勢に基づいて視線方向を設定して、仮想三次元空間をレンダリングすることにより、ゲームフィールドの画像を生成する。第1画像生成部316は、所定のタイミングでヘッドマウントディスプレイ100の姿勢とゲームフィールドにおける視線方向とを対応づけ、以降、ヘッドマウントディスプレイ100の姿勢の変化に伴って、視線方向を変化させる。これにより、ユーザは、実際に頭を動かすことにより、ゲームフィールド内を見渡すことができるので、ゲームフィールド内に現実に存在しているかのような体験をすることができる。第1画像生成部316は、生成したゲームフィールドの画像に、ゲームに関する情報やヘッドマウントディスプレイ100に表示すべき画像などを追加して、第1画像を生成する。第1画像生成部316により生成された第1画像は、無線通信モジュール又は有線通信モジュールを介してヘッドマウントディスプレイ100に送信される。
第2画像生成部317は、表示装置12に表示すべき画像を生成する。ヘッドマウントディスプレイ100に表示される画像と同じ画像を表示装置12に表示する場合は、第1画像生成部316により生成された第1画像が表示装置12にも送信される。ヘッドマウントディスプレイ100に表示される画像とは異なる画像を表示装置12に表示する場合、例えば、ヘッドマウントディスプレイ100を装着したユーザと、表示装置12を視聴しているユーザとが、対戦ゲームを実行する場合などは、第2画像生成部317は、第1画像生成部316とは異なる視点位置及び視線方向を設定して仮想三次元空間をレンダリングすることによりゲームフィールドの画像を生成する。第2画像生成部317は、生成したゲームフィールドの画像に、ゲームに関する情報や表示装置12に表示すべき画像などを追加して、第2画像を生成する。第2画像生成部317により生成された第2画像は、無線通信モジュール又は有線通信モジュールを介して表示装置12に送信される。
図8は、ヘッドマウントディスプレイに表示される画像の例を示す。ゲーム制御部311は、仮想三次元空間のゲームフィールドに配置されたオブジェクトを手にとって観察する機能を提供する。オブジェクトの位置を制御する位置制御部としても機能するゲーム制御部311は、入力装置20とヘッドマウントディスプレイ100との間の相対位置に基づいて、入力装置20に対応するゲームフィールドの位置に仮想ユーザの手502を配置する。ユーザが、ゲームフィールドに配置されたオブジェクト500の近傍の所定の範囲内に仮想ユーザの手502が入るように入力装置20を移動させ、所定のボタンを入力すると、ゲーム制御部311は、仮想ユーザの手502の上にオブジェクト500を移動させる。
仮想ユーザの手502及びオブジェクト500は、入力装置20とヘッドマウントディスプレイ100との間の相対位置の変化に伴ってゲーム制御部311により移動されるので、オブジェクト500を拡大表示させてより詳細に観察するためには、現実世界と同様に、入力装置20を把持している手をヘッドマウントディスプレイ100の方へ近づけることにより、仮想ユーザの手502を仮想ユーザの目の方へ近づければよい。このとき、ヘッドマウントディスプレイ100に表示される画像は、両眼立体視のための視差画像であるから、オブジェクト500を近づけ過ぎると、視差が大き過ぎて焦点を合わせにくくなってしまい、かえって見づらくなってしまう。したがって、本実施の形態では、入力装置20とヘッドマウントディスプレイ100の間の距離が所定の第1の距離よりも短くなるように入力装置20がヘッドマウントディスプレイ100の方へ近づけられた場合、仮想世界においてオブジェクトを視点位置に近づけるのではなく、視点位置との間の距離を第2の距離以上に保ったままオブジェクトを拡大させることにより、オブジェクトを拡大表示させる。これにより、視差画像を利用した立体視を実現するヘッドマウントディスプレイにおいて、視点位置に近づけられたオブジェクトを見やすく表示することができるので、ユーザの利便性を向上させることができる。
図9は、仮想世界に配置されたオブジェクトの表示方法を説明するための模式図である。図9(a)に示した位置に配置されていたオブジェクト500が、仮想ユーザの手502の上に乗せられた後、入力装置20がヘッドマウントディスプレイ100の方へ近づけられると、入力装置20とヘッドマウントディスプレイ100の間の距離が短くなるにつれて、図9(b)に示すように、オブジェクト500が視点位置の方へ近づけられる。入力装置20が更にヘッドマウントディスプレイ100の方へ近づけられ、図9(c)に示すように、オブジェクト500と視点位置との間の距離が第2の距離に達すると、ゲーム制御部311は、入力装置20がヘッドマウントディスプレイ100の方へそれ以上近づけられても、オブジェクト500を視点位置の方へ近づけない。すなわち、図9(d)に示すように、オブジェクト500をそのままオブジェクト504の位置に移動させるのではなく、第2の距離よりも離れた位置で拡大させる。
このように、本実施の形態によれば、入力装置20を第1の距離より近づけた場合であっても、オブジェクト500を見やすく表示することができるが、見やすく表示するがゆえに、ユーザが入力装置20を眼前に近づけ過ぎてしまい、入力装置20がヘッドマウントディスプレイ100の筐体に当たってしまう事態が生じうる。したがって、本実施の形態では、ユーザが入力装置20をヘッドマウントディスプレイ100の方へ近づけ過ぎないようにするために、入力装置20とヘッドマウントディスプレイ100の間の距離が、ヘッドマウントディスプレイ100の筐体の端とユーザの目の間の距離よりも長い第3の距離に達すると、オブジェクト500の視認性を低下させ、見づらくなるように表示する。具体的には、入力装置20とヘッドマウントディスプレイ100の間の距離が第3の距離よりも短くなると、オブジェクト500を急激に拡大させ、オブジェクト500の全体像が表示されないようにする。これにより、ユーザが入力装置20をそれ以上近づけさせないようにし、入力装置20がヘッドマウントディスプレイ100に当たってしまう事態を低減させることができる。
図10は、仮想世界に配置されたオブジェクトの表示方法を説明するための図である。図10(a)は、オブジェクト500が図9(a)に示した位置に配置されているときの表示画面を示す。入力装置20がヘッドマウントディスプレイ100の方へ近づけられると、入力装置20とヘッドマウントディスプレイ100の間の距離が短くなるにつれて、オブジェクト500が視点位置の方へ近づけられるので、図10(b)に示すように、オブジェクト500がより大きく表示される。入力装置20が更にヘッドマウントディスプレイ100の方へ近づけられ、入力装置20とヘッドマウントディスプレイ100との間の距離が第3の距離を下回ると、そのまま線形的にオブジェクト500が拡大された場合は図10(c)のように表示されるところ、オブジェクト500を急激に拡大させて図10(d)のように表示する。これにより、オブジェクト500が拡大され過ぎて全体を視認することができなくなるので、ユーザが入力装置20をそれ以上眼前に近づけないようにさせることができる。
図11は、入力装置とヘッドマウントディスプレイの間の距離と、オブジェクトの表示方法との間の関係を示す。図11(a)は、現実世界における入力装置20とヘッドマウントディスプレイ100の距離と、仮想世界におけるオブジェクトと視点位置の間の距離との関係を示し、図11(b)は、現実世界における入力装置20とヘッドマウントディスプレイ100の間の距離と、仮想世界におけるオブジェクトの拡大率との関係を示す。入力装置20とヘッドマウントディスプレイ100との間の距離が第1の距離x4よりも長い場合、すなわち、オブジェクトと視点位置との間の距離が第2の距離s1よりも長い場合、ゲーム制御部311は、入力装置20とヘッドマウントディスプレイ100の距離の変化にしたがって、オブジェクトと視点位置の間の距離を線形的に変化させる。このとき、オブジェクトの拡大率は1であり、拡大も縮小もされない。
入力装置20とヘッドマウントディスプレイ100の間の距離がx4よりも短い場合、ゲーム制御部311は、距離がx4よりも長い場合とは異なる基準でオブジェクトの位置を決定する。具体的には、オブジェクトと視点位置の間の距離を第2の距離s1より短くせず、オブジェクトを視点位置から第2の距離s1よりも遠い位置に拡大して配置する。入力装置20とヘッドマウントディスプレイ100の間の距離が短くなるにつれて、オブジェクトをより大きく表示させるために、オブジェクトの拡大率は増加される。入力装置20とヘッドマウントディスプレイ100の距離の変化にしたがって、オブジェクトの拡大率は線形的に変化されてもよいし、非線形的に変化されてもよい。オブジェクトと視点位置の間の距離は、s1のまま固定されてもよいし、図11(a)に示すように、s1より長くされてもよく、入力装置20とヘッドマウントディスプレイ100の間の距離が短くなるにつれて、オブジェクトが視点位置から離されてもよい。入力装置20とヘッドマウントディスプレイ100の距離の変化にしたがって、オブジェクトと視点位置の間の距離は線形的に変化されてもよいし、非線形的に変化されてもよい。
入力装置20とヘッドマウントディスプレイ100の間の距離が第3の距離x3よりも短くなると、ゲーム制御部311は、オブジェクトの表示サイズを、距離が第3の距離x3よりも長い場合の基準により決定される表示サイズよりも大きくする。本図の例では、入力装置20とヘッドマウントディスプレイ100の間の距離が第3の距離x3よりも短くなると、オブジェクトは急激に拡大される。この場合も、入力装置20とヘッドマウントディスプレイ100の距離の変化にしたがって、オブジェクトの拡大率は線形的に変化されてもよいし、非線形的に変化されてもよい。また、オブジェクトの拡大率は不連続的に変化されてもよい。
入力装置20がヘッドマウントディスプレイ100の筐体に当たる距離x1と距離x2の間の範囲では、入力装置20とヘッドマウントディスプレイ100の間の距離によらず、視点位置とオブジェクトの間の距離も、オブジェクトの拡大率も一定である。すなわち、入力装置20を距離x2よりヘッドマウントディスプレイ100に近づけてもオブジェクトの表示は変わらない。これによっても、ユーザが入力装置20をそれ以上眼前に近づけさせないようにすることができる。
上記の例では、視点位置とオブジェクトの間の距離を第2の距離以上離すことにより、オブジェクトが視点位置に近づき過ぎて焦点を合わせづらくなる事態を回避したが、別の例では、視点位置とオブジェクトの間の距離が第2の距離よりも短い場合に、両眼立体視のための視差画像を生成する際の視差の量を、視点位置とオブジェクトの間の距離に対応する量より小さくしてもよい。これにより、オブジェクトに対する遠近感は本来のものとは異なるものの、オブジェクトの視認性を向上させることができる。この場合、入力装置20とヘッドマウントディスプレイ100の間の距離が第3の距離よりも短くなると、オブジェクトに対する視差の量を大きくし、オブジェクトの視認性を低下させてもよい。
図12は、仮想世界に配置されたオブジェクトの表示方法を説明するための模式図である。オブジェクトの大きさが比較的小さい場合や、図12(a)に示すように、オブジェクト506の手前側の面が視線方向と垂直になるようにオブジェクト506が配置されている場合などは、オブジェクトの重心位置又はオブジェクトの手前側の面の重心位置と視点位置の間の距離に基づいて、図11に示したようにオブジェクト506の表示方法が決定されるが、図12(b)(c)に示すように、比較的大きなオブジェクト506が視線方向に対して傾いて配置されている場合や、図12(d)に示すように、ユーザがオブジェクトの手前側の面の重心位置とは異なる部分を注視している場合などは、ユーザが注視している位置によって視点位置との間の距離が大きく異なるので、例えば、図12(c)に示すように、オブジェクト506の手前側の部分をユーザが注視している場合には、近過ぎて焦点を合わせづらい場合がある。したがって、本実施の形態では、ユーザが注視している部分、すなわち、ユーザの視線方向とオブジェクト506の手前側の面との交点と、視点位置との間の距離に基づいて、オブジェクト506の表示方法を決定する。具体的には、ユーザが注視している部分と視点位置の間の距離が第2の距離よりも短い場合、ユーザが注視している部分は近過ぎて焦点が合いにくいので、図11に示した方法にしたがって、オブジェクト506の配置位置を遠くにずらし、オブジェクト506を拡大させる。これにより、ユーザが注視している部分の視認性を向上させることができる。なお、ユーザの視線方向は、ヘッドマウントディスプレイ100の姿勢から算出してもよいし、ヘッドマウントディスプレイ100の内側にユーザの眼球を撮影するカメラを設け、眼球の方向から算出してもよいし、既知の任意の視線追跡技術を用いて算出してもよい。
図13は、ヘッドマウントディスプレイに表示される画像の例を示す。本図は、入力装置20の移動により視点位置を移動させる機能の表示画面を示す。上述した例では、ヘッドマウントディスプレイ100の移動により視点位置が移動されたが、ユーザが座った状態でゲームを実行する場合、ヘッドマウントディスプレイ100を大きく移動させることは難しい。また、ヘッドマウントディスプレイ100の移動により視点位置を大きく移動させることを可能とするために、ヘッドマウントディスプレイ100のわずかな移動によっても視点位置を移動させるようにすると、視点位置のぶれによる酔いが生じやすい。したがって、本実施の形態では、ヘッドマウントディスプレイ100よりも移動させることが容易である入力装置20の移動により視点位置を移動させる機能を提供する。これにより、身体の中で最も可動範囲の広い手を用いて視点位置を移動させることができるので、ユーザの利便性を向上させることができる。
表示画面には、仮想ユーザの手508の一部が表示されている。図8の例とは異なり、仮想ユーザの手508の全体は表示されず、指側の一部のみが表示されているので、ユーザ自身が仮想ユーザの手508の上に乗って移動しているように思わせることができる。入力装置20が移動されたとき、現実世界における入力装置20の移動量と同程度の量で視点位置が移動されてもよいし、より大きな量で視点位置が移動されてもよい。入力装置20が表示画面に平行な方向、すなわち左右又は上下に移動された場合と、表示画面に垂直な方向、すなわち奥行き方向に移動された場合とで、視点位置の移動量を異ならせてもよい。例えば、水平方向に移動された場合は、現実世界における入力装置20の移動量と同程度に視点位置が移動されるが、垂直方向に移動された場合は、より大きな量で視点位置が移動されてもよい。なお、仮想ユーザの手の一部が表示される場合の方が、表示されない場合よりも酔いが生じにくいことが、本発明者らの実験により明らかになっている。また、仮想ユーザの手の一部は、より大きく表示する方が、小さく表示する場合よりも酔いが生じにくい。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
上記の例では、ヘッドマウントディスプレイ100の表示装置190に両眼立体視用の画像が表示されたが、別の例では、単眼立体視用の画像が表示されてもよい。
上記の例では、ゲームシステムにおいてヘッドマウントディスプレイ100が利用されたが、実施の形態で説明した技術は、ゲーム以外のコンテンツなどを表示する場合にも利用可能である。