以下、図面を参照して、本発明の一実施形態に係るゲームシステム1について説明する。図1に示すゲームシステム1は、テレビジョン受像器等に代表される据置型の表示装置(以下、「テレビ」と記載する)2、据置型のゲーム装置3、光ディスク4、コントローラ5および入力端末装置7を含む。このゲームシステム1は、コントローラ5を用いたゲーム操作に基づいて、ゲーム装置3においてゲーム処理を実行し、ゲーム処理によって得られるゲーム画像をテレビ2および/または入力端末装置7に表示するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるための情報処理プログラム(典型的にはゲームプログラムのようなアプリケーションプログラム)が記憶されている。ゲーム装置3は、その前面に設けられた挿入口に挿入された光ディスク4に記憶されている情報処理プログラムを読み出して実行することによって情報処理(ゲーム処理)を実行する。
ゲーム装置3には、テレビ2が接続コードを介して接続される。テレビ2は、ゲーム装置3において実行されるゲーム処理によって得られるゲーム画像を表示する。テレビ2はスピーカ2a(図2)を有しており、スピーカ2aは、上記ゲーム処理の結果得られるゲーム音声を出力する。
なお、他の実施形態においては、ゲーム装置3と据置型の表示装置とは一体となっていてもよい。また、ゲーム装置3とテレビ2との通信は無線通信であってもよい。
コントローラ5は、自機に対して行われた操作を表す操作データ(以下、「コントローラ操作データ」という。)をゲーム装置3に与えるものである。たとえば、コントローラ5は、Bluetooth(ブルートゥース)(登録商標)の技術を用いた無線通信によってゲーム装置3と通信可能である。ただし、コントローラ5とゲーム装置3とは有線で接続されてもよい。また、この実施例では、ゲームシステム1に含まれるコントローラ5は1つであるが、ゲーム装置3は複数のコントローラ5と通信可能であり、所定台数のコントローラ5を同時に使用することによって複数人でゲームをプレイすることが可能である。コントローラ5は、十字ボタンおよび各種の押しボタン(Aボタン、Bボタン、+ボタン、−ボタン、1ボタン、2ボタンおよびホームボタンなど)を備え、十字ボタンおよび各種の押しボタン(これらをまとめて、「操作ボタン」と呼ぶことがある。)に対する入力状況(押下されたか否か)を表すコントローラ操作データをゲーム装置3に送信する。
なお、コントローラ5は、加速度センサやジャイロセンサを備えることにより、コントローラ5の向き(姿勢)や向き(姿勢)の変化(振り動作等)についてのデータ(加速度データや角速度データ)をゲーム装置3に送信することもできる。
入力端末装置7は、少なくとも、ゲーム装置3との間でデータを送受信する。ユーザ(プレイヤ)は、入力端末装置7を手に持って動かしたり、入力端末装置7を自由な位置に配置したりして使用することが可能である。詳細な構成は後述するが、入力端末装置7は、LCD51のような表示手段と、タッチパネル52、アナログスティック53A、53Bおよび操作ボタン(十字ボタン、Aボタン、Bボタン、Xボタン、Yボタン、+ボタン、−ボタン、1ボタン、2ボタンおよびホームボタンなど)54のような入力手段とを備える。たとえば、入力端末装置7は、Bluetooth(登録商標)の技術を用いた無線通信によってゲーム装置3と通信可能である。ただし、入力端末装置7とゲーム装置3とは有線で接続されてもよい。入力端末装置7は、ゲーム装置3で生成された画像(たとえばゲーム画像)のデータをゲーム装置3から受信し、画像をLCD51に表示する。つまり、入力端末装置7は、可搬型の表示装置として機能する。また、入力端末装置7は、自機に対して行われた操作の内容を表す操作データ(以下、「端末操作データ」という。)をゲーム装置3に送信する。つまり、入力端末装置7は、入力装置としても機能する。
なお、本実施形態では表示装置としてLCDを用いているが、入力端末装置7は、たとえばEL(Electro Luminescence)を利用した表示装置等、他の任意の表示装置を有していてもよい。
また、図1では、ゲームシステム1に含まれる入力端末装置7は1つであるが、ゲーム装置3は複数の入力端末装置7と通信可能である。
図2は、ゲーム装置3の電気的な構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
CPU10は、光ディスク4に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。CPU10は、システムLSI11に接続される。このシステムLSI11には、CPU10の他、外部メインメモリ12、ROM/RTC13、ディスクドライブ14およびAV−IC15が接続される。システムLSI11は、それに接続される各構成要素間におけるデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。
揮発性の外部メインメモリ12は、光ディスク4から読み出されたゲームプログラムや、フラッシュメモリ17から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、CPU10のワーク領域やバッファ領域として用いられる。ROM/RTC13は、ゲーム装置3の起動用のプログラムが組み込まれるROM(いわゆるブートROM)と、時間をカウントするクロック回路(RTC)とを有する。ディスクドライブ14は、光ディスク4からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ11eまたは外部メインメモリ12に、読み出したデータを書き込む。
システムLSI11には、入出力プロセッサ(I/Oプロセッサ)11a、GPU11b、DSP11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像データを生成する。ただし、VRAM11dに、ポリゴンデータやテクスチャデータ等のデータが記憶され、GPU11bは、そのデータを用いて画像データを生成する。本実施形態においては、ゲーム装置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、拡張コネクタ20、メモリカード用コネクタ21、コーデックLSI27に接続される。また、ネットワーク通信モジュール18にはアンテナ22が接続される。コントローラ通信モジュール19にはアンテナ23が接続される。コーデックLSI27は端末通信モジュール28に接続され、端末通信モジュール28にはアンテナ29が接続される。
入出力プロセッサ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へ送信される。本実施形態では、コーデック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は、端末操作データ、画像データ、および音声データを送信する。入力端末装置7から送信される各データはアンテナ29を介して端末通信モジュール28によって受信される。ここで、入力端末装置7からの画像データおよび音声データは、ゲーム装置3から入力端末装置7への画像データおよび音声データと同様の圧縮処理が施されている。
したがって、これら画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張処理が施されて入出力プロセッサ11aに出力される。
なお、入力端末装置7からの画像データは、図示しないカメラで撮影された撮影画像に対応する画像データなどを含み、入力端末画像7からの音声データは、マイク89(図3参照)によって検出されたプレイヤが発生する音(音声ないし拍手等)に対応する音声データなどを含む。
一方、入力端末装置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と接続されるようにしてもよい。
図3は、入力端末装置7の電気的な構成を示すブロック図である。図3に示すように、入力端末装置7は、図1に示した構成の他、タッチパネルコントローラ81、ユーザインタフェースコントローラ(UIコントローラ)85、コーデックLSI86、スピーカ87、サウンドIC88、マイク89、無線モジュール90、アンテナ91、およびフラッシュメモリ93を備える。これらの電子部品は、電子回路基板上に実装されてハウジング50内に収納される。
なお、図示は省略するが、入力端末装置7には、内蔵の電池または外部電源からの電力が供給される。
UIコントローラ85は、各種の入出力部に対するデータの入出力を制御するための回路である。UIコントローラ85は、タッチパネルコントローラ81、アナログスティック53(アナログスティック53Aおよび53B)、および操作ボタン54に接続される。また、UIコントローラ85は、コーデックLSI86に接続される。
タッチパネルコントローラ81は、タッチパネル52に接続され、タッチパネル52の制御を行う回路である。タッチパネルコントローラ81は、タッチパネル52からの信号に基づいて所定の形式のタッチ位置データを生成してUIコントローラ85へ出力する。タッチ位置データは、タッチパネル52の入力面においてタッチ入力(入力操作)が行われた位置(タッチ位置)の座標を表す。この実施例では、入力操作は、いわゆるシングルタッチで行われ、「タッチオン操作」や「スライド操作」を意味する。「タッチオン操作」は、プレイヤの指が入力面に触れていない状態から触れた状態(タッチオンの状態)に変化する操作を意味する。ただし、単に「タッチ」ということもある。また、「スライド操作」は、入力面に触れた状態で触れている位置を変化する操作を意味する。
なお、タッチパネルコントローラ81は、タッチパネル52からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。また、UIコントローラ85からタッチパネルコントローラ81へは、タッチパネル52に対する各種の制御指示が出力される。
アナログスティック53は、プレイヤの指で操作されるスティック部がスライドした(または傾倒した)方向および量を表すスティックデータをUIコントローラ85へ出力する。また、操作ボタン54は、十字ボタンおよび各種の押しボタンに対する入力状況(押下されたか否か)を表す操作ボタンデータをUIコントローラ85へ出力する。
UIコントローラ85は、上記の各構成要素から受け取ったタッチ位置データ、スティックデータ、および操作ボタンデータを含む端末操作データをコーデックLSI86に出力する。
コーデックLSI86は、ゲーム装置3へ送信するデータに対する圧縮処理、および、ゲーム装置3から送信されたデータに対する伸張処理を行う回路である。コーデックLSI86には、LCD51、サウンドIC88、無線モジュール90、およびフラッシュメモリ93が接続される。また、コーデックLSI86はCPU97と内部メモリ98を含む。
入力端末装置7はゲーム処理自体を行なわない構成であるが、入力端末装置7の管理や通信のための最小限のプログラムを実行する必要がある。電源投入時にフラッシュメモリ93に格納されたプログラムを内部メモリ98に読み出してCPU97が実行することで、入力端末装置7が起動する。ただし、入力端末装置7は、ゲーム装置3からの動作データに基づいて起動または停止する。ただし、この実施形態では、入力端末装置7の停止は、一部の回路コンポーネント(UIコントローラ85、コーデックLSI86および無線モジュール90)に電源が供給されているスリープの状態を意味する。また、内部メモリ98の一部の領域はLCD51のためのVRAMとして使用される。
サウンドIC88は、スピーカ87およびマイク89に接続され、スピーカ87およびマイク89への音声データの入出力を制御する回路である。すなわち、コーデックLSI86から音声データを受け取った場合、サウンドIC88は当該音声データに対してD/A変換を行って得られる音声信号をスピーカ87へ出力し、スピーカ87から音を出力させる。また、マイク89は、入力端末装置7に伝わる音(プレイヤの音声や手拍子等)を検知して、当該音を示す音声信号をサウンドIC88へ出力する。サウンドIC88は、マイク89からの音声信号に対してA/D変換を行い、所定の形式の音声データをコーデックLSI86へ出力する。
コーデックLSI86は、カメラからの画像データ、マイク89からの音声データ、および、UIコントローラ85からの端末操作データを、無線モジュール90を介してゲーム装置3へ送信する。本実施形態では、コーデックLSI86は、画像データおよび音声データに対して、コーデックLSI27と同様の圧縮処理を行う。上記端末操作データ、ならびに、圧縮された画像データおよび音声データは、送信データとして無線モジュール90に出力される。
無線モジュール90にはアンテナ91が接続されており、無線モジュール90はアンテナ91を介してゲーム装置3へ上記送信データを送信する。無線モジュール90は、ゲーム装置3の端末通信モジュール28と同様の機能を有している。すなわち、無線モジュール90は、たとえばIEEE802.11nの規格に準拠した方式により、無線LANに接続する機能を有する。送信されるデータは必要に応じて暗号化されていてもよいし、されていなくともよい。
以上のように、入力端末装置7は、タッチパネル52、アナログスティック53、および操作ボタン54といった入力手段を備えるが、他の実施形態においては、これらの入力手段に代えて、または、これらの入力手段とともに、他の入力手段を備える構成であってもよい。たとえば、入力端末装置7の動き(位置や姿勢、あるいは、位置や姿勢の変化を含む)を算出するためのセンサとして、磁気センサ、加速度センサ、およびジャイロセンサの少なくとも1つを備えるようにしてよい。
また、入力端末装置7は、カメラおよびマイク89を備える構成であるが、他の実施形態においては、カメラおよびマイク89を備えていなくてもよく、また、いずれか一方のみを備えていてもよい。
このようなゲームシステム1において実行されるアプリケーション(仮想ゲーム)では、プレイヤの操作に従って、プレイヤキャラクタは移動(走る、ジャンプ、飛ぶなど)および任意のアクション(持つ、取る、踏む、投げる、蹴るなど)を行い、スタート地点からコース内を進行するとともに、敵キャラクタまたはその攻撃を避けたり、敵キャラクタを倒したり、所定のアイテムを取得したりする。そして、制限時間内に、プレイヤキャラクタがゴール地点に到達すると、コースのクリアとなる。ただし、プレイヤキャラクタが敵キャラクタの攻撃を受けたり、プレイヤキャラクタがゴール地点に到達する前に制限時間を過ぎたりすると、ミスとなり、プレイヤキャラクタの残機数が1減算される。そして、プレイヤキャラクタの残基数が0になると、ゲームオーバーとなる。
このような仮想ゲームでは、コースをクリアすると、次のコースに進むことができ、また、一度クリアしたコースについては自由に選択することができる。たとえば、仮想ゲームの開始時、コースをクリアした時またはミスをした時に、コースを選択することができる。コースを選択する場合には、図4(A)に示すようなテレビ用ゲーム画像(ここでは、コース選択画面100)がテレビ2に表示されるとともに、図4(B)に示すような端末用ゲーム画像(ここでは、情報提示画面200)が入力端末装置7のLCD51に表示される。
なお、この実施例の図面では、コース選択画面100と情報提示画面200を同じ大きさで示してあるが、コース選択画面100の大きさはテレビ2の表示画面の大きさであり、情報提示画面200の大きさは入力端末装置7のLCD51の表示画面の大きさである。
図4(A)に示すように、コース選択画面100は、3次元の仮想空間に生成されるコースを選択するためのマップ(以下、「ワールドマップ」という。)102の一部を表示する。ワールドマップ102は、背景、コースマーク102a、ルート画像102b、城オブジェクト102cおよびノンプレイヤキャラクタなどによって構成される。コースマーク102aは、コースに対応するマークであり、白丸の中に黒丸を記載した画像で示される。各コースマーク102aは、ルート画像102bで連結される。また、コースマーク102aの近傍に城オブジェクト102cが表示される場合には、当該コースマーク102aに対応するコースが城内のコースであることを示す。
なお、各コースマーク102a(コースマークも202aも同様)には、後述する「コースの識別情報」が割り当てられている。
このワールドマップ102上に、プレイヤキャラクタ104が表示される。また、ワールドマップ102の前面であり、コース選択画面100の右上部には、メニュー画面を表示するためのアイコン106が表示される。さらに、ワールドマップ102の前面であり、コース選択画面100の右下部には、プレイヤキャラクタ104が所持しているアイテムを表示する(見る)ためのアイコン108が表示される。そして、ワールドマップ102の前面であり、コース選択画面100の左下部には、ワールドマップ102をスクロールさせる(見まわす)モードに移行するためのアイコン110が表示される。また、ワールドマップ102の前面であり、コースマーク102aの近傍に、指示オブジェクト120が表示される。指示オブジェクト120は、その近傍に表示されるコースマーク102aに対応するコースについての所定の情報が有ることを示すオブジェクトである。図4(A)からも分かるように、指示オブジェクト120は、コメントを入力したプレイヤのアバターについての顔画像を風船オブジェクトに貼り付けた(付された)画像である。ただし、プレイヤのアバターについての顔画像のみが表示されてもよいし、プレイヤのアバターの名称が記載された風船オブジェクトのような所定のオブジェクトのみが表示されてもよい。また、この実施例では、所定の情報は、対応するコースに関するメッセージないしコメント(以下、単に「コメント」という。)であり、当該コメントは他のプレイヤによって入力される。後述するように、コメント(コメント情報)は専用のサーバから取得(ダウロード)される。上述したように、指示オブジェクト120には、プレイヤのアバターについての顔画像が付されているため、指示オブジェクト120は、所定の情報(コメント)が有ることのみならず、どのプレイヤからのコメントであるかも示す。
詳細な説明は省略するが、専用のサーバは、インターネットを介して接続され、この実施例の仮想ゲームをプレイ可能なゲーム装置から送信されたコメント情報を記憶し、そのようなゲーム装置からの要求に応じて、当該ゲーム装置のプレイヤ以外のコメント情報を当該ゲーム装置に送信するサーバを意味する。
また、この実施例では、簡単のため、所定の情報として、プレイヤはコメントのみを入力するように示してあるが、手書きの画像を入力することもできる。ただし、手書きの画像は、プレイヤが描画した絵(図)のみならず、文字などの記号も含まれる。したがって、たとえば、所定のアイテムが有る場所を手書きの画像で示すことができる。つまり、所定の情報には、コメントのようなテキスト情報のみならず、手書きの画像のような画像情報も含まれる。以下、同様である。
また、図4(B)に示すように、情報提示画面200は、3次元の仮想空間に生成されるワールドマップ202の一部を表示し、ワールドマップ202上に、プレイヤキャラクタ204が表示される。ただし、図4(B)では、プレイヤキャラクタ204は、情報提示画面の中央のコメント表示領域230の背面に隠れている。また、情報提示画面200では、上述したコース選択画面100と同じ仮想空間に生成された同じワールドマップが表示される。また、プレイヤキャラクタも同じである。
図4(B)に戻って、ワールドマップ202の前面であり、情報提示画面200の右上部には、情報提示画面200を表示するための第2仮想カメラC2(図5参照)をズームアウトするためのアイコン206および第2仮想カメラC2をズームインするためのアイコン208が並んで表示される。また、ワールドマップ202の前面であり、情報提示画面200の上端部、下端部、左端部および右端部のそれぞれの中央には矢印画像210が表示される。矢印画像210は、ワールドマップ200の表示範囲を変更することができる方向(画面がスクロールされる方向と逆の方向)を示すための画像である。
情報提示画面200では、コース選択画面100と同様に、コースマーク202aが表示されるとともに、各コースマーク202aはルート画像202bで連結される。また、コースマーク202aの近傍に城オブジェクト102cとo同じ城オブジェクト202cが表示される場合もある。そして、コースマーク202aの近傍には、指示オブジェクト120と同じ指示オブジェクト220が表示される。さらに、この情報提示画面200では、指示オブジェクト220から吹き出すように、コメントの表示領域230が表示される。各表示領域230には、その左上部にコメントを入力したプレイヤについてのアバターの顔画像232が表示され、この顔画像232の右側にアバターに付された名称が表示される。したがって、顔画像232は、表示領域230が吹き出すように表示された指示オブジェクト220に付された顔画像と同じである。また、表示領域230には、顔画像232に対応するアバターを使用するプレイヤが入力したコメントが表示(テキスト表示)される。
たとえば、コースを選択する場合には、プレイヤは、テレビ2に表示されたコース選択画面100を見ながらコントローラ5を操作して、プレイヤキャラクタ104を移動させるとともに、所望のコースを選択する。このとき、プイレヤは、入力端末装置7を手元に置き、コースに関するコメントを見て、当該コースの攻略のヒントや当該コースにおけるアイテムの取得方法などの情報を入手する。このように、情報提示画面200にコメントを表示するのは、図4(B)からも分かるように、コメントの表示領域230は情報提示画面200の最前面に表示され、その背面に表示されるワールドマップ202やプレイヤキャラクタ204が見え難いためである。したがって、基本的には、テレビ2に表示されるコース選択画面100においては、コメントの存在のみを指示オブジェクト120によってプレイヤに知らせ、その実体(具体的な内容)については、情報提示画面200に表示するようにしてある。
たとえば、コメントは、コースのクリアをしたり、ミスをしたりしたタイミングのような所定のタイミングで入力することができる。図示は省略するが、コメントを入力する際には、テレビ2または入力端末装置7のLCD51にコメントを入力するための画面が表示される。プレイヤがクリアをしたりミスをしたりしたコースに関するコメントを入力すると、当該コースの識別情報、入力されたコメント(テキスト情報)、およびプレイヤに対応するアバターの情報(顔画像の情報および名称)を含む所定の情報(以下、「コメント情報」という。)がネットワーク通信モジュール18およびアンテナ22からインターネットを介して専用のサーバに送信される。一方、ゲーム装置3は、この実施例の仮想ゲームを開始したときに、専用のサーバにアクセスして、コメント情報を取得(ダウンロード)する。詳細な説明は省略するが、この実施例では、野原、砂漠、海、森、氷(雪)などの複数のテーマについてのワールドが設定される。そして、各ワールドに、それぞれのテーマに従って作成された複数のコースが設けられている。この実施例では、1ワールド当り、所定数(たとえば、64個)のコメント情報がランダムにダウンロードされる。したがって、専用のサーバにコメント情報が記憶されているコースであっても、コメント情報がダウンロードされないこともあり得る。また、1のコースについて複数のコメント情報がダウンロードされることもある。当然のことではあるが、専用のサーバにコメント情報が記憶されていないコースについては、コメント情報がダウロードされることはない。
なお、この実施例では、仮想ゲームを開始したときに、コメント情報をダウンロードするようにしてあるが、専用のサーバに定期的にまたはプレイヤの指示に応じてアクセスして、コメント情報をダウンロードするようにしてもよい。
そして、ゲーム装置3は、コース選択画面100を生成するときに、その表示範囲にコメントが有る場合には、コメントの有るコースに対応するコースマーク102aの近傍に、指示オブジェクト120を表示する。指示オブジェクト120は、コメント情報に含まれるアバターの情報(顔画像の情報)を用いて生成(描画)される。
また、ゲーム装置3は、情報提示画面200を生成するときに、その表示範囲にコメントが有る場合には、コメントの有るコースに対応するコースマーク202aの近傍に、指示オブジェクト220を表示するとともに、この指示オブジェクト220から吹き出すように表示領域230を表示する。指示オブジェクト220は、コメント情報に含まれるコメントおよびアバターの情報(顔画像の情報)を用いて生成(描画)される。また、表示領域230は、コメント情報に含まれるアバターの情報(顔画像の情報および名称)およびコメントを用いて生成(描画)される。
図4(A)および図4(B)を用いて説明した例では、コメントが有る場合には、必ず指示オブジェクト(120、220)および表示領域230を表示するように説明してあるが、実際には、コメントが有る場合であっても、指示オブジェクト(120,220)および表示領域230が表示されないことがある。これは、表示領域230同士の重なりを防止するためである。
ここで、具体的に、指示オブジェクト(120、220)および表示領域230(コメント)の仮想空間内への表示方法(以下、「コメント等の表示処理」ということがある。)について説明する。ただし、以下に説明する表示処理はワールド単位で行われる。
(1)まず、ダウンロードされた所定数のコメント情報からランダムに1つのコメント情報が選択され、選択されたコメント情報に含まれる識別情報が示すコースに対応するコースマーク(102a、202a)の近傍に指示オブジェクト(120、220)が表示され、この指示オブジェクト(120、220)から吹き出すように表示領域230が表示される。
(2)次に、(1)のステップで表示領域230(コメント)を表示したコースに対応するコースマーク(102a、202a)に近過ぎないコースマーク(102a、202a)が選択される。そして、選択されたコースマーク(102a、202a)に対応するコースについてのコメントが表示される。つまり、選択されたコースマーク(102a、202a)に対応するコースについてのコメント情報が選択され、当該コースマーク(102a、202a)の近傍に指示オブジェクト(120、220)が表示され、この指示オブジェクト(120、220)から吹き出すように表示領域230が表示される。
ただし、選択されたコースマーク202aに対応するコースについてのコメント情報が複数有る場合には、そのうちの1つのコメント情報がランダムに選択される。また、選択されたコースマーク202aに対応するコースについてのコメント情報が無い場合には、そのまま次のステップに進む。
(3)さらに、(1)および(2)のステップでコメント(表示領域230)を表示したコースに対応するコースマーク(102a、202a)に近過ぎないコースマーク(102a、202a)が選択され、選択されたコースマーク(102a、202a)に対応するコースについてのコメントが表示される。コメントの表示については、上記(2)のステップで説明したとおりであるため、重複した説明は省略する。
(4)1ワールドに付き所定数(ここでは、4つ)のコメント(表示領域230)が表示されるまで、上記(3)のステップを繰り返し行う。ただし、所定数のコメントを表示する前に表示できるコースが無くなれば、その時点で、コメント等の表示処理が終了される。
なお、(2)および(3)のステップにおいて、コメント(表示領域230)を表示したコースに対応するコースマーク(102a、202a)に近過ぎないコースマーク(102a、202a)を選択するのは、表示領域230同士の重なりを防止することにより、プレイヤにコメントを分かり易く提示するためである。
ただし、上記の表示処理は一例であり、限定されるべきでない。コメント(表示領域230)の重なりを考慮せずに、表示範囲のコースマーク202aに対応するコースについてのコメント情報が有る場合には、コメント(表示領域230)をすべて表示するようにしてもよい。かかる場合には、重なっているコメント(表示領域230)同士についてはボタン操作などによって前面と背面とを切り替えて、参照可能にすればよい。
また、この実施例では、図5に示すように、コース選択画面100を生成するための第1仮想カメラC1と情報提示画面200を生成するための第2仮想カメラC2が設けられる。つまり、テレビ2の画面を生成するための第1仮想カメラC1と入力端末装置7のLCD51の画面を生成するための第2仮想カメラC2が設けられる。
第1仮想カメラC1は、プレイヤキャラクタ104(204)に3次元の仮想空間のz軸のマイナス側から追従する。具体的には、第1仮想カメラC1は、基本的には、プレイヤキャラクタ104(204)の位置Pを基準に、z軸のマイナス方向に距離d1であり、y軸のプラス方向に距離(高さ)h1で決定される位置に配置され、位置Pを注視点とするように設定される。ただし、プレイヤキャラクタ104(204)の位置Pに対応する点に対して予め設定されているオフセット値(x,y,z)が上記のようにして決定された位置に加算される。したがって、オフセット値が加算されなければ、第1仮想カメラC1の視線が水平面となす角度αは一定に保たれる。ただし、図5では、地面(水平面)の高さをy=0としてある。また、この実施例では、コース選択画面100では、コメント自体(情報提示画面200の表示領域230)は表示されないため、第1仮想カメラC1は表示領域(230)を撮影しない。つまり、コース選択画面100を生成する場合には、表示領域(230)は描画されない。さらに、プレイヤキャラクタ104(204)はプレイヤの操作(指示)に従って仮想空間内を移動されるため、プレイヤキャラクタ104(204)の位置Pはプレイヤの操作(指示)に従う位置(指示位置)ということができる。
第2仮想カメラC2は、第1仮想カメラC1と同様に、プレイヤキャラクタ104(204)に3次元の仮想空間のz軸のマイナス側から追従するが、高さについては、仮想空間内で固定される。図5においては、第2仮想カメラC2は、プレイヤキャラクタ104(204)の位置Pを基準に、z軸のマイナス方向に距離d2(<d1)であり、y軸のプラス方向に距離(高さ)h2(>h1)で決定される位置に配置され、位置Pを注視点とするように設定される。ただし、図5において、地面の高さは、y=0に設定されているものとする。したがって、第2仮想カメラC2は、プレイヤキャラクタ104(204)の位置Pが変化されると、それに従って距離d2を保つようにx軸方向およびz軸方向に移動されるが、高さh2は固定されるため、y軸方向には移動されない。つまり、第2仮想カメラC2は、プレイヤキャラクタ104(204)の位置Pのy成分を0にした位置(以下、「着目位置」という。)を基準に、上記の関係(位置関係)が常に保たれる。
なお、この実施例では、第2仮想カメラC2の高さh2を所定の地面の高さ(y=0)を基準として固定的に決定してあるが、第1仮想カメラC1と同様に、高さ方向についてもプレイヤキャラクタ104(204)の位置Pに応じて変化させるようにしてもよい。
また、この実施例では、仮想空間のx軸方向はテレビ2やLCD51の横方向に相当し、仮想空間のz軸方向はテレビ2やLCD51の縦方向に相当する。
ここで、コース選択する場合のテレビ用ゲーム画像(コース選択画面100)および端末用ゲーム画像(情報提示画面200)の表示範囲、すなわち第1仮想カメラC1および第2仮想カメラC2の撮影範囲について説明する。
図示は省略するが、ズーム制御されない場合には、第1仮想カメラC1および第2仮想カメラC2の画角は同じである。また、図5に示したように、第2仮想カメラC2は、z軸方向におけるプレイヤキャラクタ104(204)との距離が第1仮想カメラC1よりも短く、y軸方向におけるプレイヤキャラクタ104(204)との距離(高さ)が第1仮想カメラC1よりも長い(高い)。つまり、第2仮想カメラC2は、第1仮想カメラC1よりも真上に近い方向から仮想空間(ゲームマップ102(202))を撮影する。
したがって、図6に示すように、第1仮想カメラC1で撮影されるテレビ用ゲーム画像(メニュー選択画面100)の表示範囲300と、第2仮想カメラC2で撮影される端末用ゲーム画像(情報提示画面200)の表示範囲302は異なる。図6に示す例では、表示範囲302は、表示範囲300よりも広く、表示範囲300の一部を含む。また、図4(A)および図4(B)からも分かるように、情報提示画面200は、コース選択画面100よりも真上に近い方向から仮想空間(ワールドマップ102(202))を見た場合の画像であり、コース選択画面100よりも広い範囲を表示する。
このように、情報提示画面200において、コース選択画面100よりも広い範囲を真上に近い方向から見たワールドマップ202を表示するのは、比較的広い範囲についての情報をプレイヤに提示するためである。
なお、この実施例では、コース選択画面100よりも広い範囲についての情報提示画面200を表示するようにしたが、これに限定される必要はない。提示する情報などに応じてその範囲や表示する内容は適宜変更可能である。たとえば、プレイヤキャラクタが双眼鏡でワールドマップを見まわすような場合には、コース選択画面100よりも狭い範囲であり、3次元の仮想空間(ワールドマップ)をプレイヤキャラクタが双眼鏡を通して見た範囲についての画像を情報提示画面として表示することができる。
また、上述したように、コース選択画面100では、プレイヤがコントローラ5の十字ボタンを操作すると、その操作に応じて、プレイヤキャラクタ104はワールドマップ104に形成されたルート画像102bに従って移動する。このとき、情報提示画面200では、同じワールドマップ204が表示されるため、コントローラ5の操作に応じて、プレイヤキャラクタ204もワールドマップ204に形成されたルート画像202bに従って移動する。
たとえば、図4(A)に示したコース選択画面100が表示されている場合に、プレイヤがコントローラ5の十字ボタンを操作して、下方向を指示すると、プレイヤキャラクタ104は城オブジェクト102cの前(アイコン108の背面)のコースマーク102aまで移動する。さらに、プレイヤがコントローラ5の十字ボタンを操作して、右方向を指示すると、図7(A)に示すように、城オブジェクト102cの右下側のルート画像102bの分岐地点まで移動される。
上述したように、プレイヤがコントローラ5の十字ボタンを操作して、下方向を指示すると、図4(B)に示した情報提示画面200では、プレイヤキャラクタ204は城オブジェクト202cの前(画面中央の表示領域230の下側)のコースマーク202aまで移動する。さらに、プレイヤがコントローラ5の十字ボタンを操作して、右方向を指示すると、図7(B)に示すように、城オブジェクト202cの右下側のルート画像202bの分岐地点まで移動される。
つまり、コースを選択する際に、コントローラ5の十字ボタンを操作することにより、プレイヤキャラクタ104(204)はワールドマップ102(202)上を移動され、その様子がコース選択画面100および情報提示画面200のそれぞれに表示される。この場合、情報提示画面200におけるプレイヤキャラクタ204は、コース選択画面100におけるプレイヤキャラクタ104に連動(追従)して移動すると言える。また、プレイヤキャラクタ104がコースマーク102a上に位置している場合に、コントローラ5の2ボタンが操作されると、当該コースマーク102aに対応するコースをプレイすることが選択(決定)される。そして、決定されたコースについてのゲームプレイが開始される。このとき、コース選択画面100および情報提示画面200に代えて、決定されたコースについてのゲーム画面がテレビ2および入力端末7のLCD51に表示される。
なお、詳細な説明は省略するが、コース選択画面100が表示されている場合に、プレイヤがコントローラ5の+ボタンを操作すると、アイコン106が選択され、仮想ゲームを止めたり、セーブを行ったりするなどのメニューを選択するためのメニュー画面が表示される。また、プレイヤがコントローラ5の1ボタンを操作すると、プレイヤキャラクタ102が所持しているアイテムを表示するための所持アイテム画面が表示される。さらに、プレイヤがコントローラ5のAボタンを操作すると、情報提示画面200と同じ内容の画面がテレビ2に表示される。
また、入力端末装置7を操作することにより、コース選択画面100とは関係無く、情報提示画面200をスクロールしたり、ズームしたりすることもできる。かかる場合には、上述したようなプレイヤキャラクタ204のプレイヤキャラクタ104との連動(追従)は解除される。つまり、プレイヤキャラクタ104(204)の位置Pに応じて第2仮想カメラC2が移動されていたが、第2仮想カメラC2の位置がプレイヤの操作に従って3次元の仮想空間内をxz方向に移動される。
たとえば、入力端末装置7のタッチパネル52上でスライド操作すると、スライド操作した方向に表示範囲が移動される。つまり、スライド操作に従って第2仮想カメラC2のx座標または/およびz座標が変化される。したがって、情報処理画面200は、スライド操作の方向と同じ方向にスクロールされる。したがって、たとえば、図4(B)に示す情報提示画面200が表示されている場合に、プレイヤがタッチパネル52上を左上方向にスライド操作すると、図4(B)に示した情報提示画面200が左上方向にスクロールされ、図8に示すような情報提示画面200がLCD51に表示される。
なお、タッチ操作に限定される必要は無く、アナログスティック53や十字ボタンを操作することにより、情報提示画面200をスクロールさせることもできる。
また、情報提示画面200をスクロールした場合には、図8に示すように、画面の左下部にアイコン212が表示される。したがって、このアイコン212がタッチされたり、入力端末装置7のAボタンが操作されたりすると、アイコン212が選択され、現在地に戻ることが指示される。つまり、プレイヤキャラクタ204の位置Pのy成分を0にした着目位置を基準に所定の位置関係となるように、第2仮想カメラC2が移動される。このとき、プレイヤキャラクタ204は、プレイヤキャラクタ104に連動(追従)する状態に戻される。
また、情報提示画面200に表示されたアイコン206または208がタッチされたり、−ボタンまたは+ボタンが操作されたりすると、情報提示画面200がズームアウトまたはズームインされる。この実施例では、アイコン206がタッチされたり、−ボタンが操作されたりすると、情報提示画面200はズームアウトされる。一方、アイコン208がタッチされたり、+ボタンが操作されたりすると、情報提示画面200はズームインされる。たとえば、図示は省略するが、ズームアウトする場合には、図5に示した角度βを維持したまま第2仮想カメラC2をプレイヤキャラクタ104(204)から遠ざけるように、距離d2および高さh2が調整される。一方、ズームインする場合には、第2仮想カメラC2の図5に示した角度βを維持したまま第2仮想カメラC2をプレイヤキャラクタ104(204)に近づけるように、距離d2および高さh2が調整される。ただし、ズームアウトおよびズームインのいずれの場合にも、第2仮想カメラC2の画角が変化されることはない。図9は、図4(B)に示した情報提示画面200が表示されている場合に、アイコン206がタッチされたり、−ボタンが操作されたりして、ズームアウトされた状態の情報提示画面200が表示される。図4(B)および図9を比較して分かるように、図9に示す情報提示画面200の表示範囲は、図4(B)に示す情報提示画面200の表示範囲よりも広い。
詳細な説明は省略するが、−ボタンや+ボタンが押されている場合には、第2仮想カメラC2が所定速度で(1フレーム毎に所定距離)移動するように変化され、ズームインおよびズームアウトは線形的に変化される。ただし、フレームは、画面更新単位時間(たとえば、1/60秒)である。
なお、この実施例では、角度βを維持するように、距離d2および高さh2を変化させて、ズームアウトおよびズームインを制御するようにしたが、これに限定される必要はない。たとえば、第2仮想カメラC2の位置を固定して、画角を変化させることにより、ズームアウトおよびズームインを制御するようにしもよい。
さらに、入力端末装置7を操作することにより、指示オブジェクト220および表示領域230を非表示にしたり、再度表示したりすることもできる。たとえば、図4(B)に示す情報提示画面200がLCD51に表示されている状態において、プレイヤが入力端末装置7に設けられたBボタンを操作すると、図10に示すように、指示オブジェクト220および表示領域230は非表示される。この状態において、再度、プレイヤが入力端末装置7に設けられたBボタンを操作すると、指示オブジェクト220および表示領域230は表示される。つまり、図4(B)に示した情報提示画面200に戻る。
情報提示画面200において、指示オブジェクト220および表示領域230が非表示されると、プレイヤは手元の画面においてワールドマップの詳細を見ることができる。
なお、この実施例では、入力端末装置7に設けられたBボタンの操作に応じて、指示オブジェクト220および表示領域230の両方を非表示にしたり、表示したりするようにしたが、表示領域230のみを非表示および表示するようにしてもよい。
図11は、図2に示したゲーム装置3のメインメモリ(11e,12)のメモリマップ400の一例を示す。図11に示すように、メインメモリ(11e,12)は、プログラム記憶領域402およびデータ記憶領域404を含む。プログラム記憶領域402には、ゲームプログラムなどの情報処理プログラムが記憶される。たとえば、ゲームプログラムは、ゲーム装置3に電源が投入された後の適宜のタイミングで光ディスク4からその一部または全部が読み込まれてメインメモリに記憶される。
なお、ゲームプログラムは、光ディスク4に代えて、フラッシュメモリ17やゲーム装置3の外部装置から(たとえばインターネットを介して)取得されてもよい。また、ゲームプログラムに含まれる一部のプログラムについては、ゲーム装置3内に予め記憶されていてもよい。
この実施例では、ゲームプログラムは、メイン処理プログラム410、画像生成プログラム412、画像表示プログラム414および通信プログラム416などによって構成される。
メイン処理プログラム410は、仮想ゲームのメインルーチンの処理(図13のゲーム全体処理)を実行するためのプログラムである。画像生成プログラム412は、ポリゴンデータやテクスチャデータなどのデータを用いて、テレビ用ゲーム画像(100など)を生成したり、端末用ゲーム画像(200など)を生成したりするためのプログラムである。
画像表示プログラム414は、画像生成プログラム412に従って生成したテレビ用ゲーム画像の画像データをテレビ2に表示するためのプログラムである。また、画像表示プログラム414は、画像生成プログラム412に従って生成した端末用ゲーム画像の画像データを入力端末装置7に送信するためのプログラムでもある。
通信プログラム416は、インターネットのようなネットワークを介してコンピュータ(他のゲーム装置を含む。)やサーバと通信するためのプログラムである。
なお、プログラム記憶領域402には、音生成プログラム、音出力プログラムおよびバックアッププログラムなども記憶される。
データ記憶領域404には、受信データ430、送信データ432およびコメント情報データ434などが記憶される。
受信データ430は、コントローラ5および入力端末装置7から受信される各種のデータである。受信データ430は、コントローラ操作データ430aおよび端末操作データ430bを含む。コントローラ5がゲーム装置3に複数接続される場合には、各コントローラ5に対応して、コントローラ操作データ430aも複数記憶される。また、入力端末装置7がゲーム装置3に複数接続される場合には、各入力端末装置7に対応して、端末操作データ430bも複数記憶される。
コントローラ操作データ430aは、コントローラ5に対するプレイヤの操作を表すデータであり、具体的には、操作ボタンの入力状況を表すデータである。コントローラ操作データ430aは、コントローラ5から送信されてゲーム装置3において取得され、メインメモリ(11e,12)に記憶される。
端末操作データ430bは、入力端末装置7に対するプレイヤの操作を表すデータであり、上述したように、操作ボタンデータ、スティックデータ、およびタッチ位置データを含む。ただし、端末操作データ430bは、入力端末装置7を操作するプレイヤの操作を表すものであればよく、上記各データのいずれか1つのみを含むものであってもよい。端末操作データ430bは、入力端末装置7から送信されてゲーム装置3において取得され、メインメモリ(11e,12)に記憶される。
なお、コントローラ5や入力端末装置7に、加速度センサやジャイロセンサを設けた場合には、コントローラ操作データ430aや端末操作データ430bに、加速度データや角速度データなどのデータ(モーションデータ)を含めるようにしてもよい。
送信データ432は、画像データ432aおよび音声データ432bなどを含む。画像データ432aは、ゲーム処理(図13のゲーム全体処理)において生成され、入力端末装置7で出力される端末用ゲーム画像の画像データやメニュー機能によって入力端末装置7で出力されるメニュー画像の画像データなどである。音声データ432bは、ゲーム全体処理において生成され、入力端末装置7で出力される端末用ゲーム音声の音声データやBGMや効果音についての音声データである。
コメント情報データ434は、専用のサーバから取得(ダウンロード)したコメント情報についてのデータである。上述したように、コメントはコース毎に入力されるため、コメント情報データ434は、複数のコメント情報についてのデータを含む場合がある。
また、データ記憶領域404には、非表示フラグ436が設けられる。この非表示フラグ436は、情報提示画面200において、指示オブジェクト220および表示領域230を非表示するか否かを判別するためのフラグである。たとえば、非表示フラグ436は、1ビットのレジスタで構成される。指示オブジェクト220および表示領域230を非表示することが指示されると、非表示フラグがオンされ、レジスタにデータ値「1」が設定される。一方、指示オブジェクト220および表示領域230を表示することが指示されると、非表示フラグがオフされ、レジスタのデータ値「0」が設定される。コースの選択を行う際には、初期値として、レジスタにデータ値「0」が設定される。
図示は省略するが、データ記憶領域404には、後述するゲーム全体処理(図13)において用いられる他のデータが記憶されたり、他のフラグやカウンタ(タイマ)が設けられたりする。ただし、ゲーム全体処理において用いられる他のデータには、仮想ゲームに登場する各種キャラクタないしオブジェクトに設定される各種パラメータを表すデータ等、ゲーム処理において用いられる各種データを含む。また、データ記憶領域404には、テレビ用ゲーム画像についての画像データやテレビ用ゲーム音声についての音声データも含まれる。
図12は、図3に示した入力端末装置7の内部メモリ98のメモリマップ500の一例を示す。図12に示すように、内部メモリ98は、データ記憶領域504を含む。
データ記憶領域504には、送信データ530および受信データ532などが記憶される。
送信データ530は、端末操作データ530aを含む。これは、上述した受信データ430に含まれる端末操作データ430bと同じ内容であるため、重複した説明は省略する。
同様に、受信データ532は、画像データ532aおよび音声データ532bなどを含む。これらは、上述した送信データ432に含まれる画像データ432aおよび音声データ432bと同じ内容であるため、重複した説明は省略する。
図13は、図2に示したゲーム装置3に設けられるCPU10のゲーム全体処理についてのフロー図である。なお、図13(後述する図14−図18についても同様。)に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、基本的には、図13−図18に示すフロー図の各ステップの処理をCPU10が実行するものとして説明するが、CPU10以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
ゲーム装置3の電源が投入されると、ゲーム全体処理の実行に先だって、CPU10は、図示しないブートROMに記憶されている起動プログラムを実行し、これによってメインメモリ(11e,12)等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラム410がメインメモリ(11e、12)に読み込まれ、CPU10によって当該ゲームプログラム410の実行が開始される。
CPU10は、ゲーム全体処理を開始すると、ステップS1で、初期処理を実行する。初期処理は、たとえば、仮想のゲーム空間を構築し、ゲーム空間に登場する各オブジェクトを初期位置に配置したり、ゲーム全体処理で用いる各種パラメータの初期値を設定したりする処理である。
続いて、CPU10は、ステップS3で、コメント情報を取得する。つまり、CPU10は、ネットワーク通信モジュール18およびアンテナ22を介してインターネットに接続し、インターネットに接続される専用のサーバにアクセスし、当該専用のサーバからコメント情報をダウンロードする。
次に、CPU10は、ステップS5で、コントローラ5からのデータを取得する。つまり、CPU10は、入出力プロセッサ11aを制御して、コントローラ5から送信されるコントローラ操作データ430aをアンテナ23およびコントローラ通信モジュール19を介して受信し、メインメモリ(11e,12)のデータ記憶領域404に記憶する。
続いて、CPU10は、ステップS7で、入力端末装置7から送信されてくる各種のデータを取得する。つまり、CPU10は、入出力プロセッサ11aを制御して、入力端末装置7から送信される端末操作データ430bをアンテナ23およびコントローラ通信モジュール19を介して受信し、メインメモリ(11e,12)のデータ記憶領域404に記憶する。このとき、端末操作データに含まれる画像データおよび音声データについては、端末通信モジュール28からコーデックLSI27に送られ、コーデックLSI27によって伸張書堀が施されて入出力プロセッサ11aに出力される。
そして、ステップS9で、後述するゲーム制御処理(図14および図15参照)を実行する。次のステップS11では、CPU10およびGPU11bは、後で詳細に説明するように、テレビ2に表示するためのテレビ用ゲーム画像の生成処理(図17参照)を実行する。簡単に説明すると、CPU10およびGPU11bは、ステップS9のゲーム制御処理の結果を表すデータをメインメモリ(11e,12)から読み出し、また、ゲーム画像を生成するために必要なデータをVRAM11dから読み出し、テレビ用ゲーム画像を生成する。
次のステップS13において、CPU10およびGPU11bは、後で詳細に説明するように、入力端末装置7に表示するための端末用ゲーム画像の生成処理(図18参照)を実行する。簡単に説明すると、端末用ゲーム画像もまた、上記テレビ用ゲーム画像と同様に、ステップS9のゲーム制御処理の結果を表すデータをメインメモリ(11e,12)から読み出し、また、ゲーム画像を生成するために必要なデータをVRAM11dから読み出して生成される。
ただし、上述したように、見まわすことが指示され、テレビ2に情報提示画面200と同じ内容の画面を表示する場合には、上記のステップS11またはS13の処理はスキップされてもよい。また、この実施例では、コースにおけるプレイ中では、テレビ用ゲーム画像と端末用ゲーム画像は同じであるため、上記のステップS11またはS13の処理はスキップされてもよい。このことは、コース選択中に、コース選択画面100をテレビ2および入力端末装置7のLCD51の両方に表示する場合も同じである。
続いて、ステップS15では、CPU10は、テレビ2のスピーカ2aに出力するためのテレビ用ゲーム音声を生成する。すなわち、CPU10は、ステップS9のゲーム制御処理の結果に応じたゲーム音声をDSP11cに生成させる。
次に、ステップS17では、CPU10は、入力端末装置7のスピーカ87に出力するための端末用ゲーム音声を生成する。すなわち、CPU10は、ステップS9のゲーム制御処理の結果に応じたゲーム音声をDSP11cに生成させる。
ただし、テレビ用ゲーム音声と端末用ゲーム音声とが同一である場合には、ステップS15またはS17の処理は実行されなくてよい。
続いて、ステップS19では、CPU10は、テレビ2へゲーム画像およびゲーム音声を出力する。具体的には、CPU10は、ステップS11で生成(描画)されたテレビ用ゲーム画像の画像データと、ステップS15でDSP11cによって生成されたテレビ用ゲーム音声の音声データとをAV−IC15へ送る。
次に、ステップS21で、CPU10は、入力端末装置7へゲーム画像およびゲーム音声を送信する。具体的には、ステップS13で生成(描画)された端末用ゲーム画像の画像データ、および、ステップS17でDSP11cによって生成された音声データは、CPU10によってコーデックLSI27に送られ、コーデックLSI27によって所定の圧縮処理が行われる。さらに、圧縮処理が施された画像および音声のデータは、端末通信モジュール28によってアンテナ29を介して入力端末装置7へ送信される。入力端末装置7は、ゲーム装置3から送信されてくる画像および音声のデータを無線モジュール90によって受信し、コーデックLSI86によって所定の伸張処理が行われる。伸張処理が行われた画像データはLCD51に出力され、伸張処理が行われた音声データはサウンドIC88に出力される。
そして、ステップS23では、CPU10は、ゲームを終了するかどうかを判断する。ステップS23の判断は、たとえば、ゲームオーバーになったか否か、あるいは、プレイヤがゲームを中止する指示を行ったか否か等によって行われる。ゲームオーバーになったか否かは、たとえばプレイヤキャラクタ104(204)の残機数が0になったか否かで判定される。
ステップS23で“NO”であれば、つまりゲームを終了しない場合には、ステップS5に戻る。一方、ステップS23で“YES”であれば、つまりゲームを終了する場合には、ゲーム全体処理を終了する。
なお、この実施例では、ゲーム全体処理が開始された当初においてコメント情報を取得するようにしたが、ステップS5−S23の処理ループにおいてコメント情報を取得するようにしてもよい。
図14および図15は、図13に示したステップS9のゲーム制御処理を示すフロー図である。図14に示すように、CPU10は、ゲーム制御処理を開始すると、ステップS31で、コースのプレイ中かどうかを判断する。ステップS31で“YES”であれば、つまり或るコースのプレイ中であれば、ステップS33で、コースのゲーム処理を実行して、ゲーム全体処理にリターンする。
詳細な説明は省略するが、コースのゲーム処理では、プレイヤがコントローラ5を用いて操作することにより、プレイヤキャラクタ104がコース内を移動したり、任意のアクションを実行したりする。そして、敵キャラクタが移動したり、背景オブジェクトが変化したり、消滅したりする。また、ゴール(コースクリア)判定やミス判定が行われる。コースクリアをしたり、ミスをしたりした場合には、コメントを作成するための画面が表示され、プレイヤは任意のコメントを入力することができる。コメントの入力が終了されると、当該コースの識別情報、入力されたコメント(テキスト情報)および当該プレイヤのアバターの情報を含むコメント情報が専用のサーバに送信される。
一方、ステップS31で“NO”であれば、つまりコースのプレイ中でなければ、ステップS35で、コースが決定されたかどうかを判断する。ここでは、CPU10は、コースマーク102a上にプレイヤキャラクタ104が位置している状態で、コントローラ5の2ボタンが操作されたかどうかを判断する。ただし、コントローラ5の2ボタンが操作されたかどうかは、受信データ430に含まれるコントローラ操作データ430aを参照することにより判断される。
ステップS35で“YES”であれば、つまりコースが決定されれば、ステップS37で、決定されたコースのゲーム処理を開始して、ゲーム全体処理にリターンする。一方、ステップS35で“NO”であれば、つまりコースが決定されていなければ、ステップS39で、プレイヤキャラクタ104(204)の移動かどうかを判断する。ここでは、CPU10は、コントローラ操作データ430aを参照して、十字ボタンが操作されたどうかを判断するとともに、操作(指示)された方向に移動可能かどうかを判断する。
ステップS39で“YES”であれば、つまりプレイヤキャラクタ104(204)の移動であれば、ステップS41で、プレイヤキャラクタ104(204)の移動後の位置Pを算出(設定)し、ステップS43で、移動後のプレイヤキャラクタ104(204)の位置Pに従って第1仮想カメラC1および第2仮想カメラC2の位置および注視点を決定(算出)して、ゲーム全体処理にリターンする。つまり、プレイヤキャラクタ104(204)の位置P(指示位置)が設定されたことに応じて、ステップS43で、仮想空間における表示範囲が第1仮想カメラC1(コース選択画面100)および第2仮想カメラC2(情報提示画面200)のそれぞれについて決定される。
なお、第1仮想カメラC1および第2仮想カメラC2の位置および注視点の決定方法は上述したとおりである。
一方、ステップS39で“NO”であれば、つまりプレイヤキャラクタ104(204)の移動でなければ、図15に示すステップS45で、スクロールかどうかを判断する。ここでは、CPU10は、端末操作データ430bを参照して、入力端末装置7において、タッチパネル52上でスライド操作されたり、アナログスティック53が操作されたり、十字ボタンが操作されたりしているかどうかを判断する。
ステップS45で“YES”であれば、つまりスクロールであれば、ステップS47で、スライド操作等に従って第2仮想カメラC2の位置および注視点を決定して、図16に示すように、ゲーム全体処理にリターンする。ステップS47では、CPU10は、スライド操作に従って第2仮想カメラC2のx座標または/およびz座標を算出する。このとき、第2仮想カメラC2の方向は固定されたままである。したがって、注視点は、スライド操作に従って、着目位置のx座標または/およびz座標を変化させることにより算出される。
一方、ステップS45で“NO”であれば、つまりスクロールでなければ、ステップS49で、現在地に戻るかどうかを判断する。ここでは、CPU10は、アイコン212がLCD51に表示されている場合に、端末操作データ430bを参照して、入力端末装置7において、Aボタンが操作されたり、アイコン212がタッチされたりしたかどうかを判断する。
ステップS49で“YES”であれば、つまり現在地に戻る場合には、ステップS51で、プレイヤキャラクタ204の位置Pに従って第2仮想カメラC2の位置および注視点を決定して、ゲーム全体処理にリターンする。つまり、ステップS51では、CPU10は、プレイヤキャラクタ204の位置Pのy座標を0にした着目位置と所定の位置関係を有するように、第2仮想カメラC2の位置を設定するとともに、着目位置に第2仮想カメラC2の注視点を設定する。
一方、ステップS49で“NO”であれば、つまり現在地に戻らない場合には、ステップS53で、ズームインの指示かどうかを判断する。ここでは、CPU10は、端末操作データ430bを参照して、入力端末装置7の+ボタンが操作されたり、アイコン208がタッチされたりしたかどうかを判断する。
ステップS53で“YES”であれば、つまりズームインの指示であれば、ステップS55で、図5に示した角度βを維持して、第2仮想カメラC2をプレイヤキャラクタ104(204)に所定速度で近づけるように距離d2および高さh2を調整して、ゲーム全体処理にリターンする。なお、第2仮想カメラC2が最大限ズームインされている場合には、ステップS55の処理はスキップされる。
一方、ステップS53で“NO”であれば、つまりズームインの指示でなければ、ステップS57で、ズームアウトの指示かどうかを判断する。ここでは、CPU10は、端末操作データ430bを参照して、入力端末装置7の−ボタンが操作されたり、アイコン206がタッチされたりしたかどうかを判断する。
ステップS57で“YES”であれば、つまりズームアウトの指示であれば、ステップS59で、図5に示した角度βを維持して、第2仮想カメラC2からプレイヤキャラクタ104(204)を所定速度で遠ざけるように距離d2および高さh2を調整して、ゲーム全体処理にリターンする。なお、第2仮想カメラC2が最大限ズームアウトされている場合には、ステップS59の処理はスキップされる。
一方、ステップS57で“NO”であれば、つまりズームアウトの指示でなければ、図16に示すステップS61で、コメントの表示中かどうかを判断する。ここでは、CPU10は、非表示フラグ436がオフであるかどうかを判断する。ステップS61で“YES”であれば、つまりコメントの表示中であれば、ステップS63で、コメントを非表示する指示かどうかを判断する。ここでは、CPU10は、入力端末装置7のBボタンが操作されたかどうかを判断する。ただし、CPU10は、端末操作データ430bを参照して、入力端末装置7のBボタンが操作されたかどうかを判断する。このことは、後述するステップS67において同じである。
ステップS63で“YES”であれば、つまりコメントを非表示する指示である場合には、ステップS65で、非表示フラグ436をオンして、ゲーム全体処理にリターンする。一方、ステップS63で“NO”であれば、つまりコメントを非表示する指示でない場合には、そのままゲーム全体処理にリターンする。
また、ステップS61で“NO”であれば、つまりコメントの表示中でなければ、ステップS67で、コメントを表示する指示であるかどうかを判断する。ここでは、CPU10は、入力端末装置7のBボタンが操作されたかどうかを判断する。ステップS67で“YES”であれば、つまりコメントを表示する指示である場合には、ステップS69で、非表示フラグ436をオフして、ゲーム全体処理にリターンする。一方、ステップS67で“NO”であれば、つまりコメントを表示する指示でない場合には、そのままゲーム全体処理にリターンする。
なお、図14および図15では省略したが、上述したように、コントローラ5の+ボタン、1ボタンまたはAボタンが操作された場合には、その後のテレビ用ゲーム画像の生成処理(S11)によって、テレビ2に、メニュー画面が表示されたり、取得アイテム画面が表示されたり、情報提示画面200と同じ内容の画面が表示されたりする。
図17は、図13に示したステップS11のテレビ用ゲーム画像の生成処理のフロー図である。このテレビ用ゲーム画像の生成処理では、仮想空間に配置された第1仮想カメラC1から見た当該仮想空間についての3次元のCG画像が生成される。図17に示すように、生成処理を開始すると、CPU10は、ステップS101で、コースのプレイ中かどうかを判断する。ステップS101で“YES”であれば、つまり或るコースにおいてプレイ中であれば、ステップS103で、コース選択画面100内のプレイヤキャラクタ104に対応する当該コース内のプレイヤキャラクタを描画し、ステップS105で、当該コース内の敵キャラクタやアイテムキャラクタなどのノンプレイヤキャラクタを描画し、ステップS107で、当該コース内の背景、ブロックオブジェクトや土管オブジェクトなどを描画して、ゲーム全体処理にリターンする。
一方、ステップS101で“NO”であれば、つまりコースのプレイ中でなければ、ステップS109で、CPU10およびGPU11bは、プレイヤキャラクタ104を現在の位置Pに描画し、ステップS111で、ノンプレイヤキャラクタを所定の位置に描画し、ステップS113で、背景、コースマーク102a、ルート画像102bおよび城オブジェクト102cなどを含むワールドマップ102を描画する。
そして、ステップS115で、表示範囲にコメントが有るかどうかを判断する。ここでは、CPU10は、第1仮想カメラC1の撮影範囲に含まれるコースマーク102aに対応するコースの識別情報を含むコメント情報についてのデータがコメント情報データ434に含まれているかどうかを判断する。
ステップS115で“NO”であれば、つまり表示範囲にコメントが無い場合には、そのままゲーム全体処理にリターンする。一方、ステップS115で“YES”であれば、つまり表示範囲にコメントが有る場合には、ステップS117で、指示オブジェクト120を描画して、ゲーム全体処理にリターンする。ただし、上述したコメント等の表示処理に従って、仮想空間に、指示オブジェクト(102a、202a)および表示領域230(コメント)が表示され、コメント選択画面100では、表示領域230が表示されないため、ステップS117においては、指示オブジェクト120のみが描画される。
図18は、図13に示したステップS13の端末用ゲーム画像の生成処理のフロー図である。この端末用ゲーム画像の生成処理では、仮想空間に配置された第2仮想カメラC2から見た当該仮想空間についての3次元のCG画像が生成される。図18に示すように、生成処理を開始すると、CPU10は、ステップS131で、コースのプレイ中かどうかを判断する。ステップS131で“YES”であれば、つまり或るコースにおいてプレイ中であれば、CPU10およびGPU11bは、ステップS133で、コース選択画面100内のプレイヤキャラクタ104に対応する当該コース内のプレイヤキャラクタを描画し、ステップS135で、当該コース内の敵キャラクタやアイテムキャラクタなどのノンプレイヤキャラクタを描画し、ステップS137で、当該コース内の背景、ブロックオブジェクトや土管オブジェクトなどを描画して、ゲーム全体処理にリターンする。
一方、ステップS131で“NO”であれば、つまりコースのプレイ中でなければ、CPU10およびGPU11bは、ステップS139で、プレイヤキャラクタ204を現在の位置Pに描画し、ステップS141で、ノンプレイヤキャラクタを所定の位置に描画し、ステップS143で、背景、コースマーク202a、ルート画像202bおよび城オブジェクト202cなどを含むワールドマップ202を描画する。
そして、ステップS145で、非表示フラグ436がオンであるかどうかを判断する。ステップS145で“YES”であれば、つまり非表示フラグ436がオンであれば、そのままゲーム全体処理にリターンする。しがって、入力端末装置7では、図10に示したような、指示オブジェクト220および表示領域230が表示されない情報提示画面200がLCD51に表示される。
一方、ステップS145で“NO”であれば、つまり非表示フラグ436がオフであれば、ステップS147で、表示範囲にコメントが有るかどうかを判断する。ここでは、CPU10は、第2仮想カメラC2の撮影範囲に含まれるコースマーク202aに対応するコースの識別情報を含むコメント情報についてのデータがコメント情報データ434に含まれているかどうかを判断する。
ステップS147で“NO”であれば、つまり表示範囲にコメントが無い場合には、そのままゲーム全体処理にリターンする。一方、ステップS147で“YES”であれば、つまり表示範囲にコメントが有る場合には、ステップS149で、指示オブジェクト220を描画し、ステップS151で、コメントを描画して、ゲーム全体処理にリターンする。ただし、上述したコメント等の表示処理に従って、仮想空間に、指示オブジェクト(102a、202a)および表示領域230(コメント)が表示され、非表示フラグ436がオフである場合には、情報選択画面200では、表示領域230も表示されるため、指示オブジェクト220および表示領域230が描画される。したがって、入力端末装置7では、図4(B)、図7(B)、図8および図9に示したような、指示オブジェクト220および表示領域230が表示された情報提示画面200がLCD51に表示される。
この実施例によれば、コースを選択する場合に、他のプレイヤのコメントを含む詳細なワールドマップについての情報提示画面をプレイヤの手元に置いた入力端末装置のLCDに表示するとともに、コメントは表示せずにその存在を示す指示オブジェクトを含むワールドマップについてのコース選択画面をテレビに表示するので、手元の画面を見て情報を入手し、テレビの画面を見て容易に所望のコースを選択することができる。
なお、この実施例では、情報提示画面において、コメントの表示領域を指示オブジェクトから吹き出すように表示したが、指示オブジェクトを表示せずに、コメントの表示領域のみを表示するようにしてもよい。かかる場合には、コース選択画面において指示オブジェクトが表示され、情報提示画面の対応する位置にコメントの表示領域が表示される。したがって、指示オブジェクトは、コメントを抽象化した画像ということもできる。そして、この場合、情報提示画面には、指示オブジェクトについての実体として表示領域(コメント)が表示される。
また、表示領域には、指示オブジェクトに貼り付けられた顔画像と同じ顔画像が表示されるため、表示領域を、指示オブジェクトから吹き出すように表示せずに、情報提示画面の端(たとえば、左端や右端)に並べて表示してもよい。
さらに、この実施例では、コースマークが見えなくなるのを回避するために、コースマークの近傍に指示オブジェクトやコメントの表示領域を表示するようにしたが、これに限定される必要はない。たとえば、指示オブジェクトやコメントの表示領域をコースマーク上に表示してもよい。この場合には、たとえば、指示オブジェクトやコメントの表示領域を半透明で表示して、コースマークを視認可能にしてもよい。
さらにまた、この実施例では、専用のサーバからダウンロードした他のプレイヤのコメントを表示するようにしたが、これに限定される必要はない。たとえば、ゲーム装置のプレイヤ自身が入力したコメントをさらに表示するようにしてもよいし、ゲーム装置のプレイヤ自身が入力したコメントのみを表示するようにしもよい。前者の場合には、コメントを入力したプレイヤに関係無く、専用のサーバからコメント情報がダウンロードされる。後者の場合には、専用のサーバから自身のコメントについてのコメント情報のみをダウンロードし、ダウンロードしたコメント情報を用いてコメントを表示したり、専用のサーバを設けずに、ゲーム装置に記憶しておいたコメント情報を用いてコメントを表示したりすればよい。また、たとえば、予め登録してある他のプレイヤのコメントについてのコメント情報のみをダウンロードし、ダウンロードしたコメント情報を用いてコメントを表示するようにしてもよい。
また、この実施例で示したゲームシステムは一例であり、コース選択画面の表示部と情報提示画面の表示部とが設けられる構成であれば、他の構成を採用してよい。一例として、ゲーム装置に代えて汎用のパーソナルコンピュータ(PC)を設け、入力端末装置に代えてタブレットコンピュータを設けて、PCとタブレットコンピュータとを通信可能に接続し、PCと一体的に設けられた表示部またはPCに接続された表示部にコース選択画面を表示し、タブレットコンピュータに一体的に設けられた表示部に情報提示画面を表示することにより実現可能である。この場合、たとえば、PCの入力装置がコントローラとして機能する。
さらに、この実施例で示したゲーム装置は、コントローラや入力端末装置と、Bluetooth(登録商標)のような近距離無線を利用して通信可能に接続したが、ネットワークを介して通信するようにしてもよい。さらには、ゲーム装置は、各々が通信処理、画像処理、ゲーム制御処理などの各処理のうちの1つまたは2つ以上を担当する複数の装置を通信可能に接続した1つのシステムで構成されてもよい。