Groomアニメーションにおけるデフォメーションとシミュレーションの同時使用に関しまして

お世話になっております。

<br/>

以下ドキュメントに従い、Hairのボーン制御によるアニメーションを行っているのですが、

https://dev.epicgames.com/documentation/metahuman/hair\-art\-directability

ドキュメントではシミュレーションを無効にすることを推奨されていますが、

こちらは例えば骨にて大きなアニメーション制御を行ったうえで、ディテールのアニメーションをシミュレーションにて追加する、ということは可能でしょうか?

また、可能な場合実装にて気をつける箇所などありますでしょうか?

<br/>

ご確認の方お願いさせていただけましたら幸いです。

よろしくお願いいたします。

ご質問ありがとうございます。

(もう一つのスレッドと関係があると思うのでそんな風に調べさせていただきました。)​

現状、単一のGroomグループID内でヘアシミュレーションとボーンアニメーションを同時にブレンドすることはできません。ただし、近い結果を得られる方法があります。

通常通り、Groomのボーン制御用にジョイントをセットアップします。

RBAN(Rigid Body Animation Node) を使って、そのボーンに対して動的なシミュレーションを適用します。

アニメーション状態とRBANダイナミクスをブレンドすることで、大きな動きのコントロールと細かいセカンダリモーションを両立できます。

実装時の注意点としては、以下の点を押さえておくといいかと思います。

  • RBANはストランドではなくボーンに対して働くため、ジョイントの構成がそのままシミュレーションの精度に影響します。
  • ショット開始時やトランジション中に動きが不自然にならないよう、blendの調整は丁寧に行ってください。

他にご不明な点があればお気軽にご連絡ください。お手数ですが、よろしくお願いします。

お世話になっております。

ご回答ありがとうございます。

>単一のGroomグループID内でヘアシミュレーションとボーンアニメーションを同時にブレンドすることはできません。

こちらに関して承知いたしました。

念の為確認させていただきたいのですが、動作自体全く保証されていないという状況でしょうか?

ご提案いただいた、RBANやコントロールリグなどを用いたボーンシミュレーションは行っているのですが、

その上でガイド単位でさらに細かなSimulationを追加したく、

そのためにヘアシミュレーションとボーンアニメーションの同時使用を行いたいという状況でした。

代替手法としてGroom Cachesの使用も検討してはいるのですが、

https://dev.epicgames.com/documentation/unreal\-engine/using\-groom\-caches\-with\-hair\-in\-unreal\-engine

作業コストやメモリバジェットなどの問題から、可能であればボーンアニメーションを行ったうえで、細かな動きをSimulationでつけることができないかと考えております。

上記ご確認の方をお願いさせていただけましたら幸いです。

よろしくお願いいたします。

ご返信ありがとうございます。先日の回答について、少し補足させてください。

今回の挙動については、「動作保証されていない」というよりも、エンジン側の仕様として明示的にシミュレーションが上書きしてしまうように見受けられます。Hair Art Directabilityのドキュメントにも次のように記載されております:

「Enable Simulationは必ず無効にしてください。有効のままだとシミュレーションが実行され、アートディレクションの影響を上書きします。」

おそらく同一ヘアグループ内では、ガイドレベルでシミュレーションがボーン由来のポーズを置き換える仕様となっており、キネマティックとダイナミックをブレンドするような仕組みは、現状こちらでは確認できておりません。

そのため、ご提示の構成(同一グループ内でボーンによる大きな動き+ガイド単位の細かなシミュレーションを同時に行う)については、本番運用としてはお勧めしづらいかなと思っております。

現状で取り得る方法を考えてみたら、

- グループ分割: 各Group IDごとにシミュレーション設定を独立して持つことができますので、ボーンで制御したい領域と、シミュレーションで細かな動きを加えたい領域を DCC

側で別グループとしてオーサリングできるのであれば、それぞれの方式を独立して適用できるかと思います。

- 高スティフネスでの擬似キネマティック: 1つのグループ内でシミュレーションを有効にしたまま、Bend StiffnessとDampingを高めに設定することで、

ボーンによるポーズに近い形に収められる可能性があります。厳密なブレンドではありませんが、控えめなセカンダリモーションとして機能するケースもあるかもしれませんので、対象ショットで一度お試しいただく価値はあるかなと思います。

くらいかなと思います。

同一ストランド上で「ボーンアニメーション+軽めのシミュレーションレイヤー」を本来の意味でブレンドする仕組みは、現時点ではエンジン側に存在していないように見受けられ、実質的には新機能のご要望に近い内容になってしまうかもしれません。

こちら、念のため社内の Groom チームにも改めて確認してみますので、もしご希望でしたら追ってご共有させていただきます。

引き続きどうぞよろしくお願いいたします。

お世話になっております。

(会議でもトピックになったため短めで回答させていただきます)

Deformer Graph(DG_GuidesSkinning など)は、ML Deformer や Cloth Deformer と同じ「Mesh Deformer」基盤上のフレーム単位の変形システムで、Niagara 側のシミュレーションとは別系統の仕組みになります。フレーム間で速度や前フレーム位置を保持する標準的な仕組みもないため、カスタム HLSL で簡易的な動きを追加することは可能でも、コリジョン・拘束ソルバー等を含む本来の意味での「シミュレーション」を Deformer Graph 側で再現するのは現実的ではないかなと思っております。

そのため、前回ご案内した方針(グループ分割、もしくは RBAN / コントロールリグでのボーンレベルでの動的処理との組み合わせ)でご検討いただければと思います。

引き続きよろしくお願いします。

お世話になっております。

詳細なご回答誠にありがとうございます。

現時点ではシミュレーションとデフォメーションの同時使用は想定されていないとのこと承知いたしました。

もし可能であればもう一点ご確認させていただけたら幸いなのですが、

Niagaraでのシミュレーションと同様の挙動をデフォーマーグラフの方に記載することで、近しい挙動を達成することなどは可能でしょうか?

ボーンアニメーションをガイドに転送するデフォーマーグラフのロジックに、追加するようなイメージです。

なるほど!丁寧なご対応誠にありがとうございます。

ご提案いただいた手法にて検討しようと思います。ありがとうございます。