説明

鳥瞰マップリソース生成プログラム、鳥瞰マップ表示プログラム、鳥瞰マップリソース生成装置、および、鳥瞰マップ表示装置

【課題】仮想3次元空間に対応する鳥瞰マップの記憶に必要な記憶容量を軽減できるリソース作成プログラムを提供すること。
【解決手段】仮想3次元空間内において、当該仮想3次元空間に配置された仮想カメラで、仮想3次元空間の一部の領域の鳥瞰画像を撮影する。次に、当該撮影された鳥瞰画像を構成する色に関する情報が所定の条件を満たしているか否かを判定する。その結果、所定の条件を満たしていないと判定された鳥瞰画像の画像データを所定の記憶媒体に蓄積することでリソースデータを生成する。以上のような処理を、仮想3次元空間の予め定められた領域に対応する鳥瞰画像の全てが撮影されるまで繰り返す。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想3次元空間に対応する鳥瞰マップのリソースを生成する鳥瞰マップリソース生成プログラム、鳥瞰マップリソース生成装置、および、当該リソースを用いて鳥瞰マップを生成・表示する鳥瞰マップ表示プログラム、鳥瞰マップ表示装置に関し、より特定的には、仮想3次元空間を鳥瞰する位置から撮影することで得られた画像データに基づいて、鳥瞰マップのリソースを生成し、鳥瞰マップを表示する処理が実行される鳥瞰マップリソース生成プログラム、鳥瞰マップリソース生成装置、および、鳥瞰マップ表示プログラム、鳥瞰マップ表示装置に関する。
【背景技術】
【0002】
従来より、仮想3次元空間を表示装置に表示させるとともに、当該仮想3次元空間を真上から見た平面図である2次元マップも表示装置に表示させるものが知られている(例えば、特許文献1)。このような2次元マップは、仮想3次元空間を表示するためのデータとはまた別に作成されて予め記憶されていた。あるいは、仮想3次元空間に配置されるオブジェクトの位置データ等を示すマップデータを用いてその都度作成されていた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−26129号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1に記載された情報処理装置において、2次元マップが仮想3次元空間を表示するためのデータとは別のデータとして作成される場合には、例えばゲームの開発中において仮想3次元空間の構成に変更があった場合は、その都度、2次元マップを作成する(作り直す)ための作業が発生していた。そのため、2次元マップを作成するための作業を軽減するという点で改善の余地があった。更に、上記特許文献1に記載された情報処理装置において、2次元マップが仮想3次元空間に配置されるオブジェクトの位置データ等を示すマップデータを用いて作成される場合には、仮想3次元空間の全てに対応した2次元マップを記憶しておく必要があるため、仮想3次元空間が大きくなるにつれて2次元マップを記憶するために必要なメモリの容量が大きくなり、2次元マップを記憶するためにメモリの消費量を軽減するという点で改善の余地があった。
【0005】
それ故に、本発明の目的は、開発者の負担を軽減し、また、仮想3次元空間に対応する鳥瞰マップの記憶に必要な記憶容量を軽減できるリソース作成プログラムを提供することである。
【0006】
また、本発明の別の目的は、処理コストを軽減することができる鳥瞰マップ表示プログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施形態との対応関係の一例を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、仮想3次元空間に対応する鳥瞰マップを表示するためのリソースを生成する鳥瞰マップリソース生成装置のコンピュータで実行される鳥瞰マップリソース生成プログラムであって、コンピュータを、撮影手段と、判定手段と、リソースデータ生成手段として機能させる。撮影手段は、仮想3次元空間内に配置された仮想カメラで仮想3次元空間の一部の領域の鳥瞰画像を撮影する。判定手段は、撮影手段で撮影された鳥瞰画像を構成する色に関する情報が所定の条件を満たしているか否かを判定する。リソースデータ生成手段は、判定手段によって所定の条件を満たしていないと判定された鳥瞰画像の画像データを所定の記憶媒体に蓄積することでリソースデータを生成する。そして、撮影手段と判定手段とリソースデータ生成手段による処理は、仮想3次元空間の予め定められた領域に対応する鳥瞰画像の全てが撮影手段によって撮影されるまで繰り返される。
【0009】
第1の発明によれば、開発途中で仮想3次元空間の構成が変更されたような場合でも、当該仮想3次元空間に対応する鳥瞰マップの再作成にかかる開発者の負担を軽減することができる。また、鳥瞰マップのリソースとなるデータの量を削減することができる。
【0010】
第2の発明は、第1の発明において、鳥瞰マップリソース生成プログラムは、コンピュータを、仮想3次元空間内において仮想カメラを所定の撮影条件に応じて移動させる仮想カメラ移動手段として更に機能させる。そして、撮影手段は、仮想カメラ移動手段によって移動された仮想カメラで仮想3次元空間の一部の領域の鳥瞰画像を撮影する。
【0011】
第2の発明によれば、鳥瞰画像のサイズを任意のサイズに設定することが可能となる。
【0012】
第3の発明は、第1または第2の発明において、鳥瞰マップ生成プログラムは、コンピュータを、仮想3次元空間を構成する地形オブジェクトのうち、所定の種類の地形オブジェクトを描画せず、所定の種類の地形オブジェクト以外の地形オブジェクトを描画することにより仮想3次元空間を生成するリソース用3次元空間生成手段として更に機能させる。そして、撮影手段は、リソース用3次元空間生成手段で生成された仮想3次元空間を撮影する。
【0013】
第4の発明は、第3の発明において、リソース用3次元空間生成手段は、所定の単一色を背景色とし、所定の種類の地形オブジェクト以外の地形オブジェクトを描画することで仮想3次元空間を生成する。
【0014】
第5の発明は、第3または第4の発明において、判定手段は、撮影手段で撮影された鳥瞰画像の画素値が全て同じ色を示す画素値であるとき、所定の条件を満たしたと判定する。
【0015】
第6の発明は、第3または第4の発明において、判定手段は、鳥瞰画像が複数色で構成されているときは、当該複数の色のうち、階調の差が所定範囲内である複数の色については同じ色として判定する。
【0016】
第3乃至第6の発明によれば、単一色で構成された鳥瞰画像についてはリソース化する対象から外すため、鳥瞰マップのリソースとなるデータの量を削減することができる。
【0017】
第7の発明は、第2の発明において、仮想カメラ移動手段は、仮想カメラで撮影される仮想3次元空間の領域が重複しないように仮想カメラを移動させる。
【0018】
第7の発明によれば、無駄な撮影処理を防ぐ事ができ、処理コストを軽減することができる。
【0019】
第8の発明は、第7の発明において、仮想カメラ移動手段は、仮想3次元空間全体が一枚の画像に収まるように鳥瞰した画像を所定の大きさの正方形で格子状に区切ったと仮定したときの当該正方形単位で仮想カメラを移動させる。
【0020】
第8の発明によれば、リソースデータとなる画像データの数に無駄が発生することを防ぐことが可能となる。
【0021】
第9の発明は、第1乃至第8のいずれかの発明において、リソースデータ生成手段は、撮影手段が撮影した鳥瞰画像に対応する仮想3次元空間内の位置を示す情報を画像データに付加して蓄積する。
【0022】
第9の発明によれば、画像データと対応する仮想3次元空間内の位置との対応とが記憶されるため、リソースデータに基づいて鳥瞰マップを生成するときの生成処理の負荷を軽減することが可能となる。
【0023】
第10の発明は、第1の発明において、撮影手段は、仮想3次元空間の鳥瞰画像を正射影方式で撮影する。
【0024】
第10の発明によれば、利用者にとって見やすい鳥瞰マップを生成することができる。
【0025】
第11の発明は、第2の発明において、仮想カメラ移動手段は、リソースデータ生成手段で蓄積される画像データの画像サイズに応じて仮想カメラを移動させる距離を決定して移動させる。
【0026】
第11の発明によれば、仮想3次元空間の内容やこれを用いて行われる情報処理の内容に応じて適切なサイズの画像データを用いることができ、鳥瞰マップのリソースとなるデータの量を削減することができる。
【0027】
第12の発明は、仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置のコンピュータで実行される鳥瞰マップ表示プログラムであって、コンピュータを、画像データ選択手段と、鳥瞰マップ表示手段として機能させる。ここで、コンピュータは、仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが蓄積されたデータであるリソースデータが記憶されているリソースデータ記憶手段と接続されている。そして、画像データ選択手段は、リソースデータから所定の画像データを選択する。鳥瞰マップ表示手段は、画像データ選択手段で選択された画像データに基づいて、鳥瞰マップを生成して、所定の表示装置の画面に表示する。
【0028】
第12の発明によれば、鳥瞰マップとして必要な部分についてのみ描画処理を実行させることができ、鳥瞰マップを表示するための処理負荷を軽減することができる。
【0029】
第13の発明は、仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置のコンピュータで実行される鳥瞰マップ表示プログラムであって、コンピュータを、位置取得手段と、リソース存在判定手段と、鳥瞰マップ表示手段として機能させる。ここで、コンピュータは、仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが、当該各画像データの撮影された当該仮想3次元空間内の位置を示す情報と共に蓄積されたデータであるリソースデータが記憶されたリソースデータ記憶手段と接続されている。そして、位置取得手段は、鳥瞰マップ内における所定の表示位置に対応する仮想3次元空間内の位置を取得する。リソース存在判定手段は、位置取得手段で取得された仮想3次元空間内の位置に対応する画像データがリソースデータに含まれているか否かを判定する。鳥瞰マップ表示手段は、リソース判定手段において、対応する画像データが含まれていると判定されたときは、リソースデータから当該対応する画像データを取得して鳥瞰マップ内における所定の表示位置に表示し、含まれていないと判定されたときは、予め定められた画像データを当該鳥瞰マップ内における当該所定の表示位置に表示する。
【0030】
第14の発明は、第13の発明において、鳥瞰マップ表示プログラムは、コンピュータを、位置取得手段で取得された仮想3次元空間内の位置が、鳥瞰マップとして描画される仮想3次元空間内の範囲外であるか否かをプレイヤオブジェクトの位置と所定の描画範囲とに基づいて判定する第1の鳥瞰マップ範囲外判定手段として更に機能させる。そして、リソース判定手段は、第1の鳥瞰マップ範囲外判定手段で鳥瞰マップの範囲外ではないと判定された仮想3次元空間内の位置についてのみ、当該仮想3次元空間内の位置に対応する画像データがリソースデータに含まれているか否かを判定する。
【0031】
第15の発明は、第14の発明において、第1の鳥瞰マップ範囲外判定手段は、位置取得手段で取得された仮想3次元空間内の位置が鳥瞰マップとして表示される仮想3次元空間の範囲外であるか否かを、プレイヤオブジェクトの位置、所定の描画範囲、および、当該鳥瞰マップの拡大率に基づいて判定する。
【0032】
第16の発明は、第14または第15の発明において、鳥瞰マップ表示プログラムは、コンピュータを、第1の鳥瞰マップ範囲外判定手段で鳥瞰マップの範囲外ではないと判定された仮想3次元空間内の位置が、鳥瞰マップとして描画される仮想3次元空間内の範囲内に含まれるか否かをプレイヤオブジェクトの向きに基づいて判定する第2の鳥瞰マップ範囲外判定手段として更に機能させる。そして、リソース判定手段は、第2の鳥瞰マップ範囲外判定手段において鳥瞰マップの範囲内に含まれると判定された仮想3次元空間内の位置についてのみ、当該仮想3次元空間内の位置に対応する画像データがリソースデータに含まれているか否かを判定する。
【0033】
第13乃至第16の発明によれば、鳥瞰マップの描画処理にかかる処理負荷を軽減することができる。
【0034】
第17の発明は、仮想3次元空間に対応する鳥瞰マップを表示するためのリソースを生成する鳥瞰マップリソース生成装置であって、撮影手段と、判定手段と、リソースデータ生成手段とを備える。撮影手段は、仮想3次元空間内に配置された仮想カメラで仮想3次元空間の一部の領域の鳥瞰画像を撮影する。判定手段は、撮影手段で撮影された鳥瞰画像を構成する色に関する情報が所定の条件を満たしているか否かを判定する。リソースデータ生成手段は、判定手段によって所定の条件を満たしていないと判定された鳥瞰画像の画像データを所定の記憶媒体に蓄積することでリソースデータを生成する。そして、撮影手段と判定手段とリソースデータ生成手段による処理は、仮想3次元空間の予め定められた領域に対応する鳥瞰画像の全てが撮影手段によって撮影されるまで繰り返される。
【0035】
第17の発明によれば、第1の発明と同様の効果を得ることができる。
【0036】
第18の発明は、仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置であって、リソースデータ記憶手段と、画像データ選択手段と、鳥瞰マップ表示手段とを備える。リソースデータ記憶手段は、仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが蓄積されたデータであるリソースデータを記憶する。画像データ選択手段は、リソースデータから所定の画像データを選択する。鳥瞰マップ表示手段は、画像データで選択された画像データに基づいて、鳥瞰マップを生成して、所定の表示装置の画面に表示する。
【0037】
第18の発明によれば、第12の発明と同様の効果を得ることができる。
【0038】
第19の発明は、仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置であって、リソースデータ記憶手段と、位置取得手段と、リソース存在判定手段と、鳥瞰マップ表示手段とを備える。リソースデータ記憶手段は、仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが、当該各画像データの撮影された当該仮想3次元空間内の位置を示す情報と共に蓄積されたデータであるリソースデータを記憶する。位置取得手段は、鳥瞰マップ内における所定の表示位置に対応する仮想3次元空間内の位置を取得する。リソース存在判定手段は、位置取得手段で取得された仮想3次元空間内の位置に対応する画像データがリソースデータに含まれているか否かを判定する。鳥瞰マップ表示手段は、リソース判定手段において、対応する画像データが含まれていると判定されたときは、リソースデータから当該対応する画像データを取得して鳥瞰マップ内における所定の表示位置に表示し、含まれていないと判定されたときは、予め定められた画像データを当該鳥瞰マップ内における当該所定の表示位置に表示する。
【0039】
第19の発明によれば、第13の発明と同様の効果を得ることができる。
【0040】
第20の発明は、鳥瞰マップのリソースを生成して当該リソースに基づいて当該鳥瞰マップを表示する方法であって、撮影ステップと、判定ステップと、リソースデータ生成ステップと、制御ステップと、画像データ選択ステップと、鳥瞰マップ表示ステップとを含む。撮影ステップは、仮想3次元空間内に配置された仮想カメラで仮想3次元空間の一部の領域の鳥瞰画像を撮影する。判定ステップは、撮影ステップで撮影された鳥瞰画像に関する情報が所定の条件を満たしているか否かを判定する。リソースデータ生成ステップは、判定ステップによって所定の条件を満たしていないと判定された鳥瞰画像の画像データを所定の記憶媒体に蓄積することでリソースデータを生成する。制御ステップは、撮影ステップと判定ステップとリソースデータ生成ステップによる処理を、仮想3次元空間の予め定められた領域に対応する鳥瞰画像の全てが撮影ステップによって撮影されるまで繰り返す。画像データ選択ステップは、リソースデータから所定の画像データを選択する。鳥瞰マップ表示ステップは、画像データ選択ステップで選択された画像データに基づいて、鳥瞰マップを生成して、所定の表示装置の画面に表示する。
【0041】
第20の発明によれば、鳥瞰マップのリソースとなるデータ量を軽減でき、更に、鳥瞰マップの描画処理にかかる処理負荷を軽減することができる。
【発明の効果】
【0042】
本発明によれば、鳥瞰マップ作成にかかる開発者の負担を軽減することができる。また、鳥瞰マップを生成するために用いるリソースのデータ量を軽減することができる。
【0043】
また、本発明によれば、鳥瞰マップを表示するための処理負荷を軽減することができる。
【図面の簡単な説明】
【0044】
【図1】本発明の一実施形態に係るゲームシステム1を説明するための外観図
【図2】図1のゲーム装置3の機能ブロック図
【図3】図1のコントローラ7の上面後方から見た斜視図
【図4】図3のコントローラ7を下面前方から見た斜視図
【図5】図3のコントローラ7の上ハウジングを外した状態を示す斜視図
【図6】図3のコントローラ7の下ハウジングを外した状態を示す斜視図
【図7】図3のコントローラ7の構成を示すブロック図
【図8】本実施形態が想定するゲームの画面の一例
【図9】3次元仮想ゲーム空間の一例
【図10】リソース生成処理の概要を説明するための図
【図11】リソース生成処理の際のゲーム装置3の外部メインメモリ12のメモリマップを示す図
【図12】ゲーム処理の際のゲーム装置3の外部メインメモリ12のメモリマップを示す図
【図13】セル配列データ312の構成を示す図
【図14】本発明の実施形態にかかる鳥瞰マップリソース生成処理の詳細を示すフローチャート
【図15】図14のステップS4の処理を説明するための図
【図16】図14のステップS4の処理を説明するための図
【図17】図14のステップS4の処理を説明するための図
【図18】図14のステップS5の処理を説明するための図
【図19】図14のステップS6の処理を説明するための図
【図20】本発明の実施形態にかかる鳥瞰マップ生成・表示処理の詳細を示すフローチャート
【図21】図20のステップS21の処理を説明するための図
【図22】図20のステップS21の処理を説明するための図
【図23】拡大率について説明するための図
【図24】図20のステップS30の処理を説明するための図
【図25】図20のステップS31の処理を説明するための図
【図26】図20のステップS32の処理を説明するための図
【図27】図20のステップS34の処理を説明するための図
【発明を実施するための形態】
【0045】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0046】
(ゲームシステムの全体構成)
図1を参照して、本発明の実施形態に係るゲーム装置を含むゲームシステム1について説明する。図1は、ゲームシステム1の外観図である。以下、据置型のゲーム装置を一例にして、本実施形態のゲーム装置およびゲームプログラムについて説明する。図1において、ゲームシステム1は、テレビジョン受像器(以下、単に「テレビ」と記載する)2、ゲーム装置3、光ディスク4、コントローラ7、およびマーカ部8を含む。本システムは、コントローラ7を用いたゲーム操作に基づいてゲーム装置3でゲーム処理を実行するものである。
【0047】
ゲーム装置3には、当該ゲーム装置3に対して交換可能に用いられる情報記憶媒体の一例である光ディスク4が脱着可能に挿入される。光ディスク4には、ゲーム装置3において実行されるためのゲームプログラムが記憶されている。ゲーム装置3の前面には光ディスク4の挿入口が設けられている。ゲーム装置3は、挿入口に挿入された光ディスク4に記憶されたゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【0048】
ゲーム装置3には、表示装置の一例であるテレビ2が接続コードを介して接続される。テレビ2には、ゲーム装置3において実行されるゲーム処理の結果得られるゲーム画像が表示される。また、テレビ2の画面の周辺(図1では画面の上側)には、マーカ部8が設置される。マーカ部8は、その両端に2つのマーカ8Rおよび8Lを備えている。マーカ8R(マーカ8Lも同様)は、具体的には1以上の赤外LEDであり、テレビ2の前方に向かって赤外光を出力する。マーカ部8はゲーム装置3に接続されており、ゲーム装置3はマーカ部8が備える各赤外LEDの点灯を制御することが可能である。
【0049】
コントローラ7は、当該コントローラ7自身に対して行われた操作の内容を示す操作データをゲーム装置3に与える入力装置である。コントローラ7とゲーム装置3とは無線通信によって接続される。本実施形態では、コントローラ7とゲーム装置3との間の無線通信には例えばBluetooth(ブルートゥース)(登録商標)の技術が用いられる。なお、他の実施形態においてはコントローラ7とゲーム装置3とは有線で接続されてもよい。
【0050】
(ゲーム装置3の内部構成)
次に、図2を参照して、ゲーム装置3の内部構成について説明する。図2は、ゲーム装置3の構成を示すブロック図である。ゲーム装置3は、CPU10、システムLSI11、外部メインメモリ12、ROM/RTC13、ディスクドライブ14、およびAV−IC15等を有する。
【0051】
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に読み出したデータを書き込む。
【0052】
また、システムLSI11には、入出力プロセッサ11a、GPU(Graphics Processor Unit)11b、DSP(Digital Signal Processor)11c、VRAM11d、および内部メインメモリ11eが設けられる。図示は省略するが、これらの構成要素11a〜11eは内部バスによって互いに接続される。
【0053】
GPU11bは、描画手段の一部を形成し、CPU10からのグラフィクスコマンド(作画命令)に従って画像を生成する。より具体的には、GPU11bは、当該グラフィクスコマンドに従って3Dグラフィックスの表示に必要な計算処理、例えば、レンダリングの前処理にあたる3D座標から2D座標への座標変換などの処理や、テクスチャの張り込みなどの最終的なレンダリング処理を行うことで、ゲーム画像データを生成する。ここで、CPU10は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU11bに与える。VRAM11dは、GPU11bがグラフィクスコマンドを実行するために必要なデータ(ポリゴンデータやテクスチャデータ等のデータ)を記憶する。画像が生成される際には、GPU11bは、VRAM11dに記憶されたデータを用いて画像データを作成する。
【0054】
DSP11cは、オーディオプロセッサとして機能し、内部メインメモリ11eや外部メインメモリ12に記憶されるサウンドデータや音波形(音色)データを用いて、音声データを生成する。また、内部メインメモリ11eは、外部メインメモリ12と同様に、プログラムや各種データを記憶するものであり、CPU10のワーク領域やバッファ領域として用いられる。
【0055】
上述のように生成された画像データおよび音声データは、AV−IC15によって読み出される。AV−IC15は、読み出した画像データをAVコネクタ16を介してテレビ2に出力するとともに、読み出した音声データを、テレビ2に内蔵されるスピーカ2aに出力する。これによって、画像がテレビ2に表示されるとともに音がスピーカ2aから出力される。
【0056】
入出力プロセッサ(I/Oプロセッサ)11aは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ11aは、フラッシュメモリ17、無線通信モジュール18、無線コントローラモジュール19、拡張コネクタ20、およびメモリカード用コネクタ21に接続される。無線通信モジュール18にはアンテナ22が接続され、無線コントローラモジュール19にはアンテナ23が接続される。
【0057】
入出力プロセッサ11aは、無線通信モジュール18およびアンテナ22を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ11aは、定期的にフラッシュメモリ17にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール18およびアンテナ22を介してネットワークに送信する。また、入出力プロセッサ11aは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ22および無線通信モジュール18を介して受信し、受信したデータをフラッシュメモリ17に記憶する。CPU10はゲームプログラムを実行することにより、フラッシュメモリ17に記憶されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ17には、ゲーム装置3と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置3を利用してプレイしたゲームのセーブデータ(ゲームの結果データまたは途中データ)が記憶されてもよい。
【0058】
また、入出力プロセッサ11aは、コントローラ7から送信される操作データをアンテナ23および無線コントローラモジュール19を介して受信し、内部メインメモリ11eまたは外部メインメモリ12のバッファ領域に記憶(一時記憶)する。
【0059】
さらに、入出力プロセッサ11aには、拡張コネクタ20およびメモリカード用コネクタ21が接続される。拡張コネクタ20は、USBやSCSIのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール18に替えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ21は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ11aは、拡張コネクタ20やメモリカード用コネクタ21を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【0060】
ゲーム装置3には、電源ボタン24、リセットボタン25、およびイジェクトボタン26が設けられる。電源ボタン24およびリセットボタン25は、システムLSI11に接続される。電源ボタン24がオンにされると、ゲーム装置3の各構成要素に対して、図示しないACアダプタを経て電源が供給される。また、一旦電源がオンにされた状態で、再度電源ボタン24を押すと、低電力スタンバイモードへの移行が行われる。この状態でも、ゲーム装置3への通電は行われているため、インターネット等のネットワークに常時接続しておくことができる。なお、一旦電源がオンにされた状態で、電源をオフにしたいときは、電源ボタン24を所定時間以上長押しすることで、電源をオフとすることが可能である。リセットボタン25が押されると、システムLSI11は、ゲーム装置3の起動プログラムを再起動する。イジェクトボタン26は、ディスクドライブ14に接続される。イジェクトボタン26が押されると、ディスクドライブ14から光ディスク4が排出される。
【0061】
次に、図3および図4を参照して、コントローラ7について説明する。なお、図3は、コントローラ7の上面後方から見た斜視図である。図4は、コントローラ7を下面前方から見た斜視図である。
【0062】
図3および図4において、コントローラ7は、ハウジング71と、当該ハウジング71の表面に設けられた複数個の操作ボタンで構成される操作部72とを備える。本実施例のハウジング71は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさであり、例えばプラスチック成型によって形成されている。
【0063】
ハウジング71上面の中央前面側に、十字キー72aが設けられる。この十字キー72aは、十字型の4方向プッシュスイッチであり、4つの方向(前後左右)に対応する操作部分が十字の突出片にそれぞれ90°間隔で配置される。プレイヤが十字キー72aのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばプレイヤが十字キー72aを操作することによって、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【0064】
なお、十字キー72aは、上述したプレイヤの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に4つのプッシュスイッチを配設し、プレイヤによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記4つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、4つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング71上面から突出した傾倒可能なスティック(いわゆる、ジョイスティック)を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー72aの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー72aの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー72aの代わりに設けてもかまわない。
【0065】
ハウジング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の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0066】
また、ハウジング71上面の十字キー72aより前面側に、操作ボタン72hが設けられる。操作ボタン72hは、遠隔からゲーム装置3本体の電源をオン/オフする電源スイッチである。この操作ボタン72hも、その上面がハウジング71の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプのボタンである。
【0067】
また、ハウジング71上面の操作ボタン72cより後面側に、複数のLED702が設けられる。ここで、コントローラ7は、他のコントローラ7と区別するためにコントローラ種別(番号)が設けられている。例えば、LED702は、コントローラ7に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ7からゲーム装置3へ送信データを送信する際、上記コントローラ種別に応じて複数のLED702のうち、種別に対応するLEDが点灯する。
【0068】
また、ハウジング71上面には、操作ボタン72bおよび操作ボタン72e〜72gの間に後述するスピーカ(図5のスピーカ706)からの音を外部に放出するための音抜き孔が形成されている。
【0069】
一方、ハウジング71下面には、凹部が形成されている。後述で明らかとなるが、ハウジング71下面の凹部は、プレイヤがコントローラ7の前面をマーカ8Lおよび8Rに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン72iが設けられる。操作ボタン72iは、例えばBボタンとして機能する操作部である。
【0070】
また、ハウジング71前面には、撮像情報演算部74の一部を構成する撮像素子743が設けられる。ここで、撮像情報演算部74は、コントローラ7が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大200フレーム/秒程度のサンプリング周期であるため比較的高速なコントローラ7の動きでも追跡して解析することができる。この撮像情報演算部74の詳細な構成については、後述する。また、ハウジング71の後面には、コネクタ73が設けられている。コネクタ73は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【0071】
ここで、以下の説明を具体的にするために、コントローラ7に対して設定する座標系について定義する。図3および図4に示すように、互いに直交するxyz軸をコントローラ7に対して定義する。具体的には、コントローラ7の前後方向となるハウジング71の長手方向をz軸とし、コントローラ7の前面(撮像情報演算部74が設けられている面)方向をz軸正方向とする。また、コントローラ7の上下方向をy軸とし、ハウジング71の上面(操作ボタン72a等が設けられた面)方向をy軸正方向とする。さらに、コントローラ7の左右方向をx軸とし、ハウジング71の左側面(図3では表されずに図4で表されている側面)方向をx軸正方向とする。
【0072】
次に、図5および図6を参照して、コントローラ7の内部構造について説明する。なお、図5は、コントローラ7の上ハウジング(ハウジング71の一部)を外した状態を後面側から見た斜視図である。図6は、コントローラ7の下ハウジング(ハウジング71の一部)を外した状態を前面側から見た斜視図である。ここで、図6に示す基板700は、図5に示す基板700の裏面から見た斜視図となっている。
【0073】
図5において、ハウジング71の内部には基板700が固設されており、当該基板700の上主面上に操作ボタン72a〜72h、加速度センサ701、LED702、およびアンテナ754等が設けられる。そして、これらは、基板700等に形成された配線(図示せず)によってマイコン751等(図6、図7参照)に接続される。マイコン751は、操作ボタン72a等の種類に応じた操作データを発生させるように機能する。この仕組みは公知技術であるが、例えばキートップ下側に配置されたタクトスイッチなどのスイッチ機構による配線の接触/切断をマイコン751が検出することによって実現されている。より具体的には、操作ボタンが例えば押されると配線が接触して通電するので、この通電がどの操作ボタンにつながっている配線で発生したかをマイコン751が検出し、操作ボタンの種類に応じた信号を発生させている。
【0074】
また、コントローラ7は、無線モジュール753(図7参照)およびアンテナ754によって、ワイヤレスコントローラとして機能する。なお、ハウジング71内部には図示しない水晶振動子が設けられており、後述するマイコン751の基本クロックを生成する。また、基板700の上主面上に、スピーカ706およびアンプ708が設けられる。また、加速度センサ701は、操作ボタン72dの左側の基板700上(つまり、基板700の中央部ではなく周辺部)に設けられる。したがって、加速度センサ701は、コントローラ7の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分の含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ7の回転を良好な感度でゲーム装置3等が判定することができる。
【0075】
一方、図6において、基板700の下主面上の前端縁に撮像情報演算部74が設けられる。撮像情報演算部74は、コントローラ7の前方から順に赤外線フィルタ741、レンズ742、撮像素子743、および画像処理回路744によって構成されており、それぞれ基板700の下主面に取り付けられる。また、基板700の下主面上の後端縁にコネクタ73が取り付けられる。さらに、基板700の下主面上にサウンドIC707およびマイコン751が設けられている。サウンドIC707は、基板700等に形成された配線によってマイコン751およびアンプ708と接続され、ゲーム装置3から送信されたサウンドデータに応じてアンプ708を介してスピーカ706に音声信号を出力する。
【0076】
そして、基板700の下主面上には、バイブレータ704が取り付けられる。バイブレータ704は、例えば振動モータやソレノイドである。バイブレータ704は、基板700等に形成された配線によってマイコン751と接続され、ゲーム装置3から送信された振動データに応じてその作動をオン/オフする。バイブレータ704が作動することによってコントローラ7に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ704は、ハウジング71のやや前方寄りに配置されるため、プレイヤが把持している状態において、ハウジング71が大きく振動することになり、振動を感じやすくなる。
【0077】
次に、図7を参照して、コントローラ7の内部構成について説明する。なお、図7は、コントローラ7の構成を示すブロック図である。
【0078】
図7において、コントローラ7は、上述した操作部72、撮像情報演算部74、加速度センサ701、バイブレータ704、スピーカ706、サウンドIC707、およびアンプ708の他に、その内部に通信部75を備えている。
【0079】
撮像情報演算部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の位置や動きに応じた信号を得ることができる。
【0080】
コントローラ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が提供されてもよい。
【0081】
当業者には公知であるように、加速度センサ701に用いられるような加速度検出手段は、加速度センサの持つ各軸に対応する直線に沿った加速度(直線加速度)のみを検知することができる。つまり、加速度センサ701からの直接の出力は、その2軸または3軸のそれぞれに沿った直線加速度(静的または動的)を示す信号である。このため、加速度センサ701は、非直線状(例えば、円弧状)の経路に沿った動き、回転、回転運動、角変位、傾斜、位置、または姿勢等の物理特性を直接検知することはできない。
【0082】
しかしながら、加速度センサ701から出力される加速度の信号に基づいて、ゲーム装置のプロセッサ(例えばCPU10)またはコントローラのプロセッサ(例えばマイコン751)などのコンピュータが処理を行うことによって、コントローラ7に関するさらなる情報を推測または算出(判定)することができることは、当業者であれば本明細書の説明から容易に理解できるであろう。例えば、加速度センサを搭載するコントローラが静的な状態であることを前提としてコンピュータ側で処理する場合(すなわち、加速度センサによって検出される加速度が重力加速度のみであるとして処理する場合)、コントローラが現実に静的な状態であれば、検出された加速度に基づいてコントローラの姿勢が重力方向に対して傾いているか否か又はどの程度傾いているかを知ることができる。具体的には、加速度センサの検出軸が鉛直下方向を向いている状態を基準としたとき、1G(重力加速度)がかかっているか否かだけで傾いているか否かを知ることができるし、その大きさによってどの程度傾いているかも知ることができる。また、多軸の加速度センサの場合には、さらに各軸の加速度の信号に対して処理を施すことによって、各軸が重力方向に対してどの程度傾いているかをより詳細に知ることができる。この場合において、加速度センサ701からの出力に基づいて、プロセッサがコントローラ7の傾き角度のデータを算出する処理をおこなってもよいが、当該傾き角度のデータを算出する処理をおこなうことなく、加速度センサ701からの出力に基づいて、おおよその傾き具合を推定するような処理としてもよい。このように、加速度センサ701をプロセッサと組み合わせて用いることによって、コントローラ7の傾き、姿勢または位置を判定することができる。一方、加速度センサが動的な状態であることを前提とする場合には、重力加速度成分に加えて加速度センサの動きに応じた加速度を検出するので、重力加速度成分を所定の処理により除去すれば、動き方向などを知ることができる。具体的には、加速度センサ701を備えるコントローラ7がユーザの手で動的に加速されて動かされる場合に、加速度センサ701によって生成される加速度信号を処理することによって、コントローラ7のさまざまな動きおよび/または位置を算出することができる。なお、加速度センサが動的な状態であることを前提とする場合であっても、加速度センサの動きに応じた加速度を所定の処理により除去すれば、重力方向対する傾きを知ることが可能である。他の実施例では、加速度センサ701は、信号をマイコン751に出力する前に内蔵の加速度検出手段から出力される加速度信号に対して所望の処理を行うための、組込み式の信号処理装置または他の種類の専用の処理装置を備えていてもよい。例えば、組込み式または専用の処理装置は、加速度センサが静的な加速度(例えば、重力加速度)を検出するためのものである場合、検知された加速度信号をそれに相当する傾斜角(あるいは、他の好ましいパラメータ)に変換するものであってもよい。
【0083】
他の実施形態の例では、コントローラ7の動きを検出する動きセンサとして、回転素子または振動素子などを内蔵したジャイロセンサを用いてもよい。この実施形態で使用されるMEMSジャイロセンサの一例として、アナログ・デバイセズ株式会社から入手可能なものがある。加速度センサ701と異なり、ジャイロセンサは、それが内蔵する少なくとも一つのジャイロ素子の軸を中心とした回転(または角速度)を直接検知することができる。このように、ジャイロセンサと加速度センサとは基本的に異なるので、個々の用途のためにいずれの装置が選択されるかによって、これらの装置からの出力信号に対して行う処理を適宜変更する必要がある。
【0084】
具体的には、加速度センサの代わりにジャイロセンサを用いて傾きや姿勢を算出する場合には、大幅な変更を行う。すなわち、ジャイロセンサを用いる場合、検出開始の状態において傾きの値を初期化する。そして、当該ジャイロセンサから出力される角速度データを積分する。次に、初期化された傾きの値からの傾きの変化量を算出する。この場合、算出される傾きは、角度に対応する値が算出されることになる。一方、加速度センサによって傾きを算出する場合には、重力加速度のそれぞれの軸に関する成分の値を、所定の基準と比較することによって傾きを算出するので、算出される傾きはベクトルで表すことが可能であり、初期化を行わずとも、加速度検出手段を用いて検出される絶対的な方向を検出することが可能である。また、傾きとして算出される値の性質は、ジャイロセンサが用いられる場合には角度であるのに対して、加速度センサが用いられる場合にはベクトルであるという違いがある。したがって、加速度センサに代えてジャイロセンサが用いられる場合、当該傾きのデータに対して、2つのデバイスの違いを考慮した所定の変換を行う必要がある。加速度検出手段とジャイロセンサとの基本的な差異と同様にジャイロセンサの特性は当業者に公知であるので、本明細書ではさらなる詳細を省略する。ジャイロセンサは、回転を直接検知できることによる利点を有する一方、一般的には、加速度センサは、本実施形態で用いるようなコントローラに適用される場合、ジャイロセンサに比べて費用効率が良いという利点を有する。
【0085】
通信部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を作動させる。
【0086】
コントローラ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は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【0087】
次に、本実施形態が想定しているゲームおよび本実施形態にかかる処理の概要について説明する。図8は、本実施形態が想定するゲームの画面の一例である。本実施形態で想定するゲームでは、図9に示すように、3次元仮想ゲーム空間(以下、単に仮想ゲーム空間と呼ぶ)内に島を構築しており、この島内をプレイヤオブジェクトが自由に移動できるゲームである。基本的なゲーム画面としては、上記図8に示したように、プレイヤオブジェクト101の後方に配置された仮想カメラで仮想ゲーム空間を撮影した様子が表示される。そして、この画面の右下には、円系の領域102が表示されている。当該領域102には、当該仮想ゲーム空間を真上から鳥瞰したマップが表示されている。以下、このマップのことを本実施形態では鳥瞰マップと呼ぶ(なお、当該マップは、ゲームによっては、「縮小マップ」、「レーダー画面」、「2次元マップ」等とも呼ばれることもある)。そして、プレイヤは、当該鳥瞰マップを参考にすることで、プレイヤオブジェクト101の周辺の地形等の、周囲の状況の確認が容易になる。本発明は、この鳥瞰マップの生成・表示に関するものである。
【0088】
本実施形態で説明する鳥瞰マップについての処理は、大きく2段階のプロセスに分けられる。1つめのプロセスは、鳥瞰マップの元となるリソース生成のためのプロセスであり、本実施形態では、ゲームの開発段階で実行される処理である。ここで、当該リソース生成については、上記島を構成する各種地形オブジェクトを配置した仮想ゲーム空間を仮想カメラで上方向から(鳥瞰するように)撮影し、当該撮影した画像のデータを鳥瞰マップのリソースとするものである。もう一つのプロセスは、上記生成されたリソースを用いて鳥瞰マップを生成してゲーム画面に表示するためのプロセスである。このプロセスは、プレイヤがゲームをプレイする際のゲーム処理の一環として(つまり、製品完成後の段階、ゲーム処理の実行段階)実行されるプロセスである。
【0089】
次に、上記2つのプロセスの概要について説明する。まず、ゲーム開発段階で実行される、鳥瞰マップのリソース生成処理の概要を説明する。まず、概念的に、上記図9で示したような、仮想ゲーム空間を仮想カメラで真上から撮影したような鳥瞰画像を想定する。更に、図10に示すように、当該画像を所定の大きさの正方形(例えば、64×64ピクセルや128×128ピクセルの正方形。以下、セルと呼ぶ)で区切った画像を想定する(換言すれば、当該セルは、鳥瞰した仮想ゲーム空間を所定の大きさ単位で区切ったエリア的な概念である)。そして、これらのセル単位の画像のうち、所定の単一色で構成された画像(例えば、海のオブジェクトを単一色で構成している場合、海面の部分に位置するセルであれば、そのセルの画像は単一の色だけで構成された画像となる。なお、図9や図10では、島の絵については簡略化して表記しているが、実際は様々な建物や樹、道等が配置されているものとする。)を除き、鳥瞰マップのリソースとして、セルの画像データを保存する。例えば、海面部分に位置するセルの画像はリソースとして保存せず、海面以外の地形が映っているセルの画像だけをリソース化して保存するという処理を行う。また、本実施形態では、セル1つ分の画像に対して1つのファイル名を割り当てた画像ファイルとして保存される(つまり、1セル分の画像=1ファイル)。以下の説明では、個々のファイルのことを「キャプチャデータ」と呼び、これらのキャプチャデータ群を総称して「リソースデータ」と呼ぶ。
【0090】
そして、このリソースデータが、製品となるゲームのデータの一部として、例えば、所定の光学ディスクにゲームプログラム等と共に記憶される。これにより、(単一色の部分も含めた)仮想ゲーム空間全体の画像データをリソースとして保存する必要がなく、例えば上記図10のような例であれば、海の部分をほとんど除いた、島の部分だけの画像データのみをリソースとすることができ、鳥瞰マップのリソースとなるデータの量を削減することができる。
【0091】
次に、ゲーム実行段階で実行される鳥瞰マップの生成・表示処理の概要を説明する。鳥瞰マップの生成・表示処理では、上述のリソース生成処理で生成されたリソースデータを用いて鳥瞰マップが生成されるが、この際、必要最低限のキャプチャデータだけを読み出すようにする処理が行われる。具体的には、まず、仮想ゲーム空間内におけるプレイヤオブジェクトの位置を基準として、鳥瞰マップとして表示する範囲が決定される。次に、当該鳥瞰マップ範囲に対応する上記セルを抽出する(当該セルのサイズは、上記開発段階で用いたセルと同じサイズである)。つまり、プレイヤオブジェクトのいる位置から遠く離れた位置にあるセルについては、抽出されないような処理が行われる。そして、抽出したセルに対応する鳥瞰マップ領域内の位置に板状のポリゴンが配置され、当該ポリゴンに描画する画像の基となるキャプチャデータ、すなわち、抽出したセルの位置に対応するキャプチャデータを検索する。このとき、上記リソース生成処理において、セルの位置が海面であったような場合は、キャプチャデータは生成されていない。そのため、抽出したセルがこのような海面の位置であった場合、対応するキャプチャデータは存在しないことになる。そのため、本実施形態では、抽出したセルに対応するキャプチャデータが存在すれば、上記板状ポリゴンに当該キャプチャデータで示される画像を描画し、抽出したセルに対応するキャプチャデータが存在しないときは、予め決められている所定の色、本実施形態では、水面の色を上記ポリゴンに描画する(ポリゴンを塗りつぶす)、という処理が行われる。
【0092】
次に、本実施形態にかかる処理の詳細を説明する。まず、ゲーム開発段階におけるリソース生成処理の際に、ゲーム装置3の外部メインメモリ12に記憶されるデータについて説明する。図11は、ゲーム開発段階におけるリソース生成処理の際のゲーム装置3の外部メインメモリ12のメモリマップを示す図である。図11において、外部メインメモリ12は、プログラム記憶領域201およびデータ記憶領域203を含む。なお、ここではゲーム装置3で実行される例を挙げているが、ゲームの開発機材については、これに限らず、パーソナルコンピュータ等を開発機器として用いてもよい。この場合は、当該パーソナルコンピュータのメモリに図11に示したようなプログラム、データが記憶される。
【0093】
プログラム記憶領域201は、CPU10によって実行される各種のゲーム開発用プログラムを記憶し、このプログラムの一つとして、リソース生成処理プログラム202が記憶されている。
【0094】
データ記憶領域203には、3D地形モデルデータ204、テクスチャデータ205、リソースデータ206などのデータが記憶される。また、作業領域207には、リソース生成処理において用いられる各種変数やフラグが記憶される。
【0095】
3D地形モデルデータ204は、仮想ゲーム空間内に配置される各種地形ポリゴンを構成する頂点の座標データである。テクスチャデータ205は、上記3D地形モデルデータ204に基づいて生成されるポリゴンにテクスチャを設定するためのものであり、図示は省略するが、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。
【0096】
リソースデータ206は、鳥瞰マップ生成の際に用いられる画像データ群であり、リソース生成処理によって生成される。リソースデータ206は、複数のキャプチャデータ208で構成される。キャプチャデータ208は、鳥瞰マップのリソースとして保存された、上記セル単位の鳥瞰画像データである。また、当該画像のサイズは上記セルの大きさに一致する。例えば、セルのサイズが64×64ピクセルの場合は、画像のサイズも64ピクセル×64ピクセルである。ここで、本実施形態では、各キャプチャデータ208にはファイル名が付けられて管理され、当該ファイル名は、以下のような命名方法を用いて設定される。すなわち、上記セルに対応する仮想ゲーム空間内の領域の中心座標(上記図10を例にすると、(x、z)の2次元座標で示される)をファイル名に取り入れる。また、正負の区別をつけた座標値を用いる場合は、座標値が正なら”p”、負なら”m”をファイル名に取り入れる。例えば、あるセルの中心に対応する仮想ゲーム空間内の座標(x、z)が(32,32)である場合は、キャプチャデータ208のファイル名は、例えば「map_p32_p32.xxx」(xxxは任意の拡張子)となる。また、座標が(−64、128)の場合は、例えば、「map_m64_p128.xxx」となる。
【0097】
次に、ゲーム実行段階におけるゲーム装置3の外部メインメモリ12に記憶されるデータについて説明する。図12は、ゲーム実行段階におけるゲーム処理の際のゲーム装置3の外部メインメモリ12のメモリマップを示す図である。図12において、外部メインメモリ12は、プログラム記憶領域301およびデータ記憶領域304を含む。プログラム記憶領域301およびデータ記憶領域304のデータは、光ディスク4に記憶され、ゲームプログラム実行時には外部メインメモリ12に転送されて記憶される。
【0098】
プログラム記憶領域301は、CPU10によって実行されるゲームプログラムを記憶し、このゲームプログラムは、ゲームメイン処理プログラム302と、鳥瞰マップ生成・表示プログラム303などによって構成される。ゲームメイン処理プログラム302は、本実施形態にかかるゲーム処理の全体を制御するためのプログラムである。鳥瞰マップ生成・表示プログラム303は、ゲームメイン処理プログラム302から呼び出されるプログラムであり、鳥瞰マップを生成・表示するためのプログラムである。
【0099】
データ記憶領域304には、ゲームメインデータ305、鳥瞰マップ用データ309が記憶される。また、作業領域313には、セル配列データ312、レイアウト用鳥瞰マップ画像データ314の他、ゲーム処理において用いられる各種変数やフラグが記憶される。
【0100】
ゲームメインデータ305は、仮想ゲーム空間を構築するための3D地形モデルデータ306、および、テクスチャデータ307、プレイヤオブジェクト等の各種オブジェクトの基となるオブジェクトデータ308を含む。その他、ゲーム処理に用いられる音声データ等の各種データも記憶される。
【0101】
鳥瞰マップ用データ309は、リソースデータ310、追加アイコンデータ311を含む。リソースデータ310は、上記リソース作成処理で生成されたデータであり、複数のキャプチャデータ315を含んでいる。リソースデータ310は、上記ゲーム開発段階において生成されたリソースデータ206が製品版のゲームのデータの一部として記憶されたものであり、その構成・内容は、上記リソースデータ206と同様である。
【0102】
追加アイコンデータ311は、リソースデータ310に基づいて生成された鳥瞰マップ画像に対して更に追加的に描画されるアイコン等の画像データである。例えば、プレイヤオブジェクト101の目的地を示す旗のアイコンの画像のデータなどである。
【0103】
セル配列データ312は、上記図10等で示したように2次元配列状に並んだセル(つまり、リソース生成処理時に用いられたセル)に関する情報を示すデータである。図13は、セル配列データ312のデータ構造の一例を示した図である。当該データは、後述するゲーム処理の実行開始時(つまり、ゲーム実行段階)に、例えば初期化処理の一環として、上記キャプチャデータ315を全て探索することで生成されるデータである。セル配列データ312は、セル番号3121とx座標3122とz座標3123と、リソース有無フラグ3124の集合から構成される。セル番号3121は、各セルを一意に識別するために付される番号であり、本実施形態では、例えば図10を例にすると、左上から右下に向けて走査するような順番で、0から順に番号が割り振られていくものとする(なお、セル番号3121については、この他、2次元配列要素(x座標、y座標)として示すようにしてもよい)。次に、x座標3122、および、z座標3123は、各セルに対応する仮想ゲーム空間内の位置(x座標、z座標)を示す情報である(上記キャプチャデータ208および315のファイル名で示される座標と対応する)。また、リソース有無フラグ3124は、各セルに対応するリソース(キャプチャデータ315)の有無を示す情報である。対応リソースがある場合は”1”、対応リソースが無い場合は”0”が設定される。なお、本実施形態では、セルのサイズは64×64ピクセルとして説明する。
【0104】
図12に戻り、レイアウト用鳥瞰マップ画像データ314は、後述する処理で作成された鳥瞰マップの画像のみをスクリーンキャプチャすることで得られる画像データである。メインとなるゲーム画面(3Dで描かれた画像)に当該画像データを適宜合成することで、最終的なゲーム画面が生成され、テレビ2に表示される。
【0105】
次に、本実施形態にかかる処理の詳細について説明する。まず、図14〜図19を参照して、リソース生成処理の詳細について説明する。図14は、鳥瞰マップリソース生成処理の詳細を示すフローチャートである。当該処理は、ゲーム開発段階において、開発者の手により適宜実行が開始される。また、本実施形態においては、仮想ゲーム空間内における海(水面)の色は単一の色で構成されているとする。
【0106】
図14において、まず、ステップS1で、作業用の描画領域である作業用スクリーン(フレームバッファに確保される)を所定色でクリアする(所定色で塗りつぶす)処理が実行される(以下、この色をクリア色と呼ぶ)。当該スクリーンのサイズはゲーム画面として描画されるのと同じサイズである。
【0107】
次に、ステップS2において、3D地形モデルデータ204、テクスチャデータ205を読み出し、仮想ゲーム空間が生成される。但し、このとき、海のマテリアルについては描画しないようにする。次に、ステップS3において、仮想カメラの設定について、正射影で撮影するような設定がなされる。
【0108】
次に、ステップS4において、仮想カメラを上記図10で示したような各セルの位置に合わせて移動させる。ここで、当該仮想カメラの移動の詳細について説明する。まず、仮想カメラの高さについては、図15に示すように、仮想ゲーム空間を鳥瞰できるような位置、つまり、仮想ゲーム空間を真上から見下ろせるような高さに移動させる。そして、高さはそのままに、上記図10で示したようなセルの位置に合わせるように仮想カメラをスライドさせる。例えば、本リソース生成処理開始後、初めて本ステップの処理が行われるときは、所定の撮影開始位置、ここでは、図16に示すように、最も左上のセル111の位置に仮想カメラが来るように移動させる。より正確には、セル111の中心座標が仮想カメラの撮影範囲の中心と一致するような位置となるよう移動させる。
【0109】
ここで、本実施形態では、セルのサイズを上記のように64×64ピクセルとして説明している。一方、仮想カメラで撮影される画像の大きさは、ゲーム画面として表示されるスクリーンのサイズとなる。そのため、当該仮想カメラで撮影した画像(つまり、撮影範囲)は、図16の枠112で示される範囲の画像となる。そして、二度目以降の本ステップの処理では、上述したように、セル単位で走査するように仮想カメラが移動される。例えば、二度目の処理の場合は、図17に示すように、上記一番左上のセル111の右隣のセル113の中心位置に仮想カメラの撮影範囲の中心が合うように仮想カメラをスライドさせることになる。また、最右端のセルまで走査したときは、最左端のセルの下隣のセルの中心位置にカメラの撮影範囲の中心が合うように移動させる。例えば、上記図17を例にすれば、1行目の右端のセルまで走査し終わったときは、次は2行目の最右端にセルの位置に仮想カメラを移動させる。その結果、仮想カメラで撮影される範囲は枠114で示される範囲となる。
【0110】
図14に戻り、次に、ステップS5において、仮想カメラで仮想ゲーム空間を撮影し、当該撮影した画像からセル範囲の画像を取得する処理が実行される。例えば、本ステップの初回実行時であれば、図18に示すように、上記枠112のサイズで撮影された画像115が作業領域207に保存され、更に、当該画像から、上記セルの範囲の画像(以下、セル画像と呼ぶ)116が抽出される。
【0111】
図14に戻り、次に、ステップS6において、当該セル画像116の全てのピクセルが上記クリア色であるか否かが判定される。つまり、リソース化すべきセル画像とリソース化しないセル画像の振り分けが行われる。本実施形態の例でいえば、上述のように、海の部分が描画されていない仮想ゲーム空間を真上から見たような鳥瞰画像が撮影されるため、海面の部分に相当するセルの画像はクリア色一色の画像となる。当該判定の結果、全てのピクセルが上記クリア色であると判定されたときは(ステップS6でYES)、当該セル画像はリソース化しないため、処理はステップS8に進められる。一方、セル画像にクリア色以外の色がついているピクセルがあると判定されたときは(ステップS6でNO)、当該セル画像をリソース化するため、当該セル画像を上記キャプチャデータ208として保存する。例えば、図19に示すように、セル内の一部に地形が映っているような画像は、キャプチャデータ208として保存される対象となる。また、この保存の際、上述したように、キャプチャデータ208のファイル名に当該セルの中心座標を反映させてものを命名して保存する。
【0112】
図14に戻り、次に、ステップS8において、上記図10で示したような全てのセルについて、上述したようなセル画像の撮影〜振り分けの処理が行われたか否かが判定される。その結果、まだ未処理のセルが残っていると判定されたときは(ステップS8でNO)、上記ステップS4に戻り、処理が繰り返される。すなわち、次のセルの位置に仮想カメラが移動されて、セル画像の撮影〜振り分けの処理が行われる。一方、全てのセルについて処理が終わっていると判定されたときは(ステップS8でYES)、当該リソース生成処理は終了する。
【0113】
次に、図20〜図27を参照して、ゲーム装置3によって実行される鳥瞰マップ生成・表示処理の詳細について説明する。ゲーム装置3の電源が投入されると、ゲーム装置3のCPU10は、ROM/RTC13に記憶されている起動プログラムを実行し、これによって外部メインメモリ12等の各ユニットが初期化される。そして、光ディスク4に記憶されたゲームプログラムが外部メインメモリ12に読み込まれ、CPU10によってゲームプログラムの実行が開始される。このゲームプログラムの一環として、鳥瞰マップ生成・表示処理が実行される。また、鳥瞰マップ生成・表示処理の実行に先立って、上述したようなセル配列データ312がリソースデータ310に基づいて生成されて、作業領域313に記憶される。図20に示すフローチャートは、鳥瞰マップ生成表示処理を示すフローチャートである。また、当該フローチャートで示す処理は、1フレーム毎に繰り返し実行される。なお、本願発明とは直接関連しない他のゲーム処理については説明を省略する。
【0114】
図20において、まず、ステップS21で、仮想ゲーム空間内に存在するプレイヤオブジェクト101の位置、および、後述の拡大率に基づき、鳥瞰マップとして表示される仮想ゲーム空間内の範囲(以下、鳥瞰マップ範囲と呼ぶ)が決定される。本実施形態では、鳥瞰マップとして表示される範囲は、図21に示すように、プレイヤオブジェクト101の位置を中心とした円状の範囲(以下、鳥瞰マップ範囲と呼ぶ)131である。そのため、ここでは、鳥瞰マップ範囲131の中心に対応する仮想ゲーム空間の位置(座標)が決定される。また、このとき、フレームバッファ内において、図22に示すように、当該鳥瞰マップを描画するための領域141(以下、鳥瞰マップ描画領域)が確保される(但し、この時点では鳥瞰マップの位置は仮の位置である)。
【0115】
また、上記鳥瞰マップ範囲131となる円の半径(直径でも良い)については、拡大率に応じて決定される。本実施形態では、鳥瞰マップとして表示される仮想ゲーム空間内の範囲を拡大・縮小することが可能であり、拡大率とは、この範囲を決定するためのパラメータである。なお、ここでいう「拡大」とは、プレイヤが認識できる範囲が拡大するという意味である。そのため、拡大率を高く設定した場合、鳥瞰マップ内の画像は、より広い範囲が表示されることとなり、最大の拡大率に設定した場合は、島の全体像が認識できるような表示となる(図23(A)参照)。一方、拡大率を低く設定した場合は、プレイヤオブジェクトの周辺のみが認識できるような表示となる(図23(B)参照)。なお、拡大率については、ゲーム中にプレイヤによる所定の操作で変更可能である。そして、当該拡大率に応じて、上記鳥瞰マップ範囲131の大きさも決定されることになる。
【0116】
図20に戻り、次に、ステップS22において、仮想ゲーム空間内においてプレイヤオブジェクトが向いている方向に応じて、鳥瞰マップの向きが決定される。ここで、本実施形態では、鳥瞰マップの上方向が、プレイヤオブジェクト101の向いている方向(例えば、仮想ゲーム空間内における東西南北を基準とする方位で示される)と一致するように表示される。例えば、プレイヤオブジェクト101が向いている方向が仮想ゲーム空間内における「南」の方角であれば、鳥瞰マップの上方向を仮想ゲーム空間内の「南」方向とすることが決定される。
【0117】
次に、ステップS23において、上記図10で示したようなセル(より正確には、セルに対応する仮想ゲーム空間内の領域)から1つが選択される。選択の順番は、本実施形態では、左上のセルから右下に向けて走査していくような順番で選択される。その結果、以下に説明するようなステップS23〜S30の処理ループにおいて、1度のループに対して1つのセルが順番に選択されていくことになる。本実施形態では、上記セル配列データ312のセル番号3121で示される順番に沿って選択される。なお、選択すべきセルの位置、つまり、選択すべき仮想ゲーム空間内の領域の大きさに関しては、上記セル配列データ312を用いる方法の他、例えば、セルのサイズを示すデータを予め定義しておき、当該セルのサイズを示すデータを用いて算出するような方法でもよい。本ステップの初回の処理で一番左上のセルが選択されたとき、次の本ステップの処理においては、当該定義されたセルのサイズに基づいて、その右隣のセルの位置が算出され、次に選択すべきセルとして決定されるようにしてもよい。
【0118】
次に、ステップS24において、ステップS23で選択されたセル(に対応する仮想ゲーム空間内の領域)が、上記鳥瞰マップ範囲131内に含まれるか否かが判定される。ここで、当該処理の段階では、まだ上記フレームバッファ内の鳥瞰マップ描画領域141内におけるセルの描画位置(配置位置)が正確に算出されていない状態である。鳥瞰マップ描画領域141内におけるセルの描画位置を正確に算出する処理は、この後に実行されることになるが、当該算出にかかる処理コストを削減するために、ステップS24の処理では、明らかに鳥瞰マップ範囲131外となるセルを上記算出処理の対象から除外するための判定が行われる。ここで、「明らかに鳥瞰マップ範囲外」というのは、プレイヤオブジェクト101の向いている方角にかかわらず、鳥瞰マップ範囲131内に含まれないよう場合をいう。例えば、仮想空間内のある位置において、プレイヤオブジェクト101が(仮想空間内における)北を向いている場合は鳥瞰マップ範囲131に含まれるが、南を向いている場合は鳥瞰マップ範囲131に含まれないようなセルについては、この処理では鳥瞰マップ範囲131に含まれると判定される(つまり、鳥瞰マップ範囲131に含まれる可能性があるセルについては除外しない)。一方、プレイヤオブジェクト101の向いている方角が北であっても南であっても、更には、東や西であっても、鳥瞰マップ範囲131には含まれないようなセルについては、「明らかに鳥瞰マップ範囲外」のセルと判定される。より具体的には、以下に示す条件式を満たすセルについては鳥瞰マップ範囲131外と判定される。
(|Cell_X − PL_X| − Cell_Leng) × 拡大率 > 鳥瞰マップ範囲の半径
AND
(|Cell_Z − PL_Z| − Cell_Leng) × 拡大率 > 鳥瞰マップ範囲の半径
上記条件式において、Cell_Xは、セル(に対応する仮想ゲーム空間内の領域)の左上端のX座標を示す。Cell_Zは、同じくセルの左上端のZ座標を示す。なお、X軸、Z軸については、上記図10を例にすると、縦軸方向をZ軸、横軸方向をX軸とする。また、上方向(Z軸正方向)を北の方角とする。また、PL_X、PL_Zは、それぞれ仮想ゲーム空間内におけるプレイヤオブジェクトの位置のX座標、Z座標を示す。Cell_Lengは、セルの一辺の長さに対応する仮想ゲーム空間内の距離を示す。なお、拡大率は、上述したような鳥瞰マップの拡大率であり、プレイヤによって予め設定された値である。
【0119】
上記ステップS24の判定の結果、ステップS23で選択されたセルが(明らかに)鳥瞰マップ範囲131外と判定されたときは(ステップS24でYES)、別のセルを選択するために、後述するステップS30に処理が進められる。一方、ステップS23で選択されたセルが鳥瞰マップ範囲131内であると判定されたときは(ステップS24でNO)、次に、ステップS25において、鳥瞰マップ描画領域141(上記図22参照)内における当該セルの正確な描画位置(配置位置)が算出される。より具体的には、まず、上記セルに対応する板状のポリゴンが生成される(当該ポリゴンの大きさは、上記拡大率に応じたものとなる)。そして、プレイヤオブジェクト101の向きに応じて、当該ポリゴンを回転・移動させる計算が行われることで、上記鳥瞰マップ描画領域141内における当該ポリゴンの描画位置(換言すれば、セルの描画位置)が算出される。
【0120】
次に、ステップS26において、上記ステップS25で算出されたセルの描画位置が、鳥瞰マップ描画領域141内に含まれるか否かが判定される。ここでは、上記ステップS25で鳥瞰マップ描画領域141内におけるセルの位置が正確に算出されているため、上記ステップS24の判定においては鳥瞰マップ範囲131内にあると判定されたセルであっても、本ステップの判定においては鳥瞰マップ描画領域141外と判定されることがあり得る(特に、サイズが小さなセルを用いているような場合)。なお、セルの一部分のみが鳥瞰マップ描画領域141内に含まれるようなセルについては、鳥瞰マップ描画領域141内にあると判定される。当該判定の結果、鳥瞰マップ描画領域141内ではないと判定されたときは(ステップS26でNO)、後述のステップS30に処理が進められる。
【0121】
一方、ステップS26の判定の結果、正確に算出したセルの描画位置が鳥瞰マップ描画領域141内と判定されたときは(ステップS26でYES)、次に、ステップS27において、上記リソース有無フラグ3124が参照されて、当該セルに対応するキャプチャデータ315が存在するか否かが判定される。すなわち、当該セルに対応するリソース有無フラグ3124の値が”1”か否かが判定される。当該判定の結果、当該セルに対応するリソース有無フラグ3124の値が”1”のときは(ステップS27でYES)、ステップS28において、上記板状のポリゴンが鳥瞰マップ描画範囲141に配置される。そして、上記キャプチャデータ315が読み出され、当該キャプチャデータ315で示される画像(つまり、テクスチャ)が上記配置された板状のポリゴンに描画される。一方、当該セルに対応するリソース有無フラグ3124の値が”0”のときは(ステップS27でNO)、ステップS29において、上記板状のポリゴンが鳥瞰マップ描画範囲141に配置され、予め設定されている所定の色(本実施形態では、水面の色)が当該板状のポリゴンに描画される(つまり、水面の色で塗りつぶされることになる)。
【0122】
次に、ステップS30において、上述したような処理が済んでいないセルがまだ残っているか否かが判定される。その結果、まだ残っていると判定されたときは(ステップS30でYES)、上記ステップS23に戻り、次のセルが選択されて処理が繰り返される。一方、全てのセルについて上記ステップS23〜S29の処理が済んでいれば(ステップS30でNO)、フレームバッファには、鳥瞰マップの画像として、例えば、図24に示すような画像が生成されていることになる。この場合は、次のステップS31において、当該鳥瞰マップ画像に対して追加テクスチャを描画する処理が実行される。追加テクスチャとは、例えば、図25に示すような、目的地を示す旗のアイコン121等、ゲームの進行上、必要となるマーク等の画像であり、上記追加アイコンデータ311に基づいて生成される。
【0123】
図20に戻り、次に、ステップS32において、上記フレームバッファ内の作業用画面から、図26に示すような、鳥瞰マップとして表示する円形の画像をスクリーンキャプチャし、レイアウト用鳥瞰マップ画像データ314として作業領域313に保存する処理が実行される。
【0124】
図20に戻り、次に、ステップS33において、最終的に画面に表示するべきゲーム画面のレイアウト調整が実行される。具体的には、上記レイアウト用鳥瞰マップ画像データ314に対して半透明(アルファ値)の設定や縁を滑らかにする処理(スムージング、アンチエイリアス)が行われ、最終的なゲーム画面上における表示位置が決定される。
【0125】
次に、ステップS34において、描画処理が実行される。つまり、メインとなるゲーム画面に上記鳥瞰マップ画像が重ねて表示されるようなゲーム画像(図27参照)がテレビ2に表示されることになる。以上で、鳥瞰マップ生成・表示処理は終了する。
【0126】
このように、本実施形態では、上記鳥瞰マップ用のリソースとなるデータ(仮想ゲーム空間を鳥瞰した画像データ)を生成する際に、海のマテリアルを描画しないようにして3D地形モデルを生成する。そして、これを上方向から仮想カメラで撮影した画像において、所定の条件(全てのピクセルが単一色)を満たしている部分については、その部分の画像はリソース化しないような処理を行っている。これにより、例えば、上記鳥瞰した仮想ゲーム空間の全体(島も海も含んだもの)を一枚の絵として構成した画像データをリソースとして用いる場合に比べ、リソースとなるデータ量を削減することが可能となる。
【0127】
また、上記鳥瞰した仮想ゲーム空間の全体を一枚の絵を画像データとして作成して保存する場合、当該画像データの生成に際して、例えば、仮想空間内における島全体のサイズやバランス、3次元空間を真上から撮影する際の中心位置等について調整する必要があるが、本発明によれば、開発者は島全体のサイズ等を気にしなくてもよく、例えば開発過程において島の形状が変化した場合や新たに離島が追加されたような場合でも、上述したようなリソース作成処理を再度実行すれば済むため、開発作業にかかる開発者の負担を軽減することが可能となる。
【0128】
また、本実施形態では、ゲーム処理時における鳥瞰マップの生成・描画処理で、プレイヤオブジェクト101の位置を中心として、鳥瞰マップに必要となる部分のみを抽出して描画処理を行うようにしている。これにより、不要な描画処理は実行しないようにすることができ、処理負荷を軽減することができる。更に、鳥瞰マップ範囲内に含まれる箇所ではあるが、鳥瞰マップのリソースとなるデータが無いような箇所については、所定の色(例えば海の色)を描画しているため、違和感の無い鳥瞰マップ画像を生成することが可能となる。換言すれば、鳥瞰マップ範囲内に含まれる箇所ではあるが、鳥瞰マップのリソースとなるデータが無いような箇所については、テクスチャを描画するという処理が不要となるため、鳥瞰マップ生成時にかかる処理コストをより軽減することが可能となる(一般的に、例えば、海面部分のセルに対応するポリゴンについて、海面のテクスチャを描画する処理よりは、単に所定の単一色で塗りつぶす処理のほうが、テクスチャを読み出す処理が不要になるため、処理コストは低い)。
【0129】
なお、セルのサイズ、すなわち、キャプチャデータとして保存する画像のサイズについては、上記のような64×64ピクセルに限るものではなく、当然ながら、他のサイズ、例えば、32×32や128×128等のサイズを用いても良い。当該サイズは、ゲーム内容に応じて適宜決定すればよい。例えば、特定の拡大率しか使用しないゲームであれば、そのゲーム内容に応じたサイズのセルを用いればよい。
【0130】
また、上述した実施形態では、仮想ゲーム空間の撮影については、その撮影範囲をスクリーンサイズ(ゲーム画面のサイズ)として撮影し、当該撮影画像から上記セルに対応する一部の領域のみを抽出するようにして、上述したようなセルの振り分け判定を行っていた。これに限らず、撮影範囲を最初からセルのサイズに合わせてから撮影するようにしても良い。この場合は、リソース生成処理にかかる処理コストを削減するという点で有利となる。一方、上述の実施形態のように、一旦スクリーンサイズ(ゲーム画面のサイズ)で撮影し、当該撮影画像から上記セルに対応する一部の領域のみについて、上述したようなセルの振り分け判定を行う場合は、撮影範囲に関する仮想カメラの設定については、他の開発工程で用いる仮想カメラ設定を流用することが可能となる。そのため、リソース生成処理のためだけに別途撮影処理のプログラムを開発する必要がなく、開発者の負担を軽減することが可能となる点で有利である。
【0131】
また、上記実施形態の例では、リソース生成処理においては海の部分をリソース化の対象から外し、鳥瞰マップ生成・表示処理では、リソース化されていないセルについて、海(水面)の色でポリゴンを描画していた。このような、海という地形の他、例えば、仮想ゲーム空間の大半が砂漠で構成されているような場合は、海の代わりに砂漠の色(砂の色)を用いて上述したような処理を行っても良い。その他、仮想ゲーム空間を鳥瞰した際に、最も多く使われている色のみで構成されているような地形に対して、上述したような処理を適用してもよい。
【0132】
また、上述の実施形態では、仮想ゲーム空間における海の色が単一色である場合を例としてあげたが、この他、例えば、海の色として、少しだけ階調が異なる複数の色が用いられているような場合に、これら複数の色については実質的に同一の色とみなして、単一色として扱うようにしてもよい。この場合は、上述したリソース生成処理において、セル画像のピクセルが単一色であるか否かを判定する際に、複数の色が用いられていると判定されたとしても、これらの色の階調差が所定の範囲内であれば、単一色であると判定するようにすればよい。
【0133】
また、上述した実施形態では、各セルに対応するキャプチャデータ315が無いときは、水面の色を板状のポリゴンに描画していたが、この他、予め水面の色が描画された板状のポリゴンを用意しておき、キャプチャデータ315が存在するセルについてのみ、当該水面色のポリゴンに対してキャプチャデータ315の内容を上書き描画するようにしてもよい。
【産業上の利用可能性】
【0134】
本発明にかかる鳥瞰マップリソース生成プログラム、および、鳥瞰マップリソース生成装置は、鳥瞰マップ作成にかかる開発者の負担を軽減することができ、また、鳥瞰マップのリソースとなるデータ量を軽減することができ、ゲーム装置やカーナビゲーション装置、運動支援装置等に有用である。また、本発明にかかる鳥瞰マップ表示プログラム、および、鳥瞰マップ表示装置は、鳥瞰マップを表示するための処理負荷を軽減することができ、ゲーム装置やカーナビゲーション装置、運動支援装置等に有用である。
【符号の説明】
【0135】
1…ゲームシステム
2…モニタ
2a…スピーカ
3…ゲーム装置
4…光ディスク
7…コントローラ
10…CPU
11…システムLSI
11a…入出力プロセッサ
11b…GPU
11c…DSP
11d…VRAM
11e…内部メインメモリ
12…外部メインメモリ
13…ROM/RTC
14…ディスクドライブ
15…AV−IC
16…AVコネクタ
17…フラッシュメモリ
18…無線通信モジュール
19…無線コントローラモジュール
20…拡張コネクタ
21…外部メモリカード用コネクタ
22…アンテナ
23…アンテナ
24…電源ボタン
25…リセットボタン
26…イジェクトボタン
71…ハウジング
72…操作部
73…コネクタ
74…撮像情報演算部
741…赤外線フィルタ
742…レンズ
743…撮像素子
744…画像処理回路
75…通信部
751…マイコン
752…メモリ
753…無線モジュール
754…アンテナ
700…基板
701…加速度センサ
702…LED
703…水晶振動子
704…バイブレータ
707…サウンドIC
708…アンプ

【特許請求の範囲】
【請求項1】
仮想3次元空間に対応する鳥瞰マップを表示するためのリソースを生成する鳥瞰マップリソース生成装置のコンピュータで実行される鳥瞰マップリソース生成プログラムであって、
前記コンピュータを、
前記仮想3次元空間内に配置された仮想カメラで前記仮想3次元空間の一部の領域の鳥瞰画像を撮影する撮影手段と、
前記撮影手段で撮影された前記鳥瞰画像を構成する色に関する情報が所定の条件を満たしているか否かを判定する判定手段と、
前記判定手段によって前記所定の条件を満たしていないと判定された前記鳥瞰画像の画像データを所定の記憶媒体に蓄積することでリソースデータを生成するリソースデータ生成手段として機能させ、
前記撮影手段と前記判定手段と前記リソースデータ生成手段による処理は、前記仮想3次元空間の予め定められた領域に対応する鳥瞰画像の全てが前記撮影手段によって撮影されるまで繰り返される、鳥瞰マップリソース生成プログラム。
【請求項2】
前記鳥瞰マップリソース生成プログラムは、前記コンピュータを、前記仮想3次元空間内において仮想カメラを所定の撮影条件に応じて移動させる仮想カメラ移動手段として更に機能させ、
前記撮影手段は、前記仮想カメラ移動手段によって移動された仮想カメラで前記仮想3次元空間の一部の領域の鳥瞰画像を撮影する、請求項1に記載の鳥瞰マップリソース生成プログラム。
【請求項3】
前記鳥瞰マップ生成プログラムは、前記コンピュータを、前記仮想3次元空間を構成する地形オブジェクトのうち、所定の種類の地形オブジェクトを描画せず、前記所定の種類の地形オブジェクト以外の地形オブジェクトを描画することにより仮想3次元空間を生成するリソース用3次元空間生成手段として更に機能させ、
前記撮影手段は、前記リソース用3次元空間生成手段で生成された仮想3次元空間を撮影する、請求項1または2に記載の鳥瞰マップリソース生成プログラム。
【請求項4】
前記リソース用3次元空間生成手段は、所定の単一色を背景色とし、前記所定の種類の地形オブジェクト以外の地形オブジェクトを描画することで前記仮想3次元空間を生成する、請求項3に記載の鳥瞰マップリソース生成プログラム。
【請求項5】
前記判定手段は、前記撮影手段で撮影された前記鳥瞰画像の画素値が全て同じ色を示す画素値であるとき、前記所定の条件を満たしたと判定する、請求項3または4に記載の鳥瞰マップリソース生成プログラム。
【請求項6】
前記判定手段は、前記鳥瞰画像が複数色で構成されているときは、当該複数の色のうち、階調の差が所定範囲内である複数の色については同じ色として判定する、請求項3または4に記載の鳥瞰マップリソース生成プログラム。
【請求項7】
前記仮想カメラ移動手段は、前記仮想カメラで撮影される前記仮想3次元空間の領域が重複しないように前記仮想カメラを移動させる、請求項2に記載の鳥瞰マップリソース生成プログラム。
【請求項8】
前記仮想カメラ移動手段は、前記仮想3次元空間全体が一枚の画像に収まるように鳥瞰した画像を所定の大きさの正方形で格子状に区切ったと仮定したときの当該正方形単位で前記仮想カメラを移動させる、請求項7に記載の鳥瞰マップリソース生成プログラム。
【請求項9】
前記リソースデータ生成手段は、前記撮影手段が撮影した鳥瞰画像に対応する前記仮想3次元空間内の位置を示す情報を前記画像データに付加して蓄積する、請求項1乃至請求項8のいずれかに記載の鳥瞰マップリソース生成プログラム。
【請求項10】
前記撮影手段は、前記仮想3次元空間を正射影方式で撮影することで前記鳥瞰画像を取得する、請求項1に記載の鳥瞰マップリソース生成プログラム。
【請求項11】
前記仮想カメラ移動手段は、前記リソースデータ生成手段で蓄積される前記画像データの画像サイズに応じて前記仮想カメラを移動させる距離を決定する、請求項2に記載の鳥瞰マップリソース生成プログラム。
【請求項12】
仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置のコンピュータで実行される鳥瞰マップ表示プログラムであって、
前記コンピュータには、前記仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが蓄積されたデータであるリソースデータを記憶するリソースデータ記憶手段が接続されており、
前記コンピュータを、
前記リソースデータから所定の画像データを選択する画像データ選択手段と、
前記画像データ選択手段で選択された画像データに基づいて、前記鳥瞰マップを生成して、所定の表示装置の画面に表示する鳥瞰マップ表示手段として機能させる、鳥瞰マップ表示プログラム。
【請求項13】
仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置のコンピュータで実行される鳥瞰マップ表示プログラムであって、
前記コンピュータを、
前記仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが、当該各画像データの撮影された当該仮想3次元空間内の位置を示す情報と共に蓄積されたデータであるリソースデータを記憶するリソースデータ記憶手段が接続されており、
前記鳥瞰マップ内における所定の表示位置に対応する前記仮想3次元空間内の位置を取得する位置取得手段と、
前記位置取得手段で取得された前記仮想3次元空間内の位置に対応する前記画像データが前記リソースデータに含まれているか否かを判定するリソース存在判定手段と、
前記リソース判定手段において、前記対応する画像データが含まれていると判定されたときは、前記リソースデータから当該対応する画像データを取得して前記鳥瞰マップ内における前記所定の表示位置に表示し、含まれていないと判定されたときは、予め定められた画像データを当該鳥瞰マップ内における当該所定の表示位置に表示する鳥瞰マップ表示手段として機能させる、鳥瞰マップ表示プログラム。
【請求項14】
前記鳥瞰マップ表示プログラムは、前記コンピュータを、前記位置取得手段で取得された前記仮想3次元空間内の位置が、前記鳥瞰マップとして描画される仮想3次元空間内の範囲外であるか否かをプレイヤオブジェクトの位置と所定の描画範囲とに基づいて判定する第1の鳥瞰マップ範囲外判定手段として更に機能させ、
前記リソース判定手段は、前記第1の鳥瞰マップ範囲外判定手段で鳥瞰マップの範囲外ではないと判定された前記仮想3次元空間内の位置についてのみ、当該仮想3次元空間内の位置に対応する前記画像データが前記リソースデータに含まれているか否かを判定する、請求項13に記載の鳥瞰マップ表示プログラム。
【請求項15】
前記第1の鳥瞰マップ範囲外判定手段は、前記位置取得手段で取得された前記仮想3次元空間内の位置が前記鳥瞰マップとして表示される仮想3次元空間の範囲外であるか否かを、前記プレイヤオブジェクトの位置、所定の描画範囲、および、当該鳥瞰マップの拡大率に基づいて判定する、請求項14に記載の鳥瞰マップ表示プログラム。
【請求項16】
前記鳥瞰マップ表示プログラムは、前記コンピュータを、
前記第1の鳥瞰マップ範囲外判定手段で鳥瞰マップの範囲外ではないと判定された前記仮想3次元空間内の位置が、前記鳥瞰マップとして描画される仮想3次元空間内の範囲内に含まれるか否かを前記プレイヤオブジェクトの向きに基づいて判定する第2の鳥瞰マップ範囲外判定手段として更に機能させ、
前記リソース判定手段は、前記第2の鳥瞰マップ範囲外判定手段において前記鳥瞰マップの範囲内に含まれると判定された前記仮想3次元空間内の位置についてのみ、当該仮想3次元空間内の位置に対応する前記画像データが前記リソースデータに含まれているか否かを判定する、請求項14または15に記載の鳥瞰マップ表示プログラム。
【請求項17】
仮想3次元空間に対応する鳥瞰マップを表示するためのリソースを生成する鳥瞰マップリソース生成装置であって、
前記仮想3次元空間内に配置された仮想カメラで前記仮想3次元空間の一部の領域の鳥瞰画像を撮影する撮影手段と、
前記撮影手段で撮影された前記鳥瞰画像を構成する色に関する情報が所定の条件を満たしているか否かを判定する判定手段と、
前記判定手段によって前記所定の条件を満たしていないと判定された前記鳥瞰画像の画像データを所定の記憶媒体に蓄積することでリソースデータを生成するリソースデータ生成手段とを備え、
前記撮影手段と前記判定手段と前記リソースデータ生成手段による処理は、前記仮想3次元空間の予め定められた領域に対応する鳥瞰画像の全てが前記撮影手段によって撮影されるまで繰り返される、鳥瞰マップリソース生成装置。
【請求項18】
仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置であって、
前記仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが蓄積されたデータであるリソースデータを記憶するリソースデータ記憶手段と、
前記リソースデータから所定の画像データを選択する画像データ選択手段と、
前記画像データで選択された画像データに基づいて、前記鳥瞰マップを生成して、所定の表示装置の画面に表示する鳥瞰マップ表示手段とを備える、鳥瞰マップ表示装置。
【請求項19】
仮想3次元空間に対応する鳥瞰マップを表示する鳥瞰マップ表示装置であって、
前記仮想3次元空間内において所定の撮影条件に応じて移動させた仮想カメラで当該仮想3次元空間の一部の領域の鳥瞰画像を撮影する処理が繰り返し実行されることで得られた画像データ群のうち、各鳥瞰画像を構成する色に関する情報が所定の条件を満たしていない画像データ群のみが、当該各画像データの撮影された当該仮想3次元空間内の位置を示す情報と共に蓄積されたデータであるリソースデータを記憶するリソースデータ記憶手段と、
前記鳥瞰マップ内における所定の表示位置に対応する前記仮想3次元空間内の位置を取得する位置取得手段と、
前記位置取得手段で取得された前記仮想3次元空間内の位置に対応する前記画像データが前記リソースデータに含まれているか否かを判定するリソース存在判定手段と、
前記リソース判定手段において、前記対応する画像データが含まれていると判定されたときは、前記リソースデータから当該対応する画像データを取得して前記鳥瞰マップ内における前記所定の表示位置に表示し、含まれていないと判定されたときは、予め定められた画像データを当該鳥瞰マップ内における当該所定の表示位置に表示する鳥瞰マップ表示手段とを備える、鳥瞰マップ表示装置。
【請求項20】
鳥瞰マップのリソースを生成して当該リソースに基づいて当該鳥瞰マップを表示する方法であって、
前記仮想3次元空間内に配置された仮想カメラで前記仮想3次元空間の一部の領域の鳥瞰画像を撮影する撮影ステップと、
前記撮影ステップで撮影された前記鳥瞰画像に関する情報が所定の条件を満たしているか否かを判定する判定ステップと、
前記判定ステップによって前記所定の条件を満たしていないと判定された前記鳥瞰画像の画像データを所定の記憶媒体に蓄積することでリソースデータを生成するリソースデータ生成ステップと、
前記撮影ステップと前記判定ステップと前記リソースデータ生成ステップによる処理を、前記仮想3次元空間の予め定められた領域に対応する鳥瞰画像の全てが前記撮影ステップによって撮影されるまで繰り返す制御ステップと、
前記リソースデータから所定の画像データを選択する画像データ選択ステップと、
前記画像データ選択ステップで選択された画像データに基づいて、前記鳥瞰マップを生成して、所定の表示装置の画面に表示する鳥瞰マップ表示ステップとを含む方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2011−70599(P2011−70599A)
【公開日】平成23年4月7日(2011.4.7)
【国際特許分類】
【出願番号】特願2009−223444(P2009−223444)
【出願日】平成21年9月28日(2009.9.28)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】