FBX partial animation fix #47397

Closed
opened 2016-02-11 20:09:35 +01:00 by Evan Todd · 8 comments

This patch addresses several issues related to animations which do not key every channel in an armature. These issues only manifest when the "Key All Bones" option is off, which is required for partial animations.

  1. When sampling animations, the armature is not reset when switching from one action to the next. If an action leaves some channels unkeyed, you'll see a pose from the previous action on those channels. This patch resets the armature between actions.

  2. The exported bind pose is whatever pose the armature happens to be in at export time, rather than the T-pose specified in edit mode. Animations that only key certain channels often rely on the bind pose being accurate. This patch resets armatures to the bind pose before exporting.

  3. For single-frame animations (poses), the exporter simplifies all keyframes out of existence, because there is never any change. This patch keeps the first keyframe if it is different from the bind pose.

fbx_partial_animation_fix.diff

This patch addresses several issues related to animations which do not key every channel in an armature. These issues only manifest when the "Key All Bones" option is off, which is required for partial animations. 1) When sampling animations, the armature is not reset when switching from one action to the next. If an action leaves some channels unkeyed, you'll see a pose from the previous action on those channels. This patch resets the armature between actions. 2) The exported bind pose is whatever pose the armature happens to be in at export time, rather than the T-pose specified in edit mode. Animations that only key certain channels often rely on the bind pose being accurate. This patch resets armatures to the bind pose before exporting. 3) For single-frame animations (poses), the exporter simplifies all keyframes out of existence, because there is never any change. This patch keeps the first keyframe if it is different from the bind pose. [fbx_partial_animation_fix.diff](https://archive.blender.org/developer/F282180/fbx_partial_animation_fix.diff)
Author

Changed status to: 'Open'

Changed status to: 'Open'
Author

Added subscriber: @et1337

Added subscriber: @et1337
Bastien Montagne was assigned by Aaron Carlisle 2016-02-11 20:13:14 +01:00
Member

Added subscriber: @Blendify

Added subscriber: @Blendify
Author

Quick typo fix to accommodate non-armature animations.

fbx_partial_animation_fix2.diff

My test case:

character.blend

Quick typo fix to accommodate non-armature animations. [fbx_partial_animation_fix2.diff](https://archive.blender.org/developer/F282185/fbx_partial_animation_fix2.diff) My test case: [character.blend](https://archive.blender.org/developer/F282187/character.blend)
Author

Here's a version that also exports components all together, i.e., it exports X, Y, and Z position even if only X position is keyed. Certain pipelines can't handle individual components correctly (I'm using Assimp)

fbx_partial_animation_fix3.diff

Here's a version that also exports components all together, i.e., it exports X, Y, and Z position even if only X position is keyed. Certain pipelines can't handle individual components correctly (I'm using Assimp) [fbx_partial_animation_fix3.diff](https://archive.blender.org/developer/F282204/fbx_partial_animation_fix3.diff)

Can you please create a diff? https://developer.blender.org/differential/diff/create/

Would be simpler to review the patch :)

Can you please create a diff? https://developer.blender.org/differential/diff/create/ Would be simpler to review the patch :)

Changed status from 'Open' to: 'Archived'

Changed status from 'Open' to: 'Archived'

Closing this task, the diff is enough to handle the review. :)

Closing this task, the diff is enough to handle the review. :)
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 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#47397
No description provided.