COLLADA Improvements for GSoC

Hi!

I was chosen as a GSoC Student for this year in Blender for the COLLADA Improvements project. The COLLADA project last year for Animation improvements was also done by me, and this year the project plans to improve constrained animation support in COLLADA. The Project Proposal is here. There is still much to be done because the state of COLLADA support is not yet very satisfactory. So as the new COLLADA initiative we hope to include more testing and user involvements with the developments this year.

For this project it’s important to test the code and modifications and improvements and verify outputs with other software and get .dae files to be tested. So it would be awesome if there are ppl who will be willing to work with me for testing and make suggestions on better improvements.

Currently I’m going through my exams, and will be able to start work from the 20th onwards.

Hi there.
I use Blender’s COLLADA implementation for migrating assets to game engines. I use COLLADA instead of FBX mainly do to the fact that I can hack the COLLADA file with some modicum of success in order to have my assets rotated correctly in the target engine. [ ‘zeroed out’ and facing the correct position]

Currently, in order to have my assets correctly aligned in the target engine, I have to rotate the model -90 on the X axis, apply the rotation, export selected, and then hand edit the DAE file with a text editor such that ‘Y is Up’. An option to do this upon exporting would be greatly appreciated.

Also, I would like to suggest renaming ‘Export for Second Life’ to ‘Bake Matrices’ as that is essentially what it accomplishes if I am not mistaken. This is a very important feature for me [zero out rotations] and I have never made a thing for Second Life. I think the myopic naming of this option is confusing as to its purpose.

Thanks for reading.

Thanks for your work on this, there are lots of really interesting GSoC projects this year :slight_smile:

Sorry but I don’t see the interest of exporting constraints.
Since interpolation between keys are differents depending on the software you use, you should concentrate your effort on correctly baking (aka plotting) a key per frame to export animation. And to go further, since skinning (armature deformation) is very different between softwares, the only way to go is pointcaching, and the most efficient format to do this is Alembic (open source format).

I honestly think that writing an animation exporter without Alembic is a waste of time.

Your work last year on Collada was great. Carrying on the momentum you started can only make it that much better.

Hi!

My biggest frustration is having no means to import/export between apps (in my case Softimage) the basics that would allow Blender to work in anything resembling a basic pipeline.

Forgetting for a moment, deformations, enveloping etc. Blender could be very useful for some basic effects work with just simple support for hierarchical SRT animation and cameras.

To first and foremost have simple support for:
*Cameras(simply with a correct horizontal or vertical FOV to start.)
*Geometry(with correct normal information and ideally with support for at least one set of UVs.)
*Nulls(or locators or empties - whatever terminology floats your boat…)
*Lights(Just making sure the type, color, intensity, shadow and attenuation information are correct.)

…all with basic support for animation on hierarchical transformations and the object type-specific parameters I mentioned (FOV, light intensity etc…) and with some toggles on import relating to scene orientation etc.

This would automatically make Blender accessible (and therefore attractive…) to a great number of curious parties who I’m sure lurk in the Blender forum shadows as I do myself…

Good luck with your work, and I look forward to testing!

Hi! Thanks for all the replies and encouragements! :slight_smile:

I began coding this week, and first of all as a initial step, I looked into exporting Track To constraint animations.
Currently, when exporting scenes with objects tracking other moving object, only the moving object animation is exported,
but not the tracking object.
So at first I discussed with devs of how to make this work, whether to export the constraint related data
in a <extra> tags with nodes of objects which has constraints, in blender profile, or export the animation of the
tracking object also, after like baking the animation to the tracking object.
It was discussed to export both forms, constraints in technique_blender, and baked animation in technique_common.

What are your thoughts on this?

I’ve initially committed how constraint related data is exported in <extra> tags within <node>s. The Structure is not yet determined, maybe you can suggest a best structure for that too?

I think we have basic support for the said objects and effects, more or less, according to COLLADA 1.4 Specs. But will try to confirm with other developers too.
Here are the current status of COLLADA architecture in Blender:
http://wiki.blender.org/index.php/Dev:2.5/Source/Architecture/COLLADA#Supported_COLLADA_features

Can you point out specifically the stuff that doesn’t work with Softimage? We will look into it.

Your Suggestion have been Noted, Thanks!

Hi, My brother and I have been doing exports from poser to blender for doing animations. We have been using mdd exports which save a shape key for every frame which creates HUGE files and memory hog and is still really buggy. We tried collada out of poser, and it worked for the default character, but our main character simply turned all the wrong directions (contortionist nightmare as arms and legs turned the wrong ways) We also noticed there is no shape key type export for facial movements. We would be excited to provide for you dae files or anything else to get this working as we could move out of rendering the bulk of our footage in vue and move over to blender, but these two issues are preventing us from doing that. Could you send me a way to get files to you in a PM or something? Unfortunately the files are purchased off a 3d site so they’re not for public distribution.

i’m currently doing a project where i’m collaborating with a modo artist. my main requests as far as current issues we’ve encountered:

-when blender imports colladas, it seems to ignore the up axis tag, so no matter what imported scenes are incorrectly rotated
-on import, blender seems to assign completely random normal directions. these errors are not inherent to the exported file, as a 3rd party collada viewer is able to render faces correctly and consistently.

thanks so much for continuing to work on this feature, blenders collaborative abilities are critical to it being a practical tool in larger production pipelines!

Hi!, you can send me files to test to my email address : [email protected]

Hi!

I was able to develop the exporter so that animations due to constraints are also exported now. For now I’ve only tested with a simple track-to constraint on a Cube and a empty. It works fine with those and the animation was imported accurately to Blender on import. Details are here: http://wiki.blender.org/index.php/User:Phabtar/Improve_COLLADA_constrained_animations_and_Morph_animation_support.

Need help with verifying on other constraint types as well, and to see how it imports in to other systems. The build will be updated on the graphicAll link provided in the wiki above. Thanks in advance!

Hi phabtar!

http://projects.blender.org/tracker/?group_id=9&atid=498&func=detail&aid=31089

As a Softimage user it’s this issue (linked above) that led me to believe that the Collada import of Blender was broken. As Thomas mentions, there is at least a (albeit manual…) workaround in editing the Collada file by hand to rename the attributes but I have to say that Min Rui makes a convincing argument that it’s Blender’s fault in the linked thread on the Softimage Mailing list…

(link reposted here…)
https://groups.google.com/forum/?fromgroups#!topic/xsi_list/00AinthD5gk

Would be great to get a response from you on this topic…