(57)【要約】【課題】あるキャラクタに従って移動する別のキャラクタを自然に移動制御することが可能な情報処理プログラムを提供する。【解決手段】少なくとも１つの第２オブジェクトが第１オブジェクトの移動に従って移動する情報処理を実行する情報処理プログラムであって、情報処理プログラムは、コンピュータを、入力を受け付ける入力受付手段と、入力受付手段による入力に基づき第１オブジェクトを仮想空間内において移動制御する第１オブジェクト移動制御手段と、第１オブジェクト移動制御手段によって移動された第１オブジェクトの位置に基づいて、仮想空間内において第２オブジェクトが移動することが可能な移動可能範囲を算出する範囲算出手段と、範囲算出手段により算出された移動可能範囲に基づいて第２オブジェクトを移動制御する第２オブジェクト移動制御手段として機能させるとして機能させる。【選択図】図６
2014233536.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータにおいて、仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが前記第１オブジェクトの移動に従って移動する情報処理を実行する情報処理プログラムであって、
前記情報処理プログラムは、前記コンピュータを、
入力を受け付ける入力受付手段と、
前記入力受付手段による入力に基づき前記第１オブジェクトを前記仮想空間内において移動制御する第１オブジェクト移動制御手段と、
前記第１オブジェクト移動制御手段によって移動された前記第１オブジェクトの位置に基づいて、前記仮想空間内において前記第２オブジェクトが移動することが可能な移動可能範囲を算出する範囲算出手段と、
前記範囲算出手段により算出された移動可能範囲に基づいて前記第２オブジェクトを移動制御する第２オブジェクト移動制御手段として機能させる、情報処理プログラム。
【請求項２】
前記範囲算出手段は、繰り返し前記移動可能範囲を算出する、請求項１または２記載の情報処理プログラム。
【請求項３】
前記移動可能範囲は、前記第１オブジェクトの移動方向に基づいた範囲である、請求項１または２に記載の情報処理プログラム。
【請求項４】
前記第２オブジェクト移動制御手段は、前記移動可能範囲を移動する目標として前記第２オブジェクトを移動制御する、請求項１〜３のいずれかに記載の情報処理プログラム。
【請求項５】
前記第２オブジェクト移動制御手段は、算出された新しい移動可能範囲を移動する目標として前記第２オブジェクトを移動制御する、請求項２に記載の情報処理プログラム。
【請求項６】
前記第２オブジェクト移動制御手段は、算出された新しい移動可能範囲のうち時系列に沿って次の移動可能範囲を移動する目標に設定して前記第２オブジェクトを移動制御する、請求項５記載の情報処理プログラム。
【請求項７】
前記第２オブジェクト移動制御手段は、算出された新しい移動可能範囲のうち、時系列に沿った次の移動可能範囲よりも近い移動可能範囲を移動する目標として前記第２オブジェクトを移動制御する、請求項５記載の情報処理プログラム。
【請求項８】
前記第２オブジェクト移動制御手段は、直近に通過した移動可能範囲上の通過位置に基づいて、前記次の移動可能範囲上の位置に目標を設定して前記第２オブジェクトを移動制御する、請求項５〜７のいずれかに記載の情報処理プログラム。
【請求項９】
前記第２オブジェクト移動制御手段は、直近に通過した移動可能範囲上の所定位置を基準とした通過位置に基づいて、前記次の移動可能範囲上の前記所定位置を基準とした位置に目標を設定して前記第２オブジェクトを移動制御する、請求項８に記載の情報処理プログラム。
【請求項１０】
前記第２オブジェクト移動制御手段は、前記第１オブジェクトの位置に基づいた移動目標座標を設定して前記第２オブジェクトを移動制御する、請求項１〜９のいずれかに記載の情報処理プログラム。
【請求項１１】
前記移動可能範囲は、前記第１オブジェクトの位置を含む範囲である、請求項１〜１０のいずれかに記載の情報処理プログラム。
【請求項１２】
前記第２オブジェクト移動制御手段は、前記範囲算出手段により算出された移動可能範囲に基づいて形成される安全領域内で前記第２オブジェクトを移動制御する、請求項１〜３のいずれかに記載の情報処理プログラム。
【請求項１３】
前記安全領域は、前記繰り返し算出された複数の移動可能範囲に基づいて形成される領域である、請求項２記載の情報処理プログラム。
【請求項１４】
前記移動可能範囲は、前記仮想空間内において前記第２オブジェクトの移動が可能な範囲に基づいて大きさが可変である、請求項１〜１３のいずれかに記載の情報処理プログラム。
【請求項１５】
前記仮想空間内において前記第２オブジェクトの移動が可能な領域と、移動が不可能な領域とを規定するための領域情報が設けられ、
前記範囲算出手段は前記領域情報を参照して、前記第２オブジェクトの移動可能範囲を算出する、請求項１〜１４のいずれかに記載の情報処理プログラム。
【請求項１６】
前記領域情報は、前記仮想空間内の位置および高さに従って規定され、
前記範囲算出手段は前記領域情報を参照して、前記仮想空間内における前記第１オブジェクトの位置および高さに基づいて前記第２オブジェクトの移動可能範囲を算出する、請求項１５記載の情報処理プログラム。
【請求項１７】
前記仮想空間内において、領域の属性が設定され、
前記第２オブジェクト移動制御手段は、前記領域の属性に基づいて前記第２オブジェクトを移動制御する、請求項１〜１６のいずれかに記載の情報処理プログラム。
【請求項１８】
前記第２オブジェクトには、移動する方式に関する移動属性が設定され、
前記範囲算出手段は、
前記移動属性にも基づいて、前記移動可能範囲を算出する、請求項１〜１７のいずれかに記載の情報処理プログラム。
【請求項１９】
仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが前記第１オブジェクトの移動に従って移動する情報処理を実行する情報処理装置の制御方法であって、
入力を受け付けるステップと、
入力に基づき前記第１オブジェクトを前記仮想空間内において移動制御するステップと、
移動された前記第１オブジェクトの位置を基準に前記仮想空間内において前記第１オブジェクトが移動することが可能な移動可能範囲を算出するステップと、
算出された移動可能範囲に基づいて形成される安全領域内で前記第２オブジェクトを移動制御するステップとを備える、情報処理装置の制御方法。
【請求項２０】
仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが前記第１オブジェクトの移動に従って移動する情報処理を実行する情報処理装置であって、
入力を受け付ける入力受付手段と、
前記入力受付手段による入力に基づき前記第１オブジェクトを前記仮想空間内において移動制御する第１オブジェクト移動制御手段と、
前記第１オブジェクト移動制御手段によって移動された前記第１オブジェクトの位置に基づいて、前記仮想空間内において前記第２オブジェクトが移動することが可能な移動可能範囲を算出する範囲算出手段と、
前記範囲算出手段により算出された移動可能範囲に基づいて前記第２オブジェクトを移動制御する第２オブジェクト移動制御手段とを備える、情報処理装置。
【請求項２１】
仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが前記第１オブジェクトの移動に従って移動する情報処理を実行する情報処理装置を有する情報処理システムであって、
入力を受け付ける入力受付手段と、
前記入力受付手段による入力に基づき前記第１オブジェクトを前記仮想空間内において移動制御する第１オブジェクト移動制御手段と、
前記第１オブジェクト移動制御手段によって移動された前記第１オブジェクトの位置に基づいて、前記仮想空間内において前記第２オブジェクトが移動することが可能な移動可能範囲を算出する範囲算出手段と、
前記範囲算出手段により算出された移動可能範囲に基づいて前記第２オブジェクトを移動制御する第２オブジェクト移動制御手段とを備える、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム等に関し、特に、仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが第１オブジェクトの移動に従って移動する情報処理の実行に関する。
【背景技術】
【０００２】
従来より、サブキャラクタをリーダキャラクタに追従させたり、複数のキャラクタが群をなして移動する情報処理を実行する装置等が提案されている（特許文献１）。
【０００３】
この点で、地形等の障害物に阻まれて移動できなくなったときに当該障害物を回避する種々の方式が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２８７７５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方で、障害物に阻まれて移動できなくなったときに回避する移動制御よりも障害物に阻まれる前に回避する移動制御の方がより自然な移動となる。
【０００６】
本開示の目的は、上記のような問題を解決するためになされたものであって、あるキャラクタに従って移動する別のキャラクタを自然に移動制御させることが可能な情報処理プログラム、情報処理装置の制御方法、情報処理装置および情報処理システムを提供することである。
【課題を解決するための手段】
【０００７】
ある局面に従う情報処理プログラムは、情報処理装置のコンピュータにおいて、仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが第１オブジェクトの移動に従って移動する情報処理を実行する情報処理プログラムであって、情報処理プログラムは、コンピュータを、入力を受け付ける入力受付手段と、入力受付手段による入力に基づき第１オブジェクトを仮想空間内において移動制御する第１オブジェクト移動制御手段と、第１オブジェクト移動制御手段によって移動された第１オブジェクトの位置に基づいて、仮想空間内において第２オブジェクトが移動することが可能な移動可能範囲を算出する範囲算出手段と、範囲算出手段により算出された移動可能範囲に基づいて第２オブジェクトを移動制御する第２オブジェクト移動制御手段として機能させる。
【０００８】
上記範囲算出手段は、繰り返し移動可能範囲を算出する。
上記移動可能範囲は、第１オブジェクトの移動方向に基づいた範囲である。
【０００９】
上記第２オブジェクト移動制御手段は、移動可能範囲を移動する目標として第２オブジェクトを移動制御する。
【００１０】
上記第２オブジェクト移動制御手段は、算出された新しい移動可能範囲を移動する目標として第２オブジェクトを移動制御する。
【００１１】
上記第２オブジェクト移動制御手段は、算出された新しい移動可能範囲のうち時系列に沿って次の移動可能範囲を移動する目標に設定して第２オブジェクトを移動制御する。
【００１２】
上記第２オブジェクト移動制御手段は、算出された新しい移動可能範囲のうち、時系列に沿った次の移動可能範囲よりも近い移動可能範囲を移動する目標として第２オブジェクトを移動制御する。
【００１３】
上記第２オブジェクト移動制御手段は、直近に通過した移動可能範囲上の通過位置に基づいて、次の移動可能範囲上の位置に目標を設定して第２オブジェクトを移動制御する。
【００１４】
上記第２オブジェクト移動制御手段は、直近に通過した移動可能範囲上の所定位置を基準とした通過位置に基づいて、次の移動可能範囲上の所定位置を基準とした位置に目標を設定して第２オブジェクトを移動制御する。
【００１５】
上記第２オブジェクト移動制御手段は、第１オブジェクトの位置に基づいた移動目標座標を設定して第２オブジェクトを移動制御する。
【００１６】
上記移動可能範囲は、第１オブジェクトの位置を含む範囲である。
上記第２オブジェクト移動制御手段は、範囲算出手段により算出された移動可能範囲に基づいて形成される安全領域内で第２オブジェクトを移動制御する。
【００１７】
上記安全領域は、繰り返し算出された複数の移動可能範囲に基づいて形成される領域である。
【００１８】
上記移動可能範囲は、仮想空間内において第２オブジェクトの移動が可能な範囲に基づいて大きさが可変である。
【００１９】
上記仮想空間内において第２オブジェクトの移動が可能な領域と、移動が不可能な領域とを規定するための領域情報が設けられ、範囲算出手段は領域情報を参照して、第２オブジェクトの移動可能範囲を算出する。
【００２０】
上記領域情報は、仮想空間内の位置および高さに従って規定され、範囲算出手段は領域情報を参照して、仮想空間内における第１オブジェクトの位置および高さに基づいて第２オブジェクトの移動可能範囲を算出する。
【００２１】
上記仮想空間内において、領域の属性が設定され、第２オブジェクト移動制御手段は、領域の属性に基づいて第２オブジェクトを移動制御する。
【００２２】
上記第２オブジェクトには、移動する方式に関する移動属性が設定され、範囲算出手段は、移動属性にも基づいて、移動可能範囲を算出する。
【００２３】
ある局面に従う仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが第１オブジェクトの移動に従って移動する情報処理を実行する情報処理装置の制御方法であって、入力を受け付けるステップと、入力に基づき第１オブジェクトを仮想空間内において移動制御するステップと、移動された第１オブジェクトの位置を基準に仮想空間内において第１オブジェクトが移動することが可能な移動可能範囲を算出するステップと、算出された移動可能範囲に基づいて形成される安全領域内で第２オブジェクトを移動制御するステップとを備える。
【００２４】
ある局面に従う仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが第１オブジェクトの移動に従って移動する情報処理を実行する情報処理装置であって、入力を受け付ける入力受付手段と、入力受付手段による入力に基づき第１オブジェクトを仮想空間内において移動制御する第１オブジェクト移動制御手段と、第１オブジェクト移動制御手段によって移動された第１オブジェクトの位置に基づいて、仮想空間内において第２オブジェクトが移動することが可能な移動可能範囲を算出する範囲算出手段と、範囲算出手段により算出された移動可能範囲に基づいて第２オブジェクトを移動制御する第２オブジェクト移動制御手段とを備える。
【００２５】
ある局面に従う仮想空間内において第１オブジェクトが移動するとともに、少なくとも１つの第２オブジェクトが第１オブジェクトの移動に従って移動する情報処理を実行する情報処理装置を有する情報処理システムであって、入力を受け付ける入力受付手段と、入力受付手段による入力に基づき第１オブジェクトを仮想空間内において移動制御する第１オブジェクト移動制御手段と、第１オブジェクト移動制御手段によって移動された第１オブジェクトの位置に基づいて、仮想空間内において第２オブジェクトが移動することが可能な移動可能範囲を算出する範囲算出手段と、範囲算出手段により算出された移動可能範囲に基づいて第２オブジェクトを移動制御する第２オブジェクト移動制御手段とを備える。
【発明の効果】
【００２６】
本開示によれば、あるキャラクタに従って移動する別のキャラクタを自然に移動制御させることが可能である。
【図面の簡単な説明】
【００２７】
【図１】本実施の形態１に従うゲーム装置１０の構成の概略ブロック図である。
【図２】本実施の形態１に従うキャラクタの移動の様子を説明する図である。
【図３】本実施の形態１に従うキャラクタの移動範囲を説明する図である。
【図４】本実施の形態１に従う空間座標系を説明する図である。
【図５】メインメモリ１５のメモリマップを説明する図である。
【図６】本実施の形態１に従うゲームプログラムに基づいてプロセッサ１３によって実行されるゲーム処理の主な流れを説明するフロー図である。
【図７】本実施の形態１に従うリーダキャラクタの移動制御処理の詳細を説明するフロー図である。
【図８】本実施の形態１に従う移動可能範囲算出処理の詳細を説明するフロー図である。
【図９】本実施の形態１に従う移動可能な範囲を探索する概念を説明する図である。
【図１０】本実施の形態１に従うサブキャラクタの移動制御処理の詳細を説明するフロー図である。
【図１１】本実施の形態１に従う目標移動可能範囲内の目標地点の設定を説明する図である。
【図１２】本実施の形態２に従う目標移動可能範囲の変更について説明する図である。
【図１３】本実施の形態２に従うサブキャラクタの移動制御処理の詳細を説明するフロー図である。
【図１４】実施の形態３に従うリーダキャラクタおよびサブキャラクタの移動を説明する概念図である。
【図１５】本実施の形態３に従う移動可能範囲算出処理の詳細を説明するフロー図である。
【図１６】本実施の形態３に従うサブキャラクタの移動制御処理の詳細を説明するフロー図である。
【図１７】実施の形態３の変形例に従うリーダキャラクタとサブキャラクタとの移動の特性が異なる場合を説明する図である。
【図１８】本実施の形態３の変形例に従うメインメモリ１５のメモリマップを説明する図である。
【図１９】本実施の形態３の変形例に従う移動可能範囲算出処理の詳細を説明するフロー図である。
【図２０】サブキャラクタの移動目標座標の別の設定方式を説明する図である。
【発明を実施するための形態】
【００２８】
以下、図面を参照して説明する。以下の説明において、同一の機能および作用を有する部品は、各図を通して同じ符号を付し、重複する説明を繰り返さない。
【００２９】
（実施の形態１）
［情報処理装置の構成］
本例においては、情報処理装置の一例としてゲーム装置を例に挙げて説明する。
【００３０】
図１は、本実施の形態１に従うゲーム装置１０の構成の概略ブロック図である。なお、当該ゲーム装置は、携帯型であっても据置型であっても良い。
【００３１】
図１を参照して、ゲーム装置１０は、入力装置１１と、表示装置１２と、プロセッサ１３と、内部記憶装置１４と、メインメモリ１５と、および無線通信装置１６とを含む。なお、全ての構成は必須の構成ではなく、例えば一例として無線通信装置１６を除く構成としても良い。
【００３２】
入力装置１１は、ゲーム装置１０のユーザによって操作され、ユーザの操作に応じた信号をプロセッサ１３へ出力する。入力装置１１は、例えば、十字スイッチや押しボタンやタッチパネルである。
【００３３】
表示装置１２は、ゲーム装置１０において生成された画像を画面に表示する。表示装置１２は、一例として液晶表示装置（ＬＣＤ）を用いることができる。
【００３４】
プロセッサ１３は、コンピュータプログラムを実行するための演算処理手段である。
内部記憶装置１４には、プロセッサ１３によって実行されるコンピュータプログラムが格納されている。内部記憶装置１４は、一例として、ＮＡＮＤ型フラッシュメモリを用いることができる。なお、プロセッサ１３によって実行されるコンピュータプログラムは、予め記録されていてもよいし、他の機器との通信によって他の機器から取得されてもよい。
【００３５】
メインメモリ１５は、コンピュータプログラムや情報を一時的に記憶する。メインメモリ１５は、一例としてＰＳＲＡＭ（Pseudo-SRAM）を用いることができる。
【００３６】
無線通信装置１６は、無線通信によって他のゲーム装置へ信号を送信したり、他のゲーム装置から信号を受信したりする。
【００３７】
［ゲーム処理における移動制御の概要］
次に、内部記憶装置１４に記憶されたコンピュータプログラム（情報処理プログラム）の一種であるゲームプログラムに基づいてプロセッサ１３によって実行されるゲーム処理の具体例について説明する。
【００３８】
本実施の形態で実行されるゲームは、仮想空間（ゲーム空間とも称する）内のキャラクタをプレイヤが入力装置１１を用いて移動させて遊ぶものである。なお、ゲーム空間には、プレイヤが操作するキャラクタ（以下、リーダキャラクタとも称する）以外にも、プロセッサ１３によって所定のアルゴリズムに基づいて移動制御される少なくとも１つのキャラクタ（以下、サブキャラクタとも称する）が存在する。少なくとも１つのサブキャラクタは、隊列を組んであるいは群れを成してリーダキャラクタの移動に従って移動（追従）するように移動制御される。
【００３９】
図２は、本実施の形態１に従うキャラクタの移動の様子を説明する図である。
図２を参照して、リーダキャラクタＲＣとそれに追従する複数のサブキャラクタＳＣとが隊列を組んで移動する様子を示している。本例においては、リーダキャラクタＲＣが１体に対して、サブキャラクタＳＣが１５体設けられている場合が示されている。なお、リーダキャラクタＲＣに対して複数のサブキャラクタＳＣを設ける必要はなく、少なくとも１体のサブキャラクタＳＣが追従する構成としてもよい。
【００４０】
リーダキャラクタＲＣの進行方向と反対側（後ろ側）に複数のサブキャラクタＳＣが整然と追従する場合が示されている。ただし実際には、整った隊列を組んで移動するわけではなく、各サブキャラクタは個別に移動制御されるため、サブキャラクタ間の移動速度の差や地形の影響などによって、ある程度自由度のある隊列となる。なお、リーダキャラクタが移動を停止してから十分な時間が経過するような場合に、図２のような整った隊列となるようにサブキャラクタを移動制御しても良い。
【００４１】
図３は、本実施の形態１に従うキャラクタの移動範囲を説明する図である。
図３（Ａ）を参照して、リーダキャラクタは、入力装置１１の入力に従ってゲーム空間内において移動する。ここでは、リーダキャラクタの移動制御に従いリーダキャラクタがゲーム空間内において移動した位置が示されている。本例においては、一例としてリーダキャラクタが移動した位置を足跡Ｓｎ〜Ｓｎ−４（以下、総称して足跡Ｓとも称する）として説明する。ここで、時系列に従って、最も新しい足跡Ｓｎに対してｋ番目前の足跡を足跡Ｓｎ−ｋとして示している。本例においてはｋ＝４までの例が示されている。
【００４２】
そして、リーダキャラクタの足跡Ｓに基づいて、ゲーム空間内において、サブキャラクタの移動が可能な範囲（移動可能範囲）を予め探索（算出）する。本例においては、リーダキャラクタのそれぞれの位置Ｓ（Ｓｎ〜Ｓｎ−４）に基づいて、移動可能範囲ＳＰｎ〜ＳＰｎ−４（以下、総称して移動可能範囲ＳＰとも称する）を探索した場合が示されている。ここで、時系列に従って、最も新しい足跡Ｓｎに基づいて探索された移動可能範囲を移動可能範囲ＳＰｎとして示している。また、足跡Ｓｎ−ｋに基づいて探索された移動可能範囲を移動可能範囲ＳＰｎ−ｋとして示している。本例においては、ｋ＝４までの例が示されている。
【００４３】
サブキャラクタの移動が可能な範囲とは、ゲーム空間内に配置された障害物等との関係でサブキャラクタが移動ができない範囲を除く移動が可能な範囲のことを意味する。
【００４４】
本実施の形態１におけるサブキャラクタの移動は、探索された移動可能範囲を利用した移動制御が実行される。具体的には、サブキャラクタの移動は、探索された移動可能範囲を移動する目標に設定した移動制御を実行する。言い換えるならば、探索された複数の移動可能範囲ＳＰに基づいて生成される安全領域ＳＦ内でサブキャラクタを移動制御することによって実現される。当該安全領域ＳＦは、複数の移動可能範囲ＳＰを連結することにより生成されるものである。なお、移動可能範囲ＳＰ間の移動可能範囲ＳＰが探索（算出）されていない部分については前後の移動可能範囲に従って補間処理することにより安全領域ＳＦを生成することも可能である。
【００４５】
図３（Ｂ）を参照して、ゲーム空間内において、リーダキャラクタおよび各サブキャラクタがゲーム空間を移動しているときに、壁などの障害物あるいは落下する可能性のある崖等が設けられている場合がある。
【００４６】
上記と同様に、リーダキャラクタの足跡Ｓに基づいて、ゲーム空間内において、サブキャラクタの移動が可能な範囲（移動可能範囲）を予め探索（算出）する。この場合、移動可能範囲は、壁などの障害物あるいは落下する可能性のある崖等のために狭められる。
【００４７】
そして、探索結果に基づいて、探索された移動可能範囲を利用した移動制御を実行する。具体的には、複数の移動可能範囲ＳＰに基づいて生成される安全領域ＳＦ内でサブキャラクタを移動制御する。
【００４８】
当該安全領域ＳＦは、探索された移動可能範囲に基づいて生成されたサブキャラクタの移動が可能な領域であり、当該安全領域ＳＦ内に移動の目標となる地点を設定してサブキャラクタを移動制御することにより壁等の障害物に衝突したり、崖から落ちたりすること無く安全にサブキャラクタを移動させることが可能となる。
【００４９】
また、予め探索された移動可能範囲により生成された安全領域ＳＦ内でサブキャラクタを移動制御させるため、障害物に阻まれて移動できなくなる等が無い。すなわち、障害物に阻まれる前に障害物を回避することが可能となるため、障害物に阻まれて回避する移動制御よりも自然な移動制御を実現することが可能となる。
【００５０】
また、本実施の形態１における移動可能範囲は、リーダキャラクタの位置を基準としてその周辺を探索して設定されるものであり、サブキャラクタ毎に移動可能範囲が設定されるものではない。したがって、サブキャラクタの数が増えた場合であっても移動可能範囲の算出の負荷が変動して移動制御の処理負荷が重くなることもなく、処理負荷の軽いサブキャラクタの移動制御を実行することが可能である。
【００５１】
以上のように、各サブキャラクタは、安全領域ＳＦ内の目標地点を目指してそれぞれ移動する。具体的には、時系列に沿って蓄積された移動可能範囲を順番に目標に設定して移動することにより、図２のようにリーダキャラクタに追従して隊列を組んであるいは群れを成してゲーム空間を移動することとなる。
【００５２】
本実施形態では、リーダキャラクタの現在位置（空間座標系における座標）を所定のタイミングで順次、リーダキャラクタの「移動可能範囲データ」として蓄積する。より具体的には、例えば所定フレームに１度（例えば、１０フレームに１度）のタイミングで移動可能範囲データを記憶する。このときに記憶するデータには、その時点のフレーム番号とリーダキャラクタの座標（足跡基準座標）が含まれる。また、移動可能範囲データには、足跡基準座標に基づいてリーダキャラクタが移動可能な領域範囲が算出されて記憶される。
【００５３】
なお、本実施形態では、前回に移動可能範囲データを記憶してから１０フレームが経過した時点でリーダキャラクタがその移動可能範囲から一定距離以上離れていない場合には、新たな移動可能範囲データを記憶しないようにしている。これにより、リーダキャラクタがほとんど移動していない場合、すなわち前回の位置からの変化が小さい位置への移動の場合には類似している移動可能範囲データを蓄積しないようにする。これにより有効に利用可能な移動可能範囲データを蓄積することが可能となり、記憶領域を有効に活用することができる。なお、移動可能範囲データを無限に蓄積することは不可能なので、一定以上古い移動可能範囲データについては記憶領域から削除する必要がある。例えば、蓄積している移動可能範囲データの数が一定数以上になった場合には、新たな移動可能範囲データを記憶する際に、蓄積されている移動可能範囲データの中から最も古い（すなわちフレーム番号が最も小さい）移動可能範囲データを記憶領域から削除するようにすればよい。
【００５４】
図４は、本実施の形態１に従う空間座標系を説明する図である。
図４を参照して、空間座標系Ｘｇ，Ｙｇ，Ｚｇが規定され、当該空間座標系に対してリーダキャラクタの座標が設定（ＬＸｇ，ＬＹｇ，ＬＺｇ）される。また、リーダキャラクタの進行方向が規定されていて、当該方向に対してリーダキャラクタがゲーム空間において移動したり、移動の向きを変化させたりすることが可能に設けられる。
【００５５】
また、当該空間座標系に対してゲームの進行処理として仮想空間内におけるキャラクタの移動が可能な領域と、移動が不可能な領域とを含むフィールド情報（領域情報）が規定されている。
【００５６】
リーダキャラクタの座標に対して当該フィールド情報を構成する壁、崖等の領域に対して移動が可能か否かを探索することにより移動可能範囲が算出される。
【００５７】
次に、ゲームプログラムに基づいてプロセッサ１３によって実行されるゲーム処理についてより詳細に説明する。
【００５８】
［メモリマップの構成］
図５は、メインメモリ１５のメモリマップを説明する図である。
【００５９】
図５を参照して、メインメモリ１５は、マップ情報データ領域７０と、リーダキャラクタデータ領域７２と、サブキャラクタデータ領域７４と、移動可能範囲データ領域７８とを含む。
【００６０】
マップ情報データ領域７０は、ゲーム空間内において移動が可能な領域と移動が不可能な領域とを規定するためのフィールド情報が格納されている。例えば、フィールド情報としては、一般的にはゲーム空間内の地形オブジェクトとして描画するために必要な地形情報が含まれ、当該地形情報に設定されている空間座標系に基づく座標に基づいてゲーム空間内に地形オブジェクトが配置される。また、当該地形オブジェクトには、壁、崖、水、等の属性情報が関連付けられて設定されているものとする。
【００６１】
リーダキャラクタデータ領域７２には、リーダキャラクタの空間座標系に基づく現在位置の座標と、リーダキャラクタの空間座標系に基づく向きが記憶される。
【００６２】
サブキャラクタデータ領域７４には、サブキャラクタ毎にサブキャラクタデータ７６が設けられ、各々、サブキャラクタの空間座標系に基づく現在位置の座標と、すでに到達した移動可能範囲のうちの最新の移動可能範囲データのフレーム番号とその移動可能範囲内の到達した位置座標、サブキャラクタの特性と、安定状態フラグとが記憶される。
【００６３】
ここで、サブキャラクタの特性とは、後述するサブキャラクタの移動に関する特性を指し示すものとする。本例においては、後述するがサブキャラクタの移動に関する特性として複数種類の特性が予め設けられている。例えば、サブキャラクタの移動に関する特性の種別として、歩行により地面を移動する場合と、空中を移動する場合とが設けられている。また、水中を移動可能な場合と移動が不可能な場合等が特性として予め設けられているものとする。後述するが当該サブキャラクタの移動に関する特性に基づいて移動制御を変更することが可能である。なお、本例においては、一例として歩行により移動する場合について説明する。
【００６４】
ここで、サブキャラクタの安定状態フラグとは、後述するがサブキャラクタの移動制御の判別として用いられる安定状態か否かを指し示すフラグを指し示すものとする。本例においては、各サブキャラクタの安定状態フラグについてオン／オフ（ＯＮ／ＯＦＦ）が判別されて、それに基づいた移動制御が実行される。具体的には、安定状態フラグがオン（ＯＮ）の場合には移動制御を実行しない。一方、安定状態フラグがオフ（ＯＦＦ）の場合には移動制御を実行する。当該安定状態フラグは、後述するがサブキャラクタの移動制御に関して、最終目標となる移動可能範囲に到達した際にオンに設定される。また、安定状態フラグがオンに設定されているサブキャラクタと衝突した際にも当該衝突したサブキャラクタの安定状態フラグがオンになるように設定される。したがって、リーダキャラクタに近い先頭のサブキャラクタの安定状態フラグがオンに設定された場合（例えば、最終目標となる移動可能範囲に到達した場合）に、後続のサブキャラクタは、例えば安定状態フラグがオンのサブキャラクタと衝突することにより安定状態フラグがオンに設定される。さらに複数のサブキャラクタが設けられている場合、当該状況が繰り返されて後続のサブキャラクタに対して安定状態フラグがオンとなるように伝播される。当該処理により複数のサブキャラクタのそれぞれの安定状態フラグがオンに設定されて、１つの群れあるいは集合体となった状態で移動制御を終了（移動を停止）する。
【００６５】
ここで、移動可能範囲データのフレーム番号は、サブキャラクタがどの移動可能範囲に到達しているかを把握するために用いられる。
【００６６】
移動可能範囲データ領域７８には、複数の移動可能範囲データ８０が設けられ、各移動可能範囲データには、足跡基準座標と、領域範囲と、フレーム番号とが含まれる。
【００６７】
足跡基準座標は、リーダキャラクタの足跡Ｓの座標を指し示すものである。
領域範囲は、後述する移動可能範囲算出処理により算出されたサブキャラクタが移動が可能な範囲に関するデータである。
【００６８】
フレーム番号は、ゲームの開始からの時刻に同期して所定間隔毎に生成される番号である。移動可能範囲データ８０に関し、当該データに含まれるフレーム番号に従って、対応する移動可能範囲に関するデータを取得することが可能である。
【００６９】
［メインフロー］
図６は、本実施の形態１に従うゲームプログラムに基づいてプロセッサ１３によって実行されるゲーム処理の主な流れを説明するフロー図である。
【００７０】
図６を参照して、まずプロセッサ１３はゲーム空間を設定する（ステップＳ１０）。より具体的には、マップ情報データ領域７０に格納されているフィールド情報に基づいてリーダキャラクタ等の移動が可能な領域と移動が不可能な領域とを規定するための種々のオブジェクト（地形オブジェクト）が配置される。一例として、壁や崖等がゲーム空間に配置される。また、リーダキャラクタおよびサブキャラクタをゲーム空間の初期位置に配置する。
【００７１】
そして、次に、プロセッサ１３は、足跡タイマのカウントを開始する（ステップＳ１４）。足跡タイマは、移動可能範囲データを１０フレーム毎に記憶するためのタイマである。
【００７２】
そして、次に、プロセッサ１３は、入力装置１１からの操作入力を検出する（ステップＳ１６）。
【００７３】
そして、次に、プロセッサ１３は、入力装置１１からの操作入力に基づきリーダキャラクタを仮想空間内において移動制御する移動制御処理を実行する（ステップＳ１８）。当該リーダキャラクタの移動制御処理については後述する。
【００７４】
そして、次に、プロセッサ１３は、リーダキャラクタの移動制御処理に従いリーダキャラクタの位置を基準に仮想空間内においてサブキャラクタが移動することが可能な移動可能範囲を算出する（ステップＳ１９）。当該移動可能範囲の算出については後述する。
【００７５】
そして、次に、プロセッサ１３は、算出された移動可能範囲に基づいて形成される安全領域内でサブキャラクタを移動制御する移動制御処理を実行する（ステップＳ２０）。サブキャラクタの移動制御処理については後述する。
【００７６】
そして、次に、プロセッサ１３は、表示装置１２に対してゲーム画像を表示する（ステップＳ２６）。
【００７７】
そして、次に、プロセッサ１３は、ゲームが終了したかどうかを判断する（ステップＳ２８）。
【００７８】
プロセッサ１３は、ゲームが終了したと判断した場合（ステップＳ２８においてＹＥＳ）には、処理を終了する（エンド）。
【００７９】
一方、プロセッサ１３は、ゲームが終了していないと判断した場合（ステップＳ２８においてＮＯ）には、ステップＳ１６に戻り、上記処理を繰り返す。
【００８０】
図７は、本実施の形態１に従うリーダキャラクタの移動制御処理の詳細を説明するフロー図である。
【００８１】
図７を参照して、プロセッサ１３は、まず操作入力に基づいてリーダキャラクタを移動制御する（ステップＳ３０）。より具体的には、操作入力に基づいてリーダキャラクタの座標および進行方向を更新する。続いてプロセッサ１３は、足跡タイマのカウント値が所定フレーム（例えば、１０フレーム）を超えたかどうかを判定（ステップＳ３２）する。
【００８２】
ステップＳ３２において、プロセッサ１３は、足跡タイマのカウント値が１０フレームを超えたと判断した場合（ステップＳ３２においてＹＥＳ）、リーダキャラクタの現在の座標と最新の移動可能範囲データの足跡基準座標との距離が所定値以上かどうかを判断する（ステップＳ３４）。なお、最新の移動可能範囲データの足跡基準座標は、メインメモリ１５の移動可能範囲データ領域７８に含まれている複数の移動可能範囲データのうち、フレーム番号が最も大きいものから取得する。
【００８３】
ステップＳ３２において、プロセッサ１３は、足跡タイマのカウント値が１０フレームを超えていないと判断した場合（ステップＳ３２においてＮＯ）、または、ステップＳ３４でリーダキャラクタの現在の座標と最新の移動可能範囲データの足跡基準座標との距離が所定値以上でない、すなわち、所定値未満であると判断した場合（ステップＳ３４においてＮＯ）には、新たな移動可能範囲データを設定するための処理を実行することなくリーダキャラクタの移動制御処理を終了する。
【００８４】
一方、ステップＳ３４において、プロセッサ１３は、リーダキャラクタの現在の座標と最新の移動可能範囲データの足跡基準座標との距離が所定値以上であると判断した場合（ステップＳ３４においてＹＥＳ）には、新たな移動可能範囲データを設定するためにリーダキャラクタの現在の座標を新たな足跡基準座標としてフレーム番号とともに記憶する（ステップＳ３６）。例えば、新たな移動可能範囲データを格納する領域を設けてその中に登録するようにすることが可能である。なお、当該新たな足跡基準座標に基づいて後述する移動可能範囲の算出処理における領域範囲の算出が行われる。
【００８５】
次に、プロセッサ１３は、足跡タイマをリセット（再カウントを開始）する（ステップＳ３８）。
【００８６】
次に、プロセッサ１３は、安定状態フラグをリセットする（ステップＳ３９）。本実施の形態１において安定状態フラグをリセットするとは全てのサブキャラクタに対してそれぞれ初期の状態であるオフ（ＯＦＦ）に設定することを意味する。すなわち、各サブキャラクタの安定状態フラグがそれぞれオフ（ＯＦＦ）に設定される。これにより、各サブキャラクタについてリーダキャラクタに追従する移動制御が実行される。
【００８７】
そして、リーダキャラクタの移動制御処理を終了する（リターン）。
図６において、リーダキャラクタの移動制御処理が終了すると、プロセッサ１３は、リーダキャラクタの移動が可能な範囲を算出する移動可能範囲算出処理を実行する（ステップＳ１９）。
【００８８】
以下、移動可能範囲算出処理の詳細について説明する。
図８は、本実施の形態１に従う移動可能範囲算出処理の詳細を説明するフロー図である。
【００８９】
図８を参照して、まず、プロセッサ１３は、新たな足跡基準座標が有るかどうかを判断する（ステップＳ７０）。具体的には、上記のリーダキャラクタの移動制御処理により新たな足跡基準座標がフレーム番号とともに記憶されたかどうかに基づいて判断することが可能である。
【００９０】
次に、プロセッサ１３は、新たな足跡基準座標が有ると判断した場合（ステップＳ７０においてＹＥＳ）には、新たな足跡基準座標に基づいて水平方向および高さ方向の移動可能な範囲を探索する（ステップＳ７２）。
【００９１】
そして、次にプロセッサ１３は、水平方向および高さ方向の探索結果に基づいて移動可能範囲を設定する（ステップＳ７４）。具体的には、新たな移動可能範囲データを格納する領域に、上記により探索された移動が可能な領域範囲と、足跡基準座標とフレーム番号とを対応づけて最新の移動可能範囲データとして登録する。
【００９２】
そして、処理を終了する（リターン）。
一方、プロセッサ１３は、新たな足跡基準座標が無いと判断した場合（ステップＳ７０においてＮＯ）には、処理を終了する（リターン）。この場合、例えば、リーダキャラクタが移動せずに、停止しているような場合には移動可能範囲を繰り返し算出する必要が無いからである。
【００９３】
なお、一例として最大１０個の移動可能範囲データを移動可能範囲データ領域７８に格納可能である場合に、既に移動可能範囲データ領域７８に１０個の移動可能範囲データが記憶されている場合には、フレーム番号が最も小さい移動可能範囲データを記憶している領域に対して、新しい移動可能範囲データを上書きする。
【００９４】
図９は、本実施の形態１に従う移動可能な範囲を探索する概念を説明する図である。
図９（Ａ）を参照して、本実施の形態１に従う移動可能範囲算出処理の方式について説明する。本例においては、サブキャラクタの移動可能範囲に関して、進行方向（移動方向）に基づいた範囲を算出する。具体的には、リーダキャラクタの位置に従う足跡基準座標を基準にリーダキャラクタの進行方向（移動方向）に対して垂直な水平方向（横方向）および高さ方向（縦方向）においてサブキャラクタの移動可能な範囲を算出する。より詳細には、足跡基準座標を基準に水平方向に関して所定距離の範囲内で障害となる可能性となるオブジェクト（例えば壁等）に接触するかどうかを判断する。なお、壁等の地形オブジェクトに限らず、例えば、障害となる他のオブジェクト（例えば、敵オブジェクト）に接触するかどうかを判断するようにして移動可能な範囲を探索するようにしても良い。また、足跡基準座標を基準に高さ方向に関して所定距離の範囲内で例えば地面となるオブジェクトに接触するかどうかを判断する。なお、地面となる地形オブジェクトに限らず、例えば、他のオブジェクト（例えば、船等のオブジェクト）に接触するかどうかを判断するようにして移動可能な範囲を探索するようにしても良い。
【００９５】
図９（Ｂ）を参照して、ここでは、足跡基準座標を基準に進行方向に対して垂直な水平方向（横方向）に関して障害となる壁オブジェクトが配置されている場合が示されている。また、一方で、壁オブジェクトと反対方向側は崖となっている場合が示されている。
【００９６】
まず、水平方向において所定距離の範囲内で障害となるオブジェクトに接触するか否かが判断される。そして、接触しないと判断された範囲内において、次に、高さ方向において移動可能な範囲を算出する。より詳細には、水平方向において移動可能な範囲と規定された範囲において高さ方向（上下方向）において地面となる地形オブジェクトに接触するかどうかを判断する。
【００９７】
この場合、壁側の水平方向において移動可能な範囲と規定された範囲については下方向に地面となるオブジェクトに接触すると判断されるため、高さ方向において移動が可能であると判断される。一例として記号「○」として示されている。
【００９８】
一方で、崖側の水平方向において移動可能な範囲と規定された範囲について、一部については下方向に地面となる地形オブジェクトに接触すると判断されるため、高さ方向において移動が可能であると判断される。一方、崖となっている部分については下方向に地面となるオブジェクトが存在しないため、高さ方向において移動が不可能であると判断される。一例として記号「×」として示されている。
【００９９】
これにより、足跡基準座標を基準に進行方向に対して垂直な水平方向（横方向）および高さ方向において移動可能な範囲を算出することが可能となる。
【０１００】
図９（Ｃ）を参照して、ここでは地形に段差が生じている場合の例が示されている。
例えば、リーダキャラクタの移動に関して高さ方向に関して所定幅の移動が許容されているものとする。この場合、探索する水平方向の高さを変化（例えば上方向に変化）させて所定距離の範囲内で障害となるオブジェクトに接触するか否かを判断する。そして、上記で説明したように下方向に地面となるオブジェクトに接触するかどうかを判断する。本例においては、一例として、この場合、高さを変化させた水平方向において移動可能な範囲と規定された範囲については下方向に地面となるオブジェクトに接触すると判断されるため、高さ方向において移動が可能であると判断される。一例として記号「○」として示されている。
【０１０１】
これにより、足跡基準座標を基準に進行方向に対して垂直な水平方向（横方向）および高さ方向において移動可能な範囲を算出することが可能である。
【０１０２】
なお、当該移動可能な範囲として移動可能な長さ（線）の範囲を設定することも可能であるが、進行方向に対して所定の幅をもたせた領域として移動可能な範囲を算出することも可能である。
【０１０３】
そして、当該処理が、上記したように所定フレーム（一例として１０フレーム）に一度のタイミングで繰り返し実行されて、図３で説明した複数の移動可能範囲ＳＰを設定することが可能となる。そして、当該複数の移動可能範囲に基づいて安全領域ＳＦが形成される。
【０１０４】
図１０は、本実施の形態１に従うサブキャラクタの移動制御処理の詳細を説明するフロー図である。
【０１０５】
図１０を参照して、各サブキャラクタに対してそれぞれ当該移動制御処理が実行される。例えば、キャラクタ番号に従って昇順的に処理を実行する。なお、本例においては、一例として昇順的に処理を実行する場合について説明するが特に当該場合に限られず、キャラクタの特性あるいは属性等に応じて順序を規定するようにしても良い。また、ランダムで処理することも可能である。
【０１０６】
まず、プロセッサ１３は、サブキャラクタの安定状態フラグがオンであるかどうかを判断する（ステップＳ４０）。
【０１０７】
ステップＳ４０において、プロセッサ１３は、サブキャラクタの安定状態フラグがオンであると判断した場合（ステップＳ４０においてＹＥＳ）には、移動制御を実行しない。したがって、ステップＳ６６にスキップする。
【０１０８】
ステップＳ６６において、プロセッサ１３は、全てのサブキャラクタの処理が完了したかどうかを判定する（ステップＳ６６）。ステップＳ６６において、全てのサブキャラクタの処理が完了したと判定した場合（ステップＳ６６においてＹＥＳ）には、処理を終了する（リターン）。一方、ステップＳ６６において、全てのサブキャラクタの処理が完了していないと判定した場合（ステップＳ６６においてＮＯ）には、ステップＳ４０に戻り、別のサブキャラクタについて同様の処理を繰り返す。すなわち、安定状態フラグがオフであるサブキャラクタに関して移動制御処理を実行する。
【０１０９】
ステップＳ４０において、プロセッサ１３は、サブキャラクタの安定状態フラグがオンでない、すなわちオフであると判断した場合（ステップＳ４０においてＮＯ）には、次に、移動する際の目標となる移動可能範囲（目標移動可能範囲とも称する）を設定する（ステップＳ４２）。具体的には、すでに到達した最新の移動可能範囲の次の移動可能範囲を目標移動可能範囲に設定する。
【０１１０】
次に、プロセッサ１３は、目標移動可能範囲内の目標地点を設定する（ステップＳ４４）。当該目標地点は、サブキャラクタが現在の座標から所定距離、移動する際の目標方向を設定するためのものである。
【０１１１】
図１１は、本実施の形態１に従う目標移動可能範囲内の目標地点の設定を説明する図である。
【０１１２】
図１１を参照して、本例においては、サブキャラクタが直近に通過した移動可能範囲上の通過位置に基づいて、次の移動可能範囲上の位置に目標を設定する。より具体的には、サブキャラクタが直近に通過した移動可能範囲の足跡基準座標からの通過位置に基づいて目標移動可能範囲内の目標地点を設定する。
【０１１３】
一例として、サブキャラクタが移動可能範囲ＳＰｎ−１に位置する場合について説明する。また、目標移動可能範囲として移動可能範囲ＳＰｎが設定されている場合について説明する。
【０１１４】
本例においては、一例として移動可能範囲ＳＰｎ−１の範囲として足跡基準座標Ｓｎ−１から水平方向の領域範囲の端までの長さＤｐ、足跡基準座標Ｓｎ−１からサブキャラクタまでの水平方向の長さＤｑである場合について説明する。当該長さＤｐは、移動可能範囲ＳＰｎ−１の領域範囲から算出することが可能である。また、長さＤｑについては、サブキャラクタデータに含まれる到達した最新のフレーム番号に対応する移動可能範囲内の到達した位置座標と、足跡基準座標Ｓｎ−１と基づいて算出することが可能である。なお、本例においては、移動可能範囲ＳＰｎ−１にサブキャラクタが位置するためサブキャラクタの位置座標と、足跡基準座標Ｓｎ−１とに基づいて算出することも可能である。
【０１１５】
目標移動可能範囲ＳＰｎの足跡基準座標Ｓｎから水平方向の領域範囲の端までの長さＤｒとすると、足跡基準座標Ｓｎから目標地点までの長さＤｓは、Ｄｑ×Ｄｒ／Ｄｐとして算出する。なお、長さＤｒは、移動可能範囲ＳＰｎの領域範囲から算出することが可能である。
【０１１６】
すなわち、サブキャラクタが位置する移動可能範囲に関して、足跡基準座標から水平方向の領域範囲の端までの長さに対するサブキャラクタの位置に応じて、目標移動可能範囲の目標地点を設定する。当該方式により、目標移動可能範囲の足跡基準座標から水平方向に長さＤｓシフトさせた目標地点に設定することが可能である。
【０１１７】
本例の如く、目標地点を移動可能範囲内に設定することにより、サブキャラクタの移動経路を安全領域ＳＦ内に収めることが可能となる。
【０１１８】
なお、本例においては、足跡基準座標を基準に、足跡基準座標から水平方向の領域範囲の端までの長さに対するサブキャラクタの位置に応じて、目標移動可能範囲の目標地点を設定する方式について説明したが、特に当該方式に限られず、例えば、領域範囲の端を基準にした場合のサブキャラクタの位置に応じて、目標移動可能範囲の目標地点を設定しても良く、目標移動可能範囲内であればどこに目標地点を設定しても良い。また、本例においては、目標地点として目標移動可能範囲内に設定する場合について説明するが、安全領域ＳＦ内であれば任意に目標地点を設定することが可能である。
【０１１９】
再び図１０を参照して、次に、プロセッサ１３は、目標方向を設定する（ステップＳ４６）。具体的には、目標地点の座標と現在のサブキャラクタの座標に基づいて目標方向を設定する。
【０１２０】
次に、プロセッサ１３は、所定距離移動させる（ステップＳ４８）。具体的には、現在のサブキャラクタの座標を設定した目標方向へサブキャラクタの移動速度の量に応じた量だけシフトさせる。なお、その際、設定した目標地点に到達するまでサブキャラクタを移動させるようにしても良いし、現在の座標から目標方向へ設定した目標地点を越えて所定距離、移動させるようにしても良い。
【０１２１】
次に、プロセッサ１３は、移動した場合に他のサブキャラクタと衝突するかどうかを判定する（ステップＳ５０）。ここでいう他のサブキャラクタとは、リーダキャラクタに追従するサブキャラクタとして複数のサブキャラクタが設けられており、移動制御の対象として選択されているサブキャラクタとは異なるサブキャラクタのことを意味する。なお、当該他のサブキャラクタは全てのサブキャラクタのうち移動制御の処理が終了したサブキャラクタであっても良いし、終了していないサブキャラクタであっても良い。
【０１２２】
ステップＳ５０において、プロセッサ１３は、他のサブキャラクタと衝突してしまうと判定した場合（ステップＳ５０においてＹＥＳ）には、衝突する手前の位置まで当該サブキャラクタを移動させる（ステップＳ５２）。
【０１２３】
次に、プロセッサ１３は、他のサブキャラクタの安定状態フラグがオンであるかどうかを判定する（ステップＳ５４）。本例においては、上述したように安定状態フラグがオンである他のサブキャラクタと衝突した場合には当該衝突したサブキャラクタの安定状態フラグをオンに設定して、当該サブキャラクタの移動制御を終了させる。したがって、他のサブキャラクタの安定状態フラグがオンかどうかを判定する。
【０１２４】
ステップＳ５４において、プロセッサ１３は、他のサブキャラクタの安定状態フラグがオンであると判定した場合（ステップＳ５４においてＹＥＳ）には、当該サブキャラクタの安定状態フラグをオンに設定する（ステップＳ５６）。具体的には、サブキャラクタデータ７６のうち当該サブキャラクタの安定状態フラグをオフからオンに変化させる。これにより移動制御の対象となっている当該サブキャラクタは移動を停止する。そして、ステップＳ５８に進む。
【０１２５】
一方、ステップＳ５４において、プロセッサ１３は、他のサブキャラクタの安定状態フラグがオンでないと判定した場合（ステップＳ５４においてＮＯ）には、ステップＳ５６をスキップしてステップＳ５８に進む。
【０１２６】
また、ステップＳ５０において、プロセッサ１３は、他のサブキャラクタと衝突しないと判定した場合（ステップＳ５０においてＮＯ）には、目標となる移動可能範囲に到達したかどうかを判定する（ステップＳ５８）。なお、目標となる移動可能範囲に到達した場合とは、サブキャラクタが移動して目標となる移動可能範囲内の目標地点に移動した場合のみならず、当該目標となる移動可能範囲の目標地点を通過してさらに移動した場合も含む。
【０１２７】
ステップＳ５８において、プロセッサ１３は、目標移動可能範囲に到達したと判定した場合（ステップＳ５８においてＹＥＳ）には、フレーム番号と、目標移動可能範囲内の到達した位置座標を記憶する（ステップＳ６０）。具体的には、対応するサブキャラクタデータ７６に含まれるすでに到達した移動可能範囲のうち最新のフレーム番号と、到達した位置座標を更新する。当該情報は、上記した目標地点の設定に用いられる。
【０１２８】
そして、次に、プロセッサ１３は、最終の目標移動可能範囲に到達したかどうかを判定する（ステップＳ６２）。具体的には、移動可能範囲データ領域７８に格納されている最新の移動可能範囲に到達したかどうかで判断することが可能である。なお、最終の目標移動可能範囲は、リーダキャラクタが現在位置する最新の移動可能範囲に限られず、最新の１つ前の移動可能範囲等に設定することも可能である。これによりリーダキャラクタとサブキャラクタの群とを切り分けてリーダキャラクタを移動制御し易くすることが可能である。
【０１２９】
ステップＳ６２において、プロセッサ１３は、最終の目標移動可能範囲に到達したと判定した場合（ステップＳ６２においてＹＥＳ）には、当該サブキャラクタの安定状態フラグをオンに設定する（ステップＳ６４）。そして、ステップＳ６６に進む。
【０１３０】
一方、ステップＳ６２において、プロセッサ１３は、最終の目標移動可能範囲に到達していないと判定した場合（ステップＳ６２においてＮＯ）には、ステップＳ６４をスキップして、ステップＳ６６に進む。
【０１３１】
また、ステップＳ５８において、プロセッサ１３は、目標移動可能範囲に到達していないと判定した場合（ステップＳ５８においてＮＯ）には、ステップＳ６６に進む。
【０１３２】
そして、次に、プロセッサ１３は、全てのサブキャラクタの処理が完了したかどうかを判定する（ステップＳ６６）。
【０１３３】
ステップＳ６６において、全てのサブキャラクタの処理が完了したと判定した場合（ステップＳ６６においてＹＥＳ）には、処理を終了する（リターン）。
【０１３４】
一方、ステップＳ６６において、全てのサブキャラクタの処理が完了していないと判定した場合（ステップＳ６６においてＮＯ）には、ステップＳ４０に戻り、別のサブキャラクタについて同様の処理を繰り返す。
【０１３５】
本実施の形態１に従うサブキャラクタの移動制御処理においては、目標移動可能範囲内に目標地点を設定して目標方向を定めてリーダキャラクタの移動に従ってサブキャラクタを移動させる。
【０１３６】
すなわち、複数の移動可能範囲ＳＰに基づいて生成される安全領域ＳＦ内に移動の目標となる地点を設定して目標方向を定めてサブキャラクタを移動制御することにより壁等の障害物に衝突したり、崖から落ちたりすること無く安全にサブキャラクタを移動させることが可能となる。
【０１３７】
また、サブキャラクタは、予め探索された移動可能範囲により生成された安全領域ＳＦ内でサブキャラクタを移動制御させるため、障害物に阻まれて移動できなくなる等が無い。すなわち、障害物に阻まれる前に障害物を回避することが可能となるため、障害物に阻まれて回避する移動制御よりも自然な移動制御を実現することが可能となる。
【０１３８】
さらに、本実施の形態１における移動可能範囲は、リーダキャラクタの位置を基準として周辺を探索して設定されるものであり、サブキャラクタ毎に移動可能範囲を探索する必要はなく、処理負荷の軽いサブキャラクタの移動制御を実行することが可能である。
【０１３９】
（実施の形態２）
上記の実施の形態１においては、目標移動可能範囲として、蓄積された順番に従って目標移動可能範囲を設定してサブキャラクタがリーダキャラクタに従って移動する場合について説明したが、本実施形態２では、サブキャラクタを最終の目標移動可能範囲に可能な限り早く到達させる方式について説明する。具体的には、到達した移動可能範囲に対して近い移動可能範囲を次の移動目標となる目標移動可能範囲に変更する。
【０１４０】
図１２は、本実施の形態２に従う目標移動可能範囲の変更について説明する図である。
図１２を参照して、サブキャラクタが移動可能範囲ＳＰｎ−３に到達した場合に、次の移動目標として順番に移動可能範囲ＳＰｎ−２を設定するのではなく、移動可能範囲ＳＰｎ−２よりも近い距離であり、かつ新しい移動可能範囲、すなわち移動可能範囲ＳＰｎ−１を次の移動目標として設定する。このようなショートカットによって、蓄積された順番に従って移動可能範囲を目標とする場合に比べて、最終の目標移動可能範囲に早く到達することが可能である。
【０１４１】
図１３は、本実施の形態２に従うサブキャラクタの移動制御処理の詳細を説明するフロー図である。
【０１４２】
図１３を参照して、図１０のサブキャラクタの移動制御処理と比較して、ステップＳ８０〜Ｓ８２の処理を追加した点が異なる。その他の点については同様であるのでその詳細な説明については繰り返さない。
【０１４３】
ステップＳ４２において、プロセッサ１３は、目標移動可能範囲を設定した後に、設定した目標移動可能範囲と異なる他の移動可能範囲が有るかどうかを判断する（ステップＳ８０）。具体的には、設定した目標移動可能範囲と、サブキャラクタが到達した移動可能範囲で形成される安全領域ＳＦ内に、目標移動可能範囲と異なる移動可能範囲の少なくとも一部が含まれるかどうかを判断する。当該安全領域ＳＦと領域範囲の少なくとも一部が重なる移動可能範囲が存在するかどうかを判断する。
【０１４４】
ステップＳ８０において、プロセッサ１３は、設定した目標移動可能範囲と異なる他の移動可能範囲が有ると判定した場合（ステップＳ８０においてＹＥＳ）には、当該他の移動可能範囲が、設定した移動可能範囲よりも新しい移動可能範囲であるかどうかを判断する（ステップＳ８１）。すなわち、次の移動目標となる移動可能範囲よりも近い距離であり、かつ新しい移動可能範囲があるかどうかを判断する。
【０１４５】
ステップＳ８１において、プロセッサ１３は、当該他の移動可能範囲が、設定した移動可能範囲よりも新しい移動可能範囲であると判断した場合（ステップＳ８１においてＹＥＳ）には、目標移動可能範囲を変更する（ステップＳ８２）。具体的には、当該他の移動可能範囲を目標移動可能範囲に変更する。なお、設定した目標移動可能範囲と異なる他の移動可能範囲が複数個有る場合には、当該処理を複数回繰り返すものとする。
【０１４６】
そして、プロセッサ１３は、当該変更された目標移動可能範囲内の目標地点を設定する（ステップＳ４４）。
【０１４７】
一方、ステップＳ８１において、プロセッサ１３は、他の移動可能範囲が、設定した移動可能範囲よりも新しい移動可能範囲でないと判断した場合、すなわち古い移動可能範囲であると判断した場合（ステップＳ８１においてＮＯ）には、ステップＳ８２をスキップしてそのままステップＳ４４に進む。なお、設定した目標移動可能範囲と異なる他の移動可能範囲が複数個有る場合には、当該処理を複数回繰り返すものとする。
【０１４８】
また、ステップＳ８０において、プロセッサ１３は、設定した目標移動可能範囲と異なる他の移動可能範囲が無いと判断した場合（ステップＳ８０においてＮＯ）には、ステップＳ４４に進む。
【０１４９】
以降の処理は、図１０で説明したのと同様であるのでその詳細な説明については繰り返さない。
【０１５０】
図１２で説明した例の場合には、サブキャラクタが移動可能範囲ＳＰｎ−３に到達した場合に、次の移動目標として順番に移動可能範囲ＳＰｎ−２に設定される。そして、目標移動可能範囲ＳＰｎ−３と移動可能範囲ＳＰｎ−２で形成される安全領域ＳＦ内に移動可能範囲ＳＰｎ−１があると判断される。そして、移動可能範囲ＳＰｎ−１は、目標移動可能範囲ＳＰｎ−２よりも新しいため移動可能範囲ＳＰｎ−３から移動可能範囲ＳＰｎ−１に目標移動可能範囲が変更される。そして、移動可能範囲ＳＰｎ−１内の目標地点が設定されて、サブキャラクタの移動制御が行われる。このようなショートカットによって、蓄積された順番に従って移動可能範囲を目標とする場合に比べて、最終の目標移動可能範囲に早く到達することが可能となり、より自然な移動制御が可能となる。
【０１５１】
（実施の形態３）
上記の実施の形態においては、一例としてサブキャラクタの移動に関して、リーダキャラクタと同様に移動する場合について説明した。一方で、ゲーム処理においては、リーダキャラクタとサブキャラクタとの移動に関する特性が異なり、移動可能な範囲が異なる場合もある。
【０１５２】
図１４は、実施の形態３に従うリーダキャラクタおよびサブキャラクタの移動を説明する概念図である。
【０１５３】
図１４を参照して、本例においては、リーダキャラクタに関して、地形オブジェクトの属性情報が水の領域を移動している場合が示されている。
【０１５４】
一方で、サブキャラクタは、水中に入る手前に位置している場合が示されている。本例においては、リーダキャラクタは、地形オブジェクトの属性が水の領域を移動可能であるのに対して、サブキャラクタは地形オブジェクトの属性が水の領域を移動できない場合について説明する。具体的には、サブキャラクタデータの移動に関する特性に関して、水中を移動不可能な場合を規定する情報が含まれているものとする。
【０１５５】
図１５は、本実施の形態３に従う移動可能範囲算出処理の詳細を説明するフロー図である。
【０１５６】
図１５を参照して、図８の移動可能範囲算出処理のフローと比較して、ステップＳ７３を追加した点が異なる。
【０１５７】
具体的には、プロセッサ１３は、水平方向および高さ方向の移動可能な範囲を探索（ステップＳ７２）した後、地形属性情報を取得する（ステップＳ７３）。具体的には、探索した移動可能範囲に関して、フィールド情報に基づいて地形オブジェクトの領域の属性情報を取得する。具体的には、地形オブジェクトに関連付けられた属性情報を取得する。例えば、図１４の例においては移動可能範囲ＳＰｎに対応する地形オブジェクトの属性情報として水を取得する。
【０１５８】
そして、プロセッサ１３は、移動可能範囲を設定する（ステップＳ７４）。具体的には、上記したように新たな移動可能範囲データを格納する領域に、上記により探索された移動が可能な領域範囲と、足跡基準座標とフレーム番号とを対応づけるとともに、取得した地形オブジェクトの属性情報を含めた最新の移動可能範囲データとして登録する。
【０１５９】
そして、処理を終了する（リターン）。
図１６は、本実施の形態３に従うサブキャラクタの移動制御処理の詳細を説明するフロー図である。
【０１６０】
図１６を参照して、図１０のサブキャラクタの移動制御処理と比較して、ステップＳ８６を追加した点が異なる。その他の点については同様であるのでその詳細な説明については繰り返さない。
【０１６１】
ステップＳ４２において、目標移動可能範囲を設定した後、次に、プロセッサ１３は、移動可能属性であるかどうかを判断する（ステップＳ８６）。具体的には、目標移動可能範囲に関連付けて設定されている地形オブジェクトの属性情報を取得して、当該地形オブジェクトに関してサブキャラクタが移動可能か否かを判断する。本例においては、サブキャラクタデータの特性に基づいて当該地形オブジェクトを移動可能か否かを判断する。例えば、地形オブジェクトの属性情報が水であり、サブキャラクタデータの特性が水中を移動不可能な場合を規定する情報が含まれている場合には、移動可能属性でないと判定する。一方、移動可能である場合には移動可能属性であると判定する。
【０１６２】
ステップＳ８６において、移動可能属性であると判定した場合（ステップＳ８６においてＹＥＳ）には、目標移動可能範囲内の目標地点を設定する（ステップＳ４４）。以降の処理は、図１０で説明したのと同様であるのでその詳細な説明については繰り返さない。
【０１６３】
一方、ステップＳ８６において、移動可能属性でないと判定した場合（ステップＳ８６においてＮＯ）には、ステップＳ６６に進む。すなわち、当該サブキャラクタに関する移動処理は実行しない。
【０１６４】
当該処理により、リーダキャラクタとサブキャラクタとの移動に関する特性が異なる場合に移動制御を変更することが可能である。
【０１６５】
なお、本例においては、サブキャラクタは、例えば、地形オブジェクトの属性情報が水である領域に入る手前で停止する場合について説明したが、例えば、停止するのではなく、目標移動可能範囲に関連付けて設定されている地形オブジェクトの属性情報が移動できない属性である場合には、ジャンプ等の特殊な移動制御処理を実行するようにすることも可能である。
【０１６６】
当該処理により、リーダキャラクタとサブキャラクタとの移動に関する特性が異なる場合に、サブキャラクタの移動に関する特性に合わせた自然な移動制御を実現することが可能である。
【０１６７】
（実施の形態３の変形例）
別の変形例として、移動に関する特性が異なる別の例として、リーダキャラクタは歩行して移動するのに対して、サブキャラクタはゲーム空間上において空中を飛行して移動する場合が挙げられる。
【０１６８】
図１７は、実施の形態３の変形例に従うリーダキャラクタとサブキャラクタとの移動の特性が異なる場合を説明する図である。
【０１６９】
図１７を参照して、図２のキャラクタと比較して、本例においては、サブキャラクタＡと、サブキャラクタＢとが隊列を組んでいる場合が示されている。
【０１７０】
ここで、サブキャラクタＡは、通常のサブキャラクタでありリーダキャラクタと同様に歩行して移動するのに対して、サブキャラクタＢは、特殊なサブキャラクタでありリーダキャラクタおよびサブキャラクタＡと異なり空中を飛行して移動するものとする。
【０１７１】
すなわち、サブキャラクタＢの移動に関する特性として空中を移動する場合を規定する情報が含まれているものとする。
【０１７２】
当該特殊なサブキャラクタは、移動可能範囲を通常のサブキャラクタであるサブキャラクタＡと異なる範囲に設定することが可能である。すなわち、サブキャラクタの特性に基づいて移動可能範囲を可変に設定する。
【０１７３】
図１８は、本実施の形態３の変形例に従うメインメモリ１５のメモリマップを説明する図である。
【０１７４】
図１８を参照して、図５のメインメモリと比較して、移動可能範囲データ領域７８を第１移動可能範囲データ領域７９に置換するとともに、第２移動可能範囲データ領域８１をさらに追加した点が異なる。
【０１７５】
第１移動可能範囲データ領域７９は、図５で説明したのと同様に、通常のサブキャラクタであるサブキャラクタＡに関して移動可能な範囲を探索した結果である移動可能範囲データ８０が格納される。第１移動可能範囲データ領域７９の移動可能範囲を第１移動可能範囲とも称する。
【０１７６】
第２移動可能範囲データ領域８１は、本例においては、通常のサブキャラクタとは異なるサブキャラクタＢに関して移動可能な範囲を探索した結果である移動可能範囲データ８２が格納される。また、第２移動可能範囲データ領域８１の移動可能範囲を第２移動可能範囲とも称する。
【０１７７】
各移動可能範囲データには、足跡基準座標と、領域範囲と、フレーム番号とが含まれる。
【０１７８】
図１９は、本実施の形態３の変形例に従う移動可能範囲算出処理の詳細を説明するフロー図である。
【０１７９】
図１９を参照して、図８の移動可能範囲算出処理のフローと比較して、ステップＳ７５〜ステップＳ７７の処理をさらに追加した点が異なる。
【０１８０】
具体的には、ステップＳ７４において、プロセッサ１３は、水平方向および高さ方向の探索結果に基づいて第１移動可能範囲を設定する。すなわち、第１移動可能範囲データ領域７９に第１移動可能範囲に関する情報を登録する。当該第１移動可能範囲は、サブキャラクタＡの移動が可能な範囲に相当する。
【０１８１】
次に、プロセッサ１３は、特殊なサブキャラクタがいるかどうかを判定する（ステップＳ７５）。本例においては、サブキャラクタＢが特殊なサブキャラクタに相当する。
【０１８２】
ステップＳ７５において、特殊なサブキャラクタがいると判定した場合（ステップＳ７５においてＹＥＳ）には、新たな足跡基準座標に基づいて特殊なサブキャラクタに従う水平方向および高さ方向の移動可能な範囲を探索する（ステップＳ７６）。具体的には、図９で説明したのと同様の探索処理を実行する。例えば、特殊なサブキャラクタがサブキャラクタＢの場合には、高さ方向については探索せずに水平方向のみを探索するようにしても良い。例えば、上記図９（Ｂ）の場合に通常のサブキャラクタＡについては、崖となっている部分については下方向に地面となるオブジェクトが存在しないため高さ方向において移動が不可能であると判断される。
【０１８３】
一方で、特殊なサブキャラクタであるサブキャラクタＢについては、移動の特性に関して空中を飛行して移動するため一例として高さ方向を探索せずに水平方向のみを探索する。
【０１８４】
当該場合には、崖となっている部分についても移動可能すなわち記号「○」とすることが可能である。あるいは、高さ方向として下方向を探索するのではなく上方向を探索して障害物等と衝突しないか探索するようにしても良い。
【０１８５】
そして、次にプロセッサ１３は、水平方向および高さ方向の探索結果に基づいて第２移動可能範囲を設定する（ステップＳ７７）。すなわち、第２移動可能範囲データ領域８１に第２移動可能範囲に関する情報を登録する。当該第２移動可能範囲データ領域は、サブキャラクタＢの移動が可能な範囲に相当する。
【０１８６】
そして、処理を終了する（リターン）。
一方、特殊なサブキャラクタがいないと判定した場合（ステップＳ７５においてＮＯ）には、そのまま処理を終了する（リターン）。この場合、特殊なサブキャラクタがいないために再度、当該サブキャラクタの移動可能な範囲を算出する必要が無いからである。
【０１８７】
そして、サブキャラクタの移動制御処理に関しては、図１０で説明したのと同様である。具体的には、サブキャラクタＡについては、第１移動可能範囲データ領域７９に格納されている第１移動可能範囲を目標移動可能範囲に設定し、当該目標移動可能範囲内に目標地点を設定して上記と同様の移動制御を実行する。そして、特殊なサブキャラクタすなわちサブキャラクタＢについては、第２移動可能範囲データ領域８１に格納されている第２移動可能範囲を目標移動可能範囲に設定し、当該目標移動可能範囲内に目標地点を設定して上記と同様の移動制御を実行する。
【０１８８】
当該処理により、特殊なサブキャラクタについては移動可能範囲を通常のサブキャラクタと異なる範囲に設定し、当該範囲に基づくサブキャラクタの移動制御処理を実行することが可能であり、サブキャラクタの種別に応じた、すなわち移動の特性に合わせた自然な移動制御を実現することが可能である。
【０１８９】
なお、本例においては、移動に関する特性が異なる例として空中を飛行して移動するサブキャラクタについて説明したが、特に当該特性に限定されるものではなく他の特性を有する場合においても同様に適用可能である。例えば、所定の領域（たとえば沼地や火があるような場所等）に対してリーダキャラクタは移動可能ではないが、サブキャラクタは移動可能であるような特性を有している場合に、上記と同様の処理により当該サブキャラクタの移動可能な範囲を算出して移動制御を実行するようにしてもよい。
【０１９０】
［その他の実施の形態］
上記の実施の形態においては、目標移動可能範囲内の目標地点を設定してサブキャラクタを移動制御する方式について説明したが、リーダキャラクタの座標に基づいた移動目標座標を設定してサブキャラクタを移動制御することも可能である。
【０１９１】
図２０は、サブキャラクタの移動目標座標の別の設定方式を説明する図である。
図２０を参照して、ここでは、リーダキャラクタの位置に対して１５個のスロットが設けられる場合が示されている。スロットの個数はサブキャラクタの数に従って増減される。
【０１９２】
そして、スロットの位置は、リーダキャラクタの位置座標に従って相対的に規定されているものとする。また、各スロットの番号は、例えば、サブキャラクタのそれぞれの番号と対応付けられているものとする。例えば、サブキャラクタ１番は、スロット１に対応付けられているものとする。サブキャラクタ２番は、スロット２に対応付けられているものとする。同様の方式に従ってサブキャラクタとスロットが対応付けられているものとする。
【０１９３】
そして、目標地点の設定においては、目標となる目標移動可能範囲の足跡基準座標に従ってスロットを配置して、配置した対応するスロットを目標地点に設定する。そして、各サブキャラクタは、設定された目標地点を目指して移動制御するようにしても良い。その他の点については同様である。
【０１９４】
なお、本実施形態では、ゲーム空間が３次元の仮想空間であるとしたが、本発明はこれに限らず、ゲーム空間が２次元であってもよい。
【０１９５】
また、本実施形態では、ゲームプログラムが内部記憶装置１４に保存されている場合について説明したが、任意の記録媒体から内部記憶装置１４に供給されてもよいし、無線通信装置１６あるいは有線の通信回線を通じて内部記憶装置１４に供給されてもよい。さらには、ゲームプログラムの機能をハードウェアのみで実現しても構わない。
【０１９６】
なお、本例においては、ゲーム装置の各部の構成が一体となった構成について説明したが、特に一体であることに限られず、一部が別に設けられる構成としても良い。例えば、入力装置、あるいは、表示装置が別体として形成された情報処理システムとして実現することも当然に可能である。
【０１９７】
また、本実施の形態におけるプログラムとして、パーソナルコンピュータで実行可能なアプリケーションを提供してもよい。このとき、本実施の形態に係るプログラムは、パーソナルコンピュータ上で実行される各種アプリケーションの一部の機能として組み込まれてもよい。
【０１９８】
今回開示された実施の形態およびその変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。実施の形態およびその変形例において開示された技術は、可能な限り単独でも組み合わせても実施され得ることが意図される。
【符号の説明】
【０１９９】
１０  ゲーム装置、１１  入力装置、１２  表示装置、１３  プロセッサ、１４  内部記憶装置、１５  メインメモリ、１６  無線通信装置、７０  マップ情報データ領域、７２  リーダキャラクタデータ領域、７４  サブキャラクタデータ領域、７６  サブキャラクタデータ、７８  移動可能範囲データ領域、７９  第１移動可能範囲データ領域、８０，８２  移動可能範囲データ、８１  第２移動可能範囲データ領域。
【図１】
2014233536.tif 000003
【図２】
2014233536.tif 000004
【図３】
2014233536.tif 000005
【図４】
2014233536.tif 000006
【図５】
2014233536.tif 000007
【図６】
2014233536.tif 000008
【図７】
2014233536.tif 000009
【図８】
2014233536.tif 000010
【図９】
2014233536.tif 000011
【図１０】
2014233536.tif 000012
【図１１】
2014233536.tif 000013
【図１２】
2014233536.tif 000014
【図１３】
2014233536.tif 000015
【図１４】
2014233536.tif 000016
【図１５】
2014233536.tif 000017
【図１６】
2014233536.tif 000018
【図１７】
2014233536.tif 000019
【図１８】
2014233536.tif 000020
【図１９】
2014233536.tif 000021
【図２０】
2014233536.tif 000022