この記事でのバージョン
Unity 2019.4.17f1
はじめに
Fall GuysやGang Beasts、Human Fall Flatのように
人形のようなグニャグニャな動きをラグドールと言います。
今回はそれをUnityでやってみようという感じの記事です!
なお、記事中では以下のアセットを使っています。
Rin | Characters | Unity Asset Store |
Animals - Simon the Raccoon | Characters | Unity Asset Store |
ラグドール
まずUnityでラグドールを使いたい場合はRagdoll helperという無料アセットを使う事オススメします。
Ragdoll helper | Modeling | Unity Asset Store |
使い方は簡単、Window/BzSoft/Ragdoll Helperをでウィンドウを開き、
ラグドールを適応したいキャラクターをHierarchy上で選択したまま、
ウィンドウでRagdollを選択した後、Createを押すだけ。
するとモデルの各部位にRigidbodyとCharacter Jointが追加されます。
あとはそのRigidbodyのIs Kinematicを無効にした状態で
Animataorを無効にすればラグドール化します。
(ラグドールを無効にしたい場合は逆に両方有効にする)
実際にラグドール化してみると以下のような感じに。
なお、上記の例のように各部位にコライダーを付けて床等とぶつかるようにしたい場合は、
SAColliderBuilderという無料アセットがオススメです。
このようにRagdoll helperはかなり便利なのですが、Humanoid(人型)のモデルにしか使えません
Humanoid以外のモデルにラグドールを設定したい場合はUnityデフォルトの機能を使います。
GameObject/3D Object/Ragdollでウィンドウを開き、
ラグドールを適用したいモデルの各部位を一つずつ設定していきます。
(Ragdoll helperはこの面倒な設定を自動でやってくれている感じ)
一応先程のアライグマでやってみたのですが
部位の設定が上手くいってなかったのか上手く出来ませんでした……。