Loop animation problem

So I have animated a character that walks and i just placed it on a map and if i click play than it starts walking. But when the animation ends than the character disappears and appears on his starting position where he was placed. how can I just let it walk and if the animation ends that the character walks again from the ending position?
so just keep walking?

yes the animation itself goes forward. And I want it to gor further than the original animation so some kind of loop except that the characters stays and moves further. please tell me how I could solve this if you can.

I’m sorry but how can I do that for looping my character moving forward animation without disappearing my character?

Thank you for the long answer !

Does your animation itself involve the character moving forward? Typically, your walk animation will involve the character staying in place, and the actual vector change occurs in-game. This way, when the animation loops, there is no displacement.

You need to design your animation to stay in place. From what you described, it is likely as simple as going to each frame where you have the root moving and set it to the origin. Once this is done, your loop won’t displace your character, allowing you to determine movement speed and trajectory however you like and get a nice, clean visual result.

The reason your character moves on loop is because, in the animation, they are moving. They are going from A to B. So when the loop restarts, they are back at A. Here’s how to prevent that:

Go into whatever program you used to create the animation. Set all frames that involve the root joint moving to having the root joint at 0,0,0. Your character will appear to be walking in the animation, but will not actually be moving forward. This is what you want. Now, when you play the animation, they will stand still but look like they’re walking in place.

This is perfect. Now you can loop the animation and they won’t move. This means that you can now tell the character to move around in the game with the walking animation, and they will actually be walking. When they stop, you stop the walking animation. That’s how this is achieved in games for something perpetual like walking.

Hey just checking up; did this solve your problem?

Yes, I know that it needs to stay on the same place to walk. But I got another issue, it is a little different but it looks like it.
So my other issue is that if I animate something for the environment in another program and put it in ue4 than it will continue looping because it is moving from the place where it starts but I want to ask is how I can start the animation and then destroy the mesh+animation?
I know how to work with trigger box but how to destroy the mesh after the animation ends?

Go to your animation. Right click on the timeline and Add Notify. Make it a Custom Notify. You will be able to call this event (by whatever you named it) in the corresponding anim bp event graph.

You can slide the notify event on the animation timeline to have it trigger wherever you like within the animation.

You can simply make the event destroy the actor.

Thank you for your time !

No problem at all! Would you mind accepting the answer if everything turned out well?

Old thread but I thought I would offer some input, because it sounds like he used a Mixamo character. I found that you can re-target anims to existing Mixamo skeletons in the Mixamo Animation pack and you get the old root bone which stops the looping.

I think is solved with

in the animation in the options find the Root Motion Force Root Lock

Go to Mixamo and before downloading an animation, tick the “in place” option

2 Likes