Collada Export Missing Keyframes #59743

Closed
opened 2018-12-22 04:06:44 +01:00 by Phi · 7 comments

System Information
Operating system: macOS Mojave 10.14.1
Graphics card: Radeon Pro 560X 4096 MB

Blender Version
Broken: version: 2.80 (sub 39), branch: blender2.8, commit date: 2018-12-21 21:14, hash: f1f8859ad5
Worked: version: 2.79 (sub 0), branch: master, commit date: 2018-03-22 14:10, hash: f4dc9f9

Short description of error
Missing location/rotation keyframe on bone named "RifleFrame" upon Collada export. Found that if I adjust the location of the "RifleFrame" bone and add a keyframe then exported animation will show "RifleBone" in correct location.

Screenshot of Collada Export working properly in 2.79b with following settings and files.
Working279b.png
ColladaExportSettings279b.png
SoldierRun279b.blend
Working279b.dae

Screenshot of Collada Export not working properly in 2.80 with following settings and files.
Broken280.png
ColladaExportSettings280.png
SoldierRun280.blend
Broken280.dae

Exact steps for others to reproduce the error
Based on the default startup or an attached .blend file (as simple as possible).

  1. Open SoldierRun280.blend
  2. Select Armature
  3. Collada Export with settings shown in screenshot.

Update

I made all objects local and removed unnecessary textures, hopefully these new updated files work better for you. Please let me know if you get any more problems with my blend files.

Blender File 2.80
SoldierRun280.blend

Blender File 2.79b
SoldierRun279b.blend

**System Information** Operating system: macOS Mojave 10.14.1 Graphics card: Radeon Pro 560X 4096 MB **Blender Version** Broken: version: 2.80 (sub 39), branch: blender2.8, commit date: 2018-12-21 21:14, hash: f1f8859ad52b Worked: version: 2.79 (sub 0), branch: master, commit date: 2018-03-22 14:10, hash: f4dc9f9 **Short description of error** Missing location/rotation keyframe on bone named "RifleFrame" upon Collada export. Found that if I adjust the location of the "RifleFrame" bone and add a keyframe then exported animation will show "RifleBone" in correct location. Screenshot of Collada Export working properly in 2.79b with following settings and files. ![Working279b.png](https://archive.blender.org/developer/F6031020/Working279b.png) ![ColladaExportSettings279b.png](https://archive.blender.org/developer/F6031026/ColladaExportSettings279b.png) [SoldierRun279b.blend](https://archive.blender.org/developer/F6031030/SoldierRun279b.blend) [Working279b.dae](https://archive.blender.org/developer/F6031111/Working279b.dae) Screenshot of Collada Export not working properly in 2.80 with following settings and files. ![Broken280.png](https://archive.blender.org/developer/F6031035/Broken280.png) ![ColladaExportSettings280.png](https://archive.blender.org/developer/F6031038/ColladaExportSettings280.png) [SoldierRun280.blend](https://archive.blender.org/developer/F6031097/SoldierRun280.blend) [Broken280.dae](https://archive.blender.org/developer/F6031113/Broken280.dae) **Exact steps for others to reproduce the error** Based on the default startup or an attached .blend file (as simple as possible). 1. Open SoldierRun280.blend 2. Select Armature 3. Collada Export with settings shown in screenshot. **Update** I made all objects local and removed unnecessary textures, hopefully these new updated files work better for you. Please let me know if you get any more problems with my blend files. Blender File 2.80 [SoldierRun280.blend](https://archive.blender.org/developer/F6188355/SoldierRun280.blend) Blender File 2.79b [SoldierRun279b.blend](https://archive.blender.org/developer/F6188361/SoldierRun279b.blend)
Author

Added subscriber: @Phi

Added subscriber: @Phi
Gaia Clary was assigned by Brecht Van Lommel 2019-01-04 13:50:35 +01:00
Member

I can not open the blend file:

  • in Blender 2.79 and 2.80 i get a lot of warnings about missing libs (i guess your model is located in another blend file? )
  • in Blender 2.8 in debug mode crashes when attempting to load the blend file

I suspect that not all data is in your blendfile.

I can not open the blend file: * in Blender 2.79 and 2.80 i get a lot of warnings about missing libs (i guess your model is located in another blend file? ) * in Blender 2.8 in debug mode crashes when attempting to load the blend file I suspect that not all data is in your blendfile.

This issue was referenced by 4b7596ec91

This issue was referenced by 4b7596ec914e9d748b23831db736ef89eb879886
Member

Changed status from 'Open' to: 'Resolved'

Changed status from 'Open' to: 'Resolved'
Member

hi, Phi;

Thanks for the updated blendfiles.

The problem was that you used the RifleFrame just for placing the rifle at the back of the model.
Since this bone is not animated otherwise (has a static pose) the animation exporter
removed this bone from the exported animation.

I see how this optimization fails in your case. So i added a new option for exporting flat curves.

But note: I also found another issue with an unexpected additional offset that hovers the
model above ground. I will look at that separately.

cheers,
Gaia

hi, Phi; Thanks for the updated blendfiles. The problem was that you used the RifleFrame just for placing the rifle at the back of the model. Since this bone is not animated otherwise (has a static pose) the animation exporter removed this bone from the exported animation. I see how this optimization fails in your case. So i added a new option for exporting flat curves. But note: I also found another issue with an unexpected additional offset that hovers the model above ground. I will look at that separately. cheers, Gaia
Author

Thanks for getting the issue resolved, looking forward to the new option to export flat curves. I wasn't even aware of the second issue, great catch!

Thanks for getting the issue resolved, looking forward to the new option to export flat curves. I wasn't even aware of the second issue, great catch!
Member

Fortunately the unexpected behavior is actually very expected but it needs to be documented better. The problem is that Collada does not support bone chains (connected bones) out of the box. While this is not very important for importing models to target systems (game engines) it is a bit annoying when you want to move a model between 3D editing tools.

To solve this i have added 2 options to the Collada Importer for automatic recognition of bone chains, but this recognition fails sometimes. In your case the Skeleton was auto connected to the CenterMass bone and thus it changes the animation. The good news is that the fix is super easy. Also the Importer can be told to not auto connect to avoid the issue at all:

Here are 2 cases and fixes:

Case 1: Model was exported from Blender with the Extra Option Use Blender profile

In that case disable following import options:

  • disable find bone chains
  • disable auto connect

You then get the perfect import (lossless)

Case 2: Model was not exported from Blender or...

...or Model was exported from Blender without using the Blender Profile

In that case enable following import options:

  • enable find bone chains
  • enable auto connect

After importing the model, edit the imported rig and disconnect the CenterMass bone from theSkeleton bone.

I think the current solution is the best we can achieve. However any hints for further improvement are very welcome.

Fortunately the unexpected behavior is actually very expected but it needs to be documented better. The problem is that Collada does not support bone chains (connected bones) out of the box. While this is not very important for importing models to target systems (game engines) it is a bit annoying when you want to move a model between 3D editing tools. To solve this i have added 2 options to the Collada Importer for automatic recognition of bone chains, but this recognition fails sometimes. In your case the **Skeleton** was auto connected to the **CenterMass** bone and thus it changes the animation. The good news is that the fix is super easy. Also the Importer can be told to not auto connect to avoid the issue at all: Here are 2 cases and fixes: Case 1: Model was exported from Blender with the Extra Option **Use Blender profile** In that case disable following import options: - disable **find bone chains** - disable **auto connect** You then get the perfect import (lossless) Case 2: Model was not exported from Blender or... ...or Model was exported from Blender without using the Blender Profile In that case enable following import options: - enable **find bone chains** - enable **auto connect** After importing the model, edit the imported rig and disconnect the **CenterMass** bone from the**Skeleton** bone. I think the current solution is the best we can achieve. However any hints for further improvement are very welcome.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
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#59743
No description provided.