This change reworks delete handling to be more consistent with other properties,
by treating it as a virtual property (`deletedShape.{blendshapeName}`) instead of
a weird additional field of blendshape keys. This then fixes a number of issues
(e.g. broken preview for delete keys).
Fixes: #1253
Changes to pass ordering caused Merge Armature to destroy menus before being
processed by Menu Installer; fix this by hoisting menu generation to occur within
the animation services context, before Merge Armature runs. This is safe because
the menu installer pass does not interact with the avatar's animator controllers
directly.
- Rebased to 1.10.0-rc.4 because the inspector of SubMenu of source Expressions Menu were broken in the base commit this branch initially started with, which was preventing testing some aspects raised during review.
- When this is being rendered as part of an SubMenu of source Expressions Menu, don't use any of the label logic, as menu items within such an Expressions Menu are not backed by any GameObject.
- Rename _isTryingRichLabel to _useLabel.
- Since switching to unlinked always overwrites the label field with the current ObjectName, and switching to linked always empties the label field, the state of _useLabel while the Inspector is open is implied by the value of the label field, or the previous state of the _useLabel field itself when the label field is being emptied out.
- In addition, use the |= operator.
- When the name is linked, and the user begins typing the "<" character, set the label field, and do not apply the name. This will automatically switch to linked mode as the inspector will be reevaluated a second time.
- If the original object name already contains a "<" character (i.e. it comes from a previous version of Modular Avatar), there will be no automatic conversion happening as long as the object name still contains the "<" character.
- Changed the localization keys to discard the rich text toggle aspect.
- Not addressed: When multiple Menu Item components are selected, the behaviour of the inspector currently edits the GameObject name, with no link button, and no automatic conversion when typing "<", regardless of the contents of the label field.
- Add a link/unlink icon to the right of the name field.
- Only show the rich text preview when there is the character '<' in the label field.
- Toggling link from ON to OFF will set the label to the current GameObject name.
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.
The scale adjuster preview system reparented proxy renderers under proxy
bones, in order to handle null root bones and MeshRenderers. However, it
then destroyed the entire proxy bone hierarchy, taking all proxy renderers
with it. This change instead tracks proxies, and reparents them back to the
root to avoid this issue.
Closes: #1177
* fix: resolve parameter type conflicts for menu items in params usage window
* Revert "fix: resolve parameter type conflicts for menu items in params usage window"
This reverts commit 4c6b41de4c.
* fix: expand conflicting parameter types for menu item in introspection
* chore: update NDMF dependency
---------
Co-authored-by: bd_ <bd_@nadena.dev>
* 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: parameter should be synced if any of sibling parameter is set to be synced
* fix: parameter should be saved/synced if any of menu item references same parameter is set to be saved/synced
* feat: enhance default value field input
* fix: format default value when update type or value on parameters inspector
* fix: don't accept NaN and Infinity for default value setting
* 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
* fix: NullReferenceException when previewing Object Toggle with renderers other than MeshRenderer and SkinnedMeshRenderer
* fix: NullReferenceException when previewing Scale Adjuster with renderers other than MeshRenderer and SkinnedMeshRenderer
* fix: warning when object name contains "."
* chore: change RC state and layer names to not reference Shape Changer specifically
---------
Co-authored-by: bd_ <bd_@nadena.dev>