* chore: rearrange package structure to have the package at the root
* ci: update CI workflows
* ci: fixing workflow bugs
* ci: recurse building .zip package
* ci: more fixes
* ci: add back in the nadena.dev VPM repo
* ci: fix tests
* 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
* chore: adding unit tests for #366 and #326
* fix: duplicate submenu controls not generated for multiple installers
When multiple installers referenced the same expressions menu asset,
only one submenu control would be generated.
* fix: submenus incorrectly deduping across different postprocessing contexts
Fixes: #366, #326
* fix: postprocess context not being inherited into submenus (#326)
This caused issues where parameter mappings were not being applied to
submenus.
* fix: retarget is not performed if rootBone is the only bone to be retargeted
* fix: MeshRetargeter may cause NRE if mesh is null
* fix: MeshRetargeter is not working if sharedMesh is null
* test: add test case for SkinnedMeshRenderer only with rootBone
* test: fix RootBoneOnly test
* test: fix expected and actual
* test: add test for SkinnedMeshRenderer without mesh
This setting is set to _off_ on some imported animation files;
in this case, tangent data is not used and the curve is interpolated linearly.
Previously, we would sometimes set this to on as part of various animation
manipulations we perform in MA processing; this broke some avatars, e.g. "Fluria".
The previous logic failed when duplicate PBs explicitly specify their root transform.
This change rewrites this logic and expands the cases in which PBs are pruned.
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.