以下、本発明の一実施形態について、図面を参照して説明する。なお、この実施形態によって本発明が限定されるものではない。
(本発明の一実施形態)
[ゲームシステムの全体構成]
まず、図1を参照して、本発明の一実施形態に係るゲーム装置を含むゲームシステム1の全体構成について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」という)2、ゲーム装置3、光ディスク4、コントローラ7、拡張コントローラ36およびマーカ部8を含む。本システムは、コントローラ7および拡張コントローラ36を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、この挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2には、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像が表示される。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部8が設置される。マーカ部8は、その両端に2つのマーカ8Rおよび8Lを備えている。マーカ8R(マーカ8Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部8はゲーム装置3に接続されており、ゲーム装置3はマーカ部8が備える各赤外LEDの点灯を制御することが可能である。
コントローラ7は、当該コントローラ7自身および後述する拡張コントローラ36に対して行われた操作内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ7とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ7とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ7とゲーム装置3とは有線で接続されてもよい。
拡張コントローラ36は、接続ケーブルによってコントローラ7に接続され、当該拡張コントローラ36に対して行われた操作内容をコントローラ7に与える入力装置である。また、拡張コントローラ36は、アナログ方式の入力が可能なアナログスティック39を備えている。
[ゲーム装置3の内部構成]
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の内部構成を示すブロック図である。ゲーム装置3は、CPU10、システム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には、入出力プロセッサ11a、GPU(Graphics
Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。より具体的には、GPU11bは、当該グラフィクスコマンドに従って3Dグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる3D座標から2D座標への座標変換などの処理や、テクスチャの張り込みなどの最終的なレンダリング処理を行うことで、ゲーム画像およびマップ画像を生成する。なお、後に説明するが、マップ画像のデータは、GPU11bによってペイントデータに変換(スクリーンキャプチャ)される。ここで、CPU10は、グラフィクスコマンドに加えて、ゲーム画像データ等の生成に必要な画像生成プログラムをGPU11bに与える。なお、以下の説明では、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)は外部メインメモリ12に記憶されるものとするが、これらのデータは、VRAM11dに記憶されてもよい。画像が生成される際には、GPU11bは、外部メインメモリ12に記憶されたデータを用いて画像データを作成する。
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。また、内部メインメモリ11eは、外部メインメモリ12と同様に、プログラムや各種データを記憶するものであり、CPU10のワーク領域やバッファ領域として用いられる。
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
入出力プロセッサ(I/Oプロセッサ)11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
また、入出力プロセッサ11aは、コントローラ7から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、拡張コントローラ36等の周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンにされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン24を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置3への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン24を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
次に、図3および図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7を上面後方から見た斜視図である。図4は、コントローラ7を下面前方から見た斜視図である。
図3および図4において、コントローラ7は、ハウジング71と、当該ハウジング71の表面に設けられた複数個の操作ボタンで構成される操作部72とを備える。本実施形態のハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。
ハウジング71上面の十字キー72aより後面側に、複数の操作ボタン72b〜72gが設けられる。操作ボタン72b〜72gは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン72b〜72gに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン72b〜72dには、1番ボタン、2番ボタン、およびAボタン等としての機能が割り当てられる。また、操作ボタン72e〜72gには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン72a〜72gは、ゲーム装置3が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、図3に示した配置例では、操作ボタン72b〜72dは、ハウジング71上面の中央前後方向に沿って並設されている。また、操作ボタン72e〜72gは、ハウジング71上面の左右方向に沿って操作ボタン72bおよび72dの間に並設されている。そして、操作ボタン72fは、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7からゲーム装置3へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図5のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
一方、ハウジング71下面には、凹部が形成されている。後述で明らかとなるが、ハウジング71下面の凹部は、プレイヤがコントローラ7の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
ここで、以下の説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するxyz軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をz軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をz軸正方向とする。また、コントローラ7の上下方向をy軸とし、ハウジング71の上面(操作ボタン72a等が設けられた面)方向をy軸正方向とする。さらに、コントローラ7の左右方向をx軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をx軸正方向とする。
次に、図5および図6を参照して、コントローラ7の内部構造について説明する。なお、図5は、コントローラ7の上ハウジング(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図6は、コントローラ7の下ハウジング(ハウジング71の一部)を外した状態を前面側から見た斜視図である。ここで、図6に示す基板700は、図5に示す基板700の裏面から見た斜視図となっている。
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図6、図7参照)に接続される。マイコン751は、操作ボタン72a等の種類に応じた操作データを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触/切断をマイコン751が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン751が検出し、操作ボタンの種類に応じた信号を発生させている。
また、コントローラ7は、無線モジュール753(図7参照)およびアンテナ754によって、ワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コントローラ7の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ7の回転を良好な感度でゲーム装置3等が判定することができる。
一方、図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置3から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置3から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
次に、図7を参照して、コントローラ7の内部構成について説明する。なお、図7は、コントローラ7の構成を示すブロック図である。
図7において、コントローラ7は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
撮像情報演算部74は、赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744を含んでいる。赤外線フィルタ741は、コントローラ7の前方から入射する光から赤外線のみを通過させる。レンズ742は、赤外線フィルタ741を透過した赤外線を集光して撮像素子743へ出射する。撮像素子743は、例えばCMOSセンサやあるいはCCDのような固体撮像素子であり、レンズ742が集光した赤外線を撮像する。したがって、撮像素子743は、赤外線フィルタ741を通過した赤外線だけを撮像して画像データを生成する。撮像素子743で生成された画像データは、画像処理回路744で処理される。具体的には、画像処理回路744は、撮像素子743から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部75へ出力する。なお、これらの撮像情報演算部74は、コントローラ7のハウジング71に固設されており、ハウジング71自体の方向を変えることによってその撮像方向を変更することができる。この撮像情報演算部74から出力される処理結果データに基づいて、コントローラ7の位置や動きに応じた信号を得ることができる。
コントローラ7は、3軸(x、y、z軸)の加速度センサ701を備えていることが好ましい。この3軸の加速度センサ701は、3方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。また、他の実施形態においては、ゲーム処理に用いる制御信号の種類によっては、上下および左右方向(または他の対になった方向)のそれぞれに沿った直線加速度のみを検知する2軸の加速度検出手段を使用してもよい。例えば、この3軸または2軸の加速度センサ701は、アナログ・デバイセズ株式会社(Analog Devices, Inc.)またはSTマイクロエレクトロニクス社(STMicroelectronics N.V.)から入手可能であるタイプのものでもよい。加速度センサ701は、シリコン微細加工されたMEMS(Micro Electro Mechanical Systems:微小電子機械システム)の技術に基づいた静電容量式(静電容量結合式)であってもよい。しかしながら、既存の加速度検出手段の技術(例えば、圧電方式や圧電抵抗方式)あるいは将来開発される他の適切な技術を用いて3軸または2軸の加速度センサ701が提供されてもよい。
当業者には公知であるように、加速度センサ701に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、その2軸または3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
しかしながら、加速度センサ701から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ(例えばCPU10)またはコントローラのプロセッサ(例えばマイコン751)などのコンピュータが処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合)、コントローラが現実に静的な状態であれば、検出された加速度に基づいてコントローラの姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸の加速度センサの場合には、さらに各軸の加速度の信号に対して処理を施すことによって、各軸が重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ701からの出力に基づいて、プロセッサがコントローラ7の傾き角度のデータを算出する処理をおこなってもよいが、当該傾き角度のデータを算出する処理をおこなうことなく、加速度センサ701からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ701をプロセッサと組み合わせて用いることによって、コントローラ7の傾き、姿勢または位置を判定することができる。一方、加速度センサが動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ701を備えるコントローラ7がユーザの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7のさまざまな動きおよび/または位置を算出することができる。なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向対する傾きを知ることが可能である。他の実施例では、加速度センサ701は、信号をマイコン751に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
通信部75は、マイクロコンピュータ(Micro Computer:マイコン)751、メモリ752、無線モジュール753、およびアンテナ754を含んでいる。マイコン751は、処理の際にメモリ752を記憶領域として用いながら、送信データを無線送信する無線モジュール753を制御する。また、マイコン751は、アンテナ754を介して無線モジュール753が受信したゲーム装置3からのデータに応じて、サウンドIC707およびバイブレータ704の動作を制御する。サウンドIC707は、通信部75を介してゲーム装置3から送信されたサウンドデータ等を処理する。また、マイコン751は、通信部75を介してゲーム装置3から送信された振動データ(例えば、バイブレータ704をONまたはOFFする信号)等に応じて、バイブレータ704を作動させる。
コントローラ7に設けられた操作部72からの操作信号(キーデータ)、加速度センサ701からの加速度信号(x、y、およびz軸方向加速度データ;以下、単に加速度データと記載する)、および撮像情報演算部74からの処理結果データは、マイコン751に出力される。マイコン751は、入力した各データ(キーデータ、加速度データ、処理結果データ)を無線コントローラモジュール19へ送信する送信データとして一時的にメモリ752に格納する。ここで、通信部75から無線コントローラモジュール19への無線送信は、所定の周期毎に行われるが、ゲームの処理は1/60秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は16.7ms(1/60秒)であり、ブルートゥース(Bluetooth)で構成される通信部75の送信間隔は例えば5msである。マイコン751は、無線コントローラモジュール19への送信タイミングが到来すると、メモリ752に格納されている送信データを一連の操作情報として出力し、無線モジュール753へ出力する。そして、無線モジュール753は、例えばブルートゥースの技術に基づいて、所定周波数の搬送波を用いて操作情報で変調し、その電波信号をアンテナ754から放射する。つまり、コントローラ7に設けられた操作部72からのキーデータ、加速度センサ701からの加速度データ、および撮像情報演算部74からの処理結果データが無線モジュール753で電波信号に変調されてコントローラ7から送信される。そして、ゲーム装置3の無線コントローラモジュール19でその電波信号を受信し、ゲーム装置3で当該電波信号を復調や復号することによって、一連の操作情報(キーデータ、加速度データ、および処理結果データ)を取得する。そして、ゲーム装置3のCPU10は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥースの技術を用いて通信部75を構成する場合、通信部75は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
[本実施形態で想定するゲームの概要および描画処理の概要]
次に、図8〜図10を用いて、本実施形態で想定するゲームの概要および描画処理の概要について説明する。本実施形態で想定するゲームは、3次元仮想空間(以下、ゲーム空間という)内をプレイヤオブジェクトが移動するゲームである。
図8は、本実施形態で想定するゲームのゲーム画像(主要画像)の一例である。図8において、ゲーム画像にはプレイヤオブジェクト101が表示されている。なお、図8には表示されていないが、ゲーム画像には、他のオブジェクト(敵オブジェクトや武器オブジェクト等)が表示される場合もある。本ゲームでは、図8に示すように、プレイヤオブジェクト101の後方に仮想カメラ(以下、ゲーム画像カメラという)を配置したいわゆる三人称視点でゲーム画像が撮像されて描画される。また、本ゲームには、島のステージ、山間部のステージ、草原のステージ、町のステージ等の複数のステージが設けられている。そして、ステージクリアした等の所定の条件を満たした場合に、ゲームが展開されるステージが切り替わる。なお、図8には、島のステージのゲーム画像が示されている。
プレイヤは、図9に示すように、拡張コントローラ36をコントローラ7のコネクタ73に接続した形態で、例えば拡張コントローラ36を左手に持ちコントローラ7を右手に持って、プレイヤオブジェクト101の操作を行う。ここで、拡張コントローラ36はアナログ方式の入力が可能なアナログスティック39を備えている。プレイヤは、アナログスティック39を上下左右方向に入力する操作を行うことによって、プレイヤオブジェクト101を移動させることができる。
また、プレイヤは、テレビ2にゲーム画像が表示されている場合に、コントローラ7のプラスボタン(図3の72g参照)を押下することによって、テレビ2に表示されているゲーム画像(図8参照)をマップ画像(図10参照)に切り替えることができる。マップ画像は、図10に例示するように、ゲーム画像によって現在表されているゲームステージの地図を表す画像であり、プレイヤオブジェクト101の位置が表示される。また、プレイヤは、コントローラ7の十字キー(図3の72a参照)の左右のキーを操作することによって、表示されているマップ画像を拡大又は縮小(ズームイン又はズームアウト)することができる。例えば、十字キー(図3の72a参照)の左キーが押下された場合はマップ画像が縮小(ズームアウト)され、十字キー(図3の72a参照)の右キーが押下された場合はマップ画像が拡大(ズームイン)される。また、プレイヤは、テレビ2にマップ画像が表示されている場合に、コントローラ7のプラスボタン(図3の72g参照)を押下することによって、テレビ2に表示されているマップ画像(図10参照)をゲーム画像(図8参照)に切り替える(戻す)ことができる。
ところで、ゲーム空間には、多数のポリゴンによって、地形、建物、及びキャラクタ等の形状が形成される。この多数のポリゴンには、それぞれ、ゲーム画像用の属性(以下、ゲーム画像属性という)およびマップ画像用の属性(以下、マップ画像属性という)が割り当てられている。ゲーム画像属性およびマップ画像属性は、「草」、「水」、「土」、「砂」、「岩」等の属性のうちいずれかであり、原則として、同じポリゴンに割り当てられたゲーム画像属性とマップ画像属性とは、同じ属性である。例えば、或るポリゴンに割り当てられたゲーム画像属性が「土」である場合、原則として、このポリゴンに割り当てられたマップ画像属性も「土」である。しかし、例外として、同じポリゴンに割り当てられたゲーム画像属性とマップ画像属性とが、相異なる属性である場合がある。例えば、マップ画像属性には、「なし」を示す属性が有る。具体的には、或るポリゴンに割り当てられたゲーム画像属性が「土」である場合であっても、このポリゴンに割り当てられたマップ画像属性は「なし」である場合がある。後述するが、このようにマップ画像属性を「なし」にすることによって、そのようなポリゴンをマップ画像では描画しないことで、マップ画像が不要に複雑になることを防止できる。また、例えば、或るポリゴンに割り当てられたゲーム画像属性が「土」である場合であっても、このポリゴンに割り当てられたマップ画像属性は「水」である場合がある。このようにマップ画像属性をゲーム画像属性とは異なる属性にすることによって、マップ画像が、例えば、現在は土(陸地)であるが昔は水(海)であったという設定の場所において、昔の海の地図を表すものとすることができる。
そして、ゲーム画像が描画される際には、多数のポリゴンによってゲーム空間に地形、建物、及びキャラクタ等の形状が形成され、各ポリゴンに割り当てられたゲーム画像属性に対応したゲーム画像用のテクスチャ(以下、ゲーム画像テクスチャという)が、対応するポリゴンに貼り付けられる(マッピングされる)。例えば、或るポリゴンに割り当てられたゲーム画像属性が「草」である場合、この属性「草」に対応したテクスチャ(つまり、草を表すゲーム画像テクスチャ)が、このポリゴンに貼り付けられる。このようにしてゲーム画像カメラの撮像領域内の全てのポリゴンにゲーム画像テクスチャが貼り付けられた後に、ゲーム画像カメラによって撮像が行われてゲーム画像が生成される。
一方、マップ画像が描画される際にも、ゲーム画像が描画される際と同様に、多数のポリゴンによってゲーム空間に地形、建物、及びキャラクタ等の形状が形成される。しかし、この際、「なし」のマップ画像属性が割り当てられたポリゴンは、ゲーム空間には形成されない。このことによって、地図として使用されるマップ画像には表示する必要のないオブジェクト(例えば、石ころ、落ち葉、落ちた枝、小さい水溜り)を、マップ画像から排除できる。この結果として、不要に複雑になって視難くなることを防止した視易いマップ画像が生成される。その後、ゲーム空間に形成された各ポリゴンに割り当てられたマップ画像属性に対応したマップ画像用のテクスチャ(以下、マップ画像テクスチャという)が、対応するポリゴンに貼り付けられる(マッピングされる)。例えば、或るポリゴンに割り当てられたマップ画像属性が「草」である場合、この属性「草」に対応したテクスチャ(つまり、草を表すマップ画像テクスチャ)が、このポリゴンに貼り付けられる。この様にしてゲーム空間に形成された全てのポリゴンにマップ画像テクスチャが貼り付けられた後に、このゲーム空間(つまり、現在のゲームステージ)全体を上空から平行投影によって撮像するマップ画像用の仮想カメラ(以下、マップ画像カメラという)によって撮像が行われる。その後、撮像された画像は、2次元画像データ(ペイントデータ)に変換(スクリーンキャプチャ)される。そして、2次元画像データが表す画像のうちの指定された領域が、マップ画像(図10参照)としてテレビ2に表示される。
以上の処理によってマップ画像が描画されるので、本実施形態では、従来のように各ゲームステージに対応するマップ画像を別個に用意する必要が無くなり、光ディスク4等の記録媒体およびROMやRAM等のメモリの使用容量を削減することができる。
[ゲーム処理の詳細]
次に、ゲーム装置3によって実行されるゲーム処理の詳細を説明する。まず、ゲーム処理の際に外部メインメモリ12に記憶されるデータについて説明する。図11は、ゲーム装置3の外部メインメモリ12のメモリマップを示す図である。図11において、外部メインメモリ12は、プログラム記憶領域300およびデータ記憶領域400を含む。プログラム記憶領域300およびデータ記憶領域400のデータの一部は、例えば光ディスク4に記憶されており、ゲームプログラム実行時には外部メインメモリ12に読み込まれて記憶される。
プログラム記憶領域300には、後述する図12に示すフローチャートの処理を実行するゲームメイン処理プログラム301等のプログラムや、後述する図13及び図15に示すフローチャートの処理を実行する画像生成プログラム302等のプログラムが記憶される。
データ記憶領域300には、操作データ401、ゲームステージデータ402、ゲーム画像テクスチャデータ403、ゲーム画像オブジェクト(OBJ)データ404、マップ画像テクスチャデータ405、マップ画像オブジェクト(OBJ)データ406、各オブジェクト(OBJ)の位置・方向データ407、ゲーム画像カメラの位置・方向・画角データ408、マップ画像カメラの位置・方向データ409、キャプチャマップ画像データ410、マップ拡大率データ411等が記憶される。
操作データ401は、コントローラ7から取得されるデータであり、プレイヤが行う操作内容を含むデータである。具体的には、操作データ401は、図1を用いて説明したように、コントローラ7に対して行われた操作内容及び拡張コントローラ36に対して行われた操作内容(アナログスティック39の操作内容等)を含むデータである。
ゲームステージデータ402は、島のステージデータ、山間部のステージデータ、草原のステージデータ、町のステージデータ等の複数のステージデータのうち、ゲーム進行対象のステージデータであり、光ディスク4から読み込まれて記憶される。ゲームステージデータ402は、ポリゴン頂点座標データ4021とゲーム画像属性データ4022とマップ画像属性データ4023とを含む。ポリゴン頂点座標データ4021は、ゲーム空間においてステージの形状(地形等)を形成する各ポリゴンの頂点座標を示すデータである。ゲーム画像属性データ4022は、ゲーム画像(図8参照)を生成するために上記各ポリゴン割り当てられる「草」、「水」、「土」等の属性を示すデータである。マップ画像属性データ4023は、マップ画像(図10参照)を生成するために上記各ポリゴン割り当てられる「なし」、「草」、「水」、「土」等の属性を示すデータである。ここで、マップ画像属性データ4023は、ゲーム画像属性データ4022とは異なり、「なし」の属性を示すデータを含む。後に詳しく説明するが、この「なし」の属性が割り当てられたポリゴンは、マップ画像が生成される際にはゲーム空間に配置されないので、マップ画像においてこのポリゴンの形状は描画されないこととなる。
ゲーム画像テクスチャデータ403は、ゲーム画像を生成する際に使用される複数のゲーム画像用のテクスチャデータから成る。図11では、ゲーム画像テクスチャデータ403は、一例として、草のゲーム画像テクスチャデータ4031、水のゲーム画像テクスチャデータ4032、土のゲーム画像テクスチャデータ4033等から成る。ここで、ゲーム画像を生成する際に、ゲーム空間のポリゴンには、ゲーム画像属性データ4022によって当該ポリゴンに割り当てられた属性に対応するゲーム画像テクスチャが貼り付けられる。具体的には、ゲーム画像が生成される際には、ゲーム画像属性データ4022によって「草」の属性が割り当てられたポリゴンには草のゲーム画像テクスチャデータ4031が示す草を表すテクスチャが貼り付けられ、ゲーム画像属性データ4022によって「水」の属性が割り当てられたポリゴンには水のゲーム画像テクスチャデータ4032が示す水を表すテクスチャが貼り付けられ、ゲーム画像属性データ4022によって「土」の属性が割り当てられたポリゴンには土のゲーム画像テクスチャデータ4033が示す土を表すテクスチャが貼り付けられる。
ゲーム画像オブジェクト(OBJ)データ404は、ゲーム画像を生成する際にゲーム空間に配置されるプレイヤのオブジェクト等のデータである。具体的には、ゲーム画像オブジェクトデータ404は、ゲーム画像を生成する際にゲーム空間に配置される、プレイヤのオブジェクト(OBJ)データ4041、敵のオブジェクト(OBJ)データ4042、及び武器のオブジェクト(OBJ)データ4043等を含む。これらのオブジェクトデータは、ゲーム空間にポリゴンを用いてオブジェクトを形成するために使用されるポリゴンデータ、ポリゴンの属性データ、及びテクスチャデータ等である。
マップ画像テクスチャデータ405は、マップ画像を生成する際に使用される複数のマップ画像用のテクスチャデータから成る。図11では、マップ画像テクスチャデータ405は、一例として、草のマップ画像テクスチャデータ4051、水のマップ画像テクスチャデータ4052、土のマップ画像テクスチャデータ4053等から成る。ここで、マップ画像を生成する際に、ゲーム空間のポリゴンには、マップ画像属性データ4023によって当該ポリゴンに割り当てられた属性に対応するマップ画像テクスチャが貼り付けられる。具体的には、マップ画像が生成される際には、マップ画像属性データ4023によって「草」の属性が割り当てられたポリゴンには草のマップ画像テクスチャデータ4051が示す草を表すテクスチャが貼り付けられ、マップ画像属性データ4023によって「水」の属性が割り当てられたポリゴンには水のマップ画像テクスチャデータ4052が示す水を表すテクスチャが貼り付けられ、マップ画像属性データ4023によって「土」の属性が割り当てられたポリゴンには土のマップ画像テクスチャデータ4053が示す土を表すテクスチャが貼り付けられる。なお、マップ画像属性データ4023によって或るポリゴンに「なし」の属性が割り当てられた場合、マップ画像を生成する際に当該ポリゴンはゲーム空間に形成されない。このことから、マップ画像テクスチャデータ405は、「なし」の属性に対応するマップ画像テクスチャデータを含まない。
マップ画像オブジェクト(OBJ)データ406は、撮像処理によって生成されたマップ画像(以下、レンダリングマップ画像という)をスクリーンキャプチャして作成されたペイントデータから成るマップ画像(以下、キャプチャマップ画像という)上に配置されるプレイヤオブジェクトを表す画像のデータである。マップ画像用オブジェクト(OBJ)データ406は、典型的には、プレイヤオブジェクトを示すアイコンの画像データ(4061)である。
各オブジェクトの位置・方向データ407は、ゲーム空間における各オブジェクト(プレイヤオブジェクトを含む)の位置及び方向(向き)を示すデータである。
ゲーム画像カメラの位置・方向・画角データ408は、ゲーム画像を生成する際にゲーム空間を撮像するゲーム画像カメラのゲーム空間における位置、方向(撮像方向)、及び画角(撮像画角)を示すデータである。ここで、ゲーム画像カメラの位置、方向、及び画角は、プレイヤオブジェクトの移動等に伴って変化する。
マップ画像カメラの位置・方向データ409は、レンダリングマップ画像を生成する際にゲーム空間を上方(上空)から撮像するマップ画像カメラの位置及び方向(撮像方向)を示すデータである。マップ画像カメラの位置はゲーム空間の上方の固定位置であり、又、マップ画像カメラの方向は当該固定位置からゲーム空間を真下に見下ろす固定方向である。なお、マップ画像カメラは、平行投影によって撮像対象のゲームステージの全体を撮像する。また、マップ画像カメラは平行投影によって撮像を行うので、マップ画像カメラの位置・方向データ409には、マップ画像カメラの画角のデータは含まれない。
キャプチャマップ画像データ410は、マップ画像カメラによる撮像によって生成されたゲームステージ全体のレンダリングマップ画像をスクリーンキャプチャして得られたゲームステージ全体のキャプチャマップ画像を示すデータである。
マップ拡大率データ411は、キャプチャマップ画像をテレビ2に表示する際の拡大率を示すデータである。具体的には、上記拡大率は、テレビ2にゲームステージ全体のキャプチャマップ画像を表示する場合には最小となり、テレビ2にゲームステージの一部の領域のキャプチャマップ画像を表示する場合には当該領域の大きさに応じた拡大率となる。
次に、図12〜図17を参照して、ゲーム装置3によって実行されるゲーム処理のフローについて説明する。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、ROM/RTC13に記憶されている起動プログラムを実行し、これによって外部メインメモリ12等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムが外部メインメモリ12に読み込まれ、CPU10によってゲームプログラムの実行が開始される。
図12は、CPU10によって実行されるゲーム処理のフローチャートの一例である。図12のフローチャートで示す処理は、1フレーム(例えば1/60秒)毎に繰り返し実行される。なお、以下では、本願発明とは直接関連しない他のゲーム処理についての説明は省略する。
まず、ステップS1において、CPU10は、ゲームステージが遷移したか否かを判定する。ステップS1での判定がYESの場合、処理はステップS2に移る。ここで、ゲーム処理が開始されて最初にステップS1の処理が行われる場合には、CPU10は、ステップS1においてYESと判定する。一方、ステップS1での判定がNOの場合、処理はステップS6に移る。なお、ゲームステージは、或るゲームステージ(例えば島のステージ)がクリア等された場合に、次のゲームステージ(例えば山間部のステージ)に遷移する(切り替わる)。
ステップS2において、CPU10は、光ディスク4に記憶された遷移先(又は最初)のゲームステージのデータを、外部メインメモリ12に、ゲームステージデータ402として書き込む。その後、処理はステップS3に移る。なお、以下では、外部メインメモリ12に書き込まれているゲームステージデータ402によって生成されるゲームステージを、現在のゲームステージと呼ぶ場合がある。
ステップS3において、CPU10は、ステップS2で外部メインメモリ12に書き込んだゲームステージデータ402に対応するプレイヤ及び敵等のオブジェクトの位置及び方向の初期値データを、外部メインメモリ12に、各OBJの位置・方向データ407として書き込む。その後、処理はステップS4に移る。
ステップS4において、CPU10は、ステップS2で外部メインメモリ12に書き込んだゲームステージデータ402に対応するゲーム画像カメラの位置、方向、及び画角の初期値データを、外部メインメモリ12に、ゲーム画像カメラの位置・方向・画角データ408として書き込む。その後、処理はステップS5に移る。
ステップS5において、システムLSI11のGPU11bは、ゲーム画像描画処理を実行してゲーム画像を生成する。
図13は、GPU11bによって実行されるゲーム画像描画処理のフローチャートの一例である。以下では、図13を参照して、図12のステップS5におけるゲーム画像描画処理について説明する。
まず、ステップS501において、GPU11bは、外部メインメモリ12に書き込まれているゲームステージデータ402(図11参照)に基づいて、ゲーム空間にポリゴンを配置する。具体的には、GPU11bは、ポリゴン頂点座標データ4021を用いてゲーム空間にポリゴンを配置することによって、現在のゲームステージの形状(地形等)をゲーム空間に形成する。その後、処理はステップS502に移る。
ステップS502において、GPU11bは、使用する仮想カメラをゲーム画像カメラに切り替え、また、外部メインメモリ12に書き込まれているゲーム画像カメラの位置・方向・画角データ408に従って、ゲーム空間におけるゲーム画像カメラの位置、方向(撮像方向)、及び画角を設定する。ここで、ゲーム画像カメラの位置、方向(撮像方向)、及び画角は、例えば、図14に示すように、プレイヤオブジェクト101をその後方から撮像する位置、方向(撮像方向)、及び画角である。その後、処理はステップS503に移る。
ステップS503において、GPU11bは、ゲーム画像カメラの撮像範囲内に在るポリゴンの全てに、ゲーム画像テクスチャが貼り付けられたか否かを判定する。ステップS503での判定がYESの場合、ポリゴンにゲーム画像テクスチャを貼り付ける処理は完了し、処理はステップS506に移る。一方、ステップS503での判定がNOの場合、処理はステップS504に移る。
ステップS504において、GPU11bは、ゲーム画像カメラの撮像範囲内に在るポリゴンのうち、ゲーム画像テクスチャが貼り付けられていないポリゴンを1つ選択する。その後、処理はステップS505に移る。
ステップS505において、GPU11bは、ステップS504で選択したポリゴンに、当該ポリゴンに割り当てられたゲーム画像属性に対応するゲーム画像テクスチャを、貼り付ける(マッピングする)。具体的には、GPU11bは、ゲーム画像属性データ4022を参照して、ステップS504で選択したポリゴンに割り当てられたゲーム画像属性を特定し、その後、ゲーム画像テクスチャデータ403を参照して、特定したゲーム画像属性に対応するゲーム画像テクスチャを、当該ポリゴンに貼り付ける。例えば、GPU11bは、ステップS504で選択したポリゴンに「草」のゲーム画像属性が割り当てられている場合、当該ポリゴンに草のゲーム画像テクスチャデータ4031によって表される草のテクスチャを貼り付ける。その後、処理はステップS503に戻る。
そして、ステップS503、S504、及びS505の処理が繰り返されることによって、全てのポリゴンにゲーム画像テクスチャが貼り付けられて(ステップS503でYES)、処理はステップS506に移る。
ステップS506において、GPU11bは、外部メインメモリ12に書き込まれているゲーム画像OBJデータ404及び各OBJの位置・方向データ407に基づいて、各オブジェクト(プレイヤ、敵、武器等のオブジェクト)をゲーム空間に配置する。その後、処理はステップS507に移る。
ステップS507において、GPU11bは、ステップS502で設定したゲーム画像カメラによってゲーム空間を撮像(レンダリング)する。その後、処理はステップS508に移る。
ステップS508において、GPU11bは、ステップS507で撮像した画像を、AV−IC15等を介してゲーム画像としてテレビ2に出力する。その後、図12のステップS5のゲーム画像描画処理は終了し、処理は図12のステップS1に戻る。
以上に説明したように、ゲームステージが遷移した場合(又はゲームが開始した場合)、ステップS1〜S5のルートで処理が行われて、ゲーム画像(図8参照)が生成されてテレビ2に表示される。
以下では、ステージが遷移していない場合(ステップS1でNOの場合)について、説明する。
この場合、ステップS6において、CPU10は、テレビ2によってマップ画像(図10参照)が現在表示されているか否を判定する。ステップS6での判定がYESの場合、処理はステップS12に移る。一方、ステップS6での判定がNOの場合、処理はステップS7に移る。
ステップS7において、CPU10は、ゲーム画像の表示からマップ画像の表示に切り替えるか否かを判定する。具体的には、CPU10は、外部メインメモリ12に記憶されている操作データ401を参照して、プレイヤがコントローラ7のプラスボタン(図3の72g参照)を押下してマップ画像の表示に切り替える操作を行ったか否かを判定する。ステップS7での判定がYESの場合、処理はステップS8に移る。一方、ステップS7での判定がNOの場合、処理はステップS9に移る。
ステップS8において、システムLSI11のGPU11bは、マップ画像描画処理を実行してマップ画像を生成する。
図15は、GPU11bによって実行されるマップ画像描画処理のフローチャートの一例である。以下では、図15を参照して、図12のステップS8におけるマップ画像描画処理について説明する。
まず、ステップS801において、GPU11bは、外部メインメモリ12に記憶されているゲームステージデータ402(図11参照)に基づいて、マップ画像属性「なし」が割り当てられているポリゴンを除く全てのポリゴンを、ゲーム空間(現在のゲームステージ)に配置する。具体的には、GPU11bは、ポリゴン頂点座標データ4021及びマップ画像属性データ4023を用いて、マップ画像属性「なし」が割り当てられているポリゴンを除く全てのポリゴンをゲーム空間に配置することによって、現在のゲームステージの形状(地形等)をゲーム空間に形成する。その後、処理はステップS802に移る。
ステップS802において、GPU11bは、使用する仮想カメラをマップ画像カメラに切り替え、また、外部メインメモリ12に記憶されているマップ画像カメラの位置・方向データ409に従って、ゲーム空間におけるマップ画像カメラの位置、方向(撮像方向)を設定する。ここで、マップ画像カメラの位置及び方向(撮像方向)は、図16に例示するように、現在のゲームステージを上方(上空)から真下に見下ろして(俯瞰して)撮像する位置及び方向(撮像方向)である。なお、既に説明したように、マップ画像カメラは、平行投影によって、現在のゲームステージ全体を撮像する。その後、処理はステップS803に移る。
ステップS803において、GPU11bは、ステップS801で配置されたポリゴンの全てに対して、同じマップ画像属性が割り当てられたポリゴンをポリゴン群としてリストアップする。その後、処理はステップS804に移る。
ステップS804において、GPU11bは、ステップS801で配置された全てのポリゴンに、マップ画像テクスチャが貼り付けられたか否かを判定する。ステップS804での判定がYESの場合、ポリゴンにマップ画像テクスチャを貼り付ける処理は完了し、処理はステップS807に移る。一方、ステップS804での判定がNOの場合、処理はステップS805に移る。
ステップS805において、GPU11bは、ステップS803でリストアップしたポリゴン群のうち、マップ画像テクスチャが貼り付けられていないポリゴン群を1つ選択する。その後、処理はステップS806に移る。
ステップS806において、GPU11bは、ステップS806で選択したポリゴン群を構成するポリゴンの全てに、当該ポリゴンに割り当てられたマップ画像属性に対応するマップ画像テクスチャを、一括して貼り付ける(マッピングする)。より具体的には、GPU11bは、マップ画像属性データ4023を参照して、ステップS805で選択したポリゴン群を構成するポリゴンに割り当てられたマップ画像属性を特定し、その後、マップ画像テクスチャデータ405を参照して、特定したマップ画像属性に対応するマップ画像テクスチャを、当該ポリゴン群を構成するポリゴンの全てに一括して貼り付ける。例えば、GPU11bは、ステップS805で選択したポリゴン群を構成するポリゴンに「草」のゲーム画像属性が割り当てられている場合、当該ポリゴン群を構成するポリゴンの全てに草のマップ画像テクスチャデータ4051によって表される草のテクスチャを一括して貼り付ける。その後、処理はステップS804に戻る。
そして、ステップS804、S805、及びS806の処理が繰り返されることによって、全てのポリゴン(全てのポリゴン群)にマップ画像テクスチャが貼り付けられて(ステップS804でYES)、処理はステップS807に移る。
ステップS807において、GPU11bは、ステップS802で設定したマップ画像カメラによってゲーム空間を撮像(レンダリング)してレンダリングマップ画像を生成する。なお、既に説明したように、マップ画像カメラは、図16に示すように、現在のゲームステージを上方(上空)から真下に見下ろして(俯瞰して)、平行投影によって、現在のゲームステージ全体を撮像する。その後、処理はステップS808に移る。
ステップS808において、GPU11bは、ステップS807で撮像したレンダリングマップ画像をスクリーンキャプチャして、ペイントデータから成るキャプチャマップ画像を生成し、外部メインメモリ12のキャプチャマップ画像データ410として保存(又は更新)する。その後、処理はステップS809に移る。なお、上記したペイントデータは、ペイント画像を構成するデータであり、ビットマップデータやラスタデータと呼ばれることもある。
ステップS809において、GPU11bは、外部メインメモリ12に記憶されているマップ画像OBJデータ406及び各OBJの位置・方向データ407に従って、ステップS808で生成したキャプチャマップ画像上に、プレイヤオブジェクト101を示すアイコンを配置する。その後、処理はステップS810に移る。
ステップS810において、GPU11bは、外部メインメモリ12に記憶されているマップ拡大率データ411及び各OBJの位置・方向データ407に基づいて、テレビ2にマップ画像として表示させるキャプチャマップ画像の領域を決定する。具体的には、図17に例示するように、GPU11bは、キャプチャマップ画像において、プレイヤオブジェクトを中央付近に含む領域であってマップ拡大率データ411が示す拡大率に対応する大きさの表示領域を決定する。その後、処理はステップS811に移る。
ステップS811において、GPU11bは、ステップS810で決定したキャプチャマップ画像の表示領域を、AV−IC15等を介してマップ画像としてテレビ2に出力する。その後、図12のステップS8のマップ画像描画処理は終了し、処理は図12のステップS1に戻る。
以上に説明したように、プレイヤによってゲーム画像からマップ画像に切り替える操作が行われた場合(ステップS7でYES)、ステップS8のマップ画像描画処理が行われて、マップ画像(図10参照)が生成されてテレビ2に表示される。
以下では、ゲーム画像からマップ画像に切り替える操作が行われていない場合(ステップS7でNO)について、説明する。
この場合、ステップS9において、CPU10は、プレイヤによってプレイヤオブジェクト101の移動が指示されたか否かを判定する。具体的には、CPU10は、外部メインメモリ12に記憶されている操作データ401を参照して、プレイヤが拡張コントローラ36のアナログスティック39(図9参照)を操作してプレイヤオブジェクト101の移動を指示したか否かを判定する。ステップS9での判定がYESの場合、処理はステップS10に移る。一方、ステップS9での判定がNOの場合、処理はステップS5に移る。
ステップS9でNOと判定されてステップS5のゲーム画像描画処理(図13参照)に移った場合、ゲーム画像においてプレイヤオブジェクト101が移動しない状態となる。そのため、今回のステップS5のゲーム画像描画処理では、例えば敵等のオブジェクトが移動した場合、その移動を反映したゲーム画像が生成される。その後、処理はステップS1に戻る。
ステップS10において、CPU10は、外部メインメモリ12に記憶されている操作データ401に従って、プレイヤオブジェクト101の新たな位置及び方向で、外部メインメモリ12に記憶されている各OBJの位置・方向データ407を更新する。その後、処理はステップS11に移る。
ステップS11において、CPU10は、ゲーム画像カメラの新たな位置、方向、及び画角で、外部メインメモリ12に記憶されているゲーム画像カメラの位置・方向・画角データ408を更新する。ここで、図8及び図14に例示したように、ゲーム画像カメラは、プレイヤオブジェクト101から所定の距離離れて、プレイヤオブジェクト101の背後から、プレイヤオブジェクト101に向いて撮像を行う。また、ゲーム画像カメラは、所定の条件(例えば、ゲームステージ上の位置)に応じて画角を変化させる。このことから、ゲーム画像カメラは、プレイヤオブジェクト101の移動及び方向転換に応じて、位置、方向、及び画角を変化させることとなる。その後、処理はステップS5に移る。
ステップS11の処理に続いてステップS5のゲーム画像描画処理(図13参照)に移った場合、ゲーム画像において、プレイヤオブジェクト101は移動することとなる。そのため、今回のステップ5のゲーム画像描画処理では、プレイヤオブジェクト101が移動し、それに伴ってゲーム画像カメラの位置、方向、画角が変化したゲーム画像が生成される。なお、これに併せて、敵等のオブジェクトが移動する場合もある。その後、処理はステップS1に戻る。
以下では、テレビ2にマップ画像が表示されている場合(ステップS6でYES)について、説明する。
この場合、ステップS12において、CPU10は、マップ画像の表示からゲーム画像の表示に切り替えるか否かを判定する。具体的には、CPU10は、外部メインメモリ12に記憶されている操作データ401を参照して、プレイヤがコントローラ7のプラスボタン(図3の72g参照)を押下してゲーム画像の表示に切り替える操作を行ったか否かを判定する。ステップS12での判定がYESの場合、処理はステップS5のゲーム画像描画処理に移る。一方、ステップS12での判定がNOの場合、処理はステップS13に移る。
ステップS12でYESと判定されてステップS5に処理が移った場合、図13のゲーム画像描画処理によって、ゲーム画像が生成されてテレビ2に表示される。そのため、今回のステップS5のゲーム画像描画処理では、直近のマップ画像描画処理(ステップS8)によってゲーム画像からマップ画像に切り替えられた時点のゲーム画像が表示画像として生成される。その後、処理はステップS1に戻る。
一方、ステップS13において、CPU10は、テレビ2に表示されているマップ画像の拡大又は縮小を行うか否かを判定する。具体的には、CPU10は、外部メインメモリ12に記憶されている操作データ401を参照して、プレイヤがコントローラ7の十字キー(図3の72a参照)の右キー又は左キーを押下してマップ画像を拡大又は縮小(ズームイン又はズームアウト)する操作を行ったか否かを判定する。ステップS13での判定がYESの場合、処理はステップS14に移る。一方、ステップS12での判定がNOの場合、処理はステップS1に戻る。
ステップS14において、CPU10は、外部メインメモリ12に記憶されている操作データ401に基づいて、外部メインメモリ12に記憶されているマップ拡大率データ411を更新する。具体的には、CPU10は、操作データ401を参照してプレイヤが行ったマップ画像を拡大又は縮小(ズームイン又はズームアウト)する操作を特定し、特定したこの操作に対応した拡大率で、マップ拡大率データ411を更新する。その後、処理はステップS15に移る。
ステップS15において、GPU11bは、ステップS14で更新されたマップ拡大率データ411が示す拡大率に応じて、キャプチャマップ画像データ410が表すキャプチャマップ画像内の表示領域(図17参照)を決定し、決定した表示領域を、AV−IC15等を介してマップ画像としてテレビ2に出力する。その後、処理はステップS1に戻る。
以上に説明したように、プレイヤによってマップ画像を拡大又は縮小する操作が行われた場合(ステップS13でYES)、ステップS14及びS15の処理が行われて、テレビ2に表示されたマップ画像が拡大又は縮小(ズームイン又はズームアウト)される。
以上に説明した本発明の一実施形態によれば、ゲーム画像の生成に使用されるゲームステージデータ(ポリゴンに関するデータ)を用いてマップ画像を生成するので、ゲームステージ毎のマップ画像を別個に用意する必要がない。このことによって、光ディスク4やROM等の記憶媒体及び外部メインメモリ12等のメモリ(RAM)の記憶容量を節約することができる。また、同一のゲームステージにおいて「地殻変動」などの地形変化が行われた場合、そのような地形の変化をマップ画像に即座に反映させることができる。さらに、ゲームの製作段階において、ゲームステージデータを変更した場合には生成されるマップ画像もこの変更に連動して変更されるので、製作者の負担が軽減される。
[変形例]
なお、以上に説明した実施形態では、図13のゲーム画像描画処理において、ポリゴンに1つずつゲーム画像テクスチャを貼り付けた(ステップS504、S505)。しかし、図13のゲーム画像描画処理において、図15のマップ画像描画処理と同様に、同じゲーム画像属性が割り当てられたポリゴン(ポリゴン群)を特定して、特定したポリゴン群毎に一括してゲーム画像テクスチャを貼り付けてもよい。この場合、図13のゲーム画像描画処理のステップS502の直後に、ゲーム画像カメラの撮像範囲内の全ポリゴンに対して同じゲーム画像属性毎にポリゴン群としてリストアップする処理が追加され、ステップS504において、テクスチャを貼り付けていないポリゴン群が1つ選択され、ステップS505において、選択されたポリゴン群を構成するポリゴンに一括でゲーム画像テクスチャが貼り付けられることとなる。このことによって、ゲーム画像を生成するための処理負担が軽減される。
また、以上に説明した実施形態では、図15のマップ画像描画処理において、マップ画像属性「なし」が割り当てられたポリゴンはゲーム空間に配置しないことによって、マップ画像に描く必要のない形状(石ころ、落ち葉等)をマップ画像から省いた。しかし、図15のマップ画像描画処理において、マップ画像属性「なし」が割り当てられたポリゴンもゲーム空間に配置し、マップ画像属性「なし」が割り当てられたポリゴンにはマップ画像テクスチャを貼り付けないことによって、マップ画像に描く必要のない形状(石ころ、落ち葉等)をマップ画像から省いてもよい。この場合、図15に示すマップ画像描画処理は、図18に示すマップ画像描画処理に変形される。具体的には、図15のステップS801は、図18のステップS901(全てのポリゴンをゲーム空間に配置する処理)に置き換えられ、図15のステップS804は、図18のステップS904(マップ画像属性「なし」が割り当てられたポリゴンを除く全ポリゴンにテクスチャを貼り付けたか否かが判定される処理)に置き換えられ、図15のステップS805は、図18のステップS905(マップ画像属性「なし」が割り当てられたポリゴンから成るポリゴン群を除くポリゴン群のうちテクスチャを貼り付けていないポリゴン群を1つ選択する処理)に置き換えられることとなる。
また、以上に説明した実施形態では、図13のゲーム画像描画処理において、全ポリゴンが配置されて現在のゲームステージ全体が形成され(ステップS501)、ゲーム画像カメラの撮像範囲内のポリゴンのみにゲーム画像テクスチャが貼り付けられた(ステップS503〜S505)。しかし、ステップS501において、ゲーム画像カメラの撮像範囲内のポリゴンのみがゲーム空間に配置されてもよい。このことによって、ポリゴンを配置するための処理負荷が軽減される。
また、以上に説明した実施形態では、図15のマップ画像描画処理において、マップ画像属性「なし」が割り当てられたポリゴンを除く全ポリゴンが配置されて現在のゲームステージ全体が形成され(ステップS801)、マップ画像カメラによって現在のゲームステージ全体が撮像された(ステップS807)。しかし、図15のステップS807においてマップ画像カメラは、プレイヤオブジェクト101の位置を含む現在のゲームステージの一部領域(例えば、現在のゲームステージを4分割した領域のうちプレイヤオブジェクト101の位置を含む領域)を撮像してもよい。そして、この場合には、図15のステップS801において、マップ画像カメラの撮像領域内のポリゴンであって、マップ画像属性「なし」が割り当てられたポリゴンを除くポリゴンが配置されることとしてもよい。このことによって、ポリゴンを配置するための処理負荷が軽減される。なお、このようにした場合、マップ画像には、上記の撮像された一部領域の外の領域は表示されないこととなる。
また、上記した図18のマップ画像描画処理において、全ポリゴンが配置されて現在のゲームステージ全体が形成され(ステップS901)、マップ画像カメラによって現在のゲームステージ全体が撮像された(ステップS807)。しかし、図18のステップS807においてマップ画像カメラは、プレイヤオブジェクト101の位置を含む現在のゲームステージの一部領域(例えば、現在のゲームステージを4分割した領域のうちプレイヤオブジェクト101の位置を含む領域)を撮像してもよい。そして、この場合には、図18のステップS901において、マップ画像カメラの撮像領域内のポリゴンが配置されることとしてもよい。このことによって、ポリゴンを配置するための処理負荷が軽減される。なお、このようにした場合、マップ画像には、上記の撮像された一部領域の外の領域は表示されないこととなる。
また、以上に説明した実施形態では、図8及び図14に示したように、ゲーム画像を生成する際に、ゲーム画像カメラは、プレイヤオブジェクト101の後方からプレイヤオブジェクト101を向いて撮像を行った。しかし、ゲーム画像を生成する際に、ゲーム画像カメラは、任意の方向からプレイヤオブジェクト101を向いて撮像を行ってもよい。例えば、ゲーム画像カメラは、プレイヤオブジェクト101の正面からプレイヤオブジェクト101を向いて撮像を行ってもよいし、プレイヤオブジェクト101の上方からプレイヤオブジェクト101を向いて撮像を行ってもよい。また、プレイヤオブジェクト101の視点でもよい。
また、以上に説明した実施形態では、図15のマップ画像描画処理において、レンダリングマップ画像をスクリーンキャプチャしてキャプチャマップ画像に変換している(ステップS808)。しかし、ステップS808の変換の処理は行わないこととしてもよい。この場合、ステップS811において、レンダリングマップ画像の表示領域がマップ画像として出力されることとなる。
また、以上に説明した実施形態では、ゲームステージデータ402はゲーム画像属性データ4022及びマップ画像属性データ4023を含んでいた。しかし、ゲームステージデータ402はマップ画像属性データ4023を含まなくてもよい。この場合、ゲーム画像が生成される際にはゲーム画像属性に基づいてポリゴンにゲーム画像テクスチャが貼り付けられ、マップ画像が生成される際にもゲーム画像属性に基づいてポリゴンにマップ画像テクスチャが貼り付けられることとなる。
また、以上に説明した実施形態では、プレイヤの操作に応じてゲーム画像とマップ画像がテレビ2に切り替えて表示された(図12参照)。しかし、ゲーム画像に重ねて、ゲーム画像よりも小さいマップ画像を表示してもよい。また、テレビ2の画面に、ゲーム画像とマップ画像とを重ならないように別個に表示してもよい。また、2つの表示部にそれぞれゲーム画像とマップ画像を表示してもよい。具体的には、テレビ2の画面にゲーム画像を表示し、携帯端末等(図示せず)の表示部にマップ画像を表示してもよいし、2以上の表示装置を備えたゲーム機の一方にゲーム画像を表示し、もう一方にマップ画像を表示してもよい。
また、以上に説明した実施形態において、マップ画像描画処理(図15参照)によってポリゴンに貼り付けられるマップ画像テクスチャの画像サイズは、ゲーム画像描画処理(図13参照)によってポリゴンに貼り付けられるゲーム画像テクスチャの画像サイズよりも小さいことが好ましい。更には、ポリゴンのサイズよりもマップ画像テクスチャのサイズ(画像サイズ)を大幅に小さく設定して、このマップ画像テクスチャをポリゴンに複数整列させる態様で繰り返して貼り付けてもよい。このことによって、マップ画像テクスチャデータ405(図11参照)のデータサイズが小さくなり、各記憶媒体やメモリの容量を節約できる。
なお、マップ画像テクスチャの画像サイズを大きくした場合、上記のようにデータサイズを小さくできないが、一方で、マップ画像テクスチャで表現できる態様が広がる。
また、以上に説明した実施形態において、マップ画像を、プレイヤオブジェクト101の向きやゲーム画像カメラの撮像方向に応じて回転させてもよい。例えば、プレイヤオブジェクト101の正面が向いた方向が常にテレビ2の上方向となるように、マップ画像を回転させてテレビ2に表示させてもよい。さらに、マップ画像の拡大率に応じてマップ画像の向きが変わってもよい。例えば、マップ画像の拡大率が大きいときにはプレイヤオブジェクト101の正面が向いた方向が常にテレビ2の上方向となるようにマップ画像を回転させ、マップ画像の拡大率が小さいときには回転を行わない状態(例えば北が上向きとなるように固定された状態)でマップ画像をテレビ2に表示させてもよい。このことにより、マップ画像の拡大率が大きいときにはプレイヤオブジェクト101の正面方向が常にテレビ2の所定方向となるようにマップ画像を提供し、マップ画像の拡大率が小さいときにはゲームステージの全体を把握できるマップ画像を提供することになり、目的に応じてマップ画像の表示方向を使い分けることができる。
また、以上に説明した実施形態において、敵等のオブジェクトを示すアイコンは、マップ画面に表示させていない。しかし、プレイヤオブジェクト101を示すアイコンと同様に、敵等のオブジェクトを示すアイコンをマップ画像に表示させてもよい。
また、以上に説明した実施形態において、プレイヤは、ゲーム画像がテレビ2に表示されている場合にのみ、プレイヤオブジェクト101を移動させることができる。しかし、プレイヤは、マップ画像がテレビ2に表示されている場合にも、プレイヤオブジェクト101を移動させることができることとしてもよい。
また、以上に説明した実施形態において、マップ画像カメラは、ゲーム空間(現在のゲームステージ)を真上から俯瞰して撮像を行っている(図16参照)。しかし、図19に例示するように、マップ画像カメラは、ゲーム空間(現在のゲームステージ)を斜め上方から俯瞰して撮像を行ってもよい。また、マップ画像カメラは、ゲーム空間(現在のゲームステージ)を下から仰視して撮像を行ってもよい。このような撮像は、例えば海中をプレイヤオブジェクト101が泳ぐゲームステージにおいて、海底から上を見上げるマップ画像を生成する場合に行われる。また、マップ画像カメラは、ゲーム空間(現在のゲームステージ)を側方から視て撮像を行ってもよい。このような撮像は、例えばビルや穴の中をプレイヤオブジェクト101が移動するゲームステージにおいて、ビルや穴の中を側面から視たマップ画像を生成する場合に行われる。
また、以上に説明した実施形態において、マップ画像カメラは、ゲーム空間(現在のゲームステージ)を平行投影によって撮像している。しかし、マップ画像カメラの撮像方法はこれには限定されない。
また、以上に説明した実施形態において、本発明は、据置型のゲーム機によって実現されている(図1参照)。しかし、本発明は、携帯型ゲーム機、パーソナルコンピュータ、携帯電話機、携帯情報端末等の他の形態よって実現されてもよい。
また、以上に説明した実施形態において、マップ画像テクスチャは、複数の画像(こま)を切り替えて表示させるアニメーションを実行するテクスチャとしてもよい。例えば、海を表すマップ画像テクスチャとしては、波が揺れるアニメーションを実行するテクスチャにすることで、マップ画像に躍動感を与えることができる。
また、以上に説明した実施形態において、図13のゲーム画像描画処理及び図15のマップ画像描画処理では、ポリゴンに割り当てられている属性に基づいてテクスチャが貼り付けられた。しかし、図13のゲーム画像描画処理及び図15のマップ画像描画処理では、ポリゴンに割り当てられている属性と、実際又は架空の時間や季節等を示す時間情報とに基づいて、テクスチャが貼り付けられてもよい。例えば、或るポリゴンに属性「草」が割り当てられている場合に、時間情報が「春」を示しているときには花が咲いた草のテクスチャがポリゴンに貼り付けられ、時間情報が「秋」を示しているときには枯れた草のテクスチャがポリゴンに貼り付けられてもよい。また、同様の方法で、昼夜によってテクスチャを変えることもできる。
また、以上に説明した実施形態において、ゲーム画像からマップ画像に切り替えられる度にキャプチャマップ画像を生成し、マップ画像が拡大又は縮小されて表示される場合にもこの作成したキャプチャマップ画像を使用していた(図12参照)。しかし、マップ画像が拡大又は縮小されて表示される度に、キャプチャマップ画像が生成されてもよい。この場合、マップ画像の拡大又は縮小を行う際に、ゲームステージ全体の撮像画像をスクリーンキャプチャし、得られたキャプチャマップ画像からマップ画像の拡大率に応じた表示領域を切り出してマップ画像として出力してもよい。また、この場合、マップ画像の拡大又は縮小を行う際に、マップ画像の拡大率に対応する撮像領域をマップ画像カメラに設定し、当該撮像領域によって撮像した画像をそのままマップ画像として出力してもよい。また、ゲームステージが遷移する(図12のステップS1でYES)度にキャプチャマップ画像が生成されてもよい。ゲームステージが遷移する度にキャプチャマップ画像を生成する方法は、マップ画像を生成する処理負荷を軽減できる。一方で、ゲーム画像からマップ画像に切り替えられる度に又はマップ画像が拡大又は縮小されて表示される度にキャプチャマップ画像を生成する方法は、ゲームステージの変化(例えば地形の変化)を当該ゲームステージでのゲーム進行中にマップ画像に反映させることができる。
また、以上に説明した実施形態において、「なし」を示す属性は、マップ画像属性のみに存在し、ゲーム画像属性には存在しないようになっていた。しかし、逆に、「なし」を示す属性は、ゲーム画像属性のみに存在するようにしてもよい。このようにすることで、ゲーム画像では表示されずマップ画像のみに表示されるポリゴンが発生し、マップ画像を、例えば、隠された宝の位置を示す地図、のように扱うことができる。
また、以上に説明した実施形態において、テレビ2の表示画像がゲーム画像からマップ画像に切り替わる際に、瞬間的に切り替えるのではなく、視覚効果の高い切り替えを行ってもよい。例えば、ゲーム画像が、後方からプレイヤオブジェクト101を視る画像からプレイヤオブジェクト101を俯瞰する画像に連続的に滑らかに変化し、その後、変化したゲーム画像上にマップ画像をフェードインさせて重畳させ、その後、ゲーム画像をフェードアウトさせてマップ画像に完全に切り替えてもよい。このような視覚効果を付すことで、ゲーム画像とマップ画像とで用いられる仮想カメラが互いに異なるものである場合でも、ゲーム画像カメラがプレイヤオブジェクト101を俯瞰した位置に移動した結果としてマップ画像が表示されるというような印象をユーザに与えることができる。
また、以上に説明した実施形態において、ゲーム空間のy軸によって表される高さ(図14等参照)に基づいて、マップ画像生成の際に配置されないポリゴンを決定する、もしくは、マップ画像生成の際にテクスチャの貼り付けが行われないポリゴンを決定してもよい。または、この高さに基づいて、「なし」のマップ画像属性が割り当てられるポリゴンが設定されていてもよい。以下、具体的に説明する。
例えば、ゲーム空間において地面より高い位置(y座標がより大きい位置)にポリゴンによって形成された「木」等が在る場合、この木をマップ画像に表示するとマップ画像において地面が見え難くなる。そこで、ゲーム空間において地面よりも高い位置に存在するポリゴンを、マップ画像生成の際に配置しない、マップ画像生成の際に配置するがテクスチャの貼り付けは行わない、または、ゲーム空間において地面よりも高い位置に存在するポリゴンに「なし」のマップ画像属性を予め割り当てておく。このようにすることによって、図15又は図18のマップ画像描画処理において、マップ画像に「木」を描画しないようにできる。
例えば、図15のマップ画像描画処理において、ゲーム空間において地面よりも高い位置のポリゴンを配置しない場合を考える。この場合、図15のステップS801において、マップ画像属性「なし」が割り当てられたポリゴンを除くポリゴンであって、地面の高さ(所定値)よりも高い位置のポリゴンを除くポリゴンが、ゲーム空間に配置されることとなる。
また、例えば、図18のマップ画像描画処理において、ゲーム空間において地面よりも高い位置のポリゴンを配置しない場合を考える。この場合、図18のステップS901において、地面の高さ(所定値)よりも高い位置のポリゴンを除くポリゴンが、ゲーム空間に配置されることとなる。
また、例えば、図15のマップ画像描画処理において、ゲーム空間において地面よりも高い位置のポリゴンにはテクスチャを貼り付けない場合を考える。この場合、図15のステップS803において、ステップS801で配置されたポリゴンのうち地面の高さ(所定値)よりも高い位置のポリゴンを除く全ポリゴンに対してリストアップが為され、ステップS804〜S806において、このリストアップが為されたポリゴンにテクスチャが貼り付けられることとなる。
また、例えば、図18のマップ画像描画処理において、ゲーム空間において地面よりも高い位置のポリゴンにはテクスチャを貼り付けない場合を考える。この場合、図18のステップS803において、ステップS801で配置されたポリゴンのうち地面の高さ(所定値)よりも高い位置のポリゴンを除く全ポリゴンに対してリストアップが為され、ステップS904、S905、S806において、このリストアップが為されたポリゴンのうち属性「なし」が割り当てられたポリゴンを除くポリゴンにテクスチャが貼り付けられることとなる。
また、以上に説明した実施形態を変形して拡大率の大きい詳細マップ画像と拡大率の小さい全体マップ画像とを生成する場合を考える。この場合、詳細マップ画像を生成する処理では、上記したように地面より高い位置に存在するポリゴンは、マップ画像生成の際に配置されない、マップ画像生成の際に配置は行われるがテクスチャの貼り付けが行われない、または、「なし」のマップ画像属性を割り当てられることで、「木」をマップ画像には登場させないようにする一方で、全体マップ画像を生成する処理では、木を形成するポリゴンも配置やテクスチャの貼り付けが行われるようにしてもよい。このことによって、詳細マップ画像には木の下に隠れている道等が表示され、全体マップには森が表示されるので、2つのマップ画像を使い分けることができる。
また、例えば、ゲーム空間において、複数の階が存在するビル等の建物の1階にプレイヤオブジェクト101が居る場合、マップ画像を生成する際に2階や屋根等を構成するポリゴンが描画されてプレイヤオブジェクト101が隠されてしまう。そこで、ゲーム空間においてプレイヤオブジェクト101よりも高い位置に存在するポリゴンをマップ画像生成の際に配置しない、マップ画像生成の際に配置は行うがテクスチャの貼り付けは行わない、または、「なし」のマップ画像属性を割り当てておくことによって、図15又は図18のマップ生成処理において、プレイヤオブジェクト101を隠す階や屋根等をマップ画像に描画しないようにできる。
また、例えば、ゲーム空間における断崖絶壁等の高低差が極端に大きい形状を、マップ画像によってプレイヤにわかり易く表すことは一般に困難である。そこで、断崖絶壁等の高低差が極端に大きい形状を形成するポリゴンには「境界線」のマップ画像属性を割り当てておき、図15又は図18のマップ生成処理において、「境界線」のマップ画像属性が割り当てられたポリゴンには、このような形状を表現する境界線(典型的には等高線)を表すマップ画像テクスチャを貼り付ける。このことによって、断崖絶壁等の高低差が極端に大きい形状を、マップ画像によってプレイヤにわかり易く表すことができる。あるいは、「境界線」のマップ画像属性を割り当てるのではなく、高低差が極端に大きいポリゴン同士の境界を判別し、その境界となる場所に境界線のオブジェクトを配置するようにしてもよい。
また、例えば、ゲーム空間において坂が形成される場合において、坂を形成するポリゴンに対して、高い位置のポリゴンから低い位置のポリゴンに向かって徐々に色が変化するように、マップ画像属性を割り当てて、色の異なるマップ画像テクスチャを貼り付けてもよい。このことによって、マップ画像において、ゲーム空間の坂をグラデーションで表現できる。
また、以上では、いわゆる三人称視点でゲーム画像が描画される場合を例に挙げて説明した。しかし、いわゆる一人称視点でゲーム画像が描画されてもよい。
また、以上では、ゲーム画像カメラとマップ画像カメラとを別個に設けてこれらの仮想カメラを切り替えて使用して、ゲーム画像とマップ画像とを生成した。しかし、1つの仮想カメラに、ゲーム画像カメラとマップ画像カメラの双方の役割を担わせて、ゲーム画像とマップ画像とを生成してもよい。この場合、この1つの仮想カメラが、ゲーム画像カメラの位置とマップ画像カメラの位置との間を移動して、ゲーム画像とマップ画像とを生成することとなる。
また、以上では、本発明によってゲームの表示画像を生成する例を説明した。しかし、本発明は、これには限られず、様々な用途の表示画像の生成に用いることができる。
また、以上では、一例として、図1に示すゲームシステム1内において以上に説明した処理の全てが実行されるものとした。しかし、以上に説明した処理は、有線又は無線で互いに接続された複数の装置(又はシステム)によって処理分担されて実行されてもよい。例えば、以上に説明した処理は、端末側装置とサーバ側装置とを含むシステムにおいて、図12のステップS5、S8及びS15の処理が端末側装置によって実行され、図12の他の処理がサーバ側装置によって実行されてもよい。