Page MenuHome

Add support for opencollada >= 1.6.65
Closed, ResolvedPublic

Description

The 1.6.65 release (12 Oct) of opencollada includes a new method writeAnimationClip. As this is a pure virtual method, Blender fails to build with recent opencollada libs.

While the following patch fixes the build, a TODO should be made to implement the import and export of relevant data.

diff --git a/source/blender/collada/DocumentImporter.h b/source/blender/collada/DocumentImporter.h
index 17e61326032..1c204f3e799 100644
--- a/source/blender/collada/DocumentImporter.h
+++ b/source/blender/collada/DocumentImporter.h
@@ -107,6 +107,8 @@ public:
        bool writeAnimation(const COLLADAFW::Animation*);
 
        bool writeAnimationList(const COLLADAFW::AnimationList*);
+       
+       bool writeAnimationClip(const COLLADAFW::AnimationClip*);
 
        bool writeGeometry(const COLLADAFW::Geometry*);
 
diff --git a/source/blender/collada/DocumentImporter.cpp b/source/blender/collada/DocumentImporter.cpp
index 67fd9d648c7..d68b5ceaf80 100644
--- a/source/blender/collada/DocumentImporter.cpp
+++ b/source/blender/collada/DocumentImporter.cpp
@@ -1349,6 +1349,13 @@ bool DocumentImporter::writeAnimationList(const COLLADAFW::AnimationList *animat
        return anim_importer.write_animation_list(animationList);
 }
 
+/** When this method is called, the writer must write the AnimationClip.
+ * /return The writer should return true, if writing succeeded, false otherwise.*/
+bool DocumentImporter::writeAnimationClip(const COLLADAFW::AnimationClip *AnimationClip)
+{
+       return true;
+}
+
 /** When this method is called, the writer must write the skin controller data.
  * \return The writer should return true, if writing succeeded, false otherwise.*/
 bool DocumentImporter::writeSkinControllerData(const COLLADAFW::SkinControllerData *skin)

Event Timeline

Gaia Clary (gaiaclary) triaged this task as Confirmed, Medium priority.Dec 3 2018, 11:26 AM

Hi, Shane

The support for action clips has already been prepared in the Blender Collada module since march 2018, but discarded because actually i was waiting for https://github.com/KhronosGroup/OpenCOLLADA/issues/565

You can expect to see this becoming live in Blender 2.8. I will prepare a request for updating the Collada libraries in the next days.

cheers,
Gaia

If this patch is required to build with new opencollada libraries, it should be committed to master & blender2.8 before the libraries are upgraded.

I could not find an easy way to get the library version number. So i asked in the opencollada project:

https://github.com/KhronosGroup/OpenCOLLADA/issues/604

waiting for response.

In the worst case we can check for the existence of a COLLADAFWAnimationClip.h file in CMake, but would be nice if OpenCollada had version defines.

Hi, @Shane Ambler (sambler)

While adding the fix, i found that the related definition files are available only since Collada 1.6.68 So this fix will only work for Collada 1.6.68 or newer.

If the problem also appears on the versions 1.6.65/66/67 then i am not sure how to fix that.

@Gaia Clary (gaiaclary) Seeing that the collada releases from 1.6.64 to 1.6.68 were all tagged in less than two months I would just make 1.6.68 the required version. If anyone is updating from 1.6.63 there is really no reason to build any version before 1.6.68.