前提条件: シェーダーは特に記載のない限り lilToon を用いています。
a か b の好きな方法を取ってください。
この方法だと透明度をアニメーションで扱えないっぽいです(検証中)
1-a で買ったマスクレイヤーが Photoshop 上でやってるようなことを Unity でやる感じ。
爪とか目とかの焼きたくないところは白黒でマスク画像を作りましょう。上のスクショだと作ってないけど…
【VRChat】Blenderで簡単に水着の日焼けあとをつくろう!|わざき を参考に、Blenderでマスクテクスチャを錬成するのがおすすめです。
Body
と胴体である Imeris_body
それぞれに適用することで3種類の切り替えアニメーションが作れます。- | プロパティ | 地肌 | 日焼け1 | 日焼け2 |
---|---|---|---|---|
メインカラー2nd | Skinned Mesh Renderer.Material._Use Main 2nd Tex |
0 | 1 | 0 |
メインカラー3rd | Skinned Mesh Renderer.Material._Use Main 3rd Tex |
0 | 0 | 1 |
完成。動画→ https://twitter.com/hotatech/status/1638294627936776194
これを活用することで、マテリアル1つだけで好きなテクスチャを上から重ねて使うことが出来ます。
例えば2Pカラーを作っていて、素体は爪の色だけを変えたいということもあるでしょう。爪だけの透過テクスチャを置けば簡単ですね! 素体のPSDには入っているけれどデフォルトでは非表示の、何とは言わないレイヤーを使いたいけど、おはツイには写り込んで欲しくない…そんなときにも当該レイヤーだけを背景透過で書き出してアニメーションを組みましょう。 あとはタトゥーのオンオフなんかも出来ますね。したいかどうかわからんけど。
もうこれらのために素体のテクスチャを複数枚書き出す必要も、その容量を気にすること[2]も、またテクスチャの数だけマテリアルを複製する必要もありません。上に書いたMatCapの設定をマテリアルごとにやり直す地獄のような作業からも開放されます!
…とまあこれらを欲張り過ぎると、メインカラー2ndと3rdの2枚だけでは到底足りなくなることもあります。わたしは足りなくなったので4thと5thを追加しました。…lilToonを改造することで。
追記: 要望があったので(まだlilToon本体を上書きして使うことになりますが)試験的に置いておきます。
https://wiki.maud.io/vrchat/liltoon
シェーダーには不慣れなため直接 lilToon 本体を改造しており、まだ共存できるカスタムシェーダーとして配布できる状態にはないのですが、一応できなくはないよというデモ程度に紹介しておきます。やることといえばメインカラー3rdの項目全部調べ上げて複製するだけなんだけど、結構多いんだこれが…
ちなみに 2nd, 3rd と数のデカいほうがレイヤーとしては上に表示されるようなので、例えば日焼けよりは爪のほうを数のデカい側に置いといたほうが良いみたいです。