PhysicsAssetの更新を止める方法について

パフォーマンス向上のためスケルタルメッシュの PhysicsAsset の更新を止めたいケースがあります。

まず SetPhysicsAsset によってコリジョンのない PhysicsAsset に差し替える処理を入れたところ、​以下のエラーが発生するようになりました。こちら SetPhysicsAsset 呼び出しから発生しています。​Conduitは必ずどれかのステートに行くように条件は書かれています。

AnimBlueprintLog: Error: Current state is a conduit and will reset to ref pose. This can happen if a conduit is an entry state and there isn't at least one valid transition to take.​​

また別の方法として、​

少し古いのですがこちらの記事を見たところUSkeletalMeshComponentのKinematicBonesUpdateTypeに EKinematicBonesUpdateToPhysics::SkipAllBonesの値をセットすれば止まると書いてあるのですが試したところ止まりませんでした。show collision のコマンドなどで確認しています。

https://www.docswell.com/s/EpicGamesJapan/ZVPELZ\-cedec2018\-ue4\-CharacterPerformance\#p102​

何か良い方法あるでしょうか?​

再現手順

EKinematicBonesUpdateToPhysics::SkipAllBonesを設定しても効果が無いように見えますが内部的にPhysicsBodyへの値のセットはスキップされています。(添付動画にChaosVisualDebuggerによる検証がございますのでご参照ください。)

show collisionによる表示では BodyInstanceの姿勢ではなく、アニメーションの姿勢を直接取得してしまっているため影響がないように見えてしまっています。(FSkeletalMeshSceneProxy::DebugDrawPhysicsAssetを参照してください)

コリジョン更新の負荷を軽減するより簡単な方法としては、コリジョンを全削除しても良いのであれば、

SetCollisionEnabled(ECollisionEnabled::NoCollision);を呼び出してしまう方法を検討できます。BodyInstanceへの更新停止ではコリジョン表現が物理界に残ってしまいますが、NoCollisionにすれば物理界からコリジョン表現が削除されます。

大変助かりました、ありがとうございます。この情報を元に対応検討しようと思います。