デジタル地形の基礎
この記事では、デジタル地形作成の包括的な紹介をします。
デジタル地形とは?
デジタル地形は、ゲームやビジュアルエフェクトにおけるほとんどすべての屋外環境の基盤です。広大なファンタジーの風景、戦争で荒廃した戦場、異世界の異質な地表など、デジタル地形がどのように機能するかを理解することは、環境アーティスト、テクニカルアーティスト、シェーダプログラマにとって不可欠な知識です。
デジタル地形作成は、ストーリーテリングとゲームプレイの両方をサポートする信じられる風景を形作るために、芸術的なビジョンと技術的なツールを組み合わせたものです。山や谷の彫刻から、浸食パターン、表面素材、植生の分布、大気の背景の定義まで、地形はシーンの視覚的アイデンティティとリアリズムを確立する上で中心的な役割を果たします。
最新のツールにより、アーティストは、プロシージャル技術、シミュレーションベースの侵食、自然の地質学的プロセスを模倣したレイヤーマスクシステムを使用して、複雑な景観を生成することができます。これにより、クリエイターは環境のあらゆる側面を高いレベルで制御しながら、広大で詳細な世界を効率的に構築することができます。
この記事では、デジタル地形作成の背後にある基本的な概念を探求し、一般的なテクニックとワークフローについて議論し、ゲーム、映画、およびリアルタイムのアプリケーションのために professional 環境がどのように構築されるかを理解するための出発点を提供します。地形制作を始めたばかりでも、ワークフローに磨きをかけたい人でも、地形の基本をしっかりと理解することで、より説得力のある、視覚的に魅力的な世界を作ることができます。
ハイトマップ
ハイトマップは、ほとんどすべてのリアルタイム地形システムのバックボーンです。グレースケールの画像で、通常は正方形で2のべき乗の解像度(512×512、1024×1024、2048×2048など)で、各ピクセルの明るさが標高値を表します。白=高い、黒=低い、グレー=その中間。
When an engine or tool reads a heightmap, it takes a flat grid of vertices and displaces each one vertically by the corresponding pixel value. The result is your terrain mesh. In other words, the terrain geometry is reconstructed directly from the brightness values of the image. This approach is extremely efficient, which is why heightmaps are widely used in real-time engines such as Unity, Unreal Engine, and many proprietary rendering systems.
ここで重要なのはビット深度です。標準的な8ビットのグレースケール画像は、256の可能な値(0〜255)を持っています。これは、荒れた地形には適していますが、斜面や緩やかな丘陵地では、目に見える「段差」が発生する可能性があります。このようなアーティファクトは、地形表面の微妙な帯として現れます。このため、ほとんどの professional ワークフローでは、16 ビットのハイトマップ(65,536 レベル)、あるいは 32 ビットの浮動小数点データを使用することがよくあります。
より高いビット深度が重要であるもう1つの理由は、地形データは侵食シミュレーション、フィルタリング、ブレンディングなどの複数の処理ステップを通過することが多いからです。これらの各処理は、精度が低すぎると丸め誤差が生じます。より高い精度で作業することで、地形が複雑な修正後も滑らかな勾配と自然な遷移を維持できるようになります。
ハイトマップや地形システムを扱う際には、いくつかの重要なプロパティや技術的な考慮事項があります。これらの側面を理解することは、信じられる風景を実現し、良好なパフォーマンスを維持し、地形作成中に現れる可能性のある一般的な問題を回避するために非常に重要です。以下のポイントでは、ハイトマップの動作に影響を与える主な要因のいくつかと、一般的な地形ワークフローでハイトマップをどのように使用すべきかについて説明します:
決議
1kmの地形をカバーする1024×1024のハイトマップでは、1mあたりおよそ1ピクセルの精度になります。クローズアップされたゲーム環境では、これは粗すぎることが多く、特に小さな崖、浸食チャネル、地形カットなどの詳細なフィーチャが必要な場合はそうです。詳細度の高い環境では、4096×4096またはそれ以上の解像度を使用することができますが、これはメモリ使用量と処理要件を増加させます。
世界規模
ハイトマップの解像度は、シーン内の地形が実際にどの程度の大きさであるかについては何も示しません。512×512 のハイトマップは、エンジン内部で定義されたスケール値によって、小さな丘、谷、または山脈全体を表す場合があります。この柔軟性により、アーティストは同じ地形データを異なるスケールで再利用することができますが、それは同時に、信じられるプロポーションとリアルな地形特徴を維持するためには、適切なスケーリングが不可欠であることを意味します。
タイリング
大規模なオープンワールドは、しばしばタイルに分割され、それぞれが独自のハイトマップを持ちます。このアプローチにより、エンジンは地形データを動的にストリーミングし、巨大な風景を効率的にレンダリングできます。しかし、タイルの境界をシームレスに保つには、エッジピクセル値に注意する必要があります。小さなミスマッチでさえ、地形メッシュに目に見える継ぎ目や亀裂を生じさせます。そのため、多くの professional ワークフローでは、隣接するタイルが同一の境界データを共有するように、専用のツールやエクスポートパイプラインを使用しています。
これらの基本を越えて、ハイトマップは、法線マップ、スプラットマップ、バイオームマスク、およびマテリアル、植生の配置、および環境エフェクトを制御するプロシージャル分布などの追加の地形データと組み合わされることがよくあります。これらのシステムは視覚的な複雑さとリアリズムを追加しますが、ハイトマップ自体はランドスケープの形状と構造を定義する基本的なレイヤーのままです。
地形データの生成
ゲーム、シミュレーション、またはビジュアルエフェクト用の地形を作成する場合、ハイトマップ自体をどこからか取得する必要があります。長年にわたり、ハイトマップデータを生成するための一般的なアプローチがいくつか登場しており、それぞれに長所、限界、理想的な使用ケースがあります。実際には、ほとんどの professional ワークフローは、リアリズム、アーティスティックコントロール、および制作効率の間で最高のバランスを達成するために、複数のテクニックを組み合わせています。 World Creator のようなツールは、これらのアプローチを統合するために特別に設計されており、アーティストは高速でリアルタイムのワークフローで地形を生成、修正、改良することができます。大まかに言えば、ハイトマップの作成には主に3つの方法があります:
手続き的生成
プロシージャル生成は、地形を作成するための最も広く使われているテクニックの1つです。これは、数学的アルゴリズムに依存して自動的に地形を生成し、多くの場合、比較的少ない手作業で驚くほど自然な結果を生成します。ほとんどのプロシージャル地形システムの中心は、Perlinノイズ、Simplexノイズ、Worleyノイズ、そしてドメインワープフラクタルノイズのようなより高度なバリエーションなどのノイズ関数です。これらのアルゴリズムは、自然環境に見られる不規則な複雑さを模倣した擬似ランダムパターンを生成します。フラクタル・ブラウン・モーション(fBm)として知られる技法で、異なる周波数と振幅のノイズを何層にも重ねることによって、アーティストは大規模な地形と表面の小さなディテールの両方を含む地形を作成することができます。
World Creator のようなツールは、プロシージャル生成技術を多用していますが、直感的なノードまたはレイヤーベースのワークフローで提供しています。手作業で数学的なノイズグラフを作成する代わりに、アーティストは地形レイヤー、フィルタ、プロシージャルなマスクをリアルタイムで組み合わせて、すばやく風景を形作ることができます。
しかし、生のノイズだけでは説得力のある地形はほとんどできません。山や谷を生成することはできても、その結果は合成的であったり、過度にカオスであったりすることが多いのです。そこで、侵食シミュレーションが非常に重要になります。
最新の地形ツールには、水理侵食、熱風化、土砂堆積などの高度な侵食シミュレーションが含まれています。これらのシステムは、水が何千回も繰り返しながら地形を横切って流れ、谷を削り、低地に土砂を堆積させるなど、自然の地質学的プロセスをシミュレートします。その結果、地形の信憑性が高まり、地質学的にもっともらしく感じられます。多くの場合、1回の侵食パスで、単純なノイズベースの地形が、現実世界の山脈や河川システムによく似た風景に変わります。
写真測量と実世界データ
高さマップデータのもう一つの強力な情報源は、実際の標高データセットから得られます。政府、研究機関、および宇宙機関は、衛星測定、レーダースキャン、および航空調査を使用して、地球の表面をマッピングするために数十年を費やしてきました。
米国地質調査所(USGS)やNASAなどの組織は、地球の大部分をカバーするデジタル標高モデル(DEM)データを一般に公開しています。最も広く利用されているデータセットの1つはSRTM(Shuttle Radar Topography Mission)で、およそ30メートルの水平解像度で全球の標高データを提供しています。地域によっては、さらに高解像度のデータセットが存在し、精度は1メートル以上に達します。
シミュレーション、ビジュアライゼーション、大規模なオープンワールドゲームなどで実際の場所を再現するなど、プロジェクトで地理的に正確な環境を必要とする場合、実世界の地形データは非常に貴重なものとなります。
World Creator のようなツールは、DEM データを直接インポートしてストリーミングすることができます。 マップタイラー)を作成し、アーティストがプロシージャルフィルタ、浸食システム、地形シェーピングツールを使ってさらに加工できるようにします。これにより、現実世界の風景をゲーム制作パイプライン用に拡張、スタイル化、最適化できます。
しかし、実際の標高データにはいくつかの課題もあります。データセットはノイズが多かったり、欠落したパッチが含まれていたり、スキャンによるアーチファクトが含まれていたりします。さらに、実際の風景は通常、ほとんどのゲームで実用的なサイズよりもはるかに大きいため、制作環境で使用する前に、多くの場合、再スケーリング、トリミング、フィルタリング、またはスタイライズを行う必要があります。
そのため、DEMデータがそのまま使用されることはほとんどありません。その代わりに、アーティストがプロシージャルツールや手動編集を使って改良を加えるベースレイヤーとして使用されるのが一般的です。
手彫りの地形
プロシージャル生成や実世界のデータセットが強力な出発点となる一方で、手作業によるスカルプトは、地形を作成するための最も直接的で芸術的な表現方法の1つです。
このアプローチでは、地形アーティストは、伝統的な彫刻家が粘土を扱うように、デジタル彫刻ツールを使って手作業で風景を形作ります。自然の形状を近似するアルゴリズムに純粋に依存するのではなく、アーティストが意図的に地形の特徴をデザインすることで、構図、ストーリーテリング、ゲームプレイの要件をサポートします。
Game engines such as Unreal Engine and Unity include built-in terrain sculpting tools that allow artists to modify landscapes directly within the engine. This workflow is especially useful because it enables a tight feedback loop between art direction and gameplay design. Artists can sculpt terrain features and immediately test how they affect player navigation, visibility, and level flow.
World Creator のようなソフトウェアは、プロシージャル生成とインタラクティブな地形編集を融合させたハイブリッドなアプローチを提供します。アーティストは、ブラシやフィルタを使用して手動で地形をシェーピングしながら、リアルタイムの侵食シミュレーション、プロシージャルなマスキング、および高度な地形シェーピングツールの恩恵を受けることができます。これにより、アーティストはクリエイティブなコントロールを維持しながら、プロシージャルな地形生成のスピードとリアリズムを活用することができます。
ヒーローの岩層、崖、洞窟の入り口など、非常に詳細な地形フィーチャのために、アーティストはしばしばZBrushや Mudbox. のような高解像度のスカルプトツールを使用します。これらのアセットは、非常に高いディテールでスカルプトされ、法線マップにベイクされ、静的メッシュとしてエクスポートされます。そして、ハイトマップから生成されたベース地形の上に配置されます。
最新の地形パイプラインでは、プロジェクトがこれらのテクニックのうちの1つだけに依存することは稀です。その代わりに、 professional のワークフローでは、プロシージャル生成、実世界データ、手動スカルプトを組み合わせて最良の結果を達成しています。
World Creator のようなツールは、これらのワークフローを単一の環境にまとめるために特別に設計されています。プロシージャルな地形生成、侵食シミュレーション、リアルタイム編集、ゲームエンジン用のシームレスなエクスポートパイプラインを組み合わせることで、アーティストはアーティスティックなコントロールを完全に維持しながら、大規模で詳細なランドスケープを効率的に構築できます。
地形トポロジーとメッシュ生成
ハイトマップは、それ自体では単に画像データとして保存された標高値の集まりです。それだけでは、目に見える風景を表すものではありません。ゲームエンジンやデジタルコンテンツ制作(DCC)ツールがこのデータを解釈し、実際のジオメトリに変換して初めて、地形は3D環境になります。
そのために、エンジンはメッシュを構築し、ハイトマップに保存された高さの値に従って頂点を垂直に変位させます。このメッシュの構造方法(トポロジー)は、パフォーマンスや柔軟性、表現できる地形の特徴に大きな影響を与えます。時間の経過とともに、いくつかの一般的な地形トポロジーのアプローチが登場し、それぞれが異なる問題を解決するように設計されています。
このような構造を理解することは、リアルタイムエンジンでの地形の挙動や、レンダリングの効率性、どのような景観を作成できるかに影響するため、重要です。
レギュラーグリッド(クアッドメッシュ)
現代のゲームエンジンで最も一般的に使用されているアプローチは、クワッドメッシュとして実装されることが多い、規則的なグリッドです。この構造では、ハイトマップの各ピクセルが地形メッシュの頂点に直接対応します。これらの頂点は隣接する頂点と接続され、四角形または三角形の均一なグリッドを形成します。
このアプローチは非常に予測しやすく、管理も簡単です。メッシュ構造はハイトマップの解像度を直接反映するため、レベルオブディテール(LOD)システム、ストリーミング、地形チャンキングを適用するのが簡単です。また、テクスチャ座標や地形レイヤーにきれいにマッピングされるため、リアルタイムレンダリングに最適です。
Game engines such as Unreal Engine (Landscape system) and Unity (Terrain system) both rely heavily on this grid-based structure. Tools like World Creator are designed around the same concept, generating high-resolution heightmaps that integrate seamlessly with these engine terrain systems.
規則的なグリッドの主な欠点は、ジオメトリを地形全体に均等に割り当てることです。つまり、平らなエリアではジオメトリのディテールがはるかに少なくて済むにもかかわらず、平らな平原では複雑な山脈と同じ数の三角形が使用されます。例えば、1024×1024のグリッドにはすでに100万以上の四角形が含まれており、非常に大きな地形を扱う場合にはコストが高くなります。
このような非効率性にもかかわらず、グリッドベースの地形はシンプルで信頼性が高いため、ほとんどのリアルタイムアプリケーションで主流のソリューションとなっています。
三角不規則網(TIN)
地形表現のより適応的なアプローチは、三角不規則ネットワーク(TIN)です。一様なグリッドを使用する代わりに、TINは地形表面を分析し、地形の複雑さに基づいて三角形を動的に配置します。
平坦なエリアは三角形の数が少なくなり、急な斜面や鋭い尾根、複雑な曲率を持つエリアはより詳細な三角形分割が行われます。この結果、地形の実際の形状をより効率的に表現するメッシュになります。
純粋に幾何学的な観点から見ると、この方法は必要な部分だけにディテールを集中させるため、均一なグリッドよりもはるかに効率的です。
しかし、TINメッシュはリアルタイム環境で生成、更新、管理するのがはるかに複雑です。また、テクスチャレイヤーにきれいにマッピングできず、LODシステムの実装も難しく、動的な地形編集も難しくなります。
このような理由から、TINベースの地形が最新のリアルタイムゲームエンジンで使用されることはほとんどありません。代わりに、GIS(地理情報システム)、地形解析ソフトウェア、およびレンダリング効率がリアルタイム要件の制約を受けない特定の映画プリビジュアライゼーションパイプラインでよく見られます。
興味深いことに、 World Creator, BiteTheBytes の開発者は、かなり早い段階でこのコンセプトの実験を行いました。2006年に、彼らはTINベースの地形システムを高度に最適化したCLODDYと呼ばれる新しい地形アルゴリズムを開発しました。その目的は、地形の複雑さに基づいてメッシュ密度を動的に適応させることができる、より効率的な地形表現を提供することでした。
ボクセル地形
地形表現に対するまったく異なるアプローチは、ボクセルベースの地形です。ボクセルシステムは、2Dハイトマップとして地形を保存する代わりに、ボリュームセルの3次元グリッドとして世界を表現します。このため、ボクセル地形は、各水平座標に対して単一の標高値しか格納できないハイトマップ地形とは根本的に異なります。
このため、ボクセルシステムは、洞窟、トンネル、オーバーハング、浮島、完全に破壊可能な環境など、ハイトマップでは表現できない特徴を表現できます。
ボクセル地形は『Minecraft』のようなゲームによく登場しますが、『No Man's Sky』や『7 Days to Die』、さまざまなプロシージャルサンドボックスゲームでは、より高度な実装が行われています。
しかし、ボクセル地形には大きな技術的課題が伴います。ボクセルデータ自体は、レンダリングする前に可視メッシュに変換する必要があります。この処理には通常、マーチングキューブやデュアルコンターリングなどのアルゴリズムが使用されます。このアルゴリズムは、ボクセルグリッドを解析し、基礎となるボリュームに近似したポリゴンサーフェスを生成します。
この変換ステップは、特に大規模なワールドや非常に詳細な地形の場合、計算コストが高くなる可能性があります。また、ボクセル地形のテクスチャリングは、ハイトマップベースの地形システムに比べて複雑になる可能性があります。このような理由から、ボクセル地形は一般的に、そのユニークな機能(破壊可能性や地下探索など)がプロジェクトに不可欠な場合にのみ使用されます。
地形のテクスチャ
地形のテクスチャリングは、リアルタイムグラフィックスにおける技術的に興味深い課題の1つです。小道具やキャラクタとは異なり、地形は通常非常に広い領域をカバーし、時には何平方キロメートルにも及ぶことがあります。このスケールのため、従来のUVアンラッピングやハンドペインティングのテクニックはほとんど実用的ではありません。単一の地形メッシュは数百万の頂点を含み、単一のテクスチャマップが高解像度で合理的にカバーできる範囲をはるかに超えることがあります。
その代わりに、地形テクスチャリング システムは、レイヤーマテリアル、プロシージャル ブレンディング、およびストリーミング テクニックに依存して、メモリ使用量を管理しながら視覚的に豊かなサーフェスを作成します。最新の地形ツール(World Creatorを含む)は、これらのレイヤーとマスクをプロシージャルに生成するように設計されており、アーティストは自然なバリエーションを維持しながら、広大な風景を効率的にテクスチャリングできます。リアルタイムの地形テクスチャリング パイプラインで使用される一般的なアプローチはいくつかあります。
レイヤーベースのブレンド(スプラットマップ)
ゲームエンジンで最も広く使われているテクニックは、レイヤーベースのマテリアル ブレンディングで、多くの場合スプラットマップで実装されています。スプラットマップはテクスチャで、通常RGBAとして保存され、各チャンネルは特定の地形マテリアルのブレンドウェイトを表します。たとえば
地形上のどのポイントでも、エンジンはスプラットマップから値を読み取り、対応するマテリアルをブレンドします。これにより、地形サーフェイスは、突然切り替わるのではなく、異なるマテリアル間でスムーズに移行します。マテリアルレイヤー自体は通常、地形サーフェス全体で繰り返される小さなタイリングテクスチャで構成されています。このため、単一のテクスチャで広大な領域をカバーできるため、メモリ効率が非常に高くなります。
しかし、タイリングには、目に見える繰り返しパターンという問題があります。同じテクスチャがあまりに頻繁に繰り返されると、地形が人工的に見えることがあります。これを軽減するために、最新の地形シェーダは、繰り返しを分割し、視覚的なバリエーションを導入するように設計されたさまざまなテクニックを使用することがよくあります:
確率的タイリング
目に見える繰り返しパターンを減らすランダム化されたテクスチャサンプリング。
マクロ・バリエーション・テクスチャ
地形全体に施された大規模なカラーバリエーションで、均一な表面を分断。
複数スケールのディテール法線
細かい法線マップと粗い法線マップを組み合わせて、近くでも遠くでもディテールを維持します。
高さベースのブレンドと変位
テクスチャ内部の高さ情報を使って、岩と岩の間の亀裂にたまった汚れなど、素材間の遷移をより自然に表現。
プロシージャルテクスチャ
スプラットマップを手動でペイントする代わりに、最新の地形パイプラインの多くはプロシージャルテクスチャリングに依存しています。このアプローチでは、マテリアルのブレンドは、地形自体から得られたデータを使用して自動的に生成されます。たとえば
傾斜角度
険しい崖のどこに岩が現れるかを決定します。
高度
山頂の雪線を定義。
曲率または侵食データ
隙間や谷間に汚れがたまる場所をコントロールします。
フローマップ
河床の土砂分布に影響。
プロシージャルなテクスチャリングは、ハイトマップが変更されるたびに地形が自動的に更新されるため、大規模なワールドでは非常にうまくスケールします。 World Creator などのツールは、このコンセプトに基づいて構築されています。スプラットマップを手動でペイントする代わりに、アーティストはマテリアルが表示される場所を制御するルールとマスクを定義します。これらのルールはプロシージャルであるため、地形はいつでも変更でき、マテリアルの分布はリアルタイムで即座に更新されます。このワークフローは地形制作を劇的にスピードアップし、大規模な環境でも一貫したマテリアルの配置を実現します。
メガテクスチャと仮想テクスチャ
最高のビジュアル忠実度を必要とするプロジェクトでは、地形サーフェス全体をカバーするユニークなベイクドテクスチャを使用する方法もあります。この手法では、地形上の各位置が独自のテクスチャデータを持つため、タイリングを完全に回避できます。歴史的には、このアプローチはメガテクスチャリング(MegaTexturing)として知られ、id Software社のid Techエンジンが最初に普及させました。最近のエンジンでは、Virtual Texturing(VT)システムによって同様のコンセプトが実装されています。
Virtual texturing allows extremely large textures—sometimes tens or even hundreds of thousands of pixels across—to be streamed dynamically. Instead of loading the entire texture into GPU memory, the engine loads only the visible tiles required for the current camera view. Engines such as Unreal Engine support Runtime Virtual Textures (RVT) and other streaming systems that make it possible to use very high-resolution terrain textures without exceeding memory limits.
トレードオフは、パイプラインが複雑になることです。アーティストは非常に大きなテクスチャデータセットを生成して維持しなければならず、地形はランドスケープ全体のディテールを維持するのに十分な解像度でベイクされなければなりません。このため、最近のワークフローの多くは、プロシージャル・レイヤー・ブレンディングをバーチャル・テクスチャリングと組み合わせることで、アーティストはレイヤーマテリアルの柔軟性を維持しながら、高解像度のサーフェスディテールの恩恵を受けることができます。
実際には、地形のテクスチャリングが単一のテクニックだけで処理されることはほとんどありません。その代わり、最新のパイプラインでは、プロシージャルマスク、レイヤーマテリアル、確率的変動、および仮想テクスチャリングシステムを組み合わせて、近距離でも広大なオープンワールドでも耐えられる、信じられる風景を作成しています。 World Creator のようなツールは、地形マスク、バイオーム分布、テクスチャレイヤーを自動生成することで、このプロセスの効率化を支援します。これにより、アーティストは、地形のすべての平方メートルを手動でペイントするのではなく、環境全体の形成と洗練に集中することができます。
サーフェスデータレイヤー
ハイトマップは地形の形状を定義しますが、それだけでは出発点にすぎません。最新の地形システムは、地形がどのように動作し、レンダリング時にどのように見えるべきかを記述する、さまざまな追加のサーフェスデータレイヤーを生成して保存します。
これらのセカンダリデータセットは、シェーダ、植生システム、物理、およびゲームプレイロジックが地形サーフェスにインテリジェントに反応できるようにするため、非常に重要です。多くの場合、この補助データは数学的分析やシミュレーションによってハイトマップから自動的に導き出されます。
World Creator などのツールは、地形作成中にこれらのレイヤーの多くを自動的に生成します。地形はプロシージャルに構築されるため、斜面、曲率、フローマップ、マスクなどの追加データをリアルタイムで計算し、テクスチャリング、オブジェクトの散布、バイオーム分布の定義に即座に使用できます。最も重要な地形データレイヤーには、次のようなものがあります:
法線マップ
法線マップは、各ポイントにおける地形表面の向きをエンコードします。法線マップは、高さの値を格納する代わりに、入射光に対する表面の向きを記述する方向ベクトルを格納します。
法線マップは、隣接するピクセルをサンプリングしてその間の傾きを計算することで、ハイトマップから直接導き出すことができます。このプロセスは、しばしば有限差分サンプリングと呼ばれ、表面の勾配を近似し、照明計算に適した法線ベクトルに変換します。
優れた法線データは、説得力のあるライティングに不可欠です。なぜなら、シェーディングシステムは、基礎となるメッシュが比較的単純であっても、小さなサーフェスの変化をシミュレートすることができるからです:
- 小さな石と小石
- ひび割れた土
- 岩石の欠片と割れ目
- 砂の波紋や土の模様
これらのディテールを地形メッシュに直接モデリングすると、何百万もの追加の三角形が必要になります。代わりに、法線マップはシェーディングレベルでこのマイクロジオメトリをシミュレートし、最小限のパフォーマンスコストではるかに高いビジュアル忠実度を提供します。
斜面マップ
地形情報のもう一つの重要な部分は勾配図です。
数学的には、勾配は単にハイトマップの勾配ですが、多くの異なるシステムで非常に有用であることがわかります。勾配マップは一般的に次のような用途に使用されます:
- マテリアルブレンド - 崖には岩のテクスチャを、平らな場所には草や土のテクスチャを適用できます。
- ゲームプレイのロジック - キャラクタが非常に急な路面を歩くことができない場合があります。
- 物理学とVFX - 水、破片、粒子が自然に下へ下へと移動します。
- 植生の配置 - 樹木や植物は比較的平坦な場所に生育する傾向があります。
World Creator のようなプロシージャル地形ツールは、自動テクスチャリングとバイオームの配置を行うために、勾配データに大きく依存しています。たとえば、典型的なルールでは、ある角度以上の斜面に岩石マテリアルを配置し、植生レイヤーは平坦な地域にのみ表示します。
これらのルールはプロシージャル(手続き的)なので、景観が変更されるたびに地形全体が即座に更新されます。
フローマップ
フローマップは、水が地表面を自然に移動する方向を表しています。
これらのマップは通常、侵食シミュレーションや地形の勾配分析から得られます。各ピクセルには、水がたどる下り坂の流路を表す方向ベクトルが格納されています。
フローマップは、レンダリングと環境デザインの両方で非常に便利です。フローマップは次のような用途に使用できます:
- 河川の水質改善
- 泥や湿った土のような湿ったものを置いてください。
- 谷や盆地での土砂堆積の誘導
- 瓦礫、流木、川の石など、環境に配慮した小道具の配置
World Creator, のような地形生成ツールでは、侵食シミュレーションプロセスの一部としてフローマップが自動的に生成されることがよくあります。侵食システムはすでに地形を横切る水の動きをシミュレートしているため、結果のフローデータを再利用して、材料の配置と環境ストーリーの両方を制御することができます。
これにより、川や堆積物、環境の細部が、物理的に信じられると感じられる場所に現れるようになります。
曲率マップ
曲率マップは、ある地点の地形表面が凸か、凹か、平らかを表します。
この情報は、自然の物質蓄積のシミュレーションに特に役立ちます。実際の環境では
- 谷や隙間などの凹んだ部分に土砂が溜まります。
- 尾根や峰などの凸面では、岩石が露出したままになる傾向があります。
曲率マップは、シェーダやプロシージャルシステムがこれらのプロセスを自動的に模倣することを可能にします。たとえば、曲率ベースのルールは、岩の多い地形の亀裂に汚れを追加したり、凹んだサーフェスにコケを適用したりします。
World Creator 曲率情報は内部で生成され、配信システムを通じて公開されるため、アーティストは非常に信憑性の高い地形マテリアルの遷移を作成できます。
アンビエントオクルージョンマップ
アンビエントオクルージョン(AO)は、地形サーフェス上の特定のポイントに到達する環境光の量を近似します。近くのジオメトリに囲まれている、または囲まれているエリアは、より少ない光を受け取るため、わずかに暗く表示されます。
地形の場合、AOは通常、地形形状に基づいて事前に計算され、ベイクされます。このシェーディング情報は、隙間、谷、斜面の底を微妙に暗くし、オブジェクトを視覚的に接地させ、風景に奥行きを加えるのに役立ちます。
この効果は微妙ですが、リアリズムには非常に重要です。これがないと、地形が平坦に見えたり、均一すぎることがあります。AOは事前にベイクされるため、視覚的な豊かさを大幅に向上させながら、ランタイムコストをほとんど追加しません。
浸食と土砂マップ
侵食シミュレーションでは、地形を横切る物質の動きを記述する追加のデータ層が生成されることがよくあります。
これには以下が含まれます:
- 堆積物の堆積場所を示す堆積物マップ
- 粒子が沈殿する場所を示す沈殿マップ
- 浸食の激しい地域を示す摩耗マップ
これらのデータセットは、土、砂利、露出した岩がどこに現れるべきかを自然に明らかにしてくれるため、マテリアルブレンドの推進に非常に役立ちます。
World Creatorの浸食システムは、内部的にこの種のデータを生成し、アーティストがプロシージャルなテクスチャリングやオブジェクトの配置に直接使用できるようにします。
これらの追加地形データレイヤー(法線、勾配、曲率、フローマップ、浸食マスク、アンビエントオクルージョン)は、単純な標高をはるかに超える重要な情報を提供します。これらの情報により、地形システムは自然プロセスをシミュレートし、プロシージャルなテクスチャリングを行い、植生を配置し、物理的に首尾一貫し、視覚的に説得力のある環境を作成することができます。
World Creator のような最新の地形ツールは、これらのデータセットを自動的に活用するため、アーティストは、高速で効率的な地形作成ワークフローを維持しながら、環境に対する強力なプロシージャル制御を行うことができます。
地形へのオブジェクトの配置
むき出しの地形メッシュは、風景の基礎にすぎません。ハイトマップで山、谷、平野が定義されていても、岩、木、草、低木、瓦礫、建物、その他無数の環境アセットが配置されるまでは、環境はまだ空虚に感じられます。これらの要素は、スケール、ストーリー性、生態学的コンテクストを提供し、単純な地形表面を信じられる世界に変えます。
しかし、手作業でオブジェクトを配置するのはすぐに非現実的になります。1平方キロメートルの密林には、草むら、岩、倒れた枝、その他の地面の乱れはもちろんのこと、何万本もの木が必要なこともあります。各オブジェクトを手作業で配置するのは、時間がかかるだけでなく、地形が変化したときに維持するのも困難です。
このため、最新の地形パイプラインは、ルール、地形データ、および環境ロジックによって駆動されるプロシージャル散布システムに大きく依存しています。 World Creator のようなツールは、これらのシステムを地形生成ワークフローに直接統合することで、アーティストはアーティスティックな制御を維持したまま、ランドスケープ全体を自動的に入力することができます。
葉と散乱システム
Most modern game engines provide built-in tools for placing large numbers of environmental assets efficiently. For example, the Unreal Engine includes Foliage Mode and the Procedural Foliage Tool and Unity offers its Terrain Detail and Tree systems.
これらのツールは、ブラシを使ってメッシュのインスタンスを地形表面にペイントすることができます。配置中に、スケールの変化、回転、密度、ランダム性などのパラメータを、あらかじめ定義された範囲内で制御することができます。これらのシステムは、 GPU インスタンス生成に依存しています。インスタンス生成により、数千から数十万の同一のメッシュを、最小限の描画コール数で効率的にレンダリングできます。インスタンス化なしでは、高密度の植生や地面の乱雑さのレンダリングは、リアルタイムのレンダリングにはすぐにコストがかかりすぎてしまいます。
このブラシベースのワークフローは、アーティストが構図を正確にコントロールしたいプレイヤーの近くのエリアなど、ヒーローエリアでは効果的です。しかし、大規模なオープンワールド環境を扱う場合、手動でアセットをペイントするのはやはり非現実的です。そのような場合は、プロシージャルなルールが必要になります。
ルールベースの散乱
高さ、勾配、曲率、浸食マスク、フローマップなど、先に説明した地形データレイヤーが非常に価値を持つのはこのためです。ルールベースの散布システムは、これらの地形プロパティを分析し、特定のオブジェクトを表示する場所を自動的に決定できます。たとえば、典型的な手続き型配置システムでは、次のようなルールを使用します:
傾斜が20度以下、かつ標高が400m以下の場所にオークの木を配置
傾斜が30度未満で、標高が400~800mの場所に松の木を配置
勾配が35度以上の場所に岩を配置
北向きに苔を配置
このようなルールにより、アーティストが手作業でオブジェクトを配置しなくても、生態学的に一貫性があり、物理的に信憑性のある風景を作成できます。 World Creator には、アーティストがまさにこのようなルールを定義できる、ディストリビューションに基づく強力なプロシージャルオブジェクト配置システムが含まれています。これらのディストリビューションは、複数の地形マスクとパラメータを組み合わせることができるため、アーティストは自然の生態系を模倣した方法で、植生、岩石、その他のアセットをすばやく風景に配置することができます。これらのルールはプロシージャルなので、地形が変わるたびにオブジェクトの配置が自動的に更新されます。
コリジョンとサーフェススナップ
地形上に配置されたオブジェクトは、地形サーフェスと正しく整列する必要があります。これは簡単に聞こえるかもしれませんが、いくつかの微妙な問題を正しく処理する必要があります:
原産地
すべての3Dアセットには、地形との相対的な位置を決めるピボットポイントがあります。ピボットがオブジェクトの底面にある場合、オブジェクトは自然に地形表面に収まるため、配置は簡単です。しかし、多くのアセットのピボットはメッシュの中心に位置しており、オブジェクトが地面に正しく収まるように垂直方向のオフセットが必要です。
通常のアライメント
地形の表面が完全に平らであることは稀です。オブジェクトを斜面に配置する場合、システムはオブジェクトを地形の法線にどのように合わせるかを決定しなければなりません。
- 小さな植物や瓦礫は、地形の勾配に完全に沿っているのがベストです。
- 岩や丸太は通常、地形に合わせて自然に傾きます。
- 斜面に大きく傾いている木は不自然に見えるからです。
沈没と浮遊
凹凸のある地形では、オブジェクトが地表からわずかに浮いて見えたり、部分的に地中に埋まって見えたりすることがあります。プロシージャルなスキャッタリングシステムでよく使われるトリックは、小さなランダムな垂直オフセットを適用して、オブジェクトをわずかに地面に沈めることです。これはメッシュの細かい交差を隠し、完璧にきれいに配置するよりも自然に見えることがよくあります。
散らばったオブジェクトの詳細レベル
すべての距離でフル解像度のメッシュを使用してレンダリングされた密林は、効率的にレンダリングすることは不可能です。そのため、散乱オブジェクトはLOD(Level of Detail)システムに大きく依存しています:
メッシュLOD
オブジェクトがカメラから離れると、自動的にメッシュの低ポリゴンバージョンに切り替わります。これにより、レンダリングコストが劇的に削減されると同時に、遠距離でのビジュアルクオリティが維持されます。
偽者の看板
非常に大きな距離では、単純化されたメッシュでさえ高価になることがあります。このような場合、樹木やその他の大きなオブジェクトは、しばしばビルボードの偽者に置き換えられます。これらは通常
- 交差する2本の大腿四頭筋
- カメラ向きスプライト
最新の偽者システムは、元の3Dモデルの複数の視野角を焼き付け、カメラの動きに合わせて説得力のある回転を可能にします。
距離淘汰
草や瓦礫のような小さなオブジェクトの場合、最も効率的な解決策は、ある距離を超えるとそれらを完全に削除することです。小さな地面の散乱は遠景のビジュアルにほとんど寄与しないため、シーンの知覚品質に影響を与えることなく安全に取り除くことができます。
Modern engines use structures such as Hierarchical Instanced Static Meshes (HISM) in Unreal Engine or similar GPU-driven culling systems to manage instance visibility efficiently.
グランドカバーと表面のブレンド
環境のリアリズムの最も微妙で重要な側面の1つは、配置されたオブジェクトとその下の地形表面との間の移行です。地面の上に岩が乗っているだけでは、人工的に見えます。実際には、オブジェクトは浸食、土壌の蓄積、植生の成長を通じて周囲の地形と相互作用します。この遷移を改善するために、いくつかのテクニックが一般的に使用されています:
地形頂点ブレンド
地形シェーダは、オブジェクトのベースの周りにマテリアルをブレンドして、その下の地面を暗くしたり汚したりすることができます。たとえば、大きな岩の下の領域は、より暗い土壌や乱れた地面を表示し、オブジェクトが環境に埋め込まれているように感じさせることができます。
地形変位
一部のハイエンドパイプラインでは、地形メッシュはテッセレーションやディスプレイスメントを使用して、オブジェクトのベース周辺でわずかに変形します。これにより、岩や木の根の周りに土が集まるような微妙なマウンド効果が生まれます。
しかし、この技法は計算コストが高く、通常はヒーローシーンや映画のようなショットに限られます。
デカールとメッシュデカール
オブジェクトの周りに配置された小さなデカールのテクスチャは、シミュレートすることができます:
- 泥はね
- 落ち葉
- ルートクラスター
- 汚れの蓄積
これらのディテールは、支柱と地形の間の硬い境界を分断します。
ストリーミングとランタイム人口
大規模なオープンワールド環境では、散在するすべてのオブジェクトが同時にメモリにロードされ続けるわけではないという別の課題があります。これを処理するために、エンジンは世界を空間セルまたはストリーミング領域に分割します。プレイヤーが環境内を移動すると、エンジンは距離に基づいてオブジェクトを動的にロードしたりアンロードしたりします。
プレイヤーを囲む一定の半径内のセルだけが、入力されたままになります。その半径を超えるオブジェクトは、メモリとレンダリング リソースを節約するためにアンロードされます。ロードされた領域とロードされていない領域の間の遷移を隠すために、ゲームは次のようなテクニックを使用します:
- 霧と大気遠近法
- 段階的なLOD遷移
- 距離ベースのフェージング
プロシージャルシステムの中には、さらに進んで、散在するオブジェクトを明示的に保存するのではなく、配置ルールに基づいて実行時に再生成するものもあります。これにより、大規模なインスタンスデータセットを避けることができますが、新しい地形領域がロードされるときに追加の生成時間が必要になります。
World Creator のようなツールは、地形生成、マテリアル分布、プロシージャルオブジェクト散乱を単一の環境に統合することで、このプロセス全体を合理化するのに役立ちます。アーティストは、勾配、高さ、曲率、浸食マスクなどの地形データを使用して配置ルールを定義できるため、広大な風景に植生、岩、環境ディテールを自動的に配置できます。
このプロシージャルなアプローチにより、手作業が劇的に削減されるとともに、結果として得られる環境が自然で一貫性があり、非常に大きな地形であってもスケーラブルに感じられることが保証されます。
実践的なヒント
スタートは大きく、ディテールは遅く
まず、大まかな地形と主要なランドマークの特徴をブロック分けしましょう。すぐに面白い崖の顔を造形したくなりますが、全体的な構成がうまくいっていなければ、その作業をやり直さなければなりません。洗練させる前に、主要な構造を確立しましょう。
本物の地質学を学ぶ
放射状に完全に対称な山、すべて同じ高さの尾根、源流のない川の谷など、人工的な地形であることがはっきりとわかる地形パターンもあります。グーグルアース(Google Earth)は非常に便利な無料リソースです。時間をかけて衛星画像を調べ、水がどのように土地を形作っているかを観察してください。ファンタジーの文脈であっても、地質学的な原則に基づいて地形を作れば、より現実的なものになります。
テクセル密度に注意
よくある間違いは、非常に広い範囲をカバーするために大きなハイトマップを使い、テクスチャのディテールが近くで濁って見えると驚くことです。16 km x 16 km をカバーする 4096x4096 のハイトマップは、〜4 メートルに 1 つのサンプルを提供します。しかし、マテリアルタイリングとディテール法線は、クローズアップのディテールをすべて提供する必要があります。コミットする前に、スケールを注意深く計画してください。
マスクを積極的に使用
侵食されたエリア、平坦なゾーン、稜線、急斜面、水が溜まったゾーンをカバーするためにマスクを使用します。これらのマスクは、葉の配置、アセットの散乱、天候エフェクト、ゲームプレイシステムに影響を与えるなど、さまざまな役割を果たします。豊富な地形データレイヤーへの投資は、あらゆるところで利益をもたらします。