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

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

| PAGE-SELECT | NEXT

≫ EDIT

UE4 物理シミュレーションを使って一部をラグドール化する(Set All Bodies Below Simulate Physics)

前に全身をラグドール化するものをやったのですが、
今回はそれの部分的に物理シミュレーションを行うものですね。
前回はこんな感じに。

・物理シミュレーションを使って全身をラグドール化する(Set All Bodies Simulate Physics、Set Collision Enable)
http://kagring.blog.fc2.com/blog-entry-308.html

部分的にやるとどうなるかというとこんな感じになります。

本来はツインテールとかに使うものではなさそうなのですが
とりあえずわかりやすさということで…。

公式ドキュメントはこちらを参考に。

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

全身ではなく一部に物理シミュレーションを適用するには
「Set All Bodies Below Simulate Physics」ノードを使います。
部分ラグドール000
「Set All Bodies Simulate Physics」ノードと違うのは
「In Bone Name」というボーンを指定する入力が増えたことですね。

これと、ツインテールの両方に適用したのがこちら。
部分ラグドール003
こんな感じでノードを組むと、最初の動画みたいなツインテールになります。

それ以外にも部分的にちょこちょこやってみましたけど
動きが怖いホラーなものにしかならないので、
一部だけ使うというのはなかなか難しいかもです…。

というわけで残骸。

腕もやってみたけど…。

うーん…(´;ω;`)ウッ…
スポンサーサイト

| UE4 | 12:20 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 Grayちゃん(FBXモデルとUE4テンプレート)

UE4の標準テンプレートでは
マネキンのような「Mannequin」というキャラクターが動いています。
動作的には問題ないのですが、無機質なのはモチベーション的に上がらない!
という人のために「Grayちゃん」というものがあります。
Grayちゃんプロジェクト001

・Grayちゃんモデルデータ
http://rarihoma.xvs.jp/products/graychan/

「Gray ちゃん」は、Unreal Engine 4 の標準キャラクターである「Mannequin」 (通称 「GrayMan」) をモチーフにデザインされたキャラクターです。

神吉李花さんによってイラストが描かれ、コミックマーケット 88 にて頒布されたとげとげさんの著作である 「Dive to Unreal Engine 4」の表紙を飾りました。

非公式のキャラクターですが、日本発の UE4 アイドルということで、可愛がっていただければと思います。

とのことです。
女の子モデルを動かしたい場合は是非使ってみるとよいと思います!

データをダウンロードするとFBXなどのモデルデータだけでなく
サードパーソンのテンプレートがGrayちゃんに差し替わったものも入っています。
Grayちゃんプロジェクト000

本データは、Unreal Engine 4 用のプロジェクトファイルを含んでいます。 Material セットアップ済の「Gray ちゃん」の Skeletal Mesh や、 Third Person Template の「Mannequin」用アニメーションを「Gray ちゃん」用にリターゲットしたものが入っています。 Unreal Engine 4 上で 「Gray ちゃん」を使ってみたいという方は、こちらをご利用ください。

また、本データは、Blender のプロジェクトファイルや Texture ファイルを含んでいます。 Texture に関しては、改変しやすいように、レイヤー構造を維持した PSD および CLIP 形式のファイルを同梱しています。 「Gray ちゃん」を改変して使ってみたいという方は、こちらをご利用ください。


いろいろなことを実験するときも、すごく簡単に触れて使えるのでおすすめです!

| UE4 | 11:25 | comments:0 | trackbacks:0 | TOP↑

≫ 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↑

≫ EDIT

UE4 顔の向きを変更するための Look At に対して角度制限をする(Look At、Look at Clamp)

顔の向きを変えるための「Look At」ノードに対して角度制限をする方法です。
参考にさせていただいたサイトはこちら。

・UE4 LookAt機能を使ってGrayちゃんに見つめてもらってみる
http://unrealengine.hatenablog.com/entry/2017/06/05/220000

前に顔の向きを動的に変更する処理をこちらで試しました。

・キャラクターの顔を特定の位置に向ける・Transform の向きを Blueprint で制御する(Look At)
http://kagring.blog.fc2.com/blog-entry-304.html

結構うまくいったような気がするのですが、
後ろの方向を向くようにしてみるとこんな感じになります。
LookAtクランプ000
ちょっとしたホラーですね!
人はこんな向きに首が回らないので角度に制限をつけましょう。

角度に制限を付ける場合は「Look At」ノードの詳細を開き、
「Look at Clamp」の項目に角度を設定しましょう。
LookAtクランプ001
今回は45度にしてみました。

左側にあるチェックボックスの「As pin」にチェックをいれることで、
「Look At」ノードの入力として「Look at Clamp」が設定できるようになります。
LookAtクランプ002
動的に変更する場合などは外にだすようにしましょう。

というわけで角度制限をかけてみた結果がこちら。
LookAtクランプ003
割とばっちなのではないでしょうか。

ルックアットや目線などは結構気を使わないとすぐホラーになってしまうので
いい感じの制御を考えてみたいですね。

| UE4 | 12:38 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

UE4 アニメーションブループリントを取得する(Get Anim Instance、Cast To AnimBP)

アニメーションブループリントを普通のBPから取得する方法です。
こちらの記事がすごく参考になります。

・UE4 クラスブループリントとアニメーションブループリント間で相互連携をさせる
http://unrealengine.hatenablog.com/entry/2015/01/13/211032

アニメーションBPを取得するには「Get Anim Instance」ノードを使います。
アニメーションBP取得000
「Target」にはスケルタルメッシュを指定します。

このままだと固有のアニメーションBPにはなっていないためキャストを行います。
アニメーションBP取得001
「Cast To AnimBP」というノードを使って変換します。
サンプルで実行したので「Cast To ThierdPerson_AnimBP」というノードを使います。
ここは各アニメーションBP固有のキャストノードを使います。

これでアニメーションBPにアクセスすることができるようになりました。
実際に使う時のBPはこんな感じですね。
アニメーションBP取得002
外部からアニメーションブループリントにアクセスすることは案外多そうなので
ここらへんの連携は覚えておいた方がよさそうです。

| UE4 | 12:20 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT | NEXT