Search the Community
Showing results for tags 'Blender'.
For a long time I was forced to look at the inventory models of skyrim and the many armor mods that have come out since then, but most armor mods dont come with their own GND models, but rather copies of those found in vanilla skyrim. So for the longest of times most of us had to accept the laziness of modders and bethesda, but not any more (for the most part). This tutorial will cover the conversion of a "skinned" model, or a model that is rigged to a skeleton, into a GND/GO nif. (Collision mesh is in another tutorial) Q: What is a GND/GO nif and what does it do? A: The GrouND/ Ground Object is the model that the player sees when viewing an item in their inventory or when dropped onto the ground such as food, clutter, potions, weapons etc, etc. TOOLS NEEDED: The latest Blender, or Blender 2.77a as that is what i'm using right now for this tutorial, you heard me right, we wont be using 2.49b anymore! LINK Nifskope 2.0, or 1.2.0 Alpha 2 LINK Nif importer/exporter dev plugin v4, download here just in case you cant find the latest version on the nifskope forums LINK Nif importer/exporter dev plugin v5, 20 June 2016 LINK Possibly GIMP 2.0 in case you want to manually edit textures LINK A BSA extractor tool, go search online for one, there are many, I will be using B.A.E. LINK Preparation: If you haven't already done so, extract your archives since this tutorial is going to be using the bethesda GND nifs as a form template, but more importantly their collision shapes are what we are needing since this tutorial utilizes. Disclaimer! This tutorial is meant to teach you how to convert a RIGGED MESH into a GND nif, or even tweak a GND nif as there really isnt a reason to convert other objects into GND nifs, and as it stands the nif plugin for blender is not entirely functional and is still in development, which means that the collision export is bugged, so you may have to play around with your export/import options and even your file afterwards in nifskope, collisions are to be covered in a later tutorial. Make back-up copies just in case your custom GNDs cause your game to crash, and make sure you have done everything with your knowledge to troubleshoot issues that could be caused by you and not the plugin/blender. This plugin can actually be used to make/edit armor and export just fine for the most part, but you may run into the vertex->weight issue, and I may release another tutorial covering that as well. I also assume that you know how to operate blender, as this tutorial teaches you how to convert a nif and not use blender itself. If you dont know much about operating blender or what i am doing in blender, please go watch some tutorials on creating things in blender on youtube as they are a great way for a person to learn and get used to the layout since 2.49b is vastly different from 2.77a. STEP 1) Download and install blender 2.77a, nifskope, and then install the dev plugin by File>User Preferences>Add-Ons>Install From File. STEP 2) Import your nif file(s) into blender, if you are going to use my method of converting a mesh and then replacing a bethesda nif that already comes with a working collision layer, I suggest you choose something from your extracted archive that would fit the mesh you are currently converting. Sidenote: Unless you have a custom default scene that is empty, make sure you have first cleared your scene by pressing A twice and then press the delete button when your cursor is in the 3d render window, and hit enter or click on the option that asks for you to delete. STEP 3) Link your textures in the material section, and that means all of them that blender asks you to, otherwise blender wont let you export your mesh. Sidenote: Click and hold your mouse wheel while your cursor is over the Properties Bar and scroll to the left in order to get to the materials and textures tabs. Your textures may not be automatically linked by blender even if all of your meshes are in the extracted archive which is why they appear to be black, so you will have to link them yourself, make sure your Viewport Display in your 3D view is set to Texture or Material in order to prevent confusion of whether or not your textures have been linked by blender. Make sure that you have linked the Diffuse and Normal maps, and any other "maps" blender recognizes a texture link to. Find the textures that your model needs, such as the diffuse and normal maps, and link them, they should appear automatically if you have set your display settings accordingly. WARNING SOME TEXTURE LINK DATA MAY BE LOST SUCH AS ENVIRONMENT MAPS BUT CAN BE RESTORED FULLY IN NIFSKOPE SO DON'T SWEAT IT IF IT DOESN'T KEEP THE TEXTURE DATA! STEP 4) Import your reference GND nif, and then repeat step 3 STEP 5) Align your rigged mesh to the reference GND, use the pose mode from the skeleton, rather than manually moving the vertices to save time and keep the ability to further manipulate and move around the mesh without having to manually edit the vertices. STEP 6) After you are satisfied with the posed position of your rigged mesh, apply the armature modifier to set the pose of the model. STEP 7) Delete all vertex groups after you have applied the armature modifier, or else your mesh will go back to its default T-pose state STEP 8) Delete the reference GND vertices, but do not delete the entire node, you will need that unless you want to go through the trouble of altering the new mesh's data to be exported as a GND object, instead of a skinned one. STEP 9) Merge the new mesh to the empty reference node, do this in object mode and use Ctrl+J, DO NOT MERGE THE EMPTY NODE TO THE NEW MESH OR IT WILL NOT WORK. STEP 10) Go back to your materials and delete the old material data, so that only your new mesh's material data exists. STEP 11) In object mode, select your mesh and collision layer, however since the blender plugin doesn't fully support collision export, you can delete it if you want to, but you can keep it if you want to generate an entirely new collision shape in Nifskope later on. STEP 12) Export your selection by going to File>Export>NetImmerse/Gamebryo (.nif), make sure your export selection is set to Skyrim, the default for the plugin is for Oblivion, you may get an error message that says your version number does not match the selected export option, which means you did not set your file version correctly, or you did not set your export version to Skyrim. You aren't exporting a rigged mesh, so don't change any of the settings anywhere else, just make sure your export game setting is set to Skyrim. STEP 13) Name and export your file whatever you wish, just be warned that your nif's exported name, will be the same name as your BSFadeNode, in other words if you export your nif as Scene Root.nif, the name value of the nif will be Scene Root. STEP 14) Open up your new GND nif, and open up your reference GND nif, you are going to remove the mesh of the reference GND and copy/paste in your own, that way you can keep the old collision data without having to generate a new collision mesh. Delete the reference mesh by right clicking on it in the display window, and click on Block>Remove Branch. STEP 15) Now go into your new GND nif and do the same, except copy your mesh for the reference by right clicking on your mesh in the 3d render window, and clicking on Block>Copy Branch. STEP 16) Paste your new mesh into the reference by right clicking on the BSFadeNode name, and clicking on Block>Paste Branch. Sidenote: Make sure you right click somewhere in the value of the name, for example from the Txt to the , otherwise Nifskope may end up pasting your mesh outside of the node, which would be bad news for you because the nif may not save and will not work and may cause your game to crash. STEP 17) Your new mesh may not have the same string name, as it so happens, all pasted data will assume the name of a pre-existing string name, so you must rename your string, I suggest the name of the mesh that was already deleted. If you want to give it a custom name, just remember that nifskope will literally make a new string name for each new letter or symbol entered into the table, which can lead to a stair-step string name list effect, it wont harm the nif, but it makes you look sloppy in your editing, go ahead and look at some old Skyrim armor mods, you may find some unused or old string names such as Material.001 for example. My node's name was assumed to be BSX, just click on whatever the deleted node's string name was, mine was helmet01:0, then press okay. STEP 18) Save your new nif as something other than the reference nif and your exported nif. STEP 19) If your nif file had more than two texture references other than the diffuse and normal, you will have to manually repath them in Nifskope. Expand the node by right clicking on the arrow to reveal the data within the node, expand NiTriShape>BSLightingShaderProperty and then select BSShaderTextureSet, then expand the textures menu in your block details, it should look like my reference image and you should see your two dds textures linked, and if you want to manually relink or change textures, just right click on the texture path and click choose, a menu should pop up and you will have to select the textures you want. Make sure you reduce your texture path by double clicking on the texture path, and deleting any text that comes before "textures\.......", as it may cause odd rendering issues as the game will be looking for textures that the user may not have, or the directory of the player using your mod may not be the same as yours is, which is why you should always reduce your linked texture paths. STEP 20) You are now done with your GND nif, if you are replacing a pre-existing nif, such as I am, I can copy and paste and rename the helmet nif accordingly in the right file location, use your extracted archive for reference. If you are wanting to make an entirely new GND nif for a custom armor, then you will have to put it where your armor is, make sure the file is named properly such as Helmet_GND.nif. If you are making an entirely new GND nif and want it in your game, you will have to manually link it in the Creation Kit, but there are tutorials elsewhere for stuff like that, as this tutorial was strictly meant to help you create a GND nif, not make a mod that uses it. Here is an example of the old GND nif that was low-poly, and here is the new nif that uses the same model that you wear. OLD version DOWNLOAD NEW higher-poly version DOWNLOAD If you think that this tutorial/method doesn't work, then please take a look at what I have made below by using this method.
Blender Basics; Add Materials and Textures to nifs ========================================================== Pertains to: Blender 2.49b This tutorial will explain the process of adding a material and texture to an existing .nif mesh that has been imported into Blender for the purpose of editing. This is just one step in the modding process, but a very important one. If these steps are not performed, the mesh will not have a UV map on export, will not contain normals, and will not be able to have textures assigned to it. There are 3 examples in this tutorial that should cover all scenarios; Example #1 is a mesh with a single NiTriShape and a single texture file. Example #2 is a mesh with multiple NiTriShapes, but still a single texture file. Example #3 is a mesh with multiple NiTriShapes and multiple texture files. Most of the steps are the same, the differences will be pointed out. --------------------------------------------------------------------------------------------- Example mesh #1: Drum01.nif -- One NiTriShape, one texture. 1. Prepare mesh for import. See this tutorial. 2. Import mesh into Blender. You should be looking at a grey mass, outlined in pink (means it's highlighted). Press A to deselect everything. 3. In Object mode, right-click select the drum object. This will bring up the normal Editing panel. 4. Press F5 to bring up the Material panel. In the Links and Pipeline tab, you'll see a box with ME: followed by the name of the object (You can change the object name here to something meaningful if you want). Just above that, click on the box that says Add New. 5. Some new tabs will show up and where it said Add New will now be filled in with MA: Material. We've now assigned the material. 6. Beside ME is a box named OB. Click on that. The panel will switch back to the single tab again. (If you changed the name in ME, change the OB name now to be the exact same.) Do not click on Add New, instead, click on the arrows beside it. You'll see a list of any materials you've already assigned to things. Select the same material (so Material) as you assigned in ME. What we've done is assigned the same material to the two related pieces of the same object - the ME or mesh, and the OB or object. These should always be the same or things will get confused. 7. The multi-tabs will now re-appear. Move over to the right and the Texture tab. Click on Add New. It should now say TE: Tex.001 (for the first texture we're assigning). 8. In that same tab, switch to Map Input. You'll see the word Orco is pressed by default. Click on UV instead. THIS IS IMPORTANT. 9. Press F6 to switch to the Textures panels. There's a box named Texture Type that should say None in it. Using the arrows, change that to Image. 10. On the far right is a new Image tab. Click on Load and you can browse to whatever texture image you want to use (It's best to keep a copy of the .nif open in NifSkope so you can look up the texture file name here or keep a generic texture file handy to use. Once it's exported this information is lost anyway). We've now assigned the texture to the object. 11. Switch to Edit mode, make sure everything in your object is selected. Then switch your screen to UV/Image Editor (this is where using a split screen comes in handy and you can change one side). In the editor, click on the arrows to find the texture file we just added so that it shows up in the render window. You should now be seeing the UV map of your (existing) object in the window over the texture file. (if it's not an existing object that hasn't been UV mapped yet, that's a different story) 12. Switch the Draw Type to Textured and you should see your object with the proper texture assigned on it. If not, go through the steps again to see where it went wrong. And that's it. The important thing to remember is that each object has two related sub-names - ME (mesh) and OB (object) that need the same material assigned, plus one texture assigned. Once that is done, that material is linked to that texture. This needs to be done for anything you model in Blender, so try to make it a habit to do this as soon as you import a model then continue on to editing. ------------------------------------------------------------------------------------------------- Example mesh #2: Armor\Glass\M\Cuirass_0.nif -- Multiple NiTriShapes, one texture. This is a rare example. The only reason for this is if you want different shader options on sections of your mesh. Otherwise your mesh should be optimized as Example #1. 1. Follow steps 1 and 2 above. 2. At Step 3 - In Object mode, right-click select one of the objects of the mesh. This will bring up the normal Editing panel. 3. Follow through all the rest of the steps above. This takes care of the first object in the mesh. 4. Deselect the first object and right-click select the second object. This will bring up the normal Editing panel. 5. Press F5 to bring up the Materials panel. Do not click on Add New, instead, click on the arrows beside it. You'll see a list of any materials you've already assigned to things. Select the same material (so Material) as you assigned to the first object. We need it to be the same. 6. Click the OB button and do the same. Assign it to the same existing material. 7. You should notice the texture shows up without having to go through the steps of assigning a texture. This is because we've already linked Material to Tex:001, so you only need to assign the material to your object. --------------------------------------------------------------------------------------------- Example mesh #3: Butterscotchcreams01.nif -- Multiple NiTriShapes, multiple textures. 1. Follow steps 1 and 2 above. 2. At Step 3 - In Object mode, right-click select one of the objects of the mesh. This will bring up the normal Editing panel. 3. Follow through all the rest of the steps above. This takes care of the first object in the mesh. 4. Deselect the first object and right-click select the second object. This will bring up the normal Editing panel. (This object may look textured already but it's not, that's just the vertex colouring.) 5. Press F5 to bring up the Materials panel. This time you want to click on Add New. We need to distinguish this object as different than the first object. Our new material is now called Material.001. 6. Click the OB button. Using the arrows, assign it to the same Material.001 we just created. 7. The multi-tabs will now re-appear. Move over to the right and the Texture tab. Click on Add New. It should now say TE: Tex.002 (for the second texture we're assigning). 8. Follow through steps 8-12 above to finish this object. Repeat if there are more objects. -------------------------------------------------------------------------------------------------- What you should take away from this; * One NiTriShape = one object in Blender * One object has two sub-names - ME (mesh) and OB (object) * One object requires one material assigned, to both sub-names * One material = one texture * Re-using a material will automatically re-use the linked texture * Materials and textures can be used on multiple objects Also of note, you can rename a Material by clicking in the material name box if you'd like it to have better meaning, however, once exported out of Blender, it has no meaning as those blocks are deleted. ****
Skyrim Meshes and Blender ~~~~~~~ Importing and Exporting A couple of caveats before we start; 1. This tutorial is necessary due to the Niftools nifscripts not being current and up to date with Skryim information. This is understandable, it takes a team of volunteer developers time and effort to get there. We need to be patient, and use workarounds such as this for now. 2. For that same reason, Blender v2.49b is used. The nifscripts for the latest 2.6x are not yet up to par and would require extra workarounds. 3. There are other ways to import/export meshes, this is my preferred method. This tutorial is specific to static meshes. Working with armor/clothing is a whole different ballgame and can be found here. Step 1: Preparing the Nif file. -------------------------------------- Open a mesh in NifSkope. Again I'm using clutter\carts\handcart01.nif as an example. In the Block Details, expand the NiHeader arrow. Change the following values; User Version - from 12 to 11. User Version 2 - from 83 to 34. What we're doing here is changing the values from a Skyrim mesh to a Fallout mesh so Blender will recognize it. In the Block List, right-click on the line BSXFlags, go to Block > Remove to delete it. In the Block List, right-click on the line bhkCollisionObject, go to Block > Remove Branch to delete the entire block. Expand the NiTriShape block. Right-click on the line BSLightingShaderProperty, go to Block > Remove Branch to delete the entire block. The mesh will lose all it's texturing but don't worry. Repeat for ALL NiTriShape blocks. We've removed all those lines because, as mentioned above, the nifscripts to import into Blender currently does not know what those blocks are and will throw errors. When done, we have left a very bare bones mesh. SAVE the mesh under a NEW file name. DO NOT OVERWRITE THE EXISTING FILE. I can't stress this enough. I like to prefix my "Skyrim ready" meshes with Sky so I know immediately what it is. So in this example, I've saved it as skyhandcart01.nif. Step 2: Import into Blender ------------------------------------ Import as nif into Blender like you would any other mesh. If you receive an error, double-check you've done everything in Step 1. As this is NOT a Blender tutorial I am not going into detail of what to do once you're there. Do whatever you like to the mesh. The only important step to point out here is to apply a material and texture to the mesh. Step 3: Export from Blender ------------------------------------ When you're finished editing the mesh to your liking, export as nif like you normally would. The only difference here is to export the mesh as a Fallout mesh, not an Oblivion mesh. Remember above where we changed the User Version of the nif to equal Fallout? This is why. Default settings are fine, don't worry about the Collision options, there is none. I prefer to save under a new file name again. Step 4: Clean-up in NifSkope -------------------------------------- Open the newly exported mesh in NifSkope. Expand the NiHeader block in the Block Details. Change the User Version back to the original values for Skyrim. Make sure to do this first as it changes options in the NiTriShape to what we need and will cause errors in later steps. User Version - from 11 to 12 User Version 2 - from 34 to 83 You'll notice, as mentioned in the Dissecting Skyrim Meshes tutorial, that Blender exported the mesh as a NiNode block, but we need a BSFadeNode block for our purposes. Not to worry, this isn't our final mesh so it can be left as is. Expand the NiTriShape block. There's a lot of garbage here we don't need. Highlight the NiMaterialProperty line, right-click and go to Block > Remove to delete it. Highlight the NiSpecularProperty line, right-click and go to Block > Remove to delete it. Highlight the BSShaderPPLightingProperty line, right-click and go to Block > Remove Branch to delete it (make sure it's Remove Branch to get all the sub-properties associated with it). All we want left is the NiNode with a NiTriShape and NiTriShapeData, just like before we imported to Blender. We now have a clean edited mesh. But wait ... it has no collision, material options or textures, so it's next to useless. There are several routes you can go here, again, this is my preferred process. I've learned that trying to copy collision data from one nif to another doesn't always work as planned. So it seems best to copy a mesh from the stripped down version we have now, into a vanilla mesh. Open a second window of NifSkope and load the original handcart01.nif. In our modified mesh window, highlight the NiTriShape line, right-click, go to Block > Copy Branch (make sure it's Copy Branch so the NiTriShapeData is also copied). In the original mesh window, right click on the BSFadeNode line in the Block List area, go to Block > Paste Branch. Our new modified NiTriShape mesh is now added to the bottom of the blocks and you should see it in the render window (it'll be greyed out because we've not added textures to it yet). Repeat if you have more than one NiTriShape to add. Close out the modified mesh window, we don't need it any more. In our original mesh window, expand the original NiTriShape branch and the new modified NiTriShape branch. With the modified NiTriShape highlighted, scroll down in the Block Details to the BSProperties line at the bottom. Expand it. In the first property line, change None to the line number of the BSLightingShaderProperty of the original existing NiTriShape. Our modified NiTriShape should now be properly textured and ready to go. Repeat if you have more than one NiTriShape to change. Highlight the original mesh NiTriShape line, right-click, go to Block > Remove Branch. (Repeat for any other original NiTriShapes you don't need). We're left with our final modified mesh, complete with proper original options, textures and collision. Save with a new file name (it's a new mesh!) and add to CK. As a final word on this tutorial; anyone who knows meshes will know that our collision is not going to exactly fit this new mesh in my example. The collision will still have the cart sides and prevent the player from walking into the side of the cart. But it works for this purpose and will work for anything that's not heavily modified. Collision for Skyrim is a huge messy issue and will be detailed in a separate tutorial for anyone who wants to redo collision from scratch.
Index: (these are external links to my tutorial at TES Alliance) Part 1: Understanding Skin Partitions - NifSkope Part 2: Understanding Skin Partitions - Blender Part 3: Preparing an Existing Nif for Blender Part 4: Modifying an Existing Nif in Blender Part 5: Clean up of the Nif in NifSkope Part 6: Adding Armor to the Creation Kit Part 7: Creating new Armor in Blender Addendum: Skin Partitions / Body Parts / Biped Objects Reference Sheet In my bid to understand why none of my modified armors worked in game, I've delved deep into the steaming underbelly of Nifskope to dissect every miniscule part of how the Skyrim body works. I've discovered some very interesting facts that I hope will help any others who decide to try their hand at new armors/clothing for Skyrim. Thus is born this series of tutorials that describe the process of creating/modifying armor and/or clothing for Skyrim in detail with plenty of pictures. Each tutorial is written in a 'classroom' way for you to follow along in the tools yourself. Don't be afraid, get in there and try it. Make a cup of tea, grab some cookies and take your time, there's a lot of information here. Tools Required: * Blender 2.49b (not tested on higher versions, but do not use 2.6x versions - the Nifscripts aren't up to the task yet) * NifScripts 2.5.9 * PYFFI 2.1.11 * NifSkope 1.1.0 Knowledge Required: These are advanced tutorials that assume the reader knows and understands NifSkope and their way around in Blender. They also assume basic knowledge of the Creation Kit.