はじめに
アバターの髪の毛とか、アクセサリーとか、ゆらゆらさせるとリアル感が出ていいですよね!
今日はそんな揺れもの実装のことについて書きます!
ゆらゆら揺れる髪の毛をもつアバターが羨ましくて私も揺らしてみました!
肉を。
ーーー
実装しよう〜Blenderで準備編〜
まず、揺れものを揺らすにはオブジェクトにボーンが入ってないといけないです。
お肉には以下のような感じでBlenderに骨を入れました。
ボーンの入れ方がわからない人は以下の記事をご覧ください。Blenderでのやり方の説明になります。
私がSTYLY MAGAZINEで書かせていただいてる記事です🐼
styly.cc
ボーンを入れたら、アニメーションとかはつけなくて大丈夫です。それぞれのボーンの動きだけ確認しておきます。
うむ。しっかり揺れてくれそうですね。
アーマチュアとメッシュをFBXで書き出します。上のメニューから ファイル>エクスポート>FBX を選択します。
書き出す時の設定は以下の感じです。メインタブではメッシュとアーマチュアを選択し(Shift押しながら選択)、アーマチュアタブにはデフォームボーンのみにチェックを入れます。(このでデフォームボーンのとこはよくわかってないので変になったらこれ外してみてください。)
これで書き出したらおっけーです。
実装しよう〜Unityでの設定編〜
アセットの購入
Unityを開いたら先ほど書き出したモデルを入れましょう。テクスチャがある場合はテクスチャも一緒に。
モデルを入れたら、ヒエラルキーにドラッグアンドドロップで置きます。
続いて、Asset Storeを開き、Dynamicと検索して、Dynamic Boneというアセットを見つけます。これを購入します🐼
購入したら、インポートします。
Dynamic Boneの設定
アセットがインポートできたら、ヒエラルキーのCreate→Create Emptyで空のゲームオブジェクトを作ります、
名前をDynamic Boneとかにしておきます。
そして、揺らしたい部位(例えばアバターならスカートとか髪の毛とか)を作った空のゲームオブジェクトの子オブジェクトにします。
私の場合は肉だったので肉ごと子オブジェクトにしました。
次に、先ほど親になった空のゲームオブジェクトを選択し、インスペクタのAdd ComponentからDynamic Boneを選択して追加します。
追加したDynamicBoneのRootに、揺らしたいパーツの根元のオブジェクトをドラッグアンドドロップで入れます。
ここでは肉、髪の毛とかを揺らしたい場合ならHeadとかかな?を設定します。
これで実行して、ヒエラルキーから親にした空のゲームオブジェクトを動かしてみましょう。無事揺れていたら成功です。あとは細かい調整になってきます。ーーー
調整パラメーターについて
調整のパラメーターは以下のような感じです。ーーー
1つづつ説明していきます🐼
①Update Rate
ー描画速度ー
ここは描画速度です。毎秒何回処理するか。
60とかにすれば早く揺れるし、小さくすればゆっくり揺れます。
②Update Mode
ー描画タイプー
いまいちよくわかってないんですが、3種類あります。
NormalとAnimate PhysicsとUnscaled Timeです。
NormalとUnscaled Timeの違いはいまいちわかりませんが、Animate Physicsは少し滑らかに落ち着いた感じになりました↓
③Damping
ー減衰力ー
値を小さくすると細かく揺れます。
値を大きくするとゆっくり大きく揺れます。
Distribのところで、キーフレームを打って曲線で細かく設定もできます。
曲線で細かく設定できるので先っぽだけめっちゃ揺れる、みたいな表現とかもできます。
④Elasticity
ー弾性ー
変形した物体がもとの形にもどろうとする性質。
値が小さいと、滑らかに元の形状に戻ります。
値が大きいと、すぐに元の形状に戻ります。
値を0にしたら元の形状に戻ってくれませんでした↓
Distribのところで、キーフレームを打って曲線で細かく設定もできます。
⑤Stiffness
ー剛性ー
力に対する変化の度合いの値。
値が小さいと、柔らかい感じの揺れ方になります。
値が大きいと、硬い感じの揺れ方になります。
Distribのところで、キーフレームを打って曲線で細かく設定もできます。
⑥Inert
ー不活性ー
ちょっと動かしただけで揺れるのか、大きく動かさないと揺れないのか、みたいな設定です。
値が小さいと、ちょっと揺らしただけで揺れます。
値が大きいと、大きく動かさないと揺れないです。
Distribのところで、キーフレームを打って曲線で細かく設定もできます。
⑦Exclusions
ー揺れないボーンの指定ー
設定したボーンにはDynemic Boneが適用されなくなります。
実際やってみると、設定したボーンより後のボーンは動かない感じでした!
⑧Freeze Axis
ー揺れ方の方向制御ー
揺れる方向を特定の方向に設定できます。
以上です!🐼
なんか難しいですがこれらを調整することでいろんな揺れものを表現できそうです。