Jump to content

Tutorial: 3ds Max Skinned Meshes Into Game


Vannus

Recommended Posts

Hmm.. I've ran into an interesting bug.

 

Crazy skin deformation on any weight between min and max. If the NPC is either full weight or no weight the mesh works fine. Also, if I only update either the the 1 mesh or the 0 mesh it works fine on all weights. I definitely havent changed vertex numbers.

 

I'm guessing it's done with some kind of morph targets? I'm pretty confused as to whats causing it.

basically morph targets, so it's vertex order. if you reorder them between the 2 morphs it'll obviously splat. both _0 and _1 need to be the same mesh basically, specifcially the vertex order.

 

 

I'm fairly sure the vertex order was preserved- all I did was go into edit mesh (pressed Hold/Yes at the warning.) and moved some verts around with the move tool. I didn't actually do any cuts etc and no new geometry was added.

 

Judging by the way the deformation happened you must be correct about the vertex numbers being splatted, i'm just not too sure when it happened :P

 

Edit: I'm gonna try manually resizing the _0 so that it's the same shape as _1 and then exporting each version from the same file. Hopefully that should do the trick.

Edited by TwiggySkyrim
Link to comment
Share on other sites

  • Replies 459
  • Created
  • Last Reply

Top Posters In This Topic

Hmm.. I've ran into an interesting bug.

 

Crazy skin deformation on any weight between min and max. If the NPC is either full weight or no weight the mesh works fine. Also, if I only update either the the 1 mesh or the 0 mesh it works fine on all weights. I definitely havent changed vertex numbers.

 

I'm guessing it's done with some kind of morph targets? I'm pretty confused as to whats causing it.

basically morph targets, so it's vertex order. if you reorder them between the 2 morphs it'll obviously splat. both _0 and _1 need to be the same mesh basically, specifcially the vertex order.

 

How do we make _0 and _1 meshes then? Basically the same mesh? Apply scaling?

 

Also for 1stperson meshes, is it ok to again use the same ones, but with rename? Oblivion didn't have them, but I remembered also being confused by 1stperson meshes in Morrowind.

Edited by jimhsu
Link to comment
Share on other sites

 

I'm fairly sure the vertex order was preserved- all I did was go into edit mesh (pressed Hold/Yes at the warning.) and moved some verts around with the move tool. I didn't actually do any cuts etc and no new geometry was added.

 

Judging by the way the deformation happened you must be correct about the vertex numbers being splatted, i'm just not too sure when it happened :P

 

Edit: I'm gonna try manually resizing the _0 so that it's the same shape as _1 and then exporting each version from the same file. Hopefully that should do the trick.

 

Could very well be that the importer already altered the vertex numbers before you could even get your hands on the mesh. It had to crunch some numbers on all verts so it could throw them into an editable mesh modifier after all.

Link to comment
Share on other sites

Since we're on the topic of vertexes anyway, I've been investigating further into the issue I found with the NiAlphaProperty. I went so far as to just grab the werewolf (pretty sure you can just use any kind of fuzzy creature that has fur-patches), import it in 3dsmax and immediately spit it back out through the exporter. So no changes made, then I just fixed up the BSLightingShaderProperty in Nifscope as usual.

 

Same problem as previously mentioned - game will instantly crash, but this way it's much faster to reproduce it for further testing.

If one deletes the NiAlphaProperty from the two meshes that have it - WereWolfLow01:0 and WereWolfLowHead01 and updates the nif, the game won't crash anymore, just that then you'll see that the two mesh-parts are invisible as illustrated here:

 

http://img13.imageshack.us/img13/2817/werewolfcrap.jpg

 

This is bothering me. The meshes that are visible never had that property, so why don't the ones that got theirs deleted behave in the same way?

Is there any known relation between NiAlphaProperty and other information that might be baked into the meshes?

 

Because on the surface this looks like it could be related to the whole morph-target vertex order issue. Not directly, but affected by the same cause. Could it be that (hypothetically speaking!) NiAlphaProperty looks at some sort of array (Vertex Colors or something like that?) or just some other list of vertexes that are then scrambled upon importing or exporting out of 3dsmax/Nifscope and thus breaks the game?

Link to comment
Share on other sites

 

I'm fairly sure the vertex order was preserved- all I did was go into edit mesh (pressed Hold/Yes at the warning.) and moved some verts around with the move tool. I didn't actually do any cuts etc and no new geometry was added.

 

Judging by the way the deformation happened you must be correct about the vertex numbers being splatted, i'm just not too sure when it happened :P

 

Edit: I'm gonna try manually resizing the _0 so that it's the same shape as _1 and then exporting each version from the same file. Hopefully that should do the trick.

 

Could very well be that the importer already altered the vertex numbers before you could even get your hands on the mesh. It had to crunch some numbers on all verts so it could throw them into an editable mesh modifier after all.

This is regular behaviour. nif import especially.

Edited by Ghogiel
Link to comment
Share on other sites

Nothing in the ShapeData, but there might be some expectation from the BSLightingShaderProperty.

Mind posting your .nif? I'm curious. My character isn't a werewolf, do you know any console commands to become one?

 

You can easily just add the werewolf-transformation spell to your spellbook.:

player.addspell 00092c48

Equip it and then trigger it with the shout-key.

 

You can also just spawn a (hostile) werewolf close to you (make sure you're in godmode so he doesn't kill you):

player.placeatme 000A1972

 

As for my .nif, there is nothing special about it. But yes of course, here you go:

 

http://dl.dropbox.co...rewolf_nifs.zip

 

Place the .nif of your choice in skyrim\Data\meshes\actors\werewolfbeast\character assets\ to check it out in game.

 

Let me know if I can do something else.

Edited by Derrax
Link to comment
Share on other sites

I've found a way of getting a mesh to morph from skinny to heavy in-game now. Theres probably better ways but this does the trick:

 

 

>Load your skinny mesh and heavy mesh in a single max file.

 

>Delete all of the modifiers on the skinny mesh and drag it to one side so you can see the heavy

 

>On the heavy mesh, add a 'Morpher' modifier. For each part of the mesh make it morph to the skinny version. *This will only work if the meshes have the same number of verts and the same vertex numbers*

 

>Export a version of the mesh with all of the morph sliders on 0 (so it's still heavy). Save this as _1

 

>Export a version of the mesh with all of the morph sliders on 1 (so it goes skinny). Save this as _0

 

>Now follow all of the usual steps- pasting the shaders etc.

 

>Delete the Morph block on the .nif files for each NiTrishape. If you don't do this the game will CTD.

 

Efectively this is just a long winded way of ensuring that vertex numbers are exported the same.

 

How to check in-game:

 

Find an NPC wearing the armor.

 

Open console. Right Click on them: Snpcw 0 - 100. sets their weight between 0 -100

 

Using this command on player usually makes the armor invisible.

 

Things i've seen happen:

 

-At 0 and 100 weight it works fine. At 1 to 99 the mesh is all over the place

-At 0 - 99 it is skinny. At 100 is is heavy, No morphing and no deformation.

 

These are signs that the vert numbers are wrong.

 

 

Edited by TwiggySkyrim
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...