説明

キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置

【課題】キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置において、リーダーキャラクタを中心とした複雑な集団の移動や戦闘を、直感的に分かり易い操作により動的に楽しませ、よりリアルに表現させることにある。
【解決手段】ビデオゲームを制御するプログラムであって、コンピュータを、3次元仮想空間上でリーダーキャラクタを複数の味方エージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置から入力する移動方向の指定情報に基づいて敵集団の領域に移動して戦闘させる集団移動戦闘手段、前記リーダー入り集団と前記敵集団との戦闘中に前記敵集団が通過しないように前記リーダー入り集団の前線を形成する前線形成手段、前記リーダー入り集団と前記敵集団とを表示装置に表示する敵味方集団表示手段、として機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、キャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置に係り、特にプレイヤに3次元空間上の集団(群れ)を直接介入操作させ、集団の移動や戦闘をリアルに表現させるキャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置に関するものである。
【背景技術】
【0002】
家庭用ビデオゲームにおいては、3次元仮想空間上で、リーダーキャラクタと、このリーダーキャラクタに追随する複数のエージェントキャラクタからなるエージェント集団(群れ)と、を移動制御するものがある。
【0003】
従来、キャラクタ集団移動制御には、第1の領域内に他のキャラクタが存在するときに、この他のキャラクタから所定距離だけ離れるための加速度、第2の領域内にリーダーキャラクタに追随するように移動する他のキャラクタが存在するときに、この他のキャラクタの移動する速さ及び方向を合わせるための加速度を、3次元仮想空間上のx、y、zの成分毎に加算した総和加速度で、各キャラクタを目標点に移動させるものがある。これにより、各キャラクタが、第1又は第2の領域内に存在する他のキャラクタの移動状況に応じて速さや方向を変更しながら移動することができ、各キャラクタの移動の動作をリアルに表現させている。
また、キャラクタ集団移動制御には、入力装置において、方向を指示するための第1ボタン乃至第4ボタンのいずれのボタンも押下されていないときに、複数のゲームキャラクタを、特定のゲームキャラクタ又は特定の第1領域から離散するように移動させ、第1ボタンが押下されたときに、ゲームキャラクタを特定のゲームキャラクタ又は特定の第2領域の近傍に集結するように移動させるものがある。これにより、3次元仮想空間上で、特定のゲームキャラクタ又は特定の第1領域から離散した後、特定のゲームキャラクタ又は特定の第2領域に向かう方向が夫々異なる複数のゲームキャラクタに対し、第1ボタンによる一つのボタン操作で各方向と動作開始の指示を同時に指定し、複数のゲームキャラクタの移動に対して操作性の向上を図るとともに、信号処理部での負担の軽減を図ることができる。また、第2ボタン乃至第4ボタンのいずれかのボタンが押下されたときに、この第2ボタン乃至第4ボタンで指示された指定方向に、複数のゲームキャラクタを集団で移動させるようにすれば、この集団を指定することなく、第2ボタン乃至第4ボタンを、本来の方向を指示するためのボタンとして使用し、この集団を移動させることができるので、上述した離散・集結に加え、集団の移動操作性を向上させることができる。更に、入力装置が上下左右で構成された十字方向ボタンセットを備えており、第1ボタンを下ボタンとし、第2ボタン乃至第4ボタンを上左右ボタンとすれば、特定のゲームキャラクタはプレイヤ自身を表しており、十字方向ボタンセットの下ボタンは、その物理的配設位置からプレイヤの元に集結するという感覚と一致しているので、下ボタンは特定のゲームキャラクタへの集結用ボタンであることが分かり易く、上左右ボタンは十字方向ボタンの本来の方向指示用ボタンとして用いることができる。
更に、キャラクタ集団移動制御には、コンピュータを、3次元仮想空間で動作する非表示の3次元ポリゴンモデルのモーションデータを付与するモデルデータ付与手段、3次元ポリゴンモデルの頂点に追随するように頂点に対応付けられたキャラクタに運動性能を付与する運動性能付与手段、キャラクタの3次元仮想空間上の位置を演算する位置演算手段、として機能させるものがある。これにより、集団を構成する複数のキャラクタが非表示の3次元ポリゴンモデルの頂点に追随するように運動性能が付与され、各キャラクタ毎にモーションを用意する必要がなく、処理の簡素化が図られるとともに、キャラクタ全体で複雑な集団形状をとりながら、あたかも、1つの生物のように動く様子を表現することができる。
【特許文献1】特許第3163496号公報
【特許文献2】特開2002−66131号公報
【特許文献3】特開2004−62676号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところが、従来、キャラクタ集団移動制御にあっては、上記の特許文献1及び特許文献3に記載された発明は、プレイヤが集団(群れ)の移動を直接介入操作できるものではなく、コンピュータにより自動的に集団が移動処理されるものなので、戦略をながめて楽しむという点では向いているものの、集団の移動や戦闘場面に直接介入して楽しむという点では不向きであるという不都合があった。
【0005】
また、上記の特許文献1に記載された発明では、各キャラクタの集団は、リーダーキャラクタに追随しながら互いに距離をとり、速度と方向とを変化させながら移動するので、追い越しや隊列内の配置が変わることもあり、自然な移動が表現することができるが、重心という考え方が存在しないので、場合によっては、集団の背後(後方)のキャラクタが大きく拡散し、画面に集団全体が表れないこともあった。これに対し、上記の特許文献3に記載された発明では、各キャラクタが非表示の全体ポリゴンモデルの各頂点に追随するようにしたので、各キャラクタが大きく拡散することはなくなり、隊列の形状を保つことができるようになったが、各キャラクタには、隊列内の本来の整列位置(即ち、移動目標となるキャラクタ固有の頂点)が定められているので、基本的には、隊列内の配置が変わることはなく、変化に富んだ移動とまでは言えなかった。
【0006】
更に、上記の特許文献2に記載された発明では、十字方向ボタンセットにより直接的に集団を操作することができたが、基本的には、リーダーキャラクタに追随する上記の特許文献1に記載された発明を引き継ぐものであるので、集団全体で真っ直ぐ進め・止まれ程度の操作が限界であった。これは、上記と同様に、重心という考え方が存在しないので、キャラクタが移動中に拡散したり、集団全体が表示されないという問題が残り、更には、戦闘状態への移行後は、最終的に乱戦状態となるので、拡散したキャラクタのプログラム処理上での状況把握が困難であり、外部からの集団としての操作が、もはや、困難となるからである。
【課題を解決するための手段】
【0007】
この発明は、ビデオゲームを制御するプログラムであって、コンピュータを、3次元仮想空間上でリーダーキャラクタを複数の味方エージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置から入力する移動方向の指定情報に基づいて敵集団の領域に移動して戦闘させる集団移動戦闘手段、前記リーダー入り集団と前記敵集団との戦闘中に前記敵集団が通過しないように前記リーダー入り集団の前線を形成する前線形成手段、前記リーダー入り集団と前記敵集団とを表示装置に表示する敵味方集団表示手段、として機能させることを特徴とする。
【発明の効果】
【0008】
この発明のキャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置は、集団の隊列を大きく乱さずに全体を表示できると同時に、適度に隊列内での追い越しや配置が入れ替わる様子を表現することができ、リーダーキャラクタを中心とした複雑な集団の移動や戦闘を、直感的に分かり易い操作により動的に楽しませることができるとともに、よりリアルに表現させることができる。
【発明を実施するための最良の形態】
【0009】
この発明は、リーダーキャラクタを中心とした複雑な集団の移動や戦闘を直感的に分かり易い操作により動的に楽しませる目的を、プレイヤに集団を直接介入操作させて実現するものである。
以下図面に基づいてこの発明の実施例を詳細且つ具体的に説明する。
【実施例】
【0010】
図1〜図24は、この発明の実施例を示すものである。
【0011】
図21において、2はビデオゲームが実行される家庭用ビデオゲーム装置(以下「ゲーム装置」という)である。
【0012】
このゲーム装置2は、ゲーム装置本体4に、スピーカ6を内蔵した表示装置としてのテレビモニタ8及びコントローラパッド等の入力装置10を接続している。ゲーム装置本体4は、CD−ROMやDVD等の記録媒体12を装着可能な媒体読取部14(図24参照)を有している。この媒体読取部14に記録媒体12を装着することにより、記録媒体12に記録されたゲームプログラムやゲームデータが自動的にゲーム装置本体4内の記憶メモリ(RAM)にロードされる。テレビモニタ8は、入力装置10からの入力情報に基づいてゲーム上での集団(群れ)等を表示するものである。入力装置10は、ゲーム上での集団(群れ)等を移動させるものである。
【0013】
図22、図23に示す如く、入力装置10の入力装置本体16には、操作部として、ゲームを開始するためのスタートボタン18や、ゲームキャラクタを操作したり、ゲーム装置本体4からの選択問い合わせ等に応答するための、□ボタン20、△ボタン22、○ボタン24、×ボタン26、及び、↑ボタン28、→ボタン30、←ボタン32、↓ボタン34で構成される十字方向ボタンセット36、セレクトボタン38、R1ボタン40、R2ボタン42、L1ボタン44、L2ボタン46、そして、2つの右側、左側アナログスティック48、50や、アナログモードスイッチ52等の各種ボタン類が配置されている。左側アナログスティック50は、集団(群れ)の移動方向を指定するものである。□ボタン20は、各キャラクタが刀を振りかざす等の攻撃を行わせるものである。
【0014】
図24に示す如く、ゲーム装置本体4は、ビデオゲームのプログラムを実行するためのコンピュータとして、装置全体の制御を行うCPUブロック54を備えている。このCPUブロック54は、ゲーム装置本体4内の各部とのデータ転送を主に制御するSCU(System Control Unit)56、中央演算処理装置として高速クロックで作動するCPU(Central Processing Unit)58、ゲーム装置本体4の基本制御動作が記憶されたROM(Read Only Memory)60、CPU58のワークエリアとして働くと共に記録媒体12に記録されたゲームプログラム及び種々のデータを一時的に記憶するRAM(Random Access Memory)62、及び、これらを接続する内部バス64で構成されている。
【0015】
また、SCU56には、外部バス66が接続している。この外部バス66は、入力装置10からの入力を受信してCPUブロック54へ入力情報を転送する入力受信部68、図示しないサブCPUを備えて記録媒体12に記録されたゲームプログラムを読み取りCPUブロック54へ転送するCD−ROMドライブ等の媒体読取部14、グラフィック処理を行うCPU及びVRAMを備えてCPUブロック54から送出された情報に従って光源処理等を行い3次元フィールドでの描画処理を施す画像処理部70、並びに、図示しないサブCPUを備え、例えば、バックミュージックや戦闘音等の音響を処理する音響処理部72に接続している。また、入力受信部68には、入力装置10が接続している。画像処理部70には、テレビモニタ8が接続している。音響処理部72には、テレビモニタ8に内蔵されたスピーカ6が接続している。
【0016】
この実施例のビデオゲームを制御するプログラムは、コンピュータであるCPUブロック54を、3次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団(群れ)に含めて形成したリーダー入り集団(群れ)を入力装置10からの入力情報に基づいて移動する集団移動手段、所定時間毎に、前記リーダー入り集団の移動中において前記各キャラクタに自然な移動を表現させるように前記各キャラクタに特定力を作用する特定力作用手段、前記特定力に基づいて前記各キャラクタの最新位置を演算して記憶する位置演算記憶手段、前記リーダー入り集団を表示装置としてのテレビモニタ8に表示する集団表示手段、として機能させる。
【0017】
前記特定力は、以下の(1)から(3)の3つの力から構成される。
(1)他のキャラクタとの衝突を回避する力である反発力(拡散方向の力)。
(2)エージェント集団(群れ:部隊)に対して重心に向かう力である凝集力(集団でまとまろうとする力)。
(3)入力装置10の操作部やプログラムの指定等により各キャラクタの指定方向に移動する力である移動力。
【0018】
また、この実施例のビデオゲームを制御するプログラムは、前記コンピュータであるCPUブロック54を、更に、前記リーダーキャラクタを前記エージェント集団の重心に移動するリーダー移動手段、として機能させる。
【0019】
前記記録媒体12は、ゲーム装置2を、前記集団移動手段、前記特定力作用手段、前記位置演算記憶手段、前記集団表示手段、及び、前記リーダー移動手段として機能させる、プログラムを記録している。
【0020】
この実施例のビデオゲームを制御するゲーム装置2は、3次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置10からの入力情報に基づいて移動する集団移動手段と、所定時間毎に、前記リーダー入り集団の移動中において前記各キャラクタに自然な移動を表現させるように前記各キャラクタに特定力を作用する特定力作用手段と、前記特定力に基づいて前記各キャラクタの最新位置を演算して記憶する位置演算記憶手段と、前記リーダー入り集団を表示装置としてのテレビモニタ8に表示する集団表示手段と、前記リーダーキャラクタを前記エージェント集団の重心に移動するリーダー移動手段と、を備えている。
【0021】
更に、この実施例のビデオゲームを制御するプログラムは、前記コンピュータであるCPUブロック54を、3次元仮想空間上でリーダーキャラクタを複数の味方エージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置10からの入力情報に基づいて敵集団の領域に移動して戦闘させる集団移動戦闘手段、前記リーダー入り集団と前記敵集団との戦闘中に前記敵集団が通過(交錯)しないように前記リーダー入り集団の前線を形成する前線形成手段、前記リーダー入り集団と前記敵集団とを表示装置としてのテレビモニタ8に表示する敵味方集団表示手段、として機能させる。
【0022】
更にまた、この実施例のビデオゲームを制御するプログラムは、前記コンピュータであるCPUブロック54を、前記リーダー入り集団の前記敵集団への戦闘突入後に、入力装置10からの入力情報に基づいて戦闘していない残りの味方エージェントを移動する味方エージェント移動手段、として機能させる。
【0023】
また、この実施例のビデオゲームを制御するプログラムは、コンピュータであるCPUブロック54を、前記敵集団の背後(後方)に仮想境界線を設定し、前記残りの味方エージェント(集団であっても良い)が前記仮想境界線を越えた場合に、前記残りの味方エージェントを自動的に前記敵集団の背後まで回り込ませる味方エージェント回込手段、として機能させる。
【0024】
更に、この実施例のビデオゲームを制御するプログラムは、前記コンピュータであるCPUブロック54を、前記リーダー入り集団の移動後の戦闘時に、前記リーダーキャラクタは前記他の味方エージェントキャラクタと同様に索敵する索敵手段、として機能させる。
【0025】
前記記録媒体12は、ゲーム装置2を、上述の各機能の他に、前記集団移動戦闘手段、前記前線形成手段、前記敵味方集団表示手段、前記味方エージェント移動手段、前記味方エージェント回込手段、前記索敵手段としても機能させる、プログラムを記録している。
【0026】
また、この実施例のビデオゲームを制御するゲーム装置2は、3次元仮想空間上でリーダーキャラクタを複数の味方エージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置からの入力情報に基づいて敵集団の領域に移動して戦闘させる集団移動戦闘手段と、前記リーダー入り集団と前記敵集団との戦闘中に前記敵集団が通過(交錯)しないように、前記リーダー入り集団の前線を形成する前線形成手段と、前記リーダー入り集団の前記敵集団への戦闘突入後に、戦闘していない残りの味方エージェントを移動する味方エージェント移動手段と、前記敵集団の背後に仮想境界線を設定し、前記残りの味方エージェントが前記仮想境界線を越えた場合に、前記残りの味方エージェントを自動的に前記敵集団の背後まで回り込ませる味方エージェント回込手段と、前記リーダー入り集団と前記敵集団とを表示装置としてのテレビカメラ8に表示する敵味方集団表示手段と、を備えている。
【0027】
即ち、この実施例において、ビデオゲームを制御するプログラムは、コンピュータであるCPUブロック54を、3次元仮想空間上でリーダーキャラクタを複数のエージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置10からの入力情報に基づいて移動する集団移動手段、所定時間毎に、前記リーダー入り集団の移動中において前記各キャラクタに自然な移動を表現させるように前記各キャラクタに特定力を作用する特定力作用手段、前記特定力に基づいて前記各キャラクタの最新位置を演算して記憶する位置演算記憶手段、前記リーダー入り集団を表示装置に表示する集団表示手段、として機能させ、又は、上述の各機能に、前記リーダーキャラクタを前記エージェント集団の重心に移動するリーダー移動手段、として機能させる。これにより、リーダー入り集団の移動中においては、各所定時間(フレーム)毎で、全てのキャラクタに、自然な移動を表現させるように、前記特定力としての、上述した反発力と凝集力と移動力とが加えられる。
【0028】
ここで、前記所定時間(フレーム)とは、画像処理の時間的単位であり、描画の際の、いわゆる「コマ」のことである。この実施例において、1フレームの時間は、テレビモニタ8の垂直帰線周期と一致した1/60秒(16.6ミリ秒)に一度の周期でプログラム上呼び出される垂直帰線割込(Vsync)の2回分の時間(1/30秒)に相当するものとする。
【0029】
上記の(1)の反発力において、図8に示す如く、例えば、エージェントキャラクタAについての反発力は、エージェントキャラクタAの位置を中心とした、例えば、半径3m程度の円の範囲内に属する他のエージェントキャラクタに対して反発力が発生する。この反発力は、各エージェントキャラクタについて別々に発生する。
【0030】
この場合、一方のエージェントキャラクタの位置をaとし、他方のエージェントキャラクタの位置をbとし、反発力の発生限界距離(これ以上離れていたら反発力は、発生しない距離)をdとし、最大反発力の大きさをfとすると、以下のようになる。
[数1]
1=|a−b|
v=(a−b)/1
反発力=v*f*max(d−1、0)/d
ここで、vは、aからbに向かう単位ベクトル(方向のみの意味を持ち、大きさは1)。f*max(d−1、0)/dの部分は、図9に示すようになる。なお、ここで、|a−b|は、(a−b)の絶対値である。また、max(d−1、0)は、(d−1)と(0)とのいずれか大きい値の方を選択するという意味である。このとき、図9に示すように、反発力と距離とが一定比率で変化するとしても良いが、例えば、2次関数のように、距離が短いほど反発力が急激に増加するように変化させても良い。
【0031】
また、上記の(2)の凝集力において、図10に示す如く、ここでいう集団の重心とは、いわゆる質点の重心であり、各エージェントキャラクタの水平成分(x、z)座標を成分毎に足して平均化した座標値をとる。なお、垂直成分yは、地表面の高さとする。即ち、重心とは、各エージェントキャラクタを含むような矩形又は円等の形状の単なる外枠の中心とは必ずしも一致しない。なお、簡易的に、このような外枠の中心で処理しても良いが、例えば、密集している部分から遠く離れてしまったキャラクタが1つ存在するとき等は、群れの重心は、密集している部分に近い方が望ましいことから、やはり本来的な重心の考え方を用いるべきである。
【0032】
この場合、エージェントキャラクタAの位置をaとし、集団の重心をcとし、最大凝集力の大きさをfとすると、以下のようになる。
[数2]
v=(c−a)/|c−a|
凝集力=v*f
【0033】
更に、上記の(3)の移動力において、図11に示す如く、例えば、入力装置10の左側アナログスティック50を指定方向としての左斜め前方に傾けた場合に、エージェントキャラクタの現在の速度をv0とし、指定移動速度をv1とし、v0からv1に変化するのに要する時間をdtとし、発生可能な最大加速度の大きさをaccとすると、以下のようになる。
[数3]
v=(v1−v0)/dt
移動力=v/|v|*min(|v|、acc)
ここで、v/|v|は、単位ベクトルである。vは、加速度である。min(|v|、acc)により、加速度vが最大加速度accを超えないようにしている。
【0034】
また、ここで、運動方程式F=mα(F:力、m:質量、α:加速度)において、この実施例におけるゲームの3次元仮想空間では、エージェントキャラクタの質量mは、1として考えて、力=加速度とみなして計算する。
【0035】
各座標成分(x、y、z)毎に上記の(1)から(3)の力、即ち、加速度を求め、これらを各座標成分毎に加算して総和加速度を求め、下記の数式の[数4]を用いて各キャラクタの最新速度及び最新位置を演算し、この最新速度及び最新位置をRAM62に格納する。キャラクタの移動開始前の初期状態の速度(即ち0)、指定移動速度(上記の(3)の移動力のv1)及び位置(整列状態での座標値)は、予め与えられているものとする。
【0036】
現在の総和加速度αが与えられる1つ前(前回のフレーム時)の速度V0及び位置P0を用いて、オイラー法を用いた運動方程式を表す下記の数式の[数4]により、対象エージェントキャラクタの現在の速度V1及び位置P1を、各(x、y、z)成分毎に演算する。
【0037】
なお、下記の数式の[数4]において、Δtは、前回のフレーム時から今回のフレーム時までの時間(1/30秒)を表しており、前回の速度V0及び位置P0は、RAM62に格納されている。
[数4]
V1=V0+α・Δt
P1=P0+V0・Δt+0.5・α・Δt2
【0038】
これを各エージェントキャラクタ毎に求め、上記の数式の[数4]により得られた最新位置P1で、エージェントキャラクタを描画する。
【0039】
従って、上記の(1)の反発力と上記の(2)の凝集力とは、相反する力となり、各フレーム毎に上記の(1)から(3)の各力は、変化する。前記重心は、微妙に揺れ動くので、上記の(2)の重心に向かう凝集力も揺れ動く。これにより、集団には、揺れ動く感じや、ざわざわという感じを出すことができる。
【0040】
また、この実施例のビデオゲームを制御するプログラムは、前記コンピュータであるCPUブロック54を、前記リーダーキャラクタを前記エージェント集団の前記重心に移動するリーダー移動手段、として機能させる。
【0041】
つまり、図12に示す如く、リーダーキャラクタを先頭とするとエージェント集団全体が画面に表せない(映らない)場合があり得る。また、実際に武将(リーダーキャラクタ)がエージェント集団を率いて移動する場面を考えた場合、武将は、集団の先頭ではなく、周りに護衛兵を配置させて、中央で指揮を取るとした方が現実的であるとも考えられる。
【0042】
そこで、この実施例においては、図13に示す如く、エージェント集団全体に重心を設け、重心が表示される画面の中央となるように、自動的にカメラの位置及び方向を合わせ更に、リーダーキャラクタの位置が重心と一致するように、この重心に向かう力として上記の(2)の凝集力を作用させるとともに、リーダーキャラクタに特別な力(後述のリーダーキャラクタを重心に向かわせる力)を作用させる。
【0043】
エージェント集団の各エージェントキャラクタの位置は、初期状態(移動開始前の整列状態)では、例えば、エージェント集団の形状が矩形等となるように配置が決まっているが、一旦移動が開始されると、上記の3つの力が各フレーム毎に様々に変化しながら働いて、具体的な位置が決まり表示される。このため、エージェント集団全体の形状や各キャラクタの位置関係・配列順は、一定でなく、実際の群れのような変化に富んだ移動を表現できる。
【0044】
このとき、エージェント集団の先頭を走るキャラクタは存在するが、このキャラクタはいわゆるリーダーキャラクタではなく、エージェント集団の重心に存在するリーダーキャラクタへ向かう力(上記の(2)の凝集力)が働いている。
【0045】
また、リーダーキャラクタには、上記の3つの力とは別に、さらに以下の力が各フレーム毎で作用し、上記の3つの力との総和加速度を求めて、同様に、オイラー法の上記の数式の[数4]を用いて最新速度及び最新位置を演算し、RAMに記憶する。
【0046】
つまり、リーダーキャラクタを小隊重心に向かわせる力において、エージェントキャラクタ(ここでは、リーダーキャラクタのこと)の位置をpとし、エージェントキャラクタの現在速度をv0とし、発生可能な最大加速度をaccとし、小隊重心位置をcとし、小隊重心の移動速度をv1とし、小隊重心に接近する際の相対速度(=小隊重心から見たエージェントキャラクタの速度)をf(1)とすると、以下のようになる。
[数5]
f(l):0≦1<dのとき、v*1/d
d<1のとき、v
ここで、vは最大相対速度であり、dは接近速度の減速を開始する距離であり、1はエージェントキャラクタと小隊重心との距離である。
【0047】
そして、相対速度がf(1)になるまでに要する時間をdtとすると、以下のようになる。
[数6]
v2=v0−v1
1=|c−p|
v3=(c−p)/1
v4=((v3*f(1))−v2)/dt
小隊重心に向かわせる力=v4/|v4|*min(|v4|、acc)
【0048】
なお、上式の意図するところは、図14(A)、図14(B)に示す如く、エージェントキャラクタxが、υ方向に速度υで移動中に、υ‘方向(重心方向)に速度υ‘が与えられたとき、υ‘−υ方向に力を作用させれば、υ‘方向に移動できるということである。
ここで(υ‘−υ)/dt=αは、加速度、すなわち、質量1の場合の重心に向かわせる力ということになる。また、この加速度αは、重心を向いていない(υ‘が重心方向であって上記υ‘−υの方向)。この点、上記の(2)の凝集力(即ち加速度)が重心を向いていることとは、相違する。
【0049】
しかし、この段階では、未だ、エージェントキャラクタの方向が加味されておらず、エージェントキャラクタは、方向を持たないパーティクル(質点)として把握される。エージェントキャラクタにも方向があるため、逆方向への瞬時の変更を表現すると不自然となり、徐々に方向を変更する様子を表現する必要があるためである。
【0050】
このため、この実施例においては、各フレーム毎にエージェントキャラクタの方向を変化させるために、エージェントキャラクタに対するパーティクル(質点)的な制御に方向制御を加味した、方向を持ったパーティクル制御を実行する。これについては、公知の手法(例えば、上記の特許文献3である特開2004−62676号公報)を用いることで、進行方向に応じた向きに、エージェントキャラクタを回転させて表現することが可能となる。
【0051】
また、エージェント集団の戦闘中において、図15、図16に示す如く、上記の(3)の前方に移動する移動力(図11参照)と、上記の(1)の敵集団の前衛兵士から受ける反発力が集団に作用しているため、このままでは、上記の(1)と(3)との双方の力により、集団が押し潰される形となり、徐々に左右に広がっていく(特に、後衛兵士)ので、集団に重心を設定して、これに向かう力である上記の(2)の凝集力を各キャラクタに作用させることで、拡散を防ぐようにした。なお、前線で戦闘中の前衛兵士は、基本的には戦闘優先で処理され、上記の(3)の移動力の内、左右方向への移動は、働かないものとする(左側アナログスティック50を横に傾けても移動しない)。
【0052】
更に、この実施例のビデオゲームを制御するプログラムは、コンピュータであるCPUブロック54を、3次元仮想空間上でリーダーキャラクタを複数の味方エージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置10からの入力情報に基づいて敵集団の領域に移動して戦闘させる集団移動戦闘手段、前記リーダー入り集団と前記敵集団との戦闘中に前記敵集団が通過(交錯)しないように前記リーダー入り集団の前線を形成する前線形成手段、前記リーダー入り集団と前記敵集団とを表示装置であるテレビカメラ8に表示する敵味方集団表示手段、として機能させる。
【0053】
つまり、図17に示す如く、先ず、視野角θ(例えば90度)で所定半径(例えば5m)内に存在する自分以外のエージェントキャラクタを探す。
【0054】
次に、仮に、自分に一番近い前方にいる他のエージェントキャラクタが敵エージェントキャラクタの場合は、戦闘状態に移行し、また、そうでなければ、仮に、自分に一番近い前方にいる他のエージェントキャラクタが味方エージェントキャラクタの場合には、支援状態に移行し、そして、そうでなければ、自分の前方に他のエージェントキャラクタがいない場合なので、移動状態のままとする。
【0055】
ここで、前記支援状態とは、これにより、前線に存在する戦闘状態の前衛キャラクタの攻撃力・防御力等のキャラクタ変数をアップさせる手法も考えられるが、この実施例においては、味方エージェント集団の各キャラクタ間に敵集団のエージェントキャラクタを入り込ませないように、その場で待機している状態をいう。
【0056】
なお、このプログラム処理において、各キャラクタが戦闘中か否かの判断については、戦闘中、支援中又は移動中という状態を示し、RAM62に記憶され、随時更新される状態変数を参照して判断される。
【0057】
以上の説明により、結果的に、集団には、前記前線のようなものができる。このように、実際には、ローカルな制御を各エージェントキャラクタに与えているが、結果的に、グローバルな構造ができあがる処理を、一般に「創発的な制御」という。このように前線が形成されるように処理する上記処理の目的は、乱戦になるのを防ぐためである。
【0058】
従来の方法では、戦闘開始後は、敵味方の双方が入り乱れた乱戦状態となるので、仮に、その時点まで集団を操作できる処理を設計できたとしても、その後、そのプレイヤは、それまでどの集団(部隊)を操作しているかわからなくなってしまう。つまり、集団(部隊)の原形がわからなくなってしまうのである。
【0059】
これに対して、戦闘状態となったときに、戦闘する前衛兵士の前線が形成され、その背後(後方)に位置する後衛兵士がカバーに回るような処理をすれば、集団(部隊)の固まりがはっきり視認できるようになる。
【0060】
なお、攻撃ボタン(例えば、□ボタン20)を押すと、プレイヤが、現在操作中の集団(群れ)の内、ここでいう前線の前衛兵士のみが、刀を振り下ろす等の攻撃を行い、そのモーションが表示される。
【0061】
より具体的には、自分の目の前に味方のエージェントキャラクタがいない状態(敵エージェントキャラクタはいてもいなくてもよい)のエージェントキャラクタは、□ボタン20の押下により刀を振る。この場合、必ずしも、一列目が刀を振るというわけではない。図18には、それを例示する。
【0062】
また、この実施例のビデオゲームを制御するプログラムは、前記コンピュータであるCPUブロック54を、前記リーダー入り集団の前記敵集団への戦闘突入後に、入力装置10からの入力情報に基づいて戦闘していない残りの味方エージェントを移動する味方エージェント移動手段、として機能させ、又は、前記敵集団の背後に仮想境界線を設定し、前記残りの味方エージェントが前記仮想境界線を越えた場合に、前記残りの味方エージェントを自動的に前記敵集団の背後(後方)まで回り込ませる味方エージェント回込手段、として機能させる。
【0063】
つまり、図19に示す如く、右方の(a)と上方の(b)は、左側アナログスティック50を右方、上方と順に傾けたとき(又は、十字方向ボタンセット36を右、上と順に押したとき)に、後衛兵士に働く力の方向、即ち移動方向を示している。
【0064】
また、図20に示す如く、(a)、(b)と左側アナログスティック50を傾けた後、本来であれば下方向への左側アナログスティック50の操作が必要となるが、下方向への操作を必要とすると、そのままでは、現在戦闘中の集団本体の下方向の移動(即ち逃走)までもが重なって処理されてしまう。
【0065】
このときに、集団本体は動かしたくないので、左側アナログスティック50の下方向への操作は、集団本体を動かす操作のままとし、後衛兵士の回り込みに関しては、左側アナログスティック50の下方向への操作を必要としないようにする。即ち、敵集団の背後又は敵集団の内部を通るように、適度な仮想境界線を設け、左側アナログスティック50の(b)の方向への操作により、後衛兵士が移動して仮想境界線を越えた場合に、自動的に敵集団の背後又は側面に回り込み、そして、敵集団の重心に向かって移動するようにした(その後は、戦闘状態となる)。
【0066】
ここで、前記仮想境界線とは、例えば、敵集団と味方エージェント集団との双方の重心を結ぶ線に直角な線であって味方エージェント集団本体から向かって敵集団の一番後ろを通る直線、又は、敵集団の背後とはならないが、双方の重心を結ぶ線に直角な線であって、敵集団の重心を通る直線等であり、一定の攻撃ができる程度の自動の回り込み開始が可能であれば、敵集団の背後であっても、又は、集団の内部を通る線であっても問題なく、曲線であっても良い。
【0067】
また、エージェントキャラクタの拡散を防ぐ他の方法としては、例えば、集団の形状としての仮想枠を用意して、その仮想枠の中からはみ出ないようにする処理が考えられる。しかし、この方法では、現在戦闘していない集団の一部のみを移動させる(回り込みの)操作をすることは、困難となる。
【0068】
そこで、この実施例のビデオゲームを制御するプログラムは、コンピュータであるCPUブロック54を、前記敵集団の背後(後方)に仮想境界線を設定し、残りの味方エージェントが前記仮想境界線を越えるまで移動した後に、前記残りの味方エージェントを自動的に前記敵集団の背後(後方)まで回り込ませる味方エージェント回込手段、として機能させる。敵集団の背後(後方)に回り込む力においては、上記の数式の[数5]及び[数6]のリーダーキャラクタに働く力の式を、回り込ませる各エージェントに適用し、小隊重心を敵小隊重心に置き換えて、「各エージェントを敵小隊重心に向かわせる力」として求めて作用させる。
【0069】
次に、この実施例のゲーム装置2の動作について、図1〜図7のフローチャートを参照して、プレイヤの集団(リーダー入り集団:味方部隊)が移動した後、コンピュータ(CPUブロック54)側の集団(敵集団:敵部隊)と戦闘する場合について説明する。
【0070】
なお、ゲーム装置本体4には、既に、記録媒体12が挿入されたゲームプログラム、ゲームデータが、CPUブロック54内のRAM62に格納され、初期設定の処理がなされているものとする。また、説明を簡単にするために、図1〜図7のフローチャートにおいては、プレイヤの集団の動作を中心に記載して、コンピュータの集団についても同様の処理がなされるものとして、その記載を省略した。
【0071】
図1のフローチャートに示す如く、プログラムがスタートすると(ステップ102)、先ず、初期設定を行う(ステップ104)。このステップ104における初期設定は、各小隊が移動停止状態であり、各小隊の重心座標を設定する。つまり、全てのエージェントキャラクタの速度・加速度を0、北向き(例)、エージェントキャラクタの移動停止状態、ポリゴンデータ等の各種データをロードする。なお、前記移動停止状態とは、移動又は停止の状態である。
【0072】
そして、この初期設定の後は、割り込みが発生したか否かを判断する(ステップ106)。なお、この時間間隔は、上述した通り、この実施例では、垂直帰線割込2回分に相当する1フレームの時間とする。
【0073】
このステップ106がNOで、割り込みが発生していない場合には、メイン処理を行う(ステップ108)。
【0074】
このステップ108におけるメイン処理においては、例えば、左側アナログスティック50により入力され入力受信部68により、受信後に転送されたその傾き情報を、RAM62に一時記憶して随時更新する処理を行う。その他のボタンの押下による入力情報に対するその他の処理やゲーム効果音を音響制御部72に合成させるための音響処理等の処理も、ここで実行するものとする。
【0075】
一方、前記ステップ106がYESで、割り込みが発生している場合には、集団移動戦闘処理のサブルーチンを実行する(ステップ110)。
【0076】
そして、前記ステップ108でのメイン処理の後、又は、前記ステップ110での集団移動戦闘処理サブルーチンの実行後は、入力装置10の終了ボタンが押下しているか否かを判断し(ステップ112)、このステップ112がNOで、終了ボタンが押下していない場合には、前記ステップ106に戻し、一方、このステップ112がYESで、終了ボタンが押下している場合には、プログラムをエンドとする(ステップ114)。
【0077】
図1の前記ステップ110における集団移動戦闘処理のサブルーチンにおいては、図2のフローチャートに示す如く、各小隊全体で1つの小隊状態変数、各エージェントキャラクタで1つのエージェント状態変数が、RAM62で用意されている。
【0078】
図2のフローチャートに示す如く、プログラムがスタートすると(ステップ202)、先ず、全小隊が終了か否かを判断する(ステップ204)。
【0079】
このステップ204がNOで、全小隊が終了していない場合には、エージェント処理のサブルーチンを実行し(ステップ206)、そして、小隊処理のサブルーチンを実行し(ステップ208)、そして、前記ステップ204に戻す。
【0080】
一方、前記ステップ204がYESで、全小隊が終了している場合には、画面枠内に表示可能なキャラクタに対して全画面表示処理を行い(ステップ210)、プログラムをリターンする(ステップ212)。
【0081】
図2の前記ステップ206におけるエージェント処理のサブルーチンにおいては、図3のフローチャートに示す如く、プログラムがスタートすると(ステップ302)、先ず、全エージェントキャラクタが終了か否かを判断する(ステップ304)。
【0082】
このステップ304がNOで、全エージェントキャラクタが終了していない場合には、エージェント状態処理のサブルーチンを実行し(ステップ306)、次いで、反発力の演算をし(ステップ308)、さらに、上記の(2)の凝集力の演算をし(ステップ310)、そして、エージェントキャラクタが戦闘状態か否かを判断する(ステップ312)。
【0083】
このステップ312がNOで、エージェントキャラクタが戦闘状態でない場合には、プレイヤが小隊を操作しているか否かを判断し(ステップ314)、このステップ314がYESで、プレイヤが小隊を操作している場合には、左側アナログスティック50の傾きの値からエージェントキャラクタの移動速度を設定する(ステップ316)。
【0084】
一方、前記ステップ314がNOで、プレイヤが小隊を操作していない場合には、小隊の移動速度からエージェントキャラクタの移動速度を設定する(ステップ318)。
【0085】
前記ステップ316又は前記ステップ318で、エージェントキャラクタの移動速度を設定した後は、上記の(3)の移動力を演算する(ステップ320)。
【0086】
このステップ320で移動力を演算した後、重心力処理のサブルーチンを実行し(ステップ322)、また、総和加速度の演算を行い(ステップ324)、さらに、各キャラクタの最新速度及び最新位置を演算してRAMに記憶し(ステップ326)、そして、体の向き合わせ処理を行って(ステップ328)、前記ステップ304に戻す。
【0087】
前記ステップ312がYESで、エージェントキャラクタが戦闘状態の場合には、エージェント戦闘処理を実行する(ステップ330)。ここでは、例えば、□ボタン20の押下があったときに、戦闘中のエージェントキャラクタのみが、攻撃動作を開始する処理や、これによる敵エージェントキャラクタのダメージ処理、逆に、敵エージェントキャラクタから攻撃を受けたときのダメージ処理や防御処理等が実行され、その後、前記ステップ324の総和加速度の演算を実行する。
【0088】
一方、前記ステップ304がYESで、全エージェントキャラクタが終了している場合には、プログラムをリターンする(ステップ332)。
【0089】
図3の前記ステップ306におけるエージェント状態処理のサブルーチンにおいては、図4に示す如く、エージェント状態変数の変更を行うものである。
【0090】
図4のフローチャートに示す如く、プログラムがスタートすると(ステップ402)、先ず、自分の一番近い前方にいるエージェントキャラクタを探し(ステップ404)、そして、敵集団(敵エージェントキャラクタ)を発見したか否かを判断する(ステップ406)。
【0091】
このステップ406がNOで、敵集団を発見していない場合には、味方エージェント集団を発見したか否かを判断する(ステップ408)。
【0092】
このステップ408がYESで、味方エージェント集団を発見した場合には、自分の小隊が戦闘状態か否かを判断する(ステップ410)。
【0093】
このステップ410がYESで、自分の味方エージェント集団(小隊)が戦闘状態の場合には、支援待機状態とする(ステップ412)。
【0094】
前記ステップ408がNOで、味方エージェント集団を発見していない場合、又は、前記ステップ410がNOで、自分の小隊が戦闘状態でない場合には、自分の前方にエージェントキャラクタが何もいない場合であり、移動又は停止状態とする(ステップ414)。
【0095】
前記ステップ406がYESで、敵集団(敵エージェントキャラクタ)を発見した場合には、戦闘状態とする(ステップ416)。
【0096】
そして、前記ステップ412、前記ステップ414、又は、前記ステップ416の各処理後は、プログラムをリターンする(ステップ418)。
【0097】
図3の前記ステップ322における重心力処理のサブルーチンにおいては、図5に示す如く、プログラムがスタートすると(ステップ502)、先ず、リーダーキャラクタか否かを判断する(ステップ504)。
【0098】
このステップ504がYESで、リーダーキャラクタの場合には、自分の小隊(味方エージェント集団)の重心へ向かう力(上記の数式の[数5]及び[数6]により得られる力であって、厳密には自小隊の重心に向かわせる力であり、上記の(2)の凝集力とは異なる)の演算を行う(ステップ506)。
【0099】
前記ステップ504がNOで、リーダーキャラクタでない場合には、エージェントキャラクタの位置が仮想境界線を越えたか否かを判断する(ステップ508)。
【0100】
このステップ510がYESで、エージェントキャラクタの位置が仮想境界線を越えた場合には、敵の小隊(敵集団)の重心へ向かう力を演算する(ステップ510)。なお、上記同様に厳密には敵小隊の重心に向かわせる力であり、このときの演算も、上記の数式の[数5]及び[数6]を用いる。
【0101】
そして、前記ステップ506で、自分の小隊の重心に向かわせる力を演算した後、前記ステップ510で、敵の小隊(敵エージェント集団)の重心に向かわせる力を演算した後、そして、前記ステップ508がNOで、エージェントキャラクタの位置が仮想境界線を越えていない場合には、プログラムをリターンする(ステップ512)。
【0102】
図2の前記ステップ208における小隊処理のサブルーチンにおいては、図6のフローチャートに示すように、小隊状態変数の更新部分を含でいる。
【0103】
図6のフローチャートに示す如く、プログラムがスタートすると(ステップ602)、先ず、自分の小隊の重心座標を演算し(ステップ604)、全エージェントキャラクタか否かを判断する(ステップ606)。
【0104】
このステップ606がNOで、全エージェントキャラクタでない場合には、エージェントキャラクタが戦闘状態か否かを判断し(ステップ608)、このステップ608がNOで、エージェントキャラクタが戦闘状態でない場合には、前記ステップ606に戻す。
【0105】
前記ステップ608がYESで、エージェントキャラクタが戦闘状態の場合には、小隊を戦闘状態とし(ステップ610)、そして、回り込みの仮想境界線を設定する(ステップ612)。
【0106】
一方、前記ステップ606がYESで、全エージェントキャラクタの場合には、小隊を移動又は停止状態とする(ステップ614)。ここで、戦闘状態のエージェントキャラクタが1つもいない場合に、この状態となる。
【0107】
そして、前記ステップ612で、回り込みの仮想境界線を設定した後、又は、前記ステップ614で、小隊を移動停止状態とした後は、小隊移動速度設定処理のサブルーチンを実行し(ステップ616)、プログラムをリターンする(ステップ618)。
【0108】
この図6のフローチャートにおいては、いずれかのエージェントキャラクタが戦闘状態となったとき、そのエージェントキャラクタが属する小隊の状態変数を戦闘状態に変更し、敵小隊(敵集団)への回り込みの境界線を設定・記憶する。また、いずれのエージェントキャラクタも戦闘状態でなくなったときは、小隊を移動停止状態に変更する。
【0109】
図6の前記ステップ616における小隊移動速度設定処理のサブルーチンにおいては、図7のフローチャートに示す如く、プログラムがスタートすると(ステップ702)、先ず、自分の味方小隊(味方エージェント集団)の一番近い前方にいる他の敵の小隊(敵集団)を探し(ステップ704)、敵小隊(敵集団)を発見したか否かを判断する(ステップ706)。
【0110】
このステップ706がNOで、敵小隊を発見していない場合には、味方小隊を発見したか否かを判断する(ステップ708)。
【0111】
このステップ708がYESで、味方小隊を発見した場合には、この味方小隊が戦闘状態か否かを判断する(ステップ710)。
【0112】
このステップ710がYESで、味方小隊が戦闘状態の場合には、敵小隊が仮想境界線を越えたか否かを判断する(ステップ712)。
【0113】
このステップ712がYESで、味方小隊が仮想境界線を越えた場合には、敵小隊の重心へ向かう(回り込みの)移動速度を設定する(ステップ714)。
【0114】
一方、前記ステップ706がYESで、敵小隊を発見した場合には、敵小隊に接近する移動速度・方向を設定する(ステップ716)。
【0115】
前記ステップ708がNOで、味方小隊を発見しない場合には、減速停止のための移動速度・方向を設定する(ステップ718)。
【0116】
前記ステップ710がNOで、味方小隊が戦闘状態でない場合には、味方小隊に追従する移動速度・方向を設定する(ステップ720)。
【0117】
前記ステップ712がNOで、味方小隊が仮想境界線を越えていない場合には、敵小隊付近に向かう移動速度・方向を設定する(ステップ722)。前記敵小隊付近とは、例えば、その敵小隊の最右端のエージェントキャラクタの位置から境界線上の5mの位置等である。
【0118】
そして、前記ステップ714〜722の各種設定の終了後は、プログラムをリターンする(ステップ724)。
【0119】
これにより、この実施例におけるキャラクタ集団移動制御プログラム、記憶媒体及びゲーム装置は、集団の隊列を大きく乱さずに全体を表示できると同時に、適度に隊列内での追い越しや配置が入れ替わる様子を表現することができ、リーダーキャラクタを中心とした複雑な集団の移動や戦闘を、直感的に分かり易い操作により動的に楽しませることができるとともに、よりリアルに表現させることができる。
【0120】
この結果、この実施例においては、リーダー入り集団(群れ)の移動開始・移動中に、入力装置10の操作により集団の移動を直接介入操作できる。この入力装置10の操作とは、左アナログスティック50を傾けたり、十字方向ボタンセット36を押下して移動方向を入力することである。これにより、リーダーキャラクタを含めた集団(群れ)(例えば騎馬兵)の移動を、リアルに表現することができる。この集団の移動中の各キャラクタには、常に、上述の3つの力(反発力、凝集力、移動力)が作用し、所定時間(フレーム)毎に最新位置が計算される。リーダー入り集団の隊列内で適度に位置を変えて散らばりながらも、隊列を大きく乱さないという、自然な群れの移動が表現できる。
【0121】
ところで、リーダー入り集団の移動の際には、リーダーキャラクタがその集団の中央に位置する。例えば、現実の鳥の群れのように、群れの先頭に位置するキャラクタをリーダーキャラクタとして左右に移動させると、先頭の変更とともに、リーダーキャラクタも変更されるとする方法も考えられる。
【0122】
しかし、この実施例においては、特定のリーダーキャラクタの指揮に基づく、エージェントキャラクタ(兵士キャラクタ)同士の集団移動・集団戦闘を想定しているので、リーダー入り集団(群れ)の状態により、リーダーキャラクタが変更されることを想定していない。このため、リーダーキャラクタがリーダー入り集団(群れ)の中心にいても、上記の重心の考え方により、リーダーキャラクタであることが変更されることはない。
【0123】
また、リーダー入り集団の戦闘開始・戦闘中においては、戦闘中の各キャラクタの前線が形成される。左側アナログスティック50(又は、十字方向ボタンセット36)を上に傾けてリーダー入り集団が上方に向かって移動を開始した後、敵集団に遭遇して戦闘を開始し、さらに、左側アナログスティック50を上に押し続けている限り、戦闘を続ける。このとき、戦闘中のエージェントキャラクタ(前衛兵士)の非表示の前線が形成されるようにし、敵集団を通過(交錯)しないようにする。一方、左側アナログスティック50を下に傾けると、集団が逃走を開始する。この点、1対1の戦闘では、通常の処理だが、集団の場合は、処理が複雑になる。
【0124】
更に、リーダー入り集団の戦闘突入後は、戦闘中でない残りの味方エージェント集団を操作することができる。リーダー入り集団が戦闘中でないとき、後方のエージェントキャラクタ(後衛兵士)は、支援状態として、その場で待機させ、隊列を大きく崩さないように(間に敵エージェントキャラクタが入り込まないように)するとともに、入力装置10の入力操作があった場合には、敵集団の背後(後方)へ回り込めるようにする。
【0125】
敵集団の背後(後方)付近に仮想的な境界線を設定し、プレイヤが、上記の左側アナログスティック50の操作をし、残りの味方エージェント集団がこの境界線を超えるまで移動した後は、自動的に敵集団の背後(後方)まで回り込ませることができる。
【0126】
また、リーダー入り集団の移動後の戦闘時では、リーダーキャラクタは、他の味方エージェントキャラクタと同様に、索敵(戦闘中でない視野内の敵を探し、接近して戦闘)することができる。
【0127】
なお、この発明においては、リーダーキャラクタをエージェント集団の後側に位置させることも可能である。
【産業上の利用可能性】
【0128】
プレイヤに集団を直接介入操作させることを、他のゲーム装置にも適用することができる。
【図面の簡単な説明】
【0129】
【図1】キャラクタ集団制御のフローチャートである。
【図2】図1の集団移動戦闘処理のサブルーチンのフローチャートである。
【図3】図2のエージェント処理のサブルーチンのフローチャートである。
【図4】図3のエージェント状態処理のサブルーチンのフローチャートである。
【図5】図3の重心力処理のサブルーチンのフローチャートである。
【図6】図2の小隊処理のサブルーチンのフローチャートである。
【図7】図6の小隊移動速度設定処理のサブルーチンのフローチャートである。
【図8】キャラクタに作用する反発力の説明図である。
【図9】キャラクタに作用する反発力と距離との関係を示す説明図である。
【図10】キャラクタに作用する凝集力の説明図である。
【図11】キャラクタに作用する移動力の説明図である。
【図12】リーダーキャラクタを先頭とする集団の説明図である。
【図13】リーダーキャラクタを画面の中央に位置したときの説明図である。
【図14】(A)は、キャラクタに作用する力の説明図である。 (B)は、キャラクタの移動の説明図である。
【図15】前線で戦闘中の前衛兵士の移動を示す説明図である。
【図16】後衛兵士が前衛兵士のカバーに入って待機中を示す説明図である。
【図17】味方エージェント集団を支援状態に移行した説明図である。
【図18】攻撃時の各エージェントキャラクタの配置図である。
【図19】後衛兵士の移動を示す説明図である。
【図20】仮想境界線を形成した場合の後衛兵士の移動を示す説明図である。
【図21】ゲーム装置の構成図である。
【図22】入力装置の平面図である。
【図23】図22の矢印XXIIIによる入力装置の正面図である。
【図24】ゲーム装置の制御ブロック図である。
【符号の説明】
【0130】
2 ゲーム装置
8 モニタテレビ
10 入力装置
12 記憶媒体
14 媒体読取部
48 右側アナログスティック
50 左側アナログスティック
54 CPUブロック
56 SCU
58 CPU
60 ROM
62 RAM
68 入力受信部
70 画像処理部
72 音響処理部

【特許請求の範囲】
【請求項1】
ビデオゲームを制御するプログラムであって、コンピュータを、3次元仮想空間上でリーダーキャラクタを複数の味方エージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置から入力する移動方向の指定情報に基づいて敵集団の領域に移動して戦闘させる集団移動戦闘手段、前記リーダー入り集団と前記敵集団との戦闘中に前記敵集団が通過しないように前記リーダー入り集団の前線を形成する前線形成手段、前記リーダー入り集団と前記敵集団とを表示装置に表示する敵味方集団表示手段、として機能させることを特徴とするキャラクタ集団移動制御プログラム。
【請求項2】
前記コンピュータを、更に、前記リーダー入り集団の前記敵集団への戦闘突入後に、前記入力装置からの入力情報に基づいて戦闘していない残りの味方エージェントを移動する味方エージェント移動手段、として機能させることを特徴とする請求項1に記載のキャラクタ集団移動制御プログラム。
【請求項3】
前記コンピュータを、更に、前記敵集団の背後に仮想境界線を設定し、前記残りの味方エージェントが前記仮想境界線を越えた場合に、前記残りの味方エージェントを自動的に前記敵集団の背後まで回り込ませる味方エージェント回込手段、として機能させることを特徴とする請求項2に記載のキャラクタ集団移動制御プログラム。
【請求項4】
前記コンピュータを、更に、前記リーダー入り集団の移動後の戦闘時に、前記リーダーキャラクタは前記他の味方エージェントキャラクタと同様に索敵する索敵手段、として機能させることを特徴とする請求項1に記載のキャラクタ集団移動制御プログラム。
【請求項5】
請求項1乃至請求項4に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項6】
ビデオゲームを制御するゲーム装置であって、3次元仮想空間上でリーダーキャラクタを複数の味方エージェントキャラクタからなるエージェント集団に含めて形成したリーダー入り集団を入力装置から入力する移動方向の指定情報に基づいて敵集団の領域に移動して戦闘させる集団移動戦闘手段と、前記リーダー入り集団と前記敵集団との戦闘中に前記敵集団が通過しないように、前記リーダー入り集団の前線を形成する前線形成手段と、前記リーダー入り集団の前記敵集団への戦闘突入後に、戦闘していない残りの味方エージェントを移動する味方エージェント移動手段と、前記敵集団の背後に仮想境界線を設定し、前記残りの味方エージェントが前記仮想境界線を越えた場合に、前記残りの味方エージェントを自動的に前記敵集団の背後まで回り込ませる味方エージェント回込手段と、前記リーダー入り集団と前記敵集団とを表示装置に表示する敵味方集団表示手段と、を備えたことを特徴とするゲーム装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2007−21233(P2007−21233A)
【公開日】平成19年2月1日(2007.2.1)
【国際特許分類】
【出願番号】特願2006−247687(P2006−247687)
【出願日】平成18年9月13日(2006.9.13)
【分割の表示】特願2004−369471(P2004−369471)の分割
【原出願日】平成16年12月21日(2004.12.21)
【出願人】(595000427)株式会社光栄 (12)
【Fターム(参考)】