説明

プログラム、情報記憶媒体、画像生成システム

【課題】システムの処理負荷を軽減させて、仮想カメラのスピード感、オブジェクトに注目させるための演出効果を実現できるプログラム、情報記憶媒体、及び画像生成システムを提供する。
【解決手段】予めモデリングされた、集中線モデルを用いて描画処理を行う。かかる場合に、集中線モデルをスケーリング処理、回転処理を行い、仮想カメラの位置・向きに応じてオブジェクト空間に配置して描画処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、画像生成システムに関する。
【背景技術】
【0002】
従来から、複数のポリゴンが設定されるオブジェクト空間(仮想的な3次元空間)内において、仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムでは、ノイズ等を演出処理(例えば、特許文献1)、仮想カメラのスピード等を演出する処理を行っている(例えば、特許文献2)。
【特許文献1】特開2007−82628号公報
【特許文献2】特開2002−170131号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
また、スピード感や、オブジェクトに対する注目度、迫力を高めるために画面の端から画面の中心点(焦点)に向かう集中線を、複数のポリゴンを用いて描画し、プレーヤを惹きつける演出効果を施す処理、いわゆる集中線エフェクトの描画手法がある。しかし、この描画処理は、処理負荷が重いという難点があった。特に、自然な演出効果を実現することを考慮すると、複数のポリゴンそれぞれの形状を変化させる必要があるが、ポリゴンそれぞれの形状を変化させるための頂点演算処理は、演算数が多く処理負荷が重くなることが問題となっていた。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、システムの処理負荷を軽減させて、仮想カメラのスピード感、特定のオブジェクト(例えばプレーヤキャラクタ等)に注目させるための演出効果を実現できるプログラム、情報記憶媒体、及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、
オブジェクト空間における仮想カメラから見える画像を生成するためのプログラムであって、
複数のエフェクトオブジェクトによって構成される3次元のエフェクトモデルを記憶する記憶部と、
オブジェクト空間に、仮想カメラの位置・向きに応じて、前記エフェクトモデルを設定するオブジェクト空間設定部として、コンピュータを機能させ、
前記エフェクトモデルは、前記複数のエフェクトオブジェクトを所定軸周りに配置したモデルであって、
前記オブジェクト空間設定部が、
前記エフェクトモデルの前記所定軸側が仮想カメラから見える位置に、前記エフェクトモデルを設定することを特徴とするプログラムに関する。
【0007】
また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する画像生成システムに関係する。
【0008】
本発明によれば、エフェクトモデルを用いて描画することによって、処理負荷を軽減させて簡易にスピード感や迫力感を与える集中線の演出を行うことができる。
(2)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記エフェクトモデルを構成する前記複数のエフェクトオブジェクトそれぞれが、
前記所定軸方向の長さ成分を有していてもよい。
【0009】
本発明によれば、長さのある集中線を表現することができる。
(3)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記エフェクトモデルを構成する前記複数のエフェクトオブジェクトそれぞれの形状が、三角形であって、
前記エフェクトモデルが、
前記複数の三角形エフェクトオブジェクトそれぞれの一の稜線を連結して形成されてもよい。
【0010】
本発明によれば、とげ状の集中線を表現することができ、より迫力感やスピード感の感じられる演出効果を実現できる。
【0011】
(4)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記エフェクトモデルを構成する前記複数のエフェクトオブジェクトそれぞれの形状が三角形であって、
前記エフェクトモデルは、
前記複数の三角形エフェクトオブジェクトそれぞれの面が、前記所定軸を取り囲む仮想的な筒の側面に沿うと共に、前記複数の三角形エフェクトオブジェクトそれぞれの一の稜線を、前記仮想的な筒の底面の外周に沿って配置されていてもよい。
【0012】
本発明によれば、自然な集中線が施された画像を生成することができる。
【0013】
(5)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記オブジェクト空間設定部が、
仮想カメラの向きと前記所定軸とに基づいて、前記エフェクトモデルを配置してもよい。
【0014】
本発明によれば、仮想カメラの向きに応じた適切な位置にエフェクトモデルを配置させることができ、より自然な集中線を表現することができる。
【0015】
(6)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記オブジェクト空間設定部が、
仮想カメラの視線と前記所定軸とに基づいて、前記エフェクトモデルを配置してもよい。
【0016】
本発明によれば、カメラの視線に応じた適切な位置にエフェクトモデルを配置させることができ、さらに自然な集中線を表現することができる。
【0017】
(7)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記オブジェクト空間設定部が、
仮想カメラの視線上に前記所定軸を一致させて前記エフェクトモデルを配置してもよい。
【0018】
本発明によれば、複数の集中線が種々の方向から焦点に向かう自然な画像を表現することができる。
【0019】
(8)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記エフェクトモデルを、前記所定軸方向、及び、前記所定軸に垂直であって、直交する2軸方向の少なくとも一方の軸方向に対して、スケーリングするスケーリング制御部として、コンピュータを更に機能させるようにしてもよい。
【0020】
本発明によれば、処理負荷を軽減させ記憶容量を節約しながら集中の度合いの異なるバリエーションのある集中線の演出を行うことができる。
【0021】
(9)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記スケーリング制御部が、
仮想カメラの移動速度に基づいて、スケーリングの倍率を求め、求めた倍率に基づいて、前記エフェクトモデルを前記所定軸方向にスケーリングしてもよい。
【0022】
本発明によれば、仮想カメラの移動速度に応じたスピード感を与える集中線の演出を行うことができる。
【0023】
(10)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記スケーリング制御部が、
仮想カメラと前記エフェクトモデルの配置関係、及び、仮想カメラの画角とに基づいてスケーリングの倍率を求め、求めた倍率に基づいて、前記所定軸に垂直であって、直交する2軸方向の少なくとも一方の軸方向に対してスケーリングするようにしてもよい。
【0024】
本発明によれば、より自然な、仮想カメラのスピード感、オブジェクトに注目させるための演出効果を実現できる。例えば、画面の端から画面の一点に収束する集中線を表現することができる。
【0025】
(11)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記オブジェクト空間設定部が、
前記所定軸に対して回転させた前記エフェクトモデルを、オブジェクト空間に設定するようにしてもよい。
【0026】
本発明によれば、1つのエフェクトモデルを用いて集中線のパターンが変化している様子を表現することができる。つまり、本発明によれば従来よりも処理負荷を軽減して集中線が変化する様子を表現することができる。
【0027】
(12)また、本発明のプログラム、情報記憶媒体、画像生成システムは、
前記オブジェクト空間設定部が、
前記所定軸に垂直であって、直交する2軸の少なくとも一方の軸に対して回転させた前記エフェクトモデルを、オブジェクト空間に設定してもよい。
【0028】
本発明によれば、集中線の焦点が変化する様子を表現することができる。つまり、本発明によれば、従来よりも処理負荷を軽減して集中線の焦点が変化する様子を表現することができる。
【発明を実施するための最良の形態】
【0029】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0030】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0031】
操作部160は、プレーヤがオブジェクト(プレーヤキャラクタ、移動体)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0032】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0033】
なお、オブジェクトデータ記憶部176は、オブジェクトのオブジェクトデータが記憶される。例えば、エフェクトモデル(集中線モデル等)のデータ(エフェクトオブジェクト、ポリゴン)を記憶する。
【0034】
ここでエフェクトモデルとは、複数のエフェクトオブジェクトによって構成される3次元形状のモデルである。つまり、エフェクトモデルは、複数のエフェクトオブジェクトを所定軸周りに配置したモデルである。ここで、エフェクトモデルを構成する複数のエフェクトオブジェクトそれぞれの形状は、三角形としてもよいし、線ポリゴン(ライン)、四角形等の多角形であってもよい。
【0035】
また、本実施形態のエフェクトモデルを構成する複数のエフェクトオブジェクトそれぞれが、所定軸方向の長さ成分を有している。例えば、所定軸とは、例えばエフェクトモデルが定義されるモデリング座標系のz軸である。エフェクトモデルを構成する複数のエフェクトオブジェクトは、所定軸方向への長さ成分を有し、図3(A)〜(D)に示すように、複数の三角形エフェクトオブジェクト(三角形ポリゴン)それぞれの一の稜線を連結して形成されている。つまり、エフェクトモデルは、複数の三角形エフェクトオブジェクトそれぞれを、所定軸(z軸)を取り囲む仮想的な筒(柱でもよい)の底面の外周及び側面に沿って配置されて形成されるモデルである。
【0036】
より具体的には、エフェクトモデルは、x、y、z軸のモデリング座標系において、二等辺三角形のポリゴンが、原点0を中心に半径rの円を内包する多角形の各辺と連結しており、z負方向に対しての長さが不規則に(不均一に)形成されたモデルである。
【0037】
なお、操作部160は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ(操作データ)を入力できるものでもよい。例えば、入力装置は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力装置には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力装置には、入力装置と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【0038】
例えば、入力機器に備えられた加速度センサは、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサは、5msec毎に加速度を検出している。また、加速度センサは、1軸、2軸、6軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置(本体装置)に送信される。
【0039】
また、入力機器に備えられた撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。赤外線フィルタは、入力装置の前方に配置され、表示部190に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
【0040】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0041】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0042】
通信部196は外部(例えば他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0043】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
【0044】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクト、エフェクトモデル(集中線モデル)を配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0045】
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0046】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、スケーリング制御部116、回転制御部118、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0047】
オブジェクト空間設定部110は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0048】
特に本実施形態のオブジェクト空間設定部110は、オブジェクト空間に、仮想カメラの位置・向きに応じて、エフェクトモデルを設定する。
【0049】
また、オブジェクト空間設定部110は、エフェクトモデルの所定軸側(軸を取り囲むエフェクトモデルの内側)が仮想カメラから見える位置に、エフェクトモデルを設定する。
【0050】
また、オブジェクト空間設定部110は、仮想カメラの向きと前記所定軸とに基づいて、エフェクトモデルを配置する。つまり、仮想カメラの視線と所定軸(エフェクトモデルが定義されるモデリング座標系のz軸)とに基づいて、エフェクトモデルを配置する。なお、仮想カメラの視線上に所定軸を一致させてエフェクトモデルを配置してもよい。より詳細に説明すると、オブジェクト空間設定部110は、エフェクトモデルが定義されたモデリング座標系の座標値から、カメラ座標系の座標値に変換する座標変換マトリクスに基づいて、エフェクトモデルを構成するポリゴンの各頂点の座標値を変換する処理を行う。
【0051】
オブジェクト空間設定部110は、所定軸に対して回転させた前記エフェクトモデルを、オブジェクト空間に設定してもよい。また、オブジェクト空間設定部110は、所定軸に垂直な直交する2軸の少なくとも一方の軸に対して回転させたエフェクトモデルを、オブジェクト空間に設定してもよい。
【0052】
移動・動作処理部112は、オブジェクト(キャラクタ、移動体等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0053】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
【0054】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、移動体)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0055】
本実施形態のスケーリング制御部116は、エフェクトモデルを、所定軸方向、及び、所定軸に垂直であって、直交する2軸方向の少なくとも一方の軸方向に対して、スケーリングする。
【0056】
スケーリング制御部116は、仮想カメラの移動速度に基づいて、スケーリングの倍率を求め、求めた倍率に基づいて、エフェクトモデルを所定軸方向(例えばモデリング座標系のz軸方向)にスケーリングする。
【0057】
また、スケーリング制御部は、仮想カメラと前記エフェクトモデルの配置関係、及び、仮想カメラの画角とに基づいてスケーリングの倍率を求め、求めた倍率に基づいて、所定軸に垂直であって、直交する2軸方向(例えばモデリング座標系のx、y軸方向)の少なくとも一方の軸に対してスケーリングする。
【0058】
より具体的に説明すると、特に本実施形態のスケーリング制御部116は、エフェクトモデルを、モデリング座標形の原点を中心に所定方向にスケーリング(拡大・縮小)する処理を行う。
【0059】
スケーリング制御部116は、仮想カメラの位置からビューボリューム範囲内の所与の位置までの距離(例えば、仮想カメラから前方クリッピング面までの距離)、仮想カメラの画角、アスペクト比の少なくとも1つの情報に基づいて、ビューポートサイズを求め、ビューポートサイズに基づいて倍率(スケーリングパラメータ)を求め、エフェクトモデルのモデリング座標形のx、y成分を倍率に基づいてスケールする。なお、x成分にかける倍率と、y成分にかける倍率は同じでもよいし、異ならせてもよい。例えば、x成分にかける倍率と、y成分にかける倍率との比率を、アスペクト比と同じにしてもよい。
【0060】
スケーリング制御部116は、エフェクトモデルを、モデリング座標形の原点を中心に、z方向へスケーリングする処理を行うことができる。かかる場合には、仮想カメラの移動速度に応じて、z方向へスケーリングする倍率を変化させてもよい。
【0061】
なお、本実施形態のスケーリング制御部116は、モデリング座標系に限らず、種々の座標系(ワールド座標系、カメラ座標系、投影座標系、デバイス座標系)において、スケーリング処理を行ってもよい。
【0062】
本実施形態の回転制御部118は、エフェクトモデルを、モデリング座標系のx、y、z軸の少なくとも1つの軸に対して回転させる処理を行う。なお、予め記憶されているエフェクトモデルを構成するポリゴンの各頂点を、モデリング座標系からカメラ座標形(視点座標形)に座標値を変換する座標変換を行った後に、カメラ座標形のx、y、z軸の少なくとも1つの軸に対して回転させるようにしてもよい。
【0063】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0064】
なお、本実施形態では、エフェクトモデルを構成するエフェクトオブジェクト(ポリゴン)の各頂点を、エフェクトモデルが定義されたモデリング座標系から、カメラ座標系に変換する座標変換マトリクスを求める処理を行う。
【0065】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0066】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0067】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0068】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0069】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0070】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0071】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。なお、本実施形態では、Zテストによる隠面消去処理を行っているが、エフェクトオブジェクト(集中線モデルを構成するポリゴン)の描画ピクセルについてはZテストの対象にしないように制御している。つまり、エフェクトモデルの描画ピクセルが必ず描画されるようにしている。
【0072】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0073】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0074】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0075】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0076】
2.本実施形態の手法
(1)概要
本実施形態は、仮想カメラのスピード感や、臨場感、迫力感を演出するために、いわゆる集中線エフェクトの描画処理をリアルタイムに行うものである。
【0077】
例えば、スキーゲームのように、仮想カメラがプレーヤキャラクタに追従して移動する場合には、プレーヤキャラクタの移動速度が上昇すると、仮想カメラの移動速度も併せて上昇させて、仮想カメラの移動速度に応じて、集中線を変化させ、仮想カメラのスピード感を演出している。
【0078】
従来では、図2に示すように、この集中線をスクリーン座標系において、n個の複数のポリゴンA0〜Anによって表現し、つまり、スクリーンの端に位置する2点の頂点a1、a2と、画面の中心Oに向かう頂点a3を決定する処理を行って集中線を表現していた。しかし、自然な仮想カメラのスピード感の演出を行うためには、フレーム毎に複数のポリゴンA0〜Anそれぞれの長さ(画面の端から中心に向かう長さ)をランダムに変化させなければならず、演算数が多く画像生成システムの処理負荷が重くなるという問題が生じていた。
【0079】
そこで、本実施形態では、予めモデリングされた集中線モデル(エフェクトモデル)を用いて、仮想カメラのスピード感を表現している。つまり、本実施形態では、予めメモリに記憶されている集中線モデルを仮想カメラの位置・向きに応じてオブジェクト空間に配置して、仮想カメラから見える集中線モデルを描画し、従来よりも処理負荷を軽減させた簡易な手法で、仮想カメラのスピード感を表現している。
【0080】
例えば、図3(A)〜(D)に示すモデリング座標系においてモデリングされた略円筒状(略王冠状)の集中線モデル、つまり複数のポリゴン(エフェクトオブジェクト、集中線ポリゴン、集中線オブジェクト)B0〜Bnによって構成される集中線モデルを用いて描画処理を行う。そして、図5に示すように、集中線モデルのxy平面の円を内包する多角形が、ビューポートに内接するようにスケーリング処理(拡大・縮小処理)を行い、図6に示すように、仮想カメラから見える集中線モデルを投影面に投影することによって、集中線を表現している。つまり、集中線モデルを構成するポリゴンB0〜Bnを、集中線の役割を果たし、スピード感、迫力感を表現している。なお、集中線モデルを構成するポリゴンを描画するピクセルについては、Zテストによる隠面消去処理を行わないようにしている。集中線モデルを、常に描画して自然な演出効果を実現するためである。
【0081】
また、本実施形態では、図6に示すように、予め定義された集中線モデルを、モデリング座標系におけるz軸に対してランダムな角度で回転させることによって、集中線が、動的に変化する様子を表現している。
【0082】
このように本実施形態では、予め集中線モデルをモデリングし、そして、仮想カメラに対して適切な位置に配置することによって、従来よりも処理負荷を軽減して、集中線の表現によるスピード感や、迫力感、注目度を与える演出効果を実現することができる。以下、本実施形態の具体的な手法について説明する。
【0083】
(2)集中線モデル
まず、図3(A)〜(D)を用いて、モデリング座標系においてモデリングされた集中線モデルについて説明する。
【0084】
図3(A)は、本実施形態の集中線モデルの一例である集中線モデルの斜視図である。また、図3(B)は、モデリング座標系におけるxz平面における集中線モデルの図(上面図)を示し、図3(C)は、モデリング座標系におけるxy平面における集中線モデルの図(正面図)を示す。また、図3(D)は、モデリング座標系におけるyz平面における集中線モデルの図(側面図)を示す。
【0085】
本実施形態の集中線モデルは、図3(A)に示すように、複数のポリゴンB0〜Bnによって構成されてる三次元形状のモデルである。つまり、集中線モデルは、所定方向の長さを有する複数のポリゴンが環状に配置されるモデルである。例えば、集中線モデルを構成する複数の各ポリゴンは、第1の方向(縦方向)の長さ、第2の方向(横方向)の長さを有している。具体的には、複数の各ポリゴンは、図4に示すように、縦方向の長さhと、横方向の長さwとを有している。そして、本実施形態の集中線モデルは、縦方向の長さと、横方向の長さとが、不規則になるように、複数の各ポリゴンを環状に配置している。自然な集中線を表現できるからである。
【0086】
また、本実施形態では、図3(A)に示すように、本実施形態の集中線モデルを構成する複数のポリゴンは、面ポリゴンであって(頂点が3つ以上のポリゴン)、各ポリゴンは表面、裏面を有しており、集中線モデルの内側が、集中線ポリゴンを構成する各ポリゴンの表面になるように集中線モデルを形成している。つまり、集中線モデルの外側が、集中線モデルを構成する各ポリゴンの裏面となるように、集中線モデルを形成している。
【0087】
なお、集中線モデルの内側が、集中線ポリゴンを構成する各ポリゴンの裏面であって、集中線モデルの外側が、集中線モデルを構成する各ポリゴンの表面となるように、集中線モデルを形成してもよい。
【0088】
また、集中線モデルは、仮想的な環状線に沿って各ポリゴンを配置してもよい。例えば、図3(A)に示すように、仮想的な多角形の環状線に沿って、各ポリゴン(B0〜Bn)が配置される。別の表現をすれば、集中線モデルは、複数のポリゴンそれぞれの少なくとも1つの頂点を結ぶと、環状になるように配置されたモデルである。
【0089】
さらに、具体的に集中線モデルの例を説明する。例えば、図3(A)〜(D)に示すように、集中線モデルは、モデリング座標系の原点0を中心点とするxy平面上の半径rの円を内包する多角形の辺を構成する2つの頂点と、当該2点の頂点でなす辺上の任意の点を、モデリング座標系におけるz負方向に平行に移動させた点とによって構成されるポリゴンを複数形成することによって構成される。
【0090】
つまり、集中線モデルを構成するn個のポリゴン(B0〜Bn)は、例えば、図3(A)〜(D)、図4に示すように、半径rの円を内包する多角形の2点b1、b2と、2点b1、b2を結ぶ線分の中点をz負方向に平行に移動させた線上の点b3とによって構成される。つまり、ポリゴンBnは線分b1、b2を底辺とする2等辺三角形であることが望ましい。生成される画像において、各ポリゴンが1点の焦点に向かって集中する様子を適切に表現できるからである。
【0091】
なお、xy平面上の半径rの円を内包する多角形の辺の長さwは、図3(A)〜(D)に示すように、不均一であってもよいし、均一にして円の円周上で正多角形を形成できるものであってもよい。また、各ポリゴンのz負方向へ引き伸ばした長さhは不均一でもよいし、均一であってもよい。なお、z負方向への長さhは所定値以下に制限してもよい。なお、集中線モデルを構成する複数のポリゴンB0〜Bnそれぞれの頂点b1、b2のzの座標値は、必ずしも零の位置でなくてもよい。例えば、複数のポリゴンB0〜Bnそれぞれの頂点b1、b2のzの座標値をそれぞれ異なるようにしてもよい。
【0092】
(3)集中線モデルをオブジェクト空間に設定する手法
本実施形態の集中線モデルは、集中線モデルの内側が、集中線ポリゴンを構成する各ポリゴンの表面であって、集中線モデルの外側が、集中線モデルを構成する各ポリゴンの裏面となるように構成するものである。そして、本実施形態では、集中線モデルの内側を描写することに意義を有するものである。なぜなら、集中線モデルの内側(集中線モデルを構成する各ポリゴンの表面)を透視変換(投影変換)することによって、集中線モデルを構成するポリゴンが、集中線の役割を果たすことができるからである。つまり、集中線モデルを構成するポリゴンの各点から仮想カメラに向かって投影されることによって、例えば、図6に示すように、周囲から焦点に向かう集中線を表現することができる。
【0093】
したがって、本実施形態では、集中線を適切に表現するために、以下の手法で、集中線モデルをオブジェクト空間に配置している。
【0094】
まず、本実施形態では、集中線モデルを構成するポリゴンの各頂点の座標値を、モデリング座標系からカメラ座標系に変換する座標変換を行う。例えば、集中線モデルの原点を、カメラ座標系のz軸上の、ビューボリューム内の所与の位置に配置する。
【0095】
そして、本実施形態では、環状に配置された複数のポリゴンによって構成される集中線モデルの正面側縁部の環状部分が、ビューポートに内接、あるいは、ビューポートを包含するように集中線モデルを配置している。集中線モデルの正面側縁部の環状部分(円を内包する多角形)が、ビューポート(投影面、前面クリッピング面、後方クリッピング面、投影面に平行なビューボリュームの断面でもよい。)に内接するようにオブジェクト空間に設定する処理を行う。このようにすれば、生成される画像において、集中線モデルを構成するポリゴンのとげ状の部分が画面の一点(焦点)に向かうようになり、自然な集中線を表現することができるからである。
【0096】
例えば、モデリング座標系におけるxy成分を、原点中心にx軸方向にSx倍、y軸方向にSy倍、スケーリング(拡大・縮小)を行うマトリクスを、集中線モデルを構成するポリゴンの各頂点に乗算する処理を行う。
【0097】
すなわち、スケーリングを行うスケーリングパラメータSx、Syは、ビューポートの横サイズ、縦サイズ、そして、仮想カメラの画角θ、仮想カメラ(仮想カメラの原点)から、ビューボリューム内の所定位置までの距離L(例えば、仮想カメラから前方クリッピング面までの距離)、アスペクト比a(ビューポートの横幅と縦幅との比率)によって、求めることができる。
【0098】
尚、集中線モデルの原点は、前方クリッピング面から後方クリッピング面の範囲、すなわちビューボリュームの範囲に配置しなけれなならない。集中線モデルがクリッピングによって描画されないことを防ぐためである。
【0099】
ここで、集中線モデルを、前方クリッピング面に配置する場合を例にとり具体的に説明する。仮想カメラの画角θ(仮想カメラの水平画角θ)と、仮想カメラから前方クリッピング面までの距離をLとに基づき、ビューポートの横サイズVwと、縦サイズをVhを求めることができる。すなわり、ビューポートの横サイズVwは、以下の式(1)によって求まる。
【0100】
Vw=2L×tan(θ/2) (1)
また、アスペクト比aに基づき、ビューポートの縦サイズVhは、以下の式(2)によって求まる。
【0101】
Vh=Vw/a=2L/a×tan(θ/2) (2)
つまり、集中線モデルの正面側縁部の環状部分は、ビューポートに内接できればよいので、ビューポートの横サイズVw、縦サイズVhから、スケーリング後の集中線モデルのxy平面の円の半径r1は以下の数式で求めることができる。
【0102】
【数1】

【0103】
つまり、図7(B)に示すように、集中線モデルのモデリング座標系におけるxy平面上の円の半径がr1であればよい。したがって、円の半径をr1にする場合には、x、y成分に原点を中心としてx軸方向、y軸方向にr1/rをスケーリングしたマトリクス(拡大・縮小マトリクス)を、集中線モデルを構成するポリゴンの各頂点に乗算し、スケーリングされた集中線モデルの原点を、仮想カメラからの距離Lの位置に配置する処理を行う。つまり、スケーリングパラメータSx、Syの値はr1/rになる。
【0104】
なお、スケーリングされた集中線モデルを配置する場合には、仮想カメラに平行な面(カメラ座標系におけるxy平面)が集中線モデルのxy平面となるように配置する。
【0105】
以上のように、集中線モデルをオブジェクト空間に配置することによって、図6に示すように、透視変換、ビューポート変換された後に、集中線モデルの正面側縁部の環状部分のエッジがクリッピングされ、自然な集中線を表現することができる。
【0106】
(4)集中線モデルの長さを変化させる手法
本実施形態では、仮想カメラの移動速度の変化に応じて、集中線モデルのポリゴンの長さ(図3に示すモデリング座標系におけるz軸方向への長さ)をスケーリングする処理を行っている。つまり、モデリング座標系におけるz成分を、原点中心にz軸方向にSz倍スケーリング(拡大・縮小)を行うマトリクスを、集中線モデルを構成するポリゴンの各頂点に乗算する処理を行う。
【0107】
このようにすれば、生成された画像の集中線の画面の端から焦点に向かう長さが、仮想カメラのスピードに応じて、長くなったり、短くなったりするので、さらなうスピード感の演出を実現できる。
【0108】
かかる場合に、スケーリングパラメータSzの値を仮想カメラの移動速度に応じて変化させてもよい。例えば、移動速度が零のときは、スケーリングパラメータSzを零にし、移動速度が上昇するにつれて、スケーリングパラメータSzを上昇させるようにしてもよい。なお、スケーリングパラメータSzは、所定値を超えないように制御してもよい。
【0109】
例えば、スケーリングパラメータSzが1の場合における仮想カメラの移動速度の値を予め決定する。例えば、スケーリングパラメータSzが1の場合における仮想カメラの移動速度の値を10に決定する。そして、仮想カメラの移動速度kとすると、z成分にk/10をスケーリングしたマトリクスを、集中線モデルを構成するポリゴンの各頂点に乗算する。そして、スケーリングされた集中線モデルをオブジェクト空間に設定する。
【0110】
なお、本実施形態では、ゲーム状況に応じて、集中線モデルをz方向へスケーリングする処理を行ってもよい。例えば、特別なキャラクタを表示させる場合や、プレーヤがレースのゴール地点に達したした場合などには、z方向へのスケーリングのスケーリングパラメータを2倍にする。このようにすれば、通常時よりも集中度合いの強い演出効果を行うことができる。
【0111】
(5)回転制御についての説明
本実施形態では、図6に示すように、時間経過に応じて、集中線モデルがモデル座標系におけるz軸に対して、ランダムな角度に回転させている。つまり、フレーム毎に、回転角度φを決定して、z軸に対して回転角度φ回転させるマトリクスを、集中線モデルに乗算して、集中線モデルをオブジェクト空間に設定する。
【0112】
例えば、回転角度φは、乱数アルゴリズムに基づいてランダムな値を求めて設定することが望ましい。規則的に回転させると、プレーヤに、同一の集中線モデルを使用していることを知られてしまい、ゲームに対する好奇心を損なわせる恐れあるからである。例えば、回転角度φは60度以上120度以下の回転角度でランダムに回転させるように制御することが望ましい。
【0113】
このように、本実施形態では、モデリングされた1つの集中線モデルを用いて、z軸に対してランダムに回転させる制御を行うので、従来の手法に比較すると格段に、演算数が減算される。つまり、従来に比べて処理負荷を軽減させることができる。
【0114】
尚、本実施形態では、集中線モデルをモデル座標系のx軸、y軸に対して回転させるように制御してもよい。このようにすれば、集中線の焦点を移動させることができる。
【0115】
例えば、図8(A)に示すように、現フレームの仮想カメラの視線方向をカメラ座標系のz軸負方向に設定した場合に、前フレームの仮想カメラの視線方向と、現フレームの仮想カメラの視線方向とのなす回転角度t1、つまり、x軸正方向に対して角度t1で回転する場合には、図8(B)に示すように、集中線モデルを構成するポリゴンの各頂点に、モデリング座標系のx軸の正方向から回転角度t1を回転するマトリクスを乗算してから、集中線モデルを配置する処理を行う。このようにすれば、図8(C)に示すように、集中線の焦点が画像の中心より下方になるように描画され、仮想カメラの動きに応じた集中線を表現することができる。
【0116】
また、例えば、図9(A)に示すように、現フレームの仮想カメラの視線方向をカメラ座標系のz軸負方向に設定した場合に、前フレームの仮想カメラの視線方向と、現フレームのカメラ座標系のy軸の正方向から回転角度t2で回転する場合には、図9(B)に示すように、集中線モデルを構成するポリゴンの各頂点に、モデリング座標系のy軸正方向を基準に角度t2を回転するマトリクスを乗算してから、配置する処理を行う。このようにすれば、図9(C)に示すように、集中線の焦点が画像の中心より左方になるように描画され、仮想カメラの動きに応じた集中線を表現することができる。
【0117】
なお、集中線モデルが、x、y軸に回転させる制御を場合には、集中線モデルのx、y軸に対するスケーリングするスケーリングパラメータSx、Syを、上述して求められるスケーリングパラメータよりも、やや大きめに見積もることが望ましい。例えば、図5に示すように、集中線モデルを、ビューポートに丁度よく収まるように配置すると、集中線モデルがy軸に対して角度t2によって回転した場合に、図10(A)に示すように、集中線モデルが配置されることになってしまい、例えば、図10(B)に示すように集中線モデルの正面側縁部の環状部分のエッジが画面に表示されてしまって不自然な演出になってしまう恐れがある。
【0118】
したがって、本実施形態では、集中線モデルをx、y成分をスケーリングするスケーリングパラメータSx1、Sy1にさらに拡大させるように所定倍を乗じた値を、最終的な集中線モデルをx、y成分をスケーリングするスケーリングパラメータSx2、Sy2に設定している。
【0119】
例えば、上述したようにアスペクト比、仮想カメラの画角、仮想カメラと前方クリッピング面までの距離Lによって、集中線モデルのx、y成分のスケーリングするスケーリングパラメータSx1、Sy1を求めた後、さらに、所定倍率(例えば、1.5)を乗じて、最終的な集中線モデルをx、y成分をスケーリングするスケーリングパラメータSx2、Sy2に設定している。このようにすれば、図11(A)に示すように、ビューポートよりも、やや大きめにスケーリングされた集中線モデルをオブジェクト空間に配置するので、図11(B)に示すように、集中線モデルがy軸に対して回転角度t2によって回転した場合であっても、集中線モデルの正面側縁部の環状部分のエッジはクリッピングされるので、自然な集中線を表現することができる。
【0120】
なお、集中線モデルの正面側縁部の環状部分のエッジが、ビューポート(画面、投影面)に反映されてしまうか否かの判断を行い、集中線モデルの正面側縁部の環状部分のエッジが、ビューポート(画面、投影面)に反映されてしまうと判断される場合には、集中線モデルを描画しないように制御してもよい。なお、正面側縁部の環状部分のエッジが、ビューポート(画面、投影面)に反映されてしまうか否かの判断は、集中線モデルのxy平面上の多角形を内包する円の半径(集中線モデルの多角形を内包する楕円の長軸、短軸の長さ)、x、y軸周りの回転角度t1、t2、そして、画角θ、アスペクト比等に基づいて求めることができる。
【0121】
なお、本実施形態では、集中線モデルが回転してオブジェクト空間に配置する場合には、集中線モデルのエッジがクリッピングされる、集中線モデルと仮想カメラとの距離M1を求め、仮想カメラから距離M1の位置に集中線モデルを配置してもよい。このようにすれば、集中線モデルの正面側縁部の環状部分のエッジはクリッピングされ、自然な集中線を表現できる。例えば、M1は、集中線モデルのxy平面上の多角形を内包する円の半径(集中線モデルの多角形を内包する楕円の長軸、短軸の長さ)、x、y軸周りの回転角度t1、t2、そして、画角θとに基づいて、求めることができる。
【0122】
例えば、集中線モデルが、仮想カメラの向きに正対している場合には、仮想カメラと集中線モデルとの距離をM0(L<M0;Lは仮想カメラと前方クリッピング面までの距離)に保ち、集中線モデルが回転した場合には、仮想カメラと集中線モデルとの距離を、M1(L<M1<M0)に設定することが望ましい。
【0123】
(6)描画処理
本実施形態では、集中線モデルを構成するポリゴンを半透明描画してもよい。つまり、レンダリングされた元画像の色と、集中線ポリゴンとの色をα値に基づいて合成する処理(線形合成、加算合成処理等)を行う。かかる場合には、仮想カメラからの距離に応じて、集中線ポリゴンのα値(半透明度、半透明度)を変化させるようにして描画処理を行う。具体的には、仮想カメラからの奥行き値(Z値)に基づいて、集中線モデルのポリゴンのα値を低くする。このようにすれば、集中線モデルが焦点に向かうにつれて透明になり、集中線モデルのポリゴンの色が、元画像の色にとけ込むような画像を生成できる。
【0124】
また、仮想カメラの移動速度に応じて、α値を変化させるようにしてもよい。例えば、仮想カメラの移動速度が上昇するにつれて、α値の値を大きくして、集中線モデルを構成するポリゴンの色を濃くするようにし、仮想カメラの移動速度が減速するにつれて、α値の値を低くして、集中線モデルを構成するポリゴンの色が薄くなるようにしてもよい。このようにすれば、さらに、仮想カメラのスピード感を表現することができる。
【0125】
また、本実施形態では、集中線モデルを構成するポリゴンのカラーは、1つのカラー(例えば白色)に限らず、複数のカラーを用いて、集中線モデルを構成するポリゴンのカラーを決定してもよい。
【0126】
3.本実施形態の処理
次に、本実施形態の詳細な処理例について図12のフローチャートを用いて説明する。
【0127】
まず、モデリング座標系において定義された集中線モデルのスケーリングを行う(ステップS1)。つまり、集中線モデルのx、y成分のスケーリング処理を行い、仮想カメラの移動速度等に基づいて、集中線モデルのz成分のスケーリング処理を行う。
【0128】
次に、集中線モデルを回転する回転制御を行う(ステップS2)。例えば、モデリング座標系の原点を中心に、z軸に対してランダムに決定された回転角度φで集中線モデルを回転させる処理を行う。また、前フレームの視線方向と現フレームの視線方向とのなすx軸の回転角度t1に応じて、モデリング座標系の原点を中心にx軸に対して回転角度t1で集中線モデルを回転させる処理を行い、前フレームの視線方向と現フレームの視線方向とのなすy軸の回転角度t2に応じて、モデリング座標系の原点を中心にy軸に対して回転角度t2で集中線モデルを回転させる処理を行う。
【0129】
そして、集中線モデルをオブジェクト空間に配置する処理を行う(ステップS3)。例えば、集中線モデルを構成するポリゴンの各頂点の座標値を、モデリング座標形からカメラ座標系の座標値に変換するマトリクスを、集中線モデルを構成する各頂点に乗算して座標変換を行う。
【0130】
そして、仮想カメラから見える画像を生成する処理を行う(ステップS4)。つまり、透視変換処理、ビューポート変換処理を行い画像を生成する。なお、集中線モデルを構成するポリゴンのピクセルは、zテスト判定を行わずに、常に描画されるように処理を行っている。以上で処理が終了する。
【0131】
4.応用例
(1)集中線モデルのスケーリング処理の応用例
本実施形態では、集中線モデルをモデリング座標系の原点を中心にx、y成分を同じスケーリングパラメータでスケーリングする手法について説明したが、それぞれをx、y成分について異なるスケーリングパラメータでスケーリングしてもよい。例えば、集中線モデルを、アスペクト比に応じて、スケーリングしてもよい。例えば、アスペクト比が16:9である場合には、図13(A)に示すように、長軸iと短軸jとの比率が16:9になるように、集中線モデルのスケーリング処理を行ってもよい。そして、スケーリングされた集中線モデルは、略楕筒形状のモデルに変形されて、オブジェクト空間に配置される。
【0132】
このようにすれば、例えば、図13(B)に示すように、複数のキャラクタが配置される場合にも適切な集中線を表現することができる。また、画面を上下に分割した場合でも、分割画像に応じたアスペクト比の横サイズが縦サイズに比べて極端に長い場合でも集中線を適切に表現することができる。
【0133】
(2)集中線モデルの応用例
本実施形態の集中線モデルは、図14(A)〜(D)に示すように、線ポリゴンによって構成されるモデルであってもよい。つまり、モデリング座標系の原点0を中心点とするxy平面上の半径rの円上の複数の任意の点を、z負方向に平行に移動させた線ポリゴンであってもよい。各線ポリゴンの長さは不均一でもよいし、均一であってもよい。
【0134】
本実施形態の集中線モデルは、図15(A)〜(D)に示すように、ポリゴン間に隙間が生じるような形状であってもよい。つまり、xy平面上の半径rの円を内包する多角形の辺のうち任意の辺によって構成されるポリゴンによって構成されるものでもよい。
【0135】
本実施形態の集中線モデルは、図16(A)に示すようなモデルであってもよい。つまり、集中線モデルを構成するポリゴンの先端がz軸へ向かってすぼまるような形状であってもよい。なお、かかる場合には、生成される画像において、各ポリゴンが交差しないように、当該点の移動距離を制限することが望ましい。なお、このような集中線モデルを用いた場合には、透視変換処理をなされた画像は、集中度合いが高いポリゴンが視線方向に集中するような画像が生成されることになる。
【0136】
また、本実施形態の集中線モデルは、図16(B)に示すようなモデルであってもよい。つまり、集中線モデルを構成するポリゴンの先端がz軸から放射状に放たれるような形状としてもよい。なお、かかる集中線モデルを用いた場合には、ポリゴンが透視変換処理をなされた画像は、集中度合いが低いポリゴンが視線方向に集中するような画像が生成されることになる。
【0137】
(3)円筒モデルにテクスチャをマッピングする手法
なお、本実施形態では、図17(A)に示す円筒モデル(楕円筒モデル)を集中線モデルとして用いてもよい。かかる場合には、図17(B)に示す集中線の模様が施された集中線テクスチャTXTを円筒モデルにテクスチャマッピングを行うようにしてもよい。すなわち、集中線テクスチャTXTは、集中線テクスチャTXTの先端(U=0)から末端(U=1)に向けて、とげ状の模様が施された画像である。そして、集中線テクスチャの先端(U=0)が円筒モデルの仮想カメラから見ての手前側に、集中線テクスチャの末端が円筒モデルの仮想カメラから見て奥側になるように、円筒モデルの内側に集中線テクスチャTXTをマッピングする処理を行う。このようにすれば、図17(C)に示すような集中線模様が施された画像を生成することができる。
【0138】
なお、集中線テクスチャの解像度は高いほうが望ましい。集中線テクスチャTXTの模様が手前に大きく見えるので、プレーヤに違和感を与えないようにするためである。
【0139】
(4)複数の集中線モデルを用いて描画する手法
本実施形態では、複数の集中線モデルを用意し、仮想カメラの移動速度や、ゲーム状況に基づいて、複数の集中線モデルからいずれかの集中線モデルを選択し、選択された集中線モデルを用いて描画するようにしてもよい。このようにすれば、バリエーションに富んだ集中線を表現することができる。
【図面の簡単な説明】
【0140】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】集中線を表現する手法の一例。
【図3】図3(A)〜(D)は、本実施形態の集中線モデルの一例。
【図4】集中線モデルを構成するポリゴンの説明図。
【図5】集中線モデルをオブジェクト空間に配置する手法の説明図。
【図6】透視変換後の集中線モデルの説明図。
【図7】図7(A)(B)は集中線モデルを構成するポリゴンの説明図。
【図8】図8(A)〜(C)は集中線モデルの回転制御の説明図。
【図9】図9(A)〜(C)は集中線モデルの回転制御の説明図。
【図10】図10(A)(B)は集中線モデルをオブジェクト空間に配置する手法の説明図。
【図11】図11(A)(B)は集中線モデルをオブジェクト空間に配置する手法の説明図。
【図12】本実施形態の処理のフローチャート。
【図13】図13(A)(B)は、集中線モデルのスケーリングの説明図。
【図14】図14(A)〜(D)は、本実施形態の集中線モデルの一例。
【図15】図15(A)〜(D)は、本実施形態の集中線モデルの一例。
【図16】図16(A)(B)は、本実施形態の集中線モデルの一例。
【図17】図17(A)〜(C)は、本実施形態の集中線を表現するための手法を説明するための図。
【符号の説明】
【0141】
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 仮想カメラ制御部、116 スケーリング制御部、118 回転制御部、
120 描画部、
122 カメラマトリクス演算部、124 頂点マトリクス演算部、
126 頂点処理部、130 音生成部、
160 操作部、170 記憶部、172 主記憶部、
174 描画バッファ、176 オブジェクトデータ記憶部、
178 テクスチャ記憶部、179 zバッファ、180 情報記憶媒体、
190 表示部、192 音出力部、196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間における仮想カメラから見える画像を生成するためのプログラムであって、
複数のエフェクトオブジェクトによって構成される3次元のエフェクトモデルを記憶する記憶部と、
オブジェクト空間に、仮想カメラの位置・向きに応じて、前記エフェクトモデルを設定するオブジェクト空間設定部として、コンピュータを機能させ、
前記エフェクトモデルは、前記複数のエフェクトオブジェクトを所定軸周りに配置したモデルであって、
前記オブジェクト空間設定部が、
前記エフェクトモデルの前記所定軸側が仮想カメラから見える位置に、前記エフェクトモデルを設定することを特徴とするプログラム。
【請求項2】
請求項1において、
前記エフェクトモデルを構成する前記複数のエフェクトオブジェクトそれぞれが、
前記所定軸方向の長さ成分を有することを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記エフェクトモデルを構成する前記複数のエフェクトオブジェクトそれぞれの形状が、三角形であって、
前記エフェクトモデルが、
前記複数の三角形エフェクトオブジェクトそれぞれの一の稜線を連結して形成されていることを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記エフェクトモデルを構成する前記複数のエフェクトオブジェクトそれぞれの形状が三角形であって、
前記エフェクトモデルは、
前記複数の三角形エフェクトオブジェクトそれぞれの面が、前記所定軸を取り囲む仮想的な筒の側面に沿うと共に、前記複数の三角形エフェクトオブジェクトそれぞれの一の稜線を、前記仮想的な筒の底面の外周に沿って配置されるモデルであることを特徴とするプログラム。
【請求項5】
請求項1〜4のいずれかにおいて、
前記オブジェクト空間設定部が、
仮想カメラの向きと前記所定軸とに基づいて、前記エフェクトモデルを配置することを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
前記オブジェクト空間設定部が、
仮想カメラの視線と前記所定軸とに基づいて、前記エフェクトモデルを配置することを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記オブジェクト空間設定部が、
仮想カメラの視線上に前記所定軸を一致させて前記エフェクトモデルを配置することを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
前記エフェクトモデルを、前記所定軸方向、及び、前記所定軸に垂直であって、直交する2軸方向の少なくとも一方の軸方向に対して、スケーリングするスケーリング制御部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項9】
請求項8において、
前記スケーリング制御部が、
仮想カメラの移動速度に基づいて、スケーリングの倍率を求め、求めた倍率に基づいて、前記エフェクトモデルを前記所定軸方向にスケーリングすることを特徴とするプログラム。
【請求項10】
請求項8又は9において、
前記スケーリング制御部が、
仮想カメラと前記エフェクトモデルの配置関係、及び、仮想カメラの画角とに基づいてスケーリングの倍率を求め、求めた倍率に基づいて、前記所定軸に垂直であって、直交する2軸方向の少なくとも一方の軸方向に対してスケーリングすることを特徴とするプログラム。
【請求項11】
請求項1〜10のいずれかにおいて、
前記オブジェクト空間設定部が、
前記所定軸に対して回転させた前記エフェクトモデルを、オブジェクト空間に設定することを特徴とするプログラム。
【請求項12】
請求項1〜11のいずれかにおいて、
前記オブジェクト空間設定部が、
前記所定軸に垂直であって、直交する2軸の少なくとも一方の軸に対して回転させた前記エフェクトモデルを、オブジェクト空間に設定することを特徴とするプログラム。
【請求項13】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜12のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項14】
オブジェクト空間における仮想カメラから見える画像を生成するための画像生成システムであって、
複数のエフェクトオブジェクトによって構成される3次元のエフェクトモデルを記憶する記憶部と、
オブジェクト空間に、仮想カメラの位置・向きに応じて、前記エフェクトモデルを設定するオブジェクト空間設定部とを含み、
前記エフェクトモデルは、前記複数のエフェクトオブジェクトを所定軸周りに配置したモデルであって、
前記オブジェクト空間設定部が、
前記エフェクトモデルの前記所定軸側が仮想カメラから見える位置に、前記エフェクトモデルを設定することを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−140370(P2009−140370A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2007−317731(P2007−317731)
【出願日】平成19年12月7日(2007.12.7)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】