++この記事でやること
ロープを揺らせるようにする。
揺れたロープが服を貫通しないようにする。
パラメータの調整については他の記事を参照してください。
++dynamicboneとは
揺れ物系のオブジェクトを扱うときの定番アセット
使ってみて分かったが物凄く簡単に使える。有料だが物を揺らすことはかなり多い状況なので、モデリングをしていこうという人なら絶対に腐ることがない。値段も定価で20$とお値段以上の価値がある(時々割引キャンペーンがあるのでそういうので買うとなおお得)
++使い方の概要
dynamicボーンは揺れる基点となるボーンを設定すればそこを基点としてボーンを揺らしてれる。なので、
揺らしたい箇所のボーンをオブジェクトに設定=>
dynamic boneに基点となるボーンを指定=>
パラメータ調整
という流れになる。
++ピュア様の腰ひもを揺らしてみる
まず、以下のように腰から垂れてるロープ?にボーンを入れる。
ちなみにウェイトはこんな感じでボーンの高さ分のウェイトを丁度塗ってる感じ
=>ボーンを入れたらfbxでエクスポート(メッシュ+アームチュアのみ)してUnityに取り込む
=>アセットストアからdynamic boneをインポート
=>取り込んだモデルのオブジェクトにdynamic boneをAdd Component
こんな画面が出るので、Rootの部分に揺らしたい場所の根本の部分となるボーンを設定する。(このとき、シーンで選択したボーンで揺れるボーンが一応表示される。かなり細い線が入るだけなので注意深く見る必要がある)
プレイモードに移行(ゲームを実行)してsceneモードに映る。そしてモデルのオブジェクトを移動させると、dynamicboneを設定した箇所が揺れているのが確認できる。
++服を貫通しないようにする
やってみたら分かるのだが、上のままでは揺れものが服を貫通してしまう。そこで、radius + dynamic bone coliderで服を貫通しないようにする。
まずは先ほど設定したdynamic boneの設定のradiusを0.08くらいにセットする。すると次のようにボーンのあるところに球体コライダーが設定される。
続けて服側のコライダーを設定する。ヒエラルキーにしてアバターのオブジェクトの下部に空のオブジェクトを作成し、空のオブジェクトにAdd Component => dynamic bone coliderを設定する
すると、以下のように球体のコライダーが出来るので適当に服に合わせる。
今回は次のようにコライダーを二つセット。
私は空のオブジェクトを二つ作ったが、一つのオブジェクトに複数のdynamic bone colider を設定してもよい。centerパラメータをいじれば位置を変えらえる。このコライダーをオブジェクトをColider1,Colider2とする。
続いて、dyamic bone の設定を開きColidersのsizeを2に設定し、ElementにColider1,Colider2をセットする。
これで服を貫通しないようになる。