(57)【要約】【課題】プレーヤが直接操作可能なキャラクタ以外のキャラクタについてプレーヤの意思を反映させた移動制御を実現し、プレーヤにキャラクタの操作感覚を与え、ゲームの面白さを増大させる。【解決手段】各操作部に対応づけられる直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のキャラクタの中から選択的に変更設定させると共に、プレーヤによる各操作部に対する操作入力に基づき、現在の直接操作キャラクタとして各操作部に対応づけて設定されているキャラクタを移動制御する。また、プレーヤが各操作部を操作した際の操作入力の内容を、各キャラクタと対応付けて操作データ３０４に記憶し、従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタについては、当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する。【選択図】図１
2006254950.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラムであって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段、
プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段、
前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項２】
前記他キャラ制御手段が、前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタに対応づけて前記操作内容記憶手段により記憶されている最新の操作入力の内容に基づいて、当該キャラクタを移動制御するように前記コンピュータを機能させるための請求項１に記載のプログラム。
【請求項３】
コンピュータに、プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラムであって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段、
前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段、
前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項４】
前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続する仮想紐を前記拘束条件として設定する仮想紐設定手段を有するように前記コンピュータを機能させ、
前記他キャラ制御手段が、前記仮想紐設定手段により設定された各仮想紐に基づき、当該仮想紐で結ばれたキャラクタ間の距離が当該仮想紐の紐長を超えないようにして前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
ための請求項３に記載のプログラム。
【請求項５】
前記直接操作対象キャラ制御手段が、前記複数の直接操作キャラクタのうち、何れか２つの直接操作キャラクタ間の距離が、前記仮想紐設定手段により設定された当該２つの直接操作キャラクタ間を最短で結ぶ仮想紐の組合せの合計長より長い場合、当該２つの直接操作キャラクタのうち一方の位置と他方の位置とを近づけ、当該距離が当該合計長以上とならないように当該２つの直接操作キャラクタの位置を変化させるように前記コンピュータを機能させるための請求項４に記載のプログラム。
【請求項６】
前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続し、バネ長に応じて可変する弾性力が設定された仮想バネを前記拘束条件として設定する仮想バネ設定手段を有するように前記コンピュータを機能させ、
前記直接操作対象キャラ制御手段の移動制御による前記直接操作キャラクタの位置変化に基づき、当該直接操作キャラクタに接続されている仮想バネの弾性力を更新設定する第１の弾性力更新手段として前記コンピュータを機能させ、
前記他キャラ制御手段が、各仮想バネに設定されている弾性力に基づいて前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
前記他キャラ制御手段の移動制御による前記他のキャラクタの位置変化に基づき、当該他のキャラクタに接続されている仮想バネの弾性力を更新設定する第２の弾性力設定手段として前記コンピュータを機能させる、
ための請求項３に記載のプログラム。
【請求項７】
請求項１〜６のいすれか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項８】
プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段と、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段と、
プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段と、
前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段と、
を備えるゲーム装置。
【請求項９】
プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段と、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段と、
前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段と、
前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段と、
を備えるゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、接続されたコントローラから入力される操作信号に基づいて所与のゲームを実行させるためのプログラム等に関する。
【背景技術】
【０００２】
従来、プレーヤによって操作される複数の味方キャラクタと、コンピュータ制御される複数の敵キャラクタとが対戦するタイプのゲームがある。例えば、サッカーゲームなどのスポーツ系のゲームや、主人公と複数の仲間でパーティを組むＲＰＧ（ロールプレイング）ゲームの戦闘シーンが該当する。これらのゲームでは、通常、操作対象となるキャラクタを切り替えることで、現在の操作対象である１体のキャラクタの動きや機能を巧妙に使いこなして敵陣を攻めたり、味方の陣地を守ったりして、戦略的な攻防を楽しむことができる。
【０００３】
ところが、一度に操作できるキャラクタが一体であったため、複数のキャラクタを同時に操作する方法が望まれていた。そこで、複数のキャラクタをプレーヤの操作により独立して制御する方法として、同一プレーヤにより操作されるコントローラの右手操作部及び左手操作部からそれぞれ出力される右手操作信号及び左手操作信号に応じて、ゲーム画面上の２体のキャラクタの動作を独立して制御するキャラクタ制御方法が考案されている（例えば、特許文献１）。
【特許文献１】特開２００１−５９７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したキャラクタ制御方法（例えば、特許文献１）にあっては、ゲーム画面上の２体のキャラクタの動作を独立して制御することはできるが、キャラクタが３体以上ある場合、他のキャラクタについては、プレーヤの操作により独立して制御することはできず、３体目以上のキャラクタについてはコンピュータ制御が行われていた。従って、これらのキャラクタについては、プレーヤの意思・作戦を反映させることが困難であり、戦略的なゲーム展開を実現することが難しかった。
【０００５】
本発明の課題は、プレーヤが直接操作可能なキャラクタ以外のキャラクタについてプレーヤの意思を反映させた移動制御を実現し、プレーヤにキャラクタの操作感覚を与え、ゲームの面白さを増大させることを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、第１の発明は、
コンピュータに、プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部（例えば、図２の左手操作部１７００ａ，右手操作部１７００ｂ）に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタ（例えば、図３のキャラクタＥａ〜Ｅｃ）の移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラム（例えば、図４のキャラクタ制御処理プログラム３０１）であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段（例えば、図４の操作制御部２２１、図８のステップＳ５）、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段（例えば、図４のキャラクタ制御部２２２、図９のステップＳ１２〜Ｓ１４）、
プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段（例えば、図４の操作データ３０４）、
前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段（例えば、図４のキャラクタ制御部２２２、図９のステップＳ１８〜Ｓ２０）、
として前記コンピュータを機能させるためのプログラムである。
【０００７】
第８の発明は、
プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部（例えば、図２の左手操作部１７００ａ，右手操作部１７００ｂ）に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタ（例えば、図３のキャラクタＥａ〜Ｅｃ）の移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置（例えば、図１の家庭用ゲーム装置１）であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段（例えば、図４の操作制御部２２１、図８のステップＳ５）と、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段（例えば、図４のキャラクタ制御部２２２、図９のステップＳ１２〜Ｓ１４）と、
プレーヤが前記キャラ操作入力部それぞれを操作した際の操作入力の内容を、前記変更設定手段により現在直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタと対応づけて記憶する操作内容記憶手段例えば、図４の操作データ３０４）と、
前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタを、前記操作内容記憶手段により当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御する他キャラ制御手段（例えば、図４のキャラクタ制御部２２２、図９のステップＳ１８〜Ｓ２０）と、
を備えるゲーム装置である。
【０００８】
第１の発明等によれば、キャラ操作入力部それぞれに対応付けて設定されている直接操作キャラクタについては、キャラ操作入力部に対する操作入力に基づいて移動制御すると共に、キャラ操作入力部に対する操作入力の内容を現在設定されている操作対象キャラクタに対応付けて操作内容記憶手段に記憶させ、現在直接操作キャラクタとして設定されていないキャラクタについては、操作内容記憶手段によりキャラクタに対応付けて記憶されている操作入力の内容に基づいて移動制御するため、プレーヤは、キャラ操作入力部に対応付けられていないキャラクタについても、自己の操作入力に基づいて移動制御が行われているような操作感覚を味わうことができる。例えば、直接操作キャラクタの移動制御に追従するといった単純な移動制御ではなく、直接操作キャラクタと全く異なる方向への移動制御が可能となり、プレーヤは複数のキャラクタそれぞれを戦略的に移動させることができる。
【０００９】
また、Ｎ個のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のＮ+１以上のキャラクタの移動を制御する場合に、Ｎ個のキャラ操作入力部それぞれに対応づけられる直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のキャラクタの中から選択的に設定変更することができるため、ゲーム中に適宜直接操作キャラクタを設定変更することにより、Ｎ+１以上のキャラクタそれぞれについてプレーヤの意思を反映した移動制御を行うことができる。
【００１０】
第２の発明は、第１の発明のプログラムであって、
前記他キャラ制御手段が、前記変更設定手段により従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタに対応づけて前記操作内容記憶手段により記憶されている最新の操作入力の内容に基づいて、当該キャラクタを移動制御するように前記コンピュータを機能させるためのプログラムである。
【００１１】
第２の発明によれば、他キャラ制御手段により制御されるキャラクタは、操作内容記憶手段により記憶されている最新の操作入力の内容に基づいて移動制御が行われるため、プレーヤは直接対象キャラクタ以外の他のキャラクタについても、最新の操作入力の内容を考慮して戦略的に移動させることができる。
【００１２】
第３の発明は、
コンピュータに、プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部（例えば、図２の左手操作部１７００ａ，右手操作部１７００ｂ）に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタ（例えば、図１１のユニットＦａ〜Ｆｃ）の移動を制御し、前記仮想空間の画像を生成してゲームを実行させるためのプログラム（例えば、図１３のユニット制御処理プログラム６０１）であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段（例えば、図１３のキャラクタ制御部２２４、図１８のステップＳ２８）、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段（例えば、図１３のキャラクタ制御部２２４、図１９のステップＳ３１〜Ｓ３９）、
前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段（例えば、図１３の仮想紐情報６０７）、
前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段（例えば、図１３のキャラクタ制御部２２４、図２０のステップＳ５１〜Ｓ５８）、
として前記コンピュータを機能させるためのプログラムである。
【００１３】
第９の発明は、
プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部（例えば、図２の左手操作部１７００ａ，右手操作部１７００ｂ）に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置（例えば、図１の家庭用ゲーム装置１）であって、
前記キャラ操作入力部それぞれに対応づける直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って前記複数のキャラクタの中から選択的に変更設定する変更設定手段（例えば、図１３のキャラクタ制御部２２４、図１８のステップＳ２８）と、
プレーヤによる前記キャラ操作入力部それぞれに対する操作入力に基づき、前記変更設定手段により現在の直接操作キャラクタとして当該キャラ操作入力部に対応づけて設定されているキャラクタを移動制御する直接操作対象キャラ制御手段（例えば、図１３のキャラクタ制御部２２４、図１９のステップＳ３１〜Ｓ３９）と、
前記各キャラクタ相互間の位置関係に関する拘束条件を設定する拘束条件設定手段（例えば、図１３の仮想紐情報６０７）と、
前記直接操作キャラクタの移動に伴い、前記直接操作キャラクタ以外の他のキャラクタを、前記拘束条件設定手段により設定された各キャラクタ相互間の拘束条件を満たすように移動させる制御を行う他キャラ制御手段（例えば、図１３のキャラクタ制御部２２４、図１８のステップＳ５１〜Ｓ５８）と、
を備えるゲーム装置である。
【００１４】
第３の発明等によれば、プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部に対する操作入力に基づいて、仮想空間中のＮ＋１以上のキャラクタの移動を制御し、前記仮想空間の画像を生成してゲームを実行するためのゲーム装置において、キャラ操作入力部それぞれに対応付けて設定されている直接操作キャラクタについては、キャラ操作入力部に対する操作入力に基づいて移動制御すると共に、直接操作キャラクタ以外の他のキャラクタを、各キャラクタ相互間の位置関係に関する拘束条件を満たすように移動制御することができるため、プレーヤは、キャラ操作入力部に対応付けて設定されていない他のキャラクタについても、プレーヤ操作により間接的に操作しているような感覚を味わうことができる。
【００１５】
また、プレーヤによるＮ個（Ｎは２以上の整数。）のキャラ操作入力部に対する操作入力に基づいて、Ｎ+１以上のキャラクタの移動を制御する場合、Ｎが２以上であることから、拘束条件に基づく一方向の移動制御だけでなく、多方向にＮ+１以上のキャラクタを移動制御させることができる。つまり、複数のキャラクタにより形成される陣形を可変させながら移動の制御を行うといったことができ、プレーヤは戦略的なゲームプレイを行うことができる。
【００１６】
第４の発明は、第３の発明のプログラムであって、
前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続する仮想紐を前記拘束条件として設定する仮想紐設定手段を有するように前記コンピュータを機能させ、
前記他キャラ制御手段が、前記仮想紐設定手段により設定された各仮想紐に基づき、当該仮想紐で結ばれたキャラクタ間の距離が当該仮想紐の紐長を超えないようにして前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
ためのプログラムである。
【００１７】
第４の発明によれば、直接操作キャラクタ以外の他のキャラクタについては、仮想紐で結ばれたキャラクタ間の距離が仮想紐の紐長を超えないように移動制御されるため、直接操作キャラクタの操作入力に連動して、プレーヤが容易に推測可能な移動先に直接操作キャラクタ以外の他のキャラクタを移動させることができる。この結果、プレーヤは直接操作キャラクタ以外の他のキャラクタについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により他のキャラクタを移動させているような感覚を味わうことができる。
【００１８】
第５の発明は、第４の発明のプログラムであって、
前記直接操作対象キャラ制御手段が、前記複数の直接操作キャラクタのうち、何れか２つの直接操作キャラクタ間の距離が、前記仮想紐設定手段により設定された当該２つの直接操作キャラクタ間を最短で結ぶ仮想紐の組合せの合計長より長い場合、当該２つの直接操作キャラクタのうち一方の位置と他方の位置とを近づけ、当該距離が当該合計長以上とならないように当該２つの直接操作キャラクタの位置を変化させるように前記コンピュータを機能させるためのプログラムである。
【００１９】
第５の発明によれば、直接操作キャラクタについても、仮想紐の紐長に基づいて、その位置を変化させるように移動制御がなされるため、直接操作キャラクタ以外の他のキャラクタを移動制御する際に破綻を生じさせることがなく、計算負荷を軽減することができる。
【００２０】
第６の発明は、第３の発明のプログラムであって、
前記拘束条件設定手段が、前記複数のキャラクタの全部又は一部の相互間に当該キャラクタ間を接続し、バネ長に応じて可変する弾性力が設定された仮想バネを前記拘束条件として設定する仮想バネ設定手段（例えば、図２４の仮想バネ情報７０７）を有するように前記コンピュータを機能させ、
前記直接操作対象キャラ制御手段の移動制御による前記直接操作キャラクタの位置変化に基づき、当該直接操作キャラクタに接続されている仮想バネの弾性力を更新設定する第１の弾性力更新手段（例えば、図２４のキャラクタ制御部２２６、図２８のステップＳ７３）として前記コンピュータを機能させ、
前記他キャラ制御手段が、各仮想バネに設定されている弾性力に基づいて前記直接操作キャラクタ以外の他のキャラクタの移動を制御するように前記コンピュータを機能させる、
前記他キャラ制御手段の移動制御による前記他のキャラクタの位置変化に基づき、当該他のキャラクタに接続されている仮想バネの弾性力を更新設定する第２の弾性力設定手段（例えば、図２４のキャラクタ制御部２２６、図２８のステップＳ７４）として前記コンピュータを機能させる、
ためのプログラムである。
【００２１】
第６の発明によれば、直接操作キャラクタ以外の他のキャラクタのうち、直接操作キャラクタと仮想バネで接続されているキャラクタについては、第１の弾性力設定手段により直接操作キャラクタの位置変化に基づいて更新される仮想バネの弾性力に応じて移動制御され、直接操作キャラクタ以外の他のキャラクタと仮想バネで接続されているキャラクタについては、第２の弾性力設定手段により他のキャラクタの位置変化に基づいて更新される仮想バネの弾性力に基づいて移動制御されるため、直接操作キャラクタの操作入力に連動して、プレーヤが容易に推測可能な移動先に直接操作キャラクタ以外の他のキャラクタを移動させることができる。このため、プレーヤは直接操作キャラクタ以外の他のキャラクタについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により移動しているような感覚を味わうことができる。
【００２２】
また、バネ長に応じて可変する弾性力が設定された仮想バネが拘束条件として設定されるため、直接操作キャラクタの位置に応じて自由度の高い他のキャラクタの移動制御を実現することができる。これにより、複数のキャラクタによる多彩な陣形を取り得ることができ、戦略的なゲームプレイを楽しむことができる。
【００２３】
第７の発明は、第１〜第６の発明の何れかのプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体（例えば、図４の記憶部３０）である。
【００２４】
第７の発明によれば、第１から第６の発明と同様の作用効果を奏する情報記憶媒体を実現し得る。
【発明の効果】
【００２５】
本発明によれば、プレーヤが直接操作可能なキャラクタ以外のキャラクタについてプレーヤの意思を反映させた制御を実現し、プレーヤにキャラクタの操作感覚を与え、ゲームの面白さを増大させることができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面を参照して、本発明を実施するための最良の形態を説明する。なお、以下では、自キャラクタを操作することにより仮想３次元空間内を移動させて、ＲＰＧ（ロールプレイングゲーム）を実行する場合を説明するが、本発明の適用がこれに限定されるものではない。
【００２７】
［第１の実施の形態］
１−１．ゲーム装置の外観例
本第１の実施の形態における家庭用ゲーム装置１について図を参照して説明する。図１は、本発明を家庭用ゲーム装置１に適用した一例を示す外観図である。図１に示すように、家庭用ゲーム装置１は、本体装置１１００と、コントローラ１１１０，１１１０と、スピーカ１２０２を具備するディスプレイ１２００と、を備える。コントローラ１１１０，１１１０は本体装置１１００に接続され、ディスプレイ１２００は、画像信号及び音信号を伝送可能なケーブルＫによって本体装置１１００に接続されている。
【００２８】
また、本体装置１１００は、例えばＣＰＵやＩＣメモリ等を搭載した制御ユニットや、ＣＤ−ＲＯＭ１１０４等の情報記憶媒体の読取装置を具備する。そして、ＣＤ−ＲＯＭ１１０４等から読み出したゲーム情報と、コントローラ１１１０，１１１０からの操作信号とに基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。さらに、生成した画像信号及び音信号をディスプレイ１２００に出力して、ディスプレイ１２００にゲーム画面を表示させると共に、スピーカ１２０２からゲーム音を出力させる。プレーヤは、ディスプレイ１２００に表示されたゲーム画面を見ながら、コントローラ１１１０，１１１０を操作してゲームを楽しむ。
【００２９】
本体装置１１００がゲーム処理を行うために必要なプログラムやデータ等を含むゲーム情報等は、例えば本体装置１１００に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１１０４やＩＣメモリ１１０６、メモリカード１１０８等に格納されている。
【００３０】
コントローラ１１１０，１１１０は、プレーヤがゲーム操作等を入力するためのボタンスイッチ等を具備し、操作に応じた操作信号を本体装置１１００に出力する。図２に、本実施形態におけるコントローラ１１１０の平面図を示す。同図によれば、コントローラ１１００は、左右に２つのグリップ１３００ａ、１３００ｂと、グリップ１３００ａ、１３００ｂの内側にそれぞれ設けられた操作スティック１５００ａ、１５００ｂを備える本体１４００と、本体１４００の表面上に設けられたボタン群１６００と、から主に構成される。
【００３１】
操作スティック１５００ａは、左手用の操作スティックであり、プレーヤがグリップ１３００ａを握った際に左手の親指が届く範囲に配置される。操作スティック１５００ｂは、右手用の操作スティックであり、プレーヤがグリップ１３００ｂを握った際に右手の親指が届く範囲に配置される。この操作スティック１５００ａ、１５００ｂは、真上に直立した位置が中立位置であって、３６０度の方向に傾斜し、且つ直立した状態で旋回可能であり、また、外力が加わらないときは中立位置に弾性保持される。操作スティック１５００ａ、１５００ｂがプレーヤに操作されると、操作スティック１５００ａ、１５００ｂが傾斜した傾斜角及び傾斜方向に応じた操作信号が本体装置１１００に出力される。
【００３２】
ボタン群１６００は、左手ボタン群１６００ａと、右手ボタン群１６００ｂとに分割され、それぞれプレーヤがグリップ１３００ａ、１３００ｂを握った際の左右の親指が届く範囲にそれぞれ配置される。左手ボタン群１６００ａには、４つの矢印ボタン↑，↓，←，→と、１つの補助ボタンＬ１が含まれ、右手ボタン群１６００ｂには、４つの機能ボタン○，×，△，□と、１つの補助ボタンＲ１が含まれる。
【００３３】
以下では、左手用のグリップ１３００ａ、操作スティック１５００ａ及び左手ボタン群１６００ａを併せて左手操作部１７００ａとし、右手用のグリップ１３００ｂ、操作スティック１５００ｂ及び右手ボタン群１６００ｂを合わせて右手操作部１７００ｂとする。この左手操作部１７００ａ及び右手操作部１７００ｂには、それぞれ１体ずつのキャラクタをプレーヤが直接操作する対象のキャラクタとして設定可能であり、プレーヤは、コントローラ１１１０を用いて同時に２体のキャラクタを直接操作することができる。なお、以下では、左手操作部１７００ａと右手操作部１７００ｂとを併せて各操作部１７００ａ，１７００ｂと記す。
【００３４】
１−２．原理
本実施の形態においては、プレーヤが、操作対象であるキャラクタを仮想三次元空間に背景やキャラクタ等の各種オブジェクトを配置して設定されたゲーム空間内で移動させ、発生するさまざまなイベントをクリアしていくことでゲームが進行される。そして、所与の視点、例えば、プレーヤの操作対象であるキャラクタに追従するように設定された仮想カメラからゲーム空間を見た３ＤＣＧがゲーム画面としてディスプレイ１２００に表示される。
【００３５】
図３は、ユーザの操作対象となるキャラクタの動作を説明するための図であり、本実施の形態におけるゲーム空間の概略俯瞰図である。まず、図３（ａ）に示すように、ゲーム空間には、プレーヤの直接操作対象となるキャラクタ（以下、「直接操作キャラクタ」と記す）と、間接操作対象となるキャラクタ（以下、「間接操作キャラクタ」と記す）とが配置される。同図では、３体のキャラクタＥａ、Ｅｂ、Ｅｃが設定・配置された様子が示されている。
【００３６】
直接操作キャラクタは、左手操作部１７００ａ、右手操作部１７００ｂから入力されるプレーヤの操作入力に基づいて移動制御されるキャラクタである。また。間接操作キャラクタは、直接操作キャラクタとして設定されていた際に入力された操作入力の内容に基づいて移動制御されるキャラクタである。直接操作キャラクタと間接操作キャラクタとは、ゲーム実行中のプレーヤの操作入力に応じて設定の変更が可能であり、直接操作キャラクタに設定されたキャラクタは、プレーヤの操作入力に基づいて移動制御が行われ、直接操作キャラクタから間接操作キャラクタに設定が変更されたキャラクタは、従前に入力されていた操作入力の内容に基づいて移動制御が行われる。また、従前に直接操作キャラクタとして設定された履歴のない間接操作キャラクタについては、移動制御が行われない。
【００３７】
具体的には、図３（ａ）に示すように、初期状態からプレーヤの操作入力が開始されると、直接操作キャラクタであるキャラクタＥａ、Ｅｃは、プレーヤの操作入力に従って、図中矢印の方向に移動制御される。一方、初期状態にあって直接操作キャラクタに設定された履歴のない間接操作キャラクタであるキャラクタＥｂは、移動制御が行われない。
【００３８】
続いて、プレーヤの入力操作により、直接操作キャラクタと間接操作キャラクタとの設定変更が行われた場合について説明する。図３（ｂ）は、直接操作キャラクタとしてキャラクタＥａ、Ｅｂが設定され、間接操作キャラクタとしてキャラクタＥｃが設定され、それぞれのキャラクタが配置された場合を示す図である。すなわち、キャラクタＥｂは、間接操作キャラクタから直接操作キャラクタへ設定変更され、キャラクタＥｃは、直接操作キャラクタから間接操作対象へ設定変更されている。
【００３９】
図３（ｂ）に示すように、プレーヤの操作入力が開始されると直接操作キャラクタであるキャラクタＥａ、Ｅｂは、プレーヤの操作入力に基づいて、図中矢印の方向に移動制御される。また、間接操作キャラクタであるキャラクタＥｃは、直前に入力された操作入力の内容に従って移動制御される。すなわち、キャラクタＥｃは、図中点線矢印で示されるベクトルＰ２と同一のベクトルＰ５を移動ベクトルとして、移動制御される。
【００４０】
１−３．機能構成
次に、本実施形態における家庭用ゲーム装置１の機能構成について説明する。図４は、本実施の形態の家庭用ゲーム装置１の内部構成の一例を示すブロック図である。図４に示すように、家庭用ゲーム装置１は、操作部１０、処理部２０、記憶部３０、表示部４０、音出力部５０等を備えて構成され、ビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部４０に表示させる。
【００４１】
操作部１０は、プレーヤによる操作指示を受け付け、操作に応じた操作信号を処理部２０に出力する。この機能は、例えばボタンや操作スティック、ダイヤル、マウス、キーボード、各種センサ等によって実現される。図１ではコントローラ１１１０，１１１０がこれに相当する。
【００４２】
処理部２０は、家庭用ゲーム装置１全体の制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばＣＰＵ（ＣＩＳＣ型、ＲＩＳＣ型）、ＡＳＩＣ（ゲートアレイ等）等の演算装置やその制御プログラムにより実現される。図１では、本体装置１１００に具備される制御ユニットがこれに相当する。
【００４３】
また、処理部２０は、主にゲームに係る演算処理を行うゲーム演算部２２と、ゲーム演算部２２の処理によって求められた各種のデータに基づき、仮想カメラ等の所与の視点から見た仮想三次元空間（ゲーム空間）の画像の生成及びゲーム画面を表示させるための画像信号の生成を実行する画像生成部２４と、効果音やＢＧＭ等のゲーム音の生成及びゲーム音を出力させるための音信号の生成を実行する音生成部２６と、を含んでいる。
【００４４】
ゲーム演算部２２は、主な機能部として、操作制御部２２１と、キャラクタ制御部２２２とを含む。操作制御部２２１は、コントローラ１１１０とキャラクタとの対応付けを制御する機能部であり、プレーヤから設定変更の指示が入力されると、現在コントローラ１１１０に割り当てられているキャラクタと、キャラクタ設定テーブル３０３とに基づいて、コントローラ１１１０に割り当てられているキャラクタの設定変更を行う。
【００４５】
キャラクタ制御部２２２は、キャラクタ制御処理プログラム３０１、移動制御処理プログラム３０２に従ってキャラクタ制御処理、移動制御処理を実行し、プレーヤの操作入力に基づいて、直接操作キャラクタ及び間接操作キャラクタとして設定されているキャラクタのゲーム空間中での移動を制御する。
【００４６】
画像生成部２４は、例えばＣＰＵやＤＳＰ等の演算装置やその制御プログラム、フレームバッファ等の描画フレーム用ＩＣメモリ等によって実現される。画像生成部２４は、ゲーム演算部２２による演算結果に基づき、幾何変換処理やシェーディング処理等を実行してゲーム画面を表示するためのゲーム画像（３ＤＣＧ画像）を生成し、生成した画像の画像信号を表示部４０に出力する。
【００４７】
表示部４０は、画像生成部２４からの画像信号に基づいて、例えば１／６０秒毎に１フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばＣＲＴ、ＬＣＤ、ＥＬＤ、ＰＤＰ、ＨＭＤ等のハードウェアによって実現される。図１では、ディスプレイ１２００がこれに相当する。
【００４８】
音生成部２６は、例えばＣＰＵやＤＳＰ等の演算装置及びその制御プログラムによって実現され、ゲーム中に使用される効果音やＢＧＭ等のゲーム音を生成し、生成したゲーム音の音信号を音出力部５０に出力する。
【００４９】
音出力部５０は、音生成部２６からの音信号に基づいて、ＢＧＭや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図１では、スピーカ１２０２がこれに相当する。
【００５０】
記憶部３０は、処理部２０に家庭用ゲーム装置１を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶すると共に、処理部２０の作業領域として用いられ、処理部２０が各種プログラムに従って実行した演算結果や操作入力部１０から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ＩＣメモリやハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ、ＲＡＭ、ＶＲＡＭ等によって実現される。図１では、本体装置１１００が具備するＣＤ−ＲＯＭ１１０４、ＩＣメモリ１１０６、メモリカード１１０８等がこれに該当する。
【００５１】
また、記憶部３０は、処理部２０をゲーム演算部２２として機能させるためのゲームプログラム及びゲームデータを記憶する。具体的に、ゲームプログラムには、キャラクタ制御処理プログラム３０１、移動制御処理プログラム３０２、を含む。また、ゲームデータには、キャラクタ設定テーブル３０３、操作データ３０４、キャラクタ情報３０５、を含んでいる。
【００５２】
キャラクタ制御処理プログラム３０１及び移動制御処理プログラム３０２は、ゲーム演算部２２をキャラクタ制御部２２２として機能させるためのプログラムである。
【００５３】
キャラクタ設定テーブル３０３は、コントローラ１１１０に設けられた設定変更のためのボタンの種別と、当該ボタンの操作前後で直接操作キャラクタとして設定されるキャラクタの種類とを各操作部毎に対応付けて記憶するテーブルである。図５にキャラクタ設定テーブル３０３のデータ構成例を示す。なお、本第１の実施の形態においては、プレーヤの操作対象となるキャラクタが３体あり、そのうち２体のキャラクタが直接操作キャラクタとして設定される場合を例として説明する。
【００５４】
図５に示すように、キャラクタ設定テーブル３０３には、操作部の属性（例えば、左手操作部、右手操作部）に応じて、各操作部に設けられた設定変更ボタンの種類（例えば、Ｌ１、Ｒ１）と、当該設定変更ボタンの操作前後で設定変更されるキャラクタの種類（例えば、キャラクタＥａ，Ｅｂ，Ｅｃ）とが記憶されている。具体的に、左手操作部１７００ａの直接操作キャラクタとしてキャラクタＥａが設定されていた場合に、左手操作部１７００ａのボタンＬ１が操作されると、左手操作部１７００ａの直接操作キャラクタとして、キャラクタＥｂが設定される。また、右手操作部１７００ｂの直接操作キャラクタとしてキャラクタＥａが設定されていた場合に、右手操作部１７００ｂのボタンＲ１が操作されると、右手操作部１７００ｂの直接操作キャラクタとして、キャラクタＥｃが設定される。
【００５５】
このように、プレーヤは、左手操作部１７００ａのＬ１ボタンを操作することにより、キャラクタＥａとキャラクタＥｂとを相互に直接操作キャラクタとして切り替えることができ、右手操作部１７００ｂのＲ１ボタンを操作することにより、キャラクタＥａとキャラクタＥｃとを相互に直接操作キャラクタに切り替えることができる。なお、キャラクタ設定テーブル３０３は一例であり、上述した設定変更の形態の他に種々の設定変更の形態を取り得ることは勿論である。
【００５６】
操作データ３０４は、直接操作キャラクタとして設定されているキャラクタＥａ〜Ｅｃに対して入力された操作信号に基づく操作入力の内容を、操作データとしてキャラクタの種別毎にそれぞれ更新可能に記憶する。図６に操作データ３０４のデータ構成例を示す。図６に示すように、操作データ３０４には、キャラクタの種別（例えば、キャラクタＥａ〜Ｅｃ）と、各キャラクタＥａ〜Ｅｃに対して入力された操作データ（例えば、移動方向及び加算ベクトル）が記憶されている。
【００５７】
この操作データ３０４の更新は、ゲーム演算部２２により行われる。ゲーム演算部２２は、操作スティックが操作され、直接操作キャラクタとして設定されたキャラクタＥａ〜Ｅｃに対して操作信号が入力されると、対応するキャラクタＥａ〜Ｅｃの操作データを入力された操作信号に基づいて更新する。ここで、直接操作キャラクタとして設定されていないキャラクタ、すなわち間接操作キャラクタに対しては操作信号が入力されないため、操作データは更新されない。そして、ゲーム演算部２２は、この操作データ３０４に基づいて、各キャラクタＥａ〜Ｅｃを移動制御するため、直接操作キャラクタとして設定されているキャラクタについては、更新された操作データ、すなわちプレーヤの操作入力に基づいて移動制御され、間接操作キャラクタについては、未更新の操作データ、すなわち従前の操作入力に基づいて移動制御されることとなる。
【００５８】
キャラクタ情報３０５は、プレーヤの操作対象となるキャラクタの種別（キャラクタＮｏ）に対応づけて、直接操作キャラクタに対して割り当てられる操作部の種別と、各キャラクタの位置情報と、各キャラクタの移動ベクトルとを、それぞれ更新可能に記憶している。図７にキャラクタ情報３０５のデータ構成例を示す。
【００５９】
図７に示すように、キャラクタＮｏには、例えば、キャラクタＥａ〜Ｅｃが記憶され、操作部には、直接操作キャラクタに対応づけて右手操作部、左手操作部の種別が記憶されている。すなわち、右手操作部が対応付けられているキャラクタＥａは、右手操作部で操作可能な直接操作キャラクタとして設定されていることを示し、左手操作部が対応付けられているキャラクタＥｂは、左手操作部で操作可能な直接操作キャラクタとして設定されていることを示し、いずれの操作部も対応付けられていないキャラクタＥｃは、間接操作キャラクタとして設定されていることを示している。
【００６０】
位置情報には、ゲーム空間内における各キャラクタの現在位置を示す座標情報（例えば、（Ｘ１、Ｙ１、Ｚ１））がそれぞれ記憶されている。移動ベクトルには、操作データ３０４に基づいて算出された移動ベクトル（例えば、ベクトルＶａ）が記憶されている。この移動ベクトルの大きさを移動量として、ベクトルの方向を移動方向として、各キャラクタの位置情報が更新され、更新された位置情報にキャラクタが移動・配置されることにより、移動制御が行われる。
【００６１】
１−４．処理の流れ
本第１の実施の形態における処理の流れについて説明する。
図８は、キャラクタ制御処理を示すフローチャートである。この処理は、ゲーム中、１フレーム（１／６０秒）毎に繰り返し実行される処理であり、キャラクタ制御部２２２がキャラクタ制御処理プログラム３０１を実行することで実現される。
【００６２】
キャラクタ制御処理では、まず、プレーヤによりゲームを開始する指示が入力されると、各種データのクリアや初期設定等の初期化処理が行われる（ステップＳ１）。なお、この初期化処理により、直接操作キャラクタとして所定のキャラクタが初期設定される。以下では、左手操作部１７００ａにキャラクタＥａが設定され、右手操作部１７００ｂにキャラクＥｃが設定された場合について説明する。
【００６３】
続いて、キャラクタ制御部２２２は、左手操作部１７００ａ、右手操作部１７００ｂが操作されることにより、直接操作キャラクタに移動指示が入力されたか否かを判別し（ステップＳ２）、移動指示が入力された場合（ステップＳ２；ＹＥＳ）、後述する移動制御処理（図９参照）を実行する。
【００６４】
図９を参照して、移動制御処理について説明する。この処理は、キャラクタ制御処理のサブルーチンとして実行される処理であり、キャラクタ制御部２２２が移動制御処理プログラム３０２を実行することにより実現される。
【００６５】
移動制御処理において、キャラクタ制御部２２２は、左手操作部１７００ａから操作信号が入力されると、キャラクタ情報３０５を参照して、左手操作部１７００ａに割り当てられているキャラクタの種別（例えば、キャラクタＥａ）を取得する。そして、左手操作部１７００ａから入力される操作信号に基づいて、操作データ３０４の左手操作部１７００ａに割当てられているキャラクタに関する操作データを更新する（ステップＳ１０）。
【００６６】
また、キャラクタ制御部２２２は、右手操作部１７００ｂから操作信号が入力されると、キャラクタ情報３０５を参照して、右手操作部１７００ｂに割り当てられているキャラクタの種別（例えば、キャラクタＥｃ）を取得する。そして、右手操作部１７００ｂから入力される操作信号に基づいて、操作データ３０４の右手操作部１７００ｂに割当てられているキャラクタに関する操作データを更新する（ステップＳ１１）。
【００６７】
続いて、キャラクタ制御部２２２は、操作データ３０４からキャラクタＥａの操作データを取得して、取得した操作データから移動ベクトルを算出し、キャラクタ情報３０５に記憶されているキャラクタＥａの移動ベクトルを更新する（ステップＳ１２）。そして、更新された移動ベクトルに基づいて、キャラクタＥａの位置情報を更新し（ステップＳ１３）、更新された位置情報に従ってキャラクタＥａをゲーム空間に配置する（ステップＳ１４）。
【００６８】
次に、キャラクタ制御部２２２は、操作データ３０４からキャラクタＥｂの操作データを取得して、取得した操作データから移動ベクトルを算出し、キャラクタ情報３０５に記憶されているキャラクタＥｂの移動ベクトルを更新する（ステップＳ１５）。そして、更新された移動ベクトルに基づいて、キャラクタＥｂの位置情報を更新し（ステップＳ１６）、更新された位置情報に従ってキャラクタＥｂをゲーム空間に配置する（ステップＳ１７）。
【００６９】
さらに、キャラクタ制御部２２２は、操作データ３０４からキャラクタＥｃの操作データを取得して、取得した操作データから移動ベクトルを算出し、キャラクタ情報３０５に記憶されているキャラクタＥｃの移動ベクトルを更新する（ステップＳ１８）。そして、更新された移動ベクトルに基づいて、キャラクタＥｂの位置情報を更新し（ステップＳ１９）、更新された位置情報に従ってキャラクタＥｃをゲーム空間に配置する（ステップＳ２０）。そして、キャラクタ制御部２２２は、移動制御処理を終了して、キャラクタ制御処理に移行する。
【００７０】
図８に戻り、キャラクタ制御部２２２は、キャラクタの設定変更の指示が入力されたか否かを判別し（ステップＳ４）、設定変更の指示が入力された場合（ステップＳ４；ＹＥＳ）、入力された操作指示及びキャラクタ設定テーブル３０３に基づいてキャラクタ情報３０５を更新して、直接操作キャラクタの設定を変更する（ステップＳ５）。そして、ステップＳ２に移行して、移動指示が入力されたか否かを判別する。移動指示が入力された場合には（ステップＳ２；ＹＥＳ）、上述した移動制御処理を繰り返して実行し、移動指示が入力されない場合（ステップＳ２；ＮＯ）、キャラクタ制御部２２２は、終了指示が入力されたか否かを判別し（ステップＳ６）、終了指示が入力された場合（ステップＳ６；ＹＥＳ）、本キャラクタ制御処理を終了する。
【００７１】
１−５．ハードウェア構成
次に、本実施の形態における家庭用ゲーム装置１を実現するためのハードウェア構成の一例について図１０を参照して説明する。図１０に示す電子機器１００は、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、画像生成ＩＣ１０１０、音生成ＩＣ１００８、ＶＲＡＭ１０１２、Ｉ／Ｏポート１０１４、１０１６を備え、各部がシステムバス１０１８により相互にデータ入出力可能に接続されている。Ｉ／Ｏポート１０１４には入力装置１０２４が、Ｉ／Ｏポート１０１６には通信装置１０２６が、それぞれ接続されている。
【００７２】
ＣＰＵ１０００は、情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、入力装置１０２２によって入力される信号等に従って、機器全体の制御や各種データ処理を行う。このＣＰＵ１０００は、図４に示す処理部２０に相当する。
【００７３】
ＲＡＭ１００４は、ＣＰＵ１０００の作業領域等として用いられる記憶部であり、情報記憶媒体１００６やＲＯＭ１００２内の所与の内容、ＣＰＵ１０００の演算結果等が格納される。このＲＡＭ１００４は、図４に示す記憶部３０の一部を構成するものである。
【００７４】
情報記憶媒体１００６は、プログラム、画像データ、音データ、プレイデータ等が主に格納されるものである。この情報記憶媒体１００６は、図４に示す記憶部３０の一部を構成するものである。本実施の形態を実現するものがコンピュータシステムである場合には、情報記憶媒体１００６は、キャラクタ制御処理プログラム３０１などを格納する情報記憶媒体としてのＣＤ−ＲＯＭ、ＤＶＤ或いはハードディスク等が用いられる。
【００７５】
また、この装置に設けられている画像生成ＩＣ１０１０と音生成ＩＣ１００８により、音や画像の好適な出力が行えるようになっている。
【００７６】
画像生成ＩＣ１０１０は、ＣＰＵ１０００の命令によって、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される表示信号は表示装置１０２２に出力される。表示装置１０２２は、ＣＲＴ、ＬＣＤ、ＥＬＤ、ＰＤＰ、ＨＭＤ等により実現され、図４に示す表示部４０に相当する。
【００７７】
また、音生成ＩＣ１００８は、ＣＰＵ１０００の命令によって、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報、ＲＡＭ１００４に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ１０２０によって出力される。スピーカ１０２０は、図４に示す音出力部５０に相当する。
【００７８】
ＶＲＡＭ１０１２は、表示装置１０２２に表示される画像データを一時的に格納する記憶装置であり、図４に示す記憶部３０の一部を構成するものである。このＶＲＡＭ１０１２は、画像生成ＩＣ１０１０によって生成される、１フレーム分の画像データを格納するためのフレームバッファや、１フィールド分の画像データを格納するためのフィールドバッファを備える。
【００７９】
入力装置１０２４は、各種操作を入力するための装置であり、その機能は、レバー、ボタン、タッチパネル等のハードウェアにより実現される。この入力装置１０２４は、図４に示す操作部１０に相当する。
【００８０】
通信装置１０２６は装置内部で利用される情報を外部とやりとりするものであり、他の装置と通信回線を介して接続されてプログラムに応じた所与の情報を送受すること等に利用される。
【００８１】
１−６．作用・効果
以上のように、本第１の実施の形態によれば、左手操作部１７００ａ、右手操作部１７００ｂそれぞれに対応づけられる直接操作キャラクタを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のキャラクタの中から選択的に変更設定させる。また、プレーヤによる左手操作部１７００ａ、右手操作部１７００ｂそれぞれに対する操作入力に基づき、現在の直接操作キャラクタとして左手操作部１７００ａ、右手操作部１７００ｂに対応づけて設定されているキャラクタを移動制御する。一方、プレーヤが左手操作部１７００ａ、右手操作部１７００ｂそれぞれを操作した際の操作入力の内容を、直接操作キャラクタとして左手操作部１７００ａ、右手操作部１７００ｂに対応づけて設定されているキャラクタと対応づけて操作データ３０４に記憶する。そして、従前に直接操作キャラクタとして設定され、且つ現在設定されていないキャラクタについては、当該キャラクタに対応づけて記憶されている操作入力の内容に基づいて移動制御するため、プレーヤは、各操作部１７００ａ、１７００ｂに対応付けられていない間接操作キャラクタについても、従前の操作入力の内容に基づいて移動制御が行われることにより、自己の操作入力に基づいて移動制御が行われているような操作感覚を味わうことができる。
【００８２】
また、間接操作キャラクタについては、従前の操作入力の内容に基づいて移動制御されるため、例えば、直接操作キャラクタの移動制御に追従するといった単純な移動制御ではなく、直接操作キャラクタと全く異なる方向への移動制御が可能となる。これにより、プレーヤは３体目以上のキャラクタそれぞれについて自己の意思を反映させた戦略的な移動制御を行うことができる。さらに、ゲーム中に入力される設定変更操作により、直接操作キャラクタの設定を変更することができるため、適宜直接操作キャラクタを変更して操作入力の内容を更新することにより、多彩なゲームプレイを楽しむことができる。
【００８３】
また、操作データ３０４に記憶される操作データは、各操作部１７００ａ、１７００ｂから入力された最新の操作データに更新・記憶されるため、間接操作キャラクタについては、直近に入力された操作データに基づいて移動制御することができる。これにより、プレーヤは、間接操作キャラクタに対して入力されている操作データの把握がし易く、複数のキャラクタを容易に移動制御することができる。
【００８４】
１−７．変形例
以上、本発明についての好適な実施形態の一例について説明したが、本発明は、上記したものに限らず、発明の趣旨を逸脱しない限りにおいて適宜変更可能である。例えば、左手操作部１７００ａは、キャラクタＥａ又はキャラクタＥｂに切替可能に対応付けられ、右手操作部１７００ｂは、キャラクタＥａ又はキャラクタＥｃに切替可能に対応付けられ、各操作部１７００ａ，１７００ｂに現在対応付けられているキャラクタを直接操作キャラクタとする構成について説明を行ったが、キャラクタ制御テーブル３０３のデータ構成は一例であり、この構成に限定されないのは勿論である。例えば、右手操作部１７００ａ、左手操作部１７００ｂのそれぞれに全てのキャラクタを切替可能に対応付けられる構成であっても良い。
【００８５】
また、操作データ３０４は、各操作部１７００ａ，１７００ｂから入力された操作入力の内容を、最新の操作データに更新して記憶する場合について説明を行ったが、ゲーム実行中に入力された操作入力の内容を全て操作データとして記憶する構成であっても良い。さらに、各操作部の数や、キャラクタの数は上述した例に限定されない。
【００８６】
［第２の実施の形態］
次に、第２の実施の形態について、図１１〜図２１を参照して説明する。第１の実施の形態においては、間接操作キャラクタの移動制御を、当該キャラクタが直接操作キャラクタとして設定されていた際に入力された操作データに基づいて行う場合について説明した。本第２の実施の形態においては、各キャラクタ間を接続する仮想紐（可視としても不可視としてもよい。）を拘束条件として設定し、間接操作キャラクタの移動制御を、直接操作キャラクタの位置変化と、設定された仮想紐の紐長とに基づいて行う場合について説明する。
【００８７】
２−１．原理
第２の実施の形態における原理について説明する。
図１１は、ユーザの操作対象となるキャラクタが前進する場合の移動制御を説明するための図であり、ゲーム空間の概略俯瞰図である。なお、第２の実施の形態におけるキャラクタは、複数のサブキャラクタをグループ化した集団から構成され、プレーヤはこの集団を１体のキャラクタとして操作する。以下では、集団からなるキャラクタをユニットと記す。
【００８８】
図１１（ａ）に示すように、ゲーム空間には、プレーヤの直接操作対象となるユニット（以下、「直接操作ユニット」と記す）と、間接操作対象となるユニット（以下、「間接操作ユニット」と記す）とが配置される。同図では、直接操作ユニットとして２体のユニットＦａ，Ｆｃと、間接操作ユニットとして１体のユニットＦｂとが設定・配置された様子を示している。また、各ユニットＦａ〜Ｆｃには、各ユニット相互間の位置関係に関する拘束条件として、隣接するユニット間を接続する仮想紐が設定されている。つまり、各ユニット同士（例えば、ユニットＦａとユニットＦｂ、ユニットＦｂとユニットＦｃ）が所定の紐長の仮想紐で接続されることにより、直接操作ユニット（ユニットＦａ，ユニットＦｃ）の移動に伴って、間接操作ユニット（ユニットＦｂ）は、仮想紐で結ばれたキャラクタ間の距離が当該仮想紐の紐長を超えないようにして移動制御される。
【００８９】
まず、図１１（ａ）に示すように、直接操作ユニットであるユニットＦａ，Ｆｃに対してプレーヤから前進指示の操作入力が開始されると、図１１（ｂ）に示すように、ユニットＦａ，Ｆｃは、プレーヤの操作入力に従って、図中矢印の方向に移動制御される。また、間接操作ユニットであるユニットＦｂは、この時点では仮想紐の拘束条件が作用しないため、移動制御されない。
【００９０】
続いて、プレーヤからの前進指示が継続して操作入力され、ユニットＦａとユニットＦｂとを接続する仮想紐の紐長と、ユニットＦａとユニットＦｂとの離間距離が同一となった場合、又はユニットＦｂとユニットＦｃとを接続する仮想紐の紐長と、ユニットＦｂとユニットＦｃとの離間距離が同一となった場合、ユニットＦｂは、図１１（ｃ）に示すように、仮想紐に拘束されて、ユニットＦａ又はユニットＦｃを追従するように移動制御される。また、ユニットＦａとユニットＦｂとの離間距離及びユニットＦｂとユニットＦｃとの離間距離の何れもが各ユニットを接続している仮想紐の紐長と同一になった場合、ユニットＦｂは、ユニットＦａ及びユニットＦｃを追従するように移動制御される。
【００９１】
図１２は、ユーザの操作対象となるユニットが横方向に移動する場合の移動制御を説明するための図であり、ゲーム空間の概略俯瞰図である。図１２（ａ）に示すように、ゲーム空間には、直接操作ユニットとして２体のユニットＦａ，Ｆｃと、間接操作ユニットとして１体のユニットＦｂとが設定・配置されている。また、各ユニットＦａ〜Ｆｃには、ユニット間の位置関係に関する拘束条件として、隣接するユニット間を接続する仮想紐が設定されている。
【００９２】
まず、図１１（ａ）に示すように、直接操作ユニットであるユニットＦａ，Ｆｃに対してプレーヤから右方向への移動指示が操作入力されると、ユニットＦａ，Ｆｃは、プレーヤの操作入力に従って、図中矢印の方向に移動制御が開始される。また、間接操作ユニットであるユニットＦｂは、この時点では仮想紐の拘束条件が作用しないため、移動制御されない。
【００９３】
続いて、図１１（ｂ）に示すように、ユニットＦａ，Ｆｃの移動に伴い、ユニットＦｃとユニットＦｂとを接続する仮想紐の紐長と、ユニットＦｃとユニットＦｂとの離間距離とが同一となった場合、ユニットＦｂに対して仮想紐の張力が作用するようになり、ユニットＦｃとユニットＦｂとの離間距離が仮想紐の紐長を超えないようにユニットＦｂの移動制御が開始される。
【００９４】
そして、図１１（ｃ）に示すように、プレーヤからの横方向への移動指示が継続して操作入力されると、ユニットＦａ，Ｆｃは、プレーヤの操作入力に従って、図中矢印の方向に移動制御されると共に、ユニットＦｂは、あたかも仮想紐の張力により、ユニットＦｃを追従するかのように移動制御される。
【００９５】
２−２．機能構成
次に、本第２の実施の形態における家庭用ゲーム装置の機能構成について説明する。なお、本第２の実施の形態は、上述した第１の実施の形態における家庭用ゲーム装置１を用いて実現されるものであるため、第１の実施の形態と共通する点については説明を省略し、同一の機能、構成については同一の符号で表し、以下では第２の実施の形態に特徴的な部分につき詳細に説明する。
【００９６】
図１３は、第２の実施の形態における家庭用ゲーム装置１の内部構成の一例を示すブロック図である。図１３に示すように、家庭用ゲーム装置１は、操作部１０、処理部２０、記憶部６０、表示部４０、音出力部５０等を備えて構成され、いわゆるビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部４０に表示させる。
【００９７】
ゲーム演算部２２は、主な機能部として、操作制御部２２３と、キャラクタ制御部２２４とを含む。操作制御部２２３は、本第２の実施の形態に特徴的な構成としてユニット制御処理プログラム６０１に従ってユニット制御処理を実行して、プレーヤから入力された操作指示に対応する操作制御を行う。また、キャラクタ制御部２２４は、本第２の実施の形態に特徴的な構成として、ユニット制御処理プログラム６０１、移動制御処理プログラム６０２、間接操作ユニット位置情報更新処理プログラム６０３に従ってユニット制御処理、移動制御処理、間接操作ユニット位置情報更新処理を実行して、直接操作ユニット及び間接操作ユニットとして設定されているユニットの移動制御を行う。
【００９８】
記憶部６０は、ユニット制御処理プログラム６０１、移動制御処理プログラム６０２、間接操作ユニット位置情報更新処理プログラム６０３、ユニット設定テーブル６０４、陣形テーブル６０５、ユニット情報６０６、仮想紐情報６０７等を格納している。
【００９９】
ユニット制御処理プログラム６０１、移動制御処理プログラム６０２及び間接操作ユニット位置情報更新処理プログラム６０３は、ゲーム演算部２２を操作制御部２２３、キャラクタ制御部２２４として機能させるためのプログラムである。
【０１００】
ユニット設定テーブル６０４は、各操作部に対応付けられたボタンと、設定変更前後で直接操作ユニットとして設定されるユニットの種別とを対応付けて記憶するテーブルである。なお、ユニット設定テーブル６０４のデータ構成は、上述した第１の実施の形態におけるキャラクタ設定テーブル３０３と略同一の構成によってなるため、図示及び詳細な説明を省略する。
【０１０１】
陣形テーブル６０５は、複数の陣形について、対応する陣形の形状と陣形パラメータとを対応付けて記憶するテーブルである。図１４に陣形テーブル６０５のデータ構成例を示す。図１４に示すように、陣形テーブル６０５には、陣形の種類として、普通陣、攻撃陣、機動陣、防御陣が記憶されている。また、陣形の形状として、普通陣には□、攻撃陣には△、機動陣には○、防御陣には×の形状がそれぞれ記憶されている。さらに、陣形パラメータとして、攻撃力、防御力、機動力の数値データがそれぞれ記憶されている。
【０１０２】
各陣形の形状は、コントローラ１１１０の右手ボタン群１６００ｂの□、△、○、×ボタンに対応付けられており、キャラクタ制御部２２４は、操作されたボタンの形状に対応する陣形の形状を陣形テーブル６０５から取得し、複数のサブキャラクタから構成されるユニットの陣形を変形させる。さらに、対応する陣形パラメータを取得して、各ユニットの攻撃力、防御力、機動力等を変化させる。これにより、ユーザの戦略を反映させたゲーム進行を実現することができ、ゲームの面白さを増大することができる。また、プレーヤはゲーム空間内に表示されるユニットの陣形に基づいて、敵味方の各ユニットの攻撃力、防御力、機動力等の特性を容易に把握することができるため、戦闘状況に応じて陣形を変更することにより戦略的な攻防を楽しむことができる。
【０１０３】
ユニット情報６０６は、プレーヤの操作対象となるユニットの種別と、直接操作ユニットに割り当てられる操作部の種別と、各ユニットの位置情報と、各ユニットの移動ベクトル、陣形とを対応付けて、それぞれ更新可能に記憶している。図１５に、ユニット情報６０６のデータ構成例を示す。図１５に示すように、ユニット情報６０６は、操作部、位置情報、移動ベクトルが、第１の実施の形態のキャラクタ情報３０５と同様に記憶される他、各ユニットに設定される陣形（例えば、攻撃陣）がそれぞれ記憶されている。
【０１０４】
仮想紐情報６０７は、仮想紐により接続されるユニットの組み合わせに応じて複数のテーブルを記憶しており、各テーブルには、仮想紐で接続されるユニット及び仮想紐の紐長が記憶されている。例えば、プレーヤの操作対象となるユニットが３体ある場合、図１６（ａ）〜（ｃ）に示すように、仮想紐で接続されるユニットの組み合わせは３種類ある。そこで、図１６（ａ）に示す組み合わせに対応する仮想紐情報６０７ａを一例として図１７に示して説明する。
【０１０５】
図１７は、仮想紐情報６０７ａのデータ構成例を示す図である。図１７において、仮想紐情報６０７ａは、仮想紐を特定するヒモＮｏに対応付けて、仮想紐の紐長と、仮想紐により接続される２つのユニットとを記憶している。具体的に、仮想紐情報６０７ａの最上段を例として説明すると、ヒモＮｏには「ＳＴ１」が記憶され、紐長には「ｌ１」が記憶され、接続されるユニットとして接続１には「ユニットＦａ」が記憶され、接続２には、「ユニットＦｂ」が記憶されている。
【０１０６】
２−３．処理の流れ
次に、本第２の実施の形態における処理の流れについて説明する。
図１８は、ユニット制御処理を示すフローチャートである。この処理は、キャラクタ制御部２２４がユニット制御処理プログラム６０１を実行することで実現される。
【０１０７】
図１８に示すように、ユニット制御処理では、まず、プレーヤによりゲームを開始する指示が入力されると、各種データのクリアや初期設定等の初期化処理が行われる（ステップＳ２１）。なお、この初期化処理により、直接操作ユニットとして所定のユニットが初期設定される。
【０１０８】
続いて、キャラクタ制御部２２４は、各操作部１７００ａ、１７００ｂが操作されることにより、直接操作ユニットに移動指示が入力されたか否かを判別し（ステップＳ２２）、移動指示が入力された場合（ステップＳ２２；ＹＥＳ）、後述する移動制御処理２（図１９参照）を実行する。
【０１０９】
図１９は、移動制御処理２を示すフローチャートである。この処理は、ユニット制御処理の一部として実行される処理であり、キャラクタ制御部２２４が移動制御処理プログラム６０２を実行することで実現される。
【０１１０】
図１９において、移動制御処理２では、まず、左手操作部１７００ａから操作信号が入力されると、ユニット情報６０５から左手操作部１７００ａに割り当てられているユニットの種別を取得すると共に、入力された操作信号から移動ベクトルを算出する（ステップＳ３１）。次いで、左手操作部１７００ａに割り当てられているユニットの位置情報を移動ベクトルに基づいて更新する（ステップＳ３２）。
【０１１１】
次に、右手操作部１６００ａから操作信号が入力されると、ユニット情報６０５から右手操作部１７００ｂに割り当てられているユニットの種別を取得すると共に、入力された操作信号から移動ベクトルを算出する（ステップＳ３３）。続いて、算出された移動ベクトルに基づいて右手操作部１７００ｂに割り当てられているユニットの位置情報を算出し、直接操作ユニット同士の離間距離が、直接操作ユニット及びその間に挟まれる間接操作ユニットを接続する仮想紐の合計長を超えていないか否かを判別する（ステップＳ３４）。
【０１１２】
ここで、直接操作ユニット同士の離間距離が、直接操作ユニット及びその間に挟まれる間接操作ユニットを接続する仮想紐の合計長を超えていない場合、破綻が生じていないと判断して（ステップＳ３４；ＮＯ）、右手操作部に割当てられているユニットの位置情報を移動ベクトルに基づいて更新する（ステップＳ３５）。
【０１１３】
一方、直接操作ユニット同士の離間距離が、直接操作ユニット及びその間に挟まれる間接操作ユニットを接続する仮想紐の合計長を超えている場合、破綻が生じていると判断して（ステップＳ３４；ＹＥＳ）、左手操作部に割当てられているユニットの位置情報と、仮想紐の合計長とに基づいて右手操作部に割当てられているユニットの移動ベクトルを補正する（ステップＳ３６）。さらに、補正した移動ベクトルに基づいて右手操作部に割当てられているユニットの位置情報を更新する（ステップＳ３７）。そして、更新された位置情報に従って左手操作部に割当てられているユニット、右手操作部に割当てられているユニットをそれぞれゲーム空間に配置する（ステップＳ３８）。
【０１１４】
続いて、キャラクタ制御部２２４は、間接操作ユニットを移動制御するため後述する間接操作ユニット位置情報更新処理（図２０参照）を実行する。図２０は、間接操作ユニット位置情報更新処理の流れを示すフローチャートである。この処理は、移動制御処理２の一部として実行される処理であり、キャラクタ制御部２２４が間接操作ユニット位置情報更新処理プログラム６０３を実行することで実現される。
【０１１５】
図２０において、間接操作ユニット位置情報更新処理では、まず、間接操作ユニットが２つの直接操作ユニットに接続されているか否かを判別する（ステップＳ５１）。ここで、例えば、ユニットＦａ〜Ｆｃが、図１６（ｂ）に示す接続関係を満たし、且つユニットＦａ，Ｆｃが直接操作ユニットに設定されている場合、間接操作ユニットが２つの直接操作ユニットに接続されていると判別し（ステップＳ５１；ＹＥＳ）、２つの直接操作ユニットの位置情報に基づいて、２つの直接操作ユニットと、間接操作ユニットとの離間距離をそれぞれ算出する。すなわち、まず、左手操作部に割当てられているユニットの位置情報と、間接操作ユニットの位置情報とから、両ユニットの離間距離ｒ１を算出する（ステップＳ５２）。
【０１１６】
続いて、右手操作部に割当てられているユニットの位置情報と間接操作ユニットとの位置情報から、両ユニットの離間距離ｒ２を算出する（ステップＳ５３）。そして、左手操作ユニットに割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長ｌ１がｒ１より長く、且つ、右手操作部に割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長ｌ２がｒ２より長いか否か、すなわち、ｌ１＞ｒ１、ｌ２＞ｒ２を満たすか否かを判別する（ステップＳ５４）。
【０１１７】
ここで、ｌ１＞ｒ１、Ｌ２＞ｒ２を満たす場合（ステップＳ５４；ＹＥＳ）、２本の仮想紐はたるんだままとなり、間接操作ユニットはいずれの仮想紐からも張力を受けない。従って、間接操作ユニットの位置情報は更新されず（ステップＳ５５）、本間接操作ユニット位置情報更新処理を終了して、移動制御処理２に移行する。
【０１１８】
一方、ｌ１＞ｒ１、ｌ２＞ｒ２を満たさない場合（ステップＳ５４；ＮＯ）、左手操作部に割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長がｒ１より長い、又は右手操作部に割当てられているユニットと間接操作ユニットとを接続する仮想紐の紐長がｒ２より長いか否か、すなわち、ｌ１＞ｒ１、ｌ２≦ｒ２又はｌ１≦ｒ１、ｌ２＞ｒ２を満たすか否かを判別する（ステップＳ５６）。
【０１１９】
ここで、ｌ１＞ｒ１、ｌ２≦ｒ２又はｌ１≦ｒ１、ｌ２＞ｒ２を満たす場合、間接操作ユニットは、左手操作部に割当てられているユニット又は右手操作部に割当てられているユニットのいずれか一方と接続されている仮想紐の張力を受けることとなる。すなわち、ｌ１＞ｒ１、ｌ２≦ｒ２を満たす場合、間接操作ユニットは、右手操作部に割当てられているユニットと接続されている仮想紐の張力を受けて移動制御されることとなる。従って、右手操作部に割当てられているユニットの位置情報及び仮想紐の紐長ｌ２とに基づいて間接操作ユニットの位置情報が更新される（ステップＳ５８）。
【０１２０】
一方、ｌ１≦ｒ１、ｌ２＞ｒ２を満たす場合、間接操作ユニットは、左手操作部に割当てられているユニットと接続されている仮想紐の張力を受けて移動制御されることとなる。従って、左手操作部に割当てられているユニットの位置情報及び仮想紐の紐長ｌ１とに基づいて間接操作ユニットの位置情報が更新される（ステップＳ５８）。
【０１２１】
また、ｌ１＞ｒ１、ｌ２≦ｒ２又はｌ１≦ｒ１、ｌ２＞ｒ２を満たさない場合（ステップＳ５６；ＮＯ）、ｌ１≦ｒ１且つｌ２≦ｒ２を満たすこととなる。すなわち間接操作ユニットは、左手操作部に割当てられているユニットと接続されている仮想紐と、右手操作部に割当てられているユニットと接続されている仮想紐の両方から張力を受けることとなる。従って、２つの直接操作ユニットの位置情報と、仮想紐の紐長ｌ１、ｌ２とに基づいて、間接操作ユニットの位置情報を更新する（ステップＳ５７）。そして、間接操作ユニット位置情報更新処理を終了して、移動制御処理２に移行する。
【０１２２】
さらに、ステップＳ５１に戻り、間接操作ユニットが２つの直接操作ユニットに接続されていない場合について説明する。例えば、ユニットＦａ〜Ｆｃが、図１６（ａ）に示す接続関係を満たし、且つユニットＦａ，Ｆｃが直接操作ユニットに設定されている場合、キャラクタ制御部２２４は、間接操作ユニットが２つの直接操作ユニットに接続されていないと判別し（ステップＳ５１；ＮＯ）、キャラクタ制御手段２２４は、接続されている直接操作ユニットの位置情報と、間接操作ユニットの位置情報とから、両ユニットの離間距離ｒ３を算出する（ステップＳ６１）。
【０１２３】
続いて、間接操作ユニットと直接操作ユニットとを接続する仮想紐の紐長ｌ３が離間距離ｒ３より大きいか否かを判別する（ステップＳ６２）。ここで、仮想紐の紐長ｌ３が離間距離ｒ３より大きい場合（ステップＳ６１；ＹＥＳ）、仮想紐はたるんだままとなり、間接操作ユニットに対して張力が働かないため、間接操作の位置情報は更新されない（ステップＳ６４）。一方、仮想紐の紐長ｌ３が離間距離ｒ３より小さい場合（ステップＳ６２；ＹＥＳ）、直接操作ユニットの位置情報と仮想紐の紐長ｌ３とに基づいて、間接操作ユニットの位置情報を更新する（ステップＳ６３）。そして、キャラクタ制御部２２４は、本間接操作ユニット位置情報更新処理を終了して、移動制御処理２に移行する。
【０１２４】
続いて、移動制御処理２に戻り、キャラクタ制御部２２４は、ユニット情報６０６に記憶された間接操作ユニットの位置情報に従って、間接操作ユニットを配置する（ステップＳ４１）。そして、本移動制御処理２を終了して、ユニット制御処理へ移行する。
【０１２５】
ユニット制御処理に戻り、キャラクタ制御部２２４は、プレーヤの操作入力により、陣形変換指示が入力されたか否かを判別する（ステップＳ２４）。ここで、陣形変換指示が入力された場合（ステップＳ２４；ＹＥＳ）、キャラクタ制御部２２４は、操作入力の内容、すなわち操作されたボタンの種別に応じて、陣形テーブル６０５から対応する陣形を取得し、ユニット情報６０６に記憶される陣形を更新する（ステップＳ２５）。さらに、陣形テーブルから対応する陣形の形状を取得して対応するユニットの陣形の形状を変換して表示させると共に、陣形パラメータを変更する（ステップＳ２６）。
【０１２６】
続いて、操作制御部２２３は、直接操作ユニットの変更設定指示が入力されたか否かを判別し（ステップＳ２７）、変更設定指示が入力された場合（ステップＳ２７；ＹＥＳ）、操作入力の内容及びユニット設定テーブル６０４に基づいて、ユニット情報６０６の操作部の割当てを変更し、直接操作ユニットの設定を変更する（ステップＳ２８）。
【０１２７】
そして、ゲーム演算部２２は、ゲームが終了したか否かを判別し（ステップＳ２９）、ゲームが終了していない場合（ステップＳ２９；ＮＯ）、ステップＳ２２に移行して、上述した処理を繰り返して実行する。一方、ゲームが終了した場合（ステップＳ２９；ＹＥＳ）、本ユニット制御処理を終了する。
【０１２８】
２−４．作用・効果
以上のように、第２の実施の形態によれば、左手操作部１７００ａ、右手操作部１７００ｂそれぞれに対応づけられる直接操作ユニットを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のユニットの中から選択的に変更設定させると共に、プレーヤによる左手操作部１７００ａ、右手操作部１７００ｂそれぞれに対する操作入力に基づき、現在の直接操作ユニットとして左手操作部１７００ａ、右手操作部１７００ｂに対応づけて設定されているユニットを移動制御する。また、各ユニット相互間の位置関係に関する拘束条件として各ユニット間を接続する仮想紐を設定し、直接操作ユニットの移動に伴い、各ユニット相互間の拘束条件を満たすように、すなわち、仮想紐で結ばれたユニット間の距離が仮想紐の紐長を超えないようにして間接操作ユニットを移動制御する。
【０１２９】
これにより、左手操作部１７００ａ、右手操作部１７００ｂそれぞれに対応付けて設定されている直接操作ユニットについては、左手操作部１７００ａ、右手操作部１７００ｂに対する操作入力に基づいて移動制御すると共に、直接操作ユニット以外の他のユニットを、各ユニット相互間の位置関係に関する拘束条件を満たすように移動制御することができるため、プレーヤは左手操作部１７００ａ、右手操作部１７００ｂに対応付けて設定されていない他のユニットについても、プレーヤ操作により間接的に操作しているような感覚を味わうことができる。
【０１３０】
つまり、直接操作ユニット以外の他のユニットについては、仮想紐で結ばれたユニット間の距離が仮想紐の紐長を超えないように移動制御されるため、直接操作ユニットの操作入力に連動して、プレーヤが容易に推測可能な移動先に間接操作ユニットを移動させることができる。この結果、プレーヤは間接操作ユニットについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により間接操作ユニットを移動させているような感覚を味わうことができる。
【０１３１】
さらに、２つの直接操作ユニット間の距離が、２つの直接操作ユニット間を最短で結ぶ仮想紐の組合せの合計長より長い場合、２つの直接操作ユニットのうち一方の位置と他方の位置とを近づけ、当該距離が仮想紐の組み合わせの合計長以上とならないように２つの直接操作ユニット位置を変化させる。すなわち、直接操作ユニットについても仮想紐の紐長の合計長に基づいて、その位置を変化させるように移動制御なされるため、間接操作ユニットを移動制御する際に、仮想紐の紐長と各ユニットの位置関係とに破綻を生じさせることがなく、計算負荷を軽減することができる。
【０１３２】
また、直接操作ユニットが２体以上設定可能であるため、一方向の移動制御だけでなく、多方向に複数のユニットを移動制御させることができる。つまり、複数のユニットにより形成される陣形を可変させながら移動の制御を行うことができ、プレーヤは戦略的なゲームプレイを行うことができる。
【０１３３】
２−５．変形例
以上、第２の実施の形態においては、プレーヤの操作対象となるユニットが３体であり、直接操作対象ユニットに設定されるユニットが２体である場合を例として説明を行ったが、これらのユニットの数は上述した例に限定されない。
【０１３４】
例えば、プレーヤの操作対象となるユニットが４体であり、直接操作ユニットに設定されるユニットが２体ある構成であってもよい。具体的には、図２１（ａ）に示すように、直接操作ユニットにユニットＦｂ，ユニットＦｃが設定され、間接操作ユニットにユニットＦａ，ユニットＦｄが設定されている場合に、直接操作ユニットに対してプレーヤの操作入力が開始されると、ユニットＦｂとユニットＦｃは、図中矢印の方向に移動制御される。
【０１３５】
続いて、各ユニット間を接続する仮想紐の紐長がユニット間の離間距離と同一になった場合、接続されている間接操作ユニットに対して張力が作用するため、図２１（ｂ）に示すように、ユニットＦａ，ユニットＦｄは、図中矢印の方向に移動制御される。このように、４体のユニット相互間の位置関係に関する拘束条件として、それぞれのユニットを接続する仮想紐を設定し、直接操作ユニットの移動に伴って、各仮想紐に基づき、仮想紐で結ばれたユニット間の距離が仮想紐の紐長を超えないようにして間接操作ユニットの移動制御を行うことにより、直接操作ユニットを単に追従するといった単純な移動制御ではない、多様な移動制御を実現することができる。
【０１３６】
また、第２の実施の形態においては、複数のサブキャラクタをグループ化した集団から構成されるユニットを一体のキャラクタとして移動制御する場合について説明を行ったが、これらユニットに限らず、一体のキャラクタをユニットと同様に上述した方法で移動制御する構成であってもよい。
【０１３７】
［第３の実施の形態］
次に、第３の実施の形態について、図２２〜図２９を参照して説明する。第２の実施の形態においては、ユニット相互間の位置関係に関する拘束条件としてユニット間を接続する仮想紐を設定し、直接操作ユニット以外の間接操作ユニットを、設定された各仮想紐の紐長を超えないようにして移動制御する場合について説明を行ったが、第３の実施の形態においては、拘束条件としてユニット間を接続する仮想バネを設定し、設定された仮想バネのバネ長に応じた弾性力に基づいて間接操作ユニットを移動制御する場合について説明する。
【０１３８】
３−１．原理
第３の実施の形態における原理について説明する。
図２２は、ユーザの操作対象となるユニットが前進する場合の動作を説明するための図であり、ゲーム空間の概略俯瞰図である。図２２（ａ）に示すように、ゲーム空間には、直接操作ユニットと、間接操作ユニットとが配置される。同図では、直接操作ユニットとして２体のユニットＦａ，Ｆｃと、間接操作ユニットとして１体のユニットＦｂとが設定・配置された様子を示している。
【０１３９】
また、ユニットＦａ〜Ｆｃには、各ユニット相互間の位置関係に関する拘束条件として、隣接するユニット間を接続する仮想バネが設定されている。各ユニット同士が仮想バネで接続された場合、直接操作ユニットの移動に伴って、直接操作ユニットと間接操作ユニットとの距離が広がると、間接操作ユニットは仮想バネから引張力を受ける。また、直接操作ユニットと間接操作ユニットとの距離が縮まると、間接操作ユニットは仮想バネから反発力を受ける。従って、間接操作ユニットは、この仮想バネの引張力又は反発力（以下、引張力と反発力とを併せて「弾性力」と呼ぶ）に応じて移動制御されることとなる。
【０１４０】
まず、図２２（ａ）に示す接続状態において、直接操作ユニットＦａ，Ｆｃに対してプレーヤから前進指示の操作入力が開始されると、直接操作ユニットＦａ，Ｆｃは、操作入力に応じて前方方向に移動制御される。続いて、図２２（ｂ）に示すように、ユニットＦａ，Ｆｃの移動に伴い、ユニットＦｂに対して仮想バネによる弾性力が作用するようになる。ユニットＦｂに対して作用する弾性力は、ユニットＦａとユニットＦｂとを接続する仮想バネＳＰ１による弾性力ベクトルＦ1aと、ユニットＦｃとユニットＦｂとを接続する仮想バネＳＰ２による弾性力ベクトルＦ2cとを合計した合計弾性力ベクトルＦacにより表される。そして、ユニットＦｂは、この合計弾性力ベクトルＦacを移動ベクトルとして移動制御される。
【０１４１】
また、間接操作ユニットの移動制御は、各ユニットの運動の慣性を加味して行われても良い。例えば、図２３に示すように、間接操作ユニットＦｄに慣性力Ｆｉが作用している場合、合計弾性力ベクトルＦacと、慣性力Ｆｉとの合力を算出し、これを移動ベクトルとして移動制御する構成であっても良い。この構成によれば、間接操作ユニットの自然な移動制御を行うことができる。
【０１４２】
３−２．機能構成
次に第３の実施の形態における家庭用ゲーム装置の機能構成について説明する。
なお、第３の実施の形態は、上述した第１の実施の形態及び第２の実施の形態における家庭用ゲーム装置１を用いて実現されるものであるため、第１の実施の形態及び第２の実施の形態と共通する点については説明を省略し、同一の機能、構成については同一の符号で表し、以下では第３の実施の形態に特徴的な部分につき詳細に説明する。
【０１４３】
図２４は、本第３の実施の形態における家庭用ゲーム装置１の内部構成の一例を示す図である。図２４に示すように、家庭用ゲーム装置１は、操作部１０、処理部２０、記憶部７０、表示部４０、音出力部５０等を備えて構成され、ビデオゲームを実行してゲーム画像を生成し、生成したゲーム画像を表示部４０に表示させる。
【０１４４】
ゲーム演算部２２は、主な機能部として、操作制御部２２５と、キャラクタ制御部２２６とを含む。操作制御部２２５は、本第３の実施の形態に特徴的な構成としてユニット制御処理プログラム７０１に従ってユニット制御処理を実行し、プレーヤから入力された操作指示に対応する操作制御を行う。また、キャラクタ制御部２２６は、第３の実施の形態に特徴的な構成として、ユニット制御処理プログラム７０１、移動制御処理プログラム７０２それぞれに従ってユニット制御処理、移動制御処理３を実行して、直接操作ユニット及び間接操作ユニットとして設定されているユニットの移動制御を行う。
【０１４５】
記憶部７０は、ユニット制御処理プログラム７０１、移動制御処理プログラム７０２、ユニット設定テーブル７０３、陣形テーブル７０４、ユニット情報７０５、仮想バネ接続テーブル７０６、仮想バネ情報７０７等を格納している。
【０１４６】
ユニット制御処理プログラム７０１及び移動制御処理プログラム７０２は、ゲーム演算部２２を操作制御部２２５、キャラクタ制御部２２６として機能させるためのプログラムである。
【０１４７】
ユニット設定テーブル７０３は、各操作部に対応付けられたボタンと、設定変更前後で直接操作ユニットとして設定されるユニットの種別とを対応付けて記憶するテーブルである。なお、ユニット設定テーブル７０３のデータ構成は、上述した第１の実施の形態において説明したキャラクタ設定テーブル３０３と略同一の構成によってなるため、図示及び詳細な説明を省略する。
【０１４８】
陣形テーブル７０４は、複数の陣形について、対応する陣形の形状と陣形パラメータとを対応付けて記憶するテーブルである。なお、陣形テーブル７０４は、上述した第２の実施の形態において説明した陣形テーブル６０５と略同一の構成によってなるため、図示及び詳細な説明は省略する。
【０１４９】
ユニット情報７０５は、プレーヤの操作対象となるユニットの種別と、直接操作ユニットに割り当てられる操作部の種別と、各ユニットの位置情報と、各ユニットの移動ベクトルとを対応付けて、それぞれ更新可能に記憶している。なお、ユニット情報６０６のデータ構成は、上述した第１の実施の形態におけるキャラクタ情報３０５と略同一の構成によってなるため、詳細な説明を省略する。
【０１５０】
仮想バネ接続テーブル７０６は、各仮想バネにより接続されるユニットを設定するためのテーブルである。図２５に仮想バネ接続テーブル７０６のデータ構成例を示す。図２５において、仮想バネ接続テーブル７０６は、各仮想バネを特定するバネＮｏ（例えば、ＳＰ１）に対応付けて、仮想バネにより接続される２つのユニットを接続１（例えば、ユニットＦａ）、接続２（例えば、ユニットＦｂ）として記憶している。
【０１５１】
仮想バネ情報７０７は、各仮想バネ毎にバネ係数と、バネ長と、バネ長に応じて可変する弾性力とを記憶している。図２６に、仮想バネ情報７０７のデータ構成例を示す。図２６において、仮想バネ情報７０７には、各仮想バネを特定するバネＮｏ（例えば、「ＳＰ１」）に対応付けて、バネ定数（例えば、「ｋ1」）、バネ長（例えば、「１０」）、接続１としてユニットＦａに対する弾性力ベクトル（例えば、「ベクトルＦ1a」）、接続２としてユニットＦｂに対する弾性力ベクトル（例えば、「ベクトルＦ1b」）が記憶されている。
【０１５２】
そして、この仮想バネ情報７０７に記憶される弾性力ベクトルに基づいて、間接操作ユニットの移動制御が行われる。つまり、キャラクタ制御部２２６は、仮想バネ情報７０７に記憶された弾性力ベクトルから移動ベクトルを算出し、算出した移動ベクトルに基づいて、間接操作ユニットの移動制御を行う。
【０１５３】
３−３．処理の流れ
次に、第３の実施の形態における処理の流れについて説明する。
なお、第３の実施の形態におけるユニット制御処理は、上述した第２の実施の形態におけるユニット制御処理と略同一の処理が行われるため、図示及び説明を省略する。以下では、第３の実施の形態に特徴的な移動制御処理３について説明する。
【０１５４】
図２８は、移動制御処理３を示すフローチャートである。この処理は、第２の実施の形態のユニット制御処理の一部として実行される移動制御処理２に代わって実行される処理であり、キャラクタ制御部２２６が移動制御処理プログラム７０２を実行することで実現される。
【０１５５】
図２８において、移動制御処理３では、まず、直接操作ユニットに対して操作信号が入力されると、操作入力に従って移動ベクトルを算出し、算出された移動ベクトルに基づいて位置情報を更新する。そして、更新された位置情報に基づいて、直接操作ユニットをゲーム空間に配置させることにより、直接操作ユニットを移動させる（ステップＳ７１）。
【０１５６】
次に、更新された直接操作ユニットの位置情報と間接操作ユニットの位置情報とに基づいて、各仮想バネのバネ長を更新する（ステップＳ７２）。続いて、各仮想バネのバネ長から、間接操作ユニットに対する弾性力ベクトルをそれぞれ算出し、更新する（ステップＳ７３）。そして、間接操作ユニットに接続されている全仮想バネの弾性力ベクトルを合計して合計弾性力ベクトルを算出する（ステップＳ７４）。さらに、現在の移動ベクトルと合計弾性力ベクトルとを合計して係数をかけ、移動ベクトルを算出し、更新する（ステップＳ７５）。
【０１５７】
ここで、係数は、算出された合計弾性力ベクトルの値を補正するためのものであり、間接操作ユニットの自然な移動制御を実現するためのものである。例えば、図２７に示すように、バネ長ｌが一定の長さ範囲内（ａ＜ｌ＜ｂ）にある場合、係数０を乗算して弾性力（引張力又は反発力）が間接操作ユニットに対して作用するのを制限する。この状態はいわば遊びの状態である。そして、バネ長が一定の長さ以上（ｂ≦ｌ）になった場合、引張力を補正するための係数を乗算して合成弾性力ベクトルを算出する。一方、バネ長が一定の長さ以下（ａ≧ｌ）になった場合、反発力を補正するための係数を乗算して合成弾性力ベクトルを算出する。なお、上述した例では、係数０を乗算して遊びを持たせる範囲を設定したが、この遊びを持たせない構成であっても良い。
【０１５８】
これにより、例えば、図２３に図示して説明したように、各ベクトルを単純に加算していった場合、合計弾性力ベクトルの長さは大きなものとなるが、係数を乗算することで、合計弾性力ベクトルを一定の大きさ以内のベクトルとなるように調整することができる。この結果、間接操作ユニットの自然な移動制御を実現できる。
【０１５９】
図２８に戻り、キャラクタ制御部２２６は、ユニット情報７０５に記憶される位置情報を取得して、各ユニットを対応する位置情報に従ってゲーム空間に配置する（ステップＳ７６）。さらに、全てのユニットについて位置情報を更新するまで、ループＢを繰り返して実行する。全てのユニットについて位置情報を更新した場合、プレーヤから操作入力が行われているか否かを判別し、操作入力が継続して行われている場合、ループＡを繰り返して実行する。一方、操作入力が行われていない場合、本移動制御処理３を終了して、ユニット制御処理に移行する。
【０１６０】
３−４．作用・効果
以上のように、本第３の実施の形態によれば、左手操作部１７００ａ、右手操作部１７００ｂそれぞれに対応づけられる直接操作ユニットを、ゲーム進行中に入力されるプレーヤの変更設定操作に従って複数のユニットの中から選択的に変更設定させる。また、プレーヤによる左手操作部１７００ａ、右手操作部１７００ｂそれぞれに対する操作入力に基づき、現在の直接操作ユニットとして左手操作部１７００ａ、右手操作部１７００ｂに対応づけて設定されているユニットを移動制御する。また、各ユニット相互間の位置関係に関する拘束条件として、バネ長に応じて可変する弾性力が設定された仮想バネで各ユニット間を接続する。そして、直接操作ユニットと仮想バネで接続されている間接操作ユニットについては、直接操作ユニットの位置変化に基づいて更新される仮想バネの弾性力に応じて移動制御するため、直接操作ユニットに対する操作入力に連動して、プレーヤが容易に推測可能な移動先に間接操作ユニットを移動させることができる。
【０１６１】
これにより、プレーヤは間接操作ユニットについても、自己の意思を反映させた移動制御を行うことができ、自己の操作入力により移動させているような感覚を味わうことができる。また、バネ長に応じて可変する弾性力が設定された仮想バネが拘束条件として設定されるため、直接操作ユニットの位置に応じて自由度の高い間接操作ユニットの移動制御を実現することができる。これにより、複数のユニットによる多彩な陣形を取り得ることができ、戦略的なゲームプレイを楽しむことができる。
【０１６２】
３−５．変形例
以上、第３の実施の形態においては、プレーヤの操作対象となるユニットが３体であり、直接操作対象ユニットに設定されるユニットが２体である場合を例として説明を行ったが、これらのユニットの数は上述した例に限定されない。
【０１６３】
例えば、プレーヤの操作対象となるユニットが４体であり、直接操作ユニットに設定されるユニットが２体ある構成であっても良い。具体的には、図２９に示すように、直接操作ユニットにユニットＦａ，ユニットＦｃが設定され、間接操作ユニットにユニットＦｂ，ユニットＦｄが設定されている場合に、直接操作ユニットに対してプレーヤの操作入力が開始されると、ユニットＦｂとユニットＦｃは、図中矢印の方向に移動制御される。
【０１６４】
続いて、各ユニット間を接続する仮想バネのバネ長に応じた弾性力により、間接操作ユニットが移動制御される。すなわち、ユニットＦｂは、ユニットＦａと接続されている仮想バネから作用される弾性力ベクトルＦ1aと、ユニットＦｃと接続されている仮想バネから作用される弾性力ベクトルＦ2cとの合計から算出される合計弾性力ベクトルＦacに基づいて移動ベクトルが算出され、移動制御される。一方、ユニットＦｄは、ユニットＦｃと接続されている仮想バネのみから弾性力の作用を受けるため、弾性力ベクトルＦ3cに基づいて、移動ベクトルが算出され、移動制御される。
【０１６５】
このように、複数のユニットを仮想バネで接続して、直接操作ユニットの位置変化と仮想バネが及ぼす弾性力とに基づいて、直接操作ユニット以外の間接操作ユニットを移動制御することができるため、多数のユニットについてプレーヤの意思を反映させた移動制御を実現することができる。また、直接操作ユニットに対して入力された操作入力に基づいて、直接操作ユニットの移動制御が行われた後に、間接操作ユニットの移動制御が行われるため、間接操作ユニットの移動制御が１フレーム遅れることとなる。これにより、プレーヤは自己が直接操作しているユニットを一見して容易に把握することができる。
【０１６６】
また、第３の実施の形態においては、複数のサブキャラクタをグループ化した集団から構成されるユニットを一体のキャラクタとして移動制御する場合について説明を行ったが、ユニットに限らず、一体のキャラクタをユニットと同様に上述した方法で移動制御する構成であってもよい。
【０１６７】
また、上述した実施形態では、家庭用ゲーム装置を例に挙げて説明したが、本発明を適用可能な装置は、これに限られず、業務用のゲーム装置の他、携帯型のゲーム装置、ＰＤＡ等の装置であってもよいことは勿論である。
【図面の簡単な説明】
【０１６８】
【図１】本実施の形態における家庭用ゲーム装置の概観図。
【図２】ゲームコントローラの概観図。
【図３】第１の実施の形態の原理を説明する図。
【図４】家庭用ゲーム装置の機能ブロック図。
【図５】キャラクタ制御テーブルのデータ構成例を示す図。
【図６】操作データのデータ構成例を示す図。
【図７】キャラクタ情報のデータ構成例を示す図。
【図８】キャラクタ制御処理を示すフローチャート。
【図９】移動制御処理１を示すフローチャート。
【図１０】ハードウェアの構成の一例を示す図。
【図１１】第２の実施の形態の原理を説明する図。
【図１２】第２の実施の形態の原理を説明する図。
【図１３】第２の実施の形態における家庭用ゲーム装置の機能ブロック図。
【図１４】陣形テーブルのデータ構成例を示す図。
【図１５】ユニットのデータ構成例を示す図。
【図１６】複数のユニットの接続状態を説明する図。
【図１７】仮想紐情報のデータ構成例を示す図。
【図１８】ユニット制御処理を示すフローチャート。
【図１９】移動制御処理２を示すフローチャート。
【図２０】間接操作ユニット位置情報更新処理を示すフローチャート。
【図２１】第２の実施の形態の変形例を説明する図。
【図２２】第３の実施の形態の原理を説明する図。
【図２３】合計弾性力ベクトルを説明する図。
【図２４】第３の実施の形態における家庭用ゲーム装置の機能ブロック図。
【図２５】仮想バネ接続テーブルのデータ構成例を示す図。
【図２６】仮想バネ情報のデータ構成例を示す図。
【図２７】弾性力ベクトルの係数を説明する図。
【図２８】移動制御処理３を示すフローチャート。
【図２９】第３の実施の形態の変形例を示す図。
【符号の説明】
【０１６９】
１０        操作部  
２０        処理部
２２      ゲーム演算部
２２１  操作制御部
２２２  キャラクタ制御部
２４      画像生成部
２６      音生成部
３０        記憶部
３０１    キャラクタ制御処理プログラム
３０２    移動制御処理プログラム
３０３    キャラクタ設定テーブル
３０４    操作データ
３０５    キャラクタ情報
４０        表示部
５０        音出力部
【図１】
2006254950.tif 000003
【図２】
2006254950.tif 000004
【図３】
2006254950.tif 000005
【図４】
2006254950.tif 000006
【図５】
2006254950.tif 000007
【図６】
2006254950.tif 000008
【図７】
2006254950.tif 000009
【図８】
2006254950.tif 000010
【図９】
2006254950.tif 000011
【図１０】
2006254950.tif 000012
【図１１】
2006254950.tif 000013
【図１２】
2006254950.tif 000014
【図１３】
2006254950.tif 000015
【図１４】
2006254950.tif 000016
【図１５】
2006254950.tif 000017
【図１６】
2006254950.tif 000018
【図１７】
2006254950.tif 000019
【図１８】
2006254950.tif 000020
【図１９】
2006254950.tif 000021
【図２０】
2006254950.tif 000022
【図２１】
2006254950.tif 000023
【図２２】
2006254950.tif 000024
【図２３】
2006254950.tif 000025
【図２４】
2006254950.tif 000026
【図２５】
2006254950.tif 000027
【図２６】
2006254950.tif 000028
【図２７】
2006254950.tif 000029
【図２８】
2006254950.tif 000030
【図２９】
2006254950.tif 000031