BlenderのLayer Painterを使ってみた

# 1. 本記事の背景

Twitterで見かけた情報で、サブスタンスペインターのようなLayer Painterがオープンソース化とのこと。
サブスタンスは昔ライセンス買ったけどいまいち使わなかったので、もうライセンス更新してないのでちょうどいい。

https://twitter.com/happy_modeling/status/1464476761266155524

使ってみようかなぁと思いましたが、DocumentやTutorial 動画は過去のVersionばかりで操作が異なるため、「？？？」状態でした。
同じように困っている人がいるだろうし、BlenderのAdvent Calendarがさみしい状態だったので、記事を書くことにしました。

ということで、本記事は[「Blender Advent Calendar 2021」](https://qiita.com/advent-calendar/2021/blender)のなんと1日目です！

# 2. 使えるまでの準備

「2.1. 準備1 Layer Painter Addonダウンロード＆インストール」のみ必須です。
あとは好みに応じて準備してください。


## 2.1. 準備1 Layer Painter Addonダウンロード＆インストール

Addon のダウンロードもとはこちら。

https://github.com/joshuaKnauber/layer_painter

ダウンロードして、インストールしましょう。
**通常の方法でインストールできますので、アドオンのダウンロード方法を知らないかたはググってください。**

## 2.2. 準備2 Textureをダウンロードしておく。
私は以下を使わせていただきました。
もともと、錆Textureを使うつもりでしたが、最終の見た目が悪くSilverに置き換えています。
この記事の本文では錆Textureを使用する風で書いています。

~~https://www.sharetextures.com/textures/metal/rust-1/~~
https://www.sharetextures.com/textures/metal/silver/

## 2.3. ~~準備3 Brushの準備~~

Layer PainterはどうもうまくBrushを使えないようなので、この準備１は不要です。
せっかくなので、残しておきます。

https://www.youtube.com/watch?v=9XenjM3gRYc&ab_channel=GrantAbbitt

を参考にして以下からBrushをダウンロード＆インストール。

https://blendswap.com/blend/18735

インストール方法はBlenderのFile→Append→「OrbBrushes.blend」を指定して開いて、Brush以下のOrbとついているものを全選択、Appendボタンで追加する。

![SnapCrab_NoName_2021-11-29_21-30-48_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/faeda3ee-944f-0377-9524-b3be42be25db.png)

そうすることで、Brush以下に何やら増えています。

![SnapCrab_NoName_2021-11-29_21-32-24_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/d3a89f55-a562-3eb5-a70f-bd9fbc64fd17.png)



## 2.4. 準備4 HDRI画像

以下のサイトのHDRI画像を用いて光源、背景にしています。昔はHDRI画像なんて本当に数えるほどしかなかったので、ありがたい！

https://polyhaven.com/

# 3. 本文

## 3.1 コツ

これからつらつらと使い方を書いていきますが、最初にLayer Painterを使うコツを説明しましょう。
それは、このツールが
Material　→　Layers　→ Channels
と上から階層上になっていることです。なので、MaterialをLayerでMixするわけではなく、PBR Channelというこのアプリで定義した(?) マテリアル設定を使います。とはいえ、当然裏ではBlenderの機能を用いているので項目自体は見慣れたものです。

ということで、どっちかというとSubstance Designerみたいな感じですかね。


![SnapCrab_NoName_2021-11-30_19-24-52_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/e0edc40a-3bc9-6957-755a-47e7a60f0705.png)


## 3.2 Material 設定
対象となるMeshを準備します。


![SnapCrab_NoName_2021-11-29_21-42-14_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/ce8c643f-7116-a370-ab5c-b256f1b63bbb.png)

キャプチャのとり方が悪かったのですが、ちゃんと対象のBoxが選択された状態にして以下の作業をしましょう。 


アドオンのインストールが正常に行われていたら、Item、Toolのタブの並びにLayer Painterが追加されていると思います。

![SnapCrab_NoName_2021-11-29_21-44-53_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/45ba6447-a11b-e0e2-2db1-1bc16dad6a64.png)


開くと何もありません。
まずはNewで新しいMaterialを作成します。この辺りは普通のマテリアル生成と同じです。ここでは、適当にマテリアル名を変更しています。

![SnapCrab_NoName_2021-11-29_21-51-22_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/bf232cc1-ead6-4ead-9780-2af194236e85.png)

すると、Materialが作成され、そのMaterialに対応するLayerのBoxが追加されます。（BOXが追加されるだけで中身は何もありません）

![SnapCrab_NoName_2021-11-29_21-54-17_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/9663316d-45e9-c016-2af2-997b0fcbada6.png)

## 3.2  Layer設定

次に 真ん中の「マテリアル名 Layers」の右上のアイコン「Add Fill Layer」を2回クリックします。
そうすると2つLayerが追加されるので混乱しないようにそれぞれの名前を変更しましょう。
ここではよくあるようなペイントが剥げたような金属を試しに作るため、RedPaintとRustedMetal(今回最大の失敗です。赤色と錆では区別がつきませんでしたので、最終的にはSilverを使っています。が、修正する気力がなく…)としました。

![SnapCrab_NoName_2021-11-29_22-3-38_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/0221b4d2-de8b-f02b-5d41-b90b8a1bdf0e.png)

## 3.3 PRB チャネル設定設定

PRB チャネルを設定をしましょう。

この作業はRedPaint、およびRustedMetalのそれぞれのLayerに質感を与える作業になります。

RedPaintを選択した状態で一番下のSettingsBoxの「Add PBR channels」をクリックすると、見慣れた項目がバラっと展開されます。
ここでは各Layerに対する質感(PRB)、マスク、Filtersの設定ができます。
(説明していませんでしたが、まだの方はここでUV展開しておきましょう）

![SnapCrab_NoName_2021-11-29_22-5-33_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/5de66bb9-3c28-7404-9ba3-3dc34ca424ba.png)

まずはLayerが選択されている状態で、今回は適当にこんな感じで設定しました。

![SnapCrab_NoName_2021-11-29_22-11-43_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/96f0dfdd-15fe-6fad-9086-3d1531bf6804.png)

ぼろっとした雰囲気を出すために、MASKを設定しましょう。
SettingsのMasksを選択して、Add Maskボタンをクリック、今回はDamageを選びました。
そのままではベースのRedPaint部分が少なすぎるため、モードから”Substract”を選択しています。

![SnapCrab_NoName_2021-11-29_22-20-55_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/0be534b3-fed5-10ac-d09a-f91db8047dcd.png)

あとは下地の錆のLayerを同じように設定していきます。
LayersからRustedMetalを選択して、Textureを設定するには、左の丸い「Cycle Channel Data」をクリックしましょう。Openボタンが表示されるので、各プロパティにTextureを選択していきます。

![SnapCrab_NoName_2021-11-29_22-34-45_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/b78bc041-9191-0da0-e2d0-0bbbaec41c04.png)

… 試してから気が付きましたが、錆のTexuteではわからなかったのでもっとつるっとしたTextureを使いました。
https://www.sharetextures.com/textures/metal/silver/

![SnapCrab_NoName_2021-11-29_22-47-32_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/4b2d3837-55ac-21b3-6da5-740c1562c879.png)

何とかできました。
謎なのは、Maskとして使用したDamageがどうやらHeightにも適用されています。

RedPaintレイヤーにHeightを設定しない場合はこちら。

![SnapCrab_NoName_2021-11-29_22-50-10_No-00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/121950/5a444496-f107-f664-811e-49ea0bebc8ba.png)

#4.  まとめ

今回はGithubで公開されFreeとなったLayer Painterの使い方の基本を紹介してみました。

便利に使えそうだけど、もう一息な感じです。下記に書くようなあれ？と感じるような挙動もあるので、徐々に改善されるといいですね（お前がやるんだよと言われそうですが）。

上記に書かなかった課題としては、

- 自由に作成したImageをMask画像として使えません。
　
- SubstancePainterのようにMaterialをPaintするという感覚で使用することができません。例えば、ベースカラーやHeightを個別でPaintする機能はありますが、Materialや、Maskを直接Paintしてマテリアルを塗るイメージで使う機能はないようです。（見落としているかも）

- UVマッピングが怪しいようです。（Maskなどで無理やりTexture Paintを使うとダメです）

以上。
明日は[Tsutomu Saito](https://qiita.com/SaitoTsutomu)さんの「Pythonで木から森を作ろう」です！
（最適化でもお世話になっております…）