Mannequin Feet Not Moving During Custom Animations

I’m very new to animation in general and I’ve been trying to implement a simple emote animation to learn the basics. I’m making animations using the control rig from this video How to Animate Characters in UE5 - YouTube in Unreal’s animation sequencer in the same way that the video shows. I have an animation that moves the character’s feet. However, when I play the animation in-game, the character’s feet are static and do not move at all. This is confusing to me because the mannequin default walk and run animations move the character’s feet just fine, and I can’t figure out what’s different about my animation that causes the feet to not move.

Here’s how the animation looks in the editor: in_editor
Here’s how it looks in-game: in_game

I’m using IKTwoBone to rig the legs and feet.

Could someone help me figure out why the feet aren’t moving and how to fix it? Thank you!

1 Like

Hi there,
If you’re using the characters from the Third Person Template, they all come with "Foot IK Control Rig, which means, during playtime, their feet will be locked in the floor in order to follow terrain slopes. You just need to add a curve Disable LegIK to all animations that require feet movement without “foot IK” enabled. Usually jumps, dashes, climbs, rolls, etc.
I’ll print a screenshot showing how to do it.




Easier way, you can remove the Control Rig reference from your animation Blueprint. But that will disable all gameplay states.

The harder way: create another condition that, if playing montages with full body, disable Foot IK control rig, which will require more code.

4 Likes

Hello,
Thanks for the detailed suggestions! Neither introducing a DisableLegIK curve nor changing the value of Should Do IKTrace on the control rig solved the problem for me. However, I realized that you can edit the control rig blueprint. Inside the blueprint there is a section that does IK on the feet (see image below). Stopping that part from executing fixes the problem. I’ve added an if statement so that this IK block doesn’t execute during emotes, and that seems to work for me. Hopefully this helps anyone encountering this problem in the future.

2 Likes

That is great, you did the harder yet right way.
Good work.

If you don’t mind, could you show the condition you used? I’ve run into the same problem.

Might be a late reply but answering in case others visit this thread in the future. For me adding the branch in the last sequence and reusing the ShouldDoIKTrace condition did the trick.

This way, I can just change the bool provided to the control rig in the AnimGraph and it all works out of the box

1 Like

Hey mate, I’m having the same issue as you were. Would you be able to demonstrate where and how you’ve turned the “ShouldDoIKTrace” on and off after modifying the control rig. Ive tried everything i can think of without any success.

Thanks.

Hey! In the Animation Blueprint in the character that you use, for example ABP_Manny, you can make the following changes:

Go to the AnimGraph and change the input applied to the “Control Rig” node

In my case, I needed the IKTrace to also be excluded when dodging or in a specific combat state.

In the “Control Rig” node I added the branch that I mentioned in my previous message on “Step 5” of the Sequence:
image

Hope it’s a bit more clear now

1 Like

Thanks heaps! that top picture is exactly what I was looking for. Appreciate it!

I’ve set up my blueprints (almost) like your two images, checking for an IsAttacking variable that I set in my PlayerCharacter blueprint at the beginning of an EventWeaponAttack function. (I’m doing it by way of the GetOwningActorCastToPlayerCharacter nodes, in case that’s vastly different than your own method.)

But I am still not seeing the feet move. Note when I completely disconnect the IK node, it works properly; it’s the IsAttacking variable not coming through properly on that OR pin. The difference I notice in your pasted images is your Dodging? and CombatMode? variables have this Pre-Event Graph marker on them. Would you mind sharing how you did that? For now I’m assuming that’s the kicker, that somehow that distinction is needed.

Thanks!

This is a bit of a long answer but I actually learned that trick from “35 UE5 Features You Probably Don’t Know About | Unreal Fest 2022”. At around 21:00 is the relevant part but I can detail it a bit here.

I have a function that I’ve setup like below:


It is set as “Const” and the Output is named “ReturnValue”, of the type BP Third Person Character.

Then inside the anim graph you use the “Property access” node and select the new function as can be seen in this next image

From there you can select the properties that you need

1 Like

Thanks! That will come in handy.

I ended up solving it another way: I had my IsAttacking variable inside a function; moving it to the actual event graph worked to fix it. And then I figured out how to actually blend two animations together and save them into a single animation, bypassing the original need and just having a proper sequence with a “lunge step”.

But cheers again, I’m sure the GetThirdPersonCharacter bit will help clean stuff up when it gets more complex down the road. TY!

You lost fastpath.
You should not do OR or AND apparently.

See here, just the NOT works fine (which is amazing? I think most of us got used to nothing working and just dealing with having the right value to begin with).

Theoretically you shouldnt.
The animation blueprint is to be devoid of any code.
The variables of the animation blueprint should be changed from the character blueprint directly.
The animation Graph, shpuld then use the saved ABP Variables directly.

You would think that just queriing the variable from the character in ABP is faster - it isn’t.

Setting the ABP variable from the character (without the character having extra variables) is faster.

Btw, in the case of multiple conditions triggering a single boolean (mentioned above).
Make a new single boolean. Manage how that value changes directly from the character. You can keep the same AND/OR logic and just set the variable accordingly as part of the normal process.
Possibly not on tick but if you need it to be every frame, then that is OK too.

Btw, this is insanity.
The IK curve is 0 to 1 a value of less than 0 should automatically disable foot IK system period. The calculations as well.

The system is flawed.
Not that it’s anything new. The previous mannequin was literally never fixed in like 12 years. Tutorials still put code in ABP.
People train and think they are “professional animators for unreal” and have no idea of what FastPath even is… same old story really.

Got it, I am not a big fan of it, but that is how Paragon and Lyra animation systems were setup:

I solved it like this


1 Like

I know this is marked as solved but I came here to say that I had this problem and switching the Slot ‘DefaultSlot’ node with the Control Rig node fixed it for me. The order in the AnimGraph for me that worked ends up being Main States > Control Rig > Slot ‘DefaultSlot’ > Output Pose

2 Likes

Could someone please clarify the inherent distinction between the MF_Run_Fwd sequence and a custom sequence I’ve created? I’ve noticed that the MF_Run_Fwd sequence lifts the feet off the ground, whereas mine keeps the feet firmly planted. I’m struggling to grasp the specific differences between the two.


And how can we know from an image that includes nothing at all?

You probably have IK on and the curve value not properly set or something similar.

Sorry, but that’s exactly my question: what is the logic behind the control Rig that allow it to apply IKTrace on some anim sequence, and not other ? I know i’m super bad :smiley: