* Add integration test for blendshape sync
* fix: blendshape sync not being processed
This change refactors AnimationDatabase to be part of the same extension
context as the TrackObjectRenames functionality (which is renamed back to
PathMappings). This then allows us to sequence deactivation of this context
to come after blendshape processing completes.
Fixes: #461
It seems that sometimes static initializers are created before the icon annotations are updated. This change checks for this case, and defers the icon-disabling until after the necessary annotation records are created.
CreateAsset, as it turns out, can be extremely slow, particularly when used on Mesh objects.
By adding our generated objects as sub-objects of a container AnimatorController, we can
minimize this overhead.
This branch rewrites the merge armature logic to be both simpler and more reliable. In particular, all components in the merged armature will always be moved into the target armature, eliminating the need for complex and unreliable constraint adjustments. I also rewrite the path remapping logic to be more reliable by tracking actual GameObjects, rather than string paths.
This change fixes a number of constraint-heavy outfits, including:
* https://cloudz.booth.pm/items/3751948
* https://capettiya.booth.pm/items/4424678
It also fixes issues with some more advanced use cases, such as animating transforms on bones that are newly added using merge armature.