私たちは、マテリアルと表面の外観オブジェクトを使用して、没入感のあるリアルな屋内および屋外環境を作成します。マテリアルがなければ、このシーンには興味深い深さ、シルエット、照明があるかもしれませんが、私たちのマテリアルとテクスチャシステムを使用することで、部屋に命を吹き込み、世界にリアリズムの次元を加えることができます。
これらの物理ベースのレンダリング(PBR)マテリアルは、木材のような表面が現実世界での木材のように見え、反応し、反射する理由です。このセクションでは、デモで使用されるマテリアルのパレットを作成するために私たちが経た決定とプロセスのいくつかを説明します。Beyond the Darkデモと同様に、私たちはマテリアルにリアルな外観と感触を求め、いくつかの異なるアプローチを通じてそれを達成しました。
私たちのテクスチャとマテリアルを構築するプロセスは、次の3つの領域に分けることができます:
- メッシュ用の1:1またはユニークなマテリアルのための表面の外観オブジェクト、例えば大理石の像。
- MeshPartsのための共有トリムマップ用の表面の外観オブジェクト、例えば家具の繰り返し可能な木製トリムの詳細。
- パーツや地形のための共有マテリアル用のマテリアルバリアント、例えば暖炉と地面の両方に対して石畳を置き換えるフラッグストーン。

計画、再利用、予算
プロジェクトを開始する際には、一貫性と再利用のためのマテリアルアートディレクションについて考慮してください。すべてのプラットフォームとデバイスには、テクスチャに使用できるメモリの量に制限があるため、事前の計画がゲーム内のテクスチャの数を管理するのに大いに役立ちます。
ゲームの外観と感触を考慮する際、私たちは意図的に職人スタイルの家を選び、少数のマテリアルを広範なアセットに再利用できるようにしました。小さな額縁や家具から大きな建築要素まで。

基本に還元すると、アメリカン・クラフトマンの特徴は、シンプルでクリーンなラインと自然な木のトーンであり、木材と大工の芸術性が中心に立つことを可能にします。これらの特徴により、家具や建築要素に対して1セットの木製トリムテクスチャマップを使用でき、モデルを比較的低ポリに保つことができます。このことを念頭に置いて、以下に示すトリムマップテクスチャセットを作成することにしました。

表面の外観とトリムマップ
トリムマップは、さまざまなアセットに適用できるシンプルな繰り返し可能なテクスチャです。トリムマップはゲーム内で多くの重労働を行い、完全にタイル状のテクスチャと、Substance Painterのようなプログラムでオブジェクトをペイントすることで得られる1:1テクスチャセットの間のギャップを埋めます。前述の木材マテリアルはトリムマップとして設定されており、異なるメッシュで再利用でき、各メッシュはUVを創造的にレイアウトすることで同じトリムテクスチャを活用できます。



さまざまなスケールやオブジェクトにわたってトリムマップテクスチャセットを使用する場合は、テクスチャを比較的クリーンで、繰り返しとして簡単に認識できる詳細がないように保つようにしてください。


過剰な詳細の例として、BaseColorマップに汚れを追加したいとしましょう。テクスチャの不自然な方向や引き伸ばされたUVがどれほど早く目立つかを見てください。

アセットが本当に重い汚れ、摩耗、または汚れの蓄積を必要とする場合は、その特定のメッシュ専用の1:1マップを使用する方が良いでしょう。トリムマップを使用する際の追加情報については、トリムシートを作成するセクションをBeyond the Darkのドキュメントで参照してください。
これらのトリムマップを使用して、単一の表面の外観ノードをパッケージ化し、以下に示すすべてのアセットにトリムを適用できます。


ティントは、表面の外観ノードとマテリアルバリアントをさらに活用する別の方法です。SurfaceAppearance.ColorMapにアルファマスクを追加し、SurfaceAppearance.AlphaModeをオーバーレイに設定することで、BrickColorまたはColor3を使用してオブジェクトに視覚的な変化を与えることができます。


アルファマスクは、作成方法に関係なく、SurfaceAppearance.ColorMapにマージされ、標準のRGBテクスチャからRGBAに変更されます。アルファマスク内の値やレベルを調整して希望のティントレベルを得ることができますが、少しの工夫で素晴らしい結果を得ることができます。

このレザーの例では、高さマップといくつかの傷や摩耗の跡をブレンドしてアルファマスクを作成しました。


これらの2つのマップは、最終的なRGBAを作成するためにアルファマージノードに送られ、オーバーレイ表面の外観ノードで使用されます。




テクスチャサイズ
テクスチャを大幅に再利用することに加えて、テクスチャメモリの使用量を抑えるために他の技術を適用できます。使用に基づいてテクスチャサイズを減少させることができます。たとえば、Surface AppearanceオブジェクトのSurfaceAppearance.ColorMap、SurfaceAppearance.RoughnessMap、およびSurfaceAppearance.MetalnessMapの解像度を1または2倍下げても、視覚的な忠実度を失うことはありません。多くの場合、SurfaceAppearance.MetalnessMapは空白のままにしておくことができ、これは純粋な黒/非金属表面になります。

Substance Designerでは、出力をリサイズする最も簡単な方法は、最終出力ノードの直前にTransformation 2Dノードを追加し、そのノードのベースパラメータセクション内で出力サイズを調整することです。


さまざまなマップのリサイズを数回繰り返し、スタジオでアセットを視覚的に検査することで、さまざまなサイズのアセットに対して十分に耐えられる場所に到達するのに時間がかかります。このプロセスを使用することで、アートディレクションに必要な視覚的品質を失うことなく、許容できる最小のテクスチャサイズに落ち着くことができます。
これらのいくつかの技術を使用することで、テクスチャ予算を管理し、美しい体験を維持することができます。
ベースマテリアル
私たちは、パーツ、地形、およびメッシュをこのデモで並行して使用したため、デフォルトの組み込みマテリアル、マテリアルバリアント、および新しくリリースされたマテリアルマネージャーツールを利用して、さまざまなパーツと地形の表面がPBRテクスチャのメッシュの外観と感触に一致するようにしました。
ベースマテリアルは、そのまま使用することも、新しいバリアントとして変更することもできます。多くの場合、木材のベースマテリアルは非常に役立ち、テクスチャメッシュに合わせて色を調整するだけで済みます。

マテリアルバリアント
ゲームには、土砂降りの間の屋外環境が含まれているため、私たちは地面が濡れて泥だらけに感じるようにしたいと考えていました。これは、カスタムマテリアルを使用して新しいマテリアルバリアントをいくつか作成することで達成しました。これにより、マルチ、大小の砂利、泥、さらにはそれぞれの浅い水たまりバージョンを塗ることができました。
マテリアルバリアントは、ユーザーが任意のデフォルトマテリアルに使用されるテクスチャを再定義できるようにし、地形やパーツで使用されるマテリアルをカスタマイズする機会を大いに提供します。

マテリアルバリアントは、マテリアルの湿ったバージョンと乾いたバージョンを作成するためにも使用されます。これは、ポーチの屋根の下で乾燥し、庭の雨にさらされると濡れるコンクリートやフラッグストーンのハードスケープなどの表面に役立ちます。
マテリアルバリアントの作成は、マテリアルマネージャー内で行うことができます。名前が示すように、マテリアルマネージャーは、デフォルトとマテリアルバリアントの両方を1か所で管理することもできます。
マテリアルマネージャーが開くと、ウィンドウの左上にあるサークルプラスボタンをクリックして新しいバリアントを編集および追加します。名前を追加する際は、デフォルトのマテリアルから新しいマテリアルバリアントを簡単に見分けられるように、名前の後に_MVのサフィックスを追加することをお勧めします。
新しいマテリアルに最も関連するベースマテリアルを選択します。ベースマテリアルフィールドは、摩擦、密度、重量、ヒット効果、足音の音などに影響を与えるマテリアルの物理特性として考えることができます。

なぜマテリアルバリアントを作成するのか?マテリアルバリアントは、ベースマテリアルをオーバーライドすることで、そのマテリアルのすべての特性を継承しますが、視覚的な特性は除きます。これは、マテリアルバリアントがデフォルトマテリアルの物理的挙動、例えば密度を継承することを意味します。また、コンクリートにユニークな音響を追加するなどの将来の追加も自動的に継承されます。この場合、コンクリートマテリアルのほぼすべての特性を継承する新しい湿ったコンクリートバリアントを作成したいと考えています。
ベースマテリアルが物理特性に関連している場合、テクスチャマップは視覚特性です。テクスチャマップは、PBRレンダリングパイプラインを通じてマテリアルと光がどのように相互作用するかをレンダラーに指示します。ベースマテリアルフィールドは、新しい視覚特性でオーバーライドされるデフォルトマテリアルを定義します。この場合、コンクリートベースマテリアルをオーバーライドすることに進みます。
新しい「Concrete_Wet_MV」を作成したので、シーンで使用できるようにデフォルトのコンクリートマテリアルをオーバーライドする必要があります。そのためには、新しいMVをクリックし、オーバーライドを設定トグルをクリックします。

これで、シーン内のコンクリートを使用するすべてのものが新しいオーバーライドを使用するようになり、地形に塗ったコンクリートも含まれます。この例外は、そのオブジェクトに特にリストされた「マテリアルバリアント」を持つパーツです。

地形にさまざまな表面を持たせるために、濡れて水たまりのあるものを含め、約10のデフォルトマテリアルをオーバーライドしました。これは、最終的な地形で目指していた雨に濡れた外観に必要でした。


利用可能なすべてのマテリアルオプションとツールを使用することで、作成できる可能性は無限大です。少しの前思考と計画を行うことで、ゲームのテクスチャを予算内に保ちながら、驚くべきマテリアルを作成できます。
