苔ありと苔なしのテクスチャを作ってテレインを塗り分ける

投稿者: | 2020-04-05


https://www.textures.com/からダウンロードしたテクスチャに苔と濡れ感を付けて、テレインを塗り分けてみました。

地面のテクスチャ画像から、色を表す「ディフューズマップ」、金属感を表す「メタリックマップ(マスクマップ)」、凹凸感を表すバンプマップをそれぞれ苔なし苔ありの2タイプずつ作ります。

まずダウンロードした地面の画像をPhotoshopで開いて、「画質調整 -> カラー -> 色の置き換え」や自動選択ツールなどを使って、溝や凹みの暗くなっている部分だけが白くて、その他が黒い画像を作りました。

これをマスク1とします。

凹み部分を黒で塗りつぶして、フィルタをかけて苔っぽくしました。

これをマスク2とします。

新しく元々の地面の画像を開いて、画像の中の暗い部分の色をスポイトで取り、その上に新しいレイヤーを作って不透明度を下げて、その色で塗りつぶします。

このレイヤーの描画モードを「カラー比較(暗)」にすると、濡れて色が暗くなっているような色になります。

その上に新規レイヤーを作って、このレイヤーを濃い緑で塗りつぶし、レイヤーマスクを付けます。

マスク1を開いて Ctrl + Aで全選択してコピーし、地面の画像のファイルに戻って、一番上のレイヤーのレイヤーマスクサムネールをAlt + 左クリックして白黒表示モードにし、ペーストします。このレイヤーだけを表示してみます。

描画モードを「通常」にして、下にある濃い地面の画像と合わせると、溝に苔が生えた画像ができます。

苔ありのDeffuseマップができたので、PNG形式などで保存します。元々の地面の画像が苔なしのDeffuseマップです。

メタリックマップを作る

UnityではメタリックマップのR値で金属っぽさを、アルファ値で表面のなめらかさを表現できます。
G、B値は無視して白黒にしてみます。なので、白いところは金属で黒いところは非金属になり、透明なところは表面が粗くなって不透明なところはなめらかになります。
なめらかな部分は光をはっきりと反射してきらっと光るので、濡れているようにも見えると思います。

まず、マスク1を開いて複製し、片方は非表示にするなどして変更せず取っておき、もう片方を Ctrl + I で白黒反転し、色の置き換えでその黒い部分を白に近づけます。

(マスク3)

新しいファイルを作るか他のレイヤーを非表示にして、新しいレイヤーを作って、真っ黒より少し明るい色で100%不透明に塗りつぶし、これに付ける新規レイヤーマスクにマスク3をコピペします。

これを、苔なしのメタリックマップとしてPNG形式で保存しました。全体が少しだけ金属的で、石の部分より溝やへこみの部分のほうが少し粗くなっています。
全体の不透明度はUnityで変更できます。

次に苔ありのメタリックマップを作ります。
こちらは苔にかかった水が下に落ちて苔は濡れていないので、表面が粗くなっている感じにしようと思いました。さらに、苔の中に不透明な点々を作って水滴のようにしてみます。

まず、新しいファイルを作るか他のレイヤーを非表示にして、真っ黒な画像にフィルターの粒子テクスチャをつけて、白い点々を作ります。

(この点々が小さすぎてUnityでは見えませんでしたが、一応続けます。)

これにマスク2を付けて、さらにその下に真っ黒なレイヤーを置くと、苔の部分だけ白い点々があってそれ以外は真っ黒な画像ができました。


シャドウ・ハイライトを調節して、点々がより白くなるようにしました。

(マスク4)

新しく苔なしのメタリックマップを開いて、その上に真っ黒のレイヤーを置いて、マスク2を適用します。

こうすることで、真っ黒な苔の部分ができます。苔を完全に非金属にして他の部分と金属感に差を付けようと思いました。

この2つのレイヤーを統合した画像に、レイヤーマスクを適用してこのレイヤーマスクにマスク2をコピペし、このマスク2を白黒反転します。

さらにその上に真っ黒なレイヤーを描画モード「通常」で作成し、マスク4を適用します。

これで、苔の部分が透明になって、その中に不透明な黒い点々ができた画像になるはずです。


拡大すると黒い点々が見えます。

これを保存して苔ありのメタリックマップにしました。

バンプマップを作る

バンプマップを使うと、白い部分が浮き出て、黒い部分が凹んだように見えます。

元々の地面の画像を新しく開き、イメージ -> モード からグレースケール画像にすると、凹んでほしい溝などが暗い画像になったので、これをそのまま、苔なしのバンプマップにしました。


この画像の上にレイヤーを作って、暗めの白で塗りつぶし、マスク2を適用します。

すると、苔の部分が浮き出るようなバンプマップになります。

この上にさらに真っ白なレイヤーを作って、マスク4を適用します。


すると、水滴の部分が真っ白になりました。

これを苔ありのバンプマップにしました。

Unityでテレインを塗り分ける

これらの6つの画像をUnityでインポートして、苔なし苔あり用に2つのテレインレイヤーを新規作成します。


バンプマップを選択して、インスペクタで、Texture Typeを「Normal map」にし、Create from Grayscaleにチェックをいれて、Bumpinessで凹凸具合を調節しApplyしました。

Bumpinessはかなり低めにしたほうが自然になります。苔なしと苔ありで同じ値にします。

片方のテレインレイヤーを選択して、インスペクタに苔なしか苔ありかどちらかの3つのテクスチャをドラッグアンドドロップします。メタリックマップはMask Mapに入れます。

マスクマップではメタリックマップのR値とアルファ値に加えて、G値でアンビエントオクルージョンを、B値でディテールマップのマスクを設定できます。
Channel Remappingの項目を開いて、各値の範囲を設定できます。Redはそのままで、Alphaの最大値は下げます。苔ありよりも苔なしの方が低くなるようにして適当な値にしておきます。
今回はG、B値を無視したので、GreenとBlueの最小値を1にしておきます。

残った3つの画像を使って、もう片方のテレインレイヤーも同様に設定します。
Sizeの値を苔なしと苔ありで同じ値にすると、何度塗り直しても枠や凹みの位置は変わらず、濡れ感や苔だけが変わったようになります。

シーンにテレインを新規作成します。

インスペクタのTerrainコンポーネントの上部にある5つ並んだメニューの右端からテレインの設定を変更できます。

Terrain WidthとTerrain Lengthでテレインのサイズを変更しました。


次に左から2番目をクリックして、「Edit Terrain Layers…」ボタンをクリックして「Add Layer…」から2つのテレインレイヤーを追加します。


テレインレイヤーを追加するとそのサムネイルが表示されるので、使いたいテレインレイヤーのサムネイルをクリックして、テレインをブラシで塗り分けることができます。


テレインレイヤーの各値を変更するとシーンに反映されるので、シーンを確認しながら値を変更できます。




水がこぼれている感じを表現したりできます。

ブラシのOpacityを下げて、苔なしとありの中間の状態にもできます。

コメントを残す

メールアドレスが公開されることはありません。