説明

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

【課題】 仮想カメラの位置や向きに関わらず適切な速度感の演出効果を実現可能なプログラム、情報記憶媒体、及び画像生成システムを提供すること。
【解決手段】 オブジェクト空間における仮想カメラから見える画像を生成するためのプログラムであって、円柱又は多角柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトEOを記憶する記憶部と、オブジェクト空間に配置された移動体オブジェクトMOの移動を制御する移動制御部と、仮想カメラVCを移動体オブジェクトMOの移動に追従させる制御を行う仮想カメラ制御部と、移動体オブジェクトMOの位置に基づいて、エフェクトオブジェクトEOをオブジェクト空間に配置するオブジェクト空間設定部としてコンピュータを機能させることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【0002】
従来から、複数のポリゴンが設定されるオブジェクト空間(仮想的な3次元空間)内において、仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムでは、仮想カメラのスピード等を演出する処理を行うものが知られている(例えば、特許文献1)。
【特許文献1】特開2002−170131号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
また、画面の端から画面中央にある移動体に向かう集中線を、スクリーン座標系において複数のポリゴンを用いて表現し、速度感を演出する効果を施す処理、いわゆる集中線エフェクトの描画手法がある。しかし、この描画処理では、仮想カメラが移動体の進行方向後方に位置することを前提としているため、例えば仮想カメラが移動体の横に位置している場合、又は仮想カメラが進行方向を向いていない場合に不自然な速度感演出となってしまうといった問題点があった。
【0005】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、
仮想カメラの位置や向きに関わらず適切な速度感の演出効果を実現可能なプログラム、情報記憶媒体、及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0006】
(1)本発明は、オブジェクト空間における仮想カメラから見える画像を生成するためのプログラムであって、
円柱又は多角柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトを記憶する記憶部と、
オブジェクト空間に配置された移動体オブジェクトの移動を制御する移動制御部と、
仮想カメラを前記移動体オブジェクトの移動に追従させる制御を行う仮想カメラ制御部と、
前記移動体オブジェクトの位置に基づいて、前記エフェクトオブジェクトをオブジェクト空間に配置するオブジェクト空間設定部としてコンピュータを機能させることを特徴とする。
【0007】
また本発明は上記各部を含む画像生成システムに関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0008】
本発明によれば、円柱又は多角柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトを移動体オブジェクトの位置に基づいてオブジェクト空間に配置することによって、仮想カメラの位置や向きに関わらず適切な速度感の演出を行うことができる。
【0009】
(2)また本発明に係るプログラム及び情報記憶媒体では、
前記移動体オブジェクトの速度に基づいて、前記エフェクトオブジェクトの線分の数を増減させるエフェクト制御部としてコンピュータを更に機能させることを特徴とする。
【0010】
本発明によれば、移動体の速度に応じて速度感を増す演出を行うことができる。
【0011】
(3)本発明は、オブジェクト空間における仮想カメラから見える画像を生成するためのプログラムであって、
円から発生し一方向に移動する複数のパーティクルによって構成されるエフェクトオブジェクトを記憶する記憶部と、
オブジェクト空間に配置された移動体オブジェクトの移動を制御する移動制御部と、
仮想カメラを前記移動体オブジェクトの移動に追従させる制御を行う仮想カメラ制御部と、
前記移動体オブジェクトの位置に基づいて、前記エフェクトオブジェクトをオブジェクト空間に配置するオブジェクト空間設定部としてコンピュータを機能させることを特徴とする。
【0012】
また本発明は上記各部を含む画像生成システムに関係する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0013】
本発明によれば、円から発生し一方向に移動する複数のパーティクルによって構成されるエフェクトオブジェクトを移動体オブジェクトの位置に基づいてオブジェクト空間に配置することによって、仮想カメラの位置や向きに関わらず適切な速度感の演出を行うことができる。
【0014】
(4)また本発明に係るプログラム及び情報記憶媒体では、
前記移動体オブジェクトの速度に基づいて、前記エフェクトオブジェクトのパーティクの発生個数を増減させるエフェクト制御部としてコンピュータを更に機能させることを特徴とする。
【0015】
本発明によれば、移動体の速度に応じて速度感を増す演出を行うことができる。
【0016】
(5)また本発明に係るプログラム及び情報記憶媒体では、
前記オブジェクト空間設定部は、
前記エフェクトオブジェクトが前記移動体オブジェクトを内包するように、前記エフェクトオブジェクトを配置することを特徴とする。
【0017】
本発明によれば、仮想カメラの位置や向きに関わらず適切な速度感の演出を行うことができる。
【0018】
(6)また本発明に係るプログラム及び情報記憶媒体では、
前記移動制御部は、
前記移動体オブジェクトをコースに沿って移動させる制御を行い、
前記オブジェクト空間設定部は、
前記移動体オブジェクトの位置及びコースの形状の少なくとも一方に基づいて、前記エフェクトオブジェクトを配置することを特徴とする。
【0019】
本発明によれば、コースに沿って移動する移動体オブジェクトの位置及びコース形状に応じた位置、向きにエフェクトオブジェクトを配置することができ、適切な速度感の演出を行うことができる。
【0020】
(7)また本発明に係るプログラム及び情報記憶媒体では、
前記オブジェクト空間設定部は、
前記移動体オブジェクトの位置とコースに沿って設定されたパスとに基づき前記仮想カメラの注視点を求め、求めた注視点に基づき前記エフェクトオブジェクトを配置することを特徴とする。
【0021】
(8)また本発明に係るプログラム及び情報記憶媒体では、
前記仮想カメラ制御部は、
操作部からの操作データに基づいて、前記仮想カメラが前記移動体オブジェクトの周囲を移動するように制御することを特徴とする。
【0022】
本発明によれば、仮想カメラを移動体オブジェクトの移動に追従させつつ移動体オブジェクトの周囲を移動するようにした場合であっても、適切な速度感の演出を行うことができる。
【発明を実施するための最良の形態】
【0023】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0024】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0025】
操作部160は、プレーヤがオブジェクト(プレーヤキャラクタ、移動体)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0026】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0027】
なお、オブジェクトデータ記憶部176は、オブジェクトのオブジェクトデータが記憶される。例えば、エフェクトオブジェクトのデータ(パーティクル、ポリゴン)を記憶する。
【0028】
ここでエフェクトオブジェクトとは、円柱又は多角柱の表面上を複数の線分が一方向に移動するオブジェクトである。本実施形態では、エフェクトオブジェクトを、円から発生し一方向に移動する複数のパーティクルによって構成している。
【0029】
なお、操作部160は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器によってプレーヤからの入力データ(操作データ)を入力できるものでもよい。例えば、入力機器に備えられた加速度センサは、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサは、5msec毎に加速度を検出している。また、加速度センサは、1軸、2軸、6軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置(本体装置)に送信される。
【0030】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0031】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0032】
通信部196は外部(例えば他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0033】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して画像生成システムを機能させる場合も本発明の範囲内に含む。
【0034】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクト、エフェクトオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0035】
この処理部100は記憶部170内の主記憶部172をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0036】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、エフェクト制御部116、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0037】
オブジェクト空間設定部110は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0038】
特に本実施形態のオブジェクト空間設定部110は、移動体オブジェクトの位置に基づいて、オブジェクトデータ記憶部176に記憶されたエフェクトオブジェクトをオブジェクト空間に配置する。
【0039】
またオブジェクト空間設定部110は、エフェクトオブジェクトが移動体オブジェクトを内包するように、エフェクトオブジェクトを配置するようにしてもよい。
【0040】
またオブジェクト空間設定部110は、動体オブジェクトの位置及びコースの形状の少なくとも一方に基づいて、エフェクトオブジェクトを配置するようにしてもよい。
【0041】
またオブジェクト空間設定部110は、移動体オブジェクトの位置とコースに沿って設定されたパスとに基づき仮想カメラの注視点を求め、求めた注視点に基づきエフェクトオブジェクトを配置するようにしてもよい。
【0042】
移動・動作処理部112(移動制御部)は、オブジェクト(キャラクタ、移動体オブジェクト等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0043】
また移動・動作処理部112は、移動体オブジェクトをコースに沿って移動させる制御を行うようにしてもよい。
【0044】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
【0045】
特に本実施形態の仮想カメラ制御部114は、仮想カメラを移動体オブジェクトの移動に追従させる制御を行う。すなわち、仮想カメラによりオブジェクト(例えばキャラクタ、移動体オブジェクト)を後方から撮影するために、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。
【0046】
また仮想カメラ制御部114は、操作部からの操作データに基づいて、仮想カメラが移動体オブジェクトの周囲を移動するように制御するようにしてもよい。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0047】
エフェクト制御部116は、移動・動作処理部112によって求められた移動体オブジェクトの速度に基づいて、エフェクトオブジェクトの線分の数を増減させる。すなわち移動体オブジェクトの速度に基づいて、エフェクトオブジェクトのパーティクの発生個数を増減させる制御を行う。
【0048】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0049】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0050】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0051】
なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。また、仮想カメラが複数存在する場合には、仮想カメラ毎にエフェクトオフジェクトを関連づけておき、ある仮想カメラから見える画像を生成する際には、当該仮想カメラに関連づけられたエフェクトオフジェクトのみを描画し、他のカメラに関連づけられたエフェクトオブジェクトを描画しないようにしてもよい。
【0052】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0053】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0054】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部176に保存される。
【0055】
テクスチャマッピングは、記憶部170のテクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170のテクスチャ記憶部178からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0056】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ179(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ179に格納されるZ値を参照する。そして参照されたZバッファ179のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ179のZ値を新たなZ値に更新する。
【0057】
なお、エフェクトオブジェクト(エフェクトオブジェクトを構成するパーティクル、ポリゴン)の描画ピクセルについてはZテストの対象にしないように制御してもよい。つまり、エフェクトオブジェクトの描画ピクセルが必ず描画されるようにしてもよい。またエフェクトオブジェクトを描画する際に、移動体オブジェクトが描画された領域のZ値のみを参照してZテストによる隠面消去処理を行うようにしてもよい。つまり、移動体オブジェクトが描画された領域以外の領域においてはエフェクトオブジェクトの描画ピクセルが必ず描画されるようにしてもよい。
【0058】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0059】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0060】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0061】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0062】
2.本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【0063】
2−1.概要
図2は本実施形態のゲーム画像の一例である。
【0064】
本実施形態では、操作部からの操作入力により移動体オブジェクトMO(ゲームキャラクタである競走馬オブジェクト)をコースに沿って走行させるゲームを行うもので、移動体オブジェクトMOを含むオブジェクト空間を仮想カメラからみた画像が生成され、ゲーム画像GIとして表示される。
【0065】
また本実施形態では、仮想カメラを移動体オブジェクトMOに追従して移動させ、図2に示すように、画面奥側(進行方向前方)から画面手前側に向かって残像を残しながら移動する複数のパーティクルPT(線パーティクル、矩形パーティクル、移動する線分)を描画することで、移動体MOや仮想カメラの速度感を演出している。また本実施形態では、移動体オブジェクトMOの速度に応じて描画するパーティクルPTの数を増減させるように制御している。
【0066】
2−2.エフェクトオブジェクト
図3、図4は、本実施形態のエフェクトオブジェクトの一例について説明するための図である。図3は、本実施形態のエフェクトオブジェクトの斜視図である。
【0067】
図3に示すエフェクトオブジェクトEOは、エフェクト座標系において定義され、エフェクト座標系の原点0を中心点とするXY平面上の半径rの円をパーティクルエミッタPE(パーティクル発生器)として、このパーティクルエミッタPEから発生してエフェクト座標系の+Z軸方向に所定の速度で残像を残しながら移動する複数のパーティクルPTによって構成される。すなわち図3に示すエフェクトオブジェクトEOは、半径rの仮想的な円柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトであるともいえる。なおパーティクルエミッタPEの形状を多角形としてもよい。その場合、仮想的な多角柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトとなる。
【0068】
図4は、図3に示すエフェクトオブジェクトEOを定義するためのエフェクトパラメータを格納したエフェクトパラメータテーブルの一例について説明するための図である。
【0069】
図4に示すエフェクトパラメータテーブル200には、パーティクルエミッタPEを定義するパラメータとして発生形状210、発生頻度220が格納され、発生させる各パーティクルPTを定義するパラメータとして寿命230、移動速度240、形状250、色260、ブレンドタイプ270が格納されている。図4に示すエフェクトパラメータテーブル200に基づき、残像を残しながら60m/秒で移動し1秒で消滅する矩形パーティクルを半径5mの円から毎秒70個発生させるエフェクトオブジェクトEOを定義することができる。なお各矩形パーティクルは、寿命230(1秒)と移動速度240(60m/秒)から、発生地点から60mの位置で消滅することになるが、発生直前と消滅直前に半透明時間が設定されているため、可視長(発生してから消滅するまでの目に見える矩形パーティクルの長さ)は50m程度となる。
【0070】
2−3.エフェクトオブジェクトの配置
次に図5〜図8を用いて、本実施形態のエフェクトオブジェクトを配置する手法について説明する。図5は、本実施形態の移動体オブジェクトと仮想カメラの動きについて説明するための図である。
【0071】
本実施形態では、移動体オブジェクトMOはコースCSの中央に設定されたパスCPに沿った方向に所定の速度で移動する。図5に示す例では、移動体オブジェクトMOはパスCP上を移動しているが、プレーヤによって移動体オブジェクトMOを右に寄せるコマンドが入力された場合には、移動体オブジェクトMOの移動方向MDを所定期間所定角度だけ右方向に回転させて移動体オブジェクトMOをコースCSの右側に寄せる制御を行い、プレーヤによって移動体オブジェクトMOを左に寄せるコマンドが入力された場合には、移動体オブジェクトMOの移動方向MDを所定期間所定角度だけ左方向に回転させて移動体オブジェクトMOをコースCSの左側に寄せる制御を行う。コースCSの右側又は左側に寄せられた移動体オブジェクトMOは、再度右又は左に寄せるコマンドが入力されるまで、パスCPと平行な方向に(パスCPと一定の距離を保って)所定の速度で移動する。
【0072】
またプレーヤによって移動体オブジェクトを加速させるコマンドが入力された場合には、移動体オブジェクトMOに所定期間所定の加速度を与えて移動体オブジェクトMOを加速させる制御を行う。このように移動体オブジェクトMOの移動を制御することで、プレーヤは簡単な操作で移動体オブジェクトMOをコースCS内において走行させることができ、例えば移動体オブジェクトがコースCSを逆走してしまうことを防止することができる。
【0073】
また仮想カメラVCは、移動体オブジェクトMOの進行方向後方に位置して移動体オブジェクトMOの移動に追従して移動する。そして移動体オブジェクトMOの位置に最も近いパスCP上の位置MP1(図5の例では移動体オブジェクトMOと同一の位置)から所定距離(30m)離れたパスCP上の位置が仮想カメラVCの注視点GPとなり、仮想カメラVCと注視点GPとを結んだ方向が仮想カメラVCのカメラ向きVDとなる。このように仮想カメラVCの向きを求めることで、移動体オブジェクトMOが今後移動するであろう方向に仮想カメラVCを向けることができ、コース形状に応じた適切なゲーム画像を生成することができる。
【0074】
図6は、本実施形態のエフェクトオブジェクトの配置について説明するための図である。
【0075】
本実施形態のエフェクトオブジェクトEOの位置は、移動体オブジェクトMOの現在位置に基づき決定される。またエフェクトオブジェクトEOは、移動体オブジェクトMOを内包するように配置される。すなわち図6に示すように、移動体オブジェクトMOがエフェクトオブジェクトEOのZ軸上に位置するようにエフェクトオブジェクトEOが配置される。図6の例では、エフェクトオブジェクトEOのZ軸方向の長さを50mとすると、Z軸の原点0から35mのZ軸上の位置に移動体オブジェクトMOが位置するように配置している。
【0076】
また図6に示す例では、エフェクトオブジェクトEOの向きを、コースCSの形状に基づき決定している。すなわち、移動体オブジェクトMOの位置に最も近いパスCP上の位置MP1におけるパスCPの向きをコース向きCDとして、コース向きCDとエフェクトオブジェクトEOのZ軸が平行となるように配置される。
【0077】
また図3に示すように複数のパーティクルPTは、エフェクトオブジェクトEOの+Z軸方向に移動するように定義されているから、図6に示すようにエフェクトオブジェクトEOをそのZ軸の方向がコース向きCDと逆方向となるように配置することで、図2に示すように、ゲーム画像において、画面奥側から画面手前側に向かって移動する複数のパーティクルPTを表現することができる。すなわち移動体オブジェクトMOの進行方向とほぼ逆方向に移動する複数のパーティクルPTを表現することができる。
【0078】
図6に示す例では、コース向きCDとエフェクトオブジェクトEOのZ軸が平行となるようにエフェクトオブジェクトEOの向きを決定しているが、このようにするとエフェクトオブジェクトEOの向き(コース向きCD)とカメラ向きVDとのずれが大きいために見た目に違和感のある速度感演出となってしまう可能性がある。そこで図7に示すように、エフェクトオブジェクトEOの向きを、カメラ向きVDに合わせるようにしてもよい。
【0079】
図7に示す例では、エフェクトオブジェクトEOの向きを、仮想カメラVCと注視点GPとを結ぶカメラ向きVDに基づき決定している。すなわちカメラ向きVDとエフェクトオブジェクトEOのZ軸が平行となるように、且つエフェクトオブジェクトEOの+Z軸方向がカメラ向きVDと逆方向となるように、エフェクトオブジェクトEOを配置している。
【0080】
なお、図8に示すように、移動体オブジェクトMOがコースCS中央のパスCP上に位置していない場合であっても、移動体オブジェクトMOの位置に最も近いパスCP上の位置MP1から所定距離離れたパスCP上の位置が仮想カメラVCの注視点GPとなり、仮想カメラVCと注視点GPとを結んだ方向がカメラ向きVDとなり、このカメラ向きVDに合せてエフェクトオブジェクトEOを配置している。
【0081】
このようにエフェクトオブジェクトEOの向きをコース向きCDではなくカメラ向きVDに合せることで、移動体オブジェクトMOが今後移動するであろう方向から画面手前側(仮想カメラ側)に向けて複数のパーティクルが移動するゲーム画像を生成することができ、移動体オブジェクトMOの現在位置及びコース形状に応じた適切な速度感の演出を行うことができる。すなわち図7に示すように移動体オブジェクトMOが右カーブにさしかかっている場合には、移動体オブジェクトMOの移動方向右寄りから複数のパーティクルが飛んでくるゲーム画像が生成され、移動体オブジェクトMOが左カーブにさしかかっている場合には、移動体オブジェクトMOの移動方向左寄りから複数のパーティクルが飛んでくるゲーム画像が生成される。
【0082】
2−4.仮想カメラの制御
図9は、本実施形態の仮想カメラの制御について説明するための図である。
【0083】
本実施形態では、仮想カメラVCは、通常移動体オブジェクトMOの移動に追従して移動し、コースCS中央のパスCP上の注視点GPを向くように制御されるが、プレーヤによって仮想カメラVCの向きを変えるコマンドが入力された場合には、図9に示すように、移動体オブジェクトMOを中心として弧を描くように仮想カメラVCを移動させる制御を行う。このとき仮想カメラVCは、移動体オブジェクトMOを向く方向をカメラ向きVDa(移動カメラ向き)として、入力された操作データに応じて所定の移動範囲MAを移動する。プレーヤは仮想カメラVCを移動体オブジェクトMOの側面に移動させることで、周囲の状況(例えば他の移動体オブジェクトとの位置関係等)を把握することができる。
【0084】
図9に示すように、仮想カメラVCを移動体オブジェクトMOの側面に移動させた場合には、パスCP上の注視点GPは仮想カメラVCの視界から外れてしまうため、注視点GPから求められるカメラ向きVD(自動カメラ向き)に合せてエフェクトオブジェクトEOを配置することは適切ではない。そこで本実施形態では、このような場合には、コース向きCDを考慮してエフェクトオブジェクトEOの向きを決定している。
【0085】
具体的には、自動カメラ向きVDと移動カメラ向きVDaとの内積を取ってfとして、自動カメラ向きVDとコース向きCDとを内積fを用いて合成した合成ベクトルSVを次式により求める。
【0086】
SV=(CD×(1−f))+(VD×f) (1)
そして、求めた合成ベクトルSVに合せてエフェクトオブジェクトEOを配置する。すなわち合成ベクトルSVとエフェクトオブジェクトEOのZ軸が平行となるように、エフェクトオブジェクトEOを配置する。
【0087】
エフェクトオブジェクトEOの向きは、自動カメラ向きVDと移動カメラ向きVDaとのなす角度θが小さいほど自動カメラ向きVDに近い向きになり、角度θが大きいほどコース向きCDに近い向きになる。そして図10に示すように、自動カメラ向きVDと移動カメラ向きVDaとのなす角度θが90°になると内積fが0となるから、式(1)より合成ベクトルSVはコース向きCDと等しくなり、エフェクトオブジェクトEOはコース向きCDに合せて配置される。なお角度θが90°を超える場合(仮想カメラVCを移動体オブジェクトMOの前方に回り込ませた場合)には内積fは0以下となるが、この場合には内積fを0として合成ベクトルSVを求める。
【0088】
図11は、図9、図10に示すように仮想カメラVCを移動体オブジェクトMOの左側面に移動させた場合に生成されるゲーム画像の一例である。
【0089】
図11に示すゲーム画像GIでは、画面左側(移動体オブジェクトMOの進行方向前方)から画面右側に向かって複数のパーティクルPTが残像を残しながら移動している。これにより画面右側から画面左側に移動する移動体オブジェクトMOの速度感を演出することができる。
【0090】
このように本実施形態によれば、円から発生し一方向に移動する複数のパーティクルPTによって構成されるエフェクトオブジェクトEOを移動体オブジェクトMOの位置に基づきオブジェクト空間に配置することにより、仮想カメラVCが移動体オブジェクトMOの後方に位置する場合(図2参照)であっても、移動体オブジェクトMOの側面に位置する場合(図11参照)であっても常に適切な速度感の演出を行うことができる。
【0091】
3.本実施形態の処理
次に、本実施形態の処理の一例について図12のフローチャートを用いて説明する。
【0092】
まず、操作データやプログラムに基づいて、コースに沿って移動する移動体オブジェクトの位置、方向を求める(ステップS10)。
【0093】
次に、移動体オブジェクトの位置、コースに設定されたパスの情報に基づいて、移動体オブジェクトの移動に追従する仮想カメラの位置、方向(注視点)を求める(ステップS12)。
【0094】
次に、移動体オブジェクトの速度に基づいてエフェクトオブジェクトのパーティクルの発生個数を求める(ステップS14)。例えば図4に示すエフェクトパラメータテーブル200に格納された発生頻度パラメータ220を参照して、当該パラメータに移動速度に応じた係数(0.0〜2.0)を掛け合わせてパーティクルの単位時間当たりの発生個数を求め、移動体オブジェクトの速度が大きくなるほど多くのパーティクルを発生させるようにする。
【0095】
次に、エフェクト座標系において定義されたエフェクトオブジェクトをオブジェクト空間(ワールド座標系)に配置する処理を行う(ステップS16)。例えば移動体オブジェクトの位置に基づきエフェクトオブジェクトの位置を求め、仮想カメラの注視点に基づきエフェクトオブジェクトの方向を求める。
【0096】
そして仮想カメラから見える画像を生成する処理を行う(ステップS18)。なおエフェクトオブジェクトの描画ピクセルについてはZテスト判定を行わずに常に描画されるように処理を行ってもよい。これにより、コースの幅が狭い場合や障害物がある場合であっても速度感を演出するためのエフェクトオブジェクトを常に描画することができる。
【0097】
4.変形例
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0098】
例えば本実施形態では、円柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトを、円から発生し一方向に移動する複数のパーティクルによって構成する場合について説明したが、図13に示すように、エフェクトオブジェクトEOを円柱のオブジェクトにより構成し、当該オブジェクトの側面に互いに平行な複数の線分LNが表されたテクスチャTXをマッピングするようにしてもよい。そしてテクスチャ座標を変化させてテクスチャTXをオブジェクトの+Z軸方向にスクロールさせることにより、複数の線分LNを+Z軸方向に移動させるようにしてもよい。また線分LNの数が異なる複数のテクスチャを用意しておき、移動体オブジェクトの速度に応じてマッピングするテクスチャを変化させるようにしてもよい。また図13に示す例において、円柱のオブジェクトに代えて多角柱のオブジェクトを用いてもよい。
【図面の簡単な説明】
【0099】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】本実施形態のゲーム画像の一例。
【図3】本実施形態のエフェクトオブジェクトの斜視図。
【図4】本実施形態のエフェクトパラメータテーブルの一例。
【図5】本実施形態の移動体オブジェクトと仮想カメラの動きについて説明するための図。
【図6】本実施形態のエフェクトオブジェクトの配置について説明するための図。
【図7】本実施形態のエフェクトオブジェクトの配置について説明するための図。
【図8】本実施形態のエフェクトオブジェクトの配置について説明するための図。
【図9】本実施形態の仮想カメラの制御について説明するための図。
【図10】本実施形態の仮想カメラの制御について説明するための図。
【図11】本実施形態のゲーム画像の一例。
【図12】本実施形態の処理の流れを示すフローチャート図。
【図13】本実施形態のエフェクトオブジェクトの変形例。
【符号の説明】
【0100】
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、114 仮想カメラ制御部、116 エフェクト制御部、120 描画部、130 音生成部、160 操作部、170 記憶部、180 情報記憶媒体、190 表示部、192 音出力部、196 通信部

【特許請求の範囲】
【請求項1】
オブジェクト空間における仮想カメラから見える画像を生成するためのプログラムであって、
円柱又は多角柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトを記憶する記憶部と、
オブジェクト空間に配置された移動体オブジェクトの移動を制御する移動制御部と、
仮想カメラを前記移動体オブジェクトの移動に追従させる制御を行う仮想カメラ制御部と、
前記移動体オブジェクトの位置に基づいて、前記エフェクトオブジェクトをオブジェクト空間に配置するオブジェクト空間設定部としてコンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記移動体オブジェクトの速度に基づいて、前記エフェクトオブジェクトの線分の数を増減させるエフェクト制御部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項3】
オブジェクト空間における仮想カメラから見える画像を生成するためのプログラムであって、
円から発生し一方向に移動する複数のパーティクルによって構成されるエフェクトオブジェクトを記憶する記憶部と、
オブジェクト空間に配置された移動体オブジェクトの移動を制御する移動制御部と、
仮想カメラを前記移動体オブジェクトの移動に追従させる制御を行う仮想カメラ制御部と、
前記移動体オブジェクトの位置に基づいて、前記エフェクトオブジェクトをオブジェクト空間に配置するオブジェクト空間設定部としてコンピュータを機能させることを特徴とするプログラム。
【請求項4】
請求項3において、
前記移動体オブジェクトの速度に基づいて、前記エフェクトオブジェクトのパーティクの発生個数を増減させるエフェクト制御部としてコンピュータを更に機能させることを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
前記オブジェクト空間設定部は、
前記エフェクトオブジェクトが前記移動体オブジェクトを内包するように、前記エフェクトオブジェクトを配置することを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記移動制御部は、
前記移動体オブジェクトをコースに沿って移動させる制御を行い、
前記オブジェクト空間設定部は、
前記移動体オブジェクトの位置及びコースの形状の少なくとも一方に基づいて、前記エフェクトオブジェクトを配置することを特徴とするプログラム。
【請求項7】
請求項6において、
前記オブジェクト空間設定部は、
前記移動体オブジェクトの位置とコースに沿って設定されたパスとに基づき前記仮想カメラの注視点を求め、求めた注視点に基づき前記エフェクトオブジェクトを配置することを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
前記仮想カメラ制御部は、
操作部からの操作データに基づいて、前記仮想カメラが前記移動体オブジェクトの周囲を移動するように制御することを特徴とするプログラム。
【請求項9】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至8のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項10】
オブジェクト空間における仮想カメラから見える画像を生成するための画像生成システムであって、
円柱又は多角柱の表面上を複数の線分が一方向に移動するエフェクトオブジェクトを記憶する記憶部と、
オブジェクト空間に配置された移動体オブジェクトの移動を制御する移動制御部と、
仮想カメラを前記移動体オブジェクトの移動に追従させる制御を行う仮想カメラ制御部と、
前記移動体オブジェクトの位置に基づいて、前記エフェクトオブジェクトをオブジェクト空間に配置するオブジェクト空間設定部とを含むことを特徴とする画像生成システム。
【請求項11】
オブジェクト空間における仮想カメラから見える画像を生成するための画像生成システムであって、
円から発生し一方向に移動する複数のパーティクルによって構成されるエフェクトオブジェクトを記憶する記憶部と、
オブジェクト空間に配置された移動体オブジェクトの移動を制御する移動制御部と、
仮想カメラを前記移動体オブジェクトの移動に追従させる制御を行う仮想カメラ制御部と、
前記移動体オブジェクトの位置に基づいて、前記エフェクトオブジェクトをオブジェクト空間に配置するオブジェクト空間設定部とを含むことを特徴とする画像生成システム。

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


【公開番号】特開2009−169471(P2009−169471A)
【公開日】平成21年7月30日(2009.7.30)
【国際特許分類】
【出願番号】特願2008−3580(P2008−3580)
【出願日】平成20年1月10日(2008.1.10)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】