EMotionFx bug with roll motion interpolation? Please help.

My animation roll a lot, but at the end of the animation, I use the pose that close to the idle animation so the the transition should be smooth. But it doesn’t work as I expected, EMotionFx just generate wrong interpolation.

But let me demonstrate:Here is the test animation (the download contains animation graph & the animation files, the model can be downloaded at Mixamo.com) to prove this issue.


Here is the video which demo the bug:

https://vimeo.com/272139522


TestPose & TestPose_Roll end with the same pose (animation), but TestPose give the right interpolation & TestPose_Roll give the wrong interpolation. I think the issue come from the interpolation not focus only on the final pose of the animation.

So how can I fix the interpolation for TestPose_Roll?

Thank @Castor

  1. The version is Lumberyard 1.13 (I used tag 1.13 for the question)

  2. Sorry, I should have posted the graph. Here it is:

6870-rollemotiongraph.png

Please note that in the question, I’ve provided the animations file to re-produce this bug. The model of the character can be downloaded at: https://www.mixamo.com/#/?page=1&query=xbot&type=Character

Hi @Amonster_LMBR, can you look into this issue, please? :slight_smile: It has been half of a month.

Hi @HDN - could you please give us a little more information so that we can help.

  1. What version of the engine are you on?

  2. Please post an image of the entire animation graph as you have built it so we can see all the nodes.

Thank you - that should help us be able to look a little closer at what is causing your issue.

Hi @HDN - I am not seeing any bug, I was able to download and set up the character from Mixamo and it seems to be working just fine. The geometry on the character is a bit messed up, in that the pivots of the geometry were not axially aligned to the joints, but that is a minor issue since we are talking about the animation.

The first thing to check is to make sure that you have set the Motion Extraction node on your Actor to be the same as the root joint that you set on your Actor in the Edit Settings… panel of the Asset Browser. Right-click your Actor FBX file (xbot.fbx in this case) and select “Edit Settings…”:

Then make sure you have an Actor entry on the Actor tab, and also make sure the correct root joint is selected for the root of your character:

Then once your Actor FBX import is correctly set up, make sure that the Actor in the EMotion FX Animation Editor is set up correctly as well. Select the Motion Extraction Node, which should be the same as the root bone you selected for the Actor import.

7013-set-motion-extraction-node.jpg

Now make sure and save your setup so that the Actor FBX has a .ASSETINFO file next to it - this file saves any data we have associated with our Actor. Then set up your Motion Set and Animation Graph as you would normally. I set up my animation graph with a couple custom parameters so that I could add conditional transition logic on my transitions and play back those animations as I wanted.

7014-parameters.jpg

Then once I have added the logic to my transitions, checking and unchecking the checkboxes makes either the punch or the roll animation play and come back to my idle. I did not observe any roll behavior on my character as mentioned above - all animations played back correctly.

7015-state-machine.jpg

If you would like to look at some video tutorials on the EMotion FX Animation Editor, you can find a lot of helpful information. See our YouTube channel and the video tutorials, starting with the first “Getting Started Guide” tutorial for EMotion FX, which I believe is number 37:

https://www.youtube.com/watch?v=PSdFblCNN84&list=PLuGWzrvNze7KbG2x6ccIw8eMhL5e4Iwpe&index=38&t=0s

There is also another thread on some setup for Mixamo characters here:

https://forums.awsgametech.com/t/import-mixamo-model-and-animation-in-emotion-fx/4890/1

Hope all this helps!

Hi @Castor

Thanks for replying. I have created a video that demo the bug, please check the video at:

https://vimeo.com/272139522

Also I added the animation graph to the download file in the question, please check the download at the question.

Hi @Castor

Sorry, the image above is wrong thus you can’t reproduce the bug, my mistake, but in my defense I forgot because it had been half of a month.

To compensate for that, this time I provide the video that demo the bug:

https://vimeo.com/272139522

Hi @HDN - Can you please verify that you have correctly set the root of your Actor as outlined above? Let me know if you have done that, then we can look at other issues. Thanks!

Hi @HDN - As I said above, I don’t think this is a bug - it is an issue with how you are setting up the animation graph. I was able to set up the same character you used just fine, and play back animations and everything looked OK. Since the Mixamo characters do not have a root joint on the “ground” that acts as a master joint, you have to use the hips as the Actor’s root. This is not optimal, as you have seen, because sometimes there is keyframed animation on the root itself which can make the character move in unexpected ways. The best way to avoid this in this kind of setup is to use a Pose Mask to mask out the hips joint from playing back animation during the evaluation of your animation graph. You will also need to make sure that all of your Motions in your Motion Set have the same orientation as your Actor. The “Facing Direction” under the “Coordinate system change” attribute must be the same for the Actor and all of the Motions you intend to play back on the Actor.

Thank you, so as I understand, the problem come from “the missing ground root bone” happen in my animation graph. I’ll change the graph then.

Yes, I have done that (but I think the bug has nothing to do with Motion Extraction), please check this video: https://vimeo.com/272520910

In the video above, you can see I have set the Motion Extraction correctly, but the bug is still there.

Again, I have uploaded the detailed steps to re-produce this bug in this video: https://vimeo.com/272139522

Hi @Castor

I have followed your instruction: https://vimeo.com/272520910

But the bug is still there.

After you have watched the video above, please watch this video: https://vimeo.com/272139522 to re-produce the bug.

I’m sorry for the inconvenience.