-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove bone_pose_updated
signal and replace it with the skeleton_updated
signal
#90575
Remove bone_pose_updated
signal and replace it with the skeleton_updated
signal
#90575
Conversation
bone_pose_updated
signal and replace it with the skeleton_updated
signal
e53b353
to
ca40af3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approve in a technical sense. It's going to be a really big performance improvement for rigs with lots of bones and lots of bone attachments.
I think we need to understand the overall design regarding the update order. Also, is it okay from the user perspective for bone attachment to only update once per frame?
I think it might be good to first figure out if the skeleton modifier design changes before merging this.
ca40af3
to
26bb24c
Compare
I have already agreed with @reduz in the past that if poses during modification by the Modifier are needed, the user must either use the modification_processed signal or create their own SkeletonModifier3D. From the use case of the BoneAttachment, I conclude for now that it is only important to be consistent with the final visual pose. |
4bb420b
to
136ebf6
Compare
136ebf6
to
8869141
Compare
8869141
to
78a5ef4
Compare
Thanks! |
As has always been the case, the
bone_pose_updated
signal is fired a crazy many times in a single frame and can cause unusual updates in BoneAttachment. It should never be used, but used only by BoneAttachment.For safety and performance, make skeleton fire the
skeleton_updated
signal only once per frame at the moment all modifiers processed. Then, the BoneAttachment uses it.If the user has been using the
bone_pose_updated
signal, replace it with thepose_updated
signal which is used by some Editors. This signal may also be fired multiple times per frame, but is relatively safe to use since it is not fired during the update process although it does not detect changes made by the Modifier.If you need a post modification signal for a specific modifier, use the already existing
SkeletonModifier3d.modifier_processed
signal.For getting the final pose which will be reflected in the skin, use the
skeleton_updated
signal that this PR adds.