JP6857268B2 - 電子ゲーム表示における、地面の六角形の断片化 - Google Patents

電子ゲーム表示における、地面の六角形の断片化 Download PDF

Info

Publication number
JP6857268B2
JP6857268B2 JP2020030237A JP2020030237A JP6857268B2 JP 6857268 B2 JP6857268 B2 JP 6857268B2 JP 2020030237 A JP2020030237 A JP 2020030237A JP 2020030237 A JP2020030237 A JP 2020030237A JP 6857268 B2 JP6857268 B2 JP 6857268B2
Authority
JP
Japan
Prior art keywords
ground
hexagonal
tile
hexagonal ground
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020030237A
Other languages
English (en)
Other versions
JP2020155110A (ja
Inventor
ティル ブレナー マルコ
ティル ブレナー マルコ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Square Enix Ltd
Original Assignee
Square Enix Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Square Enix Ltd filed Critical Square Enix Ltd
Publication of JP2020155110A publication Critical patent/JP2020155110A/ja
Application granted granted Critical
Publication of JP6857268B2 publication Critical patent/JP6857268B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/6009Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content
    • A63F2300/6018Methods for processing data by generating or executing the game program for importing or creating game content, e.g. authoring tools during game development, adapting content to different platforms, use of a scripting language to create content where the game content is authored by the player, e.g. level editor or by game device at runtime, e.g. level is created from music data on CD
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2008Assembling, disassembling

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Description

本開示は、地面の六角形の断片化に関わり、特に六角形の地面の断片を用いて地図を組み立てることに関する。
たくさんのビデオゲームが、ビデオゲームが行われるゲームボード、マップなど(一般的に「地面」と称する)を含んでいる。例えば、ビデオゲームは、多様なゲーム素子が配置され、それらがビデオゲームの中で移動させられるボードを含んでいることがある。ビデオゲームは、しばしば、アップロード、伝達、ダウンロードまたその他の用途において、多くの時間と演算リソースを要する大量のソフトウェア及びデータを持っている。地面は、しばしばこのソフトウェア及びデータの最も大きなセグメントの一つである。地面を用いた、アップロード、伝達、ダウンロードまたその他のもの自体、典型的に多くの時間及び演算リソースを消費するものである。更に、地面は、通常、変わることは無く、またしばしば繰り返されるので、そうした地面を含んだビデオゲームのプレイヤは該ビデオゲームの興味を失ってしまうようなこともあり得る。
実施例は、地面の六角形の断片化に関する。クライアント装置は、地面の位置及び、該位置に配置すべき、三次元トポロジーの六角形地面タイルの、対応する六角形地面タイル識別子を受け取る。クライアント装置は、六角形地面タイルに対応する六角形地面タイル定義データを引き出す。六角形地面タイル定義データは、少なくとも隣接する六角形地面タイルとの制約条件を含んでいる。クライアント装置は、制約条件に従って一つ以上の六角形地面タイルの面を互いに隣接させる形で、地面データに示された位置に六角形地面タイルをインスタンス化することで地面の表現を生成する。
一つ以上の実施例で、六角形地面タイル定義データは、更に複数の照明法を含んでいる。照明法のそれぞれは、異なる照明条件で、六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されている。
一つ以上の実施例では、六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいる。
一つ以上の実施例では、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいる。
一つ以上の実施例では、処理は、更に、クライアント装置140が、一つ以上の六角形地面タイルの制約条件に従うことを決定することを含む。
一つ以上の実施例では、地面データは、コンテンツクリエータ又はサーバー等の、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいる。
一つ以上の実施例では、地面データは、更に、六角形地面タイルのそれぞれの方向を含んでいる。
一つ以上の実施例では、地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいる。
一つ以上の実施例では、六角形地面タイル定義データは、読み出し専用記憶媒体に格納されたオリジナルな六角形地面タイル定義データ及び、パッチ又は拡張パックの形で他の演算装置から受け取った追加的な六角形地面タイル定義データを有している。
一つ以上の実施例では、地面データは、少なくとも一つの六角形地面タイルに隣接するウエッジの配置について示している。
一つ以上の実施例では、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、クライアント装置140は自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定する。
図1は、実施例に基づく、システムのブロック図である。 図2は、実施例に基づく、図1のクライアント装置のブロック図。 図3は、実施例に基づく、図1のクライアント装置のメモリ内のソフトウェアモジュールのブロック図。 図4Aは、 実施例に基づく、図1のクライアント装置のメモリ内の、ソフトウェアモジュールによって使用されるレベルデータのブロック図。 図4Bは、実施例に基づく、図1のクライアント装置メモリ内の、ソフトウェアモジュールによって使用される六角形地面タイルデータのブロック図。 図5は、実施例に基づく、六角形の地面の模式図。 図6Aは、実施例に基づく、六角形地面タイルの地面高さ制約条件を示す模式図。 図6Bは、実施例に基づく、六角形地面タイルの模式図。 図7は、実施例に基づく、ここで述べた技術を実行するためのプロセスを示すフローチャート。
図面は、例示目的で本発明を開示する多様な実施例を描いている。当業者であるならば、そこに示された構造や方法の互換的な実施例を、ここ述べられた開示の、利益や原則から離れること無く、使用することが出来ることを、以下の記述から容易に思いつくことが出来るものである。
以下の実施例の記述の中で、より徹底的な理解のために多くの詳細な説明がなされている。しかし、実施例は、一つ以上のこれらの特定の詳細に関わりなく、実行されてもよい。他の例では、周知の事項は、説明の複雑化を避けるために、その詳細を述べることはしていない。
実施例は、地面の六角形の断片化に関する。地面上の位置を含み、該位置に配置される三次元トポロジーの六角形地面タイルの識別子に対応する地面データは、演算装置で受け取られる。六角形地面タイルに対応する六角形地面タイル定義データは、隣接する六角形地面タイルに与えられる制約条件を含むので、それは該六角形地面タイルに隣接して配置することが出来る。地面の表示は、制約条件に従って一つ以上の六角形の地面を互いに隣接する形で向き合わせる形で、地面データに示された位置に六角形地面タイルをインスタンス化することで生成される。
他の利点の中では、実施例では、地面データを少ない待ち時間で効率よく伝送することが出来る。更に、実施例では、柔軟性のある地面設計及び実施が可能であり、同時に地面全体でより大きなカスタマイズや変形を可能とするものである。演算装置のパフォーマンス及びユーザ体験なども向上することができる。地面の六角形の断片化は、また隣接するタイル間の境界を少なくすることが出来、それがより有機的で没入感のある地面となって、ユーザ体験を更に向上させるものである。
実施例は図面を参照して説明するが、類似の参照番号は、機能的に同一又は類似した素子を示す。図面において、各参照番号の最も左の桁又は左の複数の桁は、該参照番号が最初に使用された図に対応している。
図1は、実施例に基づいた、ここで述べる技術を実行することの出来るシステム100のブロック図である。システム100は、コンテンツクリエータ110、サーバー120、クライアント装置140及びネットワーク144を含む。他の実施例では、システム100は、追加的なコンテンツクリエータ110やサーバー120を含むことが出来、又単一のクライアント装置140となる場合もある。
コンテンツクリエータ110、サーバー120及びクライアント装置140は、ネットワーク144を介して通信するように構成されている。ネットワーク144は、有線及び/又は無線通信システムを用いた、ローカルエリア及び/又は広域ネットワークのあらゆる組み合わせを含むことが出来る。一つの実施例では、ネットワーク144は通常の通信技術及び/又はプロトコルを使用する。例えば、ネットワーク144は、イーサネット、802.11、ワイマックス(worldwide interoperability for microwave access (WiMAX)、3G、4G、符号分割多元接続(CDMA)、デジタル加入者線(DSL)などの技術を用いた通信リンクを含むものである。ネットワーク144を介した通信に使用されるネットワークプロトコルの例には、マルチプロトコル ラベル スイッチング(MPLS)、トランスミッション コントロール プロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキスト・トランスファー・プロトコル(HTTP)、シンプル メール トランスファー プロトコル(SMTP)及びファイル・トランスファー・プロトコル(FTP)を含む。ネットワーク114上で交換されるデータは、ハイパーテキスト マークアップ ランゲージ(HTML)又はエクステンシブル マークアップ ランゲージ(XML)のような適切なフォーマットを使用して表示することが出来る。ある実施例では、ネットワーク144のいくつか又は全ての通信リンクは、何らかの適切な技術又はそれらの組み合わせた技術を用いて暗号化することが出来る。
コンテンツクリエータ110は、ゲーミングシステム、パーソナルコンピュータ、モバイルフォン、タブレットなどのコンピュータ装置であり、ゲームレベルエディタ112を実行することが出来る。ゲームレベルエディタ112は一つ以上のゲームについての地面を設計するソフトウェアアプリケーションである。地面は特別に配列された、一つ以上の三次元(3D)の六角形地面タイル(六角形の升)である。六角形地面タイルは、特別な配列で位置決めされると、特定の三次元トポロジーを構成する。六角形地面タイル及び地面は、図4を参照して、以下により詳細に述べられる。
コンテンツクリエータ110のユーザは、ゲームレベルエディタ112を用いて地面を生成する。例えば、ユーザはゲームレベルエディタ112を用いて、多様な六角形地面タイルをつなぎ合わせて特別な地面を形成する所望の配列とする。ユーザは、ゲームレベルエディタ112を用いて、六角形地面タイルをつなぎ合わせる一方で、六角形地面タイルを回転させ及び/又は移動させ、複写するなどして所望の配列とすることもある。ゲームレベルエディタ112は、各六角形地面タイルに関連した一つ以上の制約条件をモニターして、少なくとも一つの隣接する六角形地面タイルの少なくとも一つの制約条件に反する場合には、該位置に六角形地面タイルを配置することを止めるようにすることができる。ゲームレベルエディタ112は、コンテンツクリエータ110のディスプレィに表示されたゲームレベルエディタ112のユーザーインターフェースなどで、該配置止め及び/又は少なくとも一つの制約条件をユーザに示すことが出来る。ユーザはゲームレベルエディタ112を使用して、地面上の様々な位置に存在する一つ以上の目的や、地面上の様々な位置にあるべきオブジェクトなど、地面を含むゲームの他の側面を規定するようにしてもよい。
一つの実施例では、ユーザはゲームレベルエディタ112を用いて、六角形地面タイルの配置内におけるギャップのように、地面上の一つ以上を空のまま置いておくこともできる。こうした実施例では、ゲームレベルエディタ112、サーバー120又はクライアント装置140は六角形地面タイルのマッチング技術を用いて、それぞれの空の地面位置を適当な六角形地面タイルで自動的に埋めるようにする。こうした状況では、六角形地面タイルは、各隣接する六角形地面タイルの制約条件に従っていれば、適切なものである。更に一実施例では、ゲームレベルエディタ112は、六角形地面タイル上の適当な位置にウエッジを配置している。ウエッジについては、図5を参照して以下により詳細に述べる。ゲームレベルエディタ112は、あつらえた地面をセーブし、及び/又はそれをサーバー120及び/又はクライアント装置140に送ってもよい。ゲームレベルエディタ112は、あつらえた地面が、一つ以上の隣接する六角形地面タイルの一つ以上の制約条件に違反する六角形地面タイルを含んでいる場合には、該あつらえた地面のセーブ及び/又は送出を止めるようにしてもよい。
サーバー120はプロセッサ128及びバス127で接続されたメモリ130を含んだ演算装置である。メモリ130は、六角形地面タイルデータストア122、ゲームレベルジェネレータ124及びデータオブジェクトジェネレータ126を含む。サーバー120はコンテンツクリエータ110とクライアント装置140間でメッセージを受け取りまた送るようにしてもよい。更に、サーバー120は、メモリ内に、コンテンツクリエータ110からサーバー120で受け取った地面などの、一つ以上の地面を格納してもよく、一つ以上の地面をクライアント装置140に送ってもよい。
プロセッサ128は、ここで述べた技術のいくつか又は全てのパフォーマンスなどの、取るべきアクションを特定する指令を、順次又はその他の方法で実行することが出来る。バス127は、プロセッサ128とメモリ130を接続し、お互いの間のデータ転送を可能としている。実施例では、サーバー120は、演算装置に、当業者に知られた公知の追加的な素子を含ませてもよい。
六角形地面タイルデータストア122は六角形地面タイル及び地面を格納する。例えば、六角形地面タイルデータストア122は、図4を参照して以下に述べるように、六角形地面タイルのそれぞれの配列や各六角形地面タイルのテンプレートを格納するようにしてもよい。また六角形地面タイルデータストア122は、コンテンツクリエータ110から受け取った、又はゲームのクリエータ又はサーバー120の管理者が作った地面を格納するようにしてもよい。六角形地面タイルデータストア122は、六角形地面タイル又は地面についてのメタデータを格納するようにしてもよい。それらは、六角形地面タイル識別子、地面識別子、六角形地面タイル又は地面のクリエータの識別子、六角形地面タイル又は地面のサイズ(例えば、メガバイト(MB)などで測ったもの)などである。また六角形地面タイルデータストア122は、ゲーム目的、オブジェクトなど、六角形地面タイル又は地面に関連するが、六角形地面タイル又は地面の必要な部分では無い、情報を格納してもよい。
ゲームレベルジェネレータ124は、六角形地面タイル及び/又は地面を生成する。例えば、ゲームレベルジェネレータ124は、制約条件を考慮する六角形地面タイルマッチング技術を用いて地面を生成する。六角形地面タイルマッチング技術は、実施例によるが、地面のサイズ(例えば、配置又は六角形地面タイルの数)、地面のタイプ(例えば、「砂漠の夜」対「雨のジャングル」)、ゲーム目的(例えば、「15の敵を打倒」)などの、多様な他の要素から構成してもよい。多様な他の要素は、ランダムに生成されてもよく、またゲームクリエータ又はサーバー120の管理者など、外部のソースからの入力として受け取ってもよい。
実施例では、ゲームレベルジェネレータ124は、新しい六角形地面タイルを生成してもよい。例えば、ゲームレベルジェネレータ124は、新しい六角形地面タイルをランダムに、又は外のソースから受け取った入力に基づいて、又は既存の六角形地面タイルによって適切に充填され得ない地面内のギャップを埋めるために、生成してもよい。ゲームレベルジェネレータ124は、例えば、グラフィック素子、オーディオ資源又はインタラクティブなゲーム要素などの、オブジェクトのセットの他、六角形地面タイルに関する一つ以上の制約条件を決定することで新しい六角形地面タイルを生成し、該六角形地面タイル内に含ませる。制約条件に基づいて、ゲームレベルジェネレータ124は六角形地面タイルの3Dトポロジーを生成し、オブジェクト及び六角形地面タイルの制約条件に基づいて、六角形地面タイル内の適当な位置に、オブジェクトのセット内の各オブジェクトを位置させる。例えば、一つの実施例では、「木」のオブジェクトは、六角形地面タイルの「森」の位置上に配置するが、六角形地面タイルの「滝」上には配置しない。
データオブジェクトジェネレータ126は、地面を送信するための、JSONドキュメント等のデータオブジェクトを生成する。地面はしばしば大量のデータを含み、データのアップロード、ダウンロードに際して大きな遅延時間をもたらすほどのものである。ここで述べる技術は、データオブジェクトジェネレータ126に関連するものを含み、地面の送信に際してデータ量を削減することでこの遅延時間に対処している。
図4を参照して、以下に述べるように、各六角形地面タイルは、六角形地面タイル相互を区別する六角形地面タイル識別子に関連つけられている。データオブジェクトを生成する際に、データオブジェクトジェネレータ126は、データオブジェクトに、一つ以上の六角形地面タイル識別子を含んだ地面データを含める。各六角形地面タイル識別子は、該地面データで記述された地面の少なくとも一つの六角形地面タイルと対応している。地面データは、また、地面データが該地面の全体に横たわっている構造を示すような、互いについての位置を記述したグラフ又は他のデータ構造も含んでいる。更に、地面データは、六角形地面タイル識別子に対する位置のマッピングを含んでおり、地面は、地面内で特定の位置に各六角形地面タイルを正しく関連づけることで、地面データに基づいて適切に再構築されることとなる。
データオブジェクトジェネレータ126により生成されるデータオブジェクトは、上述したように、六角形地面タイル識別子、位置などを含むが、各六角形地面タイルの全てのデータでは無い。データオブジェクトそれ自体は、もし各六角形地面タイルの六角形地面タイルデータを含むとした場合のデータよりも遙かに小さい。データオブジェクトは従って、最大サイズの地面データの場合より、例えば、アップロード、伝達又はダウンロードなどで、効率的で低遅延時間に貢献するものであり、例えば、演算サイクル及びアクティブメモリなど、より少ない演算リソースの使用に繋がる。クライアント装置140は、データオブジェクトを受け取り、ローカルで格納された六角形地面タイルデータを使用して、該データオブジェクトにより表される地面を再構築する。
各クライアント装置140は、地面を使用するゲーム又は他のソフトウェアを含んだ演算装置である。クライアント装置140は、サーバー120からデータオブジェクトを受け取り、該データオブジェクトを使用して、例えばゲームなどで使用する地面を構築する。異なるクライアント装置140は、サーバー120から異なるデータオブジェクトを要求することが出来る。例えば、クライアント装置140Aは、サーバー120から第1の地面を要求することが出来、クライアント装置140Bは、サーバー120から第2の地面を要求することが出来るなどであり、クライアント装置140Nは、サーバー120から第Nの地面を要求することができる。
サーバー120は、クライアント装置140によって要求された地面に対応するデータオブジェクトをクライアント装置140に送るようにしてもよい。例えば、クライアント装置140は、要求された第1の地面に対応する第1のデータオブジェクトを受け取るようにしてもよいことなどである。クライアント装置140は、各六角形地面タイルについて、対応するデータオブジェクトに基づいた地面を再構築する際に、地面を書き込むために使用する十分な六角形地面タイルデータを有する。クライアント装置140については、図2〜4を参照しつつ以下に、詳細を述べる。
図2は、実施例に基づいた、図1のクライアント装置140のブロック図である。実施例によれば、コンテンツクリエータ110及び/又はサーバー120は、ここで述べるクライアント装置140のハードウェア及び/又はソフトウェア素子のいくつか又は全てを有する演算装置であってもよい。クライアント装置140、コンテンツクリエータ110及び/又はサーバー120は、指令を実行することが出来る機械であり、それぞれはスタンドアロン又は接続された(例えば、ネットワーク化された)装置セットであってもよい。例えば、一つの実施例では、コンテンツクリエータ110は一つのクライアント装置140である。
クライアント装置140は、バス216で接続された、中央演算ユニット(「CPU」)202、グラフィック処理ユニット(「GPU」)204、主メモリ206、副メモリ214、ディスプレィ制御装置208、ユーザーインターフェース210、及びサウンドコントローラ212を有している。単一のクライアント装置140のみを示したが、他の実施例では、個別的にまたは協働して指令を実行してここで述べた方法論の一つ以上を実行するクライアント装置140の何らかの集合体を含むようにしてもよい。
主メモリ206は、ここで述べる一つ以上の方法論又は機能を具現化する機能(例えば、ソフトウェア)を格納する機械可読媒体である。例えば、主メモリ206は、CPU202により実行されることで、CPU202が、図7を参照して詳細が以下に述べられるプロセス700を実行するように構成される指令を格納するようにしてもよい。指令は、また、CPU202及び/又はCPU204内に、例えばキャッシュメモリ内に、該指令の実行中は部分的又は全部が駐留するようにしてもよい。
「機械可読媒体」とは、指令を格納することの出来る、単一の媒体又は複数の媒体を含んでいるものと取るべきである(例えば、集中又は分散データベース、又は関連したキャッシュ及びサーバー)。「機械可読媒体」は、また、装置により実行されるための指令を格納することの出来る何らかの媒体であり、ここで開示した一つ以上の方法論の何らかを装置に実行させるようにする何らかの媒体を含むものと捉えるべきである。「機械可読媒体」は、半導体メモリ、光学媒体、磁気媒体の形でのデータ貯蔵庫を含むものであるが、それに限定されるものではない。
副メモリ214は主メモリ206とは離れたメモリある。主メモリ206と同様に、副メモリ214は、ここで開示した一つ以上の方法論を具現化する指令(例えば、ソフトウェア)を格納する機械可読媒体である。例えば、主メモリ206は、クライアント装置140のハード装置であってもよく、副メモリ214は地面を使用するゲームのためのゲームディスクであってもよい。特別の例では、主メモリ206は、副メモリ214に格納された六角形地面タイルデータを使用するゲームシステム300を格納していてもよい。主メモリ206及び副メモリ214は、以下に図3を参照して、より詳細に述べる。
CPU202は、主メモリ206及び/又は副メモリ214に格納された指令を実行するように構成されている処理回路である。CPU202は、汎用プロセッサ又は多様な命令セットアーキテクチャ(ISAs)の何らかを用いている埋め込みプロセッサとしてもよい。図2には、単一のCPUを示すが、クライアント装置140は、マルチCPU202であってもよい。マルチプロセッサシステムでは、各CPUは、通常同じISAを実行するが、これに限るものではない。
GPUは、画像イメージを効率的に処理するために特別に設計された処理回路である。GPU204は、CPU202からの指令に基づき、表示すべきオブジェクトをレンダリングし、フレームバッファ(例えば、フレーム全体のピクセルデータを含んだもの)に書き込む。GPU204は、グラフィックソフトウェアを実行して、グラフィック処理の一部又は全てを行う一つ以上のグラフィック処理装置を含むようにしてもよい。
ディスプレィ制御装置208は、GPU204からの映像データを用いてビデオ信号を生成する回路である。例えば、ディスプレィ制御装置208は、ディスプレィ装置(例えば、液晶ディスプレィ(LCD)及びプロジェクター)を駆動する。地面を含んでいるゲームなどは、ディスプレィ制御装置208を介して画像又はビデオシーケンスとして表示することが出来る。
サウンドコントローラ212は、クライアント装置140からの、及びクライアント装置140へのオーディオ信号の入出力を提供する回路である。地面の目的として、サウンドコントローラ212は、(例えば、特定の六角形地面タイル又は、複数の六角形地面タイルの一部で)地面のオブジェクトやアクションと協調してオーディオ信号を提供することができる。
ユーザーインターフェース210は、ユーザがクライアント装置140と関わることを可能とする、ハードウェア、ソフトウェア、ファームウェア又はそれらの組み合わせである。ユーザーインターフェース210は、英数字入力装置(例えば、キーボード)及びカーソル制御装置(例えば、マウス、トラックボール、ジョイスティック、モーションセンサー又は他の指示装置)を含むことができる。例えば、ユーザは、キーボード及びマウスを使用して、クライアント装置140によりレンダリングされた地面を含むゲーム環境内でキャラクタの行動を制御する。ゲーム環境は、ユーザのゲームキャラクタが動作する、地面のシミュレーションとレンダリングが含まれる。
クライアント装置140は、ここで述べた機能性を提供するためのコンピュータプロラムモジュールを実行する。ここで使用したように、「モジュール」という言葉は、特定の機能性を提供するために使用されるコンピュータプログラム指令及び/又は他のロジックに関するものである。そして、モジュールはハードウェア、ファームウェア及び/又はソフトウェア内で実行され得る。ある実施例では、実行可能なコンピュータプログラム指令からなるプログラムモジュールは、主メモリ206にロードされ、CPU202又はGPU204により実行される。例えば、ここで述べる処理700のプログラム指令は、主メモリ206及び/又は副メモリ214にロードされ、CPU202及びGPU204により実行することができる。
図3は、実施例に基づいた、図1のクライアント装置140のメモリ内の、ソフトウェアモジュールのブロック図である。特に図3は、クライアント装置140の主メモリ206及び副メモリ214内のソフトウェアモジュールを示している。主メモリ206は、モジュールの中でも、ゲームシステム300とオペレーティングシステム(「OS」)380を格納してもよい。副メモリ214は、モジュールの中でも、コンテンツソース312を格納してもよい。主メモリ206及び副メモリ214は、図3で示した以外の他のモジュールを含んでいてもよい。更に、他の実施例では、主メモリ206及び副メモリ214は、ここで他のメモリに格納されるように示されたソフトウェアモジュールやデータをそれぞれ格納してもよい。
ゲームシステム300は、レベルマネージャー320、物理システム330,サウンドモジュール340,地面ジェネレータ350、アニメーションモジュール360及びグラフィックレンダリングモジュール370を含んでいる。これらのモジュールは集合的にゲームシステム300の「ゲームエンジン」を形成する。
ゲームシステム300は、処理312Aから312N(集合的に「処理312」と称する)を実行して、地面を含んだゲーム環境を生成する。特に、ゲームシステム300は、これらの処理312を実行して、地面を構築し、該地面の上に多様なオブジェクト(例えば、ユーザのゲームキャラクタ)を具現化し、オブジェクト間の相互作用をシミュレートする。処理312は、あるイベント(例えば、ゲーム内で生じる、ユーザの交流、時間切れ及びトリガー)に基づいた、多様なパラメータの変更(例えば、オブジェクトの状態やユーザのステータス)をもたらす演算処理に関わっている。
いくつかの処理312は、一つ以上のオブジェクト、六角形地面タイル又はゲーム環境内での六角形地面タイル内の位置、及び/又はオブジェクト、六角形地面タイル、又は六角形地面タイル内の位置に関連した一つ以上のアクションと関連している。処理の例としては、カタパルトでの岩の発射、キャラクタの走り、流体の流れ、矢の飛翔、ドアの開放などである。ある処理312は、比較的単純な応答(例えば、ドアの開放)であり、他の処理は物理システム330によるシミュレーションが必要になるかもしれない(例えば、接続された物体の動き)。処理312を実行する際には、ゲームシステム300は、アプリケーションプログラムインターフェース(APIs)を介してゲームエンジンの構成要素(例えば、物理システム330)と通信してもよい。少なくとも処理312の一つは、地面データ及び六角形地面タイルデータから地面を構築することに関与している。
レベルマネージャー320は、データオブジェクト、即ち、レベルデータ322をサーバー120から受け取り、主メモリ206内に該レベルデータ322を格納する。ゲームシステム300の他のモジュールは、レベルマネージャー320から一つ以上のレベルを要求することが出来、要求を送ったゲームシステム300のモジュールに、要求されたモジュールに対応するレベルデータ322を送ることで、レベルマネージャー320は、リクエストに応える。または、レベルマネージャー320は、レベルデータ322から地面テンプレートを構築してもよい。地面テンプレートは、六角形地面タイルデータを持たない地面である。例えば、地面テンプレートは、位置の図表であり、そこでは、図表内の各位置が六角形地面タイル識別子と関連している。例えば、地面テンプレート又は他の地面データ324は、地面ジェネレータ350からの地面データ324の要求に対応するように、地面ジェネレータ350に送られてもよい。地面データ324は、実施例によるが、何らかのレベルデータ322を含んでいてもよい。
地面ジェネレータ350は、地面データ324及び六角形地面タイルデータに基づいて完全な地面を生成する。地面ジェネレータ350は、地面データ214をレベルマネージャー320から受け取り、六角形地面タイルデータ及びオブジェクトデータを以下に詳細に述べるように、副メモリ214内のコンテンツソース312から受け取る。一つの実施例では、地面ジェネレータ350は、六角形地面タイルデータを用いて地面テンプレートを充足させる。例えば、地面テンプレート内の各位置については、地面ジェネレータ350は関連する六角形地面タイル識別子を用いて、該六角形地面タイル識別子によって明らかになった六角形地面タイルデータを引き出す。地面ジェネレータ350は、引き出された六角形地面タイルデータを用いて、該引き出された完全な六角形地面タイルデータを組み合わせて、地面テンプレートを、(正確な六角形地面タイル識別子よりはむしろ)完全な六角形地面タイルデータを持った完全な地面に変える形で、地面を構築する。
物理システム330は、ゲーム環境内のオブジェクトの力学をモデル化し、シミュレートする。ゲームシステム300で処理312が開始された後に、物理システム330は、処理312に関連したオブジェクトにアクションがどのように影響するかをモデル化する。例えば、物理システムは、岩が丘を転がり落ちる時の岩をモデル化する。アクション及びオブジェクトによるが、他のオブジェクトやアクションが該アクション又はオブジェクトに関連するかもしれない。例えば、投げられた岩が、他のオブジェクトをひっくり返すかもしれない。これは、岩にオブジェクトが当たったところで、これが新しい処理のトリガーとなるかもしれない。ゲーム環境内でオブジェクトの力学をモデル化し、シミュレーションする時は、物理システム330は、地面情報(例えば、地面ジェネレータ350により生成された地面に関するデータ)を使用する。例えば、転がる岩の例に戻ると、物理システム330は、該岩が丘の坂のような地面内に位置していることを識別することで、岩が丘を転がり落ちなければならないことを決定するようにしてもよい。
アニメーションシステム360は、オブジェクト又はゲーム環境の運動学的なアニメーションを、ゲームシステム300からの処理312に基づいて行うモジュールである。例えば、処理312が、ロボットアームが動いていることを示すと、アニメーションシステムはアームの運動学的な動作をアニメーションする。アニメーションシステム360は、特定のアニメーションタスクを実行するためのいくつかの特別なモジュールを含んでもよい。アニメーションシステム360は、オブジェクト又はゲーム環境の運動学的なアニメーションを行う際に、地面ジェネレータ350によって生成された地面に関する情報を、一要素として使用するようにしてもよい。
サウンドモジュール340は、ゲーム環境、六角形地面タイル又は一部の六角形地面タイル内で生じるアクションに対応した音を生成する。例えば、「川」のオブジェクトを含んだ六角形地面タイルの部分は、「流れる水」の音が対応するようにしてもよい。アニメーションシステム360からのアニメーションデータ又は地面ジェネレータ350からの地面情報を、サウンドモジュール340へ出力して、サウンドモジュール340が音を生成することを可能とするようにしてもよい。サウンドモジュール340は、音データをサウンドコントローラ212に送る。
グラフィックレンダリングモジュール370は、アニメーションシステム360及び地面ジェネレータ350からの画像をレンダリングし、ゲーム環境の映像を生成する。例えば、グラフィックレンダリングモジュール370は、アニメーションシステム360からシーンファイル及び地面ジェネレータ350から生成された地面を受け取る。グラフィックレンダリングモジュール370は、グラフィックデータをGPU204に送り、ディスプレィ制御装置208を介してディスプレィ(例えば、クライアント装置140のディスプレィ又はクライアント装置140に接続されたディスプレィ)上に画像をレンダリングする。
OS380は、コンピュータハードウェア及びソフトウェアリソースを管理する。特に、OS380は、プログラムとコンピュータハードウェア間の仲介者として動作する。例えば、OS380は、ユーザーインターフェース210からの入力を認識したり、ディスプレィ制御装置208への出力を送ったりするような、基本的なタスクを行うことが出来る。
コンテンツソース312は、多様な六角形地面タイルデータを有し、タイル定義モジュール260,オブジェクト情報モジュール262,パッチタイル定義モジュール264、及びパッチオブジェクト情報モジュール266を有している。コンテンツソース312は、六角形地面タイルデータを、地面ジェネレータ350からの六角形地面タイルデータの要求を受けて、地面ジェネレータ350に送る。例えば、特定の六角形地面タイル識別子に対応する六角形地面タイルデータの要求を受け取ると、コンテンツソース312は、該特定の六角形地面タイル識別子(及び/又は該六角形地面タイル識別子に関連した何らかのオブジェクト識別子)に対応した六角形地面タイルデータ(及び/又はオブジェクトデータ)を地面ジェネレータに送る。
タイル定義モジュール264は、各六角形地面タイルについての六角形地面タイル識別データ及び各六角形地面タイルの各配列を含む。図4を参照して以下に説明するように、各六角形地面タイルは、六角形地面タイルの多様な回転、六角形地面タイルの多様な照明条件などの、六角形地面タイルを使用する際の色々な方法である一つ以上の配列を持っている。タイル定義モジュール264は、各六角形地面タイルについて、完全な六角形地面タイルデータばかりか、この配列データを持っている。完全な六角形地面タイルデータは、六角形地面タイル識別子によって指定される六角形地面タイルに関する完全なデータセットである。例えば、完全な六角形地面タイルデータは、六角形地面タイルによって表される3Dトポロジーを示すデータ、六角形地面タイルの多様な特徴、多様な光の配列などを含んでいてもよい。六角形地面タイルの特徴は、六角形地面タイル内の特定の位置にあって、六角形地面タイル内に含まれている、画像素子であり、道路、森、川、丘等などである。
オブジェクト情報モジュール262は、オブジェクト情報を格納する。オブジェクト情報は、ユーザのゲームキャラクタ、ノンプレイヤキャラクタ(「NPC」)及び他の相互的な素子(例えば、武器、道具、衣服、岩、ドアなど)など、ゲーム環境内のオブジェクトに関するデータである。オブジェクトは、六角形地面タイル又は六角形地面タイル内の位置と関連付けることができる。例えば、ゲームレベルエディタ112は、地面を設計する際に、六角形地面タイル内のある位置に道具を加えるようにしてもよい。この情報は、サーバー120が地面をクライアント装置140に送る際に、オブジェクトデータ内に含まれる。例えば、各オブジェクトは、オブジェクト識別子と関連つけられていてもよく、データオブジェクトは、地面内に含まれる各オブジェクトのオブジェクト識別子を含んでいてもよく、これにより地面ジェネレータ350は、コンテンツソース312からのデータ及びデータオブジェクトから地面を再構築することができる。
パッチは、ソフトウェアモジュール又はデータに対するアップデート又は追加であり、通常は、それらがメモリにロードされた後に、ソフトウェアモジュール又はデータに適用される。例えば、パッチは、ソフトウェアモジュール内の一つ以上のバグに対応するため、またソフトウェアモジュールに新たなコンテンツを加えるために、クライアント装置140により、該ソフトウェアモジュールのリリース及びダウンロードの数週間後に、ソフトウェアモジュールに適用するようにしてもよい。特別の実施例として、コンテンツソース312へのパッチは、「ジャングル」の六角形地面タイル、各既存の六角形地面タイルに対する新たな配列、又は帽子などの新たなオブジェクトのような、新しい六角形地面タイルデータ又はオブジェクトデータを加えるものでもよい。
パッチタイル定義モジュール264及びパッチオブジェクト情報モジュール266は、六角形地面タイルデータ及びオブジェクトデータにそれぞれ関与するパッチ情報を組み込む。例えば、クライアント装置140は、サーバー120又はコンテンツクリエータ110によって供給されるパッチなど、ネットワーク144上でパッチをダウンロードするようにしてもよい。クライアント装置140は、パッチをコンテンツソース312に送ってもよい。パッチタイル定義モジュール264はパッチ内に含まれる、新しい六角形地面タイルなど六角形地面タイルデータを、タイル定義モジュール260に組み込み、パッチオブジェクト情報モジュール266は、該パッチに含まれた、新しいオブジェクトなどのオブジェクトデータを、オブジェクト情報モジュール262に組み込む。
図4Aは、実施例に基づいて、図1のクライアント装置のメモリ内のソフトウェアモジュールで使用されるレベルデータ322のブロック図である。レベルデータ322は、地面を表し、地面を記述する地面データ324を含む。レベルデータ322は、地面と関連するゲーム目的又はオブジェクトのような、他の情報も含むようにしてもよい。実施例では、レベルデータ322は、サーバー120によってクライアント装置140に送られたデータオブジェクトである。レベルデータ322は、地面データ324が地面に横たわる全ての構造を表すように、互いに関して地面内での位置を示す図、又は他のデータ構造を含む。実施例では、位置には、中央位置から開始され、外側にらせん状に時計回りで番号が付され、地面ジェネレータ350はこの情報を使用して、地面を適切に、各六角形地面タイルが適切な位置にあり、各位置は、互いに関して地面内で適切に位置決めされるように、構築する。例えば、図において、位置は、「位置0」、「位置1」、‥‥「位置Z」のようにラベル付けされていてもよい。
地面データ324内の各位置は、六角形地面タイル識別子、六角形地面タイル方向、ゲームプレイパラメータのセットと関連している。位置と関連付けられた六角形地面タイル識別子は、地面ジェネレータ350が該位置に配置すべき六角形地面タイルを示している。六角形地面タイル方向は、使用する六角形地面タイルの特定の配列を示している。六角形は、六つの辺を有しており、3Dの六角形地面タイルは、上面、下面及び六つの面を持った六角形のプリスムである。こうして、六角形地面タイルの面の異なる面をそれぞれ同じ方向に向けることで(即ち、六角形地面タイルを60度の倍数だけ回転させる)ことで、各六角形地面タイルには、六つの取り得る回転配列が存在することとなる。六角形地面タイル方向は、どの回転配列が配置位置に関連しているかを示している。ゲームプレイパラメータセットは、実施例によるが、照明配列、配置位置に関連した多様なオブジェクト識別子、又は六角形地面タイル識別子によって表される六角形地面タイルなどを含んでいてもよい。照明配列は、図4Bを参照して以下に詳細に述べる。ゲームプレイパラメータセットに含まれるオブジェクト識別子は、地面ジェネレータ350が、六角形地面タイル識別子で表された六角形地面タイルの地面内に配置すべきオブジェクトを示している。ゲームプレイパラメータセットは、各オブジェクトを六角形地面タイル内の何処に配置すべきかを特定する情報を含んでいてもよい。別の実施例では、ゲームプレイパラメータセットは、一つ以上のゲームプレイ目的に関連するデータのような、追加的、又は異なるデータを含んでいてもよい。実施例では、六角形地面タイル識別子、六角形地面タイル方向、照明配列等の他に、一つの六角形地面タイルの全ての潜在的な配列(向き)が、それぞれ異なる六角形地面タイル識別子を持ち、地面データ324は単に、各配置位置について、六角形地面タイル識別子及びゲームプレイパラメータセットを持っている。
図4Bは、実施例に基づいて、図1のクライアント装置のメモリ内のソフトウェアモジュールで使用される六角形地面タイルデータのブロック図である。特に、図4Bは、実施例に基づいた六角形地面タイル定義データ260を示している。六角形地面タイル定義データ260は、一つの実施例では、各六角形地面タイルについての完全な六角形地面タイルデータを有し、それは六角形地面タイル識別子でインデックスされている。各六角形地面タイルは、六角形地面タイル識別子、端部制約、頂点制約、配置情報、照影法及び配列情報と関連付けられている。上述したように、六角形地面タイル識別子は、六角形地面タイルを他の六角形地面タイルと区別している。例えば、六角形地面タイル識別子は、英数字列でもよい。
端部制約は、六角形地面タイルの一つ以上の面に関する制約条件である。端部制約は、六角形地面タイルの面が、それが同じタイプの面を持った隣接する六角形地面タイルの面とのみ境界を接するように、該地面内で配置されるといった、面のタイプに関する制約を含んでいてもよい。例えば、第1の六角形地面タイルは、第1のタイプの面を持った第1の面を持っている。第1の六角形地面タイルは第1の面が、同様に第1のタイプの面を持った第2の六角形地面タイルの第2の面と、境界を接する位置でのみ地面内に配置されるようにしてもよい。特別の実施例では、もし第1の六角形地面タイルの第1の面が「川」のタイプの面である場合は、その第1の六角形地面タイルは、第2の六角形地面タイルと、第2の面が同様に「川」のタイプの面である場合に限り、第1の面と第2の面が互いに境界を接するように隣接する形で配置されるようにしてもよい。六角形地面タイルの各面は、一つ以上の端部制約を持っていてもよく、それは該面が境界を接する面のタイプを制限するようにしてもよい。しかし、あるタイプの面に関しては、これらの面のタイプを持った面は、どのような面のタイプのセットを持った他の六角形地面タイルと境界を接するようにしてもよい。例えば、実施例では、「草原」のタイプの面を持った面は、「草原」タイプ又は「森」タイプの面を持った、隣接する六角形地面タイルの面と境界を接するようにしてもよい。実施例によるが、六角形地面タイルの面は、追加的な端部制約をもっていてもよい。端部制約については、図6Bを参照して以下に更に述べる。
頂点制約は、六角形地面タイルの六つの頂点に関する制約条件である。六角形地面タイルの各頂点は、「低」、「中」及び「高」等の高さレベルを持っている。3種の高さレベル以上又は以下のレベルも使用してもよい。頂点の高さレベルは、該頂点の六角形地面タイルのトポロジーと対応している。例えば、六角形地面タイルの面の、両側の二つの頂点が「高」の場合、該六角形地面タイルのその面は、一つの頂点から他の頂点まで、丘の頂上のようなものとしてもよい。もし、二つの頂点の内、一つが「高」であり、他が「中」の場合、該六角形地面タイルのその面における六角形地面タイルのトポロジーは、丘や階段の脇のような、坂であったりしてもよく、又は、該六角形地面タイルの面に沿って「高」から「中」へトポロジーが変化する崖を含むようなものであってもよい。
実施例では、特定の高さレベルの頂点が隣接することの出来る高さレベルの限度が、頂点制約で規定されている。例えば、一つの実施例では、隣接する頂点同士は、互いに一つの高さレベルの相違を超えては、隣接することは出来ない。例えば、「低」は「高」と隣接することは出来ず、「低」又は「中」と隣接することが出来る。頂点制約は、隣接する頂点が同じ六角形地面タイル内なのか、又は隣接する六角形地面タイル内なのかによって異なるようにしてもよい。例えば、頂点制約は、隣接する六角形地面タイル内の隣接する頂点とは、同じ高さであるべきであるが、同じ六角形地面タイル内の隣接する頂点とは、一つまで高さレベルが変わってもよいと、してもよい。頂点制約は、図5を参照して以下に更に述べる。
配置情報は、六角形地面タイルを配置してもよい場所に関する追加的な情報である。いくつかの六角形地面タイルは、端部制約及び頂点制約に加えて、制約条件をもっていてもよい。例えば、実施例では、特定の照明配列を持った六角形地面タイルは、同じ照明配列を持った他の六角形地面タイル又は、照明配列のセットの部分集合である照明配列を持った六角形地面タイルのみと隣接して配置されるようにしてもよい。配置情報に含まれる、他の制約条件は、ゲーム目的、タイル内のオブジェクトその他に関係していてもよい。
照明法は、六角形地面タイルの照明配列及び該照明配列の実行についてのデータである。照明配列は、六角形地面タイルのそれぞれの6個の回転可能位置について存在している。更に、六角形地面タイルの6個の回転可能位置のそれぞれについて、照明条件のセットの中での、各照明条件についての照明配列があり、それらは、「朝」、「日中」、「午後」、「夕方」、「雨の日」、「夜間」など、一つ以上の異なる照明条件を含んでいる。例えば、四つの異なる照明条件を持った六角形地面タイルは、六角形地面タイルの6個の回転可能位置のそれぞれについて四つで、合計24個の照明配列を持っている。
照明法は、多様な方法で実行することができる。一つの実施例では、照明法は、イメージベース照明を用いて実行される。イメージベース照明(「IBL」)とは、光情報の全方位的な表現を画像として捉えるものであり、箱や球などの形状の上に投影される。形状としての、「ライトプローブ」は、地面内に配置され、環境からの光をシミュレートするのに使用される。六角形地面タイルは、該六角形地面タイルにくまなく配置された複数のライトプローブを含むようにしてもよく、リアルな照明を可能とする。実施例では、ライトプローブは、複数の六角形地面タイルと重なっていてもよく、例えば二つの六角形地面タイルの間の境界にあってもよい。ライトプローブは、二つに分かれており、各六角形地面タイルの一半で、それぞれ他の六角形地面タイルの光情報を提供する。
配列情報は、六角形地面タイルの六つの可能な回転位置に関するデータである。六角形地面タイルの各回転位置は異なってレンダリングされる。配列情報は、六角形地面タイルの六つの回転位置のそれぞれについて、画像データを含んでいる。例えば、一つの配列では、六角形地面タイルは、該六角形地面タイルの北に川を有しているが、一方、第二の配列では、該川は、六角形地面タイルの西部にある。これらの配列は、両方共に配列情報内に含まれている。実施例では、照明配列は、各回転配列が各照明配列についてのデータを含む形で、配列情報内に含まれている。上記したように、ある実施例では、各六角形地面タイルのそれぞれ可能な全体の変形は、それ自体の六角形地面タイル識別子を持っている。この実施例では、照明法及び/又は配列情報は、ちょうど一つの回転位置及び一つの照明条件を含み、他の回転位置及び照明条件は、六角形地面タイル定義データ260内の他の六角形地面タイル識別子と関連付けられている。
図5は、実施例に基づく、六角形地面の図である。地面は、地面内の19の位置に、非対称に配置された19の六角形地面タイルを有している。図5はまた、各六角形地面タイルの複数の頂点及び面のほか、7つのウエッジも含んでいる。図5は、ユーザのゲームキャラクタによって占められる六角形地面タイルである、占有六角形地面タイル502を含んでいる。
地面をレンダリングする際に、クライアント装置140は、ウエッジ510のように、地面の周囲の一部又は全部にウエッジを加えるようにしてもよい。ウエッジは、例えば三角の幾何学形状の、六角形地面タイル、又はその一部であり、ウエッジで境界付された六角形地面タイルの頂点制約に基づいて、地面を結合している。例えば、あるウエッジは、第1の頂点から第2の頂点に伸延する六角形地面タイルの面を境界付けている。第1の頂点は、「高」であり、第2の頂点は「中」であり、従って、ウエッジは、第1の頂点から第2の頂点へ、並行的に高度を変化させている傾斜した壁を含んでいてもよく、それはオブジェクトやゲームキャラクタ、特にユーザのゲームキャラクタが通過できない壁である。実施例では、地面ジェネレータ350等の、ゲームシステム300のモジュールが、レンダリング時よりはむしろ地面の構築時に、該地面に一つ以上のウエッジを加える。一つの実施例では、六角形地面タイルの頂点を境界付ける各ウエッジの頂点は、六角形地面タイルの頂点の高さレベルよりも大きな高さレベルを持つものである。
占有六角形地面タイル502は、ユーザのゲームキャラクタによって占められた六角形地面タイルである。地面をレンダリングする際には、ゲームシステム300は、一度に地面の一部のみをレンダリングするようにしてもよい。一つの実施例では、ゲームシステム300は、占有六角形地面タイル502及び該占有六角形地面タイル502と直接接する各六角形地面タイルをレンダリングする。例えば、占有六角形地面タイル502と六角形地面タイル506の間の六角形地面タイルはレンダリングされるが、六角形地面タイル506はレンダリングされない。これは、コンピュータリソースの節約及びアクティブメモリ又は処理能力上の限界を融通するために行ってもよい。他の実施例では、ユーザのゲームキャラクタの視線上の六角形地面タイルのみ、又は、占有六角形地面タイル502又は占有六角形地面タイル502と境界を接する六角形地面タイルと境界を接する六角形地面タイルなど、地面の他の六角形地面タイルの部分集合がレンダリングされてもよい。
いくつかの頂点制約を図5に示す。一つの実施例では、頂点515A〜Cのような、一点に集まっている頂点は、同じ高さレベルでなければならない。例えば、頂点515Bを持った六角形地面タイルが地面に加えられ、その頂点515Bの高さは「高」だったとすると、頂点515A、515Cを持った六角形地面タイルは、頂点515A、515Cの高さが同じ「高」である場合のみ、配置が可能である。他の実施例では、頂点515が他の境界を接する頂点515との間で、一つ以上の高さレベルを越えない場合にのみ、頂点515は、互いに境界を接することが出来る。
図6Aは、実施例に基づいた、六角形地面タイル605の地面高さ制約条件を示す図である。特に、いくつかの高さレベル605が示されている。各六角形地面タイルは、少なくとも二つの高さレベル605を持っており、ある実施例では三つ以上の高さレベル605を持っていてもよい。高さレベル605Aは、「低」高さレベルであり、高さレベル605Bは、「中」高さレベルであり、高さレベル605Cは、「高」高さレベルである。六角形地面タイル内に含まれる3Dトポロジーは、高さレベルの間で変化することが出来る。第1のタイルは、完全にレベル605Aである芝生であってもよい。第2のタイルは、高さが六角形地面タイル内でレベル605A〜605Bの間で変化する一連の丘であってもよい。第3のタイルは、六角形地面タイルの中心に位置する大きな山であってもよく、そこでは六角形地面タイルの周辺は低く、六角形地面タイルの中央は高く、その間のスペースは、中間である。
図6Bは、実施例に基づいた、六角形タイルの図である。図6Bは、六角形地面タイル506のいくつかの特徴と六角形地面タイル506を示している。六角形地面タイル506は、頂点615及び630を終端とする面610を有し、オブジェクト425及び川620を含んでいる。オブジェクト425は、六角形地面タイル506内に配置することの出来る相互的(インタラクティブ)なゲーム要素である。例えばオブジェクト425は、ユーザのゲームキャラクタが拾うことの出来る石であってもよく、近づくとユーザのゲームキャラクタを攻撃する敵であってもよい。実施例によるが、六角形地面タイルは、自動的に一つ以上のオブジェクトを含んでいたり、オブジェクトがゲームレベルエディタ112を介して六角形地面タイルに付加されたり、又はその両方が行われる。
川620は、六角形地面タイル506の面に向けて伸びる、六角形地面タイル506に含まれるトポロジカルな地形である。川620は、六角形地面タイル506の端部制約である。第2の六角形地面タイルは、川620が交差する面で六角形地面タイル506と接する形で配置され、また六角形地面タイル506と接する面に川の地形を持たなければならない。もし、ウエッジが、川620が交差する面に接するように配置される場合には、該ウエッジは滝又は、川に関連する他の素子を有するようにしてもよい。同様に、地面内に配置される六角形地面タイル又はウエッジは、それら接する六角形地面タイルの端部制約を満足する必要がある。他の端部制約の例としては、道がある。
面610で六角形地面タイル506と接するように配置される、被接続六角形地面タイルは、それに接する頂点615,630及び面610についての制約条件を満足する必要がある。一つの実施例では、被接続六角形地面タイルは、頂点615のように、第1の頂点は「L」又は「低」であり、第2の頂点は、頂点630のように、「M」又は、「中」であり、それぞれ対応する高さのレベルの頂点615、630と接する。図からも分かるように、各頂点は、高さレベルを持っており、隣接する頂点に対して一つを越える高さレベルを持った頂点は無い。
図7は、実施例に基づいて、ここで述べた技術を実行するための処理を示すフローチャートである。クライアント装置140は、702で、地面上の位置を含み、該位置に配置すべき三次元トポロジーの六角形地面タイルの、対応する六角形地面タイル識別子に対応した地面データを受け取る。例えば、クライアント装置140は、サーバー120からデータオブジェクトを受け取る。
クライアント装置140は、704で、地面データ内に含まれた、六角形地面タイルに対応する六角形地面タイル識別子データを引き出す。各六角形地面タイルの六角形地面タイル識別子データは、少なくとも該六角形地面タイルに隣接した配置に適した、隣接六角形地面タイルについての制約条件を含んでいる。制約条件は、例えば、頂点制約又は端部制約である。
クライアント装置は、706で、地面データ内に示された位置に六角形地面タイルを、互いに隣接する一つ以上の六角形地面の面が、該六角形地面タイルのそれぞれに関連する制約条件に従う形で、インスタンス化することで地面表現を生成する。六角形地面タイルのインスタンス化は、地面のレンダリングを含む。
実施例では、六角形地面タイル定義データは更に、複数の照明法を含んでおり、それぞれの照明法は、異なる照明条件での六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されている。
実施例では、六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいる。
実施例では、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいる。
実施例では、処理は、更に、クライアント装置140によって、一つ以上の六角形地面タイルの制約条件に従うことを決定することを含む。
実施例では、地面データは、コンテンツクリエータ110又はサーバー120等の、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいる。
実施例では、地面データは、更に、六角形地面タイルのそれぞれの方向を含んでいる。
実施例では、地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいる。例えば、ゲーム目的に基づいて、六角形地面タイル内に配置され得るオブジェクト又はキャラクタに、及びそれらが配置される可能性のある六角形地面タイル内に、多様な制限が設けられるようにしてもよい。
実施例では、六角形地面タイル定義データは、読み出し専用記憶媒体に格納されたオリジナルな六角形地面タイル定義データ及び、パッチ又は拡張パックの形で他の演算装置から受け取った追加的な六角形地面タイル定義データを有している。
実施例では、地面データは、少なくとも一つの六角形地面タイルに隣接するウエッジの配置について示している。
実施例では、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、クライアント装置140は自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定する。
上記した実施例は、ゲームシステムを参照して主に述べたが、実施例は、地図アプリケーションや配車アプリケーションなど、エンジニアリングソフトウェア、ナビーションソフトウェア、教育ソフトウェアなど、他の応用にも適用することができる。また、実施例は、研究アプリケーションにも適用することができる。
特定の実施例及び適用例が示され、述べられたが、発明はここで述べられた正確な構造及び構成に限られるものでは無く、当業者にとって自明な多様な変形、変更、変化が、ここでの開示の範囲及び精神から離れない限り、ここで述べられた方法及び装置の配置、運転及び詳細について可能であることを理解すべきである。

Claims (20)

  1. 演算装置で地面の位置を含んだ地面データと、対応する、該位置に配置すべき三次元トポロジーの六角形地面タイルの六角形地面タイル識別子を受け取り、
    前記地面データに含まれる、六角形地面タイルに対応する六角形地面タイル定義データを引き出し、前記六角形地面タイルのそれぞれについての六角形地面タイル定義データは、少なくとも該六角形地面タイルに隣接して配置するに適した隣接六角形地面タイルに関する制約条件を含んでおり、
    前記地面データに示された位置に、六角形地面タイルの一つ以上の面を、六角形地面タイルのそれぞれに関連する制約条件に従って互いに隣接させる形で、六角形地面タイルをインスタンス化することで、地面の表現を生成する、
    ことから構成される方法。
  2. 請求項1記載の方法において、前記六角形地面タイル定義データは、更に複数の照明法を含んでおり、前記照明法のそれぞれは、異なる照明条件で、六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されていることを特徴とする。
  3. 請求項2記載の方法において、前記六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいることを特徴とする。
  4. 請求項3記載の方法において、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいることを特徴とする。
  5. 請求項1記載の方法において、該方法は更に、前記演算装置が、一つ以上の六角形地面タイルの前記制約条件に従うことを決定することを含む。
  6. 請求項1の方法において、前記地面データは、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいることを特徴とする。
  7. 請求項1記載の方法において、前記地面データは、更に、前記六角形地面タイルのそれぞれの方向を含んでいることを特徴とする。
  8. 請求項6記載の方法において、前記地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいることを特徴とする。
  9. 請求項1記載の方法において、前記六角形地面タイル定義データは、読み出し専用記憶媒体に格納されたオリジナルな六角形地面タイル定義データ及び、パッチ又は拡張パックの形で他の演算装置から受け取った追加的な六角形地面タイル定義データを有していることを特徴とする。
  10. 請求項1記載の方法において、前記地面データは、少なくとも一つの六角形地面タイルに隣接するウエッジの配置について示している、ことを特徴とする。
  11. 請求項1記載の方法において、該方法は更に、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定する、ことを有する。
  12. 処理装置によって処理が実行可能なコンピュータプログラム指示を格納するコンピュータ可読記録媒体であって、前記処理は、
    演算装置で地面の位置を含んだ地面データと、対応する、該位置に配置すべき三次元トポロジーの六角形地面タイルの六角形地面タイル識別子を受け取ること、
    前記地面データに含まれる、六角形地面タイルに対応する六角形地面タイル定義データを引き出すこと、前記六角形地面タイルのそれぞれについての六角形地面タイル定義データは、少なくとも該六角形地面タイルに隣接して配置するに適した隣接六角形地面タイルに関する制約条件を含んでおり、
    前記地面データに示された位置に、六角形地面タイルの一つ以上の面を、六角形地面タイルのそれぞれに関連する制約条件に従って互いに隣接させる形で、六角形地面タイルをインスタンス化することで、地面の表現を生成すること、
    から構成されることを特徴とする。
  13. 請求項12記載のコンピュータ可読記録媒体であって、前記六角形地面タイル定義データは、更に複数の照明法を含んでおり、前記照明法のそれぞれは、異なる照明条件で、六角形地面タイルのオブジェクトの外観を決定するためのライトプローブの集合によって示されていることを特徴とする。
  14. 請求項13記載のコンピュータ可読記録媒体であって、前記六角形地面タイル定義データは、更に、各六角形地面タイル内のオブジェクトの位置を示す配置情報を含んでいることを特徴とする。
  15. 請求項14記載のコンピュータ可読記録媒体であって、六角形地面タイル定義データは、更に、六角形地面タイルのそれぞれに適応可能な変化を表した配列情報を含んでいることを特徴とする。
  16. 請求項12記載のコンピュータ可読記録媒体であって、前記処理は更に、前記演算装置が、一つ以上の六角形地面タイルの前記制約条件に従うことを決定することを含むことを特徴とする。
  17. 請求項12記載のコンピュータ可読記録媒体であって、前記地面データは、他の演算装置から受け取ったゲームレベルデータに含まれており、該ゲームレベルデータは、更に、少なくとも該ゲームレベルの目的を含んでいることを特徴とする。
  18. 請求項12記載のコンピュータ可読記録媒体であって、前記地面データは、更に、前記六角形地面タイルのそれぞれの方向を含んでいることを特徴とする。
  19. 請求項17記載のコンピュータ可読記録媒体であって、前記地面データは、更に、対応する各位置に現れるオブジェクト又はキャラクタに関する制約を示すゲームプレイパラメータを含んでいることを特徴とする。
  20. 請求項12記載のコンピュータ可読記録媒体であって、前記処理は更に、地面での位置が地面データから失われた六角形地面タイルに関する情報に対しては、自動的に、該位置に隣接した六角形地面タイルに関連した制約条件に従って、失われた位置情報に関する六角形地面タイルを決定することを含むことを特徴とする。
JP2020030237A 2019-03-18 2020-02-26 電子ゲーム表示における、地面の六角形の断片化 Active JP6857268B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/356832 2019-03-18
US16/356,832 US10918943B2 (en) 2019-03-18 2019-03-18 Hexagonal fragmentation of terrain in computer game

Publications (2)

Publication Number Publication Date
JP2020155110A JP2020155110A (ja) 2020-09-24
JP6857268B2 true JP6857268B2 (ja) 2021-04-14

Family

ID=72516247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020030237A Active JP6857268B2 (ja) 2019-03-18 2020-02-26 電子ゲーム表示における、地面の六角形の断片化

Country Status (2)

Country Link
US (1) US10918943B2 (ja)
JP (1) JP6857268B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961055B2 (en) * 2001-05-09 2005-11-01 Free Radical Design Limited Methods and apparatus for constructing virtual environments
US20050035964A1 (en) * 2002-11-05 2005-02-17 Heenan Phillip J. Multi-level hex mapping method
US7613331B2 (en) * 2003-01-22 2009-11-03 Increment P Corporation Recording medium storing map information, map information processing device, map information processing system, map information processing method, map information processing program and recording medium storing the map information processing program
JP5736501B1 (ja) * 2014-12-22 2015-06-17 グリー株式会社 制御方法、情報処理装置、プログラム、サーバ装置及び情報処理システム
US20160274887A1 (en) * 2015-03-19 2016-09-22 Zynga Inc. Modifying client device game applications
US10115240B2 (en) * 2015-08-11 2018-10-30 Amazon Technologies, Inc. Virtual area generation and manipulation
US10520644B1 (en) * 2019-01-10 2019-12-31 Emerson Paradigm Holding Llc Imaging a subsurface geological model at a past intermediate restoration time

Also Published As

Publication number Publication date
US20200298111A1 (en) 2020-09-24
US10918943B2 (en) 2021-02-16
JP2020155110A (ja) 2020-09-24

Similar Documents

Publication Publication Date Title
US11620800B2 (en) Three dimensional reconstruction of objects based on geolocation and image data
US20210248831A1 (en) Methods and system for managing and displaying virtual content in a mixed reality system
US11335058B2 (en) Spatial partitioning for graphics rendering
US11724191B2 (en) Network-based video game editing and modification distribution system
Corrêa et al. iWalk: Interactive out-of-core rendering of large models
WO2022184128A1 (zh) 虚拟对象的技能释放方法、装置、设备及存储介质
US20220040573A1 (en) Transferring from a cloud-hosted instance of an application to a local instance
US20230410433A1 (en) Navigation mesh update
US20230338854A1 (en) Object processing method and apparatus in virtual scene, device, and storage medium
JP7465960B2 (ja) ピアツーピアマルチプレイヤークラウドゲーミングアーキテクチャ
WO2022257692A1 (zh) 虚拟场景变换方法、装置、设备、存储介质及程序产品
WO2017167167A1 (zh) 模型对象构建的方法、服务器及系统
JP6857268B2 (ja) 電子ゲーム表示における、地面の六角形の断片化
JP7009523B2 (ja) 電子ゲーム表示における、破壊の詳細における動的なレベル
JP6929418B2 (ja) マクロを用いた電子マップ編集
US11896898B2 (en) State stream game engine
US11446580B2 (en) Rule-based level generation in computer game
JP3791912B2 (ja) 仮想ウォークスルーに関するデータを構成し送達するためのシステムおよび方法
CN114307150A (zh) 虚拟对象之间的互动方法、装置、设备、介质及程序产品
McAnlis et al. HTML5 Game Development Insights
Xie The research on mobile game engine
WO2024032104A1 (zh) 虚拟场景中的数据处理方法、装置、设备、存储介质及程序产品
US11426664B1 (en) Dynamic destruction of game objects
US20240108984A1 (en) Game asset optimization over network at optimizer server
Szczerbiński Faculty of Computer Science and Management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210304

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210319

R150 Certificate of patent or registration of utility model

Ref document number: 6857268

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250