0
Not a bug

Root motion bug when using Gestures or States.

eagleeyez 5 months ago in Game Creator updated by Marti (Lead Developer) 5 months ago 8

Root motion bug when using Gestures or States.

  1. I have a climb animation clip from Mixamo.
  2. I converted to humanoid as Mixamo uses generic.
  3. I had converted with unity and your Animator converter, both with same result.
  4. I then added a trigger that activated root motion and then played the animation and it worked but the input controller using the arrow keys just spins the player around, as if it were on a directional joypad. Even after deactivation root motion, same problem.

I then decided to use root bake in pose in the animation itself and leave out root motion.

  1. This worked and the controller worked normally but after the climb animation finishes it jumps back to where the player started from.
  2. I tried to use then a teleport to the last upper position where the animation ended and this works but still the glitch of the player springing back to its original position first is bad.

I thought it would be a good idea to get the position/rotation of the player at the end of its animation climb and then set the player directly afterwards to that position. So I can carry on from that position controlling the player.

  1. How do I get then the position of the player? I found no action for that.

Example: the player runs to a wall and when it hits a trigger it plays the climb over animation and is then standing on the wall. I correct the actual positioning if this animation in uMotion so it matches perfectly. My problem is that it either jumps back to the player position after the animation is finished or using root motion the controller is broken afterwards.

So please, please help here.

I also bought your Behavior add-on in the sale and will be buying shooter shortly. I buy a lot of assets, so I will wait to see what soon will be offered on the black Friday sales. If your assets are all on BF sale at the end of this month I will be buying all of them straight away.

Thanks from Chris

Unity version:
2018.4.12f
Game Creator version:
1.0.4

Answer

Answer
Not a bug

Hi EagleEyez. Thank you for the detailed explanation. However, we don't support root motion. Root motion authored characters tend to move more realistically, but require a whole set of animations in order to move the character around. Instead, we flipped the system: The character moves according to a set of variables (speed, angular speed, acceleration, ...) and we pick and blend the best animation possible from our controller.

This allows you to have much more control over your character's movement and tweak values without having to edit the whole lot of animations.

As for your climbing problem, if you download the climbing animation from Mixamo, you'll see you have an option to make the character stay in position (most animations have, at least). Check that box.

This way, there won't be any root motion in your animation clip. To make a character climb, we have in our roadmap a new module called Traversal. However, fear not, you can still create a simple climbing system without it.

Use the Character State to play the climbing animation when you want it to climb a wall. Then, use the Character Mount action. This Action allows a character to ignore all collisions and behaves like a primitive game object you can move around. Perfect for this case. Next, use the Move Transform Action to make the character move up the wall. After that, all you need to do is use again the Character Mount action to restore the character to its previous "unmounted state" and the Character State again to remove the "climbing animation" state.

Hope this helps!

Tomorrow I will make a video about this so you can better understand it. I need a quick solution to this problem or some kind of work around. 

Answer
Not a bug

Hi EagleEyez. Thank you for the detailed explanation. However, we don't support root motion. Root motion authored characters tend to move more realistically, but require a whole set of animations in order to move the character around. Instead, we flipped the system: The character moves according to a set of variables (speed, angular speed, acceleration, ...) and we pick and blend the best animation possible from our controller.

This allows you to have much more control over your character's movement and tweak values without having to edit the whole lot of animations.

As for your climbing problem, if you download the climbing animation from Mixamo, you'll see you have an option to make the character stay in position (most animations have, at least). Check that box.

This way, there won't be any root motion in your animation clip. To make a character climb, we have in our roadmap a new module called Traversal. However, fear not, you can still create a simple climbing system without it.

Use the Character State to play the climbing animation when you want it to climb a wall. Then, use the Character Mount action. This Action allows a character to ignore all collisions and behaves like a primitive game object you can move around. Perfect for this case. Next, use the Move Transform Action to make the character move up the wall. After that, all you need to do is use again the Character Mount action to restore the character to its previous "unmounted state" and the Character State again to remove the "climbing animation" state.

Hope this helps!

+1

Oh, that is bad as unfortunately Mixamo have no more in place animations option

https://community.adobe.com/t5/Fuse-Beta/In-Place-animations/td-p/9394619?profile.language=de&pageRefresh=true


So how am I supposed to do something like a parkour animation with your system?

If I do use a root motion, the character springs back to where it started the animation.

If your system were to use something like the Animancer asset on the store that would make it awesome.


So now I have no idea on how to get the player to enter a trigger and do a jump, triple climb and stand up animation without root motion.


This actually makes game creator useless for me.

Not being able to do something as simple as quickly play a root motion animation as a state or gesture.

Sorry about the useless comment above.

Game Creator is not useless I had just wasted an entire day trying to get something to work with root motion, so I was pretty frustrated.

Keep up the good work and I look forward to all new updates to your packages.

What is the new module called Traversal?

No worries, sorry for the bummer. However, Unity still accepts animations that have root motion and transform them to non-root motion authored clips. All you have to do is go to the Animation clip and under the Animation tab, check the Bake options. You'll probably need to experiment a bit there and see what options fit best your animations (Bake on Feet's initial position, average body, ...).

You're correct, Traversal is the name we'll be calling it. However, it's going to take a while. For vaulting small walls and so on, the tip I gave you at the answer should do the trick.

I have tried all that, it is the controller that bums up afterwards.

I am making a video to show you this. In the morning I will post it.

Ok, here is the video showing what I would wish to do with root motion

https://streamable.com/27dy4

Change the Bake and instead of setting it to Original, try using Center of Mass. Play with different settings until you get the sweet spot. Original will keep the original position at frame 0 as the root. The problem with that is your model moves around. Using the Center of Mass ensures that the root moves with your character.