(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179472
(43)【公開日】2023-12-19
(54)【発明の名称】画像表示システム、画像表示プログラム、画像表示装置、および画像表示方法
(51)【国際特許分類】
H04N 13/279 20180101AFI20231212BHJP
H04N 13/344 20180101ALI20231212BHJP
H04N 13/128 20180101ALI20231212BHJP
H04N 13/366 20180101ALI20231212BHJP
G06T 19/00 20110101ALI20231212BHJP
G09G 5/00 20060101ALI20231212BHJP
G09G 5/36 20060101ALI20231212BHJP
G09G 5/373 20060101ALI20231212BHJP
G09G 3/20 20060101ALI20231212BHJP
G06F 3/01 20060101ALI20231212BHJP
【FI】
H04N13/279
H04N13/344
H04N13/128
H04N13/366
G06T19/00 F
G09G5/00 510A
G09G5/00 550C
G09G5/36 500
G09G5/373 100
G09G3/20 660C
G09G3/20 660E
G09G3/20 660X
G09G3/20 680A
G06F3/01 510
【審査請求】有
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2023147413
(22)【出願日】2023-09-12
(62)【分割の表示】P 2019053702の分割
【原出願日】2019-03-20
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】岩田 健志
(72)【発明者】
【氏名】松浦 龍平
(57)【要約】
【課題】VR酔いの可能性を低減することが可能な画像表示システムを提供する。
【解決手段】画像表示システムの一例は、表示部を有するゴーグル装置を含む。画像表示システムは、仮想空間に配置された仮想カメラの画角を第1画角と、第1画角よりも小さい第2画角とに設定可能であり、仮想カメラの画角を第2画角に設定することで、仮想空間の一部を拡大表示する。画像表示システムは、仮想カメラの画角が第1画角に設定されている場合、左目用画像および右目用画像の視差を第1の視差に設定し、仮想カメラの画角が第2画角に設定されている場合、左目用画像および右目用画像の視差を第1の視差よりも小さい第2の視差に設定する。
【選択図】
図16
【特許請求の範囲】
【請求項1】
ゴーグル装置と、
仮想空間に仮想カメラを配置する仮想カメラ配置手段と、
前記仮想カメラの画角を、少なくとも第1画角および前記第1画角よりも小さい第2画角のうちの何れかに設定する画角設定手段と、
前記仮想カメラの画角に含まれる前記仮想空間の画像であって、互いに視差を有する左目用画像および右目用画像を生成する画像生成手段と、
前記左目用画像および前記右目用画像を前記ゴーグル装置の表示部に表示させる表示制御手段と、
前記仮想カメラの画角が前記第1画角に設定されている場合、前記左目用画像および前記右目用画像の視差を第1の視差に設定し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記左目用画像および前記右目用画像の視差を前記第1の視差よりも小さい第2の視差に設定する視差設定手段と、を備え、
前記画像生成手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合、互いに前記第1の視差を有する前記左目用画像および前記右目用画像を生成し、
前記仮想カメラの画角が前記第2画角に設定されている場合、前記仮想空間の一部を拡大した画像であって、互いに前記第2の視差を有する前記左目用画像および前記右目用画像を生成し、
前記仮想カメラは、前記左目用画像を生成するための左目用仮想カメラと、前記右目用画像を生成するための右目用仮想カメラとを含み、
前記視差設定手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を第1距離に設定することにより、前記第1の視差を設定し、
前記仮想カメラの画角が前記第2画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を前記第1距離よりも短い第2距離に設定することにより、前記第2の視差を設定する、画像表示システム。
【請求項2】
前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角に連続的に変化させることが可能であり、
前記視差設定手段は、
前記仮想カメラの画角が前記第1画角から前記第2画角に連続的に変化する場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を連続的に短くする、請求項1に記載の画像表示システム。
【請求項3】
前記視差設定手段は、
前記仮想カメラの画角の変化に応じて、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を線形的に変化させる、請求項2に記載の画像表示システム。
【請求項4】
前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角の範囲で小さくし、
前記画像生成手段は、前記仮想カメラの画角が小さくされることに応じて、前記仮想空間の一部の拡大率を高くして前記左目用画像および前記右目用画像を生成し、
前記視差設定手段は、前記拡大率が高くなることに応じて、前記左目用画像および前記右目用画像の視差を小さくする、請求項1から3の何れかに記載の画像表示システム。
【請求項5】
前記ゴーグル装置は、前記左目用画像および前記右目用画像をユーザの左目および右目にそれぞれ視認させるためのレンズを備え、
前記第1画角は、前記レンズを用いた前記ユーザの視野角に設定される、請求項1から4の何れかに記載の画像表示システム。
【請求項6】
前記仮想空間に所定の仮想オブジェクトを配置するオブジェクト配置手段をさらに備え、
前記表示制御手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合、第1の大きさの前記所定の仮想オブジェクトの画像を含む前記左目用画像および前記右目用画像を生成し、
前記仮想カメラの画角が前記第2画角に設定されている場合、前記第1の大きさよりも大きな第2の大きさの前記所定の仮想オブジェクトの画像を含む前記左目用画像および前記右目用画像を生成する、請求項1から5の何れかに記載の画像表示システム。
【請求項7】
前記仮想カメラの画角が前記第1画角に設定されるときと、前記第2画角に設定されるときとで、前記仮想カメラの前記仮想空間における位置は同じである、請求項1から6の何れかに記載の画像表示システム。
【請求項8】
前記ゴーグル装置の姿勢を検出する検出手段と、
前記ゴーグル装置の姿勢に基づいて、前記仮想カメラの姿勢を制御する仮想カメラ姿勢制御手段と、
前記ゴーグル装置の姿勢の変化に対する前記仮想カメラの姿勢の変化の度合いを設定する変化設定手段と、をさらに備え、
前記仮想カメラ姿勢制御手段は、
前記仮想カメラの画角が前記第2画角に設定されている場合において、前記ゴーグル装置の姿勢が変化した場合、前記変化設定手段によって設定された変化の度合いで前記ゴーグル装置の姿勢に近づくように、前記仮想カメラの姿勢を制御する、請求項1から7の何れかに記載の画像表示システム。
【請求項9】
前記ゴーグル装置の姿勢を検出する検出手段と、
前記ゴーグル装置の姿勢に基づいて、前記仮想カメラの姿勢を制御する仮想カメラ姿勢制御手段と、をさらに備え、
前記仮想カメラ姿勢制御手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合、前記ゴーグル装置の姿勢が変化したときに、当該変化後のゴーグル装置の姿勢に応じて前記仮想カメラの姿勢を制御し、
前記仮想カメラの画角が前記第2画角に設定されている場合、前記ゴーグル装置の姿勢が変化したときに、前記仮想カメラの姿勢の変化を軽減するための補正処理を行い、当該補正処理に応じて前記仮想カメラの姿勢を制御する、請求項7に記載の画像表示システム。
【請求項10】
前記画像生成手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合、前記仮想空間の一部を表す第1左目用画像および第1右目用画像を生成し、
前記仮想カメラの画角が前記第2画角に設定されている場合、前記仮想空間の一部を拡大した第2左目用画像および第2右目用画像を生成し、
前記表示制御手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合、前記第1左目用画像および前記第1右目用画像のそれぞれを第1の大きさの表示領域に表示させ、
前記仮想カメラの画角が前記第2画角に設定されている場合、前記第2左目用画像および前記第2右目用画像のそれぞれを前記第1の大きさよりも小さい第2の大きさの表示領域に表示させる、請求項1から9の何れかに記載の画像表示システム。
【請求項11】
前記第2の大きさの表示領域は、前記第1の大きさの表示領域とほぼ相似形の領域である、請求項10に記載の画像表示システム。
【請求項12】
前記第2の大きさの表示領域は、前記第1の大きさの表示領域の少なくとも外周部分を除いた中央部分の領域である、請求項10又は11に記載の画像表示システム。
【請求項13】
前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角まで連続的に変化させることが可能であり、
前記表示制御手段は、前記仮想カメラの画角が前記第1画角から前記第2画角まで連続的に変化されることに応じて、前記仮想空間の一部を拡大した左目用画像および右目用画像の表示領域を連続的に小さくする、請求項10から12の何れかに記載の画像表示システム。
【請求項14】
前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角まで連続的に変化させることが可能であり、
前記表示制御手段は、
前記仮想カメラの画角が前記第1画角から前記第2画角まで連続的に変化されることに応じて、前記仮想空間の一部を拡大した左目用画像および右目用画像の表示領域を略相似形に変化させるとともに、当該表示領域を連続的に小さくする、請求項10から13の何れかに記載の画像表示システム。
【請求項15】
ゴーグル装置の表示部に画像を表示させる装置のプロセッサにおいて実行される画像表示プログラムであって、前記プロセッサを、
仮想空間に仮想カメラを配置する仮想カメラ配置手段と、
前記仮想カメラの画角を、少なくとも第1画角および前記第1画角よりも小さい第2画角のうちの何れかに設定する画角設定手段と、
前記ゴーグル装置の表示部に表示させるために、前記仮想カメラの画角に含まれる前記仮想空間の画像であって、互いに視差を有する左目用画像および右目用画像を生成する画像生成手段と、
前記仮想カメラの画角が前記第1画角に設定されている場合、前記左目用画像および前記右目用画像の視差を第1の視差に設定し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記左目用画像および前記右目用画像の視差を前記第1の視差よりも小さい第2の視差に設定する視差設定手段と、して機能させ、
前記画像生成手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合、互いに前記第1の視差を有する前記左目用画像および前記右目用画像を生成し、
前記仮想カメラの画角が前記第2画角に設定されている場合、前記仮想空間の一部を拡大した画像であって、互いに前記第2の視差を有する前記左目用画像および前記右目用画像をそれぞれ生成し、
前記仮想カメラは、前記左目用画像を生成するための左目用仮想カメラと、前記右目用画像を生成するための右目用仮想カメラとを含み、
前記視差設定手段は、
前記仮想カメラの画角が前記第1画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を第1距離に設定することにより、前記第1の視差を設定し、
前記仮想カメラの画角が前記第2画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を前記第1距離よりも短い第2距離に設定することにより、前記第2の視差を設定する、画像表示プログラム。
【請求項16】
ゴーグル装置を含む画像表示システムにおいて行われる画像表示方法であって、前記画像表示システムに、
仮想空間に仮想カメラを配置する仮想カメラ配置ステップと、
前記仮想カメラの画角を、少なくとも第1画角および前記第1画角よりも小さい第2画角のうちの何れかに設定する画角設定ステップと、
前記ゴーグル装置の表示部に表示させるために、前記仮想カメラの画角に含まれる前記仮想空間の画像であって、互いに視差を有する左目用画像および右目用画像を生成する画像生成ステップと、
前記仮想カメラの画角が前記第1画角に設定されている場合、前記左目用画像および前記右目用画像の視差を第1の視差に設定し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記左目用画像および前記右目用画像の視差を前記第1の視差よりも小さい第2の視差に設定する視差設定ステップと、を実行させ、
前記画像生成ステップでは、
前記仮想カメラの画角が前記第1画角に設定されている場合、互いに前記第1の視差を有する前記左目用画像および前記右目用画像を生成し、
前記仮想カメラの画角が前記第2画角に設定されている場合、前記仮想空間の一部を拡大した画像であって、互いに前記第2の視差を有する前記左目用画像および前記右目用画像をそれぞれ生成し、
前記仮想カメラは、前記左目用画像を生成するための左目用仮想カメラと、前記右目用画像を生成するための右目用仮想カメラとを含み、
前記視差設定ステップでは、
前記仮想カメラの画角が前記第1画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を第1距離に設定することにより、前記第1の視差を設定し、
前記仮想カメラの画角が前記第2画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を前記第1距離よりも短い第2距離に設定することにより、前記第2の視差を設定する、画像表示方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、立体視画像を表示することが可能な画像表示システム、画像表示プログラム、画像表示装置、および画像表示方法に関する。
【背景技術】
【0002】
先行技術として、仮想空間に仮想カメラを配置し、仮想カメラに基づいて左目用画像および右目用画像を生成し、ユーザの左目および右目にそれぞれ視認させることで立体視画像を視認させる表示制御システムがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ゴーグル装置を用いて立体視画像をユーザに視認させて、仮想現実(VR)を体験させる場合において、VR酔いの可能性を低減するという点では改善の余地があった。
【0005】
それ故、本発明の目的は、VR酔いの可能性を低減することが可能な画像表示システム、画像表示プログラム、画像表示装置、および画像表示方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【0007】
本発明の画像表示システムは、ゴーグル装置と、仮想カメラ配置手段と、画角設定手段と、画像生成手段と、表示制御手段と、視差設定手段と、を備える。仮想カメラ配置手段は、仮想空間に仮想カメラを配置する。画角設定手段は、前記仮想カメラの画角を、少なくとも第1画角および前記第1画角よりも小さい第2画角のうちの何れかに設定する。画像生成手段は、前記仮想カメラの画角に含まれる前記仮想空間の画像であって、互いに視差を有する左目用画像および右目用画像を生成する。表示制御手段は、前記左目用画像および前記右目用画像を前記ゴーグル装置の表示部に表示させる。視差設定手段は、前記仮想カメラの画角が前記第1画角に設定されている場合、前記左目用画像および前記右目用画像の視差を第1の視差に設定し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記左目用画像および前記右目用画像の視差を前記第1の視差よりも小さい第2の視差に設定する。前記画像生成手段は、前記仮想カメラの画角が前記第1画角に設定されている場合、互いに前記第1の視差を有する前記左目用画像および前記右目用画像を生成し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記仮想空間の一部を拡大した画像であって、互いに前記第2の視差を有する前記左目用画像および前記右目用画像を生成する。
【0008】
上記によれば、仮想カメラの画角を第2画角に設定することで仮想空間の一部を拡大表示することができる。仮想空間の一部を拡大する場合、左目用画像および右目用画像の視差を、通常よりも小さくする。これにより、拡大時に立体感を弱め、VR酔いの可能性を低減することができる。
【0009】
また、前記仮想カメラは、前記左目用画像を生成するための左目用仮想カメラと、前記右目用画像を生成するための右目用仮想カメラとを含んでもよい。前記視差設定手段は、前記仮想カメラの画角が前記第1画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を第1距離に設定し、前記仮想カメラの画角が前記第2画角に設定されている場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を前記第1距離よりも短い第2距離に設定してもよい。
【0010】
上記によれば、仮想空間の拡大時には左目用仮想カメラと右目用仮想カメラとの間隔を狭くすることで、左目用画像および右目用画像の視差を小さくすることができる。
【0011】
また、前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角に連続的に変化させることが可能であってもよい。前記視差設定手段は、前記仮想カメラの画角が前記第1画角から前記第2画角に連続的に変化する場合に、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を連続的に短くしてもよい。
【0012】
上記によれば、仮想空間の一部を連続的に拡大することに応じて、左目用仮想カメラと右目用仮想カメラとの間の距離を連続的に短くすることで、急な立体感の変化を生じさせないようにすることができ、VR酔いの可能性を低減することができる。
【0013】
また、前記視差設定手段は、前記仮想カメラの画角の変化に応じて、前記左目用仮想カメラと前記右目用仮想カメラとの間の仮想的な距離を線形的に変化させてもよい。
【0014】
上記によれば、仮想カメラの画角の変化に応じて前記左目用仮想カメラと前記右目用仮想カメラとの間の距離を線形的に変化させることができ、ユーザにとって違和感のないように立体感を弱めることができる。
【0015】
また、前記視差設定手段は、前記仮想カメラの画角が前記第2画角に設定されている場合、前記第2の視差を実質的にゼロに設定してもよい。
【0016】
上記によれば、仮想空間の一部が最大に拡大される場合に、平面的な画像を表示することができる。これにより、VR酔いの可能性を低減することができる。
【0017】
また、前記画角設定手段は、さらに前記仮想カメラの画角を、前記第1画角よりも小さく、かつ、前記第2画角よりも大きい第3画角に設定してもよい。前記視差設定手段は、さらに前記仮想カメラの画角が前記第3画角に設定されている場合、前記左目用画像および前記右目用画像の視差を、前記第1の視差よりも小さく、かつ、前記第2の視差よりも大きい第3の視差に設定してもよい。前記画像生成手段は、前記仮想カメラの画角が前記第3画角に設定されている場合、前記仮想空間の一部を拡大した画像であって、互いに前記第3の視差を有する前記左目用画像および前記右目用画像を生成してもよい。
【0018】
上記によれば、仮想カメラの画角を第1画角と第2画角の間の第3画角に設定し、仮想空間の一部を拡大することができる。
【0019】
また、前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角の範囲で小さくしてもよい。前記画像生成手段は、前記仮想カメラの画角が小さくされることに応じて、前記仮想空間の一部の拡大率を高くして前記左目用画像および前記右目用画像を生成してもよい。前記視差設定手段は、前記拡大率が高くなることに応じて、前記左目用画像および前記右目用画像の視差を小さくしてもよい。
【0020】
上記によれば、仮想空間の拡大率が高くなることに応じて左目用画像および右目用画像の視差を小さくすることができ、拡大時のVR酔いの可能性を低減することができる。
【0021】
また、前記ゴーグル装置は、前記左目用画像および前記右目用画像をユーザの左目および右目にそれぞれ視認させるためのレンズを備えてもよい。前記第1画角は、前記レンズを用いた前記ユーザの視野角に設定されてもよい。
【0022】
上記によれば、仮想空間を拡大表示していないときには、ユーザの視野角と仮想カメラの画角を一致させることができ、違和感のないVR空間の画像をユーザに視認させることができる。
【0023】
また、前記画像表示システムは、前記仮想空間に所定の仮想オブジェクトを配置するオブジェクト配置手段をさらに備えてもよい。前記表示制御手段は、前記仮想カメラの画角が前記第1画角に設定されている場合、第1の大きさの前記所定のオブジェクトの画像を含む前記左目用画像および前記右目用画像を生成し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記第1の大きさよりも大きな第2の大きさの前記所定のオブジェクトの画像を含む前記左目用画像および前記右目用画像を生成してもよい。
【0024】
上記によれば、仮想空間内の所定のオブジェクトを拡大表示することができるとともに、拡大時のVR酔いの可能性を低減することができる。
【0025】
また、前記仮想カメラの画角が前記第1画角に設定されるときと、前記第2画角に設定されるときとで、前記仮想カメラの前記仮想空間における位置は同じであってもよい。
【0026】
上記によれば、仮想カメラの位置を維持したまま仮想カメラの画角を変更することで、仮想空間の一部を拡大することができる。これにより、仮想空間の一部を拡大するとともに、拡大時のVR酔いの可能性を低減することができる。
【0027】
また、前記画像表示システムは、前記ゴーグル装置の姿勢を検出する検出手段と、前記ゴーグル装置の姿勢に基づいて、前記仮想カメラの姿勢を制御する仮想カメラ姿勢制御手段と、前記ゴーグル装置の姿勢の変化に対する前記仮想カメラの姿勢の変化の度合いを設定する変化設定手段と、をさらに備えてもよい。前記仮想カメラ姿勢制御手段は、前記仮想カメラの画角が前記第2画角に設定されている場合において、前記ゴーグル装置の姿勢が変化した場合、前記変化設定手段によって設定された変化の度合いで前記ゴーグル装置の姿勢に近づくように、前記仮想カメラの姿勢を制御してもよい。
【0028】
上記によれば、仮想空間の一部を拡大表示している場合に、ゴーグル装置の姿勢が変化したときに、ゴーグル装置の姿勢に設定された度合いで近づくように仮想カメラの姿勢を変化させることができる。これにより、ゴーグル装置の姿勢が変化した場合でも、仮想カメラVCの姿勢の変化を軽減することができ、例えば手振れによる仮想空間の揺れを防止することができる。このためVR酔いの可能性を低減することができる。
【0029】
また、前記変化設定手段は、前記仮想カメラの画角が前記第2画角に設定されている場合に、前記ゴーグル装置の姿勢の変化に対する前記仮想カメラの姿勢の変化の度合いを、前記仮想カメラの画角が前記第1画角に設定された場合よりも小さく設定してもよい。
【0030】
上記によれば、仮想空間の一部を拡大している場合には、通常時よりも仮想カメラの姿勢の変化の度合いが小さくなるため、仮想空間の一部を拡大表示するときのVR酔いの可能性を低減することができる。
【0031】
また、前記画像表示システムは、前記ゴーグル装置の姿勢を検出する検出手段と、前記ゴーグル装置の姿勢に基づいて、前記仮想カメラの姿勢を制御する仮想カメラ姿勢制御手段と、をさらに備えてもよい。前記仮想カメラ姿勢制御手段は、前記仮想カメラの画角が前記第1画角に設定されている場合、前記ゴーグル装置の姿勢が変化したときに、当該変化後のゴーグル装置の姿勢に応じて前記仮想カメラの姿勢を制御し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記ゴーグル装置の姿勢が変化したときに、前記仮想カメラの姿勢の変化を軽減するための補正処理を行い、当該補正処理に応じて前記仮想カメラの姿勢を制御してもよい。
【0032】
上記によれば、通常時は、補正処理は行われずゴーグル装置の姿勢が変化したときに変化後のゴーグル装置の姿勢に応じて仮想カメラの姿勢が制御される。一方、拡大時には、仮想カメラの姿勢の変化を軽減するための補正処理が行われる。このため、通常時は、ユーザの動きと一致するように仮想カメラの姿勢を制御してVR酔いの可能性を低減することができる。一方、拡大時は、仮想カメラの姿勢の変化を軽減することで、例えば手振れによる仮想空間の揺れを防止することができ、VR酔いの可能性を低減することができる。
【0033】
また、前記画像生成手段は、前記仮想カメラの画角が前記第1画角に設定されている場合、前記仮想空間の一部を表す第1左目用画像および第1右目用画像を生成し、前記仮想カメラの画角が前記第2画角に設定されている場合、前記仮想空間の一部を拡大した第2左目用画像および第2右目用画像を生成してもよい。前記表示制御手段は、前記仮想カメラの画角が前記第1画角に設定されている場合、前記第1左目用画像および前記第1右目用画像のそれぞれを第1の大きさの表示領域に表示させ、前記仮想カメラの画角が前記第2画角に設定されている場合、前記第2左目用画像および前記第2右目用画像のそれぞれを前記第1の大きさよりも小さい第2の大きさの表示領域に表示させてもよい。
【0034】
上記によれば、前記仮想空間の一部を拡大した左目用画像および右目用画像の表示領域を小さくすることで、VR酔いの可能性を低減することができる。
【0035】
また、前記第2の大きさの表示領域は、前記第1の大きさの表示領域とほぼ相似形の領域であってもよい。
【0036】
上記によれば、仮想カメラの画角が第2画角に設定されている場合も、第1画角に設定されている場合と略相似形の左目用画像および右目用画像を表示するため、仮想空間の一部を拡大表示する場合に、ユーザに違和感を与えないようにすることができ、VR酔いの可能性を低減することができる。
【0037】
また、前記第2の大きさの表示領域は、前記第1の大きさの表示領域の少なくとも外周部分を除いた中央部分の領域であってもよい。
【0038】
上記によれば、仮想空間の一部を拡大表示する場合に、外周部分を除いて、左目用画像および右目用画像の中心部分が表示される。ゴーグル装置のレンズを介して左目用画像および右目用画像を見ると、外周部分ほど違和感のある見え方となるが、外周部分が除かれるため、VR酔いの可能性を低減することができる。
【0039】
また、前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角まで連続的に変化させることが可能であってもよい。前記表示制御手段は、前記仮想カメラの画角が前記第1画角から前記第2画角まで連続的に変化されることに応じて、前記仮想空間の一部を拡大した左目用画像および右目用画像の表示領域を連続的に小さくしてもよい。
【0040】
上記によれば、仮想空間の一部を連続的に拡大することに応じて、左目用画像および右目用画像の表示領域を連続的に小さくすることで、仮想空間の表示に急な変化を生じさせないようにすることができ、VR酔いの可能性を低減することができる。
【0041】
また、前記画角設定手段は、前記仮想カメラの画角を前記第1画角から前記第2画角まで連続的に変化させることが可能であってもよい。前記表示制御手段は、前記仮想カメラの画角が前記第1画角から前記第2画角まで連続的に変化されることに応じて、前記仮想空間の一部を拡大した左目用画像および右目用画像の表示領域を略相似形に変化させるとともに、当該表示領域を連続的に小さくしてもよい。
【0042】
上記によれば、仮想カメラの画角が第1画角から第2画角まで連続的に変化する間、略相似形の左目用画像および右目用画像が表示されるため、仮想空間の一部を連続的に拡大表示する場合に、ユーザに違和感を与えないようにすることができるとともに、仮想空間の表示に急な変化を生じさせないようにすることができる。これによりVR酔いの可能性を低減することができる。
【0043】
また、別の発明の画像表示システムは、ゴーグル装置と、仮想空間に仮想カメラを配置する仮想カメラ配置手段と、前記仮想カメラに基づいて、前記仮想空間の画像であって、互いに視差を有する左目用画像および右目用画像を生成する画像生成手段と、前記左目用画像および前記右目用画像を前記ゴーグル装置の表示部に表示させる表示制御手段と、前記仮想空間の一部を通常よりも拡大表示することを設定する拡大設定手段と、前記拡大設定手段によって前記拡大表示の設定がされていない場合、前記左目用画像および前記右目用画像の視差を第1の視差に設定し、前記拡大設定手段によって前記拡大表示の設定がされている場合、前記左目用画像および前記右目用画像の視差を前記第1の視差よりも小さい第2の視差に設定する視差設定手段と、を備える。前記画像生成手段は、前記拡大表示の設定がされていない場合、互いに前記第1の視差を有する前記左目用画像および前記右目用画像を生成し、前記拡大表示の設定がされている場合、前記仮想空間の一部を拡大した画像であって、互いに前記第2の視差を有する前記左目用画像および前記右目用画像をそれぞれ生成する。
【0044】
また、他の発明は、ゴーグル装置の表示部に画像を表示させる装置のプロセッサを、上記各手段として機能させる画像表示プログラムであってもよい。また、他の発明は、ゴーグル装置の表示部に画像を表示させる画像表示装置であって、上記各手段を備える装置であってもよい。また、他の発明は、ゴーグル装置を含む上記画像表示システムにおいて行われる画像表示方法であってもよい。
【発明の効果】
【0045】
本発明によれば、仮想空間の一部を拡大表示することができるとともに、VR酔いの可能性を低減することができる。
【図面の簡単な説明】
【0046】
【
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
【
図5】本体装置2の内部構成の一例を示すブロック図
【
図6】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
【
図7】ゴーグル装置150の外観の一例を示す斜視図
【
図8】本体装置2をゴーグル装置150に装着する状態の一例を示す正面図
【
図10】本体装置2を含むゴーグル装置150に、カメラ装置200が装着される様子の一例を示す図
【
図11】画像表示システム100に表示されている画像を見るユーザの様子の一例を示す図
【
図12】本体装置2において構築される仮想空間の一例を示す図
【
図13】別のシーンにおける本体装置2のディスプレイ12に表示される画像の一例を示す図
【
図14】
図13に示される左目用画像および右目用画像を、左目用レンズ153Lおよび右目用レンズ153Rを介してそれぞれ視認したときの一例を示す図
【
図15】通常時の左仮想カメラVCLの画角と、その画角で生成される左目用画像の一例を示す図
【
図16】ズームイン時の左仮想カメラVCLの画角と、その画角で生成される左目用画像の一例を示す図
【
図17】仮想カメラVCの画角が第1画角よりも小さく第2画角よりも大きな第3画角Aに設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図
【
図18】仮想カメラVCの画角が第3画角Aよりも小さく第2画角よりも大きな第3画角Bに設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図
【
図19】仮想カメラVCの画角が第3画角Bよりも小さく第2画角よりも大きな第3画角Cに設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図
【
図20】仮想カメラVCの画角が第2画角に設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図
【
図21A】レンズ153を用いたユーザの視野角の一例を示す図
【
図21B】仮想カメラの画角を第2画角に変更した場合に仮想カメラの画角に沿った方向とユーザの視線方向との関係の一例を示す図
【
図22】仮想カメラVCの画角と、左目用画像及び右目用画像の表示面積との関係の一例を示す図
【
図23】仮想カメラVCの画角と、カメラ間距離dとの関係の一例を示す図
【
図24】手振れ補正が行われない場合の本体装置2の姿勢の変化と仮想カメラVCの姿勢の変化との一例を示す図
【
図25】手振れ補正が行われる場合の本体装置2の姿勢の変化と仮想カメラVCの姿勢の変化との一例を示す図
【
図26】本体装置2のメモリ(主にDRAM85)に記憶されるデータの一例を示す図
【
図27】本体装置2のプロセッサ81において行われる処理の一例を示すフローチャート
【
図28】ステップS107の拡大画像表示処理の一例を示すフローチャート
【発明を実施するための形態】
【0047】
以下、図面を参照して、本実施形態の画像表示システム100(
図11参照)について説明する。本実施形態の画像表示システム100は、ユーザにバーチャルリアリティ(VR)を体験させるシステムである。例えば、画像表示システム100を用いて、VR空間において所定のゲームが行われてもよい。まず、画像表示システム100に含まれるゲームシステム1(情報処理システムの一例)について説明する。
【0048】
(ゲームシステム1の説明)
ゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態の画像表示システム100について説明する。
【0049】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0050】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0051】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0052】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0053】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0054】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0055】
図4は、左コントローラ3の一例を示す六面図である。
【0056】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。
【0057】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。また、左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0058】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0059】
なお、右コントローラ4も左コントローラ3と同様にアナログスティック、複数のボタンを備える。右コントローラ4の説明については省略する。
【0060】
図5は、本体装置2の内部構成の一例を示すブロック図である。
【0061】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0062】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0063】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0064】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0065】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0066】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0067】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。
【0068】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0069】
また、本体装置2は、慣性センサとして加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、
図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0070】
また、本体装置2は、慣性センサとして角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、
図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0071】
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
【0072】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0073】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0074】
図6は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図5で示しているため
図6では省略している。
【0075】
左コントローラ3は、上述した各ボタン、アナログスティック32に加えて、本体装置2との間で通信を行う通信制御部101を備える。
図6に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0076】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0077】
また、左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、
図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、
図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0078】
通信制御部101は、各入力部(具体的には、各ボタン、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0079】
また、左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0080】
右コントローラ4も左コントローラ3と同様に通信制御部111、メモリ112、加速度センサ114、角速度センサ115、及び、電力供給部118を備える。右コントローラ4の説明については省略する。
【0081】
(画像表示システム100の説明)
次に、
図7~
図11を参照して、画像表示システム100の一例について説明する。本実施形態の画像表示システム100は、本体装置2が装着されたゴーグル装置150(
図7)と、カメラ装置200(
図9)とにより構成される。以下、ゴーグル装置150およびカメラ装置200のそれぞれについて説明し、ゴーグル装置150およびカメラ装置200によって構成される画像表示システム100について説明する。
【0082】
図7は、ゴーグル装置150の外観の一例を示す斜視図である。
図8は、本体装置2をゴーグル装置150に装着する状態の一例を示す正面図である。
図9は、カメラ装置200の外観の一例を示す斜視図である。
図10は、本体装置2を含むゴーグル装置150に、カメラ装置200が装着される様子の一例を示す図である。
図11は、画像表示システム100に表示されている画像を見るユーザの様子の一例を示す図である。
【0083】
図7に示すように、ゴーグル装置150は、ゴーグル本体151、レンズ枠部材152、および、レンズ153(左目用レンズ153Lおよび右目用レンズ153R)を有している。ここで、画像表示システムを構成する装置の一例であるゴーグル装置150は、ユーザの左右の目を覆うように当該ユーザの顔にフィットして着用され、外光の少なくとも一部を遮る機能および一対のレンズによってユーザの立体視をサポートする機能を有する。
【0084】
ゴーグル本体151は、本体装置2の前面、背面、上面、および下面と接することによって本体装置2を着脱自在に固定する装着部を有している。ゴーグル本体151は、本体装置2の前面(ディスプレイ12が設けられている面)の一部と接面される前面当接部と、本体装置2の背面と接面される背面当接部と、本体装置2の上面と接面される上面当接部と、本体装置2の下面と接面される下面当接部とを有する。当該前面当接部、背面当接部、上面当接部、および下面当接部に囲まれて形成された空隙によって、装着部が形成される。装着部は、本体装置2の左側面側または右側面側から装着可能とするために、左側面及び/又は右側面が開口している。そして、
図8に示すように、例えば、本体装置2を左側面の開口から装着することで、本体装置2を含むゴーグル装置150が構成される。また、ゴーグル本体151の前面当接部には、本体装置2が装着された際にディスプレイ12の表示画像(左目用画像および右目用画像)をユーザが視認可能にするための左右の開口部が形成されている。
【0085】
ゴーグル本体151の前面当接部の手前側(
図7の紙面の手前側)には、レンズ枠部材152が固定される。レンズ枠部材152は、一対の左目用レンズ153Lおよび右目用レンズ153Rを固定するための部材である。レンズ枠部材152は、左右の開口部を有している。このレンズ枠部材152の左右の開口部の位置および大きさは、ゴーグル本体151の前面当接部に設けられた左右の開口部と位置および大きさと略一致する。このレンズ枠部材152の左右の開口部に、左目用レンズ153Lおよび右目用レンズ153Rがそれぞれ嵌合されて固定される。左目用レンズ153Lおよび右目用レンズ153Rの中心の間の距離は、平均的なユーザの左右の目の間の距離に設定される。
【0086】
また、ゴーグル装置150には、ユーザの鼻を収容するための凹部154が設けられる。ユーザが鼻を凹部154に収容するようにゴーグル装置150を着用した場合、ユーザの左目の正面には左目用レンズ153Lが位置し、ユーザの右目の正面には右目用レンズ153Rが位置する。
【0087】
図8に示すように、ゴーグル本体151に本体装置2が装着された場合、ディスプレイ12の左表示領域(破線で囲まれた領域)に表示された左目用画像IMLは、左目用レンズ153Lを介してユーザの左目に視認される。左目用画像は、一部(右目用画像に近い部分)が直線となった略円形状の画像である。左目用レンズ153Lは、円形状であり、左目用画像IMLをユーザの左目に視認させるようにする。ユーザの左目は、ゴーグル本体151の左側面、上面、下面、及び、左右を仕切る仕切り面(図示せず)により囲まれる。このため、ユーザの左目には、左目用画像が視認される一方、周囲の環境や右目用画像は視認され難い。
【0088】
また、ディスプレイ12の右表示領域(破線で囲まれた領域)に表示された右目用画像IMRは、右目用レンズ153Rを介してユーザの右目に視認される。右目用画像は、一部(左目用画像に近い部分)が直線となった略円形状の画像である。右目用レンズ153Rは、円形状であり、右目用画像IMRをユーザの右目に視認させるようにする。ユーザの右目は、ゴーグル本体151の右側面、上面、下面、及び、仕切り面により囲まれる。このため、ユーザの右目には、右目用画像が視認される一方、周囲の環境や左目用画像は視認され難い。
【0089】
なお、左目用画像および右目用画像の形状は、円であってもよいし、楕円であってもよいし、円または楕円の一部が変形した略円形状または略楕円形状であってもよいし、多角形や星型等であってもよい。
【0090】
また、
図9に示すように、画像表示システム100は、カメラ装置200を含む。カメラ装置200は、カメラ本体部201と、筒状部205とを含む。カメラ装置200は、全体として現実のカメラのような形状を有する。カメラ装置200は、実際の撮像素子や光学レンズを有さない擬似的なカメラである。筒状部205は、カメラ装置200の前面側(
図9のz軸正方向側)に設けられる。筒状部205は、略円筒状の部材である。筒状部205の中心軸方向は、ユーザが画像表示システム100を着用した場合におけるユーザの視線方向と略一致する。すなわち、ユーザが画像表示システム100を着用した場合、筒状部205は、画像表示システム100の前面からユーザの視線方向に延びるように形成される。また、筒状部205は、ロール方向(筒状部205の中心軸周り)に回転可能に構成される。例えば、筒状部205は、
図9に示す通常状態から、ロール方向に90度回転可能に構成される。筒状部205は、例えば現実のカメラの望遠ズームレンズを模したものである。
【0091】
筒状部205は、先端部分に開口206を有する。開口206には、上記左コントローラ3(又は右コントローラ4でもよい)が挿入される。例えば、左コントローラ3は、開口206に挿入されて、筒状部205のロール方向の回転角を検出する。開口206は、筒状部205が回転されていない場合に、中央が左右よりも上方(
図9のy軸方向)に高い山型の形状を有する。筒状部205が回転されていない場合に左コントローラ3のハウジング31の主面が上向きになるようにして、左コントローラ3が、長手方向(
図4のy軸方向)に開口206に挿入される。開口206が山型の形状を有することで、主面方向に突出するアナログスティック32を有する左コントローラ3を開口206に挿入することができる。また、筒状部205がロール方向に回動された場合、開口206の内部に挿入された左コントローラ3もy軸回りに回転するが、アナログスティック32と山型の部分とが接触することによって、挿入された左コントローラ3を固定することができ、開口206の内部で左コントローラ3が動くことを防止することができる。
【0092】
図10の上側の図では、筒状部205と反対側のカメラ装置200が示されている。
図10に示すように、カメラ本体部201は、上面部202と、右側面部203と、左側面部204とを含む。これら上面部202、右側面部203、左側面部204によって形成される凹部に、本体装置2が装着されたゴーグル装置150(の一部)が嵌合される。例えば、少なくとも本体装置2に対応するゴーグル装置150の部分が、上面部202、右側面部203、左側面部204によって形成される凹部に嵌合される。これにより、画像表示システム100が構成される。
【0093】
図11に示すように、ユーザは、ゴーグル装置150及びカメラ装置200を含む画像表示システム100を把持して、本体装置2のディスプレイ12に表示された左目用画像および右目用画像を見る。具体的には、本体装置2は、仮想空間を定義し、左仮想カメラおよび右仮想カメラに基づいて、互いに視差を有する左目用画像および右目用画像を生成する。本体装置2は、生成した左目用画像および右目用画像をディスプレイ12の左表示領域および右表示領域にそれぞれ表示させる。これにより、ユーザは、立体視画像を視認することができ、自身が仮想空間に存在するかのようなバーチャルリアリティ(VR)を体験することができる。
【0094】
(仮想空間の表示)
次に、本実施形態の画像表示システム100において表示される画像について説明する。本実施形態の画像表示システム100は、ユーザにVRを体験させるとともに、VR空間の一部を拡大するズームイン(クローズアップ)機能を提供する。以下では、まず、本体装置2によって定義される仮想空間について説明した後、VR空間におけるズームイン機能について説明する。
【0095】
図12は、本体装置2において構築される仮想空間の一例を示す図である。仮想空間VSには、XYZ直交座標系が設定される。X軸は仮想空間VSの横方向の軸である。Y軸は、仮想空間VSの高さ方向の軸である。Z軸は、X軸およびY軸に垂直な軸であり、仮想空間の奥行き方向の軸である。
【0096】
仮想空間VSには、左仮想カメラVCLと、右仮想カメラVCRとが配置される。左仮想カメラVCLおよび右仮想カメラVCRの高さは、平均的な人間の目線の高さに設定されてもよい。また、左仮想カメラVCLおよび右仮想カメラVCRの視線方向は、同じ方向に設定される。なお、以下では、左仮想カメラVCLと右仮想カメラVCRとを区別しない場合は、左仮想カメラVCLおよび右仮想カメラVCRを「仮想カメラVC」と総称する場合がある。
【0097】
仮想カメラVCは、実空間における画像表示システム100(ゴーグル装置150)の姿勢と一致するように、その姿勢が制御される。例えば、本体装置2は、角速度センサ90及び/又は加速度センサ89が検出する角速度値及び/又は加速度値に基づいて、本体装置2の姿勢を算出する。具体的には、本体装置2は、角速度センサ90からの角速度値を積分することで、初期化時からの自機の姿勢の変化を算出する。本体装置2は、算出した姿勢に応じて、仮想空間の左仮想カメラVCLおよび右仮想カメラVCRの姿勢を制御する。例えば、本体装置2が、ディスプレイ12に垂直な直線と地面とが並行になる姿勢の場合には、仮想カメラVCは仮想空間のXZ平面と平行な方向を向く。この姿勢からユーザがゴーグル装置150(本体装置2)をヨー方向(左右方向)に90度回転させると、仮想カメラVCも仮想空間内でヨー方向(左右方向)に90度回転する。
【0098】
また、仮想空間VSには、様々な仮想オブジェクトが配置される。配置される仮想オブジェクトの種類は、例えばゲームのシーンによって異なる。例えば、
図12に示す例では、仮想空間VSには、キャラクタオブジェクト300と、テーブルオブジェクト302と、テーブルオブジェクト上の円柱オブジェクト301とが配置されている。ユーザは、左仮想カメラVCLおよび右仮想カメラVCRから仮想空間を見た左目用画像および右目用画像を、左目及び右目でそれぞれ視認することで、仮想空間VSの立体視画像を視認する。なお、本明細書において「用」という用語はそれ専用でのみ用いられることを意味するものではなく、例えば、左目用画像又は右目用画像を両目で視認させる場合があってもよい。
【0099】
ここで、通常時(すなわち、ズームインしないとき)におけるディスプレイ12に表示される左目用画像および右目用画像について説明する。
図13は、別のシーンにおける本体装置2のディスプレイ12に表示される画像の一例を示す図である。
図13では、例えば、仮想的な部屋のシーンが表示されている。
【0100】
図13に示すように、破線で囲まれた略円形状の左表示領域には、仮想空間を左仮想カメラVCLから見た左目用画像が表示される。また、破線で囲まれた略円形状の右表示領域には、仮想空間を右仮想カメラVCRから見た右目用画像が表示される。左表示領域および右表示領域は、同じ大きさの領域であってディスプレイ12の左右方向の中心に線対称の形状である。なお、左表示領域および右表示領域以外の領域(
図13のハッチングされた領域)は、レンズ153を介してユーザが見た場合、視認できない又は視認困難な領域である。この視認できない又は視認困難な領域を、以下では「非視認領域」ということがある。非視認領域には、例えば黒色の画像が表示される。また、左表示領域および右表示領域の輪郭(非視認領域との境界)は、ぼかし処理によってその境界が不明瞭に表示される。
【0101】
左目用画像および右目用画像には、仮想オブジェクトの画像として、絨毯400、窓401、及び、天井402の画像が含まれる。ディスプレイ12の左表示領域に表示される左目用画像は、左目用レンズ153Lを介してユーザの左目に視認されることを考慮して、補正される。すなわち、左目用画像としてディスプレイ12に表示される際には、左目用レンズ153Lの光学的な特性(レンズのディストーション(歪曲収差))を考慮して、左目用画像が全体的に歪められる。
【0102】
例えば、絨毯400は、長方形のオブジェクトとして仮想空間に配置される。また、窓401は、仮想空間のX軸に並行な長辺と、Y軸に並行な短辺とを含む長方形のオブジェクトである。また、天井402は、仮想空間においては直線状の模様が描かれたオブジェクトである。例えば、天井402の模様は、仮想空間のZ軸に並行な直線を含む。仮想カメラVCに基づいて生成される画像では、左目用レンズ153Lの特性に応じた歪みを加えない場合は、各オブジェクトの直線部分は直線となる。
【0103】
本体装置2は、左目用画像を生成する際に、左仮想カメラVCLから見える仮想空間をそのまま描画するのではなく、左目用レンズ153Lの特性に応じた歪みを加えて、左目用画像を生成する。このため、ディスプレイ12に表示される左目用画像は全体的に歪んだ形状となり、各オブジェクトは歪んだ形状となる。例えば、左目用画像における絨毯400の画像は、左目用画像の外周部分に近いほど、より歪んだ形状となっている。また、窓401についても、左目用画像の外周部分に近いほど、より歪んだ形状となっている。また、天井402の模様も、左目用画像においては直線というよりは曲線状になっており、外周部分に近いほど歪みが大きい。
【0104】
このように、左目用画像の中心部分よりも外周部分の方が、歪み度合いが大きい。これは、左目用レンズ153Lを介して左目用画像を見た場合、画像の中心部分よりも外周部分の方が歪むからである。本体装置2は、このような左目用レンズ153Lの特性を考慮して、画像の外周部分ほど歪みが大きくなるように、画像全体を歪ませる。
【0105】
右目用画像についても、左目用画像と同様に、右目用レンズ153Rの特性に応じた歪みが加えられた画像である。なお、左目用画像と右目用画像とでは互いに視差がある。例えば、左目用画像と右目用画像とを比較すると、窓401は、左目用画像よりも右目用画像の方が左側に寄っている。
【0106】
以下では、このようなレンズ153の特性を考慮して画像に歪みを加える処理を、「歪み補正」という場合がある。
【0107】
ユーザは、
図13に示される左目用画像および右目用画像を、左目用レンズ153Lおよび右目用レンズ153Rを介して視認する。ユーザがこれらの画像を視認する場合、各画像に加えられた上記歪みがレンズ153によって打ち消され、ユーザにとって自然な画像となる。
【0108】
図14は、
図13に示される左目用画像および右目用画像を、左目用レンズ153Lおよび右目用レンズ153Rを介してそれぞれ視認したときの一例を示す図である。
【0109】
図14に示すように、レンズ153を介して視認される左目用画像および右目用画像は、
図13に示されるような全体が歪んだ画像ではなく、自然な画像である。例えば、
図13では各オブジェクトの直線部分は曲線として表示されていたが、レンズ153を介した場合は各オブジェクトの直線部分は、直線として視認される。
【0110】
このように、仮想カメラVCから仮想空間を見た画像をそのまま表示するのではなく、レンズ153の特性に応じた歪み補正が行われた画像がディスプレイ12の表示領域に表示される。そして、ディスプレイ12に表示された左目用画像および右目用画像をユーザがレンズ153を介して見た場合、各画像の歪みがレンズ153によって打ち消される。このため、ユーザがレンズ153を介して左目用画像および右目用画像を見た場合、仮想空間の自然な立体視画像として認識し、仮想空間に存在する仮想オブジェクトが現実の空間にあるかのような感覚になる。例えば、仮想空間において仮想カメラVCから5m先に仮想オブジェクトが配置されている場合、ユーザは、実際に5m先にその仮想オブジェクトが存在するような感覚になる。また、ユーザは、ゴーグル装置150の姿勢を変化させることで左仮想カメラVCLおよび右仮想カメラVCRの姿勢を変化させ、仮想空間の様々な方向を見渡すことができる。
【0111】
(仮想空間の拡大表示)
本実施形態の画像表示システム100では、ユーザは、筒状部205を回転させることで仮想空間の一部を拡大することができる。具体的には、筒状部205が回転されることで、筒状部205の内部に設けられた左コントローラ3(右コントローラ4でもよい)が回転する。本体装置2は、左コントローラ3からの操作データに基づいて、左コントローラ3の姿勢を取得し、取得した左コントローラ3の姿勢に応じて、左仮想カメラVCLおよび右仮想カメラVCRの画角を狭くする。これにより、仮想空間の一部が拡大(ズームイン)される。
【0112】
図15は、通常時の左仮想カメラVCLの画角と、その画角で生成される左目用画像の一例を示す図である。
図16は、ズームイン時の左仮想カメラVCLの画角と、その画角で生成される左目用画像の一例を示す図である。
【0113】
図15及び
図16では、仮想空間を上方から見た図が示されている。なお、
図15及び
図16の右側の左目用画像では、説明のため上述した歪みを省略している。
【0114】
図15に示すように、通常は、左仮想カメラVCLおよび右仮想カメラVCRの画角は、第1画角(例えば、90度)に設定される。また、通常は、左仮想カメラVCLと右仮想カメラVCRとの間の距離(カメラ間距離)dは、平均的なユーザの左右の目の間隔に設定される。
【0115】
左仮想カメラVCLの画角が第1画角に設定されている場合、キャラクタオブジェクト300と、円柱オブジェクト301と、テーブルオブジェクト302とが、左仮想カメラVCLの画角内に含まれる。第1画角に含まれる仮想空間の画像が左目用画像として生成される。この場合、例えば、
図15の右側の図に示されるような左目用画像が生成される。具体的には、本体装置2は、左仮想カメラVCLの位置から第1画角内に含まれる仮想空間を射影変換(透視投影)して、予め定められた大きさの左目用画像を生成する。なお、左目用画像が生成される際には、上述した歪み補正が行われる。また、右目用画像についても同様である。
【0116】
ユーザが筒状部205を回転させた場合、左仮想カメラVCLおよび右仮想カメラVCRの画角が狭くなる。例えば、ユーザが筒状部205を最大限回転させた場合、左仮想カメラVCLおよび右仮想カメラVCRの画角は、第2画角(例えば、30度)に設定される。仮想カメラVCの画角が第2画角に設定されている場合、円柱オブジェクト301の全体と、テーブルオブジェクト302の一部とが仮想カメラVCの画角内に含まれるようになる。仮想カメラVCの画角内に含まれる仮想空間の画像であって、予め定められた大きさの画像が生成される。すなわち、仮想カメラVCの画角が第2画角に設定された場合には、仮想カメラVCの画角が第1画角に設定されていたときに含まれていた仮想空間の一部を拡大した拡大左目用画像が生成される。例えば、
図16に示すように、
図15のときよりも拡大された円柱オブジェクト301の全体の画像と、拡大されたテーブルオブジェクト302の一部の画像とを含む左目用画像が生成される。
【0117】
また、仮想カメラVCの画角が第2画角に設定されている場合、カメラ間距離dは、仮想カメラVCの画角が第1画角に設定されているときよりも小さくなる。すなわち、仮想カメラVCの画角が第2画角に設定されている場合、左目用画像と右目用画像との視差は、仮想カメラVCの画角が第1画角に設定されている場合よりも、小さくなる。本実施形態では、仮想カメラVCの画角が第2画角に設定されている場合、カメラ間距離dは「0」に設定され、左目用画像と右目用画像との視差はゼロになる。
【0118】
本実施形態では、仮想カメラVCの画角は、筒状部205(左コントローラ3)の回転角に応じて、第1画角(例えば90度)から第2画角(例えば30度)まで連続的に変化する。また、カメラ間距離dは、筒状部205(左コントローラ3)の回転角に応じて、第1画角から第2画角まで連続的に変化する。
【0119】
また、本実施形態では、仮想カメラVCの画角が第1画角から第2画角まで連続的に変化する間、仮想空間の一部が連続的に拡大されるとともに、左目用画像および右目用画像の表示領域が連続的に小さくなる。以下では、
図17から
図20を参照して、仮想カメラVCの画角が第1画角から第2画角まで変化するときのディスプレイ12に表示される左目用画像および右目用画像について説明する。
【0120】
図17は、仮想カメラVCの画角が第1画角よりも小さく第2画角よりも大きな第3画角Aに設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図である。
図18は、仮想カメラVCの画角が第3画角Aよりも小さく第2画角よりも大きな第3画角Bに設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図である。
図19は、仮想カメラVCの画角が第3画角Bよりも小さく第2画角よりも大きな第3画角Cに設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図である。
図20は、仮想カメラVCの画角が第2画角に設定されているときのディスプレイ12に表示される左目用画像および右目用画像の一例を示す図である。
【0121】
図17に示すように、仮想カメラVCの画角が第3画角A(例えば50度)に設定されている場合、仮想空間の一部が拡大された画像が表示される。例えば、
図15では、キャラクタオブジェクト300と、円柱オブジェクト301と、テーブルオブジェクト302が表示され、円柱オブジェクト301が比較的小さく表示されていたが、
図17では、拡大された円柱オブジェクト301の全部と、拡大されたテーブルオブジェクト302の一部とが表示されている。すなわち、仮想カメラVCの画角が第3画角Aに設定されている場合、円柱オブジェクト301及びテーブルオブジェクト302の表示上の大きさは、仮想カメラVCの画角が第1画角に設定されている場合よりも大きい。仮想カメラVCの画角が第3画角A(例えば50度)に設定されている場合は、拡大された左目用画像および右目用画像の表示領域は、画角が第1画角に設定されているときの表示領域と同じ大きさである。また、左表示領域および右表示領域以外の非視認領域は、黒色で塗りつぶされる。左表示領域および右表示領域の輪郭(非視認領域との境界)は、ぼかし処理によってその境界が不明瞭に表示される。
【0122】
図18に示すように、仮想カメラVCの画角が第3画角B(例えば45度)に設定される場合、仮想空間の一部がさらに拡大される。例えば、
図18では、円柱オブジェクト301およびテーブルオブジェクト302が
図17のときよりもさらに拡大表示される。この場合、拡大された左目用画像および右目用画像の表示領域は、
図17のときよりも小さくなる。
図18では、仮想カメラVCの画角が第1画角に設定されているときの左表示領域および右表示領域が破線で示され、仮想カメラVCの画角が第3画角Bに設定されているときの左表示領域および右表示領域が実線で表示されている。この破線と実線とで囲まれる領域が、非視認領域と同様に黒色で塗りつぶされることにより、仮想空間の一部が拡大された左目用画像および右目用画像の表示領域が小さくなる。言い換えると、左目用画像および右目用画像の外周部分がカットされることで、これら画像の表示領域が縮小される。仮想空間の一部を拡大した左目用画像および右目用画像は、同じ大きさであって線対称の画像である。
【0123】
仮想カメラVCの画角が第1画角(90度)のときの左表示領域および右表示領域は略円形であるところ、仮想カメラVCの画角が第3画角B(45度)のときの左表示領域および右表示領域も略円形に近い形状であり、例えば略正12角形である。画角Bのときの左表示領域および右表示領域は、第1画角のときの左表示領域および右表示領域の外周部分を除いた領域である。また、左表示領域および右表示領域が縮小された場合、上述したぼかし処理は行われず、左表示領域および右表示領域の輪郭は明瞭となる。なお、仮想カメラVCの画角を小さくした場合でも、左表示領域および右表示領域の輪郭を不明瞭にしてもよい。
【0124】
また、
図19に示すように、仮想カメラVCの画角が第3画角C(例えば35度)に設定されると、仮想空間の一部がさらに拡大される。
図19の左目用画像および左目用画像におけるオブジェクト301、302は、
図18の左目用画像におけるオブジェクト301、302よりも大きく表示される。また、仮想空間の一部が拡大された左目用画像および右目用画像の表示領域は、
図18のときよりもさらに縮小される。すなわち、仮想カメラVCの画角が第3画角C(35度)に設定されているときの左表示領域および右表示領域は、仮想カメラVCの画角が第3画角B(45度)に設定されているときの左表示領域および右表示領域よりも小さい。言い換えると、仮想カメラVCの画角が第3画角Cに設定された場合、左目用画像および右目用画像の外周部分が、仮想カメラVCの画角が第3画角Bに設定されたときよりも大きくカットされる。第3画角Cのときの左表示領域および右表示領域の形状は、第3画角Bのときと同様に略正12角形である。仮想カメラVCの画角が第3画角Cに設定される場合も、仮想空間の一部を拡大した左目用画像および右目用画像は、同じ大きさであって線対称の画像である。
【0125】
また、
図20に示すように、仮想カメラVCの画角が第2画角(例えば30度)に設定されると、仮想空間の一部がさらに拡大される。
図20の左目用画像および左目用画像におけるオブジェクト301、302は、
図19の左目用画像におけるオブジェクト301、302よりも大きい。また、仮想空間の一部が拡大された左目用画像および右目用画像の表示領域は、
図19のときよりもさらに縮小される。すなわち、画角が第2画角(30度)に設定されているときの左表示領域および右表示領域は、画角が第3画角C(35度)に設定されているときの左表示領域および右表示領域よりも小さい。第2画角のときの左表示領域および右表示領域の形状は、第3画角Cのときと同様に略正12角形である。仮想カメラVCの画角が第2画角に設定される場合も、仮想空間の一部を拡大した左目用画像および右目用画像は、同じ大きさであって線対称の画像である。
【0126】
このように、本実施形態では、仮想カメラVCの画角を小さくすることによって仮想空間の一部を拡大(ズームイン)する。仮想カメラVCの画角が小さくなるほど、仮想空間の拡大率は大きくなり、左目用画像および右目用画像の表示領域は小さくなる。すなわち、仮想カメラVCの画角が小さくなるほど(仮想空間の一部が拡大されるほど)、左目用画像および右目用画像の外周部分は大きくカットされる。
【0127】
図17~
図20に示すように、上記歪み補正によって左目用画像および右目用画像の外周部分ほど歪みが大きく、また、後述するように、左目用画像および右目用画像の外周部分ほどユーザにとって違和感のある見え方になる。しかしながら、本実施形態では、左目用画像および右目用画像の外周部分がカットされるため、ユーザの違和感を軽減することができ、VR酔いの可能性を低減することができる。
【0128】
なお、仮想カメラVCの画角が第1画角に設定されるときの左目用画像および右目用画像の形状は略円形であり、仮想カメラVCの画角が第3画角B~第2画角に設定されるときの左目用画像および右目用画像の形状は略正12角形である。仮想カメラVCの画角が第1画角から第2画角に変化するまで、左目用画像および右目用画像の形状は略相似形であると言える。ここで、ズームイン時の左目用画像および右目用画像の形状は、略正12角形に限らない。例えば、ズームイン時の左目用画像および右目用画像の形状は、略正10角形や略正8角形、略正6角形、略正5角形でもよい。すなわち、本明細書において「略相似形」とは、完全に同じ形状に限らず、厳密には異なるが似たような形状を含む。
【0129】
ここで、仮想カメラVCの画角を第1画角から第2画角まで変更するときに、上記のように左目用画像および右目用画像の外周部分をカットせずに、表示領域の大きさを一定にすることも考えられる。しかしながら、左目用画像および右目用画像の表示領域の大きさを保ったまま仮想カメラVCの画角を小さくすると、VR酔いの原因になる可能性がある。
【0130】
具体的には、左仮想カメラVCLおよび右仮想カメラVCRの画角を小さくして、仮想空間の一部を拡大した場合、光学的に正しくない見た目となってしまい、VR酔いの原因になる場合がある。以下この理由について説明する。
【0131】
図21Aは、レンズ153を用いたユーザの視野角の一例を示す図である。
図21Bは、仮想カメラの画角を第2画角に変更した場合に仮想カメラの画角に沿った方向とユーザの視線方向との関係の一例を示す図である。
【0132】
図21Aに示すように、本実施形態の画像表示システム100では、ユーザがレンズ153を介してディスプレイ12をみる場合、ユーザの片目の視野角が例えば90度になるように調整されている。例えば左右方向に関して、ユーザの目の位置から左に45度の方向にレンズ153の左端があり、右に45度の方向にレンズ153の右端があり、上下方向に関して、ユーザの目の位置から上に45度の方向にレンズ153の上端があり、下に45度の方向にレンズ153の下端があるように調整される。通常時の仮想カメラVCの第1画角は、レンズ153を用いたユーザの視野角と一致する。人の片目の視野角は約90度~100度であるため、ユーザがゴーグル装置150のディスプレイ12を見た場合に、視野の殆どがカバーされる。
【0133】
図21Bに示すように、仮想カメラVCの画角(視野角)が例えば30度に設定された場合、仮想カメラVCから見た30度の範囲の画像が引き伸ばされてディスプレイ12に表示され、ユーザはその引き伸ばされた画像を見る。この仮想カメラVCから見た30度の範囲を90度の視野の範囲に拡大することによって、ユーザにとって正しくない見え方となる。
【0134】
具体的には、左目用画像および右目用画像の外周部分がカットされていない場合、例えば、仮想カメラVCから見て15度の方向にある仮想オブジェクトや線は、ユーザの目からは45度の方向に位置するように見える。すなわち、ゴーグル装置150を着用したユーザの視点から、引き伸ばされた左目用画像および右目用画像の端部を見たときの角度(45度)は、仮想カメラVCから第2画角に沿った仮想空間の方向を見たときの角度(15度)よりも大きい。このため、仮想空間の見え方が実際の見え方と異なるようになり、ユーザは違和感を感じる場合がある。例えば、実際にオブジェクトがユーザから15度の方向にある場合に見える部分は、実際にオブジェクトがユーザから45度の方向にある場合に見える部分と異なる。例えば、実際にオブジェクトが15度の方向に位置する場合にはそのオブジェクトの奥側部分が見えるが、実際にオブジェクトが45度の方向に位置する場合には、その奥側部分は見えない場合がある。したがって、30度の仮想カメラVCの画角から見える仮想空間を90度の視野に拡大すると、ユーザからのオブジェクトの見え方が実際の見え方と異なるようになる。このような見え方の違いは、レンズ153の外周部分ほど大きくなる。また、仮想カメラVCの画角とゴーグル装置150を着用したユーザの視野(ゴーグル装置150の表示画角)とが一致する場合には、仮想カメラVCをある角度回転させたとき、仮想空間内の仮想オブジェクトも同じ角度だけ動いて見える。一方、仮想カメラVCの画角とゴーグル装置150の表示画角とが異なる場合、仮想カメラVCをある角度回転させたとき、仮想空間内の仮想オブジェクトは同じ角度動かない。例えば、仮想カメラVCの画角が30度に設定されている場合、ユーザが頭を右方向に30度回転させたとき、正面にあったオブジェクトは右に90度回転する。このように、仮想カメラVCの画角がゴーグル装置150の表示画角と異なる場合、仮想オブジェクトがユーザにとって不自然な見た目となったり、不自然な動きとなったりする。VR酔いの原因となる可能性がある。
【0135】
また、例えば、仮想カメラVCから見た仮想空間の画像を生成し、生成した画像の中心からの位置(ディスプレイ12に表示されるときの表示位置)に応じて、レンズ153の特性に応じた歪み補正を行うことが考えられる。画像の中心からの位置に応じた歪み補正が行われるため、ディスプレイ12に表示された画像をレンズ153を介して見た場合は、レンズ153のディストーションと歪み補正による歪みとが打ち消しあい、歪みのない画像としてユーザに視認される。このため、仮想カメラVCの画角が第1画角に設定されている場合も第2画角に設定されている場合も、基本的にはユーザは歪みの無い画像を視認する。しかしながら、例えば、ユーザの目の位置や間隔は常に一定とは限らず、ユーザの目の位置と、レンズ153の位置と、ディスプレイ12に表示される画像の位置とには多少のずれが生じる場合がある。これらの位置のずれによって、レンズ153のディストーションと、歪み補正による歪みとが合わなくなることがある。レンズの外周部分に近いほど歪みが大きいため、レンズ153のディストーションと、歪み補正による歪みとのずれも、外周部分ほど大きくなる。仮想カメラVCの画角を第2画角に設定して拡大した場合には、オブジェクトが画像の外周部分にかかって歪んで見える。このため、現実の見た目との違いが大きくなり、VR酔いの原因となる可能性がある。
【0136】
仮想カメラVCの画角を小さくして画像を拡大する場合には、外周部分に近いほど違和感のある見え方となり、VR酔いの原因になる可能性がある。したがって、本実施形態では、VR酔いを低減するために、
図17から
図20に示したように、仮想カメラVCの画角を小さくして仮想空間の一部を拡大する場合には、左目用画像および右目用画像の外周部分をカットする。具体的には、仮想カメラVCの画角が小さいほど、カットする外周部分の面積を大きくする(言い換えると、左目用画像および右目用画像の表示領域を小さくする)。
【0137】
これにより、仮想空間の一部を拡大するとともに、拡大によるVR酔いを低減することができる。具体的には、現実の見た目との違いが大きくなる外周部分に対応する仮想空間の画像をユーザに視認させないようにすることができ、ユーザに違和感を与えないようにすることができる。
【0138】
また、左目用画像および右目用画像の外周部分をカットすることで、仮想空間の一部が拡大していることをユーザが意識し、ユーザはその意識のもとで画像を視認するため、VR酔いを生じ難くすることができる。
【0139】
また、本実施形態では、仮想カメラVCの画角を小さくして画像を拡大する場合に、仮想カメラVCの画角に応じて、カメラ間距離dを変更する。具体的には、仮想カメラVCの画角が小さいほど(仮想空間の拡大率が高いほど)、カメラ間距離dを小さくする。これにより、VR酔いを低減することができる。すなわち、仮想カメラVCの画角を小さくして画像を拡大した場合には、上述のように画像が光学的に正しくない見た目となってしまい、立体感も現実とは異なるものになる。このため、仮想カメラVCの画角を小さくして画像を拡大する場合にカメラ間距離dを通常時と同じにすると、ユーザは、現実とは異なる立体感を感じてしまい、VR酔いの原因になる可能性がある。したがって、本実施形態では、仮想カメラVCの画角を小さくして画像を拡大する場合には、カメラ間距離dを小さくする(すなわち、左目用画像および右目用画像の視差を小さくする)。これにより、立体感を弱め、VR酔いを低減することができる。
【0140】
図22は、仮想カメラVCの画角と、左目用画像及び右目用画像の表示面積との関係の一例を示す図である。
図23は、仮想カメラVCの画角と、カメラ間距離dとの関係の一例を示す図である。
図22及び
図23において、横軸は拡大率(仮想カメラVCの画角)を示し、右方向ほど拡大率は高くなる(画角は小さくなる)。
【0141】
図22に示すように、仮想カメラVCの画角が第1画角(例えば90度)から第3画角Aまでの間は、左目用画像および右目用画像の表示領域の面積は一定である(
図17参照)。仮想カメラVCの画角が第3画角Aより小さくなると、表示領域の面積は小さくなる(
図18および
図19参照)。仮想カメラVCの画角が小さいほど、表示領域の面積の減少率が大きくなる。例えば、仮想カメラVCの画角が第3画角Cまでは比較的緩やかに表示領域の面積が減少し、仮想カメラVCの画角が第3画角Cより小さくなると、急に表示領域の面積が減少する。そして、仮想カメラVCの画角が最も小さい第2画角(例えば30度)に設定された場合、表示面積は最も小さくなる(
図20参照)。
【0142】
また、
図23に示すように、仮想カメラVCの画角が第1画角(例えば90度)から第2画角まで変化する間、カメラ間距離dは小さくなる。例えば、カメラ間距離dは、画角が小さくなる(画像が拡大する)ことに応じて線形的に小さくなり、仮想カメラVCの画角が最も小さい第2画角に設定された場合、カメラ間距離dは「0」になる。
【0143】
なお、カメラ間距離dは、線形的に変化する場合に限らず、仮想カメラVCの画角の変化に応じて、曲線的に変化してもよい(すなわち、仮想カメラVCの画角の変化する間、カメラ間距離dの増減の割合が変化してもよい)。
【0144】
(ズームイン時の手振れ補正)
次に、本実施形態の手振れ補正機能について説明する。本実施形態では、仮想カメラVCの画角を小さくすることによって仮想空間の一部を拡大する場合、手振れ補正が行われる。手振れ補正は、手振れによる仮想カメラVCの姿勢の変化を軽減する機能である。以下、この手振れ補正について説明する。
【0145】
図24は、手振れ補正が行われない場合の本体装置2の姿勢の変化と仮想カメラVCの姿勢の変化との一例を示す図である。
図25は、手振れ補正が行われる場合の本体装置2の姿勢の変化と仮想カメラVCの姿勢の変化との一例を示す図である。
【0146】
例えば、本実施形態では、本体装置2および仮想カメラVCの姿勢はベクトルによって表される。例えば、本体装置2の姿勢は、x、y、z各軸方向の回転を表す成分と、回転角を表す成分とを有するクォータニオンqによって表される。
図24及び
図25の横軸は時間を示し、縦軸は姿勢を表すベクトルqを示す。
【0147】
図24に示すように、時刻t0からt5までの間で本体装置2の姿勢が変化する場合、通常は、仮想カメラVCの姿勢は各時刻において本体装置2の姿勢と一致する。すなわち、本実施形態では、仮想カメラVCの画角が第1画角に設定されている場合は、手振れ補正は行われない。本体装置2は、自機の姿勢の変化を検出した場合には、仮想カメラVCの姿勢を、自機の姿勢と一致するように変更する。なお、本体装置2は、自機の姿勢を例えば200Hzの周波数で算出してもよい。
【0148】
一方、
図25に示すように、仮想カメラVCの画角が第1画角よりも小さい場合、手振れ補正が行われる。手振れ補正が行われる場合、仮想カメラVCの姿勢は、本体装置2の姿勢に近づく(追従する)ように変化する。本体装置2の姿勢が変化した場合、仮想カメラVCの姿勢は、所定時間かけて本体装置2の姿勢に一致するように変化する。このため、本体装置2の姿勢が急激に変化した場合でも、仮想カメラVCの姿勢は急激に変化せず、ある程度の時間をかけて本体装置2の姿勢に近づくように変化する。例えば、時刻t0において仮想カメラVCが本体装置2の姿勢と一致しており、時刻t1において本体装置2の姿勢が変化した場合、時刻t1における仮想カメラVCの姿勢は、本体装置2の姿勢とは完全に一致しない。仮想カメラVCの姿勢は、本体装置2の姿勢の変化量よりも小さい変化量で変化する。さらに、時刻t2において、本体装置2の姿勢が変化した場合、時刻t2における仮想カメラVCの姿勢は、本体装置2の姿勢とは完全に一致せず、本体装置2の姿勢に近づくように変化する。その後、時刻t3において本体装置2の姿勢が時刻t2と同じ姿勢である場合は、時刻t3における仮想カメラVCの姿勢は、さらに本体装置2の姿勢に近づく。そして、時刻t4において本体装置2の姿勢が時刻t2と同じ姿勢である場合、時刻t4における仮想カメラVCの姿勢は、本体装置2の姿勢と一致するようになる。
【0149】
本実施形態では、仮想カメラVCの画角が小さいほど(仮想空間の拡大率が高いほど)、手振れ補正の度合いが大きくなる。ここで、手振れ補正の度合いは、本体装置2の姿勢の変化に対して、仮想カメラVCの姿勢の変化をどの程度遅らせるかを示す値である。手振れ補正の度合いが小さいほど、仮想カメラVCの姿勢が本体装置2の姿勢に速く近づき、手振れ補正の度合いが大きいほど、仮想カメラVCの姿勢がゆっくりと本体装置2の姿勢に近づくことになる。例えば、仮想カメラVCの画角が第3画角A(第1画角<第3画角A<第2画角)に設定されている場合、本体装置2は、自機の姿勢の変化を検出したときには、仮想カメラVCの姿勢を自機の姿勢の90%に設定してもよい。また、仮想カメラVCの画角が第2画角に設定されている場合、本体装置2は、自機の姿勢の変化を検出したときには、仮想カメラVCの姿勢を自機の姿勢の80%に設定してもよい。仮想カメラVCの画角が第1画角に設定されている場合は、補正の度合いは「0」になり、本体装置2は、自機の姿勢の変化を検出したときには、仮想カメラVCの姿勢を自機の姿勢の100%に設定する。
【0150】
通常、VRにおいては仮想カメラの動きをユーザの動き(ゴーグル装置150等の動き)と一致させず、仮想カメラの姿勢に補正を加えた場合には、現実のユーザの動きとユーザが見るVR空間内の画像の動きとが一致しなくなり、VR酔いの原因となることがある。このため、VRの分野では、通常、ユーザの動きと仮想カメラの動きとを一致させる。しかしながら、本実施形態の画像表示システム1では、仮想カメラVCの画角を狭くすることにより、VR空間の一部を拡大する機能を提供する。仮想カメラVCの画角を狭くした場合において、ゴーグル装置150の姿勢の変化と一致するように仮想カメラVCの姿勢を変化させると、わずかな手の動き(手振れ)によってVR空間が揺れ、VR酔いの原因になる可能性がある。このため本実施形態では、仮想カメラVCの画角を狭くした場合には、手振れ補正によって手振れの影響を低減する。これにより、仮想カメラVCの画角を狭くして仮想空間の一部を拡大した場合であっても、VR酔いを低減することができる。
【0151】
なお、仮想カメラの姿勢を本体装置2の姿勢に近づける方法は上記に限られない。例えば、本体装置2の最新の姿勢と、直前の本体装置2の姿勢とから算出される姿勢(例えば加重平均)に基づいて、仮想カメラVCの姿勢が設定されてもよい。
【0152】
また、手振れ補正の別の方法としては、本体装置2の姿勢の変化が所定の閾値以下の場合には、仮想カメラVCの姿勢を変化させず、本体装置2の姿勢の変化が所定の閾値を越える場合は、仮想カメラVCの姿勢を変化させてもよい。この場合において、仮想カメラVCの画角が小さいほど、所定の閾値を大きくしてもよい。例えば、仮想カメラVCの画角が第1画角の場合には、所定の閾値を「0」にし、仮想カメラVCの画角が第2画角の場合には、所定の閾値を「0」よりも大きな値にしてもよい。
【0153】
何れの手振れ補正の方法であっても、仮想カメラVCの画角が第1画角の場合には、手振れ補正は行われず、本体装置2の姿勢が変化したときに、変化後の本体装置2の姿勢に応じて仮想カメラVCの姿勢が設定されてもよい。一方、仮想カメラVCの画角が第2画角の場合には、本体装置2の姿勢が変化したときに、仮想カメラVCの姿勢の変化を軽減するための手振れ補正を行い、当該手振れ補正の結果に応じて仮想カメラVCの姿勢が設定されてもよい。
【0154】
以上のように、本実施形態では、仮想カメラVCの画角を小さくすることにより、仮想空間の一部を拡大した左目用画像および右目用画像を生成し、拡大した左目用画像および右目用画像の表示領域の一部をカットする。拡大した左目用画像および右目用画像の外周部分がカットされるため、現実の見た目との違いが大きくなる部分をユーザに視認させないようにすることができ、VR酔いを低減することができる。また、仮想空間の一部を連続的に拡大させることに応じて、左目用画像および右目用画像の表示領域の面積を連続的に小さくすることで、ユーザに違和感を与えないようにするとともに、仮想空間の表示に急な変化を生じさせないようにすることができる。これにより、VR酔いの可能性を低減することができる。また、仮想空間の一部が拡大していることをユーザに意識させ、その意識のもとで画像を視認させることができ、VR酔いを生じ難くすることができる。したがって、VR空間の一部を拡大することができるとともに、VR酔いを低減することができる。
【0155】
また、本実施形態では、仮想カメラVCの画角を小さくして仮想空間の一部を拡大する場合に、左仮想カメラVCLおよび右仮想カメラVCRの間の距離を短くする。これにより、立体感を弱め、VR酔いを低減することができる。また、仮想空間の一部を連続的に拡大させることに応じて、カメラ間距離dを連続的に小さくすることで、急な立体感の変化を生じさせないようにすることができ、ユーザに違和感を与えないようにすることができる。これにより、VR酔いの可能性を低減することができる。
【0156】
また、本実施形態では、仮想空間の一部を拡大するときには手振れ補正を行う。これにより、例えば、手振れによるVR空間の揺れを低減することができ、VR酔いを低減することができる。一方、通常時には手振れ補正を行わないようにすることで、本体装置2の姿勢の変化に応じて仮想カメラVCの姿勢を制御することができる。これにより、ユーザの動きと仮想カメラVCの動きを一致させることができ、VR酔いの可能性を低減することができる。
【0157】
また、本実施形態では、現実のカメラの望遠ズームレンズを模した筒状部205をロール方向に回転させることにより、仮想空間の一部を拡大する。このような操作は、例えば、ユーザがコントローラを把持して操作ボタンを押したり、アナログスティックを傾倒させたり、コントローラの姿勢を変化させたりする場合よりも、現実のカメラの操作に近いものである。このような現実のカメラの操作に近い操作で仮想空間を拡大することにより、現実のカメラを操作しているような感覚をユーザに与えることができ、VR酔いを低減することができる。
【0158】
なお、仮想空間の一部を拡大する場合に、仮想カメラVCの画角を小さくすることに代えて、仮想カメラVCを仮想空間内で移動させる(拡大対象に近づける)ことが考えられる。この場合、仮想カメラVCの移動経路に別の仮想オブジェクトが存在する場合には、仮想カメラVCが、当該別の仮想オブジェクトをすり抜けたり、当該別の仮想オブジェクトに衝突したりする可能性がある。また、ユーザは、実際には移動していないにもかかわらず、視覚的にはユーザ自身が移動するように感じてしまうことがある。このため、ユーザは違和感を感じ、VR酔いの原因となる可能性がある。
【0159】
また、仮想空間の一部を拡大する場合に、仮想カメラVCを移動させずに、仮想オブジェクトやその他の背景を仮想カメラVCに近づけることも考えられる。この場合も、仮想空間自体が動くため、VR酔いの原因となる可能性がある。
【0160】
しかしながら、本実施形態では、仮想空間の一部を拡大する場合、仮想カメラVCや仮想空間自体は移動させず、仮想カメラVCの画角を小さくするため、このような仮想カメラVCや仮想空間の移動による問題は発生しない。
【0161】
(処理の詳細)
次に、本体装置2において行われる処理の一例について具体的に説明する。まず、本体装置2に記憶されるデータについて説明する。
【0162】
図26は、本体装置2のメモリ(主にDRAM85)に記憶されるデータの一例を示す図である。
図26に示すように、本体装置2のメモリには、所定のプログラムと、本体センサデータと、本体姿勢データと、コントローラ姿勢データと、仮想オブジェクトデータと、仮想カメラデータと、左目用画像データと、右目用画像データとが記憶される。なお、本体装置2にはこれらの他にも様々なデータが記憶される。
【0163】
所定のプログラムは、後述するフローチャートによる処理を実行するためのプログラムである。所定のプログラムは、例えばフラッシュメモリ84又はスロット23に挿入されるメモリカードに記憶されており、処理の開始時にDRAM85に読み込まれる。なお、所定のプログラムは、他の装置からネットワーク(例えば、LAN、WAN、インターネット等)を介して取得されてもよい。
【0164】
本体センサデータは、本体装置2の加速度センサ89及び角速度センサ90から出力されたデータであり、加速度に関するデータと、角速度に関するデータとを含む。本体センサデータは、所定の時間間隔(例えば1/800秒間隔)で加速度センサ89及び角速度センサ90から出力され、メモリに記憶される。
【0165】
本体姿勢データは、本体センサデータ(加速度に関するデータ及び/又は角速度に関するデータ)に基づいて算出される、本体装置2の姿勢を示すデータである。例えば、本体装置2は、角速度センサ90からの角速度値に基づいて、本体装置2の姿勢を表すベクトルを算出し、本体姿勢データとしてメモリに記憶する。また、本体姿勢データは、所定の時間間隔(例えば1/200秒間隔)で算出される。
【0166】
コントローラ姿勢データは、コントローラ(左コントローラ3及び右コントローラ4)の姿勢に関するデータである。本体装置2は、各コントローラから所定の時間間隔(例えば、1/200秒間隔)でコントローラ姿勢データを取得し、取得したコントローラ姿勢データをメモリに記憶する。なお、本体装置2は、各コントローラの慣性センサ(角速度センサ及び加速度センサ)が検出した角速度値及び/又は加速度値を、コントローラ姿勢データとして各コントローラから取得してもよい。あるいは、各コントローラが角速度値及び/又は加速度値に基づいて姿勢を算出し、算出した姿勢に関するデータを本体装置2に送信してもよい。
【0167】
仮想オブジェクトデータは、仮想空間に配置される各種仮想オブジェクトに関するデータであり、各仮想オブジェクトの位置、形状等のデータを含む。
【0168】
仮想カメラデータは、左仮想カメラVCLおよび右仮想カメラVCRに関するデータである。仮想カメラデータは、各仮想カメラVCの位置を示すデータ、姿勢を示すデータ、及び、画角を示すデータを含む。
【0169】
左目用画像データは、左仮想カメラVCLに基づいて生成される仮想空間の画像であって、ディスプレイ12の左表示領域に表示される左目用画像に関するデータである。右目用画像データは、右仮想カメラVCRに基づいて生成される仮想空間の画像であって、ディスプレイ12の右表示領域に表示される右目用画像に関するデータである。
【0170】
(フローチャートの説明)
次に、本体装置2において行われる処理の詳細について説明する。
図27は、本体装置2のプロセッサ81において行われる処理の一例を示すフローチャートである。なお、
図27では、上述した処理のみが示されており、他の処理(例えば、仮想空間において行われるユーザの動作に応じたゲーム処理等)は省略されている。
【0171】
図27に示すように、プロセッサ81は、まず、初期処理を行う(ステップS100)。初期処理では、まず、画像表示システム100(本体装置2)の姿勢に関する初期化が行われる。例えば、初期処理では、ユーザに本体装置2を含む画像表示システム100をテーブル等に置くように指示が行われ、本体装置2の姿勢が初期化される。また、初期処理では、仮想空間にXYZ座標系が設定され、仮想空間内に各仮想オブジェクト、左仮想カメラVCL、及び、右仮想カメラVCR等が配置される。ステップS100の処理の後、プロセッサ81は、ステップS101以降の処理を所定のフレーム時間(例えば、1/60秒)毎に繰り返し実行する。
【0172】
ステップS100の処理の後、プロセッサ81は、本体センサデータを取得する(ステップS101)。また、プロセッサ81は、ステップS101において、コントローラ姿勢データを取得する。
【0173】
次に、プロセッサ81は、ステップS101で取得した本体センサデータに基づいて、本体装置2の姿勢を算出する(ステップS102)。具体的には、プロセッサ81は、角速度センサ90が出力した最新の角速度値を積分して姿勢を算出することにより、本体装置2(ゴーグル装置150)の姿勢を取得する。取得された本体装置2の姿勢は、本体姿勢データとしてメモリに記憶される。
【0174】
続いて、プロセッサ81は、カメラ装置200の筒状部205がロール方向に回転したか否かを判定する(ステップS103)。具体的には、プロセッサ81は、ステップS101で取得したコントローラ姿勢データに基づいて、筒状部205の内部に設けられた左コントローラ3(又は右コントローラ4でもよい)がy軸周りに回転したか否かを判定する。
【0175】
筒状部205(左コントローラ3)が回転していないと判定した場合(ステップS103:NO)、プロセッサ81は、ステップS102で取得(算出)した本体装置2の姿勢に応じて、仮想カメラVCの姿勢を設定する(ステップS104)。具体的には、プロセッサ81は、本体装置2の姿勢に一致するように、左仮想カメラVCL及び右仮想カメラVCRの姿勢を設定し、仮想カメラデータの姿勢データとしてメモリに記憶する。なお、筒状部205が回転していない場合、プロセッサ81は、カメラ間距離dが所定の値(例えば、平均的な人間の左右の目の間隔)となるように、左仮想カメラVCL及び右仮想カメラVCRの位置を設定し、仮想カメラデータの位置データとしてメモリに記憶する。また、筒状部205が回転していない場合、プロセッサ81は、左仮想カメラVCL及び右仮想カメラVCRの画角を第1画角(例えば90度)に設定し、仮想カメラデータの画角データとしてメモリに記憶する。
【0176】
次に、プロセッサ81は、左仮想カメラVCL及び右仮想カメラVCRに基づいて、左目用画像および右目用画像を生成する(ステップS105)。ここでは、仮想カメラVCの画角が第1画角に設定されており、略円形の通常の大きさの仮想空間の画像(左目用画像および右目用画像)が生成される。また、プロセッサ81は、ステップS105において、レンズ153の特性に応じた歪み補正を行う。これにより、歪み補正が行われた左目用画像および右目用画像が生成される。
【0177】
ステップS105に続いて、プロセッサ81は、ステップS105で生成された左目用画像及び右目用画像をディスプレイ12に表示させる(ステップS106)。これにより、仮想空間の左目用画像および右目用画像が、ディスプレイ12の左表示領域および右表示領域にそれぞれ表示される。なお、非視認領域には、黒色の画像が表示される。
【0178】
一方、筒状部205が回転している判定した場合(ステップS103:YES)、プロセッサ81は、拡大画像表示処理を行う(ステップS107)。ステップS107の拡大画像表示処理については後述する。
【0179】
ステップS106の処理を実行した場合、又は、ステップS107の処理を実行した場合、プロセッサ81は、
図27に示す処理を終了するか否かを判定する(ステップS108)。例えば、プロセッサ81は、VR空間内でゲームが行われる場合、ゲームがクリアされたときやユーザによってゲームの終了が指示されたときに、
図27に示す処理を終了すると判定する。ステップS108でNOと判定した場合、プロセッサ81は、再びステップS101の処理を実行する。
【0180】
(拡大画像表示処理)
次に、ステップS107の拡大画像表示処理の詳細について説明する。
図28は、ステップS107の拡大画像表示処理の一例を示すフローチャートである。
【0181】
図28に示すように、プロセッサ81は、仮想カメラVCの画角を設定する(ステップS121)。具体的には、プロセッサ81は、左コントローラ3(筒状部205)のy軸周りの回転角に応じて、左仮想カメラVCL及び右仮想カメラVCRの画角を設定する。
【0182】
次に、プロセッサ81は、手振れ補正機能を有効化する(ステップS122)。具体的には、プロセッサ81は、ステップS121で設定した画角に応じた手振れ補正の度合いを設定し、手振れ補正機能を有効化する。プロセッサ81は、仮想カメラVCの画角が小さいほど(すなわち、拡大率が高いほど)、手振れ補正の度合いが高くなるように、補正の度合いを設定する。
【0183】
ステップS122に続いて、プロセッサ81は、ステップS102で取得(算出)した本体装置2の姿勢に基づいて、仮想カメラVCの姿勢を設定する(ステップS123)。具体的には、プロセッサ81は、本体装置2の姿勢に近づくように、ステップS122で設定した手振れ補正の度合いに応じて、左仮想カメラVCL及び右仮想カメラVCRの姿勢を設定する。これにより、仮想カメラVCの画角が小さいほど(拡大率が高いほど)、仮想カメラVCの姿勢が本体装置2の姿勢にゆっくりと近づくようになる。
【0184】
次に、プロセッサ81は、ステップS121で設定した画角に応じて、カメラ間距離dを設定する(ステップS124)。
【0185】
続いて、プロセッサ81は、左仮想カメラVCL及び右仮想カメラVCRに基づいて、仮想空間の一部を拡大した左目用画像及び右目用画像を生成する(ステップS125)。ここでは、仮想空間の一部を拡大した通常の大きさの左目用画像および右目用画像が生成される。また、プロセッサ81は、ステップS125において、レンズ153の特性に応じた歪み補正を行う。これにより、歪み補正が行われた左目用画像および右目用画像が生成される。このステップS125における歪み補正は、上述したステップS105における歪み補正と同じ処理である。
【0186】
ステップS125に続いて、プロセッサ81は、ステップS121で設定した仮想カメラVCの画角が所定値(
図22では第3画角A)以下であるか否かを判定する(ステップS126)。なお、プロセッサ81は、ステップS126において仮想カメラVCの画角が所定値未満か否かを判定してもよい。
【0187】
仮想カメラVCの画角が所定値以下であると判定した場合(ステップS126:YES)、プロセッサ81は、仮想カメラVCの画角に応じて左右の表示領域を縮小する(ステップS127)。例えば、プロセッサ81は、ステップS125の処理で生成した通常の大きさの仮想空間の画像(左目用画像及び右目用画像)の外周部分を黒色で塗りつぶすことにより、仮想空間の画像の表示領域を縮小する。プロセッサ81は、仮想カメラVCの画角が小さいほど、仮想空間の画像の表示領域の面積を小さくする。
【0188】
次に、プロセッサ81は、ディスプレイ12に、左目用画像および右目用画像を表示させる(ステップS128)。これにより、外周部分がカットされた、仮想空間の一部を拡大した左目用画像および右目用画像が、ディスプレイ12の左表示領域および右表示領域にそれぞれ表示される。なお、非視認領域には、黒色の画像が表示される。
【0189】
一方、仮想カメラVCの画角が所定値以下でない場合(ステップS126:NO)、プロセッサ81は、ステップS125の処理で生成した通常の大きさの左目用画像および右目用画像をディスプレイ12に表示させる(ステップS129)。ここでは、ステップS127のような左右の画像の表示領域を縮小する処理は行われない。これにより、ステップS106と同じ大きさの画像であって、仮想空間の一部を拡大した左目用画像および右目用画像が表示される。なお、非視認領域には、黒色の画像が表示される。
【0190】
ステップS128の処理を実行した場合、又は、ステップS129の処理を実行した場合、プロセッサ81は、
図28に示す処理を終了し、処理を
図27に戻す。以上で
図27及び
図28に示すフローチャートの説明を終了する。
【0191】
なお、上記フローチャートで示した処理は単なる例示に過ぎず、処理の順番や内容は適宜変更されてもよい。
【0192】
(変形例)
以上、本実施形態の画像表示システムついて説明したが、上記実施形態は単なる一例であり、例えば以下のような変形が加えられてもよい。
【0193】
例えば、上記実施形態では、一対の左仮想カメラVCLおよび右仮想カメラVCRに基づいて、互いに視差を有する左目用画像および右目用画像を生成することとした。他の実施形態では、1つの仮想カメラに基づいて画像を生成し、生成した画像に変形を加えて互いに視差を有する左目用画像および右目用画像を生成してもよい。すなわち、本明細書において、「仮想カメラに基づいて左目用画像および右目用画像を生成する」ことは、一対の左仮想カメラVCLおよび右仮想カメラVCRに基づいて左目用画像および右目用画像を生成することと、1つの仮想カメラに基づいて左目用画像および右目用画像を生成することとの両方を含むものとする。
【0194】
左右の仮想カメラを用いずに、1つの仮想カメラで互いに視差を有する左目用画像および右目用画像を生成する場合も、通常時と拡大時とでは視差が異なるように、左目用画像および右目用画像が生成される。具体的には、通常時は、1つの仮想カメラに基づいて第1の視差を有する左目用画像および右目用画像が生成され、拡大時は、1つの仮想カメラに基づいて第1の視差よりも小さい第2の視差を有する左目用画像および右目用画像が生成される。
【0195】
また、上記実施形態では、通常時は左目用画像および右目用画像として略円形の画像を表示し、拡大時は、通常時と略相似形の画像(例えば略正12角形の画像)を表示することとした。左目用画像および右目用画像の形状は単なる一例であり、他の任意の形状の画像が表示されてもよい。例えば、通常時は多角形の左目用画像および右目用画像を表示し、拡大時は、通常時と相似形の画像であって表示領域の小さい左目用画像および右目用画像を表示してもよい。
【0196】
また、上記実施形態では、仮想空間の一部を拡大した左目用画像および右目用画像の外周部分を黒く塗りつぶすことで、外周部分をカットし、左目用画像および右目用画像の表示領域を小さくした。他の実施形態では、仮想空間の一部を拡大した左目用画像および右目用画像の表示領域を小さくする方法として、他の方法が用いられてもよい。例えば、仮想空間の一部を拡大した左目用画像および右目用画像の外周部分に所定の色の画像を表示したり、外周部分を半透明にしたり、外周部分をぼかしたりすることで、外周部分に対応する仮想空間の画像を視認不可又は困難してもよい。また、仮想空間の一部を拡大した左目用画像および右目用画像の外周部分を非表示にしてもよい。また、例えば、仮想カメラVCの視界の一部をさえぎる遮蔽オブジェクト(例えば、中心部分を透過し、外周部分を遮蔽するドーナツ状のオブジェクト)を配置することにより、仮想空間の一部を拡大した左目用画像および右目用画像の表示領域を小さくしてもよい。このような遮蔽オブジェクトを含む仮想空間を仮想カメラで撮像した場合、中心部分については、通常時に表示された仮想空間の一部の画像が拡大されて表示される一方、外周部分については、遮蔽オブジェクトにより遮蔽されて、通常時に表示されていた仮想空間の部分は表示されなくなる(又は、ユーザが視認困難になる)。左目用画像および右目用画像の外周部分における画像(外周画像)は、仮想空間を半透明にした画像であってもよいし、仮想空間をぼかした画像であってもよいし、仮想空間に配置された遮蔽オブジェクトの画像であってもよいし、仮想空間には配置されない所定の色の画像であってもよい。すなわち、通常時に表示されていた仮想空間の一部が拡大されて表示され、通常時に表示されていた仮想空間の他の部分が拡大時には視認不可又は視認困難になるように表示されれば、他の任意の方法で左目用画像および右目用画像が生成されてもよい。
【0197】
また、上記実施形態では、拡大表示の設定がされている場合(例えば、第2画角の場合)に、仮想空間の一部を拡大した左目用画像および右目用画像の外周部分に、所定の画像(外周画像。例えば、黒色の画像)を表示し、拡大表示の設定がされていない場合(第1画角の場合)に、左目用画像および右目用画像の外周部分に所定の画像を表示しないようにした。他の実施形態では、拡大表示の設定がされていない場合でも、左目用画像および右目用画像の外周部分に所定の画像を表示してもよい。この場合、拡大表示の設定がされていないときには、拡大表示の設定がされているときよりも、外周部分に表示される所定の画像は小さくてもよい。
【0198】
また、上記実施形態では、筒状部205を回転させることで仮想カメラの画角を通常の第1画角よりも小さくする設定(仮想空間の一部を通常よりも拡大表示する設定)を行った。他の実施形態では、他の任意の操作によって、仮想空間の一部を拡大表示する設定を行ってもよい。例えば、左コントローラ3又は右コントローラ4のボタンやアナログスティックに対する操作によって、仮想空間の一部の拡大率を連続的に変化させてもよい。この場合、カメラ間距離(左目用画像と右目用画像との視差)についても、仮想空間の一部の拡大率の変化に応じて連続的に変化させてもよい。また、コントローラのボタン(又はアナログスティックでもよい)に対する操作によってズームアップの設定(すなわち、第2画角に設定)を行い、同じ又は別のボタン(又はアナログスティックでもよい)に対する操作によってズームアップの解除設定(すなわち、第1画角に設定)を行ってもよい。この場合、カメラ間距離(左目用画像と右目用画像との視差)についても、ズームアップの設定及び設定解除に応じて、変化させてもよい。
【0199】
なお、本明細書において、仮想カメラの画角やカメラ間距離(視差)を「連続的に変化させる」とは、
図22に示すように曲線的に変化させる場合と、
図23に示すように線形的に変化させる場合とを含む。
【0200】
また、上記実施形態では、仮想カメラVCの画角を第1画角から第2画角まで連続的に変化させることにより、仮想空間の一部を連続的に拡大した。他の実施形態では、仮想カメラVCの画角を、第1画角、または第1画角よりも小さい第2画角に設定してもよい。すなわち、通常時には、仮想カメラVCの画角を第1画角に設定し、拡大時には仮想カメラVCの画角を第2画角に設定してもよい。この場合、仮想カメラVCの画角が第2画角に設定された場合には、左目用画像および右目用画像の表示領域の面積を、仮想カメラVCの画角が第1画角に設定された場合よりも小さくする。
【0201】
また、上記実施形態では、仮想カメラVCの画角が第2画角に設定されている場合、カメラ間距離dをゼロとした。すなわち、拡大率が最大の場合、左目用画像および右目用画像の視差をゼロにした。他の実施形態では、仮想カメラVCの画角が第2画角に設定されている場合、左目用画像および右目用画像の視差が実質的にゼロになるようにしてもよい。ここで、実質的に視差がゼロの状態とは、視差が全く無い状態と、小さな視差はあるがユーザにとって画像がほぼ平面的に見える状態とを含む。
【0202】
また、上記実施形態では、仮想カメラVCの画角を小さくすることによって仮想空間の一部を拡大した。他の実施形態では、他の方法によって仮想空間の一部を拡大してもよい。この場合、仮想空間の一部を拡大することに応じてカメラ間距離dを短くしてもよい。例えば、第1画角に設定された仮想カメラVCに基づいて仮想空間の画像を生成し、生成した画像の一部を切り取って拡大し、拡大した画像を左目用画像および右目用画像として表示してもよい。この場合、仮想空間の一部を拡大した左目用画像および右目用画像の視差を、拡大前の視差よりも小さくする。このように他の方法によって仮想空間の一部を拡大する場合においても、仮想空間の拡大率を連続的に変化させ、その拡大率に応じて左目用画像および右目用画像の視差(例えばカメラ間距離d)を小さくしてもよい。
【0203】
また、上記実施形態では、ゴーグル装置150(本体装置2)の姿勢を、本体装置2に内蔵された慣性センサ(角速度センサ90及び/又は加速度センサ89)からのデータに基づいて検出した。他の実施形態では、他の方法によりゴーグル装置150の姿勢を検出してもよい。例えば、画像表示システム100は、ゴーグル装置150を外部から撮像するカメラを備え、カメラでゴーグル装置150又はゴーグル装置150に取り付けられたマーカを撮像し、撮像した画像に基づいてゴーグル装置150の姿勢を取得してもよい。また、ゴーグル装置150がカメラを備え、当該カメラが撮像した画像の変化からゴーグル装置150の姿勢が取得されてもよい。
【0204】
また、画像表示システム100は上述のような構成に限らず、他の構成であってもよい。例えば、ゴーグル装置150とカメラ装置200とは分離不可能に一体として構成されてもよい。すなわち、上記実施形態では、ゴーグル装置150は着脱可能な筒状部205を有するものとしたが、他の実施形態では、ゴーグル装置150は固定された筒状部205を有してもよい。例えば、ゴーグル装置の背面側に上記筒状部205が設けられてもよい。また、ゴーグル装置は、ユーザが把持することによって当該ユーザの顔にフィットされるタイプ、ユーザの頭部に固定されることによって当該ユーザの顔にフィットされるタイプ、載置状態の装置をユーザが覗き込むタイプなど、様々な状態で用いられるものであってもよい。また、画像表示システムに含まれるゴーグル装置は、本体装置2が取り付けられた状態でユーザの頭部に着用されることによって、いわゆるヘッドマウントディスプレイとして機能するものであってもよく、ゴーグル型の他にヘルメット型の形状を有するものであってもよい。
【0205】
また、上記構成では、ゴーグル装置と本体装置2とは着脱可能であるとしたが、他の構成ではゴーグル装置と本体装置2とは一体として構成されてもよい。すなわち、ゴーグル装置に左目用画像および右目用画像を表示するためのディスプレイと、画像を生成するためのプロセッサとが設けられてもよい。
【0206】
また、上記実施形態では、ゴーグル装置150のディスプレイ12は、ゴーグル装置150に着脱可能であるとした。他の実施形態では、ゴーグル装置の表示部は、ゴーグル装置に固定されてもよい。また、ゴーグル装置の表示部は、上述のような矩形のディスプレイ12に限られない。例えば、ゴーグル装置の表示部は、2つの表示部(ユーザの左目で視認される左目表示部、および、ユーザの右目で視認される右目表示部)を有してもよい。また、ゴーグル装置の表示部は、任意の形状であってもよい。例えば、ゴーグル装置の表示部自体が、略円形(円形又は楕円)に形成されてもよい。また、正方形や長方形に形成された2つの左右の表示部が、ゴーグル装置の表示部として用いられてもよい。また、ゴーグル装置の表示部は、液晶表示装置や有機EL表示装置等の表示装置であってもよいし、投影面に映像を投影する投影方式の表示装置であってもよい。
【0207】
また、上記実施形態の画像表示システム1の構成は単なる一例であり、上記に限られない。例えば、上記実施形態では、ゴーグル装置は、画像を表示するディスプレイ12および画像を生成するための処理を行うプロセッサ81を有する本体装置2と、ゴーグル本体とにより構成されるものとした。すなわち、ゴーグル本体と本体装置2とを含むゴーグル装置により、画像表示システム100が構成されるものとした。他の実施形態では、表示部を備えるゴーグル装置と、画像を生成するための処理等を行う情報処理装置とが別々の装置として構成され、これら複数の装置により、画像表示システム100が構成されてもよい。この場合、ゴーグル装置と情報処理装置とは、有線または無線で接続され、情報処理装置において生成された左目用画像および右目用画像がゴーグル装置に送信され、ユーザに視認されてもよい。また、情報処理装置が上述した処理を行い、その処理の結果をゴーグル装置に送信し、ゴーグル装置が左目用画像および右目用画像を生成してユーザに視認させてもよい。また、ゴーグル装置と情報処理装置とは、ネットワーク(LANやWAN、インターネット等)で接続されてもよい。
【0208】
また、本実施形態では、ユーザが手で把持したまま表示部を覗き込むゴーグル装置が用いられるものとしたが、他の実施形態では、ゴーグル装置は、ユーザの頭部に固定的に着用するヘッドマウントディスプレイであってもよい。
【0209】
以上、本発明について説明したが、上記説明は本発明の例示に過ぎず、種々の改良や変形が加えられてもよい。
【符号の説明】
【0210】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
12 ディスプレイ
81 プロセッサ
89 加速度センサ
90 角速度センサ
100 画像表示システム
150 ゴーグル装置
200 カメラ装置
205 筒状部
VC 仮想カメラ
VCL 左仮想カメラ
VCR 右仮想カメラ