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