ぼっちプログラマのメモ

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

UE4の物理アセット ツール (PhAT)を使って、ユニティちゃんを揺らしてみた

題名の通り、ユニティちゃんを揺らしました
まずは結果の動画から

UE4 + Unity-Chan Live! Test2 - YouTube
フヒヒ…色んな所が揺れてますなぁ…!

f:id:pafuhana1213:20141018200536p:plain
このコンテンツは、『ユニティちゃんライセンス』で提供されています

以下、物理アセットツール (PhAT)による揺れ実装の手順・パラメータなどの紹介

はじめに

先日紹介したアニメーションリターゲットで作成したモーションのように
髪などの揺れものに対して動きが設定されていない場合、
当然ながら揺れず、不気味な印象を与えてしまいます

UE4 + Unity-Chan Live! Test - YouTube
モーションデータを弄るのはとても面倒くさいので
物理を使って揺らすことにしました

APEXによる布シミュレーション

UE4はNvidiaのAPEX Clothをサポートしているということで、
@com04さんのサイトを参考に、髪に対して布シミュレーションをを試してみました
物理-布シミュレーション - UE4 Document@com04

その結果

以上

物理アセットツール(PhAT)

APEXが使えなかったので、観念して物理アセットでがんばりました
物理アセットはモデルデータ読み込み時にチェックボックスを有効にするか、
スケルタルメッシュの右クリックメニューで作成できます
f:id:pafuhana1213:20141113210417j:plain

物理シミュレーションを有効にする

ボディモードの状態で、PhAT右のボーン一覧から物理シミュレーションを
適用したいボーンを選択し、PhysicsTypeをSimulatedに設定します
逆に言うと、物理シミュレーションをさせたくない場合はKinematicに設定します
f:id:pafuhana1213:20141113210814j:plain

コリジョンのスケール調整

物理アセットは各ボーンにコリジョンを配置してくれるのですが、
そのままだとスケールが大きすぎて、物理が荒ぶってしまいます
f:id:pafuhana1213:20141113211750j:plain

なので、各コリジョンのスケールを調整します

ボディモードで調整対象のボーンを選択後、PaAT上部のスケールを選択することで
スケールを調整できます。ボーンを全選択してから行うと、一気に調整できて楽です
参考までに、今回のユニティちゃんではこのぐらいの大きさに調整してます
f:id:pafuhana1213:20141113212055j:plain

コンストレインモードでのパラメータ設定

コンストレインモードの各パラメータを弄って、物理挙動を調整します
今回触ったパラメータは主に以下の三箇所です

  • Linear Limits
    • X,Y,Z軸方向の伸び設定(試しにFreeにしてみると、よく分かります)
  • Projection
    • 物理挙動の抑制
  • Angular Limits
    • 回転運動の制限(回転可能範囲が可視化されるので、分かりやすいと思います)

ユニティちゃんの髪に適用したパラメータを画像で載せておきます
https://dl.dropboxusercontent.com/u/30427841/hair_pysics.jpg

おむねのゆらしかた

最後に、ユニティちゃんの豊かな果実を揺らします

物理シミュレーションを有効にするのは、

  • J_L_Mune_01
  • J_R_Mune_01

の2つです

コンストレインモードでの設定は、
Angular Limitsの各設定をLimitdに設定し、Angleはお好みで調整して下さい

最後に、コンストレインモードで↑で挙げた2つのコリジョン位置を調整します
初期位置だと体から離れているせいで、ユニティちゃんが垂れ乳になってしまいます
なので、平行移動ボタンを押して体の方に移動させます
この位置調整がおっぱいの揺れ方に大きく影響します。慎重に調整しましょう…


以上で解説終了です
それでは、いい物理ライフを! ( ゚∀゚)o彡゜おっぱい!おっぱい!

おまけ:BP上で物理調整

ブループリントで、指定のボーンに対して物理シミュレーションを有効・
アニメーションとのブレンド量を設定する事が可能です
https://dl.dropboxusercontent.com/u/30427841/B1w95QbCUAAiE6a.jpg