Custom Anim Node - Rotate bone failure (child bones do not update location)

Howdy! I am confused as how to modify a bone’s transform

I have been trying to rotate a bone in a custom node. I have reviewed the TransformModify Bone and tried to rotate the bone based on this information but I cannot seem to get it to work. Basic setup is complete; EvaluateSkeletalControl_AnyThread succesfully runs. But lines 98-103, while they do appear to rotate the bone, do not update any of the children bone positions. Below you can see the joint is rotated away from where the next bone is.

this is the code in Evaluate:

I added lines 94 & 100 to convert spaces based on modify transform bone, but I don’t think converting to local space does anything helpful. I can’t really tell what’s going on here, much obliged!

Okay So I just realized that what was going on is that the bone is in fact rotating, the issue is that I immediately do calculation for the children bones right after the the rotate, based on the previous positions . So the bones I solved for after are solved on old transforms. I need to get the current bone location. I will update my code and post momentarially.

Did you ever solve the problem? This post seems similar to the problem I’m struggling with. I’m waiting for your updates! :slight_smile:

Yes! of course by momentarially, I meant 5 months later :slight_smile:

Basically The issue is that the function EvaluateSkeletalControl_AnyThread Must solve for all bone’s rotation - the output updates the bone(s). I was working off the premise that if I update the parent’s bone, the children bone’s locations would be updated - but I needed to reclusively calculate the bone rotation of each child by myself if I wanted that info.

After I solved the rotation of a bone, I need to call this:
image

from start bone to end bone, get the parent comp transform and multiply by the bone’s local transform. Save this value which is your bone’s new position from the parent bone.

Here as you can see after calcualting the shoulder rotation, I call this fucntion to update the child bones in my saved array.

Now you can properly do whatever needed calculations for the next bone. Hopefully this explains it, thanks for responding because I would have forgotten to update this!

1 Like

Wow, you’ve solved a much higher level problem than I’ve been thinking about!
I was solving a much simpler child bone rotation!
And luckily I was able to solve my problem before you gave me a nice answer. :slight_smile:

This great answer from you will surely be able to teach me and others a lot in the future. Thank you very sincerely ㅇㅅ</