FBX Importer for T3D ?
by Scott Warren · in Torque 3D Professional · 01/20/2013 (11:59 am) · 50 replies
T3D needs an FBX Importer and there is a free FBX Importer SDK at AutoDesk's site for the purpose.
It simply works. The Iris isn't completed, there are other parts to the entire object and isn't textured yet. But it sure is nice to see my art actually work somewhere, other than the Lightwave editors.
Collada is great for many things in T3D, but it is keeping many people from getting the correct results, dependant on the art software that a person uses.
3dsMax is not the most desirably software for every Indie Developer. With a price tag of more than $4,000 USD, it's even out of reach for many would-be game developers. So why not just include the FBX importer in the source code.
I am personally getting quite frustrated with getting Collada art into T3D with animations.. to the point that even after being around for so many years and dedicated to Torque, I am really considering dropping the entire Torque engine and just use Unity.
But being a (several) license holder for the older varieties of the engine, I'd much prefer to stay with Torque.
- T3D seems to lean towards Autodesk 3dsMax for compatibility.
- Most of the Store assets content is in the form of 3dsMax files.
- Nearly everything an Indie / Artist would want to get into the engine is viable with FBX. Here is a link to see what is supported with Softimage XSI FBX ( owned by Autodesk ): softimage.wiki.softimage.com/xsidocs/import_export_xwalk4xsi_SupportedSceneEleme...
- I've tested Lightwave FBX export to Unity game engine that supports the FBX import for game assets without any problem.
- Importing Collada into the Unity game engine gives me the same error results I see in T3D Object Editor, so clearly their must be something about Collada that just isn't working.
It simply works. The Iris isn't completed, there are other parts to the entire object and isn't textured yet. But it sure is nice to see my art actually work somewhere, other than the Lightwave editors.
Collada is great for many things in T3D, but it is keeping many people from getting the correct results, dependant on the art software that a person uses.
3dsMax is not the most desirably software for every Indie Developer. With a price tag of more than $4,000 USD, it's even out of reach for many would-be game developers. So why not just include the FBX importer in the source code.
I am personally getting quite frustrated with getting Collada art into T3D with animations.. to the point that even after being around for so many years and dedicated to Torque, I am really considering dropping the entire Torque engine and just use Unity.
But being a (several) license holder for the older varieties of the engine, I'd much prefer to stay with Torque.
#23
Took a bit of time reading all the license stuff. I believe this can be done legally and I am digging into HOW it can be done. Honestly though, I would not mind at all if someone else wanted to start in on this. Basically, it's a matter of looking into the SDK and seeing how it outputs model information. From there it's a matter of converting that info into something that T3D handles (DTS).
Keep in mind this is a big job. I will get to it eventually, but it will probably happen faster if someone picks up this task. Keep in mind we are community driven on this stuff now. I think it's VERY worthwhile, but with everything else that going on, and only 3 of us working on T3D (steering committee guys, for the most part) I don't see it happening quickly. Time to get out of the 'wait and see what makes the cut' mentality. If anyone wants or has started anything like this, please chime in. I know this community can make it happen.
Ron
01/22/2013 (2:57 am)
@all,Took a bit of time reading all the license stuff. I believe this can be done legally and I am digging into HOW it can be done. Honestly though, I would not mind at all if someone else wanted to start in on this. Basically, it's a matter of looking into the SDK and seeing how it outputs model information. From there it's a matter of converting that info into something that T3D handles (DTS).
Keep in mind this is a big job. I will get to it eventually, but it will probably happen faster if someone picks up this task. Keep in mind we are community driven on this stuff now. I think it's VERY worthwhile, but with everything else that going on, and only 3 of us working on T3D (steering committee guys, for the most part) I don't see it happening quickly. Time to get out of the 'wait and see what makes the cut' mentality. If anyone wants or has started anything like this, please chime in. I know this community can make it happen.
Ron
#24
Did you read the license excerpt on the link I provided?
The way I read that it says that if there is no explicit license from Autodesk on the distributed software (the game I think) then it is automatically a limited, non-transferable, limited to 1 person, and expires in 30 days. Why on earth they would put something like that in an SDK license is beyond me. At the very least this should be clarified with Autodesk. This interpretation is why there is no FBX import in Blender.
01/22/2013 (7:49 am)
@Jimmy,Did you read the license excerpt on the link I provided?
The way I read that it says that if there is no explicit license from Autodesk on the distributed software (the game I think) then it is automatically a limited, non-transferable, limited to 1 person, and expires in 30 days. Why on earth they would put something like that in an SDK license is beyond me. At the very least this should be clarified with Autodesk. This interpretation is why there is no FBX import in Blender.
#25
01/22/2013 (8:19 am)
@ Frank yes I did and a few post further down is where I got my quote form a user explaining what it means to someone who didn't understand the license.
#26
Ah, okay. I think I saw that too, but was still wondering why they left the stuff about the 30 days in.
Edit:
You are probably right, and I am most likely reading into to this too much.
01/22/2013 (9:48 am)
@Jimmy,Ah, okay. I think I saw that too, but was still wondering why they left the stuff about the 30 days in.
Edit:
You are probably right, and I am most likely reading into to this too much.
#27
http://www.garagegames.com/community/blogs/view/21517/1#comment-182909
u guys can redirect brokeass to this thread if they are willing to help this out.at least can give some starting info.
01/22/2013 (7:09 pm)
Quote:
" If anyone wants or has started anything like this, please chime in. "
http://www.garagegames.com/community/blogs/view/21517/1#comment-182909
Quote:
When you get FBX fully working, talk to GG about getting it into T3D, will you?
Quote:
Be glad to!
u guys can redirect brokeass to this thread if they are willing to help this out.at least can give some starting info.
#28
01/24/2013 (1:29 pm)
Excuse me Scott but are you talking about OpenCollada because it always seems to work okay for me? I use it because I never got Autodesk Collada to work. I work a lot with Motionbuilder So I'm familiar with fbx but I usually open Max straight from Motionbuilder then export my models and animations directly into T3d using Opencollada. They work fine.
#29
I don't use Blender or Max, though I just recently downloaded the Student version to convert files. I was referencing Collada in General.
This isn't really about Collada which I do like for some things. But the companies that make their Collada Import / Export plugins, don't all share the same needs and perception of implementation. So what we end up with is a Collada base of 1.3.1 or 1.4.1 versions and not all of them are inter-compatible across platforms... this is the very thing Collada was meant to do but it falls short of towing the line.
However, I still like Collada.
As great and sometimes equally dysfunctional that Collada can be, I found that FBX is actually a better system for what Game Devs and Hobbyists need to share work across platforms. In my video, I was able to simply export the file as FBX and it dropped right into Unity without issue. Everything about the Iris Valve worked.
I exported the same file as Collada and Imported to Unity and T3D and the results were identical:
The shards of the Iris Valve were out of place and only part of the animation actually made it into the file.
I'm not bashing Collada though. I still like it for other things.
01/24/2013 (5:04 pm)
@SkipperI don't use Blender or Max, though I just recently downloaded the Student version to convert files. I was referencing Collada in General.
This isn't really about Collada which I do like for some things. But the companies that make their Collada Import / Export plugins, don't all share the same needs and perception of implementation. So what we end up with is a Collada base of 1.3.1 or 1.4.1 versions and not all of them are inter-compatible across platforms... this is the very thing Collada was meant to do but it falls short of towing the line.
However, I still like Collada.
As great and sometimes equally dysfunctional that Collada can be, I found that FBX is actually a better system for what Game Devs and Hobbyists need to share work across platforms. In my video, I was able to simply export the file as FBX and it dropped right into Unity without issue. Everything about the Iris Valve worked.
I exported the same file as Collada and Imported to Unity and T3D and the results were identical:
The shards of the Iris Valve were out of place and only part of the animation actually made it into the file.
I'm not bashing Collada though. I still like it for other things.
#30
You'll find several good sites for FBX information but this one is written in a way that seems to assume your a programmer and that you might be a little out of practice. So the process of reading the FBX file format is explained in the Lab.
01/25/2013 (7:34 pm)
If there are any community members that are looking to take up this task then I found several useful links through Google to understand the FBX file format. The one link provided here is a Lab excercise so that programmers can get a feel for how it all works.You'll find several good sites for FBX information but this one is written in a way that seems to assume your a programmer and that you might be a little out of practice. So the process of reading the FBX file format is explained in the Lab.
Summary In this lab, you've seen the OBJ file format and how 3D model data can be structured. We also looked at the FBX SDK and played around with Maya to export into the file format. If you looked at the code, both of these show how vertex coordinates, normals, and UVs are structured.cse.spsu.edu/jchastin/courses/cs4363/labs/FBX/FBXLab.html
#31
I've been searching for things to assist with getting this into reality.
This programmer has made his FBX Viewer and presents it with an MIT license.
His Purpose:
It uses the FreeImage Open Source Duel License
freeimage.sourceforge.net/license.html
It includes source code for making a Plugin.
01/27/2013 (1:12 pm)
Another effort to keep this thread alive.I've been searching for things to assist with getting this into reality.
This programmer has made his FBX Viewer and presents it with an MIT license.
His Purpose:
Quote:... This fbxviewer is meant to assist in converting FBX to a final format that is suitable for real time rendering.code.google.com/p/fbxviewer/
It uses the FreeImage Open Source Duel License
freeimage.sourceforge.net/license.html
It includes source code for making a Plugin.
#32
The things is time that developers have to add features like this. As Ron pointed out in an ealier post time is aginst him with his other oblagations. I thought about taking this up but again I have bearly any coding experise and I have to finish learning before i can really start digging into the code base
01/27/2013 (1:32 pm)
It's not that hard to implament. This thing is looking for and finding the files that are needed to add the format to. Then you would need to add it the the dae convertor so that it can also read and convert the fbx format to the binary format that Torque uses. The things is time that developers have to add features like this. As Ron pointed out in an ealier post time is aginst him with his other oblagations. I thought about taking this up but again I have bearly any coding experise and I have to finish learning before i can really start digging into the code base
#33
I'm just feeding the thread some information so that when a member chooses to take this up, that they have some additional links to help them grasp it.
I went to look for the DTS SDK or some form of DTS schema, but that information is still a well kept secret I guess.
01/27/2013 (2:51 pm)
I don't code anymore. Last time I made any programs was back in 1990. There is no doubt that this is beyond my skills and I have no desire to learn all the new things in C++. I stick with the Art, it's far more relaxing for me.I'm just feeding the thread some information so that when a member chooses to take this up, that they have some additional links to help them grasp it.
I went to look for the DTS SDK or some form of DTS schema, but that information is still a well kept secret I guess.
#34
01/28/2013 (11:29 am)
@ Scott The DTS format is in the code. Just got to be brave enough to dig it out lol, as was told to me when I made request for documentation to be added for the DTS format.
#35
I think if you really want this you will need to step forward and at least get the ball rolling. Some places to start:
As an experiment I read in the soldier DAE into Blender. I got the skeleton, the meshes, and the materials are properly mapped. When I export it exports correctly and reads right into T3D. The only issue is the animations do not work with the soldier. So I would have to reanimate. I also read in the KPBot from an older demo. It has all the animations in the DAE. This reads into Blender fine and animates perfectly inside Blender. Then I can export as DAE and import into T3D and it works perfectly. After adjusting the script files to match the file paths materials and animations work great. All the glow effects are functional as well. Now remember these DAE were not originally produced in Blender. They were made in Max I believe. That means Max and Blender have worked through a lot of their import/output issues when it comes to DAE.
To me this functionality is "good enough" as of now. That is why if you truly want FBX it will be up to you to get the ball rolling. Once you reach a critical mass other people may jump on board.
01/28/2013 (1:09 pm)
@Scott,I think if you really want this you will need to step forward and at least get the ball rolling. Some places to start:
- Look at how DAE files are read in and translated. Make notes of what does what as best you can tell.
- See how the DAE format is translated to DTS. Make notes.
- Now start researching how FBX is read in and what formats and how they differ from DAE.
- Document as much as you can and even start writing code to test things out.
As an experiment I read in the soldier DAE into Blender. I got the skeleton, the meshes, and the materials are properly mapped. When I export it exports correctly and reads right into T3D. The only issue is the animations do not work with the soldier. So I would have to reanimate. I also read in the KPBot from an older demo. It has all the animations in the DAE. This reads into Blender fine and animates perfectly inside Blender. Then I can export as DAE and import into T3D and it works perfectly. After adjusting the script files to match the file paths materials and animations work great. All the glow effects are functional as well. Now remember these DAE were not originally produced in Blender. They were made in Max I believe. That means Max and Blender have worked through a lot of their import/output issues when it comes to DAE.
To me this functionality is "good enough" as of now. That is why if you truly want FBX it will be up to you to get the ball rolling. Once you reach a critical mass other people may jump on board.
#36
I agree that DAE files do work, just not in all cases, where as FBX is closer to as perfect for T3D as we can get.
My expertise is in my College studies, if you need me to make anything out of Copper, Stainless Steel, Titanium or other metal material, Heat Treated and within tolerance equivalent to 0.0001 ( One ten thousandths of an inch ) then I am your man.
When it comes to programming, I haven't touched it in over 20 years. Which means if the community is going to be waiting on me to get this ball rolling, then the wait will be excruciatingly long. Don't hold your breath in the meanwhile.
I have been doing what you suggest Frank, very much of my research has been going on since I posted this thread. I am not standing idle and waiting for "somebody" to choose to pick it up or to have time to consider it. But I AM hoping that somebody that is more qualified will have the time and consideration to get this rolling as the Lead-Man.
I am sorry if any part of my comments in this thread, indicates that I am waiting or whining, because it is not my intention to convey that message. Rather, I see this as an important next step in the evolution of T3D and in my spare time I am re-training my C skills and knowledge of the FBX format.
01/28/2013 (2:27 pm)
@FrankI agree that DAE files do work, just not in all cases, where as FBX is closer to as perfect for T3D as we can get.
My expertise is in my College studies, if you need me to make anything out of Copper, Stainless Steel, Titanium or other metal material, Heat Treated and within tolerance equivalent to 0.0001 ( One ten thousandths of an inch ) then I am your man.
When it comes to programming, I haven't touched it in over 20 years. Which means if the community is going to be waiting on me to get this ball rolling, then the wait will be excruciatingly long. Don't hold your breath in the meanwhile.
I have been doing what you suggest Frank, very much of my research has been going on since I posted this thread. I am not standing idle and waiting for "somebody" to choose to pick it up or to have time to consider it. But I AM hoping that somebody that is more qualified will have the time and consideration to get this rolling as the Lead-Man.
I am sorry if any part of my comments in this thread, indicates that I am waiting or whining, because it is not my intention to convey that message. Rather, I see this as an important next step in the evolution of T3D and in my spare time I am re-training my C skills and knowledge of the FBX format.
#37
I am getting an error that the Torque.rc file cannot be found.
Is this a VS2010 express limit, that it cannot open the file because the resource editor isn't included?
Edit DAE2DTS.sln didn't have a Torque.rc file. Only a place holder for the files. Copying the Torque.rc file from another project solution and placed into the DAE2DTS project folder fixed this error.
01/28/2013 (7:02 pm)
Anyone that reads this thread have a problem compiling the DAe2DTS project while using VS2010 Express?I am getting an error that the Torque.rc file cannot be found.
Is this a VS2010 express limit, that it cannot open the file because the resource editor isn't included?
Edit DAE2DTS.sln didn't have a Torque.rc file. Only a place holder for the files. Copying the Torque.rc file from another project solution and placed into the DAE2DTS project folder fixed this error.
#38
01/28/2013 (9:52 pm)
No it's just not you I'm having all kinds of issues trying to compile this new 2.0 branch
#39
I got frustrated one day with trying to maintain pureLIGHT's collada import code (so many different ways of representing geometry and every single modelling program does things slightly differently and not always to the official spec) and found this library. It only took a couple pages of code to import and translate its mesh format into our own internal mesh format.
Now I haven't actually used their fbx import code (we use the official Autodesk FBX SDK for that, as I expect it to be updated by Autodesk whenever they put out a new version of 3DS Max), but based on how well the rest of their import code works I don't see any problems.
01/29/2013 (10:47 am)
I'd suggest also looking into the Open Asset Import Library https://github.com/assimp/assimp. It supports a lot of different mesh file formats, including collada and fbx. Its got a BSD license to it, so its far friendlier licensing terms than Autodesk's FBX SDK. So, why not get lots of mesh formats in addition to FBX for the same effort?I got frustrated one day with trying to maintain pureLIGHT's collada import code (so many different ways of representing geometry and every single modelling program does things slightly differently and not always to the official spec) and found this library. It only took a couple pages of code to import and translate its mesh format into our own internal mesh format.
Now I haven't actually used their fbx import code (we use the official Autodesk FBX SDK for that, as I expect it to be updated by Autodesk whenever they put out a new version of 3DS Max), but based on how well the rest of their import code works I don't see any problems.
#40
I'm as far back as getting Microsoft SDK (April 2007), "Why?" I keep asking myself. I thought the newer DX releases included all these past DX versions but for reasons I havn't discovered yet, the compiler refuses to "see" the includes. While this is usually from not adding the ";" or missing files, I just keep running circles so far.
I'll look into that site after I get this figured out.
01/29/2013 (12:55 pm)
Thank you Tom. Currently I am re-learning C/C++ through trial and error, Pressing F1 for help reminders, and squashing Include / Lib linker errors for the DAE2DTS project.I'm as far back as getting Microsoft SDK (April 2007), "Why?" I keep asking myself. I thought the newer DX releases included all these past DX versions but for reasons I havn't discovered yet, the compiler refuses to "see" the includes. While this is usually from not adding the ";" or missing files, I just keep running circles so far.
I'll look into that site after I get this figured out.
Jimmy R Armes
I don't see any problems here. Then people or comapanies developing with Toruqe would need to download the FBX sdk, just like they do already with DirectX and PyhsiX.
@Frank
GG dosen't distribet the sdks to DirectX or PhysiX but Torque still includes the headers in the engine.