説明

画像表示プログラム、画像表示システム、画像表示方法および画像表示装置

【課題】写実的な表現を実現しつつ比較的軽い処理負荷で、複数のオブジェクトを含む仮想三次元空間を描画可能とすること。
【解決手段】複数のオブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画する画像表示装置のコンピュータで実行される画像表示プログラムであって、そのコンピュータを、仮想カメラから見て第1オブジェクトと第2オブジェクトが重なるときに、画像内の階調情報が第2オブジェクトから第1オブジェクトの各部までの距離により変化するような第1オブジェクト用のシルエット画像を生成するシルエット画像生成手段、仮想カメラから見た第2オブジェクトの画像を生成する第2オブジェクト描画手段、および第2オブジェクトに近い第1オブジェクトの部位に対応する部分ほど色が濃くなるように、シルエット画像を第2オブジェクトの画像に合成する合成手段として機能させる、プログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像表示プログラム、画像表示システム、画像表示方法および画像表示装置に関し、より具体的には、仮想三次元空間に存在するオブジェクトを表示する画像表示プログラム、画像表示システム、画像表示方法および画像表示装置に関する。
【背景技術】
【0002】
仮想空間を表示する装置では、オブジェクトの挙動をより写実的に表示するために多くのパラメータに基づき計算することが要請される。例えば、非特許文献1は、仮想空間を表示するゲーム装置で行われるゲームの一例を示している。このゲームは、仮想空間で表現される、カーテン越しに見える風景を、その仮想空間内に配置された光源から放たれた光など様々なパラメータに基づいて描画することにより写実的な表現を行っている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】任天堂株式会社監修、「任天堂公式ガイドブック ゼルダの伝説 風のタクト」、初版、株式会社小学館、2003年3月1日、p.146
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1を含む多くの例では、仮想空間内に配置された光源から放たれた光等様々なパラメータに基づいて描画している。最近はコンピュータやグラフィックチップの性能が向上してきており、前述のような様々なパラメータに基づいた描画計算を行った上で写実的な描画を行うことが可能になってきた。しかし、そのような複雑な計算を行うことによって、処理負荷が高くなることは変わらず、他の処理に少なからず影響を与えていた。
【0005】
そこで、本発明の目的は、写実的な表現を実現しつつ比較的軽い処理負荷で、複数のオブジェクトを含む仮想三次元空間を描画可能にすることである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は、以下に述べるような特徴を有している。
【0007】
一態様において、本発明は、第1オブジェクトおよび第2オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画する画像表示装置のコンピュータにおいて実行される画像表示プログラムを提供する。この画像表示プログラムは、上記コンピュータを、シルエットを表すためのシルエット画像を生成するシルエット画像生成手段と、第2オブジェクト描画手段と、上記シルエット画像を第2オブジェクトの画像に合成する合成手段として機能させる。
【0008】
ここで、シルエット画像生成手段は、上記仮想カメラから見て、上記第1オブジェクトと、当該第1オブジェクトより近い側に存在する第2オブジェクトの少なくとも一部とが重なるときに、当該第1オブジェクトのシルエットを表すためのシルエット画像を生成する。
【0009】
また、シルエット画像生成手段は、当該シルエット画像内の階調情報が当該第2オブジェクトから当該第1オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成する。第2オブジェクト描画手段は、上記仮想カメラから見た上記第2オブジェクトの画像を生成する。そして、合成手段は、上記シルエット画像が、上記第2オブジェクトに対して近い上記第1オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、上記仮想カメラから見た上記第2オブジェクトの画像に対して合成する。
【0010】
一実施形態において、上記シルエット画像生成手段は、上記第2オブジェクトからの距離に応じて階調が変化するようなテクスチャを上記第1オブジェクトにマッピングすることにより、上記シルエット画像を生成する。
【0011】
他の実施形態において、上記シルエット画像生成手段は、投影テクスチャマッピングにより、上記シルエット画像を生成する。
【0012】
別の実施形態において、上記テクスチャは、黒色から白色まで段階的に階調を変化させたテクスチャである。
【0013】
さらに別の実施形態において、上記シルエット画像生成手段は、上記第2オブジェクト側から見た上記第1オブジェクトの深度情報に基づいて、上記シルエット画像を生成する。
【0014】
さらに別の実施形態において、上記合成手段は、上記第2オブジェクトの画像の色と、上記第1オブジェクトのシルエットを表すための特定色とを、上記シルエット画像に応じて混合することにより、上記仮想カメラから見た上記第2オブジェクトの画像に上記シルエット画像を合成する。
【0015】
さらに別の実施形態において、上記シルエット画像生成手段は、上記第2オブジェクトに対してより近い上記第1オブジェクトの部位に対応する部分ほど、色がより濃くなるようなシルエット画像を生成する。
【0016】
さらに別の実施形態において、上記合成手段は、上記第2オブジェクトの画像と、上記シルエット画像を、所定のピクセル数の間隔で交互に表示することにより、上記仮想カメラから見た上記第2オブジェクトの画像に上記シルエット画像を合成する。
【0017】
さらに別の実施形態において、上記画像表示プログラムは、上記コンピュータを、上記仮想カメラから見て上記第2オブジェクトに遮蔽されていない上記第1オブジェクトの部分の画像を、上記合成手段による合成後の画像における当該部分に対応する位置に上書きする第1オブジェクト描画手段としてさらに機能させる。
【0018】
さらに別の実施形態において、上記第2オブジェクト描画手段は、上記仮想カメラからの深度情報を生成しながら、上記第2オブジェクトの画像を生成する。そして、上記合成手段は、上記第2オブジェクト描画手段で生成された上記深度情報を更新せずに、上記第2オブジェクトの画像に上記シルエット画像を合成する。さらに、上記第1オブジェクト描画手段は、上記深度情報に基づいて、上記第2オブジェクトに遮蔽されていない上記第1オブジェクトの部分を判定する非遮蔽部分判定手段を含む。ここで、上記第1オブジェクト描画手段は、上記非遮蔽部分判定手段の判定結果に基づき、上記第2オブジェクトに遮蔽されていない上記第1オブジェクトの部分の画像を、上記合成手段による合成後の画像における当該部分に対応する位置に上書きする。
【0019】
さらに別の実施形態において、上記画像表示プログラムは、上記コンピュータを、上記仮想三次元空間における上記第1オブジェクトの位置または姿勢を更新する更新手段としてさらに機能させる。そして、以下の処理が、一連の処理として繰り返し実行される。すなわち、上記更新手段による上記更新処理と、上記シルエット画像生成手段による上記生成処理と、上記第2オブジェクト描画手段による上記生成処理と、上記合成手段による上記合成処理と、上記第1オブジェクト描画手段による上記上書き処理とが、繰り返し実行される。
【0020】
また、上述の画像表示プログラムは、それを実行する画像表示装置として使用されたとしても、1または複数の装置が通信可能に構成される画像表示システムとして使用されてもよい。また、本発明は、上述のようなプログラム、装置、システムとして実装され得る、画像表示の方法も含む。
【0021】
本明細書において使用される場合、「システム」(例えば、画像表示システム、情報処理システム、ゲームシステム)との用語は、1つの装置だけでなく、複数の装置であって、その各々の装置が他の装置のいずれかと通信可能であるものも含む。
【発明の効果】
【0022】
本発明によれば、写実的な表現を実現しつつ比較的軽い処理負荷で、複数のオブジェクトを含む仮想三次元空間を描画可能となる。
【図面の簡単な説明】
【0023】
【図1】本発明の一実施形態に係るゲームシステム1を示す外観図
【図2】図1のゲーム装置本体5の一例を示すブロック図
【図3】図1のコアユニット70の上面後方から見た一例を示す斜視図
【図4】図3のコアユニット70を下面前方から見た一例を示す斜視図
【図5】図3のコアユニット70の構成例を示すブロック図
【図6A】仮想三次元空間内に配置されるオブジェクトとそれを撮影する仮想カメラVCの位置関係の一例を模式的に示した図
【図6B】オブジェクトJ1とオブジェクトJ2との位置関係と、オブジェクトJ1に投影マッピングされるテンプレートテクスチャの一例について説明する模式図
【図6C】テクスチャ画像D31の例を模式的に示した図
【図7A】オブジェクトJ2が描画されていない状態で仮想カメラVC側から撮像された場合のオブジェクトJ1を示す模式図
【図7B】一定方向に階調を有するテンプレートテクスチャを用いて、オブジェクトJ1に投影テクスチャマッピングを施し、フレームバッファ34aに描画した結果の一例を示した図
【図8】フレームバッファ34aに書き込まれたオブジェクトJ2を示す画像の一例を示す図
【図9】ゲーム装置本体5によりフレームバッファ34aに書き込まれた、オブジェクトJ1のシルエット画像が合成されたオブジェクトJ2の画像の一例を示す図
【図10】オブジェクトJ1の一部が、オブジェクトJ2により遮蔽され、そのオブジェクトJ1の遮蔽された部分がオブジェクトJ2の表面にシルエットを落とした効果を反映させた画像の一例を示す図
【図11】本発明の例示的な実施形態における、複数のオブジェクトを含むシーンを描画するための一連の描画処理の一例を示すフローチャート
【図12】シルエット生成処理に関する一連の処理手順を示すフローチャート
【図13】本発明の例示的な実施形態の画像表示システムにおける主要なデータを示すメモリマップ
【発明を実施するための形態】
【0024】
(画像表示システムの基本構成)
図1を参照して、本発明の一実施形態に係る画像表示システムについて説明する。以下、説明を具体的にするために、当該画像表示システムとして、据置型のゲーム装置本体5を含むゲームシステム1を用いて説明する。
【0025】
ここで、図1は、据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図である。また、図2は、ゲーム装置本体5の一例を示すブロック図である。以下、当該ゲームシステム1について説明する。なお、本明細書に添付の図面は、本発明の例示的な実施形態を説明するためのものであり、本発明の範囲がその図面に記載される具体的な態様に限定されることを意図するものではない。
【0026】
なお、これ以降の説明において、D10からD51まで符号が付されたプログラム、データ等について説明する場合があるが、当該符号は、後述の図13で示されるゲーム装置本体5の記憶領域との関係を示したもの(メモリマップにおける符号)である。
【0027】
図1において、ゲームシステム1は、表示手段の一例の家庭用テレビジョン受像機2(以下、モニタ2と記載する)と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置3から出力された音声信号を音声出力するためのスピーカ2aを備える。
【0028】
また、ゲーム装置3は、プログラム(例えば、後述する画像表示プログラムD11や、ゲームアプリケーションD12)および各種データを記録した光ディスク4と、当該光ディスク4のプログラムを実行してゲーム画面をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。
【0029】
また、ゲーム装置本体5は、無線コントローラモジュール19(図2参照)を内蔵する。無線コントローラモジュール19は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。
【0030】
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(図2参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたプログラムを実行することによって、その結果をゲーム画像としてモニタ2に表示する。また、プログラムは、光ディスク4に限らず、フラッシュメモリ17にあらかじめ記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のユーザは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0031】
コントローラ7は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。
【0032】
コントローラ7は、コアユニット70を備えている。コアユニット70は、主にモニタ2の表示画面に表示されるオブジェクト等を操作するための操作手段である。
【0033】
コアユニット70は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)とが設けられている。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。
【0034】
また、コントローラ7(例えば、コアユニット70)は、ゲーム装置本体5の無線コントローラモジュール19から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
【0035】
(ゲーム装置本体の内部構成)
次に、図2を参照して、ゲーム装置本体5の内部構成について説明する。図2は、ゲーム装置本体5の構成を示すブロック図である。ゲーム装置本体5は、CPU(Central Processing Unit)10、システムLSI(Large Scale Integration)11、外部メインメモリ12、ROM/RTC(Read Only Memory/Real Time Clock)13、ディスクドライブ14、およびAV−IC(Audio Video−Integrated Circuit)15等を有する。
【0036】
CPU10は、光ディスク4に記憶されたプログラムに基づいて情報処理を行う。
【0037】
CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については、後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたプログラムおよび各種データや、フラッシュメモリ17から読み出された各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置本体5の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ35または外部メインメモリ12に読み出したデータを書き込む。
【0038】
また、システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、DSP(Digital Signal Processor)33、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31〜35は、内部バスによって互いに接続される。
【0039】
GPU32は、ゲーム装置5における描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。より具体的には、GPU32は、当該グラフィクスコマンドに従って3Dグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる3D座標から2D座標への座標変換などの処理や、テクスチャマッピング(ピクセル単位で、ポリゴンの色とテクスチャの色を合成して最終的な色をピクセル単位で出力する処理)などの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。
【0040】
より具体的には、GPU32の機能としてラスタライズを一例にとれば、いわゆる透視変換処理などの処理を受けた頂点単位(ポリゴン単位)のデータが得られた際に、GPU32は、ポリゴンを構成する三角形の各辺を(そのデータに含まれる)頂点から計算し(「トライアングルセットアップ」)、計算した三角形の内部を塗りつぶす処理(DDA(Digital Differential Analyzer)としての処理)を行う。この三角形の内部を塗りつぶすための色は、三角形の各頂点が有する色情報をもとに補間された色が用いられる。
【0041】
また、ラスタライザとしてのGPU32は、三角形を塗りつぶすときのピクセル1つ1つに対して、模様となる画像(テクスチャ)の対応するピクセル(テクセルとも呼ばれる)の選び出しも行っている。例えば、GPU32は、上記のポリゴンを構成する頂点のデータがテクスチャ画像から切り抜くべき位置の情報もあわせ持つ場合に、その位置の情報からテクスチャ画像を走査して、塗りつぶすべき各ピクセルにそれぞれ対応するテクスチャ画像のピクセルの位置情報を計算する。
【0042】
VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。また、VRAM34は、フレームバッファ34aとZバッファ34bを含む。
【0043】
フレームバッファ34aは、例えば、モニタ2へ供給すべき1フレーム分の画像データを描画または蓄積しておくためのメモリである。後述のAV−IC15が所定の周期(例えば、60分の1秒の周期)でフレームバッファ34aのデータを読み出すことによって、モニタ2の画面上に三次元ゲーム画像が表示される。
【0044】
また、Zバッファ34bは、フレームバッファ34aに対応する画素(記憶位置またはアドレス)数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ34aの各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
【0045】
DSP33は、オーディオプロセッサとして機能し、内部メインメモリ35や外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0046】
また、内部メインメモリ35は、外部メインメモリ12と同様に、プログラムや各種データを記憶したり、CPU10のワーク領域またはバッファ領域などとしても用いられる。
【0047】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、AVコネクタ16を介して、読み出した画像データをモニタ2に出力するとともに、読み出した音声データをモニタ2に内蔵されるスピーカ2aに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカ2aから出力される。
【0048】
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0049】
入出力プロセッサ31は、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ31は、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール18およびアンテナ22を介して当該データをネットワークに送信する。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22、および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は、フラッシュメモリ17に記憶されたデータを読み出して利用することができる。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0050】
また、入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0051】
さらに、入出力プロセッサ31には、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ31は、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0052】
また、ゲーム装置本体5(例えば、前部主面)には、当該ゲーム装置本体5の電源ボタン24、ゲーム処理のリセットボタン25、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトボタン26等が設けられている。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオン状態にされると、ゲーム装置本体5の各構成要素に対して、図示しないACアダプタを介して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置本体5の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0053】
(コアユニットの基本構成)
図3および図4を参照して、コアユニット70について説明する。なお、図3は、コアユニット70の上面後方から見た一例を示す斜視図である。図4は、コアユニット70を下面前方から見た一例を示す斜視図である。
【0054】
図3および図4において、コアユニット70は、例えばプラスチック成型によって形成されたハウジング71を有しており、当該ハウジング71に複数の操作部72が設けられている。ハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【0055】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。ユーザが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばユーザが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【0056】
なお、十字キー72aは、上述したユーザの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でも構わない。例えば、十字方向に4つのプッシュスイッチを配設し、ユーザによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、十字キー72aの代わりに設けてもかまわない。
【0057】
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置本体5が実行するプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【0058】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置本体5の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【0059】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コアユニット70は、他のコントローラと区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コアユニット70に現在設定されている上記コントローラ種別をユーザに通知するために用いられる。具体的には、無線コントローラモジュール19からコアユニット70へ、複数のLED702のうち、上記コントローラ種別に対応するLEDを点灯させるための信号が送信される。
【0060】
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカからの音を外部に放出するための音抜き孔が形成されている。
【0061】
一方、ハウジング71下面には、凹部が形成されている。ハウジング71下面の凹部は、ユーザがコアユニット70の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該ユーザの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
【0062】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コアユニット70が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコアユニット70の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【0063】
ここで、以下の説明を具体的にするために、コアユニット70に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するXYZ軸をコアユニット70に対して定義する。具体的には、コアユニット70の前後方向となるハウジング71の長手方向をZ軸とし、コアユニット70の前面(撮像情報演算部74が設けられている面)方向をZ軸正方向とする。また、コアユニット70の上下方向をY軸とし、ハウジング71の上面(操作ボタン72aが設けられた面)方向をY軸正方向とする。さらに、コアユニット70の左右方向をX軸とし、ハウジング71の右側面(図3では表されている側面)方向をX軸正方向とする。
【0064】
(コントローラの内部構成)
次に、図5を参照して、コントローラ7の内部構成について説明する。なお、図5は、コントローラ7の構成の一例を示すブロック図である。
【0065】
図5において、コアユニット70は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
【0066】
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コアユニット70の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。
【0067】
したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コアユニット70のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。
【0068】
コアユニット70は、3軸(X、Y、Z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向(図3に示すY軸)、左右方向(図3に示すX軸)、および前後方向(図3に示すZ軸)で直線加速度を検知する。また、少なくとも1軸方向(例えば、Z軸方向)に沿った直線加速度を検知する加速度検出手段を使用してもよい。例えば、これらの加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices,Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であることが好ましい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて、加速度センサ701が提供されてもよい。
【0069】
加速度センサ701に用いられるような加速度検出手段は、加速度センサ701の持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、それら3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【0070】
しかしながら、加速度センサ701から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ(例えばCPU10)またはコントローラのプロセッサ(例えばマイコン751)等のコンピュータが処理を行うことによって、コアユニット70に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。
【0071】
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置本体5からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置本体5から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置本体5から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
【0072】
コアユニット70に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの3軸方向の加速度信号(X、Y、およびZ軸方向加速度データ)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。
【0073】
マイコン751は、入力した各データ(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を無線コントローラモジュール19へ送信する送信データとして一時的にメモリ752に記憶する。ここで、通信部75から無線コントローラモジュール19への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。
【0074】
具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥースで構成される通信部75の送信間隔は5msである。マイコン751は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ752に記憶されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥースの技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ754から放射する。つまり、コアユニット70に設けられた操作部72からのキーデータと、加速度センサ701からのX、Y、およびZ軸方向加速度データと、撮像情報演算部74からの処理結果データがコアユニット70から送信される。そして、ゲーム装置本体5の無線コントローラモジュール19でその電波信号を受信し、ゲーム装置本体5で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、X、Y、およびZ軸方向加速度データ、処理結果データ)を取得する。そして、ゲーム装置本体5のCPU10は、取得した操作情報に基づいて、情報処理を行う。なお、ブルートゥースの技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0075】
(画像表示処理の概要)
次に、図6Aから図10を参照しつつ、本ゲーム装置本体5で行われる画像表示処理の概要について説明する。
【0076】
なお、本明細書に添付の図面は、本発明の例示的な実施形態を説明するためのものであり、本発明の範囲がその図面に記載される具体的な態様に限定されることを意図するものではないことは上述のとおりである。特に、図6Aから図10までの図は、明細書に添付の図面という制約のために、無彩色の形式で表現されているが、その図によっては、実際の画像で表現される色は、色相を含み、彩度もゼロ(0)ではないものも含まれ得る。
【0077】
例示的な実施形態において、ゲーム装置本体5は、光ディスク4から読み出した画像表示プログラムD11(図13参照)に従って画像表示処理を行う。以下では、太陽光が上から緑色の葉に降り注いでおり、その葉の上に4本足の黄色の生物体が乗っているという状況において、葉の下側から葉を見上げたときに見える画像を生成する場合を例として説明する。この場合、図10に示すように、葉に重ねて生物体のシルエットを合成表示(より具体的には、半透明表示)するとともに、葉により近い部位(この例では、足の裏の部分)ほどより濃くなるように当該シルエットに濃淡を加えることで、より現実に近い写実的な表現が可能となる。本実施形態では、これから説明する画像表示処理によって、図10に示すような画像を、軽い処理負荷で生成することができる。
【0078】
図6Aは、図10に示す画像を生成する際の、仮想三次元空間内に配置されるオブジェクトと、それを撮影する仮想カメラVCの位置関係を模式的に示した図である。
【0079】
オブジェクトJ1は、4本足で歩行する黄色の生物体を模した三次元モデルであり、オブジェクトJ2は、緑色の葉を模した三次元モデルである。より具体的には、オブジェクトJ2は、格子を伴った開口部を有し、厚みのある葉を模した三次元モデルである。ただし、図6Aにおいては、オブジェクトJ2は、説明の都合上、その表示されるべき外形の一部を点線のみで簡略化して示している。
【0080】
この例示的な実施形態において、ゲーム装置本体5は、最終的には図10に示されるような、複数のオブジェクトを含むシーンの画像を表示するために、以下のような手順により処理を進める。
【0081】
まず、ゲーム装置本体5は、図6Aに示すように仮想三次元空間に配置されるオブジェクトJ1およびオブジェクトJ2の位置・姿勢を確定する。
【0082】
その後、ゲーム装置本体5は、そのオブジェクトJ2に合成表示すべきオブジェクトJ1のシルエットを表現するためのシルエット画像D51を生成する。
【0083】
具体的には、ゲーム装置本体5(具体的には、GPU32)は、シルエット画像を生成するために用意された一定の方向に階調が付された(すなわち所定の方向に向かって段階的に色が濃くなるような)テクスチャ(以下、テンプレートテクスチャと称す)を用いて、オブジェクトJ1の形状モデルにそのテクスチャを投影テクスチャマッピングし、そのマッピングされたモデルをフレームバッファ34aに書き込む。その後、ゲーム装置本体5は、フレームバッファ34aに書き込まれた、階調が付されたオブジェクトJ1に対応する画像における階調情報を、テクスチャメモリ32aのアルファチャネル(画像表示プログラムD11が利用できるデータ加工用補助のビット)に転送して、シルエット画像D51を得る。次いで、ゲーム装置本体5は、フレームバッファ34aをクリアする。このような処理は、画像表示プログラムD11による制御命令のもと、GPU32が有するGPUとしての汎用的な機能により実現され得る。
【0084】
なお、ゲーム装置本体5は、ポリゴンで構成される複数のオブジェクトを重ね合わせて描画する際に、奥行き方向に沿ったポリゴン間の描画優先順位を決定するために深度情報(例えば、Zバッファ34bに記憶される)を利用する(ゲーム装置本体5は、シルエット画像D51の生成後に、フレームバッファ34aをクリアすると同時に、Zバッファ34bもクリアする。)。
【0085】
ここで、テンプレートテクスチャでマッピングされたオブジェクトJ1について、図6Aから図7Bまでを参照しつつ説明する。
【0086】
図6Aから理解されるように、オブジェクトJ1は、仮想三次元空間内でオブジェクトJ2の上に位置づけられている。図7Aは、オブジェクトJ2が描画されていない状態で仮想カメラVC側から撮像された場合のオブジェクトJ1を示す模式図である。この図から理解されるように、仮想カメラVCからみた場合には、オブジェクトJ1は、その腹部があらわになる姿勢をとる。
【0087】
図6Bは、オブジェクトJ1とオブジェクトJ2との位置関係と、オブジェクトJ1に投影マッピングされるテンプレートテクスチャの一例について説明する模式図である。
【0088】
図6Bの左側に模式的に示されるように、オブジェクトJ1にテンプレートテクスチャが投影マッピングされる際のオブジェクトJ1に反映される階調は、オブジェクトJ1がオブジェクトJ2と接している位置で最も濃い色となり、オブジェクトJ2から離れるに従い薄い色となるような階調である。ゲーム装置本体5(具体的には、GPU32)は、投影されるテクスチャ画像に規定されるテクスチャ座標と、オブジェクトJ1のポリゴンの各頂点を規定づける座標とを対応づけることで、階調付のテンプレートテクスチャ画像(例えば、一定方向に黒色から白色へと段階的に変化するテクスチャ)をオブジェクトJ1を構成するポリゴンにマッピングすることが可能である。
【0089】
ここで、図6Bで示された例では、オブジェクトJ1は、その前足の一方(左前足)をオブジェクトJ2からdaだけ浮かせた姿勢を取っている。上述のような階調が達成されるようにテンプレートテクスチャがマッピングされる場合、オブジェクトJ1のオブジェクトJ2からdaだけ離れた位置にある前足(左前足)は、オブジェクトJ2に接地しているもう一方の前足(右前足)にマッピングされるテンプレートテクスチャ画像の色と比べて薄い色に対応するテンプレートテクスチャ画像の部分(テクセル)でマッピングを受ける。
【0090】
図7Bは、一定方向に階調を有するテンプレートテクスチャを用いて、オブジェクトJ1に投影テクスチャマッピングを施し、フレームバッファ34aに描画した結果の一例を示した図である。
【0091】
図7Bから理解されるように、フレームバッファ34aに書き込まれたオブジェクトJ1に対応する画像は、オブジェクトJ2から近い(すなわち、距離が短い)部位(例えば、オブジェクトJ2に接地している足など)ほど濃い色となるような画像として書き込まれている。
【0092】
そして、ゲーム装置本体5は、このようにしてフレームバッファ34aに書き込まれた階調の情報を、テクスチャメモリ32aのアルファチャネルに書き込むことで、シルエット画像D51(アルファテクスチャ)を得る。
【0093】
次いで、ゲーム装置本体5は、フレームバッファ34aをクリアし、その後、そのクリアされたフレームバッファ34aにオブジェクトJ2を描画する。図8は、フレームバッファ34aに書き込まれたオブジェクトJ2を示す画像の一例を示す図である。この際、ゲーム装置本体5は、オブジェクトJ2の深度情報をZバッファ34bに書き込んでいる。
【0094】
その後、ゲーム装置本体5は、テクスチャメモリ32aのアルファチャネルに書き込まれているシルエット画像D51の階調に応じた混合比で、オブジェクトJ2の画像の色に特定の色(シルエットの基本色)を混合する。このときは、Zバッファ34bに記憶されている深度情報は更新されない。
【0095】
この結果、オブジェクトJ1のシルエットが合成されたオブジェクトJ2の画像が、フレームバッファ34aに書き込まれる。図9は、ゲーム装置本体5によりフレームバッファ34aに書き込まれた、オブジェクトJ1のシルエット画像が合成されたオブジェクトJ2の画像の一例である。
【0096】
その後、ゲーム装置本体5は、Zバッファ34bに書き込まれているオブジェクトJ2の深度情報に基づき、オブジェクトJ1をフレームバッファ34aに書き込むことで、オブジェクトJ2の開口部から視認されるオブジェクトJ1の画像をフレームバッファ34aに描画することができる。このようにして、図10に示されるような画像が得られる。
【0097】
(画像表示処理の詳細な説明)
次に、ゲームシステム1において行われる画像表示処理の詳細を説明する。
【0098】
ゲームシステム1のゲーム装置本体5において、CPU10は、ゲームアプリケーションD12を実行し、それと協働して、画像表示プログラムD11を実行する。GPU32は、画像表示手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。GPU32は、グラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)をVRAM34など記憶領域から取得して、それらのデータを用いて画像データを生成する。
【0099】
(画像表示処理において用いられる主なデータ)
図13は、上記画像表示システムにおける主要なデータを示すメモリマップである。このメモリマップに示される各種データは、VRAM34、内部メインメモリ35、テクスチャメモリ32aなどのゲーム装置本体5が有する記憶領域の所定の位置に記憶され、画像表示プログラムD11の処理において、ゲーム装置本体5(CPU10、GPU32)が要求するタイミングで、必要とするデータが読み出され、利用される。
【0100】
プログラム群D10は、主に、以下のプログラム群を含む。
【0101】
画像表示プログラムD11は、本実施形態の画像表示システムで行われる一連の処理を統合するためのプログラム群である。
ゲームアプリケーションD12は、画像表示プログラムD11と協働して実行されるゲームアプリケーションの一例である。
【0102】
モデルデータD20は、仮想三次元空間に表示されるオブジェクト(例えば、オブジェクトJ1、オブジェクトJ2)の三次元モデルデータである。この三次元モデルデータは、多角形(ポリゴン)とその多角形の表面の模様(テクスチャデータ)を構成する画像データの集合である。ゲーム装置本体5は、それらのモデルデータを利用して画像を生成することで、1または複数のオブジェクトを含むシーンをリアルタイムに描画することができる。
【0103】
なお、一般に、オブジェクトの形状のモデリングは、個々のオブジェクト(物体)の形状や変形を扱うための「ローカル座標系」により規定され、ここで用いられるオブジェクトJ1およびオブジェクトJ2の形状データ(それぞれ、モデルデータD21、モデルデータD22とする)についても、同様である。また、それぞれのポリゴンのデータは、例えば、三角形のポリゴンを構成する頂点のリストとしてゲーム装置本体5が有する記憶領域(頂点バッファ)に記憶され得る。また、各モデルデータは、必要に応じてその表面にマッピングされるテクスチャを規定することができる。各頂点のデータは、位置情報、色情報を保持する。また、モデルデータには、仮想三次元空間で表現されるべきオブジェクトの付加的な属性情報も必要に応じて含まれる。
【0104】
テンプレートテクスチャデータD30は、三次元形状モデルにより規定されるオブジェクトに投影される一定方向に階調が付けられたテクスチャ画像である。
【0105】
シルエット用色データD40は、シルエットの基本色を表す色情報(RGB)である。なお前述のように、実際に表示されるシルエットの色は、例えば、色データD41に記憶される色データおよびシルエット画像D51(アルファテクスチャ)に基づいて決定される。
【0106】
シルエット画像データD50は、特定のオブジェクトに対してテンプレートテクスチャで投影テクスチャマッピングして描画することによって生成される画像を示す。
【0107】
(画像表示処理の具体的な流れ)
以下に、ゲーム装置本体5のプロセッサ(CPU10またはGPU32)が行う画像表示処理の具体的な流れを説明する。
【0108】
図11を参照して、ゲーム装置本体5のプロセッサ(以下、単にプロセッサと称す)が画像表示プログラムD11に従って実行する画像表示処理の流れを説明する。図11は、上記実施形態における、複数のオブジェクトを含むシーンを描画するための一連の描画処理の一例を示すフローチャートである。このフローチャートに示される一連のステップは、代表的には、モニタ2の画面の表示更新周期と同じ周期で繰り返される。ただし、当該繰り返しの頻度は、調整可能であり、例えば、画像表示プログラムD11と協働するゲームアプリケーションD12の要請などにより、適宜変更され得る。本図および後続の図では、「ステップ」を、「S」と略記する。
【0109】
ステップ1において、プロセッサは、仮想三次元空間に配置される1または複数のオブジェクトの位置・姿勢を確定する処理を行う。具体的には、本実施形態おいて、プロセッサは、オブジェクトJ1およびオブジェクトJ2の位置および姿勢を決定または更新し、仮想カメラVCの位置を決定または更新する。なお、オブジェクトの位置や、仮想カメラVCの位置の更新が必要ないときは、本ステップにおける処理の一部は適宜省略されてもよい。
【0110】
ステップ2において、プロセッサは、ステップ1で確定したオブジェクトの位置・姿勢(すなわち、それらを表現するためのパラメータ)に基づき、オブジェクト同士の位置関係ならびに仮想カメラVCの視点と各オブジェクトとの位置関係から、特定のオブジェクトが、他のオブジェクトの一部または全部を仮想カメラVCの視点から遮蔽する可能性がある否かを判定する。
【0111】
代表的には、プロセッサは、仮想カメラVCの視点と、描画対象となっている複数のオブジェクトのうち特定のオブジェクトとの間に、別のオブジェクトが存在するか否かにより判定する。この場合、この別のオブジェクトが存在するときは、上記特定のオブジェクトの一部または全部が、当該別のオブジェクトにより仮想カメラVCから遮蔽される可能性がある。
【0112】
特定のオブジェクトの一部または全部が、別のオブジェクトにより仮想カメラVCから遮蔽される場合であって、当該特定のオブジェクト(以下、被遮蔽オブジェクトと称す)のシルエットを当該別のオブジェクト(以下、遮蔽オブジェクトと称す)に対して合成表示する必要があるとき、ステップ3のシルエット生成処理に進む(ステップ2において、YES)。他方、特定のオブジェクトが別のオブジェクトにより仮想カメラVCの視点から遮蔽されない場合などには、シルエットの生成が必要ないものとして、プロセッサは、シルエット生成処理を伴わずフレームバッファにオブジェクトを描画する処理にすすむ(ステップ2において、NO)。
【0113】
この例示的な本実施形態では、上述のように、オブジェクトJ1は、4本足で歩行する生物体を模したキャラクタを示すオブジェクトであり、他方、オブジェクトJ2は、格子を伴った開口部を有し、厚みのある葉を模したオブジェクトである。そして、オブジェクトJ2の開口部がオブジェクトJ1の一部を仮想カメラVC側から撮影可能となることを許容しつつも、オブジェクトJ2の開口部以外の部分がオブジェクトJ1の別部分を仮想カメラVCから遮蔽する位置に存在する。
【0114】
なお、描画の対象となるオブジェクトの位置関係が予め特定されている場合(例えば、シルエットの描画が常に必要である場合)などにおいては、仮想カメラVCの視点と、描画対象となっている複数のオブジェクトのうち特定のオブジェクトとの間に、別のオブジェクトが存在するか否かの判定は、必須の処理ではなく、省略可能な処理である。
【0115】
以下では、上記被遮蔽オブジェクトがオブジェクトJ1であり、上記遮蔽オブジェクトがオブジェクトJ2であるものと仮定して説明を続ける。
【0116】
ステップ3において、プロセッサは、特定のオブジェクトのシルエットを、当該特定のオブジェクトの一部または全部を遮蔽している別のオブジェクトに合成表示した画像を生成するためのシルエット生成処理を行う。このシルエット生成処理の一例としては、図12に記載されるような処理が挙げられる。
【0117】
図12を参照してその処理の詳細を説明する。図12は、シルエット生成処理に関する一連の処理手順を示すフローチャートである。
【0118】
ステップ31において、プロセッサ(具体的には、GPU32)は、三次元モデルに投影するためテンプレートテクスチャとしてのテクスチャ画像を取得する。具体的には、GPU32は、テンプレートテクスチャデータD30の領域を参照してテクスチャ画像D31を取得する。このテクスチャ画像D31は、例えば、図6Cに示されるような一定方向に階調が付けられたテクスチャ画像である。図6Cは、一定の方向に階調が付されたテクスチャ画像D31の例を示すための模式的であり、一定の方向に付された階調の態様はこの例に限られない。
【0119】
ステップ32において、プロセッサ(GPU32)は、オブジェクトJ1のシルエット画像D51を生成する。具体的には、GPU32は、投影テクスチャマッピングを応用して、テクスチャ画像D31をオブジェクトJ1の形状モデルにマッピングし、最終的な画像をフレームバッファ34aに描画する。このとき、GPU32は、オブジェクトJ1がオブジェクトJ2と接している位置で最も濃い色となり、オブジェクトJ2から離れるに従い薄い色となるような階調が生じるようにマッピングする。
【0120】
テクスチャ画像D31をオブジェクトJ1の形状モデルにマッピングする手法の一例として以下のような手法が挙げられる。
【0121】
既述のように、テンプレートテクスチャ画像は、その画像の部位を特定するためのテクスチャ座標系を有している。GPU32は、このテンプレートテクスチャ画像をオブジェクトJ1に投影するために、オブジェクトJ1のポリゴンを規定する頂点に対応するテクスチャ座標を計算する。このテクスチャ座標を計算する方法は、各頂点のワールド空間での座標(XYZ座標)を、所定のテクスチャ変換行列で変換することで与えられる。
【0122】
ここで、GPU32は、オブジェクトJ1を構成する各頂点のワールド空間での座標を、ステップ1以降の過程で既に取得している。また、上述のテクスチャ変換行列は、一例として、テンプレートテクスチャ画像をオブジェクトJ1に投影する方向からのビュー行列の逆行列により与える。一般に、ビュー行例(ビューイングマトリクス)は、視点の位置ベクトルP、注視点の位置ベクトルE、および視点の上方向を表すベクトルUを規定することで定義づけられる。本例では、このようなビュー行列において、ワールド座標系におけるオブジェクトJ2の上方向を示す方向ベクトルを、ベクトルUとし、テクスチャを投影する方向ベクトルをP(これはUと垂直であることを満たしていればよい)とし、オブジェクトJ1がオブジェクトJ2と接地する位置に対応する位置ベクトルEとして求めることができる。なお、オブジェクトJ1がオブジェクトJ2に載っている面を上して、オブジェクトJ2における上方向を規定する。
【0123】
なお、仮に、テクスチャ画像D31として用いられる画像が、図6Cに示されたテクスチャ画像のみであるとしても、GPU32は、テクスチャ画像D31をテンプレートテクスチャとしてオブジェクトJ1に投影するときに、上述のベクトルに適宜にオフセットなどを設定することで、投影する位置を所定方向にずらすことが可能である。同様に、GPU32が投影テクスチャマッピングを行う際に用いる行列に所定のスケール成分を設定することで、投影されるテクスチャの範囲を変化させることも可能である。
【0124】
また、ゲーム装置本体5は、ポリゴンで構成される複数のオブジェクトを重ね合わせて描画する際に、奥行き方向に沿ったポリゴン間の描画優先順位を決定するために深度情報(例えば、Zバッファ34bに記憶される)を利用する。
【0125】
ステップ33では、プロセッサ(GPU32)が、階調付テクスチャでマッピングした上述のオブジェクトJ1の画像を、シルエット画像D51として保存する。具体的には、GPU32は、このオブジェクトJ1の画像における階調情報を、テクスチャメモリ32aのアルファチャネルに書き込むことで、シルエット画像D51(アルファテクスチャ)を得る。より具体的は、アルファチャネルの値(A)が0.0≦A≦1.0との範囲の値をとるとしたときに、ステップ32でフレームバッファ34aに描画されたオブジェクトJ1の画像において、より濃い領域に対応するピクセルほど、対応するシルエット画像D51のアルファチャネルの値(A)が1.0に近づき、また、より薄い領域に対応するピクセルほど、Aが0.0に近づくように、シルエット画像D51のアルファチャネルの値(A)を設定することが可能である。
【0126】
ステップ34において、プロセッサ(GPU32)は、フレームバッファ34aをクリアする。この際、プロセッサは、Zバッファ34bもクリアする。
【0127】
ステップ35において、プロセッサ(GPU32)は、仮想カメラVCから見たオブジェクトJ2をフレームバッファ34aに描画する。この際、プロセッサは、Zバッファ34bは有効にして描画し、その深度情報はZバッファ34bに書き込まれる。図8は、このときのフレームバッファ34aに書き込まれたオブジェクトJ2を示す画像の一例を示す図である。
【0128】
ステップ36において、プロセッサ(GPU32)は、フレームバッファ34aに描画されたオブジェクトJ2の画像に、シルエット画像D51として(アルファチャネルに)保存された情報をもとに、特定の色(シルエットの基本色)を合成する。具体的には、GPU32は、シルエット画像D51のアルファチャネルに保持された階調情報に応じた混合比で、オブジェクトJ2の画像の色に特定の色(例えば、深緑色、黒色などの色であって、オブジェクトJ2に合成すべきシルエットの基本色としてあらかじめ定められた色)を混合する。
【0129】
より具体的には、ステップ36において更新された後にフレームバッファ34aに記憶されるピクセルの色は、ステップ35においてフレームバッファ34aに書き込まれている画像の色Fと、上記特定の色とが、シルエット画像D51のアルファチャネルに保持された階調情報に応じた混合比で混合されたものとなる。より詳細な色の合成手順の一例は、次のとおりである。
【0130】
ステップ35でオブジェクトJ2が描画された後にフレームバッファ34aに記憶されている色をFとし、ステップ33で保存されたシルエット画像D51のアルファチャネルの値をAとし、上記特定色をCとすると、ステップ36における合成後の各ピクセルの色は、下記の式で表される。
(合成後の色)=F*(1−A)+C*A
【0131】
すなわち、オブジェクトJ1がオブジェクトJ2と接しているような位置に対応するシルエット画像D51の部位では、合成後の色においてシルエットの基本色であるCの割合が大きくなり、オブジェクトJ1がオブジェクトJ2から離れている位置に対応するシルエット画像D51の部位では、合成後の色においてシルエットの基本色であるCの割合が小さくなる。
【0132】
なお、上述の例では、アルファチャネルの値(A)が0.0≦A≦1.0との範囲の値をとるとしたときに、ステップ32でフレームバッファ34aに描画されたオブジェクトJ1の画像において、より濃い領域に対応するピクセルほど、対応するシルエット画像D51のアルファチャネルの値(A)が1.0に近づき、また、より薄い領域に対応するピクセルほど、Aが0.0に近づくように、シルエット画像D51のアルファチャネルの値(A)が設定される。このAの設定の仕方は、この例に限られず、アルファチャネルの値(A)が0.0≦A≦1.0との範囲の値をとるとしたときに、ステップ32でフレームバッファ34aに描画されたオブジェクトJ1の画像において、より濃い領域に対応するピクセルほど、対応するシルエット画像D51のAが0.0に近づき、また、より薄い領域に対応するピクセルほど、Aが1.0に近づくように、シルエット画像D51のアルファチャネルの値(A)を設定してもよい。ただし、この場合は、ステップ36における合成後の色は、下記の式で表される。
(合成後の色)=F*A+C*(1−A)
すなわち、合成後の色を得る前に、シルエット画像D51のアルファチャネルの値が、どのような態様で階調情報を保持していても、合成後の色において、オブジェクトJ1がオブジェクトJ2により近い位置に対応するシルエット画像D51の部位で、シルエットの基本色であるCの割合がより大きくなればよい。
【0133】
ステップ36において、プロセッサが画像合成を行うと、図11に示されるメインのフローチャートに戻り、プロセッサは、そのステップ4に規定される処理を実行する。
【0134】
具体的には、ステップ4において、プロセッサは、Zバッファを有効にして、オブジェクトJ1の本来の模様を表すテクスチャ(例えば、黄色いテクスチャ)を用いて、仮想カメラVCから見たオブジェクトJ1をフレームバッファ34aに描画する。その後、プロセッサは、フレームバッファ34aに描画された画像を画面(例えば、モニタ2)に表示する。
【0135】
ところで、ステップ35におけるシルエットの合成処理は、ステップ35においてフレームバッファ34aに描画された画像全体に対して行われるので、図9に示すように、オブジェクトJ2の開口部を通じて見えている背景の一部分にもシルエットが合成表示されてしまうが、ステップ37においてオブジェクトJ1を描画することによって当該部分は上書きされるため、何ら不都合は生じない。
【0136】
よって、ステップ35におけるシルエットの合成処理を、フレームバッファ34aに記憶されている画像全体に対して画一的に行うことができるので、例外的な処理を追加することなしに、一般的なGPUが有する標準的な機能を用いてシルエットの合成処理を実現することができる。
【0137】
このように、遮蔽オブジェクトに近い部位ほど濃くなるような被遮蔽オブジェクトのシルエット画像を、遮蔽オブジェクトに合成表示することができるので、例えば濃淡のないシルエットを合成表示する場合と比較して、写実的な表現が可能である。
【0138】
また、そのようなシルエット画像を、上述のような一定方向に階調を有するテクスチャを用いた投影テクスチャマッピングによって生成することができるので、例えば、遮蔽オブジェクトと被遮蔽オブジェクトの間の距離をピクセル毎に計算してシルエット画像を生成する場合と比較して、軽い処理負荷でシルエット画像を生成することができる。
【0139】
また、投影テクスチャマッピングは、一般的なGPUが有する標準的な機能であるので、遮蔽オブジェクトと被遮蔽オブジェクトの間の距離をピクセル毎に計算するというような例外的な処理を追加する必要がないため、プログラミングの手間も軽減される。
【0140】
(変形例その他)
上述の例示的実施形態におけるステップ36では、プロセッサ(GPU32)は、フレームバッファ34aに既に書き込まれている画像における色Fと、シルエットを描画するための特定色Cとを合成する際に、シルエット画像D51のアルファチャネルに保持されていた階調情報に応じて色Fと特定色Cとを混合することによって、フレームバッファ34aに既に書き込まれている画像にシルエットを合成した。しかしながら、見た目上、オブジェクトJ1のシルエットがオブジェクトJ2に重ねて半透明表示されているように視認されさえすれば、他の任意の合成手法を採用しても構わない。例えば、シルエットとして表示すべき領域の色を、色Fと色Cとを所定のピクセル(例えば、1ピクセル)ごとに交互に表示する手法により、シルエットを合成してもよい。
【0141】
上述の例示的実施形態におけるステップ33では、プロセッサ(GPU32)は、一定方向に階調を有するテンプレートテクスチャをオブジェクトJ1にマッピングすることにより、シルエット画像D51を得た。別の実施形態において、シルエット画像D51を得るために異なる態様を用いることが可能である。例えば、オブジェクトJ2側から見たオブジェクトJ1を、Zバッファ34bを有効にして描画(レンダリング)し(必ずしもフレームバッファ34aに色を描画する必要はない)、描画終了後のZバッファ34bの値(深度情報)を画像の濃淡レベルへと変換し(例えば、深度情報を所定の変換関数により濃淡レベルへと変換して、ステップ33と同様に、テクスチャメモリのアルファチャネルに書き込む)、オブジェクトJ2に近いほど濃くなるようなシルエット画像D51を生成してもよい。
【0142】
上述の例示的な実施形態においては、オブジェクトJ1とオブジェクトJ2の2つのオブジェクトが存在するシーンを描画する場合について説明したが、オブジェクトの数が3つ以上の場合であっても、プロセッサは、本画像表示プログラムD11の処理を同様に適用することが可能である。
【0143】
例えば、上述の例示的な実施形態において、オブジェクトJ1の他にオブジェクトJ3が、オブジェクトJ2の上に配置されているシーンを想定した場合、プロセッサは、まず、オブジェクトJ2のみをフレームバッファ34aに描画し、次いで、そのオブジェクトJ1およびJ3に対応する2つのシルエット画像のそれぞれの濃淡に応じた混合比で、オブジェクトJ2の画像に特定の色(例えば、黒色)を混合する。その後、プロセッサは、オブジェクトJ1およびJ3のモデルをフレームバッファ34aに描画する。このように3つ以上のオブジェクトが存在しても、シルエットが落とされるオブジェクトを先にフレームバッファ34aに描き、次いで、シルエット画像をフレームバッファ34aに描かれている画像に対して、そのシルエット画像のそれぞれの濃淡に応じた混合比で合成し、最後に、シルエットの原因となったオブジェクトをフレームバッファ34aに描画すればよいことが理解される。
【0144】
なお、上記実施形態では、オブジェクトJ1のシルエット画像D51を生成する際に、オブジェクトJ1のモデルデータD21に基づいてシルエット画像D51を生成しているが、他の実施例では、オブジェクトJ1のシルエット画像を生成するためだけに用いるシルエット用モデルデータ(例えば、オブジェクトJ1のモデルデータD21よりも少ないポリゴン数でオブジェクトJ1の形状を表したモデルデータ)を別途用意して、当該シルエット用モデルデータを用いてオブジェクトJ1のシルエット画像D1を生成するようにしてもよい。例えば、オブジェクトJ1のモデルデータD21よりも少ないポリゴン数のシルエット用モデルデータを用いてシルエット画像D1を生成するようにすれば、シルエット画像生成処理の速度を向上させることができる。
【0145】
なお、1つの連続したオブジェクトの第1の部位が、その第2の部位よりも仮想カメラVCから離れた位置に存在し、仮想カメラVCから見て第1の部位の一部が第2の部位により遮蔽されるような場合にも、上記第1の部位および第2の部位を、それぞれ前述の被遮蔽オブジェクトおよび遮蔽オブジェクトとみなして上記実施形態と同様の処理を行うことによって、上記第1の部位のシルエットを第2の部位に合成表示することが可能である。
【0146】
上述した例示的な実施形態においては、太陽光が上から緑色の葉に降り注いでおり、その葉の上に4本足の黄色の生物体が乗っているという状況において、葉の下側から葉を見上げたときに見えるシーンに関する画像を生成する場合を例として説明した。しかし、ここで示された、4本足の黄色の生物体(被遮蔽オブジェクト)、太陽光が上から緑色の葉(遮蔽オブジェクト)などの描画使用とする対象は、あくまでも例示的なものであって、この例に限られるものではない。すなわち、被遮蔽オブジェクトのシルエットが遮蔽オブジェクトの表面に対して一定の効果として現れるシーンを描画するのであれば、上述の例示的な実施形態における手法を別のシーンを描画することに利用できる。
【0147】
例えば、光を完全には透過しない厚手の障子が遮蔽オブジェクトとして存在し、灯籠の光により、非遮蔽オブジェクトとしての武士のシルエットが遮蔽オブジェクトの表面に反映されるシーンの描画などに用いられる。
【0148】
また、上記実施例では、据置型のゲーム装置3に本願発明を適用した例を説明したが、ゲーム装置3で行われる同様の画像表示処理を実行する画像表示装置であればよく、例えば一般的なパーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistant)、携帯ゲーム装置等のデバイスにも適用することができる。
【0149】
別の実施形態において、画像表示プログラムD11の構成する個々の部分が同時並行的に複数のコンピュータ上で実行され、それらがネットワークを介して互いに通信しあう形態(分散システム)で実施されてもよい。
【0150】
また、上記画像表示プログラムD11は、光ディスク4等の外部記憶媒体を通じてゲーム装置本体5に供給されるだけでなく、有線または無線の通信回線を通じてゲーム装置本体5に供給されてもよい。
【0151】
また、その画像表示プログラムD11は、ゲーム装置本体5内部の不揮発性記憶装置にあらかじめ記録されていてもよい。なお、画像表示プログラムD11を記憶する情報記憶媒体としては、任意のコンピュータ読み取り可能な記憶媒体であればよく、例えば、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。
【0152】
なお、上記実施形態では、画像表示プログラムD11と、その他のゲームアプリケーションD12とを別個に設けている。しかしながら、この構成はあくまでも一例である。したがって、ゲームアプリケーションD12の中に画像表示プログラムD11が組み込まれていてもよい。
【0153】
また、本明細書において例示される画像表示プログラムD11の特徴の本質を維持しつつ、本発明の画像表示プログラムD11が総体としてユーザに提供する機能を別のプログラム上の構成単位を用いて再構築することが可能である(例えば、所定機能のモジュール化などを利用することが可能である。)。
【0154】
また、コンピュータのオペレーティングシステムの一部として様々なプログラムモジュール(関数等)を用意しておくことが一般的傾向である。さらに、アプリケーションプログラムはこれらのモジュールを必要な時に呼び出して処理を進める方式が一般的である。そして、一般的なプラットフォームを使用する限り、そうしたモジュールを含ませたソフトを流通させる必要はない。したがって、上記プログラムからそれらモジュールに対応する部分を除いたソフトウェアが、記録媒体に記憶された形式で、またはネットワーク上で提供される形式で提供/流通された場合であって、上述のモジュールによって機能が補完されたときには、結果として上記プログラムそのものが提供された場合と等価な効果が存在し得る。よって、上述のようなモジュールによって機能が補完されることを前提に、上記画像表示プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的に上記画像表示プログラムに相当するものと解釈され得る。
【0155】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0156】
本発明は、例えば、仮想3次元ゲーム空間において進行するゲームを実行するゲーム装置に好適である。
【符号の説明】
【0157】
1…ゲームシステム
2…モニタ
2a、706…スピーカ
3…ゲーム装置
4…光ディスク
5…ゲーム装置本体
10…CPU
11…システムLSI
12…外部メインメモリ
13…ROM/RTC
14…ディスクドライブ
15…AV−IC
16…AVコネクタ
17…フラッシュメモリ
18…無線通信モジュール
19…無線コントローラモジュール
20…拡張コネクタ
21…外部メモリカード用コネクタ
22、23…アンテナ
24…電源ボタン
25…リセットボタン
26…イジェクトボタン
31…入出力プロセッサ
32…GPU
32a…テクスチャメモリ
33…DSP
34…VRAM
34a…フレームバッファ
34b…Zバッファ
35…内部メインメモリ
7…コントローラ
70…コアユニット
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
701…加速度センサ
702…LED
704…バイブレータ
707…サウンドIC
708…アンプ
761…制御部
762…発光部
763…受光部
8…マーカ

【特許請求の範囲】
【請求項1】
第1オブジェクトおよび第2オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画する画像表示装置のコンピュータにおいて実行される画像表示プログラムであって、
前記コンピュータを、
前記仮想カメラから見て、前記第1オブジェクトと、当該第1オブジェクトより近い側に存在する第2オブジェクトの少なくとも一部とが重なるときに、当該第1オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成手段であって、当該シルエット画像内の階調情報が当該第2オブジェクトから当該第1オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成手段、
前記仮想カメラから見た前記第2オブジェクトの画像を生成する第2オブジェクト描画手段、および
前記シルエット画像が、前記第2オブジェクトに対して近い前記第1オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第2オブジェクトの画像に対して合成する合成手段として機能させる、画像表示プログラム。
【請求項2】
前記シルエット画像生成手段は、前記第2オブジェクトからの距離に応じて階調が変化するようなテクスチャを前記第1オブジェクトにマッピングすることにより、前記シルエット画像を生成する、請求項1に記載の画像表示プログラム。
【請求項3】
前記シルエット画像生成手段は、投影テクスチャマッピングにより、前記シルエット画像を生成する、請求項2に記載の画像表示プログラム。
【請求項4】
前記テクスチャは、黒色から白色まで段階的に階調を変化させたテクスチャである、請求項2に記載の画像表示プログラム。
【請求項5】
前記シルエット画像生成手段は、前記第2オブジェクト側から見た前記第1オブジェクトの深度情報に基づいて、前記シルエット画像を生成する、請求項1に記載の画像表示プログラム。
【請求項6】
前記合成手段は、前記第2オブジェクトの画像の色と、前記第1オブジェクトのシルエットを表すための特定色とを、前記シルエット画像に応じて混合することにより、前記仮想カメラから見た前記第2オブジェクトの画像に前記シルエット画像を合成する、請求項1に記載の画像表示プログラム。
【請求項7】
前記シルエット画像生成手段は、前記第2オブジェクトに対してより近い前記第1オブジェクトの部位に対応する部分ほど、色がより濃くなるようなシルエット画像を生成する、請求項1に記載の画像表示プログラム。
【請求項8】
前記合成手段は、前記第2オブジェクトの画像と、前記シルエット画像を、所定のピクセル数の間隔で交互に表示することにより、前記仮想カメラから見た前記第2オブジェクトの画像に前記シルエット画像を合成する、請求項7に記載の画像表示プログラム。
【請求項9】
前記コンピュータを、
前記仮想カメラから見て前記第2オブジェクトに遮蔽されていない前記第1オブジェクトの部分の画像を、前記合成手段による合成後の画像における当該部分に対応する位置に上書きする第1オブジェクト描画手段としてさらに機能させる、請求項1に記載の画像表示プログラム。
【請求項10】
前記第2オブジェクト描画手段は、前記仮想カメラからの深度情報を生成しながら、前記第2オブジェクトの画像を生成し、
前記合成手段は、前記第2オブジェクト描画手段で生成された前記深度情報を更新せずに、前記第2オブジェクトの画像に前記シルエット画像を合成し、
前記第1オブジェクト描画手段は、
前記深度情報に基づいて、前記第2オブジェクトに遮蔽されていない前記第1オブジェクトの部分を判定する非遮蔽部分判定手段を含み、
前記非遮蔽部分判定手段の判定結果に基づき、前記第2オブジェクトに遮蔽されていない前記第1オブジェクトの部分の画像を、前記合成手段による合成後の画像における当該部分に対応する位置に上書きする、請求項9に記載の画像表示プログラム。
【請求項11】
前記コンピュータを、前記仮想三次元空間における前記第1オブジェクトの位置または姿勢を更新する更新手段としてさらに機能させ、
前記更新手段による前記更新処理と、
前記シルエット画像生成手段による前記生成処理と、
前記第2オブジェクト描画手段による前記生成処理と
前記合成手段による前記合成処理と、
前記第1オブジェクト描画手段による前記上書き処理が一連の処理として、繰り返し実行される、請求項9に記載の画像表示プログラム。
【請求項12】
第1オブジェクトおよび第2オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画するための画像表示装置であって、
前記仮想カメラから見て、前記第1オブジェクトと、当該第1オブジェクトより近い側に存在する第2オブジェクトの少なくとも一部とが重なるときに、当該第1オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成手段であって、当該シルエット画像内の階調情報が当該第2オブジェクトから当該第1オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成手段、
前記仮想カメラから見た前記第2オブジェクトの画像を生成する第2オブジェクト描画手段、および
前記シルエット画像が、前記第2オブジェクトに対して近い前記第1オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第2オブジェクトの画像に対して合成する合成手段を備える、画像表示装置。
【請求項13】
第1オブジェクトおよび第2オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画するための画像表示システムであって、
前記仮想カメラから見て、前記第1オブジェクトと、当該第1オブジェクトより近い側に存在する第2オブジェクトの少なくとも一部とが重なるときに、当該第1オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成手段であって、当該シルエット画像内の階調情報が当該第2オブジェクトから当該第1オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成手段、
前記仮想カメラから見た前記第2オブジェクトの画像を生成する第2オブジェクト描画手段、および
前記シルエット画像が、前記第2オブジェクトに対して近い前記第1オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第2オブジェクトの画像に対して合成する合成手段を備える、画像表示システム。
【請求項14】
第1オブジェクトおよび第2オブジェクトが存在する仮想三次元空間を仮想カメラで撮影して描画するための画像表示方法であって、
前記仮想カメラから見て、前記第1オブジェクトと、当該第1オブジェクトより近い側に存在する第2オブジェクトの少なくとも一部とが重なるときに、当該第1オブジェクトのシルエットを表すためのシルエット画像を生成するシルエット画像生成ステップであって、当該シルエット画像内の階調情報が当該第2オブジェクトから当該第1オブジェクトの各部までの距離に応じて変化するようなシルエット画像を生成するシルエット画像生成ステップ、
前記仮想カメラから見た前記第2オブジェクトの画像を生成する第2オブジェクト描画ステップ、および
前記シルエット画像が、前記第2オブジェクトに対して近い前記第1オブジェクトの部位に対応する部分ほど色が濃くなるように、当該シルエット画像を、前記仮想カメラから見た前記第2オブジェクトの画像に対して合成する合成ステップを含む、画像表示方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図6C】
image rotate

【図7A】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図7B】
image rotate