Control Rig: How to scale a bone while retaining the IK?

Is it possible to set bone scale and make the child bone react to this change via IK? So when a bone is scaled, the child bone adjusts its scale & rotation to match the new parent bone end location.
This is what I mean, I hope that it explains it well:
scaleBone_DesiredEffect

For now, this is what I try, before and after:


As you can see, the child bone scales as well and it doesn’t follow the parent bone end location. I tried to check the Enable Stretch in the Basic IK node, but then the whole leg deforms in a strange way and is misplaced even without any transform offsets.

I’m having similar issues in applying scale leg joints. The most useful observation I’ve made so far is that scaled bones work ok with PowerIK nodes in the AnimBP AnimGraph, but as soon as I try to apply PowerIK to the exact same skeleton using the same effectors in a control rig I get issues similar to what you have pictured above.

In both cases, I’ve had trouble only scaling in one dimension. I’m currently getting things up and running by scaling in X, Y and Z. I’ll have another look at scaling in one dimension once I have everything else set up right.

As much as I’d prefer to use the PowerIK node in a control rig, I’m going to just use a PowerIK node in the AnimBP AnimGraph for now…

1 Like

Thank you for the info, that’s really useful! I’ve tried applying uniform scale to the bone and it works correctly then, indeed:

… So maybe that’s a bug or something.

Glad to have helped.

I see you are scaling in the control rig - I’ve tried scaling both in the anim BP and in the control rig. I’ve found that when scaling bones in the anim BP, the mesh scales with the bone. If I scale the bones in the control rig, it does not.

Have you noticed this (or even better found a solution!)

(Please ignore contorted character positions below - it’s challenging getting screen grabs as I’m working in VR. The issue with the mesh not being scaled with the bones in control rig is evident regardless of the character’s position)

Bones scaled in Anim BP

image

Bones scaled in Control Rig

2nd image won’t appear above - this is the character with bones scaled but mesh appearing to not be:

I’m just learning Control Rig basics for now, so I’m afraid that I can’t offer much help here - but when I scale a bone in the Control Rig, it seems to scale the mesh as well. The left one is at 1.0 scale, the right one is at 1.5 scale:

The mesh is longer & thicker after scaling the bone in Control Rig.

After scaling any bone uniformly in anything.

That’s how armatures/skeletal mesh work because of the uniform value you are using.

If you were to scale to 1.5 only on the vertical axis it wouldn’t get fatter.

To do what you asked for in the first question, the best solution is to check the bone scale on begin play. And if it’s anything but 1,1,1 you use a bone copy node to move the IK bone to the correct spot.
This is only for “starting” positions.

Leg ik / hand ik usually require per frame adjustments when using retargeting or anything that affects bone position.

Ok, that’s good to know, thank you.
I’m using PowerIK and have ‘Allow bone translations’ checked, so maybe that’s what I need to look at next.