以下、本発明の実施形態を図面に基づいて説明する。以下では、「両眼視差を利用した立体視画像として、仮想空間内の仮想視点から視界方向を見た仮想空間を表す仮想空間画像を表示可能な表示部を備えたヘッドマウントディスプレイの表示を制御する表示制御装置」の一例であるゲーム装置に本発明を適用した例について主に説明する。
[1.ハードウェア構成]図1は、本発明の実施形態に係る表示制御装置の一例であるゲーム装置のハードウェア構成を示す。ゲーム装置10は、ユーザがゲームをプレイするために使用するコンピュータである。例えば、ゲーム装置10は、据置型ゲーム機(家庭用ゲーム機)、遊戯施設等に設置される業務用ゲーム機、デスクトップ型コンピュータ、ラップトップ型コンピュータ、携帯ゲーム機、携帯情報端末(タブレット型コンピュータを含む)、又は携帯電話機(スマートフォンを含む)である。
図1に示すように、ゲーム装置10は制御部11、記憶部12、光ディスクドライブ部13、通信部14、操作部15、ヘッドマウントディスプレイ16、トラッキング部17、及び音出力部18を含む。ヘッドマウントディスプレイ16は、ゲーム装置10の本体とインタフェースを介して接続される外部装置として設けられる。操作部15、トラッキング部17、及び音出力部18は、ゲーム装置10の本体とインタフェースを介して接続される外部装置として設けられてもよいし、ゲーム装置10の本体に設けられてもよい。
制御部11は少なくとも一つのマイクロプロセッサ(CPU)を含み、記憶部12又は光ディスクの情報記憶媒体に記憶されたプログラムに従って処理を実行する。制御部11は画像処理を行うためのグラフィックプロセッサ(GPU)を含んでもよい。記憶部12は、主記憶部(例えばRAM)及び補助記憶部(例えば、不揮発性の半導体メモリ、ハードディスクドライブ、又はソリッドステートドライブ)を含む。記憶部12はプログラムやデータを記憶するためのものである。記憶部12は、グラフィックデータを展開するためのメモリであって、CPUからグラフィックコントローラを介してアクセスされるグラフィックメモリ(VRAM)を含んでもよい。
光ディスクドライブ部13は光ディスクに記憶されたプログラムやデータを読み取る。プログラムやデータは光ディスクを介してゲーム装置10に供給される。光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラムやデータを読み取るための構成要素(例えばメモリーカードスロット)がゲーム装置10に備えられてもよい。そして、プログラムやデータが光ディスク以外の情報記憶媒体を介してゲーム装置10に供給されてもよい。
通信部14は、ネットワークを介して他の装置とデータ通信するためのものである。プログラムやデータはネットワークを介してゲーム装置10に供給されてもよい。
操作部15は、ユーザがゲーム操作を行うためのものである。操作部15は、例えばボタン(キー)、スティック(レバー)、タッチパネル、又はマウス等を含む。操作部15は、ユーザが音声又はジェスチャによって操作を行うためのものであってもよい。
ヘッドマウントディスプレイ16はユーザの頭に装着されるディスプレイであり、両眼視差を利用した立体視画像をユーザに提供する。図2はヘッドマウントディスプレイ16の外観の一例を示す図である。ヘッドマウントディスプレイ16は、両眼視差を利用した立体視画像として、仮想空間内の仮想視点から視界方向を見た仮想空間を表す仮想空間画像を表示可能な表示部(例えば有機ELディスプレイ又は液晶ディスプレイ等)を備える。ユーザUがヘッドマウントディスプレイ16を装着すると、ヘッドマウントディスプレイ16の筐体によってユーザUの視界が覆われる。ユーザUがヘッドマウントディスプレイ16を装着した際に表示部はユーザUの目の前に位置する。このため、ヘッドマウントディスプレイ16の外界はユーザUの視界から遮断され、ユーザUの目には表示部に表示される画像のみが見える。左目用画像と右目用画像とが表示部に表示されることによって立体視が実現され、ユーザUは立体的な画像を見ることができる。なお以下では、ヘッドマウントディスプレイ16の表示部に仮想空間画像を表示させることを単に「ヘッドマウントディスプレイ16に仮想空間画像を表示させる」と記載する場合がある。
ヘッドマウントディスプレイ16は、ヘッドマウントディスプレイ16(ユーザの頭)の向きを検出するためのセンサを含む。例えばジャイロセンサ又は加速度センサ等がヘッドマウントディスプレイ16に内蔵される。トラッキング部17は、ヘッドマウントディスプレイ16(ユーザの頭)の位置を検出するためのものである。例えば、ヘッドマウントディスプレイ16は複数の光源(LED等)を備え、トラッキング部17はヘッドマウントディスプレイ16を撮影するための撮影部を備える。トラッキング部17は所定位置に固定され、撮影部によって撮影される画像に写る複数の光源部の位置に基づいて、ヘッドマウントディスプレイ16の位置が特定される(アウトサイド・イン方式)。なお、ヘッドマウントディスプレイ16が撮影部を備えてもよい。そして、撮影画像に写る物体(ユーザの周囲にある物体)に基づいて、ヘッドマウントディスプレイ16の位置が特定されてもよい(インサイド・アウト方式)。
先述のように、ヘッドマウントディスプレイ16には仮想空間画像が表示される。ヘッドマウントディスプレイ16の向きや位置の変化に応じて、ヘッドマウントディスプレイ16に表示される仮想空間画像が変化する。例えば、ユーザUが頭の向きを第1方向(例えば正面方向)から第2方向(例えば左方向)に変えると、その変化に基づいて、ヘッドマウントディスプレイ16に表示される仮想空間画像が第1方向に対応する仮想空間画像から第2方向に対応する仮想空間画像へと変化する。これによってユーザUは仮想空間内にいるかのような錯覚を味わうことができる。
音出力部18はヘッドホン、イヤホン、又はスピーカ等であり、音を出力する。なお、様々な方向や距離から耳に入ってくる音をシミュレーションして音出力部18から出力させることによっていわゆる立体音響を提供してもよい。また、音出力部18から出力する音をヘッドマウントディスプレイ16(ユーザの頭)の向きに応じて変化させてもよい。
ゲーム装置10ではプログラムが実行されることによってゲームが実行される。ゲーム装置10では、例えば、スポーツゲーム(野球、サッカー、テニス、アメリカンフットボール、バスケットボール、バレーボール等を題材としたゲーム)、レースゲーム、格闘ゲーム、戦闘ゲーム、カードゲーム、ロールプレイングゲーム、シミュレーションゲーム、アドベンチャーゲーム、又は育成ゲームのように、ゲーム形式・ジャンルを問わず様々なゲームを実行可能である。
[2.表示制御処理の概要]以下、仮想空間への没入感を損なうことなく、ヘッドマウントディスプレイ16に表示される画像を第1仮想空間画像から第2仮想空間画像に切り替えるための表示制御処理について説明する。
ここで、「仮想空間」とは、メモリ(グラフィックメモリ:VRAM等)に構築される仮想的な3次元空間である。「仮想空間」には複数のオブジェクトが配置される。後述するゲーム空間(図3参照)が「仮想空間」の一例に相当する。
「仮想空間画像」とは、仮想視点から視界方向を見た仮想空間を示す画像である。言い換えれば、「仮想空間画像」とは、視界方向に基づいて仮想空間を投影した画像である。すなわち、「仮想空間画像」とは、仮想空間内の、視界方向を基準とする所定の視野角内の領域(すなわち視界)を示す画像である。後述するゲーム空間画像(図4,5,9)が「仮想空間画像」の一例に相当する。
「仮想視点」とは、仮想空間内に設定される仮想カメラの位置である。ヘッドマウントディスプレイ16の場合、右目用と左目用との2つの仮想カメラが存在することになる。
「視界方向」とは、ヘッドマウントディスプレイ16に表示される仮想空間の方向である。ヘッドマウントディスプレイ16に表示される仮想空間(視界)を決定する方向である。仮想空間画像の中心方向である。視界方向は視線方向と一致していてもよいし、一致していなくてもよい。例えば、アイトラッキング機能のあるヘッドマウントディスプレイ16では、視界方向と視線方向とが異なる場合がある。
ゲーム装置10ではゲームを実行するためにゲーム空間(仮想空間の一例)が構築される。図3はゲーム空間の一例を示す。図3は、野球ゲームを実行する場合に構築される、野球場を模したゲーム空間GSを示している。図3に示すゲーム空間GSにはフィールド(グラウンド)FDとスタンド(観客席)SDとが配置される。また、フィールドFDには、ホームベースHBと一塁ベースFBと二塁ベースSBと三塁ベースTBとが配置される。実際には、選手キャラクタ(野球選手を表すオブジェクト)や審判員キャラクタ(審判員を表すオブジェクト)がフィールドFDに配置され、観客キャラクタ(観客を表すオブジェクト)がスタンドSDに配置されるが、図3では省略している。
またゲーム装置10では、ゲーム空間内に設定される仮想視点からの視界を表すゲーム空間画像がヘッドマウントディスプレイ16に表示される。図4及び図5は、両眼視差を利用した立体視画像としてヘッドマウントディスプレイ16に表示するために生成されたゲーム空間画像の例を示す。
図4に示す第1ゲーム空間画像GAは、仮想視点VP1から視界方向VD1を見たゲーム空間GSを表す画像である。図3に示すように、仮想視点VP1は、右翼側の外野のスタンドSD内の、右翼側のポールRP付近の位置に設定されている。また、視界方向VD1は、右翼側の外野のスタンドSDからホームベースHBへの方向に設定されている。このため、図4に示す第1ゲーム空間画像GAは、右翼側の外野のスタンドSDからホームベースHBへの方向を見たゲーム空間GSを表している。
一方、図5に示す第2ゲーム空間画像GBは、仮想視点VP2から視界方向VD2を見たゲーム空間GSを表す画像である。図3に示すように、仮想視点VP2は、ホームベースHBの後方に配置される捕手キャラクタの位置に設定されている。また、視界方向VD2は、捕手キャラクタからセンター方向に設定されている。このため、図5に示す第2ゲーム空間画像GBは、捕手キャラクタからセンター方向を見たゲーム空間GSを表している。
[2−1]野球ゲームでは、ヘッドマウントディスプレイ16に表示されるゲーム空間画像を切り替える必要が生じる場合がある。例えば、打者キャラクタが三振して次の打者キャラクタが打席に入る場合に、次の打者キャラクタが急に打席に登場するとユーザに違和感を与えてしまうおそれがある。このような場合、例えば、一旦、スタンドSD内の位置から見たゲーム空間画像に切り替え、さらに、スタンドSD内の別の位置から見たゲーム空間画像に切り替え、その後、選手キャラクタ(例えば、捕手キャラクタ、投手キャラクタ、又は打者キャラクタ)から見たゲーム空間画像に切り替えることによって、ユーザに違和感を与えないようにすることができる。以下では、ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える場合を例として、本実施形態における表示制御処理について説明する。
図6は当該表示制御処理の概要について説明するための図であり、ヘッドマウントディスプレイ16に表示される画像について示す図である。なお、図6では、説明の簡便のため、第1ゲーム空間画像GA及び第2ゲーム空間画像GBを簡略化して示しており、文字「A」を示す画像が第1ゲーム空間画像GAに相当し、文字「B」を示す画像が第2ゲーム空間画像GBに相当している。またここでは、ヘッドマウントディスプレイ16(ユーザの頭)の向きが一定であることとする。
ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える際、本実施形態では、第1ゲーム空間画像GAと第2ゲーム空間画像GBとを画像合成してなる画像をヘッドマウントディスプレイ16に表示させる。具体的には、第1ゲーム空間画像GAと第2ゲーム空間画像GBとを半透明合成(アルファブレンディング)してなる画像をヘッドマウントディスプレイ16の表示部161に表示させる。
例えば、アルファ値が0〜255の値で示され、かつ、第1ゲーム空間画像GAのアルファ値がαであるとすると、この場合、ヘッドマウントディスプレイ16の表示部161の各画素の画素値は「第1ゲーム空間画像GAの対応画素の画素値*α+第2ゲーム空間画像GBの対応画素の画素値*(255−α)」に設定される。なお、「対応画素」とは、ヘッドマウントディスプレイ16の表示部161の画素に描画される第1ゲーム空間画像GA又は第2ゲーム空間画像GBの画素である。また、「*」は乗算演算子である。
ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える際、まず、第1ゲーム空間画像GAのアルファ値(α)を「255」に設定する。この場合、第1ゲーム空間画像GAは完全に不透明な状態になり、第2ゲーム空間画像GBは完全に透明な状態になる。その結果、図6(A)に示すように、ヘッドマウントディスプレイ16の表示部161には第1ゲーム空間画像GAのみが表示される。
その後、時間経過に応じて、第1ゲーム空間画像GAのアルファ値(α)を徐々に下げる。この場合、図6(B)に示すように、ヘッドマウントディスプレイ16の表示部161には、第1ゲーム空間画像GAと第2ゲーム空間画像GBとが半透明の状態で表示され、第1ゲーム空間画像GAの透過度は徐々に上がり、第2ゲーム空間画像GBの透過度は徐々に下がる。すなわち、ヘッドマウントディスプレイ16の表示部161では、第1ゲーム空間画像GAが徐々に薄くなり(完全に透明な状態に徐々に近づき)、その代わりに、第2ゲーム空間画像GBが徐々に濃くなる(完全に不透明な状態に徐々に近づく)。
最終的に、第1ゲーム空間画像GAのアルファ値(α)が「0」になると、第1ゲーム空間画像GAは完全に透明な状態になり、第2ゲーム空間画像GBは完全に不透明な状態になる。その結果、図6(C)に示すように、ヘッドマウントディスプレイ16の表示部161には第2ゲーム空間画像GBのみが表示され、第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替えが完了する。なお、第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替えは例えば1秒間程度かけて行われる。
以上のようにすれば、ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える際に、第1ゲーム空間画像GAと第2ゲーム空間画像GBとを半透明合成してヘッドマウントディスプレイ16に表示し、時間経過に応じて、第1ゲーム空間画像GAの透過度を上げ、第2ゲーム空間画像GBの透過度を下げるようにしたことによって、ヘッドマウントディスプレイ16に表示される画像を単に第1ゲーム空間画像GAから第2ゲーム空間画像GBに切り替える場合に比べて、ユーザに与える違和感を軽減できる。
なお、以上では、時間経過に応じて、第1ゲーム空間画像GAの透過度を上げ、かつ、第2ゲーム空間画像GBの透過度を下げるようにしたが、第2ゲーム空間画像GBの透過度を一定にしておき、第1ゲーム空間画像GAの透過度を時間経過に応じて上げるようにしてもよいし、第1ゲーム空間画像GAの透過度を一定にしておき、第2ゲーム空間画像GBの透過度を時間経過に応じて下げるようにしてもよい。
また、以上では、第1ゲーム空間画像GAと第2ゲーム空間画像GBとを半透明合成してヘッドマウントディスプレイ16に表示したが、半透明合成以外の画像合成手法を用いてもよい。例えば、メッシュ状に画像を合成する画像合成方法を用いてもよい。この場合にも、ヘッドマウントディスプレイ16に表示される画像が第1ゲーム空間画像GAから第2ゲーム空間画像GBへと徐々に変化させるようにすればよい。すなわち、ヘッドマウントディスプレイ16において、時間経過に応じて、第1ゲーム空間画像GAが表示された画素の数(面積)が徐々に減少し、第2ゲーム空間画像GBが表示された画素の数(面積)が徐々に増加するようにすればよい。すなわち、時間経過に応じて、第1ゲーム空間画像GAによって第2ゲーム空間画像GBが遮蔽されている画素の数(面積)が徐々に減少するようにすればよい。
また、以上では、ヘッドマウントディスプレイ16に表示される画像を、仮想視点VP1から視界方向VD1を見たゲーム空間GSを表す第1ゲーム空間画像GAから、仮想視点VP2から視界方向VD2を見たゲーム空間GSを表す第2ゲーム空間画像GBへと切り替える場合について説明したが、ヘッドマウントディスプレイ16に表示される画像を例えば、第1時点において仮想視点VP2から視界方向VD2を見たゲーム空間GSを表すゲーム空間画像から、第2時点(第1時点よりも未来(又は過去)の時点)において仮想視点VP2から視界方向VD2を見たゲーム空間GSを表すゲーム空間画像へと切り替えるようにしてもよい。
[2−2]ヘッドマウントディスプレイ16に表示される画像を上記のようにして第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える最中にユーザが頭の向きを変えた場合、ヘッドマウントディスプレイ16に表示される画像がユーザの頭の向きに合わせて更新されないと、ユーザに違和感を与えてしまうおそれがある。すなわち、上記切り替えの最中にユーザが頭の向きを変えた場合、制御部11の処理能力等により、第1ゲーム空間画像GAと第2ゲーム空間画像GBとの両方をユーザの頭の向きの変化に合わせて新たに生成することは難しい。しかしながら、上記のような切り替えの最中にユーザが頭の向きを変えた場合に、変化後のユーザの頭の向きに対応する第1ゲーム空間画像GAを新たに生成しないと、ユーザが頭の向きを変える前の第1ゲーム空間画像GAが固定画像として表示されたままの状態となってユーザに視認されることになるため、ユーザに違和感を与えてしまうおそれがある。その結果、ゲーム空間(仮想空間)への没入感を損なってしまうおそれがある。以下、このような違和感を軽減するための表示制御処理について説明する。
ここでは、図6(B)に示したような状態において、図7に示すように、ヘッドマウントディスプレイ16を装着したユーザUが頭の向きを第1方向UD1から第2方向UD2に変えた場合を想定する。第2方向UD2は、ユーザUを回転軸として第1方向UD1から右方向(時計周り)に比較的小さい角度θ回転してなる方向である。
この場合、例えば図8に示すように、第2方向UD2に対応する新たな視界方向VD2Nが設定される。図8では、視界方向VD2Nは、ホームベースHBの後方に配置される捕手キャラクタから右翼側のポールRPへの方向に設定されている。そして、この場合、図9に示すような、仮想視点VP2から視界方向VD2Nを見たゲーム空間GSを表す新第2ゲーム空間画像GBNが生成され、ヘッドマウントディスプレイ16の表示部161に表示される第2ゲーム空間画像GBが新第2ゲーム空間画像GBNに更新される。
またこの場合、ヘッドマウントディスプレイ16の表示部161に表示される第1ゲーム空間画像GAを、ユーザUの頭の向きの変化方向の逆方向に対応する方向に移動させる。図7に示した例ではユーザUの頭の向きがユーザUから見て右方向に変化しているため、ヘッドマウントディスプレイ16の表示部161に表示される第1ゲーム空間画像GAをユーザUから見て左方向に移動させる。
図10は、この場合の第1ゲーム空間画像GAの移動について説明するための図である。図10(A)は移動前の状態(すなわち、ユーザUの頭の向きが第1方向UD1である場合の状態)を示す。図10(A)に示す状態では、第1ゲーム空間画像GAの中心画素CPがヘッドマウントディスプレイ16の表示部161の中心点162に表示されている。
図10(B)は移動後の状態(すなわち、ユーザUの頭の向きが第2方向UD2に変化した場合の状態)を示す。図10(B)に示す状態では、第1ゲーム空間画像GAの中心画素CPが、ユーザから見て表示部161の中心点162から左方向に距離Xだけ移動した位置に表示されている。ここで、距離Xはユーザの頭の向きの変化量に対応する距離である。なお、図10(B)では、第1ゲーム空間画像GAが左方向に移動したことによって、第1ゲーム空間画像GAの右側の端Eが表示部161に表示されている。図10(B)では省略しているが、第1ゲーム空間画像GA外の領域は例えば黒い画像になっている。
図11は、ユーザUが頭の向きが第2方向UD2になった場合にヘッドマウントディスプレイ16に表示される画像について説明するための図である。図11では、説明の簡便のため、第1ゲーム空間画像GA及び新第2ゲーム空間画像GBNを簡略化して示している。すなわち、図11では、文字「A」を示す画像が第1ゲーム空間画像GAを示している。また、文字「BN」を示す画像が新第2ゲーム空間画像GBNを示している。
図11(A)に示すように、この場合、左方向に移動された第1ゲーム空間画像GAと、新たに生成された新第2ゲーム空間画像GBNとを半透明合成してなる画像がヘッドマウントディスプレイ16の表示部161に表示される。例えば、アルファ値が0〜255の値で示され、かつ、第1ゲーム空間画像GAのアルファ値がαであるとすると、この場合、ヘッドマウントディスプレイ16の表示部161の各画素の画素値は「第1ゲーム空間画像GAの対応画素の画素値*α+新第2ゲーム空間画像GBNの対応画素の画素値*(255−α)」に設定される。この場合、上記のような画像がヘッドマウントディスプレイ16に表示されることによって、ヘッドマウントディスプレイ16に表示される画像がユーザの頭の向きに合わせて更新されることになる。
その後、時間経過に応じて、第1ゲーム空間画像GAのアルファ値(α)を徐々に下げる。この場合、第1ゲーム空間画像GAの透過度は徐々に上がり、新第2ゲーム空間画像GBNの透過度は徐々に下がる。すなわち、ヘッドマウントディスプレイ16では、第1ゲーム空間画像GAが徐々に薄くなり(完全に透明な状態に徐々に近づき)、その代わりに、新第2ゲーム空間画像GBNが徐々に濃くなる(完全に不透明な状態に徐々に近づく)。そして、最終的に、第1ゲーム空間画像GAのアルファ値(α)が「0」になると、第1ゲーム空間画像GAが完全に透明な状態になり、新第2ゲーム空間画像GBNが完全に不透明な状態になる。その結果、図11(B)に示すように、ヘッドマウントディスプレイ16の表示部161には新第2ゲーム空間画像GBNのみが表示される。
以上に説明したように、本実施形態では、ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える最中にユーザが頭の向きを変えた場合に、第2ゲーム空間画像GBに関しては、変化後のユーザの頭の向きに対応する視界方向のゲーム空間GSを表す新第2ゲーム空間画像GBNを生成し、ヘッドマウントディスプレイ16に表示される第2ゲーム空間画像GBを新第2ゲーム空間画像GBNに更新する。一方、第1ゲーム空間画像GAに関しては、変化後のユーザの頭の向きに対応する第1ゲーム空間画像GAを新たに生成することなく(すなわち、新たな第1ゲーム空間画像GAの生成を制限して)、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAをユーザの頭の向きの変化方向の逆方向に対応する移動方向に移動させることによって、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAがユーザの頭の向きに合わせて更新されたかのように見せる。このようにすることによって、ヘッドマウントディスプレイ16に表示される画像がユーザの頭の向きに合わせて更新されるため、ユーザに与える違和感を軽減できる。
以上のように、本実施形態では、変化後のユーザの頭の向きに対応する第1ゲーム空間画像GAを新たに生成せずに、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAをユーザの頭の向きの変化方向とは逆方向に移動させることによって、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAがユーザの頭の向きに合わせて更新されたかのように見せるようにしている。ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAをユーザの頭の向きに合わせて更新するための方法としては、新第2ゲーム空間画像GBNと同様に、変化後のユーザの頭の向きに対応する視界方向のゲーム空間GSを表す新第1ゲーム空間画像を新たに取得し、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像を、新たに取得した新第1ゲーム空間画像に更新する方法も考えられるが、この方法では、新第2ゲーム空間画像GBNとともに新第1ゲーム空間画像を新たに取得する必要があるため、処理負荷が増大する。この点、本実施形態によれば、ユーザが頭の向きを変える前の第1ゲーム空間画像GAを流用し、新第1ゲーム空間画像を新たに取得する必要がないため、処理負荷を軽減できる。
[2−3]以上に説明したように、本実施形態では、ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える最中にユーザが頭の向きを変えた場合に、制御部11の処理負荷等を考慮して、変化後のユーザの頭の向きに対応する第1ゲーム空間画像GAを新たに生成せずに、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAをユーザの頭の向きの変化方向とは逆方向に移動させることによって、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAがユーザの頭の向きに合わせて更新されたかのように見せている。この点、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAを移動させた場合には、図10(B)に示すように、第1ゲーム空間画像GAの端Eがヘッドマウントディスプレイ16に表示され、ヘッドマウントディスプレイ16には、当該端Eを境として、第1ゲーム空間画像GAが表示されている部分と、第1ゲーム空間画像GAが表示されていない部分とが生じる。その結果、第1ゲーム空間画像GA外の領域(例えば黒い画像が表される領域)もユーザの目に入ることによって、ユーザに違和感を与えてしまうおそれがある。
そこで、本実施形態では、第1ゲーム空間画像GAの端部の透過度が第1ゲーム空間画像GAの中央部の透過度よりも高くなるようにして、第1ゲーム空間画像GAの各画素のアルファ値を設定する。
例えば、中心画素CPからの距離が大きくなるにつれてアルファ値が徐々に小さくなるようにして、第1ゲーム空間画像GAの各画素のアルファ値を設定し、第1ゲーム空間画像GAの端部のアルファ値が零又は略零になるように設定する。
例えば図12に示すように、第1ゲーム空間画像GAのアルファ値をαとし、第1ゲーム空間画像GAの中心画素CPから端Eまでの長さをLとし、第1ゲーム空間画像GAの中心画素CPから画素Pまでの長さをlとすると、本実施形態では、第1ゲーム空間画像GAの各画素Pのアルファ値を(α*((L−l)/L))に設定する。
または、例えば図13に示すように、中心画素CPからの距離に応じて第1ゲーム空間画像GA内にn個の部分領域PA1〜PAnを設定し、これらの部分領域PA1〜PAnの各々ごとにアルファ値を設定してもよい。例えば、部分領域PAiのアルファ値を(α*((n−i)/n))に設定してもよい。または、部分領域PAiのアルファ値を(α*((n−i+1)/n))に設定してもよい。なお、第1ゲーム空間画像GA内に、端E付近の端部領域(例えば、図13に示す部分領域PAnのように端Eから所定距離以内の領域)と、端部領域以外の領域とを設定し、端部領域のアルファ値を零又は略零に設定し、端部領域以外の領域のアルファ値をαに設定してもよい。
なお、この際、第1ゲーム空間画像GAのアルファ値(α)は、ユーザUの頭の向きを変化させる直前の時点における第1ゲーム空間画像GAのアルファ値(α)に応じた値に設定される。例えば、ユーザUの頭の向きが第1方向UD1から第2方向UD2に変化する直前の時点T1における第1ゲーム空間画像GAのアルファ値(α)を「α0」とし、単位時間当たりのアルファ値(α)の変化量を「Δα」とすると、ユーザUの頭の向きが第1方向UD1から第2方向UD2に変化した直後の時点T2における第1ゲーム空間画像GAのアルファ値(α)は「α0−Δα*(T2−T1)」に設定される。
以上のようにすることによって、第1ゲーム空間画像GAが表示されている部分と、第1ゲーム空間画像GAが表示されていない部分との境が目立たないようにでき、この点においても、ユーザに与える違和感を軽減できる。なお、ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える最中に第1ゲーム空間画像GAを移動させる場合にのみ、第1ゲーム空間画像GAの端部の透過度を中央部の透過度よりも高く設定してもよいし、ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替える際、最初から第1ゲーム空間画像GAの端部の透過度を中央部の透過度よりも高く設定しておいてもよい。ただし、上記切り替えの最中に第1ゲーム空間画像GAを移動させる場合にのみ第1ゲーム空間画像GAの端部の透過度を中央部の透過度よりも高く設定する態様の方が処理負荷を軽減できる。
[3.機能ブロック]ゲーム装置10で実現される機能ブロックについて説明する。図14は、ゲーム装置10で実現される機能ブロックのうち、本発明に関連するものを示す機能ブロック図である。図14に示すように、ゲーム装置10はデータ記憶部100、検出結果取得部110、仮想空間画像取得部120、表示制御部130、及び変更部140を含む。
データ記憶部100は記憶部12又は光ディスクドライブ部13に装着された光ディスクによって実現される。なお、データ記憶部100は、ゲーム装置10からアクセス可能な他の装置に含まれる記憶部によって実現されてもよい。一方、データ記憶部100、検出結果取得部110、仮想空間画像取得部120、表示制御部130、及び変更部140は主に制御部11によって実現される。
[3−1]データ記憶部100は、仮想空間画像をヘッドマウントディスプレイ16に表示するために必要なデータを記憶する。例えば、仮想空間画像を生成するために必要なデータがデータ記憶部100に記憶される。具体的には、例えば、仮想空間の現在の状態を示す仮想空間データD101がデータ記憶部100に記憶される。例えば、仮想空間データD101は、仮想空間に配置される各オブジェクトの現在の状態(位置、姿勢、又は向き等)を示すデータや、仮想空間内に設定される仮想視点及び視界方向を示すデータを含む。先述した例ではゲーム空間GSが「仮想空間」の一例に相当し、この場合、ゲーム空間GSの現在の状態を示す仮想空間データD101がデータ記憶部100に記憶されることになる。
[3−2]検出結果取得部110はヘッドマウントディスプレイ16の向きの検出結果を取得する。
「ヘッドマウントディスプレイ16の向きの検出結果」とは、ヘッドマウントディスプレイ16がユーザに装着されている場合であれば、ユーザが頭の向きを変えることによって変化するヘッドマウントディスプレイ16の向きの検出結果である。上記の「検出結果」は、ヘッドマウントディスプレイ16の向きの変化を検出する検出部によって検出される。例えば、ヘッドマウントディスプレイ16に内蔵されるセンサ(ジャイロセンサ又は加速度センサ等)、又は、別途設置されたトラッキング部17(撮影部等)が「検出部」の一例に相当する。上記「検出結果」に基づいて、ヘッドマウントディスプレイ16の向きの変化の有無、変化方向、又は変化量を取得できる。
[3−3]仮想空間画像取得部120は仮想空間画像を取得する。
「仮想空間画像を取得する」とは、例えば、仮想空間画像を生成することである。または、「仮想空間画像を取得する」とは、他の装置で生成されて当該装置から送信された仮想空間画像を受信することによって取得することであってもよい。
[3−3−1]仮想空間画像取得部120は第1取得部121と第2取得部122とを含む。第1取得部121は第1仮想空間画像を取得する。第2取得部122は第2仮想空間画像を取得する。
「第1仮想空間画像」と「第2仮想空間画像」とは互いに異なる仮想空間画像である。以下、「第1仮想空間画像」及び「第2仮想空間画像」の具体例について説明する。
(1)例えば、「第1仮想空間画像」と「第2仮想空間画像」とは、仮想視点と視界方向との少なくとも一方が異なる仮想空間画像である。
具体的には、「第1仮想空間画像」は、第1仮想視点から第1視界方向を見た仮想空間を表す画像であり、「第2仮想空間画像」は、第2仮想視点から第2視界方向を見た仮想空間を示す画像である。なお、第1仮想視点と第2仮想視点とが異なる場合、第2視界方向は第1視界方向と異なる方向であってもよいし、同じ方向であってもよい。また、第1視界方向と第2視界方向とが異なる場合、第2仮想視点は第1仮想視点と異なってもよいし、同じであってもよい。
例えば、野球場を模した仮想空間の場合、「第1仮想空間画像」と「第2仮想空間画像」との一方を、いずれかの選手キャラクタ(例えば捕手キャラクタ又は打者キャラクタ等)又は審判キャラクタ(例えば主審キャラクタ)の位置から見た仮想空間を示す画像とし、他方を、それ以外の位置(例えばスタンドの位置)から見た仮想空間を示す画像としてもよい。また例えば、野球場を模した仮想空間の場合、スタンド内の第1位置から見た仮想空間を示す画像を「第1仮想空間画像」とし、スタンド内の第2位置から見た仮想空間を示す画像を「第2仮想空間画像」としてもよい。
(2)また例えば、「第1仮想空間画像」は、仮想視点から視界方向を見た第1状態の仮想空間を示す画像であり、「第2仮想空間画像」は、仮想視点から視界方向を見た第2状態の仮想空間を示す画像であってもよい。具体的には、例えば、野球場を模した仮想空間の場合、第1チームが守備を行っている状態の仮想空間を示す画像を「第1仮想空間画像」とし、第2チームが守備を行っている状態の仮想空間を示す画像を「第2仮想空間画像」としてもよい。
(3)また例えば、「第1仮想空間画像」は、第1時点における仮想空間を示す画像であり、「第2仮想空間画像」は、第1時点よりも後又は前の第2時点における仮想空間を示す画像であってもよい。
(4)また例えば、「第1仮想空間画像」は、第1仮想空間を示す画像であり、「第2仮想空間画像」は、第1仮想空間とは異なる第2仮想空間を示す画像であってもよい。具体的には、例えば、第1野球場を示す第1仮想空間を示す画像を「第1仮想空間画像」とし、第2野球場を示す第2仮想空間を示す画像を「第2仮想空間画像」としてもよい。
先述したゲーム空間GSの例では、第1ゲーム空間画像GAが「第1仮想空間画像」の一例に相当し、第2ゲーム空間画像GBが「第2仮想空間画像」の一例に相当する。
[3−3−2]第2取得部122は、ヘッドマウントディスプレイ16の向きの変化に基づいて、変化後のヘッドマウントディスプレイ16の向きに対応する視界方向の第2仮想空間画像を新たに取得する。
「ヘッドマウントディスプレイ16の向きの変化に基づいて、変化後のヘッドマウントディスプレイ16の向きに対応する視界方向の第2仮想空間画像を新たに取得する」とは、ヘッドマウントディスプレイ16の向きが変化した場合に、変化後のヘッドマウントディスプレイ16の向きに対応する方向を新たな視界方向とした第2仮想空間画像を取得することである。すなわち、仮想視点から当該新たな視界方向を見た仮想空間を示す第2仮想空間画像を取得することである。
先述したゲーム空間GSの例では、新第2ゲーム空間画像GBNが「変化後のヘッドマウントディスプレイ16の向きに対応する視界方向の第2仮想空間画像」の一例に相当する。
[3−4]表示制御部130は、仮想空間画像をヘッドマウントディスプレイ16の表示部に表示するための制御を実行する。
「仮想空間画像をヘッドマウントディスプレイ16の表示部に表示するための制御を実行する」とは、仮想空間画像を生成してヘッドマウントディスプレイ16の表示部に表示することであってもよいし、仮想空間画像をヘッドマウントディスプレイ16の表示部に表示するための画像データを、ヘッドマウントディスプレイ16と接続された他の装置に送信することによって、他の装置に仮想空間画像をヘッドマウントディスプレイ16の表示部に表示させることであってもよい。なお、「画像データ」とは、仮想空間画像自体を示すデータであってもよいし、仮想空間画像を生成するために必要なデータであってもよい。
[3−4−1]表示制御部130は、第1仮想空間画像と第2仮想空間画像とを画像合成してヘッドマウントディスプレイ16の表示部に表示するための制御を実行する。
「画像合成」とは、第1仮想空間画像と第2仮想空間画像とを重畳することである。例えば、半透明合成が「画像合成」の一例に相当する。すなわち、アルファブレンディングが「画像合成」の一例に相当する。より具体的には、例えば、アルファ値が0〜255の値で表され、第1仮想空間画像のアルファ値がαである場合、ヘッドマウントディスプレイ16の各画素の画素値を「第1仮想空間画像の対応画素の画素値*α+第2仮想空間画像の対応画素の画素値*(255−α)」に設定することが「画像合成」の一例に相当する。ここで、「対応画素」とは、ヘッドマウントディスプレイ16の画素に表示される第1仮想空間画像又は第2仮想空間画像の画素である。なお、「画像合成」は半透明合成に限られず、他の画像合成手法であってもよい。例えば、メッシュ状に画像を合成することも「画像合成」の一例に相当する。
先述したゲーム空間GSの例では、表示制御部130は、第1ゲーム空間画像GAと第2ゲーム空間画像GBとを半透明合成してヘッドマウントディスプレイ16の表示部161に表示するための制御を実行する(図6(B)参照)。
[3−4−2]表示制御部130は、ヘッドマウントディスプレイ16の向きの変化に基づいて、ヘッドマウントディスプレイ16の表示部に表示される第2仮想空間画像を、第2取得部122によって新たに取得された第2仮想空間画像に更新し、ヘッドマウントディスプレイ16の表示部に表示される第1仮想空間画像を、ヘッドマウントディスプレイ16の向きの変化方向の逆方向に基づく移動方向に移動させる。
「ヘッドマウントディスプレイ16の向きの変化方向の逆方向に基づく移動方向」とは、ヘッドマウントディスプレイ16の向きの変化方向の逆方向に基づいて得られる移動方向である。ヘッドマウントディスプレイ16の向きの変化方向の逆方向と一致する方向を移動方向とすることであってもよいし、ヘッドマウントディスプレイ16の向きの変化方向の逆方向とのずれが閾値未満の方向を移動方向とすることであってもよい。この場合の「閾値」は、ユーザに違和感を与えない程度に小さい値に設定される。
「ヘッドマウントディスプレイ16の表示部に表示される第1仮想空間画像を移動させる」とは、第1仮想空間画像の画素の表示位置を現在の位置から別の位置に変更するようにして、ヘッドマウントディスプレイ16の表示部に表示される第1仮想空間画像を更新することである。
「ヘッドマウントディスプレイ16の表示部に表示される第1仮想空間画像を移動方向に移動させる」とは、第1仮想空間画像の画素の表示位置を、現在の位置から移動方向に移動してなる別の位置に変更するようにして、ヘッドマウントディスプレイ16の表示部に表示される第1仮想空間画像を更新することである。この場合、第1仮想空間画像の移動速度や移動量は、ヘッドマウントディスプレイ16の向きの変化(変化速度又は変化量)に対応する移動速度や移動量になる。
「ヘッドマウントディスプレイ16の向きの変化に応じて、ヘッドマウントディスプレイ16の表示部に表示される第2仮想空間画像を、新たに取得された第2仮想空間画像に更新し、ヘッドマウントディスプレイ16の表示部に表示される第1仮想空間画像を、ヘッドマウントディスプレイ16の向きの変化方向の逆方向に基づく移動方向に移動させる」とは、ヘッドマウントディスプレイ16の向きが変化した場合に、変化後のヘッドマウントディスプレイ16の向きに対応する方向を新たな視界方向とした第2仮想空間画像と、ヘッドマウントディスプレイ16の向きの変化方向の逆方向に基づく移動方向に移動させた第1仮想空間画像とを画像合成してヘッドマウントディスプレイ16の表示部に表示させることである。
先述したゲーム空間GSの例では、例えば図7に示したように、ユーザUの頭の向きが変化した場合に、表示制御部130は、変化後のヘッドマウントディスプレイ16の向きに対応する新第2ゲーム空間画像GBNと、ヘッドマウントディスプレイ16の向きの変化方向の逆方向に移動させた第1ゲーム空間画像GAとを半透明合成してヘッドマウントディスプレイ16の表示部161に表示するための制御を実行する(図11(A)参照)。
[3−5]変更部140は、時間経過に応じて、第1仮想空間画像による第2仮想空間画像の遮蔽度を下げる。
「遮蔽度」とは、第1仮想空間画像によって第2仮想空間画像が遮蔽される程度である。「遮蔽度を下げる」とは、第1仮想空間画像によって第2仮想空間画像が遮蔽される程度を下げることである。
第1仮想空間画像と第2仮想空間画像とが半透明合成されてヘッドマウントディスプレイ16に表示される場合、第1仮想空間画像の透過度又は第2仮想空間画像の透過度が「遮蔽度」の一例に相当する。第1仮想空間画像の透過度を上げることが「遮蔽度を下げる」ことの一例に相当する。また、第2仮想空間画像の透過度を下げることが「遮蔽度を下げる」ことの一例に相当する。
例えば、第1仮想空間画像の透過度が0%に設定される(すなわち、第1仮想空間画像が完全に不透明な状態に設定される)場合、第2仮想空間画像の透過度は100%になり、第2仮想空間画像が完全に透明な状態になるため、遮蔽度は100%ということになる。
また例えば、第1仮想空間画像の透過度が100%に設定される(すなわち、第2仮想空間画像の透過度が0%になり、第2仮想空間画像が完全に不透明な状態になる)場合、第1仮想空間画像が完全に透明な状態に設定されるため、遮蔽度は0%ということになる。
同様に、第1仮想空間画像の透過度が25%に設定される場合(すなわち、第2仮想空間画像の透過度が75%になる場合)、遮蔽度は75%ということになる。また、第1仮想空間画像の透過度が75%に設定される場合(すなわち、第2仮想空間画像の透過度が25%になる場合)、遮蔽度は25%ということになる。
なお、第1仮想空間画像によって第2仮想空間画像がメッシュ状に遮蔽されるようにして第1仮想空間画像と第2仮想空間画像とが画像合成されてヘッドマウントディスプレイ16に表示される場合、第1仮想空間画像によって第2仮想空間画像が遮蔽される面積の割合が「遮蔽度」の一例に相当する。第1仮想空間画像によって第2仮想空間画像が遮蔽される面積の割合を下げることが「遮蔽度を下げる」ことの一例に相当する。
「時間経過に応じて遮蔽度を下げる」とは、時間が経過するのに応じて遮蔽度を徐々に下げることである。例えば、所定時間ごとに、遮蔽度を所定量ずつ下げることである。
例えば、第1仮想空間画像と第2仮想空間画像とが半透明合成されてヘッドマウントディスプレイ16に表示される場合において、変更部140は、時間経過に応じて、第1仮想空間画像と第2仮想空間画像との少なくとも一方の透過度を変更することよって、第1仮想空間画像による第2仮想空間画像の遮蔽度を下げる。
「透過度」は、例えばアルファ値によって示される。例えば、アルファ値が0〜255の値で表され、第1仮想空間画像のアルファ値がαであり、ヘッドマウントディスプレイ16の画素の画素値が「第1仮想空間画像の対応画素の画素値*α+第2仮想空間画像の対応画素の画素値*(255−α)」に設定される場合、第1仮想空間画像の透過度はαであり、第2仮想空間画像の透過度は(255−α)である。この場合、第1仮想空間画像のアルファ値が小さいほど、第1仮想空間画像の透過度が高く、第2仮想空間画像の透過度が低いことになり、第1仮想空間画像のアルファ値が大きいほど、第1仮想空間画像の透過度が低く、第2仮想空間画像の透過度が高いことになる。
「時間経過に応じて、第1仮想空間画像と第2仮想空間画像との少なくとも一方の透過度を変更する」とは、例えば、時間が経過するのに応じて、第1仮想空間画像の透過度を変更することである。例えば、時間が経過するのに応じて、第1仮想空間画像の透過度を徐々に上げることである。
または、「時間経過に応じて、第1仮想空間画像と第2仮想空間画像との少なくとも一方の透過度を変更する」とは、例えば、時間が経過するのに応じて、第2仮想空間画像の透過度を変更することである。例えば、時間が経過するのに応じて、第2仮想空間画像の透過度を徐々に下げることである。
あるいは、「時間経過に応じて、第1仮想空間画像と第2仮想空間画像との少なくとも一方の透過度を変更する」とは、例えば、時間が経過するのに応じて、第1仮想空間画像と第2仮想空間画像と両方の透過度を変更することである。例えば、時間が経過するのに応じて、第1仮想空間画像の透過度を徐々に上げ、第2仮想空間画像の透過度を徐々に下げることである。
変更部140は第1変更部141と第2変更部142との少なくとも一方を含む。
第1変更部141は時間経過に応じて第1仮想空間画像の透過度を上げる。
「時間経過に応じて第1仮想空間画像の透過度を上げる」とは、時間が経過するのに応じて、第1仮想空間画像の透過度を徐々に上げることである。例えば、第2仮想空間画像の透過度よりも第1仮想空間画像の透過度が低く設定された状態から、時間が経過するのに応じて、第1仮想空間画像の透過度を徐々に上げることである。より具体的には、例えば、所定時間ごとに、第1仮想空間画像の透過度を所定値ずつ上げることである。
「第1仮想空間画像の透過度を上げる」とは、アルファ値が小さいほど透過度が高いことを示す場合であれば、第1仮想空間画像のアルファ値を下げることである。なお、「第1仮想空間画像の透過度を上げる」とは、アルファ値が大きいほど透過度が高いことを示す場合であれば、第1仮想空間画像のアルファ値を上げることである。例えば、ヘッドマウントディスプレイ16の表示部の各画素の画素値が「第1仮想空間画像の対応画素の画素値*α+第2仮想空間画像の対応画素の画素値*(255−α)」に設定される場合であれば、αの値を下げることが「第1仮想空間画像の透過度を上げる」ことに相当する。
第1変更部141は、第1仮想空間画像の端部の透過度が第1仮想空間画像の中央部の透過度よりも高くなるようにして、第1仮想空間画像の透過度を設定する。
「第1仮想空間画像の端部」とは、第1仮想空間画像の端の画素である。第1仮想空間画像の端付近の画素であってもよい。「端の画素」とは、第1仮想空間画像が生成された際の視界の端に対応する画素である。「端付近の画素」とは、第1仮想空間画像の端から所定距離以内の画素である。
「第1仮想空間画像の中央部」とは、第1仮想空間画像の中心の画素である。第1仮想空間画像の中心付近の画素であってもよい。「中心の画素」とは、第1仮想空間画像が生成された際の視界の中心に対応する画素である。「中心付近の画素」とは、第1仮想空間画像の中心から所定距離以内の画素である。
「第1仮想空間画像の端部の透過度が第1仮想空間画像の中央部の透過度よりも高くなるようにして、第1仮想空間画像の透過度を設定する」とは、例えば、第1仮想空間画像の中央部から端部に向かって徐々に透過度が高くなるようにして、第1仮想空間画像の透過度を設定することである。
または、「第1仮想空間画像の端部の透過度が第1仮想空間画像の中央部の透過度よりも高くなるようにして、第1仮想空間画像の透過度を設定する」とは、例えば、第1仮想空間画像の端部以外の透過度を第1透過度に設定し、第1仮想空間画像の端部の透過度を、第1透過度よりも高い第2透過度に設定することであってもよい。
第2変更部142は時間経過に応じて第2仮想空間画像の透過度を下げる。
「時間経過に応じて第2仮想空間画像の透過度を下げる」とは、時間が経過するのに応じて、第2仮想空間画像の透過度を徐々に下げることである。例えば、第1仮想空間画像の透過度よりも第2仮想空間画像の透過度が高く設定された状態から、時間が経過するのに応じて、第2仮想空間画像の透過度を徐々に下げることである。より具体的には。例えば、所定時間ごとに、第2仮想空間画像の透過度を所定値ずつ下げることである。
「第2仮想空間画像の透過度を下げる」とは、アルファ値が小さいほど透過度が高いことを示す場合であれば、第2仮想空間画像のアルファ値を上げることである。なお、「第2仮想空間画像の透過度を下げる」とは、アルファ値が大きいほど透過度が高いことを示す場合であれば、第2仮想空間画像のアルファ値を下げることである。例えば、ヘッドマウントディスプレイ16の各画素の画素値が「第1仮想空間画像の対応画素の画素値*α+第2仮想空間画像の対応画素の画素値*(255−α)」に設定される場合であれば、(255−α)の値を上げることが「第2仮想空間画像の透過度を下げる」ことに相当する。すなわち、αの値を下げることが「第2仮想空間画像の透過度を下げる」ことに相当する。
先述したゲーム空間GSの例では、第1変更部141は、時間経過に応じて、第1ゲーム空間画像GAの透過度を徐々に上げ、第2変更部142は、時間経過に応じて、第2ゲーム空間画像GB(又は新第2ゲーム空間画像GBN)の透過度を徐々に下げる。
[4.処理]ゲーム装置10で実行される処理について説明する。図15は、ヘッドマウントディスプレイ16の表示部に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへと切り替えるための処理の一例を示す。制御部11が図15に示す処理をプログラムに従って実行することによって、制御部11が図14に示した機能ブロック(データ記憶部100を除く)として機能する。
図15に示すように、まず、制御部11は、仮想視点VP1から視界方向VD1を見たゲーム空間GSを表す第1ゲーム空間画像GAを生成する(S100)。また、制御部11は、仮想視点VP2から視界方向VD2を見たゲーム空間GSを表す第2ゲーム空間画像GBを生成する(S102)。さらに、制御部11は変数αを「255」に初期化する(S104)。そして、制御部11は、第1ゲーム空間画像GAと第2ゲーム空間画像GBとを半透明合成してなる画像をヘッドマウントディスプレイ16の表示部161に表示する(S106)。この場合、制御部11は第1ゲーム空間画像GAの各画素のアルファ値を変数αの値に設定する。このため、ヘッドマウントディスプレイ16の表示部161の各画素の画素値は「第1ゲーム空間画像GAの対応画素の画素値*α+第2ゲーム空間画像GBの対応画素の画素値*(255−α)」に設定される。
ステップS106の実行後、制御部11は、ヘッドマウントディスプレイ16に内蔵されるジャイロセンサ又は加速度センサの検出結果(又はトラッキング部17の検出結果)に基づいて、ヘッドマウントディスプレイ16の向きが変化したか否かを判定する(S108)。
ヘッドマウントディスプレイ16の向きが変化したと判定されなかった場合(S108:No)、制御部11は変数αから所定量Δαを減算し(S118)、ヘッドマウントディスプレイ16の表示部161に表示される画像を更新する(S120)。この場合、制御部11は、第1ゲーム空間画像GAの各画素のアルファ値をステップS116で減算された変数αの値に設定する。この場合、ヘッドマウントディスプレイ16の表示部161の各画素の画素値は「第1ゲーム空間画像GAの対応画素の画素値*α+第2ゲーム空間画像GBの対応画素の画素値*(255−α)」に設定される。
一方、ヘッドマウントディスプレイ16の向きが変化したと判定された場合(S108:Yes)、制御部11は、ヘッドマウントディスプレイ16の向きの変化方向及び変化量を取得する(S110)。また、制御部11は、変化後のヘッドマウントディスプレイ16の向きに対応する新たな視界方向VD2Nを取得し、仮想視点VP2から新たな視界方向VD2Nを見たゲーム空間GSを表す新第2ゲーム空間画像GBNを新たに生成する(S112)。
ステップS112の実行後、制御部11は変数αから所定量Δαを減算し(S114)、ヘッドマウントディスプレイ16の表示部161に表示される画像を更新する(S116)。
この場合、制御部11は、第1ゲーム空間画像GAの画素の表示位置が、元々の表示位置から、ヘッドマウントディスプレイ16の向きの変化方向の逆方向に、ヘッドマウントディスプレイ16の向きの変化量に対応する移動距離だけ移動した位置となるようにしつつ、当該第1ゲーム空間画像GAと、ステップS112で生成された新第2ゲーム空間画像GBNとを半透明合成してヘッドマウントディスプレイ16の表示部161に表示する。
またこの場合、制御部11は、第1ゲーム空間画像GAの各画素のアルファ値を(α*((L−l)/L))に設定する。ここで、「L」は第1ゲーム空間画像GAの中心画素CPから端Eまでの長さであり、「l」は第1ゲーム空間画像GAの中心画素CPから画素までの長さである。この場合、ヘッドマウントディスプレイ16の表示部161の各画素の画素値は、第1ゲーム空間画像GAの対応画素のアルファ値をαpとすると、「第1ゲーム空間画像GAの対応画素の画素値*αp+新第2ゲーム空間画像GBNの対応画素の画素値*(255−αp)」に設定される。なお、第1ゲーム空間画像GAが表示されていない部分の画素の画素値は新第2ゲーム空間画像GBNの対応画素の画素値に設定される。
ステップS116又はS120の実行後、制御部11は変数αが「0」であるか否かを判定する(S122)。変数αが「0」である場合、制御部11は本処理を終了する。一方、変数αが「0」でない場合、制御部11はステップS108を再実行する。すなわち、変数αが「0」になるまで、制御部11はステップS108〜S120を所定時間ごとに繰り返し実行する。
[5.まとめ]ゲーム装置10では、第1ゲーム空間画像GAと第2ゲーム空間画像GBとを画像合成してヘッドマウントディスプレイ16に表示し、時間経過に応じて、第1ゲーム空間画像GAの透過度を上げ、第2ゲーム空間画像GBの透過度を下げるため、ヘッドマウントディスプレイ16に表示される画像を単に第1ゲーム空間画像GAから第2ゲーム空間画像GBに切り替える場合に比べて、ユーザに与える違和感を軽減できる。
ヘッドマウントディスプレイ16に表示される画像を第1ゲーム空間画像GAから第2ゲーム空間画像GBへ切り替える最中に、ユーザが頭の向きを変えた場合、ヘッドマウントディスプレイ16に表示される画像がユーザの頭の向きに合わせて更新されないと、ユーザに違和感を与えてしまい、ゲーム空間GS(仮想空間)への没入感を損なってしまうおそれがある。この点、ゲーム装置10によれば、第1ゲーム空間画像GAから第2ゲーム空間画像GBへの切り替えの最中に、ヘッドマウントディスプレイ16の向きが変化した場合(すなわち、ユーザが頭の向きを変えた場合)に、ヘッドマウントディスプレイ16に表示される第2ゲーム空間画像GBを、変化後のヘッドマウントディスプレイ16の向きに対応する新第2ゲーム空間画像GBNに更新し、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAを、ヘッドマウントディスプレイ16の向きの変化方向の逆方向に移動させることによって、ヘッドマウントディスプレイ16に表示される画像をユーザの頭の向きに合わせて更新でき、ユーザに与える違和感を軽減できる。
なお、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAをユーザの頭の向きに合わせて更新するための方法としては、新第2ゲーム空間画像GBNと同様に、変化後のヘッドマウントディスプレイ16の向きに対応する新第1ゲーム空間画像を新たに取得して、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAを、新たに取得された新第1ゲーム空間画像に更新する方法も考えられるが、この方法では、新第2ゲーム空間画像GBNとともに新第1ゲーム空間画像を新たに取得する必要があるため、処理負荷が増大する。この点、ゲーム装置10によれば、新第1ゲーム空間画像を新たに取得する必要がないため(新第1ゲーム空間画像を新たに取得することが制限されるため)、処理負荷を軽減できる。
また、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAを移動させた場合、第1ゲーム空間画像GAの端Eがヘッドマウントディスプレイ16に表示され、ヘッドマウントディスプレイ16には、当該端Eを境として、第1ゲーム空間画像GAが表示されている部分と、第1ゲーム空間画像GAが表示されていない部分とが生じるため、ユーザに違和感を与えてしまうおそれがある。この点、ゲーム装置10によれば、第1ゲーム空間画像GAの中央部から端部に向かって徐々に透過度が高くなるようにして、第1ゲーム空間画像GAの透過度を設定することによって、第1ゲーム空間画像GAが表示されている部分と、第1ゲーム空間画像GAが表示されていない部分との境が目立たないようにでき、ユーザに与える違和感を軽減できる。
また、ゲーム装置10によれば、ユーザに与える違和感を軽減できる結果として、いわゆる「VR酔い」も軽減できる。
[6.変形例]本発明は以上に説明した実施形態に限定されるものではない。
[6−1]以上に説明した実施形態では、ヘッドマウントディスプレイ16に表示される第1ゲーム空間画像GAを移動させる場合に、第1ゲーム空間画像GAの中央部から端部に向かって徐々に透過度が高くなるようにして、第1ゲーム空間画像GAの透過度を設定することによって、第1ゲーム空間画像GAが表示されている部分と、第1ゲーム空間画像GAが表示されていない部分との境が目立たないようにしたが、例えば、第1ゲーム空間画像GAが表示されていない部分に別の画像(例えば抽象的な模様又は無数のボールやバットのような模様)を表示させ、それらが迫ってくるように演出してもよい。
[6−2]本発明は、ゲーム装置とゲームサーバとの間でデータ通信を行いながら、ヘッドマウントディスプレイ16に表示される画像が更新されるようなゲームシステムにも適用できる。
図16は、本発明の他の実施形態に係る表示制御システムの一態様であるゲームシステム1Aの構成を示す図である。ゲームシステム1Aはゲーム装置10Aとゲームサーバ30Aとを含む。ゲーム装置10Aとゲームサーバ30AとはネットワークNに接続されており、ゲーム装置10Aとゲームサーバ30Aとの間で相互にデータ通信が可能である。ゲーム装置10Aは図1に示したゲーム装置10と同様であるため、ここでは説明を省略する。
ゲームサーバ30Aは例えばサーバコンピュータである。図16に示すように、ゲームサーバ30Aは制御部31、記憶部32、光ディスクドライブ部33、及び通信部34を含む。これらは図1に示した制御部11、記憶部12、光ディスクドライブ部13、及び通信部14と同様である。プログラムやデータは光ディスクを介してゲームサーバ30Aに供給される。光ディスク以外の情報記憶媒体(例えばメモリカード)に記憶されたプログラムやデータを読み取るための構成要素(例えばメモリーカードスロット)がゲームサーバ30Aに備えられてもよい。そして、プログラムやデータが光ディスク以外の情報記憶媒体を介してゲームサーバ30Aに供給されてもよい。または、プログラムやデータはネットワークNを介してゲームサーバ30Aに供給されてもよい。
ゲームシステム1Aでは、図14に示した機能ブロックのすべてがゲーム装置10A(表示制御装置の一例)で実現されてもよいし、ゲームサーバ30A(表示制御装置の他の一例)で実現されてもよい。また、図14に示した機能ブロックの一部がゲーム装置10Aで実現され、残りがゲームサーバ30Aで実現されてもよい。
例えば、第1ゲーム空間画像GA又は第2ゲーム空間画像GBをゲームサーバ30Aで生成し、当該第1ゲーム空間画像GA又は第2ゲーム空間画像GBをゲーム装置10Aに送信することによって当該第1ゲーム空間画像GA又は第2ゲーム空間画像GBをヘッドマウントディスプレイ16に表示させてもよい。この場合、ヘッドマウントディスプレイ16の向きに関するデータをゲームサーバ30Aに送信し、ヘッドマウントディスプレイ16の向きが変化した場合に、ゲームサーバ30Aで、変化後のヘッドマウントディスプレイ16の向きに対応する新第2ゲーム空間画像GBNを新たに生成し、当該新第2ゲーム空間画像GBNをゲーム装置10Aに送信することによって当該新第2ゲーム空間画像GBNをヘッドマウントディスプレイ16に表示させてもよい。
[6−3]以上では、野球場を模したゲーム空間GSのゲーム空間画像をヘッドマウントディスプレイ16に表示する場合について主に説明したが、本発明は、他のゲーム空間画像をヘッドマウントディスプレイ16に表示する場合にも適用できる。また、本発明は、ゲーム装置10,10Aやゲームサーバ30A以外の表示制御装置や、ゲームシステム1A以外の表示制御システムにも適用できる。すなわち、本発明は、ゲーム空間画像以外の仮想空間画像をヘッドマウントディスプレイ16に表示する場合にも適用できる。
[7.付記]以上のような記載から、本発明は例えば以下のように把握される。なお、本発明の理解を容易にするために、適宜図面に記載された符号を括弧書きで記載するが、それにより本発明が図示の態様に限定されるものではない。
1)本発明の一態様に係る表示制御装置(10,10A,30A)は、両眼視差を利用した立体視画像として、仮想空間(GS)内の仮想視点(VP1,VP2)から視界方向(VD1,VD2,VD2N)を見た仮想空間を表す仮想空間画像(GA,GB,GBN)を表示可能な表示部を備えたヘッドマウントディスプレイ(16)の表示を制御する表示制御装置(10,10A,30A)において、前記ヘッドマウントディスプレイ(16)の向きの検出結果を取得する検出結果取得手段(110)と、第1仮想空間画像(GA)を取得する第1取得手段(121)と、第2仮想空間画像(GB)を取得する第2取得手段(122)と、前記第1仮想空間画像(GA)と前記第2仮想空間画像(GB)とを画像合成して前記表示部に表示するための制御を実行する表示制御手段(130)と、時間経過に応じて、前記第1仮想空間画像(GA)による前記第2仮想空間画像(GB)の遮蔽度を下げる変更手段(140)と、を含み、前記第2取得手段(122)は、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、変化後の前記ヘッドマウントディスプレイ(16)の向きに対応する前記視界方向(VD2N)の前記第2仮想空間画像(GBN)を新たに取得し、前記表示制御手段(130)は、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、前記表示部に表示される前記第2仮想空間画像(GB)を、新たに取得された前記第2仮想空間画像(GBN)に更新し、前記表示部に表示される前記第1仮想空間画像(GA)を、前記ヘッドマウントディスプレイ(16)の向きの変化方向の逆方向に基づく移動方向に移動させる。
4)本発明の一態様に係る表示制御システム(1A)は、両眼視差を利用した立体視画像として、仮想空間内の仮想視点から視界方向を見た仮想空間を表す仮想空間画像を表示可能な表示部を備えたヘッドマウントディスプレイ(16)の表示を制御する表示制御システム(1A)において、前記ヘッドマウントディスプレイ(16)の向きの検出結果を取得する検出結果取得手段と(110)、第1仮想空間画像を取得する第1取得手段(121)と、第2仮想空間画像を取得する第2取得手段(122)と、前記第1仮想空間画像と前記第2仮想空間画像とを画像合成して前記表示部に表示するための制御を実行する表示制御手段(130)と、時間経過に応じて、前記第1仮想空間画像による前記第2仮想空間画像の遮蔽度を下げる変更手段(140)と、を含み、前記第2取得手段(122)は、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、変化後の前記ヘッドマウントディスプレイ(16)の向きに対応する前記視界方向の前記第2仮想空間画像を新たに取得し、前記表示制御手段(130)は、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、前記表示部に表示される前記第2仮想空間画像を、新たに取得された前記第2仮想空間画像に更新し、前記表示部に表示される前記第1仮想空間画像を、前記ヘッドマウントディスプレイ(16)の向きの変化方向の逆方向に基づく移動方向に移動させる。
5)本発明の一態様に係る表示制御装置(10,10A,30A)は、両眼視差を利用した立体視画像として、仮想空間内の仮想視点から視界方向を見た仮想空間を表す仮想空間画像を表示可能な表示部を備えたヘッドマウントディスプレイ(16)の表示を制御する表示制御装置(10,10A,30A)において、前記ヘッドマウントディスプレイ(16)の向きの検出結果を取得する検出結果取得手段(110)と、第1仮想空間画像を取得する手段であって、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、変化後の前記ヘッドマウントディスプレイ(16)の向きに対応する前記視界方向の前記第1仮想空間画像を新たに取得する第1取得手段(121)と、第2仮想空間画像を取得する手段であって、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、変化後の前記ヘッドマウントディスプレイ(16)の向きに対応する前記視界方向の前記第2仮想空間画像を新たに取得する第2取得手段(122)と、前記第1仮想空間画像と前記第2仮想空間画像とを画像合成して前記表示部に表示するための制御を実行する表示制御手段(130)と、前記第1仮想空間画像と前記第2仮想空間画像とが画像合成されて前記表示部に表示される場合に、時間経過に応じて、前記第1仮想空間画像による前記第2仮想空間画像の遮蔽度を下げる変更手段(140)と、を含み、前記表示制御装置(10,10A,30A)は、前記第1仮想空間画像と前記第2仮想空間画像とが画像合成されて前記表示部に表示される場合に、前記第1仮想空間画像と前記第2仮想空間画像とのうちの一方の仮想空間画像の新たな取得を制限する手段(120)をさらに含み、前記表示制御手段(130)は、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、前記表示部に表示される前記一方の仮想空間画像を、前記ヘッドマウントディスプレイ(16)の向きの変化方向の逆方向に基づく移動方向に移動させ、前記表示部に表示される、前記第1仮想空間画像と前記第2仮想空間画像とのうちの他方の仮想空間画像を、新たに取得される仮想空間画像に更新する。
6)本発明の一態様に係る表示制御システム(1A)は、両眼視差を利用した立体視画像として、仮想空間内の仮想視点から視界方向を見た仮想空間を表す仮想空間画像を表示可能な表示部を備えたヘッドマウントディスプレイ(16)の表示を制御する表示制御システム(1A)において、前記ヘッドマウントディスプレイ(16)の向きの検出結果を取得する検出結果取得手段(110)と、第1仮想空間画像を取得する手段であって、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、変化後の前記ヘッドマウントディスプレイ(16)の向きに対応する前記視界方向の前記第1仮想空間画像を新たに取得する第1取得手段(121)と、第2仮想空間画像を取得する手段であって、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、変化後の前記ヘッドマウントディスプレイ(16)の向きに対応する前記視界方向の前記第2仮想空間画像を新たに取得する第2取得手段(122)と、前記第1仮想空間画像と前記第2仮想空間画像とを画像合成して前記表示部に表示するための制御を実行する表示制御手段(130)と、前記第1仮想空間画像と前記第2仮想空間画像とが画像合成されて前記表示部に表示される場合に、時間経過に応じて、前記第1仮想空間画像による前記第2仮想空間画像の遮蔽度を下げる変更手段(140)と、を含み、前記表示制御システム(1A)は、前記第1仮想空間画像と前記第2仮想空間画像とが画像合成されて前記表示部に表示される場合に、前記第1仮想空間画像と前記第2仮想空間画像とのうちの一方の仮想空間画像の新たな取得を制限する手段(130)をさらに含み、前記表示制御手段(130)は、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、前記表示部に表示される前記一方の仮想空間画像を、前記ヘッドマウントディスプレイ(16)の向きの変化方向の逆方向に基づく移動方向に移動させ、前記表示部に表示される、前記第1仮想空間画像と前記第2仮想空間画像とのうちの他方の仮想空間画像を、新たに取得される仮想空間画像に更新する。
7)また、本発明の一態様に係るプログラムは、1)〜3),5)のいずれかに記載の表示制御装置(10,10A,30A)、又は、4)又は6)に記載の表示制御システム(1A)としてコンピュータを機能させるためのプログラムである。
8)また、本発明の一態様に係る情報記憶媒体は、7)に記載のプログラムを記録したコンピュータで読み取り可能な情報記憶媒体である。
9)また、本発明の一態様に係る表示制御方法は、両眼視差を利用した立体視画像として、仮想空間内の仮想視点から視界方向を見た仮想空間を表す仮想空間画像を表示可能な表示部を備えたヘッドマウントディスプレイ(16)の表示を制御する表示制御方法において、前記ヘッドマウントディスプレイの向きの検出結果を取得する検出結果取得ステップ(S110)と、第1仮想空間画像を取得する第1取得ステップ(S100)と、第2仮想空間画像を取得する第2取得ステップ(S102,S112)と、前記第1仮想空間画像と前記第2仮想空間画像とを画像合成して前記表示部に表示するための制御を実行する表示制御ステップ(S106,S116,S120)と、時間経過に応じて、前記第1仮想空間画像による前記第2仮想空間画像の遮蔽度を下げる変更ステップ(S114,S118)と、を含み、前記第2取得ステップ(S112)では、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、変化後の前記ヘッドマウントディスプレイ(16)の向きに対応する前記視界方向の前記第2仮想空間画像を新たに取得し、前記表示制御ステップ(S116)では、前記ヘッドマウントディスプレイ(16)の向きの変化に基づいて、前記表示部に表示される前記第2仮想空間画像を、新たに取得された前記第2仮想空間画像に更新し、前記表示部に表示される前記第1仮想空間画像を、前記ヘッドマウントディスプレイの向きの変化方向の逆方向に基づく移動方向に移動させる。
上記1),4)〜9)に記載の発明によれば、第1仮想空間画像と第2仮想空間画像とを画像合成してヘッドマウントディスプレイに表示し、時間経過に応じて、前記第1仮想空間画像による前記第2仮想空間画像の遮蔽度を下げるため、ヘッドマウントディスプレイに表示される仮想空間画像を単に第1仮想空間画像から第2仮想空間画像に切り替える場合に比べて、ユーザに与える違和感を軽減できる。
また、第1仮想空間画像から第2仮想空間画像への切り替えの最中に、ユーザが頭の向きを変えた場合、ヘッドマウントディスプレイに表示される第1仮想空間画像及び第2仮想空間画像がユーザの頭の向きに合わせて更新されないと、ユーザに違和感を与えてしまい、仮想空間への没入感を損なってしまうおそれがある。例えば、上記切り替えの最中にユーザが頭を向きを変えた場合、表示制御装置の処理能力等により、第1仮想空間画像と第2仮想空間画像との両方を変化後のユーザの頭の向きに合わせて新たに取得(生成)することは難しい場合がある。この点、上記切り替えの最中にユーザが頭の向きを変えた場合に、変化後のユーザの頭の向きに対応する第1仮想空間画像を新たに取得しないと、ユーザが頭を動かす前の第1仮想空間画像が固定画像として表示されたままの状態となってユーザに視認されることになるため、ユーザに違和感を与えてしまうおそれがある。この点、本発明によれば、第1仮想空間画像から第2仮想空間画像への切り替えの最中に、ヘッドマウントディスプレイの向きが変化した場合(すなわち、ユーザが頭の向きを変えた場合)に、ヘッドマウントディスプレイに表示される第2仮想空間画像を、変化後の前記ヘッドマウントディスプレイの向きに対応する視界方向の第2仮想空間画像に更新し、ヘッドマウントディスプレイに表示される第1仮想空間画像を、ヘッドマウントディスプレイの向きの変化方向の逆方向に基づく移動方向に移動させることによって、ヘッドマウントディスプレイに表示される第1仮想空間画像及び第2仮想空間画像がユーザの頭の向きに合わせて更新されるようになり、ユーザに与える違和感を軽減できる。
なお、表示制御装置の処理能力等の点で可能であるならば、ヘッドマウントディスプレイに表示される第1仮想空間画像をユーザの頭の向きに合わせて更新するための方法としては、第2仮想空間画像と同様に、変化後のヘッドマウントディスプレイの向きに対応する視界方向の第1仮想空間画像を新たに取得して、ヘッドマウントディスプレイに表示される第1仮想空間画像を、新たに取得された第1仮想空間画像に更新する方法も考えられるが、この方法では、第2仮想空間画像とともに第1仮想空間画像も新たに取得する必要があるため、処理負荷が増大する。この点、本発明によれば、ユーザが頭の向きを変える前の第1仮想空間画像を流用し、第1仮想空間画像を新たに取得する必要がないため、処理負荷を軽減できる。
2)本発明の一態様では、前記変更手段(140)は、時間経過に応じて、前記第1仮想空間画像の透過度と前記第2仮想空間画像の透過度との少なくとも一方を変更することによって、前記第1仮想空間画像による前記第2仮想空間画像の前記遮蔽度を下げる手段であり、前記変更手段(140)は、時間経過に応じて、前記第1仮想空間画像の透過度を上げる第1変更手段(141)と、時間経過に応じて、前記第2仮想空間画像の透過度を下げる第2変更手段(142)と、の少なくとも一方を含むようにしてもよい。
2)本発明によれば、第1仮想空間画像と第2仮想空間画像とを画像合成してヘッドマウントディスプレイに表示し、時間経過に応じて、第1仮想空間画像の透過度を上げることと、第2仮想空間画像の透過度を下げることとの少なくとも一方を行うため、ヘッドマウントディスプレイに表示される仮想空間画像を単に第1仮想空間画像から第2仮想空間画像に切り替える場合に比べて、ユーザに与える違和感を軽減できる。
3)本発明の一態様では、前記変更手段(140)は、前記第1仮想空間画像の端部の透過度が前記第1仮想空間画像の中央部の透過度よりも高くなるようにして、前記第1仮想空間画像の透過度を設定してもよい。
3)に記載の発明によれば、ヘッドマウントディスプレイに表示される第1仮想空間画像を移動させることに起因してユーザに与える違和感を軽減できる。ヘッドマウントディスプレイに表示される第1仮想空間画像を移動させた場合、第1仮想空間画像の端がヘッドマウントディスプレイに表示され、ヘッドマウントディスプレイには、当該端を境として、第1仮想空間画像が表示されている部分と、第1仮想空間画像が表示されていない部分とが生じるため、ユーザに違和感を与えてしまうおそれがある。この点、本発明によれば、第1仮想空間画像の端部の透過度が第1仮想空間画像の中央部の透過度よりも高くなるようにして、第1仮想空間画像の透過度を設定することによって、第1仮想空間画像が表示されている部分と、第1仮想空間画像が表示されていない部分との境が目立たないようにでき、ユーザに与える違和感を軽減できる。