Basic Guide: From Modeling Program to the GECK
It is essential that you at least read the Disclaimer before you move on to the other parts of this guide.
There are some guides out there that already cover the same subject as this guide. However, through my going over them, certain tutorials didn't work me. I found that some didn't have enough information (for someone like me), certain things weren't there, or some just plain didn't work because certain things weren't there. So, this guide is for dummies/complete strangers to modeling for Fallout 3, like me, with steps that worked for me. Also, it's for the future when I try to help people I won't have to type all the types over again (I'm lazy). There is also a video tutorial in YouTube, so, for people who doesn't like to read, you may like that tutorial better. However, for people that reads fast and likes the control of reading, go on to the Disclaimer and the rest of this picture and text guide.
Disclaimer
This guide operates under certain assumptions of your knowledge:
- That you know how to make a model using 3DS Max (and hence it's operation) or other modeling programs,
- general computer knowledge/common sense (that means if I tell you to click "okay", and it says "yes", click that; file pathing), and
- That you know how to use GECK; these will not be covered.
I will cover, in detail, what to do once you've completed a weapon's model in 3DS Max (or other modeling program), up to the point of making the it (the model) work in GECK. Any other features in GECK irrelevant to making the model work will not be covered. The guide will also cover problems that may arise during the procedure as well as provide solutions or alternatives to that, to the extent of my knowledge.
For Melee Weapons and Misc Items
This same guide may also apply to melee weapons and misc items, just follow the same steps and substitute/ignore things accordingly.
Contents
Tools/Programs
This section will cover the tools that are needed for this endeavor. The versions listed are the versions that I just happen to be using, and it may not be necessary for you to use the same versions as I did. You may want to try out the latest versions, or the versions that I'm using, if certain parts of the guide doesn't work for you.
- Fallout 3
- Surprise! Yes, you do need to have this install. Please install it.
- 3DS Max
- Any version will be fine, as long as it supports the Niftools plugin (see below). Any other modeling program with similar support may also be used (though this may possibly require slightly, or significantly, different processes).
- Garden of Eden Creation Kit (GECK)
- It's assumed that you have it if you're attempting to mod for Fallout 3.
- NifSkope
- This guide is written using v1.0.16. The latest current version is 2.0.9 and recommended. It has been tested and seems to have eliminated the problem present in section Texture Path.
- Niftools plugin
- This guide is written using v3.0 - there may be differences with later versions. (v3.0 is no longer available online, you will have to use a third party NIF plugin)
- Fallout Mod Manager (FOMM)
- any version should be, but of course you should get the latest version.
You're Done with the Model
Scaling
Let's say we were discussing about you making your model. Now, you're done with your model and ready to export it. Let's do certain things before exporting the model. You'll want to scale your model in according to the size of the models in Fallout 3. You'll want to think about what vanilla guns are similar to your gun, and then we're going to take those out of Fallout 3 to compare with your gun. To do this, run FOMM and click BSA Unpacker, then click Open. Navigate to the folder your Fallout 3 is installed in and then go to the Data folder. Locate "Fallout 3 - Mesh.bsa" and open that. When you're in there you'll see the Sort button and a dropdown menu, just go with the default sort (don't change the dropdown menu) and click the Sort button. Weapons should be at the very end of the list, now locate at least one weapon that's similar to yours and extract it (you can extract many for better comparison). Double click on the weapon file you want and save it anywhere you'd like (hopefully some place convenient and you'll remember). Close it when you're done extracting.
I find that my Max comes up with an error if I try to import the nif files, so I needed to go over the next step. If you have such as problem as well, you might want to do what I did. You'll want to run NifSkope. Find the weapon(s) you just extracted and open it, go to File -> Export -> Export .OBJ, and save it into a folder in your My Document/3dsmax.
Now let's import those weapons into the same scene you have your weapon, compare them, and scale according to how you want the size of the weapon to be.
Your Weapon's Parts/Objects (for animation)
Now, just before we're ready to export there's one more thing to do. We'll want to look at how many parts your gun has. Pick a weapon from within the game that most closely resembles yours in operation, as in, how the parts work and move. Certain guns have hammers that move back as you shoot, certain guns have ejection ports that eject cartridges as you shoot. So, you might need to make an ejection port or a hammer. The reasons will become clearer once we've exported the weapon.
As I said, pick a gun the most closely resembles your in operation, and we'll call it the base/base gun/base weapon. You'll need to merge parts of your weapon to match the numbers of parts the base gun has.
Ready to Export
Now we're ready to export. There are two methods to do this, they both work just fine. The second method requires a bit more time for initial setup, but may and will be faster if you're going to tweak the model further later on (example: re-scale, apply modifiers, etc). The second method is recommended at this moment, though you may want to try the first if the second doesn't work for you. Additionally, whatever steps that aren't mentioned in a particular method is not required for that method (and is suggested not to be done it unless you have to good reason).
First Method - Dealing with NiTriStrips Part 1
You'll want to get the orientation of your weapon right (what faces where). That should be apparent to you when you imported the weapons into Max to compare and scale. I find that when I export my weapon it gets flipped 90 degrees to the right, so I found it better to flip it 90 degrees to the left before I export it.
Now we're all ready to export. You should have your niftool plugin installed. Export it as a nif file (you need to manually type .nif for the file name) and set the export settings according to these (Yes, everything.):
Second method - Dealing with NiTriShape Part 1
In this method we don't need to worry about orientation. First, let go over the initial setup. Basically, you're going to export each separate parts as their own .obj file. So go ahead and do that. It's easy, just leave the parts where they are (no need to move it), and delete the rest so you can export only that part. Read the example below if you're confused.
Example: An example of what I did is select all parts by [Ctrl] + [A], and then click one part while holding down [ALT] to deselect that part, press [Delete] to get rid of the rest, export, then restore all the parts by [CTRL] + [Z], and then move on to other parts. Note: the button combinations are only applicable to Max, but the principles are the same if you use other programs.
Possible Problems
When you open up the file in NifSkope you may find that the process has created seams and holes in your model. Fear not. Go back to Max and open up your gun's scene again. Apply smoothing groups (modifier) to it, and then remember to also apply Reset X Form modifier just before you export it. If you absolutely have no idea what smoothing group to apply, checking Auto-Smooth would be fine.
If this still doesn't work, this worked for my friend - enlarge the entire gun, and then fix it later in NifSkope.
NifSkope Goodness
Finally we faced with the goodness of NifSkope. The first thing you want to do if set your tool straight. Set your NifSkope like so:
What we're going to do next is utilizing the replacement method. We're going to replace each part of the base weapon with a part from your weapon, but we'll want to replace an ejection port with your weapon's ejection port, or a hammer with a hammer, so that the animation will work correctly. If you don't do this right, you'll see how it works in-game (and laugh really hard if you have a sense of humor). I like to think of it as an alien invasion and the aliens take the place of the population one by one.
Note that there are two methods you can follow, and they correspond to which method you used to export your model in the previous section (Ready to Export). You must use the correct method below.
First Method - Dealing with NiTriStrips Part 2
Now, run NifSkope, and open your gun file. Run another NifSkope and open the base weapon file. Now you have two NifSkope windows.
Go to your weapon's NifSkope window, and click on the first part you want to replace. The Render Window will highlight the the part in wireframe, and on the left the Block List will highlight the NiTriStrips entry of your part. Navigate down some entries to find the immediate next NiTriStripsData entry and click on it, your part should still be highlighted in the Render Window.
Right click on that NiTriStripsData entry, go to Block -> Copy (not Copy Branch). Now switch to the base weapon's NifSkope window and click on the first part you would like to replace. Similarly navigate to that part's NiTriStripsData and right click again, go to Block -> Paste Over. Just ignore any error message that may popup (click Yes). You'll see your part is copied over, but it's orientation may be wrong. Don't worry about it, you can adjust it later. Repeat until you've copied over all the parts, and do not rename anything. When you're done you can close your weapon's window (the first one) and keep the base weapon's window open.
Now go to the final step of this section before you move on to the next section. (Skip the Second Method)
Second Method - Dealing with NiTriShape Part 2
Now simply run NifSkope and open the base weapon that you've chosen. Click on the first part you can to replace; the Render Window will highlight the part and on the left the Block List will highlight its NiTriStrips entry. You'll going to right click on it, go to Mesh -> Triangulate. You'll notice that the entry changes from NiTriStrips to NiTriShape, don't worry about it. This basically make it so that you can import another mesh to overwrite this one (remember the parts we exported individually?). Now, leave it highlighted as before and go to File -> Import -> Import .OBJ. Navigate to where you've exported your parts previously, select the part you want, and import it.
Do this for the rest of the parts, and go to the final step of this section before you move on to the next section.
Just a Few More Things to Take Care of
You can adjust the orientation and the position of your various parts by clicking on the part you want and adjust that NiTriStrips (not NiTriStripsData) entry's translation in the Block Details section at the bottom.
When you're all done, save the file in the Data folder of your Fallout 3 game.
GECK
Now you'll want to "fine tune" the position of your entire weapon inside NifSkope by putting it in-game and see how it looks when your player character holds it.
Run GECK. Let's not even bother to load any files just yet. Let's see if the file you just saved works. Go into to the Weapon list in Object Window and make a new weapon, when prompt with an error message click Cancel. Go straight to the Art and Sound tab and find Model, then click Edit, and Edit again when you're in Model Data. Now locate the file you just saved in Data folder and open that. If your GECK shows you your weapon and does not crash. You're half way done.
Now you can load the Fallout 3.esm and make a new mod to add your weapon in (remember it needs a static as well, check how vanilla weapons are set up). When you're done adding your weapon, expand the sort button right next to the form ID of your item, and remember the alpha-numeric form ID so you can add it to your inventory once you're in game. Use this code when you're in-game and opened the console with "~":
Additem itemID howmany
You need to replace the itemID and howmany, and remember to take into account your mod's index (ex. If you have no other mod then game item have an index of 0100 and your mod's items are 0200).
Remember how things look when you hold the item, and adjust the item in NifSkope accordingly (again, adjusting translation and angle).
Texture Path
Now you'll want to change the texture your gun is using, no? Again, click on the NiTriStrips and navigate to the next immediate BSShaderTextureSet. In Block Details, expand the Textures entry and double click on it to change the path. Format it exactly like it was in there and leave out the harddrive location, game folder, and things like that. You'll need to have a diffuse map and a normal map. Once you've set it, save as a new file, don't worry about name (call it your weapon 2 would be fine), you can change it later. Don't close the file yet unless you can't play the game with it open.
To use the texture correctly in-game, you'll also need 1st person textures. Don't worry about it, you don't need to create anything new, just use your normal map. Duplicate the file, and rename it 1stpersonweaponname.dds, where you'll replace weapon name as the same name as your normal map's name. Example, vintorez.dds -> 1stpersonvintorez.dds. Put it into the same folder as your other texture files. You also don't need to add it to the texture paths in your NifSkope file, the game will automatically detect/search for it. You'll only responsible for setting the diffuse texture map and normal map, not the 1set person texture.
Now try it in GECK and in-game again
Problem
Note that once you've changed the texture paths, if you try to open the file again it'll give you a bunch of error files and then crash. So keep it open as long as you can, but do save.
This problem seems to be no longer present in the current latest version (2.0.9), although the program will still show errors and crash when opening files from previous versions. Files edited or saved using the current latest version, however, will not encounter such problem.
You're Done!
If everything works fine and looks fine for you. You're done! It seems that we've come to a conclusion of this guide. Package it, write a readme, and publish it for all to enjoy!