anatawa12 / AvatarOptimizer

AAO: Avatar Optimizer: Non Destructive Avatar Optimization Utilities
MIT License
184 stars 24 forks source link

[MA] MA Merge Blend Treeで統合したBlendTreeのアニメーションパスが壊れる #1298

Closed yuzukisatsuki closed 1 hour ago

yuzukisatsuki commented 3 hours ago

アバターにAAO Trace And OptimizeとMA Merge Blend Treeのコンポーネントがあり、さらにMA Merge Blend Treeのパスモードが相対的かつ相対的パスのルートがアバターのルートである場合(MA Merge Blend Treeがアバターのルートにあり相対的パスのルートがnoneである場合も同様)、この統合されたBlendTreeでのアニメーション内のオブジェクトのパスが"$AvatarOptimizerClipLengthDummy$"に置き換えられてしまいアニメーションが機能しなくなります。 複数プロジェクトで再現し、パスモードが絶対的である場合や、相対的パスでもアバターのルート以外が相対的パスのルートに指定されている場合は正常に統合されます。 Avatar Optimizer: 1.8.0-beta.9 Modular Avatar: 1.10.5

anatawa12 commented 2 hours ago

AAOない状態ではアニメーションが動きますでしょうか。

今試してみたところ、アバタールートが相対ルートに指定されているMA Merge BlendTreeでModular Avatarが生成するアニメーションは Target というGameObjectのパスを /Target に変換することが確認できました。 そして私の環境で試した限りですとMAの生成した/Targetの状態ではアバター直下のTargetオブジェクトの操作に失敗しました。

このため、Avatar Optimizer がアニメーション対象のないアニメーションであると判断し、その結果としてアニメーションのプロパティーが削除されたものだと思われます。

$AvatarOptimizerClipLengthDummy$はAAOがアニメーションを修正を行った際に、キーが完全に無くなると Animation Clip の長さ情報が消えてしまって困ることがあるため、キーがなくなった際に長さ情報を保持するために追加されるダミーのキーになります。

yuzukisatsuki commented 1 hour ago

再度確認したところAAOがない状態でアニメーションが動かないことが確認できました。ご指摘ありがとうございます。 ModularAvatar側の問題のようですのでそちらの方にissue上げ直させていただこうかと思います。

anatawa12 commented 1 hour ago

確認ありがとうございます。MA側とのことなのでCloseします