MA Shape Changerがすごいぞ! という話
はじめに
VRChatterのみなさん、Unityと仲良くしてますか?(挨拶)
昨今のアバター改変にはほぼ欠かせないものとなったModular Avatarですが、ご存知の通り多機能なんだけど多機能すぎてよくわからないって方も多いと思います。
なので、使ってみてわかった事をざっくりまとめてみよう、のコーナーです。
今回のお題は「MA Shape Changer」です。
MA Shape Changerって何?
これ。1.10.0で新しく追加されたコンポーネントの1つです。
Shape Changer | Modular Avatar
何ができるの?
「長袖着てる間だけ肘をキュッてしたい」
「靴を履いてる間だけ足をキュッてしたい」
「ブラ外してる間だけ乳首メッシュ尖らせたい」
全部叶えてくれます。
もうブレンドシェイプいじるアニメーション作る必要なしです。
神機能です。
どう使うの?(例1:長袖着てる間だけ肘をキュッてしたい)
長袖付き衣装のGameObjectにMA Shape ChangerをAdd Componentする。
Listに肘のBlendshapeを追加する。追加したらデフォルトで削除モード(Delete)になっているのでそのままにする。
自分で組むなり他の何か使うなりして、長袖付き衣装のGameObjectの有効/無効を切り替えられる仕組みを用意する。
素体の肘のBlendshapeは0(キュッてしない状態)にする。
GestureManagerやVRChat上で服を着たり脱いだりしてみながら肘を確認する。VRChat上では着ている時はちゃんとキュッとなっている。Unity上ではなんと肘部分のメッシュが消えている。
どう使うの?(例2:ブラ外してる間だけ乳首メッシュ尖らせたい)
ブラのGameObjectにMA Shape ChangerをAdd Componentする。
「条件を反転」のチェックを入れる。
Listに乳首ONのBlendshapeを追加する。追加したらデフォルトで削除モード(Delete)になっているので設定モード(「Set」)にして、Blendshapeの値に100を設定する。
自分で組むなり他の何か使うなりして、ブラのGameObjectの有効/無効を切り替えられる仕組みを用意する。
素体の乳首ONのBlendshapeは0(尖ってない状態)にする。
GestureManagerやVRChat上でブラを着たり脱いだりしてみながら乳首を確認する。VRChat上では脱いだ時はちゃんと尖っている。
使用例を踏まえて説明
MA Shape Changerは、コンポーネントが追加されているGameObjectが有効状態であるときに、他のメッシュのBlendshapeやそのBlendshapeの関係するメッシュをいじってくれるすごいやつです。
「条件を反転」ってなんのこっちゃい、という話ですが、太字部分を反転します。つまり、チェックを入れている場合は「コンポーネントが追加されているGameObjectが無効状態であるとき」にBlendshapeをいじってくれます。すごいですね。
「削除モード(Delete)」と「設定モード(Set)」って何よ? って話ですが、前者は「可能であればそのBlendshapeの関係するメッシュを削除するし、削除できない場合はそのBlendshapeを100にする」モード、後者は「そのBlendshapeを指定した値にする」モードです。
なお、GameObjectの有効/無効を動的に切り替えられるようにしている場合、VRChat上ではメッシュは削除できないものとして処理されます。Unityで見てる時は削除されてるので勘違いしがちなので注意。「複数のGameObjectで同じBlendshapeをいじろうとしたらどうなんの?」という疑問への答えは「Hierarchy上で一番下にあるやつが優先」らしいです。試してみたけど確かにそうなってそう。