the default (open collada) addon VS the "better collada"addon - help gather examples!

There is a discussion on the mailing list to replace blender’s currently broken collada import/export addon with the one developed by godot devs.

FYI, Juan, Cambell and Gaia are examining what can be done to get Godot’s beter collada exporter to be default for Blender. Only thing is that they’re missing test files where Blender’s collada exporter falls flat, and the better collada exporter works well:https://developer.blender.org/D1787

We need example files to convince blender devs to include the “better collada” addon by Godot’s developer.
Please share files where blender’s currently default collada import/export fails and the one made by godot devs succeeds.

Here are it is from the mailing list:

If you guys really had cared about open standards and getting along well
with game engines, you would have done the following:

  1. Make sure you export proper Collada. The specification is pretty clear.
  2. Push game engines to fix their importers.

Blender support for Collada has always been a disaster. There was never any
will to fix it.

-I originally insisted against using OpenCollada due to the huge binary
bloat, and the fact the spec is pretty simple. You guys wanted to go with
it.
-The exporter was huge and full of bugs. I insisted that a lot of features
missing in the spec needed to be implemented, was ignored.
-Meanwhile, all the missing Collada features were implemented in FBX, such
as blend shapes, proper keyframe baking. constraint baking, exporting all
actions, etc.
-I wrote for you guys a proper Collada exporter in a few lines of Code that
supported the full spec, you guys refused it to add it to mainline Blender.
-I insisted, the answer was “Yeah we can put it at some development repo
and if anyone cares about it we move it to mainline”. Of course, everyone
was using FBX , so who would care about Collada?

Now you cry that FBX is evil and blame Unreal, Unity and Autodesk.
Now you complain that there are not any open standards being pushed.


Ton,

Here’s some facts you are missing:

-My Collada exporter works with Unity, Cryengine and imports correctly in
Maya/Max too via OpenCollada plugin.
-My Collada importer opens perfectly any scenes exported from Maya and Max
(Using OpenCollada plugin), XSI and Lightwave. Of course it also opens
scenes from my Collada exporter.

You are free to test this yourself.

The reason this failed consistently in Blender is because you guys didn’t
care about having experienced developers spend time making it work.
Had Campbell Barton worked on it as he did on FBX, Collada would work
wonderfully. I just used his same approach to make my Collada exporter,
using OpenCollada library was a huge mistake.

Still, I understand your concern and it is true that Collada was
originally devised as an exchange format. But if you read the specification
you will realize that, with each version, it quickly migrated to a format
used to export assets for game engines. As an exchange format between 3D
DCCs it’s severely limited.

So my proposal is the following:

-Deprecate current Collada export support in Blender and replace it for
mine. Change the focus so it works well with game engines as a priority.
Having an alternative to FBX for this is a lot more important, both for
commercial game engines and (most vitally) for OSS game engines.
If the focus is for DCC exchange, we know it will never work properly for
any use case and it sucks as a format for that anyway.

-Deprecate current Collada import suppot in Blender and work together with
me to implement my library, which has extremely high compatibility.

-Find a more useful long-term solution for asset exchange between Blender
and other 3D DCCs. I don’t think even FBX is up to this task. If it was up
to me to decide, I think the best solution would be to implement a
dedicated .blend importer/exporter plugin for Maya, and make sure every
single use case works. From there, you can go to any other Autodesk
software using Maya Import/Export.

Julian, I’m only proposing a way to solve the following problems:

  1. Not having an alternative to FBX
  2. Not having a fully working Collada exporter that supports the same as
    the FBX. You can test mine any time, try exporting a complex scene from
    Blender with skeletal animations, blend shapes, multiple actions, etc.
  3. Not having a fully working Collada importer. You can test mine any time
    and see how it imports Blender, OpenCollada, XSI, Lightwave, etc. with all
    the above mentioned features.
  4. Not having the huge bloat that represents using OpenCollada in Blender.

There is no argument here. I’m offering a working solution, I did all the
work already, developed both importer and exporter. Hundreds of users
tested both working. You just have to take it or leave it.

But if you leave it, please don’t follow with the hipocrisy of saying FBX
evil and we have no alternative. Collada is a fine format already, the only
problem is broken libraries (FCollada, OpenCollada).

If you believe that the exporter is the easy part, why has there been
more than 10 years and Blender is still unable to export Collada properly?
I wrote for you an exporter that has been tested in dozens of games and
that exports every meaningful part of the spec as best as possible. Either
two actions must happen:

  1. Just make the built-in exporter work as well as mine
  2. Merge mine and deprecate the built-in exporter.

I can’t maintain a full Collada subsystem in Blender, I’m already too
busy working on Godot. I´m offering extremely well tested and fully
compliant code for both importer and exporter, both extremely tiny
(compared to OpenCollada). You only have to help me out merge both into
Blender, and all this discussion about open formats is over. We can even
work in a more modern version of the Collada spec together (I’m an advisor
at Khronos) supporting more modern features such as PBR, Shader Graphs, etc.

But seriously, just work a little from your end too instead of
complaining about Autodesk being evil…

Collada exporter is here:

https://github.com/godotengine/godot/tree/master/tools/export/blender25/io_scene_dae

The only limitation it has, which I believe could be fixed quite easily but
should not be a blocker, is that to export skeletons, you have to make the
mesh a child of the skeleton.
This is because, unlike Blender, game engines do skeletal transform locally
before transforming by world matrix so this makes it more compatible and
all the content more coherent. Collada importers have not much of a problem
with this. Please remember this exporter is meant for game engines, since
Collada is not very useful as exchange format between 3D DCCs.

Collada importer is here, and it’s very compatible… Godot uses it to load
full scenes from any existing DCC fine, with full skeletal animation, morph
targets, etc. I have found that some exporters have small inconsistencies
with the format, so this importer is custom made and very, very very
tolerant. Trust me, hundreds of Godot users use it and it hasn’t failed in
a long time.

https://github.com/godotengine/godot/tree/master/tools/collada

However, it’s written in C++ and I don’t really have any knowledge about
Blender internals. Godot manages scenes in a very similar way to Blender so
adapting it should be easy, but I honestly don’t have time to learn Blender
internals. Still, I offer help about understanding and adapting the
codebase to anyone willing to do it. If you guys could adapt OpenCollada to
Blender, this should be a lot easier.

Cheers! And sorry if I sounded offensive in previous threads, please
understand that the currently situation and having to create and maintain a
parallel exporter so Blender users could export to Godot did not make me
happy, specially when Ton cried today on twitter about how FBX was evil and
we have no open standards to export to game engines…

Please share test blend files, as well as exports that work and fail. Write down the test results in the target platform (blender to <game engine/other 3d application> to blender)

Why not to use OpenGEX ?

OpenGEX has practically no adoption. Collada is supported officially at least by Unity.

Interestingly, both Tim Sweeney and David Helgason have responded to Ton’s tweet about supporting another open format (glTF):

TimSweeneyEpic @tonroosendaal I’m no fan of FBX, but https://xkcd.com/927/.

David Helgason @NIV_Anteru @tonroosendaal Seriously though, it’s cool… but there’s a lot of projects and new standards aren’t necessarily our #1 agenda

And TimSweeney was interested in Open Collada… recommended to him by the Godot Dev, who is now trying to make sure that Blender’s exporter is OpenCollada compatible. And it would really help him and Gaia to have example files for testing.

Any idea why ?

Here’s the main difference between the two add-ons as far as I can tell (code style and other things aside): Gaia’s attempt treats Collada like the exchange format it was originally designed to be. Juan’s code treats Collada like the export format for games that it’s more commonly used for.

The other issue is that in the attempts (this would be at least the second one that I’m aware of) to get Juan’s code into Blender, he’s given no response to the code reviews that he’s been given. A development branch was even set up to receive the code and start collaborating on changes, but nothing was ever commited to that branch. It’s not clear if he wants/expects someone else to do the requested changes to make his add-on suitable for inclusion.

There’s a lot of venom and arrow-slinging going on here and it’s really quite unnecessary.

Fweeb, I think you have a better overview of what is going on than anyone involved in the code review though. :smiley:

I think, at this point it must feel a bit strange, after all the meeting notes said a few weeks ago ‘let’s maybe consider getting rid of collada export because only a few people use it’ and then this confusing code review. I wish I could help, but I don’t have access to unity as a linux user.

It was a misunderstanding. The code was reviewed originally in late 2014, but back then the official Collada was still supposed to be fixed, so Juan didn’t pursue this further. It didn’t end up getting fixed after all and now there’s renewed interest in his solution.

There’s actually a linux build available, it’s just not officially supported yet.

Why no Windows? You guys develop Krita for all platforms, so why not have dual-boot on your PC ?

It´s still a voluntary position. AFAIK Thera isn´t paid by the Krita foundation as a developer (?) meaning she helps with parts she is interested and/or invested in.

Yeah, I am a full volunteer outside of google summer of code projects.

Regardless, it seems that both fbx and collada could use a test-suite? Might as well be the same files then?

Let’s focus on having a working collada export/import in this thread. :slight_smile:
The goal here is not to dispute the need of fbx or look for other alternatives.
That is for another thread.
In any case, I pointed this thread to the attention of the godot community on facebook. Let’s hope they react

ue4 is somewhat open source right ?

so they don’t have to support it, you can plug something in?

Character animation test:)-(idle animation)----I export with the default Blender (2.70a) collada and better collada to Godot engine (2.0 Beta-Linux32bit)
…it looks for me and the result for me – the animations which exports better collada are smoother - not see any small tearing while playing animation and the better collada automatically exports the animation list.

the result:
Better collada exporter addon is better!!:slight_smile:
…but it’s export from the Blender 2.70a and Blender 2.76 has already improved the default collada?..I don’t know:eyebrowlift2:

Attachments



CrocoMonster_CAtest.blend (1.22 MB)

this is an awesome test! We need more to prove that the addon is useful when exporting to other software as well.

I used Unity with PlayOnLinux for a while. It was held together with duct tape, but I got real work done. Now, I use the Linux version (download latest build here, at the last post), it works extremely well. I can’t guarantee it would hold out under the load of a AAA project, but I certainly don’t have trouble getting work done, including importing collada files.

I think both default and better collada did their job well…collada addon is great:)Thanks developers!!

—little differences there are-you can see in the screenshots

  • naming the bones are different but only in the beginning-naming the bones is correct for both exporters.
    -the better collada exports more keyframes but it can be set up/optimize when you export or directly in Godot engine
    -this is more interesting----- the default collada adds a bit of the length of the animations.

Better collada addon for me has a better selection of the settings when exporting and the more I trust him to do his job well:)

Attachments




Just curious, have you folks tested it with the Autodesk FBX converter? This converter promises to read / write collada too. Just not sure how actual the tool is. The latest release has the number 2013.3

I’ve actually spent quite a bit of time in the guts of Better Collada Exporter because it was an easier base for me to work with to make Blender export DAEs that were compatible with Homeworld: Remastered’s mod tools, and it’s terrible.

It does tons of stuff in straight up stupid ways (like the way it generates IDs with a function that appends a number to the entity type instead of just, y’know, getting them from the names that are already there) and some things that are completely insane. like how animations export every single frame of the range as a keyframe, which not only means that export can take forever if you’ve got a lot of frames of animation, but also results in overlapping actions with useless keyframes that you have to manually cull, and massive massive files (there’s also a bit of memory and time waste in the animation section because there’s a saved variable and a bunch of unnecessary math to get the float value for the frames when it could just divide current frame by target framerate and get the same result).

I cleaned up a lot of that in my forked version, but I wouldn’t recommend my version of it as Blender’s primary Collada exporter either because I hardcoded a lot of hacks in the materials and elsewhere to make it work with Homeworld (and I couldn’t 100% get around the animation frames issue, I’m doing every frame within an action now, which is a damn sight better than the every single frame of the active range method it was doing before. I couldn’t figure out how to make it jump to just the keyframes when the exporter ran).

The problem with Schlemiel the Painter is that no one ever tells what happened after he was fired. It’s the story of Flabagast the boss.
Flabagast hired another painter for the job.
This one was fast, he was so fast that he painted 1000 yards a day.
Flabagast the Boss was the happiest man on earth because he could go to the general contractor and tell him that the job was done.
So the general contractor went to check what was done.
And he found that the he asked the lines to be yellow but they where blue.
“That’s unacceptable”, he said, “Why did you give the painters the wrong color?”
“Didn’t I tell you I was daltonic?” replied Flabagast.

Every time you check the performance of a job before the correctness of the result you’re Flabagast the Boss.