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