* feat: inferring prefix/suffix now supports infer with HeuristicBoneMapper
* feat: inferring prefix/suffix is now triggered when prefix/suffix is empty and merge target changed
* chore: add comment for inferring prefix/suffix with HeuristicBoneMapper
* feat: support using Humanoid Rig on RenameBonesByHeuristic
* feat: support using cloth's Humanoid Rig on merge_armature.adjust_names
* feat: support outfits' hips in one more deep place
* chore: refine condition on Heuristic Bone Mapper's exact humanoid bone matching
* chore: unify the process for get outfit's humanoid bones
* chore: rename variable name to clarify means
* chore: use InitializeOnLoadMethod instead of reflection to get boneNamePattern from Editor Assembly
* test: add some tests for SetupOutfit and InferPrefixSuffix
* Disable compilation for use in Unity 6 (6000.0.20f1):
- Do not compile some classes and code paths in non-VRChat projects.
- This has been tested in Unity 6 (6000.0.20f1).
* Fix hide internal components in Unity 6:
- [AddComponentMenu("")] does not work in Unity 6.
- Replace it with [AddComponentMenu("/")]
- This alternative is confirmed to also work in Unity 2022.
---------
Co-authored-by: Haï~ <hai-vr@users.noreply.github.com>
Co-authored-by: bd_ <bd_@nadena.dev>
Apparently, it's safe to use Unity objects as keys in HashMaps, and doing
so actually fixes some edge cases where assets are recreated as a new C# object.
* fix: menu item with float value incorrectly generates bool parameter
* fix: reactive components generate transitions with overlapping condition ranges
* chore: add tests for menu item parameter type
* fix: incorrect parameter type detemination for float values
* chore: add more tests for menu item parameter type
* refactor: unify logic to determine parameter type and rename confusing variable
* fix: init menu item settings only when added manually from inspector
* fix: init menu item settings when added from some shortcuts
* fix: init menu item settings when reset from context menu
* fix: init merge animator settings only when added manually from inspector
* feat: add material switcher
Also refactor everything...
* refactor: simplify object curve handling
* refactor: additional refactoring and bugfixes
* feat: inverse mode
* feat: add material setter inspector UI
* chore: set material setter icon
* chore: fix error on build
* chore: adjust order of inverted element
* refactor: generalize support for arbitrary parameters as conditions
* feat: automatically assign Menu Item parameters
* feat: ReactiveComponents respond to MenuItems
* feat: AvatarObjectReference tracks both paths and direct object references
* feat: set isSaved/isSynced/default values from MenuItem
* feat: Object Toggle preview supports menu items and manipulating parent objects
* feat: reactive previews respond to menu item default value states
* chore: update NDMF dependency
Zero-length allocations could result in multiple entries with the same offset in the segment map. This would then break subsequent lookups.
Fixed by increasing these allocations to a minimum length of one.