Hi,
For some reason, i am unable to export a custom attribute string parameter (SomeString type:#string animatable:false) to FBX. It appears blank in the, motionbuilder, ui property window and also if i query it via the python sdk.
It seems others have used max CA’s to transfer custom data to fbx previously, so I must be missing something.
I have tried the obvious stuff
- ensuring values are set max side
- exporting with ‘animatable:’ both true and false
- seeing if a ‘default:’ value helps
- seeing if tying it to an edittext ui element helps
- exported with bake animations checked in the fbx export dialogue
- exported on older version of the fbx exporter (2013 to 2010)
No dice. Interestingly int and float parameters export just fine.
Has anyone else experienced this before, and if so know of a workaround?
Thanks in advance
Hey andylt1,
I had nothing but the best of results with moving around CA’s within FBX between DCC’s. ( sarcasm ) This stuff is hit or miss for the most part and the FBX team was able to correct most of this at times but the next release the fixes were lost. Anyways there are somethings to be aware of. Some objects will definitely lose custom attributes. Shapes from 3dsmax such as splines, curves, what have you never seemed to maintain the attributes. Modifiers will of course not transfer. You almost always have to have the CA’s on the base objects. Bool values were getting lost in some versions of 3dsmax, that was supposed to have been fixed but wouldn’t be shocked if it came back. If you need a bool and integer values do work, try going with 0 and 1 for True and False. The biggest thing to keep in mind is that most generic object types will have less of a problem than DCC specific objects that aren’t generally supported in FBX, so editable mesh/poly, bones, stuff like that should be safe to apply custom attributes onto. I believe I had most of this stuff worked out in 3dsmax 2014 before I left Volition but Max updates may have continued to fracture the fbx plugin. Let me know how it works out.
Randall got the best of it. Stick to simple geometry types (ePoly or eMesh) and always ensure your custom attribute block is added to the <node>.baseObject.
We still use Custom Attributes a lot at Volition not only for animation work but for physics rigging and other items like setting up custom LODs, etc… We’ve not encountered any problems exporting to FBX and maintaining them. We use string, Boolean, integer, float, stringTab, and intTab types. We do force the FBX exporter to export as FBX 2013.x format. We do that as that was the version we tested with when converting our pipeline to FBX and have never had the need to update it/retest w/ later versions.
If you want paste your custom attribute definition and code you are using to add it to objects. I’d be happy to test it on my machine and see what I can see.
Thanks for the info guys. Yea were trying to keep any custom data pretty bare bones and basic. I assumed hosting simple data on bones would be pretty reliable, as fbx has some notion of bone conversion. I have also tried it on both edit poly and mesh without any success.
This is code from the docs… I have also tried my own and random snippets I found on the net, with differing syntax (i figured there may be some flag or identifier I was missing in the definition). None seem to export string data.
weaponDataCA= attributes weaponData
(
parameters main
(
hitPoints type:#float default:10
cost type:#float default:100
sound type:#string
)
)
custAttributes.add $ weaponDataCA baseobject:True
$.hitPoints = 0.5
$.cost = 3.1
$.sound = "BEEP"
Oh well, I guess I’ll have to go with object properties and the UDP3DSMAX block for now until we can dig in to this more.
Again thanks for the insight. Much appreciated.
Andy
What version of 3dsmax are you using?
[QUOTE=Randall Hess;30486]What version of 3dsmax are you using?[/QUOTE]
Currently 2013.