VRChatで使えるClothコンポーネントを用いた貫通しないスカート
先日作成したモデルでVRChatに出没しているんですが
スカートだと座ったり走り回るときにガッツリ貫通してアレな感じになります
VRChat上でこういった問題を回避するにはunityアセットのdynamic boneを使う(有料)、Clothコンポーネントを適用させる、スカートを脱がせる等の方法がありますが、
今回はUnity5で新しくなったclothコンポーネントを使ってイイ感じに貫通しないスカートを目指します
というかぶっちゃけdynamicboneでスカートの貫通を防ぐ方法は調節が鬼すぎてメチャクチャ厳しいのでやめたほうがいいです 心が死にます(いい感じに設定する方法あったら教えてください)
〇Clothコンポーネントとは
完全に丸投げですが以下のUnityの中の人の記事が詳しいです
要はそのオブジェクトのメッシュに布っぽい挙動をさせることができる機能です
通常だと重力でそのまま下に垂れ下がりますが、メッシュの各点を一定の力で拘束したり足のボーンにコライダー(当たり判定)を仕込むことで物体が貫通するのを防ぐことが可能になります
〇Unityで実装してみる
今回はBlenderで作成したモデルにclothを適用させていきます
clothコンポーネントをアタッチするオブジェクトは体などと分かれている必要があるため、事前にBlender等で分離しておきます(MMDモデル等でもblenderのアドオンでオブジェクトの分離は可能です)
揺らすものを別オブジェクトにしたらfbxで出力してUnityにぶち込みますが
そのままclothコンポーネントをアタッチすると何故かメッシュが伸び切ってメチャクチャに暴れます
どぼぢで
雰囲気でモデリングをしているので理由はよく分かりません(環境Unity5.6.3p,Blender2.79)
BlenderからそのオブジェクトのArmatureモディファイヤーで適用させると上記の問題を回避できました
モディファイヤーが残っている状態です
ここからモディファイヤーを適用させることが出来ます
問題なくUnityに取り込めたらスカートのオブジェクトを探してclothコンポーネントをアタッチします(自分の環境ではお尻ボーンの下にありました)
そのままだとどこにも固定されていない状態でスカートがずり落ちてしまうのでEdit Constraintsからスカートの根本を固定します
根本は完全に固定、前と後ろだけ真ん中の部分もちょっと強めに固定すると激しい動きによるスカートの裏返りを抑えられる感じがします
自分のclothコンポーネントの設定は以下のようになりました
実際に自分でアニメーションを適用した状態で再生しながら調節すると良いと思います
あとは足のボーンの下に3Dオブジェクトのsphereを2つずつ置き
スカートのclothコンポーネントの下の方にあるコライダー設定のところにぶち込みます
FirstとSecondに設定することで球の間にも円錐状のコライダーが生まれます
球の径はちょっと大き目にしておくと暴れまわっても貫通しにくくなります
このとき気を付けなければいけないことに
- 球のメッシュを削除する
- 球のオブジェクトすべてを非アクティブにする
の2つがあります
1つ目はメッシュを残したままにするとVRChat上でも表示されてめちゃくちゃダサいことになります
丸付けたとこを削除しておきましょう
(追記)
空のオブジェクトに球コライダーを足したものを使うとメッシュ削除などの手間が無くて簡単かもです(アドバイスありがとうございます)
2つ目はアクティブなコライダーが残ったままVRChatに行くと、空中で浮いた状態で回転して動けなくなります(めちゃくちゃ酔う)
アクティブなコライダーどうしがぶつかり合っているのが原因っぽいので、コライダーを持つオブジェクトをすべて非アクティブにしましょう
ここのチェックを外します
以上で足がスカートを貫通しなくなるはずですが、椅子から立ち上がったり激しく動き回るとスカートが足の間に挟まったり裏返って戻らなくなることがある場合は、コライダーを増やして設定するといい感じになりそうです
自分は腰ボーンの下に縦長のカプセルコライダーを置きました
上手くいきました!
ワールドの読み込み時にも浮いたり回ったりしないので大丈夫そうです
歩き回るたびにスカートから足が見えるとせっかくのモデルが勿体ないので ぜひおためしください
ついき:
記事ちょっと伸びたのにVRChatのフレンドが増えません!!!!!!!
現在2人しかいないので気軽にフレンド飛ばしてくれるとうれしいです~~~~~~~~~~
ID:trike1236
よろしくおねがいします