ぼっちプログラマのメモ

UE4とかVRとかについて書いたり書かなかったり。

「UE4.18で生まれ変わった物理アセットエディタ(Physics Asset Editor)について」 と 「物理と少し仲良くなる方法について」 その1

qiita.com
本記事はUnreal Engine 4 (UE4) Advent Calendar 2017の13日目の記事です。

長くなっちゃったので、3つ記事分割しました!
その1:ここ
その2:http://pafuhana1213.hatenablog.com/entry/2017/12/13/000100
その3:http://pafuhana1213.hatenablog.com/entry/2017/12/13/003018

はじめに

UE4.18で物理アセットエディタが大きく改善されました!!!

びふぉ~
f:id:pafuhana1213:20171212192315j:plain
あふた~
f:id:pafuhana1213:20171212192324j:plain

UE4.18リリースノートより
f:id:pafuhana1213:20171212192602p:plain

ということでかなり良くなりましたが、まだまだ情報が少ないので色々まとめてみました!

※ 今回使用したモデル
らりほま式 Gray ちゃん:
http://rarihoma.xvs.jp/products/graychan

※ 参考
● 物理アセットに関する公式ドキュメント(2017/12/12現在)
Physics Asset Editor Interface
https://docs.unrealengine.com/latest/INT/Engine/Physics/PhAT/PhysicsAssetEditor/index.html
Physics Asset Editor - Constraints Graph
https://docs.unrealengine.com/latest/INT/Engine/Physics/PhAT/Graph/index.html
Physics Asset Editor - Tools and Profiles
https://docs.unrealengine.com/latest/INT/Engine/Physics/PhAT/ToolsAndProfiles/index.html
Physics Asset Editor - Skeleton Tree
https://docs.unrealengine.com/latest/INT/Engine/Physics/PhAT/SkeletonTree/index.html
Physics Constraint Reference
https://docs.unrealengine.com/latest/INT/Engine/Physics/Constraints/ConstraintsReference/index.html
Using Profiles for Bodies and Constraints
https://docs.unrealengine.com/latest/INT/Engine/Physics/PhAT/HowTo/UsingProfiles/index.html

古いページの差し替え・翻訳は随時行ってます!

● ライブストリーム
www.youtube.com

物理アセットについて

物理アセットはSkeletalMeshにおいてとても重要な要素の1つです。例えば、以下のような場面で使われます。

(こうして並べてみると結構多い…)

そして、物理アセットは以下の要素で構成されています。

  • Bone
  • Body
  • Constraint
  • Primitive

BoneはSkeletalMeshが持つボーンのことです。そして、他の2つに関しては以下の図が分かりやすいと思います。
f:id:pafuhana1213:20171212195523j:plain
(引用: ニコニコ立体さんの髪とスカートを揺らすまで その2 - Qiita

この図におけるAnchorがConstraint です。 Bone毎にBodyを作成し、Constraintで2つのBodyを接続します。そして、Bodyが持つ複数のPrimitive( カプセルやボックスなど )がCollisionとなり、物理挙動などの各処理を行う形になっています。 そして、これらの形状・パラメータによって挙動が大きく変化します。その為、各要素がどう動きに影響するかを把握しておかないと、挙動の調整が大変なことになってしまいます!

f:id:pafuhana1213:20171212200246p:plain
(ひ…ひぇ…(・・;))

ということで、以降は物理アセットエディタでよく使う機能や挙動の調整をする上で重要になるパラメータについて紹介していきます。

4.18版の物理アセットエディタの基本操作について

f:id:pafuhana1213:20171212200729p:plain

まずは、以前のバージョンから大きく変わった所から紹介していきます。

Skeleton Tree

f:id:pafuhana1213:20171212201002p:plain
以前は「Body表示とConstraint表示を切り替える必要がある」「文字列だけで分かりづらい」などなど色々使いにくかったツリー表示が改善されています!

  • Bone, Body, Constraint, Primitiveの階層を同じViewで見れるように
  • 各項目における右クリックメニューが強化されて便利に
  • アイコンで種類が可視化されるように(物理ONOFF状態も見れるの嬉しい!)
  • 上部の入力欄から各項目を名前で検索可能に
  • 表示する項目のフィルタリングが可能に

特に、一番下のフィルタリング機能が最高に便利です!
f:id:pafuhana1213:20171212203105g:plain

Bodyだけを集中して編集したいなぁ、今はPrimitiveの情報いらないなぁとか、状況に応じて表示をカスタマイズできるのは凄くいいです!編集に関係ない項目を表示しないことで、ヒューマンエラーによる事故も防げます!超便利!

Graph

f:id:pafuhana1213:20171212204145p:plain
4.18版から追加されたノードベースのビューワーです。Skeleton Treeが複雑化していると、どのBodyが他のどのBodyと接続しているのか?などの情報が見えづらくなります。そんな時に役立つのがこの画面です。
ノードというUE4ユーザには親しみのある形式な上、各ノードには「Bodyを持つBoneの名前」や「Constraintが接続しているBodyの名前」が含まれるため、今までは難しかった情報の把握が簡単になりました!

さらに、これは単なるビューワーではありません!
f:id:pafuhana1213:20171212204816g:plain
このようにD&Dすることで、新しいConstraintを作ることが可能です!
f:id:pafuhana1213:20171212205345p:plain
右クリックメニューもSkeleton Treeと同じ物が出るので、編集も自由自在です!

ただ全体を俯瞰しての編集はやはり難しいので、目的に応じてSkeleton TreeとGraphを使い分けるのが良いかと思います。

Viewport と Preview Scene Settings

f:id:pafuhana1213:20171212205727p:plain
4.18ではPhysicsアセットの編集もAnimationやAnimationBPと同じエディタ上で行えるようになりました。その恩恵を強く受けているのがこの部分です。

まずShowに関しては以前に比べるとかなり項目が増えました! 特にBodyの表示をカスタマイズできるのは便利です!
Bodyは他の項目に比べて描画面積が大きい上に互いに重なりあっているため、見辛いことが多いです。是非このShowの項目を使って見やすい形に調整しましょう!
f:id:pafuhana1213:20171212212701g:plain

他にも、
f:id:pafuhana1213:20171212212838p:plain
プレビュー時の物理に関するパラメータを調整できたり、
f:id:pafuhana1213:20171212212917p:plain
以前に比べて簡単にプレビューで使用するアニメーションアセットを指定できたり、
f:id:pafuhana1213:20171212213054p:plain
録画ボタンを使うことで、物理挙動がベイクされたアニメーションを作成できたり…







f:id:pafuhana1213:20171212213426j:plain
(ふふふ…超便利なったじゃないか…!)

長くなったので、新しい物理アセットエディタの各機能の紹介はここまで。
その2では、実際にどうやってBodyやConstraintを追加・調整するのかについて説明します。