Getting a bone's position from ONE layer of a blended/additive animation (for IK)?
I'm having some trouble wrapping my head around getting an IK-driven rig's poses to work additively.
You can hopefully see the problem here. I have two poses, both of which feature the player's feet being grounded. The first pose has a special stance for the legs and feet, with the torso being in the reference pose (i.e. the bones from the hips on upward are all at their neutral position).
The second pose plays an animation ONLY on those bones which are zeroed out in the first pose; i.e. the hips and above have keys, but the feet are identical to the reference pose.
When combined, the pose is CLOSE to correct, but the feet and legs get sort of wonky.
Now, the reason this is happening I think I've got figured out. Since the rig is posed with IK-based feet, as the upper body turns in the additive upper-pose (pic 2), the thigh, knee, shin and foot bones ARE transforming away from their reference positions. From an IK-based perspective this isn't happening as the feet are retaining their position, but in terms of the absolute bone movement, when the waist turns, the legs are twisting to compensate, and then the feet twist relative to the legs, to retain this position. When this slight twisting is combined with the intended leg pose, it causes the bizarre twisting.
I tried solving this by just deleting the lower-leg bones in the anims containing the reload, but this didn't solve it either. When the waist twisted for the upper body anim, there was NO counter-twisting in the legs, so they remained properly stiff BUT they also rotated in accordance with the torso. The net result was that I got the exact leg pose of the first pic, rotated to maintain its relationship to the waist as it was changed by the second pic.
Ultimately, the solution that I need is to apply some IK solving, it seems. I need to solve the legs of the final pose so that the feet match the position of the first pose and the legs follow appropriately. BUT, the problem is, I can't find a way to GET the position of those bones for doing the solving! Obviously, the feet aren't static; the reason for using additives is that the idle pose is also part of a walk/run blend. So I can't just feed coordinates to the IK end effector location.
I have to find a way to dynamically pull whatever the location of a bone or socket WOULD BE if only the Leg half of the animation was playing, so I can run IK solvers on the legs of the FINAL, BLENDED POSE. Unfortunately, Getters for socket (since you can't just use bone) transforms aren't called in this fashion; if I try to Get the transform of the mesh's foot bone, it's always going to be its final transform at the point of the Get (i.e. if I get it to control something after the additive, it's always going to get its position after the additive!)
Is there any way, at all, to achieve this? To blend two poses where one pose is transforming a bone that starts an IK chain and another pose is transforming a bone that ends it, in a way that properly solves the IK chain from the blended start bone to the blended end bone?
asked Jul 31 '14 at 12:38 AM in Using UE4
Follow this question
Once you sign in you will be able to subscribe for any updates here