説明

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

【課題】複数人でプレイ可能なゲームにおいて各プレイヤの操作をゲーム進行に十分に反映させる。
【解決手段】ゲームシステムは、ゲーム装置と、操作装置と、ハンドヘルドデバイスとを含む。ゲーム装置は、操作装置から第1操作データを受信し、ハンドヘルドデバイスから第2操作データを受信し、所定のゲーム制御処理を実行する。また、ゲーム装置は、ゲーム制御処理の結果を表す仮想のゲーム空間を表す第1ゲーム画像を第1仮想カメラに基づいて生成し、第2ゲーム画像を第2仮想カメラに基づいて生成する。第1ゲーム画像は、ハンドヘルドデバイスとは別体の第1表示装置に出力される。第2ゲーム画像は、ハンドヘルドデバイスに出力される。また、ゲーム装置は、ゲーム制御処理として、第1操作データに基づいて第1仮想カメラの姿勢を制御し、さらに、第2操作データに基づいて第1仮想カメラの位置を制御する処理を実行する。

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

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

【図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

【図28】
image rotate


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