(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


ラグドール(Ragdoll)でキャラクターをグニャグニャにする【Unity】


このエントリーをはてなブックマークに追加

この記事でのバージョン
Unity 2019.4.17f1


はじめに

Fall GuysやGang Beasts、Human Fall Flatのように

人形のようなグニャグニャな動きをラグドールと言います。

f:id:kan_kikuchi:20210328080323g:plain


今回はそれを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をでウィンドウを開き、

f:id:kan_kikuchi:20210328074612j:plain


ラグドールを適応したいキャラクターをHierarchy上で選択したまま、

ウィンドウでRagdollを選択した後、Createを押すだけ。

f:id:kan_kikuchi:20210328074911j:plain


するとモデルの各部位にRigidbodyとCharacter Jointが追加されます。

f:id:kan_kikuchi:20210328074923j:plain


あとはそのRigidbodyのIs Kinematicを無効にした状態で

Animataorを無効にすればラグドール化します。

(ラグドールを無効にしたい場合は逆に両方有効にする)

f:id:kan_kikuchi:20210328075231j:plain
f:id:kan_kikuchi:20210328075243j:plain


実際にラグドール化してみると以下のような感じに。

f:id:kan_kikuchi:20210328080323g:plain


なお、上記の例のように各部位にコライダーを付けて床等とぶつかるようにしたい場合は、

SAColliderBuilderという無料アセットがオススメです。



このようにRagdoll helperはかなり便利なのですが、Humanoid(人型)のモデルにしか使えません

f:id:kan_kikuchi:20210328080837j:plain


Humanoid以外のモデルにラグドールを設定したい場合はUnityデフォルトの機能を使います。

GameObject/3D Object/Ragdollでウィンドウを開き、

f:id:kan_kikuchi:20210328081038j:plain


ラグドールを適用したいモデルの各部位を一つずつ設定していきます。

(Ragdoll helperはこの面倒な設定を自動でやってくれている感じ)

f:id:kan_kikuchi:20210328081659j:plain


一応先程のアライグマでやってみたのですが

部位の設定が上手くいってなかったのか上手く出来ませんでした……。

f:id:kan_kikuchi:20210328081721g:plain