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