Jump to content

Fixing the dotXSI 3.0 Exporter for 3ds Max...


Recommended Posts

Posted

Just a close button on the export dialog (without creating a file) and a close button for the progress bar incase for some reason it wants to hang.

Posted

Just a close button on the export dialog (without creating a file) and a close button for the progress bar incase for some reason it wants to hang.

Good catch-- I can fix the cancel so it doesn't leave the empty file... I also now know how to fix the progress bar so that it closes properly at end-- and never hangs; there's no need to have a close button... which would create other issues if someone closed it with the system close [X] while an export was in progress.

Posted

Well right now, I'm fighting these issues:

 

- filename & extension aren't written, instead get a file called "C"

- only the first letter of any object in the scene gets written

- plugin crashes max when exporting geometry data

- no material names are written, which doesn't exactly matter for JKA

 

Apart from these things, the rest looks to be in working order.

Posted

Max 9 x64: Batch export multiple scene files to .XSI = successful export and no dialog boxes remain

Max 9 x64: Exporting 1000 or 10 000 frames of animation in 1 file = successful export and no dialog boxes remain

 

Max 2010 x64: Batch export multiple scene files to .XSI = successful export and no dialog boxes remain

Max 2010 x64: Exporting 1000 frames in one file = successful export and no dialog boxes remain




 

Archangel35757 and Tempust85 like this
Posted

You should add a way to choose which xsi format to export as, would be pretty cool. :D

 

EDIT:

 

Dialog disappears fine, but then max crashes. Still get a proper file though.

 

Also, a small little thing on the date & time:

SI_FileInfo  {
 "3ds Max Scene",
 "Jon",
 "Fri Jan 10 14:15:21 2014
",
 "3ds Max 2011",
}
Posted

 

You should add a way to choose which xsi format to export as, would be pretty cool. :D

 

I've thought about that... it's a one or two line code change, but I think it's one of those times that just because we can-- doesn't mean we should.  I've come to think it's kind of nice to have everyone on the same standard generating dotXSI 3.0 files.

 

Also, Carcass can only process v3.0 or v3.5 files... right?  And there isn't really any difference between what it stored in those different file types when it comes to JKA.

 

 

 

EDIT:

 

Dialog disappears fine, but then max crashes. Still get a proper file though.

 

Also, a small little thing on the date & time:

SI_FileInfo  {

 "3ds Max Scene",

 "Jon",

 "Fri Jan 10 14:15:21 2014

",

 "3ds Max 2011",

}

 

Regarding SI_FileInfo, I see that in text editors... but XSIDump displays it properly:

 

 

-------------------------------------------------

Template name : SI_FileInfo

Instance name :  

 

(PCHAR) projectName: 3ds Max Scene

(PCHAR) userName: Administrator

(PCHAR) savedDateTime: Thu Jan 09 22:16:05 2014

 

(PCHAR) originator: 3ds Max 8

-------------------------------------------------

 

Also, XSIDump allows for better interaction with the file using filters, etc. than standard text editors.  It's not anything I've done in the code... I just use the Windows method to retrieve the current date & time in "local time" format and store that data into a String parameter.  It seems it is doing  "new line" return or something...  I'm not sure what I can do to fix it... but I'm looking into it to test my theory it's a '\r' or '\n' character at the end of the string.

 

Regarding your crashes... I've tested the same beta R2 plugin in my 3ds Max 2011 and it does not crash Max and also has no errors.  Are you still using the Crosswalk v2.6 DLL ?  Maybe having multiple versions of Crosswalk DLLs is causing your crash?    @@Psyk0Sith didn't mention any crashes... :unsure: 

Posted

@@DT85  -- Ok... looking into the Windows "time.h" functions... I discovered the following:

 

 

The string result produced by asctime contains exactly 26 characters and has the form:  Wed Jan 02 02:03:55 1980\n\0

 

As I expected... you can see the new line feed '\n' character... so I can fix this shortly.

Posted

@@DT85 -- Ok... I got the SI_FileInfo fixed now by removing the '\n' new line feed character. :winkthumb:

 

 

SI_FileInfo  {
    "3ds Max Scene",
    "Administrator",
    "Fri Jan 10 00:26:31 2014",
    "3ds Max 8",
}

 

I'll get this change into all the other plugins while I incorporate the progress bar changes...

Posted

Still have no idea why I'm crashing when exporting animation. Works fine on 32bit 2011, just not 64bit. :/

 

Also you really should upload your code to github.

Posted

I didn't mean that the 64bit plugin works in 32bit, just that exporting animations using the 32bit plugin works and the 64bit plugin does not. :P

Posted

Well not sure how I can help since the way that Softimage does it is a bit different, I've never seen branch selection options in 3ds max but it's been a long time since I've used it.

 

In Softimage when you export a dotXSI file for JA you want to branch select model_root, now if you notice old 3ds max tutorials show that being named as B:model_root, the "B:" standing for "branch select" in SI code. The main benefit to having an export selected function is only exporting what you want and not other parts of the scene, like say if you watch my character animation tutorial video for instance. Both the rig and the JA skeleton with mesh are under the same node but since I only branch select model_root everything else is ignored. For this sort of thing you might also want a plot animations feature, it's nice not having to keyframe all the bones before export.

Posted

One other issue I discovered while working on fixing the "Export Selected" feature... is that if you have Hidden Objects and do a Full Export-- those hidden objects are exported anyway.  Would it be preferred that all hidden objects NEVER get exported???

 

Please let me know... :wacko:

Posted

Well are the hidden objects part of the hierarchy under model_root?

 

In Softimage it would export anything under model_root regardless which is why say for animation rigs nothing is stored under model root, it's all done with constraints.

Posted

Well not sure how I can help since the way that Softimage does it is a bit different, I've never seen branch selection options in 3ds max but it's been a long time since I've used it.

 

In Softimage when you export a dotXSI file for JA you want to branch select model_root, now if you notice old 3ds max tutorials show that being named as B:model_root, the "B:" standing for "branch select" in SI code. The main benefit to having an export selected function is only exporting what you want and not other parts of the scene, like say if you watch my character animation tutorial video for instance. Both the rig and the JA skeleton with mesh are under the same node but since I only branch select model_root everything else is ignored. For this sort of thing you might also want a plot animations feature, it's nice not having to keyframe all the bones before export.

 

Currently the exporter always does a "Plot Animation" on all nodes getting exported-- doesn't just export out keys for fancy controllers... it samples the animation frame-by-frame and creates a key on every frame for each object being exported-- whether it is directly animated or controlled by other fancy controllers/constraints.

Posted

Well are the hidden objects part of the hierarchy under model_root?

 

In Softimage it would export anything under model_root regardless which is why say for animation rigs nothing is stored under model root, it's all done with constraints.

Yeah, I guess that's the safe approach... I was thinking of hidden mesh objects only... but if they hide the controls and controls are embedded in the bone hierarchy then it'd jumble up the bones to omit hidden controls in the hiearchy.  I could make it so that only hidden mesh objects don't get exported when doing a full export... in case you have "junk" mesh objects in the scene.  But then they should probably clean those out, no?

Posted

It's not smart to have control objects in bone hierarchy, you mess things up that way since hierarchy trumps any constrained control. Best to keep bone hierarchy completely untouched, all control objects should only control bones using constraints completely outside of the model_root hierarchy.

Archangel35757 likes this
Posted

Ok... with my new "Export Selected" code... you must NOT have any control objects embedded directly into your the Bone Hierarchy... still waiting on @@AshuraDX (or anyone) to explain the naming method  that will cause Carcass to skip an object during Ghoul2 conversion.  Furthermore, you cannot export-Select a partial bone chain... e.g., if your foot bones are linked to your calf bones then you cannot export-Select just your foot bones-- it will mess up the animation...   When doing a partial bone skeleton export, you must include all the bones in a chain, back to the beginning chain root bone... so if you construct your hiearchy properly this means you could export just the spine, or either arm, or either leg, etc. as long as you export that entire bone chain.

 

So with these changes... I think I'll call "Export Selected" fixed. :winkthumb:

Posted

I always slightly modify the zip title in order to avoid potentially overwriting duplicate files in Dropbox (It does not warn you before overwriting) to ensure users could always have a link to older versions of a file. I've renamed them back for you.

Posted

Ok... just to let everyone know.  A number of 3ds Max bone skeletons floating around out there... have had bones that were accidently moved.  As a result, if you try and compile a new root.xsi to combine with existing Raven dotXSI animations, Carcass will complain and report the offending bones that have bad BASEPOSE transforms.  This is why @@DT85 was saying that he had to use the compile switch: 

 

-ignorebaseposedeviations

 

...in order to get his new root.xsi to compile.  I have been in the process for a quite awhile, of building a complete, complex (yet user friendly) character rig for the Jedi Outcast/Jedi Academy skeletons.  I used my validated skeleton to compile a new root.xsi, using the new dotXSI 3.0 Exporter.  On my first Carcass compile attempt, Carcass reported that only the "leye" and "reye" bones had bad BASEPOSE transforms... so I fixed this (...but in Max9) and recompiled and everything worked perfectly!  No need for any  -ignorebaseposedeviations switch.   :winkthumb:

 

Problem is :o ... I want this skeleton available to others back to version Max6... so yesterday and today, I have been re-validating my bone skeleton in the 3ds Max 6 trial software.  Later tonight I will do the Carcass compiling to verify the skeleton is validated as good.  When I'm finished, I plan to upload this validated 3ds Max bone skeleton to the Utilities section so 3ds Max users can use this one for skinning their character meshes.

 

Stay tuned... :)

Posted

Ok... so I have the Max6 bone skeleton sorted out and compiling a new root.xsi along with some original Raven dotXSI animations. Next week I'll upload it to the utilities section. For now you can skin/weight your mesh just fine to the exiting bone skeletons... since it doesn't require making a new root.xsi file.

 

I know @@DT85 is adding some new bones so I want to chat with him first.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...