(57)【要約】      （修正有）【課題】キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置において、複雑な集団の移動や戦闘を、直感的に分かり易い操作により動的に楽しませることができるとともに、よりリアルに表現することが可能とする。【解決手段】ビデオゲームを制御するプログラムであって、コンピュータを、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて移動する集団移動手段、前記リーダー入り集団の移動中において、前記リーダー入り集団以外の他の味方エージェント集団を前記リーダー入り集団に追従させる味方エージェント集団追従手段、前記リーダー入り集団及び前記味方エージェント集団を表示装置に表示する集団表示手段、として機能させる。【選択図】  図７
2006174930.tif 000002
【特許請求の範囲】
【請求項１】
ビデオゲームを制御するプログラムであって、コンピュータを、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて移動する集団移動手段、前記リーダー入り集団の移動中において、前記リーダー入り集団以外の他の味方エージェント集団を前記リーダー入り集団に追従させる味方エージェント集団追従手段、前記リーダー入り集団及び前記味方エージェント集団を表示装置に表示する集団表示手段、として機能させることを特徴とするキャラクタ集団移動制御プログラム。
【請求項２】
請求項１に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項３】
ビデオゲームを制御するゲーム装置であって、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて移動する集団移動手段と、前記リーダー入り集団の移動中において、前記リーダー入り集団以外の他の味方エージェント集団を前記リーダー入り集団に追従させる味方エージェント集団追従手段と、前記リーダー入り集団及び前記味方エージェント集団を表示装置に表示する集団表示手段と、を備えたことを特徴とするゲーム装置。
【請求項４】
ビデオゲームを制御するプログラムであって、コンピュータを、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて敵集団の領域に移動して戦闘する集団移動戦闘手段、前記リーダー入り集団の戦闘開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を前記敵集団の方向に移動する味方エージェント集団移動手段、前記リーダー入り集団、前記敵集団及び前記味方エージェント集団を表示装置に表示する敵味方集団表示手段、として機能させることを特徴とするキャラクタ集団移動制御プログラム。
【請求項５】
前記コンピュータを、更に、前記リーダー入り集団の戦闘開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を、前記リーダー入り集団と重ならないように、前記リーダー入り集団の左右から回り込ませる味方エージェント集団回込手段、として機能させることを特徴とする請求項４に記載のキャラクタ集団移動制御プログラム。
【請求項６】
前記コンピュータを、更に、前記リーダー入り集団の戦闘開始後に、前記敵集団の背後に仮想境界線を設け、前記リーダー入り集団以外の他の味方エージェント集団が前記仮想境界線を超えた場合に、前記他の味方エージェント集団を自動的に前記敵集団の重心に移動する味方エージェント集団重心移動手段、として機能させることを特徴とする請求項４又は請求項５に記載のキャラクタ集団移動制御プログラム。
【請求項７】
請求項４から請求項６に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項８】
ビデオゲームを制御するゲーム装置であって、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて敵集団の領域に移動して戦闘する集団移動戦闘手段と、前記リーダー入り集団の開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を前記敵集団の方向に移動する味方エージェント集団移動手段と、前記リーダー入り集団の戦闘開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を、前記リーダー入り集団と重ならないように、前記リーダー入り集団の左右から回り込ませる味方エージェント集団回込手段と、前記リーダー入り集団の戦闘開始後に、前記敵集団の背後に仮想境界線を設け、前記リーダー入り集団以外の他の味方エージェント集団が前記仮想境界線を超えた場合に、前記他の味方エージェント集団を自動的に前記敵集団の重心に移動する味方エージェント集団重心移動手段と、前記リーダー入り集団、前記敵集団及び前記味方エージェント集団を表示装置に表示する敵味方集団表示手段と、を備えたことを特徴とするゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置に係り、特にプレイヤに３次元空間上の集団（群れ）を直接介入操作させ、集団の移動や戦闘をリアルに表現することができるキャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置に関するものである。
【背景技術】
【０００２】
家庭用ビデオゲームにおいては、３次元仮想空間上で、リーダーキャラクタと、このリーダーキャラクタに追随する複数のエージェントキャラクタからなるエージェント集団（群れ）と、を移動制御するものがある。
【０００３】
従来、キャラクタ集団移動制御には、第１の領域内に他のキャラクタが存在するときに、この他のキャラクタから所定距離だけ離れるための加速度、第２の領域内にリーダーキャラクタに追随するように移動する他のキャラクタが存在するときに、この他のキャラクタの移動する速さ及び方向を合わせるための加速度を、３次元仮想空間上のｘ、ｙ、ｚの成分毎に加算した総和加速度で、各キャラクタを目標点に移動させるものがある。これにより、各キャラクタが、第１又は第２の領域内に存在する他のキャラクタの移動状況に応じて速さや方向を変更しながら移動することができ、各キャラクタの移動の動作をリアルに表現させている。
また、キャラクタ集団移動制御には、入力装置において、方向を指示するための第１ボタン乃至第４ボタンのいずれのボタンも押下されていないときに、複数のゲームキャラクタを、特定のゲームキャラクタ又は特定の第１領域から離散するように移動させ、第１ボタンが押下されたときに、ゲームキャラクタを特定のゲームキャラクタ又は特定の第２領域の近傍に集結するように移動させるものがある。これにより、３次元仮想空間上で、特定のゲームキャラクタ又は特定の第１領域から離散した後、特定のゲームキャラクタ又は特定の第２領域に向かう方向が夫々異なる複数のゲームキャラクタに対し、第１ボタンによる一つのボタン操作で各方向と動作開始の指示を同時に指定し、複数のゲームキャラクタの移動に対して操作性の向上を図るとともに、信号処理部での負担の軽減を図ることができる。また、第２ボタン乃至第４ボタンのいずれかのボタンが押下されたときに、この第２ボタン乃至第４ボタンで指定された指定方向に、複数のゲームキャラクタを集団で移動させるようにすれば、この集団を指定することなく、第２ボタン乃至第４ボタンを、本来の方向を指示するためのボタンとして使用し、この集団を移動させることができるので、上述した離散・集結に加え、集団の移動操作性を向上させることができる。更に、入力装置が上下左右で構成された十字方向ボタンセットを備えており、第１ボタンを下ボタンとし、第２ボタン乃至第４ボタンを上左右ボタンとすれば、特定のゲームキャラクタはプレイヤ自身を表しており、十字方向ボタンセットの下ボタンは、その物理的配設位置からプレイヤの元に集結するという感覚と一致しているので、下ボタンは特定のゲームキャラクタへの集結用ボタンであることが分かり易く、上左右ボタンは十字方向ボタンの本来の方向指示用ボタンとして用いることができる。
更に、キャラクタ集団移動制御には、コンピュータを、３次元仮想空間で動作する非表示の３次元ポリゴンモデルのモーションデータを付与するモデルデータ付与手段、３次元ポリゴンモデルの頂点に追随するように頂点に対応付けられたキャラクタに運動性能を付与する運動性能付与手段、キャラクタの３次元仮想空間上の位置を演算する位置演算手段、として機能させるものがある。これにより、集団を構成する複数のキャラクタが非表示の３次元ポリゴンモデルの頂点に追随するように運動性能が付与され、各キャラクタ毎にモーションを用意する必要がなく、処理の簡素化が図られるとともに、キャラクタ全体で複雑な集団形状をとりながら、あたかも、１つの生物のように動く様子を表現することができる。
更にまた、キャラクタ集団移動制御には、３次元仮想空間上に表示され複数のキャラクタの集団が敵味方の陣形を形成して互いに戦闘する集団キャラクタの戦闘のための陣形制御であり、その陣形は、予め定められた陣形群の中から選択され、かつ、プレイヤが入力装置の十字方向ボタンセットの操作で介入可能で、それぞれ特定の隊形を有する複数の小集団に分割されるものがある。これにより、複数のキャラクタが陣形を形成するようにし、陣形により集団全体の情勢を把握することができるとともに、特定の隊形を有する小集団についてプレイヤの介入を可能とし、小集団毎に複数のキャラクタについて介入することができる。ここで、プレイヤの入力装置による特定の小隊長への介入がない場合には、整列状態と相似形の陣形が維持され、特定の小隊長への介入がなされた場合には、その介入のある小隊は介入に応じて移動方向を変更し、他の小隊は陣形を維持する。よって、部隊全体の陣形は、プレイヤの介入により変更されることとなるものである。
【特許文献１】特許第３１６３４９６号公報
【特許文献２】特開２００２−６６１３１号公報
【特許文献３】特開２００４−６２６７６号公報
【特許文献４】特開２００２−１４３５５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、従来、キャラクタ集団移動制御にあっては、上記の特許文献１及び特許文献３に記載された発明は、プレイヤが集団（群れ）の移動を直接介入操作できるものではなく、コンピュータにより自動的に集団が移動処理されるものなので、戦略をながめて楽しむという点では向いているものの、集団の移動や戦闘場面に直接介入して楽しむという点では不向きであるという不都合があった。
【０００５】
また、上記の特許文献１に記載された発明では、各キャラクタの集団は、リーダーキャラクタに追随しながら互いに距離をとり、速度と方向とを変化させながら移動するので、追い越しや隊列内の配置が変わることもあり、自然な移動が表現することができるが、重心という考え方が存在しないので、場合によっては、集団の背後（後方）のキャラクタが大きく拡散し、画面に集団全体が表れないこともあった。これに対し、上記の特許文献３に記載された発明では、各キャラクタが非表示の全体ポリゴンモデルの各頂点に追随するようにしたので、各キャラクタが大きく拡散することはなくなり、隊列の形状を保つことができるようになったが、各キャラクタには、隊列内の本来の整列位置（即ち、移動目標となるキャラクタ固有の頂点）が定められているので、基本的には、隊列内の配置が変わることはなく、変化に富んだ移動とまでは言えなかった。
【０００６】
更に、上記の特許文献２に記載された発明では、十字方向ボタンセットにより直接的に集団を操作することができたが、基本的には、リーダーキャラクタに追随する上記の特許文献１に記載された発明を引き継ぐものであるので、集団全体で真っ直ぐ進め・止まれ程度の操作が限界であった。これは、上記と同様に、重心という考え方が存在しないので、キャラクタが移動中に拡散したり、集団全体が表示されないという問題が残り、更には、戦闘状態に移行後は、最終的に乱戦状態となるので、拡散したキャラクタのプログラム処理上での状況把握が困難であり、外部からの集団としての操作が、もはや、困難となるからである。
【０００７】
更にまた、上記の特許文献４に記載された発明は、集団（群れ）が移動中に陣形を表す仮想枠内からはみ出さないように複数の小隊がその陣形を維持して全体的に移動するものであるが、プレイヤがいずれかの小隊を選んで介入しない限り、単に、陣形を維持して移動する動作しかしないことから、ぎこちない動作となり、現実感に欠けていた。また、この方法では、一旦戦闘となった場合には、乱戦状態となって各キャラクタが拡散し、もはや別々の集団としての処理ができなくなるという欠点があった。この点、２つ以上の集団が混在した後は、合体するという考え方も可能だが、現実の戦闘で、自分の小隊長が戦闘中に変更されるというのは、不自然であり、あくまで集団（小隊）毎に処理できることが望ましく、改善が望まれていた。
【課題を解決するための手段】
【０００８】
この発明は、ビデオゲームを制御するプログラムであって、コンピュータを、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて移動する集団移動手段、前記リーダー入り集団の移動中において、前記リーダー入り集団以外の他の味方エージェント集団を前記リーダー入り集団に追従させる味方エージェント集団追従手段、前記リーダー入り集団及び前記味方エージェント集団を表示装置に表示する集団表示手段、として機能させることを特徴とする。
また、ビデオゲームを制御するプログラムであって、コンピュータを、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなる味方エージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて敵集団の領域に移動して戦闘する集団移動戦闘手段、前記リーダー入り集団の戦闘開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を前記敵集団の方向に移動する味方エージェント集団移動手段、前記リーダー入り集団、前記敵集団及び前記味方エージェント集団を表示装置に表示する敵味方集団表示手段、として機能させることを特徴とする。
【発明の効果】
【０００９】
この発明のキャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置は、プレイヤが操作中でない味方のエージェント集団でも、前方に他の味方のエージェント集団（プレイヤが操作中のリーダー入り集団も含まれる）を発見した場合には、この後方の味方のエージェント集団を前方の他の味方のエージェント集団（又はリーダー入り集団）に追従させ、敵集団を発見した場合には、後方の味方のエージェント集団が戦闘をするように、適度な範囲での自律的な行動を許容し、例えば、プレイヤが介入中のリーダー入り集団を発見した場合には、その介入操作に応じた追従動作をし、プレイヤが介入中のリーダー入り集団と戦闘中の敵集団の重心に向かって後方の味方のエージェント集団を敵集団の背後から自動的に回り込んで応戦させることができ、これにより、複雑な集団の移動や戦闘を、直感的に分かり易い操作により動的に楽しませることができるとともに、よりリアルに表現することが可能となる。
【発明を実施するための最良の形態】
【００１０】
この発明は、複数の集団の移動や戦闘を直感的に分かり易い操作により動的に楽しませる目的を、プレイヤに各集団を直接介入操作させて実現するものである。
以下図面に基づいてこの発明の実施例を詳細且つ具体的に説明する。
【実施例】
【００１１】
図１〜図１８は、この発明の実施例を示すものである。
【００１２】
図１５において、２はビデオゲームが実行される家庭用ビデオゲーム装置（以下「ゲーム装置」という）である。
【００１３】
このゲーム装置２は、ゲーム装置本体４に、スピーカ６を内蔵した表示装置としてのテレビモニタ８及びコントローラパッド等の入力装置１０を接続している。ゲーム装置本体４は、ＣＤ−ＲＯＭやＤＶＤ等の記録媒体１２を装着可能な媒体読取部１４（図１８参照）を有している。この媒体読取部１４に記録媒体１２を装着することにより、記録媒体１２に記録されたゲームプログラムやゲームデータが自動的にゲーム装置本体４内の記憶メモリ（ＲＡＭ）にロードされる。テレビモニタ８は、入力装置１０からの入力情報に基づいてゲーム上での集団（群れ）等を表示するものである。入力装置１０は、ゲーム上での集団（群れ）等を移動させるものである。
【００１４】
図１６、図１７に示す如く、入力装置１０の入力装置本体１６には、操作部として、ゲームを開始するためのスタートボタン１８や、ゲームキャラクタを操作したり、ゲーム装置本体４からの選択問い合わせ等に応答するための、□ボタン２０、△ボタン２２、○ボタン２４、×ボタン２６、及び、↑ボタン２８、→ボタン３０、←ボタン３２、↓ボタン３４で構成される十字方向ボタンセット３６、セレクトボタン３８、Ｒ１ボタン４０、Ｒ２ボタン４２、Ｌ１ボタン４４、Ｌ２ボタン４６、そして、２つの右側、左側アナログスティック４８、５０や、アナログモードスイッチ５２等の各種ボタン類が配置されている。右側アナログスティック４８は、画面上で集団（群れ）の見る位置を変更するように、カメラの回転（視点・方向）を変更する機能を有する。左側アナログスティック５０は、集団（群れ）の移動方向を指定するものである。□ボタン２０は、各キャラクタの刀を振りかざす等の攻撃を行わせるものである。
【００１５】
図１８に示す如く、ゲーム装置本体４は、ビデオゲームのプログラムを実行するためのコンピュータとして、装置全体の制御を行うＣＰＵブロック５４を備えている。このＣＰＵブロック５４は、ゲーム装置本体４内の各部とのデータ転送を主に制御するＳＣＵ（Ｓｙｓｔｅｍ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）５６、中央演算処理装置として高速クロックで作動するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５８、ゲーム装置本体４の基本制御動作が記憶されたＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６０、ＣＰＵ５８のワークエリアとして働くと共に記録媒体１２に記録されたゲームプログラム及び種々のデータを一時的に記憶するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６２、及び、これらを接続する内部バス６４で構成されている。
【００１６】
また、ＳＣＵ５６には、外部バス６６が接続している。この外部バス６６は、入力装置１０からの入力を受信してＣＰＵブロック５４へ入力情報を転送する入力受信部６８、図示しないサブＣＰＵを備えて記録媒体１２に記録されたゲームプログラムを読み取りＣＰＵブロック５４へ転送するＣＤ−ＲＯＭドライブ等の媒体読取部１４、グラフィック処理を行うＣＰＵ及びＶＲＡＭを備えてＣＰＵブロック５４から送出された情報に従って光源処理等を行い３次元フィールドでの描画処理を施す画像処理部７０、並びに、図示しないサブＣＰＵを備え、例えば、バックミュージックや戦闘音等の音響を処理する音響処理部７２に接続している。また、入力受信部６８には、入力装置１０が接続している。画像処理部７０には、テレビモニタ８が接続している。音響処理部７２は、テレビモニタ８に内蔵されたスピーカ６が接続している。
【００１７】
この実施例のビデオゲームを制御するプログラムは、ビデオゲームを制御するプログラムであって、コンピュータとしてのＣＰＵブロック５４を、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置１０の左側アナログスティック５０からの入力情報に基づいて移動する集団移動手段、前記リーダー入り集団の移動中において、前記リーダー入り集団以外の他の味方エージェント集団を前記リーダー入り集団に追従させる味方エージェント集団追従手段、前記リーダー入り集団及び前記味方エージェント集団を表示装置としてのテレビモニタ８に表示する集団表示手段、として機能させる。
【００１８】
リーダー入り集団の移動中においては、各所定時間（フレーム）毎で、全てのキャラクタに、自然な移動を表現させるように、以下のような特定力としての、反発力と凝集力と移動力とが加えられる。
（１）他のキャラクタとの衝突を回避する力である反発力（拡散方向の力）。
（２）エージェント集団（群れ：部隊）に対して重心に向かう力である凝集力（集団でまとまろうとする力）。
（３）入力装置１０の操作部やプログラムの指定等により各キャラクタを指定方向に移動する力である移動力。
【００１９】
ここで、前記所定時間（フレーム）とは、画像処理の時間的単位であり、描画の際の、いわゆる「コマ」のことである。この実施例において、１フレームの時間は、テレビモニタ８の垂直帰線周期と一致した１／６０秒（１６．６ミリ秒）に一度の周期でプログラム上呼び出される垂直帰線割込（Ｖｓｙｎｃ）の２回分の時間（１／３０秒）に相当するものとする。
【００２０】
上記の（１）の反発力において、図８に示す如く、例えば、エージェントキャラクタＡについての反発力は、エージェントキャラクタＡの位置を中心とした、例えば、半径３ｍ程度の円の範囲内に属する他のエージェントキャラクタに対して反発力が発生する。この反発力は、各エージェントキャラクタについて別々に発生する。
【００２１】
この場合、一方のエージェントキャラクタの位置をａとし、他方のエージェントキャラクタの位置をｂとし、反発力の発生限界距離（これ以上離れていたら反発力は、発生しない距離）をｄとし、最大反発力の大きさをｆとすると、以下のようになる。
［数１］
１＝｜ａ−ｂ｜
ｖ＝（ａ−ｂ）／１
反発力＝ｖ＊ｆ＊ｍａｘ（ｄ−１、０）／ｄ
ここで、ｖは、ａからｂに向かう単位ベクトル（方向のみの意味を持ち、大きさは１）。ｆ＊ｍａｘ（ｄ−１、０）／ｄの部分は、図９に示すようになる。なお、ここで、｜ａ−ｂ｜は、（ａ−ｂ）の絶対値である。また、ｍａｘ（ｄ−１、０）は、（ｄ−１）と（０）とのいずれか大きい値の方を選択するという意味である。このとき、図９に示すように、反発力と距離とが一定比率で変化するとしても良いが、例えば、２次関数のように距離が短いほど、反発力が急激に増加するように変化させても良い。
【００２２】
また、上記の（２）の凝集力において、図１０に示す如く、ここでいう集団の重心とは、いわゆる質点の重心であり、各エージェントキャラクタの水平成分（ｘ、ｚ）座標を成分毎に足して平均化した座標値をとる。なお、垂直成分ｙは、地表面の高さとする。即ち、重心とは、各エージェントキャラクタを含むような矩形又は円等の形状の単なる外枠の中心とは必ずしも一致しない。なお、簡易的に、このような外枠の中心で処理しても良いが、例えば、密集している部分から遠く離れてしまったキャラクタが１つ存在するときなどは、群れの重心は、密集している部分に近い方が望ましいことから、やはり本来的な重心の考え方を用いるべきである。
【００２３】
この場合、エージェントキャラクタＡの位置をａとし、集団の重心をｃとし、最大凝集力の大きさをｆとすると、以下のようになる。
［数２］
ｖ＝（ｃ−ａ）／｜ｃ−ａ｜
凝集力＝ｖ＊ｆ
【００２４】
更に、上記の（３）の移動力において、図１１に示す如く、例えば、入力装置１０の左側アナログスティック５０を指定方向としての左斜め前方に傾けた場合に、エージェントキャラクタの現在の速度をｖ０とし、指定移動速度をｖ１とし、ｖ０からｖ１に変化するのに要する時間をｄｔとし、発生可能な最大加速度の大きさをａｃｃとすると、以下のようになる。
［数３］
ｖ＝（ｖ１−ｖ０）／ｄｔ
移動力＝ｖ／｜ｖ｜＊ｍｉｎ（｜ｖ｜、ａｃｃ）
ここで、ｖ／｜ｖ｜は、単位ベクトルである。ｖは、加速度である。ｍｉｎ（｜ｖ｜、ａｃｃ）により、加速度ｖが最大加速度ａｃｃを超えないようにしている。
【００２５】
また、ここで、運動方程式Ｆ＝ｍα（Ｆ：力、ｍ：質量、α：加速度）において、この実施例におけるゲームの３次元仮想空間では、エージェントキャラクタの質量ｍは、１として考えて、力＝加速度とみなして計算する。
【００２６】
各座標成分（ｘ、ｙ、ｚ）毎に上記の（１）から（３）の力、即ち、加速度を求め、これらを各座標成分毎に加算して総和加速度を求め、下記の数式の［数４］を用いて各キャラクタの最新速度及び最新位置を演算し、この最新速度及び最新位置をＲＡＭ６２に格納する。キャラクタの移動開始前の初期状態の速度（即ち０）、指定移動速度（上記の（３）の移動力のｖ１）及び位置（整列状態での座標値）は、予め与えられているものとする。
【００２７】
現在の総和加速度αが与えられる１つ前（前回のフレーム時）の速度Ｖ０及び位置Ｐ０を用いて、オイラー法を用いた運動方程式を表す下記の数式の［数４］により、対象エージェントキャラクタの現在の速度Ｖ１及び位置Ｐ１を、各（ｘ、ｙ、ｚ）成分毎に演算する。
【００２８】
なお、下記の数式の［数４］において、Δｔは、前回のフレーム時から今回のフレーム時までの時間（１／３０秒）を表しており、前回の速度Ｖ０及び位置Ｐ０は、ＲＡＭ６２に格納されている。
［数４］
Ｖ１＝Ｖ０＋α・Δｔ
Ｐ１＝Ｐ０＋Ｖ０・Δｔ＋０．５・α・Δｔ２
【００２９】
これを各エージェントキャラクタ毎に求め、上記の数式の［数４］により得られた最新位置Ｐ１で、エージェントキャラクタを描画する。
【００３０】
従って、上記の（１）の反発力と上記の（２）の凝集力とは、相反する力となり、各フレーム毎に上記の（１）から（３）の各力は、変化する。前記重心は、微妙に揺れ動くので、上記の（２）の重心に向かう凝集力も揺れ動く。これにより、集団には、揺れ動く感じや、ざわざわという感じを出すことができる。
【００３１】
また、この実施例のビデオゲームを制御するプログラムは、前記コンピュータであるＣＰＵブロック５４を、前記リーダーキャラクタを前記エージェント集団の前記重心に移動するリーダー移動手段、として機能させてもよい。
【００３２】
つまり、リーダーキャラクタを先頭とするとエージェント集団全体が画面に表せない（映らない）場合があり得る。また、実際に武将（リーダーキャラクタ）がエージェント集団を率いて移動する場面を考えた場合、武将は、集団の先頭ではなく、周りに護衛兵を配置させて、中央で指揮を取るとした方が現実的であるとも考えられる。
【００３３】
そこで、この実施例においては、エージェント集団全体に重心を設け、重心が表示される画面の中央となるように、自動的にカメラの位置及び方向を合わせ更に、リーダーキャラクタの位置が重心と一致するように、この重心に向かう力として上記の（２）の凝集力を作用させるとともに、リーダーキャラクタに特別な力（後述のリーダーキャラクタを重心に向かわせる力）を作用させる。
【００３４】
エージェント集団の各エージェントキャラクタの位置は、初期状態（移動開始前の整列状態）では、例えば、エージェント集団の形状が矩形等となるように配置が決まっているが、一旦移動が開始されると、上記の３つの力が各フレーム毎に様々に変化しながら働いて、具体的な位置が決まり表示される。このため、エージェント集団全体の形状や各キャラクタの位置関係・配列順は、一定でなく、実際の群れのような変化に富んだ移動を表現できる。
【００３５】
このとき、エージェント集団の先頭を走るキャラクタは存在するが、このキャラクタはいわゆるリーダーキャラクタではなく、エージェント集団の重心に存在するリーダーキャラクタへ向かう力（上記の（２）の凝集力）が働いている。
【００３６】
また、リーダーキャラクタには、上記の３つの力とは別に、さらに以下の力が各フレーム毎で作用し、上記の３つの力との総和加速度を求めて、同様に、オイラー法の上記の数式の［数４］を用いて最新速度及び最新位置を演算し、ＲＡＭに記憶する。
【００３７】
つまり、リーダーキャラクタを小隊重心に向かわせる力において、エージェントキャラクタ（ここでは、リーダーキャラクタのこと）の位置をｐとし、エージェントキャラクタの現在速度をｖ０とし、発生可能な最大加速度をａｃｃとし、小隊重心位置をｃとし、小隊重心の移動速度をｖ１とし、小隊重心に接近する際の相対速度（＝小隊重心から見たエージェントキャラクタの速度）をｆ（１）とすると、以下のようになる。
［数５］
ｆ（ｌ）：０≦１＜ｄのとき、ｖ＊１／ｄ
ｄ＜１のとき、ｖ
ここで、ｖは最大相対速度であり、ｄは接近速度の減速を開始する距離であり、１はエージェントキャラクタと小隊重心との距離である。
【００３８】
そして、相対速度がｆ（１）になるまでに要する時間をｄｔとすると、以下のようになる。
［数６］
ｖ２＝ｖ０−ｖ１
１＝｜ｃ−ｐ｜
ｖ３＝（ｃ−ｐ）／１
ｖ４＝（（ｖ３＊ｆ（１））−ｖ２）／ｄｔ
小隊重心に向かわせる力＝ｖ４／｜ｖ４｜＊ｍｉｎ（｜ｖ４｜、ａｃｃ）
【００３９】
しかし、この段階では、未だ、エージェントキャラクタの方向が加味されておらず、エージェントキャラクタは、方向を持たないパーティクル（質点）として把握される。エージェントキャラクタにも方向があるため、逆方向への瞬時の変更を表現すると不自然となり、徐々に方向を変更する様子を表現する必要があるためである。
【００４０】
このため、この実施例においては、各フレーム毎にエージェントキャラクタの方向を変化させるために、エージェントキャラクタに対するパーティクル（質点）的な制御に方向制御を加味した、方向を持ったパーティクル制御を実行する。これについては、公知の手法（例えば、上記の特許文献３である特開２００４−６２６７６号公報）を用いることで、進行方向に応じた向きに、エージェントキャラクタを回転させて表現することが可能となる。
【００４１】
また、この実施例のビデオゲームを制御するプログラムは、コンピュータとしてのＣＰＵブロック５４を、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置１０からの入力情報に基づいて移動する集団移動手段、前記リーダー入り集団の移動中において、該リーダー入り集団以外の他の味方エージェント集団を追従させる味方エージェント集団追従手段、前記リーダー入り集団及び前記味方エージェント集団を表示装置としてのテレビモニタ８に表示する集団表示手段、として機能させる。この場合、前記他のエージェント集団である味方エージェント集団をリーダー入り集団に追従させることとは、前記他の味方エージェント集団をリーダー入り集団と同時に移動・停止することである。
【００４２】
この場合、リーダー入り集団（部隊）の移動方法には、第１の方法として、左側アナログスティック５０で直接操作を行う方法と、第２の方法として、目標点を決めて自動で移動させる２種類の方法がある。
【００４３】
前記第１の方法は、図１２に示す如く、プレイヤが操作可能なリーダー入り集団としての部隊（以下、軍団長部隊と呼ぶ。）に対してのみ行うことができ、軍団長部隊以外は全て、上記の第２の方法の移動となる。
【００４４】
図１２に示す如く、リーダー入り集団を「軍団長部隊」とし、他の味方エージェント部隊を「護衛部隊」とすると、この護衛部隊は、軍団長部隊の重心を目標にして移動する。このため、軍団長部隊が移動すると、護衛部隊も同時に移動し、そして、この護衛部隊がその重心に向かって移動を開始し、軍団長部隊が止まると、目標が不動になるので、護衛部隊も停止する。このとき、護衛部隊の目標までの移動を許可すると、軍団長部隊に「ぴったり重なる」ことになるため、護衛部隊が軍団長部隊と一定距離に近づいたら、護衛部隊の移動を停止することにする。
【００４５】
具体的に説明すると、その護衛部隊が「直接攻撃部隊」の場合は、距離を２０ｍ以内に、「遠距離攻撃部隊」の場合は、距離を３０ｍ以内に、軍団長部隊の重心が存在する場合に、それ以上は護衛部隊が軍団長部隊に近づかないものとする。その後、軍団長部隊が移動を再開し、再度２０〜３０ｍ以上の距離が開いた場合は、護衛部隊も軍団長部隊に向けて移動を再開する。
【００４６】
前記記録媒体１２は、ゲーム装置２を、前記集団移動手段、前記味方エージェント集団追従手段、前記集団表示手段として機能させる、プログラムを記録している。
【００４７】
この実施例のビデオゲームを制御するゲーム装置２は、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて移動する集団移動手段と、前記リーダー入り集団の移動中において、前記リーダー入り集団以外の他の味方エージェント集団を前記リーダー入り集団に追従させる味方エージェント集団追従手段と、前記リーダー入り集団及び前記味方エージェント集団を表示装置としてのテレビモニタ８に表示する集団表示手段と、を備えている。
【００４８】
この実施例のビデオゲームを制御するプログラムは、コンピュータとしてのＣＰＵブロック５４を、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなる味方エージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて敵集団の領域に移動して戦闘する集団移動戦闘手段、前記リーダー入り集団の戦闘開始後に、前記リーダー入り集団の背後（後方）の他の味方エージェント集団を前記敵集団の方向に移動する味方エージェント集団移動手段、前記リーダー入り集団と前記敵集団及び前記味方エージェント集団を表示装置としてのテレビモニタ８に表示する敵味方集団表示手段、として機能させる。
【００４９】
例えば、操作可能な軍団長部隊が戦闘開始となった時の後方の護衛部隊の動作において、部隊は、「移動目標」以外に、「攻撃対象」というデータを持つ。軍団長部隊の一定範囲内（視野範囲：例えば前方３０度、半径３０ｍの扇形内とか、或いは、半径４０ｍの円内であっても良い。）で敵集団を発見したとき、又は、軍団長部隊が戦闘を開始したときに、その敵集団が「攻撃対象」として設定される。基本的に、「攻撃対象」を攻撃する行動は、「移動目標」に向かう行動よりも、優先される。
【００５０】
つまり、図１３に示す如く、軍団長部隊が戦闘開始となったとき、後方の護衛部隊が遠距離攻撃部隊ならば、その場で「攻撃対象（殆どの場合軍団長部隊と戦っている相手になる）」に向かって攻撃を開始する。背後（後方）の護衛部隊が「直接攻撃部隊」の場合は、攻撃が当たる距離まで（＝敵部隊に接するまで）近づく。このとき、上記した「軍団長部隊にそれ以上近づかないようにする処理」よりも、「攻撃対象」に向かう処理が優先される。
【００５１】
また、この実施例のビデオゲームを制御するプログラムは、前記コンピュータとしてのＣＰＵブロック５４を、前記リーダー入り集団の戦闘開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を、前記リーダー入り集団と重ならないように、前記リーダー入り集団の左右から回り込ませる味方エージェント集団回込手段、として機能させる。
【００５２】
この場合に、上述の如く、「攻撃対象」に向かうまでに味方の軍団長部隊と重なってしまう場合に、邪魔しないように、背後（後方）の護衛部隊は、左右のどちらかから回り込む行動を取る。具体的には、例えば、図１４に示す如く、護衛部隊の前方３０度、半径３０ｍの扇形内に味方の軍団長部隊が存在する場合に、先ず、９０度程度右方向（又は左方向）に移動し、その後に前進し、敵集団（部隊）の後方へと回り込ませる。なお、前方に他の護衛部隊が存在する場合も、同様に、回り込ませる。
【００５３】
更に、この実施例のビデオゲームを制御するプログラムは、前記コンピュータとしてのＣＰＵブロック５４を、前記リーダー入り集団の戦闘開始後に、前記敵集団の背後に仮想境界線を設け、前記リーダー入り集団以外の他の味方エージェント集団が前記仮想境界線を超えた場合に、前記他の味方エージェント集団を自動的に前記敵集団の重心に移動する味方エージェント集団重心移動手段、として機能させる。
【００５４】
この場合に、図１４に示す如く、敵部隊の背後に仮想境界線を設け、護衛部隊が移動してこの仮想境界線を越えた場合に、護衛部隊を敵部隊の重心に向かって自動的に旋回するようにしても良い。なお、護衛部隊の移動は自動的になされるが、これはプレイヤの操作可能な軍団長部隊が、左側アナログスティック５０からの入力により移動するときのその入力値に相当する数値を、例えば、プログラムで、予めＲＡＭ６２に記憶して用意しておくか、又は、前方の軍団長部隊との位置関係から、それらの数値（例えば前方の軍団長部隊（又は敵部隊）の端から５ｍ程度だけ横方向への移動後に前進し、敵部隊の背後に設けた仮想境界線を越えた場合に、敵部隊の重心に向かって旋回する移動を実現する数値）を計算により求める等して、後は、それを読みながら軍団長部隊の場合と同様の処理で、移動が表現できる。この場合は、上記の（３）の移動力として処理される。
【００５５】
また、上記で、境界線以降の回り込みの具体的な計算式は、例えば、上記の数式の［数５］及び［数６］の「リーダーキャラクタを小隊重心に向かわせる力」の式と（この場合、回り込ませる小隊の各エージェントキャラクタを敵小隊重心に向かわせる力を求める）、［数４］のオイラー法の式、及び公知の手法（例えば、上記の特許文献３である特開２００４−６２６７６号公報に記載の手法）を用いることにより、進行方向に応じた向きにエージェントキャラクタを回転させながらスムーズな回り込みを表現することも可能である。更に、この場合、各エージェントではなく、小隊単位で考えれば、数式の［数５］及び［数６］の式を、「回り込ませる小隊の重心を敵小隊重心に向かわせる力」として応用し、求めた力を回り込ませる小隊の各エージェントに一様に作用するようにしても良い。
【００５６】
前記記録媒体１２は、ゲーム装置２を、上述の各手段の他に、前記集団移動戦闘手段、前記味方エージェント集団移動手段、前記敵味方集団表示手段、前記味方エージェント集団回込手段、前記味方エージェント集団重心移動手段としても機能させる、プログラムを記録している。
【００５７】
この実施例のビデオゲームを制御するゲーム装置２は、３次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて敵集団の領域に移動して戦闘する集団移動戦闘手段と、前記リーダー入り集団の開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を前記敵集団の方向に移動する味方エージェント集団移動手段と、前記リーダー入り集団の戦闘開始後に、前記リーダー入り集団の背後の他の味方エージェント集団を、前記リーダー入り集団と重ならないように、前記リーダー入り集団の左右から回り込ませる味方エージェント集団回込手段と、前記リーダー入り集団の戦闘開始後に、前記敵集団の背後に仮想境界線を設け、前記リーダー入り集団以外の他の味方エージェント集団が前記仮想境界線を超えた場合に、前記他の味方エージェント集団を自動的に前記敵集団の重心に移動する味方エージェント集団重心移動手段と、前記リーダー入り集団、前記敵集団及び前記味方エージェント集団を表示装置としてのテレビモニタ８に表示する敵味方集団表示手段と、を備えている。
【００５８】
次に、この実施例のゲーム装置２の動作について、図１〜図７のフローチャートを参照して、プレイヤの集団（リーダー入り集団：味方部隊）が移動した後、コンピュータ（ＣＰＵブロック５４）側の集団（敵集団：敵部隊）と戦闘する場合について説明する。
【００５９】
なお、ゲーム装置本体４には、既に、記録媒体１２が挿入されたゲームプログラム、ゲームデータが、ＣＰＵブロック５４内のＲＡＭ６２に格納され、初期設定の処理がなされているものとする。また、説明を簡単にするために、図１〜図７のフローチャートにおいては、プレイヤの集団の動作を中心に記載して、コンピュータの集団についても同様の処理がなされるものとして、その記載を省略した。
【００６０】
図１のフローチャートに示す如く、プログラムがスタートすると（ステップ１０２）、先ず、初期設定を行う（ステップ１０４）。このステップ１０４における初期設定は、各小隊が移動停止状態であり、各小隊の重心座標を設定する。つまり、全てのエージェントキャラクタの速度・加速度を０、北向き（例）、エージェントキャラクタの移動停止状態、ポリゴンデータ等の各種データをロードする。なお、前記移動停止状態とは、移動又は停止の状態である。
【００６１】
そして、この初期設定の後は、割り込みが発生したか否かを判断する（ステップ１０６）。なお、この時間間隔は、上述した通り、この実施例では、垂直帰線割込２回分に相当する１フレームの時間とする。
【００６２】
このステップ１０６がＮＯで、割り込みが発生していない場合には、メイン処理を行う（ステップ１０８）。
【００６３】
このステップ１０８におけるメイン処理においては、例えば、左側アナログスティック５０により入力され入力受信部６８により、受信後に転送されたその傾き情報を、ＲＡＭ６２に一時記憶して随時更新する処理を行う。その他のボタンの押下による入力情報に対するその他の処理やゲーム効果音を音響制御部７２に合成させるための音響処理等の処理も、ここで実行するものとする。
【００６４】
一方、前記ステップ１０６がＹＥＳで、割り込みが発生している場合には、集団移動戦闘処理のサブルーチンを実行する（ステップ１１０）。
【００６５】
そして、前記ステップ１０８でのメイン処理の後、又は、前記ステップ１１０での集団移動戦闘処理サブルーチンの実行後は、入力装置１０の終了ボタンが押下しているか否かを判断し（ステップ１１２）、このステップ１１２がＮＯで、終了ボタンが押下していない場合には、前記ステップ１０６に戻し、一方、このステップ１１２がＹＥＳで、終了ボタンが押下している場合には、プログラムをエンドとする（ステップ１１４）。
【００６６】
図１の前記ステップ１１０における集団移動戦闘処理のサブルーチンにおいては、図２のフローチャートに示す如く、各小隊全体で１つの小隊状態変数、各エージェントキャラクタで１つのエージェント状態変数が、ＲＡＭ６２で用意されている。
【００６７】
図２のフローチャートに示す如く、プログラムがスタートすると（ステップ２０２）、先ず、全小隊が終了か否かを判断する（ステップ２０４）。
【００６８】
このステップ２０４がＮＯで、全小隊が終了していない場合には、エージェント処理のサブルーチンを実行し（ステップ２０６）、そして、小隊処理のサブルーチンを実行し（ステップ２０８）、そして、前記ステップ２０４に戻す。
【００６９】
一方、前記ステップ２０４がＹＥＳで、全小隊が終了している場合には、画面枠内に表示可能なキャラクタに対して全画面表示処理を行い（ステップ２１０）、プログラムをリターンする（ステップ２１２）。
【００７０】
図２の前記ステップ２０６におけるエージェント処理のサブルーチンにおいては、図３のフローチャートに示す如く、プログラムがスタートすると（ステップ３０２）、先ず、全エージェントキャラクタが終了か否かを判断する（ステップ３０４）。
【００７１】
このステップ３０４がＮＯで、全エージェントキャラクタが終了していない場合には、エージェント状態処理のサブルーチンを実行し（ステップ３０６）、次いで、反発力の演算をし（ステップ３０８）、さらに、上記の（２）の凝集力の演算をし（ステップ３１０）、そして、エージェントキャラクタが戦闘状態か否かを判断する（ステップ３１２）。
【００７２】
このステップ３１２がＮＯで、エージェントキャラクタが戦闘状態でない場合には、プレイヤが小隊を操作しているか否かを判断し（ステップ３１４）、このステップ３１４がＹＥＳで、プレイヤが小隊を操作している場合には、左側アナログスティック５０の傾きの値からエージェントキャラクタの移動速度を設定する（ステップ３１６）。
【００７３】
一方、前記ステップ３１４がＮＯで、プレイヤが小隊を操作していない場合には、小隊の移動速度からエージェントキャラクタの移動速度を設定する（ステップ３１８）。
【００７４】
前記ステップ３１６又は前記ステップ３１８で、エージェントキャラクタの移動速度を設定した後は、上記の（３）の移動力を演算する（ステップ３２０）。
【００７５】
このステップ３２０で移動力を演算した後、重心力処理のサブルーチンを実行し（ステップ３２２）、また、総和加速度の演算を行い（ステップ３２４）、さらに、各キャラクタの最新速度及び最新位置を演算してＲＡＭに記憶し（ステップ３２６）、そして、体の向き合わせ処理を行って（ステップ３２８）、前記ステップ３０４に戻す。
【００７６】
前記ステップ３１２がＹＥＳで、エージェントキャラクタが戦闘状態の場合には、エージェント戦闘処理を実行する（ステップ３３０）。ここでは、例えば、□ボタン２０の押下があったときに、戦闘中のエージェントキャラクタのみが、攻撃動作を開始する処理や、これによる敵エージェントキャラクタのダメージ処理、逆に、敵エージェントキャラクタから攻撃を受けたときのダメージ処理や防御処理等が実行され、その後、前記ステップ３２４の総和加速度の演算を実行する。
【００７７】
一方、前記ステップ３０４がＹＥＳで、全エージェントキャラクタが終了している場合には、プログラムをリターンする（ステップ３３２）。
【００７８】
図３の前記ステップ３０６におけるエージェント状態処理のサブルーチンにおいては、図４に示す如く、エージェント状態変数の変更を行うものである。
【００７９】
図４のフローチャートに示す如く、プログラムがスタートすると（ステップ４０２）、先ず、自分の一番近い前方にいるエージェントキャラクタを探し（ステップ４０４）、そして、敵集団（敵エージェントキャラクタ）を発見したか否かを判断する（ステップ４０６）。
【００８０】
このステップ４０６がＮＯで、敵集団を発見していない場合には、味方エージェント集団を発見したか否かを判断する（ステップ４０８）。
【００８１】
このステップ４０８がＹＥＳで、味方エージェント集団を発見した場合には、自分の小隊が戦闘状態か否かを判断する（ステップ４１０）。
【００８２】
このステップ４１０がＹＥＳで、自分の味方エージェント集団（小隊）が戦闘状態の場合には、支援待機状態とする（ステップ４１２）。
【００８３】
前記ステップ４０８がＮＯで、味方エージェント集団を発見していない場合、又は、前記ステップ４１０がＮＯで、自分の小隊が戦闘状態でない場合には、自分の前方にエージェントキャラクタが何もいない場合であり、移動停止状態とする（ステップ４１４）。
【００８４】
前記ステップ４０６がＹＥＳで、敵集団（敵エージェントキャラクタ）を発見した場合には、戦闘状態とする（ステップ４１６）。
【００８５】
そして、前記ステップ４１２、前記ステップ４１４、又は、前記ステップ４１６の各処理後は、プログラムをリターンする（ステップ４１８）。
【００８６】
図３の前記ステップ３２２における重心力処理のサブルーチンにおいては、図５に示す如く、プログラムがスタートすると（ステップ５０２）、先ず、リーダーキャラクタか否かを判断する（ステップ５０４）。
【００８７】
このステップ５０４がＹＥＳで、リーダーキャラクタの場合には、自分の小隊（味方エージェント集団）の重心へ向かう力（上記の数式の［数５］及び［数６］により得られる力であって、厳密には自小隊の重心に向かわせる力であり、上記の（２）の凝集力とは異なる）の演算を行う（ステップ５０６）。
【００８８】
前記ステップ５０４がＮＯで、リーダーキャラクタでない場合には、エージェントキャラクタの位置が仮想境界線を越えたか否かを判断する（ステップ５０８）。
【００８９】
このステップ５１０がＹＥＳで、エージェントキャラクタの位置が仮想境界線を越えた場合には、敵の小隊（敵集団）の重心へ向かう力を演算する（ステップ５１０）。なお、上記同様に厳密には敵小隊の重心に向かわせる力であり、このときの演算も、上記の数式の［数５］及び［数６］を用いる。
【００９０】
そして、前記ステップ５０６で、自分の小隊の重心に向かわせる力を演算した後、前記ステップ５１０で、敵の小隊（敵エージェント集団）の重心に向かわせる力を演算した後、そして、前記ステップ５０８がＮＯで、エージェントキャラクタの位置が仮想境界線を越えていない場合には、プログラムをリターンする（ステップ５１２）。
【００９１】
図２の前記ステップ２０８における小隊処理のサブルーチンにおいては、図６のフローチャートに示すように、小隊状態変数の更新部分を含でいる。
【００９２】
図６のフローチャートに示す如く、プログラムがスタートすると（ステップ６０２）、先ず、自分の小隊の重心座標を演算し（ステップ６０４）、全エージェントキャラクタか否かを判断する（ステップ６０６）。
【００９３】
このステップ６０６がＮＯで、全エージェントキャラクタでない場合には、エージェントキャラクタが戦闘状態か否かを判断し（ステップ６０８）、このステップ６０８がＮＯで、エージェントキャラクタが戦闘状態でない場合には、前記ステップ６０６に戻す。
【００９４】
前記ステップ６０８がＹＥＳで、エージェントキャラクタが戦闘状態の場合には、小隊を戦闘状態とし（ステップ６１０）、そして、回り込みの仮想境界線を設定する（ステップ６１２）。
【００９５】
一方、前記ステップ６０６がＹＥＳで、全エージェントキャラクタの場合には、小隊を移動停止状態とする（ステップ６１４）。ここで、戦闘状態のエージェントキャラクタが１つもいない場合に、この状態となる。
【００９６】
そして、前記ステップ６１２で、回り込みの仮想境界線を設定した後、又は、前記ステップ６１４で、小隊を移動停止状態とした後は、小隊移動速度設定処理のサブルーチンを実行し（ステップ６１６）、プログラムをリターンする（ステップ６１８）。
【００９７】
この図６のフローチャートにおいては、いずれかのエージェントキャラクタが戦闘状態となったとき、そのエージェントキャラクタが属する小隊の状態変数を戦闘状態に変更し、敵小隊（敵集団）への回り込みの境界線を設定・記憶する。また、いずれのエージェントキャラクタも戦闘状態でなくなったときは、小隊を移動停止状態に変更する。
【００９８】
図６の前記ステップ６１６における小隊移動速度設定処理のサブルーチンにおいては、図７のフローチャートに示す如く、プログラムがスタートすると（ステップ７０２）、先ず、自分の味方小隊（味方エージェント集団）の一番近い前方にいる他の敵の小隊（敵集団）を探し（ステップ７０４）、敵小隊（敵集団）を発見したか否かを判断する（ステップ７０６）。
【００９９】
このステップ７０６がＮＯで、敵小隊を発見していない場合には、味方小隊を発見したか否かを判断する（ステップ７０８）。
【０１００】
このステップ７０８がＹＥＳで、味方小隊を発見した場合には、この味方小隊が戦闘状態か否かを判断する（ステップ７１０）。
【０１０１】
このステップ７１０がＹＥＳで、味方小隊が戦闘状態の場合には、敵小隊が仮想境界線を越えたか否かを判断する（ステップ７１２）。
【０１０２】
このステップ７１２がＹＥＳで、味方小隊が仮想境界線を越えた場合には、敵小隊の重心へ向かう（回り込みの）移動速度を設定する（ステップ７１４）。
【０１０３】
一方、前記ステップ７０６がＹＥＳで、敵小隊を発見した場合には、敵小隊に接近する移動速度・方向を設定する（ステップ７１６）。
【０１０４】
前記ステップ７０８がＮＯで、味方小隊を発見しない場合には、減速停止のための移動速度・方向を設定する（ステップ７１８）。
【０１０５】
前記ステップ７１０がＮＯで、味方小隊が戦闘状態でない場合には、味方小隊に追従する移動速度・方向を設定する（ステップ７２０）。
【０１０６】
前記ステップ７１２がＮＯで、味方小隊が仮想境界線を越えていない場合には、敵小隊付近に向かう移動速度・方向を設定する（ステップ７２２）。前記敵小隊付近とは、例えば、その敵小隊の最右端のエージェントキャラクタの位置から境界線上の５ｍの位置等である。
【０１０７】
そして、前記ステップ７１４〜７２２の各種設定の終了後は、プログラムをリターンする（ステップ７２４）。
【０１０８】
この結果、この実施例のキャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置は、プレイヤが操作中でない味方のエージェント集団でも、前方に他の味方のエージェント集団（プレイヤが操作中のリーダー入り集団も含まれる）を発見した場合には、この後方の味方のエージェント集団を前方の他の味方のエージェント集団（又はリーダー入り集団）に追従させ、敵集団を発見した場合には、後方の味方のエージェント集団が戦闘をするように、適度な範囲での自律的な行動を許容し、例えば、プレイヤが介入中のリーダー入り集団を発見した場合には、その介入操作に応じた追従動作をし、プレイヤが介入中のリーダー入り集団と戦闘中の敵集団の重心に向かって後方の味方のエージェント集団を敵集団の背後から自発的に回り込んで応戦させることができる。これにより、集団の隊列を大きく乱さずに全体を表示できると同時に、適度に隊列内での追い越しや配置が入れ替わる様子を表現することができ、リーダーキャラクタを中心とした複雑な集団の移動や戦闘を、直感的に分かり易い操作により動的に楽しませることができるとともに、よりリアルに表現することが可能となる。
【０１０９】
また、入力装置１０において、ボタンでなく、アナログスティックの操作のため、ボタン間の指の移動をなくして、左側アナログスティック５０を傾けた方向にまっすぐ移動し、指を離さずに別の方向に傾けると、集団全体が大回りに回転を始める等、複雑な操作が可能となる。
【０１１０】
更に、操作している集団（例えば、騎馬兵の群れ）以外の他の味方エージェント集団（例えば、後方の歩兵の群れ）が追従し（同時に移動し、同時に停止）、重心間の距離を一定に保つことができる。
【０１１１】
なお、この発明においては、自律的に行動する味方小隊を、選択画面に表示させて、プレイヤが選択できるようにしてもよい。これにより、プレイヤが介入中の小隊に、好みの他の味方小隊を追従させることが可能となる。
【０１１２】
また、リーダーキャラクタをエージェント集団の後側に位置させることも可能である。
【産業上の利用可能性】
【０１１３】
プレイヤに各集団を直接介入操作させることを、他の装置にも適用することができる。
【図面の簡単な説明】
【０１１４】
【図１】キャラクタ集団制御のフローチャートである。
【図２】図１の集団移動戦闘処理のサブルーチンのフローチャートである。
【図３】図２のエージェント処理のサブルーチンのフローチャートである。
【図４】図３のエージェント状態処理のサブルーチンのフローチャートである。
【図５】図３の重心力処理のサブルーチンのフローチャートである。
【図６】図２の小隊処理のサブルーチンのフローチャートである。
【図７】図６の小隊移動速度設定処理のサブルーチンのフローチャートである。
【図８】キャラクタに作用する反発力の説明図である。
【図９】キャラクタに作用する反発力と距離との関係を示す説明図である。
【図１０】キャラクタに作用する凝集力の説明図である。
【図１１】キャラクタに作用する移動力の説明図である。
【図１２】軍隊長部隊と護衛部隊との距離を示す説明図である。
【図１３】背後（後方）の護衛部隊を敵集団の方向に移動する説明図である。
【図１４】背後（後方）の護衛部隊を敵集団の背後に回り込みさせる説明図である。
【図１５】ゲーム装置の構成図である。
【図１６】入力装置の平面図である。
【図１７】図１６の矢印ＸＶＩＩによる入力装置の正面図である。
【図１８】ゲーム装置の制御ブロック図である。
【符号の説明】
【０１１５】
２  ゲーム装置
８  モニタテレビ
１０  入力装置
１２  記憶媒体
１４  媒体読取部
４８  右側アナログスティック
５０  左側アナログスティック
５４  ＣＰＵブロック
５６  ＳＣＵ
５８  ＣＰＵ
６０  ＲＯＭ
６２  ＲＡＭ
６８  入力受信部
７０  画像処理部
７２  音響処理部
【図１】
2006174930.tif 000003
【図２】
2006174930.tif 000004
【図３】
2006174930.tif 000005
【図４】
2006174930.tif 000006
【図５】
2006174930.tif 000007
【図６】
2006174930.tif 000008
【図７】
2006174930.tif 000009
【図８】
2006174930.tif 000010
【図９】
2006174930.tif 000011
【図１０】
2006174930.tif 000012
【図１１】
2006174930.tif 000013
【図１２】
2006174930.tif 000014
【図１３】
2006174930.tif 000015
【図１４】
2006174930.tif 000016
【図１５】
2006174930.tif 000017
【図１６】
2006174930.tif 000018
【図１７】
2006174930.tif 000019
【図１８】
2006174930.tif 000020