説明

ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法

【課題】タッチパネルあるいはタッチパッド等のポインティングデバイスを用いた3次元空間内の方向の指示を容易にする。
【解決手段】ゲームシステムは、ゲーム装置と、所定の入力面を有するハンドヘルドデバイスとを含む。ハンドヘルドデバイスは、所定の入力面に対するプレイヤの入力位置を表すタッチデータと、ハンドヘルドデバイスの動きに応じて値が変化する動きデータとを含む操作データを送信する。また、ゲーム装置は、3次元のゲーム空間内に配置される制御面の姿勢を動きデータに基づいて制御する。また、ゲーム装置は、制御面の姿勢とタッチデータとに基づいてゲーム空間内における制御方向を算出して、制御方向に基づくゲーム処理を行う。ゲーム空間を表す第1ゲーム画像は、ハンドヘルドデバイスとは別体の表示装置へ出力されて表示される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ポインティングデバイスを用いたゲーム操作が可能なゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法に関する。
【背景技術】
【0002】
従来、入力面上の位置を指示することが可能なポインティングデバイスを用いてプレイヤにゲーム操作を行わせる技術がある。例えば、特許文献1には、光学式ポインティングデバイスを用いたゲームシステムが開示されている。このゲームシステムの入力装置は、撮像手段を有する光学式ポインティングデバイスであり、任意の位置に配置されるマーカを撮像することができる。ゲーム装置は、撮像手段による撮像結果(すなわち、撮像された画像内におけるマーカの位置)を操作データとして取得する。この撮像結果は入力装置の位置や向きに応じて変化するので、ゲーム装置は、画面上におけるポインティング位置(入力装置が指し示す位置)を操作データに基づいて算出することができる。ポインティング位置にはカーソルが表示され、カーソルはプレイヤが画面上の位置を指示するために用いられる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−75353号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、ポインティングデバイスによれば、画面上における位置を指示することができる。また、上記特許文献1のゲームシステムにおいては、撮像手段を有する光学式ポインティングデバイスが用いられるので、マーカから光学式ポインティングデバイスまでの距離を算出可能で、奥行き方向に関する位置を特定することができる。しかし、画面内に表示される3次元空間内における方向をポインティングデバイスによって指示することは困難であった。さらに、ポインティングデバイスとしてタッチパネルあるいはタッチパッドが用いられる場合には、画面上の2次元位置しか指示できないので、3次元空間内の方向を指示することはできなかった。
【0005】
それ故、本発明の目的は、ポインティングデバイス、特にタッチパネルあるいはタッチパッド等を用いて3次元空間内の方向を容易にかつ直感的に指示することができるゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
本発明は、上記の課題を解決するために、以下の(1)〜(14)の構成を採用した。
【0007】
(1)
本発明は、ゲーム装置と、所定の入力面を有するハンドヘルドデバイスとを含むゲームシステムである。ハンドヘルドデバイスは、タッチデータ出力部と、動きデータ出力部と、操作データ送信部とを備える。タッチデータ出力部は、所定の入力面に対するプレイヤの入力位置を表すタッチデータを出力する。動きデータ出力部は、ハンドヘルドデバイスの動きに応じて値が変化する動きデータを出力する。操作データ送信部は、タッチデータおよび動きデータを含む操作データをゲーム装置へ送信する。また、ゲーム装置は、第1受信部と、面制御部と、方向算出部と、ゲーム処理部と、第1画像生成部と、第1画像出力部とを備える。受信部は、操作データを受信する。面制御部は、3次元のゲーム空間内に配置される制御面の姿勢を動きデータに基づいて制御する。方向算出部は、制御面の姿勢とタッチデータとに基づいてゲーム空間内における制御方向を算出する。ゲーム処理部は、制御方向に基づくゲーム処理を行う。第1画像生成部は、ゲーム空間を表す第1ゲーム画像を、当該ゲーム空間に設定される第1仮想カメラに基づいて生成する。第1画像出力部は、第1ゲーム画像をハンドヘルドデバイスとは別体の第1表示装置へ出力する。
【0008】
上記「ゲーム装置」は、ゲーム処理を実行し、ゲーム処理に基づいて画像を生成する情報処理装置であればどのようなものであってもよい。すなわち、上記ゲーム装置は、ゲーム専用の情報処理装置であってもよいし、一般的なパーソナルコンピュータのような多用途の情報処理装置であってもよい。
上記「ハンドヘルドデバイス」は、後述する実施形態では携帯型のゲーム装置であるが、ゲーム処理(ゲームプログラム)を実行する機能を有していなくてもよいし、表示手段を備えていなくてもよい。すなわち、ゲーム装置のゲームコントローラとして用いられるハンドヘルドデバイスであってもよい。また、後述する変形例における端末装置200がハンドヘルドデバイスとして用いられてもよい。
上記「ゲームシステム」は、ゲーム装置、操作装置、およびハンドヘルドデバイスを含んでいればよく、第1ゲーム画像を表示する上記「所定の第1表示装置」は含んでいなくともよいし、含んでいてもよい。すなわち、ゲームシステムは、当該所定の第1表示装置を含まない形態で提供されてもよいし、含む形態で提供されてもよい。
上記「タッチデータ出力部」は、後述する実施形態ではタッチパネルであるが、入力面に対する入力位置を表すタッチデータを出力するものであればよく、例えばタッチパッドでもよい。
上記「ハンドヘルドデバイスの動き」とは、ハンドヘルドデバイスの位置の変化と、姿勢の変化とを含む意味である。すなわち、「動き」は位置の変化と姿勢の変化のいずれの意味であってもよく、また、位置および姿勢の両方の変化であってもよい。上記「動きデータ出力部」は、下記(14)や後述する実施形態における加速度センサあるいはジャイロセンサの他、ハンドヘルドデバイスの動きを算出(推測)することができる動きデータを出力するものであればどのようなものであってもよい。
上記「制御面」は、下記(13)や後述する実施形態のように、ハンドヘルドデバイスの姿勢に応じて姿勢が変化するものの他、ハンドヘルドデバイスの動きに応じて少なくとも姿勢が変化するものであればよい。
上記「制御方向に基づくゲーム処理」は、下記(2)や後述する実施形態のように、ゲーム空間内のオブジェクトの移動方向を制御方向に基づいて決める処理の他、制御方向を入力として用いるゲーム処理であればどのような処理であってもよい。
上記「別体の第1表示装置」とは、後述する実施形態におけるテレビ2の他、例えばゲーム装置と一体として(1つの筐体内に)形成されるものであってもよい。
【0009】
上記(1)の構成によれば、ハンドヘルドデバイスの動きに応じた動きデータによって制御面の姿勢が算出され、算出された姿勢とタッチデータとによって3次元のゲーム空間内における制御方向が算出される。これによれば、プレイヤは、ハンドヘルドデバイス自体を動かす操作と、ハンドヘルドデバイスの入力面に対する操作とを用いて制御方向を指示することができる。つまり、上記(1)の構成によれば、タッチパネルあるいはタッチパッド等のポインティングデバイスを用いて3次元空間内の方向を容易に指示することができる。また、ハンドヘルドデバイスの姿勢の操作と入力面に対する入力操作とに関しては同時に並行して行うことができるので、プレイヤは3次元空間における方向を指示する操作を迅速に行うことができる。
【0010】
(2)
ゲーム処理部は、ゲーム空間内の所定のオブジェクトの移動方向を制御方向に基づいて制御してもよい。
【0011】
上記「制御方向に基づいて制御する」とは、後述する第1の実施例のように、制御方向をそのままオブジェクトの移動方向とする場合、および、後述する第2の実施例のように、制御方向とは異なる方向に移動方向を設定する場合を含む意図である。
【0012】
上記(2)の構成によれば、ゲーム空間内のオブジェクトの移動方向が制御方向によって決められる。したがって、プレイヤは、タッチパネルあるいはタッチパッド等のポインティングデバイスを用いて3次元のゲーム空間内のオブジェクトを移動する操作を容易に行うことができる。
【0013】
(3)
方向算出部は、位置算出部と、方向特定部とを含んでいてもよい。位置算出部は、タッチデータに基づいて制御面上における制御位置を算出する。方向特定部は、制御位置に基づいて制御方向を特定する。
【0014】
上記「制御位置」は、タッチデータに基づいて決定されるものであればよく、画面上においてタッチ位置に対応するように算出されてもよい(後述する実施形態)し、画面上における位置がタッチ位置とは異なる位置となるように算出されてもよい。
上記「方向特定部」は、制御位置に基づいて制御方向を特定すればよく、下記(4)や後述する第1の実施例のように、制御面と平行となるように制御方向を算出してもよいし、下記(7)や後述する第2の実施例のように、制御面と交差する方向として制御方向を算出してもよい。
【0015】
上記(3)の構成によれば、制御面上における制御位置がタッチデータに基づいて決定され、決定される制御位置に基づいて制御方向が決定される。このように、タッチデータに基づく制御位置を用いることで、制御面の姿勢とタッチデータとから制御方向を容易に特定することができる。
【0016】
(4)
位置算出部は、連続した入力を表すタッチデータに基づいて制御面上における複数の制御位置を算出してもよい。このとき、方向特定部は、複数の制御位置によって表される方向を制御方向として特定する。
【0017】
上記「連続した入力を表すタッチデータ」とは、プレイヤが入力面に接触し続ける間に繰り返し検出された入力位置を表すデータであり、例えば、入力面上に線(軌跡)を描く操作を行った場合に検出される複数の入力位置を表すデータである。
上記「複数の制御位置によって表される方向」とは、複数の制御位置を結ぶ線分の方向として、複数の制御位置に基づいて算出される方向であればよい。「複数の制御位置によって表される方向」は、例えば、複数の制御位置の平均速度として表される方向でもよいし、複数の制御位置のうちの所定の2点(例えば、最初の制御位置と最後の制御位置でもよいし、最後の制御位置とその1つ前の制御位置でもよい)を結ぶ方向でもよい。
【0018】
上記(4)の構成によれば、連続した入力を表すタッチデータに基づいて制御面上において複数の制御位置が算出され、制御面上における複数の制御位置が表す方向が制御方向として算出される。これによれば、例えば入力面上に線が描かれた場合に、その線の方向に応じた方向を制御方向として特定することができる。したがって、プレイヤは、ハンドヘルドデバイス自体を動かす操作と、入力面に対して線を描く操作という直感的かつわかりやすい操作によって、制御方向を指示することができる。
【0019】
(5)
ゲーム処理部は、ゲーム空間内の所定のオブジェクトを、制御方向により決められる方向に、制御面の姿勢によって決められる姿勢で移動させてもよい。
【0020】
上記(5)の構成によれば、オブジェクトの移動方向が制御方向によって決められるとともに、制御面の姿勢によってオブジェクトの姿勢が決められる。したがって、プレイヤは、オブジェクトの移動方向に加えて姿勢を操作することができ、オブジェクトを容易な操作で詳細に制御することができる。
【0021】
(6)
面制御部は、ゲーム空間内に配置される制御面の姿勢を動きデータに基づいて制御してもよい。このとき、ゲーム処理部は、制御面が撮影範囲に含まれるように第1仮想カメラを設定する。
【0022】
上記(6)の構成によれば、制御面の範囲が含まれるように第1ゲーム画像が生成されて第1表示装置に表示される。これによれば、プレイヤは、第1ゲーム画像を見ることによって制御面の姿勢を確認することができるので、ハンドヘルドデバイスに対する操作がより行いやすくなり、操作性を向上することができる。
【0023】
(7)
方向特定部は、ゲーム空間内の所定位置から制御位置への方向を制御方向として特定してもよい。
【0024】
上記「所定位置」とは、ゲーム空間内に設定される位置であればよく、例えば、仮想カメラの位置でもよいし、後述する実施形態における基準点Paの位置でもよいし、特定のオブジェクトの位置でもよい。また、「所定位置」は、後述する第2の実施例では制御面上でない位置であるが、制御面上の位置であってもよい。なお、所定位置が制御面上の位置となる場合、上記(4)や後述する第1の実施例と同様、制御方向は制御面と平行になる。
【0025】
上記(7)の構成によれば、ゲーム空間内の所定位置から、制御面上における制御位置への方向が制御方向として算出される。これによれば、例えば入力面上の一点をタッチされた場合に、タッチされた位置に応じた方向を制御方向として特定することができる。したがって、プレイヤは、ハンドヘルドデバイス自体を動かす操作と、入力面に対するタッチ操作という簡単で直感的な操作によって、制御方向を指示することができる。
【0026】
(8)
ゲーム装置は、第2画像生成部と、第2画像出力部とを備えていてもよい。第2画像生成部は、ゲーム空間を表す第2ゲーム画像を、当該ゲーム空間に設定される第2仮想カメラに基づいて生成する。第2画像出力部は、ハンドヘルドデバイスに第2ゲーム画像を出力する。このとき、ハンドヘルドデバイスは、第2受信部と、表示処理部とを備える。第2受信部は、ゲーム装置から第2ゲーム画像を受信する。表示処理部は、ハンドヘルドデバイスに設けられる第2表示装置に第2ゲーム画像を表示させる。
【0027】
上記(8)の構成によれば、第1ゲーム画像が上記別体の第1表示装置に表示されるとともに、ハンドヘルドデバイスの第2表示装置にもゲーム空間の画像が表示される。これによれば、プレイヤは2つの画像を見ながらゲーム操作を行うことができるので、ゲーム操作がより行いやすくなる。
【0028】
(9)
方向特定部は、第2仮想カメラの位置から制御位置への方向を制御方向として特定してもよい。
【0029】
上記(9)の構成によれば、第2仮想カメラの位置から制御位置への方向が制御方向となるので、第2ゲーム画像における視点の位置から、タッチ位置によって決められる制御位置への方向が制御方向となる。このように、制御方向の始点と第2ゲーム画像における視点とを一致させることによって、例えば制御方向へオブジェクトが移動される場合等においてプレイヤが違和感を抱くことのない自然なゲーム画像を表示することができる。
【0030】
(10)
ゲーム処理部は、制御面が第2仮想カメラの撮影範囲に含まれるように、制御面の変化に応じて第2仮想カメラを移動させてもよい。
【0031】
上記「第2仮想カメラを移動させる」とは、第2仮想カメラの位置および姿勢の少なくとも一方を変化させる意味である。
【0032】
上記(10)の構成によれば、ハンドヘルドデバイスを動かす操作によって制御面の(少なくとも)姿勢が変化する場合、その変化に応じて第2仮想カメラが移動する。これによれば、ハンドヘルドデバイスを動かす操作によって、ハンドヘルドデバイスの画面に表示される第2ゲーム画像の内容が変化することになる。したがって、プレイヤは、ハンドヘルドデバイスを動かす操作によって制御方向の大まかな方向を変化させる際、ハンドヘルドデバイスの画面を見ながら操作を行うことができ、当該操作をより行いやすくなる。
【0033】
(11)
タッチデータ出力部は、第2表示装置の画面上に入力面を有するタッチパネルであってもよい。
【0034】
上記(11)の構成によれば、ハンドヘルドデバイスの画面上にタッチパネルが設けられるので、プレイヤは、当該画面上をタッチする操作によって制御方向を指示することができる。したがって、制御方向を指示するためのタッチ入力操作がより容易になる。
【0035】
(12)
ゲーム処理部は、入力面上の入力位置と当該入力位置に対応する制御位置とが第2表示装置の画面上において一致するように、第2仮想カメラを設定してもよい。
【0036】
上記(12)の構成によれば、プレイヤがハンドヘルドデバイスの画面上をタッチした場合、タッチした位置に表示されているゲーム空間内の位置が制御位置として算出される。これによれば、制御方向を指示するためのタッチ入力操作がより直感的な操作となるので、タッチ入力操作がより行いやすくなる。
【0037】
(13)
ゲーム装置は、動きデータに基づいてハンドヘルドデバイスの姿勢を算出する姿勢算出部をさらに備えていてもよい。このとき、面制御部は、ハンドヘルドデバイスの姿勢に応じて制御面の姿勢を制御する。
【0038】
上記(13)の構成によれば、プレイヤは、ハンドヘルドデバイスの姿勢を変化させることによって制御面の姿勢を変化させることができる。これによれば、ハンドヘルドデバイスを傾ける操作によってゲーム空間内の制御面を実際に傾けているかのような操作感覚をプレイヤに与えることができ、より直感的でわかりやすい操作を提供することができる。
【0039】
(14)
動きデータ出力部は、加速度データを出力する加速度センサ、および、角速度データを出力するジャイロセンサの少なくとも一方を含んでいてもよい。
【0040】
上記(14)の構成によれば、加速度センサあるいはジャイロセンサの検知結果を用いることによって、ゲーム処理部はハンドヘルドデバイスの動きを容易に算出(推測)することができる。
【0041】
また、本発明は、上記(1)〜(14)におけるゲーム装置の形態で実施されてもよい。また、任意のゲーム装置のコンピュータを、上記(1)〜(14)におけるゲーム装置の各部と同等の手段として機能させるゲームプログラムの形態で実施されてもよい。また、本発明は、上記(1)〜(14)のゲームシステムにおいて行われるゲーム処理方法の形態で実施されてもよい。
【発明の効果】
【0042】
本発明によれば、ハンドヘルドデバイスの動きに基づいて制御面の姿勢を算出し、算出した姿勢とタッチデータとによって3次元のゲーム空間内における制御方向を特定することによって、タッチパネルあるいはタッチパッド等のポインティングデバイスを用いて3次元空間内の方向を指示することを容易にすることができる。また、プレイヤが入力した方向を直感的に認識することができる。
【図面の簡単な説明】
【0043】
【図1】ゲームシステムの外観図
【図2】ゲーム装置の内部構成を示すブロック図
【図3】操作装置の外観構成を示す斜視図
【図4】コントローラの外観構成を示す斜視図
【図5】コントローラの内部構造を示す図
【図6】コントローラの内部構造を示す図
【図7】操作装置の構成を示すブロック図
【図8】ハンドヘルドデバイスの外観構成を示す図
【図9】ハンドヘルドデバイスの内部構成を示すブロック図
【図10】第1の実施例におけるテレビの画面とハンドヘルドデバイスとを示す図
【図11】ハンドヘルドデバイスの姿勢と制御面の姿勢との関係を示す図
【図12】ハンドヘルドデバイスのタッチパネルに線が描かれる様子を示す図
【図13】図12に示す線がタッチパネルに描かれた場合に制御面上において算出される制御位置および制御方向を示す図
【図14】ゲーム処理において用いられる各種データを示す図
【図15】ゲーム装置において実行されるゲーム処理の流れを示すメインフローチャート
【図16】ゲーム制御処理の詳細な流れを示すフローチャート
【図17】第1の実施例におけるテレビの画面とハンドヘルドデバイスとを示す図
【図18】ゲーム空間における仮想カメラと制御面とを示す図
【図19】第2の実施例におけるゲーム制御処理の詳細な流れを示すフローチャート
【図20】制御面の位置および姿勢が変化する様子を示す図
【図21】上記実施形態の変形例における端末装置の外観構成を示す図
【図22】上記実施形態の変形例における端末装置の外観構成を示す図
【図23】ユーザが端末装置を横向きで把持した様子を示す図
【図24】ユーザが端末装置を横向きで把持した様子を示す図
【図25】ユーザが端末装置を縦向きで把持した様子を示す図
【図26】ユーザが端末装置を縦向きで把持した様子を示す図
【図27】図21に示す端末装置の内部構成を示すブロック図
【発明を実施するための形態】
【0044】
[1.ゲームシステムの全体構成]
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表されるディスプレイ装置(以下、「テレビ」と記載する)2、ゲーム装置3、光ディスク4、操作装置7、マーカ装置8、および、ハンドヘルドデバイス9を含む。ゲームシステム1は、操作装置7およびハンドヘルドデバイス9を用いたゲーム操作に基づいてゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/またはハンドヘルドデバイス9の表示装置(図8に示す下側LCD62)に表示するものである。
【0045】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラム)が記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
【0046】
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置3と表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
【0047】
テレビ2の画面の周辺(図1では画面の上側)には、マーカ装置8が設置される。詳細は後述するが、ユーザは操作装置7を動かすゲーム操作を行うことができ、マーカ装置8は、操作装置7の動きをゲーム装置3が検出するために用いられる。マーカ装置8は、その両端に2つのマーカ8Rおよび8Lを備えている。マーカ8R(マーカ8Lも同様)は、具体的には1以上の赤外LED(Light Emitting Diode)であり、テレビ2の前方に向かって赤外光を出力する。マーカ装置8はゲーム装置3に接続されており、ゲーム装置3はマーカ装置8が備える各赤外LEDの点灯を制御することが可能である。なお、図1ではマーカ装置8がテレビ2の上に設置された態様を表しているが、マーカ装置8を設置する位置および向きは任意である。
【0048】
操作装置7は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に与えるものである。以下では、操作装置7がゲーム装置3へ送信する操作データを「第1操作データ」と呼ぶ。本実施形態では、操作装置7はコントローラ5とジャイロセンサユニット6とを含む。詳細は後述するが、操作装置7は、コントローラ5に対してジャイロセンサユニット6が着脱可能に接続されている構成である。なお、コントローラ5にジャイロセンサが内蔵されている構成であってもよい。コントローラ5とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。
【0049】
ハンドヘルドデバイス9は、本実施形態では携帯型のゲーム装置であり、表示装置(後述する各LCD62および72)および入力装置(後述するタッチパネル63や加速度センサ89等)等を備える。ハンドヘルドデバイス9は、ゲーム装置3と無線(有線であってもよい)により通信可能である。ハンドヘルドデバイス9は、ゲーム処理の結果得られるゲーム画像およびゲーム音声をゲーム装置3から受信し、ゲーム画像を表示装置に表示するとともにゲーム音声をマイクから出力する。また、ハンドヘルドデバイス9は、自機に対して行われた操作の内容を表す操作データをゲーム装置3へ送信する。以下では、ハンドヘルドデバイス9がゲーム装置3へ送信する操作データを「第2操作データ」と呼ぶ。
【0050】
なお、本実施形態においてはハンドヘルドデバイス9は携帯型のゲーム装置であるとするが、他の実施形態においては、ハンドヘルドデバイス9は、表示装置および入力装置を備え、ユーザが把持可能な機器(コントローラ)であればよい。すなわち、ハンドヘルドデバイス9は、ゲーム処理(ゲームプログラム)を実行する機能を有していなくてもよい。また、本実施形態のハンドヘルドデバイス9は図1で示すように表示装置が2つ備えられている携帯型のゲーム装置であるが、表示装置が1つの携帯型ゲーム装置でもよいし、表示装置を1つ備えるゲームコントローラであってもよい。
【0051】
[2.ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPU(Central Processing Unit)10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0052】
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSIの内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
【0053】
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM(Video RAM)11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0054】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0055】
ここで、本実施形態においては、ゲーム装置3は、テレビ2に表示するゲーム画像と、ハンドヘルドデバイス9の表示装置(下側LCD62および上側LCD72)に表示するゲーム画像との両方を生成する。以下では、テレビ2に表示されるゲーム画像を「第1ゲーム画像」と呼び、ハンドヘルドデバイス9に表示されるゲーム画像を「第2ゲーム画像」と呼ぶ。
【0056】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。
【0057】
上記のように生成された画像データ(第1ゲーム画像のデータ)および音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音が出力される。
【0058】
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、コントローラ通信モジュール19、拡張コネクタ20、メモリカード用コネクタ21、画像圧縮部27に接続される。ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。画像圧縮部27は高速無線通信モジュール28に接続され、高速無線通信モジュール28にはアンテナ29が接続される。高速無線通信モジュール28には、コントローラ通信モジュール19が接続される。
【0059】
入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続し、ネットワークに接続される他のゲーム装置や、各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0060】
入出力プロセッサ11aは、操作装置7から送信される第1操作データをアンテナ23およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。また、入出力プロセッサ11aは、ハンドヘルドデバイス9から送信される第2操作データをアンテナ29、高速無線通信モジュール28、およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0061】
入出力プロセッサ11aは、ハンドヘルドデバイス9へゲーム画像(第2ゲーム画像)を送信する場合、GPU11bが生成したゲーム画像のデータを画像圧縮部27へ出力する。画像圧縮部27は、入出力プロセッサ11aからの画像データに対して所定の圧縮処理を行う。高速無線通信モジュール28は、ハンドヘルドデバイス9との間で無線通信を行う。したがって、画像圧縮部27によって圧縮された画像データは、高速無線通信モジュール28によってアンテナ29を介してハンドヘルドデバイス9へ送信される。なお、本実施形態では、ゲーム装置3からハンドヘルドデバイス9へ送信される画像データはゲームに用いるものであり、ゲームにおいては表示される画像に遅延が生じるとゲームの操作性に悪影響が出る。そのため、ゲーム装置3からハンドヘルドデバイス9への画像データの送信に関しては、できるだけ遅延が生じないようにすることが好ましい。したがって、本実施形態では、画像圧縮部27は、例えばH.264規格といった高効率の圧縮技術を用いて画像データを圧縮する。なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には無圧縮で画像データを送信する構成であってもよい。また、高速無線通信モジュール28は、例えばWi−Fiの認証を受けた通信モジュールであり、例えばIEEE802.11n規格で採用されるMIMO(Multiple Input Multiple Output)の技術を用いてハンドヘルドデバイス9との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
【0062】
なお、上記においては、ゲーム装置3からハンドヘルドデバイス9へ画像データを送信する点について説明したが、本実施形態においては、画像データとともに音声データも送信される。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを画像圧縮部27を介して高速無線通信モジュール28へ出力する。高速無線通信モジュール28は、画像データとともに音声データをアンテナ29を介してハンドヘルドデバイス9へ送信する。なお、音声データに関しては、画像圧縮部27はデータの圧縮処理を行ってもよいし、行わなくてもよい。
【0063】
また、ハンドヘルドデバイス9からゲーム装置3へデータ(具体的には第2操作データ)が送信されてくる場合、高速無線通信モジュール28は、アンテナ29を介して当該データを受信する。受信されたデータは入出力プロセッサ11aによって取得される。なお、本実施形態においては、ハンドヘルドデバイス9からゲーム装置3へのデータは圧縮処理が行われていないので、当該データに対して伸張処理は行われないが、他の実施形態においては、ハンドヘルドデバイス9側で圧縮処理を行い、ゲーム装置3側で伸張処理を行うようにしてもよい。
【0064】
入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
【0065】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタを経てゲーム装置3の各構成要素に対して電源が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0066】
なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記画像圧縮部27、高速無線通信モジュール28およびアンテナ29の各構成要素を備えており、拡張コネクタ20に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置をハンドヘルドデバイス9と通信可能な構成とすることができる。
【0067】
[3.操作装置7の構成]
次に、図3〜図7を参照して、操作装置7(コントローラ5およびジャイロセンサユニット6)について説明する。図3は、操作装置7の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、操作装置7の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
【0068】
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。プレイヤは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢(傾き)を変えることによってゲーム操作を行うことができる。
【0069】
ハウジング31には、複数の操作ボタンが設けられる。図3に示すように、ハウジング31の上面には、十字ボタン32a、1番ボタン32b、2番ボタン32c、Aボタン32d、マイナスボタン32e、ホームボタン32f、プラスボタン32g、および電源ボタン32hが設けられる。本明細書では、これらのボタン32a〜32hが設けられるハウジング31の上面を「ボタン面」と呼ぶことがある。一方、図4に示すように、ハウジング31の下面には凹部が形成されており、当該凹部の後面側傾斜面にはBボタン32iが設けられる。これらの各操作ボタン32a〜32iには、ゲーム装置3が実行する情報処理プログラムに応じた機能が適宜割り当てられる。また、電源ボタン32hは遠隔からゲーム装置3本体の電源をオン/オフするためのものである。ホームボタン32fおよび電源ボタン32hは、その上面がハウジング31の上面に埋没している。これによって、プレイヤがホームボタン32fまたは電源ボタン32hを誤って押下することを防止することができる。
【0070】
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、ジャイロセンサユニット6や他のコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
【0071】
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のメインコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をプレイヤに通知したり、コントローラ5の電池残量をプレイヤに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
【0072】
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ8Rおよび8Lからの赤外光を少なくとも透過する材質で構成される。
【0073】
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ49(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
【0074】
次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
【0075】
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ49等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
【0076】
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
【0077】
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ48が設けられている。バイブレータ48は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ48が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているプレイヤの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ48は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ48がコントローラ5の中心よりも端側に配置することによって、バイブレータ48の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ49に音声信号を出力するアンプ等を備えている。
【0078】
また、ジャイロセンサユニット6は、3軸回りの角速度を検知するジャイロセンサ(図7に示すジャイロセンサ55および56)を有する。ジャイロセンサユニット6は、コントローラ5のコネクタ33に着脱可能に装着される。ジャイロセンサユニット6の前端(図3に示すZ軸正方向側の端部)には、コネクタ33に接続可能なプラグ(図7に示すプラグ53)が設けられる。さらに、プラグ53の両側にはフック(図示せず)が設けられる。ジャイロセンサユニット6がコントローラ5に対して装着される状態では、プラグ53がコネクタ33に接続されるとともに、上記フックがコントローラ5の係止穴33aに係止する。これによって、コントローラ5とジャイロセンサユニット6とがしっかりと固定される。また、ジャイロセンサユニット6は側面(図3に示すX軸方向の面)にボタン51を有している。ボタン51は、それを押下すれば上記フックの係止穴33aに対する係止状態を解除することができるように構成されている。したがって、ボタン51を押下しながらプラグ53をコネクタ33から抜くことによって、ジャイロセンサユニット6をコントローラ5から離脱することができる。
【0079】
また、ジャイロセンサユニット6の後端には、上記コネクタ33と同形状のコネクタが設けられる。したがって、コントローラ5(のコネクタ33)に対して装着可能な他の機器は、ジャイロセンサユニット6のコネクタに対しても装着可能である。なお、図3においては、当該コネクタに対してカバー52が着脱可能に装着されている。
【0080】
なお、図3〜図6に示したコントローラ5およびジャイロセンサユニット6の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であっても、本発明を実現することができる。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【0081】
図7は、操作装置7(コントローラ5およびジャイロセンサユニット6)の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、コネクタ33、撮像情報演算部35、通信部36、および加速度センサ37を備えている。コントローラ5は、自機に対して行われた操作内容を表すデータを第1操作データとしてゲーム装置3へ送信するものである。
【0082】
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を表す操作ボタンデータを通信部36のマイコン42へ出力する。
【0083】
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
【0084】
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、テレビ2の表示画面近傍に配置されるマーカ装置8のマーカ8Rおよび8Lは、テレビ2の前方に向かって赤外光を出力する赤外LEDで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、マーカ8Rおよび8Lの画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象(マーカ8Rおよび8L)の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって第1操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
【0085】
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
【0086】
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。例えば、3軸または2軸の加速度センサは、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ37は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
【0087】
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、操作装置7(コントローラ5)を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトルとして表される。
【0088】
加速度センサ37が検出した加速度を表すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。
【0089】
なお、加速度センサ37(後述する加速度センサ89についても同様)から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
【0090】
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0091】
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。また、マイコン42はコネクタ33に接続されている。ジャイロセンサユニット6から送信されてくるデータは、コネクタ33を介してマイコン42に入力される。以下、ジャイロセンサユニット6の構成について説明する。
【0092】
ジャイロセンサユニット6は、プラグ53、マイコン54、2軸ジャイロセンサ55、および1軸ジャイロセンサ56を備えている。上述のように、ジャイロセンサユニット6は、3軸(本実施形態では、XYZ軸)周りの角速度を検出し、検出した角速度を表すデータ(角速度データ)をコントローラ5へ送信する。
【0093】
2軸ジャイロセンサ55は、X軸周りの角速度およびZ軸周りの(単位時間あたりの)角速度を検出する。また、1軸ジャイロセンサ56は、Y軸周りの(単位時間あたりの)角速度を検出する。なお、本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、XYZ軸周りの回転方向を、それぞれ、ピッチ方向、ヨー方向、ロール方向と呼ぶ。すなわち、2軸ジャイロセンサ55は、ピッチ方向(X軸周りの回転方向)およびロール方向(Z軸周りの回転方向)の角速度を検出し、1軸ジャイロセンサ56は、ヨー方向(Y軸周りの回転方向)の角速度を検出する。
【0094】
なお、本実施形態では、3軸回りの角速度を検出するために、2軸ジャイロセンサ55と1軸ジャイロセンサ56とを用いる構成としたが、他の実施形態においては、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。
【0095】
各ジャイロセンサ56および57で検出された角速度を表すデータは、マイコン54に出力される。したがって、マイコン54には、XYZ軸の3軸回りの角度速度を表すデータが入力されることになる。マイコン54は、上記3軸回りの角速度を表すデータを角速度データとしてプラグ53を介してコントローラ5へ送信する。なお、マイコン54からコントローラ5への送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【0096】
コントローラ5の説明に戻り、操作部32、撮像情報演算部35、および加速度センサ37からマイコン42へ出力されたデータ、ならびに、ジャイロセンサユニット6からマイコン42へ送信されてきたデータは、一時的にメモリ43に格納される。これらのデータは、上記第1操作データとしてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3のコントローラ通信モジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを第1操作データとして無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を第1操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、第1操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側のコントローラ通信モジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は第1操作データを取得することができる。そして、ゲーム装置3のCPU10は、操作装置7から取得した第1操作データと、ハンドヘルドデバイス9から取得した第2操作データと、ゲームプログラムとに基づいてゲーム処理を行う。なお、通信部36からコントローラ通信モジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で第1操作データをゲーム装置3のコントローラ通信モジュール19へ出力する。
【0097】
以上のように、操作装置7は、自機に対する操作を表す第1操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。また、ゲーム装置3が上記第1操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記操作装置7を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、操作装置7自体を動かすゲーム操作を行うことができる。例えば、操作装置7を任意の姿勢に傾ける操作、操作装置7によって画面上の任意の位置を指示する操作、および、操作装置7自体を動かす操作等を行うことが可能となる。
【0098】
また、本実施形態において、操作装置7は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。
【0099】
[4.ハンドヘルドデバイス9の外観構成]
図8は、ハンドヘルドデバイス9の外観構成を示す図である。図8に示されるように、ハンドヘルドデバイス9は、下側ハウジング61および上側ハウジング71を有する。下側ハウジング61と上側ハウジング71とは、開閉可能(折り畳み可能)に接続されている。本実施形態では、各ハウジング61および71はともに横長の長方形の板状形状であり、互いの長辺部分で回転可能に接続されている。つまり、下側ハウジング61と上側ハウジング71とは、下側ハウジング61の突起部61Aと上側ハウジング71の突起部71Aとが連結されることにより、折り畳み可能に接続される。
【0100】
(下側ハウジングの説明)
まず、下側ハウジング61の構成について説明する。図8に示すように、下側ハウジング61には、下側LCD(Liquid Crystal Display:液晶表示装置)62、タッチパネル63、各操作ボタン64A〜64L、アナログスティック65、LED66A〜66B、挿入口67、および、マイクロフォン用孔68が設けられる。以下、これらの詳細について説明する。
【0101】
下側LCD62は下側ハウジング61に収納される。本実施形態においては下側LCD62の画素数は例えば256dot×192dot(横×縦)とするが、任意の解像度の表示装置を利用することができる。また、本実施形態では表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置など、他の任意の表示装置を利用してもよい。
【0102】
タッチパネル63は、下側LCD62の画面上に装着されている。なお、本実施形態では、タッチパネル63は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル63はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル63として、下側LCD62の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル63の解像度と下側LCD62の解像度が一致している必要はない。また、下側ハウジング61の上側面には挿入口67(図8に示す点線)が設けられている。挿入口67は、タッチパネル63に対する操作を行うために用いられるタッチペン78を収納することができる。なお、タッチパネル63に対する入力は通常タッチペン78を用いて行われるが、タッチペン78に限らずユーザの指でタッチパネル63に対する入力をすることも可能である。
【0103】
各操作ボタン64A〜64Lは、所定の入力を行うための入力装置である。図8に示されるように、下側ハウジング61の内側面(主面)には、各操作ボタン64A〜64Lのうち、十字ボタン64A(方向入力ボタン64A)、ボタン64B、ボタン64C、ボタン64D、ボタン64E、電源ボタン64F、セレクトボタン64J、HOMEボタン64K、およびスタートボタン64Lが設けられる。十字ボタン64Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン64A〜64E、セレクトボタン64J、HOMEボタン64K、およびスタートボタン64Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン64Aは選択操作等に用いられ、各操作ボタン64B〜64Eは決定操作やキャンセル操作等に用いられる。また、電源ボタン64Fは、ハンドヘルドデバイス9の電源をオン/オフするために用いられる。
【0104】
また、図示しないが、下側ハウジング61の上側面には、LボタンおよびRボタンが設けられている。Lボタンは、下側ハウジング61の上面の左端部に設けられ、Rボタンは、下側ハウジング61の上面の右端部に設けられる。また、図示しないが、下側ハウジング61の左側面には、音量ボタンが設けられる。音量ボタンは、ハンドヘルドデバイス9が備えるスピーカの音量を調整するために用いられる。
【0105】
アナログスティック65は、方向を指示するデバイスであり、下側ハウジング61の内側面に設けられる。図8に示すように、アナログスティック65は、十字ボタン64Aの上方に設けられる。アナログスティック65は、指で操作されるスティック部が下側ハウジング61の内側面に対して任意の方向(上下左右および斜め方向の任意の角度)に傾倒するように構成されている。
【0106】
また、下側ハウジング61の左側面には開閉可能なカバー部が設けられる。このカバー部の内側には、ハンドヘルドデバイス9とデータ保存用外部メモリ96とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ96は、コネクタに着脱自在に装着される。データ保存用外部メモリ96は、例えば、ハンドヘルドデバイス9によって撮像された画像のデータを記憶(保存)するために用いられる。
【0107】
また、下側ハウジング61の上側面には開閉可能なカバー部が設けられる。このカバー部の内側には、ハンドヘルドデバイス9とゲームプログラムを記録した外部メモリ95とを電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ95がハンドヘルドデバイス9に接続されることにより、所定のゲームプログラムが実行される。
【0108】
また、図8に示されるように、下側ハウジング61の下側面にはハンドヘルドデバイス9の電源のON/OFF状況をユーザに通知する第1LED66Aが設けられる。さらに、下側ハウジング61の右側面にはハンドヘルドデバイス9の無線通信の確立状況をユーザに通知する第2LEDが設けられる。ハンドヘルドデバイス9は他の機器との間で無線通信を行うことが可能であり、第2LED66Bは、無線通信が確立している場合に点灯する。ハンドヘルドデバイス9は、例えば、IEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング61の右側面には、この無線通信の機能を有効/無効にする無線スイッチが設けられる。
【0109】
また、下側ハウジング61の内側面には、マイクロフォン用孔68が設けられる。マイクロフォン用孔68の下部には後述する音声入力装置としてのマイク(図9参照)が設けられ、当該マイクがハンドヘルドデバイス9の外部の音を検出する。
【0110】
なお、図示は省略するが、下側ハウジング61には、ハンドヘルドデバイス9の電源となる充電式電池が収納され、下側ハウジング61の側面(例えば、上側面)に設けられた端子を介して当該電池を充電することができる。
【0111】
(上側ハウジングの説明)
次に、上側ハウジング71の構成について説明する。図8に示すように、上側ハウジング71には、上側LCD72、外側カメラ73(左目用カメラ73aおよび右目用カメラ73b)、内側カメラ74、3D調整スイッチ75、および、3Dインジケータ76が設けられる。以下、これらの詳細について説明する。
【0112】
図8に示すように、上側LCD72は上側ハウジング71に収納される。本実施形態においては、上側LCD72の画面は下側LCD62の画面よりも横長に設定され、上側LCD72の画素数は、例えば640dot×200dot(横×縦)である。ただし、他の実施形態においては、上側LCD72として任意の解像度の表示装置を利用することができる。また、本実施形態では上側LCD72は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。
【0113】
また、本実施形態においては、上側LCD72は、(裸眼で)立体視可能な画像を表示することが可能な表示装置である。具体的には、本実施形態では、上側LCD72において横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるように、レンチキュラー方式やパララックスバリア方式(視差バリア方式)の表示装置が上側LCD72として用いられる。ただし、他の実施形態においては、上側LCD72は必ずしも立体視可能な画像を表示することが可能な表示装置でなくてもよい。なお、本実施形態においては、上側LCD72は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、後述する3D調整スイッチ75によって行われる。
【0114】
外側カメラ73は、上側ハウジング71の外側面(上側LCD72が設けられた主面と反対側の背面)に設けられ、当該外側面の法線方向を撮像方向とするステレオカメラである。外側カメラ73は、左目用カメラ73aおよび右目用カメラ73bの2つのカメラで構成される。左目用カメラ73aおよび右目用カメラ73bは、それぞれの撮像方向が平行となるように配置される。左目用カメラ73aおよび右目用カメラ73bは、それぞれ所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。左目用カメラ73aおよび右目用カメラ73bの間隔は、人間の両目の間隔程度に設定され、例えば、30mm〜70mmの範囲で設定されてもよい。なお、左目用カメラ73aおよび右目用カメラ73bの間隔は、この範囲に限らない。また、他の実施形態においては、上記2つのカメラ73aおよび73bの間隔は可変であってもよい。上記外側カメラ73によって、立体視可能な画像を撮像することができる。
【0115】
内側カメラ74は、上側ハウジング71の内側面(主面)71Bに設けられ、当該内側面の法線方向を撮像方向とするカメラである。内側カメラ74は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。内側カメラ74は、外側カメラ73とは反対方向を撮像するので、ユーザが上側LCD72を正視した際、内側カメラ74でユーザの顔を正面から撮像することができる。
【0116】
3D調整スイッチ75は、スライドスイッチであり、上述のように上側LCD72の表示モードを切り替えるために用いられるスイッチである。3D調整スイッチ75は、上側LCD72に表示された立体視可能な画像(立体画像)の立体感を調整するために用いられる。図8に示されるように、3D調整スイッチ75は、上側ハウジング71の内側面および右側面の端部に設けられ、ユーザが上側LCD72を正視した場合に、当該3D調整スイッチ75を視認できる位置に設けられる。3D調整スイッチ75には上下方向にスライド可能なスライダが設けられており、スライダの位置に応じて立体画像の立体感が調整される。ここでは、スライダが最下点の位置に存在する場合、上側LCD72は平面表示モードに設定され、スライダが最下点より上側の所定位置から最上点の位置までの間に存在する場合、上側LCD72は立体表示モードに設定される。また、スライダが上記所定位置から最上点の位置までの間に存在する場合、スライダの位置に応じて、立体画像の見え方が調整される。
【0117】
3Dインジケータ76は、上側LCD72が立体表示モードか否かを示す。3Dインジケータ76は、LEDであり、上側LCD72の立体表示モードが有効の場合に点灯する。
【0118】
また、上側ハウジング71の内側面には、スピーカ孔71Eが設けられる。後述するスピーカ93からの音声がこのスピーカ孔71Eから出力される。
【0119】
[5.ハンドヘルドデバイス9の内部構成]
次に、図9を参照して、ハンドヘルドデバイス9の内部の電気的構成について説明する。図9は、ハンドヘルドデバイス9の内部構成を示すブロック図である。図9に示すように、ハンドヘルドデバイス9は、上述した各部に加えて、情報処理部81、メインメモリ82、外部メモリインターフェイス(外部メモリI/F)83、データ保存用外部メモリI/F84、データ保存用内部メモリ85、無線通信モジュール86、ローカル通信モジュール87、リアルタイムクロック(RTC)38、加速度センサ89、ジャイロセンサ90、電源回路94、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング61(または上側ハウジング71でもよい)内に収納される。
【0120】
情報処理部81は、所定のプログラムを実行するためのCPU811、画像処理を行うGPU812等を含む情報処理手段である。本実施形態では、所定の処理を実行するためのプログラムがハンドヘルドデバイス9内のメモリ(例えば外部メモリI/F83に接続された外部メモリ95やデータ保存用内部メモリ85)に記憶されている。情報処理部81のCPU811は、当該プログラムを実行することによって、当該プログラムに応じた処理(例えば、撮影処理や、後述する画像表示処理など)を実行する。なお、情報処理部81のCPU811によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部81は、VRAM813を含む。情報処理部81のGPU812は、情報処理部81のCPU811からの命令に応じて画像を生成し、VRAM813に描画する。そして、情報処理部81のGPU812は、VRAM813に描画された画像を上側LCD72及び/又は下側LCD62に出力し、上側LCD72及び/又は下側LCD62に当該画像が表示される。なお、画像データが外部(ゲーム装置3)から取得される場合には、取得された画像データがVRAM813に記憶され、上側LCD72及び/又は下側LCD62に画像が表示される。
【0121】
情報処理部81には、メインメモリ82、外部メモリI/F83、データ保存用外部メモリI/F84、および、データ保存用内部メモリ85が接続される。外部メモリI/F83は、外部メモリ95を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F84は、データ保存用外部メモリ96を着脱自在に接続するためのインターフェイスである。
【0122】
メインメモリ82は、情報処理部81(のCPU811)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ82は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ95や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ82として例えばPSRAM(Pseudo−SRAM)を用いる。
【0123】
外部メモリ95は、情報処理部81によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ95は、例えば読み取り専用の半導体メモリで構成される。外部メモリ95が外部メモリI/F83に接続されると、情報処理部81は外部メモリ95に記憶されたプログラムを読み込むことができる。情報処理部81が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ96は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ96には、外側カメラ73で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ96がデータ保存用外部メモリI/F84に接続されると、情報処理部81はデータ保存用外部メモリ96に記憶された画像を読み込み、上側LCD72及び/又は下側LCD62に当該画像を表示することができる。
【0124】
データ保存用内部メモリ85は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ85には、無線通信モジュール86を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【0125】
無線通信モジュール86は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール87は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール86およびローカル通信モジュール87は情報処理部81に接続される。情報処理部81は、無線通信モジュール86を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール87を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0126】
本実施形態においては、ゲーム装置3とハンドヘルドデバイス9との通信は、上記無線通信モジュール86によって行われる。また、情報処理部81は、図示しない画像伸張部を有している。画像伸張部は、無線通信モジュール86からの画像データ(および音声データ)に対して所定の伸張処理を行う。したがって、ゲーム装置3から画像データ(および音声データ)が送信されてくる場合、無線通信モジュール86によって当該画像データが受信された後、画像伸張部によって所定の伸張処理が行われる。伸張処理が行われた画像データは、CPU811によってVRAM813に適宜記憶されて上側LCD72及び/又は下側LCD62に出力される。
【0127】
また、情報処理部81には、加速度センサ89が接続される。加速度センサ89は、3軸(図8に示すxyz軸)方向に沿った直線加速度の大きさを検出する。本実施形態においては、加速度センサ89は下側ハウジング61の内部に設けられる。加速度センサ89は、下側ハウジング61の長辺方向をx軸、下側ハウジング61の短辺方向をy軸、下側ハウジング61の内側面(主面)に対して垂直な方向をz軸として、各軸の直線加速度の大きさを検出する。例えば、加速度センサ89は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)又はSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能である種類のものでもよい。なお、加速度センサ89は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ89は1軸または2軸方向を検出する加速度センサであってもよい。情報処理部81は、加速度センサ89が検出した加速度を表すデータ(加速度データ)を取得して、ハンドヘルドデバイス9の姿勢や動きを検出することができる。
【0128】
また、情報処理部81には、ジャイロセンサ90が接続される。ジャイロセンサ90は、x軸、y軸およびz軸の3軸周りの角速度を検出する。3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ90はジャイロセンサユニット6と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ90は1軸または2軸方向を検出するジャイロセンサであってもよい。情報処理部81は、ジャイロセンサ90が検出した角速度を表すデータ(角速度データ)を取得して、ハンドヘルドデバイス9の姿勢や動きを検出することができる。
【0129】
以上のように、ハンドヘルドデバイス9は、自身に対する操作を表す操作データとして、加速度データおよび角速度データを取得可能である。したがって、ハンドヘルドデバイス9を用いることによって、プレイヤは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、ハンドヘルドデバイス9自体を動かすゲーム操作を行うことができる。
【0130】
また、情報処理部81には、RTC88および電源回路94が接続される。RTC88は、時間をカウントして情報処理部81に出力する。情報処理部81は、RTC88によって計時された時間に基づき現在時刻(日付)を計算する。電源回路94は、ハンドヘルドデバイス9が有する電源(下側ハウジング61に収納される上記充電式電池)からの電力を制御し、ハンドヘルドデバイス9の各部品に電力を供給する。
【0131】
また、情報処理部81には、I/F回路91が接続される。I/F回路91には、マイク92およびスピーカ93が接続される。具体的には、I/F回路91には、図示しないアンプを介してスピーカ93が接続される。マイク92は、ユーザの音声を検知して音声信号をI/F回路91に出力する。アンプは、I/F回路91からの音声信号を増幅し、音声をスピーカ93から出力させる。また、タッチパネル63はI/F回路91に接続される。I/F回路91は、マイク92およびスピーカ93(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル63からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部81に出力する。タッチ位置データは、タッチパネル63の入力面において入力が行われた位置の座標を表す。なお、タッチパネル制御回路は、タッチパネル63からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部81は、タッチ位置データを取得することにより、タッチパネル63に対して入力が行われた位置を知ることができる。
【0132】
操作ボタン64は、上記各操作ボタン64A〜64LならびにLボタンおよびRボタンからなり、情報処理部81に接続される。操作ボタン64から情報処理部81へは、操作ボタン64に対する入力状況(押下されたか否か)を表す操作ボタンデータが出力される。情報処理部81は、操作ボタン64から上記操作ボタンデータを取得することによって、操作ボタン64に対する入力に従った処理を実行する。
【0133】
アナログスティック65は、情報処理部81に接続され、アナログスティック65の傾倒された方向および量を表すスティックデータを情報処理部81へ出力する。情報処理部81は、アナログスティック65から上記スティックデータを取得することによって、アナログスティック65に対する入力に従った処理を実行する。
【0134】
上記のように、ハンドヘルドデバイス9は、入力装置として、加速度センサ89、ジャイロセンサ90、タッチパネル63、操作ボタン64、およびアナログスティック65という5種類の入力手段を備えている。ただし、他の実施形態においては、ハンドヘルドデバイス9が備える入力装置はどのようなものであってもよい。例えば、ハンドヘルドデバイス9は、上記5種類の入力手段のいずれか1つ以上を備えていてもよい。また例えば、ハンドヘルドデバイス9は、タッチパッドを備えていてもよいし、コントローラ5と同様の赤外光検知手段(赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41)を備えていてもよい。
【0135】
ハンドヘルドデバイス9の入力装置に対する操作を表す第2操作データは、ゲーム装置3へ送信される。ここで、第2操作データは、加速度センサ89の加速度データ、ジャイロセンサ90の角速度データ、上記タッチ位置データ、操作ボタンデータ、および、スティックデータを含む。情報処理部81は、無線通信モジュール86を介してハンドヘルドデバイス9へ第2操作データを無線送信する。なお、ハンドヘルドデバイス9からゲーム装置3への第2操作データの送信は所定の周期毎に逐次行われるが、コントローラ5からゲーム装置3への第1操作データの送信と同様、1フレーム時間以下の周期で行われることが好ましい。
【0136】
下側LCD62および上側LCD72は情報処理部81に接続される。下側LCD62および上側LCD72は、情報処理部81(のGPU812)の指示に従って画像を表示する。本実施形態では、情報処理部81は、上側LCD72に右目用画像と左目用画像とを用いた立体画像(立体視可能な画像)を表示させることも可能である。
【0137】
外側カメラ73および内側カメラ74は、情報処理部81に接続される。外側カメラ73および内側カメラ74は、情報処理部81の指示に従って画像を撮像し、撮像した画像データを情報処理部81に出力する。
【0138】
3D調整スイッチ75は、情報処理部81に接続される。3D調整スイッチ75は、スライダ25aの位置に応じた電気信号を情報処理部81に送信する。
【0139】
また、3Dインジケータ76は、情報処理部81に接続される。情報処理部81は、3Dインジケータ76の点灯を制御する。例えば、情報処理部81は、上側LCD72が立体表示モードである場合、3Dインジケータ76を点灯させる。以上がハンドヘルドデバイス9の内部構成の説明である。
【0140】
[6.ゲーム処理の概要]
次に、本ゲームシステムにおいて実行されるゲーム処理の概要について説明する。本実施形態では、プレイヤがハンドヘルドデバイス9を操作して仮想のゲーム空間内のオブジェクトを移動させるゲームを実行するゲーム処理について説明する。以下では、オブジェクトの移動方向を操作する方法が異なる2種類のゲームを実施例として説明を行う。
【0141】
なお、以下に示す2種類のゲームにおいては、操作装置7はゲーム操作に使用されず、操作装置7からの第1操作データはゲーム処理に用いられない。つまり、ゲームシステム1は、操作装置7を有しない構成であってもよい。また、他の実施形態においては、ゲーム処理は、ハンドヘルドデバイス9と操作装置7との両方をゲーム操作に用いるものであってもよい。
【0142】
(第1の実施例におけるゲームの概要)
まず、第1の実施例におけるゲームの概要について説明する。このゲームは、ハンドヘルドデバイス9を操作することによってゲーム空間内においてオブジェクト(手裏剣)を飛ばすゲームである。プレイヤは、ハンドヘルドデバイス9の姿勢を変化させるとともに、タッチパネル63上に線を描く操作によって、手裏剣を発射する方向(および速さ)を指示することができる。なお、本実施例において、線を描く操作とは、指やタッチペンによってタッチパネルやタッチパッド上をタッチして、タッチしたまま線を描くような動作でタッチ位置を面上で動かす操作を意味し、実際に線が描画される必要はない。
【0143】
図10は、第1の実施例におけるテレビ2の画面とハンドヘルドデバイス9とを示す図である。図10においては、テレビ2およびハンドヘルドデバイス9の下側LCD62には、ゲーム画像としてゲーム空間の画像が表示されている。テレビ2には、手裏剣101、制御面102、および標的103が表示されている。下側LCD62には、制御面102(および手裏剣101)が表示されている。第1の実施例においては、プレイヤは、ハンドヘルドデバイス9を用いた操作によって手裏剣101を飛ばして標的103に当てて遊ぶ。
【0144】
手裏剣101を飛ばす場合、プレイヤは、まず、ハンドヘルドデバイス9の姿勢を操作することによって制御面102の姿勢を変化させて所望の姿勢にする。さらに、プレイヤは、図10に示すように、タッチパネル63上に線を描く操作を行う。この操作によって制御面102上での方向が決定され、この方向に手裏剣101が発射される。第1の実施例においては、プレイヤは、これらの操作によって手裏剣101を所望の方向へ飛ばすことができる。なお、図10では、ハンドヘルドデバイス9を縦向きにして使用する様子を示しているが、ハンドヘルドデバイス9は横向きに使用されてもよく、任意の姿勢で使用されることができる。
【0145】
本実施形態においては、制御面102の姿勢はハンドヘルドデバイス9の姿勢に応じて決定される。図11は、ハンドヘルドデバイス9の姿勢と制御面102の姿勢との関係を示す図である。図11の表の上欄に示すように、ハンドヘルドデバイス9のタッチパネル63の入力面が水平となる場合、ゲーム空間において制御面102は水平に配置される。また、図11の表の中欄に示すように、ハンドヘルドデバイス9が前後方向を軸として回転した(具体的には、右側が下がるように傾いた)場合、制御面102は前後方向を軸として回転して(具体的には、右側が下がるように傾いて)配置される。さらに、図11の表の下欄に示すように、ハンドヘルドデバイス9が左右方向を軸として回転した(具体的には、後側が下がるように傾いた)場合、制御面102は左右方向に回転して(具体的には、後側が下がるように傾いて)配置される。なお、図示していないが、ハンドヘルドデバイス9が上下方向を軸として回転した場合には、制御面102も上下方向を軸として回転して配置される。このように、制御面102の姿勢は、ハンドヘルドデバイス9の姿勢に対応するように制御される。なお、本実施形態においては、制御面102の位置は、ゲーム空間における所定位置に固定される。
【0146】
手裏剣101の発射方向は、上記のようにして姿勢が決定された制御面102上において方向を決定することで決められる。つまり、3次元のゲーム空間内における姿勢が設定された制御面102上において方向を決定することによって、3次元のゲーム空間内での方向が決定されることとなる。ここで、制御面102上における方向は、ハンドヘルドデバイス9のタッチパネル63に入力される線(入力軌跡)に基づいて算出される。
【0147】
図12は、ハンドヘルドデバイス9のタッチパネル63に線が描かれる様子を示す図である。また、図13は、図12に示す線がタッチパネル63に描かれた場合に制御面102上において算出される制御位置および制御方向を示す図である。図12に示すように、ハンドヘルドデバイス9の下側LCD62には、制御面102が表示される。ここでは、タッチパネル63の入力面と制御面102とが画面上において一致する(すなわち、画面いっぱいに制御面102が表示される)ように制御面102が表示される。
【0148】
手裏剣101を発射する場合、プレイヤは、図12に示すように、タッチパネル63に対して線を描く操作を行う。なお、本実施形態においては、タッチパネル63に対する入力が行われている場合、タッチ位置に手裏剣101が表示される。なお、図12ではプレイヤによって描かれた線を点線で表しているが、この線は実際には表示されなくてもよい。
【0149】
プレイヤによって線が描かれる場合、すなわち、タッチパネル63に対する入力があった場合、ゲーム装置3は、タッチ位置に対応する制御面102上の位置(「制御位置」と呼ぶ)を算出する。制御位置は、下側LCD62の画面上においてタッチ位置に対応する(制御面102上における)位置として算出される。図13において、点線は、入力面上に描かれた線に対応する(制御面102上における)線を示す。制御位置は、例えば図13に示す点P1〜P4のように、この線上の位置に算出される。なお、ゲーム装置3は、タッチパネル63に対する入力が行われる間(線が描かれる間)、制御位置の算出を繰り返し実行する。
【0150】
タッチパネル63に対して線を描く入力が終了した場合、ゲーム装置3は、制御位置に基づいて制御方向(図13に示すベクトルv1)を特定する。制御方向は、描かれた線に対応する各制御位置によって表される方向となるように特定される。つまり、制御方向は大略的には線の方向を向くように算出される。詳細は後述するが、本実施形態においては、制御方向は、制御位置の平均速度を表すベクトルとして算出される。なお、制御面102は3次元のゲーム空間内に配置されているので、制御方向も3次元のゲーム空間内における3次元の方向として算出される。これによって、ゲーム空間内における手裏剣101の発射方向が決定されたことになる。
【0151】
上記制御方向が算出されると、手裏剣101が発射される。手裏剣101がゲーム空間内を移動する様子はテレビ2に表示される。本実施形態においては、手裏剣101の姿勢は、制御面102に応じた姿勢となるように決定される。したがって、手裏剣101は、制御面102の姿勢に応じた姿勢で、上記制御方向に向かって発射(移動)される。なお、発射された後における手裏剣101の挙動はどのように決定されてもよい。手裏剣101は、例えば、制御方向に向かって真っ直ぐに移動するように制御されてもよいし、仮想的に重力の影響を加えて時間と共に落下するようにしてもよい。また、回転によって軌道が曲がるようにしてもよい。手裏剣101の姿勢に応じた移動方向となるように(例えば、手裏剣101が右に傾いている場合には右に曲がり、左に傾いている場合には左に曲がるように)制御されてもよい。
【0152】
以上のように、本実施形態においては、プレイヤは、ハンドヘルドデバイス9の姿勢によって制御面102の姿勢を指示し、タッチパネル63に入力される線によって制御面102上での方向を指示することができる。そして、手裏剣101は、指示された制御面102上での方向(制御方向)に移動するように制御される。したがって、本実施形態によれば、プレイヤは、一方の手でハンドヘルドデバイス9の姿勢を実際に調整し、もう一方の手でタッチパネル63に線で方向を入力するので、空間内で実際に方向を入力しているような直感的な操作で容易に方向を指示すことができる。本実施例においては特に、実際に手で画面に向かって手裏剣を放っているような感覚で操作をすることができる。また、ハンドヘルドデバイス9の姿勢の操作とタッチパネル63に対する入力操作とは、同時に並行して行うことができるので、プレイヤは3次元空間における方向を指示する操作を迅速に行うことができる。
【0153】
(第1の実施例におけるゲーム処理)
次に、第1の実施例におけるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図14は、ゲーム処理において用いられる各種データを示す図である。図14において、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図14に示すように、ゲーム装置3のメインメモリには、ゲームプログラム110、第1操作データ111、第2操作データ112、および処理用データ117が記憶される。なお、メインメモリには、図15に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
【0154】
ゲームプログラム110は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム110は、光ディスク4に代えて、ゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム110に含まれる一部(例えば、操作装置7および/またはハンドヘルドデバイス9の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。
【0155】
第1操作データ111は、操作装置7に対するユーザの操作を表すデータである。第1操作データ111は、操作装置7から送信されてゲーム装置3において取得される。なお、本実施形態においては第1操作データ111はゲーム処理に用いられないので詳細は省略するが、第1操作データ111は、加速度データ、角速度データ、マーカ座標データ、および操作ボタンデータを含む。
【0156】
第2操作データ112は、ハンドヘルドデバイス9に対するユーザの操作を表すデータである。第2操作データ112は、ハンドヘルドデバイス9から送信されてゲーム装置3において取得される。第2操作データ112は、加速度データ113、角速度データ114、タッチ位置データ115、および操作ボタンデータ116を含む。なお、メインメモリには、最新の(最後に取得された)ものから順に所定個数の第2操作データが記憶されてもよい。
【0157】
加速度データ113は、加速度センサ89によって検出された加速度(加速度ベクトル)を表すデータである。ここでは、加速度データ113は、図8に示すxyzの3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであればよい。
【0158】
角速度データ114は、ジャイロセンサ90によって検出された角速度を表すデータである。ここでは、角速度データ114は、図8に示すxyzの3軸回りのそれぞれの角速度を表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。
【0159】
タッチ位置データ115は、タッチパネル63の入力面において入力が行われた位置(タッチ位置)を表すデータである。ここでは、タッチ位置データ115は、タッチ位置を示すための2次元座標系の座標値を表す。また、タッチパネル63に対する入力が行われていない場合、タッチ位置データ115は、入力がないことを表す。
【0160】
操作ボタンデータ116は、ハンドヘルドデバイス9に設けられる各操作ボタン64A〜64Lに対する入力状態を表すデータである。
【0161】
なお、第2操作データ112は、入力面に対するプレイヤの入力位置を表すデータ(本実施形態においてはタッチ位置データ115)と、ハンドヘルドデバイス9の動きに応じて値が変化するデータ(本実施形態においては加速度データ113および角速度データ114)とを含むものであればよい。したがって、第2操作データ112は、操作ボタンデータ116を含まないものでもよいし、加速度データ113と角速度データ114とのいずれか一方のみを含むものでもよい。つまり、ハンドヘルドデバイス9は、操作ボタン64を備えていない構成であってもよいし、加速度センサ89およびジャイロセンサ90のいずれか一方のみを備える構成であってもよい。また、ハンドヘルドデバイス9は、加速度センサ89およびジャイロセンサ90に代えて上記撮像情報演算部35を備えることにより、加速度データ113および角速度データ114に代えてマーカ座標データを第2操作データ112に含むものであってもよい。
【0162】
処理用データ117は、後述するゲーム処理(図15)において用いられるデータである。処理用データ117は、姿勢データ118、第1カメラデータ119、第2カメラデータ120、制御面データ121、制御位置データ122、制御方向データ123、および、オブジェクトデータ124を含む。なお、処理用データ117は、図14に示すデータの他、各種オブジェクトに設定されるパラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。
【0163】
姿勢データ118は、ハンドヘルドデバイス9の姿勢を表すデータである。本実施形態では、姿勢データ118は、上記第2操作データ112に含まれる加速度データ113および角速度データ114に基づいて算出される。姿勢データ118の算出方法については後述する。
【0164】
第1カメラデータ119は、テレビ2に表示される第1ゲーム画像を生成するための第1仮想カメラの配置を表すデータである。具体的には、第1カメラデータ119は、仮想のゲーム空間内における第1仮想カメラの位置および姿勢を表す。なお、第1カメラデータ119には、第1仮想カメラの画角(視野範囲)を表すデータ等が含まれていてもよい。
【0165】
第2カメラデータ120は、ハンドヘルドデバイス9の下側LCD62に表示される第2ゲーム画像を生成するための第2仮想カメラの配置を表すデータである。具体的には、第2カメラデータ120は、上記ゲーム空間内における第2仮想カメラの位置および姿勢を表す。なお、第2カメラデータ120には、第2仮想カメラの画角(視野範囲)を表すデータ等が含まれていてもよい。なお、本実施形態においては、下側LCD62に制御面102が表示されるように、制御面102の位置および姿勢に応じて第2仮想カメラが配置される。
【0166】
制御面データ121は、ゲーム空間における制御面102の位置および姿勢を表すデータである。具体的には、制御面データ121は、制御面102を表す平面の式を表す。なお、本実施形態においては、制御面102の位置は予め定められた位置に固定され、制御面102の姿勢はハンドヘルドデバイス9の姿勢に基づいて算出される。
【0167】
制御位置データ122は、タッチ位置に対応する制御面102上の制御位置を表すデータである。具体的には、制御位置データ122は、ゲーム空間内の位置を示す3次元の座標値を表す。なお、他の実施形態においては、制御位置データ122は、制御面上の位置を表す2次元座標系の座標値を表すものであってもよい。また、本実施形態においては、タッチパネル63に対して連続して入力が行われる場合(すなわち、タッチ位置が連続して検出される場合)、最新のものから順に所定個のタッチ位置に対応する複数個の制御位置を表すデータが制御位置データ122として記憶される。また、タッチパネル63に対する入力が終了した場合、制御位置データ122の内容はリセットされる。
【0168】
制御方向データ123は、手裏剣101の発射方向(移動方向)を決定するための制御方向を表すデータである。具体的には、制御方向データ123は、3次元のゲーム空間内の方向を示す3次元ベクトルを表す。以下では、この制御方向を示すベクトルを「制御方向ベクトル」と呼ぶ。制御方向データ123は、上記制御位置データ122に基づいて算出される。
【0169】
オブジェクトデータ124は、制御方向に基づいて移動されるオブジェクト(本実施形態においては手裏剣101)の状態を表すデータである。具体的には、オブジェクトデータ124は、ゲーム空間における手裏剣101の位置および姿勢を表す。ゲーム装置3は、オブジェクトデータ124に基づいてゲーム空間に手裏剣101を配置し、手裏剣101が配置されたゲーム空間の画像を生成して表示する。
【0170】
次に、ゲーム装置3において行われるゲーム処理の詳細を、図15および図16を用いて説明する。図15は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。なお、ゲーム装置3は、電源投入後に光ディスク4に記憶されたゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムを実行して、その後ユーザによってゲームの開始が指示されたときに光ディスク4に記憶されたゲームプログラムが実行される構成であってもよい。図15に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0171】
なお、図15、図16、および後述する図19に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、上記フローチャートの一部のステップの処理を、CPU10以外のプロセッサや専用回路が実行するようにしてもよい。
【0172】
まずステップS1において、CPU10は初期処理を実行する。初期処理は、仮想空間を構築し、仮想空間に登場する各オブジェクトを初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。本実施形態においては、初期処理において第1仮想カメラの位置および姿勢が設定される。第1仮想カメラの位置および姿勢は、制御面102が撮影範囲(仮想カメラの視体積の範囲)に含まれるように設定される。設定された位置および姿勢を表すデータは、第1カメラデータ119としてメインメモリに記憶される。なお、制御面102の姿勢は可変であるが位置は固定であるので、初期処理において制御面102が撮影範囲に含まれるように第1仮想カメラを設定することは可能である。ステップS1の次にステップS2の処理が実行される。以降、ステップS2〜S8の一連の処理からなる処理ループが所定時間(1フレーム時間)に1回の割合で繰り返し実行される。
【0173】
ステップS2において、CPU10は、ハンドヘルドデバイス9から第2操作データを取得する。ハンドヘルドデバイス9は、加速度センサ89、ジャイロセンサ90、タッチパネル63、および操作ボタン64から出力される各データを第2操作データとしてゲーム装置3へ繰り返し送信するので、ゲーム装置3は、ハンドヘルドデバイス9からのデータを逐次受信して第2操作データ112としてメインメモリに逐次記憶する。なお、ステップS2において、CPU10は上記第2操作データに加えて操作装置7から第1操作データを取得するようにしてもよい。ステップS2において、CPU10は、最新の第2操作データ112をメインメモリから読み出す。ステップS2の次にステップS3の処理が実行される。
【0174】
ステップS3において、CPU10はゲーム制御処理を実行する。ゲーム制御処理は、プレイヤによる操作に従ってゲーム空間内のオブジェクト(手裏剣101等)を動作させる等の処理によって、ゲームを進行させる処理である。以下、図16を参照してゲーム制御処理の詳細を説明する。なお、以下では、制御方向の算出に関する処理を中心にゲーム制御処理を説明し、従来の処理と同様に行うことが可能な処理については詳細な説明を省略する。例えば、制御方向に従って発射された後の手裏剣101の移動制御に関する処理や、手裏剣101が標的103に当たったか否かを判定する処理や、手裏剣101が標的103に当たった場合の得点計算処理等については、従来の処理と同様に行うことが可能であるので、詳細な説明を省略する。
【0175】
図16は、ゲーム制御処理の詳細な流れを示すフローチャートである。ゲーム制御処理においてはまずステップS10において、CPU10は、ハンドヘルドデバイス9の姿勢を算出する。ハンドヘルドデバイス9の姿勢は、第2操作データ112に基づいて算出されればどのような方法で算出されてもよいが、本実施形態においては、次の方法で姿勢を算出する。以下、ハンドヘルドデバイス9の姿勢の算出方法について説明する。
【0176】
まず、CPU10は、メインメモリに記憶されている角速度データ114に基づいてハンドヘルドデバイス9の姿勢を算出する。ハンドヘルドデバイス9の姿勢を角速度から算出する方法はどのような方法であってもよいが、当該姿勢は、前回の姿勢(前回に算出された姿勢)と、今回の角速度(今回の処理ループにおいて取得された角速度)とを用いて算出される。具体的には、CPU10は、前回の姿勢を今回の角速度で単位時間分だけ回転させることによって姿勢を算出する。なお、前回の姿勢は、メインメモリに記憶されている姿勢データ118により示され、今回の角速度は、メインメモリに記憶されている角速度データ114により示されている。したがって、CPU10は、メインメモリから姿勢データ118および角速度データ114を読み出して、ハンドヘルドデバイス9の姿勢を算出する。以上のようにして算出された「角速度に基づく姿勢」を表すデータはメインメモリに記憶される。
【0177】
なお、角速度から姿勢を算出する場合、初期姿勢を定めておくのがよい。つまり、ハンドヘルドデバイス9の姿勢を角速度から算出する場合には、最初にハンドヘルドデバイス9の初期姿勢を算出しておく。ハンドヘルドデバイス9の初期姿勢は、加速度データに基づいて算出されてもよいし、ハンドヘルドデバイス9を特定の姿勢にした状態でプレイヤに所定の操作を行わせることで、所定の操作が行われた時点における当該特定の姿勢を初期姿勢として用いるようにしてもよい。
【0178】
次に、CPU10は、角速度に基づいて算出したハンドヘルドデバイス9の姿勢を、加速度データ113を用いて補正する。具体的には、CPU10は、メインメモリから加速度データ113を読み出して、加速度データ113に基づいてハンドヘルドデバイス9の姿勢を算出する。ここで、加速度センサ89は、ハンドヘルドデバイス9がほぼ静止している状態では、ハンドヘルドデバイス9に対して加えられる加速度は重力加速度を意味する。したがって、CPU10は、ハンドヘルドデバイス9に対して加えられる重力加速度の方向(重力方向)を、加速度センサ89が出力する加速度データ113を用いて算出することができる。つまり、重力方向に対するハンドヘルドデバイス9の向き(姿勢)を当該加速度データ113に基づいて算出することができる。以上のように、加速度センサ89が重力加速度を検出する状況では、重力方向に対するハンドヘルドデバイス9の向き(姿勢)を加速度データ113に基づいて算出することができる。以上のようにして算出された「加速度に基づく姿勢」を表すデータはメインメモリに記憶される。
【0179】
加速度に基づく姿勢を算出すると、CPU10は次に、加速度に基づく姿勢を用いて、角速度に基づく姿勢を補正する。具体的には、CPU10は、角速度に基づく姿勢を表すデータと加速度に基づく姿勢を表すデータとをメインメモリから読み出し、角速度データに基づく姿勢を、加速度データに基づく姿勢へ所定の割合で近づける補正を行う。この所定の割合は、予め定められた固定値であってもよいし、例えば加速度データ113が示す加速度等に応じて設定されてもよい。また、加速度に基づく姿勢に関しては、重力方向を軸とする回転方向については姿勢を算出することができないので、CPU10は、当該回転方向に関しては補正を行わないようにしてもよい。本実施形態においては、以上のようにして得られた補正後の姿勢を表すデータが、姿勢データ118としてメインメモリに記憶される。上記ステップS10の次にステップS11の処理が実行される。
【0180】
以上のステップS10の処理によって、ハンドヘルドデバイス9の姿勢が算出される。ここで、ハンドヘルドデバイス9の姿勢を算出する方法のうち、角速度を用いる方法では、ハンドヘルドデバイス9がどのように動いているときであっても姿勢を算出することができる。一方、角速度を用いる方法では、逐次検出される角速度を累積加算していくことによって姿勢を算出するので、誤差が累積すること等によって精度が悪くなったり、いわゆる温度ドリフトの問題でジャイロセンサの精度が悪くなったりするおそれがある。また、加速度を用いる方法は、誤差が蓄積しない一方、ハンドヘルドデバイス9が激しく動かされている状態では、(重力方向を正確に検出することができないので)姿勢を精度良く算出することができない。本実施形態によれば、上記のように特長の異なる2種類の方法を用いるので、ハンドヘルドデバイス9の姿勢をより正確に算出することができる。
【0181】
なお、本実施形態では、ゲーム装置3は、上記2つの方法を用いてハンドヘルドデバイス9の姿勢を算出するが、他の実施形態においては、2つの方法のうちいずれか1つを用いて姿勢を算出するようにしてもよい。また、他の実施形態において、ハンドヘルドデバイス9が操作装置7の撮像情報演算部35を備える場合には、加速度および角速度に加えて(または代えて)マーカ座標データに基づいて姿勢が算出されてもよい。また、ゲーム装置3は、加速度および/または角速度に基づいて算出された姿勢をマーカ座標データを用いて補正してもよい。
【0182】
ステップS11において、CPU10は、ハンドヘルドデバイス9の姿勢に基づいて制御面102の姿勢を算出する。本実施形態においては、ゲーム空間における制御面102の姿勢は、現実空間におけるハンドヘルドデバイス9の姿勢に対応するように設定される。具体的には、ハンドヘルドデバイス9が基準姿勢となる場合には、制御面102の姿勢は所定の基準姿勢となるように算出される。なお、本実施形態においては、タッチパネル63の入力面が水平となる姿勢をハンドヘルドデバイス9の基準姿勢とし、ゲーム空間において水平に配置される姿勢を制御面102の所定の基準姿勢とする(図11の上欄参照)。また、ハンドヘルドデバイス9が基準姿勢以外の場合には、制御面102の姿勢は、ハンドヘルドデバイス9が基準姿勢から回転した方向に応じた方向に、回転量に応じた回転量だけ、上記所定の基準姿勢から回転させた姿勢となるように算出される(図11の中欄および下欄参照)。以上のように、本実施形態においては、仮想空間における制御面102の姿勢が現実空間におけるハンドヘルドデバイス9の姿勢に一致するように、制御面102の姿勢が算出される。ただし、他の実施形態においては、ハンドヘルドデバイス9の姿勢と制御面102の姿勢とが一致する必要はなく、ハンドヘルドデバイス9の姿勢に応じて変化するように制御面102の姿勢が算出されればよい。
【0183】
ステップS11の具体的な処理としては、CPU10は、メインメモリから姿勢データ118を読み出し、姿勢データ118に基づいて制御面102の姿勢を算出する。また、制御面102の位置を予め定められた所定位置に設定する。そして、算出された姿勢と設定された位置を表すデータを制御面データ121としてメインメモリに記憶する。ステップS11の次にステップS12の処理が実行される。
【0184】
なお、上記ステップS11においては、CPU10は制御面102の位置を固定し、制御面102の姿勢をハンドヘルドデバイス9の姿勢に応じて変化させた。ここで、他の実施形態においては、制御面102の姿勢とともに位置をハンドヘルドデバイス9の姿勢に応じて変化させてもよい。例えば、CPU10は、制御面102を左に向けて回転させる場合、制御面102の向きを左に回転させながら位置を左に移動させてもよい。
【0185】
ステップS12において、CPU10は、制御面102の姿勢に応じて第2仮想カメラを制御する。ここで、上述のように、ハンドヘルドデバイス9の下側LCD62には制御面102が表示され、具体的には、タッチパネル63の入力面と制御面102とが画面上において一致するように制御面102が表示される。したがって、第2仮想カメラの位置および姿勢は、制御面102が視野範囲に含まれるように(具体的には、制御面102の外周と第2仮想カメラの視野範囲の外縁とが一致するように)、制御面102の姿勢に応じて制御される。また、第2仮想カメラは、その視線方向と制御面102とが直行するように制御される。
【0186】
なお、上記ステップS12の処理によれば、第2仮想カメラは、制御面102と第2仮想カメラとの位置関係が一定になるように、制御面102の変化に応じて移動される。これによれば、制御面102をどのような姿勢にしても、タッチ位置と制御位置との対応関係は変化しないので、タッチパネル63に対するタッチ操作の操作性を向上することができる。
【0187】
ステップS12の具体的な処理としては、CPU10は、メインメモリから制御面データ121を読み出し、制御面102の姿勢に基づいて第2仮想カメラの位置および姿勢を算出する。そして、算出された位置および姿勢を表すデータを第2カメラデータ120としてメインメモリに記憶する。ステップS12の次にステップS13の処理が実行される。
【0188】
ステップS13において、CPU10は、タッチパネル63に対する入力(タッチ入力)があったか否かを判定する。具体的には、メインメモリに記憶されている最新のタッチ位置データ115を読み出して参照し、タッチ位置データ115がタッチ位置の座標値を表すか、それとも、入力が無いことを表すかを判定する。ステップS13の判定結果が肯定である場合、ステップS14の処理が実行される。一方、ステップS13の判定結果が否定である場合、後述するステップS17の処理が実行される。
【0189】
ステップS14において、CPU10は、制御面102上における制御位置をタッチ位置に基づいて算出する。制御位置は、タッチ位置に対応する制御面102上の位置として算出される。具体的には、制御位置は、タッチパネル63の入力面の四辺に対するタッチ位置の位置関係と、制御面102の四辺に対する制御位置の位置関係とが同じになるように算出される。
【0190】
ステップS14の具体的な処理としては、CPU10は、まず、メインメモリに記憶されている最新のタッチ位置データ115を読み出し、タッチ位置データ115が表すタッチ位置を、制御面102上の位置を示す2次元座標系の座標に変換する。次に、CPU10は、変換によって得られた2次元座標を、3次元のゲーム空間の位置を示す3次元座標に変換する。この3次元座標は、上記2次元座標系の座標と、制御面102を表す平面の式(制御面データ121)とを用いて算出することができる。すなわち、CPU10は、制御面データ121をメインメモリから読み出し、上記2次元座標と制御面データ121とに基づいて上記3次元座標を算出する。このようにして算出された3次元座標が制御位置を表す。以上のステップS14の次にステップS15の処理が実行される。
【0191】
なお、上記ステップS14においては、下側LCD62の画面上においてタッチ位置が制御位置となるように、制御位置が算出されることが好ましい。これによれば、プレイヤは仮想のゲーム空間内の制御位置を把握しやすくなり、制御方向の指示をより行いやすくなる。なお、本実施形態においては、タッチパネル63の入力面の形状(縦横比)と制御面102の形状(縦横比)とを等しくし、また、タッチパネル63の入力面と制御面102とを下側LCD62の画面上において一致させている。これによって、上記のように制御位置を算出することによって、下側LCD62の画面上においてタッチ位置と制御位置とを対応させることができる。なお、他の実施形態においては、タッチ位置から制御位置を算出する方法はどのような方法であってもよく、タッチ位置と制御位置とが画面上で対応しない方法であってもよい。
【0192】
ステップS15において、CPU10は、ステップS14で算出された制御位置を表すデータをメインメモリに記憶する。ここで、CPU10は、タッチパネル63に対して連続して入力が行われる場合、最新のものから順に所定個数のタッチ位置に対応する複数個の制御位置を記憶する。したがって、CPU10は、制御位置データ122をメインメモリから読み出し、制御位置データ122が表す制御位置が上記所定個数よりも小さい場合、制御位置データ122が表す制御位置に、新たな制御位置を(ステップS14で算出された制御位置)追加したデータを作成する。一方、読み出した制御位置データ122が表す制御位置が上記所定個数以上である場合、制御位置データ122が表す各制御位置に対して、最も古い制御位置を削除するとともに、新たな制御位置を(ステップS14で算出された制御位置)追加したデータを作成する。以上のようにして作成されたデータが新たな制御位置データ122としてメインメモリに記憶される。したがって、制御位置データ122は、現在から所定時間以内に入力されたタッチ位置に対応する制御位置を表す。ステップS15の次にステップS16の処理が実行される。
【0193】
ステップS16において、CPU10は、ゲーム空間における手裏剣101の位置および姿勢を算出する。ここで、タッチパネル63に対する入力が行われてから発射されるまでの期間において、手裏剣101は、制御面102に応じた姿勢で制御位置に配置される。すなわち、CPU10は、制御面データ121および制御位置データ122をメインメモリから読み出し、手裏剣101の位置および姿勢を算出する。算出された位置および姿勢を表すデータが、オブジェクトデータ124としてメインメモリに記憶される。なお、第1の実施例においては、タッチパネル63に対する入力が行われている期間には制御面102上に手裏剣101を配置・表示するようにしたが、他の実施形態においては、当該期間に手裏剣101を配置・表示しないようにしてもよい。また、他の実施形態においては、CPU10は、制御位置に応じて手裏剣101の位置のみを制御し、手裏剣101の姿勢については制御しない(姿勢は固定にする)ようにしてもよい。ステップS16の後、CPU10はゲーム制御処理を終了する。
【0194】
一方、ステップS16の判定結果が否定である場合にはステップS17の処理が実行される。ステップS17において、CPU10は、前回の処理ループ(ステップS2〜S8の一連の処理からなる処理ループ)においてタッチ入力があったか否かを判定する。ステップS17の判定は、例えば、メインメモリに制御位置データ122が記憶されているか否かによって行うことができる。なお、前回のタッチ入力だけでなく、過去所定回数に連続してタッチ入力があったかどうかを判定するようにしてもよい。ステップS17の判定結果が肯定である場合、ステップS18の処理が実行される。一方、ステップS17の判定結果が否定である場合、ステップS18〜S20の処理がスキップされ、CPU10はゲーム制御処理を終了する。
【0195】
ステップS18において、CPU10は制御方向を算出する。本実施形態においては、制御方向(制御方向ベクトル)は、制御位置の平均速度を示すベクトルとして算出される。すなわち、CPU10は、制御位置データ122をメインメモリから読み出し、制御位置データ122が表す複数の制御位置から平均速度を示すベクトルを算出する。具体的には、平均速度を示すベクトルは、上記複数の制御位置のうち、最も古いものを始点とし、最新のものを終点とするベクトルを、制御位置の個数で割ることによって算出することができる。算出されたベクトルを表すデータは、制御方向データ123としてメインメモリに記憶される。ステップS18の次にステップS19の処理が実行される。
【0196】
上記ステップS18においては、制御位置データ122が表す複数の制御位置の平均速度として制御方向を算出する方法を採用した。この方法では、プレイヤがタッチパネル上で線を描く途中でタッチ位置を移動させずに停止させた場合、算出される平均速度の大きさが非常に小さい値となってしまうおそれがある。そのため、他の実施形態においては、CPU10は、移動していないと推測されるタッチ位置に対応する制御位置を除去して平均速度を算出するようにしてもよい。具体的には、上記ステップS15において、CPU10は、上記ステップS14で算出された新たな制御位置が、その1つ前に算出された制御位置から(ほとんど)移動していない場合、当該新たな制御位置を記憶しないようにしてもよい。すなわち、上記新たな制御位置と1つ前に算出された制御位置との距離が所定値以内である場合、CPU10は、制御位置データ122を更新しないようにしてもよい。
【0197】
ステップS19において、CPU10は、制御方向へ手裏剣101を発射させる。本実施形態においては、制御方向ベクトルに基づいて、手裏剣101の移動方向および移動速度が決定される。すなわち、制御方向ベクトルの向きに、制御方向ベクトルに応じた移動量だけ手裏剣101を移動させる。具体的には、ステップS19においては、CPU10は、オブジェクトデータ124および制御方向データ123を読み出し、オブジェクトデータ124が表す位置を、制御方向ベクトルの向きに、制御方向ベクトルに応じた移動量だけ移動させた位置を算出する。そして、オブジェクトデータ124が表す位置を移動後の位置に更新して、更新後のオブジェクトデータをメインメモリに記憶する。これによって、手裏剣101の位置が更新され、手裏剣101が制御方向に移動されたことになる。なお、本実施形態においては、上記ステップS16で述べたように、手裏剣101は、制御面102に応じた姿勢で配置されている。したがって、手裏剣101は、制御方向により決められる方向に、制御面の姿勢によって決められる姿勢で発射される。なお、制御方向ベクトルの大きさが予め定められた所定値よりも小さい場合には、プレイヤはタッチパネル63に対して線を描く操作(すなわち手裏剣101を発射する操作)を行う意図がないと考えられる。そのため、この場合にはCPU10は手裏剣101を発射しないようにしてもよい。ステップS19の次にステップS20の処理が実行される。
【0198】
ステップS20において、CPU10は制御位置をリセットする。具体的には、メインメモリに記憶されている制御位置データ122を消去する。これによって、次にタッチ入力が行われた場合には、ステップS15において制御位置が新たに一から記憶されることとなる。ステップS20の後、CPU10はゲーム制御処理を終了する。
【0199】
図16に示すゲーム制御処理によれば、ハンドヘルドデバイス9の姿勢に応じて制御面102の姿勢が制御され(ステップS11,S12)、制御面102上において、タッチパネル63に対して入力された線の方向に応じた制御方向が算出される(ステップS18)。これによって、プレイヤは、ハンドヘルドデバイス9の姿勢の操作とタッチパネル63に対する操作とによって、3次元空間内における方向を容易にかつ直感的に指示することができる。
【0200】
なお、上記ゲーム制御処理においては、複数の制御位置の平均速度として制御方向が算出された。ここで、制御位置から制御方向を算出する方法は上記に限らず、どのような方法であってもよい。例えば、本実施形態と同様にプレイヤに線を描く入力を行わせる場合には、CPU10は、制御位置データ122が表す複数の制御位置のうち、最も新しい制御位置を終点とし、その次に新しい制御位置を始点とするベクトルを制御方向ベクトルとして算出するようにしてもよい。また、プレイヤがタッチパネル63上において2点を指定することによって制御方向を指示することができるようにしてもよい。すなわち、CPU10は、最初にタッチされたタッチ位置に対応する制御位置を始点とし、次にタッチされたタッチ位置に対応する制御位置を終点とするベクトルを制御方向ベクトルとして算出するようにしてもよい。
【0201】
図15の説明に戻り、ステップS3のゲーム制御処理の次にステップS4の処理が実行される。ステップS4において、CPU10は第1ゲーム画像を生成する。すなわち、CPU10は、上記ステップS1で設定された第1仮想カメラから見たゲーム空間の画像を第1ゲーム画像として生成する。これによって、制御面102を含むゲーム空間の画像が第1ゲーム画像として生成される(図10参照)。なお、第1の実施例のように、制御面102の姿勢が変化しても第1仮想カメラの位置および姿勢を変化しないようにすることによって、プレイヤは、ゲーム空間における制御面102の姿勢を容易に把握することができる。ステップS4の次にステップS5の処理が実行される。
【0202】
ステップS5において、CPU10は第2ゲーム画像を生成する。すなわち、CPU10は、上記ステップS12で設定された第2仮想カメラから見たゲーム空間の画像を第2ゲーム画像として生成する。これによって、制御面102の画像が第2ゲーム画像として生成される(図10参照)。ステップS5の次にステップS6の処理が実行される。
【0203】
ステップS6において、CPU10は、ステップS4で生成された第1ゲーム画像をテレビ2へ出力する。具体的には、CPU10は、生成された第1ゲーム画像の画像データをAV−IC15へ送り、AV−IC15は当該画像データをAVコネクタ16を介してテレビ2へ出力する。これによって、第1ゲーム画像がテレビ2に表示される。ステップS6の次にステップS7の処理が実行される。
【0204】
ステップS7において、CPU10は、ステップS5で生成された第2ゲーム画像をハンドヘルドデバイス9へ出力する。具体的には、第2ゲーム画像の画像データは、CPU10によって画像圧縮部27に送られ、画像圧縮部27によって所定の圧縮処理が行われた後、高速無線通信モジュール28によってアンテナ29を介してハンドヘルドデバイス9へ送信される。ハンドヘルドデバイス9は、ゲーム装置3から送信されてくる画像データを無線通信モジュール86によって受信し、画像伸張部を用いて所定の伸張処理を行う。伸張処理が行われた画像データは、CPU811によってVRAM813に適宜記憶されて下側LCD62に出力される。これによって、第2ゲーム画像が下側LCD62に表示される。ステップS7の次にステップS8の処理が実行される。
【0205】
ステップS8において、CPU10は、ゲームを終了するか否かを判定する。ステップS7の判定は、例えば、ゲームオーバーになったか否か、あるいは、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ステップS8の判定結果が否定の場合、ステップS2の処理が再度実行される。一方、ステップS8の判定結果が肯定の場合、CPU10は図15に示すゲーム処理を終了する。以降、ステップS2〜S8の一連の処理は、ステップS8でゲームを終了すると判定されるまで繰り返し実行される。
【0206】
以上で説明した第1の実施例のゲーム処理によれば、ハンドヘルドデバイス9の姿勢によって制御面102の姿勢が決定され、タッチパネルに対する入力によって制御面102上で制御方向が決定される。そして、決定された制御方向へ手裏剣101が発射される。このように、本実施形態によれば、プレイヤは、タッチパネル63を用いて3次元空間における方向を直感的な操作で容易に指示することができる。
【0207】
また、上記第1の実施例のゲーム処理によれば、制御面102上における制御方向ベクトルが算出されるので、当該制御方向ベクトルによって、オブジェクトの移動方向に加えて移動量を制御することができる。したがって、ハンドヘルドデバイス9を用いてより詳細にオブジェクトを制御することができる。
【0208】
また、上記第1の実施例のゲーム処理によれば、制御面102を含む画像が第1ゲーム画像としてテレビ2に表示されるので、プレイヤは手裏剣101の姿勢および発射方向を第1ゲーム画像によって確認することができ、操作をより行いやすくすることができる。
【0209】
(第2の実施例におけるゲームの概要)
次に、第2のゲームの概要について説明する。このゲームは、ハンドヘルドデバイス9を操作することによってゲーム空間内においてオブジェクト(大砲の弾)を発射するゲームである。プレイヤは、ハンドヘルドデバイス9の姿勢を変化させるとともに、タッチパネル63上の位置を指定する(タッチする)ことによって、弾を発射する方向を指示することができる。
【0210】
図17は、第2の実施例におけるテレビ2の画面とハンドヘルドデバイス9とを示す図である。図17においては、テレビ2およびハンドヘルドデバイス9の下側LCD62には、ゲーム画像としてゲーム空間の画像が表示されている。テレビ2には、大砲131、弾132、および標的133が表示されている。下側LCD62には、弾132および標的133が表示されている。図17において、下側LCD62に表示される第2ゲーム画像は、大砲131の位置からゲーム空間を見た画像である。なお、第2の実施例においても第1の実施例と同様、ゲーム空間内に制御面が設定されるが、第1の実施例と異なり制御面は表示されない。したがって、本実施例においては、プレイヤはハンドヘルドデバイス9の下側LCD62を見ながら主観的な視点でゲームをすることができる。テレビ2に表示される画像は下側LCD62と同じ視点からの画像であってもよいが、別視点からの画像を表示させるようにすれば、両方の画面を活かしたゲームを提供することができる。例えば、下側LCD62では見えない範囲をテレビ2に表示させるようにすれば、プレイヤがテレビ2を見ながら主観視点では見えない部分を隠れて狙うようなゲームプレイを実現することもできる。また、操作感覚は異なるが、テレビ2に主観的な視点の画像を表示させるようにし、ハンドヘルドデバイスには画面を設けずにタッチパッドによる入力を行うようにすることも可能である。
【0211】
大砲131から弾132を発射する場合、プレイヤは、まず、ハンドヘルドデバイス9の姿勢を操作することによって制御面の姿勢を変化させて所望の姿勢にする。つまり、第2の実施例においても第1の実施例と同様、制御面の姿勢はハンドヘルドデバイス9の姿勢に応じて決定される。なお、詳細は後述するが、第2の実施例においては制御面の位置は、制御面の姿勢に応じて変化(移動)する。
【0212】
第2の実施例においては、プレイヤはさらに、図17に示すように、タッチパネル63上の所望の位置をタッチする操作を行う。この操作によって、タッチ位置に対応するゲーム空間内の位置(制御面上の制御位置)が決定される。第2の実施例においても制御位置の決定方法は第1の実施例と同様である。
【0213】
ここで、第2の実施例においては、制御方向は、第2仮想カメラの位置から制御位置への方向として決定される。図18は、ゲーム空間における仮想カメラと制御面とを示す図である。図18において、点Pは制御面135上に設定される制御位置を表し、ベクトルv2は制御方向を表す。第2の実施例においては、図18に示すように、第2仮想カメラの位置Pcと制御位置Pとに基づいて制御方向(制御方向ベクトルv2)が算出される。具体的には、制御方向ベクトルv2は、第2仮想カメラの位置Pcを始点とし、制御位置Pを終点とするベクトルとして算出される。弾132は、算出された制御方向に発射される。
【0214】
以上のように、第2の実施例においては、プレイヤは、ハンドヘルドデバイス9の姿勢の操作と、タッチパネル32上の位置を指定する操作とによって、弾132を所望の方向へ飛ばすことができる。したがって、第2の実施例においても第1の実施例と同様、プレイヤは、タッチパネル63を用いて3次元空間における方向を直感的な操作で容易に指示することができる。また、ハンドヘルドデバイス9の姿勢の操作とタッチパネル63に対する入力操作とは、同時に並行して行うことができるので、プレイヤは3次元空間における方向を指示する操作を迅速に行うことができる。
【0215】
(第2の実施例におけるゲーム処理)
次に、第2の実施例におけるゲーム処理の詳細を説明する。まず、図14を参照して、第1の実施例との相違点を中心に、第2の実施例におけるゲーム処理において用いられる各種データについて説明する。
【0216】
第2の実施例においては、ゲームプログラム110としては、図19に示すゲーム処理を実行するためのゲームプログラムが記憶される。第1操作データ111および第2操作データ112は第1のゲームと同様である。
【0217】
処理用データ117としては、第2の実施例においても第1の実施例と同様のデータが記憶される。ただし、第2の実施例においては、制御位置データ122は、最新の1つの制御位置を表すものでよい。また、オブジェクトデータ124は、弾132の位置を表す。
【0218】
次に、第2の実施例におけるゲーム処理の詳細を、図15、図19および図20を用いて説明する。第2の実施例においても第1の実施例と同様、図15に示すステップS1〜S8の処理が実行される。以下、第1の実施例におけるゲーム処理との相違点を中心に、第2の実施例におけるゲーム処理を説明する。
【0219】
ステップS1において、CPU10は、第1の実施例と同様の初期処理を実行する。ただし、第2の実施例においては、第1仮想カメラは制御面の位置および姿勢に応じて制御されるので(後述するステップS34)、初期処理においては第1仮想カメラの位置および姿勢は設定されない。第2の実施形態におけるステップS2の処理は、第1の実施形態と同様である。
【0220】
ステップS3において、CPU10はゲーム制御処理を実行する。第2の実施例におけるゲーム制御処理は、プレイヤによる操作に従ってゲーム空間内のオブジェクト(弾132等)を動作させる等の処理によって、ゲームを進行させる処理である。以下、図19を参照して、第2の実施例におけるゲーム制御処理の詳細を説明する。なお、以下では、制御方向の算出に関する処理を中心にゲーム制御処理を説明し、従来の処理と同様に行うことが可能な処理については詳細な説明を省略する。例えば、制御方向に従って発射された後の弾132の移動制御に関する処理や、弾132が標的133に当たったか否かを判定する処理や、弾132が標的133に当たった場合の得点計算処理等については、従来の処理と同様に行うことが可能であるので、詳細な説明を省略する。
【0221】
図19は、第2の実施例におけるゲーム制御処理の詳細な流れを示すフローチャートである。ゲーム制御処理においてはまずステップS31において、CPU10は、ハンドヘルドデバイス9の姿勢を算出する。ステップS31の処理は第1の実施例におけるステップS10の処理と同じである。ステップS31の次にステップS32の処理が実行される。
【0222】
ステップS32において、CPU10は、ハンドヘルドデバイス9の姿勢に基づいて制御面135の位置および姿勢を算出する。ここで、制御面135の姿勢をハンドヘルドデバイス9の姿勢に基づいて算出する処理は、第1の実施例におけるステップS11の処理と同じである。すなわち、第2の実施例においても、ゲーム空間における制御面135の姿勢は、現実空間におけるハンドヘルドデバイス9の姿勢に対応するように設定される。
【0223】
また、制御面135の位置は、制御面135の姿勢に応じて次のように算出される。図20は、制御面135の位置および姿勢が変化する様子を示す図である。図20において、点Paは、制御面135の位置を決定するための基準点であり、ゲーム空間に固定的に設定される。図20に示すように、ハンドヘルドデバイス9の姿勢が変化する場合、制御面135は、姿勢の変化とともに、基準点Paを中心に回転するように位置も変化する。具体的には、制御面135の位置は、基準点Paから制御面135への垂線の長さが予め定められた所定値となるように(つまり、基準点Paからの距離が一定となるように)算出される。
【0224】
ステップS32の具体的な処理としては、CPU10は、まず、上記ステップS11と同様の方法によって制御面135の姿勢を算出する。次に、CPU10は、算出された姿勢と、上記基準点Paの位置とに基づいて、上記垂線の長さが予め定められた所定値となるように制御面135の位置を算出する。算出された制御面135の位置および姿勢を表すデータは、制御面データ121としてメインメモリに記憶される。ステップS32の次にステップS33の処理が実行される。
【0225】
上記ステップS32の処理によれば、制御面135の姿勢とともに位置が変化するように制御面135が制御される。第2仮想カメラの位置(あるいは基準点の位置)を中心として、ハンドヘルドデバイス9の姿勢に応じて制御面135の位置を変化させることで、所定の位置から周囲を見回すような操作感覚でプレイヤにゲーム操作を行わせることができる。なお、別の実施例においては、例えば仮想空間内の特定の位置を様々な角度から見るような操作感覚のゲームを実現することも可能である。すなわち、制御面135の位置を変えずに、ハンドヘルドデバイス9の姿勢に応じて第2仮想カメラの位置を変えるようにしてもよい。また、姿勢に応じて制御面135の位置も第2仮想カメラの位置も動くようにして、仮想空間内で移動して視点を変えながら視線方向も変えるような操作感覚でプレイヤにゲーム操作を行わせるようにしてもよい。
【0226】
ステップS33において、CPU10は、制御面135の位置および姿勢に応じて第2仮想カメラを制御する。ここで、図20に示す点Pcは、第2仮想カメラの位置を示す点である。図20に示すように、第2仮想カメラは、制御面102が視野範囲に含まれるように(より具体的には、制御面135の外周と第2仮想カメラの視野範囲の外縁とが一致するように)制御される。したがって、第2仮想カメラの位置は、基準点Paと制御面135の中心とを通る直線上であって、制御面135からの距離が視野範囲に応じた距離となるように算出される。なお、第2仮想カメラは、上記直線上であればよく、視野範囲(視野角)によっては、基準点Paよりも後ろ側(制御面135から遠い側)の位置となることもある。
【0227】
上記のように第2仮想カメラが設定されることによって、下側LCD62には、タッチパネル63の入力面と制御面135とが画面上において一致するように制御面135が表示されることになる(図17参照)。これによれば、プレイヤがタッチした位置に対応するゲーム空間内の位置に向かって弾132が発射されるので、直感的でわかりやすいゲーム操作を提供することができる。また、第2の実施例においても第1の実施例と同様、第2仮想カメラは、制御面102と第2仮想カメラとの位置関係が一定になるように、制御面102の変化に応じて移動されることとなる。
【0228】
ステップS33の具体的な処理としては、CPU10は、メインメモリから制御面データ121を読み出し、制御面135の位置および姿勢に基づいて第2仮想カメラの位置および姿勢を算出する。そして、算出された位置および姿勢を表すデータを第2カメラデータ120としてメインメモリに記憶する。ステップS33の次にステップS34の処理が実行される。
【0229】
ステップS34において、CPU10は、制御面135の位置および姿勢に応じて第1仮想カメラを制御する。第2の実施例においては、第1仮想カメラは、制御面135が視野範囲に含まれ、第2仮想カメラとは異なる位置となるように制御される(図17参照)。具体的には、第1仮想カメラは、大砲131が表示されるように、大砲131のやや後方の位置から制御面135の方を向くように配置される。なお、ここでは、大砲131は、第2仮想カメラの位置に配置されるものとする。具体的な処理としては、CPU10は、メインメモリから制御面データ121を読み出し、制御面135の位置および姿勢に応じた位置および姿勢となるように、第1仮想カメラの位置および姿勢を算出する。そして、算出された位置および姿勢を表すデータを第1カメラデータ119としてメインメモリに記憶する。ステップS34の次にステップS35の処理が実行される。
【0230】
上記ステップS34の処理によれば、第1仮想カメラは第2仮想カメラとは異なる位置に配置される。これによって、プレイヤは、異なる2つの視点から見たゲーム空間を見ることができるので、ゲーム操作をより行いやすくなる。例えば、第2の実施例においては、第1仮想カメラは、第2仮想カメラよりも広いゲーム空間の範囲を撮影するように配置される(図17参照)ので、プレイヤは、第1ゲーム画像を見ることによってゲーム空間内における様子(各オブジェクトの配置等)をより把握しやすくなる。
【0231】
また、2つの仮想カメラの位置を異ならせることによって、ゲームの興趣性を向上することもできる。例えば、大砲131と標的133との間に壁を配置しておき(第2仮想カメラからは標的133が見えない)、壁より上側の標的133が見える位置に第1仮想カメラを配置するようにすれば、テレビ2側にのみ標的133が表示されるようにすることができる。この場合、プレイヤは、ハンドヘルドデバイス9の画面とテレビ2の画面の両方を見比べながらゲーム操作を行うことになり、ゲームをより面白くすることができる。なお、他の実施形態においては、第1仮想カメラの位置および姿勢はどのように制御されてもよく、制御面135が見えない位置に配置されてもよいし、また、第2仮想カメラと同じ位置および姿勢に設定されてもよい(つまり、仮想カメラを1つのみ設定してもよい)。
【0232】
ステップS35において、CPU10は、タッチパネル63に対する入力(タッチ入力)があったか否かを判定する。ステップS35の処理は、第1の実施例におけるステップS13の処理と同じである。ステップS35の判定結果が肯定である場合、ステップS36の処理が実行される。一方、ステップS35の判定結果が否定である場合、CPU10はゲーム制御処理を終了する。
【0233】
ステップS36において、CPU10は、制御面135上における制御位置をタッチ位置に基づいて算出する。ステップS36における制御位置の算出方法は、第1の実施例におけるステップS14における算出方法と同じである。また、第2の実施例では、制御方向は最新の制御位置に基づいて算出される。そのため、ステップS36においては、CPU10は、算出した制御位置を表すデータを制御位置データ122としてメインメモリに記憶する。ステップS36の次にステップS37の処理が実行される。
【0234】
ステップS37において、CPU10は、ステップS36で算出された制御位置に基づいて制御方向を算出する。制御方向は、ゲーム空間内における所定位置と制御位置とを結ぶ方向として算出される。第2の実施例においては、制御方向は、第2仮想カメラ(大砲131)の位置から制御位置への方向として算出される(図18参照)。具体的には、CPU10は、第2カメラデータ120と制御位置データ122をメインメモリから読み出し、第2仮想カメラの位置を始点とし、制御位置を終点とする制御方向ベクトルv2を算出する。算出された制御方向ベクトルv2を表すデータは、制御方向データ123としてメインメモリに記憶される。ステップS37の次にステップS38の処理が実行される。
【0235】
なお、上記ステップS37においては、上記所定位置として第2仮想カメラの位置を用いた。ここで、他の実施形態においては、上記所定位置は他の位置であってもよい。例えば、上記所定位置は、図20に示す基準点Paの位置でもよいし、特定のオブジェクトの位置でもよい。上記所定位置として仮想カメラの位置以外の位置を採用する場合には、視点とは異なる位置からオブジェクト(弾132)が発射されるように見える。一方、第2の実施例のように、制御方向の始点と第2ゲーム画像における視点とを一致させるようにすれば、プレイヤは主観的な視点で弾を撃つ操作を行うことができ、より操作しやすいゲーム操作を提供することができる。
【0236】
ステップS38において、CPU10は、ステップS37で算出された制御方向へ弾132を発射する。第2の実施例においては、弾132は、所定の移動方向へ所定の速さ(所定の移動量)で移動される。所定の移動方向は、制御方向により決められる方向であって、制御方向よりも所定角度だけ上方を向く方向である。ここで、第2の実施例においては、発射後の弾132が、重力を考慮して放物線を描くように制御されるものとする。このように弾132が放物線を描くように飛んでいく場合、弾132を制御方向に発射すると、プレイヤは、制御方向よりもやや下方に発射されたような感覚を受けるおそれがある。そのため、第2に実施例では、CPU10は、弾132を制御方向よりも所定角度だけ上方に向けた方向へ発射する。このように、オブジェクトの移動方向は、制御方向により決められる方向であればよく、必ずしも制御方向と一致する方向である必要はない。
【0237】
ステップS38の具体的な処理としては、CPU10は、制御方向データ123を読み出し、制御方向から弾132の移動方向を算出する。そして、オブジェクトデータ124を読み出し、オブジェクトデータ124が表す位置を、算出された移動方向の向きへ、所定の移動量だけ移動させた位置を算出する。そして、オブジェクトデータ124が表す位置を移動後の位置に更新して、更新後のオブジェクトデータをメインメモリに記憶する。これによって、弾132の位置が更新され、弾132が制御方向に移動されたことになる。ステップS38の後、CPU10はゲーム制御処理を終了する。
【0238】
ゲーム制御処理の次には、第2の実施例においても第1の実施例と同様、ステップS3〜S8の処理が実行される。すなわち、ステップS4において第1ゲーム画像が生成され、ステップS5において第2ゲーム画像が生成される。さらに、ステップS6において第1ゲーム画像がテレビ2に表示され、ステップS7において第2ゲーム画像がハンドヘルドデバイス9の下側LCD62に表示される。なお、第2の実施例においては、下側LCD62には、タッチパネル63の入力面と制御面135とが画面上において一致するようにゲーム空間が表示され(制御面135は表示されない)、テレビ2には、下側LCD62よりも広い範囲のゲーム空間が表示される(図17参照)。また、ステップS8においてゲームを終了するか否かが判定され、ステップS8でゲームを終了すると判定されるまでステップS2〜S8の一連の処理が繰り返し実行される。
【0239】
以上で説明した第2の実施例のゲーム処理によれば、ハンドヘルドデバイス9の姿勢によって制御面135の姿勢が決定され、タッチパネルに対する入力によって制御面102上で制御位置が決定される。そして、制御位置によって決められる制御方向へ大砲131の弾132が発射される。このように、本実施形態によれば、プレイヤは、タッチパネル63を用いて3次元空間における方向を直感的な操作で容易に指示することができる。
【0240】
[7.他の実施形態]
上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
【0241】
(ゲームシステムの構成に関する変形例)
上記実施形態においては、表示装置(下側LCD62および上側LCD72)を有するハンドヘルドデバイス9を例として説明したが、ハンドヘルドデバイス9は表示装置を備えていないものであってもよい。すなわち、ゲームシステム1は、ハンドヘルドデバイス9とは別体の表示装置(テレビ2)にゲーム画像を出力することができればよく、2つの表示手段を有する必要はない。また、上記実施形態においては上記「別体の表示装置」としてテレビ2を例として説明したが、当該表示装置は、ゲーム装置3と一体であってもよい。
【0242】
(制御方向に基づくゲーム処理に関する変形例)
上記各実施例においては、CPU10は、ゲーム空間内の所定のオブジェクト(手裏剣101または弾132)の移動方向を制御方向に基づいて制御するゲーム処理を実行した。ここで、CPU10は、オブジェクトの移動方向を制御するゲーム処理に限らず、制御方向に基づくゲーム処理を実行すればよい。例えば、他の実施形態においては、CPU10は、所定位置(例えば仮想カメラの位置)から制御方向に延ばした直線上に配置されるオブジェクトに対して所定の処理を実行してもよい。
【0243】
(タッチ位置の入力手段に関する変形例)
上記実施形態においては、ハンドヘルドデバイス9がタッチパネル63を備える場合を例として説明したが、上述のように、ハンドヘルドデバイス9はタッチパッドを備えていてもよい。また、ハンドヘルドデバイス9はタッチパッドを備える場合、ハンドヘルドデバイス9は表示装置を備えていてもよいし、備えていなくてもよい。
【0244】
また、タッチパネルまたはタッチパッドとしては、同時に入力された複数のタッチ位置を検出することが可能な方式(いわゆるマルチタッチ)のものが用いられてもよい。この場合、上記各実施例においては、CPU10は、タッチ位置毎に制御位置および制御方向を算出してもよい。具体的には、図16に示すゲーム制御処理においては、CPU10は、ステップS14〜S16の処理、および、ステップS18〜S20の処理を、タッチ位置毎に実行してもよい。また、図19に示すゲーム制御処理においては、CPU10は、ステップS36〜S38の処理をタッチ位置毎に実行してもよい。
【0245】
(ハンドヘルドデバイス9に対する操作に関する変形例)
上記各実施例においては、ハンドヘルドデバイス9自体を傾ける(姿勢を変化させる)操作によって制御面を制御する場合を例として説明した。すなわち、CPU10は、ハンドヘルドデバイス9の動きに応じて値が変化するデータ(加速度データ113および角速度データ114)に基づいてハンドヘルドデバイス9の姿勢を算出し、ハンドヘルドデバイス9の姿勢に基づいて制御面を制御した。ここで、制御面は、ハンドヘルドデバイス9の動きに応じて少なくとも姿勢が変化するように制御されればよい。例えば、他の実施形態においては、ハンドヘルドデバイス9の位置の変化に応じて制御面が制御されてもよい。具体的には、CPU10は、加速度データ113が表す加速度から重力加速度を除いた加速度に基づいて、ハンドヘルドデバイス9の位置の変化を算出することができる。したがって、例えば上記ステップS11またはS32の処理においては、CPU10は、ハンドヘルドデバイス9の位置の変化に応じて制御面の位置および/または姿勢を変化させてもよい(例えば、ハンドヘルドデバイス9の位置が変化した方向に応じた向きに制御面を傾けるようにしてもよい)。これによれば、ハンドヘルドデバイス9を上下左右に移動させることによって制御面の位置および/または姿勢を変化させることができる。
【0246】
(ゲーム処理を実行する装置に関する変形例)
上記実施形態においては、ゲーム装置3が図16に示す一連のゲーム処理を実行したが、ゲーム処理の一部は他の装置によって実行されてもよい。例えば、他の実施形態においては、ゲーム処理の一部(例えば、第2ゲーム画像の生成処理)をハンドヘルドデバイス9が実行するようにしてもよい。また、他の実施形態では、互いに通信可能な複数の情報処理装置を有するゲームシステムにおいて、当該複数の情報処理装置がゲーム処理を分担して実行するようにしてもよい。以上より、ゲーム装置と、所定の入力面を有するハンドヘルドデバイスとを含むゲームシステムは、(a)所定の入力面に対するプレイヤの入力位置を表すタッチデータと、ハンドヘルドデバイスの動きに応じて値が変化する動きデータとを含む操作データを取得する取得部と、(b)3次元のゲーム空間内に配置される制御面の姿勢を前記動きデータに基づいて制御する面制御部と、(c)制御面の姿勢とタッチデータとに基づいてゲーム空間内における制御方向を算出する方向算出部と、(d)制御方向に基づくゲーム処理を行うゲーム処理部と、(e)ゲーム空間を表す第1ゲーム画像を、当該ゲーム空間に設定される第1仮想カメラに基づいて生成する第1画像生成部と、(f)第1ゲーム画像をハンドヘルドデバイスとは別体の第1表示装置へ出力する第1画像出力部とを備えていてもよい。このとき、1つの装置が上記(a)〜(f)の各部を備える構成であってもよいし、複数の装置が上記(a)〜(f)の各部を備える構成であってもよい。
【0247】
(ハンドヘルドデバイスの構成に関する変形例)
上記実施形態におけるハンドヘルドデバイス9は一例であり、ハンドヘルドデバイス9の各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。例えば、ハンドヘルドデバイスとして以下に示す端末装置が用いられてもよい。以下、図21〜図27を参照して、ハンドヘルドデバイスの変形例について説明する。
【0248】
まず、図21〜図26を参照して、上記実施形態の変形例における端末装置の外観構成について説明する。図21は、端末装置200の外観構成を示す平面図である。図21における(a)図は端末装置200の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。図22は端末装置200の背面図である。また、図23および図24は、ユーザが端末装置200を横向きで把持した様子を示す図である。図25および図26は、ユーザが端末装置200を縦向きで把持した様子を示す図である。
【0249】
図21に示されるように、端末装置200は、大略的には横長の長方形の板状形状であるハウジング210を備える。すなわち、端末装置200は、タブレット型の情報処理装置であるということもできる。なお、ハウジング210は全体として板状形状であれば、曲面を有していてもよいし、一部に突起等を有していてもよい。ハウジング210は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置200を持って動かしたり、端末装置200の配置位置を変更したりすることができる。端末装置200の縦(z軸方向)の長さは、100〜150[mm]が好ましく、本実施形態では、133.5[mm]である。端末装置200の横(x軸方向)の長さは、200〜250[mm]が好ましく、本実施形態では、228.26[mm]である。端末装置200の厚さ(y軸方向の長さ)は、板状の部分で15〜30[mm]程度、最厚部まで含めて30〜50[mm]程度が好ましく、本実施形態では、23.6(最厚部は40.26)[mm]である。また、端末装置200の重量は、400〜600[g]程度であって、本実施形態においては、530[g]である。詳細は後述するが、端末装置200は、上記のような比較的大型の端末装置(操作装置)であっても、ユーザが持ちやすく操作しやすい構成となっている。
【0250】
端末装置200は、ハウジング210の表面(表側)にLCD211を有する。なお、LCD211の画面の大きさは5インチ以上であることが好ましく、ここでは6.2インチである。本実施形態の端末装置7は、持ちやすく操作しやすい構成によって、大きなLCDを設けても操作がしやすいものとなっている。なお、別の実施形態においては、より小さいLCD211を設け、端末装置7の大きさを比較的小さいものとするようにしてもよい。LCD211は、ハウジング210の表面の中央付近に設けられる。したがって、ユーザは、図23および図24に示すようにLCD211の両側部分のハウジング210を持つことによって、LCD211の画面を見ながら端末装置200を持って動かすことができる。なお、図23および図24ではユーザがLCD211の左右両側の部分のハウジング210を持つことで端末装置200を横持ちで(横に長い向きにして)持つ例を示しているが、図25および図26に示すように、端末装置200を縦持ちで(縦に長い向きにして)持つことも可能である。
【0251】
図21の(a)図に示すように、端末装置200は、操作手段として、LCD211の画面上にタッチパネル212を有する。本実施形態では、タッチパネル212は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル212はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル212として、LCD211の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル212の解像度とLCD211の解像度が一致している必要はない。タッチパネル212に対する入力は通常タッチペン220を用いて行われるが、タッチペン220に限らずユーザの指でタッチパネル212に対する入力をすることも可能である。なお、ハウジング210には、タッチパネル212に対する操作を行うために用いられるタッチペン220を収納する収納穴220aが設けられている(図21(b)参照)。なお、ここでは、タッチペン220が落ちないように、収納穴220aはハウジング210の上面に設けられるが、側面や下面に設けられてもよい。このように、端末装置200はタッチパネル212を備えるので、ユーザは、端末装置200を動かしながらタッチパネル212を操作することができる。つまりユーザは、LCD211の画面を動かしつつ、その画面に対して直接(タッチパネル212によって)入力を行うことができる。
【0252】
図21に示すように、端末装置200は、操作手段(操作部)として、2つのアナログスティック213Aおよび213Bと、複数のボタン(キー)214A〜214Mとを備えている。各アナログスティック213Aおよび213Bは、方向を指示することが可能なデバイスである。各アナログスティック213Aおよび213Bは、ユーザの指で操作される可動部材(スティック部)がハウジング210の表面に対して任意の方向(上下左右および斜め方向の任意の角度)にスライドすることができるように構成されている。すなわち、スライドパッドと呼ばれることもある方向入力デバイスである。なお、各アナログスティック213Aおよび213Bの可動部材は、ハウジング210の表面に対して任意の方向に傾倒する種類のものでもよい。本実施形態では、可動部材がスライドする種類のアナログスティックを用いるので、ユーザは親指を大きく動かさなくても各アナログスティック213Aおよび213Bを操作することができ、ハウジング210をよりしっかりと把持した状態で操作を行うことができる。なお、各アナログスティック213Aおよび213Bとして、可動部材が傾倒する種類のものを用いる場合には、入力の程度(傾きの程度)がユーザにとってわかりやすく、詳細な操作をより容易に行うことができる。
【0253】
また、左アナログスティック213AはLCD211の画面の左側に、右アナログスティック213BはLCD211の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図23および図24に示すように、各アナログスティック213Aおよび213Bは、ユーザが端末装置200の左右部分(LCD211の左右両側の部分)を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置200を持って動かす場合においても各アナログスティック213Aおよび213Bを容易に操作することができる。
【0254】
各ボタン214A〜214Lは、所定の入力を行うための操作手段(操作部)であり、押下可能なキーである。以下に示すように、各ボタン214A〜214Lは、ユーザが端末装置200の左右部分を把持した状態で操作可能な位置に設けられる(図23および図24参照)。したがって、ユーザは、端末装置200を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
【0255】
図21の(a)図に示すように、ハウジング210の表面には、各操作ボタン214A〜214Lのうち、十字ボタン(方向入力ボタン)214Aと、ボタン214B〜214Hおよび214Mとが設けられる。つまり、これらのボタン214A〜214Hおよび214Mは、ユーザの親指で操作可能な位置に配置されている(図23および図24参照)。
【0256】
十字ボタン214Aは、LCD211の左側であって、左アナログスティック213Aの下側に設けられる。つまり、十字ボタン214Aはユーザの左手で操作可能な位置に配置されている。十字ボタン214Aは、十字の形状を有しており、少なくとも上下左右の方向を指示することが可能なボタンである。
【0257】
また、ボタン214B〜214Dは、LCD211の下側に設けられる。これら3つのボタン214B〜214Dは、左右両方の手で操作可能な位置に配置されている。また、端末装置200は、端末装置200の電源をオン/オフするための電源ボタン214Mを有している。電源ボタン214Mの操作により、ゲーム装置3の電源を遠隔でオン/オフすることも可能である。電源ボタン214Mは、ボタン214B〜214Dと同様、LCD211の下側に設けられる。電源ボタン214Mは、ボタン214B〜214Dの右側に設けられる。したがって、電源ボタン214Mは、右手で操作可能な(操作しやすい)位置に配置されている。また、4つのボタン214E〜214Hは、LCD211の右側であって、右アナログスティック213Bの下側に設けられる。つまり、4つのボタン214E〜214Hはユーザの右手で操作可能な位置に配置されている。さらに、4つのボタン214E〜214Hは、(4つのボタン214E〜214Hの中心位置に対して)上下左右の位置関係となるように配置されている。したがって、端末装置200は、ユーザに上下左右の方向を指示させるためのボタンとして4つのボタン214E〜214Hを機能させることも可能である。
【0258】
なお、本実施形態においては、各アナログスティック213Aおよび213Bは、十字ボタン214Aおよび各ボタン214E〜214Hよりも上側に配置される。ここで、各アナログスティック213Aおよび213Bは、十字ボタン214Aおよび各ボタン214E〜214Hよりも厚さ方向(y軸方向)に関して突出している。そのため、仮にアナログスティック213Aと十字ボタン214Aとの配置を逆にした場合には、ユーザが十字ボタン214Aを親指で操作する際にアナログスティック213Aに親指が当たってしまい、操作を誤ってしまうおそれがある。なお、アナログスティック213Bと各ボタン214E〜214Hとの配置を逆にする場合も同様の問題が生じる。これに対して、本実施形態では、各アナログスティック213Aおよび213Bを十字ボタン214Aおよび各ボタン214E〜214Hよりも上側に配置するので、ユーザがアナログスティック213Aおよび213Bを操作する際に十字ボタン214Aおよび各ボタン214E〜214Hに指が当たってしまう可能性は上記の場合に比べて低くなる。このように、本実施形態においては、誤操作の可能性を低減することができ、端末装置200の操作性を向上することができる。ただし、別の実施形態においては、必要に応じてアナログスティック213Aが十字ボタン214Aと逆の配置であってもよいし、アナログスティック213Bが各ボタン214E〜214Hと逆の配置であってもよい。
【0259】
ここで、本実施形態では、いくつかの操作部(各アナログスティック213Aおよび213B、十字ボタン214A、ならびに、3つのボタン214E〜214G)は、表示部(LCD211)の左右両側において、ハウジング210における上下方向(y軸方向)の中心よりも上側に設けられる。これらの操作部を操作する場合、ユーザは、端末装置200における上下方向の中心よりも上側を主に把持する。ここで、ユーザがハウジング210の下側を把持する場合には、(端末装置200が本実施形態のように比較的大きなサイズである場合には特に)把持される端末装置200が不安定になり、ユーザは端末装置200を持ちにくくなる。これに対して、本実施形態では、上記操作部を操作する場合、ユーザは、端末装置200における上下方向の中心よりも上側を主に把持することになり、また、手のひらでハウジング210を横から支えることができる。したがって、ユーザは、安定した状態でハウジング210を把持することができ、端末装置200が持ちやすくなるので、上記操作部も操作しやすくなる。なお、他の実施形態においては、ハウジング210の中央よりも上側において表示部の左右にそれぞれ少なくとも1つずつ操作部が設けられてもよい。例えば、各アナログスティック213Aおよび213Bのみがハウジング210の中央よりも上側に設けられてもよい。また例えば、十字ボタン214Aが左アナログスティック213Aよりも上側に設けられ、4つのボタン214E〜214Hが右アナログスティック213Bよりも上側に設けられる場合には、十字ボタン214Aおよび4つのボタン214E〜214Hがハウジング210の中央よりも上側に設けられても良い。
【0260】
また、本実施形態では、ハウジング210の裏側(LCD211が設けられる表面の反対側)には、突起部(庇部219)が設けられる(図21(c)および図22参照)。図21(c)に示すように、庇部219は、略板状のハウジング210の裏面から突起して設けられる、山状の部材である。突起部は、ハウジング210の裏面を把持するユーザの指に掛止可能な高さ(厚さ)を有する。突起部の高さは、10〜25[mm]であることが好ましく、本実施形態では16.66[mm]である。また、突起部の下面は、突起部がユーザの指に掛かりやすいように、ハウジング210の裏面に対して45°以上(より好ましくは60°以上)の傾斜を有することが好ましい。図21(c)に示すように、突起部の下面は、上面よりも傾斜角度が大きくなるように形成されてもよい。図23および図24に示すように、ユーザは、指を庇部219に掛けて(指の上に庇部219を乗せて)把持することによって、端末装置200が比較的大きなサイズであっても、疲れることなく安定した状態で端末装置200を把持することができる。すなわち、庇部219は、指でハウジング210を支えるための支持部材であるということができ、また、指掛部ということもできる。
【0261】
また、庇部219は、ハウジング210の上下方向に関しては中央よりも上側に設けられる。庇部219は、ハウジング210の表面に設けられる操作部(各アナログスティック213Aおよび213B)の概ね反対側の位置に設けられる。つまり、突起部は、表示部の左右にそれぞれ設けられる操作部の反対側の位置を含む領域に設けられる。したがって、上記操作部を操作する場合、ユーザは、中指あるいは薬指で庇部219を支えるようにして端末装置200を把持することができる(図23および図24参照)。これによって、端末装置200がより持ちやすくなり、上記操作部もより操作しやすくなる。また、本実施形態では、突起部は、(突起した部分が)左右に延びる庇状の形状を有するので、ユーザは、中指あるいは薬指を突起部の下面に沿わせて端末装置200を把持することができ、端末装置200がより持ちやすくなる。なお、庇部219は、(突起した部分が)左右方向に延びるように形成されればよく、図22に示すような水平方向に延びる形状に限られない。他の実施形態においては、庇部219は水平方向から若干傾いた方向に延びていてもよい。例えば、庇部219は、左右両端から中央に向かうにつれて上に(または下に)傾斜するように設けられてもよい。
【0262】
なお、本実施形態においては、後述する係止穴を庇部219に設けることが理由で、ハウジングの裏面に形成される突起部として、庇状の形状をした庇部219を採用するが、突起部はどのような形状であってもよい。例えば、他の実施形態においては、ハウジング210の裏側において、2つの突起部が左右両側に設けられる(左右方向の中央には突起部が設けられない)構成であってもよい(図25参照)。また、他の実施形態においては、突起部の断面形状(x軸方向に垂直な断面における形状)は、ユーザの指で端末装置200をよりしっかりと支えることができるように(突起部が指によりしっかりと掛かるように)、鈎型(下面が凹んだ形状)であってもよい。
【0263】
なお、突起部(庇部219)の上下方向に関する幅は、いくらであってもよい。例えば、突起部は、ハウジング210の上辺まで形成されてもよい。すなわち、突起部の上面がハウジング210の上側の側面と同じ位置に形成されてもよい。このとき、ハウジング210は、下側が薄く、上側が厚い2段の構成となる。このように、ハウジング210は、裏面における左右両側に、下方を向く面(突起部の下面)が形成されることが好ましい。これによって、ユーザは、当該面に指を当てることで楽に操作装置を把持することができる。なお、上記「下方を向く面」は、ハウジング210の裏面におけるどの位置に形成されてもよいが、ハウジング210の中央よりも上側に位置することが好ましい。
【0264】
また、図21の(a)図、(b)図、および(c)図に示すように、第1Lボタン214Iおよび第1Rボタン214Jは、ハウジング210の上側の面における左右の両側にそれぞれ設けられる。本実施形態では、第1Lボタン214Iおよび第1Rボタン214Jは、ハウジング210の斜め上部分(左上部分および右上部分)に設けられる。具体的には、第1Lボタン214Iは、板状のハウジング210における上側の側面の左端に設けられ、左上側の側面から露出している(換言すれば上側および左側の両方の側面から露出している)。また、第1Rボタン214Jは、ハウジング210における上側の側面の右端に設けられ、右上側の側面から露出している(換言すれば上側および右側の両方の側面から露出している)。このように、第1Lボタン214Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン214Jは、ユーザの右手人差し指で操作可能な位置に配置される(図23参照)。なお、他の実施形態においては、ハウジング210の上側の面における左右にそれぞれ設けられる操作部は、左右の端部に設けられる必要はなく、端部以外の位置に設けられてもよい。また、ハウジング210の左右の側面に操作部がそれぞれ設けられてもよい。
【0265】
また、図21の(c)図および図22に示すように、第2Lボタン214Kおよび第2Rボタン214Lは、上記突起部(庇部219)に配置される。第2Lボタン214Kは、庇部219の左端付近に設けられる。第2Rボタン214Lは、庇部219の右端付近に設けられる。つまり、第2Lボタン214Kは、ハウジング210の裏面の左側(表面側から見たときの左側)のやや上方に設けられ、第2Rボタン214Lは、ハウジング210の裏面の右側(表面側から見たときの右側)のやや上方に設けられる。換言すれば、第2Lボタン214Kは、表面に設けられる左アナログスティック213Aの(概ね)反対側の位置に設けられ、第2Rボタン214Lは、表面に設けられる右アナログスティック213Bの(概ね)反対側の位置に設けられる。このように、第2Lボタン214Kは、ユーザの左手中指または人差し指で操作可能な位置に配置され、第2Rボタン214Lは、ユーザの右手中指または人差し指で操作可能な位置に配置される(図23および図24参照)。また、第2Lボタン214Kおよび第2Rボタン214Lは、図21の(c)図に示すように、上記庇部219の上面に設けられる。そのため、第2Lボタン214Kおよび第2Rボタン214Lは、上方(斜め上方)を向くボタン面を有する。ユーザが端末装置200を把持した場合には中指または人差し指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第2Lボタン214Kおよび第2Rボタン214Lを押下しやすくなる。
【0266】
上記のように、本実施形態においては、ハウジング210の中央よりも上側において表示部(LCD211)の左右に操作部(アナログスティック213Aおよび213B)がそれぞれ設けられ、さらに、ハウジング210の裏側において当該操作部の反対側の位置に別の操作部(第2Lボタン214Kおよび第2Rボタン214L)がそれぞれ設けられる。これによれば、上記操作部と別の操作部とがハウジング210の表側と裏側との互いに対向する位置に配置されるので、ユーザは、これらの操作部を操作する際にハウジング210を表側と裏側から挟むように把持することができる。また、これらの操作部を操作する際にユーザは、ハウジング210における上下方向の中心よりも上側を把持するので、端末装置200を上側で把持できるとともに、手のひらで端末装置200を支えることができる(図23および図24参照)。以上によって、ユーザは、少なくとも4つの操作部を操作することができる状態で、ハウジング210を安定的に把持することができ、ユーザが容易に把持することが可能で、かつ操作性の良い操作装置(端末装置200)を提供することができる。
【0267】
以上のように、本実施形態においては、突起部(庇部219)の下面に指を当てた状態で端末装置200を把持することによって、ユーザは楽に端末装置200を把持することができる。また、突起部の上面に第2Lボタン214Kおよび第2Rボタン214Lが設けられるので、ユーザは上記の状態でこれらのボタンを容易に操作することができる。ユーザは、例えば次のような持ち方で端末装置200を容易に把持することができる。
【0268】
すなわち、ユーザは、図23に示すように、薬指を庇部219の下面(図23に示す一点鎖線)に当てて(薬指で庇部219を支えるように)端末装置200を把持することも可能である。このとき、ユーザは、4つのボタン(第1Lボタン214I、第1Rボタン214J、第2Lボタン214K、および第2Rボタン214L)を人差し指および中指で操作することができる。例えば、要求されるゲーム操作が、使用するボタンが多く、比較的複雑である場合には、図23に示すように把持することで、多くのボタンを容易に操作することができる。なお、各アナログスティック213Aおよび213Bは十字ボタン214Aおよびボタン214E〜214Hの上側に設けられるので、比較的複雑な操作が要求される場合にユーザは親指でアナログスティック213Aおよび213Bを操作することができ、好都合である。また、図23においては、ユーザは、ハウジング210の表面に親指を、ハウジング210の上面に人差し指を、ハウジング210の裏面における庇部219の上面に中指を、庇部219の下面に薬指を、ハウジング210の裏面に小指を当てて端末装置200を把持する。このように、ユーザは、ハウジング210を四方から包み込むようにして端末装置200をしっかりと把持することができる。
【0269】
また、ユーザは、図24に示すように、中指を庇部219の下面(図24に示す一点鎖線)に当てて端末装置200を把持することも可能である。このとき、ユーザは、2つのボタン(第2Lボタン214Kおよび第2Rボタン214L)を人差し指で容易に操作することができる。例えば、要求されるゲーム操作が、使用するボタンが少なく、比較的単純である場合には、図24に示すように把持してもよい。図24においては、ユーザは、2本の指(薬指および小指)でハウジング210の下側を把持することができるので、しっかりと端末装置200を把持することができる。
【0270】
なお、本実施形態においては、庇部219の下面が、各アナログスティック213Aおよび213Bと、十字ボタン214Aおよび4つのボタン214E〜214Hとの間に位置するように(各アナログスティック213Aおよび213Bよりも下方で、かつ、十字ボタン214Aおよび4つのボタン214E〜214Hよりも上方に位置するように)設けられる。したがって、薬指を庇部219に当てて端末装置200を把持する場合(図23)には、各アナログスティック213Aおよび213Bを親指で操作しやすくなり、中指を庇部219に当てて端末装置200を把持する場合(図24)には、十字ボタン214Aおよび4つのボタン214E〜214Hを親指で操作しやすくなっている。つまり、上記2種類の場合のいずれにおいても、ユーザは、端末装置200をしっかりと把持した状態で方向入力操作を行うことができる。
【0271】
また、上述のように、ユーザは端末装置200を縦持ちで把持することも可能である。すなわち、図25に示すように、ユーザは端末装置200の上辺を左手で把持することで端末装置200を縦向きで把持することが可能である。また、図26に示すように、ユーザは端末装置200の下辺を左手で把持することで端末装置200を縦向きで把持することが可能である。なお、図25および図26では端末装置200を左手で把持する場合を示しているが、右手で把持することも可能である。このように、ユーザは端末装置200を片手で把持することが可能であるので、例えば、一方の手で端末装置200を把持しながら他方の手でタッチパネル212に対する入力を行うといった操作を行うことも可能である。
【0272】
また、図25に示す持ち方で端末装置200を把持する場合、ユーザは親指以外の指(図25にでは中指、薬指および小指)を庇部219の下面(図25に示す一点鎖線)に当てることで、端末装置200をしっかりと把持することができる。特に、本実施形態においては、庇部219が左右に(図25では上下に)延びて形成されているので、ユーザは端末装置200の上辺におけるどこの位置で把持しても、親指以外の指を庇部219に当てることができ、端末装置200をしっかりと把持することができる。すなわち、端末装置200を縦持ちで使う場合には、庇部219は取っ手として使うことができる。一方、図26に示す持ち方で端末装置200を把持する場合、ユーザは、左手でボタン214B〜214Dを操作することができる。したがって、例えば片手でタッチパネル212に対する入力を行いつつ、端末装置200を把持する手でボタン214B〜214Dに対する操作を行うことができ、より多くの操作を行うことができる。
【0273】
なお、本実施形態における端末装置200に関しては、突起部(庇部219)が裏面に設けられるので、LCD211の画面(ハウジング210の表面)が上を向いた状態で端末装置200を載置させる場合、画面がやや傾いた状態となる。これによって、端末装置200を載置した状態において画面がより見やすくなる。また、端末装置200を載置した状態においてタッチパネル212に対する入力操作が行いやすくなる。また、他の実施形態においては、上記庇部219と同程度の高さを有する追加の突起部がハウジング210の裏面に形成されてもよい。これによれば、LCD211の画面が上を向いた状態では、各突起部が床面に接することで、画面が水平になるように端末装置200を載置することができる。また、追加の突起部を着脱可能な(または折り畳み可能な)ものとしてもよい。これによれば、画面がやや傾いた状態と、画面が水平になる状態との両方で端末装置を載置することができる。すなわち、端末装置200を置いて使う場合には、庇部219は、脚部として使うことができる。
【0274】
各ボタン214A〜214Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン214Aおよびボタン214E〜214Hは方向指示操作や選択操作等に用いられてもよいし、各ボタン214B〜214Eは決定操作やキャンセル操作等に用いられてもよい。また、端末装置200は、LCD211の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定(ペアリング)を行うためのボタンを有していてもよい。
【0275】
図21の(a)図に示すように、端末装置200は、マーカ215Aおよびマーカ215Bからなるマーカ部215をハウジング210の表面に備えている。マーカ部215は、LCD211の上側に設けられる。各マーカ215Aおよびマーカ215Bは、マーカ装置6の各マーカ6Rおよび6Lと同様、1以上の赤外LEDで構成される。マーカ215Aおよび215Bを構成する赤外LEDは、赤外光を透過する窓部の内側に配置される。マーカ部215は、上述のマーカ装置6と同様、コントローラ5の動き等をゲーム装置3が算出するために用いられる。また、ゲーム装置3はマーカ部215が備える各赤外LEDの点灯を制御することが可能である。
【0276】
端末装置200は、撮像手段であるカメラ216を備えている。カメラ216は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。図21に示すように、本実施形態では、カメラ216はハウジング210の表面に設けられる。したがって、カメラ216は、端末装置200を持っているユーザの顔を撮像することができ、例えばLCD211を見ながらゲームを行っている時のユーザを撮像することができる。本実施形態においては、カメラ216は、2つのマーカ215Aおよび215Bの間に配置される。
【0277】
なお、端末装置200は、音声入力手段であるマイク239を備えている。ハウジング210の表面には、マイクロフォン用孔210cが設けられる。マイク239はこのマイクロフォン用孔210cの奥のハウジング210内部に設けられる。マイク239は、ユーザの音声等、端末装置200の周囲の音を検出する。
【0278】
端末装置200は、音声出力手段であるスピーカ237を備えている。図21の(d)図に示すように、ハウジング210の表面の下側にはスピーカ孔217が設けられる。スピーカ237の出力音はこのスピーカ孔217から出力される。本実施形態では、端末装置200は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔217が設けられる。なお、端末装置200は、スピーカ237の音量を調節するためのつまみ224を備える。また、端末装置200は、イヤホン等の音声出力部を接続するための音声出力端子222を備える。ここでは、ハウジングの下側の側面に付加装置が接続されることを考慮して、上記音声出力端子222およびつまみ224はハウジング210の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
【0279】
また、ハウジング210には、赤外線通信モジュール242からの赤外線信号を端末装置200の外部に出射するための窓223が設けられる。ここでは、LCD211の両側を把持した場合にユーザの前方へ赤外線信号が発射されるように、窓223はハウジング210の上側の側面に設けられる。ただし、他の実施形態においては、窓223は、例えばハウジング210の裏面等、どの位置に設けられてもよい。
【0280】
また、端末装置200は、他の装置を端末装置200に接続するための拡張コネクタ218を備えている。拡張コネクタ218は、端末装置200に接続される他の装置との間でデータ(情報)を送受信するための通信端子である。本実施形態においては、図21の(d)図に示すように、拡張コネクタ218は、ハウジング210の下側側面に設けられる。なお、拡張コネクタ218に接続される他の付加装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ(銃型のコントローラ等)やキーボード等の入力装置であってもよい。付加装置を接続する必要がなければ、拡張コネクタ218は設けられていなくともよい。拡張コネクタ218には、付加装置に電力を供給する端子や、充電のための端子が含まれていてもよい。
【0281】
また、端末装置200は、拡張コネクタ218とは別に、付加装置から電力を取得するための充電端子226を有する。所定の充電スタンドに充電端子226が接続された場合、充電スタンドから端末装置200へ電力が供給される。本実施形態では、充電端子226はハウジング210の下側側面に設けられる。したがって、端末装置200と付加装置とが接続される際には、拡張コネクタ218を介して情報を送受信することに加えて、一方から他方への電力供給を行うことも可能である。このように、拡張コネクタ218の周囲(左右両側)に充電端子226を設けることによって、端末装置200と付加装置とが接続される際に、情報の送受信とともに、電力供給を行うことも可能である。また、端末装置200は充電コネクタを有し、ハウジング210は充電コネクタを保護するためのカバー部221を有する。充電コネクタは、後述する充電器246に接続可能であり、充電器に充電コネクタが接続された場合、充電器246から端末装置200へ電力が供給される。本実施形態では、ハウジングの下側の側面に付加装置が接続されることを考慮して、充電コネクタ(カバー部221)はハウジング210の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
【0282】
また、端末装置200は、ハウジング210に対して着脱可能な電池蓋227を有している。電池蓋227の内側には電池(図27に示す電池245)が配置される。本実施形態においては、電池蓋227はハウジング210の裏側に設けられ、突起部(庇部219)の下側に設けられる。
【0283】
また、端末装置200のハウジング210には、ストラップの紐を結びつけるための孔225aおよび225bが設けられる。図21(d)に示すように、本実施形態においては、孔225aおよび225bはハウジング210の下面に設けられる。また、本実施形態においては、2つの孔225aおよび225bがハウジング210の左右両側にそれぞれ1つずつ設けられる。すなわち、孔225aがハウジング210の下面の中央より左側に設けられ、孔225bがハウジング210の下面の中央より右側に設けられる。ユーザは、孔225aおよび225bのいずれかにストラップを結びつけ、ストラップを自身の手首に結びつけてもよい。これによって、万一ユーザが端末装置200を落としたり、端末装置200が手から離れたりした場合でも、端末装置200が落下したり他の物に衝突したりすることを防止することができる。なお、本実施形態においては、左右両側にそれぞれ孔が設けられるので、ユーザは、どちらの手にもストラップを結びつけることができ、便利である。
【0284】
なお、図21〜図26に示した端末装置200に関して、各操作ボタンやハウジング210の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
【0285】
次に、図27を参照して、端末装置200の内部構成について説明する。図27は、端末装置200の内部構成を示すブロック図である。図27に示すように、端末装置200は、図21に示した構成の他、タッチパネルコントローラ231、磁気センサ232、加速度センサ233、ジャイロセンサ234、ユーザインタフェースコントローラ(UIコントローラ)235、コーデックLSI236、スピーカ237、サウンドIC238、マイク239、無線モジュール240、アンテナ241、赤外線通信モジュール242、フラッシュメモリ243、電源IC244、および電池245を備える。これらの電子部品は、電子回路基板上に実装されてハウジング210内に収納される。
【0286】
UIコントローラ235は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ235は、タッチパネルコントローラ231、アナログスティック213(アナログスティック213Aおよび213B)、操作ボタン214(各操作ボタン214A〜214L)、マーカ部215、磁気センサ232、加速度センサ233、およびジャイロセンサ234に接続される。また、UIコントローラ235は、コーデックLSI236と拡張コネクタ218に接続される。また、UIコントローラ235には電源IC244が接続され、UIコントローラ235を介して各部に電力が供給される。電源IC244には内蔵の電池245が接続され、電力が供給される。また、電源IC244には、外部電源から電力を取得可能な充電器246またはケーブルを充電コネクタを介して接続することが可能であり、端末装置200は、当該充電器246またはケーブルを用いて外部電源からの電力供給と充電を行うことができる。なお、端末装置200は、図示しない充電機能を有するクレイドルに端末装置200を装着することで充電を行うことも可能である。すなわち、図示しないが、電源IC244には、外部電源から電力を取得可能なクレイドルを充電端子226を介して接続することが可能であり、端末装置200は、クレイドルを用いて外部電源からの電力供給と充電を行うことができる。
【0287】
タッチパネルコントローラ231は、タッチパネル212に接続され、タッチパネル212の制御を行う回路である。タッチパネルコントローラ231は、タッチパネル212からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ235へ出力する。タッチ位置データは、タッチパネル212の入力面において入力が行われた位置の座標を表す。なお、タッチパネルコントローラ231は、タッチパネル212からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ235からタッチパネルコントローラ231へは、タッチパネル212に対する各種の制御指示が出力される。
【0288】
アナログスティック213は、ユーザの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ235へ出力する。また、操作ボタン214は、各操作ボタン214A〜214Lに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ235へ出力する。
【0289】
磁気センサ232は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、UIコントローラ235へ出力される。また、UIコントローラ235から磁気センサ232へは、磁気センサ232に対する制御指示が出力される。磁気センサ232に関しては、MI(磁気インピーダンス)素子、フラックスゲートセンサ、ホール素子、GMR(巨大磁気抵抗)素子、TMR(トンネル磁気抵抗)素子、あるいはAMR(異方性磁気抵抗)素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置200が動いた場合には方位データが変化するため、端末装置200の姿勢の変化を算出することができる。
【0290】
加速度センサ233は、ハウジング210の内部に設けられ、3軸(図21の(a)図に示すxyz軸)方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ233は、ハウジング210の長辺方向をx軸、ハウジング210の表面に対して垂直な方向をy軸、ハウジング210の短辺方向をz軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはUIコントローラ235へ出力される。また、UIコントローラ235から加速度センサ233へは、加速度センサ233に対する制御指示が出力される。加速度センサ233は、本実施形態では例えば静電容量式のMEMS型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ233は1軸または2軸方向を検出する加速度センサであってもよい。
【0291】
ジャイロセンサ234は、ハウジング210の内部に設けられ、上記x軸、y軸およびz軸の3軸周りの角速度を検出する。検出された角速度を表す角速度データは、UIコントローラ235へ出力される。また、UIコントローラ235からジャイロセンサ234へは、ジャイロセンサ234に対する制御指示が出力される。なお、3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ234はジャイロセンサユニット6と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ234は1軸または2軸方向を検出するジャイロセンサであってもよい。
【0292】
UIコントローラ235は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データをコーデックLSI236に出力する。なお、拡張コネクタ218を介して端末装置200に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。
【0293】
コーデックLSI236は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI236には、LCD211、カメラ216、サウンドIC238、無線モジュール240、フラッシュメモリ243、および赤外線通信モジュール242が接続される。また、コーデックLSI236はCPU247と内部メモリ248を含む。端末装置200はゲーム処理自体を行なわない構成であるが、端末装置200の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ243に格納されたプログラムを内部メモリ248に読み出してCPU247が実行することで、端末装置200が起動する。また、内部メモリ248の一部の領域はLCD211のためのVRAMとして使用される。
【0294】
カメラ216は、ゲーム装置3からの指示に従って画像を撮像し、撮像した画像データをコーデックLSI236へ出力する。また、コーデックLSI236からカメラ216へは、画像の撮像指示等、カメラ216に対する制御指示が出力される。なお、カメラ216は動画の撮影も可能である。すなわち、カメラ216は、繰り返し撮像を行って画像データをコーデックLSI236へ繰り返し出力することも可能である。
【0295】
サウンドIC238は、スピーカ237およびマイク239に接続され、スピーカ237およびマイク239への音声データの入出力を制御する回路である。すなわち、コーデックLSI236から音声データを受け取った場合、サウンドIC238は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ237へ出力し、スピーカ237から音を出力させる。また、マイク239は、端末装置200に伝わる音(ユーザの音声等)を検知して、当該音を示す音声信号をサウンドIC238へ出力する。サウンドIC238は、マイク239からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI236へ出力する。
【0296】
コーデックLSI236は、カメラ216からの画像データ、マイク239からの音声データ、および、UIコントローラ235からの操作データを、端末操作データとして無線モジュール240を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI236は、画像データおよび音声データに対して、画像圧縮部27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール240に出力される。無線モジュール240にはアンテナ241が接続されており、無線モジュール240はアンテナ241を介してゲーム装置3へ上記送信データを送信する。無線モジュール240は、ゲーム装置3の高速無線通信モジュール28と同様の機能を有している。すなわち、無線モジュール240は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
【0297】
以上のように、端末装置200からゲーム装置3へ送信される送信データには、操作データ(端末操作データ)、画像データ、および音声データが含まれる。なお、拡張コネクタ218を介して端末装置200に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール242は、他の装置との間で例えばIRDAの規格に従った赤外線通信を行う。コーデックLSI236は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置3へ送信してもよい。
【0298】
また、上述のように、ゲーム装置3から端末装置200へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ241および無線モジュール240を介してコーデックLSI236に受信される。コーデックLSI236は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD211へ出力され、画像がLCD211に表示される。つまり、コーデックLSI236(CPU247)は、受信された画像データを表示部に表示させる。また、伸張された音声データはサウンドIC238へ出力され、サウンドIC238はスピーカ237から音を出力させる。
【0299】
また、ゲーム装置3から受信されるデータに制御データが含まれる場合、コーデックLSI236およびUIコントローラ235は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置200が備える各構成要素(本実施形態では、カメラ216、タッチパネルコントローラ231、マーカ部215、各センサ222〜224、および赤外線通信モジュール242)に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止(停止)させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置200からゲーム装置3へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部215は赤外LEDであるので、制御は単に電力の供給のON/OFFでよい。
【0300】
以上のように、端末装置200は、タッチパネル212、アナログスティック213、および操作ボタン214といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。
【0301】
また、端末装置200は、端末装置200の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ232、加速度センサ233、およびジャイロセンサ234を備えるが、他の実施形態においては、これらのセンサのうち1つまたは2つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。
【0302】
また、端末装置200は、カメラ216およびマイク239を備える構成であるが、他の実施形態においては、カメラ216およびマイク239を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
【0303】
また、端末装置200は、端末装置200とコントローラ5との位置関係(コントローラ5から見た端末装置200の位置および/または姿勢等)を算出するための構成としてマーカ部215を備える構成であるが、他の実施形態ではマーカ部215を備えていない構成としてもよい。また、他の実施形態では、端末装置200は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、コントローラ5がマーカ部を備え、端末装置200が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置6は赤外LEDに代えて、撮像素子を備える構成としてもよい。
【産業上の利用可能性】
【0304】
以上のように、本発明は、タッチパネルあるいはタッチパッド等のポインティングデバイスを用いて3次元空間内の方向を容易に指示すること等を目的として、例えばゲームシステムやゲームプログラムとして利用することが可能である。
【符号の説明】
【0305】
1 ゲームシステム
2 テレビ
3 ゲーム装置
4 光ディスク
7 操作装置
9 ハンドヘルドデバイス
10 CPU
11e 内部メインメモリ
12 外部メインメモリ
15 AV−IC
19 コントローラ通信モジュール
28 高速無線通信モジュール
35 撮像情報演算部
37 加速度センサ
44 無線モジュール
55,56 ジャイロセンサ
62 下側LCD
63 タッチパネル
64 操作ボタン
89 加速度センサ
90 ジャイロセンサ
101 手裏剣オブジェクト
102 制御面
132 弾オブジェクト
135 制御面

【特許請求の範囲】
【請求項1】
ゲーム装置と、所定の入力面を有するハンドヘルドデバイスとを含むゲームシステムであって、
前記ハンドヘルドデバイスは、
前記所定の入力面に対するプレイヤの入力位置を表すタッチデータを出力するタッチデータ出力部と、
前記ハンドヘルドデバイスの動きに応じて値が変化する動きデータを出力する動きデータ出力部と、
前記タッチデータおよび動きデータを含む操作データを前記ゲーム装置へ送信する操作データ送信部とを備え、
前記ゲーム装置は、
前記操作データを受信する第1受信部と、
3次元のゲーム空間内に配置される制御面の姿勢を前記動きデータに基づいて制御する面制御部と、
前記制御面の姿勢と前記タッチデータとに基づいて前記ゲーム空間内における制御方向を算出する方向算出部と、
前記制御方向に基づくゲーム処理を行うゲーム処理部と、
前記ゲーム空間を表す第1ゲーム画像を、当該ゲーム空間に設定される第1仮想カメラに基づいて生成する第1画像生成部と、
前記第1ゲーム画像をハンドヘルドデバイスとは別体の第1表示装置へ出力する第1画像出力部とを備えるゲームシステム。
【請求項2】
前記ゲーム処理部は、前記ゲーム空間内の所定のオブジェクトの移動方向を前記制御方向に基づいて制御する、請求項1記載のゲームシステム。
【請求項3】
前記方向算出部は、
前記タッチデータに基づいて前記制御面上における制御位置を算出する位置算出部と、
前記制御位置に基づいて前記制御方向を特定する方向特定部とを含む、請求項1または請求項2に記載のゲームシステム。
【請求項4】
前記位置算出部は、連続した入力を表すタッチデータに基づいて前記制御面上における複数の制御位置を算出し、
前記方向特定部は、前記複数の制御位置によって表される方向を前記制御方向として特定する、請求項3に記載のゲームシステム。
【請求項5】
前記ゲーム処理部は、前記ゲーム空間内の所定のオブジェクトを、前記制御方向により決められる方向に、前記制御面の姿勢によって決められる姿勢で移動させる、請求項4に記載のゲームシステム。
【請求項6】
前記面制御部は、前記ゲーム空間内に配置される制御面の姿勢を前記動きデータに基づいて制御し、
前記ゲーム処理部は、前記制御面が撮影範囲に含まれるように前記第1仮想カメラを設定する、請求項4または請求項5に記載のゲームシステム。
【請求項7】
前記方向特定部は、前記ゲーム空間内の所定位置から前記制御位置への方向を前記制御方向として特定する、請求項3に記載のゲームシステム。
【請求項8】
前記ゲーム装置は、
前記ゲーム空間を表す第2ゲーム画像を、当該ゲーム空間に設定される第2仮想カメラに基づいて生成する第2画像生成部と、
前記ハンドヘルドデバイスに前記第2ゲーム画像を出力する第2画像出力部とを備え、
前記ハンドヘルドデバイスは、
前記ゲーム装置から前記第2ゲーム画像を受信する第2受信部と、
前記ハンドヘルドデバイスに設けられる第2表示装置に前記第2ゲーム画像を表示させる表示処理部とを備える、請求項7に記載のゲームシステム。
【請求項9】
前記方向特定部は、前記第2仮想カメラの位置から前記制御位置への方向を前記制御方向として特定する、請求項8に記載のゲームシステム。
【請求項10】
前記ゲーム処理部は、前記制御面が前記第2仮想カメラの撮影範囲に含まれるように、前記制御面の変化に応じて前記第2仮想カメラを移動させる、請求項8または請求項9に記載のゲームシステム。
【請求項11】
前記タッチデータ出力部は、前記第2表示装置の画面上に前記入力面を有するタッチパネルである、請求項8から請求項10のいずれか1項に記載のゲームシステム。
【請求項12】
前記ゲーム処理部は、前記入力面上の入力位置と当該入力位置に対応する制御位置とが前記第2表示装置の画面上において一致するように、前記第2仮想カメラを設定する、請求項11に記載のゲームシステム。
【請求項13】
前記ゲーム装置は、前記動きデータに基づいて前記ハンドヘルドデバイスの姿勢を算出する姿勢算出部をさらに備え、
前記面制御部は、前記ハンドヘルドデバイスの姿勢に応じて前記制御面の姿勢を制御する、請求項3から請求項12のいずれか1項に記載のゲームシステム。
【請求項14】
前記動きデータ出力部は、加速度データを出力する加速度センサ、および、角速度データを出力するジャイロセンサの少なくとも一方を含む、請求項1から請求項13のいずれか1項に記載のゲームシステム。
【請求項15】
所定の入力面を有するハンドヘルドデバイスと通信可能なゲーム装置であって、
前記所定の入力面に対するプレイヤの入力位置を表すタッチデータと、前記ハンドヘルドデバイスの動きに応じて値が変化する動きデータとを含む操作データを前記ハンドヘルドデバイスから受信する受信部と、
3次元のゲーム空間内に配置される制御面の姿勢を前記動きデータに基づいて制御する面制御部と、
前記制御面の姿勢と前記タッチデータとに基づいて前記ゲーム空間内における制御方向を算出する方向算出部と、
前記制御方向に基づくゲーム処理を行うゲーム処理部と、
前記ゲーム空間を表す第1ゲーム画像を、当該ゲーム空間に設定される第1仮想カメラに基づいて生成する第1画像生成部と、
前記第1ゲーム画像をハンドヘルドデバイスとは別体の第1表示装置へ出力する第1画像出力部とを備えるゲーム装置。
【請求項16】
前記方向算出部は、
前記タッチデータに基づいて前記制御面上における制御位置を算出する位置算出部と、
前記制御位置に基づいて前記制御方向を特定する方向特定部とを含み、
前記位置算出部は、連続した入力を表すタッチデータに基づいて前記制御面上における複数の制御位置を算出し、
前記方向特定部は、前記複数の制御位置によって表される方向を前記制御方向として特定する、請求項15に記載のゲーム装置。
【請求項17】
前記方向算出部は、
前記タッチデータに基づいて前記制御面上における制御位置を算出する位置算出部と、
前記ゲーム空間内の所定位置から前記制御位置への方向を前記制御方向として特定する方向特定部とを含む、請求項15に記載のゲーム装置。
【請求項18】
前記ゲーム空間を表す第2ゲーム画像を、当該ゲーム空間に設定される第2仮想カメラに基づいて生成する第2画像生成部と、
前記ハンドヘルドデバイスに設けられる第2表示装置に表示させるために前記第2ゲーム画像を前記ハンドヘルドデバイスに出力する第2画像出力部とを備える、請求項17に記載のゲーム装置。
【請求項19】
所定の入力面を有するハンドヘルドデバイスと通信可能なゲーム装置のコンピュータにおいて実行されるゲームプログラムであって、
前記所定の入力面に対するプレイヤの入力位置を表すタッチデータと、前記ハンドヘルドデバイスの動きに応じて値が変化する動きデータとを含む操作データを前記ハンドヘルドデバイスから取得する取得手段と、
3次元のゲーム空間内に配置される制御面の姿勢を前記動きデータに基づいて制御する面制御手段と、
前記制御面の姿勢と前記タッチデータとに基づいて前記ゲーム空間内における制御方向を算出する方向算出手段と、
前記制御方向に基づくゲーム処理を行うゲーム処理手段と、
前記ゲーム空間を表す第1ゲーム画像を、当該ゲーム空間に設定される第1仮想カメラに基づいて生成する第1画像生成手段と、
前記第1ゲーム画像をハンドヘルドデバイスとは別体の第1表示装置へ出力する第1画像出力手段として前記コンピュータを機能させる、ゲームプログラム。
【請求項20】
前記方向算出手段は、
前記タッチデータに基づいて前記制御面上における制御位置を算出する位置算出手段と、
前記制御位置に基づいて前記制御方向を特定する方向特定手段とを含み、
前記位置算出手段は、連続した入力を表すタッチデータに基づいて前記制御面上における複数の制御位置を算出し、
前記方向特定手段は、前記複数の制御位置によって表される方向を前記制御方向として特定する、請求項19に記載のゲームプログラム。
【請求項21】
前記方向算出手段は、
前記タッチデータに基づいて前記制御面上における制御位置を算出する位置算出手段と、
前記ゲーム空間内の所定位置から前記制御位置への方向を前記制御方向として特定する方向特定手段とを含む、請求項19に記載のゲームプログラム。
【請求項22】
前記ゲーム空間を表す第2ゲーム画像を、当該ゲーム空間に設定される第2仮想カメラに基づいて生成する第2画像生成手段と、
前記ハンドヘルドデバイスに設けられる第2表示装置に表示させるために前記第2ゲーム画像を前記ハンドヘルドデバイスに出力する第2画像出力手段として前記コンピュータをさらに機能させる、請求項21に記載のゲームプログラム。
【請求項23】
ゲーム装置と、所定の入力面を有するハンドヘルドデバイスとを含むゲームシステムにおいて実行されるゲーム処理方法であって、
前記ハンドヘルドデバイスは、
前記所定の入力面に対するプレイヤの入力位置を表すタッチデータを出力するタッチデータ出力ステップと、
前記ハンドヘルドデバイスの動きに応じて値が変化する動きデータを出力する動きデータ出力ステップと、
前記タッチデータおよび動きデータを含む操作データを前記ゲーム装置へ送信する操作データ送信ステップとを実行し、
前記ゲーム装置は、
前記操作データを受信する受信ステップと、
3次元のゲーム空間内に配置される制御面の姿勢を前記動きデータに基づいて制御する面制御ステップと、
前記制御面の姿勢と前記タッチデータとに基づいて前記ゲーム空間内における制御方向を算出する方向算出ステップと、
前記制御方向に基づくゲーム処理を行うゲーム処理ステップと、
前記ゲーム空間を表す第1ゲーム画像を、当該ゲーム空間に設定される第1仮想カメラに基づいて生成する第1画像生成ステップと、
前記第1ゲーム画像をハンドヘルドデバイスとは別体の第1表示装置へ出力する第1画像出力ステップとを実行する、ゲーム処理方法。
【請求項24】
前記方向算出ステップは、
前記タッチデータに基づいて前記制御面上における制御位置を算出する位置算出ステップと、
前記制御位置に基づいて前記制御方向を特定する方向特定ステップとを含み、
前記位置算出ステップにおいて、前記ゲーム装置は、連続した入力を表すタッチデータに基づいて前記制御面上における複数の制御位置を算出し、
前記方向特定ステップにおいて、前記ゲーム装置は、前記複数の制御位置によって表される方向を前記制御方向として特定する、請求項23に記載のゲーム処理方法。
【請求項25】
前記方向算出ステップは、
前記タッチデータに基づいて前記制御面上における制御位置を算出する位置算出ステップと、
前記ゲーム空間内の所定位置から前記制御位置への方向を前記制御方向として特定する方向特定ステップとを含む、請求項23に記載のゲーム処理方法。
【請求項26】
前記ゲーム装置は、
前記ゲーム空間を表す第2ゲーム画像を、当該ゲーム空間に設定される第2仮想カメラに基づいて生成する第2画像生成ステップと、
前記ハンドヘルドデバイスに設けられる第2表示装置に表示させるために前記第2ゲーム画像を前記ハンドヘルドデバイスに出力する第2画像出力ステップとをさらに実行する、請求項25に記載のゲーム処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2012−61301(P2012−61301A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2011−120680(P2011−120680)
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】