ミーシェちゃんを雑に違和感なくQuest対応する
前回のあらすじ
アップロードまではできるけど赤面させるとすごいことになっちゃう……。
TL;DR;
言ってしまえば力技と妥協。
- 透過が必要なMaterialのShader
VRChat/Mobile/ToonLit
にする - 透過される先の部分を元の顔部分とかからひっぱってきて違和感なく「合成」させる (力技)
- あまり面積が広い部分は表情の該当するもののBlendShapeを0にする (妥協)
この記事の内容と注意点
- 2020.1.1アプデ対応版です
- 試行錯誤の結果を記録する記事に近いです
- 別のアバターなどに適用できるかは分かりません
- Blenderと和解する気がない記事です。
- アプデ直後なので記事の内容が変わることがあります
- 「妥協」と「力技」の産物です。参考にならないかもしれません。
- VRChat, Unity初心者なのでアドバイスください>< *1
アプデがきたら記事を完全に書き直すことになってしまった……。 (VRChat 2020.1.1 @ Build 910)
ひつようなもの
- Photoshopとか(色が塗れればなんでもOK)
- Unity (2018)
手技
1. 塗る
これを例示としてあげると、素材画像をあげることになるのでここには記載しません。 *2
ということで自分でつくったクソ雑な図をこう……
赤面をどうしても再現したいなら顔の部分のUVを考えてコピーして載せるって手段があります。今回は頬染めは あきらめます 。
テクスチャ改変に関する手法については細かく書かないし、やりかたがあってるか分からないのであれですが ImageディレクトリにぶちこんでそのままMaterialに適用(ドラックアンドドロップ) してます。
参考:
2. Animationを改変する
Animationを書きかえてしまえば頬染めしなくなるんですよ、それはそうなんですよね……。
ここからはPCとQuest向けは別のProjectで立てている前提で書いています。
手法としてはシンプルで、Assets > Mishe > Animation
ディレクトリの中の表情のAnimationから透過で酷いことになってしまうBlendshapesを消してしまう。というものです。
やり方は *3 、変更したいAnimation(*.anim
)を選択して メニュバーのWindow > Animation > Animation
を開きます。
するとこんなのが出てくるかとおもいます。
これを開いている状態で Inspectorの下側のプレビュー *4 をみてみると、見事に真っ赤になっている状態なことが分かります。
ここでやることは一つだけ、もう一度Animation Windowを開いて Body: Skinned Mesh Renderer.Blend Shape.頬染め
を右クリックで選んでRemove Property
するだけ。
すると、以下のように「頬染めはないけど同じような表情」ができあがるとおもいます。
これで完成です。あとはQuest向けのいつものアップロードをするだけです。 表情の変更に関しては以下の参考文献を確認していただきたいとおもいます。
まとめ
2020.1.1アップデートが来て、現状(2020/04/03現在)、Questには透過できるシェーダーを適用できなくなってしまいました *5 。したがって、どうしても「違和感なく」Quest向けにアップロードするとなると、私の思いつく上では(またUnityだけでやるには)これぐらいしかないのかなと思います。はい。まあ解像度の高い *6 PC向けには普通の透過版を上げればいいだけなので、まあ……って感じはしますが。