(57)【要約】【課題】より少ない処理負荷で、各キャラクタの様々な動きを実現して群れの動きをリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供する。【解決手段】移動ベクトル演算部１１２が、当該フレームにおいて、その方向がランダムに決められる第１の移動ベクトルＲＶ−ｊを求める。過去ベクトル記憶部１７２が、当該フレームより過去のフレームにおいて求められた移動体オブジェクトの第３の移動ベクトルＭＶ＿ｊを記憶する。移動ベクトル演算部１１２はさらに、第２の移動ベクトルＭＶ＿ｊと、第１の移動ベクトルＲＶ−ｊとに基づいて、当該フレームでの移動体オブジェクトＭｏｂｊ＿ｋの第３の移動ベクトルＭＶ＿ｋを求める。そして、画像生成部１３０が、当該フレームにおいて、オブジェクト空間を、前記第３の移動ベクトルを用いて移動する移動体オブジェクトの画像を生成する。【選択図】図２
2009251883.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成する画像生成システムであって、
当該フレームにおいて、その方向がランダムに決められる第１の移動ベクトルを求める移動ベクトル演算部と、
当該フレームより過去のフレームにおいて求められた移動体オブジェクトの第３の移動ベクトルを当該フレームにおける第２の移動ベクトルとして記憶する過去ベクトル記憶部と、
を含み、
前記移動ベクトル演算部はさらに、前記第２の移動ベクトルと、前記第１の移動ベクトルとに基づいて、当該フレームでの前記移動体オブジェクトの第３の移動ベクトルを求め、当該フレームにおいて、オブジェクト空間を、前記第３の移動ベクトルを用いて移動する前記移動体オブジェクトの画像を生成する画像生成部を含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記移動ベクトル演算部が、
前記第３の移動ベクトルを、所与の方向範囲に収まるように求めることを特徴とする画像生成システム。
【請求項３】
請求項２において、
前記移動ベクトル演算部が、
前記所与の方向範囲を、前記移動体オブジェクトの特性に関連付けて変更することを特徴とする画像生成システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記移動ベクトル演算部が、
前記移動体オブジェクトの特性に関連付けられた参照率パラメータに基づいて前記第１の移動ベクトルと前記第２の移動ベクトルとを補間して、前記第３の移動ベクトルを求めることを特徴とする画像生成システム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記移動ベクトル演算部が、
所与の移動距離範囲内でランダムに求められる長さを有する前記第３の移動ベクトルを求めることを特徴とする画像生成システム。
【請求項６】
請求項５において、
前記移動ベクトル演算部が、
前記所与の移動距離範囲を、前記移動体オブジェクトの特性に関連付けて変更することを特徴とする画像生成システム。
【請求項７】
画像を生成するための画像生成システムであって、
オブジェクト空間を移動する移動体オブジェクトの停止イベントをランダムに発生するイベント処理部と、
前記停止イベントが発生したとき、前記移動体オブジェクトを所与のフレーム数の間、前記移動体オブジェクトの位置を固定する停止状態に設定する移動体オブジェクト停止制御部と、
前記オブジェクト空間の前記移動体オブジェクトの画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項８】
請求項７において、
前記移動体オブジェクト停止制御部が、
前記停止イベントが発生したとき、ランダムに設定された時間が経過するまで前記移動体オブジェクトを停止状態に設定することを特徴とする画像生成システム。
【請求項９】
請求項７又は８において、
前記移動体オブジェクト停止制御部が、
前記停止イベントの発生率を、前記移動体オブジェクトの特性に関連付けて変更することを特徴とする画像生成システム。
【請求項１０】
画像を生成するためのプログラムであって、
当該フレームにおいて、その方向がランダムに決められる第１の移動ベクトルを求める移動ベクトル演算部と、
当該フレームより過去のフレームにおいて求められた移動体オブジェクトの第３の移動ベクトルを当該フレームにおける第２の移動ベクトルとして記憶する過去ベクトル記憶部としてコンピュータを機能させ
前記移動ベクトル演算部は、前記第２の移動ベクトルと、前記第１の移動ベクトルとに基づいて、当該フレームでの前記移動体オブジェクトの第３の移動ベクトルを求め、当該フレームにおいて、オブジェクト空間を、前記第３の移動ベクトルを用いて移動する前記移動体オブジェクトの画像を生成する画像生成部を含むことを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記移動ベクトル演算部が、
前記第３の移動ベクトルを、所与の方向範囲に収まるように求めることを特徴とするプログラム。
【請求項１２】
請求項１１において、
前記移動ベクトル演算部が、
前記所与の方向範囲を、前記移動体オブジェクトの特性に関連付けて変更することを特徴とするプログラム。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記移動ベクトル演算部が、
前記移動体オブジェクトの特性に関連付けられた参照率パラメータに基づいて前記第１の移動ベクトルと前記第２の移動ベクトルとを補間して、前記第３の移動ベクトルを求めることを特徴とするプログラム。
【請求項１４】
請求項１０乃至１３のいずれかにおいて、
前記移動ベクトル演算部が、
所与の移動距離範囲内でランダムに求められる長さを有する前記第３の移動ベクトルを求めることを特徴とするプログラム。
【請求項１５】
請求項１４において、
前記移動ベクトル演算部が、
前記所与の移動距離範囲を、前記移動体オブジェクトの特性に関連付けて変更することを特徴とするプログラム。
【請求項１６】
画像を生成するためのプログラムであって、
オブジェクト空間を移動する移動体オブジェクトの停止イベントをランダムに発生するイベント処理部と、
前記停止イベントが発生したとき、前記移動体オブジェクトを所与のフレーム数の間、前記移動体オブジェクトの位置を固定する停止状態に設定する移動体オブジェクト停止制御部と、
前記オブジェクト空間の前記移動体オブジェクトの画像を生成する画像生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項１７】
請求項１６において、
前記移動体オブジェクト停止制御部が、
前記停止イベントが発生したとき、ランダムに設定された時間が経過するまで前記移動体オブジェクトを停止状態に設定することを特徴とするプログラム。
【請求項１８】
請求項１６又は１７において、
前記移動体オブジェクト停止制御部が、
前記停止イベントの発生率を、前記移動体オブジェクトの特性に関連付けて変更することを特徴とするプログラム。
【請求項１９】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１０乃至１８のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
画像生成システム（ゲームシステム）の処理速度が向上し、画面上により多くのキャラクタを表示できるようになっている。例えばゲーム画像のエフェクト効果として、動物や虫などの群れを表現した画像を表示することで、リアルさを高めることができる。
【０００３】
群れを表現する画像の生成にはリアルタイム性が要求される。そのため、群れを構成する複数のキャラクタをそれぞれ別個に処理すると、他の処理を圧迫してしまう。従って、より少ない負荷で、リアルな群れを表現する画像を生成できることが望ましい。
【０００４】
例えば特許文献１には、群れの中の１つのキャラクタをリーダーとして決定し、このリーダーに、この群れの他のキャラクタを追従させることで、処理負荷を軽減する方策が開示されている。
【特許文献１】特開２０００−１７２８６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示された方策では、群れ全体の動きを表現できるものの、群れの中のキャラクタの個々の細かい動きを表現することが難しい。群れの中のキャラクタの個々の細かい動きを表現できれば、よりリアルな画像を生成できる。そこで、キャラクタの種類に応じて異なる行動パターンを各キャラクタに反映させることが考えられる。
【０００６】
ところが、キャラクタの種類ごとに行動パターンを指定すると、データ量の増大や処理の複雑化を招く。また、多種多様なキャラクタの動きを実現することがますます困難となる。
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、より少ない処理負荷で、各キャラクタの様々な動きを実現して群れの動きをリアルに表現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
（１）本発明は、
画像を生成する画像生成システムであって、
当該フレームにおいて、その方向がランダムに決められる第１の移動ベクトルを求める移動ベクトル演算部と、
当該フレームより過去のフレームにおいて求められた移動体オブジェクトの第３の移動ベクトルを当該フレームにおける第２の移動ベクトルとして記憶する過去ベクトル記憶部と、を含み、
前記移動ベクトル演算部はさらに、前記第２の移動ベクトルと、前記第１の移動ベクトルとに基づいて、当該フレームでの前記移動体オブジェクトの第３の移動ベクトルを求め、当該フレームにおいて、オブジェクト空間を、前記第３の移動ベクトルを用いて移動する前記移動体オブジェクトの画像を生成する画像生成部を含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００９】
ここでフレームは、シミュレーション処理や画像処理を行う時間単位である。
【００１０】
本発明によれば、過去のフレームでの動きを加味し、かつランダムな方向に向かう移動体オブジェクトの動きを表現できる。そして、このような移動体オブジェクトを複数表示させることで、虫等の群れをよりリアルに表現できる。
【００１１】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動ベクトル演算部が、前記第３の移動ベクトルを、所与の方向範囲に収まるように求めてもよい。
【００１２】
本発明によれば、過去のフレームの移動ベクトルとの関係で、方向範囲を定めることで、ランダムな要素を加えつつ、自然な向きに移動する移動体オブジェクトを表現できる。
【００１３】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動ベクトル演算部が、前記所与の方向範囲を、前記移動体オブジェクトの特性に関連付けて変更してもよい。
【００１４】
このようにすれば、方向範囲をパラメータ化できるので、処理の簡素化、プログラムやデータの容量の削減、移動体オブジェクトの表現の多様化を実現できる。
【００１５】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動ベクトル演算部が、前記移動体オブジェクトの特性に関連付けられた参照率パラメータに基づいて前記第１の移動ベクトルと前記第２の移動ベクトルとを補間して、前記第３の移動ベクトルを求めてもよい。
【００１６】
本発明によれば、過去のフレームの移動ベクトルの参照する度合いを変化させて、移動体オブジェクトに、雑な動きや猪突猛進的な動きを行わせることができるので、群れて移動する移動体オブジェクトがそれぞれ微妙に異なる動きをして、群れ全体としてよりリアルな動きを表現できる。
【００１７】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動ベクトル演算部が、所与の移動距離範囲内でランダムに求められる長さを有する前記第３の移動ベクトルを求めてもよい。
【００１８】
本発明によれば、移動体オブジェクトに、もたつく動きや突進する動きを行わせることができるので、群れて移動する複数の移動体オブジェクトがそれぞれ微妙に異なる動きをして、群れ全体としてよりリアルな動きを表現できる。
【００１９】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動ベクトル演算部が、前記所与の移動距離範囲を、前記移動体オブジェクトの特性に関連付けて変更してもよい。
【００２０】
このようにすれば、移動距離範囲をパラメータ化できるので、処理の簡素化、プログラムやデータの容量の削減、移動体オブジェクトの表現の多様化を実現できる。
【００２１】
（７）また本発明は、画像を生成するための画像生成システムであって、オブジェクト空間を移動する移動体オブジェクトの停止イベントをランダムに発生するイベント処理部と、前記停止イベントが発生したとき、前記移動体オブジェクトを所与のフレーム数の間、前記移動体オブジェクトの位置を固定する停止状態に設定する移動体オブジェクト停止制御部と、前記オブジェクト空間の前記移動体オブジェクトの画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００２２】
（８）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト停止制御部が、前記停止イベントが発生したとき、ランダムに設定された時間が経過するまで前記移動体オブジェクトを停止状態に設定してもよい。
【００２３】
本発明によれば、ランダムに発生する停止イベントにより、移動体オブジェクトに警戒感をもった動きを行わせることができるので、群れて移動する複数の移動体オブジェクトがそれぞれ微妙に異なる動きをして、群れ全体としてよりリアルな動きを表現できる。
【００２４】
（９）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記移動体オブジェクト停止制御部が、前記停止イベントの発生率を、前記移動体オブジェクトの特性に関連付けて変更してもよい。
【００２５】
このようにすれば、停止イベントの発生率をパラメータ化できるので、処理の簡素化、プログラムやデータの容量の削減、移動体オブジェクトの表現の多様化を実現できる。
【発明を実施するための最良の形態】
【００２６】
以下、本実施形態について説明する。
【００２７】
なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
【００２８】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお、本実施形態の画像生成システムは、図１の構成要素（各部）を全て含む必要はなく、その一部（例えば操作部１６０、携帯型情報記憶装置１９４又は通信部１９６等）を省略した構成としてもよい。
【００２９】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサ、タッチパネル型ディスプレイ、或いは筺体などのハードウェアにより実現できる。
【００３０】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３１】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶（記録、格納）される。
【００３２】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３３】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【００３４】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００３５】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３７】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。ここで処理部１００が行うゲーム処理としては、ゲーム開始条件（コースやマップやキャラクタや参加プレーヤ人数の選択等）が満たされた場合にゲームを開始させる処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了させる処理などがある。また処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）やＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラム（ゲームプログラム）により実現できる。
【００３８】
処理部１００は、移動体オブジェクト制御部１１０、イベント処理部１２０、画像生成部１３０、音生成部１４０を含む。なおこれらの一部を省略してもよい。
【００３９】
移動体オブジェクト制御部１１０は、移動体オブジェクトを制御する処理を行う。オブジェクト空間内に複数の移動体オブジェクトを設定し、以下に述べるパラメータにより同種の行動パターンを行わせることで、群れて行動する様子を表現できる。
【００４０】
移動体オブジェクト制御部１１０は、移動体オブジェクトの移動情報（移動ベクトル、位置情報、方向情報、速度情報或いは加速度情報）を求める処理を行う。移動体オブジェクト制御部１１０は、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、移動体オブジェクトをオブジェクト空間内で移動させる処理を行う。
【００４１】
より具体的には、移動体オブジェクト制御部１１０は、求めた移動ベクトルに応じて、移動体オブジェクトの位置や回転角度（方向）を例えば１フレーム（１／６０秒等）毎に変化させる。例えば（ｋ−１）フレームでの移動体オブジェクトの位置（Ｘ、Ｙ又はＺ座標）、回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）をＰk-1、θk-1とし、移動体オブジェクトの１フレームでの位置変化量（速度）、回転変化量（回転角度）をΔＰ、Δθとする。すると、ｋフレームでの移動体オブジェクトの位置Ｐk、回転角度θkは例えば下式（１）、（２）のように求められる。
【００４２】
Ｐk＝Ｐk-1＋ΔＰ          （１）
θk＝θk-1＋Δθ          （２）
なお移動体オブジェクト制御部１１０で行われる処理は、上式（１）、（２）の処理に限定されず、（１）、（２）式と均等な処理でもよい。
【００４３】
移動体オブジェクト制御部１１０は、移動ベクトル演算部１１２、移動体オブジェクト停止制御部１１６を含む。
【００４４】
移動ベクトル演算部１１２は、当該フレームにおいて、その方向がランダムに決められる第１の移動ベクトルを求める。より具体的には、移動ベクトル演算部１１２は、所定のアルゴリズムで乱数系列を用いて求められた方向を有する第１の移動ベクトルを求める。第１の移動ベクトルを用いて移動体オブジェクトを、オブジェクト空間内で移動させることで、群れて行動する複数の移動体オブジェクトの個々の動きをよりリアルに表現できる。
【００４５】
移動ベクトル演算部１１２は、さらに、求められた第１の移動ベクトルと当該移動体オブジェクトに付与された特性（性質、属性）に応じた参照率パラメータと、第２の移動ベクトルとに基づいて当該フレームにおける第３の移動ベクトルを算出する。
【００４６】
移動体オブジェクトの特性を定める移動体オブジェクトの特性情報は、記憶部１７０のオブジェクト特性記憶部１７４に格納される。移動体オブジェクトの特性情報は、当該移動体オブジェクトの第１の移動ベクトルの参照率を指定するパラメータを含む。移動体オブジェクトの特性は、第１の移動ベクトルの参照率を指定するパラメータを含む複数のパラメータによって定められる。
【００４７】
移動ベクトル演算部１１２は、オブジェクト特性記憶部１７４に記憶された移動体オブジェクトの特性情報を用いて、第３の移動ベクトルを当該オブジェクトの特性に応じて求める。なお、移動体オブジェクトには、特性が予め付与されてもよいし、処理中に変更できるようにしてもよい。
【００４８】
より具体的には、当該フレームより過去のフレームにおいて求められた当該移動体オブジェクトの第３の移動ベクトルは、記憶部１７０の過去ベクトル記憶部１７２に記憶される。そして、移動ベクトル演算部１１２は、過去ベクトル記憶部１７２に記憶された過去ベクトルを当該移動体オブジェクトの第２の移動ベクトルとして、当該フレームにおいて求められた当該移動体オブジェクトの第１の移動ベクトルとその参照率とに基づいて、当該フレームにおける移動体オブジェクトの第３の移動ベクトルを求める。
【００４９】
移動ベクトル演算部１１２は、求められた第３の移動ベクトルを所与の方向範囲に収まるように補正する。移動ベクトル演算部１１２は、この方向範囲を、当該移動体オブジェクトに付与された特性に応じて補正する。即ち、移動体オブジェクトの特性情報は、当該移動体オブジェクトの第３の移動ベクトルの方向範囲を指定するパラメータを含む。
【００５０】
具体的には、求められた第３の移動ベクトルが、当該移動体オブジェクトの方向範囲外になった場合は、当該移動体オブジェクトの第１の移動ベクトルに付与された参照率よりもさらに低い参照率に基づき、第３の移動ベクトルを再演算することで、第３の移動ベクトルが当該移動オブジェクトの方向範囲内に収まるように補正する。
【００５１】
第３の移動ベクトルを用いて移動体オブジェクトを、オブジェクト空間内で移動させることで、当該フレームより過去のフレームにおける移動体オブジェクトの動きを反映させ、自然な動きを表現できる。
【００５２】
また、移動ベクトル補正部１１２は、所与の移動距離範囲内でランダムに求められる長さを有する第３の移動ベクトルを求めることができる。移動ベクトル補正部１１２は、この移動距離範囲を、当該移動体オブジェクトに付与された特性に応じて変更する。即ち移動体オブジェクトの特性情報は、移動距離範囲を指定するためのパラメータを含み、移動ベクトル補正部１１２は、オブジェクト特性記憶部１７４に記憶された移動距離範囲を指定するためのパラメータを用いて、所与の移動距離範囲内でランダムに求められる長さを有する第３の移動ベクトルを求めることができる。
【００５３】
移動体オブジェクト停止制御部１１６は、当該移動体オブジェクトに対して発生した停止イベントに対応した処理を行う。より具体的には、移動体オブジェクトに対して停止イベントが発生した場合、移動体オブジェクト停止制御部１１６は、当該移動体オブジェクトを、所与のフレーム数の間、停止状態に設定する。ここで停止状態は、例えばオブジェクト空間内における当該移動体オブジェクトの位置が複数フレームにわたって固定される状態である。移動体オブジェクト停止制御部１１６は、例えばランダムに求められる期間、当該移動体オブジェクトを停止状態に設定することができる。また、移動体オブジェクト停止制御部１１６は、当該移動体オブジェクトの特性に応じて停止イベントの発生率を変更して、該発生率に基づいて求められる期間、当該移動体オブジェクトを停止状態に設定することができる。この場合、停止状態に設定される期間は、当該移動体オブジェクトの特性に応じて決まるフレーム数にランダムに求められる係数を掛け合わせて求められる。このような停止イベントの発生により、例えば移動体オブジェクトの警戒感のある動きを表現でき、この移動体オブジェクトの動きにより表される群れの動きを、よりリアルにすることができる。
【００５４】
イベント処理部１２０は、オブジェクト空間を移動する移動体オブジェクトの停止イベントをランダムに発生する。停止イベントの発生率は、当該移動体オブジェクトに付与された特性により決められることが望ましい。この場合、停止イベントの発生率は、当該移動体オブジェクトに付与された特性により決められる発生率に、ランダムに求められた係数を掛け合わせることで求められる。
【００５５】
画像生成部１３０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。即ち、移動体オブジェクト制御部１１０の処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。より具体的には、３次元画像を生成する場合には、まず座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理を行って、その処理結果に基づいて、描画データが作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数のプリミティブ面）を、描画バッファ１７６（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５６】
音生成部１４０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５７】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５８】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。      
【００５９】
２．  本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００６０】
２．１  移動ベクトルの生成
図２に、本実施形態の説明図を示す。
【００６１】
図２では、当該フレームであるｋ（ｋは１以上の整数）フレームにおける移動体オブジェクト及び移動ベクトルにｋを付して示す。また、当該フレームより過去のフレームであるｊ（ｊ＜ｋ、ｊは正の整数）フレームにおける移動ベクトルにｊを付して示す。ｊは例えば（ｋ−１）である。さらに、当該フレームより未来のフレームであるｌ（ｋ＜ｌ、ｌは正の整数）フレームにおける移動体オブジェクトにｌを付して示す。ｌは例えば（ｋ＋１）である。
【００６２】
本実施形態では、まずｊフレームにおける移動体オブジェクトＭＯＢＪ＿ｊ（図示しない）の移動ベクトルＭＶ＿ｊ（ｊフレームにおける第３の移動ベクトル）が、過去ベクトル記憶部１７２に格納される。即ち、ｊフレームにおける第３の移動ベクトルが、ｋフレームにおける第２の移動ベクトルとなる。
【００６３】
そして、当該フレームであるｋフレームになると、移動ベクトル演算部１１２が、その方向がランダムに決められる第１の移動ベクトルＲＶ＿ｋを求める。さらに、移動ベクトル演算部１１２は、第２の移動ベクトルＭＶ＿ｊと、第１の移動ベクトルＲＶ−ｋとに基づいて、当該フレームでの移動体オブジェクトＭＯＢ＿ｋの第３の移動ベクトルＭＶ＿ｋを求める。
【００６４】
そして、画像生成部１３０が、ｋフレーム（当該フレーム）において、オブジェクト空間を第３の移動ベクトルＭＶ−ｋを用いて移動する移動体オブジェクトＭＯＢＪ＿ｌの画像を生成し、ｌフレーム（次フレーム）において表示する。こうすることで、過去のフレームでの動きを加味し、かつランダムな方向に向かう移動体オブジェクトの動きを表現できる。
【００６５】
したがって、このような移動体オブジェクトを複数表示させることで、虫等の群れをよりリアルに表現できる。
【００６６】
本実施形態では、以下のように各移動体オブジェクトの動きを表現するための要素をパラメータ化する。そして、表現したい移動体オブジェクトの特性に対応したパラメータ設定により、複数の移動体オブジェクトによる群れの動きを実現する。こうすることで、群れの動きをより少ない処理負荷で多様化し、かつよりリアルにすることができる。
【００６７】
２．２  パラメータ化
２．２．１  行動タイプ
本実施形態では、複数の移動体オブジェクトにより構成される群れの動きを実現するため、ターゲットがオブジェクト空間内に設定される。そして、各移動体オブジェクトがターゲットに対してどのように行動するかを設定する。これにより、同種の行動を行う複数の移動体オブジェクトが群れて行動する様子を表現する画像を生成することができる。
【００６８】
本実施形態では、移動体オブジェクトに対して行動タイプを指定するパラメータを設ける。行動タイプには、ターゲットを見つけるＳＥＡＲＣＨタイプと、ターゲットから逃げるＥＳＣＡＰＥタイプとがある。
【００６９】
図３（Ａ）、（Ｂ）に、行動タイプを説明するための図を示す。図３（Ａ）は、ＳＥＡＲＣＨタイプの移動体オブジェクトの行動パターンを模式的に示す。図３（Ｂ）は、ＥＳＣＡＰＥタイプの移動体オブジェクトの行動パターンを模式的に示す。
【００７０】
ＳＥＡＲＣＨタイプの移動体オブジェクトは、オブジェクト空間において、ターゲットの位置に近付く方向に移動する。より具体的には、行動タイプがＳＥＡＲＣＨタイプに設定された移動体オブジェクトＭＯＢＪ１〜ＭＯＢＪ３は、例えば各移動体オブジェクトからターゲットＴＧに向かう移動ベクトルＭＶ１〜ＭＶ３を用いて移動する。なお移動ベクトルは、後述するように補正することで、各移動体オブジェクトがターゲットＴＧの位置に、よりリアルな動きで近付いてく。このようなＳＥＡＲＣＨタイプの複数の移動体オブジェクトにより、例えばターゲットの位置に配置された敵キャラクタに対して群れで攻撃を加えるといった表現が可能となる。
【００７１】
ＥＳＣＡＰＥタイプの移動体オブジェクトは、オブジェクト空間において、ターゲットの位置から遠ざかる方向に移動する。より具体的には、行動タイプがＥＳＣＡＰＥタイプに設定された移動体オブジェクトＭＯＢＪ１〜ＭＯＢＪ４は、例えば各移動体オブジェクトからターゲットＴＧへの方向とは反対の方向の移動ベクトルＭＶ１〜ＭＶ４を用いて移動する。なお移動ベクトルは、後述するように補正することで、各移動体オブジェクトが、ターゲットＴＧの位置からよりリアルな動きで遠ざかったり、或いは所定の距離を置くようになる。このようなＥＳＣＡＰＥタイプの複数の移動体オブジェクトにより、例えばターゲットの位置に配置されたキャラクタを避ける群れを表現できる。
【００７２】
なお、操作部１６０からの操作データやプログラムに基づいて、オブジェクト空間内のターゲットＴＧの位置を変化させることで、ターゲットＴＧを常に追いかける群れや、ターゲットＴＧを避けたり、或いは逃げ回る複数の移動体オブジェクトによる群れを表現できる。
【００７３】
ここで、各移動体オブジェクトに、例えば虫キャラクタＡ、虫キャラクタＢ、虫キャラクタＣの３種類の虫の特性を付与した場合の群れの動きを表現することを考える。
【００７４】
図４に、各移動体オブジェクトに虫キャラクタＡの特性を付与した複数の移動体オブジェクトによる群れの画像の一例を示す。
【００７５】
虫キャラクタＡは、例えば海辺の岩等の上で群れをなして動くフナムシの動きを実現する。この虫キャラクタＡ（フナムシ）の動きを表現するため、各移動体オブジェクトの行動タイプをＥＳＣＡＰＥタイプに設定する。そして、図４に示すようにオブジェクト空間に設定され起伏に富んだ地形マップＧＭＡＰ上に、ターゲットＴＧと複数の移動体オブジェクトを配置する。
【００７６】
この場合、ターゲットＴＧの位置に近付かない群れを表現できる。例えば、ターゲットＴＧの位置を中心に所定のエリア内でのみ、ターゲットＴＧから移動体オブジェクトが遠ざかるようにすれば、図４に示すように所定のエリア内に近付かない群れの動きを表現できる。
【００７７】
図５に、各移動体オブジェクトに虫キャラクタＢの特性を付与した複数の移動体オブジェクトによる群れの画像の一例を示す。
【００７８】
虫キャラクタＢは、例えば群れをなさず、素早い動きで四方八方を動き回るゴキブリの動きを実現する。この虫キャラクタＢ（ゴキブリ）の動きを表現するため、各移動体オブジェクトの行動タイプをＥＳＣＡＰＥタイプに設定する。そして、図５に示すようにオブジェクト空間に設定され起伏に富んだ地形マップＧＭＡＰ上に、ターゲットＴＧと複数の移動体オブジェクトを配置する。
【００７９】
ただし、図４に示す虫キャラクタＡ（フナムシ）を表現する場合と異なるのは、後述する各種パラメータを変更することで、同じＥＳＣＡＰＥタイプであっても、異なる動きをリアルに表現できる。
【００８０】
この場合、ターゲットＴＧの位置に近付かない群れを表現できるが、素早い動きで、統制されることなく、あちこち動き回る群れの動きを表現できる。
【００８１】
図６に、各移動体オブジェクトに虫キャラクタＣの特性を付与した複数の移動体オブジェクトによる群れの画像の一例を示す。
【００８２】
虫キャラクタＣは、例えば嗜好物に猪突猛進的に素早い動きで近付くスカラベの動きを実現する。この虫キャラクタＣ（スカラベ）の動きを表現するため、各移動体オブジェクトの行動タイプをＳＥＡＲＣＨタイプに設定する。そして、図６に示すようにオブジェクト空間に設定され起伏に富んだ地形マップＧＭＡＰ上に、ターゲットＴＧと複数の移動体オブジェクトを配置する。
【００８３】
この場合、ターゲットＴＧの位置に近付く群れを表現できる。例えば、ターゲットＴＧの位置を動かせば、ターゲットＴＧを追跡する群れの動きを表現できる。
【００８４】
次に、各移動体オブジェクトの動きをよりリアルに表現するための各種パラメータについて説明する。
【００８５】
２．２．２  参照率パラメータ
移動ベクトル演算部１１２は、参照率パラメータに基づいて第１及び第２の移動ベクトルを補間して第３の移動ベクトルを求めることで、より多様な動きを表現できる。ここで参照率パラメータは、第１又は第２の移動ベクトルの影響をどれだけ反映させるかを設定するためのパラメータである。
【００８６】
以下では、第１の移動ベクトルの影響を反映させるための参照率パラメータについて説明するが、本実施形態はこれに限定されるものではない。
【００８７】
図９に、参照率パラメータについて説明するための図を示す。
【００８８】
参照率パラメータをαとすると、第３の移動ベクトルＭＶ＿ｋは、次の（３）式のように求められる。
【００８９】
ＭＶ＿ｋ＝ＭＶ＿ｊ＋α・ＲＶ−ｊ      （３）
したがって、参照率パラメータαが０のとき、第１の移動ベクトルＲＶ−ｊを全く参照することなく、第３の移動ベクトルＭＶ＿ｋは、第２の移動ベクトルＭＶ＿ｊのままとなる。一方、参照率パラメータαが１のとき、第３の移動ベクトルＭＶ＿ｋは、第１の移動ベクトルＲＶ−ｊと第２の移動ベクトルＭＶ＿ｊの和となる。即ち、図９に示す範囲ＲｅｆＲで、第３の移動ベクトルＭＶ＿ｋを求める。
【００９０】
このような参照率パラメータの設定値に応じて、移動体オブエジェクが滑らかな動きでターゲットＴＧの位置に向かったり若しくはターゲットＴＧの位置から遠ざかったり、或いは雑な動きでターゲットＴＧの位置に向かったり若しくはターゲットＴＧの位置から遠ざかったりする様子を表現できる。
【００９１】
例えば虫キャラクタＣ（スカラベ）のように目標物に向かって突進する場合には、参照率パラメータを０にして、ランダム性なく目標物に向かう動きを実現できる。
【００９２】
２．２．３  ベクトル規制
第３の移動ベクトルは、その方向がランダムに決められる第１の移動ベクトルによる影響を受けるため、移動ベクトル演算部１１２は、第３の移動ベクトルを所与の方向範囲に収まるように補正する。本実施形態では、方向範囲を定めるためのパラメータを設ける。
【００９３】
図７に、第３の移動ベクトルの方向範囲を説明するための図を示す。
【００９４】
このように、第３の移動ベクトルＭＶ＿ｋは、第２の移動ベクトルに線対称な正負の方向範囲±ＡｎｇＲに収まるように補正する。具体的には、第３の移動ベクトルＭＶ＿ｋが方向範囲±ＡｎｇＲの範囲に収まらない場合は、参照率パラメータにより小さな値を設定し、第３の移動ベクトルＭＶ＿ｋを再演算することで、補正を行う。
【００９５】
このように第３の移動ベクトルＭＶ＿ｋを求めることで、ランダムな要素を加えつつ、自然な向きに移動する移動体オブジェクトＭｏｂｊ＿ｋを表現できる。
【００９６】
例えば虫キャラクタＣ（スカラベ）のように目標物に向かって突進する場合には、方向範囲ＡｎｇＲを小さく設定することで、個々の動きにランダムな要素が加わり、かつ群れ全体としては統制がとれた動きを実現できる。
【００９７】
２．２．４  移動距離
上述のようにして、その方向が求められる第３の移動ベクトルＭＶ＿ｋに対して、移動ベクトル補正部１１２は、所与の移動距離範囲内でランダムにその長さを求める。本実施形態では、求められる第３の移動ベクトルＭＶ＿ｋの長さの範囲を移動距離範囲としてパラメータを設ける。
【００９８】
図１０に、移動距離範囲を説明するための模式的な図を示す。
【００９９】
ここでは、当該フレームにおける移動体オブジェクトＭｏｂｊ＿ｋの第３の移動ベクトルＭＶ＿ｋを示す。
【０１００】
そして、移動距離範囲を、最小移動距離ＭｏｖｉｎｇＭｉｎ及び最大移動距離ＭｏｖｉｎｇＭａｘの差として、各移動体オブジェクトに最小移動距離ＭｏｖｉｎｇＭｉｎ及び最大移動距離ＭｏｖｉｎｇＭａｘの２つのパラメータが設定される。
【０１０１】
移動ベクトル補正部１１２は、第３の移動ベクトルＭＶ＿ｋの長さが、最小移動距離ＭｏｖｉｎｇＭｉｎ及び最大移動距離ＭｏｖｉｎｇＭａｘの差である移動距離範囲内となるように求める。より具体的には、第３の移動ベクトルＭＶ＿ｋが図１０に示す移動距離範囲内となるように、ランダムに第３の移動ベクトルＭＶ＿ｋの長さを求める。
【０１０２】
例えば虫キャラクタＡ（フナムシ）の移動距離範囲を、虫キャラクタＢ（ゴキブリ）の移動距離範囲に比べて小さくすることで、同じＥＳＣＡＰＥタイプであっても、虫キャラクタＡ（フナムシ）のもたつく動きを実現できる。また、同じＥＳＣＡＰＥタイプであっても、虫キャラクタＢ（ゴキブリ）が、ターゲットＴＧの周りに集まることなく、散らばって動き回る群れの動きを実現できる。
【０１０３】
そして、虫キャラクタＣ（スカラベ）の最小移動距離を大きくすることで、それぞれが素早いスタートで動き回る群れを表現でき、猪突猛進的な群れの表現のリアルさを高めることできる。
【０１０４】
２．２．５  停止率
本実施形態では、イベント処理部１２０が、オブジェクト空間を移動する移動体オブジェクトの停止イベントをランダムに発生する。そして、停止イベントが発生したとき、移動体オブジェクト停止制御部１１６が、移動体オブジェクトを所与のフレーム数の間、オブジェクト空間における移動体オブジェクトの位置を固定する停止状態に設定する。
【０１０５】
本実施形態では、停止イベントの発生率と、停止状態に設定される期間とが、パラメータとして設けられる。
【０１０６】
図１１に、停止イベントを説明するための模式的な図を示す。
【０１０７】
イベント処理部１２０がランダムに発生する停止イベントが、ｋフレームで発生した場合、移動体オブジェクト停止制御部１１６が、例えば次の（ｋ＋１）フレームから、所与の停止期間（フレーム数）だけ、当該移動体オブジェクトのオブジェクト空間における位置を固定する停止状態に設定する。
【０１０８】
図１１では、ｍ（ｍは２以上の整数）フレームの間、当該移動体オブジェクトの位置が固定される。なおこの停止期間は、移動体オブジェクトの特性に関連付けられた期間内でランダムに求められた期間、或いは所定の期間に、移動体オブジェクトの特性に関連付けられた係数を掛け合わせて求められた期間とすることができる。
【０１０９】
このように停止イベントを発生させて、画像生成部１３０が、オブジェクト空間内の所与の視点での移動体オブジェクトの画像を生成することで、警戒感をもった移動体オブジェクトの動きを表現できる。
【０１１０】
そして、停止イベントを移動体オブジェクトの特性に応じて発生させることで、おもむろに止まっている、何か別の目標物（嗜好物）を発見した、或いは警戒しながら移動するといった動きを表現できる。
【０１１１】
例えば、虫キャラクタＡ（フナムシ）の停止イベントの発生率を大きくすることで、警戒感をもった動きを実現できる。虫キャラクタＢ（ゴキブリ）の停止イベントの発生率を、虫キャラクタＡ（フナムシ）の停止イベントの発生率より小さくすることで、虫キャラクタＢ（ゴキブリ）の警戒感のない動きを実現できる。また、同様に虫キャラクタＣ（スカラベ）の停止イベントの発生率を小さくすることで、虫キャラクタＣ（スカラベ）の警戒感のない動きを実現できる。
【０１１２】
図１２に、移動体オブジェクトの特性情報の一例を示す。
【０１１３】
虫キャラクタＡ、虫キャラクタＢ、虫キャラクタＣのいずれかの動きを実現するために、上述のパラメータの内容を変更すればよい。したがって、同じ処理を虫キャラクタの数だけ繰り返すだけでよく、処理の簡素化を実現できる。
【０１１４】
移動体オブジェクトの行動タイプは、パラメータ「ＳｗａｒｍＴｙｐｅ」に相当する。移動最小距離は、パラメータ「ＭｏｖｉｎｇＭｉｎ」に相当する。移動最大距離は、パラメータ「ＭｏｖｉｎｇＭａｘ」に相当する。停止イベント発生率は、パラメータ「Ｓｔｏｐ」に相当する。停止イベントの発生による停止状態は停止フレーム係数であるパラメータ「ＳｌｅｅｐＦｒａｍｅ」に相当する。第３の移動ベクトルの方向を規制するための範囲は、パラメータ「ＲａｎｄｏｍＬｉｍｉｔ」に相当する。参照率パラメータは、パラメータ「ＲａｎｄｏｍＶａｌｕｅ」に相当する。
【０１１５】
なお、図１２では、特性情報に、ターゲットに関する関心度を示すパラメータＩｎｔｅｒｅｓｔがある。パラメータＩｎｔｅｒｅｓｔは、ＳＥＡＲＣＨタイプのみが用いるパラメータで、例えばターゲットに対する近付き度合いに対応する値ということができる。
【０１１６】
以上のように、移動ベクトル演算部がランダムに求めた方向の第１の移動ベクトルを用いたり、第３の移動ベクトルの方向範囲を規制したり、第３の移動ベクトルの移動距離範囲をランダムに求めることで、各移動体オブジェクトの動きが微妙に異なる群れを表現できる。
【０１１７】
更に、参照率パラメータ、規制する方向範囲や移動距離範囲を、移動体オブジェクトの特性に応じて変更することで、表現したい群れの多様な動きを実現できる。
【０１１８】
特に、参照率パラメータ、規制する方向範囲や移動距離範囲をパラメータ化することで、処理の簡素化、プログラムやデータの容量の削減、移動体オブジェクトの表現の多様化を実現できる。
【０１１９】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について、図８のフローチャートを用いて説明する。
【０１２０】
処理部１００において、すべての移動体オブジェクトの処理が完了するまで以下の一連の処理を行う（ステップＳ１０）。
【０１２１】
すべての移動体オブジェクトの処理が完了していたら（ステップＳ１０：ＹＥＳ）、一連の処理を終了する（エンド）。
【０１２２】
一方、未処理の移動体オブジェクトが存在するときは（ステップＳ１０：ＮＯ）、以下の一連の処理を続行する。
【０１２３】
次に、当該移動体オブジェクトが停止イベント状態であるか判定し、停止イベント中であれば（ステップＳ１２：ＹＥＳ）、停止イベントを実行する。
【０１２４】
停止イベント中でなければ（ステップＳ１２：ＮＯ）、移動ベクトル演算部１１２が、当該移動オブジェクトの第１の移動ベクトルｖｅｃ１をランダムに算出する（ステップＳ１４）。
【０１２５】
続いて、過去の移動ベクトルである移動ベクトルｖｅｃ２と第１の移動ベクトルｖｅｃ１とを、当該移動体に付与されたパラメータ「ＲａｎｄｏｍＶａｌｕｅ」の値を用いて補間演算を行い、第３の移動ベクトルｖｅｃ３を算出する（ステップＳ１６）。
【０１２６】
続いて、第３の移動ベクトルｖｅｃ３と過去の移動ベクトルである移動ベクトルｖｅｃ２とのなす角度を算出し（ステップＳ１８）、求めた角度の絶対値が、規定範囲である当該移動体オブジェクトに付与されたパラメータ「ＲａｎｄｏｍＬｉｍｉｔ」の範囲内であるかどうかを判定する（ステップＳ２０）。
【０１２７】
求めた角度が、規定範囲外のときは（ステップＳ２０：ＮＯ）、第３の移動ベクトルｖｅｃ３を、当該移動体に付与されたパラメータ「ＲａｎｄｏｍＶａｌｕｅ」の値よりも小さな値を用いて、再演算することで、移動ベクトルｖｅｃ３を規定範囲内に補正する（ステップＳ２２）。
【０１２８】
ステップＳ２２で第３の移動ベクトルｖｅｃ３が規定範囲内に補正された後、あるいはステップＳ１８において、求めた角度が、規定範囲内であると判別されたとき（ステップＳ２０：ＹＥＳ）、移動ベクトル演算部１１２は、第３の移動ベクトルｖｅｃ３の移動距離（長さ）を求める（ステップＳ２４）。
【０１２９】
即ち、当該移動体オブジェクトの最小移動距離「ＭｏｖｉｎｇＭｉｎ」と、最大移動距離「ＭｏｖｉｎｇＭａｘ］との値から、移動距離範囲ｍｏｖｉｎｇ＿ａｒｅａを求める。そして、移動距離範囲ｍｏｖｉｎｇ＿ａｒｅａに、ランダム関数を用いて求められる係数を掛け合わせ、最小移動距離「ＭｏｖｉｎｇＭｉｎ」の値と加算する。こうして第３の移動ベクトルｖｅｃ３の長さが求められ、長さが調整される（ステップＳ２６）。
【０１３０】
次に、イベント処理部１２０が、ランダム関数を用いて求められた変数ＲＡＮＤと当該移動体オブジェクトの停止イベントの発生率「Ｓｔｏｐ」の値を比較し、停止イベントを発生するか否かを判別する（ステップＳ２８）。
【０１３１】
イベント処理部１２０は、変数ＲＡＮＤが発生率「Ｓｔｏｐ」以下のとき（ステップＳ２８：ＹＥＳ）、停止イベントを発生させる（ステップＳ３０）。そして、当該移動体オブジェクトの停止フレーム数を、変数ＲＡＮＤと、当該移動体オブジェクトの停止フレーム係数「ＳｌｅｅｐＦｒａｍｅ」とを掛け合わせた値の整数部＋１とする。この値が、停止状態に設定される期間に対応する。また、この値が「０」以外の値のときは、停止イベント中であり、この値が「０」のときは、停止イベントが発生していない状態として、ステップＳ１２の判断に使用される。
【０１３２】
ステップＳ３０で停止イベントを発生させた後、あるいは、ステップＳ２８で変数ＲＡＮＤの値が発生率「Ｓｔｏｐ」の値よりも大きいとき（ステップＳ２８：ＮＯ）、当該移動体オブジェクトからターゲットＴＧまでのベクトル（ｔｂｅｃ）を求める（ステップＳ３２）。
【０１３３】
続いて、当該移動体オブジェクトの第３の移動ベクトルであるｖｅｃ３に、ターゲットＴＧまでのベクトル（ｔｖｅｃ）を足したものを新たな第３の移動ベクトルｖｅｃ３とする（ステップＳ３４）。なお、この際、新たな第３の移動ベクトルｖｅｃ３の長さを移動距離に基づき調整することが望ましい。
【０１３４】
求められた新たな第３の移動ベクトルを過去ベクトルとして、過去ベクトル記憶部１７２に記憶する（ステップＳ３６）。
【０１３５】
なお、ステップＳ１２で、当該移動体オブジェクトが停止中と判断された場合は、（ステップＳ１２：ＹＥＳ）、当該移動体オブジェクトの第３の移動ベクトルｖｅｃ３を０とする（ステップＳ１３）。なお、この際、過去ベクトルが「０」にならないように、従来の過去ベクトルはそのまま継承する。次に、停止フレーム数を「１」減算する（ステップＳ１５）。
【０１３６】
ステップＳ３６、あるいは、ステップＳ１５の終了後、当該オブジェクトの現在位置と、第３の移動ベクトルｖｅｃ３とに基づいて、描画処理を行う（ステップＳ３８）。
【０１３７】
その後、ステップＳ１０に戻り、次に移動体オブジェクトについて同様の処理を繰り返す。
【０１３８】
なお、これら一連の処理中に行われるベクトル演算において、状況に応じて適宜、各ベクトルの長さを「１」に正規化することが望ましい。
【０１３９】
４．ハードウェア構成
図１３に本実施形態を実現できるハードウェア構成の例を示す。
【０１４０】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。
【０１４１】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１４２】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１４３】
データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード（伸長）処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１４４】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。そして１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１４５】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介して入力される。
【０１４６】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、メインプロセッサを介さずに、メモリ（ＲＡＭ，ＶＲＡＭ，ＲＯＭやＩ／Ｏ装置間あるいは各種プロセッサ間でのデータ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする処理を行う。
【０１４７】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行う。通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどがある。
【０１４８】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１４９】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１５０】
図１４（Ａ）に業務用ゲームシステムへの本実施形態の適用例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、操作部１１０２を操作してゲームを楽しむ。内蔵されるシステムボード１１０６にはプロセッサ、メモリなどが実装される。本実施形態の各部の処理を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラムと呼ぶ。
【０１５１】
図１４（Ｂ）に家庭用ゲームシステムへの本実施形態の適用例を示す。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９に格納される。
【０１５２】
図１４（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２を介して接続される端末１３０４-１〜１３０４-n（ゲーム機、携帯電話）とを含むシステムへの本実施形態の適用例を示す。この場合、上記格納プログラムは、ホスト装置１３００の情報記憶媒体１３０６（ハードディスク、磁気テープ装置等）に格納される。また本実施形態の各部の処理をホスト装置と端末の分散処理で実現してもよい。
【０１５３】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１５４】
例えば、明細書又は図面中の記載において広義な用語として引用された用語は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
【０１５５】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１５６】
また、本発明は種々のゲーム（格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等）に適用できる。
【０１５７】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【０１５８】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】本実施形態の手法の説明図。
【図３】図３（Ａ）、（Ｂ）は、行動タイプを説明するための模式図。
【図４】本実施形態の移動体オブジェクトによる群れの画像の一例の図。
【図５】本実施形態の移動体オブジェクトによる群れの画像の他の例の図。
【図６】本実施形態の移動体オブジェクトによる群れの画像の更に別の例の図。
【図７】第１の移動ベクトルの方向範囲を説明するための図。
【図８】本実施形態の処理の一例を示すフローチャート。
【図９】参照率パラメータについて説明するための図。
【図１０】移動距離範囲を説明するための図。
【図１１】停止イベントを説明するための図。
【図１２】移動体オブジェクトの特性情報の一例を示す図。
【図１３】ハードウェア構成例を示す図。
【図１４】図１４（Ａ）、（Ｂ）、（Ｃ）は種々の形態のシステム例の図。
【符号の説明】
【０１５９】
１００  処理部、１１０  移動体オブジェクト制御部、
１１２  移動ベクトル演算部、
１１６  移動体オブジェクト停止制御部、１２０  イベント処理部、
１３０  画像生成部、１４０  音生成部、１６０  操作部、
１７０  記憶部、１７２  過去ベクトル記憶部、
１７４  オブジェクト特性記憶部１７４、１７６  描画バッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部、
ＭＯＶ＿ｌ  ｌフレームにおける移動体オブジェクト
Ｍｏｂｊ＿ｋ  ｋフレームにおける移動体オブジェクト、
ＭＶ＿ｊ  第２の移動ベクトル、ＭＶ＿ｋ  第３の移動ベクトル、
ＲＶ＿ｋ  第１の移動ベクトル
【図１】
2009251883.tif 000003
【図２】
2009251883.tif 000004
【図３】
2009251883.tif 000005
【図４】
2009251883.tif 000006
【図５】
2009251883.tif 000007
【図６】
2009251883.tif 000008
【図７】
2009251883.tif 000009
【図８】
2009251883.tif 000010
【図９】
2009251883.tif 000011
【図１０】
2009251883.tif 000012
【図１１】
2009251883.tif 000013
【図１２】
2009251883.tif 000014
【図１３】
2009251883.tif 000015
【図１４】
2009251883.tif 000016