(57)【要約】  【構成】  ゲームシステム１０はビデオゲーム装置１２を含み、ゲーム装置１２のＣＰＵはプレイヤキャラクタがゲーム空間を移動する様子をモニタ３４に表示させる。ゲーム空間内には、プレイヤキャラクタの移動に影響を与える外力オブジェクトが生成される。プレイヤキャラクタの内面は外力オブジェクトに対する好き嫌いで示される。プレイヤキャラクタと外力オブジェクトとが所定の距離範囲内にあるとき、プレイヤキャラクタの内面情報に基づいて、プレイヤキャラクタを外力オブジェクトに近付けまたは遠ざける移動補正データが生成される。プレイヤキャラクタの移動は、プレイヤによる操作部２６の操作による移動操作データと、この移動補正データとに基づいて制御される。  【効果】  目に見えないプレイヤキャラクタの内面を表現でき、プレイヤはキャラクタの内面を体感的に知ることができる。【選択図】  図１
2005211332.tif 000002
【特許請求の範囲】
【請求項１】
プレイヤによって操作される操作手段を備え、プレイヤキャラクタがゲーム空間内を移動する様子を表示装置に表示させるゲーム装置において、前記プレイヤキャラクタの移動を制御するためのゲームプログラムであって、前記ゲーム装置のコンピュータを、
前記操作手段から出力される前記プレイヤキャラクタの移動を指示するための移動操作データを検出する検出手段、
前記プレイヤキャラクタの移動に影響を与える少なくとも１つの外力オブジェクトを前記ゲーム空間に生成するオブジェクト生成手段、
前記プレイヤキャラクタの位置と前記外力オブジェクトの位置とが所定の距離範囲内にあるとき、前記プレイヤキャラクタの内面を示す内面情報に基づいて、前記プレイヤキャラクタを前記外力オブジェクトに近付けるまたは前記外力オブジェクトから遠ざける移動補正データを生成する補正手段、および
前記移動操作データおよび前記移動補正データに基づいて前記プレイヤキャラクタの移動を制御する移動制御手段として機能させるゲームプログラム。
【請求項２】
前記移動補正データは移動方向に関する情報を含み、
前記補正手段は、前記内面情報に基づいて、前記外力オブジェクトが前記プレイヤキャラクタの好きなオブジェクトであると判断されたとき当該外力オブジェクトの位置する方向に移動させる移動補正データを生成し、前記外力オブジェクトが前記プレイヤキャラクタの嫌いなオブジェクトであると判断されたとき当該外力オブジェクトから放射方向に移動させる移動補正データを生成する、請求項１記載のゲームプログラム。
【請求項３】
前記移動補正データは移動量に関する情報を含み、
前記補正手段は、前記プレイヤキャラクタと前記外力オブジェクトとの距離に応じて、前記移動補正データの前記移動量を変化させる、請求項１または２記載のゲームプログラム。
【請求項４】
前記移動制御手段は、前記移動操作データに基づいて前記プレイヤキャラクタを前記ゲーム空間内で移動させる場合の移動後の第１位置座標を算出する第１算出手段、前記移動補正データに基づいて前記プレイヤキャラクタを前記ゲーム空間内で移動させる場合の移動後の第２位置座標を算出する第２算出手段、および前記第１位置座標と前記第２位置座標とに基づいて前記プレイヤキャラクタを実際に前記ゲーム空間内で移動させる場合の移動後の第３位置座標を算出する第３算出手段を含み、前記第３算出手段によって算出された第３位置座標に前記プレイヤキャラクタを移動させる、請求項１ないし３のいずれかに記載のゲームプログラム。
【請求項５】
前記ゲーム装置は、複数種類のプレイヤキャラクタの前記内面情報を記憶する内面記憶手段をさらに備え、
前記補正手段は、実際に操作されるプレイヤキャラクタについての前記内面情報に基づいて、前記移動補正データを生成する、請求項１ないし４のいずれかに記載のゲームプログラム。
【請求項６】
前記コンピュータを、ゲームの進行に従って内面情報を設定する内面設定手段としてさらに機能させ、
前記補正手段は、前記内面設定手段によって設定された前記内面情報に基づいて、前記移動補正データを生成する、請求項１ないし５のいずれかに記載のゲームプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はゲームプログラムに関し、特にたとえば、プレイヤキャラクタがゲーム空間内を移動する様子を表示装置に表示させる、ゲームプログラムに関する。
【背景技術】
【０００２】
非プレイヤオブジェクトに近付いたときのプレイヤオブジェクトの動作を制御する従来のゲーム装置の一例がたとえば特許文献１に開示されている。この特許文献１の従来技術では、プレイヤキャラクタが対象となる非プレイヤオブジェクトに近付いたとき、該非プレイヤオブジェクトに対応した所定の動作を実行させる。たとえば、穴に近付いたときには、プレイヤが操作しなくてもプレイヤキャラクタを自動的にジャンプさせて穴を越えさせる。また、たとえば氷の上に到達するとプレイヤキャラクタを強制的に滑らせるようなゲームもよく知られる。
【特許文献１】特開２０００−１５３０６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述のような従来技術では、画面において見た目で分かるように表現されたオブジェクト（たとえば穴、氷等）に対応して所定の動作（ジャンプ、滑る等）を行わせている。つまり、従来技術は、プレイヤに対する補助的な動作を単に見た目に従って演出するものに過ぎなかった。
【０００４】
また、このような補助的動作はどのプレイヤキャラクタに対しても一律に行われるものであったので、たとえばプレイヤキャラクタが複数種類あった場合でも、対象となる非プレイヤオブジェクトに対する動作は全て同じになってしまう。しかし、たとえば通り道に大きな穴があった場合、足がすくんで動けなくなったり、逆に勢いよく飛び越えて行ったりするなど、人によってさまざまな対応をする。従来技術ではキャラクタごとに異なる特徴ないし個性を表現できなかったので、ゲームとしての面白みに欠けていた。
【０００５】
それゆえに、この発明の主たる目的は、目で見えないプレイヤキャラクタの内面を表現することができる、ゲームプログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明は以下の構成を採用した。なお、括弧内の参照符号や図番号等は、本発明の理解を助けるために後述する最良の実施形態との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【０００７】
請求項１の発明は、プレイヤによって操作される操作手段（２２、５６）を備え、プレイヤキャラクタ（１００）がゲーム空間内を移動する様子を表示装置（３４）に表示させるゲーム装置（１２）において、プレイヤキャラクタの移動を制御するためのゲームプログラムである。このゲームプログラムは、ゲーム装置のコンピュータ（３６）を、次の各手段として機能させる。検出手段（３６、８０、Ｓ５１、Ｓ８１）は、操作手段から出力されるプレイヤキャラクタの移動を指示するための移動操作データを検出する。オブジェクト生成手段（３６、７６、Ｓ１、Ｓ２１）は、プレイヤキャラクタの移動に影響を与える少なくとも１つの外力オブジェクト（１０２、１０８）をゲーム空間に生成する。補正手段（３６、８２、８４、Ｓ２５−Ｓ３７、Ｓ８９−Ｓ１０１）は、プレイヤキャラクタの位置と外力オブジェクトの位置とが所定の距離範囲内にあるとき、プレイヤキャラクタの内面を示す内面情報に基づいて、プレイヤキャラクタを外力オブジェクトに近付けるまたは外力オブジェクトから遠ざける移動補正データを生成する。移動制御手段（３６、８６、８８、Ｓ５３−Ｓ６３、Ｓ８３、Ｓ８７、Ｓ１０５−Ｓ１０９）は、移動操作データおよび移動補正データに基づいてプレイヤキャラクタの移動を制御する。
【０００８】
請求項１の発明によれば、プレイヤキャラクタと外力オブジェクトとがゲーム空間内で所定の距離範囲内に位置するとき、プレイヤキャラクタの内面に基づいて、プレイヤキャラクタを外力オブジェクトに近づけまたは外力オブジェクトから遠ざける移動補正データが生成され、この移動補正データとプレイヤ操作による移動操作データとに基づいてプレイヤキャラクタの移動が制御されるので、目に見えないプレイヤキャラクタの内面の特性をその移動に反映させて表現することができる。具体的には、プレイヤによる操作が効きにくくなるので、体感的にキャラクタの内面を知ることができる。
【０００９】
請求項２の発明は、請求項１に従属し、移動補正データは移動方向に関する情報を含む。そして、補正手段は、内面情報に基づいて、外力オブジェクトがプレイヤキャラクタの好きなオブジェクトであると判断されたとき当該外力オブジェクトの位置する方向に移動させる移動補正データを生成し、外力オブジェクトがプレイヤキャラクタの嫌いなオブジェクトであると判断されたとき当該外力オブジェクトから放射方向に移動させる移動補正データを生成する。
【００１０】
請求項２の発明によれば、外力オブジェクトがプレイヤキャラクタの好きなオブジェクトであるとき、プレイヤキャラクタが当該外力オブジェクトの位置する方向に近付ける補正が生じ、一方、外力オブジェクトがプレイヤキャラクタの嫌いなオブジェクトであるとき、プレイヤキャラクタが当該外力オブジェクトから放射方向に遠ざけられる補正が生じるので、プレイヤキャラクタの内面をその移動する方向の変化によって表現することができ、プレイヤにとっては、プレイヤの移動方向の指示が効きにくくなり、キャラクタの内面を体感することができる。
【００１１】
請求項３の発明は、請求項１または２に従属し、移動補正データは移動量に関する情報を含む。そして、補正手段は、プレイヤキャラクタと外力オブジェクトとの距離に応じて、移動補正データの移動量を変化させる。
【００１２】
請求項３の発明によれば、プレイヤキャラクタと外力オブジェクトとの距離に応じてプレイヤキャラクタの移動量が変化するので、プレイヤキャラクタの内面をその移動量の変化によって表現することができ、プレイヤはその内面を体感できる。
【００１３】
請求項４の発明は、請求項１ないし３のいずれかに従属し、移動制御手段は、移動操作データに基づいてプレイヤキャラクタをゲーム空間内で移動させる場合の移動後の第１位置座標を算出する第１算出手段（Ｓ５３、Ｓ８３）、移動補正データに基づいてプレイヤキャラクタをゲーム空間内で移動させる場合の移動後の第２位置座標を算出する第２算出手段（Ｓ５９、Ｓ１０５）、および第１位置座標と第２位置座標とに基づいてプレイヤキャラクタを実際にゲーム空間内で移動させる場合の移動後の第３位置座標を算出する第３算出手段（Ｓ６１、Ｓ１０７）を含み、第３算出手段によって算出された第３位置座標にプレイヤキャラクタを移動させる。
【００１４】
請求項４の発明によれば、座標演算により移動後のプレイヤキャラクタの位置を算出するだけなので、移動制御を簡単に行える。
【００１５】
請求項５の発明は、請求項１ないし４のいずれかに従属し、ゲーム装置は、複数種類のプレイヤキャラクタの内面情報を記憶する内面記憶手段をさらに備える。このゲームプログラムでは、補正手段は、実際に操作されるプレイヤキャラクタについての内面情報に基づいて、移動補正データを生成する。
【００１６】
請求項５の発明によれば、プレイヤキャラクタの種類に応じた内面情報に基づいて移動補正データが生成されるので、プレイヤキャラクタごとに異なる内面ないし個性を表現することができ、ゲームの面白みを増すことができる。
【００１７】
請求項６の発明は、請求項１ないし５のいずれかに従属し、このゲームプログラムは、コンピュータを、ゲームの進行に従って内面情報を設定する内面設定手段としてさらに機能させる。そして、補正手段は、内面設定手段によって設定された内面情報に基づいて、移動補正データを生成する。
【００１８】
請求項６の発明によれば、ゲームの進行に従って内面情報が設定され、その内面情報に基づいて移動補正データが生成されるので、ゲームの進行状況や状態等に応じたプレイヤキャラクタの内面の変化を表現することができる。
【発明の効果】
【００１９】
この発明によれば、プレイヤキャラクタの内面に基づいて移動補正データが生成され、プレイヤによる移動操作データだけでなく移動補正データに基づいて移動が制御されるので、プレイヤキャラクタの内面的な特性をその動作に反映させることができる。つまり、プレイヤキャラクタの性格や精神状態などの目に見えない内面をその動作によって表現することができる。具体的には、プレイヤによる操作が効きにくくなり、体感的にキャラクタの内面を知ることができる。
【００２０】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２１】
図１を参照して、この発明の一実施例のゲームプログラムの適用されたビデオゲームシステム１０は、ビデオゲーム装置１２を含む。ビデオゲーム装置１２には電源が与えられるが、この電源は、実施例では、一般的なＡＣアダプタ（図示せず）であってよい。ＡＣアダプタは家庭用の標準的な壁ソケットに差し込まれ、家庭用電源を、ビデオゲーム装置１２を駆動するのに適した低いＤＣ電圧に変換する。他の実施形態では、電源としてバッテリが用いられてもよい。
【００２２】
ビデオゲーム装置１２は、略立方体のハウジング１４を含み、ハウジング１４の上端には光ディスクドライブ１６が設けられる。光ディスクドライブ１６には、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク１８が装着される。ハウジング１４の前面には複数の（実施例では４つの）コネクタ２０が設けられる。これらコネクタ２０は、ケーブル２４によって、コントローラ２２をビデオゲーム装置１２に接続するためのものであり、この実施例では最大４つのコントローラ２２をビデオゲーム装置１２に接続することができる。
【００２３】
プレイヤによって操作される操作手段としてのコントローラ２２には、その上面，下面，或いは側面などに、操作部２６が設けられる。操作部２６は、たとえば２つのアナログジョイスティック（２６ａ，２６ｂ），１つの十字キー（２６ｃ），複数のボタンスイッチ（２６ｄ，２６ｅ，２６ｆ，２６ｇ，２６ｈ）等含む。１つのアナログジョイスティックは、コントロールスティック２６ａであり、たとえばプレイヤキャラクタ（プレイヤがコントローラ２２によって操作可能な動画キャラクタ）の移動を指示するために用いられる。具体的には、プレイヤは、当該スティック２６ａの傾きの量と方向とによって、プレイヤキャラクタの移動方向および／または移動速度ないし移動量などを入力する。他のアナログジョイスティックは、Ｃスティック２６ｂであり、傾斜方向によって、たとえば仮想カメラの移動等を制御する。十字スイッチ２６ｃは、コントロールスティック２６ａに代えてプレイヤキャラクタの移動方向を指示するために用いられる。ボタンスイッチは、Ａボタン２６ｄ，Ｂボタン２６ｅ，Ｘボタン２６ｆであり、たとえば、プレイヤキャラクタの動作を指示するために利用され、３次元画像の仮想カメラの視点の切り換えや、プレイヤキャラクタの移動スピード調節等に用いられる。また、ボタンスイッチは、Ｙボタン２６ｇであり、たとえばメニュー選択やポインタあるいはカーソル移動を制御する。さらに、ボタンスイッチは、スタート／ポーズボタン２６ｈであり、ゲームの開始やゲームの一時停止をするために用いられる。
【００２４】
なお、この実施例ではコントローラ２２がそれと一体的に設けられるケーブル２４によってビデオゲーム装置１２に接続された。しかしながら、コントローラ２２は、他の方法、たとえば電磁波（たとえば電波または赤外線）を介してワイヤレスで、ビデオゲーム装置１２に接続されてもよい。また、コントローラ２２の操作部２６の具体的構成は、もちろん実施例の構成に限られるものではなく、任意の変形が可能である。たとえば、アナログジョイスティック（２６ａ，２６ｂ）は１つだけでもよい。また、十字スイッチ２６ｃは用いられなくてもよい。
【００２５】
ビデオゲーム装置１２のハウジング１４の前面であり、コネクタ２０の下方には、１つまたは複数（この実施例では２つ）のメモリスロット２８が設けられる。このメモリスロット２８にはメモリカード３０が挿入される。メモリカード３０は、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（たとえばゲームの結果）を保存しておいたりするために利用される。
【００２６】
ビデオゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、そのコネクタを用いて、ＡＶケーブル３２を通してビデオゲーム装置１２にモニタ３４を接続する。このモニタ３４は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２は、ビデオゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、モニタ３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声、または２スピーカであってもサラウンド効果を出すことが可能な場合は、サラウンド音声を含むゲーム音声が出力される。
【００２７】
このゲームシステム１０において、ユーザまたはゲームプレイヤがゲーム（または他のアプリケーション）をプレイするために、ユーザはまずビデオゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）をストアしている適宜の光ディスク１８を選択し、その光ディスク１８をビデオゲーム装置１２のディスクドライブ１６にローディングする。応じて、ビデオゲーム装置１２がその光ディスク１８にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置１２に入力を与えるためにコントローラ２２を操作する。たとえば、操作部２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。操作部２６の他のものを動かすことによって、動画キャラクタ（プレイヤキャラクタ）を異なる方向に移動させ、または３次元の仮想ゲーム空間（以下、単に「ゲーム空間」という。）におけるユーザの視点（カメラ位置）を変化させることができる。
【００２８】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。ビデオゲーム装置１２には、中央処理ユニット（以下、「ＣＰＵ」という。）３６が設けられる。このＣＰＵ３６は、コンピュータ或いはプロセサなどとも呼ばれ、ビデオゲーム装置１２の全体的な制御を担当する。ＣＰＵないしコンピュータ３６は、ゲームプロセサとして機能し、このＣＰＵ３６には、バスを介して、メモリコントローラ３８が結合される。メモリコントローラ３８は主として、ＣＰＵ３６の制御の下で、バスを介して結合されるメインメモリ４０の書込みや読出しを制御する。このメモリコントローラ３８にはＧＰＵ(Graphics Processing Unit:グラフィックス処理装置) ４２が結合される。
【００２９】
ＧＰＵ４２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ３８を介してＣＰＵ３６からのグラフィクスコマンド(graphics command ：作画命令) を受け、そのコマンドに従って、ジオメトリユニット４４およびレンダリングユニット４６によって３Ｄゲーム画像を生成する。つまり、ジオメトリユニット４４は、３次元座標系の各種キャラクタやオブジェクト（複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）の回転，移動，変形等の座標演算処理を行う。レンダリングユニット４６は、各種オブジェクトの各ポリゴンにテクスチャ（Texture ：模様画像）を貼り付けるなどの画像生成処理を行う。したがって、ＧＰＵ４２によって、ゲーム画面上に表示すべき３Ｄ画像データが作成され、その画像データがフレームバッファ４８内に記憶される。
【００３０】
なお、ＧＰＵ４２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ４２がメモリコントローラ３８を介して、メインメモリ４０から入手する。
【００３１】
フレームバッファ４８は、たとえばラスタスキャンモニタ３４の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ４２によって１フレーム毎に書き換えられる。具体的には、フレームバッファ４８は、１画素（ピクセル）毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、Ｒ，Ｇ，Ｂ，Ａについてのデータであり、たとえば、８ビットのＲ（赤）データ、８ビットのＧ（緑）データ、８ビットのＢ（青）データおよび８ビットのＡ（アルファ）データである。なお、Ａデータは、マスク（マット画像）についてのデータである。後述のビデオＩ／Ｆ５８がメモリコントローラ３８を介してフレームバッファ４８のデータを読み出すことによって、モニタ３４の画面上に３Ｄゲーム画像が表示される。
【００３２】
また、Ｚバッファ５０は、フレームバッファ４８に対応する画素数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ４８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００３３】
なお、フレームバッファ４８およびＺバッファ５０は、ともにメインメモリ４０の一部を用いて構成されてもよい。
【００３４】
メモリコントローラ３８はまた、ＤＳＰ(Digital Signal Processor)５２を介して、ＡＲＡＭ５４に結合される。したがって、メモリコントローラ３８は、メインメモリ４０だけでなく、サブメモリとしてのＡＲＡＭ５４の書込みおよび／または読出しを制御する。
【００３５】
ＤＳＰ５２は、サウンドプロセサとして働き、メインメモリ４０に記憶されたサウンドデータを用いたり、ＡＲＡＭ５４に書き込まれている音波形データを用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００３６】
メモリコントローラ３８は、さらに、バスによって、各インタフェース（Ｉ／Ｆ）５６，５８，６０，６２および６４に結合される。コントローラＩ／Ｆ５６は、コントローラ２２のためのインタフェースであり、コントローラ２２の操作部２６の操作信号またはデータを、メモリコントローラ３８を通してＣＰＵ３６に与える。
【００３７】
ビデオＩ／Ｆ５８は、フレームバッファ４８にアクセスし、ＧＰＵ４２で作成した画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢＡピクセル値）をＡＶケーブル３２（図１）を介してモニタ３４に与える。
【００３８】
外部メモリＩ／Ｆ６０は、ビデオゲーム装置１２の前面に挿入されるメモリカード３０（図１）をメモリコントローラ３８に連係させる。それによって、メモリコントローラ３８を介して、ＣＰＵ３６がこのメモリカード３０にデータを書込み、またはメモリカード３０からデータを読み出すことができる。
【００３９】
オーディオＩ／Ｆ６２は、メモリコントローラ３８を通してＤＳＰ５２から与えられるオーディオデータまたは光ディスク１８から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３４のスピーカ３４ａに与える。
【００４０】
そして、ディスクＩ／Ｆ６４は、ディスクドライブ１６をメモリコントローラ３８に結合し、したがって、ＣＰＵ３６がディスクドライブ１６を制御する。このディスクドライブ１６によって光ディスク１８から読み出されたプログラムデータやテクスチャデータ等が、ＣＰＵ３６の制御の下で、メインメモリ４０に書き込まれる。
【００４１】
図３にはメインメモリ４０のメモリマップが示される。メインメモリ４０は、ゲームプログラム記憶領域７０およびデータ記憶領域７２を含む。ゲームプログラム記憶領域７０には、ゲームメイン処理プログラム７４、画像生成プログラム７６、画像表示プログラム７８、操作信号検出プログラム８０、距離算出プログラム８２、外力による補正プログラム８４、移動位置算出プログラム８６、移動制御プログラム８８などのプログラムが記憶される。
【００４２】
ゲームメイン処理プログラム７４は、ビデオゲーム装置１２によって実行されるゲームについてのメインルーチンを処理するプログラムである。画像生成プログラム７６は、３Ｄゲーム画像を生成するプログラムである。この３Ｄゲーム画像には、当該ゲームに登場してプレイヤによって動作等を制御される（コンピュータ（ＣＰＵ３６）によって制御される場合もある。）プレイヤキャラクタのような動画キャラクタが含まれる。さらに、プレイヤによって操作されない非プレイヤオブジェクトとして、プレイヤキャラクタによって使用されるアイテムや、当該ゲームの背景オブジェクト（地形オブジェクト、壁オブジェクト、建物オブジェクトおよび床（地面）オブジェクトなど）などが含まれる。さらに、この実施例では、非プレイヤオブジェクトには、プレイヤキャラクタの内面に対応して斥力または引力を働かせてその移動に影響を与える外力オブジェクトが含まれる。ゲーム空間内には少なくとも１つの外力オブジェクトが生成される。この外力オブジェクトは、たとえば、ゲーム空間の所定位置に固定的に配置された菓子や野菜等のようなオブジェクト、およびゲーム空間を移動可能な犬や猫等のようなオブジェクト等を含む。画像表示プログラム７８は、画像生成プログラム７６によって生成された３Ｄゲーム画像を２次元のゲーム画面としてモニタ３４に表示するためのプログラムである。
【００４３】
操作信号検出プログラム８０は、コントローラ２２から出力される操作入力信号を検出するプログラムであり、プレイヤキャラクタの移動やジャンプ、攻撃（撃つ、打つ、投げる、魔法をかける、乗り移るなど）などの任意のアクションについて指示するための操作信号ないし操作データ（移動を指示するための移動操作データを含む。）を検出する。
【００４４】
距離算出プログラム８２は、プレイヤキャラクタの位置と外力オブジェクトの位置とに基づいてプレイヤキャラクタと外力オブジェクトとの距離を算出するプログラムである。
【００４５】
外力による補正プログラム８４は、補正手段の一部であり、プレイヤオブジェクトの位置と外力オブジェクトの位置とが所定の距離範囲内にあるとき、そのプレイヤキャラクタの内面に基づいて、外力（すなわち斥力または引力）を働かせてプレイヤキャラクタの位置を補正するプログラムである。つまり、引力によってプレイヤキャラクタを外力オブジェクトに近付けるように移動を補正する移動補正データを生成し、または斥力によってプレイヤキャラクタを外力オブジェクトから遠ざけるように移動を補正する移動補正データを生成する。プレイヤキャラクタの内面は、たとえば性格や精神状態等を含むが、後述するように、プレイヤキャラクタと外力オブジェクトとの好き嫌い関係に集約されて示される。そして、外力オブジェクトがプレイヤキャラクタの好きなオブジェクトであるとき引力が働き、プレイヤキャラクタの嫌いなオブジェクトであるとき斥力が働く。生成される移動補正データは、移動方向に関する情報を含み、後述するように、引力を作用させる場合には外力オブジェクトの位置する方向に移動させる補正データが生成され、斥力を作用させる場合には外力オブジェクトから放射方向に移動させる補正データが生成される。また、移動補正データは、移動量ないし移動速度に関する情報を含み、後述するように、作用させる斥力または引力の大きさすなわち補正の程度は、たとえば、プレイヤキャラクタと外力オブジェクトとの距離に応じて決定される。この実施例では、外力オブジェクトに近いほど、外力が大きくなるように、つまり、補正値が大きくなるように設定される。なお、斥力または引力による補正値は、たとえば所定範囲内で同一に設定されてもよい。
【００４６】
移動位置算出プログラム８６は、プレイヤの操作（移動操作データ）と外力による補正（移動補正データ）とに基づいて、ゲーム空間内を移動した後のプレイヤキャラクタの位置座標を算出するプログラムである。移動制御プログラム８８は、移動位置算出プログラム８６によって算出された移動後の位置座標に基づいて、プレイヤキャラクタを移動させるプログラムである。
【００４７】
また、データ記憶領域７２は、画像データ領域９０、マップデータ領域９２、内面パラメータ領域９４、プレイヤキャラクタ位置データ領域９６、外力オブジェクト位置データ領域９８などを含む。
【００４８】
画像データ領域９０には、上述したような３Ｄゲーム画像を生成するためのポリゴンデータやテクスチャデータのようなデータが記憶される。具体的には、上述したプレイヤキャラクタ、アイテム、背景オブジェクトおよび外力オブジェクトなどについての画像データである。マップデータ領域９２は、当該ゲーム空間のマップに関するデータが記憶される。
【００４９】
内面パラメータデータ領域９４は、プレイヤキャラクタの内面（内面的な特性）を示す内面情報を記憶する。プレイヤキャラクタの内面は、好きまたは嫌いという要素に集約されており、プレイヤキャラクタと外力オブジェクトとの好き嫌い関係で示される。内面パラメータデータは、図４に示すように、複数種類のプレイヤキャラクタが準備されるゲームの場合、プレイヤキャラクタの種類ごとの内面情報を含む。つまり、内面パラメータデータでは、たとえば、プレイヤキャラクタの種類ごとに、何が好きなオブジェクトであり、何が嫌いなオブジェクトであるかが予め登録されている。この内面パラメータに基づいて、上述の外力による補正プログラムでは、プレイヤキャラクタと外力オブジェクトとの間に作用させる外力が斥力であるか引力であるかが判定される。この図４の例では、プレイヤキャラクタＡの場合、好きなオブジェクトとして犬、菓子…が設定され、嫌いなオブジェクトとして猫、野菜…が設定される。したがって、プレイヤキャラクタＡでゲームをプレイしている場合に、犬や菓子との距離が所定の距離範囲内になったときは引力が働き、猫や野菜との距離が所定の距離範囲内になったときは斥力が働く。
【００５０】
なお、内面は、好きまたは嫌いに集約しているが、感情的な好き嫌いだけに限られるものではない。たとえば、好きなオブジェクトとしては、プレイヤキャラクタが必要とするものや欲するもの等が設定されてよいし、嫌いなオブジェクトとしては、プレイヤキャラクタが必要としないもの等が設定されてよい。
【００５１】
また、内面パラメータデータは、外力オブジェクトの種類ごとに、好きなプレイヤキャラクタおよび嫌いなプレイヤキャラクタを設定したものであってもよい。
【００５２】
プレイヤキャラクタ位置データ領域９６はプレイヤキャラクタのゲーム空間における位置座標を記憶する。外力オブジェクト位置データ領域９８は、各外力オブジェクトのゲーム空間における位置座標を記憶する。
【００５３】
なお、メインメモリ４０には、図示は省略するが、ゲーム中に演奏される音楽（ＢＧＭ）や効果音のような音についてのサウンドデータや、当該ゲームの進行に従って発生するゲームデータやフラグデータなども記憶される。
【００５４】
このゲームシステム１０では、たとえばプレイヤキャラクタがゲーム空間を移動していくアクションゲームなどが行われる。プレイヤはコントローラ２２を操作して、プレイヤキャラクタの移動など任意のアクションを制御する。コントローラ２２から出力される操作コマンドないし操作信号は、コントローラＩ／Ｆ５６に与えられる。ＣＰＵ３６は、所定周期（たとえば１フレーム）毎でありたとえばＶリトレースのタイミングで、コントローラＩ／Ｆ５６に設けられるコントローラバッファ（図示せず）に一時記憶された操作信号を取得する。なお、Ｖリトレースのタイミングは３Ｄゲーム画像を生成するＧＰＵ４２で発生され、これをＣＰＵ３６は取得する。
【００５５】
ここで、コントローラ２２からビデオゲーム装置１２に出力される操作信号のフォーマットについて、図５を用いて説明する。ただし、操作信号は、ビデオゲーム装置１２（この実施例では、本件出願人が製造販売する「ＧＡＭＥ  ＣＵＢＥ（商品名）」）の標準のコントローラ（図１のコントローラ２２）に対応したフォーマットである。
【００５６】
なお、図１においては省略したが、コントローラ２２の側面であり、ケーブル２４が設けられる側には、さらに、ボタンスイッチとしてのＲトリガーボタン，ＬトリガーボタンおよびＺトリガーボタンが設けられる。
【００５７】
図５からも分かるように、操作信号は８バイトで構成され、１バイト目（1st  byte）には、ビット７（b7）から順にビット０（b0）まで、“０”，“０”，“ＯＲＧ＿ＣＨ”，“ＳＴＡＲＴ”，“Ｙ”，“Ｘ”，“Ｂ”および“Ａ”についてのデータが書き込まれる。ビット７およびビット６は固定値“０”であり、ビット５は設定モード“ＯＲＧ＿ＣＨ”のオンまたはオフを示すデータが書き込まれる。この実施例では、設定モード“ＯＲＧ＿ＣＨ”がオンである場合には“１”が書き込まれ、設定モード“ＯＲＧ＿ＣＨ”がオフである場合には“０”が書き込まれる。ここで、“ＯＲＧ＿ＣＨ”は、基準位置（ジョイスティック（２６ａ，２６ｂ）の原点（ニュートラルポジション））を再設定するか否かを設定するモード（設定モード）についての変数である。ビット４〜ビット０は、スタート／ポーズボタン２６ｈ，Ｙボタン２６ｇ，Ｘボタン２６ｆ，Ｂボタン２６ｅおよびＡボタン２６ｄの各々のオンまたはオフを示すデータが書き込まれる。この実施例では、ボタンスイッチがオンである場合には該当するビットに“１”が書き込まれ、ボタンスイッチがオフである場合には該当するビットに“０”が書き込まれる。
【００５８】
２バイト目（2nd  byte）には、ビット７から順にビット０まで、“ＦＩＮ”，“Ｌ”，“Ｒ”，“Ｚ”，“ＵＰ”，“ＤＯＷＮ”，“ＲＩＧＨＴ”および“ＬＥＦＴ”についてのデータが書き込まれる。ビット７はコントローラを識別するモード“ＦＩＮ”のオンまたはオフを示すデータが書き込まれる。この実施例では、標準コントローラの場合にはオンである“１”が書き込まれ、標準コントローラとは異なる操作装置（拳銃を模した操作装置や楽器を模した操作装置など）の場合にはオフである“０”が書き込まれる。ビット６〜ビット０には、Ｌトリガーボタン，Ｒトリガーボタン、Ｚボタン、ＵＰ（上）ボタン、ＤＯＷＮ（下）ボタン、ＲＩＧＨＴ（右）ボタンおよびＬＥＦＴ（左）ボタンの各々のオン／オフを示すデータが書き込まれる。各ビットに書き込まれるデータ値は、上述したスタート／ポーズボタン２６ｈ等のボタンスイッチと同じである。
【００５９】
なお、ＵＰ（上）ボタン、ＤＯＷＮ（下）ボタン、ＲＩＧＨＴ（右）ボタンおよびＬＥＦＴ（左）ボタンは、十字スイッチ２６ｃの各ボタンである。
【００６０】
３バイト目（3rd  byte）には、コントロールスティック２６ａのＸ方向の傾き量を示
すデータが全８ビットを用いた２進数のデータで書き込まれる。したがって、Ｘ方向の傾きは、“00000000”（１０進数で“０”）〜“11111111”（“２５５”）で表される。たとえば、コントロールスティック２６ａを左に傾けると“０”に近づき、右に傾けると“２５５”に近づく。
【００６１】
デフォルト設定では、ニュートラルポジションは“１２８（01000000）”であるため、これより小さい場合には、コントロールスティック２６ａは左方向に傾けられていることが分かり、これより大きければ右方向に傾けられていることが分かる。また、その傾き量は、取得したデータ値とニュートラルポジションのデータ値との差分によって検出することができる。
【００６２】
４バイト目（4th  byte）には、コントロールスティック２６ａのＹ方向の傾き量を示
すデータが全８ビットを用いた２進数のデータで書き込まれる。したがって、Ｙ方向の傾きもまた、Ｘ方向と同様に、“00000000”（１０進数で“０”）〜“11111111”（“２５５”）で表される。たとえば、コントロールスティック２６ａを下に傾けると“０”に近づき、上に傾けると“２５５”に近づく。
【００６３】
デフォルト設定では、ニュートラルポジションは“１２８（01000000）”であるため、これより小さい場合には、コントロールスティック２６ａは下方向に傾けられていることが分かり、これより大きければ上方向に傾けられていることが分かる。また、その傾き量は、取得したデータ値とニュートラルポジションのデータ値との差分によって検出することができる。
【００６４】
なお、コントロールスティック２６ａが斜め方向に傾けられている場合には、３バイト目と４バイト目のデータとが共にニュートラルポジションのデータ値“01000000”以外のデータ値となる。
【００６５】
５バイト目（5th  byte）には、Ｃスティック２６ｂのＸ方向の傾き量を示すデータが
全８ビットを用いた２進数のデータで書き込まれる。また、６バイト目（6th  byte）に
は、Ｃスティック２６ｂのＹ方向の傾き量を示すデータが全８ビットを用いた２進数のデータで書き込まれる。これらのデータ値の決め方は、上述したコントロールスティック２６ａの場合と同じである。
【００６６】
７バイト目（7th  byte）には、Ｌトリガーボタンの押し込み量を示すデータが全８ビ
ットを用いた２進数のデータで書き込まれる。Ｌトリガーボタンが押されていない場合のデータ値は“00000000”であり、押し込み量に応じてデータ値は大きくされ、最大限に押し込んだ場合のデータ値は“11111111”となる。
【００６７】
８バイト目（8th  byte）には、Ｒトリガーボタンの押し込み量を示すデータが全８ビ
ットを用いた２進数で書き込まれる。このデータ値の決め方は、Ｌトリガーボタンの場合と同じである。
【００６８】
このような操作信号がコントローラ２２（２２ａ，２２ｂ）から出力され、ＣＰＵ３６はこれを取得し、上述したように、プレイヤキャラクタの移動等の任意のアクションを制御する。一例として、プレイヤキャラクタの移動は、コントロールスティック２６ａの傾斜方向および傾斜量によって制御される。具体的には、ＣＰＵ３６は、コントローラ２２からの操作信号を取得すると、当該操作信号に含まれるコントロールスティック２６ａの傾斜方向および傾斜量に従って移動後のプレイヤキャラクタの位置（位置座標）を計算する。たとえば、コントロールスティック２６ａを、上，下，左，右または斜めの方向に、１００％傾斜させた（倒した）場合の移動量ないし移動速度は予め決定されており、スティックの傾斜量に応じて可変される。また、ゲーム空間におけるプレイヤキャラクタの３次元位置（現在位置の位置座標）はＣＰＵ３６によって監視され、プレイヤキャラクタ位置データ領域９６に格納されている。したがって、操作信号から移動方向および移動量を検出すると、操作信号に基づいてプレイヤキャラクタをゲーム空間内で移動させる場合の移動後の位置座標（以下、「第１位置座標」という。）を算出することができる。
【００６９】
この実施例のゲーム空間では、少なくとも１つの外力オブジェクトが所定位置に配置されあるいは移動している。プレイヤによって操作されるプレイヤキャラクタが外力オブジェクトから所定の距離範囲内に入ると、すなわち、プレイヤキャラクタの位置と外力オブジェクトの位置とが所定の距離範囲内にある場合、プレイヤキャラクタに外力が作用する。上述のように、プレイヤキャラクタには内面パラメータが設けられていて、この内面パラメータに基づいて外力の種類が決定される。すなわち、その外力オブジェクトがプレイヤキャラクタの嫌いなオブジェクトであった場合には、プレイヤキャラクタに対してその外力オブジェクトから遠ざかるように斥力が働く。一方、その外力オブジェクトがプレイヤキャラクタの好きなオブジェクトであった場合には、プレイヤキャラクタに対してその外力オブジェクトに近付けるように引力が働く。したがって、プレイヤキャラクタの移動は、所定距離範囲内では、プレイヤによる操作入力信号だけで決定されず、内面パラメータに基づいた外力の影響を受けて補正される。外力による補正データは、操作入力データと同様に、移動方向および移動量に関する情報を含んでいて、これによって操作入力データの移動方向および移動量が補正される。したがって、プレイヤキャラクタの移動する方向および移動量の変化によって、プレイヤキャラクタの内面を表現することができる。具体的には、プレイヤによる操作が効きにくくなるので、プレイヤは体感的にキャラクタの内面を知ることができる。
【００７０】
図６には、プレイヤキャラクタ１００が嫌いなオブジェクト１０２から所定の距離範囲内に入った場合における操作入力および斥力による移動ベクトルの一例が示される。プレイヤキャラクタ１００の嫌いな外力オブジェクト１０２には、プレイヤキャラクタ１００が入ったときに斥力が作用する所定領域が設定されている。この図６の例の所定領域は、外力オブジェクト１０２から第１の距離を有する外周Ｄ１によって囲まれる範囲であり、外周Ｄ１と第１の距離よりも小さい第２の距離を有する内周Ｄ２との間の第１領域１０４、および内周Ｄ２によって囲まれる第２領域１０６を含む。なお、この図６では、外周Ｄ１および内周Ｄ２を便宜上破線で明示するようにしている。
【００７１】
これら第１領域１０４および第２領域１０６において、プレイヤキャラクタ１００には外力オブジェクト１０２から放射方向への斥力が働き、プレイヤキャラクタ１００の移動はこの斥力の影響を受けて補正される。この実施例では、斥力による補正値の大きさは、たとえば、プレイヤキャラクタ１００と外力オブジェクト１０２との距離に応じて変化し、第１領域１０４においては、プレイヤキャラクタ１００が内周Ｄ２ないし外力オブジェクト１０２に近付くに従って大きくなり（たとえば０〜５０％等）、第２領域１０６においてはたとえば一定値（１００％等）になるように設定される。つまり、プレイヤキャラクタ１００と外力オブジェクト１０２との距離に応じて、プレイヤキャラクタの移動量を変化させるので、プレイヤキャラクタの内面を、外力オブジェクトに近付くに従ってより顕著に表現することができる。なお、この外力による補正値の大きさは、コントロールスティック２６ａの傾斜量に相当するものである。
【００７２】
したがって、プレイヤは外周Ｄ１内の第１領域１０４に入ると、外へ押し戻そうとするプレッシャがどんどんきつくなるのを感じる。第２領域１０６の斥力による補正値の大きさを１００％に設定した場合には、プレイヤは内周Ｄ２からさらに中心には近付くことはできない。なお、第２領域１０６の斥力による補正値を１００％よりも小さく設定した場合にはプレイヤは第２領域１０６に到達してこれを横切ることも可能である。また、プレイヤが外周Ｄ１内に入ってたとえばコンロトールスティック２６ａから手を離した場合には、プレイヤキャラクタ１００は押し戻される。そのままニュートラルポジションにコントロールスティック２６ａをおいておくと、プレイヤキャラクタ１００は最終的に外周Ｄ１の端にまで押し戻される。押し戻されるスピードはプレイヤキャラクタ１００が内周Ｄ２から遠ざかるほど遅くなる。
【００７３】
なお、所定領域の大きさ、すなわち、中心（外力オブジェクト１０２の位置）から外周Ｄ１および内周Ｄ２までの距離は、すべての種類の外力オブジェクト１０２に共通に設定されてもよいが、外力オブジェクト１０２の種類（犬、猫など）に応じて異なるものに設定されてもよい。この場合、プレイヤキャラクタの各外力オブジェクトに対する好き嫌いの程度を、外力の影響のおよび始める距離で表現することができる。また、この所定領域を規定する距離は、同じ種類の外力オブジェクト１０２に対しても、プレイヤキャラクタ１００の種類によって異なるように設定されてよい。この場合には、プレイヤキャラクタごとの好き嫌いの程度の違いを表現することができ、プレイヤキャラクタごとに異なる内面特性を演出できるので、ゲームの面白みを増すことができる。
【００７４】
また、所定領域内における斥力または引力による補正値の大きさおよび補正値の距離に応じた変化の仕方等に関しても、同様に、すべての外力オブジェクト１０２に共通に設定されてもよいが、外力オブジェクト１０２の種類に応じて異なるものに設定されてもよい。この場合、プレイヤキャラクタの外力オブジェクトに対する好き嫌いの程度を、外力の大きさで表現することができる。また、補正値の大きさおよび補正値の変化の仕方等は、同じ種類の外力オブジェクト１０２に対しても、プレイヤキャラクタ１００の種類によって異なるように設定されてよい。この場合には、プレイヤキャラクタごとの好き嫌いの程度の違いを表現して、各プレイヤキャラクタの内面特性の違いを演出できる。
【００７５】
この所定距離範囲内におけるプレイヤキャラクタ１００の移動後の位置座標は、移動操作データおよび斥力による移動補正データに基づいて決定される。図６では、プレイヤキャラクタ１００の現在位置と移動後の位置とを分かり易く示すために、操作入力および斥力による移動方向および移動量（移動速度）をベクトル（以下、「移動ベクトル」という。）で表現している。プレイヤキャラクタ１００は、操作入力による移動ベクトル（長破線）と斥力による移動ベクトル（点線）との合成ベクトル（実線）に従って移動される。具体的には、プレイヤキャラクタ１００の移動後の位置座標は、座標演算によって算出され、したがって、移動制御を簡単に行える。つまり、操作入力に基づいて移動させる場合の移動後の第１位置座標を算出するとともに、斥力による補正値に基づいてプレイヤキャラクタをゲーム空間内で移動させる場合の移動後の位置座標（以下、「第２位置座標」という。）を算出する。そして、算出した第１位置座標および第２位置座標に基づいて、プレイヤキャラクタ１００を実際にゲーム空間内で移動させる場合の移動後の位置座標（以下、「第３位置座標」という。）を算出する。そして、プレイヤキャラクタ１００がゲーム空間内を第３位置座標に移動する様子がモニタ３４に表示されることとなる。
【００７６】
なお、コントローラ２２からの操作入力は、プレイヤキャラクタ１００のローカル座標系で与えられる。ローカル座標系では、プレイヤキャラクタ１００の進行方向がＹ軸、真横方向がＸ軸である。これに対して、斥力または引力はワールド座標系で与えられるので、外力による補正値は、ローカル座標系に変換されてから操作入力のＸ軸およびＹ軸のデータに加えられる。
【００７７】
斥力を作用させる外力オブジェクトの所定距離範囲内におけるプレイヤキャラクタ１００の移動制御の具体的な一例について、図７を参照して説明する。図７には、いくつかの状況における操作入力による移動ベクトルと斥力による移動ベクトルとそれらの合成ベクトルが示される。
【００７８】
図７（Ａ）では、プレイヤは嫌いなオブジェクト１０２に向かう１００％左方向移動の操作入力を行っている。一方、プレイヤキャラクタ１００には嫌いなオブジェクト１０２から５０％右方向の斥力が作用する。操作入力による移動ベクトルと斥力による移動ベクトルとが合成され、この合成ベクトルに従ってプレイヤキャラクタ１００が移動される。この場合には、プレイヤキャラクタ１００は５０％左方向に移動する。したがって、プレイヤは押し戻されるような力によって外力オブジェクト１０２に近付き難いことを感じる。
【００７９】
図７（Ｂ）では、プレイヤは嫌いなオブジェクト１０２から遠ざかる７０％右方向の操作入力を行っている。プレイヤキャラクタ１００には嫌いなオブジェクト１０２から５０％右方向の斥力が働く。この場合には、プレイヤキャラクタ１００は１００％右方向に移動される。プレイヤキャラクタの移動は最大で１００％を超えることはない。実際の操作入力よりも大きい移動量となるので、プレイヤは外力オブジェクト１０２から後押しされているように感じる。
【００８０】
図７（Ｃ）では、プレイヤは操作入力を行っておらず、プレイヤキャラクタ１００には嫌いなオブジェクト１０２から５０％右方向の斥力が作用している。この場合には、プレイヤキャラクタ１００は、５０％右方向に移動する。何も操作しないと、プレイヤキャラクタ１００は外力オブジェクト１０２から遠ざけられ、所定領域から押し出されることとなる。
【００８１】
図７（Ｄ）では、プレイヤは嫌いなオブジェクト１０２に向かう１００％左方向の操作入力を行っている。一方、プレイヤキャラクタ１００には嫌いなオブジェクト１０２から１００％右方向の斥力が働く。この場合には、プレイヤキャラクタ１００は移動せず、嫌いなオブジェクト１０２に近付くことができない。この図７（Ｄ）の状況は、たとえば図６の第２領域１０６における斥力による補正値を１００％に設定した場合の一例に相当する。
【００８２】
このようにして、プレイヤキャラクタ１００が嫌いなオブジェクト１０２に近付いた場合には、嫌いなオブジェクト１０２から遠ざけるような斥力がプレイヤキャラクタ１００に作用し、具体的には嫌いなオブジェクト１０２から遠ざける移動補正データが生成されて、その移動に影響が与えられる。図８には、プレイヤキャラクタ１００が嫌いな外力オブジェクト１０２に近付いたときの移動の軌跡の一例が示される。この図８は、プレイヤによって図８の上方向へ移動しようとする操作入力が与えられ、嫌いな外力オブジェクト１０２の横を通過させようとする状況が示されている。プレイヤキャラクタ１００が外周Ｄ１内に入ると、外力オブジェクト１０２からの放射方向の斥力が作用する。この斥力によって、プレイヤキャラクタ１００は、外力オブジェクト１０２から遠ざけられながら上方向に進んで行く。また、プレイヤキャラクタ１００は外力オブジェクト１０２の左斜め下方向から所定領域に入るので、移動速度については、外周Ｄ１内に入って外力オブジェクト１０２の横の方に到達するまでの暫くの間は、斥力によって進行方向と逆方向の成分が働くので遅くなり、その後は速くなる。プレイヤは、自らの操作と異なったプレイヤキャラクタ１００の移動の様子を見ることによって、その外力オブジェクト１０２がプレイヤキャラクタの内面に影響のあるものであることを理解し、この場合外力オブジェクト１０２を嫌っていることが分かる。
【００８３】
一方、図９には、プレイヤキャラクタ１００が好きなオブジェクト１０８から所定の距離範囲内に入った場合における操作入力および引力による移動ベクトルの一例が示される。プレイヤキャラクタ１００の好きな外力オブジェクト１０８には、プレイヤキャラクタ１００が入ったときに引力が作用する所定領域が設定されている。なお、この図９の例の所定領域も、上述の図６の例と同様に、外周Ｄ１と内周Ｄ２との間の第１領域１０４、および内周Ｄ２によって囲まれる第２領域１０６を含む。
【００８４】
これら第１領域１０４および第２領域１０６において、プレイヤキャラクタ１００には外力オブジェクト１０８の位置する方向へ向かう引力が働き、プレイヤキャラクタ１００の移動はこの引力の影響を受けて補正される。引力による補正値の大きさも、この実施例では、たとえばプレイヤキャラクタ１００と外力オブジェクト１０８との距離に応じて変化し、第１領域１０４においては、プレイヤキャラクタ１００が内周Ｄ２ないし外力オブジェクト１０８に近付くに従って大きくなり（たとえば０〜５０％等）、第２領域１０６においてはたとえば一定値（１００％等）になるように設定される。
【００８５】
したがって、プレイヤは外周Ｄ１内の第１領域１０４に入ると、外力オブジェクト１０８へ向けて引っ張られるプレッシャがどんどんきつくなるのを感じる。プレイヤが外周Ｄ１内に入ってたとえばコンロトールスティック２６ａから手を離した場合には、プレイヤキャラクタ１００は外力オブジェクト１０８の方に引き寄せられる。そのままニュートラルポジションにコントロールスティック２６ａをおいておくと、プレイヤキャラクタ１００は内周Ｄ２まで引き寄せられる。引き寄せられるスピードはプレイヤキャラクタ１００が内周Ｄ２に近づくほど早くなる。第２領域１０６の引力による補正値の大きさを１００％に設定した場合には、プレイヤは内周Ｄ２に到達した時点でもはや第２領域１０６から離脱することが不可能になり、中心（外力オブジェクト１０８）に引き寄せられることとなる。なお、第２領域１０６の引力による補正値を１００％よりも小さくした場合にはプレイヤは第２領域１０６に到達してもそこから脱出することが可能である。
【００８６】
この所定距離範囲内におけるプレイヤキャラクタ１００の移動後の位置座標は、移動操作データおよび引力による移動補正データに基づいて決定される。プレイヤキャラクタ１００は、操作入力による移動ベクトル（長破線）と引力による移動ベクトル（点線）との合成ベクトル（実線）に従って移動される。具体的には、プレイヤキャラクタ１００の移動後の位置座標は、上述の斥力の場合と同様に、座標演算によって算出される。つまり、操作入力に基づいて移動させる場合の移動後の第１位置座標を算出するとともに、引力による補正値に基づいて移動させる場合の移動後の第２位置座標を算出する。そして、算出した第１位置座標および第２位置座標に基づいて、実際にプレイヤキャラクタ１００を移動させる場合の移動後の第３位置座標を算出する。
【００８７】
引力を作用させる外力オブジェクト１０８の所定距離範囲内におけるプレイヤキャラクタ１００の移動制御の具体的な一例について、図１０を参照して説明する。図１０には、いくつかの状況における操作入力による移動ベクトルと引力による移動ベクトルとそれらの合成ベクトルが示される。
【００８８】
図１０（Ａ）では、プレイヤは好きなオブジェクト１０８から遠ざかる１００％右方向移動の操作入力を行っている。一方、プレイヤキャラクタ１００には好きなオブジェクト１０８から５０％左方向の引力が作用する。操作入力による移動ベクトルと引力による移動ベクトルとが合成され、この合成ベクトルに従ってプレイヤキャラクタ１００が移動される。この場合には、プレイヤキャラクタ１００は５０％右方向に移動する。したがって、プレイヤは外力オブジェクト１０８に引き寄せられる力によって離れ難いことを感じる。
【００８９】
図１０（Ｂ）では、プレイヤは好きなオブジェクト１０８に向かう７０％左方向の操作入力を行っている。プレイヤキャラクタ１００には好きなオブジェクト１０８から５０％左方向の引力が働く。この場合には、プレイヤキャラクタ１００は１００％左方向に移動される。プレイヤキャラクタの移動は最大で１００％を超えることはない。実際の操作入力よりも大きい移動量となるので、プレイヤは外力オブジェクト１０８に引っ張られるように感じる。
【００９０】
図１０（Ｃ）では、プレイヤは操作入力を行っておらず、プレイヤキャラクタ１００には好きなオブジェクト１０８から５０％左方向の引力が作用している。この場合には、プレイヤキャラクタ１００は、５０％左方向に移動する。何も操作しないと、プレイヤキャラクタ１００は最終的に外力オブジェクト１０８のところまで引き寄せられる。
【００９１】
図１０（Ｄ）では、プレイヤは好きなオブジェクト１０８から遠ざかる１００％右方向の操作入力を行っている。一方、プレイヤキャラクタ１００には好きなオブジェクト１０８から１００％左方向の引力が働く。この場合には、プレイヤキャラクタ１００は移動せず、好きなオブジェクト１０８から離れることができない。この図１０（Ｄ）の状況は、たとえば図９の第２領域１０６において引力による補正値を１００％に設定した場合の一例に相当する。
【００９２】
このようにして、プレイヤキャラクタ１００が好きなオブジェクト１０８に近付いた場合には、その好きなオブジェクト１０８に引き寄せられる引力がプレイヤキャラクタ１００に作用し、具体的には好きなオブジェクト１０２に近付ける移動補正データが生成されて、その移動に影響が与えられる。図１１には、プレイヤキャラクタ１００が好きな外力オブジェクト１０８に近付いたときの移動の軌跡の一例が示される。この図１１は、プレイヤによって図１１の上方向へ移動しようとする操作入力が与えられ、好きな外力オブジェクト１０８の横を通過させようとする状況が示されている。プレイヤキャラクタ１００が外周Ｄ１内に入ると、外力オブジェクト１０８に引き寄せようとする引力が作用する。この引力によって、プレイヤキャラクタ１００は、外力オブジェクト１０８に近付けられつつ上方向に進んで行く。また、プレイヤキャラクタ１００は外力オブジェクト１０８の左斜め下方向から所定領域に入るので、移動速度については、外周Ｄ１内に入って外力オブジェクト１０８の横の方に到達するまでの間は、引力による進行方向の成分が働くので早くなり、その後は逆に遅くなる。プレイヤは、自らのコントローラ操作の効きにくさを体感し、自らの指示と異なったプレイヤキャラクタ１００の移動の様子を見ることによって、その外力オブジェクト１０８がプレイヤキャラクタ１００の内面に影響を与えるものであることを体感的に理解し、この場合プレイヤキャラクタ１００が外力オブジェクト１０８を好いていることが分かる。
【００９３】
図１２には、このゲームシステム１０におけるゲーム動作の一例が示される。ゲームが開始されると、図１２に示すように、ＣＰＵ３６は、ステップＳ１でゲーム空間の設定および更新を処理する。この処理によって、ゲーム開始時あるいは場面の切り替え時等に地形、プレイヤキャラクタおよびその他オブジェクト等がゲーム空間に配置され、また、その後は、それぞれの位置および動き等が更新される。次に、ＣＰＵ３６は、ステップＳ３で、非プレイヤオブジェクトの制御処理を実行する。この非プレイヤオブジェクトの制御処理の詳細は図１３に示され、後述するように、外力オブジェクトによる補正等が処理される。続いて、ステップＳ５で、ＣＰＵ３６は、プレイヤキャラクタの制御処理を実行する。このプレイヤキャラクタの制御処理の詳細は図１４に示され、後述するように、プレイヤキャラクタの移動等が制御される。ステップＳ７では、ＣＰＵ３６は、ＧＰＵ４２を用いてゲーム画像を生成してモニタ３４に表示させる。そして、ＣＰＵ３６は、ステップＳ９でゲーム終了であると判断されるまで、ステップＳ１からの処理を繰り返してゲームを進行させ、ゲーム画像を表示させる。これらステップＳ１からステップＳ９の処理は所定周期、たとえば１フレーム毎に実行される。
【００９４】
図１３には、ステップＳ３（図１２）の非プレイヤオブジェクトの制御処理の動作の一例が示される。図１３の最初のステップＳ２１で、ＣＰＵ３６は、ステップＳ１（図１２）で設定または更新されたゲーム空間内に存在する非プレイヤオブジェクトのそれぞれの動作を制御する。たとえば非プレイヤオブジェクトのうち移動するものについては、その移動後の位置等が算出される。
【００９５】
次に、ステップＳ２３で、ゲーム空間内に外力オブジェクトが存在するかどうかを判断する。なお、外力オブジェクトの存在の有無はゲーム画像として表示される範囲内、あるいはプレイヤキャラクタの見ることのできる範囲内等の他の所定範囲で探索するようにしてもよい。このステップＳ２３で“ＮＯ”であれば、外力オブジェクトによる操作入力の補正を実行しなくてよいので、この非プレイヤオブジェクトの制御処理を終了して図１２のステップＳ５へ戻る。
【００９６】
一方、ステップＳ２３で“ＹＥＳ”であれば、つまり、外力オブジェクトがゲーム空間内等の所定範囲内に存在する場合には、ステップＳ２５で、ＣＰＵ３６は、内面パラメータデータ（図４）を参照して、当該外力オブジェクトによって外力を作用させる対象となるプレイヤキャラクタを探索する。つまり、ステップＳ２３でゲーム空間内等に存在すると判断された外力オブジェクトから１つの外力オブジェクトを選択して、当該外力オブジェクトが、内面パラメータデータにおいてプレイヤキャラクタの好きなオブジェクトまたは嫌いなオブジェクトとして登録されているかが探索される。なお、内面パラメータには複数のプレイヤキャラクタごとに好きなオブジェクトおよび嫌いなオブジェクトが登録されているが、この実施例のようにプレイヤキャラクタがゲーム空間に１種類のみ登場する場合には、ゲーム開始時等にプレイヤに選択されて実際に操作されているプレイヤキャラクタに関するデータのみを参照すればよい。
【００９７】
そして、ステップＳ２７で、ＣＰＵ３６は、プレイヤキャラクタがその外力オブジェクトによって外力を作用させる対象であるか否かを判断する。このステップＳ２７で“ＮＯ”であれば、つまり、その外力オブジェクトがプレイヤキャラクタの好きなオブジェクトでも嫌いなオブジェクトでもない場合には、ステップＳ３９へ進む。
【００９８】
一方、ステップＳ２７で“ＹＥＳ”であれば、つまり、その外力オブジェクトがプレイヤキャラクタの好きなオブジェクトかまたは嫌いなオブジェクトである場合には、続くステップＳ２９で、ＣＰＵ３６は、プレイヤキャラクタの現在の位置データとその外力オブジェクトの位置データとに基づいて、プレイヤキャラクタとその外力オブジェクトとの距離を算出する。
【００９９】
そして、ステップＳ３１で、ＣＰＵ３６は、算出した距離に基づいてプレイヤキャラクタがその外力オブジェクトの所定距離範囲内に存在するかどうかを判断する。つまり、たとえば、算出したプレイヤキャラクタと外力オブジェクトとの距離が、外力オブジェクトから外周Ｄ１（図６および図９）までの距離よりも小さいか否かを判断する。このステップＳ３１で“ＮＯ”であれば、つまり、プレイヤキャラクタが外力オブジェクトの所定距離範囲外に存在する場合には、ステップＳ３９へ進む。
【０１００】
一方、ステップＳ３１で“ＹＥＳ”であれば、つまり、プレイヤキャラクタが外力オブジェクトから所定距離範囲内に存在する場合には、続くステップＳ３３で、ＣＰＵ３６はその外力オブジェクトがプレイヤキャラクタの嫌いなオブジェクトかあるいは好きなオブジェクトかを判断する。
【０１０１】
このステップＳ３３で“ＹＥＳ”であれば、つまり、外力オブジェクトが嫌いなオブジェクトである場合には、続くステップＳ３５で、ＣＰＵ３６は、プレイヤキャラクタと外力オブジェクトの距離に応じて、斥力による補正値を決定して、その操作補正データをデータ記憶領域７２の所定領域に出力する。ステップＳ３５を終了するとステップＳ３９へ進む。なお、外力による補正値は、外力オブジェクトとプレイヤキャラクタとの距離に基づいて計算されてもよいし、たとえば所定距離ごとに対応付けられた補正値を登録した補正値データテーブル等を予め記憶しておいて、そのデータを参照して決定するようにしてもよい。
【０１０２】
一方、ステップＳ３３で“ＮＯ”であれば、つまり、外力オブジェクトが好きなオブジェクトである場合には、続くステップＳ３７で、ＣＰＵ３６は、プレイヤキャラクタと外力オブジェクトとの距離に応じて引力による補正値を決定して、その操作補正データをデータ記憶領域７２の所定領域に出力する。ステップＳ３７を終了するとステップＳ３９へ進む。
【０１０３】
ステップＳ３９では、ＣＰＵ３６は、ステップＳ２３で検出されたすべての外力オブジェクトについて処理が終了したか否かを判断する。このステップＳ３９で“ＮＯ”であれば、ステップＳ２５へ戻って、残りの外力オブジェクトから１つを選択して、その外力オブジェクトについて、上述と同様にしてステップＳ２５以降の処理を実行する。このようにして、ステップＳ３９で“ＹＥＳ”と判断されるまで処理を繰り返して、ゲーム空間内等に存在するすべての外力オブジェクトについて、補正の要否の判定や補正値の決定等が行われる。一方、ステップＳ３９で“ＹＥＳ”であれば、この非プレイヤオブジェクトの制御処理を終了して、図１２のステップＳ５に戻る。
【０１０４】
図１４にはステップＳ５（図１２）のプレイヤキャラクタ制御処理の動作の一例が示される。図１４の最初のステップＳ５１で、ＣＰＵ３６は操作入力を検出する。つまり、コントローラＩ／Ｆ５６のコントロールバッファに一時記憶された操作信号をたとえばＶリトレースのタイミングで取得する。これによって、プレイヤキャラクタの移動方向および移動量に関する情報を含む移動操作データが検出される。
【０１０５】
次に、ステップＳ５３で、ＣＰＵ３６は、現在位置から操作入力に基づいて移動させる場合の移動後の第１位置座標を算出する。現在位置はプレイヤキャラクタ位置データ領域９６から取得される。
【０１０６】
そして、ステップＳ５５で、ＣＰＵ３６は、外力オブジェクトからの補正があるか否かを判断する。この実施例では、ステップＳ３（図１２）の非プレイヤオブジェクト制御処理において、先に述べたように、外力オブジェクトによる補正を行うかどうかの判定や補正値の決定等の処理が実行されるので、このステップＳ５５では、たとえば、非プレイヤオブジェクト制御処理によってデータ記憶領域７２の所定領域に移動補正データ等が出力されているかどうかを判断する。
【０１０７】
ステップＳ５５で“ＮＯ”であれば、つまり、外力オブジェクトによる補正を行わない場合には、ステップＳ５７で、ＣＰＵ３６は、ステップＳ５３で算出した操作入力に基づいた第１位置座標にプレイヤキャラクタを移動させる。このとき、現在位置の位置座標と移動後の位置座標とで決定されるベクトルにより、移動速度が決定され、プレイヤキャラクタは当該移動速度でゲーム空間内を移動する。ステップＳ５７を終了すると図１２のステップＳ７へ戻る。
【０１０８】
一方、ステップＳ５５で“ＹＥＳ”であれば、つまり、外力オブジェクトによる補正を行う場合には、ＣＰＵ３６は、ステップＳ５９で、現在位置から移動補正データに基づいて移動させた場合の移動後の第２位置座標を算出する。なお、プレイヤキャラクタが複数の外力オブジェクトから外力の作用する位置に存在して、複数の外力オブジェクトのそれぞれによる移動補正データが出力されている場合には、それぞれの補正データに基づいて移動させた場合のそれぞれの第２位置座標を算出する。
【０１０９】
続いて、ステップＳ６１で、ＣＰＵ３６は、第１位置座標と第２位置座標に基づいて実際に移動させる場合の移動後の第３位置座標を算出する。なお、複数の第２位置座標が算出されている場合には、第１位置座標とすべての第２位置座標とに基づいて第３位置座標を算出する。つまり、この場合には、複数の操作補正データによる移動ベクトルと操作入力による移動ベクトルとの合成ベクトルに従って移動させた第３位置座標が算出される。
【０１１０】
そして、ステップＳ６３では、ＣＰＵ３６は、第３位置座標にプレイヤキャラクタを移動させる。このステップＳ６３を終了すると図１２のステップＳ７へ戻る。
【０１１１】
この実施例によれば、プレイヤキャラクタの位置と外力オブジェクトの位置とが所定の距離範囲内にあるとき、プレイヤキャラクタの内面を示す内面パラメータに基づいて、プレイヤキャラクタの操作入力に斥力または引力による補正を働かせて、外力オブジェクトから遠ざけ、または外力オブジェクトに近付けるので、プレイヤキャラクタの動作にその内面的な特性を反映させることができる。したがって、プレイヤキャラクタの性格や精神状態などの目に見えない内面をその動作によって表現することができる。また、プレイヤにとっては自らの操作が効きにくく、思い通りに動作していないことを体感し、したがって、キャラクタの内面を体感的に知ることができる。
【０１１２】
また、プレイヤは、自らの操作入力に従わないプレイヤキャラクタの動作からプレイヤキャラクタの内面を推測できるので、たとえばそれをキーワードとして新たなゲーム展開を楽しむことができる。たとえば、プレイヤキャラクタが猫を苦手とすることがその動作から判明したら、猫の天敵であるたとえば犬を連れ歩くことによって、猫を退散させて迅速な移動を行わせるといった展開が可能になる。
【０１１３】
また、プレイヤキャラクタの種類ごとに、それぞれの内面情報を記憶しているので、プレイヤキャラクタの種類に応じて、外力オブジェクトに近付いたときに、斥力や引力が加わったり加わらなかったりするので、プレイヤキャラクタごとに異なる内面の特徴や個性を表現することができ、単調になりがちなアクションゲームの興趣性を高めることができる。
【０１１４】
なお、上述の実施例では、非プレイヤオブジェクトの制御処理において、ゲーム空間に存在する外力オブジェクトから所定距離範囲内にプレイヤキャラクタが存在するかどうかを判定するようにしていた。しかし、他の実施例では、プレイヤキャラクタの制御処理において、プレイヤキャラクタから所定距離範囲内に外力オブジェクトが存在するかどうかを判定するようにしてもよい。この他の実施例のプレイヤキャラクタの制御処理の動作の一例が図１５に示される。なお、この他の実施例の場合、非プレイヤオブジェクトの制御処理（図１３）では、たとえばステップＳ２１の処理が実行される。
【０１１５】
図１５の最初のステップＳ８１で、ＣＰＵ３６は操作入力を検出し、ステップＳ８３で、操作入力に基づいて移動させた場合の第１位置座標を算出する。そして、ステップＳ８５で、ＣＰＵ３６はゲーム空間内やゲーム画像として表示される範囲内等に外力オブジェクトが存在するか否かを判断する。このステップＳ８５で“ＮＯ”であれば、ステップＳ８７で、ＣＰＵ３６は、そのまま第１位置座標にプレイヤキャラクタを移動させて、このプレイヤキャラクタの制御処理を終了する。
【０１１６】
一方、ステップＳ８５で“ＹＥＳ”であれば、ＣＰＵ３６は、ステップＳ８９で、プレイヤキャラクタの内面パラメータを参照して、ゲーム空間内等に存在する外力オブジェクトのうち、当該プレイヤキャラクタの内面に対応して外力を働かせる外力オブジェクトが存在するかどうかを探索する。そして、ステップＳ９１で、ＣＰＵ３６は、プレイヤキャラクタに外力を作用させて補正を生じさせる外力オブジェクトが存在するかどうかを判断する。このステップＳ９１で“ＮＯ”であれば、つまり、ステップＳ８５で抽出された外力オブジェクトのすべてが、プレイヤキャラクタの好きなオブジェクトまたは嫌いなオブジェクトのいずれでもない場合には、外力による補正を行わず、ステップＳ８７へ進む。
【０１１７】
一方、ステップＳ９１で“ＹＥＳ”であれば、つまり、プレイヤキャラクタの好きなオブジェクトまたは嫌いなオブジェクトである外力オブジェクトが存在した場合には、続くステップＳ９３で、ＣＰＵ３６は、プレイヤキャラクタと外力オブジェクトとの距離を算出する。なお、補正を生じさせる外力オブジェクトが複数ある場合には１つを選択して、その外力オブジェクトとの間の距離を求める。
【０１１８】
続いて、ステップＳ９５で、ＣＰＵ３６は、算出した距離に基づいて、その外力オブジェクトがプレイヤキャラクタから所定の距離範囲内に存在するか否かを判断する。この他の実施例でも、所定の距離範囲は、たとえば、上述の実施例と同様にして設定されてよい。つまり、所定の距離範囲は、プレイヤキャラクタの位置から第１の距離を有する外周Ｄ１によって囲まれる領域であり、外周Ｄ１と第１の距離よりも小さい第２の距離を有する内周Ｄ２とによって囲まれる第１領域と、内周Ｄ２によって囲まれる第２領域とを含んでよい。そして、作用させる外力の大きさすなわち外力による補正値も、上述の実施例と同様にして、プレイヤキャラクタとその外力オブジェクトとの距離に応じて変化させるようにしてよい。たとえば、第１領域１０４においては内周Ｄ２に近付くに従って大きくするようにしてよいし、第２領域１０６においては一定値に設定されてよい。
【０１１９】
このステップＳ９５で“ＹＥＳ”であれば、ＣＰＵ３６は、続くステップＳ９７で、その外力オブジェクトが嫌いなオブジェクトであるか、または好きなオブジェクトあるかを判断する。このステップＳ９７で“ＹＥＳ”であれば、つまり、その外力オブジェクトがプレイヤキャラクタの嫌いなオブジェクトである場合には、ＣＰＵ３６は、ステップＳ９９で、プレイヤキャラクタと外力オブジェクトとの距離に応じて斥力による補正値を決定し、外力オブジェクトから遠ざける移動補正データを生成する。一方、ステップＳ９７で“ＮＯ”であれば、つまり、その外力オブジェクトが好きなオブジェクトである場合には、ＣＰＵ３６は、ステップＳ１０１で、プレイヤキャラクタと外力オブジェクトとの距離に応じて引力による補正値を決定し、外力オブジェクトに近付ける移動補正データを生成する。
【０１２０】
ステップＳ９９またはステップＳ１０１を終了するとステップＳ１０３へ進む。また、ステップＳ９５で“ＮＯ”であれば、つまり、その外力オブジェクトがプレイヤキャラクタから所定の距離範囲内に存在していない場合には、ステップＳ１０３へ進む。
【０１２１】
ステップＳ１０３では、ＣＰＵ３６は、ステップＳ９１で内面に対応して補正を生じさせるものと判断された外力オブジェクトのすべてについて処理が終了したか否かを判断する。このステップＳ１０３で“ＮＯ”であれば、ステップＳ９３へ戻って、残りの外力オブジェクトについての処理を繰り返す。
【０１２２】
一方、ステップＳ１０３で“ＹＥＳ”であれば、ＣＰＵ３６は、ステップＳ１０５で、現在位置から補正値に基づいて移動させた場合の第２位置座標を算出する。なお、複数の外力オブジェクトによって補正される場合には、それぞれの補正値に基づいて移動させた場合のそれぞれの第２位置座標を算出する。続いて、ステップＳ１０７で、ＣＰＵ３６は、第１位置座標と第２位置座標に基づいて実際に移動させる第３位置座標を算出する。なお、複数の外力オブジェクトによって補正される場合には、第１位置座標と複数の第２位置座標とに基づいて第３位置座標を算出する。そして、ステップＳ１０９で、ＣＰＵ３６は、第３位置座標にプレイヤキャラクタを移動させて、このプレイヤキャラクタの制御処理を終了する。
【０１２３】
また、上述の各実施例では、内面パラメータデータは、プレイヤキャラクタごとの性格のような内面を示すものとして予め登録されたものを用いるようにしていたが、ゲームの進行状況や状態等に従って設定するようにしてもよい。この場合、プレイヤキャラクタが外力オブジェクトに近付いたときに、プレイヤキャラクタの状況や状態等に応じて、斥力や引力が働いたり働かなかったりするので、ゲームとしての面白みを増すことができる。
【０１２４】
たとえば、ゲームの進行においてプレイヤキャラクタの内面に影響を与えるような体験や出来事等が発生し、または内面に影響を与えるような状態になった場合等に、内面パラメータを設定する。具体的な一例として、プレイヤキャラクタが犬に噛まれる体験をしたときには、そのプレイヤキャラクタの嫌いなオブジェクトに犬を設定して、その後犬に近付いたときに斥力を作用させる。また、たとえばプレイヤキャラクタの生命力（ライフ）が低下した場合には、好きなオブジェクトに生命力を回復させる食べ物を設定して、その後、その食べ物に近付いたときに引力を作用させる。
【０１２５】
また、内面パラメータには、内面に影響を与える体験等の頻度や程度等に基づいて、強度を持たせるようにしてもよい。つまり、たとえば、犬に攻撃された回数やダメージの程度あるいは生命力の低下度合い等に応じて、外力による補正値の大きさや、外力の作用する所定距離範囲の大きさなどを変化させるようにしてもよい。これによって、ゲームの進行状況や状態等に応じたプレイヤキャラクタの内面の変化を、その移動によって表現することができる。
【図面の簡単な説明】
【０１２６】
【図１】この発明の一実施例のゲームシステムを示す図解図である。
【図２】図１実施例に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図２に示すメインメモリのメモリマップの一例を示す図解図である。
【図４】内面パラメータデータの内容の一例を示す図解図である。
【図５】操作入力信号のフォーマットの一例を示す図解図である。
【図６】プレイヤキャラクタが嫌いなオブジェクトから所定範囲内に存在する場合の操作入力による移動ベクトル、斥力による移動ベクトルおよびそれらの合成ベクトルの一例を示す図解図である。
【図７】操作入力による移動ベクトル、斥力による移動ベクトルおよび合成ベクトルの他の例を示す図解図である。
【図８】プレイヤキャラクタが嫌いなオブジェクトに近付いたときの移動の軌跡の一例を示す図解図である。
【図９】プレイヤキャラクタが好きなオブジェクトから所定範囲内に存在する場合の操作入力による移動ベクトル、引力による移動ベクトルおよびそれらの合成ベクトルの一例を示す図解図である。
【図１０】操作入力による移動ベクトル、引力による移動ベクトルおよび合成ベクトルの他の例を示す図解図である。
【図１１】プレイヤキャラクタが好きなオブジェクトに近付いたときの移動の軌跡の一例を示す図解図である。
【図１２】図１実施例におけるメイン処理の一例を示すフロー図である。
【図１３】図１２におけるプレイヤキャラクタの制御処理の一例を示すフロー図である。
【図１４】図１２における非プレイヤオブジェクトの制御処理の一例を示すフロー図である。
【図１５】他の実施例のプレイヤキャラクタの制御処理を示すフロー図である。
【符号の説明】
【０１２７】
１０  …ゲームシステム
１２  …ビデオゲーム装置
１８  …光ディスク
２２  …コントローラ
３４  …モニタ
３６  …ＣＰＵ
４０  …メインメモリ
４２  …ＧＰＵ
５６  …コントローラＩ／Ｆ
５８  …ビデオＩ／Ｆ
６４  …ディスクＩ／Ｆ
１００  …プレイヤキャラクタ
１０２，１０８  …外力オブジェクト
１０４  …第１領域
１０６  …第２領域
【図１】
2005211332.tif 000003
【図２】
2005211332.tif 000004
【図３】
2005211332.tif 000005
【図４】
2005211332.tif 000006
【図５】
2005211332.tif 000007
【図６】
2005211332.tif 000008
【図７】
2005211332.tif 000009
【図８】
2005211332.tif 000010
【図９】
2005211332.tif 000011
【図１０】
2005211332.tif 000012
【図１１】
2005211332.tif 000013
【図１２】
2005211332.tif 000014
【図１３】
2005211332.tif 000015
【図１４】
2005211332.tif 000016
【図１５】
2005211332.tif 000017