Q: Pose Mode Resets All Shapekeys is this Intended Behavior? #434
Labels
No labels
Added
Avatar Toolkit Idea (Won't be added to Cats)
Cleanup
Fixed
Further Info Needed
In Progress
Might Add
Release Candidate
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Kneelawk/Cats-Blender-Plugin#434
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
When using "Start Pose Mode" or "Stop Pose Mode" in CATS, all shapekeys are reset to 0, including body customization shapekeys. This happens even when using the "No Reset" variants of these operators. Is this the intended behavior?
Current Behavior
Both
start_pose_mode()andstop_pose_mode()intools/armature_manual.pyunconditionally reset all shapekeys to 0:This reset occurs regardless of whether the
reset_poseparameter isTrueorFalse. The "No Reset" operator variants (StartPoseModeNoReset,StopPoseModeNoReset) only preserve bone transforms, not shapekey values.Use Case Where This Is Inconvenient
Many VRChat avatars include shapekeys for body customization (e.g.,
BODY - SKINNY LEGS,BODY - WIDER HIPS, etc.). My use case is to:Currently, if I have a shape key like
BODY - SKINNY LEGSenabled (set to 1.0) and click "Start Pose Mode", their body reverts to the default proportions, making it tricky to accurately preview how poses will look on their customized avatar.Workaround: Users can enter pose mode manually via Blender (bypassing CATS) to preserve shapekeys, but then cannot use CATS' "Stop Pose Mode" without losing their shapekey values. (Or you can undo your pose changes via undo history if just testing how things look if you don't want to use CATS' button and have to re-add the shapekeys.)
Questions for Maintainers
Was the shapekey reset intentionally designed this way? If so, what was the reasoning?
Are there CATS features that depend on shapekeys being reset? Potential dependencies to consider:
Should the "No Reset" variants preserve shapekeys? The current translation strings might suggest they should preserve state, but then again it says poses, not shapekeys ;)
StartPoseModeNoReset.desc: "Starts the pose mode without resetting the pose"StopPoseModeNoReset.desc: "Stops the pose mode and keeps the current pose"Discussion
It would be handy for me to adjust this not to reset my shape keys, but I don't use most of CATS features yet, so I am uncertain about whether proposing a change would screw up other features/behavior.
Personally, I prefer to stop pose mode without the NoReset behavior, as the poses I make are just for temporary tests.
If this isn't something we'd like to change (or there's a reason we shouldn't), I might just patch my own version (or maybe add a toggle or something). For now I'm just hoping to understand a bit more about the design, and will go from there. Thanks!!
Thanks for the detailed report, the shape key reset was likely intentional by the original developers to ensure a clean, neutral pose state by resetting both bone transforms and mesh deformations to avoid unexpected interactions between shape keys and pose bones (or something on those lines).
This would make sense for animation/posing workflows where you want a known baseline state. However, you're right that the No Reset button (The small one next to the main button) should preserve shape keys but currently doesn't. I don't intend to change the main button but I will fix the smaller button so it doesn't reset shapekeys.
This most likely broke at somepoint but no one uses it so it was never reported.
A fix is now on the 5.x Dev Branch and will be pushed to the next version of Cats which is due out on Friday.
Issue closed as fixed, if the fix didn't resolve the issue please feel free to reopen it.