Can you make Control Rig work in world space?

So I’ve been using control rig for some procedural animation, and noticed that inputted vectors must be in local space. My first enemy made with it used a function to convert from world to local space before I found the from/to world nodes. However, this doesn’t account for rotation of the object’s skeletal mesh, which will offset everything by that rotation.

This is expected, since it does work in local space, but is there any way at all to avoid this behaviour? To make it work in “absolute” world space?

Bump.

Bumpity bump

Have you tried the Make Absolute node?

I gave it a try, but I’m a bit confused by the inputs. Does it take a world space position for the global input, then a local space input relative to the global input? (for example a component)

Bump, still no fix

Get the Actor Rotation from BP and pass it as a variable in Control Rig or use Property Access to get it.
Then you either use the make relative node or counter the world rotation with the local rotation.

That was my original plan but it just seems like a pain, especially because I’m trying to keep most math stuff outside of control rig to c++ because it’s easier to do there and also more performant. Is there really nothing that can be done other than that?

I guess you can just create a control outside of the skeletal hierarchy and feed the world transform.
You may need to subtract the actor location, but it should do what you want.

Hope this is what you are looking for at least for locations. You can set the position of a control, promote to variable, expose the variable and then use the from world node. I add some screenshot to show how i do it.


Captura de pantalla 2024-05-22 204447
Captura de pantalla 2024-05-22 204602