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