説明

プログラム、情報記憶媒体及び立体視画像生成装置

【課題】立体視画像に適合する、「視差の乖離」と「奥行・隠蔽矛盾」とを抑制できる新しい画像生成手法を実現すること。
【解決手段】ターゲットマーカ10を、マーカ本体12と、マーカ本体12より一回り大きく外縁に向かう程透明度が高い視差座布団14とで構成する。マーカ本体12は、ターゲットマーカ10を付与する指示対象オブジェクト4の直前に配置する。指示対象オブジェクト4が他オブジェクト2によって、仮想カメラC1、C2から隠される場合、マーカ本体12の背後に視差座布団14を配置する。そして、立体視画像上では、マーカ本体12の輪郭部を視差座布団14によりぼかし、輪郭を曖昧にすることで「奥行・隠蔽矛盾」を抑制する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、所与の視点から見た仮想三次元空間の立体視用画像を生成させるためのプログラム等に関する。
【背景技術】
【0002】
近年、立体視画像を表示できるディスプレイ(テレビを含む)が普及しつつある。それに伴い、ビデオゲームを立体視に対応させるための技術が提案されるようになった。
例えば、左眼用立体視画像及び右眼用立体視画像を生成するための左右の仮想カメラの距離を調整可能とし、立体視の迫力ある映像をそのままに、長時間立体視した場合の疲労感を低減する手法などが提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−24637号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
さて、平面視画像(非立体視画像の意;左右両眼に共通に見せる画像)をベースとしたビデオゲームでは通用していた手法を立体視画像にそのまま適用しようとすると、必ずしも適当とは言い難いケースが散見される。例えば、2つの表示物の「表示の優先度」と「奥行き位置」が矛盾していて、どちらの条件も変更したくない場合には、「奥行・隠蔽矛盾」による見にくさの問題が発生する。より具体的にはシューティングゲームなどにおけるターゲットマーカがその一つである。
【0005】
例えば、シューティングゲームなどでは、ゲーム画面内に映っているキャラクタの内、目標物にターゲットマーカが表示されるのが一般的である。ターゲットマーカは、ゲームを進める上で重要な情報を表示するものであるから、表示優先度は一番高く、ゲーム画面内にどれにも隠されることなく最も手前に表示されてきた。つまり、隠蔽処理におけるプライオリティが最も高く、常に見えている状態にされる。平面視画像をベースとしたビデオゲームであれば、ターゲットマーカはゲーム画面の目標物(指示対象オブジェクト)の像と同じ上下左右位置に配置したり、当該像の近傍に配置すればその目的を果たすことができた。
【0006】
一方、両眼視差が生じる立体視画像の場合、当然のことながらゲーム画面を生成するための視点となる左右の仮想カメラから目標物(指示対象オブジェクト)まで固有の奥行が存在することになる。ターゲットマーカの役割からすると、表示の優先度は平面画像のゲームと同様に一番高くあって、なお且つ、目標物(指示対象オブジェクト)と同じ或いは近い奥行情報を持っているのが望ましい。しかし、平面視画像をベースとしたビデオゲームにおけるターゲットマーカ10の表示の考え方をそのまま踏襲したのでは、ターゲットマーカ10に求められる役割を十分に果たせなくなる。
【0007】
例えば、図14は、戦闘機を駆って仮想の空中戦を楽しむフライトシューティングゲームにおける仮想三次元空間の様子の俯瞰概念図である。左仮想カメラC1及び右仮想カメラC2が自機2のオブジェクトの後方に相対位置固定に配置される、いわゆる「三人称視点」の位置にある画面レイアウトを示している。なお、左仮想カメラC1及び右仮想カメラC2と、自機2とについては、相対位置関係が分りやすいように大きく図示しているが、ターゲットマーカが目標物として指示する指示対象オブジェクト4については、図面サイズの関係上、小さく図示している。
【0008】
平面視画像をベースとしたビデオゲームにおけるターゲットマーカの扱い、つまり単純に『表示の優先度が最も高いモノは、最も手前に描けばよい』をそのまま踏襲して立体視画像におけるターゲットマーカ10を扱うと、図14(1)に示すように、ターゲットマーカ10に、左仮想カメラC1及び右仮想カメラC2に最も近い仮想面7、(例えば前方クリップ面や、その直ぐ後の仮想面)の奥行情報を与えることになる。すなわち、指示対象オブジェクト4(4a,4b)よりもカメラ座標系Zc軸方向(仮想カメラに基づく奥行方向)手前側にターゲットマーカ10(10a,10b)が配置される。勿論、最終的なゲーム画面の生成に当ってはターゲットマーカ10の表示優先度は一番高く設定される。なお、ターゲットマーカのみに注目すれば、奥行位置を表示画面位置にするのが最も見やすいが、そのようにする場合には、その他のオブジェクトは、すべて表示画面よりも奥側に表示することとなる。この考え方では、ターゲットマーカの奥行位置が、その他のオブジェクトの奥行位置よりも手前側にあることを前提にしているからである。
【0009】
この考え方に基づくターゲットマーカ10の表示制御は、実装が簡単である。従来の平面視画像をベースとした手法をそのまま適用すれば済むからである。しかし、指示対象オブジェクト4(4a、4b)の奥行情報と、それぞれに対応するターゲットマーカ10(10a、10b)の奥行情報とは大きな隔たりが生じ得る。つまり「視差の乖離」が生じ、ターゲットマーカ10が指示対象オブジェクト4と離れたところにあって見づらくなる。但し、右のターゲットマーカ10bは、対応する右の指示対象オブジェクト4bが自機2に隠される。そのため、「視差の乖離」が問題となることは少ない。
【0010】
では、ターゲットマーカ10の奥行情報を、指示対象オブジェクト4に合わせれば良いかというとそうとは言えない。左右の仮想カメラとターゲットマーカが付される指示対象オブジェクトとの間に他のオブジェクトが配置され、目標物の一部又は全部をカメラから隠してしまうケースで不具合が生じる。
そうしたケースとしては、例えば、フライトシューティングゲームにおける三人称視点による画面レイアウトでは、目標物(この場合敵機)と、左右の仮想カメラとの間に自機が存在し、目標物をその背後に隠してしまう例が挙げられる。また、狙撃手役のプレーヤが、NPC(ノンプレーヤキャラクタ)の目標物を狙撃するFPS(ファースト・パーソン・シューティング)ゲームにおいて、プレーヤの視点(左右の仮想カメラ)と、目標物との間に、自動車や他の人間などの障害物が移動・通過するシーンなども該当する。
【0011】
ターゲットマーカ10の奥行情報を、指示対象オブジェクト4に合わせる手法について図14(2)を参照して具体的に説明する。図14(2)において、自機2に隠されない左のターゲットマーカ10aについては、指示対象オブジェクト4(4a)とほぼ同じ奥行位置のマーカ配置面8(8a)に配置されているため、ターゲットマーカ10aと指示対象オブジェクト4(4a)との「視差の乖離」は極めて小さく問題にならない。一方、自機2に隠されてしまう右のターゲットマーカ10bについては、指示対象オブジェクト4(4b)とほぼ同じ奥行き位置であるため、こちらも問題無いように思える。しかし、「視差の乖離」ではなく「奥行・隠蔽矛盾」の点で問題が生じる。すなわち、ターゲットマーカ10の表示優先度、つまり隠蔽処理におけるプライオリティは最も高く、ゲーム画面上最も手前に表示されるために、あたかもターゲットマーカ10bが自機2に埋まって見える。しかも、片方の目には、埋まっているように見える部分が、他方の眼には、埋まっていないように見える、といった「視野闘争」が生じ、結果として、実際にはありえないような不自然な埋まり方に見える。これが「奥行・隠蔽矛盾」であり、見にくさの原因となる。
【0012】
フライトシューティングゲームにおけるターゲットマーカの具体例を挙げて説明したが、この問題は、この例に限られるわけではない。シューティングゲームの銃口の方向を示す照準や、医用や建築用などの三次元画像上の部位をポインティングデバイスで示すためのポインターといったマーカ体全般に同様に発生する問題である。
【0013】
また、このように2つの表示物の「表示の優先度」と「奥行き位置」が矛盾している場合で、どちらの条件も変更したくない場合に、「奥行・隠蔽矛盾」による見にくさの問題が発生するケースは、ターゲットマーカやポインターに限らない。
例えば、ゲームに登場するキャラクタの発言をテキスト表示するケースも同様である。発言内容と発言するキャラクタの2つの表示物について見ると、発言内容(ターゲットマーカに相当)はゲーム進行上重要な要素であるから「表示の優先度」を高くして最も手前側に表示したいが、発言するキャラクタが画面奧に存在するといった場合なども、上述のターゲットマーカと同様の問題が生じ得る。
【0014】
そこで、本発明は、立体視画像に適合する、「視差の乖離」と「奥行・隠蔽矛盾」とを抑制できる新しい画像生成手法を実現することを目的とする。
【課題を解決するための手段】
【0015】
以上の課題を解決するための第1の形態は、コンピュータに、所与の視点から見た仮想三次元空間の立体視用画像を生成させるためのプログラムであって、
前記仮想三次元空間の中から指示対象オブジェクトを判定する指示対象物判定手段(例えば、図5の処理部200、ゲーム演算部210、ターゲットマーカ配置制御部218、マーカ本体配置制御部220、図8のステップS30)、
前記指示対象オブジェクトを指示する所定のマーカ体(例えば、図3のマーカ本体12)を、前記指示対象オブジェクトの位置或いは前記視点から見て前記指示対象オブジェクトの直近手前側に配置するマーカ体配置手段(例えば、図5の処理部200、ゲーム演算部210、ターゲットマーカ配置制御部218、マーカ本体配置制御部220、図8のステップS32〜S38)、
前記指示対象オブジェクト及び前記他のオブジェクトの描画の後に所定のぼかし処理を施して前記マーカ体を描画することで、前記マーカ体の輪郭の視認性を低下させて前記マーカ体を現出させた立体視画像を生成する隠蔽時画像生成手段(例えば、図5の処理部200、ゲーム演算部210、マーカ本体配置制御部220、ぼかし処理部222、立体視画像生成部261、図8のステップS52〜ステップS78、図7のステップS100)、として前記コンピュータを機能させるためのプログラムである。
【0016】
また、別形態として、所与の視点から見た仮想三次元空間の立体視用画像を生成する立体視画像生成装置であって、
前記仮想三次元空間の中から指示対象オブジェクトを判定する指示対象物判定手段と、
前記指示対象オブジェクトを指示する所定のマーカ体を、前記指示対象オブジェクトの位置或いは前記視点から見て前記指示対象オブジェクトの直近手前側に配置するマーカ体配置手段と、
前記指示対象オブジェクト及び前記他のオブジェクトの描画の後に所定のぼかし処理を施して前記マーカ体を描画することで、前記マーカ体の輪郭の視認性を低下させて前記マーカ体を現出させた立体視画像を生成する隠蔽時画像生成手段と、を備えた立体視画像生成装置(例えば、図1の家庭用ゲーム装置1200)を構成することができる。
【0017】
第1の形態及びその別形態によれば、立体視用画像を生成する際に、指示対象オブジェクト及びこれを仮想カメラから隠す他のオブジェクトを描画した後に、輪郭がぼかされたマーカ体を描画することで、当該マーカ体の輪郭の視認性を低下させることができる。そもそも、立体感の認識には輪郭部分の情報が非常に重要である。人間は、輪郭がはっきりしている方が、すなわち境界が明確である方が視差を感じやすい。そこで、マーカ体の輪郭を意図的にあいまいにすることにより、マーカ体が指示対象オブジェクト又はマーカ体そのものを隠す他オブジェクトの上に重なって表示されるシーンであっても、当該他オブジェクトにマーカ体が不自然に埋没して見える「奥行・隠蔽矛盾」を大幅に抑制することができる。
【0018】
ぼかし処理について着目すれば、第2の形態のように、前記隠蔽時画像生成手段が、前記立体視画像において前記マーカ体の描画部分を含む前記ぼかし処理の対象範囲を判定する対象範囲判定手段(例えば、図5の処理部200、ゲーム演算部210、マーカ本体配置制御部220、ぼかし処理部222、視差座布団配置制御部224、図8のステップS66,S68)と、前記対象範囲に前記ぼかし処理を施すぼかし処理手段(例えば、図5の処理部200、ゲーム演算部210、マーカ本体配置制御部220、ぼかし処理部222、視差座布団カラー設定部226、図8のステップS74,S76)と、を有する、ように前記コンピュータを機能させるための第1の形態のプログラムを構成するとしてもよい。
【0019】
更には、第3の形態として、前記ぼかし処理手段が、前記対象範囲内であって且つ前記他のオブジェクトの描画部分に前記ぼかし処理を施すように前記コンピュータを機能させるための第2の形態のプログラムを構成することができる。
【0020】
また、「ぼかし」を施す範囲の判定について着目すれば、第4の形態として、前記ぼかし処理の対象範囲を定めるための対象範囲決定体(例えば、図3の視差座布団14)を、前記視点と前記マーカ体との間に配置する対象範囲決定体配置手段(例えば、図5の処理部200、ゲーム演算部210、マーカ本体配置制御部220、ぼかし処理部222、視差座布団配置制御部224、図8のステップS66,S68)として前記コンピュータを機能させ、前記対象範囲判定手段が、前記対象範囲決定体を用いて前記ぼかし処理の対象範囲を判定するように前記コンピュータを機能させる、ための第2又は第3の形態のプログラムを構成することができる。
【0021】
また、「ぼかし」の範囲に着目すれば、第5の形態として、前記対象範囲決定体配置手段が、前記対象範囲決定体のサイズを可変に設定するサイズ設定手段(例えば、図5の処理部200、視差座布団配置制御部224、図8のステップS66,S68)を有する、ように前記コンピュータを機能させるための第4の形態のプログラムを構成することができる。
【0022】
また、対象範囲決定体の色の扱いに着目すれば、第6の形態として、前記ぼかし処理手段が、前記対象範囲決定体の色を用いて半透明合成処理することで前記ぼかし処理を行う、ように前記コンピュータを機能させるための第4又は第5の形態のプログラムを構成することができる。
【0023】
また更に「ぼかし」の手法そのものに着目すれば、第7の形態として、前記隠蔽時画像生成手段が、前記マーカ体の色を半透明合成処理することで前記マーカ体にぼかし処理を施して描画するマーカ体半透明合成処理手段(例えば、図5の処理部200、ゲーム演算部210、ターゲットマーカ配置制御部218、図10のステップS44〜S46)を有する、ように前記コンピュータを機能させるための第1〜第6の何れかの形態のプログラムを構成することができる。
【0024】
また、「ぼかし」を施す条件に着目すれば、第8の形態として、前記隠蔽判定手段により隠れないと判定された場合に、前記指示対象オブジェクトの描画の後に前記隠蔽時画像生成手段による前記ぼかし処理と同様のぼかし処理を施してマーカ体を描画して立体視画像を生成する非隠蔽時画像生成手段として前記コンピュータを更に機能させるための第1〜第7の何れかの形態のプログラムを構成することができる。
【0025】
第9の形態は、第1〜第8の何れかの形態のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリなどを含む。第9の発明によれば、第1〜第8の何れかの形態のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜第8の形態の何れかと同様の効果を発揮させることができる。
【図面の簡単な説明】
【0026】
【図1】立体視画像生成装置である据置型の家庭用ゲーム装置のシステム構成の一例を示す図。
【図2】第1実施形態におけるゲーム画面例を示す図。
【図3】ターゲットマーカの構成例を示す図。
【図4】ターゲットマーカの表示方法の原理を説明するための概念図。
【図5】第1実施形態における機能構成の一例を示す機能ブロック図。
【図6】プレイデータのデータ構成の一例を示す図。
【図7】第1実施形態における主たる処理の流れを説明するためのフローチャート
【図8】第1実施形態におけるターゲットマーカ配置処理の流れを説明するためのフローチャート。
【図9】第2実施形態におけるゲーム画面例を示す図。
【図10】第2実施形態における発言イベントを説明するための図。
【図11】第2実施形態における発言イベント処理の流れを説明するためのフローチャート。
【図12】視差座布団の設定の変形例を示す概念図。
【図13】ターゲットマーカ配置処理の変形例の流れを説明するためのフローチャート。
【図14】ターゲットマーカの配置の考え方を示す概念図。
【発明を実施するための形態】
【0027】
〔第1実施形態〕
本発明を適用した第1実施形態として、立体視画像生成装置の1つである据置型の家庭用ゲーム装置において、仮想三次元空間でオブジェクトを移動制御する様子を描画した画像(3DCG:3次元コンピュータグラフィックス)を生成してフライトシューティングゲームを実行する例を挙げる。
なお、ゲームジャンルはフライトシューティングゲームに限る物ではなく、左右の仮想カメラとターゲットマーカで目標物として指示される指示対象オブジェクトとの間に、他オブジェクトが配置され得るゲームであれば、FPSや、RPG(ロールプレイングゲーム)、アクションゲーム、音楽ゲームなどその他のジャンルでも良い。
【0028】
[ゲーム装置の構成]
図1は、本実施形態における立体視画像生成装置である据置型の家庭用ゲーム装置のシステム構成の一例を示す図である。据置型の家庭用ゲーム装置1200は、ゲーム装置本体1201と、立体視画像を表示できるビデオモニタ1220と、ゲームコントローラ1230とを備える。
【0029】
ゲーム装置本体1201は、例えば制御ユニット1210と、光学ディスク1202やメモリカード1204といった情報記憶媒体の読み取り装置1206,1208とを備える。そして、家庭用ゲーム装置1200は、光学ディスク1202やメモリカード1204からゲームプログラム及び各種設定データを読み出し、ゲームコントローラ1230に為される操作入力等に基づいて制御ユニット1210が各種のゲーム演算を実行してビデオゲームを実行する。
【0030】
制御ユニット1210は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)及びDSP(Digital Signal Processor)などの各種マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、ICメモリなどの電気電子機器を備え家庭用ゲーム装置1200の各部を制御する。
【0031】
また、制御ユニット1210は、通信装置1212と、近距離無線通信モジュール1214とを備える。
通信装置1212は、インターネットやLAN(Local Area Network)、WAN(Wide Area Network)と言った通信回線1と有線又は無線接続し、外部装置との間でデータ通信を実現する。近距離無線通信モジュール1214は、近距離無線を介して複数のゲームコントローラ1230との間でデータの送受信を実現する。近距離無線の形式としては、例えばBluetooth(登録商標)やUWB(超広帯域無線)、無線LANなどが適宜適用可能である。
【0032】
そして、制御ユニット1210は、ゲームコントローラ1230から受信した操作入力信号に基づいて左眼用の3DCGと右眼用の3DCGとを元にして、それらに各種情報表示体を付加した左眼用立体視画像と右眼用立体視画像を生成し、またゲーム音を生成してビデオゲームを実行する。
生成された立体視画像に基づく映像信号やゲーム音に基づく音信号は、信号ケーブル1209で接続されたビデオモニタ1220(ディスプレイモニタ、音声信号やビデオ信号などの外部入力が可能なテレビを含む意)に出力される。なお、ゲーム画面は、ビデオモニタ1220で採用される立体視方式に適合した画像として生成されるものとする。
【0033】
ビデオモニタ1220は、立体視画像(一般に「3次元映像」とも呼ばれる立体感を与える映像)を所定の原理に基づいて表示する画像表示装置である。
本実施形態では、ビデオモニタ1220には、画像を表示するフラットパネルディスプレイ1222と、音声を放音出力するスピーカ1224と、偏光メガネ方式又は液晶シャッター方式に分類される立体視メガネ1226と、当該メガネに制御信号を送信するためのIRエミッター1228とを備える。
【0034】
プレーヤは、立体視メガネ1226を装着し、ビデオモニタ1220のフラットパネルディスプレイ1222に表示される左眼用立体視画像や右眼用立体視画像を見つつ、スピーカ1224から放音されるゲーム音を聞きながらゲームコントローラ1230で各種操作を入力してゲームを楽しむ。なお、ビデオモニタ1220が裸眼立体視方式を採用する場合には、立体視メガネ1226及びIRエミッター1228を省略することができる。
【0035】
ゲームコントローラ1230は、内蔵するコントローラ制御ユニット1260を中心に、各種入力デバイス及び出力デバイスをローカルバス回路によって接続しており、コントローラ制御ユニット1260によって各デバイス間の入出力を制御する。
【0036】
入力デバイスとしては、例えば選択の決定やキャンセル、タイミングの入力などに用いられるプッシュボタン1232と、図で言うところの上下左右の各方向を単独入力するための方向入力キー1234と、操作方向と操作量とを同時に入力することのできる右アナログレバー1236及び左アナログレバー1238とを備える。
【0037】
コントローラ制御ユニット1260は、例えば、CPUやローカルバス回路におけるデータ通信を制御するバスコントローラICなどの各種マイクロチップやICメモリなどの電子部品、及びゲーム装置本体1201の近距離無線通信モジュール1214と無線通信を実現する近距離無線通信モジュール1262、などを搭載する。
【0038】
そして、コントローラ制御ユニット1260は、ローカルバス回路を介して各種入力デバイスから送信された信号に基づいて操作入力信号を生成し、生成した操作入力信号を近距離無線通信モジュール1262でゲーム装置本体1201へ送信する。また、スピーカやバイブレータなどの出力デバイスを搭載する構成では、近距離無線通信モジュール1262によって、ゲーム装置本体1201から送出された出力信号を受信した場合には、受信した出力信号に対応づけられている出力デバイスへ制御信号を生成、送出することができる。なお、コントローラ制御ユニット1260及び各部が必要とする電力は、ゲームコントローラ1230に内蔵されたバッテリー(非図示)から供給される。
【0039】
なお、ゲーム実行に必要なプログラム及び各種設定データは、通信装置1212を介して通信回線1に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う、通信回線とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
【0040】
[ターゲットマーカの表示手法の説明]
図2は、本実施形態におけるゲーム画面例を示す図であって、左眼用のゲーム画面つまり左眼用立体視画像の例を示している。
【0041】
本実施形態は、仮想三次元空間に背景オブジェクト(例えば、地面の凹凸を構成する地面オブジェクトと、空を描いたテクスチャが内面に適用される半球状の天球オブジェクト)が配置されゲーム空間が形成される。ゲーム空間内には、プレーヤキャラクタに相当する自機2や、NPC(ノンプレーヤキャラクタ)に相当する複数の敵機3(3c,3d)となるキャラクタオブジェクト、および、ターゲットマーカ10(10c,10d)を構成するオブジェクトが配置される。そして、プレーヤキャラクタである自機2の斜め後方所定位置には、左眼用立体視画像を生成する際の視点となる左仮想カメラと、右眼用立体視画像を生成する際の視点となる右仮想カメラとが配置される。
【0042】
左仮想カメラ及び右仮想カメラで撮影された自機2を含む画像は、それぞれ左眼用ゲーム空間画像、右眼用ゲーム空間画像となる。そして、それぞれの所定位置に、自機2が向いている方位を示す方位メータ20や、プレイ開始からの経過時間表示21、自機2の飛行速度22や飛行高度23、レーダー画面24、残弾数などを示す兵装ステータス表示25や、耐久値表示26などが合成されて、左眼用立体視画像(左眼用ゲーム画面)と、右眼用立体視画像(右眼用ゲーム画面)となり、ビデオモニタ1220にて表示される。
【0043】
図3は、本実施形態におけるターゲットマーカ10の構成例を示す図である。ターゲットマーカ10は、マーカ本体12と、視差座布団14との2つから構成される。
【0044】
マーカ本体12は、透明な板ポリゴンの上に、所定色の十字文様や矩形枠など指示対象物の視認性を高めるための図形が描画された表示体である。図形のデザインは図示された例に限らず、六角形や、三角形、矢印など適宜設定することができる。
【0045】
視差座布団14は、マーカ本体12よりも一回り大きい板ポリゴンである。基本となる色を、マーカ本体12の色に類似(近似)する色、例えばマーカ本体12の色の彩度をやや落とした色とし、中央から外周に向けて透明度が高くなるように設定される。なお、仮想カメラから見たターゲットマーカ10の指し示す指示対象オブジェクトの方向の背景色の類似色、より具体的には背景色の近似色相の色に設定することとしても良い。また、例えば、仮想三次元空間の背景色の平均色などを基準に決めることもできる。例えば、背景の平均色の色相と同じ或いは近似した色相とすると、少ない描画負荷で、あたかも背景が透けて見えているかのような表現とすることができる。また、明度を下げたり、灰色、青色等、いわゆる「後退色」にする或いは「後退色」に近似する色にすることで、引っ込んでいる感じをより効果的に演出することができる。
なお、マーカ本体12や視差座布団14を、ポリゴンではなく、所与のプリミティブ面やパーティクルで構成することとしてもよい。
【0046】
中央部分の透明度に関して、より詳しく述べると、表示優先度、つまり隠蔽処理におけるプライオリティについては、マーカ本体12が最も高く、前述の方位メータ20や経過時間表示21と同じとされる。次の優先度は視差座布団14に設定され、それより下位の優先度には自機2や敵機3、背景などのオブジェクトが設定される。
視差座布団14の中央部分、立体視画像においてマーカ本体12の像と重なる部分の透明度(図3のt)は、最終的な立体視画像において、ターゲットマーカ10の背後に表示されるであろう指示対象オブジェクトを隠す他オブジェクト(例えば自機2)の配色が、視差座布団14の色と混じり合い、ターゲットマーカ10の輪郭がぼやけて見えるように設定すると、視差座布団14とターゲットマーカ10の間にも、視差を和らげる効果が発生し、より見やすい立体視画像とすることができる。ただし、それに限定されるものではなく、例えば、実装の手間や描画負荷を軽減させたい場合や、(視差座布団14の奥行位置は不明瞭にするが)ターゲットマーカ10の奥行位置は明確に示したい場合などには、任意に設定してかまわない。
【0047】
次に、ターゲットマーカ10の具体的な表示方法について説明する。
図4は、本実施形態におけるターゲットマーカの表示方法の原理を説明するための概念図であって、左仮想カメラC1及び右仮想カメラC2が自機2のオブジェクトの後方の所定相対位置、いわゆる「三人称視点」に固定される場合を示している。
なお、左仮想カメラC1及び右仮想カメラC2と自機2とについては、相対位置関係が分りやすいように大きく図示しているが、ターゲットマーカ10が付与される指示対象オブジェクト4については、図面サイズの関係上、小さく図示している。
【0048】
図4では、左仮想カメラC1及び右仮想カメラC2から見ると、ターゲットマーカ10が付与される指示対象オブジェクト4(図2の敵機3に相当)が、自機2によって一部又は全部が隠されている。つまり、自機2が指示対象オブジェクト4を隠す遮蔽オブジェクトとなっている。
【0049】
ターゲットマーカ10のマーカ本体12は、指示対象オブジェクト4よりも仮想カメラ側に、つまりカメラ座標系Zc軸マイナス方向へ、僅かに距離L1だけ離した位置に設定されるマーカ配置面6に配置される。なお、マーカ配置面6は指示対象オブジェクト4上に設定することとしてもよい。すなわち、指示対象オブジェクト4の位置或いは視点から見て指示対象オブジェクト4の直近手前側にマーカ本体12は配置される。よって、マーカ本体12、ひいてはターゲットマーカ10と指示対象オブジェクト4との間に基本的には「視差の乖離」は生じない。また、マーカ本体12の色は適宜設定可能である。
【0050】
一方、視差座布団14は、左仮想カメラC1と右仮想カメラC2の少なくとも何れか一方から見て当該指示対象オブジェクトの一部又は全部が他のオブジェクト(自機2)の背後に隠れる場合に、左仮想カメラC1用の左視差座布団141と、右仮想カメラC2用の右視差座布団142として配置される。
【0051】
その際、左視差座布団141及び右視差座布団142の配置位置は、座布団配置面8上とされる。座布団配置面8は、隠蔽オブジェクトとなっている自機2の代表点P2から仮想カメラ側に、つまりカメラ座標系Zc軸マイナス方向へ、所定距離L2だけ仮想カメラ寄りに有って、カメラ座標系Zc軸と垂直な面とされる。そして、左視差座布団141のサイズは、左仮想カメラC1から見たマーカ本体12を左視差座布団141の表示範囲で包含し、右視差座布団142のサイズは、右仮想カメラC2から見たマーカ本体12を右視差座布団142の表示範囲で包含するように設定される。
【0052】
より具体的には、左仮想カメラC1及び右仮想カメラC2から見たマーカ本体12の四隅の座標をそれぞれの視差座布団配置面8上で算出し、それらが視差座布団の範囲内に収まるように、左視差座布団141及び右視差座布団142の配置サイズを決定する。また、視差座布団の色については、上述した通り例えば背景色に近い色を適宜決定する。
【0053】
そして、決定された配置サイズ及び色の左視差座布団141及び右視差座布団142を、それぞれ左仮想カメラC1及び右仮想カメラC2から見たマーカ本体12の中心位置(又は指示対象オブジェクト4の代表点)と座布団配置面8との交差位置に、視差座布団14(141,142)の中心位置を合わせるように配置する。
【0054】
前述のように、表示優先度、つまり隠蔽処理におけるプライオリティについては、マーカ本体12が最も高く、前述の方位メータ20や経過時間表示21と同じとされる。次の優先度は、視差座布団14に設定され、それより下位の優先度には自機2や敵機3、背景などのオブジェクトが設定される。
【0055】
結果、視差座布団14は、マーカ本体12の輪郭をあいまいにするためのぼかし処理の対象範囲を定めるための対象範囲決定体としての意味を持ち、ターゲットマーカ10がマーカ本体12に類似(近似)した色でうっすらと着色されて「ぼかし処理」されたのと同じ状態になり、ターゲットマーカ10の輪郭があいまいとなる。一見すると、あたかも自機2を透過してマーカ本体12或いはそのマーカ本体12が指示する指示対象オブジェクト4が透けて見えているかのように感じることとなる。
【0056】
そもそも、人間は、物体の輪郭をはっきり視認でき、境界が明確であるほうが視差を感じやすい。従って、ターゲットマーカ10の輪郭があいまいとなることにより、ターゲットマーカ10が自機2の上に重なって表示されるシーンであっても(図2参照)、自機2にターゲットマーカ10が埋没して見えたりする「奥行・隠蔽矛盾」を大幅に抑制することができる。
【0057】
[機能ブロックの説明]
図5は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、家庭用ゲーム装置1200は、操作入力部100と、処理部200と、音出力部350と、立体視画像表示部361と、通信部370と、記憶部500とを備える。
【0058】
操作入力部100は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。図1では、コントローラ1230が操作入力部100に該当する。
【0059】
処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、操作入力部100や記憶部500をはじめ各機能部との間でデータの入出力を行うとともに、所定のプログラムやデータ、操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、据置型家庭用ゲーム装置1200の動作を制御する。図1では、ゲーム装置本体1201に内蔵された制御ユニット1210が処理部200に該当する。
そして本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、立体視画像生成部261と、通信制御部270とを備える。
【0060】
ゲーム演算部210は、ビデオゲームを実行するための各種処理を実行する。例えば、ゲーム空間設定部212を備え、仮想3次元空間内に背景オブジェクトを配置してゲーム空間を形成し、そこにプレーヤキャラクタである自機2やNPCである敵機3のキャラクタオブジェクトを配置する処理をする。
【0061】
また、キャラクタ動作制御部214を備え、プレーヤキャラクタのオブジェクトを操作入力部100からの操作入力に応じて動作させる処理、及びNPCのオブジェクトを自動的に移動及び動作させるいわゆるAI制御をする処理を実行する。
【0062】
また、仮想カメラ制御部216を備え、プレーヤキャラクタ及びNPCの様子を撮影する仮想カメラの位置や姿勢、画角など撮影パラメータを自動制御する処理を実行する。
その他、ゲーム演算部210は、プレーヤキャラクタとNPCの攻撃や接触の判定処理、攻撃によるダメージの反映処理、勝敗の判定処理などを実行する。また、適宜カウンタ、タイマーに係る計時処理、フラグ設定などビデオゲームの実行に必要な各種処理を実行することができる。なお、ビデオゲームの進行制御に関する処理は、公知のフライトシューティングゲームのそれと同様にして実現できる。
【0063】
そして、本実施形態のゲーム演算部210は、更にターゲットマーカ配置制御部218を備える。ターゲットマーカ配置制御部218は、仮想三次元空間の中からターゲットマーカ10を付与すべき指示対象オブジェクトを抽出し、抽出した指示対象オブジェクト4毎についてターゲットマーカ10の表示制御を行う。
具体的には、ターゲットマーカ配置制御部218は、マーカ本体配置制御部220と、ぼかし処理部222とを含む。
【0064】
マーカ本体配置制御部220は、ゲーム空間内に配置されているオブジェクトの中からターゲットマーカ10で指示されるべき指示対象オブジェクト4を判定し、マーカ本体12を指示対象オブジェクト4の位置或いは視点から見て指示対象オブジェクト4の直近手前側に配置する。指示対象オブジェクト4の判定は、例えば、いわゆるロックオンする敵機を抽出する公知の方法と同様にして実施可能である。
【0065】
ぼかし処理部222は、ターゲットマーカ10の輪郭部を対応するマーカ本体12の色となじむようにするべくマーカ本体12の周囲に「ぼかし」が施されたかのような処理をする。
【0066】
具体的には、ぼかし処理部222は視差座布団配置制御部224を含み、指示対象オブジェクト4毎に、当該指示対象オブジェクト4及び他のオブジェクト(自機2)の位置関係に基づいて、左仮想カメラC1及び右仮想カメラC2の少なく何れか一方の視点から見て当該指示対象オブジェクト4の一部又は全部を背後に隠す他オブジェクト(隠蔽オブジェクト)の有無を判定する。なお、左仮想カメラC1及び右仮想カメラC2の少なく何れか一方の視点から見てマーカ本体12の一部又は全部を背後に隠す他オブジェクトを隠蔽オブジェクトとして判定してもよい。
【0067】
そして、該当する他オブジェクト(隠蔽オブジェクト)が有る場合には、ターゲットマーカ10の輪郭をぼかす対象範囲を定めるための対象範囲決定体となる左視差座布団141及び右視差座布団142を、対応する視点(左仮想カメラC1、右仮想カメラC2)とマーカ本体12との間に配置する。この際、各視差座布団のサイズを、対応する視点から見たマーカ本体12を包含するように一回り大きく設定する。換言すると、立体視画像におけるマーカ本体12の描画部分を含むぼかし処理の対象範囲を判定し、当該対象範囲を視差座布団14のサイズとする。
【0068】
また、ぼかし処理部222は視差座布団カラー設定部226を含む。視差座布団カラー設定部226は、対象範囲決定体(左視差座布団141、右視差座布団142)の基本色を、例えば背景色を基準に設定する。なお、ここで言う基本色は、必ずしも一色という意味ではなく、例えば視点(左仮想カメラC1、右仮想カメラC2)から見て視差座布団14に重なる指示対象オブジェクト4の背景となる部分(必ずしも、背景としてのオブジェクトに限らず、他のキャラクタオブジェクトなどがそこに含まれるのも可)の配色をそのまま抜き出して視差座布団用のテクスチャを生成し、利用する構成としてもよい。また、遠景を描画した画像をテクスチャに保持しておき、その配色を利用する構成としても良い。また、マーカ本体12をよりぼかすために、マーカ本体12の色と所定の近似色条件を満たす色(例えば明度及び/又は彩度を下げた色)としてもよい。
【0069】
そして、視差座布団カラー設定部226は、「ぼかし」を施す対象範囲決定体(左視差座布団141、右視差座布団142)の透明度を、立体視画像においてマーカ本体12が描画される部分を所定の透明度t(図3参照)に設定し、外縁に向かうにつれて透明度が高くなり所定の透明度(例えば100%)に至るように設定する。
【0070】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムによって実現され、本実施形態で示すようなワーム状キャラクタWをゲーム内に登場させる場合には、ゲームに係る効果音やBGM、各種操作音の音信号を生成し音出力部350に出力する。
【0071】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力するための装置である。図1ではビデオモニタ1220のスピーカ1224がこれに該当する。
【0072】
立体視画像生成部261は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。立体視画像生成部261は、所定の画像生成タイミング(例えば1/240秒)で左仮想カメラC1を視点とするゲーム空間の画像を元にした左眼用立体視画像と、右仮想カメラC2を視点とするゲーム空間の画像を元にした右眼用立体視画像を生成し、生成した立体視画像の画像信号を立体視画像表示部361に出力する。
【0073】
立体視画像表示部361は、立体視画像生成部261から入力される画像信号に基づいて立体視可能にゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置と、当該画像表示装置の立体視原理に対応した立体視メガネ及びそれに制御信号を送信する送信機などによって実現できる。図1ではビデオモニタ1220のフラットパネルディスプレイ1222、立体視メガネ1226、IRエミッター1228が該当する。
【0074】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0075】
通信部370は、通信回線1と物理レベルで接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置1212がこれに該当する。
【0076】
記憶部500は、処理部200にゲーム装置1200を統合的に制御させるための諸機能を実現するためのプログラムや、ビデオゲームの進行を実行するためのプログラム、各種データ等を記憶する。また、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作入力部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。
【0077】
本実施形態の記憶部500は、システムプログラム501と、ゲームプログラム502と、ゲーム空間設定データ510と、キャラクタ設定データ512と、マーカ本体設定データ516とを予め記憶している。また、ゲームの準備や進行、並びに画像生成に伴って随時生成や更新が行われるデータとして、プレイデータ518を記憶する。
【0078】
システムプログラム501は、家庭用ゲーム装置1200のコンピュータとしての入出力の基本機能を実現するためのプログラムである。ゲームプログラム502は、処理部200が読み出して実行することによってゲーム演算部210としてゲーム進行制御するための諸機能を実現させるためのアプリケーションソフトである。なお、ゲームプログラム502は、システムプログラム501の一部として組み込まれた構成であっても良い。
【0079】
ゲーム空間設定データ510は、仮想三次元空間にゲーム空間を構成するための背景オブジェクトのモデルデータや、テクスチャデータ、モーションデータ、配置位置座標、などの情報をオブジェクト毎に格納する。
【0080】
キャラクタ設定データ512は、自機2や敵機3などのキャラクタとなるオブジェクトのモデルデータや、テクスチャデータ、様々な動作を実現するための複数のモーションデータセット(例えば、モーションIDとそれに対応するモーションデータを含む)、配置位置座標、移動パターン、装備品の初期設定、などの情報をオブジェクト毎に格納する。
【0081】
マーカ本体設定データ516は、マーカ本体12を表示させるためのデータを格納する。例えば、モデルデータや、テクスチャデータ、配色データなどを格納する。
【0082】
プレイデータ518は、現在実行中のゲーム進行状況を示す各種パラメータ値を格納する。具体的には、例えば図6に示すように、左右フラグ519と、自機ステータスデータ520と、敵機ステータスデータ522と、左仮想カメラ制御データ524と、右仮想カメラ制御データ526と、を含む。
【0083】
左右フラグ519は、今回の画像生成タイミングにおいて、左右何れの立体視画像を生成するかを示す。例えば、「1」が左、「0」が右をそれぞれ示し、画像生成タイミング毎に切り換えられる。
【0084】
自機ステータスデータ520と、敵機ステータスデータ522は、それぞれ自機2、敵機3の状態を示すデータ、例えば、位置座標、姿勢、移動速度、加速度、残段数、耐久値、配色データなどを格納する。
【0085】
左仮想カメラ制御データ524と、右仮想カメラ制御データ526は、左仮想カメラC1及び右仮想カメラC2の状態を示すパラメータ値や、撮影条件を示すパラメータ値を格納する。例えば、仮想カメラの配置位置、視線方向、撮影画角、絞り値、フィルタ種類、などを格納する。
【0086】
そして、プレイデータ518は、ターゲットマーカ10の表示制御に関する情報として、指示対象オブジェクトリスト528と、マーカ本体制御データ530と、視差座布団付与オブジェクトリスト534と、遮蔽オブジェクトリスト536と、視差座布団制御データ540とを含む。
【0087】
指示対象オブジェクトリスト528は、ゲーム空間内に配置されたキャラクタオブジェクトの内、目標物とされるオブジェクトのオブジェクトIDを格納する。本実施形態では、ゲーム演算部210が、現在の自機2の位置から所定範囲(例えば、自機2の射程圏内)に入った敵機3のオブジェクトを抽出し、抽出したオブジェクトの識別情報を格納する。そして、ゲーム進行とともに自機2と敵機3の相対位置が変化するのに応じて逐次更新される。
【0088】
マーカ本体制御データ530は、マーカ本体12を表示させるための情報を格納する。一つのマーカ本体12毎に一つのマーカデータセット532が用意される。
そして、一つのマーカデータセット532には、当該マーカ本体を識別するためのマーカ本体ID532aと、当該マーカ本体が付与される指示対象オブジェクト4のオブジェクトIDを格納する対応オブジェクトID532bと、当該マーカ本体の代表点位置座標532cと、マーカ本体12の面の向きを示すマーカ本体面法線ベクトル532dとを格納する。勿論、その他の情報、例えば表示色や明滅パターンなどといった情報も対応づけて格納することができる。
【0089】
視差座布団付与オブジェクトリスト534は、指示対象オブジェクト4の内、当該指示対象オブジェクトと左仮想カメラC1及び右仮想カメラC2の何れかとの間に他オブジェクトが存在し、指示対象オブジェクト4の一部又は全部を隠す他オブジェクトのオブジェクトIDを格納する。なお、指示対象オブジェクト4ではなく、マーカ本体12の一部又は全部を隠す他オブジェクトのオブジェクトIDを格納することとしてもよい。
【0090】
遮蔽オブジェクトリスト536は、視差座布団付与オブジェクトリスト534に登録されている指示対象オブジェクト4と対応づけて、当該オブジェクトの一部又は全部を左仮想カメラC1又は右仮想カメラC2から隠す他オブジェクトそれ自体のオブジェクトIDを格納する。
【0091】
視差座布団制御データ540は、視差座布団の表示制御に関する情報を格納する。具体的には、視差座布団付与オブジェクトリスト534に登録されたオブジェクト毎に視差座布団組データ544が格納される。
【0092】
一つの視差座布団組データ544は、当該組が対応づけられるマーカ本体の識別情報を格納する対応マーカ本体ID544aを含む。対応マーカ本体IDは、これ自体が当該組データの識別情報ともなる。また、当該組に含まれる左視差座布団141の具体的な配置位置と配置姿勢及びポリゴンの表示色や透明度を定義する情報として、左視差座布団代表点位置座標544bと、左視差座布団面法線ベクトル544c、左視差座布団ポリゴンデータ544dを含む。同様に、当該組に含まれる右視差座布団142について、右視差座布団代表点位置座標544eと、右視差座布団面法線ベクトル544f、右視差座布団ポリゴンデータ544gを含む。
【0093】
左視差座布団代表点位置座標544bと、右視差座布団代表点位置座標544eには、例えば、視差座布団14の中心点の座標が設定される。
左視差座布団ポリゴンデータ544dと、右視差座布団ポリゴンデータ544gには、それぞれの視差座布団14の代表点を基準とした頂点位置座標、頂点カラー、頂点透明度、頂点間のピクセルのカラーや透明度を決定するための情報などを格納する。
【0094】
なお、記憶部500には、ゲームの進行や画像生成に係る処理を実行するにあたり必要となる各種データ(例えば、タイマー値やカウンタ、座標変換行列、テクスチャ、Zバッファなど)も適宜記憶されるものとする。
【0095】
[処理の流れの説明]
次に、本実施形態における処理の流れについて説明する。ここで説明する一連の処理の流れは、処理部200がシステムプログラム501を実行中に、ゲームプログラム502を実行することによって実現される。
【0096】
図7は、本実施形態における主たる処理の流れを説明するためのフローチャートである。処理部200は先ず、初期化処理として、ゲーム空間設定データ510及びキャラクタ設定データ512を参照して、仮想三次元空間に背景やプレーヤキャラクタ(自機2)、NPC(敵機3)等のオブジェクトを初期配置し、プレーヤキャラクタ(自機2)及びNPC(敵機3)については、それぞれ自機ステータスデータ520、敵機ステータスデータ522を生成し、逐次更新を開始する(ステップS2)。
【0097】
更に、仮想三次元空間内に、左仮想カメラC1及び右仮想カメラC2を配置し、左仮想カメラ制御データ524及び右仮想カメラ制御データ526を生成して、逐次更新を開始する(ステップS4)。また更に、左右フラグ519を初期化する(ステップS6)。
【0098】
ゲームが開始したならば(ステップS8)、以降、処理部200はステップS10〜S108を所定の画像生成タイミングの周期、つまりビデオモニタ1220で左眼用立体視画像と右目用立体視画像を表示する周期で繰り返し実行する。
【0099】
具体的には、処理部200はオブジェクト毎の動作制御を実行する(ステップS10)。例えば、操作入力部100からの操作入力信号に応じてプレーヤキャラクタ(自機2)のオブジェクトの動作を制御し、所謂AI制御によりNPC(敵機3)の動作を制御する。もし、背景オブジェクトにも動きが設定されているならば、その自動制御もここで実行されるものとする。また、もしゲーム画面を一人称視点でゲーム画面で構成する場合には、操作入力部100からの操作入力信号に応じてプレーヤキャラクタ(自機2)のオブジェクトの代わりに左仮想カメラC1及び右仮想カメラC2の位置や姿勢、移動速度などを変更する。
【0100】
次に、処理部200は、左仮想カメラC1及び右仮想カメラC2の自動制御を行う(ステップS12)。例えば、プレーヤキャラクタ(自機2)の斜め後ろ上方の所定相対位置に両仮想カメラを配置し、両仮想カメラの姿勢(視線方向等)や画角などを制御する。
【0101】
ここまでのステップS10及びS12により、今回の画像生成タイミングにおけるゲーム空間内の自機2や敵機3などのキャラクタオブジェクト及び仮想カメラの位置が更新されたことになるので、処理部200はターゲットマーカ配置処理を実行する(ステップS14)。
【0102】
図8は、本実施形態におけるターゲットマーカ配置処理の流れを説明するためのフローチャートである。同処理では、処理部200は先ず、ゲーム空間内に配置されている各種オブジェクトの中からターゲットマーカ10で目標物として指し示す指示対象オブジェクト4を抽出し、抽出したオブジェクトの識別情報(ID)を指示対象オブジェクトリスト528に格納・登録して指示対象オブジェクトリスト528を更新する(ステップS30)。そして、指示対象オブジェクトリスト528に登録されている全ての指示対象オブジェクト4についてループAを実行する(ステップS32〜S38)。
【0103】
具体的には、ループAにおいて、処理部200は先ず、処理対象とする指示対象オブジェクト4に対応づけて、当該オブジェクトの代表点から仮想カメラ側に所定距離L1だけ離れたマーカ配置面6を設定し(ステップS34;図4参照)、当該配置面にマーカ本体12を新たに配置する(ステップS36)。
【0104】
より具体的には、プレイデータ518内に新たにマーカデータセット532を生成し、マーカ本体ID532aを自動付与し、処理対象とする指示対象オブジェクト4のオブジェクトIDを対応オブジェクトID532bに格納する。そして、処理対象とする指示対象オブジェクト4の代表点P4からカメラ座標系Zc軸(画面奥行方向)マイナス方向(仮想カメラ寄り)へ所定距離L1だけ移動した位置に、カメラ座標系Zc軸と垂直なマーカ配置面6を算出する(図4参照)。
そして、処理対象とする指示対象オブジェクト4の代表点から(左仮想カメラC1と右仮想カメラC2の)中間点C3を結ぶ線分とマーカ配置面6との交点に、マーカ本体12の中心位置を設定する。本実施形態では、マーカ本体12の代表点P4をマーカ本体12の中心位置とするので、マーカ本体代表点位置座標532cには当該交点の座標が格納される。
【0105】
マーカ本体面法線ベクトル532dは、カメラ座標系Zc軸マイナス向きとなる。なお、左仮想カメラC1と右仮想カメラC2の中間点C3(図4参照)に向くように設定する構成としてもよい。更には、中間点C3でなく、今回の画像生成タイミングで生成する立体視画像の視点となる左仮想カメラC1又は右仮想カメラC2を向くように設定してもよい。
【0106】
指示対象オブジェクトリスト528に登録されている全ての指示対象オブジェクト4についてループAを実行したならば、処理部200は次に、指示対象オブジェクトリスト528に登録されている指示対象オブジェクト4の中から、視差座布団14を設定するべきオブジェクトを抽出・登録する(ステップS50)。
具体的には、左仮想カメラC1と右仮想カメラC2の少なくとも何れか一方と指示対象オブジェクト4との間に、指示対象オブジェクト4の一部又は全部を仮想カメラから隠す他オブジェクトが存在する指示対象オブジェクト4を抽出し、抽出した指示対象オブジェクトのオブジェクトIDを視差座布団付与オブジェクトリスト534に格納・登録して視差座布団付与オブジェクトリスト534を更新する。
【0107】
次に、処理部200は、視差座布団付与オブジェクトのオブジェクトIDと対応づけて、当該視差座布団付与オブジェクトを仮想カメラから隠す他オブジェクトそれ自体のオブジェクトIDを格納して遮蔽オブジェクトリスト536を更新する。つまり、遮蔽オブジェクトリスト536に他オブジェクトを登録する(ステップS52)。
【0108】
次に、処理部200は視差座布団付与オブジェクトリスト534に登録されている全オブジェクトについてループBを実行する(ステップS60〜ステップS78)。
具体的には、ループBでは、処理部200は先ず、ループBの処理対象とする視差座布団付与オブジェクトに対応する遮蔽オブジェクト(本実施形態では、三人称視点を採用するので実質的に自機2のオブジェクトに同じ)より所定距離L2だけ仮想カメラ寄りの位置に、仮想カメラのカメラ座標系Zc軸に垂直な視差座布団配置面8を設定する(ステップS62;図4参照)。
【0109】
そして、もし今回の画像生成タイミングにおける左右フラグ519が「1」ならば(ステップS64の「1」)、処理部200は、当該配置面に左視差座布団141を配置する(ステップS66)。もし、左右フラグ519が「0」ならば(ステップS64の「0」)、右視差座布団142を配置する(ステップS68)。
【0110】
ステップS62〜S68をより具体的に説明すると、例えば、処理部200は、視差座布団組データ544を設定し、処理対象とする視差座布団付与オブジェクトのオブジェクトIDを対応オブジェクトID532b(図6参照)とするマーカ本体ID532aを対応マーカ本体ID544aに格納する。
【0111】
そして、左視差座布団141については、処理対象とする視差座布団付与オブジェクトに対応づけられる遮蔽オブジェクト(自機2)の代表点P2からカメラ座標系Zc軸マイナス方向へ所定距離L2だけ左仮想カメラC1寄りの位置を求め、当該位置を通り、面法線ベクトルがカメラ座標系Zc軸マイナス方向を向く面として視差座布団配置面8を設定する。つまり、求めた左仮想カメラC1寄りの位置を、左視差座布団代表点位置座標544bとして設定し、当該左仮想カメラC1寄りの位置からカメラ座標系Zc軸マイナス方向を向くベクトルを左視差座布団面法線ベクトル544cに設定する。なお、左視差座布団面法線ベクトル544cは、左仮想カメラC1と右仮想カメラC2の中間点C3を向くベクトルに設定するとしてもよい。
【0112】
更に、処理部200は、マーカ本体制御データ530を参照して、処理対象とする視差座布団付与オブジェクトのIDが合致する対応オブジェクトID532bのマーカ本体12を選択し、左仮想カメラC1と当該マーカ本体の四隅それぞれを通る4本の線分を求め、当該4本の線分それぞれと視差座布団配置面8との4つの交点を求める。そして、求めた4つの交点を包含するように左視差座布団141のサイズを決定し、そのサイズ情報を、ポリゴンの頂点座標又は標準サイズに対する拡大倍率値として左視差座布団ポリゴンデータ544dに格納する。
【0113】
右視差座布団142についても同様に処理され、処理対象とする視差座布団付与オブジェクトに対応づけられる遮蔽オブジェクト(自機2)の代表点P2からカメラ座標系Zc軸マイナス方向へ所定距離L2だけ右仮想カメラC2寄りに右視差座布団代表点位置座標544eを設定し、右視差座布団面法線ベクトル544fをカメラ座標系Zc軸マイナス方向を向くように設定する。また、処理対象とする視差座布団付与オブジェクトに対応するマーカ本体の四隅を通る線分と視差座布団配置面8との交点を包含するように右視差座布団142のサイズを決定し、サイズ情報を右視差座布団ポリゴンデータ544gに格納する。勿論、右視差座布団面法線ベクトル544fについては、左仮想カメラC1と右仮想カメラC2の中間点C3を向くベクトルに設定するとしてもよい。
【0114】
次いで、もし今回の画像生成タイミングにおける左右フラグ519が「1」ならば(ステップS72の「1」)、処理部200は、左視差座布団141の色をマーカ本体12の色に基づいて算出・設定するとともに、透明度を、中央部を所定の透明度tとして外縁に向かうにつれて透明度が高くなるように設定する(ステップS74)。
【0115】
また、もし今回の画像生成タイミングにおける左右フラグ519が「0」ならば(ステップS72の「0」)、右視差座布団142の色をマーカ本体12の色に基づいて算出・設定するとともに、透明度を、中央部を所定の透明度tとして、外縁に向かうにつれて透明度が高くなるように設定する(ステップS76)。左視差座布団141、右視差座布団142の色と透明度の設定情報は左視差座布団ポリゴンデータ544d、右視差座布団ポリゴンデータ544gにそれぞれ格納される。
【0116】
左視差座布団141又は右視差座布団142の色と透明度が設定できたならば、処理部200はループBを終了する(ステップS78)。そして、全ての視差座布団付与オブジェクトについてループBを実行したならば、処理部200はターゲットマーカ配置処理を終了する。
【0117】
図7のフローチャートに戻って、処理部200は次に、ゲーム空間画像生成処理を実行する(ステップS14)。
具体的には、左右フラグ519を参照して、今回の画像生成タイミングで生成するべき画像が左眼用立体視画像であれば、左視差座布団141は描画対象とし、右視差座布団142は描画対象外として、左仮想カメラC1でゲーム空間の様子を撮影した画像をレンダリングして左眼用ゲーム空間画像を生成する。また、生成するべき画像が右眼用立体視画像であれば、左視差座布団141は描画対象外とし、右視差座布団142を描画対象として、右仮想カメラC2でゲーム空間の様子を撮影した画像をレンダリングし、右目用ゲーム空間画像を生成する。その際、隠蔽処理のプライオリティは、マーカ本体12を最も高く(最も手前)に設定し、次のプライオリティに視差座布団14を設定し、それ以降に自機2や敵機3、背景のオブジェクトを仮想カメラとの相対位置関係に基づいて決定する。
【0118】
そして、処理部200は生成した左眼用ゲーム空間画像又は右眼用ゲーム空間画像に、方位メータ20や経過時間表示21などの各種情報表示体を合成して、最終的な左目用立体視画像又は右目用立体視画像を生成し、立体視画像表示部361に表示させる(ステップS102)。
【0119】
次に、処理部200は今回の画像生成タイミングにおけるゲーム進行の結果の判定処理を実行する(ステップS104)。例えば、自機2や敵機3の攻撃のヒット判定、被弾時のダメージ判定、残弾数や耐久値の更新などを行う。
【0120】
そして、未だ所定のゲーム終了条件を満たしていなければ(ステップS106のNO)、左右フラグ519の切り換え処理(ステップS108)や、適宜画像生成タイミングのタイミング同期処理を実行した後、ステップS10に戻ってゲーム進行制御を続ける。もし、更新されたゲーム結果がゲーム終了条件を満たしていれば(ステップS106のYES)、エンディング処理を実行して(ステップS110)、一連の処理を終了する。
【0121】
なお、左目用立体視画像と右目用立体視画像とを交互に生成する場合を説明したが、同時に生成するようにしてもよい。具体的には、ステップS64を省略し、ステップS66に続いてステップS68を連続して実行する構成とする。同様に、ステップS72を省略して、ステップS74に続いてステップS76を連続して実行する構成とする。そして、ステップS100では、左眼用ゲーム空間画像と右眼用ゲーム空間画像を順番に生成し、ステップS102では左眼用立体視画像と右目用立体視画像とをともに生成するとすれば良い。
【0122】
以上、本実施形態によれば、ターゲットマーカ10を、マーカ本体12と視差座布団14とで構成し、マーカ本体12を、当該ターゲットマーカが指示する指示対象オブジェクト4の直近仮想カメラ側位置に配置し、隠蔽処理のプライオリティを最優先(最前)に設定することで「視差の乖離」を無くすことができる。そして、マーカ本体12の輪郭を「ぼかす」領域として視差座布団14を設けることで、指示対象オブジェクト4と仮想カメラとの間に他オブジェクトが有って、当該指示対象オブジェクト4又はマーカ本体12の一部又は全部を隠す場合であっても、ターゲットマーカ10に「奥行・隠蔽矛盾」が発生し、見にくい画像となるのを緩和できる。
【0123】
なお、ステップS52における、遮蔽オブジェクトの登録処理は、計算負荷が高い場合がある。この負荷を避けたい場合には、ステップS52の登録処理を省略しても良い。具体的には、最も手前の面(前方クリップ面など)の奥行き位置に、視差座布団14を配置する、と一律に決定する。さらには、最も手前の面でなく、例えば、表示画面に視差座布団14を配置する、と一律に決定してもよい。この場合、視差座布団14の奥行き位置よりも手前に、他のオブジェクトが覆いかぶさっている場合には、視差座布団14と他のオブジェクトの間に「奥行・隠蔽矛盾」が発生することになるが、視差座布団14は、輪郭の領域をぼやかして描画しているため、奥行位置があいまいになっており、「奥行・隠蔽矛盾」が目立つことはない。このように奥行位置を、簡易的に設定したとしても、理想的ではないにせよ、ある程度の効果を得ることができる。
【0124】
〔第2実施形態〕
次に、本発明を適用した第2実施形態について説明する。本実施形態は、基本的に第1実施形態と同様に実現されるが、第1実施形態と比べると、「表示の優先度」と「奥行き位置」が矛盾し得る2つの表示物の設定が異なる。なお、第1実施形態と同様の構成要素については、同じ符合を付与して説明は省略するものとする。
【0125】
第1実施形態では、指示対象オブジェクトであるNPC(敵機3)を第1の表示物としたが、本実施形態ではプレーヤキャラクタを第1の表示物とする。また、第1実施形態では、ターゲットマーカ10を第2の表示物としたが、本実施形態ではプレーヤキャラクタに関する各種情報(より具体的には、キャラクタの発言内容)を第2の表示物としている。
【0126】
図9は、本実施形態におけるゲーム画面例を示す図である。本実施形態における立体視画像をベースとしたビデオゲームは、RPG(ロールプレイングゲーム)である。本実施形態のゲーム画面は、ゲームプレイ中に主に表示されるメインゲーム画面W2と、発言イベント時に限定的に表示される発言イベント画面W4とを含む。
「発言イベント」は、ゲームを盛り上げるためにゲームの途中途中で自動的に挿入される演出イベントであって、ゲーム中に発言イベント毎に指定されたイベント発動条件を満たすと実行される。発言イベントに係わるキャラクタの位置、動作、発言内容、及び左右の仮想カメラの位置や姿勢、画角などは、ゲーム制作者によって予め設定されている。つまり、所定のシナリオに従って自動的に実行される。そして、イベントが終了すると、メインゲーム画面W2の表示に戻る。
【0127】
メインゲーム画面W2は、左眼用立体視画像と右眼用立体視画像とを、ビデオモニタ1220で表示することにより、立体視メガネ1226を装着したプレーヤに見える画面である。図示の例は平面的な画像として示しているが、プレーヤには立体感ある映像として視認されるものとする。
【0128】
仮想三次元空間には、背景オブジェクト33(例えば、地面の凹凸を構成する地面オブジェクトや、空を描いたテクスチャが内面に適用される半球状の天球オブジェクト)が配置されてゲーム空間内が形成され、そこにプレーヤキャラクタ32や、NPC(ノンプレーヤキャラクタ)である敵34となるキャラクタオブジェクトが配置される。
【0129】
メインゲーム画面W2を見せるための左眼用立体視画像は、プレーヤキャラクタ32とその周囲の様子を左眼用の視点となる左仮想カメラで撮影した3DCG、すなわち左眼用ゲーム空間画像をベースに、左眼用の所定位置(左仮想カメラから所定の奥行位置情報を示すように所定の両眼視差分を考慮した位置)に、プレーヤキャラクタ32のヒットポイント表示40や、敵34に関する情報表示欄41などの2Dスプライン画像が合成されて生成される。右眼用立体視画像についても、同様に右眼用の視点となる右仮想カメラで撮影した3DCG(右眼用ゲーム空間画像)に、右眼用の所定位置にヒットポイント表示40や、情報表示欄41などを合成して生成される。
【0130】
発言イベント画面W4も、メインゲーム画面W2と同様に左眼用立体視画像と右眼用立体視画像を、ビデオモニタ1220表示することにより、立体視メガネ1226を掛けたプレーヤには立体的に見える画面である。
【0131】
発言イベント画面W4を生成する際には、図10に示すように、所定の発言イベントのシーンの構成を定義するデータに従って、メインゲーム画面W2を撮影するためのメインゲーム空間とは別に、イベント用のゲーム空間(イベント空間)が形成され、そこに当該イベントに係わるキャラクタのオブジェクト(図10の例では、プレーヤキャラクタ32と、NPC37のオブジェクト)と、発言内容35とが配置される。そして、イベント空間内に設置された左仮想カメラC1及び右仮想カメラC2で、イベント空間内を撮影して左ゲーム空間画像及び右ゲーム空間画像が生成される。
【0132】
発言イベントの中心は、ゲームに登場するキャラクタの発言であり、会話形式であったり、単独での心情の吐露であったりする。
発言内容35は、透明ポリゴンにキャラクタに関する情報(この場合、発言の台詞)が描画されて構成され、第1実施形態のマーカ配置面6と同様にして求められる発言内容配置面6Bに配置される。発言内容配置面6Bは、発言するキャラクタ(図示の例では、プレーヤキャラクタ32)の代表点かからカメラ座標系Zc軸マイナス方向へ所定距離L1だけ離した位置に、カメラ座標系Zc軸と垂直な面として設定される。
【0133】
そして、左仮想カメラC1又は右仮想カメラC2から見て発言内容35(図示の例では台詞文字)が、他のオブジェクト(図示の例では、NPC37)によりその一部又は全部が隠される場合、つまり隠蔽オブジェクトが存在する場合には、視差座布団36が配置される。勿論、発言内容38の一部又は全部が隠されない場合であっても、常時、視差座布団36を配置するようにしてもよい。
【0134】
基本的には、第1実施形態の視差座布団14の配置と同様である。すなわち、隠蔽オブジェクトの代表点からカメラ座標系Zc軸マイナス方向へ所定距離L2だけ離した位置に、カメラ座標系Zc軸と垂直な視差座布団配置面8Bを設定する。そして、左仮想カメラC1又は右仮想カメラC2から見て、発言内容35の四隅が視差座布団配置面8Bと交差する点を求め、それらの交点を包含するサイズの視差座布団36が視差座布団配置面8Bに配置される。
【0135】
そして、本実施形態においても、第1実施形態と同様にして、隠蔽処理のプライオリティは、発言内容35が最も高く、次いで視差座布団14、以降、プレーヤキャラクタ32やNPC37がゲーム空間内の配置位置に応じて順に設定される。
なお、視差座布団14は、第1実施形態と同様に左仮想カメラ用と、右仮想カメラ用それぞれに一枚ずつ配置する構成としても良いのは勿論である。
【0136】
つまり、本実施形態を実現するには、第1実施形態における指示対象オブジェクト4を、プレーヤキャラクタ32に読み替え、マーカ本体12を発言内容35に読み替えればよい。
【0137】
図11は、発言イベント処理の流れを説明するためのフローチャートである。同処理は、ゲーム進行制御の一部処理として組み込まれ、定期的(毎フレーム間隔)に実行される。
【0138】
具体的には、処理部200は先ず、発言イベントを設定するシナリオデータを参照して、現在のゲーム進行状況がイベント発動条件に合致するかを判定する。つまり、発言イベントの発生判定をする(ステップS140)。
発言イベントの発生を判定した場合には(ステップS140のYES)、処理部200は、イベント画像W4を撮影するためのイベント空間を形成し、そこに当該イベントに登場するキャラクタのオブジェクトと、左仮想カメラC1及び右仮想カメラC2を配置する(ステップS142)。
【0139】
次に、配置されたキャラクタオブジェクトの動作制御を、今回の画像生成タイミング分だけ実行し(ステップS144)、発言キャラクタの位置に基づいて発言内容配置面6Bを設定する(ステップS146)。そして、発言内容配置面6Bに発言内容35を配置する。
【0140】
次に、発言キャラクタを視差座布団付与オブジェクトとみなし(ステップS150)、視差座布団付与オブジェクトに対する遮蔽オブジェクトを検索する(ステップS156)。もし、遮蔽オブジェクト(図10の例ではNPC37)が存在すれば(ステップS156のYES)、処理部200は、当該遮蔽オブジェクトの配置位置に基づいて視差座布団配置面8Bを設定し(ステップS158)、当該配置面に視差座布団36を配置する(ステップS160)。視差座布団36の基準となる配色及び透明度の設定は予め、記憶部500にテンプレートデータを記憶しておいて、参照するとしてもよい。サイズは、発言内容35の輪郭を形成する頂点と、左仮想カメラC1と右仮想カメラC2の中間点C3を結ぶ直線と、視差座布団配置面8Bとの交点を包含するサイズとする。
【0141】
発言内容35と視差座布団36とを新たに配置する一方、処理部200は、表示制限時間を超えた発言内容35と、それに対応する視差座布団36は、いわば表示の寿命として消去する(ステップS162)。
【0142】
次に、処理部200は、左右フラグ519を参照して、今回の画像生成タイミングで生成するべき画像が左眼用立体視画像であれば、イベント空間内の左仮想カメラC1でイベント空間の様子を撮影した画像をレンダリングして左眼用ゲーム空間画像を生成する。また、生成するべき画像が右眼用立体視画像であれば、イベント空間内の右仮想カメラC2でゲーム空間の様子を撮影した画像をレンダリングし、右眼用ゲーム空間画像を生成する(ステップS164)。
【0143】
次いで、処理部200は生成した左眼用ゲーム空間画像又は右眼用ゲーム空間画像に、ヒットポイント表示40や情報表示欄41などの各種情報表示体を合成して、最終的な左眼用立体視画像又は右眼用立体視画像を生成し、立体視画像表示部361に表示させる(ステップS166)。
【0144】
次に、処理部200は発言イベントが終了したかを判定する。もし発言イベントが終了していなければ(ステップS168のNO)、処理部200は、左右フラグ519の切り換え処理(ステップS170)や、画像生成タイミングのタイミング同期処理を実行した後、ステップS144に戻る。
反対に、発言イベントが終了したと判定された場合には(ステップS168のYES)、発言イベント処理を終了する。
【0145】
以上、本実施形態によれば、プレーヤキャラクタを第1の表示物とし、プレーヤキャラクタに関する各種情報を第2の表示物とするケースにおいても、第1実施形態と同様に、「奥行・隠蔽矛盾」による見にくさの問題を解消できる。
【0146】
なお、本実施形態では「プレーヤキャラクタに関する情報」として、発言イベントの発言内容を挙げて説明したが、これに限らない。
例えば、ゲーム世界の状況を説明する説明文とすることもできる。もし、そうした説明をサブキャラクタ像を添付して表示する場合には、発言内容に当該サブキャラクタ像を含めることもできる。
また例えば、本発明をレースゲームに適用する場合には、プレーヤカーのシフトポジション、速度、コースポジション表示、順位表示、ラップタイムなどを「プレーヤキャラクタに関する情報」とすることができる。
【0147】
また、本実施形態ではプレーヤキャラクタを第1の表示物として挙げたが、状況によっては第1の表示物を省略することもできる。例えば、アドベンチャーゲームやシミュレーションゲームなどのナレーションや、状況説明など、発言するキャラクタが特定できない場合には、ステップS146〜S148では、発言内容35を対応するキャラクタオブジェクトの配置と関係無しに所定位置(勿論、予め記憶部500に所定位置の設定情報は用意しておくものとする。)に配置し、ステップS150では、当該発言内容を視差座布団付与オブジェクトとみなすとしても良い。
【0148】
[変形例]
以上、本発明を適用した実施形態について説明したが、本発明の実施形態はこれに限るものではなく、適宜構成要素の追加・省略・変更を加えることができる。
【0149】
[その1]
例えば、立体視画像生成装置として家庭用ゲーム装置1200を例示したが、業務用ゲーム装置、携帯型ゲーム装置、パソコン、アプリケーションソフトを実行することのできる多機能携帯電話機(いわゆるスマートフォン)や音楽プレーヤ、カーナビなどでも良く、立体視画像を生成する機能を有する装置には同様に適用することができる。
【0150】
更には、ビデオゲームが実行可能な装置を本発明の立体視画像生成装置として実現する場合、専用のゲームプログラムを実行する形態に限らない。例えば、専用のゲームプログラムに代えて、ウェブブラウザプログラム、及びスクリプト制御によりウェブブラウザ上でインタラクティブな表示を実現するためのプラグインを実行し、いわゆるブラウザゲームとしてビデオゲームを実現する構成でも同様に適用できる。すなわち、この場合には、端末装置に対してブラウザゲームを実行するためのプログラムや画像データを提供するサーバシステムが本発明の立体視画像生成装置となる。
例えば、プレーヤが操作するゲーム端末とサーバシステムとが通信接続されて構成されたゲームシステムにおいて、そのサーバシステムを立体視画像生成装置として、本発明を適用することとしてもよい。その場合、プレーヤの操作情報をもとに、サーバシステムが立体視画像を生成して、ゲーム端末に送信する。
【0151】
また、立体視画像を表示する装置(立体視表示装置;上記実施形態ではビデオモニタ1220)で採用される立体視の方式は、上記実施形態以外の他の方式であってもかまわない。例えば、2眼式、多眼式や空間像方式(いわゆるインテグラル方式や、フラクショナル・ビュー方式等」)等でも良い。また、採用する立体視の方式によっては、視差方向は水平方向のみに限られるものでなく、垂直方向にも視差を持つ方式であっても良く、メガネ式、裸眼式、スコープ式等の種類も問わない。更には、立体視の方式は、空間内に立体的に配置されたスクリーン、もしくは空間内を動的に移動するスクリーンに投影する方式であってもかまわないし、空間内に立体的に配置された光源群、もしくは空間内を動的に移動する光源群による方式であってもかまわない。また、それらの立体視表示装置による映像を、鏡やハーフミラーで反射させて用いてもかまわない。また、ヘッドトラッキングやアイトラッキング、ジャイロセンサー等を用いて、画面と視聴者の位置関係を取得し、それを立体視映像にフィードバックさせても良い。
【0152】
また、ビデオモニタ1220での立体視の方式は、メガネ有りとしても、メガネ無しとしてもよい。立体視画像生成装置は、ビデオモニタ1200による立体視の方式に関わらず、最終的に各視点用の個別視点画像を生成することとなる。
【0153】
[その2]
また、上記実施形態では、2眼式の立体視に係る画像生成について説明したが、視点数は3以上でも構わない。すなわち、本発明を、N眼式(N≧2)の立体視に係る画像生成に適用することも勿論可能である。例えば、横方向にN眼式の立体視を実現する場合には、上述の左仮想カメラC1と右仮想カメラC2と同じように、横方向にN個の仮想カメラを所定間隔をおいて設定し、各仮想カメラに基づく画像(個別視点画像)を、上述の仮想カメラC1,C2と同じように生成すればよい。
【0154】
[その3]
また、上記実施形態では、左視差座布団141及び右視差座布団142を、それぞれ左仮想カメラC1又は右仮想カメラC2から見たマーカ本体12の四隅位置よりも上下左右にほぼ同じ幅だけ広いサイズとした。つまり、マーカ本体12と相似形としたが、これに限らない。
【0155】
例えば、図12に示すように、マーカ本体12と非相似形としてもよい。具体的には、左視差座布団141及び右視差座布団142を、左仮想カメラC1から見たマーカ本体12の左端位置と、右仮想カメラC2から見た右端位置を包含するような形状とすることができる。つまり、上記実施形態における左視差座布団141及び右視差座布団142の両方に跨る形状としてもよい。この場合、透明度を最も高くするのは、マーカ本体12の像が被さる部分とすると好適である。
こうした視差座布団の設定方法は、換言すると、N個(上記の第1実施形態ではN=2)の個別視点画像それぞれにおいて、マーカ本体の描画部分との相対的な位置関係に基づいて部分毎にぼかし具合を可変しているとも言える。
【0156】
[その4]
また、上記実施形態では、マーカ本体12は、設定されたまま、つまり輪郭がはっきりした画像のまま立体視画像内に合成される構成としているが、マーカ本体12それ自体を有る程度ぼかし処理するとしてもよい。その場合、マーカ本体設定データ516に格納されているデータの段階で輪郭のぼかしを施しておく構成としてもよいし、ゲーム空間画像の生成段階(図7のステップS100参照)において、マーカ本体12を描画するときに、ぼかし処理を施すとしてもよい。
【0157】
もし、その上で、更に上記実施形態よりも演算処理の負荷軽減を望むならば、視差座布団14の配置に係る処理を省略するとしてもよい。
具体的には、上記実施形態のターゲットマーカ配置処理(図8参照)に代えて、図13に示すターゲットマーカ配置処理Bを実行する。同処理では、指示対象オブジェクト4を抽出したならば(ステップS30)、抽出された全ての指示対象オブジェクト4についてループCを実行する(ステップS40〜S48)。
ループCでは、処理部200のターゲットマーカ配置制御部218が、処理対象とする指示対象オブジェクト4よりも仮想カメラ側にマーカ配置面6を設定し(ステップS44)、当該マーカ配置面にマーカ本体12を半透明として配置設定する(ステップS46)。つまり、マーカ本体12を半透明とすることにより、その輪郭部分を「ぼかす」。なお、この場合も、隠蔽処理におけるプライオリティは、マーカ本体12が最優先(最前)とされる。
【0158】
[その5]
また、上記実施形態よりも更に演算処理の負荷軽減を望むならば、左右の視差座布団141,142それぞれに視差座布団配置面81,82を求めたが、共通する一枚の配置面を決定する構成としてもよい。
【0159】
[その6]
また、上記実施形態では、指示対象オブジェクト4或いはマーカ本体12が他のオブジェクトによって一部又は全部が隠される場合に、視差座布団14を配置する構成としているが、一部又は全部が隠されるか否かにかかわらず、全てのターゲットマーカ10において、視差座布団14を配置する構成としてもよい。この場合、ターゲットマーカ配置処理(図8参照)において、ステップS50〜S52を省略し、ループBでは、処理対象を視差座布団付与オブジェクトではなく、全ての指示対象オブジェクトについて実行する構成とすれば良い。
換言すると、ぼかし処理部222は、抽出された指示対象オブジェクトが他オブジェクトにより隠れないと判定された場合に、当該指示対象オブジェクトの描画の後に、指示対象オブジェクトとして選択されなかったオブジェクト(この場合、敵機3に限られる)同様のぼかし処理を施してマーカ本体12を描画して立体視画像を生成するとも言える。
【0160】
[その7]
また、上記実施形態では、マーカ体の一例として、ターゲットマーカ10を例に挙げて説明したが、本発明の適用可能なマーカ体はこれに限らない。例えば、プレーヤキャラクタが銃を所有している場合の、銃口方向を示す照準をマーカ体としてもよい。この場合、銃1つに対して指示対象オブジェクトは1つとなるため、プレーヤが1人であれば原則、ゲーム空間の中から銃口方向に位置する最も視点よりのオブジェクトが指示対象オブジェクトとして選択されることとなる。
【0161】
[その8]
また、上記実施形態では、視差座布団14の大きさや形状を、フレームごとの描画時に決定することで、可変としているが、あらかじめ決定しておいても良い。マーカや発言内容など、通常オブジェクトよりも手前に表示したいものの領域を包含できる視差座布団14の大きさや形状を、あらかじめ設定しておくことで、フレームごとに決定する負荷を軽減できる。
【0162】
さらに、上記実施形態では、ゲームの画像に関する処理を説明したが、本発明が適用可能な画像はゲームに限らない。例えば、医用画像や建築画像など、立体視画像として利用可能な画像全てに適用することが可能である。この場合、マーカ体は、ポインティングデバイスにより操作指示されるポインターとすると好適である。
【符号の説明】
【0163】
C1…左仮想カメラ
C2…右仮想カメラ
2…自機
4…指示対象オブジェクト
6…マーカ配置面
8…視差座布団配置面
10…ターゲットマーカ
12…マーカ本体
14…視差座布団
141…左視差座布団
142…右視差座布団
200…処理部
210…ゲーム演算部
212…ゲーム空間設定処理部
214…キャラクタ動作制御部
216…仮想カメラ制御部
218…ターゲットマーカ配置制御部
220…マーカ本体配置制御部
222…ぼかし処理部
224…視差座布団配置制御部
226…視差座布団カラー設定部
261…立体視画像生成部
361…立体視画像表示部
500…記憶部
501…システムプログラム
502…ゲームプログラム
516…マーカ本体設定データ
518…プレイデータ
519…左右フラグ
520…自機ステータスデータ
522…敵機ステータスデータ
524…左仮想カメラ制御データ
526…右仮想カメラ制御データ
528…指示対象オブジェクトリスト
530…マーカ本体制御データ
532c…マーカ本体代表点位置座標
532d…マーカ本体面法線ベクトル
534…視差座布団付与オブジェクトリスト
536…遮蔽オブジェクトリスト
540…視差座布団制御データ
544a…対応マーカ本体ID
544b…左視差座布団代表点位置座標
544c…左視差座布団面法線ベクトル
544d…左視差座布団ポリゴンデータ
544e…右視差座布団代表点位置座標
544f…右視差座布団面法線ベクトル
544g…右視差座布団ポリゴンデータ
1200…据置型家庭用ゲーム装置
1201…ゲーム装置本体
1210…制御ユニット
1220…ビデオモニタ
1226…立体視メガネ
1228…IRエミッター
1230…ゲームコントローラ

【特許請求の範囲】
【請求項1】
コンピュータに、所与の視点から見た仮想三次元空間の立体視用画像を生成させるためのプログラムであって、
前記仮想三次元空間の中から指示対象オブジェクトを判定する指示対象物判定手段、
前記指示対象オブジェクトを指示する所定のマーカ体を、前記指示対象オブジェクトの位置或いは前記視点から見て前記指示対象オブジェクトの直近手前側に配置するマーカ体配置手段、
前記指示対象オブジェクト及び前記他のオブジェクトの描画の後に所定のぼかし処理を施して前記マーカ体を描画することで、前記マーカ体の輪郭の視認性を低下させて前記マーカ体を現出させた立体視画像を生成する隠蔽時画像生成手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記隠蔽時画像生成手段が、
前記立体視画像において前記マーカ体の描画部分を含む前記ぼかし処理の対象範囲を判定する対象範囲判定手段と、
前記対象範囲に前記ぼかし処理を施すぼかし処理手段と、
を有する、
ように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記ぼかし処理手段が、前記対象範囲内であって且つ前記他のオブジェクトの描画部分に前記ぼかし処理を施す、
ように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項4】
前記ぼかし処理の対象範囲を定めるための対象範囲決定体を、前記視点と前記マーカ体との間に配置する対象範囲決定体配置手段として前記コンピュータを機能させ、
前記対象範囲判定手段が、前記対象範囲決定体を用いて前記ぼかし処理の対象範囲を判定するように前記コンピュータを機能させる、
ための請求項2又は3に記載のプログラム。
【請求項5】
前記対象範囲決定体配置手段が、前記対象範囲決定体のサイズを可変に設定するサイズ設定手段を有する、
ように前記コンピュータを機能させるための請求項4に記載のプログラム。
【請求項6】
前記ぼかし処理手段が、前記対象範囲決定体の色を用いて半透明合成処理することで前記ぼかし処理を行う、
ように前記コンピュータを機能させるための請求項4又は5に記載のプログラム。
【請求項7】
前記隠蔽時画像生成手段が、前記マーカ体の色を半透明合成処理することで前記マーカ体にぼかし処理を施して描画するマーカ体半透明合成処理手段を有する、
ように前記コンピュータを機能させるための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
前記隠蔽判定手段により隠れないと判定された場合に、前記指示対象オブジェクトの描画の後に前記隠蔽時画像生成手段による前記ぼかし処理と同様のぼかし処理を施してマーカ体を描画して立体視画像を生成する非隠蔽時画像生成手段として前記コンピュータを更に機能させるための請求項1〜7の何れか一項に記載のプログラム。
【請求項9】
請求項1〜8の何れか一項に記載にプログラムを記憶したコンピュータ読取可能な情報記憶媒体。
【請求項10】
所与の視点から見た仮想三次元空間の立体視用画像を生成する立体視画像生成装置であって、
前記仮想三次元空間の中から指示対象オブジェクトを判定する指示対象物判定手段と、
前記指示対象オブジェクトを指示する所定のマーカ体を、前記指示対象オブジェクトの位置或いは前記視点から見て前記指示対象オブジェクトの直近手前側に配置するマーカ体配置手段と、
前記指示対象オブジェクト及び前記他のオブジェクトの描画の後に所定のぼかし処理を施して前記マーカ体を描画することで、前記マーカ体の輪郭の視認性を低下させて前記マーカ体を現出させた立体視画像を生成する隠蔽時画像生成手段と、
を備えた立体視画像生成装置。

【図1】
image rotate

【図2】
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


【公開番号】特開2012−178061(P2012−178061A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−40942(P2011−40942)
【出願日】平成23年2月25日(2011.2.25)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】