ゲーム処理システム、ゲーム処理方法、ゲーム処理装置およびゲーム処理プログラム
【課題】ゲームの遊びやすさを損なわないゲームシステム等を提供すること。
【解決手段】仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムであって、前記ゲームシステムは、第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、ゲーム処理を行うゲーム処理部と、前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、設定された透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、ゲームシステム。
【解決手段】仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムであって、前記ゲームシステムは、第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、ゲーム処理を行うゲーム処理部と、前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、設定された透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示される技術は、ゲーム処理システム、ゲーム処理方法、ゲーム処理装置およびゲーム処理プログラムに関する。具体的には、本明細書に開示される技術は、複数の仮想オブジェクトが仮想空間に配置されたシーンを描画するためのゲーム処理システム、ゲーム処理方法、ゲーム処理装置およびゲーム処理プログラムに関する。
【背景技術】
【0002】
ゲーム処理は、プレイヤキャラクタ(または、プレイヤオブジェクト)を仮想空間に配置する処理を含み得る。そして、この仮想空間内のプレイヤキャラクタの視点とは別の視点から当該仮想空間をみたシーンが描画される処理が行われる場合がある。例示的な処理としては、そのプレイヤキャラクタが配置されるフィールドを見下ろすような視点(仮想カメラ)が設定されたシーンの描画処理が挙げられる。
【0003】
フィールドに対して斜めから見下ろす視点が設定されたシーンを描画する処理の場合、プレイヤキャラクタと視点(仮想カメラ)との間に別のオブジェクト(例えば、敵キャラクタ)が配置される状況が存在する。このような状況を描画したシーンでは、敵キャラクタが、視点からプレイヤキャラクタを見た際の視界を妨げるため、プレイヤはそのプレイヤキャラクタが存在する位置を把握できない。
【0004】
従来、このような場合、例えば、プレイヤキャラクタの位置を示すための表現手法として、敵キャラクタの表示を半透明とする処理、プレイヤキャラクタの位置を示す目的でシルエットを表示する処理が利用されてきた(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−290550号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上述のような表示処理がなされた場合では、プレイヤキャラクタへの視界を妨げている敵キャラクタが、3次元仮想空間内でプレイヤキャラタに対してどのような形状の面を向けているかは、ユーザにとって把握しにくいものであった。
【0007】
このような把握しにくさは、ゲームの遊びやすさを損なうものであった。ゲームの遊びやすさを損なわないゲームシステム等を提供することが、1つの課題である。
【0008】
特に、プレイヤキャラクタが複数であって、さらに、他の仮想オブジェクトが存在する場合のような表示における拘束条件が多い場合には、ゲーム進行上、重要な仮想オブジェクトとプレイヤキャラクタの関係性を容易に把握させることは、1つの課題であった。
【課題を解決するための手段】
【0009】
本明細書では、上述のような課題を解決するための例示的な実施形態として以下のような技術について記載する。
【0010】
例示的な態様として、仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムが提供される。このゲームシステムは、オブジェクト配置部と、ゲーム処理部と、描画処理部とを備える。
【0011】
ここで、上述のオブジェクト配置部は、第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを上記オブジェクトとして上記仮想空間に配置する。さらに、ゲーム処理部は、ゲーム処理を行う。また、透明処理部は、上記ゲーム処理において所定の条件が満たされたとき、上記オブジェクトの第1の部分の透明度を上げる。そして、描画処理部は、設定された透明度に基づいて上記第1の部分を描画し、上記第2の部分のポリゴンを描画する。
【0012】
一実施形態として、上述のゲームシステムの第1の部分は、上記第2の部分を含み得る。
【0013】
この実施形態において、上述のゲームシステムの第2の部分は、上記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルであり得る。
【0014】
種々の実施形態において、上述のゲームシステムの第2の部分の透明度は、上記条件にかかわらず一定であり得る。
【0015】
この実施形態において、上記第2の部分は、常に不透明であり得る。
【0016】
種々の実施形態において、上述のゲームシステムにおけるゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み得る。かつ、上記透明処理部は、上記プレイヤキャラクタと、上記オブジェクトの相対的な位置関係に基づいて、上記オブジェクトの第1の部分の透明度を上げ得る。
【0017】
この実施形態において、上記オブジェクトが、上記プレイヤキャラクタの一部または全部を、上記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、上記透明処理部は上記第1の部分のオブジェクトの透明度を上げ得る。
【0018】
上述した実施形態において、上記プレイヤキャラクタが、上記オブジェクトに近づいたときに、上記透明処理部は上記オブジェクトの透明度を上げ得る。
【0019】
上述した実施形態において、上述のゲームシステムにおける操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理であってもよい。
【0020】
また、別の態様において、仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理システムが提供される。この画像処理システムは、オブジェクト配置部と、描画処理部とを備える。
【0021】
ここで、上述のオブジェクト配置部は、第1の部分および第2の部分を含むポリゴンモデルを上記オブジェクトとして上記仮想空間に配置する。また、透明処理部は、上記オブジェクトの第1の部分を半透明にする。そして、描画処理部は、設定された透明度に基づいて上記第1の部分を描画し、上記第1の部分のポリゴンの法線ベクトルに基づき隠面として判定され得る面に対応する上記第2の部分のポリゴンを描画する。
【0022】
なお、本明細書において使用される場合、「透明度」とは、ゲームシステムにおいて描画される画像に表現されたオブジェクトが透明な状態を示すように設定されたパラメータである。したがって、描画対象の「透明度」を「上げる」との表現は、描画された結果としてその対象が透明であるとの態様を増強することを示す。したがって、その透明度に対応するものとして導入されたパラメータの値自体が、大きくなることを必ずしも示さなくともよい。例えば、アルファ値が、0.0から1.0までの値をとる場合であって、アルファ値が0.0となるときに「透明」とし、アルファ値が1.0となるときに「不透明」である定義される場合もあり得る。
【0023】
また、本明細書において使用される場合、「システム」(例えば、画像処理システム、ゲームシステム、情報処理システム)との用語は、1つの装置で構成されてもよく、また、複数の装置であって、その各々の装置が他の装置のいずれかと(無線または有線により)通信可能であるものであってもよい。
【0024】
別の態様において、上述のゲーム処理システム(ゲームシステム)は、1台のゲーム処理装置として提供され得る。また、さらに別の態様において、そのゲーム処理システムにおける画像処理を実行するためのゲーム処理プログラムが、1つの実装態様として提供されてもよい。また、例示的な実施形態として、上述のようなプログラム、装置、システムとして実装され得る、方法が提供される。
【0025】
なお、本明細書で使用される場合、「コンピュータ読み取り可能な記憶媒体」との用語は、プログラム、コードおよび/またはデータをコンピュータシステムによって使用するために記憶することが可能な、任意の装置または媒体をいう。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムによって読み取りが可能である限りにおいて、揮発性であっても、不揮発性であってもよい。コンピュータ読み取り可能な記憶媒体としては、例えば、磁気テープ、ハードディスクドライブ(HDD)、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、ブルーレイディスク(BD)、半導体メモリなどが挙げられるが、これらに限られない。
【発明の効果】
【0026】
本実施形態で例示されたゲーム処理システム等によって、プレイヤがゲーム処理の過程で仮想オブジェクトの様子をより把握しやすいものとなった。
【図面の簡単な説明】
【0027】
【図1】例示的な実施形態に係るゲームシステム1を示す外観図
【図2】図1のゲーム装置本体5の一例を示すブロック図
【図3】仮想空間に配置された複数のオブジェクトとそれらを含む画像を生成するために設定された仮想カメラの位置を模式的に示した図
【図4A】図3で例示された配置において、非プレイヤキャラクタQ1と、プレイヤキャラクタP1とを含む領域を拡大した模式図
【図4B】図4Aで示された仮想オブジェクトの外形についての理解を助けるために示した、当該仮想オブジェクトの外形に対応するワイヤーフレームモデルの模式図
【図4C】図4Aの矢印で示した方向で、この2つの仮想オブジェクトが仮想カメラAから観察されるときに、仮想カメラAから見た非プレイヤキャラクタQ1およびその陰に隠れて視認できていないプレイヤキャラクタP1の様子を模式的に示した図
【図4D】図4Cで示された仮想オブジェクトの外形についての理解を助けるために示した、当該仮想オブジェクトの外形に対応するワイヤーフレームモデルの模式図
【図5】非プレイヤキャラクタQ1の施される画像処理を説明するための模式図
【図6A】非プレイヤキャラクタQ1の部分オブジェクト2を構成するポリゴンkに規定された、法線ベクトルnkを示す模式図
【図6B】ベクトルekと任意の法線ベクトルnkとのなす角度θを模式的示した図
【図6C】部分オブジェクト2の別例を示す図
【図7A】プレイヤキャラクタP1と、非プレイヤキャラクタQ1との間でおこなわれる、遮蔽関係の有無を判定する処理を模式的に示した図
【図7B】図7Aの変形例を示す模式図
【図8】ゲーム処理において用いられる各種データを示す図
【図9A】ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャート
【図9B】図9Aに示されたフローチャートのステップ3に対応する定義づけられた処理(ゲーム制御処理)を示すフローチャート
【発明を実施するための形態】
【0028】
[1.ゲームシステムの構成]
図1を参照して、この例示的な実施形態に係るゲーム処理システムについて説明する。以下、説明を具体的にするために、当該ゲーム処理システムとして、据置型のゲーム装置本体5を含むゲームシステム1を用いて説明する。
【0029】
図1は、据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図である。また、図2は、ゲーム装置本体5の一例を示すブロック図である。なお、本明細書に添付の図面は、例示的な実施形態を説明するためのものであり、本明細書において説明しようとする技術的思想を、その図面に記載される具体的な態様に限定することを意図するものではない。
【0030】
図1において、ゲームシステム1は、表示装置の一例である家庭用テレビジョン受像機2(以下、モニタ2と記載する)と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置3から出力された音声信号を音声出力するためのスピーカ2aを備える。
【0031】
また、ゲーム装置3は、各種プログラムおよび各種データを記録した光ディスク4と、当該光ディスク4のプログラムを実行してゲーム用画像をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。なお、図1には、複数個のコントローラ7を例示的に示している。
【0032】
また、ゲーム装置本体5は、無線コントローラモジュール19(図2参照)を内蔵する。無線コントローラモジュール19は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。
【0033】
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(図2参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたプログラムを実行することによって、その結果をゲーム画像としてモニタ2に表示する。また、プログラムは、光ディスク4に限らず、フラッシュメモリ17にあらかじめ記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のユーザは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0034】
コントローラ7は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。
【0035】
コントローラ7は、コアユニット70を備えている。コアユニット70は、主にモニタ2の表示画面に表示されるオブジェクト等を操作するための操作手段である。
【0036】
コアユニット70は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)とが設けられている。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。
【0037】
また、コントローラ7(例えば、コアユニット70)は、ゲーム装置本体5の無線コントローラモジュール19から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
【0038】
[2.ゲーム装置本体の内部構成]
【0039】
次に、図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等を有する。
【0040】
CPU10は、光ディスク4に記憶されたプログラムに基づいて情報処理を行う。
【0041】
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に読み出したデータを書き込む。
【0042】
また、システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、DSP(Digital Signal Processor)33、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31〜35は、内部バスによって互いに接続される。
【0043】
GPU32は、ゲーム装置3における描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。より具体的には、GPU32は、当該グラフィクスコマンドに従って3Dグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる3D座標から2D座標への座標変換などの処理や、テクスチャマッピング(ピクセル単位で、ポリゴンの色とテクスチャの色を合成して最終的な色をピクセル単位で出力する処理)などの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。
【0044】
より具体的には、GPU32の機能としてラスタライズを一例にとれば、いわゆる透視変換処理などの処理を受けた頂点単位(ポリゴン単位)のデータが得られた際に、GPU32は、ポリゴンを構成する三角形の各辺を(そのデータに含まれる)頂点から計算し(「トライアングルセットアップ」)、計算した三角形の内部を塗りつぶす処理(DDA(Digital Differential Analyzer)としての処理)を行う。この三角形の内部を塗りつぶすための色は、三角形の各頂点が有する色情報をもとに補間された色が用いられる。
【0045】
また、ラスタライザとしてのGPU32は、三角形を塗りつぶすときのピクセル1つ1つに対して、模様となる画像(テクスチャ)の対応するピクセル(テクセルとも呼ばれる)の選び出しも行っている。例えば、GPU32は、上記のポリゴンを構成する頂点のデータがテクスチャ画像から切り抜くべき位置の情報もあわせ持つ場合に、その位置の情報からテクスチャ画像を走査して、塗りつぶすべき各ピクセルにそれぞれ対応するテクスチャ画像のピクセルの位置情報を計算する。
【0046】
VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。また、VRAM34は、フレームバッファ34aとZバッファ34bを含む。
【0047】
フレームバッファ34aは、例えば、モニタ2へ供給すべき1フレーム分の画像データを描画または蓄積しておくためのメモリである。後述のAV−IC15が所定の周期(例えば、60分の1秒の周期)でフレームバッファ34aのデータを読み出すことによって、モニタ2の画面上に三次元ゲーム画像が表示される。
【0048】
また、Zバッファ34bは、フレームバッファ34aに対応する画素(記憶位置またはアドレス)数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ34aの各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
【0049】
DSP33は、オーディオプロセッサとして機能し、内部メインメモリ35や外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0050】
また、内部メインメモリ35は、外部メインメモリ12と同様に、プログラムや各種データを記憶したり、CPU10のワーク領域またはバッファ領域などとしても用いられる。
【0051】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、AVコネクタ16を介して、読み出した画像データをモニタ2に出力するとともに、読み出した音声データをモニタ2に内蔵されるスピーカ2aに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカ2aから出力される。
【0052】
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0053】
入出力プロセッサ31は、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ31は、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール18およびアンテナ22を介して当該データをネットワークに送信する。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22、および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は、フラッシュメモリ17に記憶されたデータを読み出して利用することができる。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0054】
また、入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0055】
さらに、入出力プロセッサ31には、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ31は、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0056】
また、ゲーム装置本体5(例えば、前部主面)には、当該ゲーム装置本体5の電源ボタン24、ゲーム処理のリセットボタン25、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトボタン26等が設けられている。
【0057】
[3.ゲーム処理の概要]
[3.1.ゲーム処理の過程で設定される仮想空間の構成]
例示的な実施形態では、上述のCPU10、GPU32などが、ゲームシステム1における情報処理(画像処理を含む)を協働して行っている。以下、これらの情報処理を担うCPU10、GPU32などを、「情報処理部」と総称する。
【0058】
この例示的な実施形態において、ゲームシステム1を利用するプレイヤは、そのゲーム処理の進行に従いゲームシステム1の入力装置(例えば、コントローラ7)を操作することで、仮想オブジェクト(例えば、プレイヤキャラクタP1)を仮想空間内で移動させ得る。このとき、ゲームシステム1は、プレイヤキャラクタP1のモデルが配置されたワールド座標系に基づく情報を、仮想空間における特定の視点から捉えた座標系に変換(透視変換処理)を行い、ゲームシステム1の表示領域(例えば、モニタ2)を介してユーザに仮想空間で進行するイベントを逐次的に表示する。
【0059】
このとき、ゲーム進行に沿った画像処理の過程において、仮想空間を捉える視点(透視変換処理に用いられる視点。以下、仮想カメラと称する)は、プレイヤキャラクタ(例えば、仮想オブジェクトP1)の仮想空間での位置(ワールド座標系)に基づく視点(以下、「一人称視点」と呼ぶ)ではなく、当該一人称視点以外の視点(以下、「三人称視点」と呼ぶ)が採用されている。
【0060】
ゲームシステム1は、複数のプレイヤキャラクタ(例えば、プレイヤキャラクタP1からP4まで)の全てが、モニタ2に表示される画像でその位置を視認できるように、仮想カメラの位置を調整して当該画像を生成し、表示する。
【0061】
しかし、複数の仮想オブジェクト、特に、プレイヤキャラクタに加え、プレイヤキャラクタ以外の仮想オブジェクト(以下、非プレイヤキャラクタと総称する)が仮想空間に存在している場合、仮想カメラとプレイヤキャラクタのいずれかとの間に、非プレイヤキャラクタが位置づけられる場合が存在する。なお、この非プレイヤキャラクタは、ゲーム処理の進行上、例えば、プレイヤキャラクタの敵を示すオブジェクト(敵オブジェクト)として機能し得る。
【0062】
この条件下では、非プレイヤキャラクタが、そのサイズおよび形状によっては、仮想カメラからプレイヤキャラクタへむけた視界を妨げ得る場合がある。
【0063】
本実施形態に係るゲームシステム1は、このような場合においても、プレイヤキャラクタが非プレイヤキャラクタの陰でどの位置を占め、そして、非プレイヤキャラクタがそのプレイヤキャラクタに対してどのような形状の部位を向けているかを把握することができる画像を生成し得る。
【0064】
以下、添付の図面を参照しつつ、このことを説明する。
【0065】
図3は、仮想空間に配置された複数のオブジェクトと、それらを含む画像を生成するために設定された概念上のカメラ(仮想カメラ)の配置を模式的に示した図である。
【0066】
具体的には、複数のプレイヤキャラクタP1からP4まで、および非プレイヤキャラクタQ1が、仮想空間内の所定面(以下、フィールドと称する)に配置されている。そして、フィールドに対して斜めから見下ろす位置に仮想カメラAが設定されている。仮想カメラAは、透視変換処理を行うための各種パラメータ(例えば、レンズの画角を表現するパラメータなど)が、ゲームシステム1により設定されている。
【0067】
なお、説明を簡潔にするために、上述のフィールドを平面としているが、この形状についても、例示したものに限定する意図はなく、複数のオブジェクトが配置され得るものであれば、どのような曲面であってもよい。また、配置された仮想オブジェクトの種類・数を上述のものにとしたが、この設定に限定する意図はなく、他の設定でもよい。さらに、図3では、それぞれの仮想オブジェクトを単純化した形状(円柱など)で示しているが、この形状についても、例示したものに限定する意図はなく、より複雑な形状(例えば、人間型の仮想オブジェクト)であってもよい。
【0068】
ゲームシステム1を利用する複数の(本例では、4人の)プレイヤの各々は、操作可能なプレイヤキャラクタ(本例では、プレイヤキャラクタP1からP4まで)のうち1つずつが割り当てられる。そして、各プレイヤは、各人が有するコントローラ7を操作することとで、割り当てられたプレイヤキャラクタの動作をフィールド内で制御することが可能である。
【0069】
ゲームシステム1は、これらの仮想オブジェクを含む仮想空間を表したモニタ2に描画するための画像(表示画像)を、仮想カメラAの設定にしたがって生成する。図3では、プレイヤキャラクタP1〜P4と、非プレイヤキャラクタQ1とも、仮想カメラAは、ワールド座標系に配置される。そして、ゲームシステム1は、プレイヤキャラクタP1からP4が表示画像内に収るように、それらが所定の範囲内で移動するようにしている。具体的には、プレイヤキャラクタP1〜P4および非プレイヤキャラクタQ1は、例えば、仮想カメラAについて設定される仮想カメラ座標系に従った「視錐台」に含まれるように配置される。ワールド座標系と、仮想カメラ座標系とは適当な座標変換で相互に変換可能である。
【0070】
この視錐台は、仮想カメラ座標系のZ座標で指定されるニアクリップ面とファークリップ面との間の距離と視野(FOV)で定義される。なお、図3では、これらのクリップ面等は、省略している。
【0071】
[3.2.例示的な画像処理の説明]
非プレイヤキャラクタQ1が、プレイヤキャラクタP1よりもニアクリップ面側に配置され、プレイヤキャラクタP1の一部または全部を仮想カメラAから遮る位置に置かれる場合がある。
【0072】
従来は、この条件のもと、透視変換処理をおこなった場合、例えば、モニタ2に表示される画像において、プレイヤは、手前に表示される非プレイヤキャラクタの存在のために、プレイヤキャラクタP1を把握することができない。また、仮に位置が把握できたとしても、その画像では、非プレイヤキャラクタQ1の陰になった部位の形状までは把握できていなかった。
【0073】
本実施形態のゲームシステム1では、この問題を解決するために次のような処理が行われる。この処理を、図4A以降の図を参照しつつ説明する。
【0074】
図4Aは、図3で例示された配置において、非プレイヤキャラクタQ1と、プレイヤキャラクタP1とを含む領域を拡大した模式図である。この例では、非プレイヤキャラクタQ1を示すモデルは、概ね六角柱の仮想オブジェクトであり、その側面に突起部を有している。この配置においては、当該突起部は、プレイヤキャラクタP1の方向に延びているなお、後述するが、非プレイヤキャラタQ1は、それを示すためのモデルとして別のモデルも有しており、ゲームシステム1においてその二つモデルの集合を、非プレイヤキャラクタQ1を示すためのモデルとして取り扱う。
【0075】
図4Bは、図4Aで示された仮想オブジェクトの外形についての理解を助けるために示した、ワイヤーフレームモデルの模式図である。この図4Bは、図4Aで例示した仮想オブジェクトの位置関係・形状についての説明を容易にするために便宜的に示した図であって、表示画像としての例ではない。
【0076】
ゲームシステム1では、三人称視点、具体的には、フィールドを仮想カメラAから見下ろすような透視変換用の視点が設定されている。便宜的に、図4Aの矢印で示した方向で、この2つの仮想オブジェクトが仮想カメラAから観察される三人称視点が設定されている場合について説明する。
【0077】
この三人称視点に従いレンダリングされると、図4Cに示されるように、プレイヤキャラクタP1が、非プレイヤキャラクタQ1に隠れるように表示用画像が生成される。図4Cは、図4Aの矢印で示した方向で、この2つの仮想オブジェクトが仮想カメラAから観察されるときに、仮想カメラAから見た非プレイヤキャラクタQ1およびそれに隠れて視認できていないプレイヤキャラクタP1の様子を模式的に示した図である。なお、仮に、この位置関係で、非プレイヤキャラクタQ1を半透明で表示したとしても、非プレイヤキャラクタQ1の外形における突起部側の形状は、把握しにくい。
【0078】
図4Dは、図4Cで示された仮想オブジェクトの外形についての理解を助けるために示した、当該仮想オブジェクトの外形に対応するワイヤーフレームモデルの模式図である。この図4Dは、図4Cで例示した仮想オブジェクトの位置関係・形状についての説明を容易にするために便宜的に示した図であって、表示画像としての例ではない。
【0079】
図5は、この位置関係に2つの仮想オブジェクトが配置されている場合に、非プレイヤキャラクタQ1に対して施される画像処理を説明するための模試図である。
【0080】
ここで説明する画像処理は、プレイヤキャラクタP1のようなプレイヤキャラキャラクタが、非プレイヤキャラクタQ1によって視認が遮られる位置関係(以下、遮蔽関係とする)にある場合の画像処理である。
【0081】
非プレイヤキャラクタQ1のモデルは、通常は不透明色でレンダリングされる、ほぼ六角柱の構造体に対応するオブジェクトを示すモデル(以下、便宜的に、部分オブジェクト1という)と、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられたオブジェクトを示すモデル(以下、便宜的に、部分オブジェクト2という)との集合として定義づけられている。
【0082】
ゲーム処理過程で、プレイヤが通常、視認する非プレイヤキャラクタQ1を示すモデルは、図4Aに模式的に記載されるように、六角柱の1つの側面に突起部分を有する構造体のモデル、すなわち、部分オブジェクト1である。
【0083】
遮蔽関係にない場合、非プレイヤキャラクタQ1としてのこの構造体は、不透明色でレンダリングされ、その外観を示す画像が生成される(図5左上図)。このため、仮想カメラAから捉えられた画像(モニタ2に最終的に示される透視変換処理後の表示画像)では、その構造体が有する各面は不透明であり、仮想空間内でその構造体のファークリップ面側のシーンは、その構造体により遮蔽される。なお、図5左上図には、遮蔽されているプレイヤキャラクタ、また、非プレイヤキャラクタの陰面の線を破線にて示しているが、この破線は、理解を助けるために便宜的に示したものであり、不透明色でレンダリングされた際に実際に表示されるものではない。
【0084】
プレイヤキャラクタP1と非プレイヤキャラクタQ1との相対的な位置関係は、ゲームの進行、プレイヤによる入力操作に依存して、経時的に変化する。
【0085】
この一連の変化の過程で、プレイヤキャラクタP1と非プレイヤキャラクタQ1との位置関係が、上述の遮蔽関係となった場合(例えば、図3に例示される場合)には、非プレイヤキャラクタQ1に対する所定の画像処理が行われる。
【0086】
この画像処理によって、プレイヤは自己が操作するプレイヤキャラクタP1の位置、また、そのプレイヤキャラクタP1が仮想空間内で対向する非プレイヤキャラクタQ1の形状の把握が容易なものとなる。
【0087】
この遮蔽関係が成立するか否かについての具体的な判定は、例えば、仮想カメラAからプレイヤキャラクタP1への視線にそったレイが、非プレイヤキャラクタQ1と交差するか否かを判定(交差判定)すればよい。このような判定の結果により、レイが非プレイヤキャラクタQ1に交差するとされたときに、ゲームシステム1は、遮蔽関係が成立するものと判定し得る。なお、後述するように、この遮蔽判定の方法は、この例に限られない。
【0088】
遮蔽関係が成立している場合、部分オブジェクト1は、半透明な仮想オブジェクトとしてレンダリングされる。すなわち、部分オブジェクト1について予め設定されているかまたは動的に設定された(半透明状態に対応する)アルファ値を取るようにレンダリングすることによって、ゲームシステム1は、半透明な部分オブジェクト1のモデルに対応した画像を生成する。半透明な部分オブジェクト1は、その部分オブジェクト1よりもファークリップ面側に位置づけられた仮想オブジェクト(例えば、プレイヤキャラクタP1)等を透過させてプレイヤに視認させ得る。なお、半透明のモデルよりも奥(ファークリップ面側)に位置づけられるモデルは、描画の際にはデプステストが実施されて、手前(ニアクリップ面側)に存在する半透明モデルよりも先に描画される。
【0089】
さらに、遮蔽関係が成立している場合、非プレイヤキャラクタQ1の部分オブジェクト2のうち所定の条件を満たす部分のみが、最終的にモニタ2に表示される画像において表現される。
【0090】
この部分オブジェクト2は、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられた仮想オブジェクトである(図5右上図)。なお、図5右上図には、理解を助けるために、プレイヤキャラクタの位置を破線にて示している。具体的には、この部分オブジェクト2は、例えば、部分オブジェクト1と形状において実質的に同じポリゴンモデルに対して稜線(面と面との境界)の近傍部分以外は透明となるテクスチャをマッピングしたモデルとして規定することが可能である。図5右上図では、このようにして得られた部分オブジェクト2を模式的に示した(その特徴の理解しやすさを考慮して、背景を便宜的に暗くしている)。
【0091】
上述の満たされるべき所定条件とは、例えば、次のような条件である。この条件は、仮想カメラAに設定されている仮想カメラ座標系(X軸、Y軸、Z軸の3軸から構成される直交座標系;図1を参照)の原点(視点)から部分オブジェクト2を構成するポリゴンkに向けた視線ベクトルekと、部分オブジェクト2を構成する各ポリゴンに規定される法線ベクトルnkとの関係性により規定される(k=1,2,3,・・・・;kは、モデルを構成するポリゴンを識別するための例示的な番号である。)。図6Aなどを参照して、この関係性を説明する。
【0092】
図6Aは、非プレイヤキャラクタQ1のモデルを構成するポリゴンkに規定された、法線ベクトルnkを示す模式図ある。このポリゴンを規定する頂点で規定された面に垂直な法線ベクトルnkが、規定されている。ここで、ゲームシステム1で用いられるプリミティブ図形の一例として、ポリゴン(三角形のポリゴン)を示した。しかし、利用可能なプリミティブ図形は、このポリゴンの例に限られない。代表的には、このポリゴンを構成している頂点の指定の順序を反時計回りとして規定された面を表として、その面に直交するベクトルとして、法線ベクトルekが指定されるが、この例に限られない。
【0093】
図6Bは、ベクトルekと任意の法線ベクトルnkとのなす角度θを模式的示した図である。この角度θは、ベクトルekとnkとの内積(ek,nk)により次のように定義づけられる。
(ek,nk)=|ek||nk|cosθ;
【0094】
ゲームシステム1の情報処理部は、この内積値に応じて部分オブジェクト2を構成するポリゴンをモニタ2に表示する対象とするか否かを決定し得る。ここで、両ベクトルとも、正規化しておくと、上述の内積値は、−1.0から1.0までの値をとる。よって、内積値(またはその符号)を評価することで、そのポリゴンの表裏を決定することが可能である。
【0095】
ここで、この部分オブジェクト2が、部分オブジェクト1と形状において実質的に同じポリゴンモデルに対して稜線の近傍部分以外は透明となるテクスチャをマッピングしたモデルである場合について説明する。
【0096】
この場合、部分オブジェクト1を構成している各々のポリゴンに規定された法線ベクトルの向きと、それに対応する位置にある部分オブジェクト2を構成しているポリゴンに規定されて法線ベクトルの向きは、同じである。
【0097】
そして、部分オブジェクト2は、部分オブジェククト1では隠面として評価され得る面に相当する部分を表示するように描画される。プレイヤキャラクタP1が、非プレイヤキャラクタQ1の奥に位置づけられ、仮想カメラAからみて隠れた状態にあるときに、プレイヤキャラクタP1が対向している部分オブジェクト2の面を含む面が表示されるように描画される。すなわち、ゲームシステム1は、部分オブジェクト2のモデルのポリゴンにおいては、表示対象とするポリゴンが有すべき内積値の符号を部分オブジェクト1とは逆に設定して、部分オブジェクト2の描画を行うことができる。そして、部分オブジェククト1と、部分オブジェクト2とはデプステストを考慮した上でほぼ重ね合わされて描画される。これにより、プレイヤは、非プレイヤキャラクタQ1の奥に隠れたプレイヤキャラクタP1の位置を把握し、その非プレイヤキャラクタQ1の裏側の形状(プレイヤキャラクタP1側の形状)をも把握することが可能である。
【0098】
非プレイヤキャラクタQ1の表示される部分とされない部分との区別の方法について、さらに詳細に説明する。
【0099】
図4Dは、非プレイヤキャラクタQ1の部分オブジェクト1(図4C参照)の稜線部分を抜き出したワイヤーフレームと、その奥に配置されるプレイヤキャラクタP1を模式的に示した図である。この非プレイヤキャラクタQ1における、ファークリップ面側の一側面(側面β1とする)上の稜線A1−B1に着目する。また、このA1−B1と平行な稜線のうち、稜線A1−B1を含む面と対向する側面(側面β2とする)上にある稜線を、稜線A2−B2とする。
【0100】
この位置関係では、側面β1上のポリゴンに設定された法線ベクトルと、側面β2上のポリゴンに設定された法線ベクトルとがなす角度は、πである。したがって、側面β1上のポリゴンkに規定される法線ベクトルnkと、ベクトルekとが仮に同じ方向に向いていれば、その内積値は、正である。かつ、このとき、側面β2上のポリゴンmに規定される法線ベクトルnmとベクトルemとの内積値は、負となる。そして、仮に、部分オブジェクト2のポリゴンのうち、内積値が正のポリゴンのみを表示すると規定しておくと、稜線A1−B1に対応するポリゴンは表示されるが、稜線A1−B2に対応するポリゴンは表示されないものとなる。
【0101】
したがって、図5の例でいえば、その右上に示されている部分オブジェクト2のうち、稜線A1−B1に対応する部分は表示されるが、稜線A2−B2に対応する部分は表示されない。非プレイヤキャラクタQ2を示すモデルは、部分オブジェクト1と部分オブジェクト2との集合として規定されるので、最終的なモデルの表示態様は、図5の下段に示したようになる。なお、説明の簡略化のため、図5の下段では、部分オブジェクト2のうち上述の2稜線以外の部分については、省略している。
【0102】
上述のように、ゲームの進行に沿って変化する非プレイヤキャラクタQ1との位置関係が所定の条件を満たした場合(例えば、遮蔽関係となった場合)、ゲームシステム1は、その非プレイヤキャラクタQ1の部分オブジェクト1に対して透過処理を行う。かつ、ゲームシステム1は、三人称視点の視点から見て隠れた部分の形状を示す部分オブジェクト2のポリゴンのみを(例えば、視線ベクトルとのポリゴンが有する法線ベクトルとの内積値で判定することで)表示対象とする。
【0103】
そして、ゲームシステム1は、透過処理を施した部分オブジェクト1のモデルと、そのモデルの形状と対応づけられた部分オブジェクト2のうち表示対象として判定された部分とを重畳的に表示した画像を生成する。
【0104】
なお、図6Cに、部分オブジェクト2の別例を示した。具体的には、図6Cの上段のような外形(部分オブジェクト1の形状に対応する)を有する非プレイヤキャラクタに設定される、部分オブジェクト(部分オブジェクト2に対応するもの;以下、部分オブジェクト2’)を図6Cの下段に示した。
【0105】
部分オブジェクト2’は、三人称視点から観察した、外側に凸形状を有する仮想オブジェクト(上段)に生成された、その視点から見えていない裏面の稜線に対応する部分オブジェクトである。
【0106】
上述の画像処理では、非プレイヤキャラクタQ1によってプレイヤキャラクタの視認が妨げられる場合に、非プレイヤキャラクタQ1側において施される処理について説明した。以下では、同様の課題を解決するめに、プレイヤキャラクタ側において所定の処理を実施する方法を説明する。
【0107】
この処理は、上述した非プレイヤキャラクタ側において施される処理と併用しても、また、その処理とは別に単独で用いられてもよい。
【0108】
以下、図3で示されように、プレイヤキャラクタP1が非プレイヤキャラクタQ1よりもファークリップ面側に位置づけられて、仮想カメラAから見た際にその視認が妨げられる場合を例に説明する。
【0109】
ゲームシステム1は、プレイヤキャラクタP1が非プレイヤキャラクタQ1の陰となる位置関係になると判定した際に次のような処理を行う。
【0110】
上述のように、仮想空間に配置されたプレイヤキャラクタ、非プレイヤキャラクタの各々は、所定の属性を有するモデルが割り当てられている。そのモデル同士がめり込まない位置関係で、移動するため、モデルが互いを排除するための空間を規定する場合がある。
【0111】
本実施形態では、プレイヤキャラクタP1が非プレイヤキャラクタQ1よりもファークリップ面側に位置づけられて、仮想カメラAから見て遮蔽されていると判定した場合、上述した互いを排除するための空間をゲームシステム1が以下に説明するように制御することによって、ゲーム処理の過程でプレイヤがプレイヤキャラクタP1をより把握しやすい状況を提供する。
【0112】
図7Aおよび図7Bを参照して説明する。
【0113】
図7Aは、プレイヤキャラクタP1と、非プレイヤキャラクタQ1との間でおこなわれる、遮蔽関係の有無を判定する処理を模式的に示した図である。
【0114】
ゲームシステム1の情報処理部は、プレイヤキャラクタP1と非プレイヤキャラクタQ1との位置関係が遮蔽関係になっているか否かを判定する。この判定は、仮想カメラAからプレイヤキャラクタP1へレイを飛ばして、そのレイが非プレイヤキャラクタQ1と交差するか否かよって判定し得る(交差判定)。
【0115】
図7Aにおいて、半球C1は、プレイヤキャラクタP1に設定された、(オブジェクト間の)当たり判定の際の自己の領域を規定する半球である。この半球C1は、プレイヤキャラクタP1において他オブジェクトが入り込むことを排除するために規定される。なお、半球C1によって定義した領域は、別の任意の形状の領域であってもよい。
【0116】
他方、点線B1は、非プレイヤキャラクタQ1の上述の交差判定時における位置およびその外形の一部を模式的に示している。この例では、非プレイヤキャラクタQ1の突起部が、プレイヤキャラクタP1の方向に向いている。
【0117】
交差判定において、レイV1が(点線B1の位置にある)非プレイヤキャラクタQ1に交差したと判定された場合を、図7Aは例示する。この判定に基づいて、情報処理部は、上述の半球C1を、半球C2の大きさまで拡大する。そして、情報処理部は、この半球C2に基づいて、非プレイヤキャラクタQ1との当たり判定を行う。このとき、点線B1による外形線で示されるように、非プレイヤキャラクタQ1は、半球C2の内側に入り込んでいるので、この当たり判定では、プレイヤキャラクタP1と非プレイヤキャラクタQ1との位置関係は許容されないものとしてゲームシステム1は判定する。この判定の結果、ゲームシステム1は、例えば、点線B2で示される位置まで非キャラクタオブジェクトQ1を移動させるか、または、その移動の結果と同様の相対的な位置関係となるように、プレイヤキャラクタP1を移動させることによって、ゲームシステム1は、これら2つの仮想オブジェクト間の距離を大きくする。
【0118】
なお、その後、ゲーム進行の過程で、プレイヤキャラクタP1と非プレイヤキャラクタQ1との相対的な位置関係が変化する際に、その時点の交差判定の結果に応じて、仮想オブジェクト間の当たり判定用のプレイヤキャラクタの半球のサイズを、ゲームシステム1の情報処理部が動的に制御する。すなわち、レイによる交差判定により、遮蔽関係がないものと判定された場合は、ゲームシステム1は、当たり判定に利用する半球として、半球C1が再設定される。
【0119】
これによって、プレイヤキャラクタP1が、それよりもサイズが大きい非プレイヤキャラクタQ1の突起部の下にまで深く入り込み、ゲーム処理の過程で継続的にプレイヤキャラクタP1が非プレイヤキャラクタQ1の陰に隠れて視認できない状況を回避し得る。また、動的に半球の設定を変更することによって、遮蔽関係がない場合には、仮想オブジェクト同士が可動し得る領域をより広く保つことが出来る。
【0120】
なお、ゲームシステム1が、プレイヤキャラクタP1と、他プレイヤキャラクタ(例えば、P2)と当たり判定を行うときは、非プレイヤキャラクタQ1との交差判定の結果に依存させて、プレイヤキャラクタP1(または他のプレイヤキャラクタ)の当たり判定用の半球のサイズを変更させる必要はない。さらに、プレイヤキャラクタP1を中心にする半球の制御の代わりに、プレイヤキャラクタP1の位置を基準に規定される仮想空間内の半球以外の別の形状の領域を制御してもよい。
【0121】
図7Bを参照して、レイによる交差判定を用いない場合について説明する。この交差判定に代えて、プレイヤキャラクタP1または非プレイヤキャラクタQ1の位置を基準に規定される領域に、その基準となったオブジェクトの相手が、その領域に入ったか否かで判定して決定してもよい。図7Bは、図7Aの変形例を示す模式図である。例えば、図7Bに示されているように、非プレイヤキャラクタQ1の位置を基準(図7Bに示された十字記号が、非プレイヤキャラクタQ1の位置を示す)にして規定される領域(十字記号から画面奥方向へ向かった所定範囲:図中の領域R11)に、プレイヤキャラクタP1が進入した時点で、半球を拡大状態(半球C2)とし、また、その領域から出た時点で通常の半球(半球C1)に戻すような処理が行われる。
【0122】
[4.ゲーム処理の詳細]
次に、ゲームシステム1において実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図8は、ゲーム処理において用いられる各種データ(プログラムを含む)を示す図である。図8において、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図8に示すように、ゲーム装置3のメインメモリには、ゲームプログラム100、コントローラ操作データ110、および処理用データ120が記憶される。なお、メインメモリには、図8に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
【0123】
ゲームプログラム100は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム100は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム100に含まれる一部(例えば、コントローラ7の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。
【0124】
コントローラ操作データ110は、コントローラ7に対するユーザの操作を表すデータであり、コントローラ7に対する操作に基づいてコントローラ7から出力(送信)される。コントローラ操作データ110は、コントローラ7から送信されてゲーム装置3において取得され、メインメモリに記憶される。コントローラ操作データ110は、角速度データ、メイン操作ボタンデータ、加速度データを含む。なお、コントローラ操作データ110は、これらのデータの他、コントローラ7の画像処理回路41によって算出される座標を示すマーカ座標データ等を含む。また、ゲーム装置3は、複数のコントローラ7から操作データを取得するため、各コントローラ7からそれぞれ送信されてくる各コントローラ操作データ110をメインメモリにそれぞれ記憶する。最新の(最後に取得された)データから所定個数のコントローラ操作データ110が、コントローラ7毎に、時系列に記憶されてもよい。
【0125】
処理用データ120は、後述するゲーム処理(メイン処理)において用いられるデータである。処理用データ120は、ゲーム処理で利用される仮想オブジェクトのデータも含む。仮想オブジェクトの各々は、モデルの形状を含むその仮想オブジェクトの属性を規定するデータの他に、ゲーム処理過程で規定される仮想空間での位置情報等も有している。
【0126】
処理用データ130は、ゲームに登場する各種オブジェクトに設定される各種パラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。
【0127】
次に、ゲーム装置3において実行されるゲーム処理の詳細を、図9Aおよび図9Bを用いて説明する。図9Aは、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図9Aに示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、ゲーム装置3においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後例えばユーザによるメニュー画面に対する選択操作によってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。
【0128】
なお、図9Aおよび図9Bに示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数や定数の値等も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、ゲームシステム1における「情報処理部」(CPU10、GPU32などの総体)が、上記フローチャートの各ステップの処理を実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、その情報処理部の一部のみで実行するようにしても、CPU10およびGPU32以外のプロセッサや専用回路が実行するようにしてもよい。
【0129】
まず、ステップ1(図中、S1。以下のステップにおいても同様に対応づけられる)において、ゲームシステム1の情報処理部は初期処理を実行する。初期処理は、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクト(例えば、プレイヤキャラクタP1からP4まで、非プレイヤキャラクタQ1など)、仮想カメラ(例えば、仮想カメラA)を初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。
【0130】
本実施形態における例示的な仮想オブジェクトとして、プレイヤキャラクタP1からP4まで、および非プレイヤキャラクタQ1の位置および姿勢が設定される。そして、それら設定に応じて、仮想カメラAが設定される。
【0131】
また、ステップ1において、各コントローラ7の初期処理が行われる。例えば、1または複数のプレイヤの各々に、コントローラ7を把持させるための画像が表示画面に示される。各コントローラ7の初期処理によって、各コントローラ7が出力し得るパラメータを含む設定変数が初期値に設定される。各コントローラ7の初期処理が完了すると、情報処理部は、ステップ2の処理を実行する。以降、ステップ2〜ステップ6の一連の処理からなる処理ループが所定時間(1フレーム時間。例えば1/60秒)に1回の割合で繰り返し実行される。
【0132】
ステップ2において、情報処理部は、複数のコントローラ7から送信されてくる操作データをそれぞれ取得する。各コントローラ7は操作データ(コントローラ操作データ)をゲーム装置3へ繰り返し送信する。ゲーム装置3においては、端末通信モジュール28が端末操作データを逐次受信し、受信された端末操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。また、コントローラ通信モジュール19が各コントローラ操作データを逐次受信し、受信された各コントローラ操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。コントローラ7とゲーム装置3との間における送受信の間隔はゲームの処理時間よりも短い方が好ましく、例えば200分の1秒である。ステップ2においては、情報処理部は、最新のコントローラ操作データ110をメインメモリから読み出す。ステップ2の次にステップ3の処理が実行される。
【0133】
ステップ3において、情報処理部はゲーム制御処理を実行する。ゲーム制御処理は、プレイヤによるゲーム操作に従ってゲームを進行させる処理である。
【0134】
具体的には、本実施形態におけるゲーム制御処理では、主に、複数のコントローラ7に対する操作に応じて、そのコントローラ毎に対応する仮想オブジェクトがそのゲームの進行に従い、その内部状態(例えば、表示態様)を逐次的に設定され、その設定に従い後続の処理が行われる。以下、図9Bを参照して、ゲーム制御処理の詳細について説明する。
【0135】
図9Bは、図9Aに示されたフローチャートのステップ3に対応する定義づけられた処理(ゲーム制御処理:ステップ101からステップ111まで)を示すフローチャートである。
【0136】
ステップ101において、情報処理部は、ゲーム制御処理の対象となる仮想オブジェクトを決定する処理を実行する。また、仮想オブジェクトに対して行う処理の種類について規定する。
【0137】
具体的には、情報処理部は、ステップ2で取得した操作情報に加え、ゲームシステム1を利用するプレイヤのそれぞれが操作するプレイヤキャラクタの数および種類、非プレイヤキャラクタの数および種類、ならびにそれらのオブジェクト間でゲーム進行上で考慮すべき相互作用の有無・内容に基づき、本ステップ以降の処理の対象とすべき仮想オブジェクトを決定する。
【0138】
図3で示された例では、仮想カメラAによる三人称視点の条件下で、複数のプレイヤが操作可能なプレイヤキャラクタP1〜P4、ならびに非プレイヤキャラクタQ1が仮想空間に配置されている設定に基づいて、情報処理部は、本ステップの処理を実行する。この非限定的な例では、4体のプレイヤキャラクタおよび1体の非プレイヤキャラクタが存在するので、4体のプレイヤキャラクタの各々と、非プレイヤキャラクタとの間で次のステップ102の判定を行うことを決定する。その後、情報処理部は、ステップ102の処理に進む。
【0139】
ステップ102において、情報処理部は、プレイヤキャラクタと非プレイヤキャラクタとの間で「遮蔽関係」が成立しているか否かを判定する処理を実行する。この処理は、ステップ101で本ステップ2における処理対象として決定された、仮想オブジェクトの仮想空間での位置情報に基づいて、「遮蔽関係」の成立の有無を判定するための計算を行う。仮想オブジェクトが複数個存在する場合は、遮蔽関係が存在し得るオブジェクト間の全てについてこの計算を、情報処理部は実行する。
【0140】
具体的には、情報処理部は、遮蔽関係が成立しているか否かの判定を次のように実行する。情報処理部は、例えば、仮想カメラAからプレイヤキャラクタP1への視線にそったレイが、非プレイヤキャラクタQ1と交差するか否かを判定(交差判定)することで当該遮蔽関係の有無の判定のための計算を実行する。このような判定の結果により、交差するとされたときに、ゲームシステム1は、プレイヤキャラクタP1と非プレイヤキャラクタQ1との間に遮蔽関係が成立すると判定し得る。その後、情報処理部は、ステップ103の処理に進む。
【0141】
ステップ103において、情報処理部は、ステップ102で行った計算結果に基づいて後続の処理を選択する処理を実行する。判定対象となっている仮想オブジェクト間で遮蔽関係が成立しているとき、情報処理部は、ステップ104の処理に進む。他方、この遮蔽関係が成立していないとき、情報処理部は、ステップ106の処理に進む。
【0142】
ステップ104において、情報処理部は、プレイヤキャラクタの当たり判定用形状を、拡大状態に設定する処理を実行する。
【0143】
具体的には、プレイヤキャラクタP1と非プレイヤキャラタQ1との間に遮蔽関係が成立しているとステップ103で判定されたときには、プレイヤキャラクタP1において設定されていた当たり判定用の半球を、その通常状態の半球C1から、その半球が有する半径よりも大きな半径を有する半球C2を有する拡大状態に設定する(図7A参照)。その後、情報処理部は、ステップ105の処理に進む。なお、自然な切り替えのために、半球C1から半球C2への拡大は、所定時間をかけて徐々に行うようにしてもよい。
【0144】
ステップ105において、情報処理部は、非プレイヤキャラクタQ1の部分オブジェクト1を半透明とすることを設定を実行する。
【0145】
具体的には、ゲーム処理の概要において説明したとおり、非プレイヤキャラクタQ1は、通常は不透明色でレンダリングされる構造体に対応するオブジェクト(部分オブジェクト1)と、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられたオブジェクト(部分オブジェクト2)との集合として定義づけられている。プレイヤキャラクタP1と非プレイヤキャラタQ1との間に遮蔽関係が成立しているとステップ103で判定されたとき、本ステップでは、非プレイヤキャラタQ1の部分オブジェクト1を、半透明とする設定を行う。
【0146】
具体的には、情報処理部は、部分オブジェクト1として規定されているポリゴンに設定されるアルファ値を、半透明となる値に設定する。例えば、アルファ値が、0.0から1.0までの値をとる場合であって、アルファ値が0.0となるときに透明とし、アルファ値が1.0となるときに不透明である場合について説明する。「半透明」の状態を、アルファ値が0.5であるとして定義づけることができる。また、このアルファ値の設定は、固定値を与えるのではなく、ゲーム処理の過程に沿って所定の値に漸近するように設定してもよい。このようなアルファ値の振り方は、例示的なものであってこの例に限られない。その後、情報処理部は、ステップ108の処理に進む。
【0147】
前述のように、ステップ103の処理において、遮蔽関係が成立していないと判定されたとき、情報処理部は、ステップ106の処理に進む。
【0148】
ステップ106において、情報処理部は、プレイヤキャラクタP1において設定されていた当たり判定用の半球を、その通常状態(半球C1)と設定する処理(または、その設定を維持する処理)を実行する。その後、情報処理部は、ステップ107の処理に進む。なお、半球C1への変化は、自然な切り替えのために、所定時間をかけて徐々に行うようにしてもよい。
【0149】
ステップ107において、情報処理部は、非プレイヤキャラクタの部分オブジェクト1を不透明とする設定を実行する。その後、情報処理部は、ステップ108の処理に進む。
【0150】
ステップ108において、情報処理部は、非プレイヤキャラクタの部分オブジェクト2のポリゴンでで規定される、内積値の計算する処理を実行する。
【0151】
具体的には、仮想カメラAに設定されている仮想カメラ座標系(X軸、Y軸、Z軸の3軸から構成される直交座標系;図1を参照)の原点(視点)から(モデルを構成する)ポリゴンkに向かう3次元ベクトルekと、ポリゴンkに規定される法線ベクトルnkとの関係性により規定される([k=1,2,3,・・・・];添え字kは、モデルを構成するポリゴンを識別するための例示的な番号である)。
【0152】
ここで、部分オブジェクト2は、上述のように、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられた仮想オブジェクトである。情報処理部は、当該オブジェクトを構成するポリゴンk毎に、3次元ベクトルekと法線ベクトルnkとの内積値を計算する。そして、情報処理部は、その計算した結果をゲームシステム1の記憶領域に保存する。この後、情報処理部は、ステップ109の処理に進む。この内積値は、後続のステップ4の(モニタ2への)表示用画像の生成の際に、用いられる。
【0153】
ステップ109において、情報処理部は、非プレイヤキャラクタQ1とプレイヤキャラクタP1との間の当たり判定を実行する。その後、情報処理部は、ステップ110の処理に進む。半球C1またはC2に基づき規定されるプレイヤキャラクタP1が占める空間と、予め設定された、非プレイヤキャラクタQ1が占める空間とが、重複した空間を占めている否かを判定する。この判定には、一般的な当たり判定の方法が利用可能である。その後、情報処理部は、当たり判定の結果をゲームシステム1の記憶領域に保存し、ステップ101の処理に進む。
【0154】
ステップ110において、情報処理部は、追加的な設定が仮想オブジェクトの画像処理のために必要である場合は、その追加的な設定を行う。例えば、情報処理部は、ステップ109の判定の結果に従って反対対象とした仮想オブジェクトの仮想空間内の位置を適宜移動して再設定し得る。その後、情報処理部は、ステップ111の処理に進む。
【0155】
ステップ111において、情報処理部は、遮蔽関係の有無を判定し、その判定にしたがって画像処理用の設定変更を必要とする他の仮想オブジェクトがさらに存在するか否かを判定する処理を実行する。この判定の結果、そのようなの他の仮想オブジェクトの存在がある場合(ステップ111,YES)、情報処理部は、ステップ102の処理に進む。そのようなの他の仮想オブジェクトの存在がない場合(ステップ111,NO)、情報処理部は、このゲーム制御処理を終了し、ステップ4の処理(図9A)に戻る。
【0156】
図9Aに戻り、後続のステップでの処理を説明する。
【0157】
ステップ4において、情報処理部は、ステップ3(図9Bのステップ101から111まで)の処理が行われた判定、設定された結果に基づいて、モニタ2に表示するための画像を生成する処理を行う。
【0158】
具体的には、情報処理部は、仮想空間に存在する仮想オブジェクトの位置、ステップ3で行われた仮想オブジェクトに対する設定に基づいて、表示用画像をレンダリングする。図3等で示してきた非限定的な例においては、情報処理部が、仮想カメラAの位置を原点とする仮想カメラ座標系を基準に、透視変換処理を行い、プレイヤキャラクタP1からP4および非プレイヤキャラクタQ1を含む画像を生成する。なお、情報処理部は、レンダリングにあっては、ピクセル単位で奥行き情報(例えば、Z値)を比較する深度テストを実行する。
【0159】
ここで、非プレイヤキャラクタQ1のファークリップ面側に位置づけられたプレイヤキャラクタP1は、その部分オブジェクト1が半透明でレンダリングされるので、遮蔽関係がそれらのオブジェクト間で成立していても、表示画像を見たプレイヤはそのプレイヤキャラクタP1の位置を把握可能である。
【0160】
また、情報処理部は、非プレイヤキャラクタの部分オブジェクト1とともに、その部分オブジェクト2のうち所定の条件を満たした部分を重畳的に表示する。この所定の条件とは、部分オブジェクト2を構成するポリゴンのうち、そのポリゴンに設定された法線ベクトルと、仮想カメラAからの視線ベクトルとの内積値をもとに規定される条件である。
【0161】
具体的には、部分オブジェクト2は、部分オブジェククト1では隠面として評価される面に相当する部分を表示するように描画される。プレイヤキャラクタP1が、非プレイヤキャラクタQ1の奥に位置づけられ、仮想カメラAからみて隠れた状態にあるときに、プレイヤキャラクタP1が対向している部分オブジェクト2の面を含む面が表示されるように描画される。すなわち、ゲームシステム1は、部分オブジェクト2のポリゴンにおいては、表示対象とするポリゴンが有すべき内積値の符号を部分オブジェクト1とは逆に設定して、部分オブジェクト2の描画を行う。
【0162】
ステップ5において、情報処理部は、ステップ4で生成された画像を、ゲームシステム1の表示部(例えば、モニタ2)に表示する。その後、情報処理部は、ステップ6の処理に進む。
【0163】
ステップ6において、情報処理部は、ゲームシステム1上で実行されているゲーム処理を終了するか否かを判定する。ゲーム処理を継続すると判定した場合(ステップ6,NO)、情報処理部は、ステップ2の処理に戻る。他方、ゲーム処理を終了すると判定した場合(ステップ6,YES)、情報処理部は、メイン処理を完了する。
【0164】
(その他)
上述した例示的な実施形態では、ゲームシステム1によってゲーム処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有するコンピュータシステムにおいて、当該複数の情報処理装置が情報処理を分担して実行するようにしてもよい。
【0165】
なお、汎用的なプラットフォームにおいて上述のゲーム処理プログラム等が使用される場合には、当該ゲーム処理プログラムが、当該プラットフォームにおいて標準的に提供されるプログラムモジュールを用いることを前提として提供されてもよい。上述のようなモジュールによって機能が補完されることを前提に、上記ゲーム処理プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的にこのゲーム処理プログラムに相当すると理解されるべきである。
【0166】
なお、上述の非プレイヤキャラクタQ1に対して実行された画像処理は、必要に応じて、プレイヤキャラクタに適用することを妨げない。
【産業上の利用可能性】
【0167】
本実施形態で例示されたゲーム処理システム等は、プレイヤがゲーム処理の過程で仮想オブジェクトの様子をより把握しやすくするために利用可能である。
【符号の説明】
【0168】
1 ゲームシステム
2 モニタ
3 ゲーム装置
4 光ディスク
5 ゲーム装置本体
7 コントローラ
10 CPU
11 システムLSI
12 外部メモリ
13 ROM/RTC
14 ディスクドライブ
15 AV−IC
17 フラッシュメモリ
19 無線コントローラモジュール
31 入出力プロセッサ
32 GPU
33 DSP
34 VRAM
35 内部メインメモリ
70 コアユニット
【技術分野】
【0001】
本明細書に開示される技術は、ゲーム処理システム、ゲーム処理方法、ゲーム処理装置およびゲーム処理プログラムに関する。具体的には、本明細書に開示される技術は、複数の仮想オブジェクトが仮想空間に配置されたシーンを描画するためのゲーム処理システム、ゲーム処理方法、ゲーム処理装置およびゲーム処理プログラムに関する。
【背景技術】
【0002】
ゲーム処理は、プレイヤキャラクタ(または、プレイヤオブジェクト)を仮想空間に配置する処理を含み得る。そして、この仮想空間内のプレイヤキャラクタの視点とは別の視点から当該仮想空間をみたシーンが描画される処理が行われる場合がある。例示的な処理としては、そのプレイヤキャラクタが配置されるフィールドを見下ろすような視点(仮想カメラ)が設定されたシーンの描画処理が挙げられる。
【0003】
フィールドに対して斜めから見下ろす視点が設定されたシーンを描画する処理の場合、プレイヤキャラクタと視点(仮想カメラ)との間に別のオブジェクト(例えば、敵キャラクタ)が配置される状況が存在する。このような状況を描画したシーンでは、敵キャラクタが、視点からプレイヤキャラクタを見た際の視界を妨げるため、プレイヤはそのプレイヤキャラクタが存在する位置を把握できない。
【0004】
従来、このような場合、例えば、プレイヤキャラクタの位置を示すための表現手法として、敵キャラクタの表示を半透明とする処理、プレイヤキャラクタの位置を示す目的でシルエットを表示する処理が利用されてきた(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2003−290550号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上述のような表示処理がなされた場合では、プレイヤキャラクタへの視界を妨げている敵キャラクタが、3次元仮想空間内でプレイヤキャラタに対してどのような形状の面を向けているかは、ユーザにとって把握しにくいものであった。
【0007】
このような把握しにくさは、ゲームの遊びやすさを損なうものであった。ゲームの遊びやすさを損なわないゲームシステム等を提供することが、1つの課題である。
【0008】
特に、プレイヤキャラクタが複数であって、さらに、他の仮想オブジェクトが存在する場合のような表示における拘束条件が多い場合には、ゲーム進行上、重要な仮想オブジェクトとプレイヤキャラクタの関係性を容易に把握させることは、1つの課題であった。
【課題を解決するための手段】
【0009】
本明細書では、上述のような課題を解決するための例示的な実施形態として以下のような技術について記載する。
【0010】
例示的な態様として、仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムが提供される。このゲームシステムは、オブジェクト配置部と、ゲーム処理部と、描画処理部とを備える。
【0011】
ここで、上述のオブジェクト配置部は、第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを上記オブジェクトとして上記仮想空間に配置する。さらに、ゲーム処理部は、ゲーム処理を行う。また、透明処理部は、上記ゲーム処理において所定の条件が満たされたとき、上記オブジェクトの第1の部分の透明度を上げる。そして、描画処理部は、設定された透明度に基づいて上記第1の部分を描画し、上記第2の部分のポリゴンを描画する。
【0012】
一実施形態として、上述のゲームシステムの第1の部分は、上記第2の部分を含み得る。
【0013】
この実施形態において、上述のゲームシステムの第2の部分は、上記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルであり得る。
【0014】
種々の実施形態において、上述のゲームシステムの第2の部分の透明度は、上記条件にかかわらず一定であり得る。
【0015】
この実施形態において、上記第2の部分は、常に不透明であり得る。
【0016】
種々の実施形態において、上述のゲームシステムにおけるゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み得る。かつ、上記透明処理部は、上記プレイヤキャラクタと、上記オブジェクトの相対的な位置関係に基づいて、上記オブジェクトの第1の部分の透明度を上げ得る。
【0017】
この実施形態において、上記オブジェクトが、上記プレイヤキャラクタの一部または全部を、上記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、上記透明処理部は上記第1の部分のオブジェクトの透明度を上げ得る。
【0018】
上述した実施形態において、上記プレイヤキャラクタが、上記オブジェクトに近づいたときに、上記透明処理部は上記オブジェクトの透明度を上げ得る。
【0019】
上述した実施形態において、上述のゲームシステムにおける操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理であってもよい。
【0020】
また、別の態様において、仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理システムが提供される。この画像処理システムは、オブジェクト配置部と、描画処理部とを備える。
【0021】
ここで、上述のオブジェクト配置部は、第1の部分および第2の部分を含むポリゴンモデルを上記オブジェクトとして上記仮想空間に配置する。また、透明処理部は、上記オブジェクトの第1の部分を半透明にする。そして、描画処理部は、設定された透明度に基づいて上記第1の部分を描画し、上記第1の部分のポリゴンの法線ベクトルに基づき隠面として判定され得る面に対応する上記第2の部分のポリゴンを描画する。
【0022】
なお、本明細書において使用される場合、「透明度」とは、ゲームシステムにおいて描画される画像に表現されたオブジェクトが透明な状態を示すように設定されたパラメータである。したがって、描画対象の「透明度」を「上げる」との表現は、描画された結果としてその対象が透明であるとの態様を増強することを示す。したがって、その透明度に対応するものとして導入されたパラメータの値自体が、大きくなることを必ずしも示さなくともよい。例えば、アルファ値が、0.0から1.0までの値をとる場合であって、アルファ値が0.0となるときに「透明」とし、アルファ値が1.0となるときに「不透明」である定義される場合もあり得る。
【0023】
また、本明細書において使用される場合、「システム」(例えば、画像処理システム、ゲームシステム、情報処理システム)との用語は、1つの装置で構成されてもよく、また、複数の装置であって、その各々の装置が他の装置のいずれかと(無線または有線により)通信可能であるものであってもよい。
【0024】
別の態様において、上述のゲーム処理システム(ゲームシステム)は、1台のゲーム処理装置として提供され得る。また、さらに別の態様において、そのゲーム処理システムにおける画像処理を実行するためのゲーム処理プログラムが、1つの実装態様として提供されてもよい。また、例示的な実施形態として、上述のようなプログラム、装置、システムとして実装され得る、方法が提供される。
【0025】
なお、本明細書で使用される場合、「コンピュータ読み取り可能な記憶媒体」との用語は、プログラム、コードおよび/またはデータをコンピュータシステムによって使用するために記憶することが可能な、任意の装置または媒体をいう。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムによって読み取りが可能である限りにおいて、揮発性であっても、不揮発性であってもよい。コンピュータ読み取り可能な記憶媒体としては、例えば、磁気テープ、ハードディスクドライブ(HDD)、コンパクトディスク(CD)、デジタルバーサタイルディスク(DVD)、ブルーレイディスク(BD)、半導体メモリなどが挙げられるが、これらに限られない。
【発明の効果】
【0026】
本実施形態で例示されたゲーム処理システム等によって、プレイヤがゲーム処理の過程で仮想オブジェクトの様子をより把握しやすいものとなった。
【図面の簡単な説明】
【0027】
【図1】例示的な実施形態に係るゲームシステム1を示す外観図
【図2】図1のゲーム装置本体5の一例を示すブロック図
【図3】仮想空間に配置された複数のオブジェクトとそれらを含む画像を生成するために設定された仮想カメラの位置を模式的に示した図
【図4A】図3で例示された配置において、非プレイヤキャラクタQ1と、プレイヤキャラクタP1とを含む領域を拡大した模式図
【図4B】図4Aで示された仮想オブジェクトの外形についての理解を助けるために示した、当該仮想オブジェクトの外形に対応するワイヤーフレームモデルの模式図
【図4C】図4Aの矢印で示した方向で、この2つの仮想オブジェクトが仮想カメラAから観察されるときに、仮想カメラAから見た非プレイヤキャラクタQ1およびその陰に隠れて視認できていないプレイヤキャラクタP1の様子を模式的に示した図
【図4D】図4Cで示された仮想オブジェクトの外形についての理解を助けるために示した、当該仮想オブジェクトの外形に対応するワイヤーフレームモデルの模式図
【図5】非プレイヤキャラクタQ1の施される画像処理を説明するための模式図
【図6A】非プレイヤキャラクタQ1の部分オブジェクト2を構成するポリゴンkに規定された、法線ベクトルnkを示す模式図
【図6B】ベクトルekと任意の法線ベクトルnkとのなす角度θを模式的示した図
【図6C】部分オブジェクト2の別例を示す図
【図7A】プレイヤキャラクタP1と、非プレイヤキャラクタQ1との間でおこなわれる、遮蔽関係の有無を判定する処理を模式的に示した図
【図7B】図7Aの変形例を示す模式図
【図8】ゲーム処理において用いられる各種データを示す図
【図9A】ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャート
【図9B】図9Aに示されたフローチャートのステップ3に対応する定義づけられた処理(ゲーム制御処理)を示すフローチャート
【発明を実施するための形態】
【0028】
[1.ゲームシステムの構成]
図1を参照して、この例示的な実施形態に係るゲーム処理システムについて説明する。以下、説明を具体的にするために、当該ゲーム処理システムとして、据置型のゲーム装置本体5を含むゲームシステム1を用いて説明する。
【0029】
図1は、据置型のゲーム装置3を含むゲームシステム1の一例を示す外観図である。また、図2は、ゲーム装置本体5の一例を示すブロック図である。なお、本明細書に添付の図面は、例示的な実施形態を説明するためのものであり、本明細書において説明しようとする技術的思想を、その図面に記載される具体的な態様に限定することを意図するものではない。
【0030】
図1において、ゲームシステム1は、表示装置の一例である家庭用テレビジョン受像機2(以下、モニタ2と記載する)と、当該モニタ2に接続コードを介して接続する据置型のゲーム装置3とから構成される。モニタ2は、ゲーム装置3から出力された音声信号を音声出力するためのスピーカ2aを備える。
【0031】
また、ゲーム装置3は、各種プログラムおよび各種データを記録した光ディスク4と、当該光ディスク4のプログラムを実行してゲーム用画像をモニタ2に表示出力させるためのコンピュータを搭載したゲーム装置本体5と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体5に与えるためのコントローラ7とを備えている。なお、図1には、複数個のコントローラ7を例示的に示している。
【0032】
また、ゲーム装置本体5は、無線コントローラモジュール19(図2参照)を内蔵する。無線コントローラモジュール19は、コントローラ7から無線送信されるデータを受信し、ゲーム装置本体5からコントローラ7へデータを送信して、コントローラ7とゲーム装置本体5とを無線通信によって接続する。さらに、ゲーム装置本体5には、当該ゲーム装置本体5に対して交換可能に用いられる情報記憶媒体の一例の光ディスク4が脱着される。
【0033】
また、ゲーム装置本体5には、セーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ17(図2参照)が搭載される。ゲーム装置本体5は、光ディスク4に記憶されたプログラムを実行することによって、その結果をゲーム画像としてモニタ2に表示する。また、プログラムは、光ディスク4に限らず、フラッシュメモリ17にあらかじめ記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体5は、フラッシュメモリ17に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ2に表示することもできる。そして、ゲーム装置3のユーザは、モニタ2に表示されたゲーム画像を見ながら、コントローラ7を操作することによって、ゲーム進行を楽しむことができる。
【0034】
コントローラ7は、無線コントローラモジュール19を内蔵するゲーム装置本体5へ、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて操作情報等の送信データを無線送信する。
【0035】
コントローラ7は、コアユニット70を備えている。コアユニット70は、主にモニタ2の表示画面に表示されるオブジェクト等を操作するための操作手段である。
【0036】
コアユニット70は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン(十字キーやスティック等を含む)とが設けられている。また、後述により明らかとなるが、コアユニット70は、当該コアユニット70から見た画像を撮像する撮像情報演算部74を備えている。また、撮像情報演算部74の撮像対象の一例として、モニタ2の表示画面近傍に2つのLEDモジュール(以下、マーカと記載する)8Lおよび8Rが設置される。これらマーカ8Lおよび8Rは、それぞれモニタ2の前方に向かって例えば赤外光を出力する。
【0037】
また、コントローラ7(例えば、コアユニット70)は、ゲーム装置本体5の無線コントローラモジュール19から無線送信された送信データを通信部75で受信して、当該送信データに応じた音や振動を発生させることもできる。
【0038】
[2.ゲーム装置本体の内部構成]
【0039】
次に、図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等を有する。
【0040】
CPU10は、光ディスク4に記憶されたプログラムに基づいて情報処理を行う。
【0041】
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に読み出したデータを書き込む。
【0042】
また、システムLSI11には、入出力プロセッサ31、GPU(Graphics Processor Unit)32、DSP(Digital Signal Processor)33、VRAM(Video RAM)34、および内部メインメモリ35が設けられる。図示は省略するが、これらの構成要素31〜35は、内部バスによって互いに接続される。
【0043】
GPU32は、ゲーム装置3における描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。より具体的には、GPU32は、当該グラフィクスコマンドに従って3Dグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる3D座標から2D座標への座標変換などの処理や、テクスチャマッピング(ピクセル単位で、ポリゴンの色とテクスチャの色を合成して最終的な色をピクセル単位で出力する処理)などの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。
【0044】
より具体的には、GPU32の機能としてラスタライズを一例にとれば、いわゆる透視変換処理などの処理を受けた頂点単位(ポリゴン単位)のデータが得られた際に、GPU32は、ポリゴンを構成する三角形の各辺を(そのデータに含まれる)頂点から計算し(「トライアングルセットアップ」)、計算した三角形の内部を塗りつぶす処理(DDA(Digital Differential Analyzer)としての処理)を行う。この三角形の内部を塗りつぶすための色は、三角形の各頂点が有する色情報をもとに補間された色が用いられる。
【0045】
また、ラスタライザとしてのGPU32は、三角形を塗りつぶすときのピクセル1つ1つに対して、模様となる画像(テクスチャ)の対応するピクセル(テクセルとも呼ばれる)の選び出しも行っている。例えば、GPU32は、上記のポリゴンを構成する頂点のデータがテクスチャ画像から切り抜くべき位置の情報もあわせ持つ場合に、その位置の情報からテクスチャ画像を走査して、塗りつぶすべき各ピクセルにそれぞれ対応するテクスチャ画像のピクセルの位置情報を計算する。
【0046】
VRAM34は、GPU32がグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。また、VRAM34は、フレームバッファ34aとZバッファ34bを含む。
【0047】
フレームバッファ34aは、例えば、モニタ2へ供給すべき1フレーム分の画像データを描画または蓄積しておくためのメモリである。後述のAV−IC15が所定の周期(例えば、60分の1秒の周期)でフレームバッファ34aのデータを読み出すことによって、モニタ2の画面上に三次元ゲーム画像が表示される。
【0048】
また、Zバッファ34bは、フレームバッファ34aに対応する画素(記憶位置またはアドレス)数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ34aの各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
【0049】
DSP33は、オーディオプロセッサとして機能し、内部メインメモリ35や外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0050】
また、内部メインメモリ35は、外部メインメモリ12と同様に、プログラムや各種データを記憶したり、CPU10のワーク領域またはバッファ領域などとしても用いられる。
【0051】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、AVコネクタ16を介して、読み出した画像データをモニタ2に出力するとともに、読み出した音声データをモニタ2に内蔵されるスピーカ2aに出力する。これによって、画像がモニタ2に表示されるとともに音がスピーカ2aから出力される。
【0052】
入出力プロセッサ(I/Oプロセッサ)31は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ31は、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、および外部メモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0053】
入出力プロセッサ31は、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ31は、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール18およびアンテナ22を介して当該データをネットワークに送信する。また、入出力プロセッサ31は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22、および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10は、フラッシュメモリ17に記憶されたデータを読み出して利用することができる。フラッシュメモリ17には、ゲーム装置本体5と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置本体5を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0054】
また、入出力プロセッサ31は、アンテナ23および無線コントローラモジュール19を介して、コントローラ7から送信される操作データ等を受信し、内部メインメモリ35または外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0055】
さらに、入出力プロセッサ31には、拡張コネクタ20および外部メモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ31は、拡張コネクタ20や外部メモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0056】
また、ゲーム装置本体5(例えば、前部主面)には、当該ゲーム装置本体5の電源ボタン24、ゲーム処理のリセットボタン25、光ディスク4を脱着する投入口、およびゲーム装置本体5の投入口から光ディスク4を取り出すイジェクトボタン26等が設けられている。
【0057】
[3.ゲーム処理の概要]
[3.1.ゲーム処理の過程で設定される仮想空間の構成]
例示的な実施形態では、上述のCPU10、GPU32などが、ゲームシステム1における情報処理(画像処理を含む)を協働して行っている。以下、これらの情報処理を担うCPU10、GPU32などを、「情報処理部」と総称する。
【0058】
この例示的な実施形態において、ゲームシステム1を利用するプレイヤは、そのゲーム処理の進行に従いゲームシステム1の入力装置(例えば、コントローラ7)を操作することで、仮想オブジェクト(例えば、プレイヤキャラクタP1)を仮想空間内で移動させ得る。このとき、ゲームシステム1は、プレイヤキャラクタP1のモデルが配置されたワールド座標系に基づく情報を、仮想空間における特定の視点から捉えた座標系に変換(透視変換処理)を行い、ゲームシステム1の表示領域(例えば、モニタ2)を介してユーザに仮想空間で進行するイベントを逐次的に表示する。
【0059】
このとき、ゲーム進行に沿った画像処理の過程において、仮想空間を捉える視点(透視変換処理に用いられる視点。以下、仮想カメラと称する)は、プレイヤキャラクタ(例えば、仮想オブジェクトP1)の仮想空間での位置(ワールド座標系)に基づく視点(以下、「一人称視点」と呼ぶ)ではなく、当該一人称視点以外の視点(以下、「三人称視点」と呼ぶ)が採用されている。
【0060】
ゲームシステム1は、複数のプレイヤキャラクタ(例えば、プレイヤキャラクタP1からP4まで)の全てが、モニタ2に表示される画像でその位置を視認できるように、仮想カメラの位置を調整して当該画像を生成し、表示する。
【0061】
しかし、複数の仮想オブジェクト、特に、プレイヤキャラクタに加え、プレイヤキャラクタ以外の仮想オブジェクト(以下、非プレイヤキャラクタと総称する)が仮想空間に存在している場合、仮想カメラとプレイヤキャラクタのいずれかとの間に、非プレイヤキャラクタが位置づけられる場合が存在する。なお、この非プレイヤキャラクタは、ゲーム処理の進行上、例えば、プレイヤキャラクタの敵を示すオブジェクト(敵オブジェクト)として機能し得る。
【0062】
この条件下では、非プレイヤキャラクタが、そのサイズおよび形状によっては、仮想カメラからプレイヤキャラクタへむけた視界を妨げ得る場合がある。
【0063】
本実施形態に係るゲームシステム1は、このような場合においても、プレイヤキャラクタが非プレイヤキャラクタの陰でどの位置を占め、そして、非プレイヤキャラクタがそのプレイヤキャラクタに対してどのような形状の部位を向けているかを把握することができる画像を生成し得る。
【0064】
以下、添付の図面を参照しつつ、このことを説明する。
【0065】
図3は、仮想空間に配置された複数のオブジェクトと、それらを含む画像を生成するために設定された概念上のカメラ(仮想カメラ)の配置を模式的に示した図である。
【0066】
具体的には、複数のプレイヤキャラクタP1からP4まで、および非プレイヤキャラクタQ1が、仮想空間内の所定面(以下、フィールドと称する)に配置されている。そして、フィールドに対して斜めから見下ろす位置に仮想カメラAが設定されている。仮想カメラAは、透視変換処理を行うための各種パラメータ(例えば、レンズの画角を表現するパラメータなど)が、ゲームシステム1により設定されている。
【0067】
なお、説明を簡潔にするために、上述のフィールドを平面としているが、この形状についても、例示したものに限定する意図はなく、複数のオブジェクトが配置され得るものであれば、どのような曲面であってもよい。また、配置された仮想オブジェクトの種類・数を上述のものにとしたが、この設定に限定する意図はなく、他の設定でもよい。さらに、図3では、それぞれの仮想オブジェクトを単純化した形状(円柱など)で示しているが、この形状についても、例示したものに限定する意図はなく、より複雑な形状(例えば、人間型の仮想オブジェクト)であってもよい。
【0068】
ゲームシステム1を利用する複数の(本例では、4人の)プレイヤの各々は、操作可能なプレイヤキャラクタ(本例では、プレイヤキャラクタP1からP4まで)のうち1つずつが割り当てられる。そして、各プレイヤは、各人が有するコントローラ7を操作することとで、割り当てられたプレイヤキャラクタの動作をフィールド内で制御することが可能である。
【0069】
ゲームシステム1は、これらの仮想オブジェクを含む仮想空間を表したモニタ2に描画するための画像(表示画像)を、仮想カメラAの設定にしたがって生成する。図3では、プレイヤキャラクタP1〜P4と、非プレイヤキャラクタQ1とも、仮想カメラAは、ワールド座標系に配置される。そして、ゲームシステム1は、プレイヤキャラクタP1からP4が表示画像内に収るように、それらが所定の範囲内で移動するようにしている。具体的には、プレイヤキャラクタP1〜P4および非プレイヤキャラクタQ1は、例えば、仮想カメラAについて設定される仮想カメラ座標系に従った「視錐台」に含まれるように配置される。ワールド座標系と、仮想カメラ座標系とは適当な座標変換で相互に変換可能である。
【0070】
この視錐台は、仮想カメラ座標系のZ座標で指定されるニアクリップ面とファークリップ面との間の距離と視野(FOV)で定義される。なお、図3では、これらのクリップ面等は、省略している。
【0071】
[3.2.例示的な画像処理の説明]
非プレイヤキャラクタQ1が、プレイヤキャラクタP1よりもニアクリップ面側に配置され、プレイヤキャラクタP1の一部または全部を仮想カメラAから遮る位置に置かれる場合がある。
【0072】
従来は、この条件のもと、透視変換処理をおこなった場合、例えば、モニタ2に表示される画像において、プレイヤは、手前に表示される非プレイヤキャラクタの存在のために、プレイヤキャラクタP1を把握することができない。また、仮に位置が把握できたとしても、その画像では、非プレイヤキャラクタQ1の陰になった部位の形状までは把握できていなかった。
【0073】
本実施形態のゲームシステム1では、この問題を解決するために次のような処理が行われる。この処理を、図4A以降の図を参照しつつ説明する。
【0074】
図4Aは、図3で例示された配置において、非プレイヤキャラクタQ1と、プレイヤキャラクタP1とを含む領域を拡大した模式図である。この例では、非プレイヤキャラクタQ1を示すモデルは、概ね六角柱の仮想オブジェクトであり、その側面に突起部を有している。この配置においては、当該突起部は、プレイヤキャラクタP1の方向に延びているなお、後述するが、非プレイヤキャラタQ1は、それを示すためのモデルとして別のモデルも有しており、ゲームシステム1においてその二つモデルの集合を、非プレイヤキャラクタQ1を示すためのモデルとして取り扱う。
【0075】
図4Bは、図4Aで示された仮想オブジェクトの外形についての理解を助けるために示した、ワイヤーフレームモデルの模式図である。この図4Bは、図4Aで例示した仮想オブジェクトの位置関係・形状についての説明を容易にするために便宜的に示した図であって、表示画像としての例ではない。
【0076】
ゲームシステム1では、三人称視点、具体的には、フィールドを仮想カメラAから見下ろすような透視変換用の視点が設定されている。便宜的に、図4Aの矢印で示した方向で、この2つの仮想オブジェクトが仮想カメラAから観察される三人称視点が設定されている場合について説明する。
【0077】
この三人称視点に従いレンダリングされると、図4Cに示されるように、プレイヤキャラクタP1が、非プレイヤキャラクタQ1に隠れるように表示用画像が生成される。図4Cは、図4Aの矢印で示した方向で、この2つの仮想オブジェクトが仮想カメラAから観察されるときに、仮想カメラAから見た非プレイヤキャラクタQ1およびそれに隠れて視認できていないプレイヤキャラクタP1の様子を模式的に示した図である。なお、仮に、この位置関係で、非プレイヤキャラクタQ1を半透明で表示したとしても、非プレイヤキャラクタQ1の外形における突起部側の形状は、把握しにくい。
【0078】
図4Dは、図4Cで示された仮想オブジェクトの外形についての理解を助けるために示した、当該仮想オブジェクトの外形に対応するワイヤーフレームモデルの模式図である。この図4Dは、図4Cで例示した仮想オブジェクトの位置関係・形状についての説明を容易にするために便宜的に示した図であって、表示画像としての例ではない。
【0079】
図5は、この位置関係に2つの仮想オブジェクトが配置されている場合に、非プレイヤキャラクタQ1に対して施される画像処理を説明するための模試図である。
【0080】
ここで説明する画像処理は、プレイヤキャラクタP1のようなプレイヤキャラキャラクタが、非プレイヤキャラクタQ1によって視認が遮られる位置関係(以下、遮蔽関係とする)にある場合の画像処理である。
【0081】
非プレイヤキャラクタQ1のモデルは、通常は不透明色でレンダリングされる、ほぼ六角柱の構造体に対応するオブジェクトを示すモデル(以下、便宜的に、部分オブジェクト1という)と、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられたオブジェクトを示すモデル(以下、便宜的に、部分オブジェクト2という)との集合として定義づけられている。
【0082】
ゲーム処理過程で、プレイヤが通常、視認する非プレイヤキャラクタQ1を示すモデルは、図4Aに模式的に記載されるように、六角柱の1つの側面に突起部分を有する構造体のモデル、すなわち、部分オブジェクト1である。
【0083】
遮蔽関係にない場合、非プレイヤキャラクタQ1としてのこの構造体は、不透明色でレンダリングされ、その外観を示す画像が生成される(図5左上図)。このため、仮想カメラAから捉えられた画像(モニタ2に最終的に示される透視変換処理後の表示画像)では、その構造体が有する各面は不透明であり、仮想空間内でその構造体のファークリップ面側のシーンは、その構造体により遮蔽される。なお、図5左上図には、遮蔽されているプレイヤキャラクタ、また、非プレイヤキャラクタの陰面の線を破線にて示しているが、この破線は、理解を助けるために便宜的に示したものであり、不透明色でレンダリングされた際に実際に表示されるものではない。
【0084】
プレイヤキャラクタP1と非プレイヤキャラクタQ1との相対的な位置関係は、ゲームの進行、プレイヤによる入力操作に依存して、経時的に変化する。
【0085】
この一連の変化の過程で、プレイヤキャラクタP1と非プレイヤキャラクタQ1との位置関係が、上述の遮蔽関係となった場合(例えば、図3に例示される場合)には、非プレイヤキャラクタQ1に対する所定の画像処理が行われる。
【0086】
この画像処理によって、プレイヤは自己が操作するプレイヤキャラクタP1の位置、また、そのプレイヤキャラクタP1が仮想空間内で対向する非プレイヤキャラクタQ1の形状の把握が容易なものとなる。
【0087】
この遮蔽関係が成立するか否かについての具体的な判定は、例えば、仮想カメラAからプレイヤキャラクタP1への視線にそったレイが、非プレイヤキャラクタQ1と交差するか否かを判定(交差判定)すればよい。このような判定の結果により、レイが非プレイヤキャラクタQ1に交差するとされたときに、ゲームシステム1は、遮蔽関係が成立するものと判定し得る。なお、後述するように、この遮蔽判定の方法は、この例に限られない。
【0088】
遮蔽関係が成立している場合、部分オブジェクト1は、半透明な仮想オブジェクトとしてレンダリングされる。すなわち、部分オブジェクト1について予め設定されているかまたは動的に設定された(半透明状態に対応する)アルファ値を取るようにレンダリングすることによって、ゲームシステム1は、半透明な部分オブジェクト1のモデルに対応した画像を生成する。半透明な部分オブジェクト1は、その部分オブジェクト1よりもファークリップ面側に位置づけられた仮想オブジェクト(例えば、プレイヤキャラクタP1)等を透過させてプレイヤに視認させ得る。なお、半透明のモデルよりも奥(ファークリップ面側)に位置づけられるモデルは、描画の際にはデプステストが実施されて、手前(ニアクリップ面側)に存在する半透明モデルよりも先に描画される。
【0089】
さらに、遮蔽関係が成立している場合、非プレイヤキャラクタQ1の部分オブジェクト2のうち所定の条件を満たす部分のみが、最終的にモニタ2に表示される画像において表現される。
【0090】
この部分オブジェクト2は、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられた仮想オブジェクトである(図5右上図)。なお、図5右上図には、理解を助けるために、プレイヤキャラクタの位置を破線にて示している。具体的には、この部分オブジェクト2は、例えば、部分オブジェクト1と形状において実質的に同じポリゴンモデルに対して稜線(面と面との境界)の近傍部分以外は透明となるテクスチャをマッピングしたモデルとして規定することが可能である。図5右上図では、このようにして得られた部分オブジェクト2を模式的に示した(その特徴の理解しやすさを考慮して、背景を便宜的に暗くしている)。
【0091】
上述の満たされるべき所定条件とは、例えば、次のような条件である。この条件は、仮想カメラAに設定されている仮想カメラ座標系(X軸、Y軸、Z軸の3軸から構成される直交座標系;図1を参照)の原点(視点)から部分オブジェクト2を構成するポリゴンkに向けた視線ベクトルekと、部分オブジェクト2を構成する各ポリゴンに規定される法線ベクトルnkとの関係性により規定される(k=1,2,3,・・・・;kは、モデルを構成するポリゴンを識別するための例示的な番号である。)。図6Aなどを参照して、この関係性を説明する。
【0092】
図6Aは、非プレイヤキャラクタQ1のモデルを構成するポリゴンkに規定された、法線ベクトルnkを示す模式図ある。このポリゴンを規定する頂点で規定された面に垂直な法線ベクトルnkが、規定されている。ここで、ゲームシステム1で用いられるプリミティブ図形の一例として、ポリゴン(三角形のポリゴン)を示した。しかし、利用可能なプリミティブ図形は、このポリゴンの例に限られない。代表的には、このポリゴンを構成している頂点の指定の順序を反時計回りとして規定された面を表として、その面に直交するベクトルとして、法線ベクトルekが指定されるが、この例に限られない。
【0093】
図6Bは、ベクトルekと任意の法線ベクトルnkとのなす角度θを模式的示した図である。この角度θは、ベクトルekとnkとの内積(ek,nk)により次のように定義づけられる。
(ek,nk)=|ek||nk|cosθ;
【0094】
ゲームシステム1の情報処理部は、この内積値に応じて部分オブジェクト2を構成するポリゴンをモニタ2に表示する対象とするか否かを決定し得る。ここで、両ベクトルとも、正規化しておくと、上述の内積値は、−1.0から1.0までの値をとる。よって、内積値(またはその符号)を評価することで、そのポリゴンの表裏を決定することが可能である。
【0095】
ここで、この部分オブジェクト2が、部分オブジェクト1と形状において実質的に同じポリゴンモデルに対して稜線の近傍部分以外は透明となるテクスチャをマッピングしたモデルである場合について説明する。
【0096】
この場合、部分オブジェクト1を構成している各々のポリゴンに規定された法線ベクトルの向きと、それに対応する位置にある部分オブジェクト2を構成しているポリゴンに規定されて法線ベクトルの向きは、同じである。
【0097】
そして、部分オブジェクト2は、部分オブジェククト1では隠面として評価され得る面に相当する部分を表示するように描画される。プレイヤキャラクタP1が、非プレイヤキャラクタQ1の奥に位置づけられ、仮想カメラAからみて隠れた状態にあるときに、プレイヤキャラクタP1が対向している部分オブジェクト2の面を含む面が表示されるように描画される。すなわち、ゲームシステム1は、部分オブジェクト2のモデルのポリゴンにおいては、表示対象とするポリゴンが有すべき内積値の符号を部分オブジェクト1とは逆に設定して、部分オブジェクト2の描画を行うことができる。そして、部分オブジェククト1と、部分オブジェクト2とはデプステストを考慮した上でほぼ重ね合わされて描画される。これにより、プレイヤは、非プレイヤキャラクタQ1の奥に隠れたプレイヤキャラクタP1の位置を把握し、その非プレイヤキャラクタQ1の裏側の形状(プレイヤキャラクタP1側の形状)をも把握することが可能である。
【0098】
非プレイヤキャラクタQ1の表示される部分とされない部分との区別の方法について、さらに詳細に説明する。
【0099】
図4Dは、非プレイヤキャラクタQ1の部分オブジェクト1(図4C参照)の稜線部分を抜き出したワイヤーフレームと、その奥に配置されるプレイヤキャラクタP1を模式的に示した図である。この非プレイヤキャラクタQ1における、ファークリップ面側の一側面(側面β1とする)上の稜線A1−B1に着目する。また、このA1−B1と平行な稜線のうち、稜線A1−B1を含む面と対向する側面(側面β2とする)上にある稜線を、稜線A2−B2とする。
【0100】
この位置関係では、側面β1上のポリゴンに設定された法線ベクトルと、側面β2上のポリゴンに設定された法線ベクトルとがなす角度は、πである。したがって、側面β1上のポリゴンkに規定される法線ベクトルnkと、ベクトルekとが仮に同じ方向に向いていれば、その内積値は、正である。かつ、このとき、側面β2上のポリゴンmに規定される法線ベクトルnmとベクトルemとの内積値は、負となる。そして、仮に、部分オブジェクト2のポリゴンのうち、内積値が正のポリゴンのみを表示すると規定しておくと、稜線A1−B1に対応するポリゴンは表示されるが、稜線A1−B2に対応するポリゴンは表示されないものとなる。
【0101】
したがって、図5の例でいえば、その右上に示されている部分オブジェクト2のうち、稜線A1−B1に対応する部分は表示されるが、稜線A2−B2に対応する部分は表示されない。非プレイヤキャラクタQ2を示すモデルは、部分オブジェクト1と部分オブジェクト2との集合として規定されるので、最終的なモデルの表示態様は、図5の下段に示したようになる。なお、説明の簡略化のため、図5の下段では、部分オブジェクト2のうち上述の2稜線以外の部分については、省略している。
【0102】
上述のように、ゲームの進行に沿って変化する非プレイヤキャラクタQ1との位置関係が所定の条件を満たした場合(例えば、遮蔽関係となった場合)、ゲームシステム1は、その非プレイヤキャラクタQ1の部分オブジェクト1に対して透過処理を行う。かつ、ゲームシステム1は、三人称視点の視点から見て隠れた部分の形状を示す部分オブジェクト2のポリゴンのみを(例えば、視線ベクトルとのポリゴンが有する法線ベクトルとの内積値で判定することで)表示対象とする。
【0103】
そして、ゲームシステム1は、透過処理を施した部分オブジェクト1のモデルと、そのモデルの形状と対応づけられた部分オブジェクト2のうち表示対象として判定された部分とを重畳的に表示した画像を生成する。
【0104】
なお、図6Cに、部分オブジェクト2の別例を示した。具体的には、図6Cの上段のような外形(部分オブジェクト1の形状に対応する)を有する非プレイヤキャラクタに設定される、部分オブジェクト(部分オブジェクト2に対応するもの;以下、部分オブジェクト2’)を図6Cの下段に示した。
【0105】
部分オブジェクト2’は、三人称視点から観察した、外側に凸形状を有する仮想オブジェクト(上段)に生成された、その視点から見えていない裏面の稜線に対応する部分オブジェクトである。
【0106】
上述の画像処理では、非プレイヤキャラクタQ1によってプレイヤキャラクタの視認が妨げられる場合に、非プレイヤキャラクタQ1側において施される処理について説明した。以下では、同様の課題を解決するめに、プレイヤキャラクタ側において所定の処理を実施する方法を説明する。
【0107】
この処理は、上述した非プレイヤキャラクタ側において施される処理と併用しても、また、その処理とは別に単独で用いられてもよい。
【0108】
以下、図3で示されように、プレイヤキャラクタP1が非プレイヤキャラクタQ1よりもファークリップ面側に位置づけられて、仮想カメラAから見た際にその視認が妨げられる場合を例に説明する。
【0109】
ゲームシステム1は、プレイヤキャラクタP1が非プレイヤキャラクタQ1の陰となる位置関係になると判定した際に次のような処理を行う。
【0110】
上述のように、仮想空間に配置されたプレイヤキャラクタ、非プレイヤキャラクタの各々は、所定の属性を有するモデルが割り当てられている。そのモデル同士がめり込まない位置関係で、移動するため、モデルが互いを排除するための空間を規定する場合がある。
【0111】
本実施形態では、プレイヤキャラクタP1が非プレイヤキャラクタQ1よりもファークリップ面側に位置づけられて、仮想カメラAから見て遮蔽されていると判定した場合、上述した互いを排除するための空間をゲームシステム1が以下に説明するように制御することによって、ゲーム処理の過程でプレイヤがプレイヤキャラクタP1をより把握しやすい状況を提供する。
【0112】
図7Aおよび図7Bを参照して説明する。
【0113】
図7Aは、プレイヤキャラクタP1と、非プレイヤキャラクタQ1との間でおこなわれる、遮蔽関係の有無を判定する処理を模式的に示した図である。
【0114】
ゲームシステム1の情報処理部は、プレイヤキャラクタP1と非プレイヤキャラクタQ1との位置関係が遮蔽関係になっているか否かを判定する。この判定は、仮想カメラAからプレイヤキャラクタP1へレイを飛ばして、そのレイが非プレイヤキャラクタQ1と交差するか否かよって判定し得る(交差判定)。
【0115】
図7Aにおいて、半球C1は、プレイヤキャラクタP1に設定された、(オブジェクト間の)当たり判定の際の自己の領域を規定する半球である。この半球C1は、プレイヤキャラクタP1において他オブジェクトが入り込むことを排除するために規定される。なお、半球C1によって定義した領域は、別の任意の形状の領域であってもよい。
【0116】
他方、点線B1は、非プレイヤキャラクタQ1の上述の交差判定時における位置およびその外形の一部を模式的に示している。この例では、非プレイヤキャラクタQ1の突起部が、プレイヤキャラクタP1の方向に向いている。
【0117】
交差判定において、レイV1が(点線B1の位置にある)非プレイヤキャラクタQ1に交差したと判定された場合を、図7Aは例示する。この判定に基づいて、情報処理部は、上述の半球C1を、半球C2の大きさまで拡大する。そして、情報処理部は、この半球C2に基づいて、非プレイヤキャラクタQ1との当たり判定を行う。このとき、点線B1による外形線で示されるように、非プレイヤキャラクタQ1は、半球C2の内側に入り込んでいるので、この当たり判定では、プレイヤキャラクタP1と非プレイヤキャラクタQ1との位置関係は許容されないものとしてゲームシステム1は判定する。この判定の結果、ゲームシステム1は、例えば、点線B2で示される位置まで非キャラクタオブジェクトQ1を移動させるか、または、その移動の結果と同様の相対的な位置関係となるように、プレイヤキャラクタP1を移動させることによって、ゲームシステム1は、これら2つの仮想オブジェクト間の距離を大きくする。
【0118】
なお、その後、ゲーム進行の過程で、プレイヤキャラクタP1と非プレイヤキャラクタQ1との相対的な位置関係が変化する際に、その時点の交差判定の結果に応じて、仮想オブジェクト間の当たり判定用のプレイヤキャラクタの半球のサイズを、ゲームシステム1の情報処理部が動的に制御する。すなわち、レイによる交差判定により、遮蔽関係がないものと判定された場合は、ゲームシステム1は、当たり判定に利用する半球として、半球C1が再設定される。
【0119】
これによって、プレイヤキャラクタP1が、それよりもサイズが大きい非プレイヤキャラクタQ1の突起部の下にまで深く入り込み、ゲーム処理の過程で継続的にプレイヤキャラクタP1が非プレイヤキャラクタQ1の陰に隠れて視認できない状況を回避し得る。また、動的に半球の設定を変更することによって、遮蔽関係がない場合には、仮想オブジェクト同士が可動し得る領域をより広く保つことが出来る。
【0120】
なお、ゲームシステム1が、プレイヤキャラクタP1と、他プレイヤキャラクタ(例えば、P2)と当たり判定を行うときは、非プレイヤキャラクタQ1との交差判定の結果に依存させて、プレイヤキャラクタP1(または他のプレイヤキャラクタ)の当たり判定用の半球のサイズを変更させる必要はない。さらに、プレイヤキャラクタP1を中心にする半球の制御の代わりに、プレイヤキャラクタP1の位置を基準に規定される仮想空間内の半球以外の別の形状の領域を制御してもよい。
【0121】
図7Bを参照して、レイによる交差判定を用いない場合について説明する。この交差判定に代えて、プレイヤキャラクタP1または非プレイヤキャラクタQ1の位置を基準に規定される領域に、その基準となったオブジェクトの相手が、その領域に入ったか否かで判定して決定してもよい。図7Bは、図7Aの変形例を示す模式図である。例えば、図7Bに示されているように、非プレイヤキャラクタQ1の位置を基準(図7Bに示された十字記号が、非プレイヤキャラクタQ1の位置を示す)にして規定される領域(十字記号から画面奥方向へ向かった所定範囲:図中の領域R11)に、プレイヤキャラクタP1が進入した時点で、半球を拡大状態(半球C2)とし、また、その領域から出た時点で通常の半球(半球C1)に戻すような処理が行われる。
【0122】
[4.ゲーム処理の詳細]
次に、ゲームシステム1において実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図8は、ゲーム処理において用いられる各種データ(プログラムを含む)を示す図である。図8において、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図8に示すように、ゲーム装置3のメインメモリには、ゲームプログラム100、コントローラ操作データ110、および処理用データ120が記憶される。なお、メインメモリには、図8に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
【0123】
ゲームプログラム100は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム100は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム100に含まれる一部(例えば、コントローラ7の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。
【0124】
コントローラ操作データ110は、コントローラ7に対するユーザの操作を表すデータであり、コントローラ7に対する操作に基づいてコントローラ7から出力(送信)される。コントローラ操作データ110は、コントローラ7から送信されてゲーム装置3において取得され、メインメモリに記憶される。コントローラ操作データ110は、角速度データ、メイン操作ボタンデータ、加速度データを含む。なお、コントローラ操作データ110は、これらのデータの他、コントローラ7の画像処理回路41によって算出される座標を示すマーカ座標データ等を含む。また、ゲーム装置3は、複数のコントローラ7から操作データを取得するため、各コントローラ7からそれぞれ送信されてくる各コントローラ操作データ110をメインメモリにそれぞれ記憶する。最新の(最後に取得された)データから所定個数のコントローラ操作データ110が、コントローラ7毎に、時系列に記憶されてもよい。
【0125】
処理用データ120は、後述するゲーム処理(メイン処理)において用いられるデータである。処理用データ120は、ゲーム処理で利用される仮想オブジェクトのデータも含む。仮想オブジェクトの各々は、モデルの形状を含むその仮想オブジェクトの属性を規定するデータの他に、ゲーム処理過程で規定される仮想空間での位置情報等も有している。
【0126】
処理用データ130は、ゲームに登場する各種オブジェクトに設定される各種パラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。
【0127】
次に、ゲーム装置3において実行されるゲーム処理の詳細を、図9Aおよび図9Bを用いて説明する。図9Aは、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。図9Aに示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。なお、ゲーム装置3においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後例えばユーザによるメニュー画面に対する選択操作によってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。
【0128】
なお、図9Aおよび図9Bに示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数や定数の値等も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、ゲームシステム1における「情報処理部」(CPU10、GPU32などの総体)が、上記フローチャートの各ステップの処理を実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、その情報処理部の一部のみで実行するようにしても、CPU10およびGPU32以外のプロセッサや専用回路が実行するようにしてもよい。
【0129】
まず、ステップ1(図中、S1。以下のステップにおいても同様に対応づけられる)において、ゲームシステム1の情報処理部は初期処理を実行する。初期処理は、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクト(例えば、プレイヤキャラクタP1からP4まで、非プレイヤキャラクタQ1など)、仮想カメラ(例えば、仮想カメラA)を初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。
【0130】
本実施形態における例示的な仮想オブジェクトとして、プレイヤキャラクタP1からP4まで、および非プレイヤキャラクタQ1の位置および姿勢が設定される。そして、それら設定に応じて、仮想カメラAが設定される。
【0131】
また、ステップ1において、各コントローラ7の初期処理が行われる。例えば、1または複数のプレイヤの各々に、コントローラ7を把持させるための画像が表示画面に示される。各コントローラ7の初期処理によって、各コントローラ7が出力し得るパラメータを含む設定変数が初期値に設定される。各コントローラ7の初期処理が完了すると、情報処理部は、ステップ2の処理を実行する。以降、ステップ2〜ステップ6の一連の処理からなる処理ループが所定時間(1フレーム時間。例えば1/60秒)に1回の割合で繰り返し実行される。
【0132】
ステップ2において、情報処理部は、複数のコントローラ7から送信されてくる操作データをそれぞれ取得する。各コントローラ7は操作データ(コントローラ操作データ)をゲーム装置3へ繰り返し送信する。ゲーム装置3においては、端末通信モジュール28が端末操作データを逐次受信し、受信された端末操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。また、コントローラ通信モジュール19が各コントローラ操作データを逐次受信し、受信された各コントローラ操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。コントローラ7とゲーム装置3との間における送受信の間隔はゲームの処理時間よりも短い方が好ましく、例えば200分の1秒である。ステップ2においては、情報処理部は、最新のコントローラ操作データ110をメインメモリから読み出す。ステップ2の次にステップ3の処理が実行される。
【0133】
ステップ3において、情報処理部はゲーム制御処理を実行する。ゲーム制御処理は、プレイヤによるゲーム操作に従ってゲームを進行させる処理である。
【0134】
具体的には、本実施形態におけるゲーム制御処理では、主に、複数のコントローラ7に対する操作に応じて、そのコントローラ毎に対応する仮想オブジェクトがそのゲームの進行に従い、その内部状態(例えば、表示態様)を逐次的に設定され、その設定に従い後続の処理が行われる。以下、図9Bを参照して、ゲーム制御処理の詳細について説明する。
【0135】
図9Bは、図9Aに示されたフローチャートのステップ3に対応する定義づけられた処理(ゲーム制御処理:ステップ101からステップ111まで)を示すフローチャートである。
【0136】
ステップ101において、情報処理部は、ゲーム制御処理の対象となる仮想オブジェクトを決定する処理を実行する。また、仮想オブジェクトに対して行う処理の種類について規定する。
【0137】
具体的には、情報処理部は、ステップ2で取得した操作情報に加え、ゲームシステム1を利用するプレイヤのそれぞれが操作するプレイヤキャラクタの数および種類、非プレイヤキャラクタの数および種類、ならびにそれらのオブジェクト間でゲーム進行上で考慮すべき相互作用の有無・内容に基づき、本ステップ以降の処理の対象とすべき仮想オブジェクトを決定する。
【0138】
図3で示された例では、仮想カメラAによる三人称視点の条件下で、複数のプレイヤが操作可能なプレイヤキャラクタP1〜P4、ならびに非プレイヤキャラクタQ1が仮想空間に配置されている設定に基づいて、情報処理部は、本ステップの処理を実行する。この非限定的な例では、4体のプレイヤキャラクタおよび1体の非プレイヤキャラクタが存在するので、4体のプレイヤキャラクタの各々と、非プレイヤキャラクタとの間で次のステップ102の判定を行うことを決定する。その後、情報処理部は、ステップ102の処理に進む。
【0139】
ステップ102において、情報処理部は、プレイヤキャラクタと非プレイヤキャラクタとの間で「遮蔽関係」が成立しているか否かを判定する処理を実行する。この処理は、ステップ101で本ステップ2における処理対象として決定された、仮想オブジェクトの仮想空間での位置情報に基づいて、「遮蔽関係」の成立の有無を判定するための計算を行う。仮想オブジェクトが複数個存在する場合は、遮蔽関係が存在し得るオブジェクト間の全てについてこの計算を、情報処理部は実行する。
【0140】
具体的には、情報処理部は、遮蔽関係が成立しているか否かの判定を次のように実行する。情報処理部は、例えば、仮想カメラAからプレイヤキャラクタP1への視線にそったレイが、非プレイヤキャラクタQ1と交差するか否かを判定(交差判定)することで当該遮蔽関係の有無の判定のための計算を実行する。このような判定の結果により、交差するとされたときに、ゲームシステム1は、プレイヤキャラクタP1と非プレイヤキャラクタQ1との間に遮蔽関係が成立すると判定し得る。その後、情報処理部は、ステップ103の処理に進む。
【0141】
ステップ103において、情報処理部は、ステップ102で行った計算結果に基づいて後続の処理を選択する処理を実行する。判定対象となっている仮想オブジェクト間で遮蔽関係が成立しているとき、情報処理部は、ステップ104の処理に進む。他方、この遮蔽関係が成立していないとき、情報処理部は、ステップ106の処理に進む。
【0142】
ステップ104において、情報処理部は、プレイヤキャラクタの当たり判定用形状を、拡大状態に設定する処理を実行する。
【0143】
具体的には、プレイヤキャラクタP1と非プレイヤキャラタQ1との間に遮蔽関係が成立しているとステップ103で判定されたときには、プレイヤキャラクタP1において設定されていた当たり判定用の半球を、その通常状態の半球C1から、その半球が有する半径よりも大きな半径を有する半球C2を有する拡大状態に設定する(図7A参照)。その後、情報処理部は、ステップ105の処理に進む。なお、自然な切り替えのために、半球C1から半球C2への拡大は、所定時間をかけて徐々に行うようにしてもよい。
【0144】
ステップ105において、情報処理部は、非プレイヤキャラクタQ1の部分オブジェクト1を半透明とすることを設定を実行する。
【0145】
具体的には、ゲーム処理の概要において説明したとおり、非プレイヤキャラクタQ1は、通常は不透明色でレンダリングされる構造体に対応するオブジェクト(部分オブジェクト1)と、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられたオブジェクト(部分オブジェクト2)との集合として定義づけられている。プレイヤキャラクタP1と非プレイヤキャラタQ1との間に遮蔽関係が成立しているとステップ103で判定されたとき、本ステップでは、非プレイヤキャラタQ1の部分オブジェクト1を、半透明とする設定を行う。
【0146】
具体的には、情報処理部は、部分オブジェクト1として規定されているポリゴンに設定されるアルファ値を、半透明となる値に設定する。例えば、アルファ値が、0.0から1.0までの値をとる場合であって、アルファ値が0.0となるときに透明とし、アルファ値が1.0となるときに不透明である場合について説明する。「半透明」の状態を、アルファ値が0.5であるとして定義づけることができる。また、このアルファ値の設定は、固定値を与えるのではなく、ゲーム処理の過程に沿って所定の値に漸近するように設定してもよい。このようなアルファ値の振り方は、例示的なものであってこの例に限られない。その後、情報処理部は、ステップ108の処理に進む。
【0147】
前述のように、ステップ103の処理において、遮蔽関係が成立していないと判定されたとき、情報処理部は、ステップ106の処理に進む。
【0148】
ステップ106において、情報処理部は、プレイヤキャラクタP1において設定されていた当たり判定用の半球を、その通常状態(半球C1)と設定する処理(または、その設定を維持する処理)を実行する。その後、情報処理部は、ステップ107の処理に進む。なお、半球C1への変化は、自然な切り替えのために、所定時間をかけて徐々に行うようにしてもよい。
【0149】
ステップ107において、情報処理部は、非プレイヤキャラクタの部分オブジェクト1を不透明とする設定を実行する。その後、情報処理部は、ステップ108の処理に進む。
【0150】
ステップ108において、情報処理部は、非プレイヤキャラクタの部分オブジェクト2のポリゴンでで規定される、内積値の計算する処理を実行する。
【0151】
具体的には、仮想カメラAに設定されている仮想カメラ座標系(X軸、Y軸、Z軸の3軸から構成される直交座標系;図1を参照)の原点(視点)から(モデルを構成する)ポリゴンkに向かう3次元ベクトルekと、ポリゴンkに規定される法線ベクトルnkとの関係性により規定される([k=1,2,3,・・・・];添え字kは、モデルを構成するポリゴンを識別するための例示的な番号である)。
【0152】
ここで、部分オブジェクト2は、上述のように、部分オブジェクト1として示される構造体の稜線またはその稜線の少なくとも一部に対応づけられた仮想オブジェクトである。情報処理部は、当該オブジェクトを構成するポリゴンk毎に、3次元ベクトルekと法線ベクトルnkとの内積値を計算する。そして、情報処理部は、その計算した結果をゲームシステム1の記憶領域に保存する。この後、情報処理部は、ステップ109の処理に進む。この内積値は、後続のステップ4の(モニタ2への)表示用画像の生成の際に、用いられる。
【0153】
ステップ109において、情報処理部は、非プレイヤキャラクタQ1とプレイヤキャラクタP1との間の当たり判定を実行する。その後、情報処理部は、ステップ110の処理に進む。半球C1またはC2に基づき規定されるプレイヤキャラクタP1が占める空間と、予め設定された、非プレイヤキャラクタQ1が占める空間とが、重複した空間を占めている否かを判定する。この判定には、一般的な当たり判定の方法が利用可能である。その後、情報処理部は、当たり判定の結果をゲームシステム1の記憶領域に保存し、ステップ101の処理に進む。
【0154】
ステップ110において、情報処理部は、追加的な設定が仮想オブジェクトの画像処理のために必要である場合は、その追加的な設定を行う。例えば、情報処理部は、ステップ109の判定の結果に従って反対対象とした仮想オブジェクトの仮想空間内の位置を適宜移動して再設定し得る。その後、情報処理部は、ステップ111の処理に進む。
【0155】
ステップ111において、情報処理部は、遮蔽関係の有無を判定し、その判定にしたがって画像処理用の設定変更を必要とする他の仮想オブジェクトがさらに存在するか否かを判定する処理を実行する。この判定の結果、そのようなの他の仮想オブジェクトの存在がある場合(ステップ111,YES)、情報処理部は、ステップ102の処理に進む。そのようなの他の仮想オブジェクトの存在がない場合(ステップ111,NO)、情報処理部は、このゲーム制御処理を終了し、ステップ4の処理(図9A)に戻る。
【0156】
図9Aに戻り、後続のステップでの処理を説明する。
【0157】
ステップ4において、情報処理部は、ステップ3(図9Bのステップ101から111まで)の処理が行われた判定、設定された結果に基づいて、モニタ2に表示するための画像を生成する処理を行う。
【0158】
具体的には、情報処理部は、仮想空間に存在する仮想オブジェクトの位置、ステップ3で行われた仮想オブジェクトに対する設定に基づいて、表示用画像をレンダリングする。図3等で示してきた非限定的な例においては、情報処理部が、仮想カメラAの位置を原点とする仮想カメラ座標系を基準に、透視変換処理を行い、プレイヤキャラクタP1からP4および非プレイヤキャラクタQ1を含む画像を生成する。なお、情報処理部は、レンダリングにあっては、ピクセル単位で奥行き情報(例えば、Z値)を比較する深度テストを実行する。
【0159】
ここで、非プレイヤキャラクタQ1のファークリップ面側に位置づけられたプレイヤキャラクタP1は、その部分オブジェクト1が半透明でレンダリングされるので、遮蔽関係がそれらのオブジェクト間で成立していても、表示画像を見たプレイヤはそのプレイヤキャラクタP1の位置を把握可能である。
【0160】
また、情報処理部は、非プレイヤキャラクタの部分オブジェクト1とともに、その部分オブジェクト2のうち所定の条件を満たした部分を重畳的に表示する。この所定の条件とは、部分オブジェクト2を構成するポリゴンのうち、そのポリゴンに設定された法線ベクトルと、仮想カメラAからの視線ベクトルとの内積値をもとに規定される条件である。
【0161】
具体的には、部分オブジェクト2は、部分オブジェククト1では隠面として評価される面に相当する部分を表示するように描画される。プレイヤキャラクタP1が、非プレイヤキャラクタQ1の奥に位置づけられ、仮想カメラAからみて隠れた状態にあるときに、プレイヤキャラクタP1が対向している部分オブジェクト2の面を含む面が表示されるように描画される。すなわち、ゲームシステム1は、部分オブジェクト2のポリゴンにおいては、表示対象とするポリゴンが有すべき内積値の符号を部分オブジェクト1とは逆に設定して、部分オブジェクト2の描画を行う。
【0162】
ステップ5において、情報処理部は、ステップ4で生成された画像を、ゲームシステム1の表示部(例えば、モニタ2)に表示する。その後、情報処理部は、ステップ6の処理に進む。
【0163】
ステップ6において、情報処理部は、ゲームシステム1上で実行されているゲーム処理を終了するか否かを判定する。ゲーム処理を継続すると判定した場合(ステップ6,NO)、情報処理部は、ステップ2の処理に戻る。他方、ゲーム処理を終了すると判定した場合(ステップ6,YES)、情報処理部は、メイン処理を完了する。
【0164】
(その他)
上述した例示的な実施形態では、ゲームシステム1によってゲーム処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有するコンピュータシステムにおいて、当該複数の情報処理装置が情報処理を分担して実行するようにしてもよい。
【0165】
なお、汎用的なプラットフォームにおいて上述のゲーム処理プログラム等が使用される場合には、当該ゲーム処理プログラムが、当該プラットフォームにおいて標準的に提供されるプログラムモジュールを用いることを前提として提供されてもよい。上述のようなモジュールによって機能が補完されることを前提に、上記ゲーム処理プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的にこのゲーム処理プログラムに相当すると理解されるべきである。
【0166】
なお、上述の非プレイヤキャラクタQ1に対して実行された画像処理は、必要に応じて、プレイヤキャラクタに適用することを妨げない。
【産業上の利用可能性】
【0167】
本実施形態で例示されたゲーム処理システム等は、プレイヤがゲーム処理の過程で仮想オブジェクトの様子をより把握しやすくするために利用可能である。
【符号の説明】
【0168】
1 ゲームシステム
2 モニタ
3 ゲーム装置
4 光ディスク
5 ゲーム装置本体
7 コントローラ
10 CPU
11 システムLSI
12 外部メモリ
13 ROM/RTC
14 ディスクドライブ
15 AV−IC
17 フラッシュメモリ
19 無線コントローラモジュール
31 入出力プロセッサ
32 GPU
33 DSP
34 VRAM
35 内部メインメモリ
70 コアユニット
【特許請求の範囲】
【請求項1】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムであって、前記ゲームシステムは、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
ゲーム処理を行うゲーム処理部と、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、ゲームシステム。
【請求項2】
前記第1の部分は、前記第2の部分を含む、請求項1に記載のゲームシステム。
【請求項3】
前記第2の部分は、前記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルである、請求項1記載のゲームシステム。
【請求項4】
前記第2の部分の透明度は、前記条件にかかわらず一定である、請求項1から3までのいずれか1項に記載のゲームシステム。
【請求項5】
前記第2の部分は、常に不透明である、請求項4に記載のゲームシステム。
【請求項6】
前記ゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み、
前記透明処理部は、前記プレイヤキャラクタと、前記オブジェクトの相対的な位置関係に基づいて、前記オブジェクトの第1の部分の透明度を上げる、請求項1から5までのいずれか1項に記載のゲームシステム。
【請求項7】
前記オブジェクトが、前記プレイヤキャラクタの一部または全部を、前記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、前記透明処理部は前記第1の部分のオブジェクトの透明度を上げる、請求項6に記載のゲームシステム。
【請求項8】
前記プレイヤキャラクタが、前記オブジェクトに近づいたときに、前記透明処理部は前記オブジェクトの透明度を上げる、請求項6に記載のゲームシステム。
【請求項9】
前記操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理である、請求項6に記載のゲームシステム。
【請求項10】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理システムであって、前記画像処理システムは、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
前記オブジェクトの第1の部分を半透明とする透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、画像処理システム。
【請求項11】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲーム制御方法であって、前記ゲーム制御方法は、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置ステップと、
ゲーム処理を行うゲーム処理ステップと、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理ステップと、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理ステップとを含む、ゲーム制御方法。
【請求項12】
前記第1の部分は、前記第2の部分を含む、請求項11に記載のゲーム制御方法。
【請求項13】
前記第2の部分は、前記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルである、請求項11記載のゲーム制御方法。
【請求項14】
前記第2の部分の透明度は、前記条件にかかわらず一定である、請求項11から13までのいずれか1項に記載のゲーム制御方法。
【請求項15】
前記第2の部分は、常に不透明である、請求項14に記載のゲーム制御方法。
【請求項16】
前記ゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み、
前記透明処理ステップにおいて、前記プレイヤキャラクタと、前記オブジェクトの相対的な位置関係に基づいて、前記オブジェクトの第1の部分の透明度を上げる、請求項11から15までのいずれか1項に記載のゲーム制御方法。
【請求項17】
前記透明処理ステップにおいて、前記オブジェクトが、前記プレイヤキャラクタの一部または全部を、前記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、前記第1の部分のオブジェクトの透明度を上げる、請求項16に記載のゲーム制御方法。
【請求項18】
前記透明処理ステップにおいて、前記プレイヤキャラクタが、前記オブジェクトに近づいたときに、前記オブジェクトの透明度を上げる、請求項16に記載のゲーム制御方法。
【請求項19】
前記操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理である、請求項16に記載のゲーム制御方法。
【請求項20】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理方法であって、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置ステップと、
前記オブジェクトの第1の部分を半透明とする透明処理ステップと、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理ステップとを含む、画像処理方法。
【請求項21】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲーム装置であって、前記ゲーム装置は、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
ゲーム処理を行うゲーム処理部と、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、ゲーム装置。
【請求項22】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理装置であって、前記画像処理装置は、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
前記オブジェクトの第1の部分を半透明とする透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、画像処理装置。
【請求項23】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムのコンピュータで実行させるプログラムであって、当該プログラムは、前記コンピュータを、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
ゲーム処理を行うゲーム処理部と、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部として機能させる、プログラム。
【請求項24】
前記第1の部分は、前記第2の部分を含む、請求項23に記載のプログラム。
【請求項25】
前記第2の部分は、前記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルである、請求項23記載のプログラム。
【請求項26】
前記第2の部分の透明度は、前記条件にかかわらず一定である、請求項23から25までのいずれか1項に記載のプログラム。
【請求項27】
前記第2の部分は、常に不透明である、請求項26に記載のプログラム。
【請求項28】
前記ゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み、
前記透明処理部は、前記プレイヤキャラクタと、前記オブジェクトの相対的な位置関係に基づいて、前記オブジェクトの第1の部分の透明度を上げる、請求項23から27までのいずれか1項に記載のプログラム。
【請求項29】
前記オブジェクトが、前記プレイヤキャラクタの一部または全部を、前記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、前記透明処理部は前記第1の部分のオブジェクトの透明度を上げる、請求項28に記載のプログラム。
【請求項30】
前記プレイヤキャラクタが、前記オブジェクトに近づいたときに、前記透明処理部は前記オブジェクトの透明度を上げる、請求項28に記載のプログラム。
【請求項31】
前記操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理である、請求項28に記載のプログラム。
【請求項32】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムのコンピュータで実行させるプログラムであって、当該プログラムは、前記コンピュータを
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
前記オブジェクトの第1の部分を半透明とする透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部として機能させる、プログラム。
【請求項1】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムであって、前記ゲームシステムは、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
ゲーム処理を行うゲーム処理部と、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、ゲームシステム。
【請求項2】
前記第1の部分は、前記第2の部分を含む、請求項1に記載のゲームシステム。
【請求項3】
前記第2の部分は、前記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルである、請求項1記載のゲームシステム。
【請求項4】
前記第2の部分の透明度は、前記条件にかかわらず一定である、請求項1から3までのいずれか1項に記載のゲームシステム。
【請求項5】
前記第2の部分は、常に不透明である、請求項4に記載のゲームシステム。
【請求項6】
前記ゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み、
前記透明処理部は、前記プレイヤキャラクタと、前記オブジェクトの相対的な位置関係に基づいて、前記オブジェクトの第1の部分の透明度を上げる、請求項1から5までのいずれか1項に記載のゲームシステム。
【請求項7】
前記オブジェクトが、前記プレイヤキャラクタの一部または全部を、前記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、前記透明処理部は前記第1の部分のオブジェクトの透明度を上げる、請求項6に記載のゲームシステム。
【請求項8】
前記プレイヤキャラクタが、前記オブジェクトに近づいたときに、前記透明処理部は前記オブジェクトの透明度を上げる、請求項6に記載のゲームシステム。
【請求項9】
前記操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理である、請求項6に記載のゲームシステム。
【請求項10】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理システムであって、前記画像処理システムは、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
前記オブジェクトの第1の部分を半透明とする透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、画像処理システム。
【請求項11】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲーム制御方法であって、前記ゲーム制御方法は、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置ステップと、
ゲーム処理を行うゲーム処理ステップと、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理ステップと、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理ステップとを含む、ゲーム制御方法。
【請求項12】
前記第1の部分は、前記第2の部分を含む、請求項11に記載のゲーム制御方法。
【請求項13】
前記第2の部分は、前記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルである、請求項11記載のゲーム制御方法。
【請求項14】
前記第2の部分の透明度は、前記条件にかかわらず一定である、請求項11から13までのいずれか1項に記載のゲーム制御方法。
【請求項15】
前記第2の部分は、常に不透明である、請求項14に記載のゲーム制御方法。
【請求項16】
前記ゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み、
前記透明処理ステップにおいて、前記プレイヤキャラクタと、前記オブジェクトの相対的な位置関係に基づいて、前記オブジェクトの第1の部分の透明度を上げる、請求項11から15までのいずれか1項に記載のゲーム制御方法。
【請求項17】
前記透明処理ステップにおいて、前記オブジェクトが、前記プレイヤキャラクタの一部または全部を、前記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、前記第1の部分のオブジェクトの透明度を上げる、請求項16に記載のゲーム制御方法。
【請求項18】
前記透明処理ステップにおいて、前記プレイヤキャラクタが、前記オブジェクトに近づいたときに、前記オブジェクトの透明度を上げる、請求項16に記載のゲーム制御方法。
【請求項19】
前記操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理である、請求項16に記載のゲーム制御方法。
【請求項20】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理方法であって、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置ステップと、
前記オブジェクトの第1の部分を半透明とする透明処理ステップと、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理ステップとを含む、画像処理方法。
【請求項21】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲーム装置であって、前記ゲーム装置は、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
ゲーム処理を行うゲーム処理部と、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、ゲーム装置。
【請求項22】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させる画像処理装置であって、前記画像処理装置は、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
前記オブジェクトの第1の部分を半透明とする透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部とを備える、画像処理装置。
【請求項23】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムのコンピュータで実行させるプログラムであって、当該プログラムは、前記コンピュータを、
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
ゲーム処理を行うゲーム処理部と、
前記ゲーム処理において所定の条件が満たされたとき、前記オブジェクトの第1の部分の透明度を上げる透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部として機能させる、プログラム。
【請求項24】
前記第1の部分は、前記第2の部分を含む、請求項23に記載のプログラム。
【請求項25】
前記第2の部分は、前記第1の部分のポリゴンモデルの少なくとも一部の稜線に対応して描画され得る特徴を有するモデルである、請求項23記載のプログラム。
【請求項26】
前記第2の部分の透明度は、前記条件にかかわらず一定である、請求項23から25までのいずれか1項に記載のプログラム。
【請求項27】
前記第2の部分は、常に不透明である、請求項26に記載のプログラム。
【請求項28】
前記ゲーム処理は、プレイヤの操作に基づいてプレイヤキャラクタを制御する操作処理を含み、
前記透明処理部は、前記プレイヤキャラクタと、前記オブジェクトの相対的な位置関係に基づいて、前記オブジェクトの第1の部分の透明度を上げる、請求項23から27までのいずれか1項に記載のプログラム。
【請求項29】
前記オブジェクトが、前記プレイヤキャラクタの一部または全部を、前記仮想空間を含むシーンを描画するための仮想カメラから隠すとき、前記透明処理部は前記第1の部分のオブジェクトの透明度を上げる、請求項28に記載のプログラム。
【請求項30】
前記プレイヤキャラクタが、前記オブジェクトに近づいたときに、前記透明処理部は前記オブジェクトの透明度を上げる、請求項28に記載のプログラム。
【請求項31】
前記操作処理は、複数のプレイヤの操作に基づく複数のプレイヤキャラクタを制御する操作処理である、請求項28に記載のプログラム。
【請求項32】
仮想空間に配置された所定のオブジェクトを含むシーンを表示させるゲームシステムのコンピュータで実行させるプログラムであって、当該プログラムは、前記コンピュータを
第1の部分および前記第1の部分において法線ベクトルに基づき隠面として判定され得る面に対応して設定される第2の部分を含むポリゴンモデルを前記オブジェクトとして前記仮想空間に配置する、オブジェクト配置部と、
前記オブジェクトの第1の部分を半透明とする透明処理部と、
設定された前記透明度に基づいて前記第1の部分を描画し、前記第2の部分のポリゴンを描画する、描画処理部として機能させる、プログラム。
【図1】
【図2】
【図3】
【図6A】
【図6B】
【図7A】
【図7B】
【図8】
【図9A】
【図9B】
【図4A】
【図4B】
【図4C】
【図4D】
【図5】
【図6C】
【図2】
【図3】
【図6A】
【図6B】
【図7A】
【図7B】
【図8】
【図9A】
【図9B】
【図4A】
【図4B】
【図4C】
【図4D】
【図5】
【図6C】
【公開番号】特開2013−97473(P2013−97473A)
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願番号】特願2011−238021(P2011−238021)
【出願日】平成23年10月28日(2011.10.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
【公開日】平成25年5月20日(2013.5.20)
【国際特許分類】
【出願日】平成23年10月28日(2011.10.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】
[ Back to top ]