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