頂点カラー ペイント用の 2 テクスチャ マテリアルを作成する方法

このページでは、Unreal Engine でメッシュの頂点カラー ペイントで使用する 2 テクスチャ マテリアルを作成して使用する方法の具体例を示します。

頂点カラー ペイントは強力なツールであり、その使用方法は多岐にわたります。「2 層テクスチャ ブレンドのマテリアルを作成する」 ページでは、テクスチャと頂点カラー ペイントのブレンドのためにマテリアルを設定する方法の基礎について説明しています。このページでは、この技法についてより具体的なユース ケースが示されています。 このドキュメントでは頂点カラー ペイント用に、岩テクスチャと苔テクスチャをブレンドした 2 テクスチャ マテリアルを作成する方法を示します。このブレンドしたテクスチャを作成すると、メッシュ ペイント モードを使用して、このテクスチャをレベル内の任意のメッシュにペイントできます。[Mesh Paint Mode (メッシュ ペイント モード)] パネルの設定を調整して、メッシュ全体でテクスチャが可変になるように、範囲を拡大/縮小することができます。

苔のない岩

苔のある岩

手順

マテリアルを作成する

  1. コンテンツ ブラウザで [Add New (新規追加)] > [Material (マテリアル)] をクリックします。

    画像をクリックするとフルサイズで表示されます。

  2. 新しいマテリアルに名前を付けます。この例では 「M_2TextureMoss」 とします。

    rename-material.png

  3. 新規マテリアルをダブルクリックして マテリアル エディタを起動します

TextureSample ノードを作成して設定する

  1. まず始めにテクスチャを追加する必要があります。グラフ内を右クリックして検索バーに「texture」と入力します。結果のリストから [TextureSample] を選択します。これでグラフに TextureSample ノードが追加されます。

    画像をクリックするとフルサイズで表示されます。

  2. この例では 4 つ必要なので、TextureSample ノードをコピーして 3 回貼り付け、合計 4 つの TextureSample ノードを作成します。

    画像をクリックするとフルサイズで表示されます。

  3. グラフの上部付近に 2 つ、グラフの下部に 2 つが並ぶようにこれらのノードを配置します。こうすることで、お互いの区別が付きやすくなり、整理しやすくなります。

  4. まず ディフューズ テクスチャを選択します。上部の TextureSample ノードのいずれかをクリックします。左側の [Details (詳細)] パネルから [Material Expression Texture Base (マテリアル式テクスチャ ベース)] セクションを見つけます。[Texture (テクスチャ)] プロパティのドロップダウンをクリックし、テクスチャを選択します。検索バーに「rock_b」と入力します。結果から [T_Rock_Basalt_D] を選択します。

    画像をクリックするとフルサイズで表示されます。

  5. 上部にある 2 番目の TextureSample ノードをクリックします。[Details (詳細)] パネルの [Texture (テクスチャ)] ドロップダウンをクリックし、検索バーに「grass」と入力します。この結果から [T_Ground_Grass_D] を選択します。これが 2 つ目のディフューズ マップです。

    画像をクリックするとフルサイズで表示されます。

  6. 次に 法線 マップを選択する必要があります。下部にある最初の TextureSample ノードをクリックします。[Texture (テクスチャ)] ドロップダウンをクリックして、「rock_b」と再度入力します。今回は [T_Rock_Basalt_N] を選択します。これは手順 4 と 5 で選択したディフューズ マップに対応する法線マップです。

    画像をクリックするとフルサイズで表示されます。

  7. 最後の TextureSample ノードをクリックし、[Details (詳細)] パネルの [Texture] ドロップダウンをクリックして「grass」と再度入力します。この結果から [T_Ground_Grass_N] を選択します。

    画像をクリックするとフルサイズで表示されます。

Vertex Color (頂点カラー) ノードと Linear Interpolation (線形補間) ノードを追加する

  1. 次に Vertex Color ノードを追加します。グラフ内を右クリックして検索バーに「vertex」と入力します。この結果から [VertexColor] を選択します。VertexColor ノードが追加された際に、赤色の Input Data ノードであることに注目してください。

    画像をクリックするとフルサイズで表示されます。

  2. この VertexColor ノードは、線形補間または「lerp」に基づいて 2 つのディフューズ マップを結合します。グラフ内を右クリックして検索バーに「linear」と入力します。結果から LinearInterpolate を選択します。これでグラフに Lerp ノードが追加されます。

    画像をクリックするとフルサイズで表示されます。

  3. この例では 2 つ必要なので、最初の Lerp ノードをコピーして 2 番目のノードをグラフに貼り付けます。1 つはディフューズ マップ用で、もう 1 つは法線マップ用です。これらの Lerp ノードをグラフ内の適切な位置に配置します。

    画像をクリックするとフルサイズで表示されます。

  4. 岩 (Rock) のディフューズ マップの RGB 出力からドラッグして、最初の Lerp ノードの A 入力に接続します。

    画像をクリックするとフルサイズで表示されます。

  5. 苔のディフューズ マップの RGB 出力からドラッグして、最初の Lerp ノードの B 入力に接続します。これでディフューズ マップが両方とも接続されました。

    画像をクリックするとフルサイズで表示されます。

  6. 岩の法線マップの RGB 出力からドラッグして、2 番目の Lerp ノードの A 入力に接続します。苔の法線マップの RGB 出力からドラッグして、2 番目の Lerp ノードの B 入力に接続します。これで法線マップが両方とも接続されました。

    画像をクリックするとフルサイズで表示されます。

  7. それぞれの Lerp ノードの Alpha 入力は、岩と苔のテクスチャの混合を制御する変数です。Alpha 値は VertexColor ノードで制御するので、VertexColor ノードの一番上の出力からドラッグして、ディフューズの Lerp ノードの Alpha 入力に接続します。法線の Lerp ノードについても同様の操作を行います。

    画像をクリックするとフルサイズで表示されます。

  8. ここでディフューズの Lerp ノードの出力からドラッグして、マテリアル ノードの Base Color 入力に接続します。法線の Lerp ノードの出力からドラッグして、マテリアル ノードの Normal 入力に接続します。

    画像をクリックするとフルサイズで表示されます。

残りのマテリアル プロパティを設定する

  1. 次に、Material ノードの残りのプロパティを設定します。Material ノードの Metallic 入力からドラッグして、検索バーに「constant」と入力します。Constant を選択して定数ノードを追加します。この値はデフォルトの 0 のままにします。

    画像をクリックするとフルサイズで表示されます。

  2. また、スペキュラの値を 0 にする必要があるため、マテリアル ノードの Specular 入力を、手順 1 で作成した定数ノードに接続します。

  3. Roughness 値は 0 より大きくする必要があるため、元の定数ノードをコピーアンドペーストして別のノードを作成します。Roughness 入力を 2 番目の定数ノードに接続します。この Constant ノードを選択し、[Details (詳細)] パネルで値を 1 に設定します。

    画像をクリックするとフルサイズで表示されます。

最終結果

ここまでで、頂点カラー ペイントと併用してメッシュのテクスチャをペイントできるマテリアルが完成しました。[Brush (ブラシ)] セクションの [Strength (強度)] 設定を調整して、メッシュに苔のテクスチャをどれだけペイントするかを調節できます。ペイントの対象 (広範囲か細かいディテールかなど) に応じて、[Radius (半径)] 設定を上げ下げして調整できます。[Falloff (フォールオフ)] 設定を調整すると、テクスチャにハードエッジを作成したり、徐々にフェードアウトさせたりできます。

rock-after-vertex-paint.png

このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.3 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル