OK, firstly, this tutorial is NOT
designed to teach you how to create models from scratch with MilkShape 3D. It will show you how to edit existing models and give them new heads/weapons etc., or how to replace old heads/weapons.
Before we start, there are a few programs you will need:
- Half-Life, and any mods you want to nick heads/weapons from. Just remember to credit the authors!
- MilkShape 3D or any kind of pak explorer to extract the models from the pak files.
- Half-Life Model Viewer
In this tutorial we will use the high definition hgrunt.mdl as an example again. First, extract the models you want to edit from the pak files. (In HL, pak0 is low definition, pak1 is high def. For OpFor, pak0 is low def, pak2 is high def, and for Blue Shift, pak2 is both, depending on whether you have the high def pack installed or not.)
Now, I recommend you create a new folder for the models, and put the specific ones there, in this case, hgrunt.mdl.
Time to load up MilkShape 3D.(It can be registered, unregistered or expired, all will work ok for this)
At the top, click on tools, scroll down to HL and select "Decompile Normal HL MDL file". Browse to the model in its new folder, and select it. Check every box. Wait for it to finish decompiling, and open up the folder. You will see a load of extra files.
- BMP files with the model's textures.
- SMD files: Head/weapon and animation reference, only the heads/weapons can be seen in MS3D, but you don't need to look at them.
- QC file: What you compile to edit the MDL file.</DIR> For this hgrunt, I have also decompiled the low def hgrunt_opfor model (From OpFor, obviously). This is because I want to nick some weapons and heads from it. I have copied all of hgrunt_opfor's head/weapon SMDs and the BMP textures into the other folder.
Open up hgrunt.qc
in Notepad (or something similar), and scroll down until it says something about head groups. You will see 4 lines below which refer to various head SMDs. In the provided hgrunt model, I have deleted all of the references except the third (I merely reskinned the third head) and replaced them with references to some of the hgrunt_opfor's head SMDs.
To make life easier, I renamed the hgrunt_opfor ones with easier to recognise names (So with the MP head, which is the second head on the provided model, I renamed the SMD to MP, and referred to that in the QC. I called the first and fourth heads Beret and BeretBlack to make life easier still.)
Now, when you have replaced everything you want, you may want to edit some of the textures of the new heads (like the beret, which I made red).
Read my reskinning tutorial for more detail on this. When you have finished it, it must be 256 colours or it won't work.
After you have done that, compile the QC file through MilkShape 3D (Tools, HL, COmpile QC file). After compiling, open up hgrunt.mdl and voila! It will have new heads with the new textures. If the textures don't come out right, you can always reskin even further.Adding Heads
This is very similar to head replacement. However, instead of replacing old ones, copy one of the lines and paste it below. Now change the SMD reference in the cloned line. Now continue as normal.Weapon Replacement
Almost exactly the same as head replacement, but refer to the weapon SMDs. Also, you'll have to scroll down in the QC file to the weapon section rather than the head section. In the example, I have replaced the high def hgrunt's M4A1 rifle with an MP5. However, the normal HL MP5 looks old, grey and dusty. Hgrunt_opfor.mdl has a nice shiny black MP5, so I referred to that. I also used hgrunt_opfor's shotgun, which is a nicer version of the shotgun from the low def hgrunt.mdl.Adding Weapons
Again, almost exactly the same as adding heads, but you add the weapons to the weapon section of the QC file.
After you have edited the model all you want, compile the QC and you have a nice new model!Bug Warning
Do not try adding weapons or heads to existing models unless you are recoding HL for a mod. It completely mucks stuff up, I tried giving hgrunt_opfor.mdl new heads and weapons once, and even though I edited the FGD so I could select the new stuff, the hgrunt kept displaying the wrong heads and weapons, and for some reason it also mucked up the alignment of some scripted_sequences. You know the guy on the stretcher from the start of Opposing Force? He was hovering behind it!
I suppose you could use Spirit and custom models to get round this problem, but I haven't tried. Basically, I would just replace existing stuff. You can always unpack the models from the pak files again and overwrite the edited ones if you don't like 'em.Adding or Replacing weapons which are not on any existing model
Let's say you wanted to give the hgrunt a 357 Python Revolver. None of the HL models have 357s. As a result, you have no reference SMDs. So what do you do? Fortunately, there is a simple solution. Open up MS3D and decompile the p_model of the weapon you want (In this case, p_357)
. There will be a reference SMD there. Simply put it in the hgrunt's folder and refer to it in the QC file. Now compile as normal.
With this, I managed to give an hgrunt the AK47 with a bayonet from Firearms. It came out pretty well too!Adding Sequences
But what if you wanted to give your new hgrunt some of hgrunt_opfor's extra sequences? This is the easiest bit. Open up hgrunt_opfor.qc, copy the sequences you want from it, and paste them at the bottom of hgrunt.qc. Also, you will need the sequence SMDs if they aren't already in the folder.Distortion warning
The more times you compile and decompile a .mdl file, the worse it gets. I would recommend you only decompile a .mdl file once, because the more times you decompile one, the more distorted it gets. Animations seem to shift themselves, mouths become angled slightly, textures get pushed along a bit...this makes it look horrible sometimes, particularly with heads with glasses, where the frame seems to get shifted a bit after the first decompile.
If that happens, change the glasses into sunglasses to hide this. If you feel you have completely mucked up a model, unpack it again and start from scratch.Stuff in the Download
Strangely enough, not a map. Instead, the edited hgrunt.mdl (without the AK47) which I was talking about earlier on. I would've included the AK47 grunt, but I deleted it
By the way, you can also use the same methods mentioned in the tutorial to replace other stuff on a model, like torsos (See hgrunt_opfor.mdl for reference).