[1.ゲームシステムの全体構成]
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4、コントローラ5、マーカ装置6、および、端末装置7を含む。ゲームシステム1は、コントローラ5を用いたゲーム操作に基づいてゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または端末装置7に表示するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラム)が記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによってゲーム処理を実行する。
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
テレビ2の画面の周辺(図1では画面の上側)には、マーカ装置6が設置される。詳細は後述するが、ユーザ(プレイヤ)はコントローラ5を動かすゲーム操作を行うことができ、マーカ装置6は、コントローラ5の動きや位置や姿勢等をゲーム装置3が算出するために用いられる。マーカ装置6は、その両端に2つのマーカ6Rおよび6Lを備えている。マーカ6R(マーカ6Lも同様)は、具体的には1以上の赤外LED(Light Emitting Diode)であり、テレビ2の前方に向かって赤外光を出力する。マーカ装置6はゲーム装置3に接続されており、ゲーム装置3はマーカ装置6が備える各赤外LEDの点灯を制御することが可能である。なお、マーカ装置6は可搬型であり、ユーザはマーカ装置6を自由な位置に設置することができる。図1ではマーカ装置6がテレビ2の上に設置された態様を表しているが、マーカ装置6を設置する位置および向きは任意である。
コントローラ5は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に与えるものである。コントローラ5とゲーム装置3とは無線通信によって通信可能である。本実施形態では、コントローラ5とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ5とゲーム装置3とは有線で接続されてもよい。また、本実施形態では、ゲームシステム1に含まれるコントローラ5は1つとするが、ゲーム装置3は複数のコントローラと通信可能であり、所定台数のコントローラを同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ5の詳細な構成については後述する。
端末装置7は、ユーザが把持可能な程度の大きさであり、ユーザは端末装置7を手に持って動かしたり、あるいは、端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、端末装置7は、表示手段であるLCD(Liquid Crystal Display:液晶表示装置)51、および、入力手段(後述するタッチパネル52やジャイロセンサ74等)を備える。端末装置7とゲーム装置3とは無線(有線であってもよい)によって通信可能である。端末装置7は、ゲーム装置3で生成された画像(例えばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD51に表示する。なお、本実施形態では表示装置としてLCDを用いているが、端末装置7は、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を有していてもよい。また、端末装置7は、自機に対して行われた操作の内容を表す操作データをゲーム装置3に送信する。
[2.ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPU(Central Processing Unit)10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。システムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムLSI11の内部構成については後述する。揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC:Real Time Clock)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に読み出したデータを書き込む。
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM(Video RAM)11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。なお、本実施形態においては、ゲーム装置3は、テレビ2に表示するゲーム画像と、端末装置7に表示するゲーム画像との両方を生成する。以下では、テレビ2に表示されるゲーム画像を「テレビ用ゲーム画像」と呼び、端末装置7に表示されるゲーム画像を「端末用ゲーム画像」と呼ぶことがある。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。なお、本実施形態においては、ゲーム音声についてもゲーム画像と同様、テレビ2のスピーカから出力するゲーム音声と、端末装置7のスピーカから出力するゲーム音声との両方が生成される。以下では、テレビ2から出力されるゲーム音声を「テレビ用ゲーム音声」と呼び、端末装置7から出力されるゲーム音声を「端末用ゲーム音声」と呼ぶことがある。
上記のようにゲーム装置3において生成される画像および音声のうちで、テレビ2において出力される画像および音声のデータは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、テレビ2に画像が表示されるとともにスピーカ2aから音が出力される。
また、ゲーム装置3において生成される画像および音声のうちで、端末装置7において出力される画像および音声のデータは、入出力プロセッサ11a等によって端末装置7へ送信される。入出力プロセッサ11a等による端末装置7へのデータの送信については後述する。
入出力プロセッサ11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、ネットワーク通信モジュール18、コントローラ通信モジュール19、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。
ゲーム装置3は、インターネット等のネットワークに接続して外部情報処理装置(例えば他のゲーム装置や、各種サーバ等)と通信を行うことが可能である。すなわち、入出力プロセッサ11aは、ネットワーク通信モジュール18およびアンテナ22を介してインターネット等のネットワークに接続し、ネットワークに接続される外部情報処理装置と通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、ネットワーク通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、外部情報処理装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22およびネットワーク通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と外部情報処理装置との間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。また、フラッシュメモリ17にはゲームプログラムが記憶されてもよい。
また、ゲーム装置3は、コントローラ5からの操作データを受信することが可能である。すなわち、入出力プロセッサ11aは、コントローラ5から送信される操作データをアンテナ23およびコントローラ通信モジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
また、ゲーム装置3は、端末装置7との間で画像や音声等のデータを送受信することが可能である。入出力プロセッサ11aは、端末装置7へゲーム画像(端末用ゲーム画像)を送信する場合、GPU11bが生成したゲーム画像のデータをコーデックLSI27へ出力する。コーデックLSI27は、入出力プロセッサ11aからの画像データに対して所定の圧縮処理を行う。端末通信モジュール28は、端末装置7との間で無線通信を行う。したがって、コーデックLSI27によって圧縮された画像データは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。なお、本実施形態では、ゲーム装置3から端末装置7へ送信される画像データはゲームに用いるものであり、ゲームにおいては表示される画像に遅延が生じるとゲームの操作性に悪影響が出る。そのため、ゲーム装置3から端末装置7への画像データの送信に関しては、できるだけ遅延が生じないようにすることが好ましい。したがって、本実施形態では、コーデックLSI27は、例えばH.264規格といった高効率の圧縮技術を用いて画像データを圧縮する。なお、それ以外の圧縮技術を用いてもよいし、通信速度が十分である場合には無圧縮で画像データを送信する構成であってもよい。また、端末通信モジュール28は、例えばWi−Fiの認証を受けた通信モジュールであり、例えばIEEE802.11n規格で採用されるMIMO(Multiple Input Multiple Output)の技術を用いて端末装置7との間の無線通信を高速に行うようにしてもよいし、他の通信方式を用いてもよい。
また、ゲーム装置3は、画像データの他、音声データを端末装置7へ送信する。すなわち、入出力プロセッサ11aは、DSP11cが生成した音声データを、コーデックLSI27を介して端末通信モジュール28へ出力する。コーデックLSI27は、音声データに対しても画像データと同様に圧縮処理を行う。音声データに対する圧縮の方式は、どのような方式であってもよいが、圧縮率が高く、音声の劣化が少ない方式が好ましい。また、他の実施形態においては、音声データは圧縮されずに送信されてもよい。端末通信モジュール28は、圧縮された画像データおよび音声データを、アンテナ29を介して端末装置7へ送信する。
さらに、ゲーム装置3は、上記画像データおよび音声データの他に、必要に応じて各種の制御データを端末装置7へ送信する。制御データは、端末装置7が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部(図10に示すマーカ部55)の点灯を制御する指示や、カメラ(図10に示すカメラ56)の撮像を制御する指示等を表す。入出力プロセッサ11aは、CPU10の指示に応じて制御データを端末装置7へ送信する。なお、この制御データに関して、本実施形態ではコーデックLSI27はデータの圧縮処理を行わないが、他の実施形態においては圧縮処理を行うようにしてもよい。なお、ゲーム装置3から端末装置7へ送信される上述のデータは、必要に応じて暗号化がされていてもよいし、されていなくともよい。
また、ゲーム装置3は、端末装置7から各種データを受信可能である。詳細は後述するが、本実施形態では、端末装置7は、操作データ、画像データ、および音声データを送信する。端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、端末装置7からの画像データおよび音声データは、ゲーム装置3から端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。一方、端末装置7からの操作データに関しては、画像や音声に比べてデータ量が少ないので、圧縮処理が施されていなくともよい。また、必要に応じて暗号化がされていてもよいし、されていなくともよい。したがって、操作データは、端末通信モジュール28で受信された後、コーデックLSI27を介して入出力プロセッサ11aに出力される。入出力プロセッサ11aは、端末装置7から受信したデータを、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
また、ゲーム装置3は、他の機器や外部記憶媒体に接続することが可能である。すなわち、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタである。拡張コネクタ20に対しては、外部記憶媒体のようなメディアを接続したり、他のコントローラ等の周辺機器を接続したり、有線の通信用コネクタを接続することによってネットワーク通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して外部記憶媒体にアクセスし、外部記憶媒体にデータを保存したり、外部記憶媒体からデータを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンされると、図示しないACアダプタによって外部の電源からゲーム装置3の各構成要素に対して電力が供給される。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
なお、他の実施形態においては、ゲーム装置3が備える各構成要素のうちでいくつかの構成要素は、ゲーム装置3とは別体の拡張機器として構成されてもよい。このとき、拡張機器は、例えば上記拡張コネクタ20を介してゲーム装置3と接続されるようにしてもよい。具体的には、拡張機器は、例えば上記コーデックLSI27、端末通信モジュール28およびアンテナ29の各構成要素を備えており、拡張コネクタ20に対して着脱可能であってもよい。これによれば、上記各構成要素を備えていないゲーム装置に対して上記拡張機器を接続することによって、当該ゲーム装置を端末装置7と通信可能な構成とすることができる。
[3.コントローラ5の構成]
次に、図3〜図7を参照して、コントローラ5について説明する。図3は、コントローラ5の外観構成を示す斜視図である。図4は、コントローラ5の外観構成を示す斜視図である。図3は、コントローラ5の上側後方から見た斜視図であり、図4は、コントローラ5を下側前方から見た斜視図である。
図3および図4において、コントローラ5は、例えばプラスチック成型によって形成されたハウジング31を有している。ハウジング31は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。ユーザは、コントローラ5に設けられたボタンを押下すること、および、コントローラ5自体を動かしてその位置や姿勢(傾き)を変えることによってゲーム操作を行うことができる。
ハウジング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を誤って押下することを防止することができる。
ハウジング31の後面にはコネクタ33が設けられている。コネクタ33は、コントローラ5に他の機器(例えば、他のセンサユニットやコントローラ)を接続するために利用される。また、ハウジング31の後面におけるコネクタ33の両側には、上記他の機器が容易に離脱することを防止するために係止穴33aが設けられている。
ハウジング31上面の後方には複数(図3では4つ)のLED34a〜34dが設けられる。ここで、コントローラ5には、他のコントローラと区別するためにコントローラ種別(番号)が付与される。各LED34a〜34dは、コントローラ5に現在設定されている上記コントローラ種別をユーザに通知したり、コントローラ5の電池残量をユーザに通知したりする等の目的で用いられる。具体的には、コントローラ5を用いてゲーム操作が行われる際、上記コントローラ種別に応じて複数のLED34a〜34dのいずれか1つが点灯する。
また、コントローラ5は撮像情報演算部35(図6)を有しており、図4に示すように、ハウジング31前面には撮像情報演算部35の光入射面35aが設けられる。光入射面35aは、マーカ6Rおよび6Lからの赤外光を少なくとも透過する材質で構成される。
ハウジング31上面における1番ボタン32bとホームボタン32fとの間には、コントローラ5に内蔵されるスピーカ47(図5)からの音を外部に放出するための音抜き孔31aが形成されている。
次に、図5および図6を参照して、コントローラ5の内部構造について説明する。図5および図6は、コントローラ5の内部構造を示す図である。なお、図5は、コントローラ5の上筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6は、コントローラ5の下筐体(ハウジング31の一部)を外した状態を示す斜視図である。図6に示す斜視図は、図5に示す基板30を裏面から見た斜視図となっている。
図5において、ハウジング31の内部には基板30が固設されており、当該基板30の上主面上に各操作ボタン32a〜32h、各LED34a〜34d、加速度センサ37、アンテナ45、およびスピーカ47等が設けられる。これらは、基板30等に形成された配線(図示せず)によってマイクロコンピュータ(Micro Computer:マイコン)42(図6参照)に接続される。本実施形態では、加速度センサ37は、X軸方向に関してコントローラ5の中心からずれた位置に配置されている。これによって、コントローラ5をZ軸回りに回転させたときのコントローラ5の動きが算出しやすくなる。また、加速度センサ37は、長手方向(Z軸方向)に関してコントローラ5の中心よりも前方に配置されている。また、無線モジュール44(図6)およびアンテナ45によって、コントローラ5がワイヤレスコントローラとして機能する。
一方、図6において、基板30の下主面上の前端縁に撮像情報演算部35が設けられる。撮像情報演算部35は、コントローラ5の前方から順に赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を備えている。これらの部材38〜41はそれぞれ基板30の下主面に取り付けられる。
さらに、基板30の下主面上には、上記マイコン42およびバイブレータ46が設けられている。バイブレータ46は、例えば振動モータやソレノイドであり、基板30等に形成された配線によってマイコン42と接続される。マイコン42の指示によりバイブレータ46が作動することによってコントローラ5に振動が発生する。これによって、コントローラ5を把持しているユーザの手にその振動が伝達される、いわゆる振動対応ゲームを実現することができる。本実施形態では、バイブレータ46は、ハウジング31のやや前方寄りに配置される。つまり、バイブレータ46がコントローラ5の中心よりも端側に配置することによって、バイブレータ46の振動によりコントローラ5全体を大きく振動させることができる。また、コネクタ33は、基板30の下主面上の後端縁に取り付けられる。なお、図5および図6に示す他、コントローラ5は、マイコン42の基本クロックを生成する水晶振動子、スピーカ47に音声信号を出力するアンプ等を備えている。
なお、図3〜図6に示したコントローラ5の形状や、各操作ボタンの形状、加速度センサやバイブレータの数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。また、本実施形態では、撮像手段による撮像方向はZ軸正方向であるが、撮像方向はいずれの方向であってもよい。すなわち、コントローラ5における撮像情報演算部35の位置(撮像情報演算部35の光入射面35a)は、ハウジング31の前面でなくてもよく、ハウジング31の外部から光を取り入れることができれば他の面に設けられてもかまわない。
図7は、コントローラ5の構成を示すブロック図である。コントローラ5は、操作部32(各操作ボタン32a〜32i)、撮像情報演算部35、通信部36、加速度センサ37、およびジャイロセンサ48を備えている。コントローラ5は、自機に対して行われた操作内容を表すデータを操作データとしてゲーム装置3へ送信するものである。なお、以下では、コントローラ5が送信する操作データを「コントローラ操作データ」と呼び、端末装置7が送信する操作データを「端末操作データ」と呼ぶことがある。
操作部32は、上述した各操作ボタン32a〜32iを含み、各操作ボタン32a〜32iに対する入力状態(各操作ボタン32a〜32iが押下されたか否か)を表す操作ボタンデータを通信部36のマイコン42へ出力する。
撮像情報演算部35は、撮像手段が撮像した画像データを解析してその中で輝度が高い領域を判別してその領域の重心位置やサイズなどを算出するためのシステムである。撮像情報演算部35は、例えば最大200フレーム/秒程度のサンプリング周期を有するので、比較的高速なコントローラ5の動きでも追跡して解析することができる。
撮像情報演算部35は、赤外線フィルタ38、レンズ39、撮像素子40、および画像処理回路41を含んでいる。赤外線フィルタ38は、コントローラ5の前方から入射する光から赤外線のみを通過させる。レンズ39は、赤外線フィルタ38を透過した赤外線を集光して撮像素子40へ入射させる。撮像素子40は、例えばCMOSセンサやあるいはCCDセンサのような固体撮像素子であり、レンズ39が集光した赤外線を受光して画像信号を出力する。ここで、撮像対象となる端末装置7のマーカ部55およびマーカ装置6は、赤外光を出力するマーカで構成される。したがって、赤外線フィルタ38を設けることによって、撮像素子40は、赤外線フィルタ38を通過した赤外線だけを受光して画像データを生成するので、撮像対象(マーカ部55および/またはマーカ装置6)の画像をより正確に撮像することができる。以下では、撮像素子40によって撮像された画像を撮像画像と呼ぶ。撮像素子40によって生成された画像データは、画像処理回路41で処理される。画像処理回路41は、撮像画像内における撮像対象の位置を算出する。画像処理回路41は、算出された位置を示す座標を通信部36のマイコン42へ出力する。この座標のデータは、マイコン42によって操作データとしてゲーム装置3に送信される。以下では、上記座標を「マーカ座標」と呼ぶ。マーカ座標はコントローラ5自体の向き(傾斜角度)や位置に対応して変化するので、ゲーム装置3はこのマーカ座標を用いてコントローラ5の向きや位置を算出することができる。
なお、他の実施形態においては、コントローラ5は画像処理回路41を備えていない構成であってもよく、撮像画像自体がコントローラ5からゲーム装置3へ送信されてもよい。このとき、ゲーム装置3は、画像処理回路41と同様の機能を有する回路あるいはプログラムを有しており、上記マーカ座標を算出するようにしてもよい。
加速度センサ37は、コントローラ5の加速度(重力加速度を含む)を検出する、すなわち、コントローラ5に加わる力(重力を含む)を検出する。加速度センサ37は、当該加速度センサ37の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度(直線加速度)の値を検出する。例えば、2軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。なお、加速度センサ37は、例えば静電容量式のMEMS(Micro Electro Mechanical System)型加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。
本実施形態では、加速度センサ37は、コントローラ5を基準とした上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向に関してそれぞれ直線加速度を検出する。加速度センサ37は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ37からの出力は3軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、コントローラ5を基準に設定されるXYZ座標系(コントローラ座標系)における3次元のベクトルとして表される。
加速度センサ37が検出した加速度を表すデータ(加速度データ)は、通信部36へ出力される。なお、加速度センサ37が検出した加速度は、コントローラ5自体の向き(傾斜角度)や動きに対応して変化するので、ゲーム装置3は取得された加速度データを用いてコントローラ5の向きや動きを算出することができる。本実施形態では、ゲーム装置3は、取得された加速度データに基づいてコントローラ5の姿勢や傾斜角度等を算出する。
なお、加速度センサ37(後述する加速度センサ73についても同様)から出力される加速度の信号に基づいて、ゲーム装置3のプロセッサ(例えばCPU10)またはコントローラ5のプロセッサ(例えばマイコン42)等のコンピュータが処理を行うことによって、コントローラ5に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサ37を搭載するコントローラ5が静止状態であることを前提としてコンピュータ側の処理が実行される場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理が実行される場合)、コントローラ5が現実に静止状態であれば、検出された加速度に基づいてコントローラ5の姿勢が重力方向に対して傾いているか否かまたはどの程度傾いているかを知ることができる。具体的には、加速度センサ37の検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かによって、コントローラ5が基準に対して傾いているか否かを知ることができるし、その大きさによって基準に対してどの程度傾いているかも知ることができる。また、多軸の加速度センサ37の場合には、さらに各軸の加速度の信号に対して処理を施すことによって、重力方向に対してコントローラ5がどの程度傾いているかをより詳細に知ることができる。この場合において、プロセッサは、加速度センサ37からの出力に基づいてコントローラ5の傾斜角度を算出してもよいし、当該傾斜角度を算出せずに、コントローラ5の傾斜方向を算出するようにしてもよい。このように、加速度センサ37をプロセッサと組み合わせて用いることによって、コントローラ5の傾斜角度または姿勢を判定することができる。
一方、コントローラ5が動的な状態(コントローラ5が動かされている状態)であることを前提とする場合には、加速度センサ37は重力加速度に加えてコントローラ5の動きに応じた加速度を検出するので、検出された加速度から重力加速度の成分を所定の処理により除去することによってコントローラ5の動き方向を知ることができる。また、コントローラ5が動的な状態であることを前提とする場合であっても、検出された加速度から、加速度センサの動きに応じた加速度の成分を所定の処理により除去することによって、重力方向に対するコントローラ5の傾きを知ることが可能である。なお、他の実施例では、加速度センサ37は、内蔵の加速度検出手段で検出された加速度信号をマイコン42に出力する前に当該加速度信号に対して所定の処理を行うための、組込み式の処理装置または他の種類の専用の処理装置を備えていてもよい。組込み式または専用の処理装置は、例えば、加速度センサ37が静的な加速度(例えば、重力加速度)を検出するために用いられる場合、加速度信号を傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
ジャイロセンサ48は、3軸(本実施形態では、XYZ軸)回りの角速度を検出する。本明細書では、コントローラ5の撮像方向(Z軸正方向)を基準として、X軸回りの回転方向をピッチ方向、Y軸回りの回転方向をヨー方向、Z軸回りの回転方向をロール方向と呼ぶ。ジャイロセンサ48は、3軸回りの角速度を検出することができればよく、用いるジャイロセンサの数および組み合わせはどのようなものであってもよい。例えば、ジャイロセンサ48は、3軸ジャイロセンサであってもよいし、2軸ジャイロセンサと1軸ジャイロセンサとを組み合わせて3軸周りの角速度を検出するものであってもよい。ジャイロセンサ48で検出された角速度を表すデータは、通信部36へ出力される。また、ジャイロセンサ48は1軸または2軸回りの角速度を検出するものであってもよい。
通信部36は、マイコン42、メモリ43、無線モジュール44、およびアンテナ45を含んでいる。マイコン42は、処理を行う際にメモリ43を記憶領域として用いながら、マイコン42が取得したデータをゲーム装置3へ無線送信する無線モジュール44を制御する。
操作部32、撮像情報演算部35、加速度センサ37、およびジャイロセンサ48からマイコン42へ出力されたデータは、一時的にメモリ43に格納される。これらのデータは、操作データ(コントローラ操作データ)としてゲーム装置3へ送信される。すなわち、マイコン42は、ゲーム装置3のコントローラ通信モジュール19への送信タイミングが到来すると、メモリ43に格納されている操作データを無線モジュール44へ出力する。無線モジュール44は、例えばBluetooth(ブルートゥース)(登録商標)の技術を用いて、所定周波数の搬送波を操作データで変調し、その微弱電波信号をアンテナ45から放射する。つまり、操作データは、無線モジュール44で微弱電波信号に変調されてコントローラ5から送信される。微弱電波信号はゲーム装置3側のコントローラ通信モジュール19で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置3は操作データを取得することができる。そして、ゲーム装置3のCPU10は、コントローラ5から取得した操作データを用いてゲーム処理を行う。なお、通信部36からコントローラ通信モジュール19への無線送信は所定の周期毎に逐次行われるが、ゲームの処理は1/60秒を単位として(1フレーム時間として)行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。コントローラ5の通信部36は、例えば1/200秒に1回の割合で操作データをゲーム装置3のコントローラ通信モジュール19へ出力する。
以上のように、コントローラ5は、自機に対する操作を表す操作データとして、マーカ座標データ、加速度データ、角速度データ、および操作ボタンデータを送信可能である。また、ゲーム装置3は、上記操作データをゲーム入力として用いてゲーム処理を実行する。したがって、上記コントローラ5を用いることによって、ユーザは、各操作ボタンを押下する従来の一般的なゲーム操作に加えて、コントローラ5自体を動かすゲーム操作を行うことができる。例えば、コントローラ5を任意の姿勢に傾ける操作、コントローラ5によって画面上の任意の位置を指示する操作、および、コントローラ5自体を動かす操作等を行うことが可能となる。
また、本実施形態において、コントローラ5は、ゲーム画像を表示する表示手段を有しないが、例えば電池残量を表す画像等を表示するための表示手段を有していてもよい。
[4.端末装置7の構成]
次に、図8〜図13を参照して、端末装置7の構成について説明する。図8は、端末装置7の外観構成を示す平面図である。図8における(a)図は端末装置7の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。図9は端末装置7の背面図である。また、図10および図11は、ユーザが端末装置7を横向きで把持した様子を示す図である。図12および図13は、ユーザが端末装置7を縦向きで把持した様子を示す図である。
図8に示されるように、端末装置7は、大略的には横長の長方形の板状形状であるハウジング50を備える。すなわち、端末装置7は、タブレット型の情報処理装置であるということもできる。なお、ハウジング50は全体として板状形状であれば、曲面を有していてもよいし、一部に突起等を有していてもよい。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置7を持って動かしたり、端末装置7の配置位置を変更したりすることができる。端末装置7の縦(z軸方向)の長さは、100〜150[mm]が好ましく、本実施形態では、133.5[mm]である。端末装置7の横(x軸方向)の長さは、200〜250[mm]が好ましく、本実施形態では、228.26[mm]である。端末装置7の厚さ(y軸方向の長さ)は、板状の部分で15〜30[mm]程度、最厚部まで含めて30〜50[mm]程度が好ましく、本実施形態では、23.6(最厚部は40.26)[mm]である。また、端末装置7の重量は、400〜600[g]程度であって、本実施形態においては、530[g]である。詳細は後述するが、端末装置7は、上記のような比較的大型の端末装置(操作装置)であっても、ユーザが持ちやすく操作しやすい構成となっている。
端末装置7は、ハウジング50の表面(表側)にLCD51を有する。なお、LCD51の画面の大きさは5インチ以上であることが好ましく、ここでは6.2インチである。本実施形態の操作装置7は、持ちやすく操作しやすい構成によって、大きなLCDを設けても操作がしやすいものとなっている。なお、別の実施形態においては、より小さいLCD51を設け、操作装置7の大きさを比較的小さいものとするようにしてもよい。LCD51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、図10および図11に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置7を持って動かすことができる。なお、図10および図11ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置7を横持ちで(横に長い向きにして)持つ例を示しているが、図12および図13に示すように、端末装置7を縦持ちで(縦に長い向きにして)持つことも可能である。
図8の(a)図に示すように、端末装置7は、操作手段として、LCD51の画面上にタッチパネル52を有する。本実施形態では、タッチパネル52は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル52はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本実施形態では、タッチパネル52として、LCD51の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル52の解像度とLCD51の解像度が一致している必要はない。タッチパネル52に対する入力は通常タッチペン60を用いて行われるが、タッチペン60に限らずユーザの指でタッチパネル52に対する入力をすることも可能である。なお、ハウジング50には、タッチパネル52に対する操作を行うために用いられるタッチペン60を収納する収納穴60aが設けられている(図8(b)参照)。なお、ここでは、タッチペン60が落ちないように、収納穴60aはハウジング50の上面に設けられるが、側面や下面に設けられてもよい。このように、端末装置7はタッチパネル52を備えるので、ユーザは、端末装置7を動かしながらタッチパネル52を操作することができる。つまりユーザは、LCD51の画面を動かしつつ、その画面に対して直接(タッチパネル52によって)入力を行うことができる。
図8に示すように、端末装置7は、操作手段(操作部)として、2つのアナログスティック53Aおよび53Bと、複数のボタン(キー)54A〜54Mとを備えている。各アナログスティック53Aおよび53Bは、方向を指示することが可能なデバイスである。各アナログスティック53Aおよび53Bは、ユーザの指で操作される可動部材(スティック部)がハウジング50の表面に対して任意の方向(上下左右および斜め方向の任意の角度)にスライドすることができるように構成されている。すなわち、スライドパッドと呼ばれることもある方向入力デバイスである。なお、各アナログスティック53Aおよび53Bの可動部材は、ハウジング50の表面に対して任意の方向に傾倒する種類のものでもよい。本実施形態では、可動部材がスライドする種類のアナログスティックを用いるので、ユーザは親指を大きく動かさなくても各アナログスティック53Aおよび53Bを操作することができ、ハウジング50をよりしっかりと把持した状態で操作を行うことができる。なお、各アナログスティック53Aおよび53Bとして、可動部材が傾倒する種類のものを用いる場合には、入力の程度(傾きの程度)がユーザにとってわかりやすく、詳細な操作をより容易に行うことができる。
また、左アナログスティック53AはLCD51の画面の左側に、右アナログスティック53BはLCD51の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図10および図11に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置7の左右部分(LCD51の左右両側の部分)を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置7を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。
各ボタン54A〜54Lは、所定の入力を行うための操作手段(操作部)であり、押下可能なキーである。以下に示すように、各ボタン54A〜54Lは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられる(図10および図11参照)。したがって、ユーザは、端末装置7を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
図8の(a)図に示すように、ハウジング50の表面には、各操作ボタン54A〜54Lのうち、十字ボタン(方向入力ボタン)54Aと、ボタン54B〜54Hおよび54Mとが設けられる。つまり、これらのボタン54A〜54Hおよび54Mは、ユーザの親指で操作可能な位置に配置されている(図10および図11参照)。
十字ボタン54Aは、LCD51の左側であって、左アナログスティック53Aの下側に設けられる。つまり、十字ボタン54Aはユーザの左手で操作可能な位置に配置されている。十字ボタン54Aは、十字の形状を有しており、少なくとも上下左右の方向を指示することが可能なボタンである。
また、ボタン54B〜54Dは、LCD51の下側に設けられる。これら3つのボタン54B〜54Dは、左右両方の手で操作可能な位置に配置されている。また、端末装置7は、端末装置7の電源をオン/オフするための電源ボタン54Mを有している。電源ボタン54Mの操作により、ゲーム装置3の電源を遠隔でオン/オフすることも可能である。電源ボタン54Mは、ボタン54B〜54Dと同様、LCD51の下側に設けられる。電源ボタン54Mは、ボタン54B〜54Dの右側に設けられる。したがって、電源ボタン54Mは、右手で操作可能な(操作しやすい)位置に配置されている。また、4つのボタン54E〜54Hは、LCD51の右側であって、右アナログスティック53Bの下側に設けられる。つまり、4つのボタン54E〜54Hはユーザの右手で操作可能な位置に配置されている。さらに、4つのボタン54E〜54Hは、(4つのボタン54E〜54Hの中心位置に対して)上下左右の位置関係となるように配置されている。したがって、端末装置7は、ユーザに上下左右の方向を指示させるためのボタンとして4つのボタン54E〜54Hを機能させることも可能である。
なお、本実施形態においては、各アナログスティック53Aおよび53Bは、十字ボタン54Aおよび各ボタン54E〜54Hよりも上側に配置される。ここで、各アナログスティック53Aおよび53Bは、十字ボタン54Aおよび各ボタン54E〜54Hよりも厚さ方向(y軸方向)に関して突出している。そのため、仮にアナログスティック53Aと十字ボタン54Aとの配置を逆にした場合には、ユーザが十字ボタン54Aを親指で操作する際にアナログスティック53Aに親指が当たってしまい、操作を誤ってしまうおそれがある。なお、アナログスティック53Bと各ボタン54E〜54Hとの配置を逆にする場合も同様の問題が生じる。これに対して、本実施形態では、各アナログスティック53Aおよび53Bを十字ボタン54Aおよび各ボタン54E〜54Hよりも上側に配置するので、ユーザがアナログスティック53Aおよび53Bを操作する際に十字ボタン54Aおよび各ボタン54E〜54Hに指が当たってしまう可能性は上記の場合に比べて低くなる。このように、本実施形態においては、誤操作の可能性を低減することができ、端末装置7の操作性を向上することができる。ただし、別の実施形態においては、必要に応じてアナログスティック53Aが十字ボタン54Aと逆の配置であってもよいし、アナログスティック53Bが各ボタン54E〜54Hと逆の配置であってもよい。
ここで、本実施形態では、いくつかの操作部(各アナログスティック53Aおよび53B、十字ボタン54A、ならびに、3つのボタン54E〜54G)は、表示部(LCD51)の左右両側において、ハウジング50における上下方向(y軸方向)の中心よりも上側に設けられる。これらの操作部を操作する場合、ユーザは、端末装置7における上下方向の中心よりも上側を主に把持する。ここで、ユーザがハウジング50の下側を把持する場合には、(端末装置7が本実施形態のように比較的大きなサイズである場合には特に)把持される端末装置7が不安定になり、ユーザは端末装置7を持ちにくくなる。これに対して、本実施形態では、上記操作部を操作する場合、ユーザは、端末装置7における上下方向の中心よりも上側を主に把持することになり、また、手のひらでハウジング50を横から支えることができる。したがって、ユーザは、安定した状態でハウジング50を把持することができ、端末装置7が持ちやすくなるので、上記操作部も操作しやすくなる。なお、他の実施形態においては、ハウジング50の中央よりも上側において表示部の左右にそれぞれ少なくとも1つずつ操作部が設けられてもよい。例えば、各アナログスティック53Aおよび53Bのみがハウジング50の中央よりも上側に設けられてもよい。また例えば、十字ボタン54Aが左アナログスティック53Aよりも上側に設けられ、4つのボタン54E〜54Hが右アナログスティック53Bよりも上側に設けられる場合には、十字ボタン54Aおよび4つのボタン54E〜54Hがハウジング50の中央よりも上側に設けられても良い。
また、本実施形態では、ハウジング50の裏側(LCD51が設けられる表面の反対側)には、突起部(庇部59)が設けられる(図8(c)および図9参照)。図8(c)に示すように、庇部59は、略板状のハウジング50の裏面から突起して設けられる、山状の部材である。突起部は、ハウジング50の裏面を把持するユーザの指に掛止可能な高さ(厚さ)を有する。突起部の高さは、10〜25[mm]であることが好ましく、本実施形態では16.66[mm]である。また、突起部の下面は、突起部がユーザの指に掛かりやすいように、ハウジング50の裏面に対して45°以上(より好ましくは60°以上)の傾斜を有することが好ましい。図8(c)に示すように、突起部の下面は、上面よりも傾斜角度が大きくなるように形成されてもよい。図10および図11に示すように、ユーザは、指を庇部59に掛けて(指の上に庇部59を乗せて)把持することによって、端末装置7が比較的大きなサイズであっても、疲れることなく安定した状態で端末装置7を把持することができる。すなわち、庇部59は、指でハウジング50を支えるための支持部材であるということができ、また、指掛部ということもできる。
また、庇部59は、ハウジング50の上下方向に関しては中央よりも上側に設けられる。庇部59は、ハウジング50の表面に設けられる操作部(各アナログスティック53Aおよび53B)の概ね反対側の位置に設けられる。つまり、突起部は、表示部の左右にそれぞれ設けられる操作部の反対側の位置を含む領域に設けられる。したがって、上記操作部を操作する場合、ユーザは、中指あるいは薬指で庇部59を支えるようにして端末装置7を把持することができる(図10および図11参照)。これによって、端末装置7がより持ちやすくなり、上記操作部もより操作しやすくなる。また、本実施形態では、突起部は、(突起した部分が)左右に延びる庇状の形状を有するので、ユーザは、中指あるいは薬指を突起部の下面に沿わせて端末装置7を把持することができ、端末装置7がより持ちやすくなる。なお、庇部59は、(突起した部分が)左右方向に延びるように形成されればよく、図9に示すような水平方向に延びる形状に限られない。他の実施形態においては、庇部59は水平方向から若干傾いた方向に延びていてもよい。例えば、庇部59は、左右両端から中央に向かうにつれて上に(または下に)傾斜するように設けられてもよい。
なお、本実施形態においては、後述する係止穴を庇部59に設けることが理由で、ハウジングの裏面に形成される突起部として、庇状の形状をした庇部59を採用するが、突起部はどのような形状であってもよい。例えば、他の実施形態においては、ハウジング50の裏側において、2つの突起部が左右両側に設けられる(左右方向の中央には突起部が設けられない)構成であってもよい(図32参照)。また、他の実施形態においては、突起部の断面形状(x軸方向に垂直な断面における形状)は、ユーザの指で端末装置7をよりしっかりと支えることができるように(突起部が指によりしっかりと掛かるように)、鈎型(下面が凹んだ形状)であってもよい。
なお、突起部(庇部59)の上下方向に関する幅は、いくらであってもよい。例えば、突起部は、ハウジング50の上辺まで形成されてもよい。すなわち、突起部の上面がハウジング50の上側の側面と同じ位置に形成されてもよい。このとき、ハウジング50は、下側が薄く、上側が厚い2段の構成となる。このように、ハウジング50は、裏面における左右両側に、下方を向く面(突起部の下面)が形成されることが好ましい。これによって、ユーザは、当該面に指を当てることで楽に操作装置を把持することができる。なお、上記「下方を向く面」は、ハウジング50の裏面におけるどの位置に形成されてもよいが、ハウジング50の中央よりも上側に位置することが好ましい。
また、図8の(a)図、(b)図、および(c)図に示すように、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の上側の面における左右の両側にそれぞれ設けられる。本実施形態では、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の斜め上部分(左上部分および右上部分)に設けられる。具体的には、第1Lボタン54Iは、板状のハウジング50における上側の側面の左端に設けられ、左上側の側面から露出している(換言すれば上側および左側の両方の側面から露出している)。また、第1Rボタン54Jは、ハウジング50における上側の側面の右端に設けられ、右上側の側面から露出している(換言すれば上側および右側の両方の側面から露出している)。このように、第1Lボタン54Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン54Jは、ユーザの右手人差し指で操作可能な位置に配置される(図10参照)。なお、他の実施形態においては、ハウジング50の上側の面における左右にそれぞれ設けられる操作部は、左右の端部に設けられる必要はなく、端部以外の位置に設けられてもよい。また、ハウジング50の左右の側面に操作部がそれぞれ設けられてもよい。
また、図8の(c)図および図9に示すように、第2Lボタン54Kおよび第2Rボタン54Lは、上記突起部(庇部59)に配置される。第2Lボタン54Kは、庇部59の左端付近に設けられる。第2Rボタン54Lは、庇部59の右端付近に設けられる。つまり、第2Lボタン54Kは、ハウジング50の裏面の左側(表面側から見たときの左側)のやや上方に設けられ、第2Rボタン54Lは、ハウジング50の裏面の右側(表面側から見たときの右側)のやや上方に設けられる。換言すれば、第2Lボタン54Kは、表面に設けられる左アナログスティック53Aの(概ね)反対側の位置に設けられ、第2Rボタン54Lは、表面に設けられる右アナログスティック53Bの(概ね)反対側の位置に設けられる。このように、第2Lボタン54Kは、ユーザの左手中指または人差し指で操作可能な位置に配置され、第2Rボタン54Lは、ユーザの右手中指または人差し指で操作可能な位置に配置される(図10および図11参照)。また、第2Lボタン54Kおよび第2Rボタン54Lは、図8の(c)図に示すように、上記庇部59の上面に設けられる。そのため、第2Lボタン54Kおよび第2Rボタン54Lは、上方(斜め上方)を向くボタン面を有する。ユーザが端末装置7を把持した場合には中指または人差し指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第2Lボタン54Kおよび第2Rボタン54Lを押下しやすくなる。
上記のように、本実施形態においては、ハウジング50の中央よりも上側において表示部(LCD51)の左右に操作部(アナログスティック53Aおよび53B)がそれぞれ設けられ、さらに、ハウジング50の裏側において当該操作部の反対側の位置に別の操作部(第2Lボタン54Kおよび第2Rボタン54L)がそれぞれ設けられる。これによれば、上記操作部と別の操作部とがハウジング50の表側と裏側との互いに対向する位置に配置されるので、ユーザは、これらの操作部を操作する際にハウジング50を表側と裏側から挟むように把持することができる。また、これらの操作部を操作する際にユーザは、ハウジング50における上下方向の中心よりも上側を把持するので、端末装置7を上側で把持できるとともに、手のひらで端末装置7を支えることができる(図10および図11参照)。以上によって、ユーザは、少なくとも4つの操作部を操作することができる状態で、ハウジング50を安定的に把持することができ、ユーザが容易に把持することが可能で、かつ操作性の良い操作装置(端末装置7)を提供することができる。
以上のように、本実施形態においては、突起部(庇部59)の下面に指を当てた状態で端末装置7を把持することによって、ユーザは楽に端末装置7を把持することができる。また、突起部の上面に第2Lボタン54Kおよび第2Rボタン54Lが設けられるので、ユーザは上記の状態でこれらのボタンを容易に操作することができる。ユーザは、例えば次のような持ち方で端末装置7を容易に把持することができる。
すなわち、ユーザは、図10に示すように、薬指を庇部59の下面(図10に示す一点鎖線)に当てて(薬指で庇部59を支えるように)端末装置7を把持することも可能である。このとき、ユーザは、4つのボタン(第1Lボタン54I、第1Rボタン54J、第2Lボタン54K、および第2Rボタン54L)を人差し指および中指で操作することができる。例えば、要求されるゲーム操作が、使用するボタンが多く、比較的複雑である場合には、図10に示すように把持することで、多くのボタンを容易に操作することができる。なお、各アナログスティック53Aおよび53Bは十字ボタン54Aおよびボタン54E〜54Hの上側に設けられるので、比較的複雑な操作が要求される場合にユーザは親指でアナログスティック53Aおよび53Bを操作することができ、好都合である。また、図10においては、ユーザは、ハウジング50の表面に親指を、ハウジング50の上面に人差し指を、ハウジング50の裏面における庇部59の上面に中指を、庇部59の下面に薬指を、ハウジング50の裏面に小指を当てて端末装置7を把持する。このように、ユーザは、ハウジング50を四方から包み込むようにして端末装置7をしっかりと把持することができる。
また、ユーザは、図11に示すように、中指を庇部59の下面(図11に示す一点鎖線)に当てて端末装置7を把持することも可能である。このとき、ユーザは、2つのボタン(第2Lボタン54Kおよび第2Rボタン54L)を人差し指で容易に操作することができる。例えば、要求されるゲーム操作が、使用するボタンが少なく、比較的単純である場合には、図11に示すように把持してもよい。図11においては、ユーザは、2本の指(薬指および小指)でハウジング50の下側を把持することができるので、しっかりと端末装置7を把持することができる。
なお、本実施形態においては、庇部59の下面が、各アナログスティック53Aおよび53Bと、十字ボタン54Aおよび4つのボタン54E〜54Hとの間に位置するように(各アナログスティック53Aおよび53Bよりも下方で、かつ、十字ボタン54Aおよび4つのボタン54E〜54Hよりも上方に位置するように)設けられる。したがって、薬指を庇部59に当てて端末装置7を把持する場合(図10)には、各アナログスティック53Aおよび53Bを親指で操作しやすくなり、中指を庇部59に当てて端末装置7を把持する場合(図11)には、十字ボタン54Aおよび4つのボタン54E〜54Hを親指で操作しやすくなっている。つまり、上記2種類の場合のいずれにおいても、ユーザは、端末装置7をしっかりと把持した状態で方向入力操作を行うことができる。
また、上述のように、ユーザは端末装置7を縦持ちで把持することも可能である。すなわち、図12に示すように、ユーザは端末装置7の上辺を左手で把持することで端末装置7を縦向きで把持することが可能である。また、図13に示すように、ユーザは端末装置7の下辺を左手で把持することで端末装置7を縦向きで把持することが可能である。なお、図12および図13では端末装置7を左手で把持する場合を示しているが、右手で把持することも可能である。このように、ユーザは端末装置7を片手で把持することが可能であるので、例えば、一方の手で端末装置7を把持しながら他方の手でタッチパネル52に対する入力を行うといった操作を行うことも可能である。
また、図12に示す持ち方で端末装置7を把持する場合、ユーザは親指以外の指(図12にでは中指、薬指および小指)を庇部59の下面(図12に示す一点鎖線)に当てることで、端末装置7をしっかりと把持することができる。特に、本実施形態においては、庇部59が左右に(図12では上下に)延びて形成されているので、ユーザは端末装置7の上辺におけるどこの位置で把持しても、親指以外の指を庇部59に当てることができ、端末装置7をしっかりと把持することができる。すなわち、端末装置7を縦持ちで使う場合には、庇部59は取っ手として使うことができる。一方、図13に示す持ち方で端末装置7を把持する場合、ユーザは、左手でボタン54B〜54Dを操作することができる。したがって、例えば片手でタッチパネル52に対する入力を行いつつ、端末装置7を把持する手でボタン54B〜54Dに対する操作を行うことができ、より多くの操作を行うことができる。
なお、本実施形態における端末装置7に関しては、突起部(庇部59)が裏面に設けられるので、LCD51の画面(ハウジング50の表面)が上を向いた状態で端末装置7を載置させる場合、画面がやや傾いた状態となる。これによって、端末装置7を載置した状態において画面がより見やすくなる。また、端末装置7を載置した状態においてタッチパネル52に対する入力操作が行いやすくなる。また、他の実施形態においては、上記庇部59と同程度の高さを有する追加の突起部がハウジング50の裏面に形成されてもよい。これによれば、LCD51の画面が上を向いた状態では、各突起部が床面に接することで、画面が水平になるように端末装置7を載置することができる。また、追加の突起部を着脱可能な(または折り畳み可能な)ものにしてもよい。これによれば、画面がやや傾いた状態と、画面が水平になる状態との両方で端末装置を載置することができる。すなわち、端末装置7を置いて使う場合には、庇部59は、脚部として使うことができる。
各ボタン54A〜54Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン54Aおよびボタン54E〜54Hは方向指示操作や選択操作等に用いられてもよいし、各ボタン54B〜54Eは決定操作やキャンセル操作等に用いられてもよい。また、端末装置7は、LCD51の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定(ペアリング)を行うためのボタンを有していてもよい。
図8の(a)図に示すように、端末装置7は、マーカ55Aおよびマーカ55Bからなるマーカ部55をハウジング50の表面に備えている。マーカ部55は、LCD51の上側に設けられる。各マーカ55Aおよびマーカ55Bは、マーカ装置6の各マーカ6Rおよび6Lと同様、1以上の赤外LEDで構成される。マーカ55Aおよび55Bを構成する赤外LEDは、赤外光を透過する窓部の内側に配置される。マーカ部55は、上述のマーカ装置6と同様、コントローラ5の動き等をゲーム装置3が算出するために用いられる。また、ゲーム装置3はマーカ部55が備える各赤外LEDの点灯を制御することが可能である。
端末装置7は、撮像手段であるカメラ56を備えている。カメラ56は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。図8に示すように、本実施形態では、カメラ56はハウジング50の表面に設けられる。したがって、カメラ56は、端末装置7を持っているユーザの顔を撮像することができ、例えばLCD51を見ながらゲームを行っている時のユーザを撮像することができる。本実施形態においては、カメラ56は、2つのマーカ55Aおよび55Bの間に配置される。
なお、端末装置7は、音声入力手段であるマイク69を備えている。ハウジング50の表面には、マイクロフォン用孔50cが設けられる。マイク69はこのマイクロフォン用孔50cの奥のハウジング50内部に設けられる。マイク69は、ユーザの音声等、端末装置7の周囲の音を検出する。
端末装置7は、音声出力手段であるスピーカ77を備えている。図8の(d)図に示すように、ハウジング50の表面の下側にはスピーカ孔57が設けられる。スピーカ77の出力音はこのスピーカ孔57から出力される。本実施形態では、端末装置7は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔57が設けられる。なお、端末装置7は、スピーカ77の音量を調節するためのつまみ64を備える。また、端末装置7は、イヤホン等の音声出力部を接続するための音声出力端子62を備える。ここでは、ハウジングの下側の側面に付加装置が接続されることを考慮して、上記音声出力端子62およびつまみ64はハウジング50の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
また、ハウジング50には、赤外線通信モジュール82からの赤外線信号を端末装置7の外部に出射するための窓63が設けられる。ここでは、LCD51の両側を把持した場合にユーザの前方へ赤外線信号が発射されるように、窓63はハウジング50の上側の側面に設けられる。ただし、他の実施形態においては、窓63は、例えばハウジング50の裏面等、どの位置に設けられてもよい。
また、端末装置7は、他の装置を端末装置7に接続するための拡張コネクタ58を備えている。拡張コネクタ58は、端末装置7に接続される他の装置との間でデータ(情報)を送受信するための通信端子である。本実施形態においては、図8の(d)図に示すように、拡張コネクタ58は、ハウジング50の下側側面に設けられる。なお、拡張コネクタ58に接続される他の付加装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ(銃型のコントローラ等)やキーボード等の入力装置であってもよい。付加装置を接続する必要がなければ、拡張コネクタ58は設けられていなくともよい。拡張コネクタ58には、付加装置に電力を供給する端子や、充電のための端子が含まれていてもよい。
また、端末装置7は、拡張コネクタ58とは別に、付加装置から電力を取得するための充電端子66を有する。後述するスタンド210に充電端子66が接続された場合、スタンド210から端末装置7へ電力が供給される。本実施形態では、充電端子66はハウジング50の下側側面に設けられる。したがって、端末装置7と付加装置(例えば図15に示す入力装置200または図17に示す入力装置220)とが接続される際には、拡張コネクタ58を介して情報を送受信することに加えて、一方から他方への電力供給を行うことも可能である。このように、拡張コネクタ58の周囲(左右両側)に充電端子66を設けることによって、端末装置7と付加装置とが接続される際に、情報の送受信とともに、電力供給を行うことも可能である。また、端末装置7は充電コネクタを有し、ハウジング50は充電コネクタを保護するためのカバー部61を有する。充電コネクタは、後述する充電器86に接続可能であり、充電器に充電コネクタが接続された場合、充電器86から端末装置7へ電力が供給される。本実施形態では、ハウジングの下側の側面に付加装置が接続されることを考慮して、充電コネクタ(カバー部61)はハウジング50の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
また、端末装置7は、ハウジング50に対して着脱可能な電池蓋67を有している。電池蓋67の内側には電池(図14に示す電池85)が配置される。本実施形態においては、電池蓋67はハウジング50の裏側に設けられ、突起部(庇部59)の下側に設けられる。
また、端末装置7のハウジング50には、ストラップの紐を結びつけるための孔65aおよび65bが設けられる。図8(d)に示すように、本実施形態においては、孔65aおよび65bはハウジング50の下面に設けられる。また、本実施形態においては、2つの孔65aおよび65bがハウジング50の左右両側にそれぞれ1つずつ設けられる。すなわち、孔65aがハウジング50の下面の中央より左側に設けられ、孔65bがハウジング50の下面の中央より右側に設けられる。ユーザは、孔65aおよび65bのいずれかにストラップを結びつけ、ストラップを自身の手首に結びつけてもよい。これによって、万一ユーザが端末装置7を落としたり、端末装置7が手から離れたりした場合でも、端末装置7が落下したり他の物に衝突したりすることを防止することができる。なお、本実施形態においては、左右両側にそれぞれ孔が設けられるので、ユーザは、どちらの手にもストラップを結びつけることができ、便利である。
なお、図8〜図13に示した端末装置7に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
次に、図14を参照して、端末装置7の内部構成について説明する。図14は、端末装置7の内部構成を示すブロック図である。図14に示すように、端末装置7は、図8に示した構成の他、タッチパネルコントローラ71、磁気センサ72、加速度センサ73、ジャイロセンサ74、ユーザインタフェースコントローラ(UIコントローラ)75、コーデックLSI76、スピーカ77、サウンドIC78、マイク79、無線モジュール80、アンテナ81、赤外線通信モジュール82、フラッシュメモリ83、電源IC84、および電池85を備える。これらの電子部品は、電子回路基板上に実装されてハウジング50内に収納される。
UIコントローラ75は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ75は、タッチパネルコントローラ71、アナログスティック53(アナログスティック53Aおよび53B)、操作ボタン54(各操作ボタン54A〜54L)、マーカ部55、磁気センサ72、加速度センサ73、およびジャイロセンサ74に接続される。また、UIコントローラ75は、コーデックLSI76と拡張コネクタ58に接続される。また、UIコントローラ75には電源IC84が接続され、UIコントローラ75を介して各部に電力が供給される。電源IC84には内蔵の電池85が接続され、電力が供給される。また、電源IC84には、外部電源から電力を取得可能な充電器86またはケーブルを充電コネクタを介して接続することが可能であり、端末装置7は、当該充電器86またはケーブルを用いて外部電源からの電力供給と充電を行うことができる。なお、端末装置7は、図示しない充電機能を有するクレイドルに端末装置7を装着することで充電を行うことも可能である。すなわち、図示しないが、電源IC84には、外部電源から電力を取得可能なクレイドル(図20に示すスタンド210)を充電端子66を介して接続することが可能であり、端末装置7は、クレイドルを用いて外部電源からの電力供給と充電を行うことができる。
タッチパネルコントローラ71は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ71は、タッチパネル52からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ75へ出力する。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置の座標を表す。なお、タッチパネルコントローラ71は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ75からタッチパネルコントローラ71へは、タッチパネル52に対する各種の制御指示が出力される。
アナログスティック53は、ユーザの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ75へ出力する。また、操作ボタン54は、各操作ボタン54A〜54Lに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ75へ出力する。
磁気センサ72は、磁界の大きさおよび方向を検知することで方位を検出する。検出された方位を示す方位データは、UIコントローラ75へ出力される。また、UIコントローラ75から磁気センサ72へは、磁気センサ72に対する制御指示が出力される。磁気センサ72に関しては、MI(磁気インピーダンス)素子、フラックスゲートセンサ、ホール素子、GMR(巨大磁気抵抗)素子、TMR(トンネル磁気抵抗)素子、あるいはAMR(異方性磁気抵抗)素子等を用いたセンサがあるが、方位を検出することができればどのようなものが用いられてもよい。なお、厳密には、地磁気以外に磁界が発生している場所においては、得られた方位データは方位を示さないことになるが、そのような場合であっても、端末装置7が動いた場合には方位データが変化するため、端末装置7の姿勢の変化を算出することができる。
加速度センサ73は、ハウジング50の内部に設けられ、3軸(図8の(a)図に示すxyz軸)方向に沿った直線加速度の大きさを検出する。具体的には、加速度センサ73は、ハウジング50の長辺方向をx軸、ハウジング50の表面に対して垂直な方向をy軸、ハウジング50の短辺方向をz軸として、各軸の直線加速度の大きさを検出する。検出された加速度を表す加速度データはUIコントローラ75へ出力される。また、UIコントローラ75から加速度センサ73へは、加速度センサ73に対する制御指示が出力される。加速度センサ73は、本実施形態では例えば静電容量式のMEMS型加速度センサであるとするが、他の実施形態においては他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ73は1軸または2軸方向を検出する加速度センサであってもよい。
ジャイロセンサ74は、ハウジング50の内部に設けられ、上記x軸、y軸およびz軸の3軸周りの角速度を検出する。検出された角速度を表す角速度データは、UIコントローラ75へ出力される。また、UIコントローラ75からジャイロセンサ74へは、ジャイロセンサ74に対する制御指示が出力される。なお、3軸の角速度を検出するために用いられるジャイロセンサの数および組み合わせはどのようなものであってもよく、ジャイロセンサ74はジャイロセンサ48と同様、2軸ジャイロセンサと1軸ジャイロセンサとで構成されてもよい。また、ジャイロセンサ74は1軸または2軸方向を検出するジャイロセンサであってもよい。
UIコントローラ75は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、操作ボタンデータ、方位データ、加速度データ、および角速度データを含む操作データをコーデックLSI76に出力する。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置に対する操作を表すデータが上記操作データにさらに含まれていてもよい。
コーデックLSI76は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI76には、LCD51、カメラ56、サウンドIC78、無線モジュール80、フラッシュメモリ83、および赤外線通信モジュール82が接続される。また、コーデックLSI76はCPU87と内部メモリ88を含む。端末装置7はゲーム処理自体を行なわない構成であるが、端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ83に格納されたプログラムを内部メモリ88に読み出してCPU87が実行することで、端末装置7が起動する。また、内部メモリ88の一部の領域はLCD51のためのVRAMとして使用される。
カメラ56は、ゲーム装置3からの指示に従って画像を撮像し、撮像した画像データをコーデックLSI76へ出力する。また、コーデックLSI76からカメラ56へは、画像の撮像指示等、カメラ56に対する制御指示が出力される。なお、カメラ56は動画の撮影も可能である。すなわち、カメラ56は、繰り返し撮像を行って画像データをコーデックLSI76へ繰り返し出力することも可能である。
サウンドIC78は、スピーカ77およびマイク79に接続され、スピーカ77およびマイク79への音声データの入出力を制御する回路である。すなわち、コーデックLSI76から音声データを受け取った場合、サウンドIC78は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ77へ出力し、スピーカ77から音を出力させる。また、マイク79は、端末装置7に伝わる音(ユーザの音声等)を検知して、当該音を示す音声信号をサウンドIC78へ出力する。サウンドIC78は、マイク79からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI76へ出力する。
コーデックLSI76は、カメラ56からの画像データ、マイク79からの音声データ、および、UIコントローラ75からの操作データを、端末操作データとして無線モジュール80を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI76は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール80に出力される。無線モジュール80にはアンテナ81が接続されており、無線モジュール80はアンテナ81を介してゲーム装置3へ上記送信データを送信する。無線モジュール80は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール80は、例えばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
以上のように、端末装置7からゲーム装置3へ送信される送信データには、操作データ(端末操作データ)、画像データ、および音声データが含まれる。なお、拡張コネクタ58を介して端末装置7に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。また、赤外線通信モジュール82は、他の装置との間で例えばIRDAの規格に従った赤外線通信を行う。コーデックLSI76は、赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置3へ送信してもよい。
また、上述のように、ゲーム装置3から端末装置7へは、圧縮された画像データおよび音声データが送信される。これらのデータはアンテナ81および無線モジュール80を介してコーデックLSI76に受信される。コーデックLSI76は、受信した画像データおよび音声データを伸張する。伸張された画像データはLCD51へ出力され、画像がLCD51に表示される。つまり、コーデックLSI76(CPU87)は、受信された画像データを表示部に表示させる。また、伸張された音声データはサウンドIC78へ出力され、サウンドIC78はスピーカ77から音を出力させる。
また、ゲーム装置3から受信されるデータに制御データが含まれる場合、コーデックLSI76およびUIコントローラ75は、制御データに従った制御指示を各部に行う。上述のように、制御データは、端末装置7が備える各構成要素(本実施形態では、カメラ56、タッチパネルコントローラ71、マーカ部55、各センサ62〜64、および赤外線通信モジュール82)に対する制御指示を表すデータである。本実施形態では、制御データが表す制御指示としては、上記各構成要素を動作させたり、動作を休止(停止)させたりする指示が考えられる。すなわち、ゲームで使用しない構成要素については電力消費を抑えるために休止させてもよく、その場合、端末装置7からゲーム装置3へ送信される送信データには、休止した構成要素からのデータが含まれないようにする。なお、マーカ部55は赤外LEDであるので、制御は単に電力の供給のON/OFFでよい。
以上のように、端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった操作手段を備えるが、他の実施形態においては、これらの操作手段に代えて、または、これらの操作手段とともに、他の操作手段を備える構成であってもよい。
また、端末装置7は、端末装置7の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ72、加速度センサ73、およびジャイロセンサ74を備えるが、他の実施形態においては、これらのセンサのうち1つまたは2つのみを備える構成であってもよい。また、他の実施形態においては、これらのセンサに代えて、または、これらのセンサとともに、他のセンサを備える構成であってもよい。
また、端末装置7は、カメラ56およびマイク79を備える構成であるが、他の実施形態においては、カメラ56およびマイク79を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
また、端末装置7は、端末装置7とコントローラ5との位置関係(コントローラ5から見た端末装置7の位置および/または姿勢等)を算出するための構成としてマーカ部55を備える構成であるが、他の実施形態ではマーカ部55を備えていない構成としてもよい。また、他の実施形態では、端末装置7は、上記位置関係を算出するための構成として他の手段を備えていてもよい。例えば、他の実施形態においては、コントローラ5がマーカ部を備え、端末装置7が撮像素子を備える構成としてもよい。さらにこの場合、マーカ装置6は赤外LEDに代えて、撮像素子を備える構成としてもよい。
(付加装置の構成)
次に、図15〜図20を参照して、端末装置7に装着(接続)可能な付加装置の例について説明する。付加装置は、どのような機能を有するものであってもよく、例えば、所定の操作を行うために端末装置7に装着される追加の操作装置であってもよいし、端末装置7に対して給電を行う充電器であってもよいし、端末装置7を所定の姿勢にして立てるためのスタンドであってもよい。
図8(d)および図9に示すように、突起部(庇部59)の下面には、付加装置が有する爪部が係止可能な係止穴59aおよび59bが設けられる。係止穴59aおよび59bは、端末装置7に他の付加装置を接続する際に用いられる。すなわち、付加装置は係止穴59aおよび59bに係止可能な爪部を有し、端末装置7に付加装置を接続する場合には、爪部が係止穴59aおよび59bに係止することによって端末装置7と付加装置とが固定される。また、係止穴59aおよび59bの内部に、さらにネジ穴を設けてもよく、付加装置をネジで強固に固定するようにしてもよい。なお、ここでは、端末装置7の裏面に設けられる突起部は、庇状の形状を有する庇部59である。すなわち、庇部59は左右方向に延びて設けられる。図9に示すように、係止穴59aおよび59bは、庇部59の下面の(左右方向に関して)中央付近に設けられる。なお、庇部59の下面に設けられる係止穴59aおよび59bの個数はいくつであってもよいが、1つである場合には庇部59の中央に設けられることが好ましく、複数である場合には左右対称に配置されることが好ましい。これによれば、左右のバランスを均等に保って付加装置を安定的に接続することができる。また、係止穴が中央付近に設けられる場合には、左右の両端に設けられる場合に比べて、付加装置のサイズを小さくすることができる。すなわち、庇部59は、付加装置の係止部材として使うことができる。
また、本実施形態においては、図8(d)に示すように、ハウジング50の下面に係止穴50aおよび50bが設けられる。したがって、端末装置7に付加装置を接続する場合には、4つの爪部が4つの各係止穴にそれぞれ係止することによって端末装置7と付加装置とが固定される。これによって、付加装置を端末装置7により強固に接続することができる。なお、係止穴50aおよび50bの内部にもネジ穴を設け、付加装置をネジ止めするようにしてもよい。また、他の実施形態においては、ハウジングに設けられる係止穴は、どのような配置であってもよい。
図15および図16は、端末装置7に付加装置を装着した一例を示す図である。図15は、端末装置7の表面側から端末装置7および入力装置200を見た図であり、図16は、端末装置7の裏面側から端末装置7および入力装置200を見た図である。図15および図16においては、付加装置の一例である入力装置200が端末装置7に装着されている。
入力装置200は、第1グリップ部200aと第2グリップ部200bとを備えている。各グリップ部200aおよび200bは、それぞれ、棒状(柱状)の形状であり、ユーザが片手で把持可能である。ユーザは、各グリップ部200aおよび200bのいずれか一方のみを把持して入力装置200(および端末装置7)を使用することも、両方を把持して入力装置200を使用することも可能である。なお、入力装置200は、グリップ部を1つのみ備える構成であってもよい。また、入力装置200は、支持部205を備えている。本実施形態においては、支持部205は、端末装置7の背面(裏面)を支持する。具体的には、支持部205は4つの爪部(凸部)を有し、4つの爪部は、それぞれ係止穴50a、50b、59aおよび59bにそれぞれ係止可能である。
図15に示すように、端末装置7に入力装置200を接続する場合には、4つの爪部が上記4つの係止穴50a、50b、59aおよび59bにそれぞれ係止することによって端末装置7と付加装置とが固定される。これによって、入力装置200を端末装置7に強固に固定することができる。なお、他の実施形態においては、爪部と係止穴との係止に加えて(または係止に代えて)、入力装置200と端末装置7とをネジ止めする等によって、端末装置7に入力装置200がより強固に固定されてもよい。なお、ネジ止めの位置は、どこであってもよいが、例えば、ハウジング50の背面に当接する入力装置200の支持部205と、庇部59とがネジ止めされてもよい。
このように、本実施形態においては、係止穴59aおよび59bによって付加装置を端末装置7にしっかりと固定することができる。なお、端末装置7は、端末装置7の動きや傾きを検出するためのセンサ(磁気センサ72、加速度センサ73、およびジャイロセンサ74)を有しているので、端末装置7自体を動かして使用することも可能である。例えば、図15および図16に示した入力装置200を端末装置7に接続する場合には、ユーザが入力装置200のグリップ部200aおよび/または200bを持って、入力装置200を銃のように動かして操作する態様も可能である。本実施形態のように、端末装置7自体を動かして使用することが想定される場合には、係止穴59aおよび59bによって付加装置をしっかりと固定することが特に有効である。
また、本実施形態においては、支持部205は、第1グリップ部200a(または第2グリップ部200b)が鉛直方向を向く場合にLCD51の画面が略鉛直向きとなるように端末装置7を着脱可能に支持する。各グリップ部200aおよび200bは、入力装置200に接続された端末装置7の表示部(ハウジング50の表面)と略平行となるように形成される。換言すれば、各グリップ部200aおよび200bは、入力装置200に接続された端末装置7の表示部の上下方向を向くように形成される。このように、入力装置200は、(ユーザが入力装置200を把持した場合に)端末装置7の表示部がユーザの方を向く姿勢で端末装置7と接続される。ユーザは、各グリップ部200aおよび200b(の少なくともいずれか)を略鉛直にして把持することで、表示部の画面を自分の方を向けることができるので、表示部の画面を見ながら入力装置200を用いて操作を行うことができる。なお、本実施形態においては、第2グリップ部200bは、第1グリップ部200aと略平行な方向を向くが、他の実施形態においては、少なくとも1つのグリップ部がLCD51の画面と略平行な向きに形成されてもよい。これによって、ユーザは、当該グリップ部を掴むことで、LCD51が自分の方を向くようにして入力装置200(および端末装置7)を容易に把持することができる。
また、上記実施形態では、支持部205は、第1グリップ部200aと第2グリップ部200bとを接続する接続部材206に設けられる。つまり、支持部205は2つのグリップ部200aおよび200bの間に設けられるので、入力装置200に接続された端末装置7は、2つのグリップ部200aおよび200bの間に配置される。このとき、端末装置7と入力装置200とからなる操作装置(操作システム)の重心は2つのグリップ部200aおよび200bの間となるので、ユーザは2つのグリップ部200aおよび200bを掴んで把持することによって操作装置を楽に把持することができる。なお、上記実施形態では、一方のグリップ部(第1グリップ部200a)は、入力装置200に装着された端末装置7の画面の前側となる位置に設けられ、他方のグリップ部(第2グリップ部200b)は、当該画面の後側となる位置に設けられる。そのため、ユーザは、一方の手を画面の前方にし、他方の手を画面の後方にして、銃を持つような持ち方で2つのグリップを把持することで、容易に操作装置を把持することができる。したがって、例えば上記操作装置を銃に見立ててゲーム操作を行う射撃ゲーム等において上記操作装置が特に好適である。
また、入力装置200は、操作部として、第1ボタン201、第2ボタン202、第3ボタン203、およびスティック204を備えている。各ボタン201〜203は、それぞれユーザによって押下可能なボタン(キー)である。スティック204は、方向を指示することが可能なデバイスである。上記操作部は、ユーザがグリップ部を把持した場合に把持した手の指で操作可能な位置に設けられることが好ましい。本実施形態においては、第1ボタン201と第2ボタン202とスティック204は、第1グリップ部200aを把持した手の親指で操作可能な位置に設けられる。また、第3ボタン203は、第2グリップ部200bを把持した手の人差し指で操作可能な位置に設けられる。
なお、入力装置200は、撮像装置(撮像部)を備えていてもよい。例えば、入力装置200は、上記コントローラ5が備える撮像情報演算部35と同様の構成を備えていてもよい。このとき、撮像情報演算部の撮像素子は、入力装置200の前方(端末装置7の画面の後方)を撮像する向きに設けられてもよい。例えば、赤外線フィルタが第3ボタン203に代えて第3ボタン203の位置に配置され、その内側に撮像素子が配置されてもよい。これによれば、ユーザが入力装置200の前方をテレビ2(マーカ装置6)に向けて使用することで、ゲーム装置3は入力装置200の向きや位置を算出することができる。したがって、ユーザは、入力装置200を所望の方向へ向ける操作を行うことができ、入力装置200を用いて直感的かつ容易な操作を行うことができる。また、入力装置200は、撮像情報演算部に代えて、カメラ56と同様のカメラを備える構成であってもよい。このとき、カメラは、上記撮像素子と同様、入力装置200の前方を撮像する向きに設けられてもよい。これによれば、ユーザが入力装置200の前方をテレビ2(マーカ装置6)に向けて使用することで、端末装置7のカメラ56とは反対向きの撮像方向で画像を撮像することができる。
また、入力装置200は、図示しないコネクタを備えており、コネクタは、端末装置7が入力装置200に装着された場合に端末装置7の拡張コネクタ58と接続される。これによって、入力装置200と端末装置7との間でデータの送受信が可能となる。例えば、入力装置200に対する操作を表すデータや、上記撮像装置による撮像結果を表すデータが端末装置7へ送信されてもよい。このとき、端末装置7は、端末装置7に対して行われた操作を表す操作データと、入力装置から送信されてきたデータとをゲーム装置3へ無線で送信してもよい。また、入力装置200は、端末装置7が入力装置200に装着された場合に端末装置7の充電端子66と接続される充電端子を備えていてもよい。これによれば、端末装置7が入力装置200に装着された場合に、一方の装置から他方の装置へ電力を供給することができる。例えば、入力装置200が充電器に接続され、端末装置7は入力装置200を介して充電器から電力を取得することによって充電が行われてもよい。
なお、入力装置200は、例えば次のような構成であってもよい。図17は、入力装置の他の例を示す図である。また、図18および図19は、図17に示す入力装置220を端末装置7に装着した様子を示す図である。図18は、端末装置7の裏面側から端末装置7および入力装置220を見た図であり、図19は、端末装置7の表面側から端末装置7および入力装置220を見た図である。端末装置7には、例えば図17に示す入力装置220を装着することも可能である。以下、入力装置220について説明する。なお、図17〜図20において、図15および図16に示す入力装置200の構成要素に対応する構成要素については図15および図16と同じ参照符号を付し、詳細な説明を省略する。
図17に示すように、入力装置220は、入力装置200と同様の第1グリップ部200aと第2グリップ部200bとを備えている。したがって、ユーザは、各グリップ部200aおよび200bのいずれか一方のみを把持して入力装置220(および端末装置7)を使用することも、両方を把持して入力装置220を使用することも可能である。
また、入力装置220は、入力装置200と同様の支持部205を備えている。支持部205は入力装置200の支持部と同様、4つの爪部(図17では3つの爪部205a〜205cのみ図示されている)を有する。各爪部のうち上側の2つの爪部205aおよび205bは、端末装置7の係止穴59aおよび59bにそれぞれ係止可能である。残りの下側の2つの爪部は、端末装置7の係止穴50aおよび50bにそれぞれ係止可能である。なお、図示されない爪部は、左右方向(支持部205に装着される端末装置7の左右方向)に関して爪部205cと対称な位置に設けられている。
図18および図19に示すように、端末装置7に入力装置220を接続する場合には、4つの爪部が上記4つの係止穴50a、50b、59aおよび59bにそれぞれ係止することによって端末装置7と入力装置220とが固定される。これによって、入力装置220を端末装置7に強固に固定することができる。なお、他の実施形態においては、爪部と係止穴との係止に加えて(または係止に代えて)、入力装置220と端末装置7とをネジ止めする等によって、端末装置7に入力装置220がより強固に固定されてもよい。例えば、係止穴50aおよび50bの内部にネジ穴を設け、上記下側の2つの爪部を係止穴50aおよび50bにネジ止めするようにしてもよい。また、ネジ止めの位置はどこであってもよい。
以上のように、入力装置220に関しても入力装置200と同様、端末装置7にしっかりと固定することができる。
また、入力装置220に関しても入力装置200と同様、支持部205は、第1グリップ部200a(または第2グリップ部200b)が鉛直方向を向く場合にLCD51の画面が略鉛直向きとなるように端末装置7を着脱可能に支持する。各グリップ部200aおよび200bは、入力装置220に接続された端末装置7の表示部(ハウジング50の表面)と略平行となるように形成される。したがって、ユーザは、各グリップ部200aおよび200b(の少なくともいずれか)を略鉛直にして把持することで、表示部の画面を自分の方を向けることができ、表示部の画面を見ながら入力装置200を用いて操作を行うことができる。また、入力装置220に関しても入力装置200と同様、支持部205はグリップ部よりも上方で端末装置7を支持するので、グリップ部を把持することでユーザにとって画面が見やすい配置となる。なお、他の実施形態においては、少なくとも1つのグリップ部がLCD51の画面と略平行な向きに形成されてもよい。
入力装置220においては、接続部の形状が入力装置200とは異なっている。図17に示す接続部209は、第1グリップ部200aの上側と下側との2箇所に接続されるとともに、第2グリップ部200bの上側(上端)に接続されている。また、入力装置220に関しても入力装置200と同様、接続部209は、第2グリップ部200bよりも前方に突出して形成されている。入力装置220に関しても入力装置200と同様、支持部205は、第1グリップ部200aと第2グリップ部200bとを接続する接続部材209に設けられる。したがって、ユーザは2つのグリップ部200aおよび200bを掴んで把持することによって操作装置を楽に把持することができる。
また、接続部209は、支持部205との接続部分から下方に延びる部材を有している。この部材は、支持部205に接続された端末装置7のLCD51の画面が略鉛直向きとなる場合に、略鉛直方向に延びる向きとなる。つまり、上記部材は、各グリップ部200aおよび200bと略並行な向きとなる。したがって、ユーザは、上記部材をグリップ部として把持する場合にも、上記部材を略鉛直にして把持することで、LCD51の画面を見ながら入力装置200を用いて操作を行うことができる。また、上記部材は支持部205の下方に配置されるので、上記部材を把持することでユーザにとって画面が見やすい配置となる。
入力装置220に関しても入力装置200と同様、一方のグリップ部(第1グリップ部200a)は、入力装置220に装着された端末装置7の画面の前側となる位置に設けられ、他方のグリップ部(第2グリップ部200b)は、当該画面の後側となる位置に設けられる。そのため、入力装置200と同様、入力装置220は、銃を持つような持ち方で容易に把持することができ、操作装置を銃に見立ててゲーム操作を行う射撃ゲーム等において特に好適である。
また、入力装置220は、操作部として、入力装置200と同様の第2ボタン202およびスティック204の他、第4ボタン207を備えている。第2ボタン202およびスティック204は、入力装置200と同様、第1グリップ部200aの上側に設けられる。第4ボタン207は、ユーザによって押下可能なボタン(キー)である。第4ボタン207は、第2グリップ部200bの上側に設けられる。つまり、第4ボタン207は、第2グリップ部200bを把持した手の人差し指等で操作可能な位置に設けられる。
入力装置220は、撮像素子(撮像装置)を備えている。ここでは、入力装置220は、上記コントローラ5が備える撮像情報演算部35と同様の構成を備えている。撮像情報演算部の撮像素子は、入力装置220の前方(端末装置7の画面の後方)を撮像する向きに設けられる。具体的には、入力装置220の前端部(接続部206の前端部)に窓部(赤外線フィルタ)208が設けられ、撮像素子は、窓部208の内側に設けられ、窓部208から前方を撮像する向きに設けられる。以上によれば、ユーザが入力装置220の前方をテレビ2(マーカ装置6)に向けて使用することで、ゲーム装置3は入力装置220の向きや位置を算出することができる。したがって、ユーザは、入力装置220を所望の方向へ向ける操作を行うことができ、入力装置220を用いて直感的かつ容易な操作を行うことができる。
なお、入力装置220は、撮像情報演算部に代えて、カメラ56と同様のカメラを備える構成であってもよい。これによれば、ユーザが入力装置220の前方をテレビ2(マーカ装置6)に向けて使用することで、端末装置7のカメラ56とは反対向きの撮像方向で画像を撮像することができる。
入力装置220は入力装置200と同様、図示しないコネクタを備えており、コネクタは、端末装置7が入力装置220に装着された場合に端末装置7の拡張コネクタ58と接続される。これによって、入力装置220と端末装置7との間でデータの送受信が可能となる。したがって、入力装置220に対する操作を表すデータ、および、上記撮像装置による撮像結果を表すデータは、端末装置7を介してゲーム装置3へ送信されてもよい。また、他の実施形態においては、入力装置220がゲーム装置3と通信を直接行う構成としてもよい。すなわち、入力装置220に対する操作を表すデータは、例えばコントローラ5とゲーム装置3との間の無線通信と同様、Bluetooth(登録商標)の技術等を用いて、入力装置220からゲーム装置3へ直接送信されてもよい。このとき、端末装置7に対して行われた操作を表す操作データは、端末装置7からゲーム装置3へ送信される。また、入力装置220は入力装置200と同様、端末装置7が入力装置220に装着された場合に端末装置7の充電端子66と接続される充電端子を備えていてもよい。
また、他の実施形態においては、端末装置7と入力装置200(または入力装置220)とが一体となった操作装置が提供されてもよい。この場合、端末装置7における各係止穴50a、50b、59aおよび59bや、入力装置200における爪部等、端末装置7と入力装置200とを着脱可能に接続するための機構は不要である。
図20は、端末装置7に付加装置を接続した他の一例を示す図である。図20においては、付加装置の一例であるスタンド210に端末装置7が接続(装着)されている。スタンド210は、端末装置7を所定の角度に立てて載置(支持)するための支持装置である。スタンド210は、支持部材211と、充電端子212と、ガイド部材213aおよび213bとを備えている。
本実施形態においては、スタンド210は、充電器としての機能も有しており、充電端子212を有する。充電端子212は、端末装置7の充電端子66と接続可能な端子である。なお、本実施形態においては各充電端子66および212は金属端子であるが、一方が他方に接続可能な形状を有するコネクタであってもよい。端末装置7がスタンド210に接続された場合には、スタンド210の充電端子212と端末装置7の充電端子66とが接触し、スタンド210から端末装置7に電力が供給され、充電を行うことができる。
支持部材211は、端末装置7の裏面を所定の角度で支持するためのものである。支持部材211は、端末装置7の端子(充電端子66)とスタンド210の端子(充電端子212)とが接続される場合にハウジング50の所定面(ここでは裏面)を支える。図20に示すように、支持部材211は、壁部211aと溝部211bとを有している。支持部材211は、壁部211aによって、ハウジング50の裏面が所定の支持面(ここでは、壁部211aによって形成される面)に沿って載置されるようにハウジング50を支持する。また、溝部211bは、端末装置7とスタンド210とが接続される場合にハウジング50の一部(下側部分)が挿入される部分である。そのため、溝部211bは、ハウジング50の上記一部の形状に概ね適合するように形成される。溝部211bは、上記支持面と平行な方向に延びる。
また、ガイド部材213aおよび213bは、端末装置7の第2係止穴50aおよび50bに挿入可能であり、スタンド210に対して端末装置7が接続される位置を決めるためのものである。各ガイド部材213aおよび213bは、端末装置7の係止穴50aおよび50bに対応する位置に設けられる。つまり、各ガイド部材213aおよび213bは、端末装置7とスタンド210とが正しく接続される場合に係止穴50aおよび50bに挿入される位置に設けられる。なお、端末装置7とスタンド210とが正しく接続される場合とは、スタンド210の充電端子212と端末装置7の充電端子66とが接続される場合である。また、ガイド部材213aおよび213bは、その一部が溝部211bの底面から突出するように設けられる。つまり、ガイド部材213aおよび213bは、その一部が支持部材211の表面から上方に向けて突出するように設けられる。端末装置7がスタンド210に接続された場合には、ガイド部材213aおよび213bの一部がそれぞれ係止穴50aおよび50bに挿入された状態となる。
本実施形態においては、各ガイド部材213aおよび213bはそれぞれ、回転可能な車輪部材(ローラー部)である。各ガイド部材213aおよび213bは、所定方向に回転可能である。ここでは、所定方向とは、(水平方向であって)上記支持面と平行な方向であり、換言すれば、端末装置7がスタンド210に接続された場合における端末装置7の左右方向である。ガイド部材は、少なくとも所定方向に回転可能な回転部材であればよい。例えば、他の実施形態においては、ガイド部材は、球状の凹部によって回転可能に支持される球体であってもよい。また、本実施形態においては、ガイド部材の数は2つであるが、端末装置7の下面に設けられる係止穴の数に応じた数のガイド部材が設けられてもよく、スタンド210はガイド部材を1つのみ備えていてもよいし、3つ以上備えていてもよい。
端末装置7がスタンド210に接続される場合には、端末装置7の裏面が支持部材211に当接することによって、端末装置7が所定の角度でスタンド210上に載置される。すなわち、ハウジング50の下側の一部が溝部211bに挿入され、壁部211aがハウジング50の裏面を支えることによって、端末装置7が所定の角度でスタンド210上に載置される。したがって、本実施形態においては、上記所定方向に垂直な方向に関しては、支持部材211によって端末装置7の位置が正しい位置に決められる。
ここで、端末装置7がスタンド210に接続される際、端末装置7とスタンド210とが正しい位置関係にない場合には、各ガイド部材213aおよび213bによって端末装置7の位置が修正されて接続される。すなわち、上記所定方向に関して係止穴50aおよび50bがガイド部材213aおよび213bからずれている場合には、係止穴50aおよび50bの周辺のハウジング50に各ガイド部材213aおよび213bが接触する。これに応じて、ガイド部材213aおよび213bが回転することによって端末装置7が所定方向にスライド移動する。なお、本実施形態では、2つのガイド部材213aおよび213bが所定方向に並んで設けられるので、端末装置7の下面をガイド部材213aおよび213bにのみ接触させることができ、端末装置7をよりスムーズに移動させることができる。また、係止穴50aおよび50bの周囲に傾斜(凹んでいる傾斜)を設けるようにすれば、端末装置7をよりスムーズに移動させることができる。上記のように端末装置7がスライド移動する結果、ガイド部材213aおよび213bの各一部が係止穴50aおよび50bに挿入された状態となる。これによって、スタンド210の充電端子212と端末装置7の充電端子66とが接触し、充電が確実に行われる。
以上のように、ユーザは、端末装置7を正確な位置に載置しなくても、端末装置7をスタンド210に容易に接続することができる。本実施形態によれば、スタンド210に対する端末装置7の位置決めを、端末装置7の係止穴とスタンド210のガイド部材という簡易な構成によって行うことができるので、スタンド210を小型で簡易な構成とすることができる。本実施形態においては、端末装置7は比較的大型の可搬型装置であるが、このような大型の可搬型装置であっても、スタンド210自体は図20に示すような小型の構成にすることができる。また、スタンド210は、いろいろな形状または大きさの端末装置を接続することができるので、汎用性の高い支持装置を提供することができる。
また、本実施形態においては、係止穴50aおよび50bは、付加装置の爪部を係止するための穴として用いられるとともに、ガイド部材を挿入する対象としても用いられる。したがって、端末装置7のハウジング50に設ける穴の数を少なくすることができ、ハウジング50の形状を簡易にすることができる。
なお、上記実施形態においては、スタンド210のガイド部材が挿入される対象となる穴は、ハウジング50の下側の側面に設けられる穴(係止穴50aおよび50b)であったが、穴の位置はどこであってもよい。例えば、ハウジング50の他の側面に穴が設けられてもよいし、ハウジング50の表面または裏面に穴が設けられてもよい。なお、ガイド部は穴の位置に応じた位置に設けられる必要があるので、ハウジング50の表面または裏面に穴が設けられる場合には、スタンド210のガイド部は例えば壁部211aの位置に設けられてもよい。なお、ハウジング50の複数の面に穴を設けるようにしてもよく、このとき、端末装置7を様々な向きでスタンド210上に載置することができる。
[5.ゲーム処理]
次に、本ゲームシステムにおいて実行されるゲーム処理の詳細を説明する。まず、ゲーム処理において用いられる各種データについて説明する。図21は、ゲーム処理において用いられる各種データを示す図である。図21において、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)に記憶される主なデータを示す図である。図21に示すように、ゲーム装置3のメインメモリには、ゲームプログラム90、受信データ91、および処理用データ106が記憶される。なお、メインメモリには、図21に示すデータの他、ゲームに登場する各種オブジェクトの画像データやゲームに使用される音声データ等、ゲームに必要なデータが記憶される。
ゲームプログラム90は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム90は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。また、ゲームプログラム90に含まれる一部(例えば、コントローラ5および/または端末装置7の姿勢を算出するためのプログラム)については、ゲーム装置3内に予め記憶されていてもよい。
受信データ91は、コントローラ5および端末装置7から受信される各種のデータである。受信データ91は、コントローラ操作データ92、端末操作データ97、カメラ画像データ104、および、マイク音データ105を含む。コントローラ5が複数接続される場合には、コントローラ操作データ92も複数になる。端末装置7が複数接続される場合には、端末操作データ97、カメラ画像データ104、および、マイク音データ105も複数になる。
コントローラ操作データ92は、コントローラ5に対するユーザ(プレイヤ)の操作を表すデータである。コントローラ操作データ92は、コントローラ5から送信されてゲーム装置3において取得され、メインメモリに記憶される。コントローラ操作データ92は、第1操作ボタンデータ93、第1加速度データ94、第1角速度データ95、およびマーカ座標データ96を含む。なお、メインメモリには、最新の(最後に取得された)ものから順に所定個数のコントローラ操作データが記憶されてもよい。
第1操作ボタンデータ93は、コントローラ5に設けられる各操作ボタン32a〜32iに対する入力状態を表すデータである。具体的には、第1操作ボタンデータ93は、各操作ボタン32a〜32iが押下されているか否かを表す。
第1加速度データ94は、コントローラ5の加速度センサ37によって検出された加速度(加速度ベクトル)を表すデータである。ここでは、第1加速度データ94は、図3に示すXYZの3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであればよい。
第1角速度データ95は、コントローラ5におけるジャイロセンサ48によって検出された角速度を表すデータである。ここでは、第1角速度データ95は、図3に示すXYZの3軸回りのそれぞれの角速度を表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。
マーカ座標データ96、撮像情報演算部35の画像処理回路41によって算出される座標、すなわち上記マーカ座標を表すデータである。マーカ座標は、撮像画像に対応する平面上の位置を表すための2次元座標系で表現され、マーカ座標データ96は、当該2次元座標系における座標値を表す。
なお、コントローラ操作データ92は、コントローラ5を操作するユーザの操作を表すものであればよく、上記各データ93〜96の一部のみを含むものであってもよい。また、コントローラ5が他の入力手段(例えば、タッチパネルやアナログスティック等)を有する場合には、コントローラ操作データ92は、当該他の入力手段に対する操作を表すデータを含んでいてもよい。なお、本実施形態のようにコントローラ5自体の動きをゲーム操作として用いる場合には、コントローラ操作データ92は、第1加速度データ94、第1角速度データ95、またはマーカ座標データ96のように、コントローラ5自体の動きに応じて値が変化するデータを含むようにする。
端末操作データ97は、端末装置7に対するユーザの操作を表すデータである。端末操作データ97は、端末装置7から送信されてゲーム装置3において取得され、メインメモリに記憶される。端末操作データ97は、第2操作ボタンデータ98、スティックデータ99、タッチ位置データ100、第2加速度データ101、第2角速度データ102、および方位データを含む。なお、メインメモリには、最新の(最後に取得された)ものから順に所定個数の端末操作データが記憶されてもよい。
第2操作ボタンデータ98は、端末装置7に設けられる各操作ボタン54A〜54Lに対する入力状態を表すデータである。具体的には、第2操作ボタンデータ98は、各操作ボタン54A〜54Lが押下されているか否かを表す。
スティックデータ99は、アナログスティック53(アナログスティック53Aおよび53B)のスティック部がスライドした(または傾倒した)方向および量を表すデータである。上記方向および量は、例えば2次元座標や2次元ベクトルとして表されてもよい。
タッチ位置データ100は、タッチパネル52の入力面において入力が行われた位置(タッチ位置)を表すデータである。本実施形態では、タッチ位置データ100は、上記入力面上の位置を示すための2次元座標系の座標値を表す。なお、タッチパネル52がマルチタッチ方式である場合には、タッチ位置データ100は複数のタッチ位置を表すこともある。
第2加速度データ101は、加速度センサ73によって検出された加速度(加速度ベクトル)を表すデータである。本実施形態では、第2加速度データ101は、図8に示すxyzの3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであればよい。
第2角速度データ102は、ジャイロセンサ74によって検出された角速度を表すデータである。本実施形態では、第2角速度データ102は、図8に示すxyzの3軸回りのそれぞれの角速度を表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。
方位データ103は、磁気センサ72によって検出された方位を表すデータである。本実施形態では、方位データ103は、端末装置7を基準として所定の方位(例えば北)の向きを表す。ただし、地磁気以外の磁界が発生している場所においては、方位データ103は厳密には絶対的な方位(北等)を示さないことになるが、その場所における磁界の方向に対する端末装置7の相対的な方向が示されるので、そのような場合であっても端末装置7の姿勢変化を算出することが可能である。
なお、端末操作データ97は、端末装置7を操作するユーザの操作を表すものであればよく、上記各データ98〜103のいずれか1つのみを含むものであってもよい。また、端末装置7が他の入力手段(例えば、タッチパッドや、コントローラ5の撮像手段等)を有する場合には、端末操作データ97は、当該他の入力手段に対する操作を表すデータを含んでいてもよい。なお、本実施形態のように端末装置7自体の動きをゲーム操作として用いる場合には、端末操作データ97は、第2加速度データ101、第2角速度データ102、または方位データ103のように、端末装置7自体の動きに応じて値が変化するデータを含むようにする。
カメラ画像データ104は、端末装置7のカメラ56によって撮像された画像(カメラ画像)を表すデータである。カメラ画像データ104は、端末装置7からの圧縮された画像データがコーデックLSI27によって伸張された画像データであり、入出力プロセッサ11aによってメインメモリに記憶される。なお、メインメモリには、最新の(最後に取得された)ものから順に所定個数のカメラ画像データが記憶されてもよい。
マイク音データ105は、端末装置7のマイク79によって検出された音声(マイク音)を表すデータである。マイク音データ105は、端末装置7から送信されてくる圧縮された音声データがコーデックLSI27によって伸張された音声データであり、入出力プロセッサ11aによってメインメモリに記憶される。
処理用データ106は、後述するゲーム処理(図22)において用いられるデータである。処理用データ106は、制御データ107、コントローラ姿勢データ108、端末姿勢データ109、画像認識データ110、および音声認識データ111を含む。なお、図21に示すデータの他、処理用データ106は、ゲームに登場する各種オブジェクトに設定される各種パラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。
制御データ107は、端末装置7が備える構成要素に対する制御指示を表すデータである。制御データ107は、例えば、マーカ部55の点灯を制御する指示や、カメラ56の撮像を制御する指示等を表す。制御データ107は、適宜のタイミングで端末装置7へ送信される。
コントローラ姿勢データ108は、コントローラ5の姿勢を表すデータである。本実施形態では、コントローラ姿勢データ108は、上記コントローラ操作データ92に含まれる第1加速度データ94、第1角速度データ95、およびマーカ座標データ96に基づいて算出される。コントローラ姿勢データ108の算出方法についてはステップS23で後述する。
端末姿勢データ109は、端末装置7の姿勢を表すデータである。本実施形態では、端末姿勢データ109は、上記端末操作データ97に含まれる第2加速度データ101、第2角速度データ102、および方位データ103に基づいて算出される。端末姿勢データ109の算出方法についてはステップS24で後述する。
画像認識データ110は、上記カメラ画像に対する所定の画像認識処理の結果を表すデータである。この画像認識処理は、カメラ画像から何らかの特徴を検知してその結果を出力するものであればどのような処理であってもよく、例えば、カメラ画像から所定の対象(例えば、ユーザの顔やマーカ等)を抽出し、抽出した対象に関する情報を算出する処理であってもよい。
音声認識データ111は、上記マイク音声に対する所定の音声認識処理の結果を表すデータである。この音声認識処理は、マイク音声から何らかの特徴を検知してその結果を出力するものであればどのような処理であってもよく、例えば、ユーザの言葉を検知する処理であってもよいし、単に音量を出力する処理であってもよい。
次に、図22を参照して、ゲーム装置3において行われるゲーム処理の詳細を説明する。図22は、ゲーム装置3において実行されるゲーム処理の流れを示すメインフローチャートである。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムがメインメモリに読み込まれ、CPU10によって当該ゲームプログラムの実行が開始される。なお、ゲーム装置3においては、電源投入後に光ディスク4に記憶されたゲームプログラムがすぐに実行される構成であってもよいし、電源投入後にまず所定のメニュー画面を表示する内蔵プログラムが実行され、その後ユーザによってゲームの開始が指示されたときに光ディスク4に記憶されたゲームプログラムが実行される構成であってもよい。図22に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
なお、図22に示すフローチャートの各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、上記フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、CPU10以外のプロセッサや専用回路が上記各ステップの一部のステップの処理を実行するようにしてもよい。
まずステップS1において、CPU10は初期処理を実行する。初期処理は、例えば、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクトを初期位置に配置したり、ゲーム処理で用いる各種パラメータの初期値を設定したりする処理である。
また、本実施形態においては、初期処理において、CPU10は、ゲームプログラムの種類に基づいてマーカ装置6およびマーカ部55の点灯を制御する。ここで、ゲームシステム1は、コントローラ5の撮像手段(撮像情報演算部35)の撮像対象として、マーカ装置6と端末装置7のマーカ部55との2つを有している。ゲームの内容(ゲームプログラムの種類)によっては、マーカ装置6とマーカ部55のうちいずれかが使用されたり、あるいは、両方が使用されたりする。なお、ゲームプログラム90には、マーカ装置6およびマーカ部55のそれぞれについて点灯させるか否かを表すデータ含まれている。CPU10は、当該データを読み出して点灯させるか否かを判断する。そして、マーカ装置6および/またはマーカ部55を点灯させる場合には以下の処理を実行する。
すなわち、マーカ装置6を点灯する場合、CPU10は、マーカ装置6が備える各赤外LEDを点灯させる旨の制御信号をマーカ装置6へ送信する。この制御信号の送信は単に電力を供給するというだけのことであってもよい。これに応じてマーカ装置6の各赤外LEDが点灯される。一方、マーカ部55を点灯する場合、CPU10は、マーカ部55を点灯する指示を表す制御データを生成してメインメモリに記憶する。生成された制御データは、後述するステップS10において端末装置7へ送信される。端末装置7の無線モジュール80において受信された制御データは、コーデックLSI76を介してUIコントローラ75へ送られ、UIコントローラ75はマーカ部55に点灯する指示を行う。これによってマーカ部55の赤外LEDが点灯する。なお、上記においてはマーカ装置6およびマーカ部55を点灯させる場合を説明したが、マーカ装置6およびマーカ部55の消灯は、点灯する場合と同様の処理によって行うことができる。
以上のステップS1の次にステップS2の処理が実行される。以降、ステップS2〜S11の一連の処理からなる処理ループが所定時間(1フレーム時間)に1回の割合で繰り返し実行される。
ステップS2において、CPU10は、コントローラ5から送信されてくるコントローラ操作データを取得する。コントローラ5はコントローラ操作データをゲーム装置3へ繰り返し送信するので、ゲーム装置3においては、コントローラ通信モジュール19が当該コントローラ操作データを逐次受信し、受信されたコントローラ操作データが入出力プロセッサ11aによってメインメモリに逐次記憶される。送受信の間隔はゲームの処理時間よりも短い方が好ましく、例えば200分の1秒である。ステップS2においては、CPU10は、最新のコントローラ操作データ92をメインメモリから読み出す。ステップS2の次にステップS3の処理が実行される。
ステップS3において、CPU10は、端末装置7から送信されてくる各種のデータを取得する。端末装置7は、端末操作データとカメラ画像データとマイク音データとをゲーム装置3へ繰り返し送信するので、ゲーム装置3はこれらのデータを逐次受信する。ゲーム装置3においては、端末通信モジュール28がこれらのデータを逐次受信し、カメラ画像データおよびマイク音データについてはコーデックLSI27によって伸張処理が逐次施される。そして、入出力プロセッサ11aが端末操作データとカメラ画像データとマイク音データとをメインメモリに逐次記憶する。ステップS3においては、CPU10は、最新の端末操作データ97をメインメモリから読み出す。ステップS3の次にステップS4の処理が実行される。
ステップS4において、CPU10はゲーム制御処理を実行する。ゲーム制御処理は、ユーザによるゲーム操作に従ってゲーム空間内のオブジェクトを動作させる処理等を実行し、ゲームを進行させる処理である。本実施形態においては、ユーザは、コントローラ5および/または端末装置7を用いて種々のゲームを行うことが可能である。以下、図23を参照して、ゲーム制御処理について説明する。
図23は、ゲーム制御処理の詳細な流れを示すフローチャートである。なお、図23に示す一連の処理は、コントローラ5および端末装置7を操作装置として用いる場合において実行され得る種々の処理であるが、各処理の必ずしも全てが実行される必要はなく、ゲームの種類や内容によっては一部の処理のみが実行されてもよい。
ゲーム制御処理においては、まずステップS21において、CPU10は、使用するマーカを変更するか否かを判定する。上述のように、本実施形態においては、ゲーム処理の開始時(ステップS1)において、マーカ装置6およびマーカ部55の点灯を制御する処理が実行される。ここで、ゲームによっては、ゲームの途中でマーカ装置6およびマーカ部55のうちで使用する(点灯する)対象を変更する場合も考えられる。また、ゲームによってはマーカ装置6およびマーカ部55の両方を使用することも考えられるが、両方を点灯させると、一方のマーカを他方のマーカと誤検出してしまうおそれがある。そのため、ゲーム中において、いずれか一方のみを点灯させるように点灯を切り替えて使用することが好ましい場合もある。ステップS21の処理は、かかる場合を考慮し、点灯する対象をゲーム途中で変更するか否かを判定する処理である。
上記ステップS21の判定は、例えば以下の方法で行うことができる。すなわち、CPU10は、ゲーム状況(ゲームのステージや操作対象等)が変化したか否かによって上記判定を行うことができる。ゲーム状況が変化する場合、マーカ装置6の方を向けてコントローラ5を操作する操作方法と、マーカ部55の方を向けてコントローラ5を操作する操作方法との間で、操作方法が変更されることが考えられるからである。また、CPU10は、コントローラ5の姿勢に基づいて上記判定を行うことができる。すなわち、コントローラ5がマーカ装置6の方を向いているか、マーカ部55の方を向いているかによって上記判定を行うことができる。なお、コントローラ5の姿勢は、例えば加速度センサ37やジャイロセンサ48の検出結果に基づいて算出することができる(後述するステップS23参照)。また、CPU10は、ユーザによる変更指示があったか否かによって上記判定を行うこともできる。
上記ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、上記ステップS21の判定結果が否定である場合、ステップS22の処理がスキップされてステップS23の処理が実行される。
ステップS22において、CPU10は、マーカ装置6およびマーカ部55の点灯を制御する。すなわち、マーカ装置6および/またはマーカ部55の点灯状態を変更する。なお、マーカ装置6および/またはマーカ部55を点灯または消灯する具体的な処理は、上記ステップS1の場合と同様に行うことができる。ステップS22の次にステップS23の処理が実行される。
以上のように本実施形態によれば、上記ステップS1の処理によって、ゲームプログラムの種類に応じてマーカ装置6およびマーカ部55の発光(点灯)を制御することができるとともに、上記ステップS21およびS22の処理によって、ゲーム状況に応じてマーカ装置6およびマーカ部55の発光(点灯)を制御することができる。
ステップS23において、CPU10はコントローラ5の姿勢を算出する。本実施形態では、コントローラ5の姿勢は、第1加速度データ94、第1角速度データ95、およびマーカ座標データ96に基づいて算出される。以下、コントローラ5の姿勢の算出方法について説明する。
まず、CPU10は、メインメモリに記憶されている第1角速度データ95に基づいてコントローラ5の姿勢を算出する。コントローラ5の姿勢を角速度から算出する方法はどのような方法であってもよいが、当該姿勢は、前回の姿勢(前回に算出された姿勢)と、今回の角速度(今回の処理ループにおけるステップS2で取得された角速度)とを用いて算出される。具体的には、CPU10は、前回の姿勢を今回の角速度で単位時間分だけ回転させることによって姿勢を算出する。なお、前回の姿勢は、メインメモリに記憶されているコントローラ姿勢データ108により表され、今回の角速度は、メインメモリに記憶されている第1角速度データ95により表される。したがって、CPU10は、メインメモリからコントローラ姿勢データ108および第1角速度データ95を読み出して、コントローラ5の姿勢を算出する。以上のようにして算出された「角速度に基づく姿勢」を表すデータはメインメモリに記憶される。
なお、角速度から姿勢を算出する場合、初期姿勢を定めておくのがよい。つまり、コントローラ5の姿勢を角速度から算出する場合には、CPU10は、最初にコントローラ5の初期姿勢を算出しておく。コントローラ5の初期姿勢は、加速度データに基づいて算出されてもよいし、コントローラ5を特定の姿勢にした状態でプレイヤに所定の操作を行わせることで、所定の操作が行われた時点における特定の姿勢を初期姿勢として用いるようにしてもよい。なお、空間における所定方向を基準とした絶対的な姿勢としてコントローラ5の姿勢を算出する場合には上記初期姿勢を算出することが良いが、例えばゲーム開始時点におけるコントローラ5の姿勢を基準とした相対的な姿勢としてコントローラ5の姿勢を算出する場合には、上記初期姿勢は算出されなくても良い。
次に、CPU10は、角速度に基づいて算出したコントローラ5の姿勢を、第1加速度データ94を用いて補正する。具体的には、CPU10はまず、メインメモリから第1加速度データ94を読み出して、第1加速度データ94に基づいてコントローラ5の姿勢を算出する。ここで、コントローラ5がほぼ静止している状態では、コントローラ5に対して加えられる加速度は重力加速度を意味する。したがって、この状態においては、加速度センサ37が出力する第1加速度データ94を用いて重力加速度の方向(重力方向)を算出することができるので、重力方向に対するコントローラ5の向き(姿勢)を当該第1加速度データ94に基づいて算出することができる。以上のようにして算出された「加速度に基づく姿勢」を表すデータはメインメモリに記憶される。
加速度に基づく姿勢を算出すると、CPU10は次に、加速度に基づく姿勢を用いて、角速度に基づく姿勢を補正する。具体的には、CPU10は、角速度に基づく姿勢を表すデータと加速度に基づく姿勢を表すデータとをメインメモリから読み出し、角速度データに基づく姿勢を、加速度データに基づく姿勢へ所定の割合で近づける補正を行う。この所定の割合は、予め定められた固定値であってもよいし、第1加速度データ94が示す加速度等に応じて設定されてもよい。また、加速度に基づく姿勢に関しては、重力方向を軸とする回転方向については姿勢を算出することができないので、CPU10は、当該回転方向に関しては補正を行わないようにしてもよい。本実施形態においては、以上のようにして得られた補正後の姿勢を表すデータはメインメモリに記憶される。
上記のようにして角速度に基づく姿勢を補正した後、CPU10は、補正後の姿勢をマーカ座標データ96を用いてさらに補正する。まず、CPU10は、マーカ座標データ96に基づいてコントローラ5の姿勢(マーカ座標に基づく姿勢)を算出する。マーカ座標データ96は、撮像画像内におけるマーカ6Rおよび6Lの位置を示すので、これらの位置から、ロール方向(Z軸回りの回転方向)に関するコントローラ5の姿勢を算出することができる。つまり、撮像画像内においてマーカ6Rの位置とマーカ6Lの位置とを結ぶ直線の傾きから、ロール方向に関するコントローラ5の姿勢を算出することができる。また、マーカ装置6に対するコントローラ5の位置が特定できる場合(例えば、マーカ装置6の正面にコントローラ5が位置すると想定できる場合)には、撮像画像内におけるマーカ装置6の位置から、ピッチ方向およびヨー方向に関するコントローラ5の姿勢を算出することができる。例えば、撮像画像内においてマーカ6Rおよび6Lの位置が左に移動した場合、コントローラ5は右に向き(姿勢)を変えたと判断することができる。このように、マーカ6Rおよびマーカ6Lの位置から、ピッチ方向およびヨー方向に関するコントローラ5の姿勢を算出することができる。以上のようにして、マーカ座標データ96に基づいてコントローラ5の姿勢を算出することができる。
マーカ座標に基づく姿勢を算出すると、CPU10は次に、上記補正後の姿勢(加速度に基づく姿勢によって補正された姿勢)を、マーカ座標に基づく姿勢で補正する。すなわち、CPU10は、補正後の姿勢を、マーカ座標に基づく姿勢へ所定の割合で近づける補正を行う。この所定の割合は、予め定められた固定値であってもよい。また、マーカ座標に基づく姿勢による補正は、ロール方向、ピッチ方向、およびヨー方向のいずれか1つまたは2つの方向のみについて行われてもよい。例えば、マーカ座標データ96を用いる場合、ロール方向については精度良く姿勢を算出することができるので、CPU10は、ロール方向についてのみ、マーカ座標データ96に基づく姿勢を用いて補正を行ってもよい。また、コントローラ5の撮像素子40によってマーカ装置6またはマーカ部55が撮像されていない場合は、マーカ座標データ96に基づく姿勢を算出することができないので、この場合にはマーカ座標データ96を用いる補正処理は実行されなくてもよい。
上記によれば、CPU10は、第1角速度データ95に基づいて算出されたコントローラ5の第1姿勢を、第1加速度データ94およびマーカ座標データ96を用いて補正した。ここで、コントローラ5の姿勢を算出する方法のうち、角速度を用いる方法では、コントローラ5がどのように動いているときであっても姿勢を算出することができる。一方、角速度を用いる方法では、逐次検出される角速度を累積加算していくことによって姿勢を算出するので、誤差が累積すること等によって精度が悪くなったり、いわゆる温度ドリフトの問題でジャイロセンサの精度が悪くなったりするおそれがある。また、加速度を用いる方法は、誤差が蓄積しない一方、コントローラ5が激しく動かされている状態では、(重力方向を正確に検出することができないので)姿勢を精度良く算出することができない。また、マーカ座標を用いる方法は、(特にロール方向に関して)姿勢を精度良く算出することができる一方、マーカ部55を撮像できない状態では姿勢を算出することができない。これに対して、本実施形態によれば、上記のように特長の異なる3種類の方法を用いるので、コントローラ5の姿勢をより正確に算出することができる。なお、他の実施形態においては、上記3つの方法のうちいずれか1つまたは2つを用いて姿勢を算出するようにしてもよい。また、上記ステップS1またはS22の処理においてマーカの点灯制御を行う場合には、CPU10は、少なくともマーカ座標を用いてコントローラ5の姿勢を算出することが好ましい。
上記ステップS23の次に、ステップS24の処理が実行される。ステップS24においては、CPU10は、端末装置7の姿勢を算出する。すなわち、端末装置7から取得される端末操作データ97には、第2加速度データ101、第2角速度データ102、および方位データ103が含まれるので、CPU10は、これらのデータに基づいて端末装置7の姿勢を算出する。ここで、CPU10は、第2角速度データ102によって端末装置7の単位時間当たりにおける回転量(姿勢の変化量)を知ることができる。また、端末装置7がほぼ静止している状態では、端末装置7に対して加えられる加速度は重力加速度を意味するので、第2加速度データ101によって端末装置7に加えられる重力方向(すなわち、重力方向を基準とした端末装置7の姿勢)を知ることができる。また、方位データ103によって、端末装置7を基準とした所定の方位(すなわち、所定の方位を基準とした端末装置7の姿勢)を知ることができる。なお、地磁気以外の磁界が発生している場合であっても、端末装置7の回転量を知ることができる。したがって、CPU10は、これら第2加速度データ101、第2角速度データ102、および方位データ103に基づいて端末装置7の姿勢を算出することができる。なお、本実施形態においては、上記3つのデータに基づいて端末装置7の姿勢を算出するが、他の実施形態においては、上記3つのデータのうち1つまたは2つに基づいて姿勢を算出するようにしてもよい。
なお、端末装置7の姿勢の具体的な算出方法はどのような方法であってもよいが、例えば、第2角速度データ102が表す角速度に基づいて算出される姿勢を、第2加速度データ101および方位データ103を用いて補正する方法が考えられる。具体的には、CPU10は、まず、第2角速度データ102に基づいて端末装置7の姿勢を算出する。なお、角速度に基づいて姿勢を算出する方法は、上記ステップS23における方法と同様であってもよい。次に、CPU10は、適宜のタイミング(例えば、端末装置7が静止状態に近い場合に)で、角速度に基づいて算出される姿勢を、第2加速度データ101に基づいて算出される姿勢、および/または、方位データ103に基づいて算出される姿勢によって補正する。なお、角速度に基づく姿勢を加速度に基づく姿勢で補正する方法は、上述したコントローラ5の姿勢を算出する場合と同様の方法であってもよい。また、角速度に基づく姿勢を方位データに基づく姿勢で補正する場合には、CPU10は、角速度に基づく姿勢を、方位データに基づく姿勢へと所定の割合で近づけるようにしてもよい。以上によれば、CPU10は、端末装置7の姿勢を正確に算出することができる。
なお、コントローラ5は、赤外線検知手段である撮像情報演算部35を備えているので、ゲーム装置3はマーカ座標データ96を取得することができる。そのため、コントローラ5に関しては、ゲーム装置3は、実空間における絶対的な姿勢(実空間に設定された座標系においてコントローラ5がどのような姿勢であるか)をマーカ座標データ96から知ることができる。一方、端末装置7は撮像情報演算部35のような赤外線検知手段を備えていない。そのため、ゲーム装置3は、第2加速度データ101および第2角速度データ102からのみでは、重力方向を軸とした回転方向に関して実空間における絶対的な姿勢を知ることができない。そこで、本実施形態では端末装置7が磁気センサ72を備える構成とし、ゲーム装置3は方位データ103を取得するようにしている。これによれば、ゲーム装置3は、重力方向を軸とした回転方向に関して実空間における絶対的な姿勢を方位データ103から算出することができ、端末装置7の姿勢をより正確に算出することができる。
上記ステップS24の具体的な処理としては、CPU10は、第2加速度データ101、第2角速度データ102、および方位データ103をメインメモリから読み出し、これらのデータに基づいて端末装置7の姿勢を算出する。そして、算出された端末装置7の姿勢を表すデータを端末姿勢データ109としてメインメモリに記憶する。ステップS24の次にステップS25の処理が実行される。
ステップS25において、CPU10は、カメラ画像の認識処理を実行する。すなわち、CPU10は、カメラ画像データ104に対して所定の認識処理を行う。この認識処理は、カメラ画像から何らかの特徴を検知してその結果を出力するものであればどのようなものであってもよい。例えば、カメラ画像にプレイヤの顔が含まれている場合には、顔を認識する処理であってもよい。具体的には、顔の一部(目や鼻や口等)を検出する処理であってもよいし、顔の表情を検出する処理であってもよい。また、認識処理の結果を表すデータは、画像認識データ110としてメインメモリに記憶される。ステップS25の次にステップS26の処理が実行される。
ステップS26において、CPU10は、マイク音声の認識処理を実行する。すなわち、CPU10は、マイク音データ105に対して所定の認識処理を行う。この認識処理は、マイク音声から何らかの特徴を検知してその結果を出力するものであればどのようなものであってもよい。例えば、マイク音声からプレイヤの指示を検出する処理であってもよいし、単にマイク音声の音量を検出する処理であってもよい。また、認識処理の結果を表すデータは、音声認識データ111としてメインメモリに記憶される。ステップS26の次にステップS27の処理が実行される。
ステップS27において、CPU10は、ゲーム入力に応じたゲーム処理を実行する。ここで、ゲーム入力とは、コントローラ5または端末装置7から送信されてくるデータ、あるいは、当該データから得られるデータであればどのようなものであってもよい。具体的には、ゲーム入力は、コントローラ操作データ92および端末操作データ97に含まれる各データの他、当該各データから得られるデータ(コントローラ姿勢データ108、端末姿勢データ109、画像認識データ110、および音声認識データ111)であってもよい。また、ステップS27におけるゲーム処理の内容はどのようなものであってもよく、例えば、ゲームに登場するオブジェクト(キャラクタ)を動作させる処理、仮想カメラを制御する処理、または、画面に表示されるカーソルを移動する処理であってもよい。また、カメラ画像(またはその一部)をゲーム画像として用いる処理、または、マイク音声をゲーム音声として用いる処理等であってもよい。なお上記ゲーム処理の例については後述する。ステップS27においては、例えば、ゲームに登場するキャラクタ(オブジェクト)に設定される各種パラメータのデータや、ゲーム空間に配置される仮想カメラに関するパラメータのデータや、得点のデータ等、ゲーム制御処理の結果を表すデータがメインメモリに記憶される。ステップS27の後、CPU10はステップS4のゲーム制御処理を終了する。
図22の説明に戻り、ステップS5において、テレビ2に表示するためのテレビ用ゲーム画像がCPU10およびGPU11bによって生成される。すなわち、CPU10およびGPU11bは、ステップS4のゲーム制御処理の結果を表すデータをメインメモリから読み出し、また、ゲーム画像を生成するために必要なデータをVRAM11dから読み出し、ゲーム画像を生成する。ゲーム画像は、ステップS4のゲーム制御処理の結果を表すものであればよく、どのような方法で生成されてもよい。例えば、ゲーム画像の生成方法は、仮想のゲーム空間内に仮想カメラを配置して、仮想カメラから見たゲーム空間を計算することによって3次元のCG画像を生成する方法であってもよいし、(仮想カメラを用いずに)2次元の画像を生成する方法であってもよい。生成されたテレビ用ゲーム画像はVRAM11dに記憶される。上記ステップS5の次にステップS6の処理が実行される。
ステップS6において、端末装置7に表示するための端末用ゲーム画像がCPU10およびGPU11bによって生成される。端末用ゲーム画像も上記テレビ用ゲーム画像と同様、ステップS4のゲーム制御処理の結果を表すものであればよく、どのような方法で生成されてもよい。また、端末用ゲーム画像は、上記テレビ用ゲーム画像と同様の方法で生成されてもよいし、異なる方法で生成されてもよい。生成された端末用ゲーム画像はVRAM11dに記憶される。なお、ゲームの内容によってはテレビ用ゲーム画像と端末用ゲーム画像とは同一であってもよく、この場合、ステップS6においてゲーム画像の生成処理は実行されなくてもよい。上記ステップS6の次にステップS7の処理が実行される。
ステップS7においては、テレビ2のスピーカ2aに出力するためのテレビ用ゲーム音声が生成される。すなわち、CPU10は、ステップS4のゲーム制御処理の結果に応じたゲーム音声をDSP11cに生成させる。なお、生成されるゲーム音声は、例えばゲームの効果音や、ゲームに登場するキャラクタの声や、BGM等であってもよい。上記ステップS7の次にステップS8の処理が実行される。
ステップS8においては、端末装置7のスピーカ77に出力するための端末用ゲーム音声が生成される。すなわち、CPU10は、ステップS4のゲーム制御処理の結果に応じたゲーム音声をDSP11cに生成させる。なお、端末用ゲーム音声は、上記テレビ用ゲーム音声と同じであってもよいし、異なっていてもよい。また、例えば効果音は異なるが、BGMは同じである、というように、一部のみが異なっていてもよい。なお、テレビ用ゲーム音声と端末用ゲーム音声とが同一である場合、ステップS8においてゲーム音声の生成処理は実行されなくてもよい。上記ステップS8の次にステップS9の処理が実行される。
ステップS9において、CPU10は、テレビ2へゲーム画像およびゲーム音声を出力する。具体的には、CPU10は、VRAM11dに記憶されたテレビ用ゲーム画像のデータと、ステップS7でDSP11cによって生成されたテレビ用ゲーム音声のデータとをAV−IC15へ送る。これに応じて、AV−IC15は画像および音声のデータをAVコネクタ16を介してテレビ2へ出力する。これによって、テレビ用ゲーム画像がテレビ2に表示されるとともに、テレビ用ゲーム音声がスピーカ2aから出力される。ステップS9の次にステップS10の処理が実行される。
ステップS10において、CPU10は、端末装置7へゲーム画像およびゲーム音声を送信する。具体的には、VRAM11dに記憶された端末用ゲーム画像の画像データ、および、ステップS8でDSP11cによって生成された音声データは、CPU10によってコーデックLSI27に送られ、コーデックLSI27によって所定の圧縮処理が行われる。さらに、圧縮処理が施された画像および音声のデータは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。端末装置7は、ゲーム装置3から送信されてくる画像および音声のデータを無線モジュール80によって受信し、コーデックLSI76によって所定の伸張処理が行われる。伸張処理が行われた画像データはLCD51に出力され、伸張処理が行われた音声データはサウンドIC78に出力される。これによって、端末用ゲーム画像がLCD51に表示されるとともに、端末用ゲーム音声がスピーカ77から出力される。ステップS10の次にステップS11の処理が実行される。
ステップS11において、CPU10は、ゲームを終了するか否かを判定する。ステップS11の判定は、例えば、ゲームオーバーになったか否か、あるいは、ユーザがゲームを中止する指示を行ったか否か等によって行われる。ステップS11の判定結果が否定の場合、ステップS2の処理が再度実行される。一方、ステップS11の判定結果が肯定の場合、CPU10は図22に示すゲーム処理を終了する。以降、ステップS2〜S11の一連の処理は、ステップS11でゲームを終了すると判定されるまで繰り返し実行される。
以上のように、本実施形態では、端末装置7は、タッチパネル52と、加速度センサ73またはジャイロセンサ74といった慣性センサとを備えており、タッチパネル52および慣性センサの出力が操作データとしてゲーム装置3へ送信されてゲームの入力として用いられる(ステップS3,S4)。さらに、端末装置7は表示装置(LCD51)を備えており、ゲーム処理によって得られるゲーム画像がLCD51に表示される(ステップS6,S10)。したがって、ユーザは、タッチパネル52を用いてゲーム画像に対して直接タッチする操作を行うことができ、また、(端末装置7の動きが慣性センサによって検出されるため)ゲーム画像が表示されるLCD51自体を動かす操作を行うことができる。ユーザは、これらの操作によってゲーム画像に対して直接操作を行うような操作感覚でゲームを行うことができるので、例えば後述する第1および第2のゲーム例のような新規な操作感覚のゲームを提供することができる。
さらに、本実施形態では、端末装置7は、端末装置7を把持した状態で操作可能なアナログスティック53および操作ボタン54を備えており、ゲーム装置3は、アナログスティック53および操作ボタン54に対する操作をゲームの入力として用いることができる(ステップS3,S4)。したがって、上記のようにゲーム画像に対して直接操作を行う場合においても、ユーザはボタン操作やスティック操作によってより詳細なゲーム操作を行うことができる。
さらに、本実施形態では、端末装置7はカメラ56およびマイク79を備えており、カメラ56が撮像するカメラ画像のデータ、および、マイク79が検出するマイク音のデータはゲーム装置3へ送信される(ステップS3)。したがって、ゲーム装置3は、上記カメラ画像および/またはマイク音をゲーム入力として用いることが可能であるので、ユーザは、カメラ56で画像を撮像する操作や、マイク79に音声を入力する操作によってゲーム操作を行うことも可能である。なお、これらの操作は端末装置7を把持した状態で行うことが可能であるので、上記のようにゲーム画像に対して直接操作を行う場合においてこれらの操作を行うことによって、ユーザはより多彩なゲーム操作を行うことができる。
また、本実施形態では、可搬型である端末装置7のLCD51にゲーム画像が表示される(ステップS6,S10)ので、ユーザは、端末装置7を自由に配置することができる。したがって、コントローラ5をマーカの方へ向けて操作を行う場合において、ユーザは、端末装置7を自由な位置に配置することによってコントローラ5を自由な方向に向けてゲームを行うことができ、コントローラ5に対する操作の自由度を向上することができる。また、端末装置7を任意の位置に配置することができるので、例えば後述する第5のゲーム例のように、ゲーム内容に適した位置に端末装置7を配置することによって、より現実感のあるゲームを提供することができる。
また、本実施形態によれば、ゲーム装置3は、コントローラ5および端末装置7から操作データ等を取得する(ステップS2,S3)ので、ユーザは、コントローラ5および端末装置7という2つの装置を操作手段として用いることができる。したがって、ゲームシステム1においては、各装置を複数人のユーザが使用することによって複数人でゲームを行うこともでき、また、1人のユーザが2つの装置を使用してゲームを行うこともできる。
また、本実施形態によれば、ゲーム装置3は2種類のゲーム画像を生成し(ステップS5,S6)、テレビ2と端末装置7とにゲーム画像を表示させる(ステップS9,S10)ことができる。このように、2種類のゲーム画像を異なる装置に表示させることによって、ユーザにとってより見やすいゲーム画像を提供することができ、ゲームの操作性を向上することができる。例えば、2人でゲームを行う場合には、後述する第3または第4のゲーム例のように、一方のユーザにとって見やすい視点のゲーム画像をテレビ2に表示し、他方のユーザにとって見やすい視点のゲーム画像を端末装置7に表示することによって、それぞれのプレイヤが見やすい視点でゲームを行うことができる。また、例えば1人でゲームを行う場合においても、後述する第1、第2および第5のゲーム例のように、異なる2箇所の視点で2種類のゲーム画像を表示することによって、プレイヤはゲーム空間の様子をより容易に把握することができ、ゲームの操作性を向上することができる。
[6.ゲーム例]
次に、ゲームシステム1において行われるゲームの具体例について説明する。なお、以下に説明するゲーム例においては、ゲームシステム1における各装置の構成のうち一部を利用しない場合もあり、また、図22および図23に示す一連の処理のうち一部の処理を実行しない場合もある。つまり、ゲームシステム1は、上述した全ての構成を備えていなくてもよく、また、ゲーム装置3は図22および図23に示す一連の処理の一部を実行しなくてもよい。
(第1のゲーム例)
第1のゲーム例は、端末装置7を操作することによってゲーム空間内においてオブジェクト(手裏剣)を飛ばすゲームである。プレイヤは、端末装置7の姿勢を変化させる操作と、タッチパネル52上に線を描く操作とによって、手裏剣を発射する方向を指示することができる。
図24は、第1のゲーム例におけるテレビ2の画面と端末装置7とを示す図である。図24においては、テレビ2および端末装置7のLCD51には、ゲーム空間を表すゲーム画像が表示されている。テレビ2には、手裏剣121、制御面122、および標的123が表示されている。LCD51には、制御面122(および手裏剣121)が表示されている。第1のゲーム例においては、プレイヤは、端末装置7を用いた操作によって手裏剣121を飛ばして標的123に当てて遊ぶ。
手裏剣121を飛ばす場合、プレイヤは、まず、端末装置7の姿勢を操作することによって、仮想のゲーム空間内に配置される制御面122の姿勢を変化させて所望の姿勢にする。すなわち、CPU10は、慣性センサ(加速度センサ73およびジャイロセンサ74)ならびに磁気センサ72の出力に基づいて端末装置7の姿勢を算出し(ステップS24)、算出された姿勢に基づいて制御面122の姿勢を変化させる(ステップS27)。第1のゲーム例では、制御面122の姿勢は、現実空間における端末装置7の姿勢に応じた姿勢となるように制御される。つまり、プレイヤは、端末装置7(端末装置7に表示されている制御面122)の姿勢を変化させることで、ゲーム空間内において制御面122の姿勢を変化させることができる。なお、第1のゲーム例においては、制御面122の位置は、ゲーム空間における所定位置に固定される。
次に、プレイヤは、タッチペン124等を用いてタッチパネル52上に線を描く操作を行う(図24に示す矢印参照)。ここで、第1のゲーム例においては、端末装置7のLCD51には、タッチパネル52の入力面と制御面122とが対応するように制御面122が表示される。したがって、タッチパネル52上に描かれた線によって、制御面122上での方向(当該線が表す方向)を算出することができる。手裏剣121は、このようにして決定された方向へ発射される。以上より、CPU10は、タッチパネル52のタッチ位置データ100から制御面122上での方向を算出し、算出された方向へ手裏剣121を移動させる処理を行う(ステップS27)。なお、CPU10は、例えば線の長さや線を描く速度に応じて手裏剣121の速度を制御するようにしてもよい。
以上のように、第1のゲーム例によれば、ゲーム装置3は、慣性センサの出力をゲーム入力として用いることによって、端末装置7の動き(姿勢)に応じて制御面122を動かすとともに、タッチパネル52の出力をゲーム入力として用いることによって、制御面122上における方向を特定することができる。これによれば、プレイヤは、端末装置7に表示されたゲーム画像(制御面122の画像)を動かしたり、当該ゲーム画像に対してタッチ操作を行ったりすることができるので、ゲーム画像に対して直接操作を行っているような新規な操作感覚でゲームを行うことができる。
また、第1のゲーム例においては、慣性センサおよびタッチパネル52のセンサ出力をゲーム入力として用いることで、3次元空間における方向を容易に指示することができる。すなわち、プレイヤは、一方の手で端末装置7の姿勢を実際に調整し、もう一方の手でタッチパネル52に線で方向を入力することによって、空間内で実際に方向を入力しているような直感的な操作で容易に方向を指示することができる。さらに、プレイヤは、端末装置7の姿勢の操作とタッチパネル52に対する入力操作とを同時に並行して行うことができるので、3次元空間における方向を指示する操作を迅速に行うことができる。
また、第1のゲーム例によれば、制御面122に対するタッチ入力の操作を行いやすくするために、端末装置7には画面全体に制御面122が表示される。一方、テレビ2には、制御面122の姿勢を把握しやすいように、また、標的123を狙いやすいように、制御面122の全体および標的123を含むゲーム空間の画像が表示される(図24参照)。すなわち、上記ステップS27においては、テレビ用ゲーム画像を生成するための第1仮想カメラは、制御面122の全体および標的123が視野範囲に含まれるように設定されるとともに、端末用ゲーム画像を生成するための第2仮想カメラは、LCD51の画面(タッチパネル52の入力面)と制御面122とが画面上において一致するように設定される。したがって、第1のゲーム例においては、テレビ2と端末装置7とに異なる視点から見たゲーム空間の画像を表示することによって、ゲーム操作をより行いやすくしている。
(第2のゲーム例)
なお、慣性センサおよびタッチパネル52のセンサ出力をゲーム入力として用いるゲームは、上記第1のゲーム例に限らず、種々のゲーム例が考えられる。第2のゲーム例は、第1のゲーム例と同様、端末装置7を操作することによってゲーム空間内においてオブジェクト(大砲の弾)を飛ばすゲームである。プレイヤは、端末装置7の姿勢を変化させる操作と、タッチパネル52上の位置を指定する操作とによって、弾を発射する方向を指示することができる。
図25は、第2のゲーム例におけるテレビ2の画面と端末装置7とを示す図である。図25においては、テレビ2には、大砲131、弾132、および標的133が表示されている。端末装置7には、弾132および標的133が表示されている。端末装置7に表示される端末用ゲーム画像は、大砲131の位置からゲーム空間を見た画像である。
第2のゲーム例においては、プレイヤは、端末装置7の姿勢を操作することによって、端末用ゲーム画像として端末装置7に表示される表示範囲を変化させることができる。すなわち、CPU10は、慣性センサ(加速度センサ73およびジャイロセンサ74)ならびに磁気センサ72の出力に基づいて端末装置7の姿勢を算出し(ステップS24)、算出された姿勢に基づいて、端末用ゲーム画像を生成するための第2仮想カメラの位置および姿勢を制御する(ステップS27)。具体的には、第2仮想カメラは、大砲131の位置に設置され、端末装置7の姿勢に応じて向き(姿勢)が制御される。このように、プレイヤは、端末装置7の姿勢を変化させることによって、端末装置7に表示されるゲーム空間の範囲を変化させることができる。
また、第2のゲーム例においては、プレイヤは、タッチパネル52上において点を入力する操作(タッチする操作)によって弾132の発射方向を指定する。具体的には、上記ステップS27の処理として、CPU10は、タッチ位置に対応するゲーム空間内の位置(制御位置)を算出し、ゲーム空間内における所定位置(例えば大砲131の位置)から制御位置への方向を発射方向として算出する。そして、発射方向へ弾132を移動させる処理を行う。このように、上記第1のゲーム例ではプレイヤはタッチパネル52上に線を描く操作を行ったが、第2のゲーム例では、タッチパネル52上の点を指定する操作を行う。なお、上記制御位置は、上記第1のゲーム例と同様の制御面を設定する(ただし、第2のゲーム例では制御面は表示されない)ことで算出することができる。すなわち、端末装置7における表示範囲に対応するように、第2仮想カメラの姿勢に応じて制御面を配置する(具体的には、制御面は、大砲131の位置を中心として、端末装置7の姿勢の変化に応じて回転移動する)ことで、タッチ位置に対応する制御面上の位置を制御位置として算出することができる。
上記第2のゲーム例によれば、ゲーム装置3は、慣性センサの出力をゲーム入力として用いることによって、端末装置7の動き(姿勢)に応じて端末用ゲーム画像の表示範囲を変化させるとともに、当該表示範囲内の位置を指定するタッチ入力をゲーム入力として用いることによって、ゲーム空間内における方向(弾132の発射方向)を特定することができる。したがって、第2のゲーム例においても第1のゲーム例と同様、プレイヤは、端末装置7に表示されたゲーム画像を動かしたり、当該ゲーム画像に対してタッチ操作を行ったりすることができるので、ゲーム画像に対して直接操作を行っているような新規な操作感覚でゲームを行うことができる。
また、第2の実施例においても第1の実施例と同様、プレイヤは、一方の手で端末装置7の姿勢を実際に調整し、もう一方の手でタッチパネル52に対してタッチ入力を行うことによって、空間内で実際に方向を入力しているような直感的な操作で容易に方向を指示することができる。さらに、プレイヤは、端末装置7の姿勢の操作とタッチパネル52に対する入力操作とを同時に並行して行うことができるので、3次元空間における方向を指示する操作を迅速に行うことができる。
なお、第2のゲーム例において、テレビ2に表示される画像は端末装置7と同じ視点からの画像であってもよいが、図25では、ゲーム装置3は別視点からの画像を表示させるようにしている。すなわち、端末用ゲーム画像を生成するための第2仮想カメラは大砲131の位置に設定されるのに対して、テレビ用ゲーム画像を生成するための第1仮想カメラは大砲131の後方の位置に設定される。ここで、例えば、端末装置7の画面には見えない範囲をテレビ2に表示させるようにすることによって、端末装置7の画面では見えない標的133をプレイヤがテレビ2の画面を見て狙うような遊び方を実現することができる。このように、テレビ2と端末装置7との表示範囲を異なるようにすることで、ゲーム空間内の様子をより把握しやすくするだけでなく、ゲームの興趣性をより向上することも可能である。
以上のように、本実施形態によれば、タッチパネル52と慣性センサを備える端末装置7を操作装置として用いることができるので、上記第1および第2のゲーム例のような、ゲーム画像に対して直接操作を行うような操作感覚のゲームを実現することができる。
(第3のゲーム例)
以下、図26および図27を参照して、第3のゲーム例について説明する。第3のゲーム例は、2人のプレイヤが対戦する形式の野球ゲームである。すなわち、第1プレイヤは、コントローラ5を用いて打者を操作し、第2プレイヤは端末装置7を用いて投手を操作する。また、テレビ2および端末装置7には各プレイヤにとってゲーム操作が行いやすいゲーム画像が表示される。
図26は、第3のゲーム例においてテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。図26に示すテレビ用ゲーム画像は、主に第1プレイヤのための画像である。すなわち、テレビ用ゲーム画像は、第1プレイヤの操作対象である打者(打者オブジェクト)141の側から、第2プレイヤの操作対象である投手(投手オブジェクト)142の方を見たゲーム空間を表す。テレビ用ゲーム画像を生成するための第1仮想カメラは、打者141の後方の位置に、打者141から投手142の方へ向くように配置される。
一方、図27は、第3のゲーム例において端末装置7に表示される端末用ゲーム画像の一例を示す図である。図27に示す端末用ゲーム画像は、主に第2プレイヤのための画像である。すなわち、端末用ゲーム画像は、第2プレイヤの操作対象である投手142の側から、第1プレイヤの操作対象である打者141の方を見たゲーム空間を表す。具体的には、上記ステップS27において、CPU10は、端末用ゲーム画像を生成するために用いる第2仮想カメラを端末装置7の姿勢に基づいて制御する。第2仮想カメラの姿勢は、上述した第2のゲーム例と同様、端末装置7の姿勢と対応するように算出される。また、第2仮想カメラの位置は、予め定められた所定位置に固定される。なお、端末用ゲーム画像には、投手142がボールを投げる方向を示すためのカーソル143が含まれる。
なお、第1プレイヤによる打者141の操作方法、および、第2プレイヤによる投手142の操作方法は、どのような方法であってもよい。例えば、CPU10は、コントローラ5の慣性センサの出力データに基づいてコントローラ5に対する振り操作を検出し、振り操作に応じて打者141にバットを振る動作を行わせるようにしてもよい。また例えば、CPU10は、アナログスティック53に対する操作に従ってカーソル143を移動させ、操作ボタン54のうちの所定のボタンが押下された場合、カーソル143が指し示す位置に向かってボールを投げる動作を投手142に行わせてもよい。また、カーソル143は、アナログスティック53に対する操作に代えて、端末装置7の姿勢に応じて移動されてもよい。
以上のように、第3のゲーム例においては、テレビ2および端末装置7に互いに異なる視点でゲーム画像を生成することによって、各プレイヤにとって見やすく操作しやすいゲーム画像が提供される。
また、第3のゲーム例においては、単一のゲーム空間に2つの仮想カメラが設定され、ゲーム空間を各仮想カメラから見た2種類のゲーム画像がそれぞれ表示される(図26および図27)。したがって、第3のゲーム例において生成される2種類のゲーム画像に関しては、ゲーム空間に対するゲーム処理(ゲーム空間内のオブジェクトの制御等)はほとんどが共通であって、共通のゲーム空間に関して描画処理を2回行なうだけでそれぞれのゲーム画像が生成できるので、当該ゲーム処理をそれぞれ行う場合に比べると処理効率が高いという利点がある。
また、第3のゲーム例においては、投球方向を表すカーソル143は端末装置7側にのみ表示されるので、第1プレイヤはカーソル143が指し示す位置を見ることができない。そのため、第1プレイヤに投球方向が知られて第2プレイヤが不利になるといったゲーム上の不都合が生じない。このように、本実施形態においては、一方のプレイヤがそのゲーム画像を見てしまうと他方のプレイヤにとってゲーム上の不都合が生じる場合には、当該ゲーム画像を端末装置7に表示すればよい。これによって、ゲームの戦略性が低下する等の不都合を防止することができる。なお、他の実施形態において、ゲームの内容によっては(例えば、端末用ゲーム画像が第1プレイヤに見られても上記のような不都合が生じない場合には)、ゲーム装置3は、端末用ゲーム画像をテレビ用ゲーム画像とともにテレビ2に表示するようにしてもよい。
(第4のゲーム例)
以下、図28および図29を参照して、第4のゲーム例について説明する。第4のゲーム例は、2人のプレイヤが協力する形式のシューティングゲームである。すなわち、第1プレイヤは、コントローラ5を用いて飛行機を移動させる操作を行い、第2プレイヤは、端末装置7を用いて飛行機の大砲の発射方向を制御する操作を行う。第4のゲーム例においても第3のゲーム例と同様、テレビ2および端末装置7には各プレイヤにとってゲーム操作が行いやすいゲーム画像が表示される。
図28は、第4のゲーム例においてテレビ2に表示されるテレビ用ゲーム画像の一例を示す図である。また、図29は、第4のゲーム例において端末装置7に表示される端末用ゲーム画像の一例を示す図である。図28に示すように、第4のゲーム例では、仮想のゲーム空間に飛行機(飛行機オブジェクト)151と標的(風船オブジェクト)153とが登場する。また、飛行機151は大砲(大砲オブジェクト)152を有している。
図28に示すように、テレビ用ゲーム画像としては、飛行機151を含むゲーム空間の画像が表示される。テレビ用ゲーム画像を生成するための第1仮想カメラは、飛行機151を後方から見たゲーム空間の画像を生成するように設定される。すなわち、第1仮想カメラは、飛行機151の後方の位置に、飛行機151が撮影範囲(視野範囲)に含まれる姿勢で配置される。また、第1仮想カメラは、飛行機151の移動に伴って移動するように制御される。つまり、CPU10は、上記ステップS27の処理において、コントローラ操作データに基づいて飛行機151の移動を制御するとともに、第1仮想カメラの位置および姿勢を制御する。このように、第1仮想カメラの位置および姿勢は、第1プレイヤの操作に応じて制御される。
一方、図29に示すように、端末用ゲーム画像としては、飛行機151(より具体的には大砲152)から見たゲーム空間の画像が表示される。したがって、端末用ゲーム画像を生成するための第2仮想カメラは、飛行機151の位置(より具体的には大砲152の位置)に配置される。CPU10は、上記ステップS27の処理において、コントローラ操作データに基づいて飛行機151の移動を制御するとともに、第2仮想カメラの位置を制御する。なお、第2仮想カメラは、飛行機151あるいは大砲152の周辺の位置(例えば、大砲152のやや後方の位置)に配置されてもよい。以上のように、第2仮想カメラの位置は、(飛行機151の移動を操作する)第1プレイヤの操作によって制御されることになる。したがって、第4のゲーム例においては、第1仮想カメラと第2仮想カメラは連動して移動する。
また、端末用ゲーム画像としては、大砲152の発射方向の向きに見たゲーム空間の画像が表示される。ここで、大砲152の発射方向は、端末装置7の姿勢に対応するように制御される。つまり、本実施形態においては、第2仮想カメラの姿勢は、第2仮想カメラの視線方向が大砲152の発射方向と一致するように制御される。CPU10は、上記ステップS27の処理において、上記ステップS24で算出される端末装置7の姿勢に応じて、大砲152の向きおよび第2仮想カメラの姿勢を制御する。このように、第2仮想カメラの姿勢は、第2プレイヤの操作によって制御される。また、第2プレイヤは、端末装置7の姿勢を変化させることによって、大砲152の発射方向を変化させることができる。
なお、大砲152から弾を発射する場合、第2プレイヤは、端末装置7の所定のボタンを押下する。所定のボタンが押下されると、大砲152の向きに弾が発射される。端末用ゲーム画像においては、LCD51の画面中央に照準154が表示され、照準154が指し示す方向へ弾が発射される。
以上のように、第4のゲーム例においては、第1プレイヤは、飛行機151の進行方向の方を見たゲーム空間を表すテレビ用ゲーム画像(図28)を主に見ながら、(例えば所望の標的153の方向へ移動するように)飛行機151を操作する。一方、第2プレイヤは、大砲152の発射方向の方を見たゲーム空間を表す端末用ゲーム画像(図29)を主に見ながら、大砲152を操作する。このように、第4のゲーム例においては、2人のプレイが協力する形式のゲームにおいて、それぞれのプレイヤにとって見やすく操作しやすいゲーム画像を、テレビ2と端末装置7とにそれぞれ表示することができる。
また、第4のゲーム例においては、第1プレイヤの操作によって第1仮想カメラおよび第2仮想カメラの位置が制御され、第2プレイヤの操作によって第2仮想カメラの姿勢が制御される。つまり、本実施形態においては、各プレイヤのそれぞれのゲーム操作に応じて仮想カメラの位置または姿勢が変化する結果、各表示装置に表示されるゲーム空間の表示範囲が変化する。表示装置に表示されるゲーム空間の表示範囲が各プレイヤの操作に応じて変化するので、各プレイヤは、自己のゲーム操作がゲーム進行に十分に反映されていることを実感することができ、ゲームを十分に楽しむことができる。
なお、第4のゲーム例においては、飛行機151の後方から見たゲーム画像がテレビ2に表示され、飛行機151の大砲の位置から見たゲーム画像が端末装置7に表示された。ここで、他のゲーム例においては、ゲーム装置3は、飛行機151の後方から見たゲーム画像を端末装置7に表示させ、飛行機151の大砲152の位置から見たゲーム画像がテレビ2に表示させるようにしてもよい。このとき、各プレイヤの役割は上記第4のゲーム例と入れ替わり、第1プレイヤがコントローラ5を用いて大砲152の操作を行い、第2プレイヤが端末装置7を用いて飛行機151の操作を行うようにするとよい。
(第5のゲーム例)
以下、図30を参照して、第5のゲーム例について説明する。第5のゲーム例は、プレイヤがコントローラ5を用いて操作を行うゲームであり、端末装置7は操作装置ではなく表示装置として用いられる。具体的には、第5のゲーム例はゴルフゲームであり、プレイヤがコントローラ5をゴルフクラブのように振る操作(スイング操作)に応じて、ゲーム装置3は仮想のゲーム空間におけるプレイヤキャラクタにゴルフのスイング動作を行わせる。
図30は、第5のゲーム例におけるゲームシステム1の使用の様子を示す図である。図30において、テレビ2の画面には、プレイヤキャラクタ(のオブジェクト)161およびゴルフクラブ(のオブジェクト)162を含むゲーム空間の画像が表示される。なお、図30では、ゴルフクラブ162に隠れているので表示されていないが、ゲーム空間に配置されたボール(のオブジェクト)163もテレビ2に表示される。一方、図30に示すように、端末装置7は、LCD51の画面が鉛直上向きとなるように、テレビ2の前方正面の床面に配置される。端末装置7には、ボール163を表す画像と、ゴルフクラブ162の一部(具体的には、ゴルフクラブのヘッド162a)を表す画像と、ゲーム空間の地面を表す画像とが表示される。端末用ゲーム画像は、ボールの周囲を上から見た画像である。
ゲームを行う際、プレイヤ160は、端末装置7の近傍に立ち、コントローラ5をゴルフクラブのように振るスイング操作を行う。このとき、CPU10は、上記ステップS27において、上記ステップS23の処理で算出されるコントローラ5の姿勢に応じてゲーム空間におけるゴルフクラブ162の位置および姿勢を制御する。具体的には、ゴルフクラブ162は、コントローラ5の先端方向(図3に示すZ軸正方向)がLCD51に表示されるボール163の画像を向く場合に、ゲーム空間内のゴルフクラブ162がボール163に当たるように、制御される。
また、コントローラ5の先端方向がLCD51の方へ向く場合には、ゴルフクラブ162の一部を表す画像(ヘッド画像)164がLCD51に表示される(図30参照)。なお、端末用ゲーム画像に関しては、現実感を増すために、ボール163の画像が実物大で表示されてもよいし、コントローラ5のZ軸回りの回転に応じてヘッド画像164の向きが回転するように表示されてもよい。また、端末用ゲーム画像は、ゲーム空間に設置される仮想カメラを用いて生成されてもよいし、予め用意された画像データを用いて生成されてもよい。予め用意された画像データを用いて生成する場合には、ゴルフコースの地形モデルを詳細に構築することなく、詳細でリアルな画像を小さい処理負荷で生成することができる。
プレイヤ160が上記スイング操作を行うことによってゴルフクラブ162が振られた結果、ゴルフクラブ162がボール163に当たると、ボール163が移動する(飛んでいく)。すなわち、CPU10は、上記ステップS27においてゴルフクラブ162とボール163とが接触したか否かを判定し、接触した場合にはボール163を移動させる。ここで、テレビ用ゲーム画像は、移動後のボール163が含まれるように生成される。すなわち、CPU10は、テレビ用ゲーム画像を生成するための第1仮想カメラは、移動するボールがその撮影範囲に含まれるように位置および姿勢が制御される。一方、端末装置7においては、ゴルフクラブ162がボール163に当たると、ボール163の画像が移動されてすぐに画面外に消える。したがって、第5のゲーム例においては、ボールが移動する様子は主にテレビ2に表示され、プレイヤ160は、スイング操作によって飛んでいったボールの行方をテレビ用ゲーム画像で確認することができる。
以上のように、第5のゲーム例においては、プレイヤ160は、コントローラ5を振ることでゴルフクラブ162を振る(プレイヤキャラクタ161にゴルフクラブ162を振らせる)ことができる。ここで、第5のゲーム例においては、コントローラ5の先端方向がLCD51に表示されるボール163の画像を向く場合に、ゲーム空間内のゴルフクラブ162がボール163に当たるように制御される。したがって、プレイヤは、スイング操作によって実際のゴルフクラブを打っているかのような感覚を得ることができ、スイング操作をより現実感のあるものにすることができる。
第5のゲーム例においてはさらに、コントローラ5の先端方向が端末装置7の方を向く場合にはヘッド画像164がLCD51に表示される。したがって、プレイヤは、コントローラ5の先端方向を端末装置7の方へ向けることによって、仮想空間におけるゴルフクラブ162の姿勢が現実空間におけるコントローラ5の姿勢と対応している感覚を得ることができ、スイング操作をより現実感のあるものにすることができる。
以上のように、第5のゲーム例は、端末装置7を表示装置として利用する場合には、端末装置7を適切な位置に配置することによって、コントローラ5を用いた操作をより現実感のあるものにすることができる。
また、上記第5のゲーム例においては、端末装置7は床面に配置され、端末装置7にはボール163の周辺のみのゲーム空間を表す画像が表示される。そのため、ゲーム空間におけるゴルフクラブ162全体の位置・姿勢を端末装置7では表示することはできず、また、スイング操作後においてボール163が移動する様子を端末装置7では表示することはできない。そこで、第5のゲーム例では、ボール163の移動前においてはゴルフクラブ162の全体がテレビ2に表示され、ボール163の移動後においてはボール163が移動する様子がテレビ2に表示される。このように、第5のゲーム例によれば、現実感のある操作をプレイヤに提供することができるとともに、テレビ2および端末装置7の2つの画面を用いることで見やすいゲーム画像をプレイヤに対して提示することができる。
また、上記第5のゲーム例においては、コントローラ5の姿勢を算出するために、端末装置7のマーカ部55が用いられる。すなわち、CPU10は、上記ステップS1の初期処理においてマーカ部55を点灯させ(マーカ装置6は点灯させない)、CPU10は、上記ステップS23においてマーカ座標データ96に基づいてコントローラ5の姿勢を算出する。これによれば、コントローラ5の先端方向がマーカ部55の方を向く姿勢か否かを正確に判定することができる。なお、上記第5のゲーム例では、上記ステップS21およびS22は実行されなくてもよいが、他のゲーム例においては、上記ステップS21およびS22の処理を実行することによって、点灯すべきマーカをゲームの途中で変更するようにしてもよい。例えば、CPU10は、ステップS21において、第1加速度データ94に基づいてコントローラ5の先端方向が重力方向を向くか否かを判定し、ステップS22において、重力方向を向く場合にはマーカ部55を点灯させ、重力方向を向かない場合にはマーカ装置6を点灯させるように制御してもよい。これによれば、コントローラ5の先端方向が重力方向を向く場合には、マーカ部55のマーカ座標データを取得することで、コントローラ5の姿勢を精度良く算出することができるとともに、コントローラ5の先端方向がテレビ2の方を向く場合には、マーカ装置6のマーカ座標データを取得することで、コントローラ5の姿勢を精度良く算出することができる。
上記第5のゲーム例で説明したように、ゲームシステム1は、端末装置7を自由な位置に設置して表示装置として利用することができる。これによれば、マーカ座標データをゲーム入力として用いる場合において、コントローラ5をテレビ2の方へ向けて使用する他、端末装置7を所望の位置に設定することによってコントローラ5を自由な方向に向けて使用することができる。すなわち、本実施形態によれば、コントローラ5を使用できる向きが制限されることないので、コントローラ5の操作の自由度を向上することができる。
[7.ゲームシステムの他の動作例]
上記ゲームシステム1は、上記で説明したように種々のゲームを行うための動作を行うことが可能である。端末装置7は、可搬形のディスプレイや第2のディスプレイとしても使用することができる一方で、タッチ入力や動きによる入力を行うコントローラとしても使用することができ、上記ゲームシステム1によれば、幅広いゲームを実施することが可能となる。また、ゲーム以外の用途も含め、以下のような動作を行うことも可能である。
(プレイヤが端末装置7のみを用いてゲームをプレイする動作例)
本実施形態において、端末装置7は、表示装置として機能するとともに、操作装置としても機能するものである。そのため、テレビ2およびコントローラ5を使用せずに端末装置7を表示手段および操作手段として使用することによって、端末装置7を携帯型のゲーム装置のように使用することも可能である。
図22に示したゲーム処理に即して具体的に説明すると、CPU10は、ステップS3において端末装置7から端末操作データ97を取得し、ステップS4において端末操作データ97のみをゲーム入力として用いて(コントローラ操作データを用いずに)ゲーム処理を実行する。そして、ステップS6においてゲーム画像を生成し、ステップS10においてゲーム画像を端末装置7へ送信する。なお、このとき、ステップS2、S5、およびS9は実行されなくてもよい。以上によれば、端末装置7に対する操作に応じてゲーム処理が行われ、ゲーム処理結果を表すゲーム画像が端末装置7に表示されることとなる。このようにすれば、(実際にはゲーム処理はゲーム装置で実行されるが、)端末装置7を携帯型のゲーム装置として利用することも可能である。したがって、本実施形態によれば、テレビ2が使用中である(例えば、他の人がテレビ放送を視聴中である)等の理由でテレビ2にゲーム画像を表示できない場合でも、ユーザは端末装置7を用いてゲームを行うことができる。
なお、CPU10は、ゲーム画像に限らず、電源投入後に表示される上述のメニュー画面についても画像を端末装置7へ送信して表示させるようにしてもよい。これによれば、プレイヤは最初からテレビ2を使用せずにゲームを行うことができるので、便利である。
さらに、上記において、ゲーム画像を表示する表示装置を端末装置7からテレビ2へとゲーム中に変更することも可能である。具体的には、CPU10は、上記ステップS9をさらに実行し、ゲーム画像をテレビ2へ出力するようにすればよい。なお、ステップS9でテレビ2へ出力される画像は、ステップS10で端末装置7へ送信されるゲーム画像と同じである。これによれば、ゲーム装置3からの入力を表示させるようにテレビ2の入力を切り替えることで、端末装置7と同一のゲーム画像がテレビ2に表示されることとなるので、ゲーム画像を表示する表示装置をテレビ2に変更することができる。なお、テレビ2にゲーム画像が表示された後は、端末装置7の画面表示がオフにされてもよい。
なお、ゲームシステム1においては、テレビ2に対する赤外線リモコン信号を赤外線出力手段(マーカ装置6、マーカ部55、あるいは赤外線通信モジュール82)から出力可能であるようにしてもよい。これによれば、ゲーム装置3は、端末装置7に対する操作に応じて上記赤外線リモコン信号を赤外線出力手段から出力させることによって、テレビ2に対する操作を行うことができる。この場合、ユーザはテレビ2のリモコンを操作することなく、端末装置7を用いてテレビ2を操作することができるので、上記のようにテレビ2の入力を切り替える場合等において便利である。
(ネットワークを介して他の装置と通信を行う動作例)
上述のように、ゲーム装置3はネットワークに接続する機能を有しているので、ゲームシステム1は、ネットワークを介して外部装置と通信を行う場合にも利用することができる。図31は、ネットワークを介して外部装置と接続される場合におけるゲームシステム1に含まれる各装置の接続関係を示す図である。図31に示すように、ゲーム装置3は、外部装置191とネットワーク190を介して通信可能である。
上記のように外部装置191とゲーム装置3とが通信可能である場合、ゲームシステム1においては端末装置7をインターフェースとして外部装置191との間で通信を行うことができる。例えば、外部装置191と端末装置7との間で画像および音声を送受信することによって、ゲームシステム1をテレビ電話として使用することができる。具体的には、ゲーム装置3は、外部装置191からの画像および音声(電話相手の画像および音声)をネットワーク190を介して受信し、受信した画像および音声を端末装置7に送信する。これによって、端末装置7は、外部装置191からの画像をLCD51に表示するとともに、外部装置191からの音声をスピーカ77から出力する。また、ゲーム装置3は、カメラ56で撮像されたカメラ画像と、マイク79で検知されたマイク音声とを端末装置7から受信し、カメラ画像およびマイク音声をネットワーク190を介して外部装置191へ送信する。ゲーム装置3は、上記の画像および音声の送受信を外部装置191との間で繰り返すことによって、ゲームシステム1をテレビ電話として使用することができる。
なお、本実施形態においては端末装置7は可搬型であるので、ユーザは、端末装置7を自由な位置で使用したり、カメラ56を自由な方向に向けたりすることができる。また、本実施形態においては端末装置7はタッチパネル52を備えているので、ゲーム装置3は、タッチパネル52に対する入力情報(タッチ位置データ100)を外部装置191へ送信することも可能である。例えば、外部装置191からの画像および音声を端末装置7で出力するとともに、ユーザがタッチパネル52上に書いた文字等を外部装置191へ送信する場合には、いわゆるeラーニングシステムとしてゲームシステム1を使用することも可能である。
(テレビ放送と連動した動作例)
また、ゲームシステム1は、テレビ2でテレビ放送が視聴されている場合に、テレビ放送と連動して動作することも可能である。すなわち、ゲームシステム1は、テレビ2でテレビ番組が視聴されている場合に、そのテレビ番組に関する情報等を端末装置7に出力させる。以下、ゲームシステム1がテレビ放送と連動して動作する場合の動作例を説明する。
上記動作例においては、ゲーム装置3は、ネットワークを介してサーバと通信可能である(換言すれば、図31に示す外部装置191がサーバである。)。サーバは、テレビ放送に関連する種々の情報(テレビ情報)をテレビ放送のチャンネル毎に記憶している。このテレビ情報は、字幕や出演者情報等の番組に関する情報でもよいし、EPG(電子番組表)の情報や、データ放送として放送される情報でもよい。また、テレビ情報は、画像や、音声や、文字や、これらの組み合わせの情報であってもよい。また、サーバは1つである必要はなく、テレビ放送のチャンネル毎、あるいは番組毎にサーバが設置され、ゲーム装置3は各サーバと通信可能であってもよい。
テレビ2においてテレビ放送の映像・音声が出力されている場合において、ゲーム装置3は、視聴中のテレビ放送のチャンネルを端末装置7を用いてユーザに入力させる。そして、入力されたチャンネルに対応するテレビ情報を送信するように、ネットワークを介してサーバに要求する。これに応じて、サーバは上記チャンネルに対応するテレビ情報のデータを送信する。サーバから送信されてくるデータ受信すると、ゲーム装置3は、受信したデータを端末装置7へ出力する。端末装置7は、上記データのうち画像および文字のデータをLCD51に表示し、音声のデータをスピーカから出力する。以上によって、ユーザは、現在視聴中のテレビ番組に関する情報等を端末装置7を用いて享受することができる。
上記のように、ゲームシステム1は、ネットワークを介して外部装置(サーバ)と通信を行うことによって、テレビ放送と連動した情報を端末装置7によってユーザに提供することも可能である。特に、本実施形態では端末装置7は可搬型であるので、ユーザは自由な位置で端末装置7を使用することができ、利便性が高い。
以上のように、本実施形態においては、ユーザは、ゲームに使用する他にも、種々の用途・形態で端末装置7を使用することができる。
[8.変形例]
上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
(複数の端末装置を有する変形例)
上記実施形態においては、ゲームシステム1は端末装置を1つのみ有する構成であったが、ゲームシステム1は複数の端末装置を有する構成であってもよい。すなわち、ゲーム装置3は、複数の端末装置とそれぞれ無線通信可能であり、ゲーム画像のデータとゲーム音声のデータと制御データとを各端末装置へ送信し、操作データとカメラ画像データとマイク音データとを各端末装置から受信するものであってもよい。なお、ゲーム装置3は、複数の端末装置のそれぞれと無線通信を行うが、このとき、ゲーム装置3は、各端末装置との無線通信を時分割で行ってもよいし、周波数帯域を分割して行ってもよい。
上記のように複数の端末装置を有する場合には、ゲームシステムを用いてより多くの種類のゲームを行うことができる。例えば、ゲームシステム1が2つの端末装置を有する場合には、ゲームシステム1は3つの表示装置を有することになるので、3人のプレイヤのそれぞれのためのゲーム画像を生成し、各表示装置に表示させることができる。また、ゲームシステム1が2つの端末装置を有する場合には、コントローラと端末装置とを1組として用いるゲーム(例えば上記第5のゲーム例)において、2人のプレイヤが同時にゲームを行うことができる。さらに、2つのコントローラから出力されるマーカ座標データに基づいて上記ステップS27のゲーム処理が行われる場合には、コントローラをマーカ(マーカ装置6またはマーカ部55)に向けて行うゲーム操作を2人のプレイヤがそれぞれ行うことができる。すなわち、一方のプレイヤは、マーカ装置6の方へコントローラを向けてゲーム操作を行い、他方のプレイヤは、マーカ部55の方へコントローラを向けてゲーム操作を行うことができる。
(端末装置の機能に関する変形例)
上記実施形態においては、端末装置7は、ゲーム処理を実行しない、いわゆるシンクライアント端末として機能するものであった。ここで、他の実施形態においては、上記実施形態においてゲーム装置3によって実行される一連のゲーム処理のうち、一部の処理は端末装置7等の他の装置によって実行されてもよい。例えば、一部の処理(例えば、端末用ゲーム画像の生成処理)を端末装置7が実行するようにしてもよい。つまり、端末装置は、操作部に対する操作に基づいてゲーム処理を行い、ゲーム処理に基づいてゲーム画像を生成して表示部に表示させる、携帯型のゲーム装置として機能するものであってもよい。また例えば、互いに通信可能な複数の情報処理装置(ゲーム装置)を有するゲームシステムにおいて、当該複数の情報処理装置がゲーム処理を分担して実行するようにしてもよい。
(端末装置の構成に関する変形例)
上記実施形態における端末装置は一例であり、端末装置の各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。例えば、端末装置は、以下に示す構成であってもよい。以下、図32〜図35を参照して、端末装置の変形例について説明する。
図32は、上記実施形態の変形例に係る端末装置の外観構成を示す図である。図32における(a)図は端末装置の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。また、図33は、図32に示す端末装置をユーザが把持した様子を示す図である。なお、図32および図33において、上記実施形態における端末装置7の構成要素に対応する構成要素については図8と同じ参照符号を付しているが、同一の物で構成される必要はない。
図32に示されるように、端末装置8は、大略的には横長の長方形の板状形状であるハウジング50を備える。ハウジング50は、ユーザが把持することができる程度の大きさである。したがって、ユーザは、端末装置8を持って動かしたり、端末装置8の配置位置を変更したりすることができる。
端末装置8は、ハウジング50の表面にLCD51を有する。LCD51は、ハウジング50の表面の中央付近に設けられる。したがって、ユーザは、図9に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置を持って動かすことができる。なお、図9ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置8を横持ちで(横に長い向きにして)持つ例を示しているが、端末装置8を縦持ちで(縦に長い向きにして)持つことも可能である。
図32の(a)図に示すように、端末装置8は、操作手段(操作部)として、LCD51の画面上にタッチパネル52を有する。本変形例では、タッチパネル52は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。また、タッチパネル52はシングルタッチ方式でもよいし、マルチタッチ方式であってもよい。本変形例では、タッチパネル52として、LCD51の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル52の解像度とLCD51の解像度が一致している必要はない。タッチパネル52に対する入力は通常タッチペンを用いて行われるが、タッチペンに限らずユーザの指でタッチパネル52に対する入力をすることも可能である。なお、ハウジング50には、タッチパネル52に対する操作を行うために用いられるタッチペンを収納するための収納穴が設けられていてもよい。このように、端末装置8はタッチパネル52を備えるので、ユーザは、端末装置8を動かしながらタッチパネル52を操作することができる。つまりユーザは、LCD51の画面を動かしつつ、その画面に対して直接(タッチパネル52によって)入力を行うことができる。
図32に示すように、端末装置8は、操作手段(操作部)として、2つのアナログスティック53Aおよび53Bと、複数のボタン54A〜54Lとを備えている。各アナログスティック53Aおよび53Bは、方向を指示するデバイスである。各アナログスティック53Aおよび53Bは、ユーザの指で操作されるスティック部がハウジング50の表面に対して任意の方向(上下左右および斜め方向の任意の角度)にスライドまたは傾倒することができるように構成されている。また、左アナログスティック53AはLCD51の画面の左側に、右アナログスティック53BはLCD51の画面の右側にそれぞれ設けられる。したがって、ユーザは、左右いずれの手でもアナログスティックを用いて方向を指示する入力を行うことができる。また、図33に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置8の左右部分を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置8を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。
各ボタン54A〜54Lは、所定の入力を行うための操作手段である。以下に示すように、各ボタン54A〜54Lは、ユーザが端末装置8の左右部分を把持した状態で操作可能な位置に設けられる(図33参照)。したがって、ユーザは、端末装置8を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
図32の(a)図に示すように、ハウジング50の表面には、各操作ボタン54A〜54Lのうち、十字ボタン(方向入力ボタン)54Aと、ボタン54B〜54Hとが設けられる。つまり、これらのボタン54A〜54Gは、ユーザの親指で操作可能な位置に配置されている(図33参照)。
十字ボタン54Aは、LCD51の左側であって、左アナログスティック53Aの下側に設けられる。つまり、十字ボタン54Aはユーザの左手で操作可能な位置に配置されている。十字ボタン54Aは、十字の形状を有しており、上下左右の方向を指示することが可能なボタンである。また、ボタン54B〜54Dは、LCD51の下側に設けられる。これら3つのボタン54B〜54Dは、左右両方の手で操作可能な位置に配置されている。また、4つのボタン54E〜54Hは、LCD51の右側であって、右アナログスティック53Bの下側に設けられる。つまり、4つのボタン54E〜54Hはユーザの右手で操作可能な位置に配置されている。さらに、4つのボタン54E〜54Hは、(4つのボタン54E〜54Hの中心位置に対して)上下左右の位置関係となるように配置されている。したがって、端末装置8は、ユーザに上下左右の方向を指示させるためのボタンとして4つのボタン54E〜54Hを機能させることも可能である。
また、図32の(a)図、(b)図、および(c)図に示すように、第1Lボタン54Iおよび第1Rボタン54Jは、ハウジング50の斜め上部分(左上部分および右上部分)に設けられる。具体的には、第1Lボタン54Iは、板状のハウジング50における上側の側面の左端に設けられ、上側および左側の側面から露出している。また、第1Rボタン54Jは、ハウジング50における上側の側面の右端に設けられ、上側および右側の側面から露出している。このように、第1Lボタン54Iは、ユーザの左手人差し指で操作可能な位置に配置され、第1Rボタン54Jは、ユーザの右手人差し指で操作可能な位置に配置される(図9参照)。
また、図32の(b)図および(c)図に示すように、第2Lボタン54Kおよび第2Rボタン54Lは、板状のハウジング50の裏面(すなわちLCD51が設けられる表面の反対側の面)に突起して設けられる足部59Aおよび59Bに配置される。上記実施形態の庇部59と同様、各足部59Aおよび59Bは、表示部の左右にそれぞれ設けられる操作部(各アナログスティック53Aおよび53B)の反対側の位置を含む領域に設けられる。また、第2Lボタン54Kは、ハウジング50の裏面の左側(表面側から見たときの左側)のやや上方に設けられ、第2Rボタン54Lは、ハウジング50の裏面の右側(表面側から見たときの右側)のやや上方に設けられる。換言すれば、第2Lボタン54Kは、表面に設けられる左アナログスティック53Aの概ね反対側の位置に設けられ、第2Rボタン54Lは、表面に設けられる右アナログスティック53Bの概ね反対側の位置に設けられる。このように、第2Lボタン54Kは、ユーザの左手中指で操作可能な位置に配置され、第2Rボタン54Lは、ユーザの右手中指で操作可能な位置に配置される(図9参照)。また、第2Lボタン54Kおよび第2Rボタン54Lは、図32の(c)図に示すように、上記足部59Aおよび59Bの斜め上方を向く面に設けられ、斜め上方を向くボタン面を有する。ユーザが端末装置8を把持した場合には中指は上下方向に動くと考えられるので、ボタン面を上方に向けることで、ユーザは第2Lボタン54Kおよび第2Rボタン54Lを押下しやすくなる。また、ハウジング50の裏面に足部が設けられることにより、ユーザはハウジング50を把持しやすくなり、かつ、足部にボタンが設けられることで、ハウジング50を把持したまま操作しやすくなる。
なお、図32に示す端末装置8に関しては、第2Lボタン54Kおよび第2Rボタン54Lが裏面に設けられるので、LCD51の画面(ハウジング50の表面)が上を向いた状態で端末装置8を載置させる場合、画面が完全に水平にはならない場合がある。そのため、他の実施形態においては、ハウジング50の裏面に3つ以上の足部が形成されてもよい。これによれば、LCD51の画面が上を向いた状態では足部が床面に接することで床面に載置できるので、画面が水平になるように端末装置8を載置することができる。また、着脱可能な足部を追加することで端末装置8を水平に載置するようにしてもよい。
各ボタン54A〜54Lには、ゲームプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン54Aおよびボタン54E〜54Hは方向指示操作や選択操作等に用いられてもよいし、各ボタン54B〜54Eは決定操作やキャンセル操作等に用いられてもよい。
なお、図示しないが、端末装置8は、端末装置8の電源をオン/オフするための電源ボタンを有している。また、端末装置8は、LCD51の画面表示をオン/オフするためのボタンや、ゲーム装置3との接続設定(ペアリング)を行うためのボタンや、スピーカ(図10に示すスピーカ77)の音量を調節するためのボタンを有していてもよい。
図32の(a)図に示すように、端末装置8は、マーカ55Aおよびマーカ55Bからなるマーカ部(図10に示すマーカ部55)をハウジング50の表面に備えている。マーカ部55は、LCD51の上側に設けられる。各マーカ55Aおよびマーカ55Bは、マーカ装置6の各マーカ6Rおよび6Lと同様、1以上の赤外LEDで構成される。マーカ部55は、上述のマーカ装置6と同様、コントローラ5の動き等をゲーム装置3が算出するために用いられる。また、ゲーム装置3はマーカ部55が備える各赤外LEDの点灯を制御することが可能である。
端末装置8は、撮像手段であるカメラ56を備えている。カメラ56は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。図32に示すように、本変形例では、カメラ56はハウジング50の表面に設けられる。したがって、カメラ56は、端末装置8を持っているユーザの顔を撮像することができ、例えばLCD51を見ながらゲームを行っている時のユーザを撮像することができる。
なお、端末装置8は、音声入力手段であるマイク(図10に示すマイク79)を備えている。ハウジング50の表面には、マイクロフォン用孔50cが設けられる。マイク79はこのマイクロフォン用孔50cの奥のハウジング50内部に設けられる。マイクは、ユーザの音声等、端末装置8の周囲の音を検出する。
端末装置8は、音声出力手段であるスピーカ(図10に示すスピーカ77)を備えている。図32の(d)図に示すように、ハウジング50の下側側面にはスピーカ孔57が設けられる。スピーカ77の出力音はこのスピーカ孔57から出力される。本変形例では、端末装置8は2つのスピーカを備えており、左スピーカおよび右スピーカのそれぞれの位置にスピーカ孔57が設けられる。
また、端末装置8は、他の装置を端末装置8に接続するための拡張コネクタ58を備えている。本変形例においては、図32の(d)図に示すように、拡張コネクタ58は、ハウジング50の下側側面に設けられる。なお、拡張コネクタ58に接続される他の装置はどのようなものであってもよく、例えば、特定のゲームに用いるコントローラ(銃型のコントローラ等)やキーボード等の入力装置であってもよい。他の装置を接続する必要がなければ、拡張コネクタ58は設けられていなくともよい。
なお、図32に示した端末装置8に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
以上のように、上記変形例においては、ハウジング50の裏面において左右両側の位置に設けられる2つの足部59Aおよび59Bが突起部として設けられる。この場合も上記実施形態と同様、突起部の下面を薬指または中指に掛けた状態で端末装置8を把持することによって、ユーザは楽に端末装置8を把持することができる(図33参照)。また、上記実施形態と同様、突起部の上面に第2Lボタン54Kおよび第2Rボタン54Lが設けられるので、ユーザは上記の状態でこれらのボタンを容易に操作することができる。
上記実施形態および変形例のように、突起部は、ハウジングの裏側において、ハウジングの中央よりも上側であって少なくとも左右両側の位置に突起して設けられることが好ましい。これによれば、ユーザがハウジングの左右両側を把持した場合に、突起部が指に掛かるようにすることで楽に端末装置を把持することができる。また、突起部が上側に設けられることによって、ユーザは手のひらでもハウジングを支えることができるので(図10等参照)、端末装置をしっかりと把持することができる。
なお、突起部は、ハウジングの中央よりも上側に設けられなくてもよい。例えば、表示部の左右に操作部がそれぞれ設けられる場合には、突起部は、ユーザが各操作部を両手の親指でそれぞれ操作可能なようにハウジングを把持した状態で、親指以外のいずれかの指に掛止可能な位置に設けられてもよい。これによっても、ユーザは、突起部が指に掛かるようにすることで楽に端末装置を把持することができる。
図34および図35は、上記実施形態の他の変形例に係る端末装置の外観構成を示す図である。図34は端末装置の右側面図であり、図35は下面図である。図34および図35に示す端末装置9は、凸部230aおよび230bを備える点を除いて、上記実施形態における端末装置7と同様である。以下、上記実施形態との相違点を中心に、本変形例における端末装置9の構成を説明する。
凸部230aおよび230bは、断面が凸型であり、ハウジング50の裏側において左右の両側にそれぞれ設けられる。ここでは、ハウジング50の左側(表面側から見たときの左側)に凸部230aが設けられ、ハウジング50の右側(表面側から見たときの右側)に凸部230bが設けられる。図35に示すように、各凸部230aおよび230bは、ハウジング50の左右の両辺(両端部)に設けられている。また、各凸部230aおよび230bは、突起部(庇部59)よりも下方に設けられる。各凸部230aおよび230bは、突起部との間に間隔を空けて設けられる。つまり、ハウジング50において、各凸部230aおよび230bと突起部との間の部分は、これらの各部よりも薄く構成される。各凸部230aおよび230bは、突起する部分が上下方向に延び、上下方向に垂直な断面が凸型の形状である。
本変形例においては、ユーザは、小指(および薬指)で各凸部230aおよび230bを包むように把持することで、端末装置9をよりしっかりと把持することができる。すなわち、凸部230aおよび230bは、グリップ部の機能を有する。なお、凸部(グリップ部)は、どのような形状であってもよいが、上下方向に延びるように形成されると端末装置9が持ちやすくなり、好ましい。また、各凸部230aおよび230bの高さは、どのくらいでもよいが、突起部よりも低く形成されてもよい。これによれば、LCD51の画面が上向きになるように端末装置9を載置した状態において画面の下側が上側よりも低くなるので、見やすい状態で端末装置9を載置することができる。また、各凸部230aおよび230bは突起部との間に間隔を空けて設けられるので、ユーザは突起部の下面に指を当てて端末装置9を把持することができ、凸部が当該指の邪魔になることがない。以上のように、上記変形例によれば、突起部の下方に凸部が設けられることによって、ユーザは、端末装置をよりしっかりと把持することができる。なお、他の実施形態においては、ハウジング50の裏面に上記突起部が設けられない構成としてもよく、その場合でも、凸部(グリップ部)によってユーザはハウジング50をしっかりと把持することができる。また、凸部(グリップ部)表面は、グリップ機能をさらに向上させるために滑りにくい素材を用いるようにしてもよい。凸部が無い場合でも、ハウジング裏面に滑りにくい素材を用いてもよい。
(本構成を適用する装置に関する変形例)
上記実施形態においては、据置型のゲーム装置と共に用いられる端末装置を例として説明したが、本明細書に記載の操作装置の構成は、ユーザが把持して使用する任意の装置に適用することが可能である。例えば、操作装置は、携帯ゲーム機、携帯電話、スマートフォン、および電子書籍端末等の情報端末として実現されてもよい。