(この記事の使用環境: Unity5.5.0f3 Personal、Windows10)


今回はいつもお世話になっている骸骨さんをラグドール化してみました。魂を失った器は、だらりと地面に崩れ落ちます。
全画面キャプチャ 20170112 220205

こんな感じ。死亡時演出として使ったり、もともとモデルをぬいぐるみ的に扱ったりできそうです。


ではさっそく作成方法。

Hierarchyビュー上のモデルに対してラグドール化を行います。

【重要】 もし動作等を作り込んだモデルであれば、いったんプレハブ化して"2回"保存し、あとで保存したほうの名前をラグドールであることが分かりやすいように変更しておきましょう。

今回はラグドール化前の状態を「Skelton」プレハブとして保存し、ラグドール化するほうのプレハブを「Slelton Ragdoll」としています。
全画面キャプチャ 20170112 214030

Skelton Ragdoll を選択した状態で、メニューから[GameObject] > [3D Object] > [Ragdoll...] を選択します。
全画面キャプチャ 20170112 214328

「Create Ragdoll」で、骨格の紐づけを行っていきます。手作業なのでやや面倒です。紐づけを終えたら「Create」ボタンを押すと処理が始まり、ラグドール化されます。
全画面キャプチャ 20170112 214805

最後に、ラグドール化したモデルに付けている余計なコンポーネント(Animator、NavMeshAgent、動かすためのスクリプト、適宜コライダーなど)を無効化または削除します。ラグドールにはラグドールとしての役割しか負わせられないようです。アニメーションが有効になっていたりすると、ガタガタと意味不明な動きをします。

これでラグドール化は完了です。ラグドール化されたモデルなのかどうか、動かしてみるほかに確認する手段がないようなので(知らないだけかも)、ラグドールであることが分かる名前を付けるなど、工夫が必要そうです。

今回は以上です。