(57)【特許請求の範囲】
【請求項１】
演算装置に、マップ特性を示したマクロを格納し、該マクロは高さマップを含んだテクスチャセットを有し、
前記演算装置により、電子マップ内に前記マクロのインスタンスを配置する、ここで、前記マクロのインスタンスは、該マクロのテクスチャセットに対応する該マクロのインスタンスのテクスチャセットに基づいて、前記電子マップ内に視覚的に表示され、
前記演算装置により、前記マクロのインスタンスのテクスチャセット内のテクスチャを編集し、そして、
前記演算装置により、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートする、
ことから構成される方法。
【請求項２】
請求項１記載の方法において、該方法は更に、前記演算装置により、マクロのインスタンスを変換する、該変換は、マクロのインスタンスの、大きさの変更、移転、回転のうちの少なくとも一つを含むことを特徴とする。
【請求項３】
請求項１記載の方法において、前記電子マップは更に、マクロのインスタンス間の相互作用を規定する規則のセットを有し、
前記方法は更に、前記演算装置により、マクロのインスタンスと第２のマクロのインスタンスの重なりを決定し、
前記演算装置により、前記マクロのインスタンスと第２のマクロのインスタンスを前記規則のセットに基づいて混合する、
ことを特徴とする。
【請求項４】
請求項１記載の方法において、該方法は更に、前記演算装置により、マクロのテクスチャのセットを編集し、
該編集を、マクロのインスタンスのテクスチャのセットに伝える、ことを特徴とする。
【請求項５】
請求項１の方法において、該方法は更に、
前記演算装置により、前記電子マップを、マクロのインスタンスを壊して電子マップのベース層に圧縮し、
該圧縮された電子マップを、前記演算装置によって、第２の演算装置に送る、ことを特徴とする。
【請求項６】
請求項１記載の方法において、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートすることは、前記テクスチャのセット内の複数のテクスチャを再サンプリングすることを含んでいる、ことを特徴とする。
【請求項７】
一つ以上の処理装置によって処理が実行可能なコンピュータプログラム指示を格納するコンピュータ可読記録媒体であって、前記処理は、
演算装置により、マップ特性を示したマクロを格納し、該マクロは高さマップを含んだテクスチャセットを有し、
前記演算装置により、電子マップ内に前記マクロのインスタンスを配置する、ここで、前記マクロのインスタンスは、該マクロのテクスチャセットに対応する該マクロのインスタンスのテクスチャセットに基づいて、前記電子マップ内に視覚的に表示され、
前記演算装置により、前記マクロのインスタンスのテクスチャセット内のテクスチャを編集し、そして、
前記演算装置により、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートする、ことを特徴とする。
【請求項８】
一つ以上の処理装置及び、
前記一つ以上の処理装置によって処理が実行可能なコンピュータプログラム指示を格納するコンピュータ可読記録媒体を有するシステムであって、
前記処理は、
演算装置により、マップ特性を示したマクロを格納し、該マクロは高さマップを含んだテクスチャセットを有し、
前記演算装置により、電子マップ内に前記マクロのインスタンスを配置する、ここで、前記マクロのインスタンスは、該マクロのテクスチャセットに対応する該マクロのインスタンスのテクスチャセットに基づいて、前記電子マップ内に視覚的に表示され、
前記演算装置により、前記マクロのインスタンスのテクスチャセット内のテクスチャを編集し、そして、
前記演算装置により、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートする、ことを特徴とする。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、電子的な地形の表示を編集することに関わり、特にマクロを用いて電子マップを編集することに関する。
【０００２】
多くのビデオゲームは、そこでビデオゲームが実行されるゲームボード、マップなど（一般的に「地形」）を含んでいる。例えば、ビデオゲームは、その上で多様なゲームピースが配置され、またゲーム中に動かされる、ボードを含んでいてもよい。ビデオゲームは、時として、アップロードや転送、ダウンロードや他の用途で、多大な時間及び演算リソースを使用する、大容量のソフトウェア及びデータを含む。地形は、しばしばこうしたソフトウェア及びデータの最も大きなセグメントの一つである。こうして、地形を使用するアップロード、転送、ダウンロード又は他の用途は、通常は多大な時間と演算リソースを消費する。更に、地形は、通常不変であり、しばしば繰り返されることから、地形を含んだビデオゲームのプレイヤーは、ビデオゲームに興味を失ってしまうことがある。
【発明の概要】
【０００３】
実施形態は、電子マップのマクロをベースにしたカスタマイズに関する。演算装置は、マップ特性を示したマクロを格納している。該マクロはテクスチャのセットを有しており、該テクスチャのセットは、高さマップを含んでいる。演算装置は、電子マップ内に前記マクロのインスタンスを配置する。マクロのインスタンスは、該マクロのテクスチャセットに対応する該マクロのインスタンスのテクスチャセットに基づいて、前記電子マップ内に視覚的に表示される。演算装置は、マクロのインスタンスのテクスチャセット内のテクスチャを編集する。演算装置は、テクスチャへの編集に基づいて、マクロのインスタンスの視覚的表現をアップデートする。
【０００４】
一つ以上の実施形態では、演算装置は、マクロのインスタンスを変換する、該変換は、マクロのインスタンスの、大きさの変更、移転、回転のうちの少なくとも一つである。
【０００５】
一つ以上の実施形態では、電子マップは更に、マクロのインスタンス間の相互作用を規定する規則のセットを有している。演算装置は、マクロのインスタンスと第２のマクロのインスタンスの重なりを決定し、マクロのインスタンスと第２のマクロのインスタンスを前記規則のセットに基づいて混合する。
【０００６】
一つ以上の実施形態では、マクロのインスタンスと第２のマクロのインスタンスの混合は更に、混合パラメータのセットに基づいている。
【０００７】
一つ以上の実施形態では、演算装置は、電子マップを、マクロのインスタンスを壊して電子マップのベース層に圧縮し、該圧縮された電子マップを、第２の演算装置に送る。
【０００８】
一つ以上の実施形態では、前記テクスチャへの編集に基づいて、マクロのインスタンスの視覚的表現をアップデートすることは、テクスチャのセット内の複数のテクスチャを再サンプリングすることを含んでいる。
【０００９】
一つ以上の実施形態では、演算装置は、マクロの他のインスタンスを電子マップ内に配置する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に基づく、システムのブロック図である。
【図２】図２は、実施形態に基づく、図１のクライアント装置のブロック図。
【図３】図３は、実施形態に基づく、図１のクライアント装置のメモリ内のソフトウェアモジュールのブロック図。
【図４Ａ】図４Ａは、 実施形態に基づく、図１のクライアント装置のメモリ内の、ソフトウェアモジュールによって使用されるレベルデータのブロック図。
【図４Ｂ】図４Ｂは、実施形態に基づく、図１のクライアント装置メモリ内の、ソフトウェアモジュールによって使用されるマクロデータのブロック図。
【図５】図５は、実施形態に基づく、電子マップの模式図。
【図６】図６は、実施形態に基づく、図５の電子マップの電子マップタイルにおけるマクロを示す模式図。
【図７】図７は、実施形態に基づく、ここで述べられた技術を実行するためのプロセスを示すフローチャートである。
【００１１】
図面は、例示目的でのみ、本発明を開示する多様な実施形態を描いている。当業者であるならば、そこに示された構造や方法の互換的な実施形態を、ここ述べられた開示の利益や原則から離れること無く使用することが出来ることを、以下の記述から容易に思いつくことが出来るものである。
【発明を実施するための形態】
【００１２】
以下の実施形態の記述の中で、より徹底的な理解のために多くの詳細な説明がなされている。しかし、実施形態は、一つ以上のこれらの特定の詳細に関わりなく、実行されてもよい。他の例では、周知の事項は、説明の複雑化を避けるために、その詳細を述べることはしていない。
【００１３】
実施形態が、図面を参照して説明されるが、ここで同様の参照番号は、同一又は機能的に類似の素子を示す。図面において、各参照番号の最も左の桁又は左の複数の桁は、該参照番号が最初に使用された図に対応している。
【００１４】
実施形態は、電子マップのマクロベースでのカスタマイズに関する。コンピュータ装置は、マップの特長を表すマクロを格納している。マクロは、テクスチャのセットを含み、該テクスチャのセットは高さマップを含む。コンピュータ装置は、電子マップ内にマクロのインスタンスを配置する。マクロのインスタンスは、該マクロのテクスチャのセットに対応した、マクロのインスタンスのテクスチャのセットをベースにして電子マップ内に視覚的に表示される。コンピュータ装置は、マクロのインスタンスのテクスチャのセット内で、テクスチャを編集する。コンピュータ装置は、テクスチャに対する編集に基づいて、マクロのインスタンスの視覚的な表示をアップデートする。
【００１５】
他の利点では、実施形態は、例えば、制作者、サーバー及びクライアント装置間の、マクロベースの電子マップの圧縮のような、特別な電子マップの効率的な転送を可能とする。更に、実施形態は、電子マップ全体のより多くの多様性及びカスタマイゼーションを可能とする、柔軟な電子マップ設計及び実装を可能とする。こうして、コンピュータ装置及びユーザ経験は改善されるかもしれない。マクロベースの電子マップのカスタマイズはまた、より有機的な没入感の有る電子マップへつながり、更にユーザ経験を向上させることとなる。
【００１６】
図１は、実施形態に基づいた、ここで述べる技術を実行することの出来るシステム１００のブロック図である。システム１００は、コンテンツクリエーター１１０、サーバー１２０、クライアント装置１４０及びネットワーク１４４を含む。他の実施形態では、システム１００は、追加的なコンテンツクリエーター１１０やサーバー１２０を含むことが出来、又単一のクライアント装置１４０となる場合もある。
【００１７】
コンテンツクリエーター１１０、サーバー１２０及びクライアント装置１４０は、ネットワーク１４４を介して通信するように構成されている。ネットワーク１４４は、有線及び／又は無線通信システムを用いた、ローカルエリア及び／又は広域ネットワークのあらゆる組み合わせを含むことが出来る。一つの実施形態では、ネットワーク１４４は通常の通信技術及び／又はプロトコルを使用する。例えば、ネットワーク１４４は、イーサネット、８０２．１１、ワイマックス（worldwide interoperability for microwave access (WiMAX)、３Ｇ、４Ｇ、符号分割多元接続（ＣＤＭＡ）、デジタル加入者線（ＤＳＬ）などの技術を用いた通信リンクを含むものである。ネットワーク１４４を介した通信に使用されるネットワークプロトコルの例には、マルチプロトコル ラベル スイッチング（ＭＰＬＳ）、トランスミッション コントロール プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ハイパーテキスト・トランスファー・プロトコル（ＨＴＴＰ）、シンプル メール トランスファー プロトコル（ＳＭＴＰ）及びファイル・トランスファー・プロトコル（ＦＴＰ）を含む。ネットワーク１１４上で交換されるデータは、ハイパーテキスト マークアップ ランゲージ（ＨＴＭＬ）又はエクステンシブル マークアップ ランゲージ（ＸＭＬ）のような適切なフォーマットを使用して表示することが出来る。ある実施形態では、ネットワーク１４４のいくつか又は全ての通信リンクは、何らかの適切な技術又はそれらの組み合わせた技術を用いて暗号化することが出来る。
【００１８】
コンテンツクリエーター１１０は、ゲーミングシステム、パーソナルコンピュータ、モバイルフォン、タブレットなどのコンピュータ装置であり、ゲームレベルエディタ１１２を含み、実行することが出来る。ゲームレベルエディタ１１２は、例えば一つ以上のゲームについての電子マップを設計するソフトウェアアプリケーションである。電子マップは、四角なタイルなどの、タイルのベース層を含み、それは電子マップを、個別に編集可能なセグメントの特有な配置に分けている。タイルは、それが特有な配置に位置決めされると、特有な三次元（「３Ｄ」）トポロジーを形成する。タイル、マップ及びマクロは、以下に詳細に述べられる。ある実施形態では、ゲームレベルエディタ１１２は追加的にサーバー１２０のコンポーネントのいくつか又は全てを含む。
【００１９】
コンテンツクリエーター１１０のユーザは、ゲームレベルエディタ１１２を用いて、ビデオゲームのレベルなどの、電子マップを生成する。例えば、ユーザはゲームレベルエディタ１１２を用いて、多様なタイルをつなぎ合わせて、特別な電子マップを形成する所望の配列とする。ユーザは、ゲームレベルエディタ１１２を用いて、該電子マップにマクロのインスタンスを加え、マクロのインスタンスをつなぎ合わせて所望の配列にする。ユーザは、ゲームレベルエディタ１１２を使ってマクロを編集してもよく、それがマクロのインスタンス又はマクロの個々のインスタンスの編集に広がり、それらの特有の位置、大きさ及び組成を変化させる。
【００２０】
マクロは、山、丘、谷及び街などの、電子マップの主要な特徴の表現である。マクロは高さマップを含むテクスチャのセットを有している。高さマップは、マクロの多様な部分の高度を定義するテクスチャである。例えば、山の高さマップは、マクロの真ん中に向いた位置についての高い高さ値及びマクロの端に向いた位置についてのより低い高さ値を含んでいてもよい。テクスチャのセットに含まれ得る他のテクスチャは、アルファマップ、材料表面、生物群系（biomes）、シェアードレイヤ（shared layers)、ディテイルレイヤ(detail layers)を含んでいる。実施形態によると、マクロは高さマップの他に、一つ以上の他のテクスチャを含んでいる。
【００２１】
アルファマップは、高さマップの部分を切り抜くテクスチャである。例えば、コンテンツクリエーター１１０のユーザが、マウンテンマクロに洞窟を加える場合、アルファマップは、高さマップを覆うべきマクロの部分を特定するために使用される。
【００２２】
材料表面テクスチャは、マクロの境界内に配置された人工物の表面に使用された材料を指定する。例えば、木、石又は金属である。森のマクロは、「木」の材料表面テクスチャを使用してもよく、またモダンな都市のマクロは、「金属」の材料表面テクスチャを使用してもよい。
【００２３】
生物群系（biomes）テクスチャは、マクロ内で表される葉のタイプを指定する。例えば、生物群系（biomes）テクスチャは、森、草原、砂漠、北極圏、沼地などを指定する。マクロに含まれる特有のインスタンス、例えば、木又は砂丘又は氷河のインスタンスは、生物群系（biomes）グラフに基づいて決定されてもよい。生物群系（biomes）グラフは、資源（例えば、木又は砂丘のようなゲームオブジェクト）を指定する生物群系（biomes）テクスチャから離れて、生物群系（biomes）ルールのセットに基づいてマクロを超えて生成する資源である。ゲームレベルエディタ１１２は、生物群系（biomes）テクスチャを特定の生物群系（biomes）グラフに割り当て、ゲームシステムは、生物群系（biomes）グラフを使用して、マクロに、森の生物群系について木、又は草原の生物群系について草のパッチなどの、ゲームオブジェクトを、該マクロに適用する生物群系グラフ規則にしたがって埋め込む。
【００２４】
ディテイルレイヤテクスチャは、生物群系テクスチャ又は材料表面テクスチャ上のマスキングレイヤである。ディテイルレイヤテクスチャは、生物群系テクスチャ又は材料表面テクスチャの領域を被覆する。例えば、ジャングルの生物群系テクスチャを持った山のマクロは、山の片側だけがジャングルを含んでいることを指定するディテイルレイヤテクスチャを追加的に含んでもよい。
【００２５】
シェアードレイヤテクスチャは、葉の特定のタイプを適用するように、生物群系テクスチャを変更する。例えば、ジャングルの生物群系テクスチャを持った山のマクロは、木を該マクロの中に位置させるか、させないかの場所を指定する、シェアードレイヤテクスチャを含んでいてもよい。
【００２６】
マクロは、ここで述べた以外の追加的な又は代替え的なテクスチャを含んでいてもよい。コンテンツクリエーター１１０のユーザはコンテンツクリエーター１１０を使ってマクロのインスタンスを電子マップ中に配置してもよい。例えば、コンテンツクリエーター１１０は二つの山のマクロを同じ電子マップ中の異なる位置に配置してもよい。コンテンツクリエーター１１０は、山のマクロの個々のインスタンスのそれぞれを編集することも、山のマクロそれ自体を編集することも出来る。仮にコンテンツクリエーター１１０が、洞窟を生成するためにアルファマップを加える等、山のマクロの個々のインスタンスを編集する場合には、変更は該マクロのインスタンス上だけに反映される。しかし、コンテンツクリエーター１１０がマクロのインスタンスよりもマクロそのものを編集した場合には、該編集は、別のカスタマイズが行われない限り、マップ内のマクロの各インスタンスに広まる。例えば、コンテンツクリエーター１１０がマクロそれ自体を編集してアルファマップを加えた場合には、該アルファマップは、電子マップ中のそれぞれのマクロのインスタンスに広まる。しかし、該マクロのインスタンスが既にアルファマップを加えるように個別に編集されていた場合には、それは上書きされない。しかしながら、ある実施形態では、マクロそれ自体への編集は、マクロの特定のインスタンスに対しては、前の編集を無効にする。マクロに対する編集で、マクロのインスタンスに対する現存の編集を無効にするかどうかは、コンテンツクリエーター１１０の構成に依存するようにしてもよい。
【００２７】
コンテンツクリエーター１１０は、マクロのインスタンスを移したり、回転したりまた大きさを変えたりすることが出来る。例えば、山のマクロのインスタンスは、例えば、山のマクロによって占められるタイルのパーセントとして、その大きさを拡大又は縮小するようにしてもよい。山のマクロのインスタンスは、タイルに関しては動かされるようにしてもよい。タイルは、タイル固有のローカルな座標系又は全体の電子マップに対応するグローバルな座標系等の、座標系を含んでいる。山のマクロのインスタンスは、コンテンツクリエーター１１０により、タイル内の第１の座標系セットから該タイル内の第２の座標系セットへ移動されてもよい。山のマクロのインスタンスは回転されてもよい。
【００２８】
ある実施形態では、マクロのインスタンスは、電子マップ中に配置されたコピーで、それ自身が占められてもよい。例えば、山のマクロのインスタンスはテクスチャを加えるように編集されてもよい。編集された山のマクロのインスタンスは、コピーされ、該コピーは、コンテンツクリエーター１１０により、電子マップ中の他の場所に配置されてもよい。
【００２９】
二つのマクロのインスタンスが、重なり合うように配置されると、コンテンツクリエーター１１０は、自動的にインスタンスを混ぜ合わせて、両者が結合した全体を生成する。混合操作は、コンテンツクリエーター１１０のユーザにより電子マップ中に体系化された一つ以上の規則に基づいていてもよく、また追加的に、一つ以上の混合パラメータに基づいていてもよい。電子マップ中に体系化された規則は、どのマクロがどれに対して優先度を持っているか、例えば、二つの異なるマクロのインスタンスのどちらが、重なる部分で他のマクロのインスタンスによりマスクされるか、を特定する、マクロ優先度を含んでいてもよい。例えば、すべてのマクロはタイルのベース層−これはマクロを配置する際に、その位置でマスクされる位置である−よりもより高い優先度を持っていてもよい。
【００３０】
テクスチャに関する規則は、プリセットされており、実施形態によるが、規則のパラメータの部分集合は、ゲームレベルエディタ１１２によるカスタマイズのために露出されている。例えば、マクロの優先度は、ゲームレベルエディタ１１２に、ゲームレベルエディタ１１２のユーザがマクロの優先度をセットしてもよいように、カスタマイズのために露出されている。混合パラメータは、エッジフェード半径パラメータ、特に重なったマクロ間のガシアンぼかしに用いるピクセル半径を特定するパラメータ、特定の範囲内でマクロの高さ値を固定する高さクリップパラメータ、及びピクセル境界外のマクロ値を混合のために無視する場所を示す、ピクセル境界パラメータを含んでいてもよい。
【００３１】
サーバー１２０は、プロセッサ１２８及びバス１２７で接続くされたメモリ１３０を持った演算装置である。メモリ１３０は、マクロデータストア１２２、ゲームレベルジェネレータ１２４及びデータオブジェクトジェネレータ１２６を有している。サーバー１２０は、コンテンツクリエーター１１０とクライアント装置１４０の間でメッセージを送受信してもよい。追加的に、サーバー１２０は、メモリ１３０内に、コンテンツクリエーター１１０からサーバー１２０で受け取った電子マップのような、一つ以上の電子マップを格納し、一つ以上の電子マップをクライアント装置１４０に送ってもよい。
【００３２】
プロセッサ１２８は、ここで述べる技術のいくつか又は全てを実行するような、取るべき動作を特定する指令を順次又は別な方法で実行することが出来る。バス１２７は、プロセッサ１２８とメモリ１３０を接続し、一方から他方にまた、その逆にデータを転送することができる。実施形態によっては、サーバー１２０は、当業者であれば既知の、演算装置にとって追加的な既知の素子を含んでもよい。
【００３３】
マクロデータストア１２２は、マクロ及び電子マップを格納する。例えば、マクロデータストア１２２は、そのテクスチャなどの、各マクロの定義を格納してもよい。マクロデータストア１２２は、コンテンツクリエーター１１０から、又はサーバー１２０の管理者又はゲームのクリエータによって生成された電子マップも格納してもよい。マクロデータストア１２２は、マクロ又は電子マップと関連したメタデータも格納してもよい。例えば、マクロに関連する電子マップについて生成された規則、電子マップのクリエータの識別子、電子マップの大きさ（例えば、メガバイト（「ＭＢ」）で計測される）などである。マクロデータストア１２２は、ゲームの目的、オブジェクトなどの、電子マップに関連しているが、該電子マップの必要な部分ではない情報も格納してもよい。
【００３４】
ゲームレベルジェネレータ１２４は、電子マップに基づいたゲームレベルを生成する。例えば、ゲームレベルジェネレータ１２４は、コンテンツクリエーター１１０から受け取った電子マップを用いてゲームレベルを生成する。ゲームレベルは、電子マップに目的やゲームキャラクタなどのゲームデータを加えてもよい。ゲームデータは、ランダムに生成されても、ゲームクリエータ又はサーバー１２０の管理者などの外部ソースからの入力として受け取ったものでもよい。
【００３５】
データオブジェクトジェネレータ１２６は、電子マップを送るためのデータオブジェクトを生成する。電子マップは、しばしば大きな容量であり、データのアップロードや送信、ダウンロードに際して重大な遅延を発生させる。ここで述べる技術は、データオブジェクトジェネレータ１２６に関するものも含んでおり、電子マップを送る際に関わるデータ量を少なくすることでこの遅延に対処する。
【００３６】
データオブジェクトジェネレータ１２６は、マクロのインスタンスを含んだ電子マップを、マクロのインスタンスを分解して電子マップの単一のマクロ層にすることで圧縮してもよい。即ち、それぞれのマクロのインスタンスを別々のデータとして保持するよりもむしろ、多様なマクロを単一のマクロ層に統一して、電子マップに関して設定された規則に従って、各マクロの多様なテクスチャを、これらのテクスチャで覆われる電子マップの位置に各マクロの多様なテクスチャを反映させることである。データオブジェクトジェネレータ１２６は、これらの圧縮された電子マップをクライアント装置１４０に送ってもよい。クライアント装置１４０は、データオブジェクトを受け取り、該データオブェクトで表される電子マップを再構築する。ある実施形態では、データオブジェクトジェネレータ１２６は、コンテンツクリエーター１１０にも、あるいはコンテンツクリエーター１１０に存在して、該データオブジェクトジェネレータ１２６を使用して、サーバー１２０へ送るための電子マップを圧縮するのに使用してもよい。
【００３７】
各クライアント装置１４０は、電子マップを使用するゲーム又は他のソフトウェアを含んだ演算装置である。クライアント装置１４０は、サーバー１２０からデータオブジェクトを受け取り、該データオブェクトを使用して、例えばゲーム内での電子マップを構築する。異なるクライアント装置１４０は、サーバー１２０から異なるデータオブェクトを要求することができる。例えば、クライアント装置１４０Ａは、サーバーから第１の電子マップを要求することができ、クライアント装置１４０Ｂは、サーバー１２０から第２の電子マップを要求することができるなどであり、クライアント装置１４０Ｎは、サーバー１２０から第Ｎの電子マップを要求することができる。
【００３８】
サーバー１２０は、クライアント装置１４０から要求された電子マップに対応するデータオブェクトをクライアント装置１４０に送ってもよい。例えば、クライアント装置１４０Ａは、要求された第１の電子マップに対応する第１のデータオブェクトを受け取ってもよいなどである。
【００３９】
図２は実施形態による、図１のクライアント装置１４０のブロック図である。実施形態では、コンテンツクリエーター１１０及び／又はサーバー１２０は、ここで述べたクライアント装置１４０のハードウェア及び／又はソフトウェアのいくつか又は全てを含んだ演算装置からなってもよい。クライアント装置１４０、コンテンツクリエーター１１０及び／又はサーバー１２０は、指令を実行することが出来るどのような装置でもよく、それぞれはスタンドアロン又は装置が接続された（例えば、ネットワーク化された）セットであってもよい。例えば、一つの実施形態では、コンテンツクリエーター１１０は、クライアント装置１４０である。
【００４０】
クライアント装置１４０は、バス２１６で接続された、中央演算ユニット（「ＣＰＵ」）２０２、グラフィック処理ユニット（「ＧＰＵ」）２０４、主メモリ２０６、副メモリ２１４、ディスプレィ制御装置２０８、ユーザーインターフェース２１０、及びサウンドコントローラ２１２を有している。単一のクライアント装置１４０のみを示したが、他の実施形態では、個別的にまたは協働して指令を実行してここで述べた方法論の一つ以上を実行するクライアント装置１４０の何らかの集合体を含むようにしてもよい。
【００４１】
主メモリ２０６は、ここで述べる一つ以上の方法論又は機能を具現化する指令（例えば、ソフトウェア）を格納する機械可読媒体である。例えば、主メモリ２０６は、ＣＰＵ２０２により実行されることで、ＣＰＵ２０２が、図７を参照して詳細が以下に述べられるプロセス７００を実行するように構成される指令を格納するようにしてもよい。指令は、また、ＣＰＵ２０２及び／又はＣＰＵ２０４内に、例えばキャッシュメモリ内に、該指令の実行中は部分的又は全部が駐留するようにしてもよい。
【００４２】
「機械可読媒体」とは、指令を格納することの出来る、単一の媒体又は複数の媒体を含んでいるものと取るべきである（例えば、集中又は分散データベース、又は関連したキャッシュ及びサーバー）。「機械可読媒体」は、また、装置により実行されるための指令を格納することの出来る何らかの媒体であり、ここで開示した一つ以上の方法論の何らかを装置に実行させるようにする何らかの媒体を含むものと捉えるべきである。「機械可読媒体」は、半導体メモリ、光学媒体、磁気媒体の形でのデータ貯蔵庫を含むものであるが、それに限定されるものではない。
【００４３】
副メモリ２１４は主メモリ２０６とは離れたメモリある。主メモリ２０６と同様に、副メモリ２１４は、ここで述べた一つ以上の方法論又は機能を具現化する指令（例えば、ソフトウェア）を格納する機械可読媒体である。例えば、主メモリ２０６は、クライアント装置１４０のハード装置であってもよく、副メモリ２１４は電子マップを使用するゲームのためのゲームディスクであってもよい。特別の例では、主メモリ２０６は、副メモリ２１４に格納された電子マップを使用するゲームシステム３００を格納していてもよい。主メモリ２０６及び副メモリ２１４は、以下に図３を参照して、より詳細に述べる。
【００４４】
ＣＰＵ２０２は、主メモリ２０６及び／又は副メモリ２１４に格納された指令を実行するように構成されている処理回路である。ＣＰＵ２０２は、汎用プロセッサ又は多様な命令セットアーキテクチャ（ＩＳＡｓ）の何らかを用いている埋め込みプロセッサとしてもよい。図２には、単一のＣＰＵを示すが、クライアント装置１４０は、マルチＣＰＵ２０２であってもよい。マルチプロセッサシステムでは、各ＣＰＵは、通常同じＩＳＡを実行するが、これに限るものではない。
【００４５】
ＧＰＵ２０４は、画像イメージを効率的に処理するために特別に設計された処理回路である。ＧＰＵ２０４は、ＣＰＵ２０２からの指令に基づき、表示すべきオブジェクトをレンダリングし、フレームバッファ（例えば、フレーム全体のピクセルデータを含んだもの）に書き込む。ＧＰＵ２０４は、グラフィックソフトウェアを実行して、グラフィック処理の一部又は全てを行う一つ以上のグラフィック処理装置を含むようにしてもよい。
【００４６】
ディスプレィ制御装置２０８は、ＧＰＵ２０４からの映像データを用いてビデオ信号を生成する回路である。例えば、ディスプレィ制御装置２０８は、ディスプレィ装置（例えば、液晶ディスプレィ（ＬＣＤ）及びプロジェクター）を駆動する。電子マップを含んでいるゲームなどは、ディスプレィ制御装置２０８を介して画像又はビデオシーケンスとして表示することが出来る。
【００４７】
サウンドコントローラ２１２は、クライアント装置１４０からの、及びクライアント装置１４０へのオーディオ信号の入出力を提供する回路である。地面の目的として、サウンドコントローラ２１２は、例えば、特定のタイル又は、タイルの一部で、電子マップのオブジェクトやアクションと協調してオーディオ信号を提供することができる。
【００４８】
ユーザーインターフェース２１０は、ユーザがクライアント装置１４０と関わることを可能とする、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせである。ユーザーインターフェース２１０は、英数字入力装置（例えば、キーボード）及びカーソル制御装置（例えば、マウス、トラックボール、ジョイスティック、モーションセンサー又は他の指示装置）を含むことができる。例えば、ユーザは、キーボード及びマウスを使用して、クライアント装置１４０によりレンダリングされた電子マップを含むゲーム環境内でキャラクタの行動を制御する。ゲーム環境は、ユーザのゲームキャラクタが動作する電子マップの、シミュレーションとレンダリングが含まれる。
【００４９】
クライアント装置１４０は、ここで述べた機能性を提供するためのコンピュータプロラムモジュールを実行する。ここで使用したように、「モジュール」という言葉は、特定の機能性を提供するために使用されるコンピュータプログラム指令及び／又は他のロジックに関するものである。そして、モジュールはハードウェア、ファームウェア及び／又はソフトウェア内で実行され得る。ある実施形態では、実行可能なコンピュータプログラム指令からなるプログラムモジュールは、主メモリ２０６にロードされ、ＣＰＵ２０２又はＧＰＵ２０４により実行される。例えば、ここで述べる処理７００のプログラム指令は、主メモリ２０６及び／又は副メモリ２１４にロードされ、ＣＰＵ２０２及びＧＰＵ２０４により実行することができる。
【００５０】
図３は、実施形態に基づいた、図１のクライアント装置１４０のメモリ内の、ソフトウェアモジュールのブロック図である。特に図３は、クライアント装置１４０の主メモリ２０６及び副メモリ２１４内のソフトウェアモジュールを示している。主メモリ２０６は、モジュールの中でも、ゲームシステム３００とオペレーティングシステム（「ＯＳ」）３８０を格納してもよい。副メモリ２１４は、モジュールの中でも、コンテンツソース３１２を格納してもよい。主メモリ２０６及び副メモリ２１４は、図３で示した以外の他のモジュールを含んでいてもよい。更に、他の実施形態では、主メモリ２０６及び副メモリ２１４は、ここで他のメモリに格納されるように示されたソフトウェアモジュールやデータをそれぞれ格納してもよい。
【００５１】
ゲームシステム３００は、レベルマネージャー３２０、物理システム３３０，サウンドモジュール３４０，地面ジェネレータ３５０、アニメーションモジュール３６０及びグラフィックレンダリングモジュール３７０を含んでいる。これらのモジュールは集合的にゲームシステム３００の「ゲームエンジン」を形成する。
【００５２】
ゲームシステム３００は、処理３１２Ａから３１２Ｎ（集合的に「処理３１２」と称する）を実行して、地面を含んだゲーム環境を生成する。特に、ゲームシステム３００は、これらの処理３１２を実行して、電子マップを構築し、該電子マップの上に多様なオブジェクト（例えば、ユーザのゲームキャラクタ）を具現化し、オブジェクト間の相互作用をシミュレートする。処理３１２は、あるイベント（例えば、ゲーム内で生じる、ユーザの交流、時間切れ及びトリガー）に基づいた、多様なパラメータの変更（例えば、オブジェクトの状態やユーザのステータス）をもたらす演算処理に関わっている。
【００５３】
いくつかの処理３１２は、一つ以上のオブジェクト、タイル又はゲーム環境内でのタイル内の位置、及び／又はオブジェクト、タイル、又はタイル内の位置に関連した一つ以上のアクションと関連している。処理の例としては、カタパルトでの岩の発射、キャラクタの走り、流体の流れ、矢の飛翔、ドアの開放などである。ある処理３１２は、比較的単純な応答（例えば、ドアの開放）であり、他の処理は物理システム３３０によるシミュレーションが必要になるかもしれない（例えば、接続された物体の動き）。処理３１２を実行する際には、ゲームシステム３００は、アプリケーションプログラムインターフェース（ＡＰＩｓ）を介してゲームエンジンの構成要素（例えば、物理システム３３０）と通信してもよい。少なくとも処理３１２の一つは、電子マップを構築することに関与している。
【００５４】
レベルマネージャー３２０は、データオブジェクト、即ち、レベルデータ３２２をサーバー１２０から受け取り、主メモリ２０６内に該レベルデータ３２２を格納する。ゲームシステム３００の他のモジュールは、レベルマネージャー３２０から一つ以上のレベルを要求することが出来、要求を送ったゲームシステム３００のモジュールに、要求されたモジュールに対応するレベルデータ３２２を送ることで、レベルマネージャー３２０は、リクエストに応える。または、レベルマネージャー３２０は、レベルデータ３２２から電子マップを構築してもよい。例えば、レベルデータ３２２は、コンテンツクリエーター１１０により生成された電子マップデータを含んでいてもよい。
【００５５】
地面ジェネレータ３５０は、電子マップデータ３２４及びゲームデータに基づいて完全な電子マップを生成する。地面ジェネレータ３５０は、電子マップデータ３２４をレベルマネージャー３２０から受け取り、ゲームデータ及びオブジェクトデータを以下に詳細に述べるように、副メモリ２１４内のコンテンツソース３１２から受け取る。一つの実施形態では、地面ジェネレータ３５０は、ゲームデータ及びオブジェクトデータを用いて電子マップを充足させる。例えば、電子マップ内の各位置については、地面ジェネレータ３５０は、ゲームデータ及びオブジェクトデータを引き出し、電子マップ内に配置する。
【００５６】
物理システム３３０は、ゲーム環境内のオブジェクトの力学をモデル化し、シミュレートする。ゲームシステム３００で処理３１２が開始された後に、物理システム３３０は、処理３１２に関連したオブジェクトにアクションがどのように影響するかをモデル化する。例えば、物理システムは、岩が丘を転がり落ちる時の岩をモデル化する。アクション及びオブジェクトによるが、他のオブジェクトやアクションが該アクション又はオブジェクトに関連してくるかもしれない。例えば、投げられた岩が、他のオブジェクトをひっくり返すかもしれない。これは、岩がオブジェクトに当たったところで、これが新しい処理３１２のトリガーとなるかもしれない。ゲーム環境内でオブジェクトの力学をモデル化し、シミュレーションする時は、物理システム３３０は、電子マップ情報（例えば、地面ジェネレータ３５０により生成された電子マップに関するデータ）を使用する。例えば、転がる岩の例に戻ると、物理システム３３０は、該岩が丘の坂のような電子マップ内に位置していることを識別することで、岩が丘を転がり落ちなければならないことを決定するようにしてもよい。
【００５７】
アニメーションシステム３６０は、オブジェクト又はゲーム環境の運動学的なアニメーションを、ゲームシステム３００からの処理３１２に基づいて行うモジュールである。例えば、処理３１２が、ロボットアームが動いていることを示すと、アニメーションシステムはアームの動作の運動学をアニメーションする。アニメーションシステム３６０は、特定のアニメーションタスクを実行するためのいくつかの特別なモジュールを含んでもよい。アニメーションシステム３６０は、オブジェクト又はゲーム環境の運動学的なアニメーションを行う際に、地面ジェネレータ３５０によって生成された電子マップに関する情報を、一要素として使用するようにしてもよい。
【００５８】
サウンドモジュール３４０は、ゲーム環境内又は、タイルに対して、又はタイル一部分で生じるアクションに対応した音を生成する。例えば、「川」のオブジェクトを含んだタイルの部分は、「流れる水」の音が対応するようにしてもよい。アニメーションシステム３６０からのアニメーションデータ又は地面ジェネレータ３５０からの地面情報を、サウンドモジュール３４０へ出力して、サウンドモジュール３４０が音を生成することを可能とするようにしてもよい。サウンドモジュール３４０は、音データをサウンドコントローラ２１２に送る。
【００５９】
グラフィックレンダリングモジュール３７０は、アニメーションシステム３６０及び地面ジェネレータ３５０からの画像をレンダリングし、ゲーム環境の映像を生成する。例えば、グラフィックレンダリングモジュール３７０は、アニメーションシステム３６０からシーンファイル及び地面ジェネレータ３５０から生成された地面を受け取る。グラフィックレンダリングモジュール３７０は、グラフィックデータをＧＰＵ２０４に送り、ディスプレィ制御装置２０８を介してディスプレィ（例えば、クライアント装置１４０のディスプレィ又はクライアント装置１４０に接続されたディスプレィ）上に画像をレンダリングする。
【００６０】
ＯＳ３８０は、コンピュータハードウェア及びソフトウェアリソースを管理する。特に、ＯＳ３８０は、プログラムとコンピュータハードウェア間の仲介者として動作する。例えば、ＯＳ３８０は、ユーザーインターフェース２１０からの入力を認識したり、ディスプレィ制御装置２０８への出力を送ったりするような、基本的なタスクを行うことが出来る。
【００６１】
コンテンツソース３１２は、多様なゲームデータ及びオブジェクトデータを有し、ゲーム定義モジュール２６０，オブジェクト情報モジュール２６２，パッチゲーム定義モジュール２６４、及びパッチオブジェクト情報モジュール２６６を有している。コンテンツソース３１２は、ゲームデータを、地面ジェネレータ３５０からのゲームデータの要求を受けて、地面ジェネレータ３５０に送る。例えば、特定のタイルに関するゲームデータの要求を受け取ると、コンテンツソース３１２は、該特定のタイル（及び該タイルに関連した何らかのオブジェクトデータ）に対応したゲームデータ（及び／又はオブジェクトデータ）を地面ジェネレータに送る。
【００６２】
ゲーム定義モジュール２６０は、電子マップからゲームレベルを生成するのに使用するゲーム定義データを含む。例えば、ゲーム定義データは、目的、報酬及び他のゲームパラメータを含んでもよい。
【００６３】
オブジェクト情報モジュール２６２はオブジェクト情報を格納する。オブジェクト情報は、ゲーム環境内のオブジェクトに関するデータであり、該オブジェクトは、例えば、ユーザのゲームキャラクタ、ノンプレイヤーキャラクタ（「ＮＰＣ」）及び他のインタラクティブなゲーム素子（例えば、武器、道具、服、岩、ドアなど）である。オブジェクトは、タイル又はタイル内の位置と関連付けることができる。例えば、ゲームレベルエディタ１１２のユーザは、タイル内の位置又は電子マップを設計した際のマクロの例に、道具を加えるようにしてもよい。この情報は、サーバー１２０が電子マップをクライアント装置１４０に送る際に、データオブジェクト内に含まれる。例えば、各オブジェクトは、オブジェクト識別子と関連付けられていてもよく、データオブジェクトは、地面ジェネレータ３５０が、データオブジェクト及びコンテンツソース３１２からのデータから電子マップを再構築することができるように、電子マップ内に含まれた各オブジェクトのオブジェクト識別子を含んでいてもよい。
【００６４】
パッチは、ソフトウェアモジュール又はデータに対するアップデート又は追加であり、通常は、それらがメモリにロードされた後に、ソフトウェアモジュール又はデータに適用される。例えば、パッチは、ソフトウェアモジュール内の一つ以上のバグに対応するため、またソフトウェアモジュールに新たなコンテンツを加えるために、クライアント装置１４０により、該ソフトウェアモジュールのリリース及びダウンロードの数週間後に、ソフトウェアモジュールに適用するようにしてもよい。特別の実施形態として、コンテンツソース３１２へのパッチは、新たな目的又は、帽子などの新たなオブジェクトのような、新しいゲームデータ又はオブジェクトデータを加えるものでもよい。
【００６５】
パッチゲーム定義モジュール２６４及びパッチオブジェクト情報モジュール２６６は、ゲームデータ及びオブジェクトデータにそれぞれ関与するパッチ情報を組み込む。例えば、クライアント装置１４０は、サーバー１２０又はコンテンツクリエーター１１０によって供給されるパッチなど、ネットワーク１４４上でパッチをダウンロードするようにしてもよい。クライアント装置１４０は、パッチをコンテンツソース３１２に送ってもよい。パッチゲーム定義モジュール２６４はパッチ内に含まれる、新しい目的などのゲームデータを、ゲーム定義モジュール２６０に組み込み、パッチオブジェクト情報モジュール２６６は、該パッチに含まれた、新しいオブジェクトなどのオブジェクトデータを、オブジェクト情報モジュール２６２に組み込む。
【００６６】
図４Ａは、実施形態に基づいて、図１のクライアント装置のメモリ内のソフトウェアモジュールで使用されるレベルデータのブロック図である。レベルデータ３２２は、電子マップを含んだレベルを表し、マクロの識別子及びマクロの配置など、電子マップを記述する電子マップデータ３４２を含む。レベルデータ３２２は、ゲームプレイパラメータなどの他の情報も含んでもよい。実施形態では、レベルデータ３２２は、サーバー１２０によってクライアント装置１４０に送られたデータオブジェクトである。レベルデータ３２２は、電子マップデータ３２４が、各マクロのインスタンスを含んだ、電子マップに横たわる全ての構造を表すように、電子マップを記述する図又は他のデータ構造を含む。
【００６７】
電子マップデータ３２４は、各タイルのような位置で分割されていてもよい。電子マップデータ３２４内の各位置は、マクロ識別子、マクロ配置及びゲームプレイパラメータと関連している。位置と関連したマクロ識別子は、電子マップ内に含まれたマクロを示す。マクロ配置は、該位置内のマクロのインスタンスの位置を示す。ゲームプレイパラメータのセットは、実施形態によるが、多様なオブジェクト、キャラクタ及び、該位置と関連する他のゲームの特徴を含んでもよい。ゲームプレイパラメータのセットは、更に、各オブジェクトやキャラクタがタイル内のどこに配置されるかを特定する情報を含んでいてもよい。他の実施形態では、ゲームプレイパラメータのセットは、一つ以上のゲームプレイ目的に関するデータのような、追加的な又は異なるデータを含んでいてもよい。
【００６８】
電子マップデータ３２４は、マクロの優先順位などのマクロ規則を追加的に含んでいる。
【００６９】
図４Ｂは、実施形態による、図１のクライアント装置のメモリのソフトウェアモジュールで使用されるマクロデータのブロック図である。特に、図４Ｂでは、一つの実施形態では、マクロ定義データ２６０を示す。マクロ定義データ２６０は、各マクロについてのマクロ識別子データを含む。各マクロは、前述した高さマップを含んだ、テクスチャのセットと関連している。例えば、テクスチャＡは、生物群系テクスチャであってもよく、テクスチャＢは、アルファレイヤ(an alphalayer)であってもよく、テクスチャＣは、詳細レイヤ(a detali layer)であってもよい。
【００７０】
図５は、実施形態に基づく電子マップ５００を示す図である。電子マップ５００は、タイル５１０Ａ、タイル５１０Ｂを含む、タイル５１０を含む。タイル５１０は、実施形態に応じて異なる形でアレンジされてもよい。例えば、タイル５１０は、格子状のパターン又は地理的な場所の形状を近似するものであってもよい。タイル５１０の特別な配列は、現在の構成によってもいいし、コンテンツクリエーター１１０のユーザによってセットされてもよい。
【００７１】
図６は、実施形態に基づく、図５の電子マップの電子マップタイル５１０Ａでの、マクロを示す図である。電子マップタイル５１０Ａは、マクロインスタンス６１０Ａ、マクロインスタンス６１０Ｂ、マクロインスタンス６２５を含んでいる。マクロインスタンス６２５は、草原のマクロであり、草の生物群系を含んでいる。マクロ６１０Ａ及び６１０Ｂは、山のマクロ６１０の二つの異なるインスタンスであり、マクロ６１０Ｂは、マクロ６１０Ａを大きさ的に縮小して、異なる場所に変更したものである。電子マップは、山のマクロ６１０は、草原のマクロに先行するという、規則を含んでいてもよく、その場合、山のマクロのインスタンスは、草原のマクロ上に押し出される。電子マップは、他のマクロがある場所では、草原の生物群系は終了するといった規則を追加的に含んでいてもよい。山のマクロ６１０のインスタンスは、領域６１５で重なっている。山のマクロ６１０のインスタンスは、上述した混合パラメータに基づいて、領域６１５で共に混合される。コンテンツクリエーター１１０は、アルファマップ６２０をマクロインスタンス６１０Ｂに加えるように、マクロを編集してテクスチャを加えてもよい。実施形態によるが、マクロインスタンスは、タイル５１０の境界と重なってもいいし、重ならなくてもよい。
【００７２】
図７は、実施形態に基づいて、ここで述べた技術を実行するための過程を示すフローチャートである。コンテンツクリエーター１１０のような演算装置は、ステップ７０２で、マップ特性を示したマクロを格納する。該マクロは、高さマップを含んだテクスチャセットを含んでいる。
【００７３】
演算装置は、ステップ７０４で、電子マップ内にマクロのインスタンスを配置する。ここで、マクロのインスタンスは、マクロのテクスチャセットに対応するマクロのインスタンスのテクスチャセットに基づいて、電子マップ内に視覚的に表示される。
【００７４】
演算装置は、ステップ７０６で、マクロのインスタンスのテクスチャセット内のテクスチャを編集する。
【００７５】
演算装置は、ステップ７０８で、テクスチャへの編集に基づいてマクロのインスタンスの視覚的表現をアップデートする。
【００７６】
一つ以上の実施形態では、演算装置は、マクロのインスタンスを変換する。ここで、変換は、マクロのインスタンスの、大きさの変更、移転、回転のうちの少なくとも一つである。
【００７７】
一つ以上の実施形態では、電子マップは、更に、マクロのインスタンス間の相互作用を規定する規則のセットを有する。演算装置は、マクロのインスタンスと第２のマクロのインスタンスの重なりを決定し、該マクロのインスタンスと第２のマクロのインスタンスを規則のセットに基づいて混合する。
【００７８】
一つの実施形態では、マクロのインスタンスと第2のマクロのインスタンスの混合は更に、混合パラメータのセットに基づいている。
【００７９】
一つ以上の実施形態では、演算装置は電子マップをマクロのインスタンスを壊して電子マップのベース層とすることで圧縮し、該圧縮された電子マップを第２の演算装置に送る。
【００８０】
一つ以上の実施形態では、テクスチャに対する編集によるマクロのインスタンスの視覚的な表現のアップデートは、テクスチャのセット内の複数のテクスチャを再サンプリングすることを含んでいる。
【００８１】
一つ以上の実施形態では、演算装置は他のマクロのインスタンスを電子マップ内に配置する。
【００８２】
上記した実施形態は、ゲームシステムを参照して主に述べたが、実施形態は、地図アプリケーションや配車アプリケーションなど、エンジニアリングソフトウェア、ナビーションソフトウェア、教育ソフトウェアなど、他の応用にも適用することができる。また、実施形態は、研究アプリケーションにも適用することができる。
【００８３】
特定の実施形態及び適用例が示され、述べられたが、発明はここで述べられた正確な構造及び構成に限られるものでは無く、当業者にとって自明な多様な変形、変更、変化が、ここでの開示の範囲及び精神から離れない限り、ここで述べられた方法及び装置の配置、運転及び詳細について可能であることを理解すべきである。
【００８４】
なお、上で述べた実施の形態の説明は、下記の発明を、発明の属する分野における通常の知識を有する者がその実施をすることができるように記載したものである。
【００８５】
[１]  演算装置に、マップ特性を示したマクロを格納し、該マクロは高さマップを含んだテクスチャセットを有し、
前記演算装置により、電子マップ内に前記マクロのインスタンスを配置する、ここで、前記マクロのインスタンスは、該マクロのテクスチャセットに対応する該マクロのインスタンスのテクスチャセットに基づいて、前記電子マップ内に視覚的に表示され、
前記演算装置により、前記マクロのインスタンスのテクスチャセット内のテクスチャを編集し、そして、
前記演算装置により、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートする、
ことから構成される方法。
【００８６】
[２]  [１]記載の方法において、該方法は更に、前記演算装置により、マクロのインスタンスを変換する、該変換は、マクロのインスタンスの、大きさの変更、移転、回転のうちの少なくとも一つを含むことを特徴とする。
【００８７】
[３]  [１]記載の方法において、前記電子マップは更に、マクロのインスタンス間の相互作用を規定する規則のセットを有し、
前記方法は更に、前記演算装置により、マクロのインスタンスと第２のマクロのインスタンスの重なりを決定し、
前記演算装置により、前記マクロのインスタンスと第２のマクロのインスタンスを前記規則のセットに基づいて混合する、
ことを特徴とする。
【００８８】
[４]  [３]記載の方法において、前記演算装置による、前記マクロのインスタンスと第2のマクロのインスタンスの混合は更に、混合パラメータのセットに基づいていることを特徴とする。
【００８９】
[５]  [１]記載の方法において、該方法は更に、前記演算装置により、マクロのテクスチャのセットを編集し、
該編集を、マクロのインスタンスのテクスチャのセットに伝える、ことを特徴とする。
【００９０】
[６]  [１]の方法において、該方法は更に、
前記演算装置により、前記電子マップを、マクロのインスタンスを壊して電子マップのベース層に圧縮し、
該圧縮された電子マップを、前記演算装置によって、第２の演算装置に送る、ことを特徴とする。
【００９１】
[７]  [１]記載の方法において、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートすることは、前記テクスチャのセット内の複数のテクスチャを再サンプリングすることを含んでいる、ことを特徴とする。
【００９２】
[８]  [１]記載の方法において、該方法は、更に、前記演算装置により、マクロの他のインスタンスを前記電子マップ内に配置する、ことを特徴とする。
【００９３】
[９]  一つ以上の処理装置によって処理が実行可能なコンピュータプログラム指示を格納するコンピュータ可読記録媒体であって、前記処理は、
演算装置により、マップ特性を示したマクロを格納し、該マクロは高さマップを含んだテクスチャセットを有し、
前記演算装置により、電子マップ内に前記マクロのインスタンスを配置する、ここで、前記マクロのインスタンスは、該マクロのテクスチャセットに対応する該マクロのインスタンスのテクスチャセットに基づいて、前記電子マップ内に視覚的に表示され、
前記演算装置により、前記マクロのインスタンスのテクスチャセット内のテクスチャを編集し、そして、
前記演算装置により、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートする、ことを特徴とする。
【００９４】
[１０]  [９]記載のコンピュータ可読記録媒体であって、前記処理は更に、前記演算装置により、マクロのインスタンスを変換する、該変換は、マクロのインスタンスの、大きさの変更、移転、回転のうちの少なくとも一つを含むことを特徴とする。
【００９５】
[１１]  [９]記載のコンピュータ可読記録媒体であって、
前記電子マップは更に、マクロのインスタンス間の相互作用を規定する規則のセットを有し、
前記方法は更に、
前記演算装置により、マクロのインスタンスと第２のマクロのインスタンスの重なりを決定し、
前記演算装置により、前記マクロのインスタンスと第２のマクロのインスタンスを前記規則のセットに基づいて混合する、ことを特徴とする。
【００９６】
[１２]  [１１]記載のコンピュータ可読記録媒体であって、前記演算装置による、前記マクロのインスタンスと第2のマクロのインスタンスの混合は更に、混合パラメータのセットに基づいていることを特徴とする。
【００９７】
[１３]  [９]記載のコンピュータ可読記録媒体であって、前記処理は、更に、
前記演算装置により、マクロのテクスチャのセットを編集し、
該編集を、マクロのインスタンスのテクスチャのセットに伝える、ことを特徴とする。
【００９８】
[１４]  [９]記載のコンピュータ可読記録媒体であって、前記処理は、更に、
前記演算装置により、前記電子マップを、マクロのインスタンスを壊して電子マップのベース層に圧縮し、
該圧縮された電子マップを、前記演算装置によって、第２の演算装置に送る、ことを特徴とする。
【００９９】
[１５]  [９]記載のコンピュータ可読記録媒体であって、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートすることは、前記テクスチャのセット内の複数のテクスチャを再サンプリングすることを含んでいる、ことを特徴とする。
【０１００】
[１６]  [９]記載のコンピュータ可読記録媒体であって、前記処理は、更に、前記演算装置により、他のマクロのインスタンスを前記電子マップ内に配置する、ことを特徴とする。
【０１０１】
[１７]  一つ以上の処理装置及び、
前記一つ以上の処理装置によって処理が実行可能なコンピュータプログラム指示を格納するコンピュータ可読記録媒体を有するシステムであって、
前記処理は、
演算装置により、マップ特性を示したマクロを格納し、該マクロは高さマップを含んだテクスチャセットを有し、
前記演算装置により、電子マップ内に前記マクロのインスタンスを配置する、ここで、前記マクロのインスタンスは、該マクロのテクスチャセットに対応する該マクロのインスタンスのテクスチャセットに基づいて、前記電子マップ内に視覚的に表示され、
前記演算装置により、前記マクロのインスタンスのテクスチャセット内のテクスチャを編集し、そして、
前記演算装置により、前記テクスチャへの編集に基づいて、前記マクロのインスタンスの視覚的表現をアップデートする、ことを特徴とする。
【０１０２】
[１８]  [１７]記載のシステムであって、前記処理は更に、前記演算装置により、マクロのインスタンスを変換する、該変換は、マクロのインスタンスの、大きさの変更、移転、回転のうちの少なくとも一つを含むことを特徴とする。
【０１０３】
[１９]  [１７]記載のシステムであって、前記電子マップは更に、マクロのインスタンス間の相互作用を規定する規則のセットを有し、
前記方法は更に、
前記演算装置により、マクロのインスタンスと第２のマクロのインスタンスの重なりを決定し、
前記演算装置により、前記マクロのインスタンスと第２のマクロのインスタンスを前記規則のセットに基づいて混合する、ことを特徴とする。
【０１０４】
[２０]  [１７]記載のシステムであって、前記演算装置による、前記マクロのインスタンスと第２のマクロのインスタンスの混合は更に、混合パラメータのセットに基づいていることを特徴とする。 
【図１】
0006929418.tif 000002
【図２】
0006929418.tif 000003
【図３】
0006929418.tif 000004
【図４Ａ】
0006929418.tif 000005
【図４Ｂ】
0006929418.tif 000006
【図５】
0006929418.tif 000007
【図６】
0006929418.tif 000008
【図７】
0006929418.tif 000009