How to Transform bone to component space?

Hello guys I have a character with bow that should move his spine bone when he is shooting to a nearest target but for some reason it just wont work at all. I am using Transform (Modify) Bone rotation node in my Anim BP as you can see in this picture

I am using Component space for this for some reasons of my own but even with World Space it will not work.
Here you can see how I tried to do it but it is not working at all

The weird thing about this is that when I change Spine rotation variable for Set Actor Rotation then my whole character will be always facing the target but if I have just this variable which then goes to Anim BP then it just does not work. Help me please, I am not good at this translating from space to space things because I could not even find definitions of what exactly is Component Space, World Space, Bone Space etc. even though I got some idea. I am currently using 4.19 UE but I got this in 4.25 version too.


I had this problem too when I was new to the different spaces. Each space is the XYZ axis frame of reference for whatever it is. So you have world space, the XYZ of objects in world space that you’re probably most familiar with. Component space is the XYZ frame of reference for the mesh component, which is usually fixed to the base of the capsule (and often rotated 90 degrees on its Z axis due to the reference frame for a lot of imported animations). Then you have bone space, which is the XYZ frame of reference for a specific bone in the mesh. When you click on bones in the animation editor, you can see these orientations. There are nodes to convert to different spaces, but for what you are doing here you shouldn’t need them.

One thing I noticed is that you are using replace existing instead of add to existing in your node. Replace existing is good when you have a specific rotation in a specific space and you want to set a bone’s rotation to that rotation. Add to existing is probably what you are looking for, because it will take whatever the current rotation is, then add rotation to that rotation. You’ll want to ensure that the variable you are feeding it is constantly tracking the difference in rotation from component forward to whatever the target rotation is in component space.

The best way for me to get a feel for these things was to use Draw Debug Arrow nodes so that I can be sure each vector and rotation I’m working with are correct before being fed to the IK node.