説明

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

【課題】 少ないメモリの消費量で性能の異なるコンピュータ移動体を複数同時に制御すること。
【解決手段】 各コンピュータ操作移動体のコーナリング性能情報を記憶するコーナリング性能情報記憶部176と、コースの曲率情報を記憶する曲率情報記憶部178と、各コンピュータ操作移動体のコーナリング性能情報と曲率情報に基づいてえられた目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部116を含む。コンピュータ操作移動体速度制御部116は、コース上の所与の位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度と当該サンプリング位置の曲率情報とコーナリング性能情報に基づき得られる目標速度の比較結果にもとづきコース上の所与の位置における減速/加速制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内において所与の視点(仮想カメラ)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。競争ゲーム(カーゲーム)を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部(ステアリング、シフトレバー、アクセルペダル、ブレーキペダル等)を用いて移動オブジェクト(自プレーヤ移動オブジェクト、自車)を操作し、他のプレーヤ(コンピュータプレーヤ又は他の人間プレーヤ)が操作する移動オブジェクト(他プレーヤ移動オブジェクト、他車)と競争することでゲームを楽しむ。
【0003】
さて、このような画像生成システム(ゲームシステム)では、コンピュータが所定のアルゴリズムに従って自動的に制御するコンピュータカー等が登場する。
【特許文献1】特開2000−214868号
【発明の開示】
【発明が解決しようとする課題】
【0004】
かかるコンピュータカーは、コースの地形に応じて速度制御が必要となるため、例えばコース上の位置に関連づけて各コンピュータカー毎に速度制御に必要なデータを予めデータテーブルとして用意しておいて、データテーブルを参照しながら速度制御を行う手法がある。
【0005】
ここでコンピュータの制御する移動体の性能がすべて同じであれば、そのデータテーブルは1つでよい。しかし性能が異なる場合には性能の数だけデータテーブルを用意しなければならない。また性能が異なる移動体を同時に制御する場合にはメモリを浪費してしまう。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ないメモリの消費量で性能の異なるコンピュータ移動体を複数同時に制御することが可能な画像生成プログラム、情報記憶媒体及び画像生成システムを提供することにある
【課題を解決するための手段】
【0007】
(1)本発明は、画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする。
【0008】
また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴とする。
【0009】
ここでコーナリング性能情報とは、カーブを走行する際に必要な減速度合いを演算可能な情報である。
【0010】
コースの曲率情報とは、コース上の所与の地点における曲率に関する情報であり、コース上のサンプリング点の曲率自体でもよいし、コース上のサンプリング点の曲率の逆数でもよいし、コース上の位置から曲率を導く関数でもよい。
【0011】
コンピュータ操作移動体とは、コンピュータが所定のアルゴリズムに従って自動的にその移動を制御する移動体で、プレーヤの操作入力に基づき移動が制御されるプレーヤ移動体と相対する概念である。
【0012】
コンピュータ操作移動体は所与のコースを移動(走行、飛行)する移動体であれば何でもよく、例えば車(自転車等も含む)、船、航空機、動物(人も含む)でもよい。
【0013】
一般にコンピュータ操作移動体はそのコーナリング性能に応じて、カーブにおいて必要な減速程度は異なってくる。従って各コンピュータ操作移動体をその性能に見合った最高の速度で走行させるための目標速度は、コース上の所与の位置における曲率r又はその逆数1/rと、各コンピュータ操作移動体のコーナリング性能に応じて決定することができる。
【0014】
本発明によればコースの曲率情報を予め記憶させておき、各コンピュータ操作移動体の所与の位置における目標速度は、各コンピュータ操作移動体のコーナリング性能に応じてリアルタイムに演算することが可能であるため、コースに対応して曲率情報テーブルを1つもつだけでよい。
【0015】
従って各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応したコーナリング性能毎に目標速度テーブルを持つ場合に比べメモリの使用量を減らすことができる。
【0016】
これによって性能の異なる移動体を同時に多数制御することが簡単にできるようになるので、コンピュータの制御する移動体のバリエーションが豊富になりよりリアルなレース演出を行うことができるようになる。
【0017】
(2)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、 前記コンピュータ操作移動体速度制御部が、
コース上の所与の位置において、当該位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度をもとめ、
曲率情報記憶部に記憶されている曲率情報に基づき得られる当該サンプリング位置の曲率情報と、コンピュータ操作移動体に対応して記憶されているコーナリング性能情報に基づき当該サンプリング位置における目標速度を求め、
前記予想速度と前記目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うことを特徴とする。
【0018】
本発明によれば、コース上の所与の位置から減速し始めた場合のシミュレーション演算結果として得られたコース上の複数のサンプリング位置での予想速度をもとめ、対応する位置の目標速度と比較して、比較結果にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うので、先に存在するカーブに対して必要十分な位置から減速を始めることができる。
【0019】
(3)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、 前記コンピュータ操作移動体速度制御部が、
前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うことを特徴とする。
【0020】
(4)また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記コンピュータ操作移動体速度制御部が、
前記最小速度差が正の場合には加速制御を行い、
前記最小速度差が負の場合には減速制御を行うことを特徴とする。
【0021】
(5)本発明は、画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定された走行性能情報を記憶する走行性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースのコース情報を記憶するコース情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報と、コース情報記憶部に記憶されているコース情報に基づき得られるコース上の所与の位置におけるコース情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする。
【0022】
また本発明に係るプログラムは、コンピュータにより使用可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴とする。
【0023】
ここでコース情報とは舗装/未舗装、ドライ面/ウェット面、摩擦係数等の
移動体の走行に影響を与える情報である。
【0024】
本発明によればコンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報について設定された走行性能情報(前記コース情報に対応して設定された走行性能、例えば未舗装やウェット面の走行に強いとかに関する走行性能でもよい)に基づきリアルタイムに目標速度を演算することが可能であるため、コースに対応してコース情報テーブルを1つもつだけでよい。
【0025】
従って各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応したコーナリング性能毎に目標速度テーブルを持つ場合に比べメモリの使用量を減らすことができる。
【0026】
これによって性能の異なる移動体を同時に多数制御することが簡単にできるようになるので、コンピュータの制御する移動体のバリエーションが豊富になりよりリアルなレース演出を行うことができるようになる。
【発明を実施するための最良の形態】
【0027】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0028】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0029】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0030】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0031】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0032】
記憶部170は、各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部176と、各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部178を含む。
【0033】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0034】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0035】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。
【0036】
通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0037】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0038】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0039】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、コンピュータ操作移動体速度制御部116、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0040】
オブジェクト空間設定部110は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0041】
移動・動作処理部112は、オブジェクト(キャラクタ、ボール、車、又は飛行機等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0042】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0043】
例えば仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0044】
コンピュータ操作移動体速度制御部116は、各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部178に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行う。
【0045】
またコンピュータ操作移動体速度制御部116は、コース上の所与の位置において、当該位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度をもとめ、曲率情報記憶部178に記憶されている曲率情報に基づき得られる当該サンプリング位置の曲率情報と、コンピュータ操作移動体に対応して記憶されているコーナリング性能情報に基づき当該サンプリング位置における目標速度を求め、前記予想速度と前記目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うようにしてもよい。
【0046】
またコンピュータ操作移動体速度制御部116は、前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うようにしてもよい。
【0047】
またコンピュータ操作移動体速度制御部116は、前記最小速度差が正の場合には加速制御を行い、前記最小速度差が負の場合には減速制御を行うようにしてもよい。
【0048】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力するもので、求めた構成点で形状が特定されるオブジェクトの画像を生成する画像生成部として機能する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を描画バッファ172(フレームバッファ、中間バッファなどのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0049】
描画部120は、テクスチャマッピング部を含む。テクスチャマッピング部は、テクスチャ記憶部174に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理を行う。具体的には、オブジェクト(プリミティブ面)の頂点に設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部174からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。
【0050】
なお描画部120は、α値(A値)に基づくαブレンディング処理(通常αブレンディング、α加算ブレンディング又はα減算ブレンディング等)や、Zバッファなどを用いた隠面消去処理も行うことができる。
【0051】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0052】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0053】
2.本実施の形態の特徴と処理
図2は、本実施の形態のコースのイメージ図である。
【0054】
本実施の形態のコース200は、210〜280に示すような曲率の異なる複数のカーブを有している。
【0055】
SPはスタート位置をあらわしており、コース上の数字(200,400,600、・・・)はスタート位置SPからの距離を表している。コース上の移動体の位置はコースの進行方向に沿った第1の軸Lの座標値lと、各地点で第1の軸Lに直交する第2の軸Mの座標値mとによってあらわすことができる。
【0056】
コンピュータの制御する移動体であるコンピュータカー(コンピュータ操作移動体の一例)は、例えばプレーヤが操作入力によって制御するプレーヤカーと競争しながら走るため、コース上の移動経路はリアルタイムに変化する。従ってリアルタイムにコンピュータカーの速度制御を行うことが必要になる。
【0057】
例えばコースの直線上の部分を走る場合には、レースという観点からはどんどん加速することが好ましいが、カーブにさしかかった場合には、各コンピュータカーのコーナリング性能に応じた減速制御が必要となってくる。
【0058】
ここでカーブのきつさは曲率rによって表すことができる。曲率rが小さいほど急なカーブとなり、曲率rが大きいほど緩やかなカーブとなりる。なお直線コースでは曲率rは無限大となる。
【0059】
ここで同じカーブを走行する場合でも各コンピュータカーのコーナリング性能応じて、カーブにおいて必要な減速程度は異なってくる。
【0060】
例えばコーナリング性能がわるいという特性(走行性能)を有するコンピュータカーの場合、カーブでは大きく減速する必要がある。これに対し例えばコーナリング性能がよいという特性(走行性能)を有するコンピュータカーの場合、カーブでの減速程度は少なくても良い。
【0061】
このように各コンピュータカーをその性能に見合った最高の速度で走行させるための目標速度は、コース上の所与の位置における曲率r又はその逆数1/rと、各コンピュータカーのコーナリング性能に応じて異なってくる。
【0062】
図3は、本実施の形態のコースの曲率情報(1/r)をグラフ化した図である。
【0063】
横軸は第1の軸Lであり、縦軸は曲率の逆数(1/r)をとってある。なお図2のコースとの対応をわかりやすくするため、右回りのカーブにおける曲率の逆数(1/r)を正で表し、左回りのカーブにおける曲率の逆数(1/r)を負で表している。
【0064】
図4は、本実施の形態の曲率情報テーブルの一例を示した図である。
【0065】
本実施の形態では、コース上の各位置の曲率の逆数(1/r)320をコース上の各位置と対応付けて曲率情報テーブル300として持たせている。
【0066】
コース上の各位置は、スタート位置からの距離で表している(310参照)。
【0067】
各コンピュータカーの所与の位置に置ける目標速度vk(k=1,2,3,・・・)は、例えば各コンピュータカーCk(k=1,2,3,・・・)のコーナリング性能に応じて設定されている関数(コーナリング性能情報の一例)vk=fk(1/r)、(ここでk=1,2,3,・・・)によって求めることができる。
【0068】
本実施の形態ではコースの曲率情報(1/r)を予め記憶させておき、各コンピュータカーの所与の位置に置ける目標速度vk(k=1,2,3,・・・)は、各コンピュータカーCk(k=1,2,3,・・・)のコーナリング性能に応じて設定されている関数vk=fk(1/r)により、リアルタイムに演算するので、コースに対応して曲率情報テーブルを1つもつだけでよい。
【0069】
従って、移動体のコーナリング性能毎に目標速度テーブルを持つ場合に比べメモリの使用量を減らすことができる。
【0070】
これによって性能の異なる移動体を同時に多数制御することが簡単にできるようになるので、コンピュータの制御する移動体のバリエーションが豊富になりよりリアルなレース演出を行うことができるようになる。
【0071】
図5は、本実施の形態の速度制御処理の一例を説明するための図である。
【0072】
横軸に位置(スタート位置からの距離)p、縦軸に速度vを表す。
【0073】
410は、コースの曲率情報(1/r)及び所定のコンピュータカーのコーナリング性能に基づき求めた所定のコンピュータカーの目標速度曲線である。
【0074】
なお、この目標速度曲線が高い値で水平になっている部分は、コースの直線部分のために本来は無限大であるが、便宜上、コンピュータカーが出すことのできない速度である。
【0075】
412の部分は、カーブに対応して目標速度が小さくなっている部分である。
【0076】
本実施の形態ではコース上の所与の位置において、所定のコンピュータカーが前記目標速度曲線によって与えられる目標速度に近づくように所定のコンピュータカーの速度制御を行う。
【0077】
420は本実施の形態のコース上の所与の位置における所定のコンピュータカーの実際の速度の軌跡を表す曲線である。
【0078】
430−0、430−1、・・・は所定のコンピュータカーがコース上の所与の位置から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。
【0079】
例えば430−0は所定のコンピュータカーがコース上の位置P0から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線であり、P0’−1、P0’−2、P0’−3はコース上の複数のサンプリング位置であり、v0’−1、v0’−2、v0’−3は前記コース上の複数のサンプリング位置における予想速度である。
【0080】
本実施の形態では、コース上の所与の位置から減速し始めた場合のシミュレーション演算結果として得られたコース上の複数のサンプリング位置での予想速度をもとめ、目標速度曲線410からサンプリング位置に対応する目標速度を求め、予想速度と目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行う。
【0081】
移動体ごとに異なるブレーキング性能を設定しておき、当該ブレーキング性能に基いて減速シミュレーション演算を行っても良い。
【0082】
例えば前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行う。
【0083】
より具体的には前記最小速度差が正の場合には加速制御を行い、前記最小速度差が負の場合には減速制御を行う。
【0084】
ここで、所定のコンピュータカーがコース上の位置P0から減速し続けたときには、予想速度と目標速度の速度差は常に正であり、最小速度差も正である。これはP0がこの先のカーブに対応して減速を始める位置としては早すぎることを示している。従って、P0においては所定のコンピュータカーに対して加速制御を行う。
【0085】
次に430−1は所定のコンピュータカーがコース上の位置P1から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。ここで、所定のコンピュータカーがコース上の位置P1から減速し続けたときには、予想速度と目標速度の速度差は常に正であり、最小速度差も正である。これはP1がこの先のカーブに対応して減速を始める位置としてはまだ早すぎることを示している。従って、P1においても所定のコンピュータカーに対して加速制御を行う。
【0086】
次に430−2は所定のコンピュータカーがコース上の位置P2から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。ここで、所定のコンピュータカーがコース上の位置P2から減速し続けたときには、P2’−nまでは予想速度と目標速度の速度差は正であるが、P2’−nで速度差が0となり、これが最小速度差となる。これはP2がこの先のカーブに対応して減速を始める位置として適当な位置であることを示している。従って、P2においては所定のコンピュータカーに対して減速制御を行う。又はP2において減速開始タイミングがきたと判断する。
【0087】
430−3は所定のコンピュータカーがコース上の位置P3から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。もしかりにP3で、所定のコンピュータカーが減速しはじめたときには、P3’−mまでは予想速度と目標速度の速度差は正であるが、P3’−mで速度差が0となり、それ以降速度差が負の値となる。これはP3がこの先のカーブに対応して減速を始める位置としては行き過ぎ(遅すぎ)た位置であることを示している。従ってP3よりも手前で減速を開始するように速度制御を行う。
【0088】
このように本実施の形態では、コース上の所与の位置から減速し始めた場合のシミュレーション演算結果として得られたコース上の複数のサンプリング位置での予想速度をもとめ、対応する位置の目標速度と比較して、比較結果にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うので、先に存在するカーブに対して必要十分な位置から減速を始めることができる。
【0089】
図6は本実施の形態の速度制御処理の流れをしめすフローチャート図である。
【0090】
まず速度変数Vに現在の速度、シミュレーション位置変数Pに現在位置P0(例えばスタート位置からの距離)をセットする(ステップS10)。
【0091】
次に現在位置(例えばスタート位置からの距離)に対応した曲率情報を曲率情報テーブルから読み出して、曲率情報と処理対象コンピュータカーのコーナリング性能に基づき現在位置の目標速度を求める(ステップS20)。
【0092】
速度差変数Dに現在位置Pの目標速度と実際の速度の差をセットする(ステップS30)。
【0093】
シミュレーション位置をより進めた位置P0’−nに更新する(ステップS40)。
【0094】
現在位置P0から減速したときのシミュレーション演算を行い、シミュレーション位置P0’−nに置ける予想速度V0’−nを求める(ステップS50)。
【0095】
V0’−nが一定以下でなければ以下のステップS70〜S90の処理を行う(ステップS60)。
ここで一定とは0までは行かない遅い速度のことである。V0’−nが一定以下か否か判断するのは、V0’−nが0になるまで(止まるまで)シミュレーションを行う必要がないからである。
【0096】
まずシミュレーション位置P0’−nに対応した曲率情報を曲率情報テーブルから読み出して、曲率情報と処理対象コンピュータカーのコーナリング性能に基づきシミュレーション位置P0’−nの目標速度をMV0’−nを求める(ステップS70)。
【0097】
ここでD<(目標速度MV0’−n−予想速度V0’−n)であれば目標速度MV0’−n−予想速度V0’−nをセットしてステップS40に戻り、(ステップS80,S90)、D<(目標速度MV0’−n−予想速度V0’−n)でなければそのままステップS40に戻る(ステップS80)。
【0098】
またステップS60でV0’−nが一定以下であれば、Dが正であれば現在位置P0において加速制御を行い、Dが正でなければ現在位置P0において減速制御を行う(ステップS100〜S120)。
【0099】
3.ハードウェア構成
図7に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0100】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0101】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0102】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0103】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0104】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0105】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0106】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0107】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0108】
上記実施の形態では、コースの曲率情報(パラメータ)とコンピュータ操作移動体について設定されたコーナリング性能情報に基づき、目標速度を求める場合を例にとり説明したがこれに限られない。
【0109】
例えば、コースの舗装/未舗装、ドライ面/ウェット面、コース摩擦係数等の移動体の走行に影響を与えるコース情報と、コンピュータ操作移動体について設定された走行性能情報(前記コース情報に対応して設定された走行性能、例えば未舗装やウェット面の走行に強いとかに関する走行性能でもよい)に基づき、目標速度を求める場合でもよい。
【0110】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0111】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【0112】
【図1】本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例である。
【図2】本実施の形態のコースのイメージ図である。
【図3】本実施の形態のコースの曲率情報(1/r)をグラフ化した図である。
【図4】本実施の形態の曲率情報テーブルの一例を示した図である。
【図5】本実施の形態の速度制御処理の一例を説明するための図である。
【図6】本実施の形態の速度制御処理の流れをしめすフローチャート図である。
【図7】本実施形態を実現できるハードウェア構成の例を示す。
【符号の説明】
【0113】
100 処理部、110 オブジェクト空間設定部、112 移動・動作処理部、
114 仮想カメラ制御部、116 コンピュータ操作移動体速度制御、120 描画部、130 音生成部、160 操作部、170 記憶部、172 描画バッファ、174 テクスチャ記憶部、176 コーナリング性能情報記憶部、178 曲率情報記憶部、180 情報記憶媒体、190 表示部、
192 音出力部、194 携帯型情報記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
画像生成を行うプログラムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記コンピュータ操作移動体速度制御部は、
コース上の所与の位置において、当該位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度をもとめ、
曲率情報記憶部に記憶されている曲率情報に基づき得られる当該サンプリング位置の曲率情報と、コンピュータ操作移動体に対応して記憶されているコーナリング性能情報に基づき当該サンプリング位置における目標速度を求め、
前記予想速度と前記目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うことを特徴とするプログラム。
【請求項3】
請求項1乃至2のいずれかにおいて、
前記コンピュータ操作移動体速度制御部は、
前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速/加速制御又は減速開始タイミングの判断を行うことを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記コンピュータ操作移動体速度制御部は、
前記最小速度差が正の場合には加速制御を行い、
前記最小速度差が負の場合には減速制御を行うことを特徴とするプログラム。
【請求項5】
画像生成を行うプログラムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定された走行性能情報を記憶する走行性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースのコース情報を記憶するコース情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報と、コース情報記憶部に記憶されているコース情報に基づき得られるコース上の所与の位置におけるコース情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項6】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至5のいずれかのプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項7】
画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項8】
画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定された走行性能情報を記憶する走行性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースのコース情報を記憶するコース情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報と、コース情報記憶部に記憶されているコース情報に基づき得られるコース上の所与の位置におけるコース情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2006−11923(P2006−11923A)
【公開日】平成18年1月12日(2006.1.12)
【国際特許分類】
【出願番号】特願2004−189500(P2004−189500)
【出願日】平成16年6月28日(2004.6.28)
【出願人】(000134855)株式会社ナムコ (1,157)
【Fターム(参考)】