お世話になっております。
モジュラーキャラクター作成におけるLeaderPoseComponentの挙動について質問をさせて下さい。
モジュラーキャラクター(いわゆる着替え)を作成するにあたり、LeadPoseComponentの設定を行いました。
ここで、LeaderBoneComponent に設定したスケルタルメッシュコンポーネント以外の追従する側のコンポーネントに設定されたスケルタルメッシュに設定されているポストプロセスアニメーションBPが動作しません。
どこかの設定をいれるといいのでしょうか。
このポストプロセスアニメーションBPは該当のスケルタルメッシュビューワーで見ると問題なく動作いたしますし、試しにLeaderBoneComponentと入れ替えてみると動作するようです。
SetLeaderPoseComponentの[InFollowerShouldTickPose]のチェックを入れたのですが変わらず、他どこか確認する箇所があればお教えください。
よろしくお願いいたします。
お世話になっております。
ドキュメントを良く読むとサポートしていないと記載がありました。
https://dev.epicgames.com/documentation/ja\-jp/unreal\-engine/working\-with\-modular\-characters\-in\-unreal\-engine
> Set Leader Pose Component (リーダー ポーズ コンポーネントの設定) を使うメソッドでは、スケルタルメッシュ オブジェクトに親スケルタルメッシュ オブジェクトをペアレント化することでキャラクターを構築し、アニメーションをその親で排他的に実行します。
> このメソッドではすばやい設定が可能ですが、分離されたアニメーション再生や物理レンダリングはサポートしておらず、レンダリング スレッド パフォーマンスの負荷が大きくなる場合があります
>
分離された方(追従する側)のアニメーションBPは動作しないのが仕様のようなので、SetLeaderPoseComponentを使うならばリード側コンポーネント側のアニメーションBPかそれに紐づいているメッシュのポストプロセスアニメーションBPに処理を書かないとダメということになりますか。
そうなると SetLeaderPoseComponentノードの[InFollowerShouldTickPose]はどこに処理が回るのかが疑問に残ります。
よろしくお願いいたします。
お世話になっております。
ご質問ありがとうございます。
すでに調査いただきましたとおり、Set Leader Pose Componentを使用すると、分離された方(追従する側、フォロワー)はリーダー側のポーズをコピーする形で自身のポーズを決定します。リーダーポーズが設定されている限り、フォロワーは独自の骨計算を自身のポーズに反映させることができなくなります。
そのため、ポストプロセスアニメーションも、リーダー側に持たせる必要があります。言い方を変えますと、モジュラブルなキャラクター構築において、パーツ側に独自のアニメーション計算が必要な場合、「リーダーポーズ」方式は適さない、とも申し上げられます。
> そうなると SetLeaderPoseComponentノードの[InFollowerShouldTickPose]はどこに処理が回るのかが疑問に残ります。
こちらのフラグは、「フォロワーのアニメーションBPのイベントグラフのロジック(Update Animation)を実行したい」という特殊な要件で指定するオプションとなっております。滅多にないと思いますが、たとえば「マテリアルパラメータのアップデート」など、アニメ制御、骨計算以外の副作用的な仕事がイベントグラフのUpdate Animationに書かれている場合、このフラグによってそうした処理をフォロワー側で実行することが可能となります。
以上、よろしくお願いいたします。
ご回答ありがとうございます。
やはり個別のアニメーションがある場合はSetLeaderPoseComponentでは難しいようですね。
そうなりますと、CopyPoseFromMesh方式を使うしかなさそうなのですが処理負荷が高くなるとのことなのでSetLeaderPoseComponentとの併用を試しています。
(アニメーションが不要なパーツはSetLeaderPoseComponentで、必要なものだけCopyPoseFromMesh)
ローカル環境でのテストでは現状うまく動作しておりますが、この方法で何か問題はありますでしょうか?
個人的には方法が違う2種を使うと何かの拍子でアニメーションのズレが起こりそうな気がします。
よろしくお願いいたします。
お世話になっております。
LeaderPose方式とCopyPoseFromMesh方式の組み合わせは、弊社内でも使用実績のあるアプローチであり、安心してお使いいただけると考えております。
いずれの方式も設定を間違えると1フレームのズレを起こす可能性(Nフレーム時に、N-1フレームのアニメーションを拾ってしまう)はありますが、それは2つの方式を組み合わせることで発生可能性が高まる類いのものではありません。問題を防止するには、リーダーのアニメーションが、フォロワーのアニメーション処理(リーダーポーズ方式時)やブループリント処理(CopyPoseFromMesh方式時)より先に評価済みであることが重要となります。この点については、
・フォロワーのコンポーネントをリーダーのコンポーネントの子にする
・CopyPoseFromMesh実行側(≒フォロワー)をコピー対象のコンポーネント(≒リーダー)の子にする
※つまり、どちらの場合も、アニメーションに従う側を、アニメーションを率いる側にアタッチする
という設定を心がけていただければ問題ないかと存じます。
以上、よろしくお願いいたします。
ご回答ありがとうございます。
コンポーネントの設定に気を付ければ特に問題はなさそうとのことでしたので併用方式で実装を試していきたいと思います。
また何かありましたら質問させていただきます。
よろしくお願いいたします。
ご確認ありがとうございます。
それでは本件は回答済みとしてCloseさせていただきます。
また何かありましたら、いつでもEPSをご利用ください。
以上、よろしくお願いいたします。