(57)【要約】【課題】  少ないメモリの消費量で性能の異なるコンピュータ移動体を複数同時に制御すること。【解決手段】  各コンピュータ操作移動体のコーナリング性能情報を記憶するコーナリング性能情報記憶部１７６と、コースの曲率情報を記憶する曲率情報記憶部１７８と、各コンピュータ操作移動体のコーナリング性能情報と曲率情報に基づいてえられた目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部１１６を含む。コンピュータ操作移動体速度制御部１１６は、コース上の所与の位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度と当該サンプリング位置の曲率情報とコーナリング性能情報に基づき得られる目標速度の比較結果にもとづきコース上の所与の位置における減速／加速制御を行う。【選択図】      図６
2006011923.tif 000002
【特許請求の範囲】
【請求項１】
画像生成を行うプログラムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想３次元空間を仮想カメラから見た画像を生成する画像生成部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記コンピュータ操作移動体速度制御部は、
コース上の所与の位置において、当該位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度をもとめ、
曲率情報記憶部に記憶されている曲率情報に基づき得られる当該サンプリング位置の曲率情報と、コンピュータ操作移動体に対応して記憶されているコーナリング性能情報に基づき当該サンプリング位置における目標速度を求め、
前記予想速度と前記目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うことを特徴とするプログラム。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記コンピュータ操作移動体速度制御部は、
前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うことを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記コンピュータ操作移動体速度制御部は、
前記最小速度差が正の場合には加速制御を行い、
前記最小速度差が負の場合には減速制御を行うことを特徴とするプログラム。
【請求項５】
画像生成を行うプログラムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定された走行性能情報を記憶する走行性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースのコース情報を記憶するコース情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報と、コース情報記憶部に記憶されているコース情報に基づき得られるコース上の所与の位置におけるコース情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想３次元空間を仮想カメラから見た画像を生成する画像生成部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項６】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至５のいずれかのプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項７】
画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想３次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項８】
画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定された走行性能情報を記憶する走行性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースのコース情報を記憶するコース情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報と、コース情報記憶部に記憶されているコース情報に基づき得られるコース上の所与の位置におけるコース情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想３次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。競争ゲーム（カーゲーム）を楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部（ステアリング、シフトレバー、アクセルペダル、ブレーキペダル等）を用いて移動オブジェクト（自プレーヤ移動オブジェクト、自車）を操作し、他のプレーヤ（コンピュータプレーヤ又は他の人間プレーヤ）が操作する移動オブジェクト（他プレーヤ移動オブジェクト、他車）と競争することでゲームを楽しむ。
【０００３】
さて、このような画像生成システム（ゲームシステム）では、コンピュータが所定のアルゴリズムに従って自動的に制御するコンピュータカー等が登場する。
【特許文献１】特開２０００−２１４８６８号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
かかるコンピュータカーは、コースの地形に応じて速度制御が必要となるため、例えばコース上の位置に関連づけて各コンピュータカー毎に速度制御に必要なデータを予めデータテーブルとして用意しておいて、データテーブルを参照しながら速度制御を行う手法がある。
【０００５】
ここでコンピュータの制御する移動体の性能がすべて同じであれば、そのデータテーブルは１つでよい。しかし性能が異なる場合には性能の数だけデータテーブルを用意しなければならない。また性能が異なる移動体を同時に制御する場合にはメモリを浪費してしまう。
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ないメモリの消費量で性能の異なるコンピュータ移動体を複数同時に制御することが可能な画像生成プログラム、情報記憶媒体及び画像生成システムを提供することにある
【課題を解決するための手段】
【０００７】
（１）本発明は、画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想３次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする。
【０００８】
また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴とする。
【０００９】
ここでコーナリング性能情報とは、カーブを走行する際に必要な減速度合いを演算可能な情報である。
【００１０】
コースの曲率情報とは、コース上の所与の地点における曲率に関する情報であり、コース上のサンプリング点の曲率自体でもよいし、コース上のサンプリング点の曲率の逆数でもよいし、コース上の位置から曲率を導く関数でもよい。
【００１１】
コンピュータ操作移動体とは、コンピュータが所定のアルゴリズムに従って自動的にその移動を制御する移動体で、プレーヤの操作入力に基づき移動が制御されるプレーヤ移動体と相対する概念である。
【００１２】
コンピュータ操作移動体は所与のコースを移動（走行、飛行）する移動体であれば何でもよく、例えば車（自転車等も含む）、船、航空機、動物（人も含む）でもよい。
【００１３】
一般にコンピュータ操作移動体はそのコーナリング性能に応じて、カーブにおいて必要な減速程度は異なってくる。従って各コンピュータ操作移動体をその性能に見合った最高の速度で走行させるための目標速度は、コース上の所与の位置における曲率ｒ又はその逆数１／ｒと、各コンピュータ操作移動体のコーナリング性能に応じて決定することができる。
【００１４】
本発明によればコースの曲率情報を予め記憶させておき、各コンピュータ操作移動体の所与の位置における目標速度は、各コンピュータ操作移動体のコーナリング性能に応じてリアルタイムに演算することが可能であるため、コースに対応して曲率情報テーブルを１つもつだけでよい。
【００１５】
従って各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応したコーナリング性能毎に目標速度テーブルを持つ場合に比べメモリの使用量を減らすことができる。
【００１６】
これによって性能の異なる移動体を同時に多数制御することが簡単にできるようになるので、コンピュータの制御する移動体のバリエーションが豊富になりよりリアルなレース演出を行うことができるようになる。
【００１７】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、  前記コンピュータ操作移動体速度制御部が、
コース上の所与の位置において、当該位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度をもとめ、
曲率情報記憶部に記憶されている曲率情報に基づき得られる当該サンプリング位置の曲率情報と、コンピュータ操作移動体に対応して記憶されているコーナリング性能情報に基づき当該サンプリング位置における目標速度を求め、
前記予想速度と前記目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うことを特徴とする。
【００１８】
本発明によれば、コース上の所与の位置から減速し始めた場合のシミュレーション演算結果として得られたコース上の複数のサンプリング位置での予想速度をもとめ、対応する位置の目標速度と比較して、比較結果にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うので、先に存在するカーブに対して必要十分な位置から減速を始めることができる。
【００１９】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、  前記コンピュータ操作移動体速度制御部が、
前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うことを特徴とする。
【００２０】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
前記コンピュータ操作移動体速度制御部が、
前記最小速度差が正の場合には加速制御を行い、
前記最小速度差が負の場合には減速制御を行うことを特徴とする。
【００２１】
（５）本発明は、画像生成を行う画像生成システムであって、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定された走行性能情報を記憶する走行性能情報記憶部と、
各コンピュータ操作移動体を含む移動体が走行するコースのコース情報を記憶するコース情報記憶部と、
各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報と、コース情報記憶部に記憶されているコース情報に基づき得られるコース上の所与の位置におけるコース情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、
コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行うコンピュータ操作移動体速度制御部と、
前記コンピュータ操作移動体を含む仮想３次元空間を仮想カメラから見た画像を生成する画像生成部と、
を含むことを特徴とする。
【００２２】
また本発明に係るプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴とする。
【００２３】
ここでコース情報とは舗装／未舗装、ドライ面／ウェット面、摩擦係数等の
移動体の走行に影響を与える情報である。
【００２４】
本発明によればコンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されている走行性能情報について設定された走行性能情報（前記コース情報に対応して設定された走行性能、例えば未舗装やウェット面の走行に強いとかに関する走行性能でもよい）に基づきリアルタイムに目標速度を演算することが可能であるため、コースに対応してコース情報テーブルを１つもつだけでよい。
【００２５】
従って各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応したコーナリング性能毎に目標速度テーブルを持つ場合に比べメモリの使用量を減らすことができる。
【００２６】
これによって性能の異なる移動体を同時に多数制御することが簡単にできるようになるので、コンピュータの制御する移動体のバリエーションが豊富になりよりリアルなレース演出を行うことができるようになる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００２８】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２９】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３０】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００３１】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００３２】
記憶部１７０は、各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して設定されたコーナリング性能情報を記憶するコーナリング性能情報記憶部１７６と、各コンピュータ操作移動体を含む移動体が走行するコースの曲率情報を記憶する曲率情報記憶部１７８を含む。
【００３３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３５】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００３６】
通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３７】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３８】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３９】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、コンピュータ操作移動体速度制御部１１６、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４０】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４１】
移動・動作処理部１１２は、オブジェクト（キャラクタ、ボール、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４２】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００４３】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００４４】
コンピュータ操作移動体速度制御部１１６は、各コンピュータ操作移動体又は各コンピュータ操作移動体の種類に対応して記憶されているコーナリング性能情報と、曲率情報記憶部１７８に記憶されている曲率情報に基づき得られるコース上の所与の位置における曲率情報に基づいて各コンピュータ操作移動体のコース上の所与の位置における目標速度を求め、コース上の所与の位置において各コンピュータ操作移動体が前記目標速度に近づくように各コンピュータ操作移動体の速度制御を行う。
【００４５】
またコンピュータ操作移動体速度制御部１１６は、コース上の所与の位置において、当該位置からコンピュータ操作移動体が減速を開始したときの走行シミュレーション演算を行い、コース上の複数のサンプリング位置での予想速度をもとめ、曲率情報記憶部１７８に記憶されている曲率情報に基づき得られる当該サンプリング位置の曲率情報と、コンピュータ操作移動体に対応して記憶されているコーナリング性能情報に基づき当該サンプリング位置における目標速度を求め、前記予想速度と前記目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うようにしてもよい。
【００４６】
またコンピュータ操作移動体速度制御部１１６は、前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うようにしてもよい。
【００４７】
またコンピュータ操作移動体速度制御部１１６は、前記最小速度差が正の場合には加速制御を行い、前記最小速度差が負の場合には減速制御を行うようにしてもよい。
【００４８】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力するもので、求めた構成点で形状が特定されるオブジェクトの画像を生成する画像生成部として機能する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を描画バッファ１７２（フレームバッファ、中間バッファなどのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００４９】
描画部１２０は、テクスチャマッピング部を含む。テクスチャマッピング部は、テクスチャ記憶部１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理を行う。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００５０】
なお描画部１２０は、α値（Ａ値）に基づくαブレンディング処理（通常αブレンディング、α加算ブレンディング又はα減算ブレンディング等）や、Ｚバッファなどを用いた隠面消去処理も行うことができる。
【００５１】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５２】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５３】
２．本実施の形態の特徴と処理
図２は、本実施の形態のコースのイメージ図である。
【００５４】
本実施の形態のコース２００は、２１０〜２８０に示すような曲率の異なる複数のカーブを有している。
【００５５】
ＳＰはスタート位置をあらわしており、コース上の数字（２００，４００，６００、・・・）はスタート位置ＳＰからの距離を表している。コース上の移動体の位置はコースの進行方向に沿った第１の軸Ｌの座標値ｌと、各地点で第１の軸Ｌに直交する第２の軸Ｍの座標値ｍとによってあらわすことができる。
【００５６】
コンピュータの制御する移動体であるコンピュータカー（コンピュータ操作移動体の一例）は、例えばプレーヤが操作入力によって制御するプレーヤカーと競争しながら走るため、コース上の移動経路はリアルタイムに変化する。従ってリアルタイムにコンピュータカーの速度制御を行うことが必要になる。
【００５７】
例えばコースの直線上の部分を走る場合には、レースという観点からはどんどん加速することが好ましいが、カーブにさしかかった場合には、各コンピュータカーのコーナリング性能に応じた減速制御が必要となってくる。
【００５８】
ここでカーブのきつさは曲率ｒによって表すことができる。曲率ｒが小さいほど急なカーブとなり、曲率ｒが大きいほど緩やかなカーブとなりる。なお直線コースでは曲率ｒは無限大となる。
【００５９】
ここで同じカーブを走行する場合でも各コンピュータカーのコーナリング性能応じて、カーブにおいて必要な減速程度は異なってくる。
【００６０】
例えばコーナリング性能がわるいという特性（走行性能）を有するコンピュータカーの場合、カーブでは大きく減速する必要がある。これに対し例えばコーナリング性能がよいという特性（走行性能）を有するコンピュータカーの場合、カーブでの減速程度は少なくても良い。
【００６１】
このように各コンピュータカーをその性能に見合った最高の速度で走行させるための目標速度は、コース上の所与の位置における曲率ｒ又はその逆数１／ｒと、各コンピュータカーのコーナリング性能に応じて異なってくる。
【００６２】
図３は、本実施の形態のコースの曲率情報（１／ｒ）をグラフ化した図である。
【００６３】
横軸は第１の軸Ｌであり、縦軸は曲率の逆数（１／ｒ）をとってある。なお図２のコースとの対応をわかりやすくするため、右回りのカーブにおける曲率の逆数（１／ｒ）を正で表し、左回りのカーブにおける曲率の逆数（１／ｒ）を負で表している。
【００６４】
図４は、本実施の形態の曲率情報テーブルの一例を示した図である。
【００６５】
本実施の形態では、コース上の各位置の曲率の逆数（１／ｒ）３２０をコース上の各位置と対応付けて曲率情報テーブル３００として持たせている。
【００６６】
コース上の各位置は、スタート位置からの距離で表している（３１０参照）。
【００６７】
各コンピュータカーの所与の位置に置ける目標速度ｖｋ（ｋ＝１，２，３，・・・）は、例えば各コンピュータカーＣｋ（ｋ＝１，２，３，・・・）のコーナリング性能に応じて設定されている関数（コーナリング性能情報の一例）ｖｋ＝ｆｋ（１／ｒ）、（ここでｋ＝１，２，３，・・・）によって求めることができる。
【００６８】
本実施の形態ではコースの曲率情報（１／ｒ）を予め記憶させておき、各コンピュータカーの所与の位置に置ける目標速度ｖｋ（ｋ＝１，２，３，・・・）は、各コンピュータカーＣｋ（ｋ＝１，２，３，・・・）のコーナリング性能に応じて設定されている関数ｖｋ＝ｆｋ（１／ｒ）により、リアルタイムに演算するので、コースに対応して曲率情報テーブルを１つもつだけでよい。
【００６９】
従って、移動体のコーナリング性能毎に目標速度テーブルを持つ場合に比べメモリの使用量を減らすことができる。
【００７０】
これによって性能の異なる移動体を同時に多数制御することが簡単にできるようになるので、コンピュータの制御する移動体のバリエーションが豊富になりよりリアルなレース演出を行うことができるようになる。
【００７１】
図５は、本実施の形態の速度制御処理の一例を説明するための図である。
【００７２】
横軸に位置（スタート位置からの距離）ｐ、縦軸に速度ｖを表す。
【００７３】
４１０は、コースの曲率情報（１／ｒ）及び所定のコンピュータカーのコーナリング性能に基づき求めた所定のコンピュータカーの目標速度曲線である。
【００７４】
なお、この目標速度曲線が高い値で水平になっている部分は、コースの直線部分のために本来は無限大であるが、便宜上、コンピュータカーが出すことのできない速度である。
【００７５】
４１２の部分は、カーブに対応して目標速度が小さくなっている部分である。
【００７６】
本実施の形態ではコース上の所与の位置において、所定のコンピュータカーが前記目標速度曲線によって与えられる目標速度に近づくように所定のコンピュータカーの速度制御を行う。
【００７７】
４２０は本実施の形態のコース上の所与の位置における所定のコンピュータカーの実際の速度の軌跡を表す曲線である。
【００７８】
４３０−０、４３０−１、・・・は所定のコンピュータカーがコース上の所与の位置から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。
【００７９】
例えば４３０−０は所定のコンピュータカーがコース上の位置Ｐ０から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線であり、Ｐ０’−１、Ｐ０’−２、Ｐ０’−３はコース上の複数のサンプリング位置であり、ｖ０’−１、ｖ０’−２、ｖ０’−３は前記コース上の複数のサンプリング位置における予想速度である。
【００８０】
本実施の形態では、コース上の所与の位置から減速し始めた場合のシミュレーション演算結果として得られたコース上の複数のサンプリング位置での予想速度をもとめ、目標速度曲線４１０からサンプリング位置に対応する目標速度を求め、予想速度と目標速度を比較して、比較結果にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行う。
【００８１】
移動体ごとに異なるブレーキング性能を設定しておき、当該ブレーキング性能に基いて減速シミュレーション演算を行っても良い。
【００８２】
例えば前記複数のサンプリング位置での予想速度と目標速度の比較結果のうち差が最も小さくなる最小速度差を検索して、検索結果得られた最小速度差にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行う。
【００８３】
より具体的には前記最小速度差が正の場合には加速制御を行い、前記最小速度差が負の場合には減速制御を行う。
【００８４】
ここで、所定のコンピュータカーがコース上の位置Ｐ０から減速し続けたときには、予想速度と目標速度の速度差は常に正であり、最小速度差も正である。これはＰ０がこの先のカーブに対応して減速を始める位置としては早すぎることを示している。従って、Ｐ０においては所定のコンピュータカーに対して加速制御を行う。
【００８５】
次に４３０−１は所定のコンピュータカーがコース上の位置Ｐ１から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。ここで、所定のコンピュータカーがコース上の位置Ｐ１から減速し続けたときには、予想速度と目標速度の速度差は常に正であり、最小速度差も正である。これはＰ１がこの先のカーブに対応して減速を始める位置としてはまだ早すぎることを示している。従って、Ｐ１においても所定のコンピュータカーに対して加速制御を行う。
【００８６】
次に４３０−２は所定のコンピュータカーがコース上の位置Ｐ２から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。ここで、所定のコンピュータカーがコース上の位置Ｐ２から減速し続けたときには、Ｐ２’−ｎまでは予想速度と目標速度の速度差は正であるが、Ｐ２’−ｎで速度差が０となり、これが最小速度差となる。これはＰ２がこの先のカーブに対応して減速を始める位置として適当な位置であることを示している。従って、Ｐ２においては所定のコンピュータカーに対して減速制御を行う。又はＰ２において減速開始タイミングがきたと判断する。
【００８７】
４３０−３は所定のコンピュータカーがコース上の位置Ｐ３から減速し続けたときの走行シミュレーション演算を行った結果の予想速度曲線である。もしかりにＰ３で、所定のコンピュータカーが減速しはじめたときには、Ｐ３’−ｍまでは予想速度と目標速度の速度差は正であるが、Ｐ３’−ｍで速度差が０となり、それ以降速度差が負の値となる。これはＰ３がこの先のカーブに対応して減速を始める位置としては行き過ぎ（遅すぎ）た位置であることを示している。従ってＰ３よりも手前で減速を開始するように速度制御を行う。
【００８８】
このように本実施の形態では、コース上の所与の位置から減速し始めた場合のシミュレーション演算結果として得られたコース上の複数のサンプリング位置での予想速度をもとめ、対応する位置の目標速度と比較して、比較結果にもとづきコース上の所与の位置における減速／加速制御又は減速開始タイミングの判断を行うので、先に存在するカーブに対して必要十分な位置から減速を始めることができる。
【００８９】
図６は本実施の形態の速度制御処理の流れをしめすフローチャート図である。
【００９０】
まず速度変数Ｖに現在の速度、シミュレーション位置変数Ｐに現在位置Ｐ０（例えばスタート位置からの距離）をセットする（ステップＳ１０）。
【００９１】
次に現在位置（例えばスタート位置からの距離）に対応した曲率情報を曲率情報テーブルから読み出して、曲率情報と処理対象コンピュータカーのコーナリング性能に基づき現在位置の目標速度を求める（ステップＳ２０）。
【００９２】
速度差変数Ｄに現在位置Ｐの目標速度と実際の速度の差をセットする（ステップＳ３０）。
【００９３】
シミュレーション位置をより進めた位置Ｐ０’−ｎに更新する（ステップＳ４０）。
【００９４】
現在位置Ｐ０から減速したときのシミュレーション演算を行い、シミュレーション位置Ｐ０’−ｎに置ける予想速度Ｖ０’−ｎを求める（ステップＳ５０）。
【００９５】
Ｖ０’−ｎが一定以下でなければ以下のステップＳ７０〜Ｓ９０の処理を行う（ステップＳ６０）。
ここで一定とは０までは行かない遅い速度のことである。Ｖ０’−ｎが一定以下か否か判断するのは、Ｖ０’−ｎが０になるまで（止まるまで）シミュレーションを行う必要がないからである。
【００９６】
まずシミュレーション位置Ｐ０’−ｎに対応した曲率情報を曲率情報テーブルから読み出して、曲率情報と処理対象コンピュータカーのコーナリング性能に基づきシミュレーション位置Ｐ０’−ｎの目標速度をＭＶ０’−ｎを求める（ステップＳ７０）。
【００９７】
ここでＤ＜（目標速度ＭＶ０’−ｎ−予想速度Ｖ０’−ｎ）であれば目標速度ＭＶ０’−ｎ−予想速度Ｖ０’−ｎをセットしてステップＳ４０に戻り、（ステップＳ８０，Ｓ９０）、Ｄ＜（目標速度ＭＶ０’−ｎ−予想速度Ｖ０’−ｎ）でなければそのままステップＳ４０に戻る（ステップＳ８０）。
【００９８】
またステップＳ６０でＶ０’−ｎが一定以下であれば、Ｄが正であれば現在位置Ｐ０において加速制御を行い、Ｄが正でなければ現在位置Ｐ０において減速制御を行う（ステップＳ１００〜Ｓ１２０）。
【００９９】
３．ハードウェア構成
図７に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１００】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１０１】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１０２】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１０３】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１０４】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１０５】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１０６】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１０７】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１０８】
上記実施の形態では、コースの曲率情報（パラメータ）とコンピュータ操作移動体について設定されたコーナリング性能情報に基づき、目標速度を求める場合を例にとり説明したがこれに限られない。
【０１０９】
例えば、コースの舗装／未舗装、ドライ面／ウェット面、コース摩擦係数等の移動体の走行に影響を与えるコース情報と、コンピュータ操作移動体について設定された走行性能情報（前記コース情報に対応して設定された走行性能、例えば未舗装やウェット面の走行に強いとかに関する走行性能でもよい）に基づき、目標速度を求める場合でもよい。
【０１１０】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１１１】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【０１１２】
【図１】本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例である。
【図２】本実施の形態のコースのイメージ図である。
【図３】本実施の形態のコースの曲率情報（１／ｒ）をグラフ化した図である。
【図４】本実施の形態の曲率情報テーブルの一例を示した図である。
【図５】本実施の形態の速度制御処理の一例を説明するための図である。
【図６】本実施の形態の速度制御処理の流れをしめすフローチャート図である。
【図７】本実施形態を実現できるハードウェア構成の例を示す。
【符号の説明】
【０１１３】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１１６  コンピュータ操作移動体速度制御、１２０  描画部、１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  描画バッファ、１７４  テクスチャ記憶部、１７６  コーナリング性能情報記憶部、１７８  曲率情報記憶部、１８０  情報記憶媒体、１９０  表示部、
１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2006011923.tif 000003
【図２】
2006011923.tif 000004
【図３】
2006011923.tif 000005
【図４】
2006011923.tif 000006
【図５】
2006011923.tif 000007
【図６】
2006011923.tif 000008
【図７】
2006011923.tif 000009