Pose Space Deformation for Blender?

Hi,

Do you know any solid implementation/solution of Pose Space Deformation (PSD) in Blender? Preferably already shipped within in Blender but third party add-ons can also be considered.

I search in the forum and the web and I couldn’t find anything conclusive. The closest I have is this one: https://blender.stackexchange.com/questions/112657/how-to-drive-shape-keys-based-on-the-angle-between-two-bones

but I’m not really keen on making a custom script because I can’t troubleshoot readily when it breaks.

As a background, PSD works like a correctional deformer where the correctional pose is driven by a joint. But it is much more sophisticated than the simple correctional deformer as it is not driven by a simple joint rotation but rather an interpolation of angles (or of some sort).

PSD can either be cone-angle base or RBF, correct me if I’m wrong.

Any help would be greatly appreciated.

Thank you.

There may not be a phrase quite like that in Blender, but there may be a technique to get the same results. Can you describe a specific example of what you’d like to acheive?

Hi @Rocketman

Thanks for the response.

  1. Supposing you have a char at A-Pose.
  2. You want to create a corrective deformation (CD) on the shoulder on T-Pose
  3. If its a simple driver, it would be just the Rotation Z - 45 degrees. Activate CD 100%.
  4. What if you rotate your shoulder this way (Rot X: -90 degrees, Rot Y -45 degrees, Rot Z 0)?
    In the simple driver, the correction deformer will not activate at all DESPITE the fact that it looks like a T-Pose.
  5. With the PSD, it solves this problem. It does not rely on simple rotational degrees but rather a calculation of angles between joints. In the PSD, it will fire either in 3 or 4.

Hope that clear things up.

I think I understand. The visual transform would the same but numerically the values would be different, leading to incorrect results in the driver.

This can be fixed by adding intermediary bones and then deriving the rotational difference from those. Try duplicating a bone in the middle of your chain, then give it a “Damped Track” constraint or something similar, to make it point to the bone ahead of it in the chain. It will appear to copy the rotation of its sibling but only as needed on certain axes. This technique helps in a lot of deformation applications.

1 Like

@Rocketman

Apologies for the late response. The “damped track” does provide some stability but it is not robust on extreme poses. Correct me if I’m wrong, “damped track” is the same with Maya’s aim/up vector constraint.

I reviewed the link above and turned out the implementation is not as hard as I imagined. At least on that specific case.

You can check the discussion here.