This wiki is a copy of the original Oblivion CS wiki created and maintained by the UESP.net. See CSwiki:Copy Notice for more info.

Difference between revisions of "Blender/Creature Meshes 101"

Jump to navigation Jump to search
21 bytes removed ,  14:05, 19 August 2006
m
no edit summary
imported>Fragment
imported>Fragment
m
Line 73: Line 73:


== Finding and preparing an existing creature to mod ==
== Finding and preparing an existing creature to mod ==
{| width="30%" align="right" style="background:#aaffaa;"
|'''HINTS'''
Do not choose a model with shape-key-animations. You can recognize these in NIFskope when an animation plays when you hit the play button. They also have a special node called NiGeomMorpherTransformer. Stay the hell away from creatures with these.
|}


One of the limitations of the process described here is that we (read: I) cannot yet edit the animations of the creatures we make. The only thing we can do is to replace the "skin" of existing creatures to be our own. We have to live with the existing animations, although we will be able to "blend out" certain parts of them.
One of the limitations of the process described here is that we (read: I) cannot yet edit the animations of the creatures we make. The only thing we can do is to replace the "skin" of existing creatures to be our own. We have to live with the existing animations, although we will be able to "blend out" certain parts of them.


''We thus have to find a model which already somewhat fits our idea of the new creature, especially which already moves in the right way. Let's have a look.''
''We thus have to find a model which already somewhat fits our idea of the new creature, especially which already moves in the right way. Let's have a look.''
</div>
<div style="float:right; background:#aaffaa; width:200px">
'''HINT'''
Do not choose a model with shape-key-animations. You can recognize these in NIFskope when an animation plays when you hit the play button. They also have a special node called NiGeomMorpherTransformer. Stay the hell away from creatures with these.
</div>


* Open the unpacked BSA folder we created earlier. From there go to meshes, then creatures. Open the sheep folder.  
* Open the unpacked BSA folder we created earlier. From there go to meshes, then creatures. Open the sheep folder.  
Line 122: Line 121:
* in the window with the skeleton.nif, right click "0 NiNode Scene Root", select Block>Paste Branch
* in the window with the skeleton.nif, right click "0 NiNode Scene Root", select Block>Paste Branch
* in front of the node is a number, remember that
* in front of the node is a number, remember that
{| width="30%" align="right" style="background:#aaffaa;"
|'''HINTS'''
A collection of things, an "array" in NIFskope is made of a number of the items listed, and a list of the items ID themselves. Above the "Children" property there's a property named "NumChildren". Since we have only one NiTriShape, we don't need to change that. Had we two or three of them, we'd have increased that number accordingly, and right clicked on the children node and said Array>Update there. Other arrays work alike thoughout NIFskope.
|}


The next step is to ''make the mesh a children of the "0 NiNode SceneRoot" node''. We have the mesh outside the Scene Root tree and now want to put it inside. To achieve that:
The next step is to ''make the mesh a children of the "0 NiNode SceneRoot" node''. We have the mesh outside the Scene Root tree and now want to put it inside. To achieve that:
Line 136: Line 141:
Explanation: In the Block List window, there are numbers printed next to the node types. The "0" in "0 NiNode Scene Root" stands for the number of the node. The meshes we just copied in have numbers standing next to them, too. Watch how the Block Lists changes when we do the next step.
Explanation: In the Block List window, there are numbers printed next to the node types. The "0" in "0 NiNode Scene Root" stands for the number of the node. The meshes we just copied in have numbers standing next to them, too. Watch how the Block Lists changes when we do the next step.


<div style="float:right; background:#aaffaa; width:200px">
'''HINT'''
A collection of things, an "array" in NIFskope is made of a number of the items listed, and a list of the items ID themselves. Above the "Children" property there's a property named "NumChildren". Since we have only one NiTriShape, we don't need to change that. Had we two or three of them, we'd have increased that number accordingly, and right clicked on the children node and said Array>Update there. Other arrays work alike thoughout NIFskope.
</div>


Finally:
Finally:
Line 156: Line 156:


== Blender work ==
== Blender work ==
{| width="30%" align="right" style="background:#ffccaa;"
| '''DEBUGGING'''
Your surface normals must point in the right direction, or weirdness will ensue. If you have darker surfaces in the shaded view in Blender, they're not "normal". If you have a closed model, that's pretty simple to fix: SPACE, Edit>Normals>Recalculate outside. I do that quite often on the slightest suspicion that something is wrong. Blender will get it wrong once in a while when you start to place vertices by hand and fill the polygons in by hand. But, that's easy to fix.
Make sure you don't have double vertices (SPACE, Edit>Vertices>Remove Doubles). Also make sure you didn't accidentially put lines through or vertices inside into in your model. If normalization does not appear to do what it should, that's usually the problem: Your model is not continuous. You have doubled vertices or open-ended surfaces.
|}


So, what do we want here? As you've been told above, you needed to learn to move around in Blender. We're going to use that new skill of yours to attach the skin to the bones. A second goal is to "paint" the dog with a texture.
So, what do we want here? As you've been told above, you needed to learn to move around in Blender. We're going to use that new skill of yours to attach the skin to the bones. A second goal is to "paint" the dog with a texture.
Line 168: Line 176:


Another possible requirement is - that is based on my bad experience only, I might be totally wrong - that the model needs to be a continuous flow of polygons. Don't have holes in it, don't have open edges. Every edge of the model needs to connect to another one.
Another possible requirement is - that is based on my bad experience only, I might be totally wrong - that the model needs to be a continuous flow of polygons. Don't have holes in it, don't have open edges. Every edge of the model needs to connect to another one.
<div style="float:right; background:#ffccaa; width:200px">
'''DEBUGGING'''
Your surface normals must point in the right direction, or weirdness will ensue. If you have darker surfaces in the shaded view in Blender, they're not "normal". If you have a closed model, that's pretty simple to fix: SPACE, Edit>Normals>Recalculate outside. I do that quite often on the slightest suspicion that something is wrong. Blender will get it wrong once in a while when you start to place vertices by hand and fill the polygons in by hand. But, that's easy to fix.
Make sure you don't have double vertices (SPACE, Edit>Vertices>Remove Doubles). Also make sure you didn't accidentially put lines through or vertices inside into in your model. If normalization does not appear to do what it should, that's usually the problem: Your model is not continuous. You have doubled vertices or open-ended surfaces.
</div>


=== Skinning the model ===
=== Skinning the model ===
Line 221: Line 221:
* TAB back into weight paint mode
* TAB back into weight paint mode
* right-click once
* right-click once
{| width="30%" align="right" style="background:#ffccaa;"
| '''DEBUGGING'''
If NIFskope shows parts of the model stretched to the Scene Root (generally on the "floor" in the center), or Oblivion or the CS shows the exploding polys effect (you'll understand), you forgot to rig a vertex. Each vertex must be rigged to at least one, and to a maximum number of 4 bones.
If the scale and/or position of the model is all wrong in NIFskope and later in the CS the animation, you need to apply scale and position in Blender before exporting to .nif. Hit Ctrl-A.
|}


You've now selected the bone you want to paint weights for.
You've now selected the bone you want to paint weights for.
Line 244: Line 252:


You cannot yet put the model into the CS, as we miss a UV map.
You cannot yet put the model into the CS, as we miss a UV map.
<div style="float:right; background:#ffccaa; width:200px">
'''DEBUGGING'''
If NIFskope shows parts of the model stretched to the Scene Root (generally on the "floor" in the center), or Oblivion or the CS shows the exploding polys effect (you'll understand), you forgot to rig a vertex. Each vertex must be rigged to at least one, and to a maximum number of 4 bones.
If the scale and/or position of the model is all wrong in NIFskope and later in the CS the animation, you need to apply scale and position in Blender before exporting to .nif. Hit Ctrl-A.
</div>


=== UV mapping the model ===
=== UV mapping the model ===
Line 284: Line 283:
* do a regular save
* do a regular save
* quit Blender
* quit Blender
{| width="30%" align="right" style="background:#ffccaa;"
| '''DEBUGGING'''
Not UV mapping the model will result in emptiness in the CS and Oblivion. The model will just not show.
|}


Done!
Done!
Line 291: Line 296:


XXX ...
XXX ...
<div style="float:right; background:#ffccaa; width:200px">
'''DEBUGGING'''
Not UV mapping the model will result in emptiness in the CS and Oblivion. The model will just not show.
</div>


Now let's move back to NIFskope.
Now let's move back to NIFskope.
Line 304: Line 303:


Now we have a .nif containing a skeleton, and a mesh. ''We're now going to mod the origninal sheep.nif to use our new mesh.'' Sounds like we're nearly there, doesn't it? And, want to know something? We don't need the skeleton, as we didn't need the sheep mesh in Blender before. But now, we don't simply delete it, we're just not going to copy it.
Now we have a .nif containing a skeleton, and a mesh. ''We're now going to mod the origninal sheep.nif to use our new mesh.'' Sounds like we're nearly there, doesn't it? And, want to know something? We don't need the skeleton, as we didn't need the sheep mesh in Blender before. But now, we don't simply delete it, we're just not going to copy it.
{| width="30%" align="right" style="background:#ffccaa;"
| '''DEBUGGING'''
If, on pasting the new mesh into the old file, you get an error message ''failed to map parent link "NiNode|oursheep"'' not all of the vertices are weighted. Go back to weight painting.
|}


* open the sheep.nif in oblivion\data\meshes\creatures\oursheep folder, where we made ourselves a home some time before
* open the sheep.nif in oblivion\data\meshes\creatures\oursheep folder, where we made ourselves a home some time before
Line 315: Line 320:


...
...
<div style="float:right; background:#ffccaa; width:200px">
'''DEBUGGING'''
If, on pasting the new mesh into the old file, you get an error message ''failed to map parent link "NiNode|oursheep"'' not all of the vertices are weighted. Go back to weight painting.
</div>




Line 331: Line 330:


When you have fisnished the texture, ''it has to be in the right format and in the right place.'' There are may good guides on that on the CS wiki, but here's a quickie using The Gimp. The Photoshop way may be easier - if you have Photoshop.
When you have fisnished the texture, ''it has to be in the right format and in the right place.'' There are may good guides on that on the CS wiki, but here's a quickie using The Gimp. The Photoshop way may be easier - if you have Photoshop.
{| width="30%" align="right" style="background:#ffccaa;"
| '''DEBUGGING'''
If you later have pink models, the CS or Oblivion couldn't find the textures. Check the entries in the NiTextureProperty you set. If everything is correct, you may have the usual trouble which BSApatcher solves.
|}


Tools required: gimp (free) and the gimp DDS plugins (also free)
Tools required: gimp (free) and the gimp DDS plugins (also free)
Line 342: Line 347:
* in the Block List, open Scene Root>NiTriShape>NiTexturingProperty
* in the Block List, open Scene Root>NiTriShape>NiTexturingProperty
* set the value of the NiSourceTexture in there to textures\creatures\goat\goat.dds
* set the value of the NiSourceTexture in there to textures\creatures\goat\goat.dds
<div style="float:right; background:#ffccaa; width:200px">
'''DEBUGGING'''
If you later have pink models, the cS or Oblivion couldn't find the textures. Check the entries in the NiTextureProperty you set. If everything is correct, you may have the usual trouble which BSApatcher solves.
</div>
Anonymous user

Navigation menu