Open Sayamame-beans opened 4 months ago
Invalidated job!
は削除するべきメッセージです(いろいろと外れないケースも多いので)
参考: Invalidated job! が表示される問題は1.9.13で修正されました。 依然として条件は不明です。
位置追従モードが双方向の場合、説明にもある通り、統合されるアーマチュアと統合先の位置が同じである必要があります。同じでない場合は、追従無しに戻されます。
今回の問題は片方向の場合のようで、以下の行が原因と考えられます。 https://github.com/bdunderscore/modular-avatar/blob/11abeb853b8282567a6aa948668c800370e86f16/Runtime/ArmatureAwase/ArmatureLockOperator.cs#L173 追従するボーンが増えた場合に容量を確保するようになっていますが、減った場合には必要な容量より多い配列長を確保した状態になり、削除されたTransformを含んだ配列がTransformAccessArrayに設定されます。 https://github.com/bdunderscore/modular-avatar/blob/11abeb853b8282567a6aa948668c800370e86f16/Runtime/ArmatureAwase/ArmatureLockOperator.cs#L304-L322 削除されたTransformへの参照が残っている場合、以下のチェックで_abortFlagがtrueとなり、追従無しに戻されてしまいます。同一シーン内では削除しても参照が有効なため、問題が発生しないようです。 https://github.com/bdunderscore/modular-avatar/blob/11abeb853b8282567a6aa948668c800370e86f16/Runtime/ArmatureAwase/ArmatureLockOperator.cs#L462-L466
対処法が思いつかなかったので再現手順についてまとめておきます。
詳しい調査、ありがとうございます。確かにゴミTransformが残るとabortになりそうですね。 このissueはエラー表示の改善要望として認識しているので、上記のバグは別issueを立てます。 https://github.com/bdunderscore/modular-avatar/issues/856
依然として、無言で双方向から追従なしに戻る挙動をするケースがあります
状況(衣装やMissing Scriptの有無?)によって、以下のエラーが表示されて衣装追従モードが追従なしに戻されるケースと、表示されずに変更可能なケースがあり、いまいち法則性が掴めていません…
Unity 2022.3.6f1 NDMF 1.4.0 MA 1.9.12