VRC 首掛け型アクセサリを作った
VRCではじめて揺れものを作ったのでメモ
ex. 揺れものとはスカート、髪の毛、ネックレスなど
アクセサリ「首掛けスマホ」を作った時の手順
1.Blenderでモデリング、ボーンを動かしたい場所に設定。首掛けスマホの場合はヒモの部分は動かす必要がなく、スマホの部分だけなんとなく動いてくれればよかったからスマホの部分にだけボーンを設定
2.メッシュ→ボーンの順番で選択して「自動のウェイトで」を選択してウェイトを塗る。ポーズモードでボーンを動かしてメッシュが追従するか確認する。してこなかったらウェイトが正常に塗られているかウェイトペイントモードで確認、適宜直す
https://scrapbox.io/files/67716235e5e5503529b43773.png
3.ここからUnity。空のGameObjectを作成してFBXをぶち込み、MA Bone Proxyで追従させたいアバターのボーンを指定。今回はネックレス型だからNeckにした
4.PhysBoneの設定。PhysBone関連はまとめるのがいいのかな??とりあえずLimeの場合はAvatarDynamicsというオブジェクトにPB, PB_Collidersとしてそれぞれ設定がまとめられてた。任意の名前でGameObjectをPBの中に作成してVRC Phys Bone(Script)をアタッチ。Root TransformにKubigakePhoneのボーンを指定。これで「このボーンのPhysBoneですよ」という指定になる。
その他設定
Gravityを1にして重力に従うように
Limit TypeをAngleにして円錐形にのみボーンが動くように
CollisionのRadiusを0.1に。Collisionを設定することで後述するPhys Bone Colliderと接触したときに貫通しなくなる。
CollidersでどのPhys Bone Colliderと接触したときに貫通しなくするか指定できる。今回はネックレスやスマホが体にめりこんでほしくなかったので、胸に入っているPhys Bone ColliderをElementに指定。Sizeを変えることで複数のPhys Bone Colliderを指定できる
Phys Bone ColliderはPhys Bone用の当たり判定で、Phys Bone (Script)側でCollidersに指定してあげると、そこに接触したときに当たり判定が生まれて貫通しなくなる。LimeはPB_Collidersオブジェクトの中に体の各所のColliderがまとめられてた
https://scrapbox.io/files/67716577cc111e7fc0e33024.png
5.Gesture Managerで動作確認して、よさげならVRCへアップして最終確認。
参考になったリンク
PhysBoneでスカートの貫通対策をする Ver2 【VRChat】【Unity】Physboneによるふんわりスカートの設定(Hinge型) 【VRChat】PhysBoneの設定方法・Componentについて