[1.ゲームシステムの全体構成]
以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。図1において、ゲームシステム1は、テレビジョン受像器等に代表される据置型のディスプレイ装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4、コントローラ5、マーカ装置6、および、端末装置7を含む。ゲームシステム1は、コントローラ5および端末装置7を用いたゲーム操作に基づいてゲーム装置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では、ゲームシステム1に含まれるコントローラ5は1つとするが、ゲームシステム1は複数のコントローラ5を含んでいてもよい。つまり、ゲーム装置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とテレビ2との接続は、どのような方式で行われてもよいが、ゲーム装置3は、テレビ2を制御する制御指令を有線または無線でテレビ2へ送信するようにしてもよい。例えばHDMI(High−Definition Multimedia Interface)規格に則ったHDMIケーブルが用いられてもよい。HDMI規格では、CEC(Consumer Electronics Control)と呼ばれる機能によって、接続相手の機器を制御することが可能である。したがって、HDMIケーブルが用いられる場合のように、ゲーム装置3がテレビ2に対する制御が可能である場合には、ゲーム装置3は、適宜のタイミングでテレビ2の電源をオンにしたり、テレビ2の入力を切り替えたりすることができる。
また、ゲーム装置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が備える構成要素に対する制御指示を表すデータであり、例えばマーカ部(図11に示すマーカ部55)の点灯を制御する指示や、カメラ(図11に示すカメラ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〜図11を参照して、端末装置7の構成について説明する。図8は、端末装置7の外観構成を示す平面図である。図8における(a)図は端末装置7の正面図であり、(b)図は上面図であり、(c)図は右側面図であり、(d)図は下面図である。図9は、端末装置7の背面図である。また、図10は、ユーザが端末装置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に示すようにLCD51の両側部分のハウジング50を持つことによって、LCD51の画面を見ながら端末装置7を持って動かすことができる。なお、図10ではユーザがLCD51の左右両側の部分のハウジング50を持つことで端末装置7を横持ちで(横に長い向きにして)持つ例を示しているが、端末装置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に示すように、各アナログスティック53Aおよび53Bは、ユーザが端末装置7の左右部分(LCD51の左右両側の部分)を把持した状態で操作可能な位置に設けられるので、ユーザは、端末装置7を持って動かす場合においても各アナログスティック53Aおよび53Bを容易に操作することができる。
各ボタン54A〜54Lは、所定の入力を行うための操作手段(操作部)であり、押下可能なキーである。以下に示すように、各ボタン54A〜54Lは、ユーザが端末装置7の左右部分を把持した状態で操作可能な位置に設けられる(図10参照)。したがって、ユーザは、端末装置7を持って動かす場合においてもこれらの操作手段を容易に操作することができる。
図8の(a)図に示すように、ハウジング50の表面には、各操作ボタン54A〜54Lのうち、十字ボタン(方向入力ボタン)54Aと、ボタン54B〜54Hおよび54Mとが設けられる。つまり、これらのボタン54A〜54Hおよび54Mは、ユーザの親指で操作可能な位置に配置されている(図10参照)。
十字ボタン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に示すように、ユーザは、指を庇部59に掛けて(指の上に庇部59を乗せて)把持することによって、端末装置7が比較的大きなサイズであっても、疲れることなく安定した状態で端末装置7を把持することができる。すなわち、庇部59は、指でハウジング50を支えるための支持部材であるということができ、また、指掛部ということもできる。
また、庇部59は、ハウジング50の上下方向に関しては中央よりも上側に設けられる。庇部59は、ハウジング50の表面に設けられる操作部(各アナログスティック53Aおよび53B)の概ね反対側の位置に設けられる。つまり、突起部は、表示部の左右にそれぞれ設けられる操作部の反対側の位置を含む領域に設けられる。したがって、上記操作部を操作する場合、ユーザは、中指あるいは薬指で庇部59を支えるようにして端末装置7を把持することができる(図10参照)。これによって、端末装置7がより持ちやすくなり、上記操作部もより操作しやすくなる。また、本実施形態では、突起部は、(突起した部分が)左右に延びる庇状の形状を有するので、ユーザは、中指あるいは薬指を突起部の下面に沿わせて端末装置7を把持することができ、端末装置7がより持ちやすくなる。なお、庇部59は、(突起した部分が)左右方向に延びるように形成されればよく、図9に示すような水平方向に延びる形状に限られない。他の実施形態においては、庇部59は水平方向から若干傾いた方向に延びていてもよい。例えば、庇部59は、左右両端から中央に向かうにつれて上に(または下に)傾斜するように設けられてもよい。
なお、本実施形態においては、後述する係止穴を庇部59に設けることが理由で、ハウジングの裏面に形成される突起部として、庇状の形状をした庇部59を採用するが、突起部はどのような形状であってもよい。例えば、他の実施形態においては、ハウジング50の裏側において、2つの突起部が左右両側に設けられる(左右方向の中央には突起部が設けられない)構成であってもよい(図29参照)。また、他の実施形態においては、突起部の断面形状(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参照)。また、第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参照)。以上によって、ユーザは、少なくとも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をしっかりと把持することができる。
また、ユーザは、中指を庇部59の下面に当てて端末装置7を把持することも可能である。このとき、ユーザは、2つのボタン(第2Lボタン54Kおよび第2Rボタン54L)を人差し指で容易に操作することができる。例えば、要求されるゲーム操作が、使用するボタンが少なく、比較的単純である場合には、中指を庇部59の下面に当てて端末装置7を把持してもよい。このとき、ユーザは、2本の指(薬指および小指)でハウジング50の下側を把持することができるので、しっかりと端末装置7を把持することができる。
なお、本実施形態においては、庇部59の下面が、各アナログスティック53Aおよび53Bと、十字ボタン54Aおよび4つのボタン54E〜54Hとの間に位置するように(各アナログスティック53Aおよび53Bよりも下方で、かつ、十字ボタン54Aおよび4つのボタン54E〜54Hよりも上方に位置するように)設けられる。したがって、薬指を庇部59に当てて端末装置7を把持する場合(図10)には、各アナログスティック53Aおよび53Bを親指で操作しやすくなり、中指を庇部59に当てて端末装置7を把持する場合には、十字ボタン54Aおよび4つのボタン54E〜54Hを親指で操作しやすくなっている。つまり、上記2種類の場合のいずれにおいても、ユーザは、端末装置7をしっかりと把持した状態で方向入力操作を行うことができる。
また、上述のように、ユーザは端末装置7を縦持ちで把持することも可能である。すなわち、ユーザは端末装置7の上辺または下辺を一方の手で把持することで端末装置7を縦向きで把持することが可能である。このように、ユーザは端末装置7を片手で把持することが可能であるので、例えば、一方の手で端末装置7を把持しながら他方の手でタッチパネル52に対する入力を行うといった操作を行うことも可能である。
また、端末装置7の上辺を把持する場合、ユーザは親指以外の指を庇部59の下面に当てることで、端末装置7をしっかりと把持することができる。特に、本実施形態においては、庇部59が左右に延びて形成されているので、ユーザは端末装置7の上辺におけるどこの位置で把持しても、親指以外の指を庇部59に当てることができ、端末装置7をしっかりと把持することができる。すなわち、端末装置7を縦持ちで使う場合には、庇部59は取っ手として使うことができる。一方、端末装置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は、音声入力手段であるマイク79を備えている。ハウジング50の表面には、マイクロフォン用孔50cが設けられる。マイク79はこのマイクロフォン用孔50cの奥のハウジング50内部に設けられる。マイク79は、ユーザの音声等、端末装置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を有する。図示しない充電スタンドに充電端子66が接続された場合、充電スタンドから端末装置7へ電力が供給される。本実施形態では、充電端子66はハウジング50の下側側面に設けられる。したがって、端末装置7と付加装置とが接続される際には、拡張コネクタ58を介して情報を送受信することに加えて、一方から他方への電力供給を行うことも可能である。このように、拡張コネクタ58の周囲(左右両側)に充電端子66を設けることによって、端末装置7と付加装置とが接続される際に、情報の送受信とともに、電力供給を行うことも可能である。また、端末装置7は充電コネクタを有し、ハウジング50は充電コネクタを保護するためのカバー部61を有する。充電コネクタは、後述する充電器86に接続可能であり、充電器に充電コネクタが接続された場合、充電器86から端末装置7へ電力が供給される。本実施形態では、ハウジングの下側の側面に付加装置が接続されることを考慮して、充電コネクタ(カバー部61)はハウジング50の上画の側面に設けられるが、左右の側面や下側の側面に設けられてもよい。
図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の内部にもネジ穴を設け、付加装置をネジ止めするようにしてもよい。ネジ止めの位置は、どこであってもよいが、例えば、ハウジング50の背面に当接する付加装置の支持部と、庇部59とがネジ止めされてもよい。また、他の実施形態においては、ハウジングに設けられる係止穴は、どのような配置であってもよい。
また、端末装置7は、ハウジング50に対して着脱可能な電池蓋67を有している。電池蓋67の内側には電池(図11に示す電池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〜図11に示した端末装置7に関して、各操作ボタンやハウジング50の形状や、各構成要素の数および設置位置等は単なる一例に過ぎず、他の形状、数、および設置位置であってもよい。
次に、図11を参照して、端末装置7の内部構成について説明する。図11は、端末装置7の内部構成を示すブロック図である。図11に示すように、端末装置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には、外部電源から電力を取得可能なクレイドルを充電端子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へ出力する。
赤外線通信モジュール82は、赤外線信号を発光し、他の装置との間で赤外線通信を行う。ここでは、赤外線通信モジュール82は、例えばIrDAの規格に従った赤外線通信を行う機能と、テレビ2を制御するための赤外線信号(制御信号)を出力する機能とを備える。
コーデック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に他の装置が接続される場合には、当該他の装置から受け取ったデータが上記送信データにさらに含まれていてもよい。コーデックLSI76は、赤外線通信モジュール82による赤外線通信によって受信したデータを、必要に応じて上記送信データに含めてゲーム装置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でよい。
また、ゲーム装置3は、上記赤外線通信モジュール82の出力を制御することによって、テレビ2の動作を制御することが可能である。すなわち、ゲーム装置3は、テレビ2を制御するための制御指令に対応する赤外線信号を赤外線通信モジュール82に出力させるための指示(上記制御データ)を端末装置7へ出力する。この指示に応じて、コーデックLSI76は、上記制御指令に対応する赤外線信号を赤外線通信モジュール82に出力させる。ここで、テレビ2は赤外線信号を受光可能な赤外線受光部を備えている。赤外線通信モジュール82から出力された赤外線信号が赤外線受光部によって受光されることで、テレビ2は当該赤外線信号に応じた動作を行う。なお、ゲーム装置3からの上記指示は、赤外線信号のパターンを示すものであってもよいし、端末装置7が赤外線信号のパターンを記憶している場合には、当該パターンを示す指示であってもよい。
以上のように、端末装置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に代えて、撮像素子を備える構成としてもよい。
(ゲームシステムと外部装置との接続構成)
図12は、ゲームシステム1と外部装置との接続関係と示すブロック図である。図12に示すように、ゲームシステム1におけるゲーム装置3は、ネットワーク90を介して外部装置91と通信可能である。ネットワーク90は、インターネット等の任意の通信ネットワークである。外部装置91は、Webサーバや、ゲーム装置3と通信を行う他の端末装置(例えば、通信ゲームを行う場合における相手先のゲーム装置等)である。なお、外部装置91は1つである必要はなく、ゲーム装置3は、複数の外部装置と通信を行ってもよい。ゲーム装置3は、ネットワーク90と通信を行い、ネットワーク90を介して外部装置91からウェブページや、各種アプリケーションや、ゲームデータ等を取得する。取得され画像情報、あるいは、取得された情報に基づいて生成される画像等は、ゲーム装置3から端末装置7および/またはテレビ2へ出力される。ゲームシステム1は、2つの表示装置に各種の画像を表示することができる。
[5.ゲームシステムにおける動作の概要]
次に、ゲームシステム1において実行される動作の概要について説明する。本実施形態においては、ゲームシステム1は、ゲームプログラム(ゲームアプリケーション)を含む各種のアプリケーションの実行と、テレビ2に対する操作(およびテレビの番組表の表示)と、ウェブページの表示とを行うことができる。また、ゲームシステム1は、以下に示す動作によって、ゲームシステム1においてテレビを用いる状態(ゲームシステム1において生成された画像がテレビ2に表示される状態)と、ゲームシステム1以外の用途でテレビを用いる状態(ゲームシステム1において生成された画像とは別の画像がテレビ2に表示される状態)との間の切り替え操作を操作性良く行うことを可能とするものである。
図13は、ゲームシステム1における動作状態の遷移を表す状態遷移図である。図13に示すように、ゲームシステム1(ゲーム装置3)が起動すると、まず、ゲームシステム1は開始状態となる。開始状態とは、ゲームシステム1の起動後において端末装置7に所定の操作画像が表示される状態である。ここで、所定の操作画像は、端末装置7を用いるユーザが操作を行うための画像であればどのようなものであってもよい。本実施形態においては、後述するアプリケーション選択画像(以下、「アプリ選択画像」と記載する)、装置制御画像、およびブラウザ画像のいずれかが所定の操作画像として端末装置7に表示される。なお、他の実施形態においては、3種類の画像のうち複数の画像が同時に(例えば、表示領域が複数に分割されることによって)端末装置7に表示されてもよい。また、以下では、開始状態において表示される操作画像を、後述する中断状態において表示される操作画像と区別する目的で「メイン操作画像」と呼ぶことがある。
上記開始状態では、所定のメイン操作画像が端末装置7に表示され、また、ゲームシステムにおける操作は端末装置7を用いて行われる。すなわち、操作装置である端末装置7は、操作装置に対する操作を表す操作データ(端末操作データ)を出力する操作部を備えている。また、端末装置7は、ゲーム装置3から出力される画像を受信する受信部(アンテナ81および無線モジュール80)と、受信された画像を表示する表示部(LCD51)とを備えている。一方、ゲーム装置3は、上記操作データを取得する取得部を備えており、上記開始状態において、上記メイン操作画像を生成する。さらに、ゲーム装置3は、メイン操作画像を端末装置7へ出力する。
なお、本実施形態においては、図13に示すように、開始状態は、メニュー状態、第1テレビ操作状態、およびブラウザ状態を含む。メニュー状態は、各種のアプリケーションを選択して実行することが可能な状態(モード)である。第1テレビ操作状態は、テレビ2に対する操作を行うことが可能な状態(モード)である。ブラウザ状態は、ウェブページを表示することが可能な状態(モード)である。詳細は後述するが、メニュー状態においてはアプリ選択画像(図17)が、第1テレビ操作状態においては装置制御画像(図19)が、ブラウザ状態においてはブラウザ画像(図21)が、それぞれ端末装置7に表示される。なお、アプリ選択画像は、ゲーム装置3が実行可能なアプリケーションを選択するための操作画像である。装置制御画像は、テレビ2に対する操作(制御)を行うための操作画像である。ブラウザ画像は、ネットワーク90を介して取得されるウェブページを含む操作画像である。なお、開始状態においては、端末装置7に所定の操作画像(メイン操作画像)が表示されればよく、他の実施形態においては、開始状態においては1種類の画像のみが常に表示される構成であってもよい。
また、ゲームシステム1が起動して開始状態となる場合、ゲームシステム1は上記3つの状態(メニュー状態、第1テレビ操作状態、およびブラウザ状態)のうちのいずれかの状態となる。なお、ゲームシステム1の起動直後の状態はどのように決定されてもよい。本実施形態においては、前回にゲームシステム1の電源がオフにされた時点における状態が、起動直後の状態として設定される。また、詳細は後述するが、ゲームシステム1は、上記3つの状態のうちのいずれかの状態から他の2つの状態へ、所定の変更操作に応じて遷移することが可能である(図13参照)。つまり、ユーザは、アプリ選択画像と、装置制御画像と、ブラウザ画像とのうちで端末装置7に表示させる操作画像を、変更操作によって容易に切り替えることができる。
ここで、上記開始状態のうちのメニュー状態では、ユーザは、端末装置7を用いて、ゲームプログラムを含む各種のアプリケーションのうちから1つを選択して実行することができる。また、上記開始状態のうちの第1テレビ操作状態では、ユーザは、テレビ2に対する操作を端末装置7を用いて行うことができる。すなわち、ゲーム装置3は、開始状態において、選択指示があったか否か、および、制御指示があったか否かを端末操作データに基づいて判定する(後述するステップS14およびS23)。選択指示とは、ゲームアプリケーションを含み、ゲーム装置3が実行可能な1以上のアプリケーションのうちから1つを選択する指示である。また、制御指示とは、テレビ2に対する制御を行う指示である。上記選択指示があった場合、ゲーム装置3は、選択されたアプリケーションを実行し、アプリケーションの実行によって生成された画像を、端末装置7およびテレビ2の少なくとも一方へ出力する(後述するステップS15)。また、上記制御指示があった場合、ゲーム装置3は、当該制御指示に応じた制御をテレビ2に対して行う(後述するステップS24)。
以上より、本実施形態においては、開始状態においては、端末装置7に操作画像(メイン操作画像)が表示されるので、ユーザは端末装置7の画面を見ることでゲームシステム1に対する操作を行うことが可能であり、また、テレビ2にはテレビ番組等、他の画像を表示することが可能である。したがって、ユーザは、テレビ番組を見ながらゲームシステム1を使用することができる。例えば、ユーザは、テレビ2の画面でテレビ番組を見ながら、端末装置7の操作画像を見て実行したいアプリケーションを選択することも可能である。また、開始状態において、ユーザは、端末装置7を用いてテレビ2に対する操作を行うことが可能である。ユーザは、端末装置7を用いてゲームシステム1に対する操作とテレビ2に対する操作とを行うことができるので、ゲームシステム1においてテレビを用いる状態と、ゲームシステム1以外の用途でテレビを用いる状態との間の切り替え操作を容易に行うことができる。例えば、本実施形態においては装置制御画像としてテレビの番組表(電子番組表)が表示されるので、ユーザは、ゲームシステム1を起動して番組表を端末装置7に表示させ、表示された番組表から見たいテレビ番組を選んでテレビ2に表示させる一連の操作を、端末装置7のみで行うことができる。以上のように、本実施形態においては、端末装置7によって、上記の切り替え操作の操作性を向上することができる。
なお、本実施形態においては、ゲーム装置3は、上記アプリ選択画像と装置制御画像とを切り替えて端末装置7に表示させるようにしているが、他の実施形態においては、アプリ選択画像と装置制御画像とを同時に端末装置7に表示させるようにしてもよい。これによれば、ユーザは、上記選択指示が可能な状態(メニュー状態)と、制御指示が可能な状態(第1テレビ操作状態)との間で状態を遷移させるための操作(上記変更操作)を行わずに、これら2つの指示を自由に行うことができる。また、他の実施形態においては、ゲーム装置3は、上記アプリ選択画像が表示されるメニュー状態においてユーザが上記制御指示を行うことができるようにしてもよいし、上記装置制御画像が表示される第1テレビ操作状態においてユーザが上記選択指示を行うことができるようにしてもよい。これによっても、ユーザは、上記変更操作を行うことなく、上記2つの指示を自由に行うことができる。
また、ゲーム装置3は、開始状態において、ウェブページを表示する表示指示があったか否かをさらに判定する(後述するステップS17,S26)。表示指示があった場合、ゲームシステム1はブラウザ状態へ遷移する(図13参照)。この場合、ゲーム装置3は、ネットワーク90と通信を行う外部通信部(ネットワーク通信モジュール18)を介してネットワーク90から取得されるデータに基づいて生成されるブラウザ画像を、端末装置7およびテレビ2の少なくとも一方へ出力する(後述するステップS31,S35)。つまり、ゲーム装置3は、上記表示指示があったことに応じて、ウェブページを含むブラウザ画像を端末装置7および/またはテレビ2に表示させる。このように、本実施形態においては、ユーザは開始状態においてウェブページを閲覧することも可能である。
また、メニュー状態において、アプリケーションを選択する操作が端末装置7を用いて行われると、ゲーム装置3は、選択されたアプリケーションを実行する。すなわち、ゲーム装置3は、ゲーム装置3が実行可能なアプリケーションを表す画像(アイコン等)を含むメイン操作画像(上記アプリ選択画像)を生成して端末装置7へ出力する。そして、メイン操作画像が表示される状態において、実行すべきアプリケーションが選択された場合、選択されたアプリケーションを実行する。これによって、図13に示すように、ゲームシステム1はアプリ実行状態へ遷移する。さらに、ゲーム装置3は、アプリケーションの実行によって生成された画像を、端末装置7およびテレビ2の少なくとも一方へ出力する。なお、2つの表示装置のうちでのどちらに(あるいは両方に)画像を出力するかは、実行されるアプリケーションによって異なり、どのように決められてもよい。
上記アプリ実行状態において、端末装置7に対して所定の中断操作が行われると、ゲームシステム1は中断状態へ遷移する(図13参照)。中断状態は、実行中のアプリケーションの利用が中断された状態である。ゲーム装置3は、アプリケーションの実行中において端末装置7に対して所定の中断操作が行われた場合、所定の操作画像を生成して端末装置7へ出力する(後述するステップS44)。この所定の操作画像は、端末装置7を用いるユーザが操作を行うための画像であればどのようなものであってもよい。本実施形態においては、後述する設定画像(図23)あるいはリモコン画像(図24)が所定の操作画像として端末装置7に表示される。なお、他の実施形態においては、1種類の操作画像のみが端末装置7に表示されてもよいし、上記2種類の画像が同時に端末装置7に表示されてもよい。また、以下では、中断状態において表示される操作画像を「サブ操作画像」と呼ぶ。
上記中断状態は、設定状態と、第2テレビ操作状態を含む。本実施形態においては、アプリ実行状態から中断状態へと遷移した場合、ゲームシステム1はまず設定状態へ遷移する。設定状態は、上記設定画像が表示される状態である。詳細は後述するが、設定画像は、ゲームシステム1に関する各種の設定操作を行うための操作画像である。なお、中断状態においては、端末装置7に所定のサブ操作画像が表示されればよく、他の実施形態においては、中断状態においては上記2種類の画像のうち1種類の画像のみが常に表示される構成であってもよい。
本実施形態においては、設定状態において所定の操作が行われると、ゲームシステム1は第2テレビ操作状態へ遷移する。第2テレビ操作状態は、上記リモコン画像が表示される状態である。詳細は後述するが、リモコン画像は、テレビ2に対する操作を行うための操作画像であり、テレビ2に対する操作を表すボタン画像等を含む操作画像である。第2テレビ操作状態は、端末装置7を用いてテレビ2に対する操作が可能となる状態である。なお、第2テレビ操作状態において所定の操作が行われると、ゲームシステム1は第2テレビ操作状態から設定状態へ遷移する。つまり、ユーザは、設定状態と第2テレビ操作状態とを所定の操作によって自由に遷移させることができる(図13参照)。
以上のように、本実施形態においては、中断状態において、ユーザはテレビ2に対する操作を行うことができる。すなわち、ゲーム装置3は、上記サブ操作画像が端末装置7に表示される状態において、テレビ2に対する制御を行う制御指示があったか否かを端末操作データに基づいて判定する。そして、制御指示があった場合、当該制御指示に応じた制御をテレビ2に対して行う。したがって、本実施形態においては、ユーザは、ゲームシステム1においてアプリケーションを用いている際に、アプリケーションの実行を終了しなくても、テレビ2に対する操作を行うことができる。これによれば、ゲームシステム1においてテレビを用いる状態と、ゲームシステム1以外の用途でテレビを用いる状態との間の切り替え操作がより容易になる。例えば、ユーザは、アプリケーションの実行途中でテレビ番組を視聴したり、その後アプリケーションを再開したりする操作を、端末装置7を用いて容易に行うことができる。
また、本実施形態においては、上記中断状態において、実行中のアプリケーションを終了する終了指示と、アプリケーションの実行を再開する再開指示とが可能である。すなわち、中断状態において再開指示があった場合、ゲーム装置3はアプリケーションの実行を再開する。これによって、ゲームシステム1はアプリ実行状態へ遷移する(図13参照)。また、中断状態において終了指示があった場合、ゲーム装置3はアプリケーションの実行を終了する。これによって、ゲームシステム1は開始状態へ遷移する(図13参照)。なお、本実施形態においては、上記の場合、ゲームシステムは図13に示すようにメニュー状態へ遷移するものとするが、他の実施形態においては、ゲームシステム1は第1テレビ操作状態あるいはブラウザ状態へ遷移してもよい。また、他の実施形態においては、中断状態においてアプリケーションを終了する場合、開始状態に含まれる3つの状態のうちいずれの状態へ遷移するかを、ユーザが選択することができるようにしてもよい。以上のように、本実施形態においては、ユーザは、中断状態からアプリケーションの実行を再開することも終了することも可能である。
[6.ゲームシステムにおける処理の詳細]
次に、本ゲームシステムにおいて実行される情報処理の詳細を説明する。まず、情報処理において用いられる各種データについて説明する。図14は、ゲーム装置3のメインメモリ(外部メインメモリ12または内部メインメモリ11e)における記憶領域を示す図である。図14に示すように、ゲーム装置3のメインメモリには、メインプログラム領域100、アプリケーションプログラム領域101、取得データ領域103、および処理用データ107領域が設けられる。なお、メインメモリには、図14に示すデータの他、情報処理に用いられる画像データや音声データ等、処理に必要なデータが記憶される。また、図14に示す記憶領域の一部は、ゲーム装置3がアクセス可能な他の記憶装置(フラッシュメモリ17等)に設けられてもよい。
メインプログラム領域100には、ゲームシステム1における上述の各種状態の遷移を管理するメインプログラムが記憶される。本実施形態においては、CPU10がメインプログラムを実行することによって、図15等に示すフローチャートの各ステップが実行される。メインプログラムは、後述するメニュー処理、テレビ処理、ブラウザ処理、および中断時処理の各処理を実行するためのプログラムであるが、他の実施形態においては、これらの各処理を実行するための各プログラムが別々に(別のプログラムとして)メインメモリに記憶されてもよい。メインプログラムは、ゲーム装置3に電源が投入された後の適宜のタイミングで所定の記憶装置からその一部または全部が読み込まれてメインメモリに記憶される。なお、上記所定の記憶装置は、ゲーム装置3がアクセス可能な記憶手段であればどのようなものであってもよいが、本実施形態においてはフラッシュメモリ17であるとする。なお、メインプログラムは、フラッシュメモリ17に代えて、光ディスク4やゲーム装置3の外部の他の装置から(例えばインターネットを介して)取得されてもよい。
アプリケーションプログラム領域101には、ゲーム装置3において実行可能な各種のアプリケーション(プログラム)が記憶される。アプリケーションプログラム領域101には、1以上のアプリケーションが記憶され、本実施形態においては、当該1以上のアプリケーションにはゲームプログラム102が含まれる。ゲームプログラム102は、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。なお、ゲームプログラム102は、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(例えばインターネットを介して)取得されてもよい。なお、アプリケーションプログラム領域101に含まれる他のアプリケーションもゲームプログラム102と同様、ゲーム装置3がアクセス可能な任意の記憶手段から取得されてもよい。
取得データ領域103には、ゲーム装置3が端末装置7等から取得する各種のデータが記憶される。本実施形態においては、取得データ領域103には、端末操作データ104、カメラ画像データ105、および、マイク音データ106が記憶される。なお、図14に示すデータの他、取得データ領域103には、コントローラ5から取得されるコントローラ操作データ等が記憶されてもよい。
端末操作データ104は、端末装置7に対するプレイヤの操作を表すデータである。端末操作データ104は、端末装置7から送信されてゲーム装置3において取得され、メインメモリに記憶される。なお、ゲーム装置3は、複数の端末装置と通信可能であり、各端末装置から操作データをそれぞれ取得することが可能である。端末装置が複数である場合、各端末装置からそれぞれ送信されてくる各端末操作データがメインメモリにそれぞれ記憶される。メインメモリには、端末装置毎に最新の(最後に取得された)ものから順に所定個数の端末操作データが記憶されてもよい。
端末操作データ104は、角速度データ、加速度データ、操作ボタンデータ、スティックデータ、タッチ位置データ、および方位データを含む。角速度データは、ジャイロセンサ74によって検出された角速度を表すデータである。本実施形態では、角速度データは、図8に示すxyzの3軸回りのそれぞれの角速度を表すものであるが、他の実施形態においては、任意の1軸以上の軸回り角速度を表すものであればよい。加速度データは、加速度センサ73によって検出された加速度(加速度ベクトル)を表すデータである。本実施形態では、加速度データは、図9に示すxyzの3軸の方向に関する加速度を各成分とする3次元の加速度を表すものであるが、他の実施形態においては、任意の1以上の方向に関する加速度を表すものであればよい。上記ジャイロセンサ74および加速度センサ73は、慣性センサの一例である。ゲーム装置3は、慣性センサの検出結果(角速度データおよび加速度データ)に基づいて端末装置7の姿勢を算出することができる。
また、操作ボタンデータは、端末装置7に設けられる各操作ボタン54A〜54Lに対する入力状態を表すデータである。具体的には、操作ボタンデータは、各操作ボタン54A〜54Lが押下されているか否かを表す。スティックデータは、アナログスティック53(アナログスティック53Aおよび53B)のスティック部がスライドした(または傾倒した)方向および量を表すデータである。上記方向および量は、例えば2次元座標や2次元ベクトルとして表されてもよい。タッチ位置データは、タッチパネル52の入力面において入力が行われた位置(タッチ位置)を表すデータである。本実施形態では、タッチ位置データは、上記入力面上の位置を示すための2次元座標系の座標値を表す。なお、タッチパネル52がマルチタッチ方式である場合には、タッチ位置データは複数のタッチ位置を表すこともある。方位データは、磁気センサ72によって検出された方位を表すデータである。本実施形態では、方位データは、端末装置7を基準として所定の方位(例えば北)の向きを表す。なお、地磁気以外の磁界が発生している場合においては、方位データは厳密には絶対的な方位(北等)を示さないことになる。ただし、その場所における磁界の方向に対する端末装置7の相対的な方向が方位データによって示されるので、そのような場合であっても方位データに基づいて端末装置7の姿勢または姿勢の変化を算出することが可能である。
なお、端末操作データ104は、端末装置7に対する操作を表すものであればよく、本実施形態において端末操作データ104が含む上記各データのいずれか1つのみを含むものであってもよい。また、端末装置7が他の入力手段(例えば、タッチパッドや、コントローラ5の撮像手段等)を有する場合には、端末操作データ104は、当該他の入力手段に対する操作を表すデータを含んでいてもよい。なお、本実施形態のように端末装置7自体の動きをゲーム操作として用いる場合には、端末操作データ104は、加速度データ、角速度データ、または方位データのように、端末装置7の動きに関する情報を表すデータ(動きに応じて値が変化するデータ)を含むことが好ましい。なお、端末装置7の動きに関する情報とは、例えば、端末装置7の位置、姿勢、位置の変化(速度)、姿勢の変化(角速度)、加速度、角加速度等の情報である。
また、カメラ画像データ105は、端末装置7のカメラ56によって撮像された画像(撮像画像)を表すデータである。カメラ画像データ105は、端末装置7から送信されてくる圧縮された画像データがコーデックLSI27によって伸張された画像データであり、入出力プロセッサ11aによってメインメモリに記憶される。また、マイク音データ106は、端末装置7のマイク79によって検出された音声(マイク音)を表すデータである。マイク音データ106は、端末装置7から送信されてくる圧縮された音声データがコーデックLSI27によって伸張された音声データであり、入出力プロセッサ11aによってメインメモリに記憶される。
処理用データ領域107は、ゲーム装置3における情報処理(図15等)において用いられる各種のデータが記憶される。本実施形態においては、処理用データ領域107には、初期状態データ108、番組表データ109、ホームページデータ110、および、セーブデータ111等が記憶される。なお、図14に示すデータの他、処理用データ領域107は、各アプリケーションの実行時において用いられる各種のデータが記憶される。
初期状態データ108は、開始状態に含まれる3種類の状態のうちで、ゲームシステム1が起動された直後に遷移される初期状態を表すデータである。初期状態データ108はどのように設定されてもよいが、本実施形態においては、ゲームシステム1が終了される場合(電源がオフにされる、あるいはスリープ状態にされる場合)、その時点における状態に基づいて決定される。
番組表データ109は、上述の第1テレビ操作状態への遷移時において端末装置7に表示されるテレビの番組表を生成するためのデータである。本実施形態においては、番組表のデータが適宜のタイミングでネットワーク90を介して所定のサーバから取得され、当該データが番組表データ109としてメインメモリに記憶される。本実施形態においては、ゲームシステム1が第1テレビ操作状態へ遷移した場合、番組表データ109に基づいて生成される番組表が端末装置7にまず表示される。
ホームページデータ110は、上述のブラウザ状態への遷移時において端末装置7に表示されるホームページ(ブラウザ機能の開始時に表示されるウェブページ)を生成するためのデータである。本実施形態においては、予め設定されたホームページのデータが適宜のタイミングでネットワーク90を介して所定のサーバから取得され、当該データがホームページデータ110としてメインメモリに記憶される。本実施形態においては、ゲームシステム1がブラウザ状態へ遷移した場合、ホームページデータ110に基づいて生成されるウェブページの画像が端末装置7にまず表示される。
セーブデータ111は、ゲームプログラム102等のアプリケーションのセーブデータである。詳細は後述するが、アプリケーションの実行が終了される場合、ゲームの内容を表し、ゲームの再開に必要なゲームパラメータを表すデータがセーブデータ111としてメインメモリに記憶される。
次に、図15〜図24を参照して、ゲームシステム1(ゲーム装置3)において実行される情報処理の流れを詳細に説明する。図15は、ゲーム装置3で実行される開始処理の流れを示すフローチャートである。開始処理は、ゲームシステム1(ゲーム装置3)の起動に応じて実行される処理である。すなわち、ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。その後、フラッシュメモリ17に記憶されたメインプログラムがメインメモリに読み込まれ、CPU10によって当該メインプログラムの実行が開始される。図15に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
なお、図面に示す各フローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値が採用されてもよい。また、本明細書では、各フローチャートの各ステップの処理をCPU10が実行するものとして説明するが、各フローチャートにおける一部のステップの処理を、CPU10以外のプロセッサや専用回路が実行するようにしてもよい。
まずステップS1において、CPU10は、開始状態に含まれる3つの状態(メニュー状態、第1テレビ操作状態、およびブラウザ状態)のうちで、最初に遷移すべき初期状態を決定する。ここで、初期状態はどのように決定されてもよく、本実施形態においては、前回のゲームシステム1の終了時における状態に基づいて次回の起動時における初期状態が決定される。すなわち、ゲームシステム1が終了される場合(電源がオフにされる、あるいはスリープ状態にされる場合)、その時点における状態を表すデータがフラッシュメモリ17に記憶される。そして、ステップS1において、CPU10は、フラッシュメモリ17から上記データを読み出し、当該データが表す状態に基づいて初期状態を決定する。具体的には、開始状態に含まれる3つの状態のうちのいずれかを上記データが表す場合、当該データが表す状態が初期状態として決定される。また、上記データがアプリ実行状態あるいは中断状態を表す場合、メニュー状態が初期状態として決定される。以上のようにして決定された初期状態を表すデータは初期状態データとしてメインメモリに記憶される。以上のように、本実施形態においては、前回のゲームシステム1の終了時における状態が初期状態となるので、前回ゲームシステム1を使用したユーザは、適切な状態でゲームシステム1の使用を開始することができる。ステップS1の次にステップS2の処理が実行される。
なお、他の実施形態においては、初期状態は、他の方法で決定されてもよい。例えば、初期状態は、ユーザによって予め指定された状態に決定されてもよい。これによっても本実施形態と同様、ユーザにとって適切な状態でゲームシステム1の使用を開始することができる。また例えば、ゲーム装置3がユーザを識別可能な場合には、ゲームシステム1を利用する各ユーザに応じた状態となるように初期状態が決定されてもよい。これによれば、1つのゲームシステム1を複数人のユーザが使用する場合においても、各ユーザがそれぞれ自分に適した状態でゲームシステム1の使用を開始することができる。なお、「各ユーザに応じた状態」とは、そのユーザが前回にゲームシステム1を使用した際における終了時の状態に基づいて決定された状態であってもよいし、ユーザが指定した状態であってもよい。また、ユーザを識別する方法はどのような方法であってもよい。例えば、CPU10は、IDおよび/またはパスワードを起動時にユーザに入力させることによってユーザを識別してもよい。また例えば、CPU10は、端末装置7のカメラ56によってユーザの顔を撮像し、撮像画像を用いてユーザを識別してもよい。具体的には、ユーザの顔を撮像した画像を予め登録しておき、カメラ56による撮像画像と登録された画像とを比較することによって、ユーザを識別することができる。
ステップS2およびS3においては、番組表およびホームページのデータが予め取得される。ここで、これらのデータは、どのようなタイミングで取得されてもよく、本実施形態においては、ゲームシステム1の起動時に取得される。なお、他の実施形態においては、これらのデータは、番組表またはホームページを表示すべき状態(すなわち、第1テレビ操作状態またはブラウザ状態)へ遷移する時点で取得されてもよい。また、ホームページのデータに関しては、一般的なブラウザにおけるキャッシュ機能を用いて、以前にゲームシステム1が使用された際に取得されたデータが保存されてもよい。
ステップS2において、CPU10は、所定のサーバ(外部装置91)からネットワーク90を介して番組表を取得する。すなわち、CPU10はまず、番組表の取得要求を生成し、ネットワーク90を介して上記サーバへ取得要求を送信する。このサーバは、番組表のデータを記憶するウェブサーバ等、番組表のデータを提供することが可能なものであればどのようなものであってもよい。上記取得要求に応じて、サーバはネットワーク90を介して番組表のデータをゲーム装置3へ送信する。サーバから送信されてくる番組表のデータはフラッシュメモリ17(またはメインメモリ)に記憶される。なお、他の実施形態においては、上記サーバから取得されたデータに代えて、当該データから生成される番組表の画像データが番組表データ109として記憶されてもよい。ステップS2の次にステップS3の処理が実行される。
ステップS3において、CPU10は、ブラウザ機能の開始時にアクセスされるウェブページ(ホームページ)のデータを取得する。すなわち、CPU10はまず、上記ウェブページの取得要求を生成し、ネットワーク90を介して所定のサーバへ取得要求を送信する。このサーバは、予め設定された上記ウェブページを提供する情報処理装置であればどのようなものであってもよい。上記取得要求に応じて、サーバはネットワーク90を介してウェブページのデータをゲーム装置3へ送信する。サーバから送信されてくるウェブページのデータはフラッシュメモリ17(またはメインメモリ)に記憶される。なお、他の実施形態においては、上記サーバから取得されたデータに代えて、当該データから生成されるウェブページの画像データがホームページデータ110として記憶されてもよい。ステップS3の後、CPU10は開始処理を終了する。
開始処理の終了後は、ステップS1で決定された初期状態に応じた処理が実行される。すなわち、初期状態がメニュー状態である場合には後述するメニュー処理が実行され、初期状態が第1テレビ操作状態である場合には後述するテレビ処理が実行され、初期状態がブラウザ状態である場合には後述するブラウザ処理が実行される。以下、メニュー処理、テレビ処理、およびブラウザ処理の詳細について説明する。
(メニュー処理)
図16は、ゲーム装置3で実行されるメニュー処理の流れを示すフローチャートである。まずステップS11において、CPU10は端末装置7から各種データを取得する。ここで、端末装置7からは、少なくとも端末操作データが取得され、本実施形態においては、カメラ画像データおよびマイク音データがさらに取得される。端末装置7は、上記各データ(端末操作データ、カメラ画像データ、およびマイク音データ)をゲーム装置3へ繰り返し送信するので、ゲーム装置3は各データを逐次受信する。ゲーム装置3においては、端末通信モジュール28が各データを逐次受信し、カメラ画像データおよびマイク音データについてはコーデックLSI27によって伸張処理が逐次施される。そして、入出力プロセッサ11aが端末操作データとカメラ画像データとマイク音データとをメインメモリに逐次記憶する。CPU10は、適宜のタイミングで上記各データをメインメモリから読み出す。ステップS11の次にステップS12の処理が実行される。
ステップS12において、CPU10はアプリ選択画像を端末装置7に表示させる。すなわち、CPU10は、アプリ選択画像を生成し、生成されたアプリ選択画像を端末装置7へ出力(送信)する。アプリ選択画像は、ゲーム装置3が実行可能なアプリケーションをユーザが選択することができる画像であればどのようなものであってもよい。以下、図17を参照して、本実施形態におけるアプリ選択画像について説明する。
図17は、端末装置7に表示されるアプリ選択画像の一例を示す図である。図17に示すように、アプリ選択画像は、アプリ領域121、通知領域123、テレビアイコン125、ブラウザアイコン126を含む。図17に示すアプリ選択画像は、ゲーム装置3において実行すべきアプリケーションを選択するためのメニュー画像である。
図17において、アプリ領域121は、1以上のアプリアイコン122を表示する領域である。アプリアイコン122は、ゲーム装置3が実行可能なアプリケーションを表す画像(アイコン)である。本実施形態においてはアプリアイコン122を選択する操作によって、アプリアイコン122によって表されるアプリケーションが実行される。なお、図17においては、アプリ領域121は所定のスクロール操作に応じて左右にスクロールすることが可能であり、左右にスクロールすることによって、表示されるアプリアイコン122が変更される。また、通知領域123は、ユーザに対する通知事項を表示する領域である。通知領域123には、どのような情報が表示されてもよく、例えば、新しいアプリケーションの紹介や、ゲームシステム1を用いた各種のサービスに関する通知等が表示される。なお、ゲーム装置3は、適宜のタイミングでネットワーク90を介して所定のサーバにアクセスして通知事項の情報を取得することによって、通知事項の内容を更新するようにしてもよい。
また、テレビアイコン125は、上記第1テレビ操作状態へ遷移する指示を表す画像である。詳細は後述するが、本実施形態においてはテレビアイコン125を選択する操作(上記変更操作)によって、ゲームシステム1は第1テレビ操作状態へ遷移する。また、ブラウザアイコン126は、上記ブラウザ状態へ遷移する指示を表す画像である。詳細は後述するが、本実施形態においてはブラウザアイコン126を選択する操作(上記変更操作)によって、ゲームシステム1はブラウザ状態へ遷移する。つまり、メニュー状態においては、テレビアイコン125またはブラウザアイコン126を選択する操作を行うことによって、ユーザは、第1テレビ操作状態またはブラウザ状態へゲームシステム1を容易に遷移させることができる。
上記ステップS12において、CPU10およびGPU11bは、各種アイコンの画像データ等、アプリ選択画像を生成するために必要なデータをVRAM11dから読み出し、読み出したデータを用いてアプリ選択画像を生成する。生成されたアプリ選択画像はVRAM11dに記憶される。さらに、CPU10は、アプリ選択画像を端末装置7へ出力する。具体的には、VRAM11dに記憶されたアプリ選択画像の画像データは、CPU10によってコーデックLSI27に送られ、コーデックLSI27によって所定の圧縮処理が行われる。圧縮処理が施された画像のデータは、端末通信モジュール28によってアンテナ29を介して端末装置7へ送信される。端末装置7は、ゲーム装置3から送信されてくる画像のデータを無線モジュール80によって受信し、受信された画像データに対してコーデックLSI76によって所定の伸張処理が行われる。伸張処理が行われた画像データはLCD51に出力される。これによって、アプリ選択画像がLCD51に表示される。また、ステップS12においては、画像のデータと共に音声のデータが端末装置7へ送信され、端末装置7のスピーカ77から音声が出力されてもよい。ステップS12の次にステップS13の処理が実行される。
ステップS13において、テレビ用画像をテレビ2に表示させる。すなわち、CPU10は、所定のテレビ用画像を生成し、生成されたテレビ用画像をテレビ2へ出力する。メニュー状態において表示されるテレビ用画像は、どのような内容であってもよい。テレビ用画像は、例えば、ゲーム装置3が実行可能なアプリケーションに関する画像(例えば、ゲームアプリケーションのタイトル画像やデモ動画)であってもよいし、上記通知領域123に表示される画像であってもよい。なお、メニュー状態においてはテレビ2がゲームシステム1以外の用途(例えばテレビ番組を表示する用途)で利用される態様も想定されるので、テレビ用画像は、上記のような補助的な内容であることが好ましい。
上記ステップS13においては、CPU10およびGPU11bは、テレビ用画像を生成するために必要なデータをVRAM11dから読み出し、テレビ用画像を生成する。生成されたテレビ用画像はVRAM11dに記憶される。さらに、CPU10は、テレビ2へゲーム画像を出力する。具体的には、CPU10は、VRAM11dに記憶されたテレビ用画像のデータをAV−IC15へ送る。これに応じて、AV−IC15はテレビ用画像のデータを、AVコネクタ16を介してテレビ2へ出力する。これによって、テレビ用画像がテレビ2に表示される。また、ステップS13においては、画像のデータと共に音声のデータがテレビ2へ出力され、テレビ2のスピーカ2aから音声が出力されてもよい。ステップS13の次にステップS14の処理が実行される。
ステップS14において、CPU10は、選択指示があったか否かを判定する。選択指示は、実行すべきアプリケーションを選択する指示である。選択指示を行うための操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示されるアプリアイコン122をタッチする操作によって選択指示が行われる。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示されるアプリアイコン122のいずれかがタッチされたか否かを判定する。なお、他の実施形態においては、例えば端末装置7に表示されるカーソルを用いて選択指示が行われてもよい。すなわち、CPU10は、端末装置7に対する方向入力操作(例えばアナログスティック53に対する方向入力操作)に応じてカーソルを移動させ、カーソルがアプリアイコン122を指し示す状態で所定の操作が行われた場合に、当該アプリアイコン122が指定されたと判定するようにしてもよい。上記ステップS14の判定結果が肯定である場合、ステップS15の処理が実行される。一方、上記ステップS14の判定結果が否定である場合、ステップS16の処理が実行される。
ステップS15において、CPU10は、上記選択指示によって選択されたアプリケーションを実行する。すなわち、CPU10は、選択されたアプリケーションが記憶されている記憶部(光ディスク4やフラッシュメモリ17等)から当該アプリケーションを読み出し、メインメモリに記憶する。そして、メインメモリに記憶されたアプリケーションの実行を開始する。ステップS15の後、CPU10はメニュー処理を終了し、アプリ実行処理を実行する。これによってゲームシステム1はアプリ実行状態へ遷移することとなる。
なお、図示しないが、アプリ実行処理においては、アプリケーションに応じた情報処理が実行される。実行されるアプリケーションはどのような内容であってもよく、アプリケーションの実行による情報処理もどのような処理であってもよい。CPU10は、アプリケーションの実行によって生成された画像を、端末装置7およびテレビ2の少なくとも一方へ出力する。なお、生成された画像を端末装置7に表示するか、テレビ2に表示するか、それとも、端末装置7とテレビ2に表示するかの判断は、どのように行われてもよい。上記の判断は、例えばアプリケーションによって行われてもよいし、ユーザによって行われてもよい。生成された画像が端末装置7のみに表示される場合には、テレビ2にはテレビ番組を表示することができ、ユーザは、テレビ番組を視聴しながらゲームシステム1のアプリケーションを利用することができる。
一方、ステップS16において、CPU10は、第1テレビ操作状態へ遷移するか否かを判定する。すなわち、CPU10は、メニュー状態から第1テレビ操作状態へと遷移させる変更操作が行われたか否かを判定する。この変更操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示されるテレビアイコン125をタッチする操作である。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示されるテレビアイコン125がタッチされたか否かを判定する。上記ステップS16の判定結果が肯定である場合、CPU10はメニュー処理を終了し、後述するテレビ処理を実行する。一方、上記ステップS16の判定結果が否定である場合、ステップS17の処理が実行される。
なお、本実施形態においては、ステップS14,S16,S17,S23,S25,S26,S33,S34,S43,S45,S47,S50,およびS52等における各種の指示(操作)はタッチパネル52を用いて行われる。すなわち、CPU10(およびGPU11b)は、各種の指示(上記選択指示および制御指示や、上記変更操作の指示等)を表す画像を生成可能であり、当該画像を端末装置7に出力して表示させる。そして、タッチパネル52において上記画像が選択された(タッチされた)場合に上記指示があったと判定する。これによれば、ユーザはタッチパネルを用いて容易かつ直感的な操作で各種の指示を行うことができる。
なお、他の実施形態においては、各種の指示は、他の操作によって行われてもよい。例えば、各指示のうちの全部または一部の指示は、端末装置7に表示されるカーソルを用いる操作によって行われてもよい。すなわち、端末装置7に対する方向入力操作に応じてカーソルを移動させ、所定の指示を表す画像(アイコン等)をカーソルが指し示す状態で所定の操作を行うことで当該所定の指示が行われてもよい。また例えば、各指示のうちの全部または一部の指示は、端末装置7のボタン54A〜54Mのいずれかを押下する操作によって行われてもよい。より具体的には、開始状態における3つの状態を遷移する指示(上記変更操作)は、端末装置7の所定のボタン(例えば第2Lボタン54Kおよび第2Rボタン54L)を押下する操作によって行われてもよい。すなわち、端末装置7の所定のボタンを押下することに応じて、アプリ選択画像と装置制御画像とブラウザ画像とが順に切り替わるようにしてもよい。また例えば、各指示のうちの全部または一部の指示は、端末装置7を動かす操作によって行われてもよい。なお、端末装置7の動きは、慣性センサ(加速度センサ73およびジャイロセンサ74)や磁気センサ72の検出結果を用いて算出(推測)することができる。
ステップS17において、CPU10は、ブラウザ状態へ遷移するか否かを判定する。具体的には、CPU10は、ウェブページを表示する表示指示があったか否か、換言すれば、メニュー状態からブラウザ状態へと遷移させる変更操作が行われたか否かを判定する。この変更操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示されるブラウザアイコン126をタッチする操作である。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示されるブラウザアイコン126がタッチされたか否かを判定する。上記ステップS17の判定結果が肯定である場合、CPU10はメニュー処理を終了し、後述するブラウザ処理を実行する。一方、上記ステップS17の判定結果が否定である場合、ステップS11の処理が再度実行される。以降ステップS14,S16,およびS17のいずれかの判定における判定結果が肯定となるまで、メニュー処理が繰り返し実行される。
(テレビ処理)
図18は、ゲーム装置3で実行されるテレビ処理の流れを示すフローチャートである。テレビ処理は、初期状態が第1テレビ操作状態に決定された場合、または、メニュー状態あるいはブラウザ状態から第1テレビ操作状態へと遷移する変更操作が行われた場合に実行される。まずステップS21において、CPU10は端末装置7から各種データを取得する。ステップS21の処理は上述のステップS11と同様である。ステップS21の次にステップS22の処理が実行される。
ステップS22において、CPU10は、装置制御画像を端末装置7に表示する。すなわち、CPU10は、装置制御画像を生成し、生成された装置制御画像を端末装置7へ出力(送信)する。装置制御画像は、テレビ2に対する操作を表す操作画像であればどのようなものであってもよい。本実施形態においては、ネットワーク90を介して外部装置91から取得されるテレビの番組表の画像が装置制御画像として表示される。以下、図19を参照して、本実施形態における装置制御画像について説明する。
図19は、端末装置7に表示される装置制御画像の一例を示す図である。図19に示すように、装置制御画像は、番組表領域130、各種の操作ボタン画像136〜138、メニューアイコン124、および、ブラウザアイコン126を含む。図19に示す装置制御画像は、テレビ2に対する制御指示を表す画像を含む、番組表の画像である。
図19において、番組表領域130は、ネットワーク90を介して所定のサーバから取得されるデータに基づいて生成される番組表を表示する領域である。ここでは、番組表領域130には、チャンネル画像131、番組情報領域132、選局指示ボタン133、および、スクロールバー134が含まれる。チャンネル画像131は、テレビのチャンネルと番組名とを表す画像である。図19では、チャンネル画像131が縦に並んで配置され、ユーザは、スクロールバー134のつまみ135を移動させることによって、チャンネル画像131を上下にスクロールして表示させることができる。番組情報領域132は、表示されるチャンネル画像131のうちの所定のチャンネル画像131が表すテレビ番組の番組情報(番組の内容や出演者等)が表示される領域である。ここでは、所定のチャンネル画像131とは、ユーザがタッチしたチャンネル画像131である。
また、選局指示ボタン133は、テレビ2に対する制御指示を表す画像であり、具体的には、上記所定のチャンネル画像が表すチャンネルを選局する旨の制御指示を表す。なお、制御指示を表す画像は選局指示ボタン133に限らず、例えば、テレビ2の電源をオンまたはオフする制御指示を表すボタン、テレビ2の音量を変更する制御指示を表すボタン、あるいは、テレビ2に対する入力切替の制御指示を表すボタン等が装置制御画像に含まれていてもよい。
また、日付操作ボタン136は、表示すべき番組表の日付(および時刻)を変更する指示を行うためのボタンである。詳細表示ボタン137は、上記番組情報領域132に表示される内容よりも詳細な情報を表示する指示を行うためのボタンである。設定ボタン138は、番組表や端末装置7に関する設定画面を表示する指示を行うためのボタンである。なお、上記の他、例えば番組表を検索するための画像や、お気に入りの番組リストを表示するための画像等が端末装置7に表示されてもよい。以上の番組表の画像を用いて、ユーザは、テレビ番組の内容を閲覧したり、所望のチャンネルを選局するようにテレビ2を操作したりすることが可能である。本実施形態においては、第1テレビ操作状態においてテレビの番組表が表示されるので、ユーザは番組表を見てテレビ2のチャンネル操作を行うことができ、便利である。
また、メニューアイコン124は、上記メニュー状態へ遷移する指示を表す画像である。詳細は後述するが、本実施形態においてはメニューアイコン124を選択する操作(上記変更操作)によって、ゲームシステム1はメニュー状態へ遷移する。また、ブラウザアイコン126は、図16に示すものと同じである。したがって、第1テレビ操作状態においては、メニューアイコン124またはブラウザアイコン126を選択する操作を行うことによって、ユーザは、メニュー状態またはブラウザ状態へゲームシステム1を容易に遷移させることができる。
上記ステップS22において、CPU10およびGPU11bは、装置制御画像を生成するために必要なデータをメインメモリおよびVRAM11dから読み出し、読み出したデータを用いて装置制御画像を生成する。本実施形態においては、上記番組表領域130内に表示される画像は、メインメモリに記憶される番組表データ109を用いて生成される。したがって、本実施形態においては、第1テレビ操作状態へ遷移した直後であっても装置制御画像を端末装置7に迅速に表示することができる。また、生成された装置制御画像はVRAM11dに記憶される。さらに、CPU10は、装置制御画像を端末装置7へ出力する。画像を端末装置7へ出力することによって端末装置7に当該画像を表示させる処理については上記ステップS12と同様である。これによって、装置制御画像はLCD51に表示される。また、ステップS22においては、画像のデータと共に音声のデータが端末装置7へ送信され、端末装置7のスピーカ77から音声が出力されてもよい。ステップS22の次にステップS23の処理が実行される。
ステップS23において、制御指示があったか否かを判定する。制御指示は、テレビ2に対する制御を行う指示である。制御指示を行うための操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示される、制御指示を表すボタン(選局指示ボタン133)をタッチする操作によって制御指示が行われる。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示される上記ボタンがタッチされたか否かを判定する。上記ステップS23の判定結果が肯定である場合、ステップS24の処理が実行される。一方、上記ステップS23の判定結果が否定である場合、ステップS24の処理がスキップされてステップS25の処理が実行される。
ステップS24において、CPU10は、上記制御指示に応じた制御をテレビ2に対して行う。ここで、ゲームシステム1がテレビ2を制御する方法はどのような方法であってもよい。本実施形態においては、ゲーム装置3が端末装置7を介してテレビ2へ制御信号を出力する第1の方法と、ゲーム装置3が直接テレビ2へ制御信号を出力する第2の方法とによってテレビ2を制御する。
第1の方法では、CPU10は、上記制御指示に応じた制御内容を示す制御信号を送信する旨の指示を端末装置7に対して行う。この指示に従って、端末装置7は、テレビ2を制御するための制御信号を出力する。具体的には、CPU10は、上記の指示を表す制御データを端末装置7へ出力する。なお、本実施形態においては、テレビ2に対して各種の動作を行わせるための各種の制御信号を表すデータがフラッシュメモリ17あるいはメインメモリに記憶されている。CPU10は、上記各種の制御信号のうちから、上記制御指示に応じた制御信号を表すデータを選出し、制御データとして端末装置7へ出力する。制御データを受信した端末装置7は、上記制御データが表す制御信号を出力する。本実施形態においては、制御信号として赤外線信号が出力される。すなわち、端末装置7のコーデックLSI76は、上記制御データが表す制御信号に対応する赤外線信号を赤外線通信モジュール82に出力させる。この赤外線信号がテレビ2の赤外線受光部によって受光されることで、テレビ2が制御指示に応じた動作を行う。
第2の方法では、CPU10は、制御指示に応じた制御内容を示す制御信号をテレビ2へ出力する。すなわち、CPU10は、テレビ2に対して各種の動作を行わせるための各種の制御信号のうちから、上記制御指示に応じた制御信号(例えば、HDMI規格に則った形式の信号)を選出する。そして、選出した制御信号をAVコネクタ16を介してテレビ2に出力する。これによっても、テレビ2は制御指示に応じた動作を行うこととなる。
なお、テレビ2を制御するための上記制御信号(赤外線信号)の形式は、テレビ2の機種によって異なる場合がある。したがって、ゲーム装置3は、複数の機種に対応する各形式の制御信号を予め記憶しておくようにしてもよい。このとき、ゲーム装置3は、所定のタイミングで(例えば初期設定時に)テレビ2に応じた形式を選択し、以降は、選択された形式の制御信号を用いるようにしてもよい。これによって、ゲーム装置3は、複数種類の機種のテレビに対応することができる。
なお、本実施形態においては、ゲーム装置3は、上記2つの方法のうち少なくとも一方を用いてテレビ2を制御してもよいし、両方の方法を用いてテレビ2を制御してもよい。上記ステップS24の後、ステップS25の処理が実行される。
ステップS25において、CPU10は、メニュー状態へ遷移するか否かを判定する。すなわち、CPU10は、第1テレビ操作状態からメニュー状態へと遷移させる変更操作が行われたか否かを判定する。この変更操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示されるメニューアイコン124をタッチする操作である。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示されるメニューアイコン124がタッチされたか否かを判定する。上記ステップS25の判定結果が肯定である場合、CPU10はテレビ処理を終了し、上述のメニュー処理を実行する。一方、上記ステップS25の判定結果が否定である場合、ステップS26の処理が実行される。
ステップS26において、CPU10は、ブラウザ状態へ遷移するか否かを判定する。ステップS26の処理は上述のステップS17の処理と同様である。ステップS26の判定結果が肯定である場合、CPU10はテレビ処理を終了し、後述するブラウザ処理を実行する。一方、上記ステップS26の判定結果が否定である場合、ステップS27の処理が実行される。
ステップS27において、CPU10は、その他のテレビ処理を実行する。その他のテレビ処理とは、上記ステップS21〜S26の処理以外にテレビ処理において実行される処理である。例えば、CPU10は、上記操作ボタン画像136〜138に対する選択操作に応じて番組表領域130の表示内容を変更する処理や、スクロールバー134に対するスクロール操作に応じてチャンネル画像131をスクロールさせて表示する処理等を実行する。また、本実施形態においては、第1テレビ操作状態においてはテレビ2がテレビ番組を表示する用途で用いられることを想定して、ステップS27においてCPU10はテレビ用画像を生成・出力しないものとする。ただし、他の実施形態においては、テレビ用画像が生成・出力されてもよい。例えば、上記番組表を表す装置制御画像がテレビ用画像としてテレビ2へ出力されて表示されてもよい。これによれば、ユーザは、より大きな画面で番組表を閲覧することができる。
上記ステップS27の次に、ステップS21の処理が再度実行される。以降、ステップS25およびS26のいずれかの判定における判定結果が肯定となるまで、テレビ処理が繰り返し実行される。
以上のテレビ処理によれば、ユーザは、番組表を端末装置7によって閲覧することができる(ステップS22)とともに、テレビ2に対する操作を行うことができる(ステップS23,S24)。また、ユーザは、第1テレビ操作状態からメニュー状態あるいはブラウザ状態への遷移を変更操作によって容易に行うことができる(ステップS25,S26)。
なお、他の実施形態においては、メニュー状態あるいはブラウザ状態から第1テレビ操作状態への遷移時に、(テレビ放送を表示するように)テレビ2の入力が切り替えられてもよい。すなわち、テレビ2が、ゲーム装置3から入力される画像を表示する第1モードと、テレビ放送の画像を表示する第2モードとを切り替え可能である場合において、CPU10は、端末装置7においてアプリ選択画像(あるいはブラウザ画像)から装置制御画像への表示の切り替えが行われることに応じて、テレビ2のモードを第2モードへ切り替える制御を行ってもよい。具体的には、テレビ処理の開始時において、CPU10は、テレビ放送を表示する第2モードとなるようにテレビ2に対して入力切替の制御を行うようにしてもよい。これによれば、第1テレビ操作状態への遷移時にユーザはテレビ2の入力切替の操作を行う必要がないので、ユーザの操作をより簡易にすることができる。なお、入力切替の制御は、上記ステップS24における第1の方法で行われてもよいし第2の方法で行われてもよい。
また、他の実施形態においては、第1テレビ操作状態からメニュー状態あるいはブラウザ状態への遷移時に、(ゲーム装置3からの画像を表示するように)テレビ2の入力が切り替えられてもよい。すなわち、テレビ2が、ゲーム装置3から入力される画像を表示する第1モードと、テレビ放送の画像を表示する第2モードとを切り替え可能である場合において、CPU10は、端末装置7において装置制御画像からアプリ選択画像(あるいはブラウザ画像)への表示の切り替えが行われることに応じて、テレビ2のモードを第1モードへ切り替える制御を行ってもよい。具体的には、ステップS16の判定結果が肯定となる場合、CPU10は、ゲーム装置3からの画像を表示する第1モードとなるようにテレビ2に対して入力切替の制御を行うようにしてもよい。また、ステップS17の判定結果が肯定となる場合、CPU10は、上記第1モードとなるようにテレビ2に対して入力切替の制御を行うようにしてもよい。これによれば、第1テレビ操作状態から他の状態への遷移時にユーザはテレビ2の入力切替の操作を行う必要がないので、ユーザの操作をより簡易にすることができる。なお、入力切替の制御は、上記ステップS24における第1の方法で行われてもよいし第2の方法で行われてもよい。
なお、テレビ2の機種によっては、複数種類の入力を順に切り替える指示(例えば、入力番号が「入力1」から「入力5」までの5種類の入力を順に1つずつ切り替える指示)のみが可能であり、テレビ放送を表示する第2モードを指定して入力を切り替える指示を行うことができない場合がある。その場合には、第1モードと第2モードとの間の切り替えに必要となる入力切替の指示回数を予め登録しておき、CPU10は、登録しておいた回数だけ入力切替の指示を行うようにしてもよい。例えば、テレビ放送を表示するのが「入力1」で、ゲーム装置3からの画像を表示するのが「入力3」であり、「入力1」から「入力3」へ切り替えるために入力切替の指示が2回必要である場合、ゲーム装置3は、入力切替の指示回数として“2”を記憶しておく。なお、ゲームシステム1の初期設定時において、ゲーム装置3に対応する入力の番号をユーザに登録させることによって、ゲーム装置3が上記の回数を算出することも可能である。
(ブラウザ処理)
図20は、ゲーム装置3で実行されるブラウザ処理の流れを示すフローチャートである。まずステップS21において、ブラウザ画像として上記ホームページの画像を端末装置7に表示する。すなわち、CPU10は、ブラウザ画像を生成し、生成されたブラウザ画像を端末装置7へ出力(送信)する。ブラウザ画像は、ネットワーク90を介して取得されるウェブページを含む画像であればどのようなものであってもよい。以下、図21を参照して、本実施形態におけるブラウザ画像について説明する。
図21は、端末装置7に表示されるブラウザ画像の一例を示す図である。図21に示すように、ブラウザ画像は、ウェブページ表示領域141、スクロールバー142、戻るボタン143、進むボタン144、キーワード領域145、検索ボタン146、リモコン表示ボタン147を含む。さらに、ブラウザ画像には、上述のメニューアイコン124およびテレビアイコン125が含まれる。図21に示すブラウザ画像は、ウェブページを表示するとともにウェブページに対する操作を行うための操作画像である。
図21において、ウェブページ表示領域141は、ネットワーク90から取得されるデータに基づいて生成されるウェブページの画像が表示される領域である。ウェブページ表示領域141に表示されるウェブページは、スクロールバー142のつまみを上下に移動させることによって上下にスクロールして表示させることができる。戻るボタン143は、現在表示されているウェブページの1つ前に表示したウェブページを表示させる指示を表す画像である。進むボタン144は、現在表示されているウェブページの1つ後に表示したウェブページを表示させる指示を表す画像である。キーワード領域145は、入力された検索キーワードが表示される領域である。検索ボタン146は、検索キーワードを用いてウェブページの検索を行う指示を表す画像である。上記ボタン143〜146は、従来の一般的なブラウザにおけるボタンと同様の機能であってもよい。
リモコン表示ボタン147は、リモコン画像(図24)を表示させる指示を表す画像である。リモコン画像の詳細については、後述する中断時処理において説明する。また、メニューアイコン124およびテレビアイコン125は、図16および図18に示すものと同じである。したがって、ブラウザ状態においては、メニューアイコン124またはテレビアイコン125を選択する操作を行うことによって、ユーザは、メニュー状態または第1テレビ操作状態へゲームシステム1を容易に遷移させることができる。
上記ステップS31において、CPU10およびGPU11bは、ブラウザ画像を生成するために必要なデータをメインメモリおよびVRAM11dから読み出し、読み出したデータを用いてブラウザ画像を生成する。なお、本実施形態におけるステップS1においては、上記ウェブページ表示領域141内に表示される画像は、メインメモリに記憶されるホームページデータ110を用いて生成される。したがって、本実施形態においては、ブラウザ状態へ遷移した直後であってもブラウザ画像を端末装置7に迅速に表示することができる。また、生成されたブラウザ画像はVRAM11dに記憶される。さらに、CPU10は、ブラウザ画像を端末装置7へ出力する。画像を端末装置7へ出力することによって端末装置7に当該画像を表示させる処理については上記ステップS12と同様である。これによって、ブラウザ画像はLCD51に表示される。なお、CPU10は、ブラウザ画像の少なくとも一部の領域を端末装置7へ出力すればよい。例えば、CPU10は、ブラウザ画像のうちの一部の領域を拡大して端末装置7に表示させるようにしてもよい。これによれば、一般的にはテレビ2の画面よりも小さい画面を有する端末装置7においてもブラウザ画像を見やすく表示することができる。また、ステップS31においては、画像のデータと共に音声のデータが端末装置7へ送信され、端末装置7のスピーカ77から音声が出力されてもよい。ステップS31の次にステップS32の処理が実行される。
ステップS32において、CPU10は端末装置7から各種データを取得する。ステップS32の処理は上述のステップS11と同様である。ステップS32の次にステップS33の処理が実行される。
ステップS33において、CPU10は、メニュー状態へ遷移するか否かを判定する。ステップS33の処理は上述のステップS25の処理と同様である。ステップS33の判定結果が肯定である場合、CPU10はブラウザ処理を終了し、上記メニュー処理を実行する。一方、上記ステップS33の判定結果が否定である場合、ステップS34の処理が実行される。
ステップS34において、CPU10は、第1テレビ操作状態へ遷移するか否かを判定する。ステップS34の処理は上述のステップS16の処理と同様である。ステップS34の判定結果が肯定である場合、CPU10はブラウザ処理を終了し、上記テレビ処理を実行する。一方、上記ステップS34の判定結果が否定である場合、ステップS35の処理が実行される。
ステップS35において、CPU10は、その他のブラウザ処理を実行する。その他のブラウザ処理とは、上記ステップS31〜S34の処理以外にブラウザ処理において実行される処理である。例えば、CPU10は、上記ボタン143〜146に対する選択操作に応じてボタンに応じた処理を実行したり、スクロールバー142に対するスクロール操作に応じてウェブページをスクロールさせて表示する処理等を実行したりする。その他、CPU10は、ステップS35ウェブページに含まれるリンク情報に対する選択操作が行われた場合にリンク先のウェブページを取得する処理や、ウェブページに動画が含まれる場合に当該動画を再生する処理等を実行する。上記ステップS35においては、一般的なブラウザにおいて実行される種々の処理が実行されてもよい。
また、CPU10は、テレビ用画像を生成してテレビ2へ出力する処理を実行してもよい。例えば、CPU10は、ウェブページの全部または一部の画像をテレビ2へ出力してもよい。具体的には、端末装置7に表示されるウェブページに動画が含まれる場合、CPU10は、動画を構成する画像をテレビ2へ逐次出力してもよい。これによれば、ユーザは、ウェブページの動画をより大きなテレビ2の画面で視聴することができる。
なお、本実施形態においてはブラウザ画像は少なくとも端末装置7に表示されるものとしたが、ブラウザ画像は端末装置7およびテレビ2の少なくとも一方に表示されればよい。ブラウザ画像が端末装置7に表示される場合には、テレビ2を他の用途に利用することができるというメリットがある。また、ブラウザ画像がテレビ2に表示される場合には、ブラウザ画像を大きな画面で見やすく表示することができ、例えばウェブページに含まれる動画をテレビ2に表示することも可能である。また、他の実施形態においては、ブラウザ画像を出力する対象となる表示装置をユーザが選択できるようにしてもよい。
上記ステップS35の次に、ステップS32の処理が再度実行される。以降、ステップS33およびS34のいずれかの判定における判定結果が肯定となるまで、ブラウザ処理が繰り返し実行される。
以上に説明した開始状態における処理(メニュー処理、テレビ処理、およびブラウザ処理)によれば、ゲーム装置3は、メイン操作画像として、アプリ選択画像と、装置制御画像と、ブラウザ画像とを生成可能である。そして、アプリ選択画像と装置制御画像とブラウザ画像とを所定の変更操作に応じて切り替えて端末装置7へ出力する。したがって、ユーザは、アプリケーションを選択する画面と、番組表を見てテレビを操作する画面と、ウェブページを閲覧する画面とを変更操作によって容易に切り替え、種々の用途でゲームシステム1を利用することができる。特に、本実施形態においては、開始状態における3種類の各状態のいずれかである場合、他の2つの状態へ遷移するための2つのアイコンが常に表示されるので、ユーザは、アイコンを選択する1回の操作で迅速に所望の他の状態へゲームシステム1を遷移させることができる。また、本実施形態によれば、ゲームシステム1を利用してアプリケーションの選択やウェブページの閲覧を行う状態からテレビ番組を視聴しようとする場合、ユーザは、変更操作を行って装置制御画像を端末装置7に表示させて制御指示の操作を行うだけでよく、端末装置7を用いて切り替え操作を容易に行うことができる。
(中断時処理)
次に、中断時処理の詳細について説明する。図22は、ゲーム装置3で実行されるアプリ中断処理の流れを示すフローチャートである。上述のアプリ実行状態においては、アプリケーションに応じた処理内容でアプリ実行処理が実行される。ここで、アプリ実行状態において所定の中断操作が行われた場合、CPU10は、アプリ実行処理を中止(一時停止)し、図22に示すアプリ中断処理を実行する。上記所定の中断操作は、端末装置7に対するどのような操作であってもよいが、本実施形態においては、ホームボタン54Cを押下する操作である。なお、アプリケーションにおける操作のためにホームボタン54Cを用いないようにすることが好ましく、これによれば、ユーザは、アプリケーションの実行中における任意のタイミングで中断状態に遷移させることができる。
なお、本実施形態においては、中断状態においてはアプリケーションの実行自体が中断(一時停止)される。ただし、他の実施形態においては、アプリケーションの実行は継続されてもよい。CPU10は、例えばアプリケーションの内部処理の計算を実行する等、ユーザの使用に影響を与えない範囲でアプリケーションにおける情報処理を実行するようにしてもよい。
アプリ中断処理においては、まずステップS41において、CPU10は、設定画像を端末装置7に表示する。すなわち、CPU10は、設定画像を生成し、生成された設定画像を端末装置7へ出力(送信)する。したがって、本実施形態においては、中断状態への遷移時にはゲームシステム1はまず設定状態へと遷移する。なお、他の実施形態においては、中断状態への遷移時にはゲームシステム1はまず第2テレビ操作状態へと遷移してもよい。また、上記設定画像は、ゲームシステム1(端末装置7)に対する設定操作を表す操作画像であればどのようなものであってもよい。以下、図23を参照して、本実施形態における設定画像について説明する。
図23は、端末装置7に表示される設定画像の一例を示す図である。図23に示すように、設定画像は、アプリ終了ボタン151、アプリ中止ボタン152、アプリ再開ボタン153、リモコン表示ボタン154、端末設定ボタン155、コントローラ設定ボタン156、リストボタン157、説明書ボタン158を含む。
アプリ終了ボタン151は、実行が中断されているアプリケーションを終了する指示を表す画像である。アプリ中止ボタン152は、上記アプリケーションを一時停止する指示を表す画像である。アプリ再開ボタン153は、上記アプリケーションを再開する指示である。これらのボタン151〜153によって、中断状態からアプリケーションを終了または一時停止してメニュー状態へ遷移することも可能であるし、中断状態からアプリケーションを再開することも可能である。
リモコン表示ボタン154は、リモコン画像(図24)を端末装置7に表示させる指示を表す画像である。詳細は後述するが、リモコン画像は、テレビ2に対する操作を行うための操作画像であり、テレビ2に対する操作を表すボタン画像等を含む操作画像である。
端末設定ボタン155は、端末装置7に対する各種の設定を行うための画面を表示する指示を表す画像である。コントローラ設定ボタン156は、コントローラ5に対する各種の設定を行うための画面を表示する指示を表す画像である。リストボタン157は、予め登録されている他のユーザ(知人や友人)のリストを表示する指示を表す画像である。例えば、ユーザは、リストから選択した他のユーザとゲームの対戦を行ったり、通信を行ったりすることができる。説明書ボタン158は、ゲームシステム1(または端末装置7)の説明書を表示する指示を表す画像である。これらのボタン155〜158によって、ユーザは、ゲームシステム1に関する各種の設定の変更を行うことができる。
上記ステップS41において、CPU10およびGPU11bは、上記各ボタン151〜158の画像等、設定画像を生成するために必要なデータをVRAM11dから読み出し、読み出したデータを用いて設定画像を生成する。また、生成された設定画像はVRAM11dに記憶される。さらに、CPU10は、設定画像を端末装置7へ出力する。画像を端末装置7へ出力することによって端末装置7に当該画像を表示させる処理については上記ステップS12と同様である。これによって、設定画像はLCD51に表示される。また、ステップS41においては、画像のデータと共に音声のデータが端末装置7へ送信され、端末装置7のスピーカ77から音声が出力されてもよい。ステップS41の次にステップS42の処理が実行される。
ステップS42において、CPU10は端末装置7から各種データを取得する。ステップS42の処理は上述のステップS11と同様である。ステップS42の次にステップS43の処理が実行される。
ステップS43において、CPU10は、リモコン画像を表示するか否かを判定する。すなわち、CPU10は、設定状態から第2テレビ操作状態へと遷移させる操作が行われたか否かを判定する。この操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示されるリモコン表示ボタン154をタッチする操作である。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示されるリモコン表示ボタン154がタッチされたか否かを判定する。上記ステップS43の判定結果が肯定である場合、ステップS44の処理が実行される。一方、上記ステップS43の判定結果が否定である場合、ステップS44の処理がスキップされてステップS45の処理が実行される。
ステップS44において、CPU10は、リモコン画像を端末装置7に表示する。すなわち、CPU10は、リモコン画像を生成し、生成されたリモコン画像を端末装置7へ出力(送信)する。リモコン画像は、テレビ2に対する操作を表す操作画像であればどのようなものであってもよい。以下、図24を参照して、本実施形態におけるリモコン画像について説明する。
図24は、端末装置7に表示されるリモコン画像の一例を示す図である。図24に示すように、リモコン画像は、上記設定画像と同様のアプリ終了ボタン151およびアプリ中止ボタン152を含む。したがって、本実施形態においては、第2テレビ操作状態においても設定状態と同様、アプリケーションを終了または一時停止してメニュー状態へ遷移することが可能である。なお、他の実施形態においては、CPU10は、例えば上記設定画像と同様のアプリ再開ボタン153を端末装置7に表示させることによって、第2テレビ操作状態からアプリケーションを再開してアプリ実行状態へ遷移することが可能であるようにしてもよい。
また、戻るボタン167は、第2テレビ操作状態から設定状態へ遷移する(戻る)指示を表す画像である。つまり、本実施形態においては、ユーザは、上記リモコン表示ボタン154または戻るボタン167を選択する操作によって、設定画像とリモコン画像とを切り替えて表示することができる。
また、リモコン画像は、電源ボタン161、入力切替ボタン162、音量増加ボタン163、音量減少ボタン164、チャンネル増加ボタン165、およびチャンネル減少ボタン166を含む。上記ボタン161〜166は、テレビ2に対する制御指示を表す画像である。電源ボタン161は、テレビ2の電源のオン/オフを切り替える指示を表す画像である。入力切替ボタン162は、テレビ2における入力を切り替える(すなわち、テレビ番組の映像を入力して表示するモードと、ゲーム装置3からの画像を入力して表示するモードとの間の切り替え)指示を表す画像である。音量増加ボタン163は、テレビ2の音量を上げる指示を表す画像である。音量減少ボタン164は、テレビ2の音量を上げる指示を表す画像である。チャンネル増加ボタン165は、テレビ2の選局を昇順に1つずつ変更する指示を表す画像である。チャンネル減少ボタン166は、テレビ2の選局を降順に1つずつ変更する指示を表す画像である。上記各ボタン161〜166によって、ユーザはテレビ2の電源、入力切替、音量、および選局を操作することができる。なお、他の実施形態においては、上記各ボタンの他、例えば、各チャンネルを表すボタンや、テレビ放送から取得される番組表を表示する指示を表すボタンや、(テレビ2が録画機能を有する場合)録画の指示を表すボタン等、一般的なテレビのリモコンが有するボタンが端末装置7に表示されてもよい。
以上のように、本実施形態においては、リモコン画像は、各種の制御指示を表す画像を含む画像である。なお、他の実施形態においては、リモコン画像は、制御指示の内容(例えば音量の増加)と、当該制御指示を行うためのボタン(例えば第2Rボタン54L)との割り当てを表す画像であってもよい。また、リモコン画像は、上記装置制御画像と同様、番組表を含んでもいてもよい。
上記ステップS44において、CPU10およびGPU11bは、上記各ボタン151〜153および161〜166の画像等、リモコン画像を生成するために必要なデータをVRAM11dから読み出し、読み出したデータを用いてリモコン画像を生成する。また、生成されたリモコン画像はVRAM11dに記憶される。さらに、CPU10は、リモコン画像を端末装置7へ出力する。画像を端末装置7へ出力することによって端末装置7に当該画像を表示させる処理については上記ステップS12と同様である。これによって、リモコン画像はLCD51に表示される。ステップS44の処理によって、ゲームシステム1は設定状態から第2テレビ操作状態へと遷移する。また、ステップS44においては、画像のデータと共に音声のデータが端末装置7へ送信され、端末装置7のスピーカ77から音声が出力されてもよい。ステップS44の次にステップS45の処理が実行される。
なお、他の実施形態においては、第2テレビ操作状態への遷移時に、(テレビ放送を表示するように)テレビ2の入力が切り替えられてもよい。すなわち、テレビ2が、ゲーム装置3から入力される画像を表示する第1モードと、テレビ放送の画像を表示する第2モードとを切り替え可能である場合において、CPU10は、端末装置7にサブ操作画像(より具体的にはリモコン画像)が表示されることに応じて、テレビ2のモードを第2モードへ切り替える制御を行ってもよい。具体的には、上記ステップS44において、CPU10は、テレビ放送を表示する第2モードとなるようにテレビ2に対して入力切替の制御を行うようにしてもよい。これによれば、第2テレビ操作状態への遷移時にユーザはテレビ2の入力切替の操作を行う必要がないので、ユーザの操作をより簡易にすることができる。なお、入力切替の制御は、上記ステップS24における第1の方法で行われてもよいし第2の方法で行われてもよい。
ステップS45において、CPU10は、制御指示があったか否かを判定する。制御指示は、テレビ2に対する制御を行う指示である。制御指示を行うための操作はどのような操作であってもよい。本実施形態においては、上記ステップS23と同様、端末装置7に表示される、制御指示を表すボタン161〜166をタッチする操作によって制御指示が行われる。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示される上記ボタン161〜166のいずれかがタッチされたか否かを判定する。上記ステップS45の判定結果が肯定である場合、ステップS46の処理が実行される。一方、上記ステップS45の判定結果が否定である場合、ステップS46の処理がスキップされてステップS47の処理が実行される。
ステップS46において、CPU10は、上記制御指示に応じた制御をテレビ2に対して行う。ステップS46の処理は上述のステップS24と同様である。すなわち、CPU10は、ゲーム装置3が端末装置7を介してテレビ2へ制御信号を出力する第1の方法、および/または、ゲーム装置3が直接テレビ2へ制御信号を出力する第2の方法によってテレビ2を制御する。ステップS46の次にステップS47の処理が実行される。
ステップS47において、CPU10は、設定画像を表示するか否かを判定する。すなわち、CPU10は、第2テレビ操作状態から設定状態へと遷移させる操作が行われたか否かを判定する。この操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示される戻るボタン167をタッチする操作である。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示される戻るボタン167がタッチされたか否かを判定する。上記ステップS47の判定結果が肯定である場合、ステップS48の処理が実行される。一方、上記ステップS47の判定結果が否定である場合、ステップS48の処理がスキップされてステップS49の処理が実行される。
ステップS48において、CPU10は設定画像を端末装置7に表示する。ステップS48の処理は上記ステップS41の処理と同じである。ステップS48の処理によって、ゲームシステム1は第2テレビ操作状態から設定状態へと遷移する。ステップS48の次にステップS49の処理が実行される。
ステップS49において、CPU10は各種の設定処理を実行する。すなわち、CPU10は、上述の端末設定ボタン155、コントローラ設定ボタン156、リストボタン157、および説明書ボタン158が選択された(タッチされた)か否かを判定する。そして、いずれかのボタンが選択された場合には、選択されたボタンに応じた処理を実行する。ステップS49における設定処理は、従来における一般的なゲームシステムにおいて実行される設定処理と同様であってもよい。ステップS49の次にステップS50の処理が実行される。
ステップS50において、CPU10は、メニュー状態へ遷移するか否かを判定する。すなわち、実行が中断されているアプリケーションを終了または一時中止するか否かを判定する。この判定は、上記アプリケーションを終了または一時中止する操作(中断状態からメニュー状態へと遷移させる操作)が行われたか否かを判定する。この操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示されるアプリ終了ボタン151またはアプリ中止ボタン152をタッチする操作である。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示されるアプリ終了ボタン151またはアプリ中止ボタン152がタッチされたか否かを判定する。上記ステップS50の判定結果が肯定である場合、ステップS51の処理が実行される。一方、上記ステップS50の判定結果が否定である場合、ステップS52の処理が実行される。
ステップS51において、CPU10はアプリケーションの終了処理を行う。具体的には、アプリケーションで使用されるデータのうちで保存すべきデータをセーブデータ111としてメインメモリに記憶する。なお、セーブデータ111は、適宜のタイミングでフラッシュメモリ17や、アプリケーションが記憶される記憶媒体に記憶される。また、上記ステップS50においてアプリ終了ボタン151が選択された場合には、次回にアプリケーションが起動される場合には所定の初期状態からアプリケーションが開始される。一方、上記ステップS50においてアプリ中止ボタン152が選択された場合には、次回にアプリケーションが起動(再開)される場合には中断時の状態からアプリケーションが開始される。したがって、CPU10は、アプリ終了ボタン151が選択された場合とアプリ中止ボタン152が選択された場合とでセーブデータ111として記憶する内容が異なるようにしてもよい。ステップS51の後、CPU10は中断時処理を終了する。その後、ゲームシステム1は中断状態からメニュー状態へ遷移する。すなわち、CPU10はメニュー処理(図16)を実行する。
以上のように、本実施形態においては、CPU10は、アプリケーションの実行中において端末装置7に対して所定の操作(中断操作)が行われた場合、実行中のアプリケーションを終了する指示を表す終了指示画像(アプリ終了ボタン151)を含むサブ操作画像を生成する(ステップS41)。そして、終了指示画像が指定されることによってアプリケーションを終了する指示が行われた場合、当該アプリケーションの実行を終了する(ステップS50)。さらに、アプリケーションの実行が終了された場合、CPU10は、メイン操作画像を生成する。このように、本実施形態によれば、実行中のアプリケーションが終了されるとメイン操作画像(より具体的にはアプリ選択画像)が端末装置7に表示される。したがって、ユーザは、アプリケーションを終了した後、次に実行したいアプリケーションを容易に選択することができる。
なお、本実施形態においては、アプリ中断処理においてアプリケーションが終了された場合、ゲームシステム1はメニュー状態へ遷移した。なお、他の実施形態においては、上記の場合、ゲームシステム1は第1テレビ操作状態またはブラウザ状態へ遷移してもよい。例えば、中断状態において所定の操作が行われたことに応じて、ゲームシステム1は第1テレビ操作状態またはブラウザ状態へ遷移することができるようにしてもよい。具体的には、CPU10は、上記設定画像およびリモコン画像において、テレビアイコン125および/またはブラウザアイコン126を表示するようにしてもよい。そして、テレビアイコン125を選択する操作が行われた場合、CPU10は、アプリケーションを終了して装置制御画像を端末装置7に表示する。これによって、ゲームシステム1は第1テレビ操作状態へ遷移する。また、ブラウザアイコン126を選択する操作が行われた場合、CPU10は、アプリケーションを終了してブラウザ画像を端末装置7に表示する。これによって、ゲームシステム1はブラウザ状態へ遷移する。以上によれば、ユーザは、中断状態から、開始状態の3つの状態のうちの所望の状態へゲームシステム1を遷移させることができる。また例えば、CPU10は、アプリケーションが終了された場合、上記3つの状態のうちから遷移すべき状態を所定の条件に応じて決定するようにしてもよい。具体的には、CPU10は、遷移すべき状態を上記初期状態としてもよい。
ステップS52において、CPU10は、実行が中断されていたアプリケーションを再開するか否かを判定する。すなわち、CPU10は、上記アプリケーションを再開する操作(中断状態からアプリ実行状態へと遷移させる操作)が行われたか否かを判定する。この操作はどのような操作であってもよく、本実施形態においては、端末装置7に表示されるアプリ再開ボタン153をタッチする操作である。すなわち、CPU10は、端末操作データ104のタッチデータをメインメモリから読み出し、タッチデータに基づいて、端末装置7に表示されるアプリ再開ボタン153がタッチされたか否かを判定する。上記ステップS52の判定結果が肯定である場合、CPU10は中断時処理を終了し、アプリ実行処理を実行する。これによって、アプリケーションの実行が再開され、ゲームシステム1は中断状態からアプリ実行状態へ遷移する。一方、上記ステップS52の判定結果が否定である場合、ステップS42の処理が再度実行される。以降ステップS50およびS52のいずれかの判定における判定結果が肯定となるまで、中断時処理が繰り返し実行される。
また、他の実施形態においては、第2テレビ操作状態からアプリ実行状態への遷移時に、(ゲーム装置3からの画像を表示するように)テレビ2の入力が切り替えられてもよい。すなわち、テレビ2が、ゲーム装置3から入力される画像を表示する第1モードと、テレビ放送の画像を表示する第2モードとを切り替え可能である場合において、CPU10は、端末装置7において表示される画像がリモコン画像からアプリケーションの実行によって生成される画像へと切り替えられることに応じて、テレビ2のモードを第1モードへ切り替える制御を行ってもよい。具体的には、ステップS52の判定結果が肯定となる場合、CPU10は、ゲーム装置3からの画像を表示する第1モードとなるようにテレビ2に対して入力切替の制御を行うようにしてもよい。これによれば、第2テレビ操作状態からアプリ実行状態への遷移時にユーザはテレビ2の入力切替の操作を行う必要がないので、ユーザの操作をより簡易にすることができる。また、他の実施形態においては、CPU10は、第2テレビ操作状態から設定画像状態への遷移時、メニュー状態への遷移時、ブラウザ状態への遷移時においても、上記の制御を行うようにしてもよい。なお、入力切替の制御は、上記ステップS24における第1の方法で行われてもよいし第2の方法で行われてもよい。
以上のように、本実施形態においては、CPU10は、アプリケーションの実行中において端末装置7に対して所定の操作(中断操作)が行われた場合、当該アプリケーションの実行を一時停止する。また、CPU10は、サブ操作画像が端末装置7に表示される状態(中断状態)において、アプリケーションの実行を再開する再開指示(アプリ再開ボタン153を選択する操作)があったか否かを端末操作データに基づいて判定する。そして、再開指示があった場合にはCPU10はアプリケーションの実行を再開する。このように、本実施形態においては、実行中のアプリケーションが中断された場合、ユーザは再開指示によってアプリケーションを容易に再開することができる。
以上のように本実施形態においては、CPU10は、アプリケーションの実行中において端末装置7に対して所定の操作(中断操作)が行われた場合、所定のサブ操作画像を生成する。そして、サブ操作画像が端末装置7の表示部に表示される状態(中断状態)において、制御指示があったか否かを端末操作データに基づいて判定する(ステップS45)。したがって、本実施形態においては、ユーザは、端末装置7を用いてゲームシステム1のアプリケーションを利用している際、アプリケーションの利用を中断してテレビ2を操作することができる。これによれば、ユーザは、アプリケーションの実行を終了しなくてもテレビ2に対する操作を行うことができるので、ゲームシステム1においてテレビ2を用いる状態と、番組を表示するためのテレビ2を用いる状態との切り替え操作がより容易になる。例えば、ユーザは、アプリケーションの利用を一時中断してテレビ2の入力を切り替えてテレビ番組を視聴したり、テレビ番組の視聴を一時中断してアプリケーションを利用したりすることを、端末装置7を用いて容易に行うことができる。
また、本実施形態においては、上述のブラウザ状態においても、リモコン画像が表示される。すなわち、ブラウザ処理(図20)におけるステップS32〜S35の処理ループにおいては、CPU10は、リモコン画像を表示する操作が行われたか否か、具体的には、リモコン表示ボタン147を選択する(タッチする)操作が行われた否かを判定する。そして、判定結果が肯定である場合、ステップS44と同様の処理が実行される。その結果、リモコン画像が端末装置7に表示される。なお、ブラウザ状態において表示されるリモコン画像においては、上記アプリ終了ボタン151およびアプリ中止ボタン152は含まれない。また、戻るボタン167が選択された場合には、CPU10はブラウザ画像を端末装置7に表示する。以上のように、本実施形態においては、ブラウザ状態においてもユーザはリモコン画像を表示させることができ、テレビ2を操作することができる。
また、他の実施形態においては、開始状態における3種類の各状態から、サブ操作画像(設定画像およびリモコン画像)が表示される状態へと遷移可能としてもよい。すなわち、上記3種類の状態において所定の操作が行われた場合、CPU10は、上記中断時処理と同様の処理を実行するようにしてもよい。なお、このとき、設定画像およびリモコン画像においては、上記アプリ終了ボタン151およびアプリ中止ボタン152は含まれない。また、アプリ再開ボタン153に代えて、元の状態へと遷移する指示を表すボタンの画像が表示される。これによれば、開始状態においても上記サブ操作画像を容易に表示させることができるので、ユーザは、開始状態においてテレビ2に対する操作をより容易に行うことができる。
なお、他の実施形態においては、上記中断状態において、端末装置7にリモコン画像が表示される他、テレビ2に番組表の画像を表示してもよい。すなわち、サブ操作画像が端末装置7に表示される状態において、CPU10は、テレビの番組表を含む画像を生成してテレビ2へ出力してもよい。なお、この番組表の画像は、上記テレビ処理と同様、ネットワーク90を介して外部装置91から取得されてもよい。また、番組表がテレビ2に表示されるタイミングは、どのようなタイミングであってもよい。例えば、番組表がテレビ2に表示されるタイミングは、中断時処理が開始される時点であってもよいし、リモコン画像が端末装置7に表示される時点であってもよいし、ユーザによって所定の表示指示が行われた時点であってもよい。
(ゲームシステム1の終了時の動作)
なお、本実施形態においては、上述の情報処理(開始処理、メニュー処理、テレビ処理、ブラウザ処理、アプリ実行処理、および中断時処理)における任意のタイミングで、ユーザはゲームシステム1を終了することが可能である。すなわち、所定の終了操作(端末装置7の電源ボタン54Mあるいはゲーム装置3の電源ボタン24を押下する等)が行われると、CPU10は所定の終了処理を実行し、ゲーム装置3および端末装置7の電源がオフにされる。なお、終了処理には、その時点におけるゲームシステム1の状態(上記メニュー状態等)を表すデータをフラッシュメモリ17に記憶する処理が含まれる。このデータによって、次回の起動時に初期状態を決定することができる。
以上に説明した情報処理によれば、ユーザは、番組表の閲覧、ウェブページの閲覧、各種アプリケーションの利用等、種々の用途でゲームシステム1を利用することができる。また、端末装置7の画面を操作画面として用いることで、ゲームシステム1の利用中もテレビ番組を視聴する等、テレビ2を他の用途で利用することができるので、ゲームシステム1とテレビ2とを並行して利用することができる。これによって、ユーザは、ゲームシステム1の利用と(ゲームシステム1以外の用途での)テレビ2の利用との切り換えをスムーズに行うことができる。例えば、ユーザは、テレビ番組を視聴している合間にゲームシステム1を利用したり、ゲームシステム1を利用している合間にテレビ番組を視聴したりするといった利用態様を、よりスムーズに行うことができる。さらに、ゲームシステム1およびテレビ2のいずれに対する操作も端末装置7で行うことができるので、ゲームシステム1を利用する状態と、(ゲームシステム1以外の用途で)テレビを利用する状態との間の切り替え操作を容易に行うことができる。
[7.変形例]
上記実施形態は本発明を実施する一例であり、他の実施形態においては例えば以下に説明する構成で本発明を実施することも可能である。
(開始状態に関する変形例)
上記実施形態においては、開始状態には3種類の状態が含まれるものとし、各状態において端末装置7に表示される画像が異なるものとした。ここで、他の実施形態においては、開始状態に含まれる状態はいくつであってもよい。また、開始状態に含まれる各状態においては、端末装置7に表示される画像が異なっていてもよいし、同じであってもよい。例えば、上記各状態においては、端末装置7に表示される画像が同じで、各状態において可能な操作が異なっていてもよい。
(ゲームシステム1において用いられる所定の表示装置に関する変形例)
上記実施形態においては、ゲームシステム1において用いられる所定の表示装置として、テレビ放送を受信して番組を表示することが可能なテレビ2を例として説明した。ここで、所定の表示装置は、テレビ2に限らず、複数の入力を有し、画像を表示することが可能な装置であればどのようなものであってもよい。例えば、所定の表示装置は、(ゲーム装置3とは別の)パーソナルコンピュータのモニタとして用いられる表示装置であってもよいし、録画再生機器のモニタとして用いられる表示装置でもよい。
(ゲームシステム1の構成に関する変形例)
上記実施形態においては、ゲームシステム1は、ゲーム装置3と、表示部(LCD51)を備える端末装置7と、コントローラ5と、テレビ2とを備える構成であった。ここで、ゲームシステムは、ゲーム装置と操作装置とを含み、操作装置の表示部および所定の表示装置に画像を表示させることができる構成であればよい。例えば、ゲームシステムは、コントローラ5や所定の表示装置(テレビ2)を含まない形態で提供されてもよい。
また、上記実施形態においては、ゲームプログラムを実行可能なゲーム装置を含むゲームシステムを例として説明したが、本発明は、任意のアプリケーションを実行する任意の情報処理システムおよび情報処理装置に適用することができる。すなわち、上記実施形態においては、ゲーム装置が実行可能な1以上のアプリケーションのうちにゲームアプリケーションが含まれたが、ゲームアプリケーションは含まれていなくてもよい。
(ゲーム処理を実行する情報処理装置に関する変形例)
上記実施形態においては、ゲームシステム1において実行される一連の情報処理をゲーム装置3が実行したが、情報処理の一部は他の装置によって実行されてもよい。例えば、他の実施形態においては、情報処理の一部(例えば、端末用画像の生成処理やアプリケーションの実行処理)を端末装置7が実行するようにしてもよい。また、他の実施形態では、互いに通信可能な複数の情報処理装置を有する入力システムにおいて、当該複数の情報処理装置が情報処理を分担して実行するようにしてもよい。すなわち、ゲームシステムは、ゲーム装置と操作装置とを含み、(a)操作装置に対する操作を表す操作データを取得する取得部と、(b)ゲーム装置の起動後の開始状態において、操作装置の表示部に表示するための所定の第1操作画像を生成する第1操作画像生成部と、(c)第1操作画像を操作装置へ出力する操作画像出力部と、(d)開始状態において、ゲームアプリケーションを含み、ゲーム装置が実行可能な1以上のアプリケーションのうちから1つを選択する選択指示があったか否か、および、操作装置とは別体の所定の表示装置に対する制御を行う制御指示があったか否かを操作データに基づいて判定する指示判定部と、(e)選択指示があった場合、選択されたアプリケーションを実行し、アプリケーションの実行によって生成された画像を操作装置および所定の表示装置の少なくとも一方へ出力するアプリケーション実行部と、(f)制御指示があった場合、当該制御指示に応じた制御を所定の表示装置に対して行う装置制御部とを備えていてもよい。このとき、1つの装置が上記(a)〜(f)の各部を備える構成であってもよいし、複数の装置が上記(a)〜(f)の各部を備える構成であってもよい。
なお、複数の情報処理装置において上記の情報処理が実行される場合には、各情報処理装置で実行される処理を同期させる必要があり、情報処理が複雑になってしまう。これに対して、上記実施形態のように、情報処理が1つのゲーム装置3によって実行され、端末装置7が画像を受信して表示する処理を行う場合(つまり、端末装置7がシンクライアント端末として機能する場合)には、複数の情報処理装置間で情報処理の同期をとる必要がなく、情報処理を簡易化することができる。
上記のように、本明細書で説明した種々のシステム、方法、および技術は、デジタル電子回路、コンピュータハードウェア、ファームウェア、ソフトウェア、またはこれら要素の組み合わせによって提供されてもよい。上記の技術を実現するための装置は、プログラム可能なプロセッサによる実行のためのコンピュータ読み取り可能な非一時的な記憶装置において実体的に具体化されるコンピュータプログラムプロダクト、入出力装置、およびコンピュータプロセッサを含んでもよい。上記技術を実現するための処理は、入力データを処理して所望の出力を生成することによって、要求される機能を実行するためのプログラムを実行する、プログラム可能なプロセッサによって実行されてもよい。上記の技術は、入力装置、出力装置、および情報記憶装置といったハードウェア資源との間でデータや指示のやり取りを行うプログラム可能なプロセッサを含むコンピュータシステム上で実行可能な1以上のコンピュータプログラムによって実現されてもよい。また、各コンピュータプログラムは、手続型やオブジェクト指向型の高水準プログラミング言語、アセンブリ言語、または、機械語によって実現されてもよく、必要に応じてコンパイルまたはインタプリタされて実行されてもよい。また、上記のプロセッサは、汎用または専用のマイクロプロセッサであってもよい。プロセッサは、一般的に、ROMまたはRAMからデータおよび指示を受け取る。また、上記の記憶装置は、(a)EPROM、EEPROM、フラッシュメモリのような半導体メモリ装置を含む不揮発性のメモリ、(b)内部ハードディスクあるいは着脱可能な外部ディスクのような磁気ディスク、(c)光磁気ディスク、(d)CDROM、に限定されず、あらゆる種類のコンピュータメモリを含む。上記のプロセッサや記憶装置は、ASIC(Application Specific Integrated Circuit)によって補充される、あるいは、ASICに組み込まれる形で実現されてもよい。
また、本明細書に記載の処理システム(回路)は、本明細書において記載された内容に応じたゲーム処理のような制御処理のためにプログラムされる。上記の内容に応じた指示を実行する少なくとも1つのCPUを含む処理システムが、上記の内容によって定義される処理動作を実行するための「プログラムされた論理回路」として作用するものであってもよい。