(57)【要約】【課題】  プレイヤによって移動制御されるリーダーキャラクタと、リーダーキャラクタに追従するように所定のアルゴリズムで移動制御される複数のサブキャラクタとが隊列を組んで、より自然に移動するようなビデオゲームを提供する。【解決手段】  ゲーム空間内に、リーダーキャラクタの現在位置を基準として複数のスロットを設定し、サブキャラクタとスロットとを対応付ける。そして、各サブキャラクタを、現在位置から対応付けられたスロットに向かうように移動制御する。リーダーキャラクタが移動すると、それに応じて各スロットも移動する。【選択図】  図１１
2005287757.tif 000002
【特許請求の範囲】
【請求項１】
第１キャラクタと複数の第２キャラクタが登場するゲームを実行するゲーム装置であって、
操作手段と、
前記操作手段による操作に基づいて前記第１キャラクタをゲーム空間内で移動制御して、当該第１キャラクタのゲーム空間内の座標である第１キャラクタ座標を設定する第１キャラクタ移動制御手段と、
前記第１キャラクタ移動制御手段によって設定される第１キャラクタ座標を基準として、ゲーム空間内に複数の移動目標座標を設定する移動目標座標設定手段と、
前記複数の第２キャラクタのそれぞれを前記複数の移動目標座標のいずれかに対応付ける対応手段と、
各前記第２キャラクタが前記対応手段によって対応付けられた移動目標座標を目指して移動するように前記複数の第２キャラクタのそれぞれを移動制御して、当該第２キャラクタのゲーム空間内の座標である第２キャラクタ座標を設定する第２キャラクタ移動制御手段とを備えるゲーム装置。
【請求項２】
前記第２キャラクタ移動制御手段は、各第２キャラクタの移動方向を、現在の第２キャラクタ座標と、前記対応手段によって当該第２キャラクタに対応付けられた移動目標座標とに基づいて決定することを特徴とする、請求項１に記載のゲーム装置。
【請求項３】
第１キャラクタ座標を基準とした前記複数の移動目標座標の相対座標を記憶する相対座標記憶手段をさらに備え、
前記移動目標座標設定手段は、前記第１キャラクタ移動制御手段によって第１キャラクタ座標が変化したときに、変化後の第１キャラクタ座標と、前記相対座標記憶手段に記憶された相対座標とに基づいて、ゲーム空間における前記複数の移動目標座標を再設定することを特徴とする、請求項１に記載のゲーム装置。
【請求項４】
前記第１キャラクタ移動制御手段によって設定される前記第１キャラクタ座標を足跡座標として記録する足跡座標記録手段と、
前記第２キャラクタのそれぞれについて、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であることを判定する第１判定手段とをさらに備え、
前記第２キャラクタ移動制御手段は、前記対応手段によって対応付けられた移動目標座標目指して移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標に基づいて移動させることを特徴とする、請求項１に記載のゲーム装置。
【請求項５】
前記第２キャラクタ移動制御手段は、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標のうち、当該第２キャラクタの現在位置に一番近い足跡座標を目指して移動させることを特徴とする、請求項４に記載のゲーム装置。
【請求項６】
前記足跡座標記録手段は、前記足跡座標を、時間情報とともに記録し、
前記第２キャラクタ移動制御手段は、前記足跡座標記録手段によって記録された足跡座標に基づいて移動している第２キャラクタが足跡座標に到達したときに、前記足跡座標記録手段によって記録された足跡座標であって、かつ当該第２キャラクタが到達した足跡座標よりも後に記録された足跡座標を目標足跡座標とし、当該目標足跡座標を目指して当該第２キャラクタを移動させることを特徴とする、請求項４に記載のゲーム装置。
【請求項７】
前記ゲーム装置は、前記足跡座標記録手段によって記録された足跡座標に基づいて移動している第２キャラクタが、前記第２キャラクタ移動制御手段によって指定された目標足跡座標に向かって移動することが不可能であることを判定する第２判定手段をさらに備え、
前記第２キャラクタ移動制御手段は、前記目標足跡座標に向かって移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標であって、かつ当該目標足跡座標を除いた足跡座標であって、かつ当該第２キャラクタがすでに到達したことのある足跡座標よりも後に記録された足跡座標を目指して当該第２キャラクタを移動させることを特徴とする、請求項６に記載のゲーム装置。
【請求項８】
前記第２キャラクタ移動制御手段は、前記足跡座標に基づいて移動している第２キャラクタが所定条件を満たしたときに、当該第２キャラクタを前記移動目標座標に向かって移動させることを特徴とする、請求項４に記載のゲーム装置。
【請求項９】
前記第２キャラクタ移動制御手段は、前記足跡座標に基づいて移動している第２キャラクタが前記対応手段によって対応付けられた移動目標座標に所定距離以内近づいたときに、当該第２キャラクタを当該移動目標座標に向かって移動させることを特徴とする、請求項４に記載のゲーム装置。
【請求項１０】
操作手段に対して電気的に接続されたコンピュータに、第１キャラクタと複数の第２キャラクタが登場するゲームを実行させるためのゲームプログラムであって、前記コンピュータを、
前記操作手段による操作に基づいて前記第１キャラクタをゲーム空間内で移動制御して、当該第１キャラクタのゲーム空間内の座標である第１キャラクタ座標を設定する第１キャラクタ移動制御手段、
前記第１キャラクタ移動制御手段によって設定される第１キャラクタ座標を基準として、ゲーム空間内に複数の移動目標座標を設定する移動目標座標設定手段、
前記複数の第２キャラクタのそれぞれを前記複数の移動目標座標のいずれかに対応付ける対応手段、および
各前記第２キャラクタが前記対応手段によって対応付けられた移動目標座標を目指して移動するように前記複数の第２キャラクタのそれぞれを移動制御して、当該第２キャラクタのゲーム空間内の座標である第２キャラクタ座標を設定する第２キャラクタ移動制御手段として機能させるためのゲームプログラム。
【請求項１１】
前記第２キャラクタ移動制御手段は、各第２キャラクタの移動方向を、現在の第２キャラクタ座標と、前記対応手段によって当該第２キャラクタに対応付けられた移動目標座標とに基づいて決定することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１２】
前記移動目標座標設定手段は、前記第１キャラクタ移動制御手段によって第１キャラクタ座標が変化したときに、変化後の第１キャラクタ座標と、第１キャラクタ座標を基準とした前記複数の移動目標座標の相対座標とに基づいて、ゲーム空間における前記複数の移動目標座標を再設定することを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１３】
前記ゲームプログラムは、前記コンピュータを、
前記第１キャラクタ移動制御手段によって設定される前記第１キャラクタ座標を足跡座標として記録する足跡座標記録手段、および
前記第２キャラクタのそれぞれについて、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であることを判定する第１判定手段としてさらに機能させるものであり、
前記第２キャラクタ移動制御手段は、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標に基づいて移動させることを特徴とする、請求項１０に記載のゲームプログラム。
【請求項１４】
前記第２キャラクタ移動制御手段は、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標のうち、当該第２キャラクタの現在位置に一番近い足跡座標を目指して移動させることを特徴とする、請求項１３に記載のゲームプログラム。
【請求項１５】
前記足跡座標記録手段は、前記足跡座標を時間情報とともに記録し、
前記第２キャラクタ移動制御手段は、前記足跡座標記録手段によって記録された足跡座標に基づいて移動している第２キャラクタが足跡座標に到達したときに、前記足跡座標記録手段によって記録された足跡座標であって、かつ当該第２キャラクタが到達した足跡座標よりも後に記録された足跡座標を目標足跡座標とし、当該目標足跡座標を目指して当該第２キャラクタを移動させることを特徴とする、請求項１３に記載のゲームプログラム。
【請求項１６】
前記ゲームプログラムは、前記足跡座標記録手段によって記録された足跡座標に基づいて移動している第２キャラクタが、前記第２キャラクタ移動制御手段によって指定された目標足跡座標に向かって移動することが不可能であることを判定する第２判定手段として前記コンピュータをさらに機能させるものであり、
前記第２キャラクタ移動制御手段は、前記目標足跡座標に向かって移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標であって、かつ当該目標足跡座標を除いた足跡座標であって、かつ当該第２キャラクタがすでに到達したことのある足跡座標よりも後に記録された足跡座標のうち、当該第２キャラクタの現在位置に一番近い足跡座標を目指して当該第２キャラクタを移動させることを特徴とする、請求項１５に記載のゲームプログラム。
【請求項１７】
前記第２キャラクタ移動制御手段は、前記足跡座標に基づいて移動している第２キャラクタが所定条件を満たしたときに、当該第２キャラクタを前記移動目標座標に向かって移動させることを特徴とする、請求項１３に記載のゲームプログラム。
【請求項１８】
前記第２キャラクタ移動制御手段は、前記足跡座標に基づいて移動している第２キャラクタが前記対応手段によって対応付けられた移動目標座標に所定距離以内近づいたときに、当該第２キャラクタを当該移動目標座標に向かって移動させることを特徴とする、請求項１３に記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲーム装置に関し、特に、プレイヤが操作するキャラクタに追従するように他の複数のキャラクタを移動させるゲームに関する。
【背景技術】
【０００２】
特許文献１には、従キャラクタが主キャラクタに追従するゲーム装置が開示されている。
特許文献２には、複数のキャラクタを群をなして移動させるゲーム装置が開示されている。
【特許文献１】特開２００２−８５８４５号公報
【特許文献２】特開２０００−１７２８６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
特許文献１に開示されたゲーム装置では、従キャラクタが１つだけであったため、主キャラクタの移動に従って複数の従キャラクタを移動させることができなかった。
特許文献２に開示されたゲーム装置では、個々のキャラクタが独立して移動方向を決定し、その結果としてどこを目標に向かうかが不確定であるため、キャラクタを隊列を組んで移動させたり、隊列内で並び替えたりすることができなかった。
また、特許文献１および特許文献２に開示されたゲーム装置では、キャラクタが地形等の障害物に阻まれて移動できなくなったときに、回避することが考慮されていない。また、回避ルートを個別状況（キャラクタの位置やその周辺の地形の情報等）に応じてその都度判断して決定しようとすると、処理の負担が大きくなってしまう。
そこで、本発明では、上記の問題点のうちの少なくとも１つを解決しつつ、複数のキャラクタを自然に移動制御させることができるゲーム装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記の目的を達成するために本発明は以下の構成を採用した。なお、括弧内の参照符号や図番号や補足説明は、本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００５】
第１の発明は、第１キャラクタ（リーダーキャラクタ）と複数の第２キャラクタ（サブキャラクタ）が登場するゲームを実行するゲーム装置である。本ゲーム装置は、操作手段（２０）と、第１キャラクタ移動制御手段（２２，Ｓ１８）と、移動目標座標設定手段（２２，Ｓ４０）と、対応手段（図１０，７８）と、第２キャラクタ移動制御手段（２２，Ｓ２０）とを備える。
第１キャラクタ移動制御手段は、前記操作手段による操作に基づいて前記第１キャラクタをゲーム空間内で移動制御して、当該第１キャラクタのゲーム空間内の座標である第１キャラクタ座標を設定する。移動目標座標設定手段は、前記第１キャラクタ移動制御手段によって設定される第１キャラクタ座標に対応して、ゲーム空間内に複数の移動目標座標（スロット座標）を設定する（図５）。対応手段は、前記複数の第２キャラクタのそれぞれを前記複数の移動目標座標のいずれかに対応付ける。第２キャラクタ移動制御手段は、各前記第２キャラクタが前記対応手段によって対応付けられた移動目標座標を目指して移動するように前記複数の第２キャラクタのそれぞれを移動制御して、当該第２キャラクタのゲーム空間内の座標である第２キャラクタ座標を設定する（図１１）。なお、第２キャラクタ移動制御手段は、所定のアルゴリズムに基づいて、第２キャラクタが移動目標座標を目指して移動するように制御する。ここで、所定のアルゴリズムとは、移動目標座標に向かって直線的に移動させるものであってもよいし、直線以外の経路によって移動させるものであってもよい。移動目標座標への経路を計算して、その経路に沿って移動させるものであってもよい。また、障害物を回避しつつ移動目標座標に向かうようなものであってもよい。
【０００６】
第２の発明は、第１の発明において、前記第２キャラクタ移動制御手段は、各第２キャラクタの移動方向を、現在の第２キャラクタ座標と、前記対応手段によって当該第２キャラクタに対応付けられた移動目標座標とに基づいて決定することを特徴とする。
【０００７】
第３の発明は、第１の発明において、前記ゲーム装置は、前記第１キャラクタ座標を基準とした前記複数の移動目標座標の相対座標を記憶する相対座標記憶手段（１６，図６）をさらに備える。また、前記移動目標座標設定手段は、前記第１キャラクタ移動制御手段によって第１キャラクタ座標が変化したときに、変化後の第１キャラクタ座標と、前記相対座標記憶手段に記憶された相対座標とに基づいて、ゲーム空間における前記複数の移動目標座標を再設定することを特徴とする。
【０００８】
第４の発明は、第１の発明において、前記ゲーム装置は、前記第１キャラクタ移動制御手段によって設定される前記第１キャラクタ座標を足跡座標として記録する足跡座標記録手段（２２，Ｓ３６）と、前記第２キャラクタのそれぞれについて、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であることを判定する第１判定手段（２２，Ｓ５２）とをさらに備える。また、前記第２キャラクタ移動制御手段は、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標に基づいて移動させることを特徴とする（図１５，図１６）。なお、第１判定手段としては、より具体的に、前記第２キャラクタ移動制御手段によって決定された移動方向に障害物（固定オブジェクト、地形オブジェクト等）が存在することを検出するものであってもよい。なお、足跡座標記録手段は、新しい足跡座標が優先的に記録されるように蓄積記憶するようにしてもよい。このとき、所定数の足跡座標を記録しても良いし、所定時間内の足跡座標を蓄積記憶するようにしてもよい。
【０００９】
第５の発明は、第４の発明において、前記第２キャラクタ移動制御手段は、前記対応手段によって対応付けられた移動目標座標を目指して移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された前記足跡座標のうち、当該第２キャラクタの現在位置に一番近い足跡座標を目指して移動させることを特徴とする（図１５）。
【００１０】
第６の発明は、第４の発明において、前記足跡座標記録手段は、前記足跡座標を、時間情報（フレーム番号）とともに記録する（図１４）。時間情報は、当該足跡座標を記録した時間または当該足跡座標に第１キャラクタが存在したときの時間を示す情報である。また、前記第２キャラクタ移動制御手段は、前記足跡座標記録手段によって記録された足跡座標に基づいて移動している第２キャラクタが足跡座標に到達したときに、前記足跡座標記録手段によって記録された足跡座標であって、かつ当該第２キャラクタが到達した足跡座標よりも後に記録された足跡座標のうちの１つを目標足跡座標とし、当該目標足跡座標を目指して当該第２キャラクタを移動させることを特徴とする（図１８）。
【００１１】
第７の発明は、第６の発明において、前記ゲーム装置は、前記足跡座標記録手段によって記録された足跡座標に基づいて移動している第２キャラクタが、前記第２キャラクタ移動制御手段によって指定された目標足跡座標に向かって移動することが不可能であることを判定する第２判定手段（２２，Ｓ７６）をさらに備える。また、前記第２キャラクタ移動制御手段は、前記目標足跡座標に向かって移動することが不可能であると判定された第２キャラクタを、前記足跡座標記録手段によって記録された足跡座標であって、かつ当該目標足跡座標を除いた足跡座標であって、かつ当該第２キャラクタがすでに到達したことのある足跡座標よりも後に記録された足跡座標のうちの１つを目指して当該第２キャラクタを移動させることを特徴とする。
【００１２】
第８の発明は、第４の発明において、前記第２キャラクタ移動制御手段は、前記足跡座標に基づいて移動している第２キャラクタが所定条件を満たしたときに、当該第２キャラクタを前記移動目標座標に向かって移動させることを特徴とする。なお、所定条件とは、例えば、対応付けられた移動目標座標を目指して移動することが可能になったことである。例えば、移動目標座標に直線的に向かうことが可能になったこと（すなわち、現在座標と移動目標座標の間に障害物がないこと）であってもよいし、他のアルゴリズムによって移動目標座標を目指して移動することが可能になったことを判定してもよい。
【００１３】
第９の発明は、第４の発明において、前記第２キャラクタ移動制御手段は、前記足跡座標に基づいて移動している第２キャラクタが前記対応手段によって対応付けられた移動目標座標に所定距離以内近づいたときに、当該第２キャラクタを当該移動目標座標に向かって移動させることを特徴とする（図１７）。
【００１４】
第１０の発明は、操作手段（２０）に対して電気的に接続されたコンピュータ（２２）に、第１キャラクタと複数の第２キャラクタが登場するゲームを実行させるためのゲームプログラムである。このゲームプログラムは、前記コンピュータを、第１キャラクタ移動制御手段（２２，Ｓ１８）、移動目標座標設定手段（２２，Ｓ４０）、対応手段（図１０，７８）、および第２キャラクタ移動制御手段（２２，Ｓ２０）として機能させるためのものである。
第１キャラクタ移動制御手段は、前記操作手段による操作に基づいて前記第１キャラクタをゲーム空間内で移動制御して、当該第１キャラクタのゲーム空間内の座標である第１キャラクタ座標を設定する。移動目標座標設定手段は、前記第１キャラクタ移動制御手段によって設定される第１キャラクタ座標を基準として、ゲーム空間内に複数の移動目標座標（スロット座標）を設定する。対応手段は、前記複数の第２キャラクタのそれぞれを前記複数の移動目標座標のいずれかに対応付ける。第２キャラクタ移動制御手段は、各第２キャラクタが前記対応手段によって対応付けられた移動目標座標を目指して移動するように前記複数の第２キャラクタのそれぞれを移動制御して、当該第２キャラクタのゲーム空間内の座標である第２キャラクタ座標を設定する（図１１）。
【発明の効果】
【００１５】
上記第１の発明によれば、第１キャラクタを移動操作すれば、第２キャラクタが第１キャラクタ座標に基づいて自律的に移動制御されるため、複数のキャラクタを同時に移動制御することができる。また、第２キャラクタは移動目標座標に必ず位置するのではなくて、当該移動目標座標を目標として自律的に移動制御するため、第２キャラクタは個々の状況・状態に応じて移動することとなり、個々の第２キャラクタがそれぞれ意思を持っているかのような自然な移動制御を実現できる。また、移動目標を設定できるため、特定の第２キャラクタを所望の場所に移動させるような制御が可能である。
【００１６】
上記第２の発明によれば、第２キャラクタをそれぞれの移動目標座標に最短の移動距離で向かわせることができる。
【００１７】
上記第３の発明によれば、複数の移動目標座標の位置関係を一定に保ちつつ移動目標座標を設定できるため、複数の第２キャラクタが隊列を組んで移動するような移動制御ができる。
【００１８】
上記第４の発明によれば、第２キャラクタが移動目標座標に向かって移動できない状況になったときに（地形等に衝突する場合等）、それを回避する制御を自動的に行うことができる。
【００１９】
上記第５の発明によれば、効率的に回避制御をおこなうことができる。
【００２０】
上記第６の発明によれば、移動ができなくなって移動目標座標からはなれてしまった第２キャラクタが効率的に移動目標座標に近づくことができる。
【００２１】
上記第７の発明によれば、第２キャラクタが目標足跡座標に向かって移動できない状況になったときに、それを回避する制御を自動的に行うことができる。
【００２２】
上記第８および第９の発明によれば、移動ができなくなって移動目標座標からはなれてしまった第２キャラクタを隊列に復帰させることができる。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明の一実施形態に係るゲームシステムの構成を示す外観図であり、図２はそのブロック図である。図１および図２に示すように、ゲームシステム１０は、ＴＶモニタ１２、ゲーム機本体１４、ＤＶＤ−ＲＯＭ１６、外部メモリカード１８、コントローラ２０を備える。ＤＶＤ−ＲＯＭ１６および外部メモリカード１８は、ゲーム機本体１４に着脱自在に装着される。コントローラ２０は、通信ケーブルを介して、ゲーム機本体１４に設けられた複数（図１では４つ）のコントローラポート用コネクタのいずれかに接続される。ＴＶモニタ１２は、ＡＶケーブル等によってゲーム機本体１４と接続される。なお、ゲーム機本体１４とコントローラ２０との通信は無線通信であってもよい。
【００２４】
ＤＶＤ−ＲＯＭ１６は、ゲームプログラムやゲームデータ等を固定的に記憶している。プレイヤがゲームをプレイするとき、ＤＶＤ−ＲＯＭ１６はゲーム機本体１４に装着される。なお、ゲームプログラム等を記憶する手段として、ＤＶＤ−ＲＯＭ１６の代わりに例えばＣＤ−ＲＯＭ、ＭＯ、メモリカード、ＲＯＭカートリッジ等の外部記憶媒体を用いてもよい。
【００２５】
外部メモリカード１８は、例えばフラッシュメモリ等の書き換え可能な記憶媒体によって構成され、例えばゲームのセーブデータ等のデータを記録する。
【００２６】
ゲーム機本体１４は、ＤＶＤ−ＲＯＭ１６に記録されているプログラムを読み出し、読み出したプログラムに応じた処理を行う。
【００２７】
コントローラ２０は、プレイヤがゲーム操作に関する入力を行うための入力装置であり、複数の操作スイッチを有する。コントローラ２０は、プレイヤによる操作スイッチの押圧等に応じて操作データをゲーム機本体１４に出力する。
【００２８】
ＴＶモニタ１２は、ゲーム機本体１４から出力された画像データを画面に表示する。
【００２９】
次に、図２を参照してゲーム機本体１４の構成について説明する。図２において、ゲーム機本体１４には、ＣＰＵ２２およびそれに接続されるメモリコントローラ４０が設けられる。さらにゲーム機本体１４において、メモリコントローラ４０は、ＧＰＵ（グラフィックスプロセッシングユニット）２４と、メインメモリ３４と、ＤＳＰ３６と、各種インターフェース（Ｉ／Ｆ）４２、４４、４６、４８、５２とに接続される。メモリコントローラ４０は、これら各構成要素間のデータ転送を制御する。
【００３０】
ゲーム開始の際、まず、ディスクドライブ５４は、ゲーム機本体１４に装着されたＤＶＤ−ＲＯＭ１６を駆動する。ＤＶＤ−ＲＯＭ１６に記憶されているゲームプログラムは、ディスクＩ／Ｆ５２およびメモリコントローラ４０を介して、メインメモリ３４に読み込まれる。このメインメモリ３４上のプログラムをＣＰＵ２２が実行することによってゲームが開始される。ゲーム開始後、プレイヤは、操作スイッチを用いてコントローラ２０に対してゲーム操作等の入力を行う。プレイヤによる入力に従い、コントローラ２０は、操作データをゲーム機本体１４に出力する。コントローラ２０から出力される操作データは、コントローラＩ／Ｆ４２およびメモリコントローラ４０を介してＣＰＵ２２に供給される。ＣＰＵ２２は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、ＧＰＵ２４やＤＳＰ３６が用いられる。また、サブメモリ３８は、ＤＳＰ３６が処理を行う際に用いられる。
【００３１】
ＧＰＵ２４は、ジオメトリユニット２６およびレンダリングユニット２８を含み、画像処理専用のメモリに接続されている。この画像処理専用メモリは、例えばカラーバッファ３０やＺバッファ３２として利用される。ジオメトリユニット２６は、仮想三次元空間であるゲーム空間に置かれた物体や図形に関する立体モデル（例えばポリゴンで構成されるオブジェクト）の座標についての演算処理を行うものであり、例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標から視点座標系やスクリーン座標系の座標への変換を行うものである。レンダリングユニット２８は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについて各ピクセルごとのカラーデータ（ＲＧＢデータ）をカラーバッファ３０に書き込むことによって、ゲーム画像を生成するためのものである。また、カラーバッファ３０は、レンダリングユニット２８によって生成されたゲーム画像データ（ＲＧＢデータ）を保持するために確保されたメモリ領域である。Ｚバッファ３２は、３次元の視点座標から２次元のスクリーン座標に変換する際に失われる視点からの奥行情報を保持するために確保されたメモリ領域である。ＧＰＵ２４は、これらバッファを用いてＴＶモニタ１２に表示すべき画像データを生成し、メモリコントローラ４０およびビデオＩ／Ｆ４４を介して、この画像データをＴＶモニタ１２に適宜出力する。なお、ゲームプログラム実行時にＣＰＵ２２において生成される音声データは、メモリコントローラ４０からオーディオＩ／Ｆ４８を介してスピーカ６０に出力される。なお本実施形態では、画像処理専用のメモリを別途設けたハードウェア構成としたが、これに限らず例えばメインメモリ３４の一部を画像処理用のメモリとして利用する方式（ＵＭＡ：Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を使うようにしてもよい。
【００３２】
次に、ゲームプログラムに基づいてＣＰＵ２２によって実行されるゲーム処理の具体例を説明する。
【００３３】
本実施形態で実行されるゲームは、仮想ゲーム空間中のキャラクタをプレイヤがコントローラ２０を用いて移動させて遊ぶものである。なお、ゲーム空間には、プレイヤが操作するキャラクタ（以下、リーダーキャラクタと称す）以外にも、コンピュータによって所定のアルゴリズムに基づいて移動制御される複数のキャラクタ（以下、サブキャラクタと称す）が存在する。これら複数のサブキャラクタは、所定の隊列を組んでリーダーキャラクタに追従するように移動制御される。
【００３４】
図３は、リーダーキャラクタとそれに追従する複数のサブキャラクタとが隊列を組んで移動する様子を示している。ただし実際には図３に示すような整った隊列を組んで移動するわけではなく、各サブキャラクタは個別に移動制御されるため、サブキャラクタ間の移動速度の差や地形の影響などによって、隊列は図４のようになる。なお、リーダーキャラクタが移動を停止してから十分な時間が経過すれば、サブキャラクタは基本的には図３のような位置で停止することになる。
【００３５】
上記のようなサブキャラクタの移動は、ゲーム空間内に複数の移動目標地点（以下、スロットと称す）を設定し、各サブキャラクタに対して１つのスロットを対応させ、各サブキャラクタを対応するスロットに向かって移動させることによって実現される。各スロットはリーダーキャラクタの位置を基準としてその周辺に設定されるものであり、リーダーキャラクタが移動すると、それに応じて各スロットも移動する。
【００３６】
図５は、リーダーキャラクタと複数のスロット（スロット１〜スロット３５）との位置関係を示したものである。リーダーキャラクタの向き（進行方向）とは逆側に、スロット１〜スロット３５が図５のように配置される。なお、本実施形態では、スロット１〜３５の座標は、リーダーキャラクタを基準としたキャラクタ座標系で定義されている。図６は、キャラクタ座標系における各スロットの座標を示している。図６で定義される座標は、キャラクタ座標系における座標であるとともに、空間座標系におけるリーダーキャラクタの位置を基準とする相対座標である。すなわち、リーダーキャラクタがゲーム空間において移動したり向きを変化したとき（姿勢を変化したとき）には、それに応じて、各スロットの座標が変更される。なお、本実施例では、キャラクタ座標系においてスロットのＹ座標値は常に０としているため、図６の例では相対座標をキャラクタ座標系のＸｐ軸とＺｐ軸とでのみ規定しているが、Ｘｐ軸とＹｐ軸とＺｐ軸とで規定しても構わない。この相対座標は、ゲームデータとしてＤＶＤ−ＲＯＭ１６に予め記憶されている。なお、相対座標をプレイヤの好みに応じて変更したり、または、ゲームの進行状態に応じて変化させるようにしてもよい。
【００３７】
ゲーム空間（空間座標系）でのスロットの座標は、リーダーキャラクタの座標・向き，スロットの相対座標，および地面の起伏に基づいて決定される。以下、スロット座標の決定方法の例を説明する。
【００３８】
まず、空間座標系の３つの軸を図７のようにＸｇ，Ｙｇ，Ｚｇとし、リーダーキャラクタの姿勢行列を（ｅｘ，ｅｙ，ｅｚ）（ただし、ｅｘはＺｐ軸方向の単位ベクトルであり、ｅｙはＹｐ軸方向の単位ベクトルであり、ｅｚはＺｐ軸方向の単位ベクトルである）とする。Ｘｐ，Ｙｐ，Ｚｐはキャラクタ座標系のＸＹＺ軸の空間座標系における軸である。
【００３９】
この場合、リーダーキャラクタの座標をＬ＝（ＬＸｇ，ＬＹｇ，ＬＺｇ）とし、スロット１の座標Ｓｇ１＝（ＳＸｇ１，ＳＹｇ１，ＳＺｇ１）とすると、ＳＸｇ１およびＳＺｇ１は、以下の式で算出される。
Ｓｇ１＝ＳＸｐ１・ｅｘ＋ＳＺｐ１・ｅｚ＋Ｌ  ・・・（１）
また、ＳＹｇ１は、上式（１）で算出されたＳＸｇ１，ＳＹｇ１に対応する地面のＹｇ座標値に一致する。
【００４０】
スロット２〜３５の座標についてもスロット１と同様に算出される。図８は、ゲーム空間を横から見た図であり、各スロットの座標がリーダーキャラクタの座標と姿勢に応じて決定される様子を模式的に示す図である。上式（１）に基づいて各スロットのＸｐ，Ｚｐ座標が設定され、対応する地面の表面上にスロットが配置される。
【００４１】
なお、Ｙｇ軸の方向とｅｙの方向が必ず一致する場合、すなわちリーダーキャラクタがＹｇ軸回りにしか回転しない場合には、より簡単にスロット座標を算出することができる。この場合を表したのが図９であり、Ｙｇ軸およびｅｙの方向は紙面に垂直な方向である。
この場合、図９に示すように、ｅｚとＺｇ軸とのなす角をθとすると、
ｅｘ＝（ｃｏｓθ，０，−ｓｉｎθ）
ｅｚ＝（ｓｉｎθ，０，ｃｏｓθ）
ｅｙ＝（０，１，０）
となる。これらの値を上式（１）に代入すると、例えばスロット１の座標Ｓｇ１＝（ＳＸｇ１，ＳＹｇ１，ＳＺｇ１）のＳＸｇ１およびＳＺｇ１については、
ＳＸｇ１＝ＳＸｐ１ｃｏｓθ＋ＳＺｐ１ｓｉｎθ＋ＬＸｇ
ＳＺｇ１＝−ＳＸｐ１ｓｉｎθ＋ＳＺｐ１ｃｏｓθ＋ＬＹｇ
と算出することができる。ＳＹｇ１については前述のように地形に応じて決定される。
【００４２】
スロット２〜３５の座標についてもスロット１と同様に算出される。
【００４３】
次に、各スロットと各サブキャラクタとの関係について説明する。
【００４４】
図１０に示すように、各サブキャラクタには、移動目標地点となるスロット番号が個別に対応付けられている。図１０の例では、例えばサブキャラクタ番号１にはスロット番号１が対応付けられており、サブキャラクタ番号２にはスロット番号２が対応付けられており、サブキャラクタ番号３にはスロット番号３が対応付けられている。この結果、図１１に示すように、サブキャラクタ番号が１であるサブキャラクタ（以下、単にサブキャラクタ１と称す）はスロット１を目指して移動し、サブキャラクタ２はスロット２を目指して移動し、サブキャラクタ３はスロット３を目指して移動する。
【００４５】
なお、図１０の例ではキャラクタ番号＝スロット番号となっているが、これは単なる一例であって、対応関係は任意に設定することができる。例えば、ゲーム中でリーダーキャラクタの仲間になった順番でサブキャラクタにスロット番号を割り当てても構わないし、サブキャラクタの特性（例えば体の色など）に応じて、例えば同色のサブキャラクタ同士が隣接するようにスロット番号を割り当てても構わない。また、図１０の対応関係は、必ずしも固定でなくてもよい。本実施形態では、後述する並び替え処理により、ゲーム中にサブキャラクタとスロットとの対応関係を適宜に変更可能である。
【００４６】
以上のように、各サブキャラクタは、自身に対応付けられたスロットを目指してそれぞれ移動することにより、図１２のようにリーダーキャラクタに追従して所定の隊列を組んでゲーム空間を移動することとなる。
【００４７】
なお、上述のような制御により各サブキャラクタがゲーム空間を移動しているときに、図１３に示すように、壁などの障害物によってサブキャラクタの進行が妨げられる場合がある。図１３の例では、サブキャラクタ１６，２５，２６は、それぞれスロット１６，２５，２６を目指して移動しようとするが、サブキャラクタとスロットとの間に障害物（地形）が存在するため、このままではリーダーキャラクタに追従することはできない。そこで本実施形態では、このような事態を回避するための工夫が設けられている。簡単に言えば、サブキャラクタが障害物に衝突したときには、そのサブキャラクタをスロットの方向に移動させることをやめ、リーダーキャラクタが通った軌跡を辿らせるようにその移動を制御する。リーダーキャラクタの軌跡を辿る限り、その進路を障害物に阻まれることはないからである。以下、この障害物を回避する方法についてより具体的に説明する。
【００４８】
本実施形態では、図１４に示すように、リーダーキャラクタの現在位置（空間座標系における座標）を所定のタイミングで順次、リーダーキャラクタの「足跡」として蓄積していく。より具体的には、例えば所定フレームに１度（例えば、１０フレームに１度）のタイミングで足跡を記憶する。このときに記憶するデータ（以下、足跡データと称す）には、その時点のフレーム番号とリーダーキャラクタの座標が含まれる。
【００４９】
なお、本実施形態では、前回に足跡を記憶してから１０フレームが経過した時点でリーダーキャラクタがその足跡から一定距離以上離れていない場合には、新たな足跡を記憶しないようにしている。これにより、あまり意味のない足跡データが蓄積されてしまうことを防止することができ、記憶領域を有効に活用することができる。なお、足跡データを無限に蓄積することは不可能なので、一定以上古い足跡データについては記憶領域から削除する必要がある。例えば、蓄積している足跡データの数が一定数以上になった場合には、新たな足跡データを記憶する際に、蓄積されている足跡データの中から最も古い（すなわちフレーム番号が最も小さい）足跡データを記憶領域から削除するようにすればよい。以下、蓄積されている足跡のうち、最も新しい足跡を足跡Ｓｎと称し、その足跡Ｓｎからｋ番目に新しい足跡を足跡Ｓｎ−ｋと称する。
【００５０】
サブキャラクタが図１３のように障害物にその進路を阻まれた場合、進路を阻まれたサブキャラクタの移動目標が、そのサブキャラクタの現在位置に最も近い足跡へと変更される。図１５を参照してより具体的に説明すると、サブキャラクタ１６は、壁にぶつかると、スロット１６から、サブキャラクタ１６の現在位置に最も近い足跡、つまり足跡Ｓｎ−４に移動目標を変更する。同様に、サブキャラクタ２５は、サブキャラクタ２５に最も近い足跡Ｓｎ−５に移動目標を変更し、サブキャラクタ２６は、サブキャラクタ２６に最も近い足跡Ｓｎ−５に移動目標を変更する。
【００５１】
サブキャラクタが移動目標の足跡に到達すると、この足跡よりも新しい足跡（フレーム番号が新しい足跡）にその移動目標を変更する。例えば、図１６のように、サブキャラクタ１６が足跡Ｓｎ−４に到着すると、サブキャラクタ１６の移動目標が足跡Ｓｎ−３に変更される。さらに、サブキャラクタ１６が足跡Ｓｎ−３に到着すると、サブキャラクタ１６の移動目標が足跡Ｓｎ−２に変更される。これを繰り返すことによって、サブキャラクタ１６はリーダーキャラクタの移動軌跡を辿ってリーダーキャラクタに追従することができる。サブキャラクタ２５，２６についても同様である。
【００５２】
なお、サブキャラクタがリーダーキャラクタの移動軌跡を辿っている間（すなわち、足跡を辿っている間）、サブキャラクタの現在座標とそのサブキャラクタに対応するスロットの座標との距離の判定が行われ、サブキャラクタが、対応するスロットから一定距離以内に近づいた場合には、サブキャラクタの移動目標が足跡からスロットに変更される。その結果、図１７に示すように、各サブキャラクタは最終的に、自身に対応付けられたスロットを目指して移動し、本来の位置でリーダーキャラクタに追従することができる。
【００５３】
なお、サブキャラクタが足跡を辿る場合には、蓄積された順番に従って足跡を辿って行くのが普通であるが、本実施形態では、サブキャラクタを本来のスロットにできるだけ早く到達させるべく、到達した足跡よりも新しい足跡の中から、到達した足跡に対して最も近い足跡を次の移動目標に変更する。例えば、図１８のようにサブキャラクタが足跡Ｓｎ−７に到達した場合に、次の移動目標を単純に足跡Ｓｎ−６に設定するのではなく、足跡Ｓｎ−７よりも新しい足跡、すなわち足跡Ｓｎ〜Ｓｎ−６の中で、足跡Ｓｎ−７から最も近い足跡、すなわち足跡Ｓｎ−４を次の移動目標として設定する。このようなショートカットによって、蓄積された順番に従って足跡を辿って行く場合に比べて、本来の目標スロットにより早く復帰することができる。
【００５４】
なお、上記のようなショートカットを行う場合、その途中で障害物に進行を妨げられてしまう可能性もある。例えば図１８において、足跡Ｓｎ−７と足跡Ｓｎ−４の間に壁が存在する場合がそれに該当する。このような場合には、移動目標を別の足跡に変更するか、または、一旦足跡Ｓｎ−７（到達済みの最新の足跡）に戻って蓄積された順番に従って足跡を辿って行くことにより、リーダーキャラクタの追跡を続けることができる。本実施形態では、サブキャラクタ毎に、すでに到達した足跡のうち最も新しい足跡のフレーム番号（図１８の例では足跡Ｓｎ−７のフレーム番号ｆｎ−７）を記憶しておき、ショートカット中に障害物に進路を阻まれた場合には、そのフレーム番号に基づいて、すでに到達した足跡よりも新しい足跡（図１８の例では足跡Ｓｎ〜Ｓｎ−６）のうち、現在の移動目標（図１８の例ではＳｎ−４）を除いて、サブキャラクタの現在位置から最も近い足跡を次の移動目標として設定する（図１８の例ではＳｎ−３）。これにより、ショートカット中に障害物に進路を阻まれた場合にも、引き続きリーダーキャラクタを追跡することができる。
【００５５】
次に、ゲームプログラムに基づいてＣＰＵ２２によって実行されるゲーム処理についてより詳細に説明する。
【００５６】
図１９は、メインメモリ３４のメモリマップである。リーダーキャラクタデータ領域７０には、リーダーキャラクタの現在位置の座標（空間座標系）と、リーダーキャラクラの姿勢ベクトル（空間座標系）が記憶される。サブキャラクタデータ領域７１には、サブキャラクタ毎に、サブキャラクタの現在位置の座標（空間座標系）と、回避フラグと、目標足跡（足跡データ領域に記憶される足跡データのうちの１つを指定するデータ）と、特性と、すでに到達した足跡のうちの最新の足跡のフレーム番号とが記憶される。足跡データ領域７４には、複数の足跡データ（図の例では１０個の足跡データ）が蓄積される。各足跡データには、座標（空間座標系）とフレーム番号が含まれる。スロットデータ領域７６には、スロット毎に、スロット座標（空間座標系）が記憶される。このスロット座標は、前述のように、図６に示したような相対座標等に基づいて決定されるものである。スロット割り当て領域７８には、サブキャラクタ毎に、図１０に示したようなサブキャラクタとスロット番号との対応関係が記憶されている。
【００５７】
図２０〜図２４は、ゲームプログラムに基づいてＣＰＵ２２によって実行されるゲーム処理の流れを示すフローチャートである。
【００５８】
図２０において、まずＣＰＵ２２はゲーム空間を設定する（Ｓ１０）。より具体的には、リーダーキャラクタおよびサブキャラクタをゲーム空間の初期位置に配置する。そして、全サブキャラクタの回避フラグをオフにし（Ｓ１２）、足跡タイマーのカウントを開始する（Ｓ１４）。回避フラグは、サブキャラクタが壁等の障害物によってスロットへの移動を妨げられたときにオンにされるフラグであって、障害物を回避するために足跡を辿っている最中であるかどうかを表すフラグである。足跡タイマーは、足跡データを１０フレーム毎に記憶するためのタイマーである。
【００５９】
次にＣＰＵ２２は、コントローラ２０からの操作入力を検出する（Ｓ１６）。次に、ＣＰＵ２２は、リーダーキャラクタの移動制御処理を行う（Ｓ１８）。以下、このリーダーキャラクタ移動制御処理の詳細を図２１を参照して説明する。
【００６０】
図２１において、ＣＰＵ２２は、まず操作入力に基づいてリーダーキャラクタの移動制御を行う（Ｓ３０）。より具体的には、操作入力に基づいてリーダーキャラクタの座標および姿勢ベクトルを更新する。続いてＣＰＵ２２は、足跡タイマーのカウント値が所定フレーム（例えば、１０フレーム）を超えたかどうかを判定し（Ｓ３２）、１０フレームを超えた場合は、リーダーキャラクタの現在の座標と最新の足跡の座標との距離が所定値以上かどうかを判断する。なお、最新の足跡の座標は、メインメモリ３４の足跡データ領域７４に含まれている複数の足跡データのうち、フレーム番号が最も大きいものから取得する。
【００６１】
ステップＳ３２でＮｏの場合、または、ステップＳ３４でＮｏの場合には、足跡データを記憶することなくリーダーキャラクタ移動制御処理を終了する。一方、ステップＳ３４でＹｅｓの場合は、リーダーキャラクタの現在の座標と現在のフレーム番号とを新たな足跡データとして足跡データ領域７４に記憶する（Ｓ３６）。このとき、足跡データ領域７４にすでに１０個の足跡データが記憶されている場合には、フレーム番号が最も小さい足跡データを記憶している領域に新しい足跡データを上書きする。そして、足跡タイマーをリセット（再カウントを開始）し（Ｓ３８）、リーダーキャラクタ移動制御処理を終了する。
【００６２】
図２０において、リーダーキャラクタ移動制御処理が終了すると、ＣＰＵ２２は、サブキャラクタ移動制御処理を行う（Ｓ２０）。以下、このサブキャラクタ移動制御処理の詳細を図２２を参照して説明する。
【００６３】
図２２において、ＣＰＵ２２は、まず各スロットの座標（空間座標系）を、図７〜図９を参照して説明した方法で計算し、メインメモリ３４のスロットデータ領域７６に記憶する。すなわち、ＤＶＤ−ＲＯＭ１６に記憶されている図６に示したような各スロットの相対座標と、リーダーキャラクタの現在の座標および姿勢ベクトルに基づいて、各スロットの座標（空間座標系）を計算する。
【００６４】
以下で説明する図２２のステップＳ４２〜ステップＳ５８、および図２３のステップＳ６２〜ステップＳ８０の処理は、各サブキャラクタを処理対象として、サブキャラクタの数だけ順次繰り返される。以下では、代表例として、サブキャラクタ１を処理対象とする場合について説明する。
【００６５】
まずＣＰＵ２２は、サブキャラクタ１の回避フラグがオンかどうかを判断し（Ｓ４２）、オンである場合は図２３のステップＳ６２に進み、オフである場合は図２２のステップＳ４４に進む。なお、回避フラグがオンである場合の処理については後述し、以下では回避フラグがオフである場合の動作についてまず説明する。
【００６６】
ステップＳ４２で、サブキャラクタ１の回避フラグがオフである場合、ＣＰＵ２２は、まずサブキャラクタ１の現在位置から見た目標スロット（スロット割り当て領域７８においてサブキャラクタ１に対応付けられたスロット）の方向を計算する（Ｓ４４）。この計算には、サブキャラクタ１の座標と目標スロットの座標が用いられる。次にＣＰＵ２２は、計算した方向へサブキャラクタ１を所定距離だけ移動させる（Ｓ４６）。より具体的には、サブキャラクタ１の現在の座標を、ステップＳ４４で計算した方向へサブキャラクタ１の移動速度に応じた量だけシフトさせる。次にＣＰＵ２２は、サブキャラクタ１が移動したときに他のキャラクタと衝突するかどうかを判定し（Ｓ４８）、衝突してしまう場合には、他のキャラクタと衝突する直前の位置までサブキャラクタ１が移動するように、サブキャラクタ１の座標を決定する（Ｓ５０）。
【００６７】
続いてＣＰＵ２２は、ステップＳ４６でのサブキャラクタ１の移動の結果、サブキャラクタ１が地形に衝突するかどうかを判定し（Ｓ５２）、地形に衝突しない場合は、ステップＳ６０に進む。
【００６８】
一方、地形に衝突してしまう場合は、ステップＳ４６でのサブキャラクタ１の移動をキャンセルし（Ｓ５４）、サブキャラクタ１の現在位置から最も近い足跡を目標足跡として設定し（Ｓ５６）、サブキャラクタ１の回避フラグをオンにする（Ｓ５８）。この結果、サブキャラクタ１は、目標スロットに直接向かうことを諦め、次のフレームからリーダーキャラクタの足跡を辿ることとなる。サブキャラクタ１の回避フラグをオンにした後は、ステップＳ６０に進む。
【００６９】
なお、本実施形態では、ステップＳ５２でサブキャラクタ１が地形に衝突すると判定されたときにサブキャラクタ１の回避フラグをオンにするとしたが、これに替えて、サブキャラクタ１が地形にぶつかってから一定時間以上その進行を妨げられた場合に初めてサブキャラクタ１の回避フラグをオンにするようにしてもよい。この場合、地形にぶつかっている時間をカウントするためのカウンタをサブキャラクタ毎に用意し、その値を所定の比較値と比較するようにすればよい。
【００７０】
また、本実施形態では、ステップＳ６４でサブキャラクタ１を所定距離だけ移動させてみて、その結果、地形に衝突すると分かった時点でサブキャラクタ１の回避フラグをオンにするとしたが、これに替えて、サブキャラクタ１の現在位置と目標スロットとの間に障害物が存在するかどうかを定期的に判定し、障害物が存在することが分かった時点で（すなわち障害物に接近する前に）回避フラグをオンにするようにしても構わない。
【００７１】
一方、ステップＳ６２で、サブキャラクタ１の回避フラグがオンである場合、まずＣＰＵ２２は、図２３のステップＳ６２で、サブキャラクタ１の現在位置から見た目標足跡の方向を計算する。この計算には、サブキャラクタ１の座標と目標足跡の座標が用いられる。次にＣＰＵ２２は、計算した方向へサブキャラクタ１を所定距離だけ移動させる（Ｓ６４）。より具体的には、サブキャラクタ１の現在の座標を、ステップＳ６２で計算した方向へサブキャラクタ１の移動速度に応じた量だけシフトさせる。
【００７２】
続いてＣＰＵ２２は、ステップＳ６６でのサブキャラクタ１の移動の結果、サブキャラクタ１が目標足跡に到着したかどうかを判定し（Ｓ６６）、目標足跡に到達した場合は、この目標足跡に対応する足跡データのフレーム番号をメインメモリ３４の足跡データ領域７４から読み出して、サブキャラクタデータ領域７２に、「すでに到達した足跡のうちの最新の足跡のフレーム番号」として記憶する（Ｓ６８）。そして、目標足跡を変更する（Ｓ７０）。より具体的には、足跡データ領域７４に記憶されている複数の足跡の中から、フレーム番号がサブキャラクタデータ領域７２に記憶されているフレーム番号よりも大きく（つまりサブキャラクタ１がすでに到達したことのある足跡よりも新しい足跡）、かつサブキャラクタ１の現在位置から最も近い足跡を抽出して、こうして抽出された足跡を次の目標足跡として設定する。
【００７３】
次にＣＰＵ２２は、サブキャラクタ１の現在位置から目標スロットまでの距離が所定値以下となったかどうかを判断し（Ｓ７２）、所定値以下となった場合は、次フレーム以降でサブキャラクタ１が目標スロットに向かうように、サブキャラクタ１の回避フラグをオフにする（Ｓ７４）。
【００７４】
次にＣＰＵ２２は、ステップＳ６４でのサブキャラクタ１の移動の結果、サブキャラクタ１が地形に衝突するかどうかを判定し（Ｓ７６）、地形に衝突しない場合は、図２２のステップＳ６０に進む。
【００７５】
一方、地形に衝突してしまう場合は、ステップＳ６４でのサブキャラクタ１の移動をキャンセルし（Ｓ７８）、目標足跡を変更する（Ｓ８０）。より具体的には、足跡データ領域７４に記憶されている複数の足跡の中から、現在の目標足跡以外の足跡で、かつフレーム番号がサブキャラクタデータ領域７２に記憶されているフレーム番号よりも大きく（つまりサブキャラクタ１がすでに到達したことのある足跡よりも新しい足跡）、かつサブキャラクタ１の現在位置から最も近い足跡を抽出して、こうして抽出された足跡を次の目標足跡として設定する。そして、図２２のステップＳ６０に進む。
【００７６】
なお、本実施形態では、ステップＳ７６でサブキャラクタ１が地形に衝突すると判定されたときに目標足跡を変更するとしたが、これに替えて、サブキャラクタ１が地形にぶつかってから一定時間以上その進行を妨げられた場合に初めてサブキャラクタ１の目標足跡を変更するようにしてもよい。この場合、地形にぶつかっている時間をカウントするためのカウンタをサブキャラクタ毎に用意し、その値を所定の比較値と比較するようにすればよい。
【００７７】
また、本実施形態では、ステップＳ６４でサブキャラクタ１を所定距離だけ移動させてみて、その結果、地形に衝突すると分かった時点でサブキャラクタ１の目標足跡を変更するとしたが、これに替えて、サブキャラクタ１の目標足跡を設定する時点でサブキャラクタ１の現在位置と目標足跡との間に障害物が存在するかどうかを予め判定し、障害物が存在する場合には目標足跡を他のものに変更するようにしても構わない。
【００７８】
図２２のステップＳ６０では、全てのサブキャラクタについて処理が完了したかどうかを判断し（Ｓ６０）、未処理のサブキャラクタが存在する場合にはステップＳ４２に戻り、その未処理のサブキャラクタのうちの１つのサブキャラクタを処理対象として、同様の処理を繰り返す。こうして最終的に全てのサブキャラクタについて処理が完了すると、図２０のステップＳ２２に進む。
【００７９】
図２２のステップＳ２２では、サブキャラクタの並べ替えを行うべきかどうかを、例えばコントローラ２０からの操作入力に基づいて判断し、サブキャラクタの並べ替えを行う場合はステップＳ２４の並べ替え処理を実行する。以下、図２４を参照して、並べ替え処理の詳細を説明する。
【００８０】
図２４において、ＣＰＵ２２は、先頭のサブキャラクタ（すなわち、スロット番号２に対応するサブキャラクタ）を他の指定されたサブキャラクタに交換する指示があったかどうかを判断する（Ｓ８２）。具体的には、例えば、プレイヤがコントローラ２０の所定スイッチを操作することによって、当該交換指示および、先頭に持ってきたいサブキャラクタを指定する指示がされる。この指示があった場合、指定されたサブキャラクタとスロット番号２のサブキャラクタのスロット番号を入れ替えるように、メインメモリ３４のサブキャラクタデータ領域７２およびスロット割り当て領域７８を更新する（Ｓ８４）。具体的には、スロット番号２であったサブキャラクタのスロット番号に、当該指定されたサブキャラクタに割り当てられていたスロット番号を設定し、当該指定されたサブキャラクタのスロット番号に２を設定する。
【００８１】
次に、ＣＰＵ２２は、特性による並べ替えの指示があったかどうかを判断する（Ｓ８６）。具体的には、例えば、プレイヤがコントローラ２０の所定スイッチを操作することによって、当該並べ替えの指示および特性の指定がされる。この指示があった場合、指定された特性のサブキャラクタが隊列の前方に位置するように、メインメモリ３４のサブキャラクタデータ領域７２およびスロット割り当て領域７８を更新する（Ｓ８８）。より具体的には、指定された特性を持つ全てのサブキャラクタにスロット番号を小さい方から順番に割り当て、残りのサブキャラクタに残りのスロットを割り当てる。
【００８２】
続いて、図２０において、ＣＰＵ２２はゲーム画像を表示し（Ｓ２６）、ステップＳ１６に戻る。こうして、ステップＳ１６〜ステップＳ２６の処理が、ゲーム終了まで繰り返されることとなる。
【００８３】
なお、本実施形態では、ゲーム空間が３次元の仮想空間であるとしたが、本発明はこれに限らず、ゲーム空間が２次元であってもよい。
【００８４】
また、本実施形態では、ゲームプログラムがＤＶＤ−ＲＯＭ１６からゲーム機本体１４に供給されるとしたが、本発明はこれに限らず、ゲームプログラムが任意の記録媒体からゲーム機本体１４に供給されてもよいし、有線または無線の通信回線を通じてゲーム機本体１４に供給されてもよい。さらには、ゲームプログラムの機能をハードウェアのみで実現しても構わない。
【図面の簡単な説明】
【００８５】
【図１】ゲームシステム１０の外観図
【図２】ゲーム機本体１４の内部構成を示すブロック図
【図３】リーダーキャラクタとサブキャラクタとで構成される隊列の一例を示す図
【図４】リーダーキャラクタとサブキャラクタとで構成される隊列の他の例を示す図
【図５】リーダーキャラクタと各スロットとの位置関係を示す図
【図６】スロット毎に設定される相対座標の一例を示す図
【図７】空間座標系におけるリーダーキャラクタの姿勢ベクトルの様子を示す図
【図８】各スロットのＹｇ軸座標の決定方法の一例を示す図
【図９】空間座標系におけるリーダーキャラクタの姿勢ベクトルの様子を示す他の図
【図１０】サブキャラクタ番号とスロット番号との対応関係の一例を示す図
【図１１】対応付けられたスロットへ向かって移動するサブキャラクタの様子を示す図
【図１２】リーダーキャラクタとサブキャラクタがゲーム空間を隊列を組んで移動する様子を示す図
【図１３】一部のサブキャラクタが地形によってその進行を妨げられている様子を示す図
【図１４】足跡データが順次蓄積される様子を示す図
【図１５】サブキャラクタが移動目標をリーダーキャラクタの足跡に変更して移動する様子を示す図
【図１６】サブキャラクタがリーダーキャラクタの移動軌跡を辿って移動する様子を示す図
【図１７】サブキャラクタが、自身に対応付けられたスロットに復帰する様子を示す図
【図１８】サブキャラクタがショートカットする様子を示す図
【図１９】メインメモリ３４のメモリマップ
【図２０】ゲーム処理の流れを示すフローチャート
【図２１】リーダーキャラクタ移動制御処理の流れを示すフローチャート
【図２２】サブキャラクタ移動制御処理の流れの一部を示すフローチャート
【図２３】サブキャラクタ移動制御処理の流れの一部を示すフローチャート
【図２４】並べ替え処理の流れを示すフローチャート
【符号の説明】
【００８６】
１０  ゲームシステム
１２  ＴＶモニタ
１４  ゲーム機本体
１６  ＤＶＤ−ＲＯＭ
１８  外部メモリカード
２０  コントローラ
２２  ＣＰＵ
２４  ＧＰＵ
２６  ジオメトリユニット
２８  レンダリングユニット
３０  カラーバッファ
３２  Ｚバッファ
３４  メインメモリ
３６  ＤＳＰ
３８  サブメモリ
４０  メモリコントローラ
４２  コントローラＩ／Ｆ
４４  ビデオＩ／Ｆ
４６  外部メモリＩ／Ｆ
４８  オーディオＩ／Ｆ
５０  スピーカ
５２  ディスクＩ／Ｆ
５４  ディスクドライブ
【図１】
2005287757.tif 000003
【図２】
2005287757.tif 000004
【図３】
2005287757.tif 000005
【図４】
2005287757.tif 000006
【図５】
2005287757.tif 000007
【図６】
2005287757.tif 000008
【図７】
2005287757.tif 000009
【図８】
2005287757.tif 000010
【図９】
2005287757.tif 000011
【図１０】
2005287757.tif 000012
【図１１】
2005287757.tif 000013
【図１２】
2005287757.tif 000014
【図１３】
2005287757.tif 000015
【図１４】
2005287757.tif 000016
【図１５】
2005287757.tif 000017
【図１６】
2005287757.tif 000018
【図１７】
2005287757.tif 000019
【図１８】
2005287757.tif 000020
【図１９】
2005287757.tif 000021
【図２０】
2005287757.tif 000022
【図２１】
2005287757.tif 000023
【図２２】
2005287757.tif 000024
【図２３】
2005287757.tif 000025
【図２４】
2005287757.tif 000026