Jump to content

Dem bones, dem bones, dem jittery bones...


Go to solution Solved by DT.,

Recommended Posts

Sorry, couldn't help myself with the title... it's a well known song in the South (American by birth... Southern by the grace of God ;) )

Song link: http://en.wikipedia.org/wiki/Dem_Bones

Ok... so @@DT85 suspects that the dotXSI exporter is contributing to "dem jittery bones" -- so I want this thread to document this investigation. This is what I plan to look into starting this weekend.

Link to comment

There may be a couple things going on... but one thing I recently discovered is that the released dotXSI animations don't all have the same bone hierarchy-- especially out in the arms... and this could possibly be a factor since a bone inherits the transform of it's parent. Therefore, using @@DT85 's new Assimilate version... it's impprtant to make sure ROOT.xsi is always the first animation... Because carcass uses the first file to make the bone hierarchy. Also, I need to investigate nulls bound to a CS Biped versus a Max Bone rig. I intend to make some data plots of the animation data and overlay.

Link to comment

@@Xycaleth

 

It seems less likely that both the 3ds Max .XSI importer & carcass are doing something funky and not the 3ds Max .XSI exporter.

 

 

@@Archangel35757

 

The JKA GLA & the JO GLA have ROOT at the bottom.

Yes, but it's the first file at top of list that is used to build the hierarchy.

 

You could try the original dotXSI Exporter ;)

 

The dotXSI importer is broken as well-- since the resulting nodes retain their XSI coordinate system-- thus the scene you started with in 3dsMax and exported and then re-import has a 90° x-axis rotation on every node. I also don't want to rule out a few other things. So I plan to investigate a few things...

Link to comment

@@DT85 -- Would you be willing to send me your null/biped skeleton? Unanimated in the root pose?

And I would imagine that the half-precision GLA conversion would amplify the jittering you're seeing.

 

DT also states, as one would suspect, that the jittering is worse/most notable at the end of bone chains (hands/ fingers, perhaps facial bones, etc.).

 

@@DT85... so when you compile this animation-- are you using the original _humanoid.gla to compile against?  Or are you creating your own skeleton (new .GLA)?  And if you're making a new skeleton (.GLA file) then would you post the content of your model.car file so I can see which file Carcass is using to build the skeleton hierarchy.  Thanks! ;)

Link to comment

Yeah, having an issue with Softimage as far as dotXSI import/export is pretty much only depending on importing a file that came from another piece of software that doesn't do a good job of writing the format. I've never had a problem exporting and compiling anything. I have a run animation as well as a full set of animations for my AT-RT that have no problems. I've exported out multiple animations using my biped rig and haven't had a problem yet, everything worked in game just as smoothly as it did in Softimage.

 

I'd say it's definitely your exporter since DT imported the same animation into Softimage and got the jitter.

Link to comment

Yeah, having an issue with Softimage as far as dotXSI import/export is pretty much only depending on importing a file that came from another piece of software that doesn't do a good job of writing the format. I've never had a problem exporting and compiling anything. I have a run animation as well as a full set of animations for my AT-RT that have no problems. I've exported out multiple animations using my biped rig and haven't had a problem yet, everything worked in game just as smoothly as it did in Softimage.

 

I'd say it's definitely your exporter since DT imported the same animation into Softimage and got the jitter.

 

Yes, that is one of the possibilities... but it could also be other things.  For another example of bone jitter see here:  http://forums.cgsociety.org/showthread.php?t=1101737

...and this fellow didn't mention exporting to dotXSI-- or exporting at all for that matter. ;)

 

But here's a case of "Dem jittering bones" when exporting to dotXSI back in 2007http://forums.cgsociety.org/showthread.php?t=529802

But the problem I get is when I've used Character Studio to rig and animate the character and export to XSI, the nulls jitter around - on the arms mainly.

 

...so this fellow was using a CS Biped and the Crosswalk plugin... so if it's with the exporter then it's been in there all along-- and carried over to Crosswalk. :blink:

 

Also, there are some instances where using Position/Orientation Constraints and enforcing "Keep Original Offset" can cause problems... and I understand DT is using a Null skeleton constrained to a CS Biped. 

 

I've already stated that some of the released dotXSI files don't all have the same identical bone hierarchy.  Carcass.exe uses the first file in the animation list as the hierarchy template... so I'm not sure how that would affect things during the GLA process-- if it isn't using your root pose as the hierarchy template.  But DT mentioned he sees this jitter from the dotXSI imported into Mod Tool. 

 

Some precision/accuracy is lost by the very nature of converting from single-precision to half-precision... and there's nothing that can be done about that unless the programmers re-write the Ghoul2 format specification to be single-precision.

 

So... I have to systematically analyze all possibilities and follow the process of elimination-- it could be a combination of things and not just attributed to a single item. :winkthumb:

Link to comment

Let me elaborate more on my scene. I have the imported & cleaned up root.xsi nulls which I have the imported JO GLA nulls contrained to. I have used keep original offset for both position & rotation. I thought the constraints could be a cause, so I baked the animation to the root.xsi nulls and it still exports the same - jittery in places.

Link to comment

Let me elaborate more on my scene. I have the imported & cleaned up root.xsi nulls which I have the imported JO GLA nulls contrained to. I have used keep original offset for both position & rotation. I thought the constraints could be a cause, so I baked the animation to the root.xsi nulls and it still exports the same - jittery in places.

wait... I'm confused :wacko:

 

You're saying you have a cleaned-up set of JKA nulls from importing the JKA root.xsi file? ...you did this using Max8 and the borked dotXSI importer?  Or did you do this in Max 5 and the Raven importer (it's the only importer I would trust)?  ...And you've then imported and constrained the JO GLA nulls to these JKA nulls?  So you're not using a CS Biped anymore?  Further, you imported these JO GLA nulls from a .GLA file (that has lost accuracy due to being converted to half-precision)?  Have I understood you correctly?

 

Out of curiousity, why don't you try exporting using Crosswalk and bring this into Mod Tool via Crosswalk? ...and see if the jittering is still present.

 

Here's another interesting Google find:  http://forums.relicnews.com/showthread.php?272018-Importing-animation-issue

Yes, this happens sometimes unfortunately. banghead.gif DOW2 animations are compressed and in order to produce the ANIM file, I have to decompress and play them in memory to get the transforms for every bone in every frame. The problem here (to my understanding at least), is that decompressed transforms might be slightly "off" for character studio biped. Biped has already constraints in place, which cannot be turned off, so when you try to apply a transform which is not possible from biped's point off view, bones might rotate in some random direction. That's what I think happens in this case.

 

To fix this you can either:

  • use normal MAX bones instead of biped
Note here that script imports MAX bones without any constraints set, so unless you create some IK chains for spine, limbs and tails, you can only use FK animation which might be somewhat painfull...

  • fix animation by hand
Twitching should be quite noticable in curve editor, so fixing that would be a matter of moving some keys up and down. Reducing keys (either automatically or manually) to smooth out animation might also be of some help here.

 

So this is a similar case of going from half-precision back to single-precision and trying to apply this animation back onto a CS Biped. 

 

 

DT85, on 30 Jan 2014 - 7:24 PM, said:

@@Archangel35757

The JKA GLA & the JO GLA have ROOT at the bottom.

 

So the first file at the top of the anim_list is what is used as the hierarchy template:  FACE_TALK0 (if I recall correctly?)... but then they didn't have your fixed-up Assimilate code that now respects the order in which animations are added... and so I'm just saying that the new root.xsi file should be the first one added so that the bone hierarchy is based on it.

 

So, everything is on the table for investigating this jittery bone issue.

Link to comment

wait... I'm confused :wacko:

 

You're saying you have a cleaned-up set of JKA nulls from importing the JKA root.xsi file? ...you did this using Max8 and the borked dotXSI importer?  Or did you do this in Max 5 and the Raven importer (it's the only importer I would trust)?  ...And you've then imported and constrained the JO GLA nulls to these JKA nulls?  So you're not using a CS Biped anymore?  Further, you imported these JO GLA nulls from a .GLA file (that has lost accuracy due to being converted to half-precision)?  Have I understood you correctly?

 

Out of curiousity, why don't you try exporting using Crosswalk and bring this into Mod Tool via Crosswalk? ...and see if the jittering is still present.

 

Yeah I've always used the Max 6/7/8 .XSI importer, don't have Max 4/5 anymore. I believe that my issue is to do with the imported JO GLA nulls, and not with your exporter as I once thought so my bad on that one. :P

 

You should experiment with exporting complex animations and see if there's any jitter in that XSI viewer, to rule out your plugin.

Link to comment

I still suspect that the cause is XSI itself, possibly in crosswalk but I'm not sure where the fault would lie. As you'll note though, there is some jittering on base JKA that is completely absent from JK2 and the format hasn't changed at all between those two games, so I'm not sure.

Link to comment

I still suspect that the cause is XSI itself, possibly in crosswalk but I'm not sure where the fault would lie. As you'll note though, there is some jittering on base JKA that is completely absent from JK2 and the format hasn't changed at all between those two games, so I'm not sure.

 

Raven didn't use Crosswalk-- it didn't exist at the time. They exported from Softimage|XSI or perhaps 3ds Max 5 and using the Raven Max5 dotXSI exporter-- which I have and will also test out.

 

Look at the bone hierarchy of JO Kyle and JA jedi_hm -- and you'll notice that the hierarchy is different... maybe this is a factor?

 

@@DT85 -- I intend to analyze everything I can :). I have a cleaned JO/JA Null skeleton I can send you if you like...

Link to comment

Tried putting JO Kyle's root.xsi and it made carcass crash. I then tried putting a copy of JKA anim source's root.xsi which compiled, but had a very different hierarchy to the base JKA models rendering them un-useable. Also, tinkering with the hierarchy in model.car and getting it to match JO's changed nothing in modview in terms of jitter.

Link to comment

Huh?  Can you clarify... So now the jittering is gone?  Was this using:  3dsMax -> Crosswalk -> ModTool ???  Did you change your skeleton?  With your old workflow is the jittering still present in MODView?

 

"Throw me a bone..."

https://www.youtube.com/watch?v=qZRAIJ6adWw 

 

...thought this was funny-- since we're talking about bones.  Hope everyone finds it funny as well. :P

Link to comment

Jittering was never present in 3ds Max, and it's not present in Mod Tool (using crosswalk). Jittering is in modview or when I import the .XSI animation into Mod Tool/3ds Max which was exported using your .XSI exporter. Doesn't matter if I bake the JO animation onto the 'game nulls' or just leave it constrained, I get the same result inside modview. I always get jittering in some form with any animation I make. I think it's either the XSI format or ultimately the Ghoul2 format compressing the shit out of everything.

 

Does your exporter write out position keys when there aren't any keyed in Max? I'm grasping at straws here to find out what's going on.

Link to comment

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...