(57)【要約】      （修正有）【課題】地面の六角形の断片化に関わり、特に六角形の地面の断片を用いて地図を組み立てる方法を提供する。【解決手段】方法は、地面の位置を含んだ地面データと対応する、該位置に配置すべき三次元トポロジーの六角形地面タイルの六角形地面タイル識別子を演算装置で受け取る。六角形地面タイルに対応する六角形地面タイル定義データは、隣接する六角形地面タイルに果たせられる制約条件を含んでおり、それにより六角形地面タイルを隣接して配置することができる。地面の表示は、地面データ内で示された位置に六角形地面タイルを、制約条件に従う形で互いに六角形地面タイルの一つ以上の面を隣接させる形で、インスタンス化することで生成される。【選択図】図７
2020155110.tif 000002
【特許請求の範囲】
【請求項１】
演算装置で地面の位置を含んだ地面データと、対応する、該位置に配置すべき三次元トポロジーの六角形地面タイルの六角形地面タイル識別子を受け取り、
前記地面データに含まれる、六角形地面タイルに対応する六角形地面タイル定義データを引き出し、前記六角形地面タイルのそれぞれについての六角形地面タイル定義データは、少なくとも該六角形地面タイルに隣接して配置するに適した隣接六角形地面タイルに関する制約条件を含んでおり、
前記地面データに示された位置に、六角形地面タイルの一つ以上の面を、六角形地面タイルのそれぞれに関連する制約条件に従って互いに隣接させる形で、六角形地面タイルをインスタンス化することで、地面の表現を生成する、
ことから構成される方法。
【請求項２】
請求項１記載の方法において、前記六角形地面タイル定義データは、更に複数の照明法を含んでおり、前記照明法のそれぞれは、異なる照明条件で、六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されていることを特徴とする。
【請求項３】
請求項２記載の方法において、前記六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいることを特徴とする。
【請求項４】
請求項３記載の方法において、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいることを特徴とする。
【請求項５】
請求項１記載の方法において、該方法は更に、前記演算装置が、一つ以上の六角形地面タイルの前記制約条件に従うことを決定することを含む。
【請求項６】
請求項１の方法において、前記地面データは、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいることを特徴とする。
【請求項７】
請求項１記載の方法において、前記地面データは、更に、前記六角形地面タイルのそれぞれの方向を含んでいることを特徴とする。
【請求項８】
請求項６記載の方法において、前記地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいることを特徴とする。
【請求項９】
請求項１記載の方法において、前記六角形地面タイル定義データは、読み出し専用記憶媒体に格納されたオリジナルな六角形地面タイル定義データ及び、パッチ又は拡張パックの形で他の演算装置から受け取った追加的な六角形地面タイル定義データを有していることを特徴とする。
【請求項１０】
請求項１記載の方法において、前記地面データは、少なくとも一つの六角形地面タイルに隣接するウエッジの配置について示している、ことを特徴とする。
【請求項１１】
請求項１記載の方法において、該方法は更に、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定する、ことを有する。
【請求項１２】
処理装置によって処理が実行可能なコンピュータプログラム指示を格納するコンピュータ可読記録媒体であって、前記処理は、
演算装置で地面の位置を含んだ地面データと、対応する、該位置に配置すべき三次元トポロジーの六角形地面タイルの六角形地面タイル識別子を受け取ること、
前記地面データに含まれる、六角形地面タイルに対応する六角形地面タイル定義データを引き出すこと、前記六角形地面タイルのそれぞれについての六角形地面タイル定義データは、少なくとも該六角形地面タイルに隣接して配置するに適した隣接六角形地面タイルに関する制約条件を含んでおり、
前記地面データに示された位置に、六角形地面タイルの一つ以上の面を、六角形地面タイルのそれぞれに関連する制約条件に従って互いに隣接させる形で、六角形地面タイルをインスタンス化することで、地面の表現を生成すること、
から構成されることを特徴とする。
【請求項１３】
請求項１２記載のコンピュータ可読記録媒体であって、前記六角形地面タイル定義データは、更に複数の照明法を含んでおり、前記照明法のそれぞれは、異なる照明条件で、六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されていることを特徴とする。
【請求項１４】
請求項１３記載のコンピュータ可読記録媒体であって、前記六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいることを特徴とする。
【請求項１５】
請求項１４記載のコンピュータ可読記録媒体であって、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいることを特徴とする。
【請求項１６】
請求項１２記載のコンピュータ可読記録媒体であって、前記処理は更に、前記演算装置が、一つ以上の六角形地面タイルの前記制約条件に従うことを決定することを含むことを特徴とする。
【請求項１７】
請求項１２記載のコンピュータ可読記録媒体であって、前記地面データは、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいることを特徴とする。
【請求項１８】
請求項１２記載のコンピュータ可読記録媒体であって、前記地面データは、更に、前記六角形地面タイルのそれぞれの方向を含んでいることを特徴とする。
【請求項１９】
請求項１７記載のコンピュータ可読記録媒体であって、前記地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいることを特徴とする。
【請求項２０】
請求項１２記載のコンピュータ可読記録媒体であって、前記処理は更に、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定することを含むことを特徴とする。 
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、地面の六角形の断片化に関わり、特に六角形の地面の断片を用いて地図を組み立てることに関する。
【０００２】
たくさんのビデオゲームが、ビデオゲームが行われるゲームボード、マップなど（一般的に「地面」と称する）を含んでいる。例えば、ビデオゲームは、多様なゲーム素子が配置され、それらがビデオゲームの中で移動させられるボードを含んでいることがある。ビデオゲームは、しばしば、アップロード、伝達、ダウンロードまたその他の用途において、多くの時間と演算リソースを要する大量のソフトウェア及びデータを持っている。地面は、しばしばこのソフトウェア及びデータの最も大きなセグメントの一つである。地面を用いた、アップロード、伝達、ダウンロードまたその他のもの自体、典型的に多くの時間及び演算リソースを消費するものである。更に、地面は、通常、変わることは無く、またしばしば繰り返されるので、そうした地面を含んだビデオゲームのプレイヤは該ビデオゲームの興味を失ってしまうようなこともあり得る。
【発明の概要】
【０００３】
実施例は、地面の六角形の断片化に関する。クライアント装置は、地面の位置及び、該位置に配置すべき、三次元トポロジーの六角形地面タイルの、対応する六角形地面タイル識別子を受け取る。クライアント装置は、六角形地面タイルに対応する六角形地面タイル定義データを引き出す。六角形地面タイル定義データは、少なくとも隣接する六角形地面タイルとの制約条件を含んでいる。クライアント装置は、制約条件に従って一つ以上の六角形地面タイルの面を互いに隣接させる形で、地面データに示された位置に六角形地面タイルをインスタンス化することで地面の表現を生成する。
【０００４】
一つ以上の実施例で、六角形地面タイル定義データは、更に複数の照明法を含んでいる。照明法のそれぞれは、異なる照明条件で、六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されている。
【０００５】
一つ以上の実施例では、六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいる。
【０００６】
一つ以上の実施例では、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいる。
【０００７】
一つ以上の実施例では、処理は、更に、クライアント装置１４０が、一つ以上の六角形地面タイルの制約条件に従うことを決定することを含む。
【０００８】
一つ以上の実施例では、地面データは、コンテンツクリエータ又はサーバー等の、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいる。
【０００９】
一つ以上の実施例では、地面データは、更に、六角形地面タイルのそれぞれの方向を含んでいる。
【００１０】
一つ以上の実施例では、地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいる。
【００１１】
一つ以上の実施例では、六角形地面タイル定義データは、読み出し専用記憶媒体に格納されたオリジナルな六角形地面タイル定義データ及び、パッチ又は拡張パックの形で他の演算装置から受け取った追加的な六角形地面タイル定義データを有している。
【００１２】
一つ以上の実施例では、地面データは、少なくとも一つの六角形地面タイルに隣接するウエッジの配置について示している。
【００１３】
一つ以上の実施例では、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、クライアント装置１４０は自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定する。
【図面の簡単な説明】
【００１４】
【図１】図１は、実施例に基づく、システムのブロック図である。
【図２】図２は、実施例に基づく、図１のクライアント装置のブロック図。
【図３】図３は、実施例に基づく、図１のクライアント装置のメモリ内のソフトウェアモジュールのブロック図。
【図４Ａ】図４Ａは、 実施例に基づく、図１のクライアント装置のメモリ内の、ソフトウェアモジュールによって使用されるレベルデータのブロック図。
【図４Ｂ】図４Ｂは、実施例に基づく、図１のクライアント装置メモリ内の、ソフトウェアモジュールによって使用される六角形地面タイルデータのブロック図。
【図５】図５は、実施例に基づく、六角形の地面の模式図。
【図６Ａ】図６Ａは、実施例に基づく、六角形地面タイルの地面高さ制約条件を示す模式図。
【図６Ｂ】図６Ｂは、実施例に基づく、六角形地面タイルの模式図。
【図７】図７は、実施例に基づく、ここで述べた技術を実行するためのプロセスを示すフローチャート。
【００１５】
図面は、例示目的で本発明を開示する多様な実施例を描いている。当業者であるならば、そこに示された構造や方法の互換的な実施例を、ここ述べられた開示の、利益や原則から離れること無く、使用することが出来ることを、以下の記述から容易に思いつくことが出来るものである。
【発明を実施するための形態】
【００１６】
以下の実施例の記述の中で、より徹底的な理解のために多くの詳細な説明がなされている。しかし、実施例は、一つ以上のこれらの特定の詳細に関わりなく、実行されてもよい。他の例では、周知の事項は、説明の複雑化を避けるために、その詳細を述べることはしていない。
【００１７】
実施例は、地面の六角形の断片化に関する。地面上の位置を含み、該位置に配置される三次元トポロジーの六角形地面タイルの識別子に対応する地面データは、演算装置で受け取られる。六角形地面タイルに対応する六角形地面タイル定義データは、隣接する六角形地面タイルに与えられる制約条件を含むので、それは該六角形地面タイルに隣接して配置することが出来る。地面の表示は、制約条件に従って一つ以上の六角形の地面を互いに隣接する形で向き合わせる形で、地面データに示された位置に六角形地面タイルをインスタンス化することで生成される。
【００１８】
他の利点の中では、実施例では、地面データを少ない待ち時間で効率よく伝送することが出来る。更に、実施例では、柔軟性のある地面設計及び実施が可能であり、同時に地面全体でより大きなカスタマイズや変形を可能とするものである。演算装置のパフォーマンス及びユーザ体験なども向上することができる。地面の六角形の断片化は、また隣接するタイル間の境界を少なくすることが出来、それがより有機的で没入感のある地面となって、ユーザ体験を更に向上させるものである。
【００１９】
実施例は図面を参照して説明するが、類似の参照番号は、機能的に同一又は類似した素子を示す。図面において、各参照番号の最も左の桁又は左の複数の桁は、該参照番号が最初に使用された図に対応している。
【００２０】
図１は、実施例に基づいた、ここで述べる技術を実行することの出来るシステム１００のブロック図である。システム１００は、コンテンツクリエータ１１０、サーバー１２０、クライアント装置１４０及びネットワーク１４４を含む。他の実施例では、システム１００は、追加的なコンテンツクリエータ１１０やサーバー１２０を含むことが出来、又単一のクライアント装置１４０となる場合もある。
【００２１】
コンテンツクリエータ１１０、サーバー１２０及びクライアント装置１４０は、ネットワーク１４４を介して通信するように構成されている。ネットワーク１４４は、有線及び／又は無線通信システムを用いた、ローカルエリア及び／又は広域ネットワークのあらゆる組み合わせを含むことが出来る。一つの実施例では、ネットワーク１４４は通常の通信技術及び／又はプロトコルを使用する。例えば、ネットワーク１４４は、イーサネット、８０２．１１、ワイマックス（worldwide interoperability for microwave access (WiMAX)、３Ｇ、４Ｇ、符号分割多元接続（ＣＤＭＡ）、デジタル加入者線（ＤＳＬ）などの技術を用いた通信リンクを含むものである。ネットワーク１４４を介した通信に使用されるネットワークプロトコルの例には、マルチプロトコル ラベル スイッチング（ＭＰＬＳ）、トランスミッション コントロール プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ハイパーテキスト・トランスファー・プロトコル（ＨＴＴＰ）、シンプル メール トランスファー プロトコル（ＳＭＴＰ）及びファイル・トランスファー・プロトコル（ＦＴＰ）を含む。ネットワーク１１４上で交換されるデータは、ハイパーテキスト マークアップ ランゲージ（ＨＴＭＬ）又はエクステンシブル マークアップ ランゲージ（ＸＭＬ）のような適切なフォーマットを使用して表示することが出来る。ある実施例では、ネットワーク１４４のいくつか又は全ての通信リンクは、何らかの適切な技術又はそれらの組み合わせた技術を用いて暗号化することが出来る。
【００２２】
コンテンツクリエータ１１０は、ゲーミングシステム、パーソナルコンピュータ、モバイルフォン、タブレットなどのコンピュータ装置であり、ゲームレベルエディタ１１２を実行することが出来る。ゲームレベルエディタ１１２は一つ以上のゲームについての地面を設計するソフトウェアアプリケーションである。地面は特別に配列された、一つ以上の三次元（３Ｄ）の六角形地面タイル（六角形の升）である。六角形地面タイルは、特別な配列で位置決めされると、特定の三次元トポロジーを構成する。六角形地面タイル及び地面は、図４を参照して、以下により詳細に述べられる。
【００２３】
コンテンツクリエータ１１０のユーザは、ゲームレベルエディタ１１２を用いて地面を生成する。例えば、ユーザはゲームレベルエディタ１１２を用いて、多様な六角形地面タイルをつなぎ合わせて特別な地面を形成する所望の配列とする。ユーザは、ゲームレベルエディタ１１２を用いて、六角形地面タイルをつなぎ合わせる一方で、六角形地面タイルを回転させ及び／又は移動させ、複写するなどして所望の配列とすることもある。ゲームレベルエディタ１１２は、各六角形地面タイルに関連した一つ以上の制約条件をモニターして、少なくとも一つの隣接する六角形地面タイルの少なくとも一つの制約条件に反する場合には、該位置に六角形地面タイルを配置することを止めるようにすることができる。ゲームレベルエディタ１１２は、コンテンツクリエータ１１０のディスプレィに表示されたゲームレベルエディタ１１２のユーザーインターフェースなどで、該配置止め及び／又は少なくとも一つの制約条件をユーザに示すことが出来る。ユーザはゲームレベルエディタ１１２を使用して、地面上の様々な位置に存在する一つ以上の目的や、地面上の様々な位置にあるべきオブジェクトなど、地面を含むゲームの他の側面を規定するようにしてもよい。
【００２４】
一つの実施例では、ユーザはゲームレベルエディタ１１２を用いて、六角形地面タイルの配置内におけるギャップのように、地面上の一つ以上を空のまま置いておくこともできる。こうした実施例では、ゲームレベルエディタ１１２、サーバー１２０又はクライアント装置１４０は六角形地面タイルのマッチング技術を用いて、それぞれの空の地面位置を適当な六角形地面タイルで自動的に埋めるようにする。こうした状況では、六角形地面タイルは、各隣接する六角形地面タイルの制約条件に従っていれば、適切なものである。更に一実施例では、ゲームレベルエディタ１１２は、六角形地面タイル上の適当な位置にウエッジを配置している。ウエッジについては、図５を参照して以下により詳細に述べる。ゲームレベルエディタ１１２は、あつらえた地面をセーブし、及び／又はそれをサーバー１２０及び／又はクライアント装置１４０に送ってもよい。ゲームレベルエディタ１１２は、あつらえた地面が、一つ以上の隣接する六角形地面タイルの一つ以上の制約条件に違反する六角形地面タイルを含んでいる場合には、該あつらえた地面のセーブ及び／又は送出を止めるようにしてもよい。
【００２５】
サーバー１２０はプロセッサ１２８及びバス１２７で接続されたメモリ１３０を含んだ演算装置である。メモリ１３０は、六角形地面タイルデータストア１２２、ゲームレベルジェネレータ１２４及びデータオブジェクトジェネレータ１２６を含む。サーバー１２０はコンテンツクリエータ１１０とクライアント装置１４０間でメッセージを受け取りまた送るようにしてもよい。更に、サーバー１２０は、メモリ内に、コンテンツクリエータ１１０からサーバー１２０で受け取った地面などの、一つ以上の地面を格納してもよく、一つ以上の地面をクライアント装置１４０に送ってもよい。
【００２６】
プロセッサ１２８は、ここで述べた技術のいくつか又は全てのパフォーマンスなどの、取るべきアクションを特定する指令を、順次又はその他の方法で実行することが出来る。バス１２７は、プロセッサ１２８とメモリ１３０を接続し、お互いの間のデータ転送を可能としている。実施例では、サーバー１２０は、演算装置に、当業者に知られた公知の追加的な素子を含ませてもよい。
【００２７】
六角形地面タイルデータストア１２２は六角形地面タイル及び地面を格納する。例えば、六角形地面タイルデータストア１２２は、図４を参照して以下に述べるように、六角形地面タイルのそれぞれの配列や各六角形地面タイルのテンプレートを格納するようにしてもよい。また六角形地面タイルデータストア１２２は、コンテンツクリエータ１１０から受け取った、又はゲームのクリエータ又はサーバー１２０の管理者が作った地面を格納するようにしてもよい。六角形地面タイルデータストア１２２は、六角形地面タイル又は地面についてのメタデータを格納するようにしてもよい。それらは、六角形地面タイル識別子、地面識別子、六角形地面タイル又は地面のクリエータの識別子、六角形地面タイル又は地面のサイズ（例えば、メガバイト（ＭＢ）などで測ったもの）などである。また六角形地面タイルデータストア１２２は、ゲーム目的、オブジェクトなど、六角形地面タイル又は地面に関連するが、六角形地面タイル又は地面の必要な部分では無い、情報を格納してもよい。
【００２８】
ゲームレベルジェネレータ１２４は、六角形地面タイル及び／又は地面を生成する。例えば、ゲームレベルジェネレータ１２４は、制約条件を考慮する六角形地面タイルマッチング技術を用いて地面を生成する。六角形地面タイルマッチング技術は、実施例によるが、地面のサイズ（例えば、配置又は六角形地面タイルの数）、地面のタイプ（例えば、「砂漠の夜」対「雨のジャングル」）、ゲーム目的（例えば、「１５の敵を打倒」）などの、多様な他の要素から構成してもよい。多様な他の要素は、ランダムに生成されてもよく、またゲームクリエータ又はサーバー１２０の管理者など、外部のソースからの入力として受け取ってもよい。
【００２９】
実施例では、ゲームレベルジェネレータ１２４は、新しい六角形地面タイルを生成してもよい。例えば、ゲームレベルジェネレータ１２４は、新しい六角形地面タイルをランダムに、又は外のソースから受け取った入力に基づいて、又は既存の六角形地面タイルによって適切に充填され得ない地面内のギャップを埋めるために、生成してもよい。ゲームレベルジェネレータ１２４は、例えば、グラフィック素子、オーディオ資源又はインタラクティブなゲーム要素などの、オブジェクトのセットの他、六角形地面タイルに関する一つ以上の制約条件を決定することで新しい六角形地面タイルを生成し、該六角形地面タイル内に含ませる。制約条件に基づいて、ゲームレベルジェネレータ１２４は六角形地面タイルの３Ｄトポロジーを生成し、オブジェクト及び六角形地面タイルの制約条件に基づいて、六角形地面タイル内の適当な位置に、オブジェクトのセット内の各オブジェクトを位置させる。例えば、一つの実施例では、「木」のオブジェクトは、六角形地面タイルの「森」の位置上に配置するが、六角形地面タイルの「滝」上には配置しない。
【００３０】
データオブジェクトジェネレータ１２６は、地面を送信するための、ＪＳＯＮドキュメント等のデータオブジェクトを生成する。地面はしばしば大量のデータを含み、データのアップロード、ダウンロードに際して大きな遅延時間をもたらすほどのものである。ここで述べる技術は、データオブジェクトジェネレータ１２６に関連するものを含み、地面の送信に際してデータ量を削減することでこの遅延時間に対処している。
【００３１】
図４を参照して、以下に述べるように、各六角形地面タイルは、六角形地面タイル相互を区別する六角形地面タイル識別子に関連つけられている。データオブジェクトを生成する際に、データオブジェクトジェネレータ１２６は、データオブジェクトに、一つ以上の六角形地面タイル識別子を含んだ地面データを含める。各六角形地面タイル識別子は、該地面データで記述された地面の少なくとも一つの六角形地面タイルと対応している。地面データは、また、地面データが該地面の全体に横たわっている構造を示すような、互いについての位置を記述したグラフ又は他のデータ構造も含んでいる。更に、地面データは、六角形地面タイル識別子に対する位置のマッピングを含んでおり、地面は、地面内で特定の位置に各六角形地面タイルを正しく関連づけることで、地面データに基づいて適切に再構築されることとなる。
【００３２】
データオブジェクトジェネレータ１２６により生成されるデータオブジェクトは、上述したように、六角形地面タイル識別子、位置などを含むが、各六角形地面タイルの全てのデータでは無い。データオブジェクトそれ自体は、もし各六角形地面タイルの六角形地面タイルデータを含むとした場合のデータよりも遙かに小さい。データオブジェクトは従って、最大サイズの地面データの場合より、例えば、アップロード、伝達又はダウンロードなどで、効率的で低遅延時間に貢献するものであり、例えば、演算サイクル及びアクティブメモリなど、より少ない演算リソースの使用に繋がる。クライアント装置１４０は、データオブジェクトを受け取り、ローカルで格納された六角形地面タイルデータを使用して、該データオブジェクトにより表される地面を再構築する。
【００３３】
各クライアント装置１４０は、地面を使用するゲーム又は他のソフトウェアを含んだ演算装置である。クライアント装置１４０は、サーバー１２０からデータオブジェクトを受け取り、該データオブジェクトを使用して、例えばゲームなどで使用する地面を構築する。異なるクライアント装置１４０は、サーバー１２０から異なるデータオブジェクトを要求することが出来る。例えば、クライアント装置１４０Ａは、サーバー１２０から第１の地面を要求することが出来、クライアント装置１４０Ｂは、サーバー１２０から第２の地面を要求することが出来るなどであり、クライアント装置１４０Ｎは、サーバー１２０から第Ｎの地面を要求することができる。
【００３４】
サーバー１２０は、クライアント装置１４０によって要求された地面に対応するデータオブジェクトをクライアント装置１４０に送るようにしてもよい。例えば、クライアント装置１４０は、要求された第１の地面に対応する第１のデータオブジェクトを受け取るようにしてもよいことなどである。クライアント装置１４０は、各六角形地面タイルについて、対応するデータオブジェクトに基づいた地面を再構築する際に、地面を書き込むために使用する十分な六角形地面タイルデータを有する。クライアント装置１４０については、図２〜４を参照しつつ以下に、詳細を述べる。
【００３５】
図２は、実施例に基づいた、図１のクライアント装置１４０のブロック図である。実施例によれば、コンテンツクリエータ１１０及び／又はサーバー１２０は、ここで述べるクライアント装置１４０のハードウェア及び／又はソフトウェア素子のいくつか又は全てを有する演算装置であってもよい。クライアント装置１４０、コンテンツクリエータ１１０及び／又はサーバー１２０は、指令を実行することが出来る機械であり、それぞれはスタンドアロン又は接続された（例えば、ネットワーク化された）装置セットであってもよい。例えば、一つの実施例では、コンテンツクリエータ１１０は一つのクライアント装置１４０である。
【００３６】
クライアント装置１４０は、バス２１６で接続された、中央演算ユニット（「ＣＰＵ」）２０２、グラフィック処理ユニット（「ＧＰＵ」）２０４、主メモリ２０６、副メモリ２１４、ディスプレィ制御装置２０８、ユーザーインターフェース２１０、及びサウンドコントローラ２１２を有している。単一のクライアント装置１４０のみを示したが、他の実施例では、個別的にまたは協働して指令を実行してここで述べた方法論の一つ以上を実行するクライアント装置１４０の何らかの集合体を含むようにしてもよい。
【００３７】
主メモリ２０６は、ここで述べる一つ以上の方法論又は機能を具現化する機能（例えば、ソフトウェア）を格納する機械可読媒体である。例えば、主メモリ２０６は、ＣＰＵ２０２により実行されることで、ＣＰＵ２０２が、図７を参照して詳細が以下に述べられるプロセス７００を実行するように構成される指令を格納するようにしてもよい。指令は、また、ＣＰＵ２０２及び／又はＣＰＵ２０４内に、例えばキャッシュメモリ内に、該指令の実行中は部分的又は全部が駐留するようにしてもよい。
【００３８】
「機械可読媒体」とは、指令を格納することの出来る、単一の媒体又は複数の媒体を含んでいるものと取るべきである（例えば、集中又は分散データベース、又は関連したキャッシュ及びサーバー）。「機械可読媒体」は、また、装置により実行されるための指令を格納することの出来る何らかの媒体であり、ここで開示した一つ以上の方法論の何らかを装置に実行させるようにする何らかの媒体を含むものと捉えるべきである。「機械可読媒体」は、半導体メモリ、光学媒体、磁気媒体の形でのデータ貯蔵庫を含むものであるが、それに限定されるものではない。
【００３９】
副メモリ２１４は主メモリ２０６とは離れたメモリある。主メモリ２０６と同様に、副メモリ２１４は、ここで開示した一つ以上の方法論を具現化する指令（例えば、ソフトウェア）を格納する機械可読媒体である。例えば、主メモリ２０６は、クライアント装置１４０のハード装置であってもよく、副メモリ２１４は地面を使用するゲームのためのゲームディスクであってもよい。特別の例では、主メモリ２０６は、副メモリ２１４に格納された六角形地面タイルデータを使用するゲームシステム３００を格納していてもよい。主メモリ２０６及び副メモリ２１４は、以下に図３を参照して、より詳細に述べる。
【００４０】
ＣＰＵ２０２は、主メモリ２０６及び／又は副メモリ２１４に格納された指令を実行するように構成されている処理回路である。ＣＰＵ２０２は、汎用プロセッサ又は多様な命令セットアーキテクチャ（ＩＳＡｓ）の何らかを用いている埋め込みプロセッサとしてもよい。図２には、単一のＣＰＵを示すが、クライアント装置１４０は、マルチＣＰＵ２０２であってもよい。マルチプロセッサシステムでは、各ＣＰＵは、通常同じＩＳＡを実行するが、これに限るものではない。
【００４１】
ＧＰＵは、画像イメージを効率的に処理するために特別に設計された処理回路である。ＧＰＵ２０４は、ＣＰＵ２０２からの指令に基づき、表示すべきオブジェクトをレンダリングし、フレームバッファ（例えば、フレーム全体のピクセルデータを含んだもの）に書き込む。ＧＰＵ２０４は、グラフィックソフトウェアを実行して、グラフィック処理の一部又は全てを行う一つ以上のグラフィック処理装置を含むようにしてもよい。
【００４２】
ディスプレィ制御装置２０８は、ＧＰＵ２０４からの映像データを用いてビデオ信号を生成する回路である。例えば、ディスプレィ制御装置２０８は、ディスプレィ装置（例えば、液晶ディスプレィ（ＬＣＤ）及びプロジェクター）を駆動する。地面を含んでいるゲームなどは、ディスプレィ制御装置２０８を介して画像又はビデオシーケンスとして表示することが出来る。
【００４３】
サウンドコントローラ２１２は、クライアント装置１４０からの、及びクライアント装置１４０へのオーディオ信号の入出力を提供する回路である。地面の目的として、サウンドコントローラ２１２は、（例えば、特定の六角形地面タイル又は、複数の六角形地面タイルの一部で）地面のオブジェクトやアクションと協調してオーディオ信号を提供することができる。
【００４４】
ユーザーインターフェース２１０は、ユーザがクライアント装置１４０と関わることを可能とする、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせである。ユーザーインターフェース２１０は、英数字入力装置（例えば、キーボード）及びカーソル制御装置（例えば、マウス、トラックボール、ジョイスティック、モーションセンサー又は他の指示装置）を含むことができる。例えば、ユーザは、キーボード及びマウスを使用して、クライアント装置１４０によりレンダリングされた地面を含むゲーム環境内でキャラクタの行動を制御する。ゲーム環境は、ユーザのゲームキャラクタが動作する、地面のシミュレーションとレンダリングが含まれる。
【００４５】
クライアント装置１４０は、ここで述べた機能性を提供するためのコンピュータプロラムモジュールを実行する。ここで使用したように、「モジュール」という言葉は、特定の機能性を提供するために使用されるコンピュータプログラム指令及び／又は他のロジックに関するものである。そして、モジュールはハードウェア、ファームウェア及び／又はソフトウェア内で実行され得る。ある実施例では、実行可能なコンピュータプログラム指令からなるプログラムモジュールは、主メモリ２０６にロードされ、ＣＰＵ２０２又はＧＰＵ２０４により実行される。例えば、ここで述べる処理７００のプログラム指令は、主メモリ２０６及び／又は副メモリ２１４にロードされ、ＣＰＵ２０２及びＧＰＵ２０４により実行することができる。
【００４６】
図３は、実施例に基づいた、図１のクライアント装置１４０のメモリ内の、ソフトウェアモジュールのブロック図である。特に図３は、クライアント装置１４０の主メモリ２０６及び副メモリ２１４内のソフトウェアモジュールを示している。主メモリ２０６は、モジュールの中でも、ゲームシステム３００とオペレーティングシステム（「ＯＳ」）３８０を格納してもよい。副メモリ２１４は、モジュールの中でも、コンテンツソース３１２を格納してもよい。主メモリ２０６及び副メモリ２１４は、図３で示した以外の他のモジュールを含んでいてもよい。更に、他の実施例では、主メモリ２０６及び副メモリ２１４は、ここで他のメモリに格納されるように示されたソフトウェアモジュールやデータをそれぞれ格納してもよい。
【００４７】
ゲームシステム３００は、レベルマネージャー３２０、物理システム３３０，サウンドモジュール３４０，地面ジェネレータ３５０、アニメーションモジュール３６０及びグラフィックレンダリングモジュール３７０を含んでいる。これらのモジュールは集合的にゲームシステム３００の「ゲームエンジン」を形成する。
【００４８】
ゲームシステム３００は、処理３１２Ａから３１２Ｎ（集合的に「処理３１２」と称する）を実行して、地面を含んだゲーム環境を生成する。特に、ゲームシステム３００は、これらの処理３１２を実行して、地面を構築し、該地面の上に多様なオブジェクト（例えば、ユーザのゲームキャラクタ）を具現化し、オブジェクト間の相互作用をシミュレートする。処理３１２は、あるイベント（例えば、ゲーム内で生じる、ユーザの交流、時間切れ及びトリガー）に基づいた、多様なパラメータの変更（例えば、オブジェクトの状態やユーザのステータス）をもたらす演算処理に関わっている。
【００４９】
いくつかの処理３１２は、一つ以上のオブジェクト、六角形地面タイル又はゲーム環境内での六角形地面タイル内の位置、及び／又はオブジェクト、六角形地面タイル、又は六角形地面タイル内の位置に関連した一つ以上のアクションと関連している。処理の例としては、カタパルトでの岩の発射、キャラクタの走り、流体の流れ、矢の飛翔、ドアの開放などである。ある処理３１２は、比較的単純な応答（例えば、ドアの開放）であり、他の処理は物理システム３３０によるシミュレーションが必要になるかもしれない（例えば、接続された物体の動き）。処理３１２を実行する際には、ゲームシステム３００は、アプリケーションプログラムインターフェース（ＡＰＩｓ）を介してゲームエンジンの構成要素（例えば、物理システム３３０）と通信してもよい。少なくとも処理３１２の一つは、地面データ及び六角形地面タイルデータから地面を構築することに関与している。
【００５０】
レベルマネージャー３２０は、データオブジェクト、即ち、レベルデータ３２２をサーバー１２０から受け取り、主メモリ２０６内に該レベルデータ３２２を格納する。ゲームシステム３００の他のモジュールは、レベルマネージャー３２０から一つ以上のレベルを要求することが出来、要求を送ったゲームシステム３００のモジュールに、要求されたモジュールに対応するレベルデータ３２２を送ることで、レベルマネージャー３２０は、リクエストに応える。または、レベルマネージャー３２０は、レベルデータ３２２から地面テンプレートを構築してもよい。地面テンプレートは、六角形地面タイルデータを持たない地面である。例えば、地面テンプレートは、位置の図表であり、そこでは、図表内の各位置が六角形地面タイル識別子と関連している。例えば、地面テンプレート又は他の地面データ３２４は、地面ジェネレータ３５０からの地面データ３２４の要求に対応するように、地面ジェネレータ３５０に送られてもよい。地面データ３２４は、実施例によるが、何らかのレベルデータ３２２を含んでいてもよい。
【００５１】
地面ジェネレータ３５０は、地面データ３２４及び六角形地面タイルデータに基づいて完全な地面を生成する。地面ジェネレータ３５０は、地面データ２１４をレベルマネージャー３２０から受け取り、六角形地面タイルデータ及びオブジェクトデータを以下に詳細に述べるように、副メモリ２１４内のコンテンツソース３１２から受け取る。一つの実施例では、地面ジェネレータ３５０は、六角形地面タイルデータを用いて地面テンプレートを充足させる。例えば、地面テンプレート内の各位置については、地面ジェネレータ３５０は関連する六角形地面タイル識別子を用いて、該六角形地面タイル識別子によって明らかになった六角形地面タイルデータを引き出す。地面ジェネレータ３５０は、引き出された六角形地面タイルデータを用いて、該引き出された完全な六角形地面タイルデータを組み合わせて、地面テンプレートを、（正確な六角形地面タイル識別子よりはむしろ）完全な六角形地面タイルデータを持った完全な地面に変える形で、地面を構築する。
【００５２】
物理システム３３０は、ゲーム環境内のオブジェクトの力学をモデル化し、シミュレートする。ゲームシステム３００で処理３１２が開始された後に、物理システム３３０は、処理３１２に関連したオブジェクトにアクションがどのように影響するかをモデル化する。例えば、物理システムは、岩が丘を転がり落ちる時の岩をモデル化する。アクション及びオブジェクトによるが、他のオブジェクトやアクションが該アクション又はオブジェクトに関連するかもしれない。例えば、投げられた岩が、他のオブジェクトをひっくり返すかもしれない。これは、岩にオブジェクトが当たったところで、これが新しい処理のトリガーとなるかもしれない。ゲーム環境内でオブジェクトの力学をモデル化し、シミュレーションする時は、物理システム３３０は、地面情報（例えば、地面ジェネレータ３５０により生成された地面に関するデータ）を使用する。例えば、転がる岩の例に戻ると、物理システム３３０は、該岩が丘の坂のような地面内に位置していることを識別することで、岩が丘を転がり落ちなければならないことを決定するようにしてもよい。
【００５３】
アニメーションシステム３６０は、オブジェクト又はゲーム環境の運動学的なアニメーションを、ゲームシステム３００からの処理３１２に基づいて行うモジュールである。例えば、処理３１２が、ロボットアームが動いていることを示すと、アニメーションシステムはアームの運動学的な動作をアニメーションする。アニメーションシステム３６０は、特定のアニメーションタスクを実行するためのいくつかの特別なモジュールを含んでもよい。アニメーションシステム３６０は、オブジェクト又はゲーム環境の運動学的なアニメーションを行う際に、地面ジェネレータ３５０によって生成された地面に関する情報を、一要素として使用するようにしてもよい。
【００５４】
サウンドモジュール３４０は、ゲーム環境、六角形地面タイル又は一部の六角形地面タイル内で生じるアクションに対応した音を生成する。例えば、「川」のオブジェクトを含んだ六角形地面タイルの部分は、「流れる水」の音が対応するようにしてもよい。アニメーションシステム３６０からのアニメーションデータ又は地面ジェネレータ３５０からの地面情報を、サウンドモジュール３４０へ出力して、サウンドモジュール３４０が音を生成することを可能とするようにしてもよい。サウンドモジュール３４０は、音データをサウンドコントローラ２１２に送る。
【００５５】
グラフィックレンダリングモジュール３７０は、アニメーションシステム３６０及び地面ジェネレータ３５０からの画像をレンダリングし、ゲーム環境の映像を生成する。例えば、グラフィックレンダリングモジュール３７０は、アニメーションシステム３６０からシーンファイル及び地面ジェネレータ３５０から生成された地面を受け取る。グラフィックレンダリングモジュール３７０は、グラフィックデータをＧＰＵ２０４に送り、ディスプレィ制御装置２０８を介してディスプレィ（例えば、クライアント装置１４０のディスプレィ又はクライアント装置１４０に接続されたディスプレィ）上に画像をレンダリングする。
【００５６】
ＯＳ３８０は、コンピュータハードウェア及びソフトウェアリソースを管理する。特に、ＯＳ３８０は、プログラムとコンピュータハードウェア間の仲介者として動作する。例えば、ＯＳ３８０は、ユーザーインターフェース２１０からの入力を認識したり、ディスプレィ制御装置２０８への出力を送ったりするような、基本的なタスクを行うことが出来る。
【００５７】
コンテンツソース３１２は、多様な六角形地面タイルデータを有し、タイル定義モジュール２６０，オブジェクト情報モジュール２６２，パッチタイル定義モジュール２６４、及びパッチオブジェクト情報モジュール２６６を有している。コンテンツソース３１２は、六角形地面タイルデータを、地面ジェネレータ３５０からの六角形地面タイルデータの要求を受けて、地面ジェネレータ３５０に送る。例えば、特定の六角形地面タイル識別子に対応する六角形地面タイルデータの要求を受け取ると、コンテンツソース３１２は、該特定の六角形地面タイル識別子（及び／又は該六角形地面タイル識別子に関連した何らかのオブジェクト識別子）に対応した六角形地面タイルデータ（及び／又はオブジェクトデータ）を地面ジェネレータに送る。
【００５８】
タイル定義モジュール２６４は、各六角形地面タイルについての六角形地面タイル識別データ及び各六角形地面タイルの各配列を含む。図４を参照して以下に説明するように、各六角形地面タイルは、六角形地面タイルの多様な回転、六角形地面タイルの多様な照明条件などの、六角形地面タイルを使用する際の色々な方法である一つ以上の配列を持っている。タイル定義モジュール２６４は、各六角形地面タイルについて、完全な六角形地面タイルデータばかりか、この配列データを持っている。完全な六角形地面タイルデータは、六角形地面タイル識別子によって指定される六角形地面タイルに関する完全なデータセットである。例えば、完全な六角形地面タイルデータは、六角形地面タイルによって表される３Ｄトポロジーを示すデータ、六角形地面タイルの多様な特徴、多様な光の配列などを含んでいてもよい。六角形地面タイルの特徴は、六角形地面タイル内の特定の位置にあって、六角形地面タイル内に含まれている、画像素子であり、道路、森、川、丘等などである。
【００５９】
オブジェクト情報モジュール２６２は、オブジェクト情報を格納する。オブジェクト情報は、ユーザのゲームキャラクタ、ノンプレイヤキャラクタ（「ＮＰＣ」）及び他の相互的な素子（例えば、武器、道具、衣服、岩、ドアなど）など、ゲーム環境内のオブジェクトに関するデータである。オブジェクトは、六角形地面タイル又は六角形地面タイル内の位置と関連付けることができる。例えば、ゲームレベルエディタ１１２は、地面を設計する際に、六角形地面タイル内のある位置に道具を加えるようにしてもよい。この情報は、サーバー１２０が地面をクライアント装置１４０に送る際に、オブジェクトデータ内に含まれる。例えば、各オブジェクトは、オブジェクト識別子と関連つけられていてもよく、データオブジェクトは、地面内に含まれる各オブジェクトのオブジェクト識別子を含んでいてもよく、これにより地面ジェネレータ３５０は、コンテンツソース３１２からのデータ及びデータオブジェクトから地面を再構築することができる。
【００６０】
パッチは、ソフトウェアモジュール又はデータに対するアップデート又は追加であり、通常は、それらがメモリにロードされた後に、ソフトウェアモジュール又はデータに適用される。例えば、パッチは、ソフトウェアモジュール内の一つ以上のバグに対応するため、またソフトウェアモジュールに新たなコンテンツを加えるために、クライアント装置１４０により、該ソフトウェアモジュールのリリース及びダウンロードの数週間後に、ソフトウェアモジュールに適用するようにしてもよい。特別の実施例として、コンテンツソース３１２へのパッチは、「ジャングル」の六角形地面タイル、各既存の六角形地面タイルに対する新たな配列、又は帽子などの新たなオブジェクトのような、新しい六角形地面タイルデータ又はオブジェクトデータを加えるものでもよい。
【００６１】
パッチタイル定義モジュール２６４及びパッチオブジェクト情報モジュール２６６は、六角形地面タイルデータ及びオブジェクトデータにそれぞれ関与するパッチ情報を組み込む。例えば、クライアント装置１４０は、サーバー１２０又はコンテンツクリエータ１１０によって供給されるパッチなど、ネットワーク１４４上でパッチをダウンロードするようにしてもよい。クライアント装置１４０は、パッチをコンテンツソース３１２に送ってもよい。パッチタイル定義モジュール２６４はパッチ内に含まれる、新しい六角形地面タイルなど六角形地面タイルデータを、タイル定義モジュール２６０に組み込み、パッチオブジェクト情報モジュール２６６は、該パッチに含まれた、新しいオブジェクトなどのオブジェクトデータを、オブジェクト情報モジュール２６２に組み込む。
【００６２】
図４Ａは、実施例に基づいて、図１のクライアント装置のメモリ内のソフトウェアモジュールで使用されるレベルデータ３２２のブロック図である。レベルデータ３２２は、地面を表し、地面を記述する地面データ３２４を含む。レベルデータ３２２は、地面と関連するゲーム目的又はオブジェクトのような、他の情報も含むようにしてもよい。実施例では、レベルデータ３２２は、サーバー１２０によってクライアント装置１４０に送られたデータオブジェクトである。レベルデータ３２２は、地面データ３２４が地面に横たわる全ての構造を表すように、互いに関して地面内での位置を示す図、又は他のデータ構造を含む。実施例では、位置には、中央位置から開始され、外側にらせん状に時計回りで番号が付され、地面ジェネレータ３５０はこの情報を使用して、地面を適切に、各六角形地面タイルが適切な位置にあり、各位置は、互いに関して地面内で適切に位置決めされるように、構築する。例えば、図において、位置は、「位置０」、「位置１」、‥‥「位置Ｚ」のようにラベル付けされていてもよい。
【００６３】
地面データ３２４内の各位置は、六角形地面タイル識別子、六角形地面タイル方向、ゲームプレイパラメータのセットと関連している。位置と関連付けられた六角形地面タイル識別子は、地面ジェネレータ３５０が該位置に配置すべき六角形地面タイルを示している。六角形地面タイル方向は、使用する六角形地面タイルの特定の配列を示している。六角形は、六つの辺を有しており、３Ｄの六角形地面タイルは、上面、下面及び六つの面を持った六角形のプリスムである。こうして、六角形地面タイルの面の異なる面をそれぞれ同じ方向に向けることで（即ち、六角形地面タイルを６０度の倍数だけ回転させる）ことで、各六角形地面タイルには、六つの取り得る回転配列が存在することとなる。六角形地面タイル方向は、どの回転配列が配置位置に関連しているかを示している。ゲームプレイパラメータセットは、実施例によるが、照明配列、配置位置に関連した多様なオブジェクト識別子、又は六角形地面タイル識別子によって表される六角形地面タイルなどを含んでいてもよい。照明配列は、図４Ｂを参照して以下に詳細に述べる。ゲームプレイパラメータセットに含まれるオブジェクト識別子は、地面ジェネレータ３５０が、六角形地面タイル識別子で表された六角形地面タイルの地面内に配置すべきオブジェクトを示している。ゲームプレイパラメータセットは、各オブジェクトを六角形地面タイル内の何処に配置すべきかを特定する情報を含んでいてもよい。別の実施例では、ゲームプレイパラメータセットは、一つ以上のゲームプレイ目的に関連するデータのような、追加的、又は異なるデータを含んでいてもよい。実施例では、六角形地面タイル識別子、六角形地面タイル方向、照明配列等の他に、一つの六角形地面タイルの全ての潜在的な配列（向き）が、それぞれ異なる六角形地面タイル識別子を持ち、地面データ３２４は単に、各配置位置について、六角形地面タイル識別子及びゲームプレイパラメータセットを持っている。
【００６４】
図４Ｂは、実施例に基づいて、図１のクライアント装置のメモリ内のソフトウェアモジュールで使用される六角形地面タイルデータのブロック図である。特に、図４Ｂは、実施例に基づいた六角形地面タイル定義データ２６０を示している。六角形地面タイル定義データ２６０は、一つの実施例では、各六角形地面タイルについての完全な六角形地面タイルデータを有し、それは六角形地面タイル識別子でインデックスされている。各六角形地面タイルは、六角形地面タイル識別子、端部制約、頂点制約、配置情報、照影法及び配列情報と関連付けられている。上述したように、六角形地面タイル識別子は、六角形地面タイルを他の六角形地面タイルと区別している。例えば、六角形地面タイル識別子は、英数字列でもよい。
【００６５】
端部制約は、六角形地面タイルの一つ以上の面に関する制約条件である。端部制約は、六角形地面タイルの面が、それが同じタイプの面を持った隣接する六角形地面タイルの面とのみ境界を接するように、該地面内で配置されるといった、面のタイプに関する制約を含んでいてもよい。例えば、第１の六角形地面タイルは、第１のタイプの面を持った第１の面を持っている。第１の六角形地面タイルは第１の面が、同様に第１のタイプの面を持った第２の六角形地面タイルの第２の面と、境界を接する位置でのみ地面内に配置されるようにしてもよい。特別の実施例では、もし第１の六角形地面タイルの第１の面が「川」のタイプの面である場合は、その第１の六角形地面タイルは、第２の六角形地面タイルと、第２の面が同様に「川」のタイプの面である場合に限り、第１の面と第２の面が互いに境界を接するように隣接する形で配置されるようにしてもよい。六角形地面タイルの各面は、一つ以上の端部制約を持っていてもよく、それは該面が境界を接する面のタイプを制限するようにしてもよい。しかし、あるタイプの面に関しては、これらの面のタイプを持った面は、どのような面のタイプのセットを持った他の六角形地面タイルと境界を接するようにしてもよい。例えば、実施例では、「草原」のタイプの面を持った面は、「草原」タイプ又は「森」タイプの面を持った、隣接する六角形地面タイルの面と境界を接するようにしてもよい。実施例によるが、六角形地面タイルの面は、追加的な端部制約をもっていてもよい。端部制約については、図６Ｂを参照して以下に更に述べる。
【００６６】
頂点制約は、六角形地面タイルの六つの頂点に関する制約条件である。六角形地面タイルの各頂点は、「低」、「中」及び「高」等の高さレベルを持っている。３種の高さレベル以上又は以下のレベルも使用してもよい。頂点の高さレベルは、該頂点の六角形地面タイルのトポロジーと対応している。例えば、六角形地面タイルの面の、両側の二つの頂点が「高」の場合、該六角形地面タイルのその面は、一つの頂点から他の頂点まで、丘の頂上のようなものとしてもよい。もし、二つの頂点の内、一つが「高」であり、他が「中」の場合、該六角形地面タイルのその面における六角形地面タイルのトポロジーは、丘や階段の脇のような、坂であったりしてもよく、又は、該六角形地面タイルの面に沿って「高」から「中」へトポロジーが変化する崖を含むようなものであってもよい。
【００６７】
実施例では、特定の高さレベルの頂点が隣接することの出来る高さレベルの限度が、頂点制約で規定されている。例えば、一つの実施例では、隣接する頂点同士は、互いに一つの高さレベルの相違を超えては、隣接することは出来ない。例えば、「低」は「高」と隣接することは出来ず、「低」又は「中」と隣接することが出来る。頂点制約は、隣接する頂点が同じ六角形地面タイル内なのか、又は隣接する六角形地面タイル内なのかによって異なるようにしてもよい。例えば、頂点制約は、隣接する六角形地面タイル内の隣接する頂点とは、同じ高さであるべきであるが、同じ六角形地面タイル内の隣接する頂点とは、一つまで高さレベルが変わってもよいと、してもよい。頂点制約は、図５を参照して以下に更に述べる。
【００６８】
配置情報は、六角形地面タイルを配置してもよい場所に関する追加的な情報である。いくつかの六角形地面タイルは、端部制約及び頂点制約に加えて、制約条件をもっていてもよい。例えば、実施例では、特定の照明配列を持った六角形地面タイルは、同じ照明配列を持った他の六角形地面タイル又は、照明配列のセットの部分集合である照明配列を持った六角形地面タイルのみと隣接して配置されるようにしてもよい。配置情報に含まれる、他の制約条件は、ゲーム目的、タイル内のオブジェクトその他に関係していてもよい。
【００６９】
照明法は、六角形地面タイルの照明配列及び該照明配列の実行についてのデータである。照明配列は、六角形地面タイルのそれぞれの６個の回転可能位置について存在している。更に、六角形地面タイルの６個の回転可能位置のそれぞれについて、照明条件のセットの中での、各照明条件についての照明配列があり、それらは、「朝」、「日中」、「午後」、「夕方」、「雨の日」、「夜間」など、一つ以上の異なる照明条件を含んでいる。例えば、四つの異なる照明条件を持った六角形地面タイルは、六角形地面タイルの６個の回転可能位置のそれぞれについて四つで、合計２４個の照明配列を持っている。
【００７０】
照明法は、多様な方法で実行することができる。一つの実施例では、照明法は、イメージベース照明を用いて実行される。イメージベース照明（「ＩＢＬ」）とは、光情報の全方位的な表現を画像として捉えるものであり、箱や球などの形状の上に投影される。形状としての、「ライトプローブ」は、地面内に配置され、環境からの光をシミュレートするのに使用される。六角形地面タイルは、該六角形地面タイルにくまなく配置された複数のライトプローブを含むようにしてもよく、リアルな照明を可能とする。実施例では、ライトプローブは、複数の六角形地面タイルと重なっていてもよく、例えば二つの六角形地面タイルの間の境界にあってもよい。ライトプローブは、二つに分かれており、各六角形地面タイルの一半で、それぞれ他の六角形地面タイルの光情報を提供する。
【００７１】
配列情報は、六角形地面タイルの六つの可能な回転位置に関するデータである。六角形地面タイルの各回転位置は異なってレンダリングされる。配列情報は、六角形地面タイルの六つの回転位置のそれぞれについて、画像データを含んでいる。例えば、一つの配列では、六角形地面タイルは、該六角形地面タイルの北に川を有しているが、一方、第二の配列では、該川は、六角形地面タイルの西部にある。これらの配列は、両方共に配列情報内に含まれている。実施例では、照明配列は、各回転配列が各照明配列についてのデータを含む形で、配列情報内に含まれている。上記したように、ある実施例では、各六角形地面タイルのそれぞれ可能な全体の変形は、それ自体の六角形地面タイル識別子を持っている。この実施例では、照明法及び／又は配列情報は、ちょうど一つの回転位置及び一つの照明条件を含み、他の回転位置及び照明条件は、六角形地面タイル定義データ２６０内の他の六角形地面タイル識別子と関連付けられている。
【００７２】
図５は、実施例に基づく、六角形地面の図である。地面は、地面内の１９の位置に、非対称に配置された１９の六角形地面タイルを有している。図５はまた、各六角形地面タイルの複数の頂点及び面のほか、７つのウエッジも含んでいる。図５は、ユーザのゲームキャラクタによって占められる六角形地面タイルである、占有六角形地面タイル５０２を含んでいる。
【００７３】
地面をレンダリングする際に、クライアント装置１４０は、ウエッジ５１０のように、地面の周囲の一部又は全部にウエッジを加えるようにしてもよい。ウエッジは、例えば三角の幾何学形状の、六角形地面タイル、又はその一部であり、ウエッジで境界付された六角形地面タイルの頂点制約に基づいて、地面を結合している。例えば、あるウエッジは、第１の頂点から第２の頂点に伸延する六角形地面タイルの面を境界付けている。第１の頂点は、「高」であり、第２の頂点は「中」であり、従って、ウエッジは、第１の頂点から第２の頂点へ、並行的に高度を変化させている傾斜した壁を含んでいてもよく、それはオブジェクトやゲームキャラクタ、特にユーザのゲームキャラクタが通過できない壁である。実施例では、地面ジェネレータ３５０等の、ゲームシステム３００のモジュールが、レンダリング時よりはむしろ地面の構築時に、該地面に一つ以上のウエッジを加える。一つの実施例では、六角形地面タイルの頂点を境界付ける各ウエッジの頂点は、六角形地面タイルの頂点の高さレベルよりも大きな高さレベルを持つものである。
【００７４】
占有六角形地面タイル５０２は、ユーザのゲームキャラクタによって占められた六角形地面タイルである。地面をレンダリングする際には、ゲームシステム３００は、一度に地面の一部のみをレンダリングするようにしてもよい。一つの実施例では、ゲームシステム３００は、占有六角形地面タイル５０２及び該占有六角形地面タイル５０２と直接接する各六角形地面タイルをレンダリングする。例えば、占有六角形地面タイル５０２と六角形地面タイル５０６の間の六角形地面タイルはレンダリングされるが、六角形地面タイル５０６はレンダリングされない。これは、コンピュータリソースの節約及びアクティブメモリ又は処理能力上の限界を融通するために行ってもよい。他の実施例では、ユーザのゲームキャラクタの視線上の六角形地面タイルのみ、又は、占有六角形地面タイル５０２又は占有六角形地面タイル５０２と境界を接する六角形地面タイルと境界を接する六角形地面タイルなど、地面の他の六角形地面タイルの部分集合がレンダリングされてもよい。
【００７５】
いくつかの頂点制約を図５に示す。一つの実施例では、頂点５１５Ａ〜Ｃのような、一点に集まっている頂点は、同じ高さレベルでなければならない。例えば、頂点５１５Ｂを持った六角形地面タイルが地面に加えられ、その頂点５１５Ｂの高さは「高」だったとすると、頂点５１５Ａ、５１５Ｃを持った六角形地面タイルは、頂点５１５Ａ、５１５Ｃの高さが同じ「高」である場合のみ、配置が可能である。他の実施例では、頂点５１５が他の境界を接する頂点５１５との間で、一つ以上の高さレベルを越えない場合にのみ、頂点５１５は、互いに境界を接することが出来る。
【００７６】
図６Ａは、実施例に基づいた、六角形地面タイル６０５の地面高さ制約条件を示す図である。特に、いくつかの高さレベル６０５が示されている。各六角形地面タイルは、少なくとも二つの高さレベル６０５を持っており、ある実施例では三つ以上の高さレベル６０５を持っていてもよい。高さレベル６０５Ａは、「低」高さレベルであり、高さレベル６０５Ｂは、「中」高さレベルであり、高さレベル６０５Ｃは、「高」高さレベルである。六角形地面タイル内に含まれる３Ｄトポロジーは、高さレベルの間で変化することが出来る。第１のタイルは、完全にレベル６０５Ａである芝生であってもよい。第２のタイルは、高さが六角形地面タイル内でレベル６０５Ａ〜６０５Ｂの間で変化する一連の丘であってもよい。第３のタイルは、六角形地面タイルの中心に位置する大きな山であってもよく、そこでは六角形地面タイルの周辺は低く、六角形地面タイルの中央は高く、その間のスペースは、中間である。
【００７７】
図６Ｂは、実施例に基づいた、六角形タイルの図である。図６Ｂは、六角形地面タイル５０６のいくつかの特徴と六角形地面タイル５０６を示している。六角形地面タイル５０６は、頂点６１５及び６３０を終端とする面６１０を有し、オブジェクト４２５及び川６２０を含んでいる。オブジェクト４２５は、六角形地面タイル５０６内に配置することの出来る相互的（インタラクティブ）なゲーム要素である。例えばオブジェクト４２５は、ユーザのゲームキャラクタが拾うことの出来る石であってもよく、近づくとユーザのゲームキャラクタを攻撃する敵であってもよい。実施例によるが、六角形地面タイルは、自動的に一つ以上のオブジェクトを含んでいたり、オブジェクトがゲームレベルエディタ１１２を介して六角形地面タイルに付加されたり、又はその両方が行われる。
【００７８】
川６２０は、六角形地面タイル５０６の面に向けて伸びる、六角形地面タイル５０６に含まれるトポロジカルな地形である。川６２０は、六角形地面タイル５０６の端部制約である。第２の六角形地面タイルは、川６２０が交差する面で六角形地面タイル５０６と接する形で配置され、また六角形地面タイル５０６と接する面に川の地形を持たなければならない。もし、ウエッジが、川６２０が交差する面に接するように配置される場合には、該ウエッジは滝又は、川に関連する他の素子を有するようにしてもよい。同様に、地面内に配置される六角形地面タイル又はウエッジは、それら接する六角形地面タイルの端部制約を満足する必要がある。他の端部制約の例としては、道がある。
【００７９】
面６１０で六角形地面タイル５０６と接するように配置される、被接続六角形地面タイルは、それに接する頂点６１５，６３０及び面６１０についての制約条件を満足する必要がある。一つの実施例では、被接続六角形地面タイルは、頂点６１５のように、第１の頂点は「Ｌ」又は「低」であり、第２の頂点は、頂点６３０のように、「Ｍ」又は、「中」であり、それぞれ対応する高さのレベルの頂点６１５、６３０と接する。図からも分かるように、各頂点は、高さレベルを持っており、隣接する頂点に対して一つを越える高さレベルを持った頂点は無い。
【００８０】
図７は、実施例に基づいて、ここで述べた技術を実行するための処理を示すフローチャートである。クライアント装置１４０は、７０２で、地面上の位置を含み、該位置に配置すべき三次元トポロジーの六角形地面タイルの、対応する六角形地面タイル識別子に対応した地面データを受け取る。例えば、クライアント装置１４０は、サーバー１２０からデータオブジェクトを受け取る。
【００８１】
クライアント装置１４０は、７０４で、地面データ内に含まれた、六角形地面タイルに対応する六角形地面タイル識別子データを引き出す。各六角形地面タイルの六角形地面タイル識別子データは、少なくとも該六角形地面タイルに隣接した配置に適した、隣接六角形地面タイルについての制約条件を含んでいる。制約条件は、例えば、頂点制約又は端部制約である。
【００８２】
クライアント装置は、７０６で、地面データ内に示された位置に六角形地面タイルを、互いに隣接する一つ以上の六角形地面の面が、該六角形地面タイルのそれぞれに関連する制約条件に従う形で、インスタンス化することで地面表現を生成する。六角形地面タイルのインスタンス化は、地面のレンダリングを含む。
【００８３】
実施例では、六角形地面タイル定義データは更に、複数の照明法を含んでおり、それぞれの照明法は、異なる照明条件での六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されている。
【００８４】
実施例では、六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいる。
【００８５】
実施例では、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいる。
【００８６】
実施例では、処理は、更に、クライアント装置１４０によって、一つ以上の六角形地面タイルの制約条件に従うことを決定することを含む。
【００８７】
実施例では、地面データは、コンテンツクリエータ１１０又はサーバー１２０等の、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいる。
【００８８】
実施例では、地面データは、更に、六角形地面タイルのそれぞれの方向を含んでいる。
【００８９】
実施例では、地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいる。例えば、ゲーム目的に基づいて、六角形地面タイル内に配置され得るオブジェクト又はキャラクタに、及びそれらが配置される可能性のある六角形地面タイル内に、多様な制限が設けられるようにしてもよい。
【００９０】
実施例では、六角形地面タイル定義データは、読み出し専用記憶媒体に格納されたオリジナルな六角形地面タイル定義データ及び、パッチ又は拡張パックの形で他の演算装置から受け取った追加的な六角形地面タイル定義データを有している。
【００９１】
実施例では、地面データは、少なくとも一つの六角形地面タイルに隣接するウエッジの配置について示している。
【００９２】
実施例では、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、クライアント装置１４０は自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定する。
【００９３】
上記した実施例は、ゲームシステムを参照して主に述べたが、実施例は、地図アプリケーションや配車アプリケーションなど、エンジニアリングソフトウェア、ナビーションソフトウェア、教育ソフトウェアなど、他の応用にも適用することができる。また、実施例は、研究アプリケーションにも適用することができる。
【００９４】
特定の実施例及び適用例が示され、述べられたが、発明はここで述べられた正確な構造及び構成に限られるものでは無く、当業者にとって自明な多様な変形、変更、変化が、ここでの開示の範囲及び精神から離れない限り、ここで述べられた方法及び装置の配置、運転及び詳細について可能であることを理解すべきである。
【図１】
2020155110.tif 000003
【図２】
2020155110.tif 000004
【図３】
2020155110.tif 000005
【図４Ａ】
2020155110.tif 000006
【図４Ｂ】
2020155110.tif 000007
【図５】
2020155110.tif 000008
【図６Ａ】
2020155110.tif 000009
【図６Ｂ】
2020155110.tif 000010
【図７】
2020155110.tif 000011