イラスト、モデリング、Unity、VR関連

unityとかblenderとかvr関連の作業メモ

unity dynamicboneを使う

++この記事でやること

ロープを揺らせるようにする。

揺れたロープが服を貫通しないようにする。

パラメータの調整については他の記事を参照してください。

 

++dynamicboneとは

揺れ物系のオブジェクトを扱うときの定番アセット

Dynamic Bone - Asset Store

使ってみて分かったが物凄く簡単に使える。有料だが物を揺らすことはかなり多い状況なので、モデリングをしていこうという人なら絶対に腐ることがない。値段も定価で20$とお値段以上の価値がある(時々割引キャンペーンがあるのでそういうので買うとなおお得)

 

++使い方の概要

dynamicボーンは揺れる基点となるボーンを設定すればそこを基点としてボーンを揺らしてれる。なので、

揺らしたい箇所のボーンをオブジェクトに設定=>

dynamic boneに基点となるボーンを指定=>

パラメータ調整

という流れになる。

 

++ピュア様の腰ひもを揺らしてみる

まず、以下のように腰から垂れてるロープ?にボーンを入れる。

f:id:arumogina:20181210123535p:plain

ちなみにウェイトはこんな感じでボーンの高さ分のウェイトを丁度塗ってる感じ

f:id:arumogina:20181210123718p:plain

 

=>ボーンを入れたらfbxでエクスポート(メッシュ+アームチュアのみ)してUnityに取り込む

=>アセットストアからdynamic boneをインポート

=>取り込んだモデルのオブジェクトにdynamic boneをAdd Component

こんな画面が出るので、Rootの部分に揺らしたい場所の根本の部分となるボーンを設定する。(このとき、シーンで選択したボーンで揺れるボーンが一応表示される。かなり細い線が入るだけなので注意深く見る必要がある)

f:id:arumogina:20181210125258p:plain

 

プレイモードに移行(ゲームを実行)してsceneモードに映る。そしてモデルのオブジェクトを移動させると、dynamicboneを設定した箇所が揺れているのが確認できる。

f:id:arumogina:20181210130232g:plain

 

++服を貫通しないようにする

やってみたら分かるのだが、上のままでは揺れものが服を貫通してしまう。そこで、radius + dynamic bone coliderで服を貫通しないようにする。

 まずは先ほど設定したdynamic boneの設定のradiusを0.08くらいにセットする。すると次のようにボーンのあるところに球体コライダーが設定される。

f:id:arumogina:20181210131233p:plain

 

続けて服側のコライダーを設定する。ヒエラルキーにしてアバターのオブジェクトの下部に空のオブジェクトを作成し、空のオブジェクトにAdd Component => dynamic bone coliderを設定する

すると、以下のように球体のコライダーが出来るので適当に服に合わせる。

f:id:arumogina:20181210131624p:plain

今回は次のようにコライダーを二つセット。

f:id:arumogina:20181210132003p:plain

私は空のオブジェクトを二つ作ったが、一つのオブジェクトに複数のdynamic bone colider を設定してもよい。centerパラメータをいじれば位置を変えらえる。このコライダーをオブジェクトをColider1,Colider2とする。

続いて、dyamic bone の設定を開きColidersのsizeを2に設定し、ElementにColider1,Colider2をセットする。

f:id:arumogina:20181210132657p:plain

これで服を貫通しないようになる。

f:id:arumogina:20181210133049g:plain