(57)【要約】    【構成】  ゲームシステム１０はビデオゲーム装置１２を含み、ビデオゲーム装置１２に設けられるＣＰＵはプレイヤによって操作される動画キャラクタの移動等を制御する。２Ｐプレイモードで、１の動画キャラクタの移動を制御する場合には、第１プレイヤによる第１操作信号と第２プレイヤによる第２操作信号とが読み出される。各操作信号に従った当該動画キャラクタの移動後の第１位置座標および第２位置座標が計算され、それらと各操作信号に設定される重み付けとによって、実際に当該動画キャラクタを移動させる場合の移動後の第３位置座標が算出され、第３位置座標に当該動画キャラクタが移動される。    【効果】  同時に複数の操作入力があった場合でも、キャラクタを適切に移動させることができる。【選択図】  図１
2005152081.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）には、Ｒトリガーボタンの押し込み量を示すデータが全０ビットを用いた２進数で書き込まれる。このデータ値の決め方は、Ｌトリガーボタンの場合と同じである。
【００７８】
このような操作信号がコントローラ２２（２２ａ，２２ｂ）から出力され、ＣＰＵ３６はこれを取得し、上述したように、人間キャラクタ７２および幽霊キャラクタ７４についての動作等の任意のアクションをそれぞれ制御するのである。一例として、人間キャラクタ７２および幽霊キャラクタ７４の移動は、コントロールスティック２６ａの傾斜方向および傾斜量によって制御される。具体的には、ＣＰＵ３６は、コントローラ２２ａからの第１操作信号を取得すると、当該第１操作信号に含まれるコントロールスティック２６ａの傾斜方向および傾斜量に従って移動後の人間キャラクタ７２の位置（位置座標）を計算する。たとえば、コントロールスティック２６ａを、上，下，左，右または斜めの方向に、１００％傾斜させた（倒した）場合の移動量ないし移動速度は予め決定されており、スティックの傾斜量に応じて可変される。また、ゲーム空間における人間キャラクタ７２の３次元位置（現在位置の位置座標）はＣＰＵ３６によって監視されている。したがって、第１操作信号から移動方向および移動量を検出すると、人間キャラクタ７２の移動後の位置座標（以下、「第１位置座標」という。）を算出することができるのである。また、ＣＰＵ３６は、コントローラ２２ｂからの第２操作信号を取得すると、当該第２操作信号に含まれるコントロールスティック２６ａの傾斜方向および傾斜量に従って移動後の幽霊キャラクタ７４の位置座標（以下、「第２位置座標」という。）を計算する。幽霊キャラクタ７４についても、その現在位置はＣＰＵ３６によって監視されているため、幽霊キャラクタ７４の移動後の第２位置座標は、人間キャラクタ７２の場合と同様に計算される。
【００７９】
このようにして、第１位置座標および第２位置座標を計算すると、ＣＰＵ３６は、当該第１位置座標および当該第２位置座標に、人間キャラクタ７２および幽霊キャラクタ７４の各々を移動させる。この様子の３Ｄゲーム画像がＧＰＵ４２で生成され、したがって、人間キャラクタ７２および幽霊キャラクタ７４がフィールド内を移動する様子がモニタ３４に表示される。
【００８０】
また、幽霊キャラクタ７４が人間キャラクタ７２に乗り移ると、第２プレイヤは、人間キャラクタ７２を操作可能となる。したがって、第２プレイヤは、フィールドに設けられている、崖下（穴）に落ちるように移動したり、壁から突き出た矢が人間キャラクタ７２に刺さるように移動したりして、直接的に人間キャラクタ７２を死滅させる操作をすることも可能である。
【００８１】
ただし、当然に第１プレイヤは人間キャラクタ７２を操作可能であるため、第１プレイヤは第２プレイヤの上述のような操作を阻止するように、人間キャラクタ７２を移動させたり、銃７２ａから閃光弾を地面（床）に撃つことによって、乗り移った幽霊キャラクタ７４を外に出して、乗り移りによる攻撃から逃れたりするのである。
【００８２】
なお、この実施例では、人間キャラクタ７２が閃光弾を地面に撃つことにより、乗り移った幽霊キャラクタ７４を外に出すようにしてあるが、これは幽霊キャラクタ７４が光に弱いという属性を考慮したためである。したがって、幽霊キャラクタ７４に乗り移られた状態で、人間キャラクタ７２がフィールド上の明るい場所に一定時間以上、居つづける場合にも乗り移りから逃れるようにすることも可能である。
【００８３】
このように、幽霊キャラクタ７４が人間キャラクタ７２に乗り移った場合には、第１プレイヤと第２プレイヤとの両方が人間キャラクタ７２を操作することになるため、第１操作信号および第２操作信号を人間キャラクタ７２の動作に反映させる必要がある。
【００８４】
しかし、上述したように、この実施例では、１フレーム毎に操作信号を取得するようにしてあるため、何ら手当てしない場合には、第１プレイヤからの第１操作信号と第２プレイヤからの第２操作信号とを同じ或いは略同じタイミングで取得すると、人間キャラクタ７２を適切に移動させることができない場合がある。たとえば、第１プレイヤが右方向への移動を操作入力し、第２プレイヤが左方向への移動を操作入力した場合には、人間キャラクタ７２の移動が停止してしまう場合がある。また、これを回避するため、第１操作信号および第２操作信号の間で優先順位を決めて、その順番に従って操作信号を人間キャラクタ７２の動作等に反映させるようにした場合には、操作に偏りが出てしまい、ゲームの趣向性を損なう恐れがある。
【００８５】
そこで、この実施例では、複数のプレイヤからの操作入力が同時にあった場合であっても、各操作に対応する操作信号に重み付けをすることにより、各プレイヤの操作を動画キャラクタ（人間キャラクタ７２）の動作（移動）に反映できるようにしてある。
【００８６】
図６（Ａ）は幽霊キャラクタ７４が人間キャラクタ７２に乗り移った場合のゲーム画面７０である。この図６（Ａ）に示すように、幽霊キャラクタ７４が人間キャラクタ７２に乗り移ると、幽霊キャラクタ７４は１Ｐ画面７０ａから消され、人間キャラクタ７２の一部（手）および当該人間キャラクタ７２が所持する銃７２ａが１Ｐ画面７０ａに表示されるとともに、人間キャラクタ７２から見たフィールドの一部が背景として表示される。また、人間キャラクタ７２のライフゲージ７６も表示される。一方、２Ｐ画面７０ｂでは、幽霊キャラクタ７４は人間キャラクタ７２に乗り移っているため、１Ｐ画面７０ａと略同じであり、幽霊キャラクタ７４のライフゲージ７８が表示される点のみが異なる。
【００８７】
このとき、たとえば、図６（Ｂ）に示すように、第１プレイヤがコントローラ２２ａを操作するとともに、第２プレイヤがコントローラ２２ｂを操作すると、第１操作信号がコントローラＩ／Ｆ５６ａに与えられ、第２操作信号がコントローラＩ／Ｆ５６ｂに与えられる。上述したように、ＣＰＵ３６は、Ｖリトレースのタイミングで、当該第１操作信号および当該第２操作信号を取得する。
【００８８】
ＣＰＵ３６は、第１操作信号および第２操作信号を取得すると、第１操作信号に従って人間キャラクタ７２を移動させる場合の移動後の第１位置座標を算出するとともに、第２操作信号に従って幽霊キャラクタ７４（ここでは、乗り移っているため、厳密には人間キャラクタ７２）を移動させる場合の移動後の第２位置座標を算出する。次に、算出した第１位置座標，第２位置座標および設定されたウェイトを用いて、実際に人間キャラクタ７２を移動させるための移動後の位置座標（以下、「第３位置座標」という。）を算出する。その後、人間キャラクタ７２を第３位置座標に移動させる。したがって、動画キャラクタすなわち人間キャラクタ７２がゲーム空間内を移動する様子がモニタ３４に表示される。
【００８９】
ここで、第１操作信号および第２操作信号に対するウェイトは、その合計が１（１００％）であり、ゲームの進行に応じて可変的な数値に設定される。たとえば、幽霊キャラクタ７４が人間キャラクタ７２に乗り移った時点（初期状態）では、第１操作信号のウェイト（Ｗ１）は第２操作信号のウェイト（Ｗ２）よりも小さく設定される。人間キャラクタ７２すなわち第１プレイヤの有利な状況では、ウェイト（Ｗ１）はウェイト（Ｗ２）よりも大きく設定され、幽霊キャラクタ７４すなわち第２プレイヤの有利な状況では、ウェイト（Ｗ１）はウェイト（Ｗ２）よりも小さく設定される。人間キャラクタ７２または幽霊キャラクタ７４が有利な状況は、ゲームの進行によって随時変更されるため、これに従ってウェイト（Ｗ１）およびウェイト（Ｗ２）も変更される。
【００９０】
ここで、有利な状況とは、プレイヤキャラクタが弱っているなどのキャラクタ自体の状態や、場所や風や温度などのプレイヤキャラクタの置かれた周囲の雰囲気（状況）などによって変化するものである。また、プレイヤキャラクタには特性情報が関連付けられており、当該特性情報に基づいて、第1プレイヤまたは第２プレイヤのいずれか一方を有利にする。たとえば、特性情報として、プレイヤキャラクタが弱っている場合には、第１プレイヤを有利にする条件が設定されている場合には、プレイヤキャラクタが弱った時に、第１プレイヤの操作する第１コントローラの入力をプレイヤキャラクタの移動により反映させるようにする。
【００９１】
なお、本実施例では、人間キャラクタ７２が有利な状況は、幽霊キャラクタ７４が苦手な状況であり、たとえば、明るい場所での戦闘などである。また、幽霊キャラクタ７４が有利な状況は、人間キャラクタ７２に乗り移った場合、宙に浮いている場合、または暗い場所での戦闘などである。
【００９２】
幽霊キャラクタ７４が人間キャラクタ７２に乗り移った場合の人間キャラクタ７２の移動制御について、図７ないし図９を参照しながら具体的に説明することにする。ただし、ここでは、人間キャラクタ７２の現在位置と移動後の位置とを分かり易く説明するために、第１操作信号および第２操作信号による移動方向および移動量（移動速度）をベクトル（以下、「移動ベクトル」という。）で表現してある。なお、実際には、上述したように、全て座標演算される。
【００９３】
図６（Ｂ）に示すように、第１プレイヤが１００％の前進を入力し、第２プレイヤが１００％の後退を入力した場合には、第１操作信号および第２操作信号による移動ベクトルが図７（Ａ）のようにそれぞれ示される。なお、上述したように、１００％の入力に対する移動量（移動ベクトルのスカラー）ないし移動速度は予め決定されており、アナログジョイスティックすなわちコントロールスティック２６ａの傾斜量に応じて可変的な値を取る。たとえば、幽霊キャラクタ７４が人間キャラクタ７２に乗り移った時点（初期状態）では、第１操作信号のウェイト（Ｗ１）は０．３５に設定され、第２操作信号のウェイト（Ｗ２）は０．６５に設定される。このように設定されたウェイトを乗じた（かけた）移動ベクトルは、図７（Ｂ）のように示される。上述したように、この実施例では、第１操作信号および第２操作信号の両方を人間キャラクタ７２に反映するようにしてあるため、図７（Ｃ）に示すように、ウェイトをかけた２つの移動ベクトルが合成され、これにより得られた合成ベクトルに従って人間キャラクタ７２が移動される。この場合には、人間キャラクタ７２は、３５％後退することになる。図７（Ｃ）示す点（始点）が人間キャラクタ７２の現在位置であり、移動後の人間キャラクタ７２の位置は合成ベクトルの終点である。なお、移動速度は、合成ベクトルのスカラーに応じて決定される。以下、同じである。
【００９４】
また、人間キャラクタ７２が有利な状況になると、第１操作信号のウェイト（Ｗ１）は第２操作信号のウェイト（Ｗ２）よりも大きくされる。たとえば、第１操作信号のウェイト（Ｗ１）が０．７０に設定され、第２操作信号のウェイト（Ｗ２）が０．３０に設定されたとする。このとき、第１プレイヤが１００％の右方向への移動を入力し、第２プレイヤが１００％の左斜め３０度後方に移動（後退）を入力したとすると、対応する移動ベクトルは、図８（Ａ）のように示される。それぞれの操作信号に設定されたウェイトを移動ベクトルにかけると、図８（Ｂ）に示すように、移動ベクトルの大きさが変更される。したがって、図８（Ｃ）に示すように、ウェイトをかけた移動ベクトルを合成した合成ベクトルが生成される。この場合には、人間キャラクタ７２は、右斜め約７０度後方に約６２．５％移動することになる。
【００９５】
また、幽霊キャラクタ７４が有利な状況になると、第１操作信号のウェイト（Ｗ１）は第２操作信号のウェイト（Ｗ２）よりも小さくされる。たとえば、第１操作信号のウェイト（Ｗ１）が０．４５に設定され、第２操作信号のウェイト（Ｗ２）が０．５５に設定されたとする。このとき、第１プレイヤが１００％の前進を入力し、第２プレイヤが１００％の前進を入力したとすると、その移動ベクトルは図９（Ａ）のように示される。それぞれの操作信号に設定されたウェイトを移動ベクトルにかけると、図９（Ｂ）に示すように、移動ベクトルの大きさが変更される。これらを合成した合成ベクトルは、図９（Ｃ）のように示される。ここで、上述したように、ウェイトの合計は１（１００％）であるため、各プレイヤの操作入力が１００％であり、かつ、同じ方向への移動であれば、人間キャラクタ７２は当該方向に１００％移動される。これは人間キャラクタ７２が有利な状況においても同じである。
【００９６】
ここで、図７ないし図９に示した例では、簡単のため、１００％の操作入力があった場合についてのみ説明したが、操作信号のフォーマットに示したように、コントロールスティック２６ａでは、その傾斜量を０〜１００％の間で調整することができる。
【００９７】
また、ウェイトの数値は単なる例示であり、これに限定されるべきではなく、任意に設定することができる。
【００９８】
また、人間キャラクタ７２の移動後の第３位置座標は、上述したように、実際には座標演算により算出されるため、数１に従って求められる。ただし、（Ｘ１，Ｚ１）は第１操作信号に基づく人間キャラクタ７２の移動後のゲーム空間内における第１位置座標であり、（Ｘ２，Ｚ２）は第２操作信号に基づく人間キャラクタ７２の移動後のゲーム空間内における第２位置座標であり、（Ｘ´，Ｚ´）は実際に人間キャラクタ７２を移動させる場合のゲーム空間内における第３位置座標である。また、Ｗ１は第１操作信号に対するウェイト（Ｗ１）であり、Ｗ２は第２操作信号に対するウェイト（Ｗ２）である。
【００９９】
なお、人間キャラクタ７２の位置はその足元の位置で決定され、幽霊キャラクタ７４に乗り移られた場合にも人間キャラクタ７２は必ず地面を移動すると仮定して、ゲーム空間の高さ方向（Ｙ方向）については無視してある。
【０１００】
[数１]
（Ｘ´，Ｚ´）＝Ｗ１（Ｘ１，Ｚ１）＋Ｗ２（Ｘ２，Ｚ２）
＝（Ｗ１×Ｘ１＋Ｗ２×Ｘ２，Ｗ１×Ｚ１＋Ｗ２×Ｚ２）
なお、数１からも分かるように、第１プレイヤの操作信号に従って算出した移動後の第１位置座標に重み付けをした座標と、第２プレイヤの操作信号に従って算出した移動後の第２位置座標に重み付けをした座標とに基づいて、第３位置座標を計算しているということもできる。
【０１０１】
具体的には、図２に示したＣＰＵ３６が図１０〜図１２に示すフロー図に従って、動画キャラクタの移動処理を実行する。ゲームが開始されると、図１０に示すように、ＣＰＵ３６は、ステップＳ１で、第１プレイヤの操作入力を検出する。つまり、コントローラＩ／Ｆ５６ａのコントロールバッファに一時記憶された第１操作信号を取得する。続くステップＳ３では、第２プレイヤの操作入力を検出する。つまり、コントローラＩ／Ｆ５６ｂのコントロールバッファに一時記憶された第２操作信号を取得する。
【０１０２】
なお、第１操作信号および第２操作信号は、Ｖリトレースのタイミングで同時或いは略同時に取得される。
【０１０３】
次にステップＳ５では、第１プレイヤの操作入力（ステップＳ１で取得した第１操作信号）に従って移動後の位置座標を計算する。また、ステップＳ７では、第２プレイヤの操作入力（ステップＳ３で取得した第２操作信号）に従って移動後の位置座標を計算する。
【０１０４】
なお、幽霊キャラクタ７４は、ゲーム画面７０上では宙に浮いているように表示される場合もあるが、その位置は足元から地面に向かって垂直に延ばした直線と地面との交点で決定される。つまり、幽霊キャラクタ７４の位置は、人間キャラクタ７２と同様に、Ｙ成分を含まない位置座標を計算した後、宙に浮く場合にはＹ成分を追加しているのである。
【０１０５】
そして、ステップＳ９では、ステップＳ５において計算した移動後の位置座標に人間キャラクタ７２を移動させる。このとき、現在位置の位置座標と移動後の位置座標とで決定されるベクトルにより、移動速度が決定され、人間キャラクタ７２は当該移動速度でゲーム空間内を移動される。また、ステップＳ１１では、ステップＳ７において計算した移動後の位置座標に幽霊キャラクタ７４を移動させる。なお、幽霊キャラクタ７４を移動させる方法は、人間キャラクタ７２の場合と同じである。
【０１０６】
次のステップＳ１３では、人間キャラクタ７２と幽霊キャラクタ７４とが接触したかどうかを判断する。ステップＳ１３で“ＮＯ”であれば、つまり人間キャラクタ７２と幽霊キャラクタ７４とが接触していなければ、そのままステップＳ１７に進む。しかし、ステップＳ１３で“ＹＥＳ”であれば、つまり人間キャラクタ７２と幽霊キャラクタ７４とが接触すれば、ステップＳ１５で、後述する乗り移りモードの処理を実行して、ステップＳ１７に進む。
【０１０７】
ステップＳ１７では、ゲーム終了かどうかを判断する。たとえば、人間キャラクタ７２または幽霊キャラクタ７４のいずれか一方が死滅した場合やプレイヤのゲーム終了操作により、ゲーム終了かどうかを判断する。ここで、“ＮＯ”であれば、ゲーム終了ではないと判断して、ステップＳ１に戻る。しかし、“ＹＥＳ”であれば、ゲーム終了であると判断して、動画キャラクタの移動処理を終了する。
【０１０８】
図１１は、図１０に示したステップＳ１５における乗り移りモードの処理を示すフロー図である。以下、その内容について詳細に説明するが、図１０を用いて説明した処理と同じ処理については簡単に説明することにする。図１１を参照して、乗り移りモードの処理が開始されると、ＣＰＵ３６は、ステップＳ２１で、１Ｐ画面７０ａに表示される幽霊キャラクタ７４を消去する。これにより、ゲーム画面７０に表示されるのは、人間キャラクタ７２のみとなり、幽霊キャラクタ７４が人間キャラクタ７２に乗り移ったことを演出できる。
【０１０９】
続くステップＳ２３では、幽霊キャラクタ７４が人間キャラクタ７２に乗り移った初期状態のウェイトバランス、すなわちウェイト（Ｗ１）およびウェイト（Ｗ２）を決定（設定）する。次のステップＳ２５では、第１プレイヤの操作入力すなわち第１操作信号を検出（取得）し、ステップＳ２７では、第２プレイヤの操作入力すなわち第２操作信号を取得する。ステップＳ２９では、第１操作信号に従って移動後の第１位置座標を計算し、ステップＳ３１では、第２操作信号に従って移動後の第２位置座標を計算する。
【０１１０】
続いて、ステップＳ３３では、計算した両位置座標（第１位置座標および第２位置座標）と決定したウェイトとを用いて、数１に従って人間キャラクタ７２の移動後の位置座標すなわち第３位置座標（Ｘ´，Ｚ´）を決定（算出）する。そして、ステップＳ３５で、算出した第３位置座標（Ｘ´，Ｚ´）に人間キャラクタ７２を移動させる。人間キャラクタ７２と幽霊キャラクタ７４とを別個独立に移動させる場合と同様に、現在位置の位置座標と移動後の位置座標とで決定されるベクトルのスカラーで移動速度が決定される。
【０１１１】
次にステップＳ３７では、後述するウェイト変更処理を実行し、ステップＳ３９で、乗り移りが終了したかどうかを判断する。つまり、人間キャラクタ７２が閃光弾を地面に向けて撃ち、幽霊キャラクタ７４が人間キャラクタ７２の外に出たか否かを判断する。このステップＳ３９で“ＮＯ”であれば、つまり乗り移りが終了していない場合には、ステップＳ２５に戻る。一方、ステップＳ３９で“ＹＥＳ”であれば、つまり乗り移りが終了していれば、ステップＳ４１で、１Ｐ画面７０ａに幽霊キャラクタ７４を表示して、乗り移りモードの処理をリターンする。なお、ステップＳ４１で、幽霊キャラクタ７４キャラクタ７０ａが表示されると、図４に示したようなゲーム画面７０がモニタ３４に表示される。
【０１１２】
図１２に示すように、ウェイト変更処理が開始されると、ＣＰＵ３６は、ステップＳ５１で、人間キャラクタ７２が有利な場所（状況）であるかどうかを判断する。ここで“ＹＥＳ”であれば、つまり人間キャラクタ７２が有利な場所である場合には、ステップＳ５３で、人間キャラクタ７２のウェイト（Ｗ１）を上げるとともに、幽霊キャラクタ７４のウェイト（Ｗ２）を下げて、ウェイト変更処理をリターンする。
【０１１３】
なお、ウェイトの上げ幅は一定値（たとえば、０．２）に設定されており、ウェイト（Ｗ１）とウェイト（Ｗ２）との和は１であるため、ウェイトの下げ幅も同じく一定値に設定される。
【０１１４】
また、ステップＳ５１で“ＮＯ”であれば、つまり人間キャラクタ７２の有利な場所でない場合には、ステップＳ５５で、幽霊キャラクタ７４が有利な場所かどうかを判断する。ステップＳ５５で“ＮＯ”であれば、つまり幽霊キャラクタ７４の有利な場所でもなければ、ウェイトの変更を行わずにそのままウェイト変更処理をリターンする。一方、ステップＳ５５で“ＹＥＳ”であれば、つまり幽霊キャラクタ７４が有利な場所であれば、ステップＳ５７で、幽霊キャラクタ７４のウェイト（Ｗ２）を上げるとともに、人間キャラクタ７２のウェイト（Ｗ１）を下げて、ウェイト変更処理をリターンする。なお、ステップＳ５７におけるウェイトの上げ幅および下げ幅は、ステップＳ５３の場合と同様に一定値である。
【０１１５】
第１の実施例によれば、１の動画キャラクタの移動を制御する場合には、第１操作信号および第２操作信号に重み付けをするので、同時に操作入力があった場合であっても、両方の操作信号を反映させて、当該動画キャラクタを適切に移動させることができる。
【０１１６】
また、重み付けをゲームの進行状況に応じて変化させるため、ゲームの進行が単調になることがない。つまり、ゲームの趣向性を向上させることができる。
＜第２実施例＞
第２実施例のゲームシステム１０は、第２プレイヤとしてコンピュータが選択され、第１プレイヤとコンピュータとが対戦するようにした以外は、第１実施例のゲームシステム１０と同じであるため、重複した説明は省略する。また、第１プレイヤは人間キャラクタ７２または幽霊キャラクタ７４の一方を任意に選択することができるが、この第２実施例では、第１プレイヤが人間キャラクタ７２を選択した場合について説明することにする。
【０１１７】
なお、図示は省略するが、かかる場合には、少なくとも１つのコントローラ２２がゲーム１２に接続されていればよい。
【０１１８】
この第２実施例のゲームシステム１０では、幽霊キャラクタ７４の動作等はコンピュータすなわちＣＰＵ３６によって制御される。したがって、図１３に示すように、メインメモリ４０のゲームプログラム記憶領域４０２には、操作入力生成プログラム４０２ｉがさらに記憶される。操作入力生成プログラム４０２ｉは、ゲームの進行に応じてＣＰＵ３６ないしはコンピュータが操作する幽霊キャラクタ７４の動作等を指示するための操作入力（第２操作信号）を生成する。
【０１１９】
具体的なＣＰＵ３６の移動処理は図１４に示され、乗り移りモードの処理は図１５に示される。ただし、図１４および図１５の処理は、上述の実施例で示した図１０および図１１の処理とほとんど同じであるため、同じステップには同じ参照符号を付してある。また、重複する内容についての説明は省略する。
【０１２０】
図１４を参照して、移動処理では、ＣＰＵ３６は、ステップＳ１で第１プレイヤの操作入力すなわち第１操作信号を検出すると、ステップＳ３´で、操作入力を生成する。つまり、幽霊キャラクタ７４の動作等を制御するための第２操作信号を生成する。したがって、ステップＳ７´においては、生成した第２操作信号に従って移動後の位置座標を計算するのである。ただし、直接第２位置座標を生成する場合には、ステップＳ３´の処理を削除することができる。
【０１２１】
具体的には、ＣＰＵ３６が制御するのは、幽霊キャラクタ７４であるため、図１４の移動処理においては、人間キャラクタ７２の攻撃を回避するとともに、人間キャラクタ７２すなわち人間キャラクタ７２キャラクタに接触する（近づく）ような第２操作信号が生成されるのである。
【０１２２】
また、図１５に示す乗り移りモードの処理においても、ＣＰＵ３６は、幽霊キャラクタ７４の動作等を制御する。つまり、ステップＳ２７´においては、操作入力すなわち第２操作信号を生成し、ステップＳ３１´では、ステップＳ２７´で生成した第２操作信号に従って第２位置座標を計算する。なお、上述した場合と同様に、直接第２位置座標を生成する場合には、ステップＳ２７´の処理を削除することができる。
【０１２３】
この乗り移りモードの処理では、ＣＰＵ３６は、幽霊キャラクタ７４の有利な場所に、人間キャラクタ７２を移動させるような第２操作信号を生成するのである。
【０１２４】
なお、ウェイト変更処理は、図１３に示した処理と同じであるため、重複した説明は省略する。
【０１２５】
第２実施例によれば、第１実施例と同様に、同時に操作入力があった場合であっても、両方の操作信号を反映させて、１の動画キャラクタを適切に移動させることができる。
【０１２６】
また、重み付けをゲームの進行状況に応じて変化させるため、ゲームの進行が単調になることがなく、ゲームの趣向性を向上させることができる。
【０１２７】
なお、上述の実施例では、２人で１の動画キャラクタの移動を制御する場合についてのみ説明したが、３人以上の複数で１の動画キャラクタの移動を制御することも可能である。かかる場合には、複数の操作入力（操作信号）のそれぞれにウェイトが設定される。
【０１２８】
また、上述の実施例では、ビデオゲーム装置に１つまたは２つのコントローラを接続して対戦ゲームをするゲームシステムについて説明したが、モニタとゲーム装置とが一体に設けられる携帯型のゲーム装置、ビデオゲーム装置能を備える携帯電話機、ＰＤＡやラップトップ型のＰＣのようなコンピュータを単独または２つ以上通信可能に接続して、対戦ゲームを行うことも可能である。つまり、コンピュータと対戦する場合には、単独で対戦ゲームを行うことができ、２人のプレイヤが対戦する場合には、各機器を通信可能に接続して対戦ゲームを行うことができる。
【０１２９】
また、上述の実施例では、乗り移りモードの処理においては、同時または略同時に取得した第１操作信号および第２操作信号に基づいて第１位置座標および第２位置座標を計算し、異なる重み付けをして第３位置座標を計算するようにしたが、第１操作信号および第２操作信号を交互に取得し、取得する期間を異なる長さに設定するようにすることも考えられる。
【０１３０】
たとえば、図１６に示すように、連続する３フレーム期間のうち、最初の１フレーム期間で第１操作信号検出し、次の２フレーム期間で第２操作信号を検出し、これを交互に繰り返すことが考えられる。つまり、操作信号の読み取り期間を所定フレーム数に設定し、第１操作信号の読み取り期間と第２操作信号の読み取り期間とを異なる期間（フレーム数）に設定するのである。具体的には、図１６に示す例では、全読み出し期間すなわち３フレーム期間を1／３と２／３とに割り当てているのである。つまり、第１操作信号および第２操作信号を読み出す周期は３フレームごとであり、第１操作信号を１フレーム期間読み出し、第２操作信号を２フレーム期間読み出すようにしてある。したがって、フレームＮ−２（ここでは、Ｎは２以上の整数）のＶリトレースのタイミングで第１操作信号を検出し、フレームＮ−１とフレームＮのＶリトレースのタイミングで第２操作信号を検出する。そして、フレームＮ＋１のＶリトレースのタイミングで第１操作信号を検出し、フレームＮ＋２とフレームＮ＋３のＶリトレースのタイミングで第２操作信号を検出する。このような処理が繰り返される。
【０１３１】
このようにした場合には、たとえば、第１プレイヤが１００％の前進を入力し続け、第２プレイヤが１００％の後退を入力し続けた場合には、フレームＮ−２で人間キャラクタ７２は１００％前進し、次のフレームＮ−１とフレームＮで１００％後退する。さらに、次のフレームＮ＋１で１００％前進し、そして、フレームＮ＋２とフレームＮ＋３で１００％後退する。したがって、フレームＮ−２からフレームＮ＋３の間（６フレーム期間）で、２００％後退することになる。
【０１３２】
一方、上述の実施例で示したように、操作信号に重み付けをした場合について考えると、各フレームにおいて、第１プレイヤの操作によって人間キャラクタ７２に対して１００％×１／３の前進が指示され、第２プレイヤの操作によって人間キャラクタ７２に対して１００％×２／３の後退が指示されるため、結果として、１００％×１／３ずつ人間キャラクタ７２は後退することになる。したがって、フレームＮ−２からフレームＮ＋３の間（６フレーム期間）で、２００％後退することになる。ただし、ここでは、図１６に示した例と割合をあわせるために、ウェイト（Ｗ１）を１／３に設定し、ウェイト（Ｗ２）を２／３に設定してある。
【０１３３】
以上のように、第１操作信号および第２操作信号を交互に取得し、取得する期間を異なる長さに設定するようにした場合であっても、上述の実施例と同様の結果を得ることができる。
【０１３４】
しかも、操作信号を交互に取得し、取得する期間を異なる長さに設定した場合には、第３位置座標を演算する処理を省くことができ、処理負担を軽減することができる。
【図面の簡単な説明】
【０１３５】
【図１】この発明の一実施例のゲームシステムを示す図解図である。
【図２】図１実施例に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図２に示すメインメモリのメモリマップを示す図解図である。
【図４】図１実施例に示すゲームシステムのモニタに表示されるゲーム画面の一例およびコントローラを示す図解図である。
【図５】図１実施例に示すゲームシステムにおいてコントローラからビデオゲーム装置に出力される操作信号のフォーマットを示す図解図である。
【図６】図１実施例に示すゲームシステムのモニタに表示されるゲーム画面の他の例およびコントローラの操作入力の一例を示す図解図である。
【図７】乗り移りモードにおける各プレイヤの操作入力、当該操作入力に基づいて計算された移動ベクトル、ウェイトをかけた移動ベクトルおよび２つの移動ベクトルの合成ベクトルの一例を示す図解図である。
【図８】乗り移りモードにおける各プレイヤの操作入力、当該操作入力に基づいて計算された移動ベクトル、ウェイトをかけた移動ベクトルおよび２つの移動ベクトルの合成ベクトルの他の一例を示す図解図である。
【図９】乗り移りモードにおける各プレイヤの操作入力、当該操作入力に基づいて計算された移動ベクトル、ウェイトをかけた移動ベクトルおよび２つの移動ベクトルの合成ベクトルのその他の一例を示す図解図である。
【図１０】図２に示すＣＰＵの動画キャラクタの移動処理の一例を示すフロー図である。
【図１１】図２に示すＣＰＵの乗り移りモードの処理の一例を示すフロー図である。
【図１２】図２に示すＣＰＵのウェイト変更処理を示すフロー図である。
【図１３】この発明の他の実施例におけるメインメモリのメモリマップを示す図解図である。
【図１４】図２に示すＣＰＵの動画キャラクタの移動処理の他の例を示すフロー図である。
【図１５】図２に示すＣＰＵの乗り移りモードの処理の他の例を示すフロー図である。
【図１６】この発明のその他の実施例における操作信号の読み出し方法を説明するための図解図である。
【符号の説明】
【０１３６】
１０  …ゲームシステム
１２  …ビデオゲーム装置
１８  …光ディスク
２２  …コントローラ
３４  …モニタ
３４ａ  …スピーカ
３６  …ＣＰＵ
３８  …メモリコントローラ
４０  …メインメモリ
４２  …ＧＰＵ
５２  …ＤＳＰ
５４  …ＡＲＡＭ
５６  …コントローラＩ／Ｆ
５８  …ビデオＩ／Ｆ
６０  …外部メモリＩ／Ｆ
６２  …オーディオＩ／Ｆ
６４  …ディスクＩ／Ｆ
【図１】
2005152081.tif 000003
【図２】
2005152081.tif 000004
【図３】
2005152081.tif 000005
【図４】
2005152081.tif 000006
【図５】
2005152081.tif 000007
【図６】
2005152081.tif 000008
【図７】
2005152081.tif 000009
【図８】
2005152081.tif 000010
【図９】
2005152081.tif 000011
【図１０】
2005152081.tif 000012
【図１１】
2005152081.tif 000013
【図１２】
2005152081.tif 000014
【図１３】
2005152081.tif 000015
【図１４】
2005152081.tif 000016
【図１５】
2005152081.tif 000017
【図１６】
2005152081.tif 000018