凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE4 物理シミュレーションを使って全身をラグドール化する(Set All Bodies Simulate Physics、Set Collision Enable)

キャラクターの全身をラグドール化する方法です。
今回はこちらの二つのページを参考にしてやってみました。

・物理ベースのアニメーション
https://docs.unrealengine.com/latest/JPN/Engine/Animation/PhysicallyDrivenAnimation/index.html

・UE4:走ってくるキャラクターに物理シュミレーションを使い転ばせる方法
http://unrealbussan.hatenablog.com/entry/2015/03/10/200716

ラグドールはどういう挙動かというとこんな感じになります。

いい感じに物理シミュレーションに任せた動きになります。

全体を物理シミュレーション化するには
「Set All Bodies Simulate Physics」ノードを使います。
ラグドール001
「Target」にはスケルタルメッシュを指定します。
「New Simulate」はシミュレーションを新しく開始する場合はチェックを入れましょう。

これを適用するとこうなります。
ラグドール004
床を突き抜けて落ちていきました…なんで…。

どうもメッシュのコリジョンが物理シミュレーションの設定になっていないからのようでした。
というわけで設定してみましょう。

メッシュのコリジョンプリセット
デフォルトでは「CharacterMesh」になっています。
ラグドール005
これを「BlockAll」に変更します。
ラグドール006
これで無事設定ができました。

するとこんな感じで正常に動くみたいなのですが

こちらでやったところ、
なぜか物理シミュレーション化したとたんすっとんでいきました…。
ラグドール007

しょうがないので、最初から設定するのではなくブループリントで設定することにしました。
コリジョンの設定をするには「Set Collision Enable」ノードを使います。
ラグドール002
「Target」にはスケルタルメッシュを指定します。
「New Type」には今回は物理シミュレーションだけさせたいので「Physics Only」を指定しました。

するとこんな感じで最初の動画のようにうまく動きました。
ラグドール000

最終的なブループリントはこうなりました。
ラグドール003
これだけの処理でラグドールになるのはとても簡単でいいですね。

ちなみにGrayちゃんで同じ処理をした結果はこちら。

なかなかのホラーですね…。
スポンサーサイト

| UE4 | 13:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/308-b159c7c6

TRACKBACK

PREV | PAGE-SELECT | NEXT