Contract work for making a blender exporter

Hi guys.

I’m the User Experience guy on Unity (www.unity3d.com) - a game making app some of you might have heard of.

We’re annoyed at our less-than-perfect integration with Blender, and are looking for somebody to make us an export plugin. And yeah, we’re willing to pay for it :wink:

Basically, we would like someone to author an ascii FBX exporter for Blender. The goal is to get fully skinned, animated, textured models into Unity (like we currently do for Maya, Max, Cinema4D). In addition to making the Blender/Unity integration better, this script would also make it easier for Blender to integrate with the above apps as well as dedicated animation apps like Motion Builder. A large part of the game industry is tied in to the fbx format, and we would like to give a hand at getting Blender to join the show.

Requirements: A mac (so you can test the Unity integration) and preferably some exporter-writing experience. The FBX ASCII file format is a pretty straightforward format, so it shouldn’t be too hard.

If you’re interested, drop me a mail at [email protected] and let’s talk.

Hi, just wondering if the resulting exporter could be GPL’s and released with Blender?

Not GPL’ed - then we can’t ship it with Unity. A BSD-styled license would be fine, though. Basically, we want everybody to gain from this - if Blender can accept public domain/BSD style licenses then by all means, ship the thing!

I dont see how GPL could stop you from shipping it. If it was GPL it could be bundeled with blender and then you could just distribute blender.

Unity is not GPL - it’s a commercial closed source app. Possibly this could be done - since we’re not binarily linking, but using some sort of cross-application communication - but we’re not going to open that can of worms. Getting a lawyer to verify that yes, we can do this (under numerous copyright laws) is gonna be far more expensive than the actual development. So BSD, Public Domain, whatever. But not a viral GPL.

We can just do it in public domain. then blender can ship a copy of that under GPL & we can ship a copy of it without any particular license. That should solve any issues. (I’m assuming the reason you want it to be GPL is because the BPL has some requirement from that NaN venture funding & the deal that was there to get the code opened up afterwards?)

EDIT: And we’re not really interested in bundling blender - that would tie our update cycle together with Blender, which will be a major hassle for us.

(Obligitory ‘I am not a lawyer’ so this is not legal advice.)

If you are paying for someone to develop it (work for hire) then the copyright is yours to release as you like. There should be no problem for you to release as a dual license (like MySQL does) where you release it as part of your product under your product’s license, and also release it as GPL so that it can be included with GPL software.

The main thing that would affect this is that you would need to know ahead of time what license/licenses you were using ahead of time so that the developer doesn’t include any code that would be invalid for the license specified. (ie. using GPL XML parsing libraries for something being released with a commercial license.)

Dual licensing gets tricky in that if someone fixes a bug in the GPL version, you may not be able to incorporate the fix in your version (depending on how you write your license and handle code commits and developer copyright sign-offs - you’d probably want to see how someone like MySQL handles it.)

Conversely, if you want to go with a single license - if you go the route of the BSD license, you should be able to distribute it with Blender anyway, as long as you use the revised BSD license (which removes the ‘advertising clause’ that makes it incompatible with the GPL)
http://www.gnu.org/licenses/gpl-faq.html#OrigBSD

I think the main concern here is that in order be distributed with Blender, it would need to be under a GPL license. Either of the above (dual licensing, or re-licensing BSD as GPL) routes should satisfy that.

had a look and couldn’t find any ASCII FBX docs, do you have some examples?

Basically, I don’t care about the license. I just care about getting the work done. How about doing without any copyright. Then blender can just take the code and do it under GPL.

We do not want to make use of external libraries. FBX Ascii is a simple format. No XML, no nothing.

Before we go any further on the (intensely boring) license stuff, is anybody actually interested in doing the job?

If you can give an example file or some docs, Ill look at writing an exporter, no cost and include in blender, otherwise sombody else can do it, I dont mind.

exporting bones with animation will be the hard part, anything with armatures generally is… not sure about that part as a freebe.

Sounds great! I’m making some sample files right now.

The trick with bones (or anims in general) would be to bake the animations. Armature animations are what’s actually missing from our current setup:

We’ve used the collada exporter from blender. This gets basically everything (to my knowledge) except animations. The problem with using collada is that basically the Autodesk FBX SDK (which we use in Unity) is not very good at collada - Seems to me they put it in to pay lip service to the format (wanna crash 3ds max? Try importing a collada model :wink: - hence, we need FBX (which is what we use with Maya, Cinema4D, Cheetah3D) etc.

thing is: at the moment, blenderheads can’t do characters. That is a damn shame, so that is what we’re basically out to solve. If its a problem, maybe we could fund you doing that part?

Cool, Ill be up for a few hours, if you post an example Ill see if I can something started…
if you can, a simple example like a cube, and something more complex - animated character.

would the animations be baked into the verts (like MD2) or bones?

Hmm - can’t seem to upload files. Drop me a mail at [email protected] & I’ll send 'em to ya.

Can’t wait to get this thing going!

PS: Do you have a Mac? Then I can send you a license for Unity for testing.

Hi Nicholas! Great to see you here!

If I can be of assistance, let me know. As you already know, I have both Unity Pro and Blender as well as Macs and PC’s. Don’t have any skills in this area, but Ideasman is -the- man to talk to for Blender export/import scripts. FYI, OTEE (the creators of Unity) are a great group to work with. Hope you guys sort this out.

Animations go into bones…

Iv tried to match the format of existing FBX files,
This exports mesh objects only verts,normals and faces so far.

http://members.optusnet.com.au/cjbarton/export_fbx-ascii.py

Suzanne exported
http://members.optusnet.com.au/cjbarton/test.fbx

I tried to convert the FBX back to OBJ and it results in a Blank file, yes, this is work in progress :wink:
Im not sure why this is, but from comparing 2 files the match is fairly good, probably a character off somewhere. If you have your own FBX importer you could debug.

It may also be that Im not exporting any materials at the moment

Are you using the FBX sdk for loading the models?
do you use multiple UV channels?

for weighting etc Ill need some example files.

Here’s what your Suzanne model looks like after importing into Unity:

http://www.pmudesign.com/downloads/Suzanne01.png

http://www.pmudesign.com/downloads/Suzanne02.png

The only apps that would open an ASCII .FBX file were Unity and Carrara, didn’t work in either Modo or Cinema 4D. Mesh looks the same in both apps.

I also tried exporting a mesh of my own, but even though the exported file is 2.6 MB, when imported all that appeared was an empty place holder. Here’s the file (FBX and Blend) if you want to take a look:

http://www.pmudesign.com/downloads/Miner.zip

Thanks for the feedback,

Iv updated the exporter (same location) after doing some DIFF’ing with simple objects to see whats wrong, Also managed to test with some FBX supporting Apps and it works now.

Added basic support for materials also

Make sure you select the data before you export it.

Ok, Suzanne now works fine. But my model crashes Unity and opens to an empty scene in Carrara. Have you tried the model I included above? Just curious if you’re able to open the resulting FBX file in anything.

HI,

Having an fbx exporter for blender would be great. :slight_smile:
It’s a great format for moving object, bones and vertex data across multiple
platforms. I’m not a coder, so not a lot I can do to help there, but if you need
people to basically troubleshoot the exporter, I’m up for that.

I downloaded the exporter as is and did a few tests moving stuff from blender
to motionbuilder. Everything works so far …

Thanks for putting time into this!

e1

Hi, if anyone could provide a FBX with weight painting and bones that would be great.

Also an example of Multiple UV layers. Would be nice to support since no exporters I know of support blenders Multi UV’s at the moment.