-
Notifications
You must be signed in to change notification settings - Fork 237
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
Bones switching to manual on memory cleanup #9
Comments
I think the parent transform of root bones may also be broken in this case. |
Hi! Is there a quick repo? (i.e. editing AnimationTagPoint sample?) I think I see what you mean as setManualBone() depends on boneTransf.mIndex. Thus we should probably reset in either SkeletonInstance::_updateBoneStartTransforms or Bone::_memoryRebased or a new function. But it would be great to be able to repro in order to check the fix works. |
I don't have the samples easily buildable, but it should be reproducible if you create many items of the stickman mesh in that sample then delete 100 of them to trigger the cleanup. Just not a continuous 100 as that is divisible by 4 which may not change the transform indices. |
I verified what I was seeing in my first comment was just an effect of the manual mode being wrong - it was causing a different skeleton instance to mess with the transforms of the first. |
Found another thing broken by the bone memory manager cleanup. |
This bug took a long time to fix, but it finally arrived. Applied the fix to all branches (2.1,2.2, and 2.3 / aka master) |
System Information
Detailled description
When the bone memory manager cleanup is performed, the SkeletonInstance manual bones array becomes incorrect as it depends on the bone transform index which can change.
This causes some bones to randomly switch to manual mode causing problems.
The text was updated successfully, but these errors were encountered: