(57)【特許請求の範囲】
【請求項１】
プレイヤによる入力装置への入力を示す入力データに基づいて、仮想世界に配置されたプレイヤオブジェクトの制御を行うゲームシステムであって、
前記入力データを取得する入力データ取得手段と、
前記入力データに基づいて、前記仮想世界における前記プレイヤオブジェクトの向きの変化方向および変化量を示す制御データを設定する設定手段と、
前記プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、前記プレイヤオブジェクトが所定の方向を向きやすいように、前記制御データを調整する調整手段と、
前記制御データに基づいて、前記プレイヤオブジェクトの姿勢を変更する姿勢変更手段とを備え、
前記入力データには、前記入力装置に備えられた方向入力部に対する入力に応じた方向データが含まれ、
前記設定手段は、前記方向データに基づいて、前記制御データを設定し、
前記方向データに応じて、前記プレイヤオブジェクトを前記仮想世界において移動させる移動手段をさらに備え、
前記移動手段は、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトの移動を制限し、
前記調整手段は、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトが前記他のオブジェクトを向くように前記制御データを調整する、ゲームシステム。
【請求項２】
前記調整手段は、前記プレイヤオブジェクトが前記他のオブジェクトを向きやすいように前記制御データを調整する、請求項１に記載のゲームシステム。
【請求項３】
前記調整手段は、前記他のオブジェクトが前記プレイヤオブジェクトの後方に存在する場合、前記プレイヤオブジェクトが前記他のオブジェクトを向きやすいように前記制御データを調整する、請求項２に記載のゲームシステム。
【請求項４】
前記プレイヤオブジェクトからみた特定の方向と、前記プレイヤオブジェクトから前記他のオブジェクトへの方向との一致の度合を算出する度合算出手段をさらに備え、
前記調整手段は、前記度合に基づいて前記制御データを調整する、請求項１から３の何れかに記載のゲームシステム。
【請求項５】
前記度合は、前記他のオブジェクトが前記プレイヤオブジェクトの後方に存在するほど値が大きくなり、
前記調整手段は、前記度合が大きいほど前記プレイヤオブジェクトが前記他のオブジェクトを向きやすいように前記制御データを調整する、請求項４に記載のゲームシステム。
【請求項６】
前記入力データには、前記入力装置の姿勢に基づいた姿勢データが含まれ、
前記姿勢データに基づいて、前記入力装置の姿勢を取得する姿勢取得手段をさらに備え
、
前記設定手段は、前記入力装置の姿勢に応じて、前記制御データを設定する、請求項１から５の何れかに記載のゲームシステム。
【請求項７】
前記設定手段は、前記入力装置の姿勢の変化量に応じた第１変化量で前記プレイヤオブジェクトの向きが変化するように、前記制御データを設定し、
前記調整手段は、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合、前記プレイヤオブジェクトの向きが前記第１変化量よりも多い第２変化量で変化するように、前記制御データを調整する、請求項６に記載のゲームシステム。
【請求項８】
前記設定手段は、前記入力装置の姿勢の変化方向に対応する前記仮想世界における方向に、当該入力装置の姿勢の変化量に応じた第１変化量で前記プレイヤオブジェクトの向きが変化するように、前記制御データを設定し、
前記調整手段は、前記入力装置の姿勢の変化方向に対応する前記仮想世界における方向が前記プレイヤオブジェクトが前記他のオブジェクトに向く方向である場合に、前記第１変化量よりも多い第２変化量で前記プレイヤオブジェクトの向きが変化するように、前記制御データを調整する、請求項７に記載のゲームシステム。
【請求項９】
前記入力装置は、表示部を有する可搬型表示装置であり、
前記仮想世界に前記プレイヤオブジェクトの向きに応じて仮想カメラを設定する仮想カメラ設定手段と、
前記仮想カメラで前記仮想世界を撮像した画像を前記表示部に表示させる表示制御手段とをさらに備える、請求項１から８の何れかに記載のゲームシステム。
【請求項１０】
前記他のオブジェクトは前記仮想世界を移動可能な敵オブジェクトであり、
前記入力データに基づいて、前記敵オブジェクトに対する攻撃を前記プレイヤオブジェクトに行わせる攻撃制御手段をさらに備える、請求項１から９の何れかに記載のゲームシステム。
【請求項１１】
プレイヤによる入力装置への入力を示す入力データに基づいて、仮想世界に配置されたプレイヤオブジェクトの制御を行うゲームシステムに含まれる少なくとも１つのプロセッサにより実行されるゲーム処理方法であって、
前記入力データを取得する入力データ取得ステップと、
前記入力データに基づいて、前記仮想世界における前記プレイヤオブジェクトの向きの変化方向および変化量を示す制御データを設定する設定ステップと、
前記プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、前記プレイヤオブジェクトが所定の方向を向きやすいように、前記制御データを調整する調整ステップと、
前記制御データに基づいて、前記プレイヤオブジェクトの姿勢を変更する姿勢変更ステップとを含み、
前記入力データには、前記入力装置に備えられた方向入力部に対する入力に応じた方向データが含まれ、
前記設定ステップでは、前記方向データに基づいて、前記制御データを設定し、
前記方向データに応じて、前記プレイヤオブジェクトを前記仮想世界において移動させる移動ステップをさらに含み、
前記移動ステップでは、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトの移動を制限し、
前記調整ステップでは、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトが前記他のオブジェクトを向くように前記制御データを調整する、ゲーム処理方法。
【請求項１２】
前記調整ステップでは、前記プレイヤオブジェクトが前記他のオブジェクトを向きやすいように前記制御データを調整する、請求項１１に記載のゲーム処理方法。
【請求項１３】
前記調整ステップでは、前記他のオブジェクトが前記プレイヤオブジェクトの後方に存在する場合、前記プレイヤオブジェクトが前記他のオブジェクトを向きやすいように前記制御データを調整する、請求項１２に記載のゲーム処理方法。
【請求項１４】
前記プレイヤオブジェクトからみた特定の方向と、前記プレイヤオブジェクトから前記他のオブジェクトへの方向との一致の度合を算出する度合算出ステップをさらに含み、
前記調整ステップでは、前記度合に基づいて前記制御データを調整する、請求項１１から１３の何れかに記載のゲーム処理方法。
【請求項１５】
前記度合は、前記他のオブジェクトが前記プレイヤオブジェクトの後方に存在するほど値が大きくなり、
前記調整ステップでは、前記度合が大きいほど前記プレイヤオブジェクトが前記他のオブジェクトを向きやすいように前記制御データを調整する、請求項１４に記載のゲーム処理方法。
【請求項１６】
前記入力データには、前記入力装置の姿勢に基づいた姿勢データが含まれ、
前記姿勢データに基づいて、前記入力装置の姿勢を取得する姿勢取得ステップをさらに含み、
前記設定ステップでは、前記入力装置の姿勢に応じて、前記制御データを設定する、請求項１１から１５の何れかに記載のゲーム処理方法。
【請求項１７】
前記設定ステップでは、前記入力装置の姿勢の変化量に応じた第１変化量で前記プレイヤオブジェクトの向きが変化するように、前記制御データを設定し、
前記調整ステップでは、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合、前記プレイヤオブジェクトの向きが前記第１変化量よりも多い第２変化量で変化するように、前記制御データを調整する、請求項１６に記載のゲーム処理方法。
【請求項１８】
前記設定ステップでは、前記入力装置の姿勢の変化方向に対応する前記仮想世界における方向に、当該入力装置の姿勢の変化量に応じた第１変化量で前記プレイヤオブジェクトの向きが変化するように、前記制御データを設定し、
前記調整ステップでは、前記入力装置の姿勢の変化方向に対応する前記仮想世界における方向が前記プレイヤオブジェクトが前記他のオブジェクトに向く方向である場合に、前記第１変化量よりも多い第２変化量で前記プレイヤオブジェクトの向きが変化するように、前記制御データを調整する、請求項１７に記載のゲーム処理方法。
【請求項１９】
前記入力装置は、表示部を有する可搬型表示装置であり、
前記仮想世界に前記プレイヤオブジェクトの向きに応じて仮想カメラを設定する仮想カメラ設定ステップと、
前記仮想カメラで前記仮想世界を撮像した画像を前記表示部に表示させる表示制御ステップとをさらに含む、請求項１１から１８の何れかに記載のゲーム処理方法。
【請求項２０】
前記他のオブジェクトは前記仮想世界を移動可能な敵オブジェクトであり、
前記入力データに基づいて、前記敵オブジェクトに対する攻撃を前記プレイヤオブジェクトに行わせる攻撃制御ステップをさらに含む、請求項１１から１９の何れかに記載のゲーム処理方法。
【請求項２１】
プレイヤによる入力装置への入力を示す入力データに基づいて、仮想世界に配置されたプレイヤオブジェクトの制御を行うゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
前記入力データを取得する入力データ取得手段と、
前記入力データに基づいて、前記仮想世界における前記プレイヤオブジェクトの向きの変化方向および変化量を示す制御データを設定する設定手段と、
前記プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、前記プレイヤオブジェクトが所定の方向を向きやすいように、前記制御データを調整する調整手段と、
前記制御データに基づいて、前記プレイヤオブジェクトの姿勢を変更する姿勢変更手段として、前記コンピュータを機能させ、
前記入力データには、前記入力装置に備えられた方向入力部に対する入力に応じた方向データが含まれ、
前記設定手段は、前記方向データに基づいて、前記制御データを設定し、
前記方向データに応じて、前記プレイヤオブジェクトを前記仮想世界において移動させる移動手段として前記コンピュータをさらに機能させ、
前記移動手段は、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトの移動を制限し、
前記調整手段は、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトが前記他のオブジェクトを向くように前記制御データを調整する、ゲームプログラム。
【請求項２２】
プレイヤによる入力装置への入力を示す入力データに基づいて、仮想世界に配置されたプレイヤオブジェクトの制御を行うゲーム装置であって、
前記入力データを取得する入力データ取得手段と、
前記入力データに基づいて、前記仮想世界における前記プレイヤオブジェクトの向きの変化方向および変化量を示す制御データを設定する設定手段と、
前記プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、前記プレイヤオブジェクトが所定の方向を向きやすいように、前記制御データを調整する調整手段と、
前記制御データに基づいて、前記プレイヤオブジェクトの姿勢を変更する姿勢変更手段とを備え、
前記入力データには、前記入力装置に備えられた方向入力部に対する入力に応じた方向データが含まれ、
前記設定手段は、前記方向データに基づいて、前記制御データを設定し、
前記方向データに応じて、前記プレイヤオブジェクトを前記仮想世界において移動させる移動手段をさらに備え、
前記移動手段は、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトの移動を制限し、
前記調整手段は、前記プレイヤオブジェクトと前記他のオブジェクトとが前記所定の位置関係である場合において、前記方向データが示す前記プレイヤオブジェクトの移動方向が前記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトが前記他のオブジェクトを向くように前記制御データを調整する、ゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプレイヤによって行われるゲーム処理を実行するゲームシステム、ゲーム処理方法、ゲームプログラム、およびゲーム装置に関する。
【背景技術】
【０００２】
従来より、プレイヤによる方向入力部に対する入力に応じてプレイヤオブジェクトを移動させたり、方向転換させたりすることができるゲーム装置が存在する。例えば、特許文献１に記載のゲームでは、スティックを上下方向に倒すとプレイヤオブジェクトは前後に移動し、スティックを左右方向に倒すとプレイヤオブジェクトは回転する。このようなゲームでは、プレイヤの入力に応じてプレイヤオブジェクトの向きや位置が変化する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「任天堂公式ガイドブック００７ゴールデンアイ」、任天堂株式会社、１９９８年１０月１０日、Ｐ．５
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のゲームでは、プレイヤの入力がそのままプレイヤオブジェクトの向きや位置の制御に用いられるものであり、必ずしもプレイヤは自身が意図した通りに容易にプレイヤオブジェクトを動作させることができるものではなかった。
【０００５】
それ故、本発明の目的は、プレイヤが意図した通りに容易にプレイヤオブジェクトを動作させることができるゲームシステム、ゲーム処理方法、ゲームプログラム、およびゲーム装置を提供することである。
【課題を解決するための手段】
【０００６】
本発明は、上記の課題を解決するために、以下の構成を採用した。
【０００７】
本発明の一例は、プレイヤによる入力装置への入力を示す入力データに基づいて、仮想世界に配置されたプレイヤオブジェクトの制御を行うゲームシステムである。ゲームシステムは、入力データ取得手段と、設定手段と、調整手段と、姿勢変更手段とを備える。入力データ取得手段は、上記入力データを取得する。設定手段は、上記入力データに基づいて、上記仮想世界における上記プレイヤオブジェクトの向きの変化方向および変化量を示す制御データを設定する。調整手段は、上記プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、上記プレイヤオブジェクトが所定の方向を向きやすいように、上記制御データを調整する。姿勢変更手段は、上記制御データに基づいて、上記プレイヤオブジェクトの姿勢を変更する。
【０００８】
上記によれば、入力データに基づいてプレイヤオブジェクトの向きの変化方向および変化量を示す制御データが設定される。そして、プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、プレイヤオブジェクトが所定の方向を向きやすいように制御データを調整することができる。これにより、プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、プレイヤオブジェクトを所定の方向に向けやすくすることができる。
【０００９】
また、他の構成では、上記調整手段は、上記プレイヤオブジェクトが上記他のオブジェクトを向きやすいように上記制御データを調整してもよい。
【００１０】
上記によれば、プレイヤオブジェクトを他のオブジェクトに向けやすくすることができる。
【００１１】
また、他の構成では、上記調整手段は、上記他のオブジェクトが上記プレイヤオブジェクトの後方に存在する場合、上記プレイヤオブジェクトが上記他のオブジェクトを向きやすいように上記制御データを調整してもよい。
【００１２】
上記によれば、他のオブジェクトがプレイヤオブジェクトの後方に存在する場合、プレイヤオブジェクトを他のオブジェクトに向けやすくすることができる。
【００１３】
また、他の構成では、ゲームシステムは、上記プレイヤオブジェクトからみた特定の方向と、上記プレイヤオブジェクトから上記他のオブジェクトへの方向との一致の度合を算出する度合算出手段をさらに備えてもよい。この場合、上記調整手段は、上記度合に基づいて上記制御データを調整してもよい。
【００１４】
上記によれば、上記度合に基づいて制御データを調整することができる。例えば、上記度合は、他のオブジェクトが上記プレイヤオブジェクトの後方に存在するほど値が大きくなるものでもよいし、他のオブジェクトが上記プレイヤオブジェクトの右方向に存在するほど値が大きくなるものでもよい。
【００１５】
また、他の構成では、上記度合は、上記他のオブジェクトが上記プレイヤオブジェクトの後方に存在するほど値が大きくなってもよい。この場合、上記調整手段は、上記度合が大きいほど上記プレイヤオブジェクトが上記他のオブジェクトを向きやすいように上記制御データを調整してもよい。
【００１６】
上記によれば、他のオブジェクトがプレイヤオブジェクトの後方に存在するほど、プレイヤオブジェクトを他のオブジェクトに向かせやすくすることができる。
【００１７】
また、他の構成では、上記入力データには、上記入力装置の姿勢に基づいた姿勢データが含まれてもよい。また、ゲームシステムは、上記姿勢データに基づいて、上記入力装置の姿勢を取得する姿勢取得手段をさらに備えてもよい。そして、上記設定手段は、上記入力装置の姿勢に応じて、上記制御データを設定してもよい。
【００１８】
上記によれば、入力装置の姿勢を取得することができ、当該入力装置の姿勢に応じて上記制御データを設定することができる。
【００１９】
また、他の構成では、上記設定手段は、上記入力装置の姿勢の変化量に応じた第１変化量で上記プレイヤオブジェクトの向きが変化するように、上記制御データを設定してもよい。この場合、上記調整手段は、上記プレイヤオブジェクトと上記他のオブジェクトとが上記所定の位置関係である場合、上記プレイヤオブジェクトの向きが上記第１変化量よりも多い第２変化量で変化するように、上記制御データを調整してもよい。
【００２０】
上記によれば、入力装置の姿勢の変化量に応じた第１変化量でプレイヤオブジェクトの向きを変化させることができる。そして、上記所定の位置関係の場合、プレイヤオブジェクトの向きをより大きく変化させることができる。
【００２１】
また、他の構成では、上記設定手段は、上記入力装置の姿勢の変化方向に対応する上記仮想世界における方向に、当該入力装置の姿勢の変化量に応じた第１変化量で上記プレイヤオブジェクトの向きが変化するように、上記制御データを設定してもよい。そして、上記調整手段は、上記入力装置の姿勢の変化方向に対応する上記仮想世界における方向が上記プレイヤオブジェクトが上記他のオブジェクトに向く方向である場合に、上記第１変化量よりも多い第２変化量で上記プレイヤオブジェクトの向きが変化するように、上記制御データを調整してもよい。
【００２２】
上記によれば、入力装置の姿勢の変化方向および変化量に応じてプレイヤオブジェクトの向きを変化させることができる。そして、入力装置の姿勢がプレイヤオブジェクトが他のオブジェクトを向く方向に変化する場合、プレイヤオブジェクトの向きをより大きく変化させることができる。
【００２３】
また、他の構成では、上記入力データには、上記入力装置に備えられた方向入力部に対する入力に応じた方向データが含まれてもよい。また、上記設定手段は、上記方向データに基づいて、上記制御データを設定してもよい。
【００２４】
上記によれば、方向入力部に対する入力に基づいて、上記制御データを設定することができる。
【００２５】
また、他の構成では、ゲームシステムは、上記方向データに応じて、上記プレイヤオブジェクトを上記仮想世界において移動させる移動手段をさらに備えてもよい。
【００２６】
上記によれば、方向入力部に対する入力に応じてプレイヤオブジェクトを仮想世界において移動させることができる。
【００２７】
また、他の構成では、上記移動手段は、上記プレイヤオブジェクトと上記他のオブジェクトとが上記所定の位置関係である場合において、上記方向データが示す上記プレイヤオブジェクトの移動方向が上記他のオブジェクトに向かう方向であるとき、前記プレイヤオブジェクトの移動を制限してもよい。また、上記調整手段は、上記プレイヤオブジェクトと上記他のオブジェクトとが上記所定の位置関係である場合において、上記方向データが示す上記プレイヤオブジェクトの移動方向が上記他のオブジェクトに向かう方向であるとき、上記プレイヤオブジェクトが上記他のオブジェクトを向くように上記制御データを調整してもよい。
【００２８】
上記によれば、方向入力部に対する入力に基づいてプレイヤオブジェクトを移動させることができる。そして、プレイヤオブジェクトと他のオブジェクトとが所定の位置関係である場合において、方向データが示す移動方向が他のオブジェクトに向かう方向であるとき、プレイヤオブジェクトの移動を制限することができる。この場合において、プレイヤオブジェクトが他のオブジェクトを向くように制御データを調整することができる。
【００２９】
また、他の構成では、上記入力装置は、表示部を有する可搬型表示装置であってもよい。また、ゲームシステムは、仮想カメラ設定手段と表示制御手段とをさらに備えてもよい。仮想カメラ設定手段は、上記仮想世界に上記プレイヤオブジェクトの向きに応じて仮想カメラを設定する。また、表示制御手段は、上記仮想カメラで上記仮想世界を撮像した画像を上記表示部に表示させる。
【００３０】
上記によれば、プレイヤオブジェクトの向きに応じて仮想カメラを設定し、当該仮想カメラで仮想空間を撮像した画像を可搬型表示装置の表示部に表示させることができる。
【００３１】
また、他の構成では、上記他のオブジェクトは上記仮想世界を移動可能な敵オブジェクトであってもよい。また、ゲームシステムは、上記入力データに基づいて、上記敵オブジェクトに対する攻撃を上記プレイヤオブジェクトに行わせる攻撃制御手段をさらに備えてもよい。
【００３２】
上記によれば、プレイヤオブジェクトが敵オブジェクトに対して攻撃するゲームを行うことができる。
【００３３】
なお、本発明の別の一例は、上記ゲームシステムに含まれるゲーム装置であってもよい。また、上記ゲームシステムに含まれるコンピュータを上記各手段として機能させるゲームプログラムの形態であってもよい。さらに、本発明の別の一例は、上記のゲーム装置またはゲームシステムにおいて行われるゲーム処理方法の形態であってもよい。なお、上記ゲームシステムは、複数の装置が協働することによって実現されてもよいし、１つの装置によって実現されてもよい。
【発明の効果】
【００３４】
本発明によれば、プレイヤは自身が意図した通りに容易にプレイヤオブジェクトを動作させることができる。
【図面の簡単な説明】
【００３５】
【図１】ゲームシステム１の外観図
【図２】ゲーム装置３の内部構成を示すブロック図
【図３】コントローラ５の外観構成を示す斜視図
【図４】コントローラ５の内部構成を示すブロック図
【図５】端末装置７の外観構成を示す平面図
【図６】ユーザが端末装置７を横向きで把持した様子を示す図
【図７】端末装置７の内部構成を示すブロック図
【図８】テレビ２に表示されるテレビ用ゲーム画像の一例を示す図
【図９】端末装置７のＬＣＤ５１に表示される端末用ゲーム画像の一例を示す図
【図１０】第１キャラクタ９１ａ〜９１ｃの移動経路を示す図
【図１１】第１キャラクタ９１ａの移動の詳細を示す図
【図１２】第１キャラクタ９１ａが複数の敵キャラクタ９３に向かって移動を開始した時点でテレビ２の左上の領域に表示される画像９０ａを示す図
【図１３】左アナログスティック５３Ａの入力方向に基づく第２キャラクタ９２の移動および回転を示す図
【図１４】端末装置７を実空間の上方から見た図であり、実空間における端末装置７の姿勢の変化を示す図
【図１５】第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合のテレビ２の右下領域に表示される画像９０ｄを示す図
【図１６】ゲーム処理において用いられる各種データを示す図
【図１７】ゲーム装置３において実行されるゲーム処理の流れを示すメインフローチャート
【図１８】図１７に示す回転処理（ステップＳ３）の詳細な流れを示すフローチャート
【図１９】図１８に示すスティックによる回転角算出処理（ステップＳ１５）の詳細な流れを示すフローチャート
【図２０】図１８に示すジャイロセンサによる回転角算出処理（ステップＳ１６）の詳細な流れを示すフローチャート
【図２１】図１７に示す移動処理（ステップＳ４）の詳細な流れを示すフローチャート
【図２２】ゲーム空間の上方から第２キャラクタ９２と敵キャラクタ９３とを見た図であり、第２キャラクタ９２と敵キャラクタ９３との角度を示す図
【発明を実施するための形態】
【００３６】
［１．ゲームシステムの全体構成］
以下、図面を参照して、本発明の一実施形態に係るゲームシステム１について説明する。図１は、ゲームシステム１の外観図である。図１において、ゲームシステム１は、テレビジョン受像器等に代表される据置型のディスプレイ装置（以下、「テレビ」と記載する）２、据置型のゲーム装置３、光ディスク４、コントローラ５、マーカ装置６、および、端末装置７を含む。ゲームシステム１は、コントローラ５を用いたゲーム操作に基づいてゲーム装置３においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ２および／または端末装置７に表示するものである。
【００３７】
ゲーム装置３には、当該ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が脱着可能に挿入される。光ディスク４には、ゲーム装置３において実行されるための情報処理プログラム（典型的にはゲームプログラム）が記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
【００３８】
ゲーム装置３には、テレビ２が接続コードを介して接続される。テレビ２は、ゲーム装置３において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ２はスピーカ２ａ（図２）を有しており、スピーカ２ａは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置３と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置３とテレビ２との通信は無線通信であってもよい。
【００３９】
テレビ２の画面の周辺（図１では画面の上側）には、マーカ装置６が設置される。詳細は後述するが、ユーザ（プレイヤ）はコントローラ５を動かすゲーム操作を行うことができ、マーカ装置６は、コントローラ５の動きや位置や姿勢等をゲーム装置３が算出するために用いられる。マーカ装置６は、その両端に２つのマーカ６Ｒおよび６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１以上の赤外ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）であり、テレビ２の前方に向かって赤外光を出力する。マーカ装置６は有線で（無線であってもよい）ゲーム装置３に接続されており、ゲーム装置３はマーカ装置６が備える各赤外ＬＥＤの点灯を制御することが可能である。なお、マーカ装置６は可搬型であり、ユーザはマーカ装置６を自由な位置に設置することができる。図１ではマーカ装置６がテレビ２の上に設置された態様を表しているが、マーカ装置６を設置する位置および向きは任意である。
【００４０】
コントローラ５は、自機に対する操作に基づく操作データをゲーム装置３に与えるものである。コントローラ５とゲーム装置３とは無線通信によって通信可能である。本実施形態では、コントローラ５とゲーム装置３との間の無線通信には例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においてはコントローラ５とゲーム装置３とは有線で接続されてもよい。また、図１では、ゲームシステム１に含まれるコントローラ５は１つとするが、ゲームシステム１は複数のコントローラ５を含んでいてもよい。つまり、ゲーム装置３は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ５の詳細な構成については後述する。
【００４１】
端末装置７は、ユーザが把持可能な程度の大きさであり、ユーザは端末装置７を手に持って動かしたり、あるいは、端末装置７を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置７は、表示手段であるＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）５１、および、入力手段（後述するタッチパネル５２やジャイロセンサ７４等）を備える。端末装置７とゲーム装置３とは無線（有線であってもよい）によって通信可能である。端末装置７は、ゲーム装置３で生成された画像（例えばゲーム画像）のデータをゲーム装置３から受信し、画像をＬＣＤ５１に表示する。なお、本実施形態では表示装置としてＬＣＤを用いているが、端末装置７は、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置７は、自機に対する操作に基づく操作データをゲーム装置３に送信する。
【００４２】
［２．ゲーム装置３の内部構成］
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の内部構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５等を有する。
【００４３】
ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムＬＳＩ１１の内部構成については後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅまたは外部メインメモリ１２に読み出したデータを書き込む。
【００４４】
システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）１１ｄ、および内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００４５】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。なお、本実施形態においては、ゲーム装置３は、テレビ２に表示するゲーム画像と、端末装置７に表示するゲーム画像との両方を生成する。以下では、テレビ２に表示されるゲーム画像を「テレビ用ゲーム画像」と呼び、端末装置７に表示されるゲーム画像を「端末用ゲーム画像」と呼ぶことがある。
【００４６】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅや外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、テレビ２のスピーカから出力するゲーム音声と、端末装置７のスピーカから出力するゲーム音声との両方が生成される。
【００４７】
上記のようにゲーム装置３において生成される画像および音声のうちで、テレビ２において出力される画像および音声のデータは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、読み出した画像データをＡＶコネクタ１６を介してテレビ２に出力するとともに、読み出した音声データを、テレビ２に内蔵されるスピーカ２ａに出力する。これによって、テレビ２に画像が表示されるとともにスピーカ２ａから音が出力される。
【００４８】
また、ゲーム装置３において生成される画像および音声のうちで、端末装置７において出力される画像および音声のデータは、入出力プロセッサ１１ａ等によって端末装置７へ送信される。入出力プロセッサ１１ａ等による端末装置７へのデータの送信については後述する。
【００４９】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、ネットワーク通信モジュール１８、コントローラ通信モジュール１９、拡張コネクタ２０、メモリカード用コネクタ２１、コーデックＬＳＩ２７に接続される。また、ネットワーク通信モジュール１８にはアンテナ２２が接続される。コントローラ通信モジュール１９にはアンテナ２３が接続される。コーデックＬＳＩ２７は端末通信モジュール２８に接続され、端末通信モジュール２８にはアンテナ２９が接続される。
【００５０】
ゲーム装置３は、インターネット等のネットワークに接続して外部情報処理装置（例えば他のゲーム装置や、各種サーバや、各種情報処理装置等）と通信を行うことが可能である。すなわち、入出力プロセッサ１１ａは、ネットワーク通信モジュール１８およびアンテナ２２を介してインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置と通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール１８およびアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２およびネットワーク通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０はゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と外部情報処理装置との間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。また、フラッシュメモリ１７にはゲームプログラムが記憶されてもよい。
【００５１】
また、ゲーム装置３は、コントローラ５からの操作データを受信することが可能である。すなわち、入出力プロセッサ１１ａは、コントローラ５から送信される操作データをアンテナ２３およびコントローラ通信モジュール１９を介して受信し、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５２】
また、ゲーム装置３は、端末装置７との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ１１ａは、端末装置７へゲーム画像（端末用ゲーム画像）を送信する場合、ＧＰＵ１１ｂが生成したゲーム画像のデータをコーデックＬＳＩ２７へ出力する。コーデックＬＳＩ２７は、入出力プロセッサ１１ａからの画像データに対して所定の圧縮処理を行う。端末通信モジュール２８は、端末装置７との間で無線通信を行う。したがって、コーデックＬＳＩ２７によって圧縮された画像データは、端末通信モジュール２８によってアンテナ２９を介して端末装置７へ送信される。なお、本実施形態では、ゲーム装置３から端末装置７へ送信される画像データはゲームに用いるものであり、ゲームにおいては表示される画像に遅延が生じるとゲームの操作性に悪影響が出る。そのため、ゲーム装置３から端末装置７への画像データの送信に関しては、できるだけ遅延が生じないようにすることが好ましい。したがって、本実施形態では、コーデックＬＳＩ２７は、例えばＨ．２６４規格といった高効率の圧縮技術を用いて画像データを圧縮する。なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には無圧縮で画像データを送信する構成であってもよい。また、端末通信モジュール２８は、例えばＷｉ−Ｆｉの認証を受けた通信モジュールであり、例えばＩＥＥＥ８０２．１１ｎ規格で採用されるＭＩＭＯ（Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔ  Ｍｕｌｔｉｐｌｅ  Ｏｕｔｐｕｔ）の技術を用いて端末装置７との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
【００５３】
また、ゲーム装置３は、画像データの他、音声データを端末装置７へ送信する。すなわち、入出力プロセッサ１１ａは、ＤＳＰ１１ｃが生成した音声データを、コーデックＬＳＩ２７を介して端末通信モジュール２８へ出力する。コーデックＬＳＩ２７は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール２８は、圧縮された画像データおよび音声データを、アンテナ２９を介して端末装置７へ送信する。
【００５４】
また、ゲーム装置３は、端末装置７から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置７は、操作データ、画像データ、および音声データを送信する。端末装置７から送信される各データはアンテナ２９を介して端末通信モジュール２８によって受信される。ここで、端末装置７からの画像データおよび音声データは、ゲーム装置３から端末装置７への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール２８からコーデックＬＳＩ２７に送られ、コーデックＬＳＩ２７によって伸張処理が施されて入出力プロセッサ１１ａに出力される。一方、端末装置７からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール２８で受信された後、コーデックＬＳＩ２７を介して入出力プロセッサ１１ａに出力される。入出力プロセッサ１１ａは、端末装置７から受信したデータを、内部メインメモリ１１ｅまたは外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。
【００５５】
また、ゲーム装置３は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ１１ａには、拡張コネクタ２０およびメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタである。拡張コネクタ２０に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【００５６】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、およびイジェクトボタン２６が設けられる。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、図示しないＡＣアダプタによって外部の電源からゲーム装置３の各構成要素に対して電力が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００５７】
なお、他の実施形態においては、ゲーム装置３が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置３とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ２０を介してゲーム装置３と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックＬＳＩ２７、端末通信モジュール２８およびアンテナ２９の各構成要素を備えており、拡張コネクタ２０に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置７と通信可能な構成とすることができる。
【００５８】
［３．コントローラ５の構成］
次に、図３および図４を参照して、コントローラ５について説明する。図３は、コントローラ５の外観構成を示す斜視図である。図４は、コントローラ５の外観構成を示す斜視図である。図３は、コントローラ５の上側後方から見た斜視図である。
【００５９】
図３および図４において、コントローラ５は、例えばプラスチック成型によって形成されたハウジング３１を有している。ハウジング３１は、その前後方向（図３に示すＺ１軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、コントローラ５に設けられたボタンを押下すること、および、コントローラ５自体を動かしてその位置や姿勢（傾き）を変えることによってゲーム操作を行うことができる。
【００６０】
ハウジング３１には、複数の操作ボタンが設けられる。図３に示すように、ハウジング３１の上面には、十字ボタン３２ａ、１番ボタン３２ｂ、２番ボタン３２ｃ、Ａボタン３２ｄ、マイナスボタン３２ｅ、ホームボタン３２ｆ、プラスボタン３２ｇ、および電源ボタン３２ｈが設けられる。ハウジング３１の下面には凹部が形成されており、当該凹部の後面側傾斜面にはＢボタン３２ｉが設けられる（図示せず）。これらの各操作ボタン３２ａ〜３２ｉには、ゲーム装置３が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン３２ｈは遠隔からゲーム装置３本体の電源をオン／オフするためのものである。
【００６１】
ハウジング３１の後面にはコネクタ３３が設けられている。コネクタ３３は、コントローラ５に他の機器（例えば、アナログスティックを有するサブコントローラや他のセンサユニット等）を接続するために利用される。
【００６２】
ハウジング３１上面の後方には複数（図３では４つ）のＬＥＤ３４ａ〜３４ｄが設けられる。ここで、コントローラ５には、他のコントローラ５と区別するためにコントローラ種別（番号）が付与される。
【００６３】
また、コントローラ５は撮像情報演算部３５（図４）を有しており、、ハウジング３１前面には撮像情報演算部３５の光入射面３５ａが設けられる。光入射面３５ａは、マーカ６Ｒおよび６Ｌからの赤外光を少なくとも透過する材質で構成される。
【００６４】
ハウジング３１上面における１番ボタン３２ｂとホームボタン３２ｆとの間には、コントローラ５に内蔵されるスピーカからの音を外部に放出するための音抜き孔３１ａが形成されている。
【００６５】
なお、図３に示したコントローラ５の形状や、各操作ボタンの形状等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
【００６６】
図４は、コントローラ５の内部構成を示すブロック図である。図４に示すように、コントローラ５は、操作部３２（各操作ボタン３２ａ〜３２ｉ）、撮像情報演算部３５、通信部３６、加速度センサ３７、およびジャイロセンサ４８を備えている。コントローラ５は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置３へ送信するものである。なお、以下では、コントローラ５が送信する操作データを「コントローラ操作データ」と呼び、端末装置７が送信する操作データを「端末操作データ」と呼ぶことがある。
【００６７】
操作部３２は、上述した各操作ボタン３２ａ〜３２ｉを含み、各操作ボタン３２ａ〜３２ｉに対する入力状態（各操作ボタン３２ａ〜３２ｉが押下されたか否か）を表す操作ボタンデータを通信部３６のマイコン４２へ出力する。
【００６８】
撮像情報演算部３５は、赤外線フィルタ３８、レンズ３９、撮像素子４０、および画像処理回路４１を含んでいる。赤外線フィルタ３８は、コントローラ５の前方から入射する光から赤外線のみを通過させる。レンズ３９は、赤外線フィルタ３８を透過した赤外線を集光して撮像素子４０へ入射させる。撮像素子４０は、例えばＣＭＯＳセンサやあるいはＣＣＤセンサのような固体撮像素子であり、レンズ３９が集光した赤外線を受光して画像信号を出力する。ここで、撮像対象となる端末装置７のマーカ部５５およびマーカ装置６は、赤外光を出力するマーカで構成される。したがって、赤外線フィルタ３８を設けることによって、撮像素子４０は、赤外線フィルタ３８を通過した赤外線だけを受光して画像データを生成するので、撮像対象（マーカ部５５および／またはマーカ装置６）の画像をより正確に撮像することができる。以下では、撮像素子４０によって生成された画像データは、画像処理回路４１で処理される。画像処理回路４１は、撮像画像内における撮像対象の位置を算出する。画像処理回路４１は、算出された位置を示す座標を通信部３６のマイコン４２へ出力する。この座標のデータは、マイコン４２によって操作データとしてゲーム装置３に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ５自体の向き（傾斜角度）や位置に対応して変化するので、ゲーム装置３はこのマーカ座標を用いてコントローラ５の向きや位置を算出することができる。
【００６９】
加速度センサ３７は、コントローラ５の加速度（重力加速度を含む）を検出する。なお、加速度センサ３７は、例えば静電容量式のＭＥＭＳ（Ｍｉｃｒｏ  Ｅｌｅｃｔｒｏ  Ｍｅｃｈａｎｉｃａｌ  Ｓｙｓｔｅｍ）型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【００７０】
本実施形態では、加速度センサ３７は、コントローラ５を基準とした上下方向（図３に示すＹ１軸方向）、左右方向（図３に示すＸ１軸方向）および前後方向（図３に示すＺ１軸方向）の３軸方向に関してそれぞれ直線加速度を検出する。
【００７１】
加速度センサ３７が検出した加速度を表すデータ（加速度データ）は、通信部３６へ出力される。なお、加速度センサ３７が検出した加速度は、コントローラ５自体の向き（傾斜角度）や動きに対応して変化するので、ゲーム装置３は取得された加速度データを用いてコントローラ５の向き（姿勢）や動きを算出することができる。
【００７２】
なお、加速度センサ３７（後述する加速度センサ６３についても同様）から出力される加速度の信号に基づいて、ゲーム装置３のプロセッサ（例えばＣＰＵ１０）またはコントローラ５のプロセッサ（例えばマイコン４２）等のコンピュータが処理を行うことによって、コントローラ５に関するさらなる情報を推測または算出（判定）することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ３７を搭載するコントローラ５が静止状態であることを前提としてコンピュータ側の処理が実行される場合（すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合）、コントローラ５が現実に静止状態であれば、検出された加速度に基づいてコントローラ５の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ３７の検出軸が鉛直下方向を向いている状態を基準としたとき、１Ｇ（重力加速度）がかかっているか否かによって、コントローラ５が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ３７の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ５がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ３７からの出力に基づいてコントローラ５の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ５の傾斜方向を算出するようにしてもよい。このように、加速度センサ３７をプロセッサと組み合わせて用いることによって、コントローラ５の傾斜角度または姿勢を判定することができる。
【００７３】
一方、コントローラ５が動的な状態（コントローラ５が動かされている状態）であることを前提とする場合には、加速度センサ３７は重力加速度に加えてコントローラ５の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ５の動き方向を知ることができる。また、コントローラ５が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ５の傾きを知ることが可能である。なお、他の実施例では、加速度センサ３７は、内蔵の加速度検出手段で検出された加速度信号をマイコン４２に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ３７が静的な加速度（例えば、重力加速度）を検出するために用いられる場合、加速度信号を傾斜角（あるいは、他の好ましいパラメータ）に変換するものであってもよい。
【００７４】
ジャイロセンサ４８は、３軸（本実施形態では、Ｘ１Ｙ１Ｚ１軸）回りの角速度を検出する。本明細書では、コントローラ５の撮像方向（Ｚ１軸正方向）を基準として、Ｘ１軸回りの回転方向をピッチ方向、Ｙ１軸回りの回転方向をヨー方向、Ｚ１軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ４８は、３軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ４８は、３軸ジャイロセンサであってもよいし、２軸ジャイロセンサと１軸ジャイロセンサとを組み合わせて３軸周りの角速度を検出するものであってもよい。ジャイロセンサ４８で検出された角速度を表すデータ（角速度データ）は、通信部３６へ出力される。また、ジャイロセンサ４８は１軸または２軸回りの角速度を検出するものであってもよい。
【００７５】
コントローラ５の通信部３６は、マイコン４２、メモリ４３、無線モジュール４４、およびアンテナ４５を含んでいる。マイコン４２は、処理を行う際にメモリ４３を記憶領域として用いながら、マイコン４２が取得したデータをゲーム装置３へ無線送信する無線モジュール４４を制御する。
【００７６】
操作部３２、撮像情報演算部３５、加速度センサ３７、およびジャイロセンサ４８からマイコン４２へ出力されたデータは、一時的にメモリ４３に格納される。これらのデータは、操作データ（コントローラ操作データ）としてゲーム装置３へ送信される。
【００７７】
以上のように、コントローラ５は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。また、ゲーム装置３は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ５を用いることによって、ユーザは、各操作ボタンを押下するという従来の一般的なゲーム操作に加えて、コントローラ５自体を動かすゲーム操作を行うことができる。例えば、コントローラ５を任意の姿勢に傾ける操作、コントローラ５によって画面上の任意の位置を指示する操作、および、コントローラ５自体を動かす操作等を行うことが可能となる。
【００７８】
また、本実施形態において、コントローラ５は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。
【００７９】
［４．端末装置７の構成］
次に、図５〜図７を参照して、端末装置７の構成について説明する。図５は、端末装置７の外観構成を示す平面図である。図５における（ａ）図は端末装置７の正面図であり、（ｂ）図は上面図であり、（ｃ）図は右側面図であり、（ｄ）図は下面図である。また、図６は、ユーザが端末装置７を横向きで把持した様子を示す図である。
【００８０】
図５に示されるように、端末装置７は、大略的には横長の長方形の板状形状であるハウジング５０を備える。すなわち、端末装置７は、タブレット型の情報処理装置であるということもできる。ハウジング５０は、ユーザが把持することができる程度の大きさである。
【００８１】
端末装置７は、ハウジング５０の表面（表側）にＬＣＤ５１を有する。ＬＣＤ５１は、ハウジング５０の表面の中央付近に設けられる。したがって、ユーザは、図６に示すようにＬＣＤ５１の両側部分のハウジング５０を持つことによって、ＬＣＤ５１の画面を見ながら端末装置７を持って動かすことができる。なお、図６ではユーザがＬＣＤ５１の左右両側の部分のハウジング５０を持つことで端末装置７を横持ちで（横に長い向きにして）持つ例を示しているが、端末装置７を縦持ちで（縦に長い向きにして）持つことも可能である。
【００８２】
図５の（ａ）図に示すように、端末装置７は、操作手段として、ＬＣＤ５１の画面上にタッチパネル５２を有する。タッチパネル５２はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。タッチパネル５２に対する入力は通常タッチペン６０を用いて行われるが、タッチペン６０に限らずユーザの指でタッチパネル５２に対する入力をすることも可能である。なお、ハウジング５０には、タッチパネル５２に対する操作を行うために用いられるタッチペン６０を収納する収納穴６０ａが設けられている（図５（ｂ）参照）。
【００８３】
図５に示すように、端末装置７は、操作手段（操作部）として、２つのアナログスティック５３Ａおよび５３Ｂと、複数のボタン（キー）５４Ａ〜５４Ｍとを備えている。各アナログスティック５３Ａおよび５３Ｂは、方向を指示することが可能なデバイスである。各アナログスティック５３Ａおよび５３Ｂは、ユーザの指で操作される可動部材（スティック部）がハウジング５０の表面に対して任意の方向（上下左右および斜め方向の任意の角度）にスライドすることができるように構成されている。すなわち、スライドパッドと呼ばれることもある方向入力デバイスである。なお、各アナログスティック５３Ａおよび５３Ｂの可動部材は、ハウジング５０の表面に対して任意の方向に傾倒する種類のものでもよい。本実施形態では、可動部材がスライドする種類のアナログスティックを用いるので、ユーザは親指を大きく動かさなくても各アナログスティック５３Ａおよび５３Ｂを操作することができ、ハウジング５０をよりしっかりと把持した状態で操作を行うことができる。
【００８４】
また、左アナログスティック５３ＡはＬＣＤ５１の画面の左側に、右アナログスティック５３ＢはＬＣＤ５１の画面の右側にそれぞれ設けられる。また、図６に示すように、各アナログスティック５３Ａおよび５３Ｂは、ユーザが端末装置７の左右部分（ＬＣＤ５１の左右両側の部分）を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置７を持って動かす場合においても各アナログスティック５３Ａおよび５３Ｂを容易に操作することができる。
【００８５】
各ボタン５４Ａ〜５４Ｌは、所定の入力を行うための操作手段（操作部）であり、押下可能なキーである。以下に示すように、各ボタン５４Ａ〜５４Ｌは、ユーザが端末装置７の左右部分を把持した状態で操作可能な位置に設けられる（図６参照）。
【００８６】
図５の（ａ）図に示すように、ハウジング５０の表面には、各操作ボタン５４Ａ〜５４Ｌのうち、十字ボタン（方向入力ボタン）５４Ａと、ボタン５４Ｂ〜５４Ｈおよび５４Ｍとが設けられる。
【００８７】
十字ボタン５４Ａは、ＬＣＤ５１の左側であって、左アナログスティック５３Ａの下側に設けられる。十字ボタン５４Ａは、十字の形状を有しており、少なくとも上下左右の方向を指示することが可能なボタンである。
【００８８】
また、ボタン５４Ｂ〜５４Ｄは、ＬＣＤ５１の下側に設けられる。また、端末装置７は、端末装置７の電源をオン／オフするための電源ボタン５４Ｍを有している。電源ボタン５４Ｍの操作により、ゲーム装置３の電源を遠隔でオン／オフすることも可能である。また、４つのボタン５４Ｅ〜５４Ｈは、ＬＣＤ５１の右側であって、右アナログスティック５３Ｂの下側に設けられる。さらに、４つのボタン５４Ｅ〜５４Ｈは、（４つのボタン５４Ｅ〜５４Ｈの中心位置に対して）上下左右の位置関係となるように配置されている。したがって、端末装置７は、ユーザに上下左右の方向を指示させるためのボタンとして４つのボタン５４Ｅ〜５４Ｈを機能させることも可能である。
【００８９】
また、本実施形態では、ハウジング５０の裏側（ＬＣＤ５１が設けられる表面の反対側）には、突起部（庇部５９）が設けられる（図５（ｃ）参照）。図５（ｃ）に示すように、庇部５９は、略板状のハウジング５０の裏面から突起して設けられる、山状の部材である。突起部は、ハウジング５０の裏面を把持するユーザの指に掛止可能な高さ（厚さ）を有する。
【００９０】
また、図５の（ａ）図、（ｂ）図、および（ｃ）図に示すように、第１Ｌボタン５４Ｉおよび第１Ｒボタン５４Ｊは、ハウジング５０の上側の面における左右の両側にそれぞれ設けられる。本実施形態では、第１Ｌボタン５４Ｉおよび第１Ｒボタン５４Ｊは、ハウジング５０の斜め上部分（左上部分および右上部分）に設けられる。
【００９１】
また、図５の（ｃ）図に示すように、第２Ｌボタン５４Ｋおよび第２Ｒボタン５４Ｌは、上記突起部（庇部５９）に配置される。第２Ｌボタン５４Ｋは、庇部５９の左端付近に設けられる。第２Ｒボタン５４Ｌは、庇部５９の右端付近に設けられる。
【００９２】
各ボタン５４Ａ〜５４Ｌには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン５４Ａおよびボタン５４Ｅ〜５４Ｈは方向指示操作や選択操作等に用いられてもよいし、各ボタン５４Ｂ〜５４Ｅは決定操作やキャンセル操作等に用いられてもよい。また、端末装置７は、ＬＣＤ５１の画面表示をオン／オフするためのボタンや、ゲーム装置３との接続設定（ペアリング）を行うためのボタンを有していてもよい。
【００９３】
図５の（ａ）図に示すように、端末装置７は、マーカ５５Ａおよびマーカ５５Ｂからなるマーカ部５５をハウジング５０の表面に備えている。マーカ部５５は、ＬＣＤ５１の上側に設けられる。各マーカ５５Ａおよびマーカ５５Ｂは、マーカ装置６の各マーカ６Ｒおよび６Ｌと同様、１以上の赤外ＬＥＤで構成される。マーカ５５Ａおよび５５Ｂを構成する赤外ＬＥＤは、赤外光を透過する窓部の内側に配置される。マーカ部５５は、上述のマーカ装置６と同様、コントローラ５の動き等をゲーム装置３が算出するために用いられる。また、ゲーム装置３はマーカ部５５が備える各赤外ＬＥＤの点灯を制御することが可能である。
【００９４】
端末装置７は、撮像手段であるカメラ５６を備えている。カメラ５６は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。
【００９５】
なお、端末装置７は、音声入力手段であるマイク６９を備えている。ハウジング５０の表面には、マイクロフォン用孔５０ｃが設けられる。マイク６９はこのマイクロフォン用孔５０ｃの奥のハウジング５０内部に設けられる。マイク６９は、ユーザの音声等、端末装置７の周囲の音を検出する。
【００９６】
端末装置７は、音声出力手段であるスピーカ７７を備えている。図５の（ａ）図に示すように、ハウジング５０の表面の下側にはスピーカ孔５７が設けられる。スピーカ７７の出力音はこのスピーカ孔５７から出力される。本実施形態では、端末装置７は２つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔５７が設けられる。なお、端末装置７は、スピーカ７７の音量を調節するためのつまみ６４を備える。また、端末装置７は、イヤホン等の音声出力部を接続するための音声出力端子６２を備える。
【００９７】
また、ハウジング５０には、赤外線通信モジュール８２からの赤外線信号を端末装置７の外部に出射するための窓６３が設けられる。
【００９８】
また、端末装置７は、他の装置（付加装置）を端末装置７に接続するための拡張コネクタ５８を備えている。拡張コネクタ５８は、端末装置７に接続される他の装置との間でデータ（情報）を送受信するための通信端子である。
【００９９】
また、端末装置７は、拡張コネクタ５８とは別に、付加装置から電力を取得するための充電端子６６を有する。本実施形態では、充電端子６６はハウジング５０の下側側面に設けられる。したがって、端末装置７と付加装置とが接続される際には、拡張コネクタ５８を介して情報を送受信することに加えて、一方から他方への電力供給を行うことも可能である。また、端末装置７は充電コネクタを有し、ハウジング５０は充電コネクタを保護するためのカバー部６１を有する。本実施形態では、充電コネクタ（カバー部６１）はハウジング５０の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
【０１００】
また、端末装置７のハウジング５０には、ストラップの紐を結びつけるための孔６５ａおよび６５ｂが設けられる。
【０１０１】
なお、図５に示した端末装置７に関して、各操作ボタンやハウジング５０の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
【０１０２】
次に、図７を参照して、端末装置７の内部構成について説明する。図７は、端末装置７の内部構成を示すブロック図である。図７に示すように、端末装置７は、図５に示した構成の他、タッチパネルコントローラ７１、磁気センサ７２、加速度センサ７３、ジャイロセンサ７４、ユーザインタフェースコントローラ（ＵＩコントローラ）７５、コーデックＬＳＩ７６、スピーカ７７、サウンドＩＣ７８、マイク７９、無線モジュール８０、アンテナ８１、赤外線通信モジュール８２、フラッシュメモリ８３、電源ＩＣ８４、電池８５、およびバイブレータ８９を備える。これらの電子部品は、電子回路基板上に実装されてハウジング５０内に収納される。
【０１０３】
ＵＩコントローラ７５は、各種の入出力部に対するデータの入出力を制御するための回路である。ＵＩコントローラ７５は、タッチパネルコントローラ７１、アナログスティック５３（アナログスティック５３Ａおよび５３Ｂ）、操作ボタン５４（各操作ボタン５４Ａ〜５４Ｌ）、マーカ部５５、磁気センサ７２、加速度センサ７３、およびジャイロセンサ７４に接続される。また、ＵＩコントローラ７５は、コーデックＬＳＩ７６と拡張コネクタ５８に接続される。また、ＵＩコントローラ７５には電源ＩＣ８４が接続され、ＵＩコントローラ７５を介して各部に電力が供給される。電源ＩＣ８４には内蔵の電池８５が接続され、電力が供給される。また、電源ＩＣ８４には、外部電源から電力を取得可能な充電器８６またはケーブルを充電コネクタを介して接続することが可能であり、端末装置７は、当該充電器８６またはケーブルを用いて外部電源からの電力供給と充電を行うことができる。なお、端末装置７は、図示しない充電機能を有するクレイドルに端末装置７を装着することで充電を行うことも可能である。
【０１０４】
タッチパネルコントローラ７１は、タッチパネル５２に接続され、タッチパネル５２の制御を行う回路である。タッチパネルコントローラ７１は、タッチパネル５２からの信号に基づいて所定の形式のタッチ位置データを生成してＵＩコントローラ７５へ出力する。タッチ位置データは、タッチパネル５２の入力面において入力が行われた位置の座標を表す。
【０１０５】
アナログスティック５３は、ユーザの指で操作されるスティック部がスライドした（または傾倒した）方向および量を表すスティックデータをＵＩコントローラ７５へ出力する。また、操作ボタン５４は、各操作ボタン５４Ａ〜５４Ｌに対する入力状況（押下されたか否か）を表す操作ボタンデータをＵＩコントローラ７５へ出力する。
【０１０６】
磁気センサ７２は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、ＵＩコントローラ７５へ出力される。また、ＵＩコントローラ７５から磁気センサ７２へは、磁気センサ７２に対する制御指示が出力される。磁気センサ７２に関しては、ＭＩ（磁気インピーダンス）素子、フラックスゲートセンサ、ホール素子、ＧＭＲ（巨大磁気抵抗）素子、ＴＭＲ（トンネル磁気抵抗）素子、あるいはＡＭＲ（異方性磁気抵抗）素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置７が動いた場合には方位データが変化するため、端末装置７の姿勢の変化を算出することができる。
【０１０７】
加速度センサ７３は、ハウジング５０の内部に設けられ、３軸（図５の（ａ）図に示すＸＹＺ軸）方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ７３は、ハウジング５０の長辺方向をＸ軸、ハウジング５０の短辺方向をＹ軸、ハウジング５０の表面に対して垂直な方向をＺ軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはＵＩコントローラ７５へ出力される。また、ＵＩコントローラ７５から加速度センサ７３へは、加速度センサ７３に対する制御指示が出力される。加速度センサ７３は、本実施形態では例えば静電容量式のＭＥＭＳ型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ７３は１軸または２軸方向を検出する加速度センサであってもよい。
【０１０８】
ジャイロセンサ７４は、ハウジング５０の内部に設けられ、上記Ｘ軸、Ｙ軸およびＺ軸の３軸周りの角速度を検出する。検出された角速度を表す角速度データは、ＵＩコントローラ７５へ出力される。また、ＵＩコントローラ７５からジャイロセンサ７４へは、ジャイロセンサ７４に対する制御指示が出力される。なお、３軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ７４はジャイロセンサ４８と同様、２軸ジャイロセンサと１軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ７４は１軸または２軸方向を検出するジャイロセンサであってもよい。
【０１０９】
ＵＩコントローラ７５は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データをコーデックＬＳＩ７６に出力する。なお、拡張コネクタ５８を介して端末装置７に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。
【０１１０】
コーデックＬＳＩ７６は、ゲーム装置３へ送信するデータに対する圧縮処理、および、ゲーム装置３から送信されたデータに対する伸張処理を行う回路である。コーデックＬＳＩ７６には、ＬＣＤ５１、カメラ５６、サウンドＩＣ７８、無線モジュール８０、フラッシュメモリ８３、および赤外線通信モジュール８２が接続される。また、コーデックＬＳＩ７６はＣＰＵ８７と内部メモリ８８を含む。端末装置７はゲーム処理自体を行なわない構成であるが、端末装置７の管理や通信のためのプログラムを実行する。電源投入時にフラッシュメモリ８３に格納されたプログラムを内部メモリ８８に読み出してＣＰＵ８７が実行することで、端末装置７が起動する。また、内部メモリ８８の一部の領域はＬＣＤ５１のためのＶＲＡＭとして使用される。
【０１１１】
カメラ５６は、ゲーム装置３からの指示に従って画像を撮像し、撮像した画像データをコーデックＬＳＩ７６へ出力する。また、コーデックＬＳＩ７６からカメラ５６へは、画像の撮像指示等、カメラ５６に対する制御指示が出力される。
【０１１２】
サウンドＩＣ７８は、スピーカ７７およびマイク７９に接続され、スピーカ７７およびマイク７９への音声データの入出力を制御する回路である。すなわち、コーデックＬＳＩ７６から音声データを受け取った場合、サウンドＩＣ７８は当該音声データに対してＤ／Ａ変換を行って得られる音声信号をスピーカ７７へ出力し、スピーカ７７から音を出力させる。また、マイク７９は、端末装置７に伝わる音（ユーザの音声等）を検知して、当該音を示す音声信号をサウンドＩＣ７８へ出力する。サウンドＩＣ７８は、マイク７９からの音声信号に対してＡ／Ｄ変換を行い、所定の形式の音声データをコーデックＬＳＩ７６へ出力する。
【０１１３】
コーデックＬＳＩ７６は、カメラ５６からの画像データ、マイク７９からの音声データ、および、ＵＩコントローラ７５からの操作データ（端末操作データ）を、無線モジュール８０を介してゲーム装置３へ送信する。本実施形態では、コーデックＬＳＩ７６は、画像データおよび音声データに対して、コーデックＬＳＩ２７と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール８０に出力される。無線モジュール８０にはアンテナ８１が接続されており、無線モジュール８０はアンテナ８１を介してゲーム装置３へ上記送信データを送信する。無線モジュール８０は、ゲーム装置３の端末通信モジュール２８と同様の機能を有している。すなわち、無線モジュール８０は、例えばＩＥＥＥ８０２．１１ｎの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
【０１１４】
以上のように、端末装置７からゲーム装置３へ送信される送信データには、操作データ（端末操作データ）、画像データ、および音声データが含まれる。なお、拡張コネクタ５８を介して端末装置７に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール８２は、他の装置との間で例えばＩＲＤＡの規格に従った赤外線通信を行う。コーデックＬＳＩ７６は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置３へ送信してもよい。
【０１１５】
また、上述のように、ゲーム装置３から端末装置７へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ８１および無線モジュール８０を介してコーデックＬＳＩ７６に受信される。コーデックＬＳＩ７６は、受信した画像データおよび音声データを伸張する。伸張された画像データはＬＣＤ５１へ出力され、画像がＬＣＤ５１に表示される。つまり、コーデックＬＳＩ７６（ＣＰＵ８７）は、受信された画像データを表示部に表示させる。また、伸張された音声データはサウンドＩＣ７８へ出力され、サウンドＩＣ７８はスピーカ７７から音を出力させる。
【０１１６】
［５．ゲーム処理の概要］
次に、本実施形態のゲームシステム１において実行されるゲーム処理の概要について説明する。本実施形態におけるゲームは、複数のプレイヤによって行われるゲームである。本実施形態では、ゲーム装置３には１台の端末装置７と、複数台のコントローラ５とが無線通信により接続される。なお、本実施形態のゲームでは、ゲーム装置３に接続可能なコントローラ５の台数は３台までとする。
【０１１７】
以下では、コントローラ５（コントローラ５ａ〜５ｃ）を操作する３人の第１プレイヤ（第１プレイヤＡ〜Ｃ）に端末装置７を操作する１人の第２プレイヤを加えた４名のプレイヤによって、本実施形態に係るゲームが行われた場合について説明する。
【０１１８】
図８は、テレビ２に表示されるテレビ用ゲーム画像の一例を示す図である。図９は、端末装置７のＬＣＤ５１に表示される端末用ゲーム画像の一例を示す図である。
【０１１９】
図８に示すように、テレビ２の画面は４等分に分割され、分割された各領域にはそれぞれ画像９０ａ、画像９０ｂ、画像９０ｃ、および画像９０ｄが表示される。図８に示すように、テレビ２には、第１キャラクタ９１ａ、第１キャラクタ９１ｂ、第１キャラクタ９１ｃ、および第２キャラクタ９２が表示される。また、テレビ２には、複数の敵キャラクタ（９３ａ〜９３ｃ）が表示される。
【０１２０】
第１キャラクタ９１ａは、ゲーム空間（３次元（２次元でもよい）の仮想世界）に配置される仮想キャラクタであり、第１プレイヤＡによって操作される。第１キャラクタ９１ａは、剣オブジェクト９５ａを把持して、当該剣オブジェクト９５ａで敵キャラクタ９３に対して攻撃を行う。また、第１キャラクタ９１ｂは、ゲーム空間に配置される仮想キャラクタであり、第１プレイヤＢによって操作される。第１キャラクタ９１ｂは、剣オブジェクト９５ｂを把持し、当該剣オブジェクト９５ｂを用いて敵キャラクタ９３に対して攻撃を行う。また、第１キャラクタ９１ｃは、ゲーム空間に配置される仮想キャラクタであり、第１プレイヤＣによって操作される。第１キャラクタ９１ｃは、剣オブジェクト９５ｃを把持し、当該剣オブジェクト９５ｃを用いて敵キャラクタ９３に対して攻撃を行う。また、第２キャラクタ９２は、ゲーム空間に配置される仮想キャラクタであり、第２プレイヤによって操作される。第２キャラクタ９２は、弓オブジェクト９６および矢オブジェクト９７を把持し、当該矢オブジェクト９７をゲーム空間に発射させて、敵キャラクタ９３に対して攻撃を行う。敵キャラクタ９３は、ゲーム装置３によって制御される仮想キャラクタである。
【０１２１】
本実施形態のゲームは、第１プレイヤＡ〜Ｃおよび第２プレイヤが互いに協力することによって、敵キャラクタ９３を倒しながらゲーム空間内を移動するゲームである。具体的には、各プレイヤキャラクタ（９１ａ〜９１ｃおよび９２）は、敵キャラクタ９３を倒しながらゲーム空間の始点位置から終点位置まで移動する。
【０１２２】
図８に示すように、テレビ２には、画面を上下左右に４等分した領域にそれぞれ異なる画像９０ａ〜９０ｄが表示される。具体的には、画面の左上の領域には、第１プレイヤＡがコントローラ５ａを用いて操作する第１キャラクタ９１ａの真後ろからゲーム空間を見たときの画像９０ａが表示される。画像９０ａは、第１キャラクタ９１ａのゲーム空間における位置および向きに応じて設定される第１仮想カメラＡでゲーム空間を撮像した画像である。第１仮想カメラＡの撮像方向は、第１キャラクタ９１ａのゲーム空間における向きと一致する。また、画面の右上の領域には、第１プレイヤＢがコントローラ５ｂを用いて操作する第１キャラクタ９１ｂの真後ろからゲーム空間を見たときの画像９０ｂが表示される。画像９０ｂは、第１キャラクタ９１ｂのゲーム空間における位置および向きに応じて設定される第１仮想カメラＢでゲーム空間を撮像した画像である。第１仮想カメラＢの撮像方向は、第１キャラクタ９１ｂのゲーム空間における向きと一致する。また、画面の左下の領域には、第１プレイヤＣがコントローラ５ｃを用いて操作する第１キャラクタ９１ｃの真後ろからゲーム空間を見たときの画像９０ｃが表示される。画像９０ｃは、第１キャラクタ９１ｃのゲーム空間における位置および向きに応じて設定される第１仮想カメラＣでゲーム空間を撮像した画像である。第１仮想カメラＣの撮像方向は、第１キャラクタ９１ｃのゲーム空間における向きと一致する。また、画面の右下の領域には、第２プレイヤが端末装置７を用いて操作する第２キャラクタ９２の斜め後方からゲーム空間を見たときの画像９０ｄが表示される。画像９０ｄは、第２キャラクタ９２のゲーム空間における位置および向きに応じて設定される第２仮想カメラでゲーム空間を撮像した画像である。第２仮想カメラの位置は、第２キャラクタ９２の右斜め後方の所定位置（ゲーム空間の地面近傍よりも上方の位置）に設定される。このため、第２仮想カメラで撮像された画像９０ｄは、第２キャラクタ９２を含むゲーム空間を第２キャラクタの斜め後方であって上方から見た画像となる。
【０１２３】
なお、本実施形態では、第１仮想カメラＡは第１キャラクタ９１ａの真後ろに設定されるため、画像９０ａにおける第１キャラクタ９１ａを半透明で表示する。これにより、プレイヤは、画像９０ａにおいて第１キャラクタ９１ａよりも画面の奥方向に存在する各キャラクタを視認することができる。他の画像９０ｂおよび９０ｄ等においても同様である。なお、第１仮想カメラＡ〜Ｃの位置は、第１キャラクタ９１ａ〜９１ｃの視点に設定されてもよい。
【０１２４】
一方、図９に示すように、端末装置７のＬＣＤ５１には、第２キャラクタ９２の後方からゲーム空間を見たときの画像９０ｅが表示される。画像９０ｅは、第２キャラクタ９２のゲーム空間における位置および向きに応じて設定される第３仮想カメラでゲーム空間を撮像した画像である。第３仮想カメラの位置は、第２キャラクタ９２の後方（ここでは真後ろよりも僅かに右方向にずれた位置）に設定される。また、第３仮想カメラの姿勢（撮像方向）は、第２キャラクタ９２のゲーム空間における向きに基づいて設定される。後述するように、第２キャラクタ９２の向きは、左アナログスティック５３Ａに対する入力、および端末装置７の姿勢に応じて変化する。このため、第３仮想カメラの姿勢は、左アナログスティック５３Ａに対する入力、および端末装置７の姿勢に応じて変化する。
【０１２５】
ゲーム空間の位置は、ゲーム空間に固定された直交座標系（ｘｙｚ座標系）の各軸に関する座標値で表される。ｙ軸はゲーム空間の地面に対して垂直上向きに設定され、ｘ軸およびｚ軸は、ゲーム空間の地面と平行に設定される。第１キャラクタ９１ａ〜９１ｃおよび第２キャラクタ９２は、ゲーム空間の地面（ｘｚ平面）上を向き（ｘｚ平面に平行な向き）を変えながら移動する。第１キャラクタ９１は、所定の規則に従って自動で移動される。また、第２キャラクタ９２は、端末装置７に対する操作に応じて、その向きを変えながらゲーム空間の地面上を移動する。第２キャラクタ９２の位置および向きの制御については、後述する。
【０１２６】
次に、第１キャラクタ９１の移動（向きおよび位置の変化）について説明する。第１キャラクタ９１は、ゲーム空間に予め設定された経路に沿って自動で移動する。図１０は、第１キャラクタ９１ａ〜９１ｃの移動経路を示す図である。図１０では、ゲーム空間を上方から見て簡略表示されている。図１０に示すように、ゲーム空間には、第１キャラクタ９１ａ〜９１ｃ、敵キャラクタ９３ａ、および敵キャラクタ９３ｂが存在する。図１０における下方にはゲームの始点位置が存在し、図１０における上方にはゲームの終点位置が存在するものとする。図１０に示すように、ゲーム空間には、一点鎖線で示される経路９８ａ、９８ｂ、および９８ｃが予め設定される。経路９８ａ〜９８ｃは、実際には画面には表示されない、ゲーム装置３において内部的に設定される各キャラクタの移動経路である。
【０１２７】
具体的には、第１キャラクタ９１ａは基本的に、経路９８ａ上を自動で移動する。また、第１キャラクタ９１ｂは基本的に経路９８ｂ上を自動で移動し、第１キャラクタ９１ｃは基本的に経路９８ｃ上を自動で移動する。ここで、第１キャラクタ９１から所定範囲内に敵キャラクタ９３が存在する場合、当該第１キャラクタ９１は、経路９８から離れて当該所定範囲内に存在する敵キャラクタ９３に近づくように移動する。例えば、図１０に示すように、第１キャラクタ９１ａと敵キャラクタ９３ａとの距離が所定以上の場合、第１キャラクタ９１ａの向きは経路９８ａに沿った方向に設定され、第１キャラクタ９１ａは経路９８ａ上に位置するように第１キャラクタ９１ａの位置が時間経過に応じて変化する（時刻ｔ＝ｔ０）。すなわち、第１キャラクタ９１ａと敵キャラクタ９３ａとの距離が所定以上の場合、第１キャラクタ９１ａは、経路９８ａ上を向きを変化させながら移動する。時刻ｔ＝ｔ０から所定時間が経過して時刻ｔ＝ｔ１となった場合、第１キャラクタ９１ａと敵キャラクタ９３ａ（および９３ｂ）との距離が所定値以下となる。この場合、第１キャラクタ９１ａは、敵キャラクタ９３ａに向かって移動を開始する。すなわち、第１キャラクタ９１ａの向きは、当該第１キャラクタ９１ａの位置から敵キャラクタ９３ａの位置に向かう方向に変化し、第１キャラクタ９１ａは、敵キャラクタ９３ａに向かって移動する。同様に、第１キャラクタ９１ｂも、当該第１キャラクタ９１ｂと敵キャラクタ９３ａとの距離が所定値以下であるため、敵キャラクタ９３ａに向かって移動を開始する。一方、第１キャラクタ９１ｃは、当該第１キャラクタ９１ｃと敵キャラクタ９３ａとの距離が所定値を超えているため、敵キャラクタ９３ａに向かって移動せずに、経路９８ｃ上を移動する。
【０１２８】
図１１は、第１キャラクタ９１ａの移動の詳細を示す図である。図１１に示すように、ゲーム空間には、経路９８ａ上を移動する誘導オブジェクト９４ａが配置される。誘導オブジェクト９４は、各第１キャラクタ９１にそれぞれ設定されるオブジェクトであり、ゲーム装置３において内部的に設定されるオブジェクトである。誘導オブジェクト９４は、実際には画面には表示されない。誘導オブジェクト９４ａは、第１キャラクタ９１ａの移動を制御するためのオブジェクトであり、経路９８ａ上を自動で移動するオブジェクトである。第１キャラクタ９１ａは、周辺に敵キャラクタ９３が存在しない場合、当該誘導オブジェクト９８ａに追従するようにして移動する。具体的には、第１キャラクタ９１ａの向きは、第１キャラクタ９１ａの位置から誘導オブジェクト９４ａの位置に向かう方向に設定され、第１キャラクタ９１ａの位置は、誘導オブジェクト９４ａの位置に向かって変化する。一方、第１キャラクタ９１ａは、周辺に敵キャラクタ９３が存在すると、当該敵キャラクタ９３に近づくように移動する。すなわち、第１キャラクタ９１ａは、周辺に敵キャラクタ９３が存在すると、敵キャラクタ９３に向かって移動する。そして、当該敵キャラクタ９３を倒して周辺に敵キャラクタ９３が存在しなくなると、第１キャラクタ９１ａは再び誘導オブジェクト９４ａに追従するように移動する。具体的には、図１１に示すように、時刻ｔ＝ｔ１において、誘導オブジェクト９４ａは経路９８ａ上に存在し、第１キャラクタ９１ａも経路９８ａ上に存在している。ここで、時刻ｔ＝ｔ１において、第１キャラクタ９１ａと敵キャラクタ９３との距離が所定値以下となった場合、第１キャラクタ９１ａは敵キャラクタ９３に向かって移動を開始する。時刻ｔ＝ｔ１から所定時間が経過して時刻ｔ＝ｔ２になると、第１キャラクタ９１ａは経路９８ａから逸れる。さらに所定時間が経過すると、第１キャラクタ９１ａは、敵キャラクタ９３の近傍に移動し、第１キャラクタ９１ａは敵キャラクタ９３と格闘する。この間、誘導オブジェクト９４ａは、第１キャラクタ９１ａと誘導オブジェクト９４ａとの距離が所定以上離れないように、経路９８ａ上を移動する。第１キャラクタ９１ａと敵キャラクタ９３との格闘が長時間になると、誘導オブジェクト９４ａは停止する。そして、時刻ｔ＝ｔ３において第１キャラクタ９１ａが敵キャラクタ９３を倒すと、第１キャラクタ９１ａの周辺には敵キャラクタ９３が存在しなくなるため、第１キャラクタ９１ａは再び誘導オブジェクト９４ａに追従するようにして（誘導オブジェクト９４ａに向かって）移動を開始する。
【０１２９】
このようにして、各第１キャラクタ９１は、基本的に各誘導オブジェクト９４に追従するようにしてゲーム空間を自動で移動し、所定範囲内に敵キャラクタ９３が存在する場合には、敵キャラクタ９３に向かって移動する。
【０１３０】
図１２は、第１キャラクタ９１ａが複数の敵キャラクタ９３に向かって移動を開始した時点でテレビ２の左上の領域に表示される画像９０ａを示す図である。図１２に示すように、第１キャラクタ９１ａと敵キャラクタ９３との距離が所定値以下となった場合において、敵キャラクタ９３が複数存在する場合、画像９０ａには、選択オブジェクト９９ａが表示される。選択オブジェクト９９ａは、第１キャラクタ９１ａが攻撃する対象となる敵キャラクタ９３ａの頭上に表示される。すなわち、選択オブジェクト９９ａは、第１キャラクタ９１ａの攻撃対象を示すオブジェクトである。第１キャラクタ９１ａは、選択オブジェクト９９ａによって選択された敵キャラクタ９３ａに近づくように自動で（第１プレイヤＡによる方向指示無しで）移動する。なお、第１プレイヤＡがコントローラ５の十字ボタン３２ａを操作すると、選択オブジェクト９９ａの位置が変化して敵キャラクタ９３ｂの頭上に表示される。これにより、第１プレイヤＡは攻撃対象の敵キャラクタ９３を切り替えることができる。
【０１３１】
また、図１０に示すように、第１キャラクタ９１ｂと敵キャラクタ９３との距離が所定値以下である場合、第１キャラクタ９１ｂも敵キャラクタ９３に向かって移動する。図示は省略するが、図１２と同様に、テレビ２の右上の領域に表示される画像９０ｂには、第１キャラクタ９１ｂ、敵キャラクタ９３ａおよび９３ｂに加えて、選択オブジェクト９９ｂが表示される。この場合、画像９０ａにおいても、第１キャラクタ９１ｂの攻撃対象を示す選択オブジェクト９９ｂが表示される。選択オブジェクト９９ｂは、選択オブジェクト９９ａとは異なる表示態様で表示される。例えば、第１キャラクタ９１ａが赤色で表示される場合は、選択オブジェクト９９ａは赤色で表示され、第１キャラクタ９１ｂが青色で表示される場合は、選択オブジェクト９９ｂは青色で表示される。これにより、第１プレイヤＡは、画像９０ａを見ることで、自身が操作する第１キャラクタ９１ａの攻撃対象と、第１プレイヤＢが操作する第１キャラクタ９１ｂの攻撃対象とを知ることができる。すなわち、コントローラ５を操作する各プレイヤは各画像９０ａ〜９０ｃを見ることで、自身の攻撃対象がどの敵キャラクタ９３かを知ると同時に、他のプレイヤの攻撃対象がどの敵キャラクタ９３かを知ることができる。
【０１３２】
なお、第１キャラクタ９１および第２キャラクタ９２による敵キャラクタ９３への攻撃は次のようにして行われる。すなわち、第１キャラクタ９１ａは、剣オブジェクト９５ａを用いて敵キャラクタ９３に対して攻撃を行う。第１プレイヤＡがコントローラ５ａを振ると、第１キャラクタ９１ａは、剣オブジェクト９５ａを振る動作を行う。具体的には、コントローラ５ａの実空間における姿勢の変化と対応して、剣オブジェクト９５ａのゲーム空間における姿勢も変化する。例えば、第１プレイヤＡがコントローラ５ａを左から右に振ると、第１キャラクタ９１ａが剣オブジェクト９５ａを左から右に振る動作が行われる。そして、剣オブジェクト９５ａが振られた場合において、第１キャラクタ９１ａの前方の近距離の範囲（剣オブジェクト９５ａの長さに相当する範囲）に敵キャラクタ９３が存在すると、当該敵キャラクタ９３に剣オブジェクト９５ａが当たって攻撃が成功する。敵キャラクタ９３に対する攻撃が所定回数成功すると、敵キャラクタ９３は倒れる。第１キャラクタ９１ｂおよび９１ｃも同様に、それぞれ剣オブジェクト９５ｂおよび９５ｃを用いて敵キャラクタ９３に対して攻撃を行う。
【０１３３】
一方、第２キャラクタ９２は、矢オブジェクト９７をゲーム空間内に発射させることによって、敵キャラクタ９３に対して攻撃を行う。例えば、第２プレイヤが指で端末装置７の右アナログスティック５３Ｂを所定方向（例えば下方向）にスライドすると、端末装置７のＬＣＤ５１には、円形の照準が表示される。そして、第２プレイヤが右アナログスティック５３Ｂを離すと、右アナログスティック５３Ｂは元の位置に戻る（右アナログスティック５３Ｂが中心の位置まで戻る）。すると、第２キャラクタ９２の位置からＬＣＤ５１に表示された円形の照準の中心に向かって矢オブジェクト９７がゲーム空間内に発射される。このようにして、第２キャラクタ９２は、矢オブジェクト９７を発射させることによってより遠距離の敵キャラクタ９３に対して攻撃することが可能である。なお、図８に示すように、テレビ２には残りの矢オブジェクト９７の数が示される（図８では残りの矢オブジェクト９７の数は４つである）。第２プレイヤが端末装置７に対して所定の操作（例えば、端末装置７の裏面を地面の方向に向ける操作）を行うと、リロードされて残りの矢オブジェクト９７の数が所定数となる。
【０１３４】
なお、敵キャラクタ９３は、プレイヤキャラクタ（第１キャラクタ９１および第２キャラクタ９２）に対して攻撃を行う。複数のプレイヤキャラクタ（ここでは４つのキャラクタ）のうち１つのキャラクタが敵キャラクタ９３からの攻撃を所定回数受けて倒れると、ゲームオーバーとなる。したがって、各プレイヤは他のプレイヤが敵キャラクタ９３に倒されないように協力して敵キャラクタ９３を倒しながらゲームを楽しむ。
【０１３５】
次に、第２キャラクタ９２の位置および向きの制御について説明する。第２キャラクタ９２は、端末装置７の左アナログスティック５３Ａの入力に応じて移動する。図１３は、左アナログスティック５３Ａの入力方向に基づく第２キャラクタ９２の移動および回転を示す図である。図１３において、ＡＹ軸方向は左アナログスティック５３Ａの上方向（図５（ａ）のＹ軸方向）を示し、ＡＸ軸方向は左アナログスティック５３Ａの右方向（図５（ａ）のＸ軸負方向）を示す。具体的には、左アナログスティック５３Ａが上方向にスライドされた場合、第２キャラクタ９２は、前進する（すなわち、図９の画面の奥方向に向かって移動する）。左アナログスティック５３Ａが下方向にスライドされた場合、第２キャラクタ９２は、向きを変えずに後退する（すなわち、図９の画面の奥方向を向きながら画面の手前方向に向かって移動する）。このように、左アナログスティック５３Ａの上方向への入力があった場合は、第２キャラクタ９２は前進し、左アナログスティック５３Ａの下方向への入力があった場合は、第２キャラクタ９２は後退する。
【０１３６】
第２キャラクタ９２の向きは、第１の入力と第２の入力とによって変化する。第１の入力は、左アナログスティック５３Ａを用いた入力である。具体的には、図１３に示すように、左アナログスティック５３Ａが右方向にスライドされた場合、第２キャラクタ９２は、右旋回する。すなわち、左アナログスティック５３Ａが右方向にスライドされた場合、第２キャラクタ９２は、ゲーム空間の上方から見た場合に時計回りに回転する（この場合、第２キャラクタ９２の向きだけ変化し、第２キャラクタ９２の位置は変化しない）。また、左アナログスティック５３Ａが左方向にスライドされた場合、第２キャラクタ９２は、左旋回する。また、左アナログスティック５３Ａが斜め方向にスライドされた場合、第２キャラクタ９２は右または左に旋回しながら移動する。例えば、左アナログスティック５３Ａが右斜め上方向にスライドされた場合、第２キャラクタ９２は、右旋回しながら前進する。
【０１３７】
第２の入力は、端末装置７の実空間における姿勢を変化させることによって行われる。すなわち、第２キャラクタ９２の向きは、端末装置７の姿勢の変化に応じて変化する。図１４は、端末装置７を実空間の上方から見た図であり、実空間における端末装置７の姿勢の変化を示す図である。図１４に示すように、端末装置７をＹ軸回りに回転させると（図６に示す姿勢から重力方向の軸回りに回転させると）、その回転量に応じてゲーム空間内の第２キャラクタ９２の向きが変化する。例えば、端末装置７を実空間の上方から見たときに時計回りに所定の角度だけ回転させると、第２キャラクタ９２もゲーム空間の上方から見たときに時計回りに当該所定の角度だけ回転する。例えば、第２プレイヤが、端末装置７の裏面（ＬＣＤ５１が設けられた面の裏側の面）を右方向に向けると、第２キャラクタ９２は右方向を向く。なお、例えば、端末装置７の裏面を上方向に向けると（端末装置７をＸ軸周りに回転させると）、第２キャラクタ９２の向きは変化しない。すなわち、第２キャラクタ９２の向きはゲーム空間の地面（ｘｚ平面）に平行に設定されるため、端末装置７の裏面を上方向に向けても第２キャラクタ９２はゲーム空間の上方向を向かない。他の実施形態では、第２キャラクタ９２の向きをゲーム空間の上下方向（ｙ軸に平行な方向）に変化させてもよい。
【０１３８】
以上のように、第２キャラクタ９２は、左アナログスティック５３Ａの上下方向の入力（上下方向へのスライド操作）に応じて移動する。また、左アナログスティック５３Ａの左右方向の入力および端末装置７に対する姿勢の変化に応じて、第２キャラクタの向きが変化する。
【０１３９】
なお、第２仮想カメラおよび第３仮想カメラの姿勢は、第２キャラクタ９２の向きの変化に応じて変化する。具体的には、第２仮想カメラの撮像方向ベクトルは、第２キャラクタ９２の向き（前方向ベクトル）に対して固定の角度を有するように設定される。これにより、テレビ２には、第２キャラクタ９２の右斜め後方の上方の位置から当該第２キャラクタ９２を含むゲーム空間を撮像した画像９０ｄが表示される。また、第３仮想カメラの撮像方向ベクトルのｘｚ平面における向き（当該撮像方向ベクトルをゲーム空間のｘｚ平面に投影したベクトルの向き）は、第２キャラクタ９２の向きと一致するように設定される。なお、第３仮想カメラの撮像方向ベクトルの上下方向（ｙ軸に平行な方向）における向きは、端末装置７の姿勢に応じて設定される。例えば、端末装置７の裏面を実空間の上方に向けると、第３仮想カメラの撮像方向ベクトルもゲーム空間の上方を向くように設定される。このため、第２プレイヤが端末装置７を図１４に示すように右回りに回転させると、第３仮想カメラも右回りに回転し、結果として端末装置７のＬＣＤ５１には、回転前の右側のゲーム空間を撮像した画像が表示される。また、第２プレイヤが端末装置７の裏面を実空間の上方に向けると、端末装置７のＬＣＤ５１にはゲーム空間の上方の領域を撮像した画像が表示される。
【０１４０】
ここで、図１５に示すように、第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合、第２プレイヤは敵キャラクタ９３を攻撃しようとして第２キャラクタ９２を後方に振り向かせようとする。図１５は、第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合のテレビ２の右下領域に表示される画像９０ｄを示す図である。第２プレイヤは第２キャラクタ９２を後方に振り向かせようとして、テレビ２の画面または端末装置７の画面を見ながら端末装置７の左アナログスティック５３Ａを操作する。このとき、テレビ２の画面において敵キャラクタ９３が第２キャラクタ９２の下方に表示されるため、第２プレイヤは左アナログスティック５３Ａを下方向にスライドさせてしまう。上述のように、左アナログスティック５３Ａの入力が下方向である場合、第２キャラクタ９２は、後退してしまう（第２キャラクタ９２の向きは変わらず位置のみが後方に移動する）。あるいは、第２プレイヤは第２キャラクタ９２を後方に振り向かせる場合、端末装置７を大きく回転（Ｙ軸回りに回転）させることになる。このように、第２キャラクタ９２を後方に振り向かせる場合は、操作の難易度が高くなることがある。
【０１４１】
このため、本実施形態においては、第２キャラクタ９２の後方に敵キャラクタ９３が存在する場合、敵キャラクタ９３に向きやすくするために、次に示す２つの処理（第１の処理および第２の処理）が行われる。すなわち、第１の処理では、第２キャラクタ９２の後方に敵キャラクタ９３が存在する場合において、左アナログスティック５３Ａの下方向への入力があったとき、第２キャラクタ９２を旋回させる。具体的には、第２キャラクタ９２に対する敵キャラクタ９３の後ろ方向度合ＢＲを算出し、当該後ろ方向度合ＢＲに基づいて、第２キャラクタ９２を旋回させる。ここで、「後ろ方向度合ＢＲ」は、敵キャラクタ９３がどの程度第２キャラクタ９２の後ろ方向に存在するかを示す値であり、第２キャラクタ９２と敵キャラクタ９３との角度に応じて変化する値である。具体的には、後ろ方向度合ＢＲは、敵キャラクタ９３が第２キャラクタ９２の後方に存在するほど大きくなる。例えば、第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合（第２キャラクタ９２の正面を０度として１８０度の方向に敵キャラクタ９３が存在する場合）、後ろ方向度合ＢＲは１となる。また、第２キャラクタ９２の右または左に敵キャラクタ９３が存在する場合（第２キャラクタ９２の正面を０度として９０度または−９０度の方向に敵キャラクタ９３が存在する場合）、後ろ方向度合ＢＲは０となる。敵キャラクタ９３が９０度から１８０度（−９０度から−１８０度）の方向に存在する場合は、後ろ方向度合ＢＲは０から１の間の値となる。詳細は後述するが、後ろ方向度合ＢＲが大きいほど、第２キャラクタの旋回量（回転量）が大きくなる。
【０１４２】
また、第２の処理では、第２キャラクタ９２の後方に敵キャラクタ９３が存在する場合において、敵キャラクタ９３に近づく方向に端末装置７を回転させるときは、端末装置７の実際の回転量よりも大きな回転量で第２キャラクタ９２を回転させる。例えば、第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合は、第２キャラクタ９２は、端末装置７のＹ軸回りの回転量の１．５倍の回転量で回転してもよい。例えば、第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合において、端末装置７を右方向に１８０度よりも小さい角度（例えば１２０度）で回転させると、第２キャラクタ９２は敵キャラクタ９３を向く。その後、さらに端末装置７を右方向に所定の角度（例えば、３０度）だけ回転させると、第２キャラクタ９２は敵キャラクタ９３から遠ざかる方向に回転するため、第２キャラクタ９２は当該所定の角度（例えば、３０度）だけ回転する。
【０１４３】
以上のように、本実施形態では、第２キャラクタ９２の後方に敵キャラクタ９３が存在する場合、第２キャラクタ９２が敵キャラクタ９３に向きやすくする処理が行われる。
【０１４４】
［６．ゲーム処理の詳細］
次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図１６は、ゲーム処理において用いられる各種データを示す図である。図１６において、ゲーム装置３のメインメモリ（外部メインメモリ１２または内部メインメモリ１１ｅ）に記憶される主なデータが示されている。図１６に示すように、ゲーム装置３のメインメモリには、ゲームプログラム１００、コントローラ操作データ１１０、端末操作データ１２０、および処理用データ１３０が記憶される。なお、メインメモリには、図１６に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
【０１４５】
ゲームプログラム１００は、ゲーム装置３に電源が投入された後の適宜のタイミングで光ディスク４からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム１００は、光ディスク４に代えて、フラッシュメモリ１７やゲーム装置３の外部装置から（例えばインターネットを介して）取得されてもよい。また、ゲームプログラム１００に含まれる一部（例えば、コントローラ５および／または端末装置７の姿勢を算出するためのプログラム）については、ゲーム装置３内に予め記憶されていてもよい。
【０１４６】
コントローラ操作データ１１０は、コントローラ５において行われた操作を表すデータであり、コントローラ５において行われた操作に基づいてコントローラ５から出力（送信）される。コントローラ操作データ１１０は、コントローラ５から送信されてゲーム装置３において取得され、メインメモリに記憶される。コントローラ操作データ１１０は、角速度データ１１１、操作ボタンデータ１１２、および加速度データ１１３を含む。なお、ゲーム装置３は、複数のコントローラ５（具体的には、コントローラ５ａ〜５ｃ）から操作データを取得するため、各コントローラ５からそれぞれ送信されてくる各コントローラ操作データ１１０をメインメモリにそれぞれ記憶する。最新の（最後に取得された）データから所定個数のコントローラ操作データ１１０が、コントローラ５毎に、時系列に記憶されてもよい。
【０１４７】
角速度データ１１１は、コントローラ５におけるジャイロセンサ４８によって検出された角速度を表すデータである。ここでは、角速度データ１１１は、コントローラ５に固定のＸ１Ｙ１Ｚ１座標系（図３参照）の各軸回りの角速度をそれぞれ表す。このように、本実施形態においては、コントローラ５がジャイロセンサ４８を備え、コントローラ操作データ１０１には、コントローラ５の姿勢を算出するための物理量として上記角速度データ１１１が含まれる。したがって、ゲーム装置３は、コントローラ５の姿勢を角速度に基づいて正確に算出することができる。具体的には、ゲーム装置３は、ジャイロセンサ４８によって検出されたＸ１軸、Ｙ１軸、Ｚ１軸周りの角速度をそれぞれ時間で積分することによって、コントローラ５の姿勢（初期的な姿勢からのＸ１Ｙ１Ｚ１座標系の各軸周りの回転角）を算出することができる。
【０１４８】
操作ボタンデータ１１２は、コントローラ５に設けられた各操作ボタン３２ａ〜３２ｉに対する入力状態を表すデータである。具体的には、操作ボタンデータ１１２は、各操作ボタン３２ａ〜３２ｉが押下されているか否かを表す。
【０１４９】
加速度データ１１３は、コントローラ５の加速度センサ３７によって検出された加速度を表すデータである。ここでは、加速度データ１１３は、コントローラ５に固定のＸ１Ｙ１Ｚ１座標系の各軸周りの加速度をそれぞれ表す。
【０１５０】
端末操作データ１２０は、端末装置７において行われた操作を表すデータであり、端末装置７において行われた操作に基づいて端末装置７から出力（送信）される。端末操作データ１２０は、端末装置７から送信されてゲーム装置３において取得され、メインメモリに記憶される。端末操作データ１２０は、角速度データ１２１、左スティックデータ１２２、右スティックデータ１２３、および加速度データ１２４を含む。なお、端末操作データ１２０は、これらのデータの他、各ボタンの操作データ、端末装置７の磁気センサ６２によって検出された方位を示す方位データデータ等を含む。
【０１５１】
角速度データ１２１は、端末装置７におけるジャイロセンサ７４によって検出された角速度を表すデータである。ここでは、角速度データ１２１は、端末装置７に固定のＸＹＺ座標系（図５参照）の各軸回りの角速度をそれぞれ表す。
【０１５２】
左スティックデータ１２２は、左アナログスティック５３Ａの入力情報を示すデータである。具体的には、左スティックデータ１２２は、左アナログスティック５３Ａに対して行われた入力方向を示す２次元の入力ベクトル（ＩｎＸ，ＩｎＹ）によって表される。ＩｎＸは、図１３に示すＡＸ軸の値であり、ＩｎＹはＡＹ軸の値である。ここで、ＩｎＸおよびＩｎＹは−１〜１までの間の値をとり、入力ベクトルの長さの最大値は１である。例えば、左アナログスティック５３Ａの上方向が入力された場合、入力ベクトルは（０，１）となり、下方向が入力された場合、入力ベクトルは（０，−１）となる。また、左アナログスティック５３Ａの右方向が入力された場合、入力ベクトルは（１，０）となり、左方向が入力された場合、入力ベクトルは（−１，０）となる。ＣＰＵ１０は、端末装置７から送信された操作データに含まれる左アナログスティック５３Ａの操作情報に基づいて、入力ベクトル（ＩｎＸ，ＩｎＹ）を算出し、メインメモリに左スティックデータ１２２として保存する。
【０１５３】
右スティックデータ１２３は、右アナログスティック５３Ｂの入力情報を示すデータである。右スティックデータ１２３は、左スティックデータ１２２と同様に、２次元のベクトルによって表される。
【０１５４】
処理用データ１３０は、後述するゲーム処理（図１７）において用いられるデータである。処理用データ１３０は、第１キャラクタデータ１３１、第２キャラクタデータ１３２、敵キャラクタデータ１３３、端末姿勢データ１３４、第１仮想カメラデータ１３５、第２仮想カメラデータ１３６、および、第３仮想カメラデータ１３７を含む。なお、図１６に示すデータの他、処理用データ１３０は、コントローラ５の姿勢を示すデータ、ゲームに登場する各種オブジェクトに設定される各種パラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。
【０１５５】
第１キャラクタデータ１３１は、第１キャラクタ９１に関する様々な情報を示すデータであり、第１キャラクタ９１ａ〜９１ｃのそれぞれのゲーム空間における位置および向き（姿勢）を表すデータを含む。また、第１キャラクタデータ１３１には、各第１キャラクタの生命力を示すデータ、剣オブジェクト９１ａ〜９１ｃの姿勢を示すデータ、第１各キャラクタに対応する誘導オブジェクト９４ａ〜９４ｃの位置を示すデータ、および、各第１キャラクタの攻撃対象を示すデータが含まれる。
【０１５６】
第２キャラクタデータ１３２は、第２キャラクタ９２に関する様々な情報を示すデータであり、第２キャラクタ９２のゲーム空間における位置および向き（姿勢）を表すデータを含む。また、第２キャラクタデータ１３２には、矢オブジェクト９７の残りの数を示すデータ、第２キャラクタ９２の生命力を示すデータ等が含まれる。
【０１５７】
敵キャラクタデータ１３３は、各敵キャラクタ９３に関する様々な情報を示すデータであり、各敵キャラクタ９３のゲーム空間における位置および向きを示すデータを含む。また、敵キャラクタデータ１３３には、各敵キャラクタ９３の生命力を示すデータ等が含まれる。
【０１５８】
端末姿勢データ１３４は、端末装置７の姿勢を表すデータである。端末装置７の姿勢は、例えば、基本的な姿勢（例えば図６に示す姿勢）から現在の姿勢への回転を表す回転行列によって表現されてもよいし、ＸＹＺ各軸回りの回転角度によって表現されてもよい。端末姿勢データ１３４は、端末装置７からの端末操作データ１２０に含まれる角速度データ１２１に基づいて算出される。具体的には、端末姿勢データ１３４は、ジャイロセンサ７４によって検出されたＸ軸、Ｙ軸、Ｚ軸周りの角速度をそれぞれ時間で積分することによって算出される。
【０１５９】
第１仮想カメラデータ１３５は、第１キャラクタ９１ａ〜９１ｃの背後にそれぞれ設定（固定）される第１仮想カメラＡ〜第１仮想カメラＣのゲーム空間における位置および姿勢を示すデータである。上述のように、第１仮想カメラＡは、第１キャラクタ９１ａの背後に設定され、当該仮想カメラの撮像方向は第１キャラクタ９１ａの向きに設定される。また、第１仮想カメラＢは、第１キャラクタ９１ｂの背後に設定され、当該仮想カメラの撮像方向は第１キャラクタ９１ｂの向きに設定される。第１仮想カメラＣは、第１キャラクタ９１ｃの背後に設定され、当該仮想カメラの撮像方向は第１キャラクタ９１ｃの向きに設定される。
【０１６０】
第２仮想カメラデータ１３６は、第２キャラクタ９２の右斜め後方に設定（固定）される第２仮想カメラのゲーム空間における位置および姿勢を示すデータである。
【０１６１】
第３仮想カメラデータ１３７は、第２キャラクタ９２の背後に設定（固定）される第３仮想カメラのゲーム空間における位置および姿勢を示すデータである。
【０１６２】
（フローチャートの説明）
次に、ゲーム装置３において実行されるゲーム処理の詳細を、図１７〜図２１を用いて説明する。図１７は、ゲーム装置３において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ１０は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。図１７のフローチャートに示す処理は、以上の処理が完了した後に行われる。なお、ゲーム装置３においては、電源投入後にゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後例えばユーザによるメニュー画面に対する選択操作によってゲームの開始が指示されたことに応じてゲームプログラムが実行される構成であってもよい。
【０１６３】
なお、図１７〜図２１に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数や定数の値等も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ１０が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、ＣＰＵ１０以外のプロセッサや専用回路が実行するようにしてもよい。
【０１６４】
まず、ステップＳ１において、ＣＰＵ１０は初期処理を実行する。初期処理は、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクト（第１、第２キャラクタや敵キャラクタ、各仮想カメラ、その他ゲーム空間に配置されるオブジェクト等）を初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。例えば、ＣＰＵ１０は、第２キャラクタデータ１３２に含まれる第２キャラクタ９２の向きを示す前方向ベクトルを初期化したり、左アナログスティック５３Ａによる回転角や端末装置７の姿勢による回転角を初期化したりする。また、ＣＰＵ１０は、後ろ方向度合ＢＲ（詳細は後述する）を初期化する。ＣＰＵ１０は、ステップＳ１の処理の後、ステップＳ２の処理を実行する。以降、ステップＳ２〜Ｓ９の一連の処理からなる処理ループが所定時間（１フレーム時間。例えば１／６０秒）に１回の割合で繰り返し実行される。
【０１６５】
ステップＳ２において、ＣＰＵ１０は、端末装置７および３つのコントローラ５から送信されてメインメモリに記憶された操作データをそれぞれ取得する。端末装置７および各コントローラ５は操作データ（端末操作データおよびコントローラ操作データ）をゲーム装置３へ繰り返し送信する。ゲーム装置３においては、端末通信モジュール２８が端末操作データを逐次受信し、受信された端末操作データが入出力プロセッサ１１ａによってメインメモリに逐次記憶される。また、コントローラ通信モジュール１９が各コントローラ操作データを逐次受信し、受信された各コントローラ操作データが入出力プロセッサ１１ａによってメインメモリに逐次記憶される。コントローラ５とゲーム装置３との間における送受信の間隔、および、端末装置７とゲーム装置３との間における送受信の間隔はゲームの処理時間（上記１フレーム時間）よりも短い方が好ましく、例えば２００分の１秒である。ステップＳ２においては、ＣＰＵ１０は、最新のコントローラ操作データ１１０および最新の端末操作データ１２０をメインメモリから読み出す。ステップＳ２の処理の後、ステップＳ３の処理が実行される。
【０１６６】
ステップＳ３において、ＣＰＵ１０は回転処理を実行する。回転処理は、端末装置７によって操作される第２キャラクタ９２をゲーム空間内で回転させる処理である。以下、図１８を参照して、回転処理の詳細について説明する。
【０１６７】
図１８は、図１７に示す回転処理（ステップＳ３）の詳細な流れを示すフローチャートである。
【０１６８】
ステップＳ１１において、ＣＰＵ１０は、第２キャラクタ９２からの距離が所定値以下であり、かつ、第２キャラクタ９２からの距離が最小となる敵キャラクタ９３を選択する。具体的には、ＣＰＵ１０は、第２キャラクタデータ１３２および敵キャラクタデータ１３３を参照して、第２キャラクタ９２と各敵キャラクタ９３との距離を算出する。そして、ＣＰＵ１０は、第２キャラクタ９２からの距離が所定値以下であり、かつ、第２キャラクタ９２との距離が最小である敵キャラクタ９３を選択する。なお、第２キャラクタ９２との距離が最小である敵キャラクタ９３であっても、当該距離が所定値を超える場合は、ＣＰＵ１０は、敵キャラクタ９３を選択しない。ＣＰＵ１０は、次にステップＳ１２の処理を実行する。
【０１６９】
ステップＳ１２において、ＣＰＵ１０は、敵キャラクタ９３が選択されたか否かを判定する。判定結果が肯定の場合（すなわち、ステップＳ１１で敵キャラクタ９３が選択された場合）、ＣＰＵ１０は、次にステップＳ１３の処理を実行する。一方、判定結果が否定の場合、ＣＰＵ１０は、次にステップＳ１４の処理を実行する。
【０１７０】
ステップＳ１３において、ＣＰＵ１０は、後ろ方向度合ＢＲを算出する。後ろ方向度合ＢＲは、第２キャラクタ９２と敵キャラクタ９３との角度に応じて変化する値である。図２２は、ゲーム空間の上方から第２キャラクタ９２と敵キャラクタ９３とを見た図であり、第２キャラクタ９２と敵キャラクタ９３との角度を示す図である。具体的には、ＣＰＵ１０は、第２キャラクタ９２の向きを示すベクトル（前方向ベクトル）と、第２キャラクタ９２から敵キャラクタ９３に向かうベクトルとの角度ＤＥＧを算出する。そして、ＣＰＵ１０は、第２キャラクタ９２と敵キャラクタ９３との角度ＤＥＧの絶対値が９０度より大きければ、以下の式（１）により、後ろ方向度合ＢＲを算出する。
後ろ方向度合ＢＲ＝（ＤＥＧの絶対値−９０）／９０      （１）
なお、ＣＰＵ１０は、角度ＤＥＧの絶対値が９０度以下である場合、後ろ方向度合ＢＲに０を設定する。すなわち、後ろ方向度合ＢＲは、敵キャラクタ９３が第２キャラクタ９２の真後ろ（１８０度）に存在する場合は１となり、敵キャラクタ９３が第２キャラクタ９２の左右方向よりも前方側に存在する場合は０となる。ＣＰＵ１０は、算出した後ろ方向度合ＢＲをメインメモリに記憶して、次にステップＳ１５の処理を実行する。
【０１７１】
一方、ステップＳ１４において、ＣＰＵ１０は、第２キャラクタ９２の周辺（所定範囲内）に敵キャラクタ９３が存在しないため、後ろ方向度合ＢＲに０を設定する。ＣＰＵ１０は、次にステップＳ１５の処理を実行する。
【０１７２】
ステップＳ１５において、ＣＰＵ１０は、スティックによる回転角算出処理を実行する。ステップＳ１５では、ＣＰＵ１０は、左アナログスティック５３Ａを用いた入力（上記第１の入力）に基づく第２キャラクタ９２の回転角を算出する。以下、図１９を参照して、スティックによる回転角算出処理の詳細について説明する。
【０１７３】
図１９は、図１８に示すスティックによる回転角算出処理（ステップＳ１５）の詳細な流れを示すフローチャートである。
【０１７４】
ステップＳ２１において、ＣＰＵ１０は、メインメモリを参照して、左アナログスティック５３Ａの入力を示す入力ベクトル（ＩｎＸ，ＩｎＹ）（左スティックデータ１２２）を取得する。次に、ＣＰＵ１０は、ステップＳ２２の処理を実行する。
【０１７５】
ステップＳ２２において、ＣＰＵ１０は、入力ベクトルの角度Ｄｉおよび長さＬｅｎを算出する。入力ベクトルの角度Ｄｉは、左アナログスティック５３Ａの上方向を基準とした入力ベクトルの角度である。具体的には、ＣＰＵ１０は、以下の式（２）に基づいて、角度Ｄｉを算出する。
Ｄｉ＝ａｒｃｃｏｓ（ＩｎＹ／Ｌｅｎ）      （２）
ただし、ＣＰＵ１０は、ＩｎＸが負である場合、上記式（２）で算出したＤｉに−１をかけた値を角度Ｄｉとしてメインメモリに記憶する。また、Ｌｅｎが０である場合には、Ｄｉ＝０とする。次に、ＣＰＵ１０は、ステップＳ２３の処理を実行する。
【０１７６】
ステップＳ２３において、ＣＰＵ１０は、入力ベクトルの角度Ｄｉおよび長さＬｅｎに基づいて、値Ｘを算出する。具体的には、ＣＰＵ１０は、以下の式（３）に基づいて、値Ｘを算出する。
Ｘ＝（Ｄｉ／９０）×Ｌｅｎ      （３）
ここで、Ｘ＞１の場合、ＣＰＵ１０はＸに１を設定し、Ｘ＜−１の場合、Ｘに−１を設定してメインメモリに当該Ｘを記憶する。次に、ＣＰＵ１０は、ステップＳ２４の処理を実行する。
【０１７７】
ステップＳ２４において、ＣＰＵ１０は、後ろ方向度合ＢＲに応じて、値ＯｕｔＸを算出する。具体的には、ＣＰＵ１０は、以下の式（４）に基づいて、値ＯｕｔＸを算出する。
ＯｕｔＸ＝ＩｎＸ＋（Ｘ−ＩｎＸ）×ＢＲ      （４）
【０１７８】
ここで、ＯｕｔＸは、左アナログスティック５３Ａの入力に基づく第２キャラクタ９２の回転角を表す値である。具体的には、ＯｕｔＸは、左アナログスティック５３Ａの入力方向を示す入力ベクトルの横方向の値ＩｎＸを、第２キャラクタ９２と敵キャラクタ９３との相対的な位置関係に基づいて調整したものであるといえる。例えば、後ろ方向度合ＢＲが０の場合（つまり、敵キャラクタ９３が第２キャラクタ９２の真横よりも前方側に存在する場合）、ＯｕｔＸ＝ＩｎＸとなる。すなわち、敵キャラクタ９３が第２キャラクタ９２の前方側に存在する場合は、左アナログスティック５３Ａの横方向の入力をそのまま用いて、第２キャラクタ９２を旋回させる。また、後ろ方向度合ＢＲが１の場合（つまり、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合）、ＯｕｔＸ＝Ｘとなる。すなわち、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合は、入力ベクトルのＩｎＸを用いずに（上記式（３）で算出された）値Ｘを用いて、第２キャラクタ９２を制御する。具体的には、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合において、左アナログスティック５３Ａの下方向が入力された場合、ＩｎＸ＝０，ＩｎＹ＝−１となり、上記式（２）により、角度Ｄｉ＝１８０となる。そして、角度Ｄｉ＝１８０を上記式（３）に代入すると、Ｘ＝１となる（上記式（３）によりＸ＝２となるが、この場合は、Ｘ＝１に設定される）。つまり、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合において、左アナログスティック５３Ａの下方向が入力された場合、横方向の入力があったものとして第２キャラクタ９２が制御される。
【０１７９】
また、例えば、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合において、左アナログスティック５３Ａの右斜め下方向が入力された場合、上記式（３）によりＸ＞ＩｎＸであるため、ＯｕｔＸ＞ＩｎＸとなる。すなわち、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合、実際の左アナログスティック５３Ａの入力に応じた回転角よりも大きな回転角で、第２キャラクタ９２は旋回することになる。さらに、後ろ方向度合ＢＲは、第２キャラクタ９２と敵キャラクタ９３との角度が１８０度に近いほど大きくなるため、敵キャラクタ９３が第２キャラクタ９２の真後ろに近いほど、ＯｕｔＸは大きくなる。したがって、敵キャラクタ９３が第２キャラクタ９２の真後ろに近いほど、第２キャラクタ９２が回転する角度は大きくなる。
【０１８０】
なお、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合において、左アナログスティック５３Ａの右斜め上方向が入力された場合、上記式（４）により、ＯｕｔＸ＝Ｘとなる。ここで、例えば、入力ベクトルの角度Ｄｉ＝３０度であって、長さＬｅｎ＝１である場合、ＩｎＸ＝１／２である。一方、角度Ｄｉ＝３０度であって、長さＬｅｎ＝１である場合、上記式（３）により、Ｘ＝１／３となる。すなわち、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合において、左アナログスティック５３Ａの右斜め上方向が入力された場合、ＯｕｔＸの値は、ＩｎＸの値よりも小さな値となることがある。このことは、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合において、第２プレイヤが左アナログスティック５３Ａの右斜め上方向を入力すると、第２キャラクタ９２は右方向への旋回が弱められることを意味する。すなわち、この場合、第２キャラクタ９２は、実際の入力よりも右方向への回転角が小さくなり、前方へ移動しやすくなる。敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合において、左アナログスティック５３Ａの上方向が入力された場合は、第２プレイヤは敵キャラクタ９３から逃げようと意図して操作していると考えられる。したがって、この場合、第２キャラクタ９２が前方へ移動しやすくすることにより、第２プレイヤの意図した通りに第２キャラクタ９２を移動させることができる。
【０１８１】
このように、実際の左アナログスティック５３Ａの入力値ＩｎＸが、第２キャラクタ９２と敵キャラクタ９３との相対的な位置関係に基づいて調整されて、ＯｕｔＸが算出される。ステップＳ２４の処理の後、ＣＰＵ１０は、ステップＳ２５の処理を実行する。
【０１８２】
ステップＳ２５において、ＣＰＵ１０は、左アナログスティック５３Ａによる回転角ｄｅｇＳを算出する。具体的には、ＣＰＵ１０は、以下の式（５）に基づいて、回転角ｄｅｇＳを算出する。
ｄｅｇＳ＝−ＯｕｔＸ×定数Ｓ      （５）
ここで、定数Ｓは予め定められた値であり、左アナログスティック５３Ａに対する操作によって回転する第２キャラクタ９２の回転速度に関係する値である。なお、後述するジャイロセンサによる回転角算出処理において算出される回転方向と合わせるため、式（５）においてＯｕｔＸの符号が反転されている。ステップＳ２５の処理の後、ＣＰＵ１０は、図１９に示すスティックによる回転角算出処理を終了する。
【０１８３】
図１８に戻り、ＣＰＵ１０は、次にステップＳ１６の処理を実行する。ステップＳ１６のジャイロセンサによる回転角算出処理では、ＣＰＵ１０は、端末装置７の姿勢を変化させることによる入力（上記第２の入力）に基づく第２キャラクタ９２の回転角を算出する。以下、図２０を参照して、ジャイロセンサによる回転角算出処理の詳細について説明する。
【０１８４】
図２０は、図１８に示すジャイロセンサによる回転角算出処理（ステップＳ１６）の詳細な流れを示すフローチャートである。
【０１８５】
ステップＳ３１において、ＣＰＵ１０は、メインメモリの角速度データ１２１を参照して、端末装置７が備えるジャイロセンサ７４の検出値（ＸＹＺ各軸周りの角速度を示す値）を取得する。次に、ＣＰＵ１０は、ステップＳ３２の処理を実行する。
【０１８６】
ステップＳ３２において、ＣＰＵ１０は、端末装置７の姿勢を算出する。具体的には、ＣＰＵ１０は、ステップＳ３１で取得した検出値に基づいて、端末装置７の姿勢を算出（取得）する。ＣＰＵ１０は、ジャイロセンサ７４が検出したＸ軸周り、Ｙ軸周り、Ｚ軸周りの角速度をそれぞれ時間で積分することによって、初期的な姿勢からのＸ軸、Ｙ軸、Ｚ軸周りの回転角をそれぞれ算出することができる。ＣＰＵ１０は、算出した端末装置７の姿勢を示すデータを端末姿勢データ１３４としてメインメモリに記憶する。なお、ステップＳ３２において、ＣＰＵ１０は、加速度データ１２４（端末装置７の加速度センサ７３によって検出された加速度）に基づいて、端末装置７の姿勢を補正してもよい。次に、ＣＰＵ１０は、ステップＳ３３の処理を実行する。
【０１８７】
ステップＳ３３において、ＣＰＵ１０は、前回のフレームで算出した端末装置７の姿勢（前回の処理ループにおけるステップＳ３２で算出した姿勢）と、今回のフレームで算出した端末装置７の姿勢とに基づいて、１フレームの間のヨー方向（Ｙ軸周り）の回転角ｄｅｇＧを算出する。次に、ＣＰＵ１０は、ステップＳ３４の処理を実行する。
【０１８８】
ステップＳ３４において、ＣＰＵ１０は、回転角ｄｅｇＧが示す回転方向が第２キャラクタ９２が敵キャラクタ９３を向く方向か否かを判定する。ここでは、ＣＰＵ１０は、ステップＳ３３で算出した回転角ｄｅｇＧだけ第２キャラクタ９２を回転させた場合に、第２キャラクタ９２が敵キャラクタ９３を向く方向に回転するか否かを判定する。例えば、ＣＰＵ１０は、第２キャラクタ９２と敵キャラクタ９３との角度が１５０度の場合において、ステップＳ３３で算出した回転角ｄｅｇＧが１０度の場合（時計回りに１０度回転の場合）、回転角ｄｅｇＧが示す回転方向が第２キャラクタ９２が敵キャラクタ９３を向く方向であると判定する。一方、例えば、ＣＰＵ１０は、第２キャラクタ９２と敵キャラクタ９３との角度が１５０度の場合において、ステップＳ３３で算出した回転角ｄｅｇＧが−１０度の場合（反時計回りに１０度回転の場合）、回転角ｄｅｇＧが示す回転方向が第２キャラクタ９２が敵キャラクタ９３を向く方向であると判定しない。判定結果が肯定の場合、ＣＰＵ１０は、次にステップＳ３５の処理を実行する。判定結果が否定の場合、ＣＰＵ１０は、図２０に示すジャイロセンサによる回転角算出処理を終了する。
【０１８９】
ステップＳ３５において、ＣＰＵ１０は、回転角ｄｅｇＧが増加するように当該ｄｅｇＧを補正する。具体的には、ＣＰＵ１０は、次に示す式（６）に基づいて、回転角ｄｅｇＧを補正する。
ｄｅｇＧ＝ｄｅｇＧ×（１＋ＢＲ×定数Ｇ）      （６）
ここで、定数Ｇは予め定められた正の値であり、端末装置７の姿勢の変化によって回転する第２キャラクタ９２の回転速度に関係する値である。式（６）から明らかなように、後ろ方向度合ＢＲが大きいほど、補正後の回転角ｄｅｇＧは大きくなる。
【０１９０】
このように、端末装置７を回転させることによって第２キャラクタ９２が敵キャラクタ９３を向く方向に第２キャラクタ９２が回転される場合、実際の端末装置７の回転量よりも回転角ｄｅｇＧは大きくなる。このため、端末装置７の実際の回転量よりも大きく第２キャラクタ９２がゲーム空間内で回転する。これにより、第２キャラクタ９２が敵キャラクタ９３を向くようにしてプレイヤが端末装置７を回転させる場合、プレイヤは大きく端末装置７を回転させなくても、第２キャラクタ９２を敵キャラクタ９３に向かせることができる。例えば、敵キャラクタ９３が第２キャラクタ９２の真後ろに存在する場合は、端末装置７を少し回転させるだけで、第２キャラクタ９２を大きく回転させることができる。ステップＳ３５の処理の後、ＣＰＵ１０は、図２０に示すジャイロセンサによる回転角算出処理を終了する。
【０１９１】
図１８に戻り、ＣＰＵ１０は、次にステップＳ１７の処理を実行する。ステップＳ１７において、ＣＰＵ１０は、上記ステップＳ１５で算出したスティックによる回転角ｄｅｇＳと、ステップＳ１６で算出したジャイロセンサによる回転角ｄｅｇＧとに基づいて、第２キャラクタ９２を回転させる。具体的には、ＣＰＵ１０は、回転角ｄｅｇＳに回転角ｄｅｇＧを加えた角度を算出し、当該算出した角度で第２キャラクタ９２の前方向ベクトルをゲーム空間のｙ軸（地面から垂直上方に向かう軸）周りに回転させる。ＣＰＵ１０は、ステップＳ１７の処理の後、図１８に示す回転処理を終了する。
【０１９２】
図１７に戻り、ＣＰＵ１０は、次にステップＳ４の処理を実行する。ステップＳ４において、ＣＰＵ１０は、移動処理を実行する。当該移動処理において、第２キャラクタ９２および第１キャラクタ９１はゲーム空間内で移動される。以下、図２１を参照して、移動処理の詳細について説明する。
【０１９３】
図２１は、図１７に示す移動処理（ステップＳ４）の詳細な流れを示すフローチャートである。
【０１９４】
ステップＳ４１において、ＣＰＵ１０は、第２キャラクタ９２の移動方向が前方向か否かを判定する。具体的には、ＣＰＵ１０は、入力ベクトルの値ＩｎＹが０以上か否かを判定する。判定結果が否定の場合、ＣＰＵ１０は、次にステップＳ４２の処理を実行する。一方、判定結果が肯定の場合、ＣＰＵ１０は、次にステップＳ４３の処理を実行する。
【０１９５】
ステップＳ４２において、ＣＰＵ１０は、後ろ方向度合ＢＲとスティックの入力ベクトルの値ＩｎＹとに基づいて、第２キャラクタ９２の移動量を算出する。具体的には、ＣＰＵ１０は、後ろ方向度合ＢＲが小さいほど大きくなるように、第２キャラクタ９２の移動量を算出する。より具体的には、後ろ方向度合ＢＲが１の場合、第２キャラクタ９２の移動量は０になる。後ろ方向度合ＢＲが０の場合、第２キャラクタ９２の移動量は、入力ベクトルの値ＩｎＹに応じた値となる。また、ＣＰＵ１０は、入力ベクトルの値ＩｎＹの絶対値が大きいほど大きくなるように、第２キャラクタ９２の移動量を算出する。ステップＳ４２の処理の後、ＣＰＵ１０は、ステップＳ４４の処理を実行する。
【０１９６】
ステップＳ４３において、ＣＰＵ１０は、入力ベクトルの値ＩｎＹに基づいて、第２キャラクタ９２の移動量を算出する。例えば、ＣＰＵ１０は、ＩｎＹに所定の定数をかけた値を第２キャラクタ９２の移動量として算出する。次に、ＣＰＵ１０は、ステップＳ４４の処理を実行する。
【０１９７】
ステップＳ４４において、ＣＰＵ１０は、ステップＳ４２またはステップＳ４３で算出した移動量と、ステップＳ３で回転した第２キャラクタ９２の向きとに基づいて、第２キャラクタ９２を移動させる。例えば、ＣＰＵ１０は、算出した移動量に、第２キャラクタ９２の向きを示す単位ベクトルをかけることにより、移動ベクトルを算出する。そして、ＣＰＵ１０は、現在の第２キャラクタ９２の位置を示す位置ベクトルに当該移動ベクトルを加えることにより、第２キャラクタ９２の位置を更新する。
【０１９８】
以上のようにして、第２キャラクタ９２が回転され（ステップＳ３）、第２キャラクタ９２の移動量が算出される（ステップＳ４２またはＳ４３）。このようにして、第２キャラクタ９２の移動が制御されることにより、第２キャラクタ９２は次のように動作する。例えば、第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合において、プレイヤが左アナログスティック５３Ａを用いて下方向を入力した場合、第２キャラクタ９２は後退せず（移動量は０）に旋回する。さらに、プレイヤが左アナログスティック５３Ａの下方向を入力し続けたとすると、敵キャラクタ９３は第２キャラクタ９２の真後ろではなく斜め後方に位置することになる。このときの後ろ方向度合ＢＲは１よりも小さな値となり、第２キャラクタ９２の移動量は、０よりも大きな値となる。したがって、第２キャラクタ９２は旋回しながら後退することになる。すなわち、第２キャラクタ９２の真後ろに敵キャラクタ９３が存在する場合において、プレイヤが左アナログスティック５３Ａの下方向を入力し続けた場合、第２キャラクタ９２は最初は回転だけしてその後は回転しながら移動することになる。その結果、第２キャラクタ９２は敵キャラクタ９３と距離をとりながら（移動しながら）回転する。すなわち、第２キャラクタ９２の背後に敵キャラクタ９３が存在する場合において、プレイヤは、距離をとりながら第２キャラクタ９２を敵キャラクタ９３に向かせることができ、弓による攻撃に適した動作であるといえる。すなわち、弓等の離れた敵に対する攻撃を行う武器では、攻撃対象との距離が近すぎるとかえって攻撃し難く、ある程度の距離を保つ方がよい場合がある。
【０１９９】
次に、ＣＰＵ１０は、ステップＳ４５の処理を実行する。ステップＳ４５およびステップＳ４６の処理によって、第１キャラクタ９１がゲーム空間を移動する。
【０２００】
ステップＳ４５において、ＣＰＵ１０は、第１キャラクタ９１ａ〜９１ｃに対応する誘導オブジェクト９４ａ〜９４ｃを、所定の経路に沿って移動させる。すなわち、ＣＰＵ１０は、誘導オブジェクト９４ａ〜９４ｃを予め設定された経路９８ａ〜９８ｃに沿ってそれぞれ移動させる。なお、ＣＰＵ１０は、第１キャラクタ９１とそれに対応する誘導オブジェクト９４との距離が所定値以上にならないように、誘導オブジェクト９４の位置を制御する。次に、ＣＰＵ１０はステップＳ４６の処理を実行する。
【０２０１】
ステップＳ４６において、ＣＰＵ１０は、誘導オブジェクト９４と敵キャラクタ９３との位置に基づいて、第１キャラクタ９１を移動させる。具体的には、ＣＰＵ１０は、第１キャラクタ９１ａを中心とした所定範囲に敵キャラクタ９３が存在しない場合、第１キャラクタ９１ａが誘導オブジェクト９４ａに追従するように第１キャラクタ９１ａを移動させる（第１キャラクタ９１ａの位置および向きを更新する）。また、ＣＰＵ１０は、当該所定範囲に敵キャラクタ９３が存在する場合、当該敵キャラクタ９３に近づくように第１キャラクタ９１ａを移動させる（第１キャラクタ９１ａの位置および向きを更新してメインメモリに記憶する）。なお、第１キャラクタ９１ａと敵キャラクタ９３とが近接して格闘している場合には、ＣＰＵ１０は、第１キャラクタ９１ａが敵キャラクタ９３を倒すまで第１キャラクタ９１ａを移動させない。ＣＰＵ１０は、他の第１キャラクタ９１についても同様に、それぞれの位置および向きを更新する。ＣＰＵ１０は、ステップＳ４６の処理の後、図２１に示す移動処理を終了する。
【０２０２】
図１７に戻り、ＣＰＵ１０は、次にステップＳ５の処理を実行する。ステップＳ５において、ＣＰＵ１０は、ゲーム処理を実行する。当該ゲーム処理では、各キャラクタによる攻撃が行われたり、攻撃の結果に応じた処理（例えば、攻撃を受けた敵キャラクタ９３の生命力を示す値を減少させる処理等）が行われたりする。具体的には、角速度データ１１１（コントローラ５のジャイロセンサ４８が検出した角速度を示すデータ）に基づいて、コントローラ５の姿勢が算出され、当該姿勢に応じて剣オブジェクト９５の姿勢が決定される。そして、剣オブジェクト９５と敵キャラクタ９３との位置関係に基づいて、敵キャラクタ９３に対する攻撃が成功したか（剣オブジェクト９５が敵キャラクタ９３に当たったか）否かが判定される。この場合において、ＣＰＵ１０は、加速度データ１１３（コントローラ５の加速度センサ３７が検出した加速度を示すデータ）を参照してコントローラ５が振られたか否かを判定してもよい。また、ＣＰＵ１０は、右スティックデータ１２３を参照して、右アナログスティック５３Ｂに対する入力が行われたことに応じて矢オブジェクト９７を発射させるか否かを判定し、判定結果に応じて、矢オブジェクト９７をゲーム空間内に発射させる。この場合において、矢オブジェクト９７は、例えば、第２キャラクタ９２の位置からＬＣＤ５１の画面の中心に対応するゲーム空間の位置に向かって発射される。発射された矢オブジェクト９７は、重力等の影響が考慮されてゲーム空間を移動する。そして、移動中の矢オブジェクト９７が他のオブジェクト（敵キャラクタ９３や他の障害物）と接触したか否かが判定され、接触した場合は、矢オブジェクト９７は停止する。また、敵キャラクタ９３をゲーム空間内で移動させる処理が行われる。また、各コントローラ５の十字ボタン３２ａが押された場合、選択オブジェクト９９が移動されて攻撃対象の敵キャラクタ９３が切り替えられる。また、ＣＰＵ１０は、各プレイヤキャラクタ（９１，９２）に設定された仮想カメラの位置および向きを、各プレイヤキャラクタの位置および向き（あるいは端末装置７の姿勢）に応じて更新する。ＣＰＵ１０は、次にステップＳ６の処理を実行する。
【０２０３】
ステップＳ６において、ＣＰＵ１０は、テレビ用ゲーム画像の生成処理を実行する。ステップＳ６においては、テレビ２に表示される画像９０ａ、画像９０ｂ、画像９０ｃ、および画像９０ｄが生成される。具体的には、ＣＰＵ１０は、第１キャラクタ９１ａの背後に設定された第１仮想カメラＡでゲーム空間を撮像することによって画像を取得する。ここで、第１キャラクタ９１ａを中心とした所定範囲に複数の敵キャラクタ９３が存在する場合、ＣＰＵ１０は、取得した画像に選択オブジェクト９９ａの画像を重ね合わせることにより、テレビ２の左上の領域に表示される画像９０ａを生成する。同様に、ＣＰＵ１０は、第１キャラクタ９１ｂの背後に設定された第１仮想カメラＢでゲーム空間を撮像することによって画像９０ｂを生成する。また、ＣＰＵ１０は、第１キャラクタ９１ｃの背後に設定された第１仮想カメラＣでゲーム空間を撮像することにより画像９０ｃを生成する。さらに、ＣＰＵ１０は、第２キャラクタ９２の右斜め後方に設定された第２仮想カメラでゲーム空間を撮像することによって画像９０ｄを生成する。そして、ＣＰＵ１０は、生成した４つの画像９０ａ〜画像９０ｄを結合してテレビ用ゲーム画像を生成する。テレビ用ゲーム画像の左上の領域には画像９０ａ、右上の領域には画像９０ｂ、左下の領域には画像９０ｃ、右下の領域には画像９０ｄが配置される。ＣＰＵ１０は、次にステップＳ７の処理を実行する。
【０２０４】
ステップＳ７において、ＣＰＵ１０は、端末用ゲーム画像の生成処理を実行する。具体的には、ＣＰＵ１０は、第２キャラクタ９２の背後に設定された第３仮想カメラでゲーム空間を撮像することにより画像９０ｅ（端末用ゲーム画像）を生成する。ＣＰＵ１０は、次にステップＳ８の処理を実行する。
【０２０５】
ステップＳ８において、ＣＰＵ１０は、表示処理（ゲーム画像の出力処理）を実行する。ここでは、ステップＳ６で生成したテレビ用ゲーム画像がテレビ２に出力され、ステップＳ７で生成した端末用ゲーム画像が端末装置７に出力（送信）される。これにより、テレビ２には、図１１に示すような画像が表示され、端末装置７のＬＣＤ５１には図１２に示すような画像が表示される。また、ステップＳ８においては、ゲーム画像と共に音声データがテレビ２および／または端末装置７へ出力され、テレビ２のスピーカ２ａおよび／または端末装置７のスピーカ７７からゲーム音声が出力される。ＣＰＵ１０は、次にステップＳ９の処理を実行する。
【０２０６】
ステップＳ９において、ＣＰＵ１０は、ゲームを終了するか否かを判定する。ステップＳ９の判定は、例えば、ゲームオーバーになったか否か、あるいは、ユーザがゲームを中止する指示を行ったか否か等によって行われる。第１キャラクタ９１ａ〜９１ｃおよび第２キャラクタ９２のうちの何れかが敵キャラクタ９３によって倒された場合（所定回数攻撃を受けた場合）、ゲームオーバーとなる。ステップＳ９の判定結果が否定の場合、ステップＳ２の処理が再度実行される。一方、ステップＳ９の判定結果が肯定の場合、ＣＰＵ１０は図２０に示すゲーム処理を終了する。
【０２０７】
以上のように、本実施形態におけるゲームでは、コントローラ５を操作する少なくとも１人のプレイヤと、端末装置７を操作するプレイヤとが協力しながらゲームが進行する。コントローラ５によって操作される第１キャラクタ９１は、ゲーム空間の所定の経路に基づいて自動で移動する。また、端末装置７によって操作される第２キャラクタ９２は、端末装置７に対する入力（左アナログスティック５３Ａに対する入力、および、端末装置７の姿勢を変化させることによる入力）に基づいて、移動する。すなわち、第１キャラクタ９１の移動方向および移動量は自動で制御され、第２キャラクタ９２の移動方向および移動量はプレイヤによる入力によって制御される。このように、第１キャラクタ９１は第１の自由度で移動し（具体的には、予め定められた経路に沿って移動し）、第２キャラクタ９２は当該第１の自由度よりも自由度の高い第２の自由度で移動する（具体的には、端末装置７に対する操作に基づいて所定の平面上の任意の位置を移動する）。このように、コントローラ５によって操作される第１キャラクタ９１の移動が制限され、端末装置７によって操作される第２キャラクタ９２は自由に移動できるように設定されることにより、複数人で行われる新規なゲームを提供することができる。すなわち、第１キャラクタ９１を操作する第１プレイヤはテレビ２の画面を見ながら所定の制限（第１の自由度）の下でゲームを行うのに対して、第２キャラクタ９２を操作する第２プレイヤはテレビ２および端末装置７の画面を見ながら自由に（第２の自由度で）第２キャラクタ９２を移動させてゲームを行う。第２プレイヤは、第２キャラクタ９２を自由に移動させることができるので、第１プレイヤよりも有利な条件でゲームを進めることができる。一方、第１プレイヤは所定の制限の下でゲームを行うが、自動で第１キャラクタ９１が移動するため、移動に関する操作を行う必要はなく、単純な操作（敵キャラクタ９３を攻撃するためにコントローラ５を振る操作）でゲームを行うことができる。したがって、例えば、ゲームに熟練したプレイヤが端末装置７を用いて第２キャラクタ９２を操作し、ゲームに熟練していない（複数の）プレイヤがコントローラ５を用いて第１キャラクタ９１を操作することにより、ゲームの熟練度に関係なく複数人で協力してゲームを行うことができる。例えば、ゲームに熟練していないプレイヤによって操作される第１キャラクタ９１が敵キャラクタ９３に襲われそうなときに、ゲームに熟練したプレイヤは、第２キャラクタ９２を自由に操作して当該敵キャラクタ９３を倒すことができる。また、第２キャラクタ９２は、矢オブジェクト９７で攻撃することができるので、より遠方の敵キャラクタ９３に攻撃を行うことができる。このため、第２プレイヤは第１プレイヤよりも有利であるといえ、第１プレイヤを助けながらゲームを行うことに適しているといえる。逆に、ゲームに熟練したプレイヤが第１キャラクタ９１を操作し、ゲームに熟練していないプレイヤが第２キャラクタ９２を操作してもよい。また、複数のプレイヤが同じ条件（同じ自由度）でゲームを行う場合では、各プレイヤはそれぞれ勝手に操作してしまい、ゲームの進行の妨げになる場合がある。しかしながら、本実施形態におけるゲームでは、第１キャラクタ９１の移動が制限されるため、各プレイヤが勝手にそれぞれのプレイヤキャラクタを移動させてゲームの進行の妨げになることはない。本実施形態では、各プレイヤがそれぞれの自由度でそれぞれの役割に応じてゲームを進行させることができる。
【０２０８】
また、本実施形態では、第１キャラクタ９１に対応する第１仮想カメラがゲーム空間内にそれぞれ設定され、第２キャラクタ９２に対応する第２仮想カメラがゲーム空間内に設定される。そして、第１仮想カメラおよび第２仮想カメラによって撮像された画像がテレビ２の画面に表示される。さらに、第２キャラクタ９２に対応する第３仮想カメラがゲーム空間内に設定されて、当該第３仮想カメラで撮像された画像が端末装置７のＬＣＤ５１に表示される。これにより、第１プレイヤはテレビ２の画面を見ながら他の第１プレイヤおよび第２プレイヤの状況を把握することができる。また、第２プレイヤは、２つの画面を見ることができるため、第１プレイヤよりも多くの情報に基づいてゲームを進めることができる。
【０２０９】
また、本実施形態では、敵キャラクタ９３が第２キャラクタ９２の後方（第２キャラクタ９２の左右方向よりも後ろ側；９０度〜１８０度または−１８０度〜−９０度の方向）に存在する場合、第２キャラクタ９２が敵キャラクタ９３に向きやすくなる。具体的には、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合は、左アナログスティック５３Ａの下方向が入力されても、第２キャラクタ９２は後退せずに（または後退しながら）旋回する。また、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合において、第２キャラクタ９２が敵キャラクタ９３を向く方向に端末装置７を回転させる場合、端末装置７の回転量よりも大きな回転量で第２キャラクタ９２は回転する。このように、第２キャラクタ９２と敵キャラクタ９３との位置関係に応じて、第２キャラクタ９２が敵キャラクタ９３に向きやすくなる。このため、第２プレイヤは敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合でも、容易に第２キャラクタ９２を敵キャラクタ９３に向けることができる。
【０２１０】
［７．変形例］
なお、上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成であってもよい。
【０２１１】
例えば、本実施形態では、４人のプレイヤのうちの３人のプレイヤがコントローラ５を操作して、１人のプレイヤが端末装置７を操作した。他の実施形態では、複数の端末装置７がゲーム装置３に接続（無線で接続）され、複数のプレイヤが端末装置７をそれぞれ操作してもよい。また、他の実施形態では、プレイヤの人数は４人以上であってもよいし、１人のプレイヤがコントローラ５を操作して、１人のプレイヤが端末装置７を操作することで２人のプレイヤでゲームが行われてもよい。
【０２１２】
また、本実施形態では、複数人のプレイヤが互いに協力することでゲームが進行するようにしたが、他の実施形態では、複数人のプレイヤ同士が対戦するゲームであってもよい。また、複数人で行われるゲームであればどのようなゲームであってもよい。
【０２１３】
また、本実施形態では、第２キャラクタ９２に対応する第２仮想カメラおよび第３仮想カメラがゲーム空間に設定されて、テレビ２に第２仮想カメラによって撮像された画像が表示され、端末装置７に第３仮想カメラによって撮像された画像が表示された。他の実施形態では、テレビ２には第２仮想カメラによって撮像された画像（第２キャラクタ９２に対応する画像）は表示されなくてもよい。この場合、第２キャラクタ９２の後方からゲーム空間を見た画像はテレビ２に表示されないため、第１プレイヤは、第２キャラクタ９２の状況を把握し難いが、第２キャラクタ９２の状況を知らなくてもゲームを行うことは可能である。
【０２１４】
また、本実施形態では、第３仮想カメラによって撮像された画像が端末装置７に表示されたが、他の実施形態では、端末装置７には第２キャラクタ９２の動作に応じた画像が表示されてもよい。ここで、第２キャラクタ９２の動作に応じた画像は、第２キャラクタ９２が動作することによって変化する画像であればよく、仮想カメラでゲーム空間を撮像した画像であってもよし、仮想カメラでゲーム空間を撮像した画像でなくてもよい。例えば、端末装置７には、ゲーム空間における各キャラクタ（９１、９２、９３）の位置および向きを表示するためのマップ画像が表示されてもよい。
【０２１５】
また、本実施形態では、第１キャラクタ９１は所定の経路に沿って自動で移動し（第１キャラクタ９１の向きおよび位置が自動で変化し）、第２キャラクタ９２はゲーム空間内の２次元平面上を第２プレイヤによる入力方向に移動した。他の実施形態では、第１キャラクタ９１は所定の経路に基づいて、第１プレイヤの操作に応じて移動してもよい。例えば、第１キャラクタ９１は、コントローラ５の十字ボタン３２ａの上方向が押された場合に、所定の経路上を前方に向かって移動してもよい。また、例えば、第１キャラクタ９１は、所定の経路を含む所定範囲を自動またはプレイヤの操作に応じて移動してもよい。また、例えば、第１キャラクタ９１の向きのみがプレイヤによって制御され、第１キャラクタ９１の移動量は自動で制御されてもよいし、第１キャラクタ９１の移動量のみがプレイヤによって制御され、第１キャラクタ９１の向きは自動で制御されてもよい。また、他の実施形態では、第２キャラクタ９２は、２次元平面上の制限された範囲（第１キャラクタ９１の移動範囲よりも広い範囲）を第２プレイヤの操作に基づいて、移動してもよい。すなわち、第１キャラクタ９１が第１の自由度で移動され、第２キャラクタ９２が当該第１の自由度よりも自由度の高い第２の自由度で移動されてもよい。ここで、「自由度」とは、プレイヤがどの程度自由にキャラクタを制御できるかを示すのもである。例えば、自由度は、キャラクタの位置に関してプレイヤがどの程度自由に制御できるかを示すものであってもよいし、キャラクタの向きに関してプレイヤがどの程度自由に制御できるかを示すものであってもよい。例えば、自由度は、プレイヤの操作によってキャラクタが移動できるゲーム空間の範囲（位置）を示すものであってもよいし、プレイヤの操作によってキャラクタのゲーム空間における向きがどの程度変化し得るかを示すものであってもよい。また、自由度は、プレイヤの操作に応じてどの程度自由にキャラクタが動作するかを示すものであってもよい。例えば、第１キャラクタ９１は基本的に所定の経路上を自動で移動するため（位置および向きがゲーム装置３によって自動で決定されるため）、第１キャラクタ９１が移動可能なゲーム空間の範囲は、第２キャラクタ９２と比べて狭いといえる。また、第１キャラクタ９１の向きは、ゲーム装置３によって自動で決定されるため、第１キャラクタ９１の向きに関する自由度は、第２キャラクタ９２と比べて低いといえる。このため、第１キャラクタ９１の自由度は、第２キャラクタ９２の自由度と比べて低い。
【０２１６】
また、本実施形態では、敵キャラクタ９３が第２キャラクタ９２の後方に存在しない場合において、左アナログスティック５３Ａの下方が入力された場合、第２キャラクタ９２を旋回させずに第２キャラクタ９２を後退させた。他の実施形態では、同様の場合において、第２キャラクタ９２を移動させるとともに、第２キャラクタ９２を旋回させてもよい。
【０２１７】
また、本実施形態では、敵キャラクタ９３が第２キャラクタ９２の後方に存在しない場合において、左アナログスティック５３Ａの下方が入力された場合、第２キャラクタ９２を後退させた。そして、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合であって、左アナログスティック５３Ａの下方が入力されたとき、第２キャラクタ９２を後退させずに、第２キャラクタ９２を旋回させた。他の実施形態では、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合であって、左アナログスティック５３Ａの下方が入力されたとき、第２キャラクタ９２の後方への移動を制限（移動量を０または小さく）して、第２キャラクタ９２を旋回させてもよい。また、他の実施形態では、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合には、敵キャラクタ９３が第２キャラクタ９２の後方に存在しない場合に比べて、第２キャラクタ９２の旋回量を多くしてもよい。
【０２１８】
すなわち、他の実施形態では、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合であって、左アナログスティック５３Ａの下方が入力されたとき、第２キャラクタ９２が敵キャラクタ９３を向きやすいように、スティックによる回転角（回転方向と回転量を示す制御データ）が調整されてもよい。
【０２１９】
また、本実施形態では、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合、敵キャラクタ９３が第２キャラクタ９２の後方に存在しない場合と比べて、端末装置７の回転による第２キャラクタ９２の回転量を大きくした。すなわち、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合、第２キャラクタ９２が敵キャラクタ９３を向きやすいように、ジャイロセンサによる回転角（回転方向と回転量を示す制御データ）が調整された。
【０２２０】
以上のように、敵キャラクタ９３が第２キャラクタ９２の後方に存在する場合には、第２キャラクタ９２が敵キャラクタ９３を向きやすいように、第２キャラクタ９２の回転方向および回転量を示す制御データが調整されてもよい。
【０２２１】
また、本実施形態では、第２キャラクタ９２の後方に敵キャラクタ９３が存在する場合、第２キャラクタ９２が敵キャラクタ９３に向きやすいように、上記制御データが調整された。他の実施形態では、第２キャラクタ９２の後方に敵キャラクタ９３が存在する場合に、第２キャラクタ９２が敵キャラクタ９３と反対方向を向きやすいように、制御データが調整されてもよい。例えば、強敵から逃げやすいように、制御データが調整されてもよい。また、他の実施形態では、第２キャラクタ９２の前方に敵キャラクタ９３が存在する場合に、第２キャラクタ９２が敵キャラクタ９３と反対方向を向きやすいように、調整されてもよい。
【０２２２】
すなわち、プレイヤオブジェクトと所定の他のオブジェクトとが所定の位置関係である場合、プレイヤオブジェクトの向きが所定方向を向きやすいように、当該プレイヤオブジェクトの回転方向および回転量を示す制御データが調整されてもよい。
【０２２３】
また、他の実施形態では、後ろ方向度合ＢＲに代えて、敵キャラクタ９３がどの程度第２キャラクタ９２の前方向に存在するかを示す前方向度合が算出され、当該前方向度合に基づいて、上記制御データが調整されてもよい。この場合、前方向度合は、第２キャラクタ９２と敵キャラクタ９３との角度が小さいほど大きくなる。また、後ろ方向度合ＢＲに代えて、右方向度合が算出され、当該右方向度合に基づいて、上記制御データが調整されてもよい。すなわち、第２キャラクタ９２の特定の方向を基準とした敵キャラクタ９３の角度に応じた度合が算出され、当該度合に基づいて、上記制御データが調整されてもよい。当該度合は、敵キャラクタ９３が第２キャラクタ９２を基準とした特定の方向（例えば後ろ方向）にどの程度存在するかを示すものであり、敵キャラクタ９３が第２キャラクタ９２を基準として特定の方向に存在するほど値が大きくなる。より具体的には、当該度合は、第２キャラクタ９２からみた特定の方向（例えば、後ろ方向、右方向、前方向等）と、当該第２キャラクタ９２の位置から敵キャラクタ９３の位置へ向かう方向との一致の度合を示すものである。
【０２２４】
また、本実施形態では、端末装置７の左アナログスティック５３Ａに対する入力に基づいて、第２キャラクタ９２の移動および向きが制御された。他の実施形態では、他のボタン（十字ボタン５４Ａ等の方向を入力するための操作部）に対する入力に基づいて、第２キャラクタ９２の位置および向きが制御されてもよい。
【０２２５】
また、本実施形態では、矢オブジェクトによって敵キャラクタ９３に攻撃したが、他の実施形態では、例えば、ボール等の球体、銃弾、砲弾、槍、ブーメラン等、どのようなものでもよい。
【０２２６】
また、本実施形態では、ゲーム装置３において端末用ゲーム画像を生成し、当該生成した画像を端末装置７に無線通信により送信することにより、端末装置７に端末用ゲーム画像を表示させた。他の実施形態では、端末装置７において端末用ゲーム画像を生成して、生成した画像を端末装置７の表示部（ＬＣＤ５１）に表示させてもよい。この場合において、端末装置７には、ゲーム装置３からゲーム空間のキャラクタや仮想カメラに関する情報（位置や姿勢等の情報）が送信され、当該情報に基づいて端末装置７内で端末用ゲーム画像が生成される。
【０２２７】
また、本実施形態では、ジャイロセンサが検出した角速度に基づいて、端末装置７の姿勢を算出した。他の実施形態では、ジャイロセンサが検出した角速度に基づいた端末装置７の姿勢を、加速度センサが検出した加速度に基づいて補正してもよいし、加速度センサが検出した加速度に基づいて端末装置７の姿勢を算出してもよい。すなわち、１以上の慣性センサ（加速度センサやジャイロセンサ）を用いて、端末装置７の姿勢を算出してもよい。また、他の実施形態では、磁気センサが検出する方位（磁気センサが検出する地磁気によって示される方角）に基づいて、端末装置７の姿勢を算出してもよい。また、他の実施形態では、端末装置７をカメラ等で撮像して得られる画像を用いて、端末装置７の姿勢を算出してもよい。また、端末装置７の姿勢に基づく姿勢データ（慣性センサの検出値を示すデータ、磁気センサの検出値を示すデータ、端末装置７の姿勢に応じて変化する画像データ等）を端末装置７が出力し、当該姿勢データに基づいて、ゲーム装置３は端末装置７の姿勢が取得（算出）されてもよい。
【０２２８】
また、他の実施形態では、ゲーム装置３において行われたゲーム処理の一部が、端末装置７において実行されてもよい。例えば、端末装置７で操作されるゲーム空間内のオブジェクトの位置や姿勢、動作等が端末装置７において決定され、当該決定した情報がゲーム装置３に送信されてもよい。また、端末装置７において端末装置の姿勢が算出され、当該姿勢を示す情報がゲーム装置３に送信されてもよい。ゲーム装置３は受信した情報に基づいて、その他のゲーム処理を実行してもよい。
【０２２９】
また、本実施形態では、上記ゲーム装置３において上記ゲームプログラムが実行されたが、他の実施形態では、ゲーム専用装置に限らず、一般的な情報処理装置（パーソナルコンピュータやスマートフォン等）において上記プログラムが実行されてもよい。すなわち、他の実施形態では、一般的な情報処理装置において上記プログラムが実行されることにより、当該情報処理装置をゲーム装置として機能させてもよい。
【０２３０】
また、上記ゲームプログラムは、光ディスクに限らず、磁気ディスク、不揮発性メモリ等の記憶媒体に記憶されてもよく、ネットワークに接続されたサーバ上のＲＡＭや磁気ディスク等のコンピュータ読み取り可能な記憶媒体に記憶されて、ネットワークを介して当該プログラムが提供されてもよい。また、上記ゲームプログラムは、ソースコードとして情報処理装置に読み込まれて、プログラムの実行の際にコンパイルされて実行されてもよい。
【０２３１】
また、上記実施形態においては、ゲーム装置３のＣＰＵ１０が上記ゲームプログラムを実行することによって、上述したフローチャートによる処理が行われた。他の実施形態においては、上記処理の一部又は全部は、ゲーム装置３が備える専用回路によって行われてもよし、他の汎用プロセッサによって行われてもよい。少なくとも１つのプロセッサが、上記処理を実行するための「プログラムされた論理回路」として動作するものであってもよい。
【０２３２】
さらに、他の実施形態では、互いに通信可能な複数の情報処理装置を有するゲームシステムにおいて、当該複数の情報処理装置が、上述のようなゲーム装置３において実行されたゲーム処理を分担して実行するようにしてもよい。例えば、インターネットのようなネットワークに接続された複数の情報処理装置によって上述のようなゲームシステムが構成されてもよい。この場合、例えば、プレイヤはネットワークに接続可能な操作装置や可搬型表示装置（上記実施形態における端末装置７のようなものやタブレット型コンピュータやスマートフォン等の表示装置を備える操作装置）に対するゲーム操作を行う。当該ゲーム操作に応じた操作情報は、ネットワークを介して他の情報処理装置に送信され、当該他の情報処理装置は、受信した操作情報に基づいたゲーム処理を実行し、実行結果を操作装置や可搬型表示装置に送信する。
【０２３３】
ここで開示された、システム、デバイス、および装置は、１つの場所または１つ以上のネットワークを介して通信しながら様々な場所に分散されて配置された、１台以上のプロセッサを含んでもよい。例えば、そのようなプロセッサは、ディスプレイのための適切な画像を提供するために標準の３Ｄ図形変換、仮想カメラ、および他の技術を用いることができる。制限されることのない一例として、プロセッサは、据置型ディスプレイと共同設置された独立のコンポーネントまたはその一部であってもよく、可搬型ディスプレイと遠隔通信（例えば、無線）するものであってもよい。また、プロセッサは、可搬型ディスプレイと共同設置された独立のコンポーネントまたはその一部であってもよく、据置型ディスプレイまたは関連機器と遠隔通信（例えば、無線）するものであってもよい。また、プロセッサは、分散処理装置であってもよく、これらは可搬型ディスプレイ内に含まれてもよいし、据置型ディスプレイと共同設置されてもよい。これら分散された部分は、無線または有線のような接続を介して互いに通信するようになっている。また、プロセッサは、据置型ディスプレイおよび可搬型ディスプレイから離れて設置され（例えば、クラウド内）、１以上のネットワーク接続を介してこれらが互いに通信するものであってもよい。また、プロセッサは、上記のバリエーションや組み合わせであってもよい。プロセッサは、１以上の汎用プロセッサを用いて実装されてもよいし、１以上の特定グラフィックプロセッサを用いて実装されてもよいし、これらの組み合わせであってもよい。これらは、特別に設計されたＡＳＩＣｓ（特定用途向け集積回路）および／または論理回路によって補われてもよい。分散プロセッサアーキテクチャまたは装置の場合、適切なデータ交換と送信プロトコルは、当業者が理解されるように低遅延および双方向性の維持を提供するために用いられる。同様に、ここで開示されたシステムおよび方法を実装するためのプログラム命令、データ、および他の情報は、１以上のオンボードおよび／または着脱自在のメモリデバイスに格納されてもよい。複数のメモリデバイスは、互いに共同配置または遠隔に配置される同一のデバイスまたは異なるデバイスの一部であってもよい。
【符号の説明】
【０２３４】
１  ゲームシステム
２  テレビ
３  ゲーム装置
４  光ディスク
５  コントローラ
７  端末装置
１０  ＣＰＵ
１１ｅ  内部メインメモリ
１２  外部メインメモリ
３７  加速度センサ
４８  ジャイロセンサ
５１  ＬＣＤ
７３  加速度センサ
７４  ジャイロセンサ
９１  第１キャラクタ
９２  第２キャラクタ
９３  敵キャラクタ
９４  誘導オブジェクト
９５  剣オブジェクト
９６  弓オブジェクト
９７  矢オブジェクト
９８  経路
９９  選択オブジェクト
【図１】
0005829090.tif 000002
【図２】
0005829090.tif 000003
【図３】
0005829090.tif 000004
【図４】
0005829090.tif 000005
【図５】
0005829090.tif 000006
【図６】
0005829090.tif 000007
【図７】
0005829090.tif 000008
【図８】
0005829090.tif 000009
【図９】
0005829090.tif 000010
【図１０】
0005829090.tif 000011
【図１１】
0005829090.tif 000012
【図１２】
0005829090.tif 000013
【図１３】
0005829090.tif 000014
【図１４】
0005829090.tif 000015
【図１５】
0005829090.tif 000016
【図１６】
0005829090.tif 000017
【図１７】
0005829090.tif 000018
【図１８】
0005829090.tif 000019
【図１９】
0005829090.tif 000020
【図２０】
0005829090.tif 000021
【図２１】
0005829090.tif 000022
【図２２】
0005829090.tif 000023