extra attributes - fbx

hello to all blenderpeople!

i’m using the FBX format for exporting scenes and i parse it in my panda3d-game to place models in the world.
till now, i used maya for modelling and export. in maya, you can add attributes (floats, bools, ints…) to your model.
e.g.: you create a simple cube. by default, there are attributes like translationX, transY, rotX, rotY, rotZ and so on.
i then add extra attributes to that cube, for example mass, isKinematic, isColliding, collisionGroup …etc…(i am doing a physX-game).
the exported FBX-file contains - in addition to default attribs like transl, rot, scale… - these extra attribs.
and thats the point: i couldn’t find a list of attributes (in maya called channelbox),
and of course, i couldn’t add attributes to the object.

my question: is there a way to add extrattributes? where can i find the attributes-list?
how can i do that in python?

i hope its possible and that you can help me out,
greets, kampfgnu

EDIT: btw, i am a brandnew blender user (but not a python-newbie)

hmmm nobody knows?
i would really like to use blender, but i need this feature.
do you maybe have another idea to “save” and export userdefined objectattributes?
or is blender just not the right program for me?

greets

Select your person(cube whatever) and press the perple pacman If you press ad proporty it adds a int that can be changed to bool or float. Now press “actor” then “dynamic” making it obay gravity and if you press rgid body it can roll.

kampfgnu,

there are two ways of adding custom properties to Blender objects. One, as alienkid10 mentioned, is the property editor in the logic panel (F4). Those are “Game Properties”. There’s a button “Add Property” which opens a property editor. Those properties are designed to use in the Blender realtime engine, which you wouldn’t have use for because you are using Panda, but those properties are accessible from Blender Python for use in export scripts.

The second, more generic and modern way and specifically designed for that purpose, are the custom Python “ID Properties”. You can attach any property of your choice to any Blender object via the Blender Python API and read those out again via your export script. Those ID Properties are used for example in exporters for external render engines like Yafaray or Luxrender, to store custom renderer properties in the Blender file and export them via script.

Both options would require you to program access to them into your export script. The advantage of the first option, Game Properties, is that you already have a GUI for doing entries of those. For the second option, ID Properties, you would need to make your own GUI via Blender Python. On the other hand, the second option should be more flexible and give you more control over the kind of properties you wish to have.

Some helpful links:
Blender Python API for Blender 2.46
ID Properties info
Yafaray renderer export script (as an example of using ID Properties)

When you study the API, you’ll find both Game Properties and ID Properties, keep in mind which is which. :wink:

pretty cool. thanks for your answers, i am now ready to move from maya to blender :eyebrowlift:
python rules, and you guys too.
thanks!
greets

look in the fbx exporter thread. i have added a code snippet which adds custom property support to the fbx exporter.

There is the “ID Property Browser” (located in the Help menu) which can be already used to edit ID Properties - not very user-friendly (read that as: very generic), but it works. Also some of the code could possible be re-used for a custom (G)UI.

Cheer,
Werner

Sorry about bringing this back. I had the same question but couldn’t find the thread about the fbx export snippets.

Basically I need to save out Customer Properties, per material to an FBX file. It sounded like this might be explained in the referenced thread. If if there is a better place for information on FBX Exporting (and potentially importing) I could use some direction.

Thanks :slight_smile: