Animation Jitter: Rigged Character with FBX Export #54459

Closed
opened 2018-03-29 05:23:07 +02:00 by Carlos · 33 comments

Castle Knight - Backup [March 28, 2018].blend

System Information
Operating system and graphics card

Windows 10
Processor: Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz
RAM: 16.0GB

NVIDIA GeForce GTX 1070
Driver version: 388.13
Direct3D API Version: 12
CUDA Cores: 1920
Graphics Clock: 1607 MHz
Memory Data Rate: 8008 MHz
Total Available Graphics Memory: 16302 MB
Dedicated Video Memory: 8192 MB GDDR5

Blender Version
Broken since I started using Blender (roughly v2.77)
Specifically, broken currently using Blender v2.79a (Date 2018-02-21 10:41)

Short description of error

When exporting animations containing position and rotation animated data on armatures I prepared to map nicely to Unity's standard Mecanim Humanoid, the exported animation data does not really reflect the animation curves properly in Blender. In Blender, the position and rotation curves, using Bezier interpolation work great and are smooth as expected. The exported data, however, looks almost as if it was an audio signal with noise -- there are somewhat "random" little peaks and crevices that cause terrible jittering in my character (most notably in their arms and legs) when I export my character to an FBX file and turn on "Bake Animation" (so the FBX file has the animation with it). These results have been observed when importing that FBX file into Unity (Unity 5.x, 2017.x, and 2018.1's beta versions all alike), even when all animation curve re-sampling and compression has been turned off.

Exact steps for others to reproduce the error
Based on the attached .blend file -
Select the parent empty object I created called "Castle Knight". In the 3D view, you can press Shift + G to select all of its children, and then re-select the parent empty object again. Deselect the Knight's Halberd. Then with that selection of just the knight character and its armature, go to File > Export > FBX (.fbx). Here are my export settings:

Version: FBX 7.4 Binary

Selected Objects: true (checked)
Scale: 1.00 (Not applied, however! The button to its right has been unchecked)
Apply Scale: FBX All
Forward: Z Forward
Up: Y Up

Include: [Empty, Armature, Mesh, Other]


In the Armature tab,
Only Deform Bones: true (checked)
Add Leaf Bones: true (checked)
Primary Bone Axis: Y Axis
Secondary Bone Axis: X Axis
Armature FBXNode Type: Null


Under the Animation tab,
Baked Animation: true
Key All Bones: true
NLA Strips: true
All Actions: false
Force Start/End Keying: true
Sampling Rate: 1.00
Simplify: 1.00


So when I do this, everything is exported great, the NLA strips are nice and organized, the mesh is perfect in every other way, it's just that the animations end up with this weird (and very obvious) jittering and twitching throughout the entire animations.

Anyway, let me know if there's anything at all I can do to help. I really hope this can get fixed or circumvented somehow -- my games depend on this!

[Castle Knight - Backup [March 28, 2018].blend](https://archive.blender.org/developer/F2533565/Castle_Knight_-_Backup__March_28__2018_.blend) **System Information** Operating system and graphics card Windows 10 Processor: Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz RAM: 16.0GB NVIDIA GeForce GTX 1070 Driver version: 388.13 Direct3D API Version: 12 CUDA Cores: 1920 Graphics Clock: 1607 MHz Memory Data Rate: 8008 MHz Total Available Graphics Memory: 16302 MB Dedicated Video Memory: 8192 MB GDDR5 **Blender Version** Broken since I started using Blender (roughly v2.77) Specifically, broken currently using Blender v2.79a (Date 2018-02-21 10:41) **Short description of error** When exporting animations containing position and rotation animated data on armatures I prepared to map nicely to Unity's standard Mecanim Humanoid, the exported animation data does not really reflect the animation curves properly in Blender. In Blender, the position and rotation curves, using Bezier interpolation work great and are smooth as expected. The exported data, however, looks almost as if it was an audio signal with noise -- there are somewhat "random" little peaks and crevices that cause terrible jittering in my character (most notably in their arms and legs) when I export my character to an FBX file and turn on "Bake Animation" (so the FBX file has the animation with it). These results have been observed when importing that FBX file into Unity (Unity 5.x, 2017.x, and 2018.1's beta versions all alike), even when all animation curve re-sampling and compression has been turned off. **Exact steps for others to reproduce the error** Based on the attached .blend file - Select the parent empty object I created called "Castle Knight". In the 3D view, you can press Shift + G to select all of its children, and then re-select the parent empty object again. Deselect the Knight's Halberd. Then with that selection of just the knight character and its armature, go to File > Export > FBX (.fbx). Here are my export settings: Version: FBX 7.4 Binary Selected Objects: true (checked) Scale: 1.00 (Not applied, however! The button to its right has been unchecked) Apply Scale: FBX All Forward: Z Forward Up: Y Up Include: [Empty, Armature, Mesh, Other] ---- In the Armature tab, Only Deform Bones: true (checked) Add Leaf Bones: true (checked) Primary Bone Axis: Y Axis Secondary Bone Axis: X Axis Armature FBXNode Type: Null ---- Under the Animation tab, Baked Animation: true Key All Bones: true NLA Strips: true All Actions: false Force Start/End Keying: true Sampling Rate: 1.00 Simplify: 1.00 -------- So when I do this, everything is exported great, the NLA strips are nice and organized, the mesh is perfect in every other way, it's just that the animations end up with this weird (and very obvious) jittering and twitching throughout the entire animations. Anyway, let me know if there's anything at all I can do to help. I really hope this can get fixed or circumvented somehow -- my games depend on this!
Author

Added subscriber: @modlunar

Added subscriber: @modlunar
Carlos changed title from Rigged Character Animation with FBX Export to Animation Jitter: Rigged Character with FBX Export 2018-03-29 05:30:29 +02:00
Member

Added subscriber: @JoshuaLeung

Added subscriber: @JoshuaLeung
Member

To help narrow this down a little, when you say that there are little jumps/peaks, is this on any particular curves (i.e. rotation curves in particular), or just any/all of them? Could you include a screenshot of these?

To help narrow this down a little, when you say that there are little jumps/peaks, is this on any particular curves (i.e. rotation curves in particular), or just any/all of them? Could you include a screenshot of these?
Author

In #54459#490974, @JoshuaLeung wrote:
To help narrow this down a little, when you say that there are little jumps/peaks, is this on any particular curves (i.e. rotation curves in particular), or just any/all of them? Could you include a screenshot of these?

Sure, great idea thanks!

Now that you mention it, most of the curves in the FBX file are rotation because I use IK for the feet and arms with non-deform bones that are not included in the export to have a less cluttered hierarchy. The IK goal bones had position animation data, and then the other bones end up with resulting rotation animation data. However, the hips, spine/chest, and neck bones were all fine! Those bones had no jitter in my animations.

The problems occurred mainly in the shoulder, upper/lower arm, and hand bones. The shoulders are not part of the IK chain, just the upper arm and the lower arm bones are. The latter two have Inverse Kinematic limits placed on them in the Bone tab in the Properties window in Blender.


Here's the smooth position animation data of the Hand L IK Goal bone as is in Blender before export. In Blender, the other bones don't have rotation animation data because they're being controlled by the IK bone constraint.

Smooth Bezier Curves.PNG

Then in Unity with the FBX file, here's a shot of the left shoulder and left upper arm bones with the jitter (rotation animation data)

Animation Jitter - Rigged Character in Unity (FBX).png

> In #54459#490974, @JoshuaLeung wrote: > To help narrow this down a little, when you say that there are little jumps/peaks, is this on any particular curves (i.e. rotation curves in particular), or just any/all of them? Could you include a screenshot of these? Sure, great idea thanks! Now that you mention it, most of the curves in the FBX file are rotation because I use IK for the feet and arms with non-deform bones that are not included in the export to have a less cluttered hierarchy. The IK goal bones had position animation data, and then the other bones end up with resulting rotation animation data. However, the hips, spine/chest, and neck bones were all fine! Those bones had no jitter in my animations. The problems occurred mainly in the shoulder, upper/lower arm, and hand bones. The shoulders are not part of the IK chain, just the upper arm and the lower arm bones are. The latter two have Inverse Kinematic limits placed on them in the Bone tab in the Properties window in Blender. --- Here's the smooth position animation data of the Hand L IK Goal bone as is in Blender before export. In Blender, the other bones don't have rotation animation data because they're being controlled by the IK bone constraint. ![Smooth Bezier Curves.PNG](https://archive.blender.org/developer/F2534241/Smooth_Bezier_Curves.PNG) Then in Unity with the FBX file, here's a shot of the left shoulder and left upper arm bones with the jitter (rotation animation data) ![Animation Jitter - Rigged Character in Unity (FBX).png](https://archive.blender.org/developer/F2534243/Animation_Jitter_-_Rigged_Character_in_Unity__FBX_.png)
Author

Also I forgot to add a visual -- This shows the animation in both Unity and Blender, and the differences are most obvious in the arms. The feet and legs here look pretty fine - I can't tell that there's anything wrong with them.
Animation Jitter in Unity (Blender FBX Export).mp4

Also I forgot to add a visual -- This shows the animation in both Unity and Blender, and the differences are most obvious in the arms. The feet and legs here look pretty fine - I can't tell that there's anything wrong with them. [Animation Jitter in Unity (Blender FBX Export).mp4](https://archive.blender.org/developer/F2602390/Animation_Jitter_in_Unity__Blender_FBX_Export_.mp4)
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Philipp Oeser self-assigned this 2018-04-19 15:18:55 +02:00
Member

Confirmed on first sight, will have a look shortly.
Note: I checked by exporting with the settings the report suggest, resulting in

Castle Knight - Backup [March 28, 2018].fbx

And just importing back into blender will also result in jittering, see

Castle Knight - Backup [March 28, 2018] reimport.blend

Confirmed on first sight, will have a look shortly. Note: I checked by exporting with the settings the report suggest, resulting in [Castle Knight - Backup [March 28, 2018].fbx](https://archive.blender.org/developer/F2841161/Castle_Knight_-_Backup__March_28__2018_.fbx) And just importing back into blender will also result in jittering, see [Castle Knight - Backup [March 28, 2018] reimport.blend](https://archive.blender.org/developer/F2841227/Castle_Knight_-_Backup__March_28__2018__reimport.blend)

Added subscriber: @nonsomnium

Added subscriber: @nonsomnium

Registered specifically to say that I found a solution for the same problem I was having with a different animation.

The problem for me was Unity's animation compression - on the Import window, Animation tab in Unity, you'll see the dropdown menu "Anim. Compression" towards the top. By default it will have Keyframe Reduction, which produced jitters, but if you turn it to "Off" the jitters ought to go away.

Registered specifically to say that I found a solution for the same problem I was having with a different animation. The problem for me was Unity's animation compression - on the Import window, Animation tab in Unity, you'll see the dropdown menu "Anim. Compression" towards the top. By default it will have Keyframe Reduction, which produced jitters, but if you turn it to "Off" the jitters ought to go away.

Added subscriber: @kmar

Added subscriber: @kmar
Philipp Oeser removed their assignment 2019-11-12 19:47:33 +01:00
Member

Sorry this has been lying around for so long.

As it seems I dont find the time for it and dont want to block this any further....

Sorry this has been lying around for so long. As it seems I dont find the time for it and dont want to block this any further....

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren

@modlunar Does the workaround described by @nonsomnium work for you? If so, this seems to be an issue with Unity rather than Blender.

@modlunar Does the workaround described by @nonsomnium work for you? If so, this seems to be an issue with Unity rather than Blender.
Author

@dr.sybren Unfortunately no, I have tried that in Unity and it does not fix the issue.

@dr.sybren Unfortunately no, I have tried that in Unity and it does not fix the issue.

@modlunar Can you then make us a minimal example file that demonstrates the issue?

@modlunar Can you then make us a minimal example file that demonstrates the issue?
Author

@dr.sybren Sure thing, I'll post that as a comment with file attachments & screenshots/gifs when ready? (I'll try to get it done ASAP, in the next week or so)

@dr.sybren Sure thing, I'll post that as a comment with file attachments & screenshots/gifs when ready? (I'll try to get it done ASAP, in the next week or so)
Member

Added subscriber: @Blendify

Added subscriber: @Blendify
Member

Changed status from 'Needs User Info' to: 'Resolved'

Changed status from 'Needs User Info' to: 'Resolved'
Aaron Carlisle self-assigned this 2020-02-10 17:33:18 +01:00
Member

No activity for more than a week. As per the tracker policy we assume the issue is gone and can be closed.

Thanks again for the report. If the problem persists please open a new report with the required information.

No activity for more than a week. As per the tracker policy we assume the issue is gone and can be closed. Thanks again for the report. If the problem persists please open a new report with the required information.

Added subscriber: @CrowXD

Added subscriber: @CrowXD

I am having a similar issue, the bones behave properly and as expected in the blender file but after exporting the FBX legs start to slide and jitter, it's more noticeable when the character is large, I tried almost every setting possible, How did you resolve this issue???

I am having a similar issue, the bones behave properly and as expected in the blender file but after exporting the FBX legs start to slide and jitter, it's more noticeable when the character is large, I tried almost every setting possible, How did you resolve this issue???

Changed status from 'Resolved' to: 'Archived'

Changed status from 'Resolved' to: 'Archived'

@CrowXD This has not been resolved, @Blendify accidentally closed it as Resolved instead of Invalid. If you can provide a minimal example that demonstrates this issue, please write a new bug report for it.

@CrowXD This has not been resolved, @Blendify accidentally closed it as Resolved instead of Invalid. If you can provide a **minimal** example that demonstrates this issue, please write a new bug report for it.

Added subscriber: @ragerma

Added subscriber: @ragerma

I'm having similar issue. I exported a character walking animation using blender 2.8.3 in fbx format. The animation works ok in Unity on my desktop PC. But when I run the game on android devices, the arms keep shaking when the machine is under load (when there are lots of objects on the screen). I think it has something to do with low frame rate.

I'm having similar issue. I exported a character walking animation using blender 2.8.3 in fbx format. The animation works ok in Unity on my desktop PC. But when I run the game on android devices, the arms keep shaking when the machine is under load (when there are lots of objects on the screen). I think it has something to do with low frame rate.

@ragerma This is likely not the same issue. If you can provide a minimal example that demonstrates this issue and that shows that it's a problem with Blender, please write a new bug report for it.

@ragerma This is likely not the same issue. If you can provide a *minimal* example that demonstrates this issue and that shows that it's a problem with Blender, please write a new bug report for it.

Added subscriber: @Nib

Added subscriber: @Nib

Hi, just found the post, I've been dealing with this issue for years (since 2016).
I believe it's not related to unity since the jitter appears if you reimport the fbx into blender too. It also seems to be tied to IK.

Here's an example file:
JitterLegBug.fbx
And the source:
JitterLegBug.blend

It actually seems pretty random and I usually can't replicate it, the attached file is the isolated leg of a character suffering from the issue.
To reproduce simply export the animation from the .blend to fbx and reimport into blender.

I'd provide more examples but I haven't managed to replicate it on simple rigs, help would be immensely appreciated.

Hi, just found the post, I've been dealing with this issue for years (since 2016). I believe it's not related to unity since the jitter appears if you reimport the fbx into blender too. It also seems to be tied to IK. Here's an example file: [JitterLegBug.fbx](https://archive.blender.org/developer/F8606733/JitterLegBug.fbx) And the source: [JitterLegBug.blend](https://archive.blender.org/developer/F8606732/JitterLegBug.blend) It actually seems pretty random and I usually can't replicate it, the attached file is the isolated leg of a character suffering from the issue. To reproduce simply export the animation from the .blend to fbx and reimport into blender. I'd provide more examples but I haven't managed to replicate it on simple rigs, help would be immensely appreciated.

@Nib this is not a "post", this is a task in our bug tracker. As I also said to @ragerma, please write a new bug report, that follows the guidelines at https://wiki.blender.org/wiki/Process/Bug_Reports.

@Nib this is not a "post", this is a task in our bug tracker. As I also said to @ragerma, please write a new bug report, that follows the guidelines at https://wiki.blender.org/wiki/Process/Bug_Reports.

Added subscriber: @stpiton

Added subscriber: @stpiton

To help resolve a bug I would like to add another exaple. BlendFile contains both IK animation (source) and reimported FBX animation (result). Export settings are also provided. AnimationBug.blend

Снимок.PNG

To help resolve a bug I would like to add another exaple. BlendFile contains both IK animation (source) and reimported FBX animation (result). Export settings are also provided. [AnimationBug.blend](https://archive.blender.org/developer/F8932515/AnimationBug.blend) ![Снимок.PNG](https://archive.blender.org/developer/F8932520/Снимок.PNG)

Added subscriber: @n_n

Added subscriber: @n_n

This comment was removed by @n_n

*This comment was removed by @n_n*
Sign in to join this conversation.
No Milestone
No project
No Assignees
12 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender-addons#54459
No description provided.