Jump to content

How to connect separate body parts to a skeleton?


Jetaman

Recommended Posts

Hi. I'm working with Oblivion creatures models and when I import nif files some creatures have their heads seperated from the skeleton. Body, legs and hands are placed automatically in the right place but heads are placed in the wrong position. I would appreciate if anybody could help with this. Thanks.

Link to comment
Share on other sites

Mind the Translation property of the head NIF's NiTriShape/Strips node.

 

Heads usually underly morph modifiers, not only for their shapes but also for facial animations. Creatures can blink, open their mouths, make grimaces, etc. as well, so the same is true for them.

Those morphs are stored inside EGM (shape) or TRI (facial animation) files as offsets from the regular position for each vertex in the NIF. For this purpose the head's vertices are usually centered around the origin (usually the "head" bone node located at 0,0,0) inside their NIF.

In order to get the heads into their proper places relative to the creature's origin instead, usually the Translation properties are used, but the translations entered are never "applied" (so the vertices stay where they are inside the NIF, but ingame the mesh is moved).

 

The first I learned this from was with the actor/NPC heads of the races, many helmets I encountered were working similarly as well, but I have no doubt certain creatures will have it the same way just as much for the exact same reason.

 

Oh, and you can actually consider yourself lucky when the mesh you import is only "translated" towards the 0,0,0. I've seen helmets and similar also "rotated" into completely bogus axis orientations, but again, a proper Rotation property for the NiTriShape/Strips node easily turned them back into the right orientation again once inside the game.

Link to comment
Share on other sites

Mind the Translation property of the head NIF's NiTriShape/Strips node.

 

Heads usually underly morph modifiers, not only for their shapes but also for facial animations. Creatures can blink, open their mouths, make grimaces, etc. as well, so the same is true for them.

Those morphs are stored inside EGM (shape) or TRI (facial animation) files as offsets from the regular position for each vertex in the NIF. For this purpose the head's vertices are usually centered around the origin (usually the "head" bone node located at 0,0,0) inside their NIF.

In order to get the heads into their proper places relative to the creature's origin instead, usually the Translation properties are used, but the translations entered are never "applied" (so the vertices stay where they are inside the NIF, but ingame the mesh is moved).

 

The first I learned this from was with the actor/NPC heads of the races, many helmets I encountered were working similarly as well, but I have no doubt certain creatures will have it the same way just as much for the exact same reason.

 

Oh, and you can actually consider yourself lucky when the mesh you import is only "translated" towards the 0,0,0. I've seen helmets and similar also "rotated" into completely bogus axis orientations, but again, a proper Rotation property for the NiTriShape/Strips node easily turned them back into the right orientation again once inside the game.

 

Hey Thanks for yur reply. Since I'm new at all this, I didn't understand quite a lot. First, to make it clearer, I will say that I work with 3ds max nif plugin and it doesn't have those properties when I import a model. Second, I'm working with Oblivion models, bu I'm not making a mod for Oblivion. I just need to join the body parts in the 3ds max to render the model and animation as sprites.

here's the example of what i do.

http://s19.postimg.org/67bly461f/image.gif

I would really appreciate if you could explain in more detail what I should do. Thanks

Link to comment
Share on other sites

I'm not sure whether the "unapplied" translation and/or rotation properties make it into 3DS Max or not during import, but in Blender the Objects (not the vertices) also can have an unapplied transformation, so chances are good 3DS Max does also.

 

If they do get imported, the only thing you should need to do would be to use the action corresponding to Blender's "Apply scale and rotation to Ob data", if there is one, which I do believe.

 

Or instead you could check the NIF and "prepare" it prior to import with the handy NifTools application called "NifSkope". That's what I was talking of when I mentioned the unapplied translation and/or rotation properties of the NiTriShape/Strips node.

 

And if all else fails, you could also use the "head" (or whatever it's called) bone node inside the head's NIF to "re-align" it fittingly to the rest of the armature skeleton. The head's vertices should be positioned exactly the same around the "head" node relatively, whether it's standing alone or at its place inside the skeleton. So rotating the mesh around the bone node (if necessary) and moving it so said node takes its place inside the skeleton armature ("head" node and "head" node align) should, not only in theory, put the head into its proper place as well.

 

Or, another option, just read up the unapplied translation in NifSkope and simply move it about the according number of units inside 3DS Max. I did that for the heads of the humanoid bodies several times in the past I recall. It wasn't perfectly aligning, due to me not calculating the perfect value but approximating it instead, but I needed the head only for reference, so it was good enough for me.

 

I hope it helps (any of these). :sweat:

 

edit: Scratch the first. Having an unapplied translation would mean the head already is at its proper place after import, which, as we all know, is not the case. My bad.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...