説明

情報処理プログラム、情報処理装置、情報処理システム、及び、情報処理方法

【課題】本発明は、立体視画像により表現される仮想空間をより適切にユーザに把握させることを可能にすることを課題とする。
【解決手段】本発明は、立体視表示可能な表示装置に所定の仮想空間の表示を行う情報処理装置のコンピュータで実行される情報処理プログラムであって、コンピュータを、仮想空間においてオブジェクトの位置を制御する位置制御手段と、仮想空間に設定された複数の領域のうち、オブジェクトの位置する領域を判定する領域判定手段と、判定された領域に応じて、立体視画像の描画に用いられる立体視パラメータを設定するパラメータ設定手段と、立体視パラメータに基づいて、オブジェクトを含む立体視画像を生成する画像生成手段と、生成された立体視画像を表示装置に表示させる表示制御手段として機能させる情報処理プログラムである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理装置、情報処理システム、及び、情報処理方法に関する。
【背景技術】
【0002】
従来、視差を利用することで立体的な視覚を得る方法である立体視に関する技術が知られている。近年、このような立体視による表現は、様々な分野において利用されている。例えば、立体視による表現を利用することで、3次元仮想空間を立体的に表示するゲームやCG(Computer Graphics)アニメーション等が開発されている。
【0003】
3次元仮想空間を立体的に表示する場合、例えば、3次元仮想空間内に設定される2つの仮想カメラから得られる画像が用いられる。視覚的効果の高い立体視の表示を行うためには、当該2つの仮想カメラを適切に設定する必要がある。例えば、特許文献1では、注目させたい部分にフォーカスを当てるように注視位置を決定する仮想カメラの設定方法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2003−107603号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の立体視に関する技術では、立体視用の画像(以下、立体視画像とも称する)を生成する場合、例えば、仮想空間内の特定のオブジェクトに注視位置が決定されていた。そのため、従来の立体視に関する技術では、特定のオブジェクトのみにフォーカスが当てられ、立体視画像により表現される仮想空間を適切にユーザに把握させることは困難であった。
【0006】
本発明は、このような点を考慮してなされたものであり、立体視画像により表現される仮想空間をより適切にユーザに把握させることを可能にすることを課題とする。
【課題を解決するための手段】
【0007】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0008】
すなわち、本発明は、立体視表示可能な表示装置に所定の仮想空間の表示を行う情報処理装置のコンピュータで実行される情報処理プログラムであって、前記コンピュータを、前記仮想空間においてオブジェクトの位置を制御する位置制御手段と、前記仮想空間に設定された複数の領域のうち、前記オブジェクトの位置する領域を判定する領域判定手段と、前記領域判定手段で判定された領域に応じて、立体視画像の描画に用いられる立体視パラメータを設定するパラメータ設定手段と、前記パラメータ設定手段で設定された立体視パラメータに基づいて、前記オブジェクトを含む立体視画像を生成する画像生成手段と、前記画像生成手段で生成された立体視画像を前記表示装置に表示させる表示制御手段として、機能させる情報処理プログラムである。
【0009】
本発明によれば、オブジェクトの位置する領域に応じて設定される立体視パラメータに基づいて、立体視画像が生成される。そのため、オブジェクトの位置する領域に応じた立
体視画像の生成が可能となるため、本発明によれば、立体視画像により表現される仮想空間をより適切にユーザに把握させることが可能となる。
【0010】
また、本発明の別形態として、前記情報処理プログラムは、前記コンピュータを、入力装置からの入力を受け付ける入力受付手段としてさらに機能させてもよい。そして、前記位置制御手段は、前記入力受付手段で受け付けた入力に基づいて前記オブジェクトの位置を制御してもよい。
【0011】
本発明によれば、入力装置からの入力に基づいてオブジェクトの位置を制御することができる。
【0012】
また、本発明の別形態として、前記複数の領域の形状に設定される形状は、複数種類の形状であってもよい。
【0013】
また、本発明の別形態として、前記複数種類の形状は、直方体、円柱、及び、球の少なくともいずれかを含む立体形状であってもよい。
【0014】
本発明によれば、直方体、円柱、及び、球の少なくともいずれかを含む立体形状の領域を仮想空間に設定することができる。
【0015】
また、本発明の別形態として、前記仮想空間に設定された前記複数の領域それぞれには優先度が設定されてもよい。そして、前記領域判定手段において、前記オブジェクトが同時に複数の領域に位置すると判定された場合、前記パラメータ設定手段は、前記優先度に従って、前記オブジェクトの位置する該複数の領域のうちのいずれかの領域に応じて、前記立体視パラメータを設定してもよい。
【0016】
本発明によれば、オブジェクトが同時に複数の領域に位置した場合、各領域に設定された優先度に従って、立体視パラメータの設定に係る領域が選択される。このため、領域同士の重なり具合などを考慮することなく、仮想空間に領域を設定することができる。よって、本発明によれば、より簡易に仮想空間に領域を設定することができる。
【0017】
また、本発明の別形態として、前記立体視パラメータは、前記仮想空間において視差が生じない位置を定める基準面に関するパラメータ、及び、前記立体視画像の奥行き感に関するパラメータのうちの少なくとも1つであってもよい。
【0018】
また、本発明の別形態として、前記パラメータ設定手段は、判定された前記領域に応じて前記立体視パラメータに設定されるべき設定値が、前記立体視パラメータに既に設定されている現在値と異なる場合、前記立体視パラメータに設定される値が該現在値から該設定値に徐々に変化するように、前記立体視パラメータを設定してもよい。
【0019】
本発明によれば、立体視パラメータに設定される値が切り替わる場合、立体視パラメータに設定される値が段階的に変化するように、立体視パラメータが設定される。これにより、立体視画像の描画に用いられる立体視パラメータに設定される値は、時間の経過に伴って徐々に変化する。そのため、本発明によれば、立体視パラメータに基づいて描画される立体視画像の急激な変化を防止することができる。
【0020】
また、本発明の別形態として、前記パラメータ設定手段は、前記現在値から前記設定値への変化において、該変化の最初の所定期間経過した後に、前記立体視パラメータに設定される値が該現在値から該設定値に徐々に変化するように、前記立体視パラメータを設定してもよい。
【0021】
本発明によれば、所定期間経過した後に、前記立体視パラメータに設定される値が該現在値から該設定値に徐々に変化するように、前記立体視パラメータが設定される。つまり、所定期間経過した後に、立体視パラメータに設定される値が切り替わる。そのため、立体視パラメータに設定される値が頻繁に切り替わる場合に生じ得る、立体視パラメータに基づいて描画される立体視画像の頻繁かつ急激な変化を防止することができる。
【0022】
また、本発明の別形態として、前記パラメータ設定手段は、前記現在値から前記設定値への変化に係る変化量が一定となるように、前記立体視パラメータを設定してもよい。
【0023】
また、本発明の別形態として、前記パラメータ設定手段は、前記現在値から前記設定値への変化に係る変化量が減少するように、前記立体視パラメータを設定してもよい。
【0024】
また、本発明の別形態として、前記パラメータ設定手段は、前記現在値から前記設定値への変化に係る変化量が増加するように、前記立体視パラメータを設定してもよい。
【0025】
本発明によれば、立体視パラメータに設定される値の変化に係る変化量が増加するように、立体視パラメータが設定される。つまり、立体視パラメータに設定される値が切り替わる場合、立体視パラメータに設定される値の段階的な変化において、立体視パラメータに設定される値の変化量は、当該変化の初期段階ほど、小さい。そのため、立体視パラメータに設定される値が頻繁に切り替わる場合に生じ得る、立体視パラメータに基づいて描画される立体視画像の頻繁かつ急激な変化を防止することができる。
【0026】
また、本発明の別形態として、特定された前記領域に応じて、判定された前記領域に応じて、前記現在値から前記設定値への変化の期間が定められてもよい。
【0027】
なお、本発明は、情報処理装置、情報処理システム、情報処理方法、又は、プログラムをコンピュータその他装置、機械などが読み取り可能な記録媒体であってもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本発明に係る情報処理装置は、通信可能に構成された複数のコンピュータ等によって実現されてもよい。
【発明の効果】
【0028】
本発明によれば、立体視画像により表現される仮想空間をより適切にユーザに把握させることが可能となる。
【図面の簡単な説明】
【0029】
【図1A】図1Aは、実施の形態に係るゲーム装置の画面イメージを例示する図である。
【図1B】図1Bは、実施の形態に係るゲーム装置の画面イメージを例示する図である。
【図2A】図2Aは、実施の形態に係るゲームの状態を例示する俯瞰図である。
【図2B】図2Bは、実施の形態に係るゲームの状態を例示する俯瞰図である。
【図3】図3は、実施の形態に係るゲーム装置の外観を例示する図である。
【図4】図4は、実施の形態に係る上側LCDを例示する図である。
【図5】図5は、実施の形態に係るゲーム装置の内部構成を例示するブロック図である。
【図6】図6は、実施の形態に係る立体視画像の描画処理を例示する図である。
【図7】図7は、実施の形態に係る仮想カメラの設定を例示する図である。
【図8】図8は、実施の形態に係る仮想カメラとオブジェクトとの関係を例示する。
【図9】図9は、実施の形態に係る仮想カメラによる描画処理を例示する。
【図10】図10は、実施の形態に係る仮想カメラにより描画される画像を例示する。
【図11】図11は、実施の形態に係るゲーム装置が保持する情報を例示する図である。
【図12】図12は、実施の形態に係るゲーム装置の機能を例示するブロック図である。
【図13】図13は、実施の形態に係るゲーム処理の流れを例示するフローチャートである。
【図14】図14は、実施の形態において、オブジェクトが複数の領域に同時に位置する状態を例示する俯瞰図である。
【図15】図15は、実施の形態において、オブジェクトが位置する領域が切り替わった場合における立体視パラメータの切り替わりを例示する俯瞰図である。
【図16A】図16Aは、実施の形態に係る立体視パラメータに設定される値の変化を例示する。
【図16B】図16Bは、実施の形態に係る立体視パラメータに設定される値の変化を例示する。
【図16C】図16Cは、実施の形態に係る立体視パラメータに設定される値の変化を例示する。
【図16D】図16Dは、実施の形態に係る立体視パラメータに設定される値の変化を例示する。
【図16E】図16Eは、実施の形態に係る立体視パラメータに設定される値の変化を例示する。
【発明を実施するための形態】
【0030】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、本実施形態に応じた具体的構成が適宜採用されてもよい。また、以下で説明する本実施形態は、本発明をゲームプログラムに適用した例を示す。ただし、本発明の適用対象はゲームプログラムに限定されない。
【0031】
なお、本実施形態において登場するデータは、自然言語(日本語等)により説明される。しかしながら、これらのデータは、具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0032】
§1 装置構成
[処理例]
図1A及び1Bは、本実施形態に係るゲーム装置1の画面イメージを例示する。本実施形態に係るゲーム装置1は、図1A及び1Bに示されるようないわゆるアクションゲームをプレイヤに提供する。ゲーム装置1が提供するアクションゲームでは、3次元の仮想空間(以下、本実施形態に係る3次元仮想空間を「ゲーム空間」とも称する)内にキャラクタ2及び障害物4等のオブジェクト並びにフィールド3が存在する。
【0033】
キャラクタ2は、プレイヤの入力操作等によって、ゲーム空間内を移動するプレイヤオブジェクトである。フィールド3は、ゲーム空間内に設定された地形等を示すオブジェクトである。地形などを示すオブジェクトには、例えば、ゲーム空間内に設定される地面や壁等が含まれる。障害物4は、ゲーム空間内に設定された敵キャラクタ等のオブジェクト
である。本実施形態に係るゲーム装置1は、キャラクタ2を操作することで、フィールド3の所定のスタート地点からゴール地点にキャラクタ2を移動させるアクションゲームをプレイヤに提供する。
【0034】
ゲーム装置1は、ディスプレイ22(上側LCD22として後述する)を備える。ディスプレイ22は、立体視可能な画像(立体視画像)を表示することができる。そのため、図1A及び1Bに示されるように、プレイヤは、ディスプレイ22に表示された画像から、ゲーム空間についての立体的な視覚を得ることができる。具体的には、図1Aに示される画面イメージでは、プレイヤは、ディスプレイ22の位置にキャラクタ2が立体的に存在するような視覚を得る。また、図1Bに示される画面イメージでは、プレイヤは、ディスプレイ22の位置に障害物4が立体的に存在し、かつ、プレイヤを基準としてディスプレイ22の奥側にキャラクタ2が立体的に存在するような視覚を得る。
【0035】
ゲーム装置1は、キャラクタ2を含む立体視画像を描画し、ディスプレイ22に表示する。プレイヤは、ディスプレイ22に表示された立体視画像から、ゲーム空間の状態を把握する。このとき、プレイヤにより適切にゲーム空間を把握させるための、立体視画像の効果的な表示の仕方、あるいは、描画手順は、ゲーム空間の状況に依存して異なる。
【0036】
このような立体視画像の効果的な表示の仕方、あるいは、描画手順として、例えば、キャラクタ2とは異なる障害物4が登場することを例に検討する。この場合、例えば、図1A及び1Bに示される画面イメージの違いに表れるように、キャラクタ2に焦点を当てた立体視画像を描画するよりも、障害物4に焦点を当てた立体視画像を描画する方が、プレイヤに、より適切にゲーム空間を把握させられるときがある。また、例えば、奥行きが重要となる領域にキャラクタ2が位置する場合、他の領域よりも立体感を強めた立体視画像を描画する方が、プレイヤに、より適切にゲーム空間を把握させられるときがある。
【0037】
このように、キャラクタ2が位置するゲーム空間内の状況によって、プレイヤに、より適切にゲーム空間を把握させるための表示の仕方、描画手順が異なりうる。そのため、ゲーム装置1は、キャラクタ2が位置するゲーム空間内の領域に応じて、立体視画像の描画に用いる立体視パラメータを切り替えることで、プレイヤにより適切にゲーム空間を把握させるような立体視画像を描画する。具体的には、ゲーム装置1は、以下の動作を行う。
【0038】
図2Aは、図1Aに示される画面イメージに対応するゲーム空間の状態を例示する俯瞰図である。例えば、図1Aに示される画面イメージがゲーム空間を正面(プレイヤ側)から見た正面図と仮定した場合に、図2Aは、ゲーム空間上方から平面視した平面図である。また、図2Bは、図1Bに示される画面イメージに対応するゲームの状態を例示する俯瞰図である。図2A及び2Bに示されるように、本実施形態に係るゲーム空間には、複数の領域(5a、5b)が設定されている。
【0039】
ゲーム装置1は、ゲーム空間内に設定されている複数の領域のうち、キャラクタ2の位置する領域を特定する。図2Aに示される例では、キャラクタ2の位置する領域は領域5aであると特定される。また、図2Bに示される例では、キャラクタ2の位置する領域は領域5bであると特定される。
【0040】
ここで、領域5aでは、フィールド3上にキャラクタ2以外のオブジェクトが存在しない。このため、領域5aでは、キャラクタ2付近の状態が、プレイヤにとって重要であるとする。また、領域5bでは、障害物4の状態が、プレイヤにとって重要であるとする。ゲーム装置1は、これらの点を考慮して、当該特定した領域に応じて、立体視画像の描画に用いられる立体視パラメータを設定する。
【0041】
そして、ゲーム装置1は、設定した立体視パラメータに基づいて、立体視画像を描画する。つまり、キャラクタ2が領域5aに位置する場合、ゲーム装置1は、プレイヤにとってキャラクタ2付近の位置の状態が把握しやすいような立体視画像を描画する(図1A)。また、キャラクタ2が領域5bに位置する場合、ゲーム装置1は、プレイヤにとって障害物4の状態が把握しやすいような立体視画像を描画する(図1B)。
【0042】
このように、本実施形態に係るゲーム装置1は、キャラクタ2の位置する領域を特定し、当該特定された領域に応じて、立体視パラメータを設定する。つまり、本実施形態に係るゲーム装置1は、キャラクタ2の位置する領域により、立体視画像の描画に用いる立体視パラメータを切り替える。このような動作を行うことで、本実施形態に係るゲーム装置1は、ゲーム空間中のキャラクタの位置する領域とその領域の状態に応じた立体視画像を描画し、ゲーム空間をプレイヤにより適切に把握させることを可能にする。
【0043】
なお、ゲーム装置1により実行されるゲームプログラムは、本発明の情報処理プログラムに相当する。また、キャラクタ2は、本発明の「オブジェクト」に相当する。
【0044】
[ゲーム装置]
図3は、本実施形態に係るゲーム装置1の外観を例示する。ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、ヒンジ構造により開閉可能(折り畳み可能)に連結されている。
【0045】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12、タッチパネル13、各操作ボタン14A〜14I、アナログスティック15、挿入口17、及び、挿入口18が設けられる。
【0046】
下側LCD12は、画像を(立体視可能ではなく)平面的に表示する表示装置である。タッチパネル13はゲーム装置1の入力装置の一つである。タッチパネル13への入力に用いるタッチペン28は、挿入口17(図2において点線で示される)から挿入されて収容される。なお、タッチペン28の代わりにプレイヤの指を用いることもできる。
【0047】
各操作ボタン14A〜14Iは、所定の入力を行うための入力装置である。ボタン14A〜14Iには、ゲーム装置1によって実行されるプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは、選択操作等に用いられる。例えば、各ボタン14B〜14Eは、決定操作やキャンセル操作等に用いられる。例えば、電源ボタン14Fは、ゲーム装置1の電源をオンまたはオフにするために用いられる。例えば、セレクトボタン14Gは、ゲーム中断操作等に用いられる。例えば、HOMEボタン14Hは、所定の画面を表示するための操作等に用いられる。例えば、スタートボタン14Iは、ゲーム開始操作等に用いられる。また、アナログスティック15は、方向を指示するデバイスである。
【0048】
挿入口18(図2において点線で示される)には、ゲームプログラムを記録した外部メモリ45が挿入される。
【0049】
上側ハウジング21には、上側LCD22、外側左撮像部23a、外側右撮像部23b、内側撮像部24、および3D調整スイッチ25が設けられる。
【0050】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。上側LCD22は、実質的に同一の表示領域を用いて右目用画像と左目用画像とを表示することが可能である。具体的には、上側LCD22は、右目用画像と左目用画像とが所定単位で(例えば、1列ずつ)横方向に交互に表示される方式の表示装置である。なお、上側LC
D22は、右目用画像と左目用画像とが交互に表示される方式の表示装置であってもよい。
【0051】
また、上側LCD22は、裸眼立体視可能な表示装置である。この場合、上側LCD22には、横方向に交互に表示される右目用画像と左目用画像とを右目および左目のそれぞれに分解して見えるようなLCDが用いられる。例えば、上側LCD22は、パララックスバリア方式(視差バリア方式)のLCDである。上側LCD22は、右目用画像と左目用画像とを用いて、裸眼で立体視可能な立体視画像(立体画像)を表示する。
【0052】
図4は、上側LCD22の一例を示す。上側LCD22は、図4に示されるように、ガラス基板223とガラス基板224との間225に設けられた、第1LCD226及び第2LCD227を含む。第1LCD226及び第2LCD227は、複数の画素を含み、かつ、バックライトからの光を画素単位で調節するための空間光変調器である。典型的には、第1LCD226及び第2LCD227は、それぞれ交互に配置される。図4に示されるように、バックライトの光は、ガラス基板224側から照射される。
【0053】
ガラス基板223において、第1LCD226及び第2LCD227とは反対側に視差バリア221が設けられている。視差バリア221は、例えば、液晶パネルで実現される。そのため、視差バリア221は、所定間隔でスリット222を設けることが可能である。各スリット222の中心位置を通り、かつ、ガラス基板223の面に対して垂直方向の軸を基準として、第1LCD226の対応する画素と第2LCD227の対応する画素とが対称的に配置される。各スリット222は、プレイヤの右目及び左目による視界をそれぞれ対応する角度に制限する。例えば、図4に示される例では、プレイヤの右目は、光軸AX1上にある第1LCD226の画像のみが視認できる。また、プレイヤの左目は、光軸AX2上にある第2LCD227の画像のみが視認できる。このようなスリット222に対応する画素との位置関係、並びに、第1LCD226及び第2LCD227を、表示すべき画像に応じて適切に制御することで、プレイヤの両眼の間に所定の視差を与えることができる。つまり、上側LCD22は、視差バリア221によって、プレイヤの右目に右目用画像を、プレイヤの左目に左目用画像をそれぞれ視認させることで、プレイヤにとって立体感のある立体視画像を表示することができる。
【0054】
また、上側LCD22は、視差バリアを無効にすることが可能である。視差バリアを無効にした場合、上側LCD22は、画像を平面的に表示することができる(上述した立体視ではない、2次元平面への投影画像を表示することができる。すなわち、表示された同一の画像が右目にも左目にも見えるような表示モードである。)。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、3D調整スイッチ25によって行われる。なお、上側LCD22は、パララックスバリア方式のLCDではなく、レンチキュラー方式等のLCDであってもよい。
【0055】
図3に戻り、内側撮像部24は、上側ハウジング21の内側面21Aの内向きの法線方向を撮像方向とする撮像部である。外側左撮像部23aおよび外側右撮像部23bは、いずれも内側面21Aとは反対の外側面の外向きの法線方向を撮像方向とする撮像部である。以降、外側左撮像部23aおよび外側右撮像部23bをまとめて、外側撮像部23と称する。
【0056】
3D調整スイッチ25は、スライドスイッチであり、上述のように上側LCD22の表示モードを切り替えるために用いられるスイッチである。また、3D調整スイッチ25は、上側LCD22に表示された立体視画像の立体感を調整するために用いられる。3D調整スイッチ25は、所定方向(例えば、上下方向)の任意の位置にスライド可能なスライ
ダを有しており、当該スライダの位置に応じて上側LCD22の表示モードが設定される。
【0057】
例えば、3D調整スイッチ25のスライダが最下点位置に配置されている場合、上側LCD22が平面表示モードに設定され、上側LCD22の画面には平面画像が表示される。なお、上側LCD22は、立体表示モードのままとして、左目用画像と右目用画像とを同一の画像とすることにより平面表示してもよい。一方、上記最下点位置より上側にスライダが配置されている場合、上側LCD22は立体表示モードに設定される。この場合、上側LCD22の画面には立体視画像が表示される。ここで、スライダが上記最下点位置より上側に配置されている場合、スライダの位置に応じて、立体画像の見え方が調整される。具体的には、スライダの位置に応じて、右目用画像および左目用画像における横方向の位置のずれ量が調整される。
【0058】
図5は、本実施形態に係るゲーム装置1の内部構成を示すブロック図である。ゲーム装置1は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインタフェイス(外部メモリI/F)33、データ保存用外部メモリインタフェイス(データ保存用外部メモリI/F)34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、加速度センサ39、角速度センサ40、電源回路41、およびインタフェイス回路(I/F回路)42等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0059】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312、VRAM(Video RAM)313等を含む。CPU311は、ゲーム装置1内のメモリ(例えば外部メモリI/F33に接続された外部メモリ45やデータ保存用内部メモリ35)に記憶されている当該所定のプログラムを実行することによって、所定の処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。VRAM313に描画された画像は、上側LCD22および/または下側LCD12に出力されて表示される。
【0060】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、およびデータ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ45を着脱自在に接続するためのインタフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ46を着脱自在に接続するためのインタフェイスである。
【0061】
メインメモリ32は、情報処理部31(CPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。即ち、メインメモリ32は、各種データを一時的に記憶したり、外部(外部メモリ45や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として、例えば、PSRAM(Pseudo-Static Random Access Memory)が用いられる。
【0062】
外部メモリ45は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ45は、例えば、読み取り専用の半導体メモリで構成される。外部メモリ45が外部メモリI/F33に接続されると、情報処理部31は外部メモリ45に記憶されたプログラムを読み込むことができる。情報処理部31が読み込んだプログラムを実行することにより、所定の処理が行われる。
【0063】
データ保存用外部メモリ46は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)であり、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46は、SDカードである。データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ46およびデータ保存用内部メモリ35には、無線通信モジュール36を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0064】
情報処理部31には、無線通信モジュール36およびローカル通信モジュール37が接続される。無線通信モジュール36は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、IEEE802.11b/gのアドホックモードにおいて、他のゲーム装置1と直接無線通信を行ったりすることが可能である。また、ローカル通信モジュール37は、所定の通信方式(例えば赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。情報処理部31は、ローカル通信モジュール37を用いて同種の他のゲーム装置1との間でデータを送受信することができる。
【0065】
情報処理部31には、加速度センサ39が接続される。加速度センサ39は、3軸(向に沿った直線方向の加速度(直線加速度)の大きさを検出する。なお、加速度センサ39は、静電容量式の加速度センサであっても、他の方式の加速度センサであってもよい。また、加速度センサ39は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部31は、加速度センサ39が検出した加速度を示すデータ(加速度データ)を受信して、ゲーム装置1の姿勢や動きを算出する。
【0066】
情報処理部31には、角速度センサ40が接続される。角速度センサ40は、ゲーム装置1の3軸周りに生じる角速度をそれぞれ検出し、検出した角速度を示すデータ(角速度データ)を情報処理部31へ出力する。情報処理部31は、角速度センサ40から出力された角速度データを受信して、ゲーム装置1の姿勢や動きを算出する。
【0067】
情報処理部31には、RTC38および電源回路41が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻を計算する。電源回路41は、ゲーム装置1が有する電源(例えば、下側ハウジング11に収納される充電式電池)からの電力を制御し、ゲーム装置1の各部品に電力を供給する。
【0068】
情報処理部31には、I/F回路42が接続される。I/F回路42には、マイク43、スピーカ44、およびタッチパネル13が接続される。マイク43は、ユーザの音声を検知して音声信号をI/F回路42に出力する。スピーカ44は、I/F回路42からの音声信号をアンプ(図示せず)により増幅し、音声を出力する。I/F回路42は、マイク43およびスピーカ44の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。本実施形態では、タッチパネル13は、抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、例えば、静電容量方式等、任意の押圧式のタッチパネルを用いることができる。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチパネル13のタッチ位置座標を生成して情報処理部31に出力する。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われたタッチ位置を特定することができる。
【0069】
操作ボタン14及びアナログスティック15は、情報処理部31に接続され、各操作ボタン(例えば、図3における14A〜14I、15)に対する入力状況(押下されたか否か)を示す操作データを情報処理部31に出力する。情報処理部31は、操作ボタン14及びアナログスティック15から操作データを取得することによって、操作ボタン14及びアナログスティック15に対する入力に応じた処理を実行する。
【0070】
下側LCD12および上側LCD22は、情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(GPU312)の指示にしたがって画像を表示する。下側LCD12は、画像を(立体視可能ではなく)平面的に表示する表示装置である。下側LCD12の画素数は、一例として、320dot×240dot(横×縦)である。なお、本実施形態では表示装置としてLCDを用いているが、例えば、EL(Electro Luminescence:電界発光)を利用した表示装置等、他の表示装置が利用されてもよい。また、下側LCD12として、所望の解像度を有する表示装置を利用することができる。
【0071】
上側LCD22は、裸眼立体視可能な表示装置である。情報処理部31は、例えば、情報処理部31は、上側LCD22のLCDコントローラ(図示せず)と接続される。そして、情報処理部31は、当該LCDコントローラに対して視差バリアのON/OFFを制御する。上側LCD22の視差バリアがONになっている場合、例えば、情報処理部31のVRAM313に格納された右目用画像と左目用画像とが、上側LCD22に出力される。
【0072】
より具体的には、LCDコントローラは、右目用画像について縦方向に1ライン分の画素データを読み出す処理と、左目用画像について縦方向に1ライン分の画素データを読み出す処理とを交互に繰り返すことによって、VRAM313から右目用画像と左目用画像とを読み出す。これにより、右目用画像および左目用画像が、画素を縦に1ライン毎に並んだ短冊状画像に分割され、分割された右目用画像の短冊状画像と左目用画像の短冊状画像とが交互に配置された画像が、上側LCD22の画面に表示される。そして、上側LCD22の視差バリア221を介して当該画像がユーザに視認されることによって、ユーザの右目に右目用画像が、ユーザの左目に左目用画像が視認される。以上により、上側LCD22の画面には立体視可能な画像(立体視画像)が表示される。
【0073】
なお、上側LCD22の画素数は、一例として、800dot×240dot(横×縦)である。本実施形態では、上側LCD22は液晶表示装置であるとして説明される。ただし、これに限らず、例えば、ELを利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0074】
外側撮像部23及び内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示にしたがって画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0075】
内側撮像部24は、所定の解像度を有する撮像素子と、レンズとを含む。撮像素子は、例えば、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等である。レンズは、ズーム機構を有するものでもよい。
【0076】
外側左撮像部23a及び外側右撮像部23bは、それぞれ所定の共通の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。外側左撮像部23aと外側右撮像部
23bとは、ゲーム装置1が実行するプログラムによって、2つの外側撮像部(外側左撮像部23a及び外側右撮像部23b)のいずれか一方を単独で使用可能である。本実施形態では、何れか一方の外側撮像部のみを使用することとして説明する。
【0077】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダの位置に応じた電気信号を情報処理部31に送信する。
【0078】
[立体視の処理例]
図6〜10を用いて、本実施形態に係るゲーム装置1において処理される立体視について説明する。なお、これらの図において示される状態は、図1B及び2Bにより示されるゲームの状態に対応する。
【0079】
図6は、キャラクタ2及び障害物4を含むゲーム空間を表現した立体視画像の描画処理を例示する。本実施形態に係る立体視画像の描画処理では、図6に示されるように、2つの仮想カメラ(C1、C2)が用いられる。ただし、仮想カメラの数は2つでなくてもよい。例えば、1つのカメラが、本実施形態における2つの仮想カメラ(C1、C2)の位置にシフトして、画像を撮像してもよい。
【0080】
ここで、右仮想カメラC1は、右目用画像を描画するための仮想カメラである。また、左仮想カメラC2は、左目用画像を描画するための仮想カメラである。本実施形態では、これらの2つの仮想カメラ(C1、C2)を用いて描画される1対の右目用画像及び左目用画像が上側LCD22に表示されることで、プレイヤは、ゲーム空間の立体的な視覚を得ることができる。
【0081】
図6に示されるように、2つの仮想カメラ(C1、C2)は、互いに距離Dfだけ離れて配置される。このような配置によって、右仮想カメラC1を用いて描画される右目用画像と左仮想カメラC2を用いて描画される左目用画像との間には、仮想空間内の距離Dfに応じた視差が生じる。具体的には、距離Dfを長くするほど、ゲーム空間内のある位置に存在するオブジェクトの視差が大きくなる。つまり、距離Dfを長くするほど、当該オブジェクトは、プレイヤによってより大きな立体感をもって視認される。ただし、視差がある程度を超えて大きくなると、プレイヤは、立体感を感じにくくなる。そのため、距離Dfは、適切に設定される必要がある。なお、本実施形態では、視差とは、プレイヤの右目で視認される像と、プレイヤの左目で視認される像との間における、対象点の見え方の違いを意味する。
【0082】
本実施形態では、2つの仮想カメラ(C1、C2)は、中心点C0を基準として、配置される。中心点C0は、2つの仮想カメラ(C1、C2)間の距離Dfが0の場合における仮想カメラの配置位置である。2つの仮想カメラ(C1、C2)は、中心点C0を基準として、左右に距離「Df/2」離れた位置に存在する仮想カメラとして設定される。
【0083】
また、右仮想カメラC1は、カメラ方向CA1のゲーム空間を撮像する仮想カメラである。左仮想カメラC2は、カメラ方向CA2のゲーム空間を撮像する仮想カメラである。図6に示されるように、これら2つの仮想カメラ(C1、C2)のカメラ方向(CA1、CA2)は互いに平行となるように、2つの仮想カメラ(C1、C2)は設定される。
【0084】
更に、2つの仮想カメラ(C1、C2)のカメラ方向(CA1、CA2)と2つの仮想カメラ(C1、C2)の位置を通る直線(基準線FL)とが垂直となるように、2つの仮想カメラ(C1、C2)の位置とカメラ方向(CA1、CA2)は設定される。
【0085】
このようにして、2つの仮想カメラ(C1、C2)の位置とカメラ方向(CA1、CA
2)は設定される。ただし、2つの仮想カメラ(C1、C2)の設定方法は、このような設定方法に限定されない。例えば、2つの仮想カメラ(C1、C2)のうちの一方の仮想カメラの位置及び方向が設定された後、他方の仮想カメラの位置及び方向が、設定された仮想カメラを基準として、設定されてもよい。
【0086】
なお、これらの設定により、Df=0の場合、2つの仮想カメラ(C1、C2)は、互いに同一の設定を持つ仮想カメラとなる。つまり、2つの仮想カメラ(C1、C2)により撮像される画像は、同一の画像となる。この場合、上側LCD22に表示される画像は立体視効果のない画像となる。
【0087】
2つの仮想カメラ(C1、C2)の位置とカメラ方向(CA1、CA2)が設定されると、2つの仮想カメラ(C1、C2)の視野範囲(VF1、VF2)が設定される。このとき、立体視表示した場合における上側LCD22の表示面付近に表示させたい範囲である表示対象範囲(典型的には、2つの仮想カメラ(C1、C2)からの視差がゼロとなるゼロ視差面PD0等)が指定される。すなわち、表示対象範囲は、ゲーム空間の中で少なくとも上側LCD22に表示すべき領域に相当する。この表示対象範囲の面は、カメラ方向(CA1、CA2)に垂直である。また、表示対象範囲は、2つの仮想カメラ(C1、C2)を基準として、カメラ方向(CA1、CA2)側に設定される。そして、2つの仮想カメラ(C1、C2)の視野範囲のいずれもが表示対象範囲を含むように、2つの仮想カメラ(C1、C2)の視野範囲がそれぞれ設定される。このとき、中心点C0から表示対象範囲の中心へ伸びる方向は、カメラ方向(CA1、CA2)と一致する。なお、図6により示されるゼロ視差面PD0は、2つの仮想カメラ(C1、C2)からの視差が生じない位置を定める基準面である。図6において、2つの仮想カメラ(C1、C2)の視野範囲(VF1、VF2)はそれぞれ実線で示されている。仮想カメラC1に係るゼロ視差面PD0の範囲は、当該実線のうち、仮想カメラC2に近い方の実線と、図6において仮想カメラC1の位置を原点とする一点鎖線とに挟まれる範囲で表現される。なお、仮想カメラC2に係るゼロ視差面PD0の範囲については、仮想カメラC1に係るゼロ視差面PD0の範囲と同様に表現される。当該ゼロ視差面PD0については、後述する。
【0088】
このように設定された2つの仮想カメラ(C1、C2)それぞれを用いて描画される1対の右目用画像及び左目用画像が上側LCD22に表示されることで、プレイヤは、ゲーム空間の立体的な視覚を得ることができる。
【0089】
図7は、各仮想カメラ(C1、C2)の設定を例示する。図7を用いて、各仮想カメラ(C1、C2)を用いた2次元画像の描画を説明する本実施形態に係る仮想カメラには、視野範囲が定められている。視野範囲は、例えば、仮想カメラの視野角により定められる。つまり、視野範囲は、仮想カメラから見える範囲を示す。
【0090】
また、仮想カメラに対して、近傍側にニアクリップ面が設定され、遠方側にファークリップ面が設定される。ニアクリップ面及びファークリップ面は、それぞれ仮想カメラのカメラ方向の線に対して垂直となるように設定される。本実施形態におけて、仮想カメラを用いた撮影の対象となるオブジェクトは、このニアクリップ面とファークリップ面との間に存在するオブジェクトであり、かつ、仮想カメラの視野角のうちに含まれるオブジェクトである。つまり、仮想カメラが撮影の対象とする範囲(撮影対象範囲)は、仮想カメラの視野範囲のうち、ニアクリップ面とファークリップ面との間の範囲である。なお、撮影対象範囲は、ニアクリップ面等の撮影に係る面と仮想カメラとの間の距離、当該撮影に係る面の幅、及び、当該撮影に係る面の高さによっても定めることができる。
【0091】
このように仮想カメラによる仮想的な撮影によって画像を生成する際の撮影対象範囲は、視体積とも称される。より具体的には、仮想カメラの位置を頂点とし、かつ、ファーク
リップ面を底面とする四角錘全体から、仮想カメラの位置を頂点とし、ニアクリップ面を底面とする四角錘を切り取った残りの立体(截頭四角錐)が、視体積と称される。ニアクリップ面を一方面とし、かつ、ファークリップ面を他方面とする四角錐体を視体積と称する。なお、視体積は、ビューフラスタム、又は、視錘台とも称される。したがって、視体積の内側に含まれる空間が、仮想カメラの撮影対象となる。
【0092】
また、後述するゼロ視差面PD0を特定するため、本実施形態における仮想カメラでは、基準仮想面が設定される。基準仮想面は、上側LCD22の表示面の位置に対応する平面である。言い換えると、基準仮想面は、3次元仮想空間の中で、上側LCD22に表示された立体視画像を見るプレイヤが、上側LCD22の表示面の位置に存在すると感じる面である。この基準仮想面についても、カメラ方向に対して垂直となるように設定される。なお、基準仮想面は、3次元仮想空間の中で、上側LCD22に表示された立体視画像を見るプレイヤが、上側LCD22の表示面から所定のオフセットを持った位置に存在すると感じる面であってもよい。後述するゼロ視差面PD0は、当該基準仮想面に含まれる面として特定される。
【0093】
図7に示されるように、3次元仮想空間座標系であるゲーム空間座標系(X、Y、Z)、仮想カメラの位置(cx、cy、cz)、仮想カメラの位置から仮想カメラのカメラ方向に伸ばした直線と基準仮想面との交点である注視点(bx、by、bz)が与えられているとする。また、仮想カメラの向きを示すベクトルを、仮想カメラの位置と注視点を結ぶ直線を基準として、正面方向ベクトル(Zx、Zy、Zz)、上方向ベクトル(Yx、Yy、Yz)、左方向ベクトル(Xx、Xy、Xz)として定義する。正面方向ベクトルは、仮想カメラの正面方向の向きを定義するベクトルである。上方向ベクトルは、仮想カメラの正面方向の向きに対する上方向の向きを定義するベクトルである。左方向ベクトルは、仮想カメラの正面方向の向きに対する左方向の向きを定義するベクトルである。これら3つのベクトルにより、仮想カメラから見た空間の座標系(ビュー座標系)が定義される。なお、これらのベクトルは、仮想カメラの位置(cx、cy、cz)及び注視点(bx、by、bz)から求めることができる、いずれもその大きさが1の単位ベクトルであるとする。そして、仮想カメラからニアクリップ面までの距離をnとし、仮想カメラからファークリップ面までの距離をfとする。また、ニアクリップ面の中心を原点とする平面座標において、ニアクリップ面の右端をx1とし、ニアクリップ面の左端をx2とし、ニアクリップ面の上端をy1とし、ニアクリップ面の下端をy2とする。
【0094】
本実施形態では、仮想カメラを用いて描画される2次元画像を得るために、ゲーム空間座標系を仮想カメラから見たビュー座標系に変換するためのビュー行列、及び、ビュー座標系を上側LCD22に表示するためのスクリーン座標系(2次元座標)に変換するためのプロジェクション行列を含むカメラ行列が用いられる。以下の[数1]は、ビュー行列の一例である。また、以下の[数2]は、プロジェクション行列の一例である。これらの行列は、上記設定される視野範囲の設定値に基づいて、適宜求められる。
【0095】
【数1】

【数2】

このカメラ行列を用いることにより、視体積の内側に含まれる空間を基準仮想面等の投影面に投影した画像を得ることができる。つまり、当該カメラ行列により、仮想カメラの撮影対象範囲についての2次元画像を得ることができる。
【0096】
なお、[数2]では、ニアクリップ面を規定する四辺の位置(大きさ)を用いて生成したプロジェクション行列が例示されるが、プロジェクション行列は、仮想カメラの視野角に基づいて生成されてもよい。
【0097】
図8は、図6を用いて説明した2つの仮想カメラ(C1、C2)と、図7を用いて説明した各仮想カメラの設定との関係を例示する。図9は、図8に示す状態において描画される画像(右目用画像及び左目用画像)の描画処理を例示する。図10は、図9に示す右仮想カメラC1及び左仮想カメラC2を用いて描画される画像を例示する。
【0098】
2つの仮想カメラ(C1、C2)はそれぞれ、3次元仮想空間に存在するオブジェクトのうち、各カメラ方向の所定範囲にあるオブジェクトを描画(レンダリング)する。各仮想カメラの撮影対象範囲は、上記のとおり、視野角、ニアクリップ面、ファークリップ面等により定められる視体積に含まれる範囲である。
【0099】
ここで、図9に示されるように、各仮想カメラの視体積に含まれる範囲において、各仮想カメラから距離Dの位置に設定されている基準仮想面において、右仮想カメラC1及び左仮想カメラC2により撮影可能な範囲にゼロ視差面PD0が設定される。基準仮想面は、上述のとおり、3次元仮想空間の中で、上側LCD22に表示された立体視画像を見るプレイヤが、上側LCD22の表示面の位置に存在すると感じる面である。そのため、ゼロ視差面PD0は、2つの仮想カメラ(C1、C2)により撮影可能な面であり、かつ、3次元仮想空間の中で、上側LCD22に表示された立体視画像を見るプレイヤが、上側LCD22の表示面の位置に存在すると感じる面である。つまり、ゼロ視差面PD0では、2つの仮想カメラ(C1、C2)からの視差がゼロとなる。なお、図9において2つの仮想カメラ(C1、C2)の視野範囲はそれぞれ実線で示される。仮想カメラC1に係るゼロ視差面PD0の範囲は、当該実線のうち、仮想カメラC2に近い方の実線と、図9において仮想カメラC1の位置を原点とする一点鎖線とに挟まれる範囲で表現される。なお、仮想カメラC2に係るゼロ視差面PD0の範囲については、仮想カメラC1に係るゼロ視差面PD0の範囲と同様に表現される。
【0100】
ゲーム装置1は、右仮想カメラC1及び左仮想カメラC2の各仮想カメラを用いて、各仮想カメラにより撮影可能な範囲のうち、ゼロ視差面PD0の範囲の描画を行う。右仮想カメラC1を用いた描画により、右目用画像が得られる。また、左仮想カメラC2を用いた描画により、左目用画像が得られる。図10は、このようにして得られる右目用画像IMG1及び左目用画像IMG2を例示する。
【0101】
図10に示されるとおり、ゼロ視差面PD0に位置するオブジェクト(の部分)は、右
目用画像IMG1及び左目用画像IMG2ともに同じ位置に描画される。例えば、ゼロ視差面PD0に位置するオブジェクトは、障害物4である。障害物4は、図10に示されるとおり、右目用画像IMG1及び左目用画像IMG2ともに同じ位置に描画される。他方、ゼロ視差面PD0から離れて位置するオブジェクト(の部分)は、右目用画像IMG1及び左目用画像IMG2において、異なる位置に描画される。例えば、ゼロ視差面PD0から離れて位置するオブジェクトは、キャラクタ2である。キャラクタ2は、図10に示されるとおり、右目用画像IMG1及び左目用画像IMG2において、異なる位置に描画される。このような右目用画像IMG1及び左目用画像IMG2が上側LCD22に描画されることで、プレイヤは、立体的な視覚を得ることができる。
【0102】
このように、図6〜10を用いて説明した本実施形態に係る立体視では、2つの仮想カメラ(C1、C2)間の距離Dfによって、プレイヤが感じる立体感が操作される。つまり、ゲーム装置1は、距離Dfを適切に設定することで、プレイヤが快適に感じる立体感を演出することができる。
【0103】
また、各仮想カメラ(C1、C2)とゼロ視差面PD0(基準仮想面)との間の距離Dによって、上側LCD22の表示面の位置に存在するとプレイヤが感じるゲーム空間内の位置が操作される。つまり、ゲーム装置1は、距離Dを変更することにより、上側LCD22の表示面の位置に存在するとプレイヤが感じるゲーム空間内の位置を変更することができる。プレイヤは、通常、上側LCD22の表示面の位置に焦点をあてて、当該表示面を見る。したがって、一般的に、上側LCD22の位置の近傍に位置するオブジェクトほど、プレイヤにとって当該オブジェクトの奥行き等の状態が把握しやすい。つまり、プレイヤに適切に奥行き等の状態を把握させるべきオブジェクト等の近傍にゼロ視差面PD0が位置するように距離Dが設定されることで、プレイヤは、当該オブジェクト等の奥行き等の状態が把握しやすくなる。このように、ゲーム装置1は、距離Dを適切に設定することで、オブジェクト等の奥行き等の状態をプレイヤが適切に把握することができる立体視画像を提供することができる。
【0104】
本実施形態に係るゲーム装置1は、ゲーム空間内に設定された領域に応じて、当該領域をプレイヤに適切に把握させるように当該距離Df又は距離D等を設定し、立体視画像(右目用画像及び左目用画像)を描画する。
【0105】
なお、本実施形態に係る立体視の処理は、いわゆる平行法に基づいている。ただし、本発明の立体視の処理は、平行法に限定されない。例えば、本発明の立体視の処理は、交差法でもよい。立体視の処理が交差法の場合、ゼロ視差面PD0は、例えば、注視点として与えられる。
【0106】
[保持情報]
図11は、本実施形態に係るゲーム装置1が保持する情報を例示する。ゲーム装置1は、キャラクタ情報511、障害物情報512、フィールド情報513、仮想カメラ情報514、領域情報515、及び、ゲーム進行状態情報516等を保持する。これらの情報は、後述する記憶部51に保持されている。
【0107】
キャラクタ情報511は、キャラクタ2に関する情報である。すなわち、キャラクタ情報511は、ゲーム装置1に係る操作対象であるオブジェクトに関する情報である。キャラクタ情報511には、例えば、キャラクタ2を識別するためのキャラクタID、キャラクタ2を表示するためのキャラクタ画像データ、及び、キャラクタ2の状態に関するパラメータ等が含まれる。なお、キャラクタ2の状態とは、例えば、ゲーム空間内におけるキャラクタ2の位置、及び、キャラクタ2の移動速度等である。
【0108】
障害物情報512は、障害物4に関する情報である。すなわち、障害物情報512は、ゲーム装置1に係る操作対象以外のオブジェクトに関する情報である。障害物情報512には、例えば、障害物4を識別するための障害物ID、障害物4を表示するための障害物画像データ、及び、障害物4の状態に関するパラメータ等が含まれる。なお、障害物4の状態とは、例えば、障害物4の位置、及び、障害物4の移動速度等である。
【0109】
フィールド情報513は、フィールド3に関する情報である。すなわち、フィールド情報513は、ゲーム装置1に係るゲームのフィールド(マップ)に関する情報である。フィールド情報513には、フィールドを識別するためのフィールドID、及び、フィールド3を表示するためのフィールド画像データ等が含まれる。
【0110】
仮想カメラ情報514は、右仮想カメラC1及び左仮想カメラC2に関する情報である。すなわち、仮想カメラ情報514は、ゲーム空間を描画するために用いられる仮想カメラを設定するための情報である。本実施形態において、仮想カメラ514には、上述した、中心点C0のゲーム空間内の座標(仮想カメラの位置)、各仮想カメラの視野角、ニアクリップ面に関する情報、及び、ファークリップ面に関する情報、2つの仮想カメラ(C1、C2)間の距離Df、及び、各仮想カメラ(C1、C2)とゼロ視差面PD0との間の距離D等の情報が含まれる。ニアクリップ面に関する情報とは、例えば、仮想カメラからニアクリップ面までの距離等の情報である。また、ファークリップ面に関する情報とは、例えば、仮想カメラからファークリップ面までの距離等の情報である。
【0111】
これら仮想カメラ情報514に含まれる情報には、2つの仮想カメラ(C1、C2)による立体視画像(右目用画像及び左目用画像)の描画に係る情報として、立体視パラメータが含まれる。立体視パラメータは、ゲーム装置1が立体視画像を描画するために用いられるパラメータである。
【0112】
本実施形態おいて、立体視パラメータは、2つの仮想カメラ(C1、C2)間の距離Df、及び、各仮想カメラ(C1、C2)とゼロ視差面PD0との間の距離Dである。距離Dfは、本発明の「立体視画像の奥行き感に関するパラメータ」に相当する。また、距離Dは、本発明の「前記仮想空間において視差が生じない位置を定める基準面に関するパラメータ」に相当する。例えば、立体視パラメータに含まれる距離Dfが適切に設定されることで、ゲーム装置1は、プレイヤが快適に感じる立体感を与える立体視画像を提供することができる。また、立体視パラメータに含まれる距離Dが適切に設定されることで、ゲーム装置1は、オブジェクト等の奥行き等の状態をプレイヤが適切に把握することができる立体視画像を提供することができる。これらの影響により、プレイヤは、立体視画像により表現されるゲーム空間を適切に把握することが可能になる。
【0113】
なお、立体視パラメータは、必ずしも、距離Df及びDの両方を含まなければならない訳ではない。例えば、どちらか一方の距離は立体視パラメータに含まれ、他方の距離は、固定値として定められ、立体視パラメータに含まれなくてもよい。
【0114】
また、立体視パラメータは、必ずしも、距離Df及び距離Dそのものでなくてもよい。立体視パラメータは、例えば、距離Df、並びに、距離Df及び距離Dの比率等、距離Df及び距離Dを算出することができるパラメータでもよい。
【0115】
また、立体視パラメータには、ニアクリップ面の位置、及び、ファークリップ面の位置等、立体視画像の描画に係る撮影範囲を定めるパラメータが含まれてもよい。
【0116】
例えば、仮想カメラとニアクリップ面との間に位置するオブジェクトは描画されないため、ニアクリップ面の位置を適切に設定することで、仮想カメラを用いて描画されるオブ
ジェクトを適切に選択することができる。具体的には、仮想カメラの視野を遮るようなオブジェクトが仮想カメラの近傍に存在する場合、当該オブジェクトが描画対象に含まれないようにニアクリップ面の位置を設定することで、仮想カメラの描画対象から当該オブジェクトを除外することができる。これにより、仮想カメラの視野を遮るオブジェクトが描画されなくなるので、プレイヤにとってゲーム空間をより把握しやすい立体視画像を描画することが可能になる。
【0117】
また、例えば、仮想カメラからみてファークリップ面より後方に位置するオブジェクトは描画されないため、ファークリップ面の位置を適切に設定することで、仮想カメラを用いて描画されるオブジェクトを適切に選択することができる。具体的には、仮想カメラのカメラ方向を基準として、手前側に存在するオブジェクトと奥側に存在するオブジェクトの色が同色である場合がある。この場合、当該奥側に存在するオブジェクトが描画対象に含まれないようにファークリップ面の位置を設定することで、仮想カメラの描画対象から当該奥側のオブジェクトを除外することができる。これにより、当該手前側に存在するオブジェクトと色が同色である当該奥側に存在するオブジェクトが描画されなくなるので、プレイヤにとってゲーム空間をより把握しやすい立体視画像を描画することが可能となる。
【0118】
領域情報515は、ゲーム空間に設定された複数の領域に関する情報である。ゲーム装置1は、ゲーム空間に設定された複数の領域のうち、キャラクタ2が位置する領域を特定する。そして、ゲーム装置1は、特定した領域に応じて、上記立体視パラメータを設定する。本実施形態において、領域情報515は、キャラクタ2が位置する領域を特定するために必要な各領域の範囲を示す範囲情報、ゲーム装置1が当該立体視パラメータの設定を行うために必要な設定用情報、及び、領域間の優先度を示す優先度情報を含む。なお、本実施形態において、領域情報515は、領域毎に用意された複数件の領域情報である。1件1件の領域情報は、各領域に関する範囲情報、設定用情報、及び、優先度情報を含む。
【0119】
本実施形態では、各件の領域情報に含まれる範囲情報は、ゲーム空間内における各領域の範囲を示す。ゲーム装置1は、当該範囲情報により、ゲーム空間内における各領域の範囲を認識することができる。範囲情報は、例えば、(1)球の中心座標と球の半径、(2)円柱の中心軸と、中心軸の長さの範囲を示す座標と、円柱の半径、(3)直方体の8頂点の頂点列等で記述される。
【0120】
また、本実施形態では、各件の領域情報に含まれる設定用情報は、各領域に応じて立体視パラメータ(距離Df及びD)を設定するための描画設定用パラメータを含む。ゲーム装置1は、描画設定用パラメータに示される値を用いて、立体視パラメータの値を設定する。なお、設定用情報は、領域を識別する領域IDをキーとして、各領域において、立体視パラメータ(距離Df及びD)に設定するための値を格納したテーブル又はデータベースであってもよい。
【0121】
なお、各領域に応じて立体視パラメータを設定するための情報は、各件の領域情報に含まれる設定用情報(描画設定用パラメータ)に限定される訳ではない。例えば、領域情報515は、各件の領域情報に含まれる設定用情報(描画設定用パラメータ)に代えて、特定された領域を示す領域ID等を入力とし、立体視パラメータに設定するための値を出力とする描画設定用関数を含んでもよい。当該描画設定用関数は、1件1件の領域情報に用意される必要はなく、各件共通に用意されてもよい。
【0122】
また、キャラクタ2が位置する領域の切り替わりにより立体視パラメータが設定できるため、描画設定用パラメータ及び描画設定用関数が必要ない場合がある。この場合、設定用情報は無くてもよい。この場合の例として、所定の規則に従って複数の領域が設定され
ている場合が挙げられる。所定の規則に従って複数の領域が設定されている場合とは、例えば、ゲーム空間内において2種類の領域が交互に設定されている場合である。この場合、キャラクタ2が位置する領域の切り替わりに応じて、立体視パラメータを切り替えることが可能である。そのため、この場合、ゲーム装置1は、上記設定用情報を用いることなく、各領域に応じた立体視パラメータを設定することができる。このような場合、上記設定用情報は無くてもよい。
【0123】
また、本実施形態では、各件の領域情報に含まれる優先度情報は、各領域間の優先度を定める。本実施形態において、ゲーム装置1は、キャラクタ2が複数の領域に同時に位置する場合、優先度に従って、キャラクタ2の位置する複数の領域のうちのいずれかの領域に応じて、立体視パラメータを設定する。このときに、優先度情報は利用される。なお、例えば、キャラクタ2が複数の領域に同時に位置することが生じない場合、例えば、ゲーム空間に設定された複数の領域に重複が生じない場合、ゲーム装置1は、当該優先度情報を必要としない。
【0124】
ゲーム進行状態情報516は、ゲーム進行状況を含む情報である。ゲーム進行状態情報516には、例えば、ゲームの経過時間、及び、得点情報等が含まれる。ゲーム装置1は、以上のような情報を保持する。
【0125】
[機能ブロック]
図12は、本実施形態に係るゲーム装置1の機能ブロックを例示する。図12に示される各機能ブロックは、例えば、外部メモリ45に格納されるゲームプログラムを情報処理部31(CPU311及びGPU312)が読み出して実行することによって実現される機能の一部である。
【0126】
ゲーム装置1は、ゲームプログラムを実行することによって、記憶部51、入力受付部52、位置制御部53、領域判定部54、パラメータ設定部55、画像生成部56、仮想カメラ制御部57、ゲーム進行処理部58、及び、表示制御部59として動作する。
【0127】
記憶部51は、上記のとおり、キャラクタ情報511、障害物情報512、フィールド情報513、仮想カメラ情報514、領域情報515、及び、ゲーム進行状態情報516等を保持する。
【0128】
入力受付部52は、ゲーム装置1に接続される入力装置を介した入力を受け付ける。具体的には、入力受付部52は、各操作ボタン14A〜14I及びアナログスティック15を介したプレイヤの入力操作を受け付ける。例えば、入力受付部52は、プレイヤによるキャラクタ2の移動操作として、十字ボタン14A又はアナログスティック15を介した入力操作を受け付ける。また、例えば、入力受付部52は、プレイヤによるキャラクタ2のアクション操作として、操作ボタン14B〜14Eを介した入力操作を受け付ける。アクション操作とは、例えば、キャラクタ2に飛ぶ等の所定の動作を行わせる操作である。
【0129】
位置制御部53は、仮想空間におけるオブジェクトの位置を制御する。具体的には、位置制御部53は、キャラクタ2の位置を制御する。例えば、位置制御部53は、入力受付部52が受け付けた十字ボタン14A又はアナログスティック15を介した入力操作に基づいて、キャラクタ2の位置を制御する。
【0130】
領域判定部54は、ゲーム空間に設定された複数の領域のうち、位置制御部53により制御されたキャラクタ2の位置する領域を判定する。具体的には、領域判定部54は、記憶部51に格納されたキャラクタ情報511及び領域情報515に含まれる範囲情報を用いて、キャラクタ2の位置する領域を判定する。当該判定により、キャラクタ2の位置す
る領域が特定される。なお、ゲーム空間内に設定される領域の形状は、例えば、直方体、円柱、及び、球などの立体形状である。
【0131】
パラメータ設定部55は、領域判定部54による判定に基づいて特定された領域に応じて、立体視画像の描画に用いられる立体視パラメータ(仮想カメラ情報514)を設定する。本実施形態では、まず、パラメータ設定部55は、領域判定部54による判定に基づいて特定された領域に対応する1件の領域情報(領域情報515)に含まれる設定用情報を記憶部51から取得する。そして、取得した設定用情報に含まれる描画設定用パラメータにより示される値に基づいて、立体視パラメータの値を設定する。
【0132】
なお、パラメータ設定部55は、特定された領域に応じて立体視パラメータに設定されるべき設定値が、当該立体視パラメータに設定されている現在値と異なる場合、立体視パラメータに設定される値が当該現在値から当該設定値に段階的に変化するように、立体視パラメータを設定してもよい。
【0133】
また、当該段階的な変化において、パラメータ設定部55は、当該現在値から当該設定値への変化に係る変化量が一定となるように、立体視パラメータを設定してもよい。パラメータ設定部55は、当該現在値から当該設定値への変化に係る変化量が減少するように、立体視パラメータを設定してもよい。パラメータ設定部55は、当該現在値から当該設定値への変化に係る変化量が増加するように、立体視パラメータを設定してもよい。
【0134】
画像生成部56は、パラメータ設定部55により設定された立体視パラメータ(仮想カメラ情報514)に基づいて、キャラクタ2を含む立体視画像を描画(レンダリング)することで、立体視画像を生成する。立体視画像の描画については、これまでに説明したとおりであるため、説明を省略する。
【0135】
なお、パラメータ設定部55は、特定された領域に応じて立体視パラメータに設定されるべき設定値が、当該立体視パラメータに設定されている現在値と異なる場合、立体視パラメータに設定される値が当該現在値から当該設定値に段階的に変化するように、立体視パラメータを設定するときがある。このとき、画像生成部56は、当該変化の間、当該立体視パラメータに基づいて、少なくとも1回、立体視画像を描画する。なお、当該変化の期間、又は、当該変化の間における描画の回数は、例えば、領域判定部54による判定に基づいて特定された領域に応じて定められる。
【0136】
仮想カメラ制御部57は、仮想カメラ情報514に含まれる仮想カメラの位置及び向き等を示す情報を参照及び更新することで、仮想カメラの位置及び向き等の状態を制御する。例えば、仮想カメラ制御部57は、2つの仮想カメラ(C1、C2)の撮像対象範囲にキャラクタ2が含まれるように、位置制御部53により制御されるキャラクタ2の位置に基づいて、仮想カメラの位置及び向きを制御する。
【0137】
ゲーム進行処理部58は、ゲーム進行状態情報516を参照及び更新することで、本実施形態に係るアクションゲームのゲーム進行を管理する。例えば、ゲーム進行処理部58は、プレイヤがキャラクタ2を操作することで得た得点を管理したり、RTC38によって取得される実空間の時間経過に従って、ゲーム空間内の時間経過を管理したりする。
【0138】
表示制御部59は、画像生成部56によって生成された立体視画像等を上側LCD22に表示させる。すなわち、表示制御部59は、上側LCD22の画像の表示を制御する。上側LCD22は、表示制御部59に制御されることで、立体的に又は平面的に画像を表示する。
【0139】
ゲーム装置1は、このような機能ブロックを有する。なお、以下において、情報処理部31により実現される上記各機能による処理を説明する場合、情報処理部31に代えて各機能ブロックを処理の主体として説明する。
【0140】
§2 動作例
次に、図13を用いて、本実施形態に係るゲーム処理の流れを説明する。図13は、本実施形態に係るゲーム処理の流れを示すフローチャートである。なお、図13では、ステップを「S」と略称する。
【0141】
ステップ101では、初期設定がなされる。情報処理部31は、例えば、ゲームの開始等のアクションをトリガとして、キャラクタ情報511に含まれるキャラクタ2の状態に関するパラメータ、障害物情報512に含まれる障害物4の状態に関するパラメータ、仮想カメラ情報514に含まれる仮想カメラの設定に係る各情報、及び、ゲーム進行状態情報等に初期値を設定する。初期設定が終了すると、処理は、ステップ102に進む。
【0142】
ステップ102では、プレイヤによる入力装置を介した入力操作が受け付けられる。入力受付部52は、各操作ボタン14A〜I、及び、アナログスティック15を介した入力操作を受け付ける。その後、処理は、ステップ103に進む。
【0143】
ステップ103では、キャラクタ2の位置が制御される。具体的には、位置制御部53は、キャラクタ情報511に含まれるキャラクタ2の状態に関するパラメータから、キャラクタ2の位置に関する情報(座標値等)を取得する。また、位置制御部53は、キャラクタ情報511に含まれるキャラクタ2の移動速度に関する情報、及び、仮想カメラ情報514に含まれる仮想カメラの位置及び向きを示す情報を取得する。そして、位置制御部53は、入力受付部52が受け付けたプレイヤの入力操作、キャラクタ情報511に含まれるキャラクタ2の移動速度に関する情報、及び、仮想カメラ情報514に含まれる仮想カメラの位置及び向きを示す情報に基づいて、キャラクタ2の位置に関する情報を更新する。位置制御部53は、例えば、仮想カメラの位置及び向きを基準として、ステップ102において受け付けたプレイヤの入力操作(移動操作)、及び、キャラクタ2の移動速度に関する情報から特定可能であるキャラクタ2自身の動作によって移動したキャラクタ2が存在すべき位置を特定する。このとき、例えば、位置制御部53は、障害物情報512及びフィールド情報513等を参照する。そして、位置制御部53は、キャラクタ2がフィールド3(地面や壁等)及び障害物4にめり込まないよう、キャラクタ2の位置を特定する。位置制御部53は、特定した位置に基づいて、キャラクタ情報511に含まれるキャラクタ2の位置に関する情報を更新する。このようにして、位置制御部53は、キャラクタ2の位置を制御する。当該制御の後、処理は、ステップ104に進む。なお、キャラクタ2の位置の特定方法は、上記のような特定方法に限定される訳ではない。キャラクタ2の位置の特定方法は、適宜選択される。
【0144】
ステップ104では、仮想カメラの設定が更新される。例えば、仮想カメラ制御部57は、仮想カメラ情報514に含まれる仮想カメラの位置及び向き等を示す情報を取得する。そして、仮想カメラ制御部57は、入力受付部52が受け付けたプレイヤによる入力操作、キャラクタ2の位置、または、キャラクタ2の移動速度等に基づいて、更新に係る仮想カメラの位置を特定する。仮想カメラ制御部57は、特定した位置に基づいて、仮想カメラ情報514に含まれる仮想カメラの位置を更新する。また、仮想カメラ制御部57は、仮想カメラの位置と同様に、仮想カメラの向きを更新する。当該仮想カメラの設定の更新後、処理は、ステップ105に進む。
【0145】
なお、本ステップ104において、例えば、仮想カメラ制御部57は、フィールド3(例えば、地面)から一定の高さで、キャラクタ2の背後、かつ、キャラクタ2との距離が
一定となる位置を仮想カメラの位置として特定してもよい。また、例えば、仮想カメラ制御部57は、キャラクタ2の移動に応じて、仮想カメラとキャラクタ2との間の距離が一定以上となった場合に、仮想カメラが、キャラクタ2に引っ張られ、かつ、キャラクタ2に追随して移動するように、仮想カメラの位置を特定してもよい。また、例えば、仮想カメラ制御部57がフィールド3(地面や壁等)及び障害物4にめり込まないよう、仮想カメラ制御部57は、仮想カメラの位置を特定してもよい。また、例えば、仮想カメラ制御部57は、仮想カメラとキャラクタ2との間に、キャラクタ2以外のオブジェクト(例えば、障害物4)が入らないように、仮想カメラの位置を特定してもよい。ただし、仮想カメラの位置の特定方法は、これらの方法に限定される訳ではない。仮想カメラの位置の特定方法は、適宜選択される。
【0146】
ステップ105では、ゲーム進行処理が実行される。ゲーム進行処理部58は、例えば、入力受付部52が受け付けた入力装置を介した入力、キャラクタ情報511、障害物情報512、及び、フィールド情報513等に基づいて、所定のイベント等が発生したか否かを判定する。所定のイベントとは、例えば、キャラクタ2が、フィールド3上に設けられたゴール地点に到着すること等である。このようなイベントが発生した場合、ゲーム進行処理部58は、例えば、記憶部51のゲーム進行状態情報516に含まれる得点情報を更新する。また、ゲーム進行処理部58は、例えば、実空間の時間経過に従って、ゲーム内時間を更新する。ゲーム進行処理が終了すると、処理は、ステップ106に進む。
【0147】
ステップ106では、キャラクタ2の位置する領域が判定される。例えば、領域判定部54は、キャラクタ情報511からキャラクタ2の位置に関する情報を取得する。当該キャラクタ2の位置に関する情報は、ステップ103において更新された情報である。また、領域判定部54は、領域情報515から各領域の範囲を示す範囲情報を取得する。そして、領域判定部54は、キャラクタ2の位置と各領域の範囲を比較し、キャラクタ2の位置を含む範囲の領域を判定する。当該判定に基づいて、キャラクタ2の位置する領域が特定される。その後、処理は、ステップ107に進む。
【0148】
ステップ107では、ステップ106で特定された領域に基づいて、立体視画像を描画するための立体視パラメータが設定される。具体的には、パラメータ設定部55は、領域情報515から、ステップ106において特定した領域に対応する領域情報を取得する。そして、パラメータ設定部55は、取得した領域情報に含まれる設定用情報(描画設定用パラメータ)を用いて、立体視パラメータの設定を行う。
【0149】
なお、ステップ106で特定される領域が複数の領域である場合がある。つまり、キャラクタ2が同時に複数の領域に位置する場合がある。図14は、キャラクタ2が同時に複数の領域に位置する状態を例示する。図14に示される領域6(斜線領域)は、ゲーム空間内に設定された領域5a及び領域5bが重なる領域である。キャラクタ2は領域6に位置する。つまり、キャラクタ2は、同時に、ゲーム空間内に設定された領域5a及び領域5bに位置する。
【0150】
この場合、例えば、パラメータ設定部55は、複数の領域それぞれに設定された優先度に従って、立体視パラメータの設定に係る領域を特定してもよい。このとき、例えば、パラメータ設定部55は、優先度の最も高い領域を、立体視パラメータの設定に係る領域として特定してもよい。ただし、立体視パラメータの設定に係る領域を優先度に従って特定する方法は、このような方法に限定されるものではない。例えば、優先度の最も低い領域が、立体視パラメータの設定に係る領域として特定されてもよい。
【0151】
また、このとき、例えば、パラメータ設定部55は、キャラクタ2が同時に位置する複数の領域(例えば、領域5a及び領域5b)それぞれに対応する領域情報に含まれる優先
度情報を参照し、立体視パラメータの設定に係る領域を特定した後、当該立体視パラメータの設定に用いる設定用情報を取得してもよい。ただし、設定用情報を取得する方法は、このような方法に限定されるものではない。例えば、パラメータ設定部55は、キャラクタ2が同時に位置する複数の領域それぞれに係る領域情報を取得し、当該取得した領域情報に含まれる優先度情報を比較してもよい。そして、パラメータ設定部55は、当該比較に基づいて、立体視パラメータの設定に係る領域に対応する領域情報を選択し、該選択された領域情報から当該立体視パラメータの設定に用いる設定用情報を取得してもよい。
【0152】
また、この場合、例えば、パラメータ設定部55は、キャラクタ2の移動に基づいて、立体視パラメータの設定に係る領域を特定してもよい。例えば、パラメータ設定部55は、キャラクタ2が同時に位置する複数の領域(例えば、領域5aa及び領域5b)のうち、キャラクタ2が同時に複数の領域に位置する直前に存在した領域(例えば、領域5a)を、立体視パラメータの設定に係る領域と特定してもよい。
【0153】
ステップ106で特定される領域が複数の領域である場合、ステップ107ではこのようにして、立体視パラメータの設定に係る領域が特定される。そして、パラメータ設定部55は、当該特定した領域に対応する領域情報に含まれる設定用情報を用いて、立体視パラメータの設定を行う。
【0154】
本ステップ107では、このようにして、立体視画像を描画するための立体視パラメータが設定される。その後、処理は、ステップ108に進む。
【0155】
図13に戻り、ステップ108では、立体視画像の描画処理が実行される。画像生成部56は、パラメータ設定部55が設定した立体視パラメータを用いて立体視画像を生成する。例えば、画像生成部56は、キャラクタ情報511、障害物情報512、フィールド情報513、及び、仮想カメラ情報514に基づいて、立体視画像を描画(レンダリング)し、立体視画像を生成する。
【0156】
なお、画像生成部56により立体視画像が生成された後、表示制御部59は、画像生成部56が描画した立体視画像を上側LCD22に出力する。そして、表示制御部59は、当該立体視画像を上側LCD22に立体視可能な状態で表示させる。その後、次のステップ109に処理が進む。
【0157】
ステップ109では、ゲーム進行処理部58により、ゲーム終了か否かが判断される。例えば、ゲーム進行処理部58は、所定の時間が経過した等のイベントの発生に基づいて、ゲーム終了の判断を行う。ゲーム進行処理部58によってゲーム終了と判断されると(ステップ109のYES)、本実施形態に係るゲーム処理は終了する。他方、ゲーム進行処理部58によってゲーム終了ではないと判断されると(ステップ109のNO)、本実施形態に係るゲーム処理は、ステップ102に戻って、繰り返される。
【0158】
本実施形態によれば、ゲーム空間内に設定された複数の領域に応じて設定される立体視パラメータが用いられて、キャラクタ2を含む立体視画像が生成される。例えば、当該領域に応じて、2つの仮想カメラ(C1、C2)間の距離Df、及び、各仮想カメラ(C1、C2)とゼロ視差面PD0との間の距離Dが設定される。このように、本実施形態では、各領域に応じて、2つの仮想カメラ(C1、C2)間の距離Df、及び、各仮想カメラ(C1、C2)とゼロ視差面PD0との間の距離Dを設定することができる。そのため、本実施形態によれば、立体視画像により表現されるゲーム空間をより適切にプレイヤに把握させることが可能となる。
【0159】
また、本実施形態によれば、ゲーム空間内に設定された複数の領域に応じて、立体視画
像の描画に用いられる立体視パラメータが設定される。ここで、プレイヤにゲーム空間を適切に把握させるためには、立体視パラメータは、ゲーム空間の状態に応じて、設定される必要がある。このため、ゲーム空間内に設定される複数の領域は、ゲーム空間の状態に基づいて設定されるのが好ましい。本実施形態では、ゲーム空間内に設定される複数の領域の形状に設定できる形状は、例えば、直方体、円柱、球等の複数種類の形状である。ゲーム空間内に設定される複数の領域の形状が、ゲーム空間の状態に基づいて適宜選択されるとする。当該選択において、例えば、複数種類の異なる形状が選択されたとする。つまり、複数種類の異なる形状の領域がゲーム空間内に設定されたとする。このとき、領域間で重複する部分(重複領域)が生じうる。この重複領域では、いかにして立体視パラメータを設定するのかという問題が生じる。本実施形態では、キャラクタ2がこのような重複領域に位置する場合、言い換えると、キャラクタ2が同時に複数の領域に位置する場合、各領域に設定された優先度に基づいて、立体視パラメータの設定に係る領域が特定される。よって、本実施形態では、このような重複領域が存在することによって生じる問題を考慮せず、ゲーム空間内に複数の領域を設定することができる。すなわち、本実施形態では、ゲーム空間内の状態に適応するように、複数の領域を簡易に設定することができる。
【0160】
なお、ステップ102〜ステップ107の処理は、ゲームが終了するまで繰り返される。本実施形態では、ステップ102〜ステップ107の一連の処理を1フレームの処理とする。そして、本実施形態では、1秒間に30フレームの処理がなされる。
【0161】
ステップ102〜ステップ107の処理が繰り返されると、プレイヤがキャラクタ2を操作することによって、ステップ106において特定される、キャラクタ2が位置する領域が切り替わりうる。言い換えると、ステップ107において、立体視パラメータの設定に係る領域が切り替わりうる。このとき、立体視パラメータに設定される値の切り替わりが生じうる。図15は、このような立体視パラメータに設定される値の切り替わりが生じた状態を例示する。図15は、キャラクタ2が、キャラクタ2aにより示される位置から、キャラクタ2bにより示される位置に移動した場合を例示する。ゼロ視差面PD0aは、領域5aにおいて設定されるゼロ視差面である。また、ゼロ視差面PD0bは、領域5bにおいて設定されるゼロ視差面である。図15に示される例では、仮想カメラとゼロ視差面PD0aとの距離Daは、仮想カメラとゼロ視差面PD0bとの距離Dbと異なる。つまり、例えば、キャラクタ2が領域5aから領域5bに移動すると、立体視パラメータ(距離D)に異なる値が設定される。
【0162】
ここで、1フレームの処理で、立体視パラメータの値が切り替わるとする。例えば、キャラクタ2の位置が領域5aから領域5bに変わった時点におけるフレームのステップ107の処理において、立体視パラメータの値が切り替わったとする。この場合、具体的には、パラメータ設定部55の処理により、立体視パラメータに設定される値は、領域5aに対応する領域情報から取得される設定用情報により設定された値(現在値)から、領域5bに対応する領域情報から取得される設定用情報により設定されるべき設定値に切り替わる。このとき、現在値と設定値との差が大きいほど、1フレーム間で差分の大きい立体視画像が描画される。
【0163】
本実施形態では、このような点を考慮して、ステップ107では、複数のフレームをかけて、立体視パラメータの値が現在値から設定値に段階的に変化するように、立体視パラメータの設定が行われる。図16A〜Eは、当該動作における、立体視パラメータに設定される値の変化を例示する。なお、図16A〜Eは、それぞれ、ステップ106において、領域判定部54により特定される領域が切り替わった時刻を「t=0」とするグラフである。
【0164】
図16Aは、現在値から設定値への変化に係る変化量が一定である場合を例示する。図
16Bは、現在値から設定値への変化に係る変化量が減少するように、立体視パラメータが設定される場合を例示する。図16Cは、現在値から設定値への変化に係る変化量が増加するように、立体視パラメータが設定される場合を例示する。なお、現在値から設定値への変化に係る変化量は、図16A〜Cにより例示される変化量に限定される訳ではない。
【0165】
また、図16Dは、現在値から設定値への変化の間に、現在値と設定値との間以外の値が立体視パラメータに設定される場合を例示する。また、図16Eは、キャラクタ2の位置が領域5aから領域5bに切り替わった時点とは時間的にずれた時点から、現在値から設定値への変化が生じる場合を例示する。図16Dに示されるように、当該変化の間、現在値と設定値との間以外の値が立体視パラメータに設定されてもよい。また、図16Eに示されるように、キャラクタ2の位置が領域5aから領域5bに切り替わった時点とは時間的にずれた時点から、現在値から設定値への変化が生じてもよい。また、図16D及び16Eは、現在値と設定値との間以外の値が立体視パラメータに設定される仕様、及び、キャラクタ2の位置が領域5aから領域5bに切り替わった時点とは時間的にずれた時点から変化が生じる仕様をそれぞれ図16Bに例示される変化に適用した場合を例示する。しかしながら、現在値と設定値との間以外の値が立体視パラメータに設定される仕様、及び、キャラクタ2の位置が領域5aから領域5bに切り替わった時点とは時間的にずれた時点から変化が生じる仕様は、どのような変化に適用されてもよい。例えば、これらの仕様は、図16A又は16Cに例示される変化に適用されてもよい。
【0166】
本実施形態では、パラメータ設定部55は、このように立体視パラメータの値の設定を行う。これにより、本実施形態におけるゲーム装置1は、1フレーム間における立体視画像の差分を小さくする。これにより、本実施形態では、1フレーム間における立体視画像の急激な変化を防止することができる。
【0167】
また、本実施形態では、パラメータ設定部55は、キャラクタ2の位置が領域5aから領域5bに切り替わった時点とは時間的にずれた時点から、立体視パラメータの値が現在値から設定値への変化するように、立体視パラメータの設定を行う。これにより、本実施形態では、例えば、キャラクタ2が領域5aと領域5bとを行ったり来たりすることによって、キャラクタ2が位置する領域が頻繁に切り替わる場合に、立体視パラメータに設定される値が頻繁に切り替わることが防止される。よって、本実施形態では、キャラクタ2が位置する領域が頻繁に切り替わる場合に生じうる、立体視パラメータに基づいて描画される立体視画像の頻繁かつ急激な変化を防止することができる。
【0168】
なお、立体視パラメータの値の変化に係るフレーム数は、当該変化に係る時間で指定されてもよい。時間で指定される場合、当該変化に係る時間を1フレームにかかる時間で割った値が、当該変化に係るフレーム数(ステップ102〜107の繰り返しの回数)となる。
【0169】
また、立体視パラメータの値の変化に係るフレーム数は、キャラクタ2の位置する、ゲーム空間内に設定された領域に応じて決定されてもよい。例えば、キャラクタ2が領域5aから領域5bに移動した場合、立体視パラメータの値の変化に係るフレーム数は、領域5a又は領域5bに応じて決定されてもよい。これにより、適宜、立体視パラメータの値の変化に係るフレーム数を設定することができる。例えば、立体視パラメータの切り替わりの際の変化量に比例するように、立体視パラメータの値の変化に係るフレーム数が定められてもよい。このようにすることで、いずれの領域間でも、立体視パラメータに設定される値が同じような変化するように、立体視パラメータを設定することができる。
【0170】
なお、上記実施形態は、あくまでも本発明の一実施形態に過ぎず、本発明の範囲を何ら
限定するものではない。
【0171】
また、上記実施形態では、1台の情報処理装置(ゲーム装置本体)が、複数の処理を実行している。しかしながら、処理に係る情報処理装置の数は限定されるものではなく、複数の情報処理装置(例えば、ゲーム装置本体とサーバ装置等)が、これらの複数の処理を分担して実行してもよい。
【0172】
また、例えば、プログラム(ゲームプログラム)は、任意のコンピュータ読み取り可能な記憶媒体(例えば、光ディスク、半導体メモリ等)からゲーム装置本体に供給されてもよい。その他、例えば、ゲームプログラムは、ゲーム装置本体内部の不揮発性メモリ(ROM/RTC13、フラッシュメモリ17)に予め格納されていることで供給されてもよい。更に、例えば、ゲームプログラムは、他の情報処理装置(ゲーム装置やサーバ装置)からゲーム装置本体に送信されることで供給されてもよい。情報処理装置(ゲーム装置本体)に対するプログラム(ゲームプログラム)の供給方法は、本発明を限定するものではない。
【符号の説明】
【0173】
1 ゲーム装置
2 キャラクタ
3 フィールド
4 障害物
5a、5b 領域
51 記憶部
52 入力受付部
53 位置制御部
54 領域判定部
55 パラメータ設定部
56 画像生成部
57 仮想カメラ制御部
58 ゲーム進行処理部
59 表示制御部
PD0 ゼロ視差面

【特許請求の範囲】
【請求項1】
立体視表示可能な表示装置に所定の仮想空間の表示を行う情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記仮想空間においてオブジェクトの位置を制御する位置制御手段と、
前記仮想空間に設定された複数の領域のうち、前記オブジェクトの位置する領域を判定する領域判定手段と、
前記領域判定手段で判定された領域に応じて、立体視画像の描画に用いられる立体視パラメータを設定するパラメータ設定手段と、
前記パラメータ設定手段で設定された立体視パラメータに基づいて、前記オブジェクトを含む立体視画像を生成する画像生成手段と、
前記画像生成手段で生成された立体視画像を前記表示装置に表示させる表示制御手段として、機能させる、情報処理プログラム。
【請求項2】
前記コンピュータを、
入力装置からの入力を受け付ける入力受付手段としてさらに機能させ、
前記位置制御手段は、前記入力受付手段で受け付けた入力に基づいて前記オブジェクトの位置を制御する、請求項1に記載の情報処理プログラム。
【請求項3】
前記複数の領域の形状に設定される形状は、複数種類の形状である、
請求項1又は2に記載の情報処理プログラム。
【請求項4】
前記複数種類の形状は、直方体、円柱、及び、球の少なくともいずれかを含む立体形状である、請求項3に記載の情報処理プログラム。
【請求項5】
前記仮想空間に設定された前記複数の領域それぞれには優先度が設定され、
前記領域判定手段において、前記オブジェクトが同時に複数の領域に位置すると判定された場合、前記パラメータ設定手段は、前記優先度に従って、前記オブジェクトの位置する該複数の領域のうちのいずれかの領域に応じて、前記立体視パラメータを設定する、
請求項1から4のいずれか1項に記載の情報処理プログラム。
【請求項6】
前記立体視パラメータは、前記仮想空間において視差が生じない位置を定める基準面に関するパラメータ、及び、前記立体視画像の奥行き感に関するパラメータのうちの少なくとも1つを含む、請求項1から5のいずれか1項に記載の情報処理プログラム。
【請求項7】
前記パラメータ設定手段は、判定された前記領域に応じて前記立体視パラメータに設定されるべき設定値が、前記立体視パラメータに既に設定されている現在値と異なる場合、前記立体視パラメータに設定される値が該現在値から該設定値に徐々に変化するように、前記立体視パラメータを設定する、請求項1から6のいずれか1項に記載の情報処理プログラム。
【請求項8】
前記パラメータ設定手段は、前記現在値から前記設定値への変化において、該変化の最初の所定期間経過した後に、前記立体視パラメータに設定される値が該現在値から該設定値に徐々に変化するように、前記立体視パラメータを設定する、
請求項7に記載の情報処理プログラム。
【請求項9】
前記パラメータ設定手段は、前記現在値から前記設定値への変化に係る変化量が一定となるように、前記立体視パラメータを設定する、請求項7又は8に記載の情報処理プログラム。
【請求項10】
前記パラメータ設定手段は、前記現在値から前記設定値への変化に係る変化量が減少するように、前記立体視パラメータを設定する、請求項7又は8に記載の情報処理プログラム。
【請求項11】
前記パラメータ設定手段は、前記現在値から前記設定値への変化に係る変化量が増加するように、前記立体視パラメータを設定する、請求項7又は8に記載の情報処理プログラム。
【請求項12】
判定された前記領域に応じて、前記現在値から前記設定値への変化の期間が定められる、請求項7から11のいずれか1項に記載の情報処理プログラム。
【請求項13】
立体視表示可能な表示装置に所定の仮想空間の表示を行う情報処理装置であって、
前記仮想空間においてオブジェクトの位置を制御する位置制御手段と、
前記仮想空間に設定された複数の領域のうち、前記オブジェクトの位置する領域を判定する領域判定手段と、
前記領域判定手段で判定された領域に応じて、立体視画像の描画に用いられる立体視パラメータを設定するパラメータ設定手段と、
前記パラメータ設定手段で設定された立体視パラメータに基づいて、前記オブジェクトを含む立体視画像を生成する画像生成手段と、
前記画像生成手段で生成された立体視画像を前記表示装置に表示させる表示制御手段と、
を備える情報処理装置。
【請求項14】
立体視表示可能な表示装置に所定の仮想空間の表示を行う情報処理システムであって、
前記仮想空間においてオブジェクトの位置を制御する位置制御手段と、
前記仮想空間に設定された複数の領域のうち、前記オブジェクトの位置する領域を判定する領域判定手段と、
前記領域判定手段で判定された領域に応じて、立体視画像の描画に用いられる立体視パラメータを設定するパラメータ設定手段と、
前記パラメータ設定手段で設定された立体視パラメータに基づいて、前記オブジェクトを含む立体視画像を生成する画像生成手段と、
前記画像生成手段で生成された立体視画像を前記表示装置に表示させる表示制御手段と、
を備える情報処理システム。
【請求項15】
立体視表示可能な表示装置に所定の仮想空間の表示を行う情報処理装置において実行される情報処理方法であって、
前記仮想空間においてオブジェクトの位置を制御する位置制御ステップと、
前記仮想空間に設定された複数の領域のうち、前記オブジェクトの位置する領域を判定する領域判定ステップと、
前記領域判定ステップで判定された領域に応じて、立体視画像の描画に用いられる立体視パラメータを設定するパラメータ設定ステップと、
前記パラメータ設定ステップで設定された立体視パラメータに基づいて、前記オブジェクトを含む立体視画像を生成する画像生成ステップと、
前記画像生成ステップで生成された立体視画像を前記表示装置に表示させる表示制御ステップと、
を備える情報処理方法。

【図1A】
image rotate

【図1B】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16A】
image rotate

【図16B】
image rotate

【図16C】
image rotate

【図16D】
image rotate

【図16E】
image rotate


【公開番号】特開2012−252566(P2012−252566A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−125187(P2011−125187)
【出願日】平成23年6月3日(2011.6.3)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】