Feb. 25, 2007 @ 20:06
3DS Max 9 SMD Exporter Update – 0.4Beta

Thanks to feedback from a number of users I’ve now managed to squash some more bugs and make another update.

Two big bugs from 0.2b have been fixed:

  • Fixed sum-materials of Sub/Multi-Object material types not being exported correctly.
  • Added trap for invalid face material ID’s.
  • Fixed bones that have been mirrroed (no right hand rule) being exported incorrectly.

To explain the fixes – there was an error (my own fault) with how Mult/Sub-Object materials were being exported. Due to an oversight in my part I was trying to grab a sub-material with an invalid ID number which was making Max fall over. I also discovered that it’s possible to assign a material ID to a face which doesn’t correspond to an ID in your material. I’ve added a trap for this.

The bone problem appears to be resolved although to be honest, it’s down to user error more than any specific error in my code. Basically, if you make a bone or bone chain and then use the mirror tool to make a copy, the transformation matrix is no longer right-handed. My exporter didn’t take this problem into account and exported everything as if it was normal. I’ve now added a check to see if a bones parent has been mirrored and if so it flips the rotations accordingly.

For your own sakes, if your going to mirror bones, before you use them reset the transforms!. Not only is is bad practice not too, you’ll cause yourself massive headaches later. It’s not just the SMD exporter(s) which have problems with this – I imagine other game exporters do to.

Lastly, one bug which seems to come from Max itself and not my plug-in – Export Selected not exporting some bones.

If you imagine a chain of bones A -> B -> C -> D, A is considered to be the “Root” because it has no parent. When you use “File->Export” in Max, it scans the scene for all Root nodes and then processes them and any children they have. Now, if you were to hide bone A, Max now considers B to be a Root as it’s parent is hidden away so export continues as normal, except Bwill not be parented to anything.

However, it seems this logic does not extend to exporting only selected objects.

Again, with our chain of bones A -> B -> C -> D, if we only select B to D and use “File->Export Selected” none of them get exported. Why? Well Max decides that B is not a Root node because it has a parent, A. As it starts with Root nodes and works down, B is skipped and hence any children of it and their children get skipped too.

Personally I think this is nuts. If you dont select all the bones all the way back up the chain to the Root none of the bones get exported. Even hiding them doesn’t work, it refuses to consider the bone a Root and thus process it. So, with Export Selected you must ensure that your Root (parent) bones/nodes are included in the selection or nothing beneath them will get exported.

If I figure a way around this, I’ll add it but for now, all I can do is warn you.

Responses to “3DS Max 9 SMD Exporter Update – 0.4Beta”


Hi JED!
Only one thing. Max 9 have too much bugs with Bones objects and more with Biped. WE know that on the next release MAX9 SP1 or 9.5 version toomuch bugs are fixed in all related to bones object and bipeds. The version will be ready 29 March to all subcriptors of autodesk.

Posted by Chouonrow
Tue, February 27th, 2007 @ 10:54