By calculating the offset between the point positions on the skeletal mesh and those on the alembic cache, and then applying an inverse of the pose transform, I'm able to create a perfect blendshape for the leg, with the knee bent at 38, 76, 144, 155 degrees.
For example, this is the blendshape for when the knee is bent at a 114 degree angle.
These 4 blendshapes work perfectly when they are applied one at a time at the correct knee bend angles.
However, what I'm really wanting is for each of the blendshapes to be calculated such they can be applied in an additive way, instead of only applying one at a time.
At the moment when I apply them all, they overshoot the reference from the alembic cache.
I understand why this is happening but I cannot get my head around the maths for how to extract the blendshapes in a way that factors in the affect of the previous blendshapes being applied.
For example, when the knee is at a 114 degree rotation, and the first 3 blendshapes all have a weight of 1, the end result should match the alembic cache, rather than overshoot it.
I'm hoping someone can help me with the maths for achieving this.
I've included this example setup in case someone is willing to assist.
Thank you


