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

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

Windows
MacOS
Linux

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

Rock without Moss

Rock with Moss

手順

実行されている内容

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

    クリックしてフルサイズ表示。

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

    RenameMaterial.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 (フォールオフ)] 設定を調整すると、テクスチャにハードエッジを作成したり、徐々にフェードアウトさせたりできます。

RockAfterVertexPaint.png

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback