Unityのメタリックマップで部分的に金属感を変える方法

投稿者: | 2019-10-26

UVレイアウトに色を塗る


一枚の画像を使ってモデルの金属感を部分的に変えます。

まずBlenderで普通のCubeの展開図を作りました。
Export UV Layoutでこれを画像として保存できます。

GIMP2などのペイントソフトをつかって、これに色をつけます。

同じ方法で色を部分的に変えられますが、今回は金属感を変えます。

新しいレイヤー画像をこの上に重ねて、展開図を見ながらイラストをかけます。

画像の重なりが表示されるウィンドウもあるのでわかりやすいです。

その右にブラシなどのツールが見えます。簡単なイラストなら直感的に描けます。

金属感の違いを色で表現

Unityでは金属感の違いをテクスチャのRedチャンネルとアルファチャンネル(透明度)で表現できます。
赤の成分が多いほど金属っぽくなり、不透明であるほど表面がなめらかになります。画像の中でそれらに変化をつけて、モデルの表面に貼り付けることで、モデルの金属感を部分的に変えるのです。
この画像はメタリックマップと呼ばれます。

今回はわかりやすく、なめらかさだけを変えてみましょう。
左側の部分は金属っぽさ(Metallic)となめらかさ(Smoothness)を最大にするために、不透明な赤で塗りつぶしました。
そして、右側の部分は同じ色で、不透明度を半分くらいに設定して塗ります。

金属っぽさを抑えたいときはRチャンネルの値を下げて、暗めの赤にすればいいだけなので簡単です。

ツールボックスの一番左上の矩形選択ツールで塗りつぶしたい場所を選択し、バケツのようなマークの塗りつぶしツールでクリックすると、選択された色と不透明度で塗りつぶされます。

「背景」と書かれている、展開図の横にある目のマークをクリックして消すと展開図は表示されなくなります。

この画像を保存するときに、「可視レイヤーの結合」にチェックを入れると、目のマークがオンになっている画像だけ1つの画像に統合されて保存されます。

Unityでモデルの金属感を変更

UnityのデフォルトのCubeに新規マテリアルをつけます。
通常は、マテリアルの設定画面にある、「Metallic」「Smoohness」のバーを動かして金属感を変えますが、これではモデル全体に同じ値が適用されます。


これはどちらも0なので金属感のないモデルに見えます。手前にある赤いランプの光がほとんど反射しません。


Metallicを最大にすると赤い光が最大限反射されます。しかし、表面が荒いので反射光が拡散しています。つまり、鏡のようにはっきりした像を結びません。


Smoothnessを最大にすると反射光がくっきりします。背景色も反射していますね。

下、横は暗く、上は青色です。


Smoothnessを下げるほど反射光が広がっていきます。

金属感を部分的に変える

GIMPで作った画像をUnityにインポートします。透明なはずの部分が黒く表示されていたら、画像をクリックしたインスペクタで、Alpha Is Transparencyにチェックをいれます。

そして、この画像をマテリアルのMetallicの左にある四角形にドラッグアンドドロップします。

Smoothnessは最大にしました。

モデルの金属感が部分的に変わっているのがわかります。

左右の色は同じですが、左のほうがくっきりと反射しているので見た目がかなり違います。


MetallicとSmoothnessが両方1のCubeと、Metallicは1でSmoothnessが0.5のCubeをとなりに並べてみました。
見た目が似ていますね。

本当にSmoothnessが少し上がっているか見てみましょう。


0だと反射光が拡散しています。



Smoothnessを上げたので、少し反射光が絞られました。

そしてこれが、メタリックマップを適用したモデルの、不透明度を半分くらいにした方の面です。

少しなめらかになっているのがわかります。

コメントを残す

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