What is the Purpose of Control Rigs "Project to new Parent"?

Anyone know what the purpose of doing Get Transform - Bone over Project to new Parent? If I’m not mistaken I believe that the Project to new Parent node basically moves bones from one space into another and in this case they are orienting the body control to the spine_01…so if I move spine_01 it should also move the body_ctrl…that was my assumption. But it doesn’t…

If I instead use this to orient a space of the leg to the upperarm bone then rotating the upperarm bone moves the leg…the controls under that space will maintain their relative position too it as well…does anyone really understand this node?




I’ve been looking into this trying to get to the bottom of it…no information seems to be floating around anywhere on this at all…I’ve searched YouTube,Discord, Unreal Forums, Unreal Documentations…I’ve even found the C++ header thinking maybe it would shed some light…

Would be really nice if someone could help people understand new features like this…especially considering it’s used everywhere on the Third Person Template and Lyra Control rigs

1 Like

I figured it out it’s basically the exact same thing as parenting something, you’re making it relative to that space…it’s basically like switching spaces or attaching a weapon to a mesh so that when you move it that object moves with it while maintaining its relative offset from that object. Great Naming Convention There Man. Let’s just use Vector Math Terminology to Confuse the Indie Devs.

They could have easily named ‘Reproject to new Parent’ to ‘Set Parent’ and its purpose would have been painfully obvious

It’s dumb stuff like this that has absolutely Zero documentation anywhere on the internet that completely screws with my head at times
image

3 Likes

I was wondering the same thing. Thanks for figuring it out. Now back to building my custom control rig :slight_smile:

1 Like

Project to new Parent node
algorithm:
child world matrix * old parent world inverse matrix = offset matrix between old parent and child
Offset matrix between old parent and child * new parent world matrix = new matrix that maintains old parent-child offset
usage:
If the old and new parent objects are the same object, then this node is a “matrix constraint with offset node”
Hope that helps

1 Like

Where does the explaination of the algorithm come from? I have been searched for quit some time, but did not find any documentation about this node… Could you please share the source of these explainations? Thanks a lot!