Additive pose causes my characters feet to wobble

One of the things that irks me most in character animation is when feet wobble when they shouldn’t and look floaty, and it seems that the additive Blendspace I’m using is causing my feet to do just that which is frustrating.
(Blendpsace is required for my purpose, can’t use aim offset use additive of poses separately or any other workaround. Also for testing purposes I’ve tried just having one pose as a direct additive and that makes the feet wobble too).

Even though I’m just using the Blendspace additive to make offsets to my characters idle position which aren’t animated it causes the characters feet to wobble. I’ve tried ticking/unticking options like looping interpolation, swapping bone translation re-targeting, etc, but nothing seems to solve the issue. Is there some backend that’s forcing additive poses to interpolate/smooth tween frames that’s causing the feet to wobble?

I’d greatly appreciate a solution as the animation looks awful and broken with the feet floating about wobbling like that.

I completely understand your frustration with swimmy feet. Unfortunately, because the skeletal hierarchy is basically pure FK by default, it happens fairly often (just imagine how hard it would be to lock a character’s feet down in Maya or Max if the legs were FK). There is, however, a really easy solution: use UE4’s two-bone IK. Documentation here: LINK.

FYI, at Epic, we include extra bones for IK in the skeletal hierarchy, which are children of the root and are constrained to the foot (and hand) bones in Maya. We then use those bones as the End Effectors in the two bone IK setup in UE4. Take a look at the skeletal mesh in the Third Person Template to see an example hierarchy w/ IK bones and there are several examples of IK setups on AnswerHub, in the animation demolet, etc.

Just yell if you have any other questions.

Thank you so very much for such an understanding and thorough response.

That makes complete sense, I hadn’t imagined it trying to calculate its bone locations in that way because of how it smoothly blended when there wasn’t any animation running. Thanks for that point of reference, thankfully I hadn’t done too much yet so I was able to rework the rig/animations with those new bones, however regrettably I’ve yet been able to confirm it solves the issue with blendspaces or verify that I’m setting it up correctly as I’ve been trying everything I can think of yet I’m unable to get a smooth preview of the blend result in Unreal, in 3DS max. Not sure if you’re aware of the CAT toolkit in 3DS max, but I’ve been using that and after many attempts with both local and world offset layers, to allow me to have them run over the idle pose and create what I had imagined would result in Unreal, they look almost completely different. In 3DS max the character bends back a bit, in Unreal his head ends up through the floor he bends back so far. I’ve tried varying percentages but haven’t found any way to preview the blend before bringing it into Unreal, and I really don’t want to have to export/reimport/recompile/etc for every minor change and tweak to see what the resulting blend is in Unreal. I don’t suppose you know any working method? (Note: I do disable the idle animation in 3DS max before just importing the local/world pose as a blend animation to get what should be the correct additive blend from base pose.).

Even if you don’t know of a way to preview and correctly get the additive blend pose outside of Unreal I greatly appreciate your response and will mark this solved whenever I’m hopefully able to properly test and confirm it’s working.

Hi,
I am somewhat familiar with the CAT tools in Max (I used them several years ago on a project); however, I’m not quite clear on where/how your particular problem with additives is coming from. Can you describe your setup in UE4 in a little more detail? You are using an additive blendspace over an idle, correct? Do the additive animations that you are using in your blendspace use the idle anim as their additive base? Are you then combining them in your animGraph using an ApplyAdditive node? I can’t think of a reason, inherent in UE4 additives or in CAT, that would cause you to see such a dramatic difference between the two.

Hang in there!

Yeah I’m using additive blendspace, however I get the same differing result with a straight additive. Here’s the current setup (including the Two Bone IK, which did indeed solve the feet issue-thank you so very much for your help :D) - http://i.imgur.com/env6FHw.png .The additive pose for those animations is just the ref pose., so it’s not a case of it doubling up in UE4 as far as I can tell.

Thank you :slight_smile:

Hi,

I think using the ref pose for your Additive Base could indeed be the cause of your issues. Since the additive is built from your ref pose, it contains all of the rotations and translations necessary to get your character from its T-Pose to your desired additive pose. However, when you apply those same rotations/translations to what is coming out of your BasicMotion State Machine, the result is a much more extreme pose than you intended (because you would need different values on each joint to get say from your Idle Pose to your additive pose than you would from your T-pose to your additive pose). In short, you want the additive base to be as close as possible to the animation/pose that will be playing under your additive animation. Try changing the additive base to your Idle pose (or the first frame of your Idle anim) and see if that gets things a little closer.

Another option is to set the Additive Base to be the first frame of the additive animation itself. That will basically zero out the first frame/overall pose of the additive animation and leave you with however your character animated after that initial frame.

Good luck!

Thanks a lot for your continued help and this explanation :). I followed your suggestion but was still unable to get the expected result.

I’ve made an image showing all of the various animations/frames/results that may hopefully provide you with better insight as to what I’m doing and hopefully what may be going wrong. The top set of images is the character in 3ds Max while the bottom set of images demonstrates the results with various additive settings in UE4. http://i.imgur.com/Osq7sGS.png .

Hmm. Thanks for hanging in there; we’re going to figure this out! When you export from Max to UE4, are you exporting just the pose that is labeled ‘CAT Local Offset Layer’? If so, I think you should export the ‘Offset + Idle Animation’ pose instead. Then, when you set that pose/anim to be additive (with Idle as the additive base), it will store whatever values it needs to get to your final pose from your Idle pose (essentially rebuilding your CAT Offset Layer inside UE4). By importing your offset layer directly, I think you are short-cutting the system and UE4 is trying to use your offset layer as the target final pose, which is not what you want.

Awesome, glad we got it sorted! Good luck with your project.

Absolutely brilliant idea!!! That worked perfectly :D! Can’t possibly thank you enough for all this, I can finally move forward with the projects mechanics again now that the technicalities of this are resolved :).

Me too :D, thank you :)!