Yesterday, via one of my YouTube accounts, I received an unexpected missive from a young fellow named Charles who was keen for information.
Charles wanted to learn how I’d managed to get certain models from Half-Life2 into 3ds Max. Hopefully, he won’t mind my inclusion of the message in this post:
Mainly because Charles asked so nicely, I’ve decided to write out what I hope will be a comprehensive, relatively easy-to-follow tutorial on the subject.
Generally-speaking, I hate online tutorials. Too many of them gloss over crucial information and assume the reader has prior knowledge that he/she usually lacks. Far better, I always say, to include too much information than nowhere near enough. In the movie Philadelphia, Denzel Washington’s character, Joe Miller, says, “Explain this to me like I’m a four-year-old,” and I think that’s a good quote to keep in mind when trying to impart certain types of knowledge.
So, here goes …
What You’ll Need:
- Half-Life2 | The PC game. Obviously.
- Source SDK | The Source Software Development Kit. Download this via Steam.
- GCFScape v1.6.6 Full | Extraction tool used to glean desired files from HL2‘s .gcf files.
- VPK Tool | Tool used for conversion of .vtf files into .tga files that 3ds Max can handle.
- MDLDecompiler Version 0.5 | Decompiles the .mdl files extracted from Half-Life2.
- Max 6/7 SMD Importer | A plug-in for 3ds Max. Allows the user to import .smd files.
(At the time of writing, all those links were valid. If you’re reading this months from now and some of them are no longer working, let me know and I’ll do an update.)
Downloading and Installation
Everything listed above has to be correctly installed if you’re to stand any chance of success. Installing 3ds Max and Half-Life2 shouldn’t be an issue and I’ll assume anyone reading this tutorial already has both installed, anyway.
The Source SDK is to be downloaded and installed via the ‘Tools’ tab in Steam:
GCFScape, VPK Tool, MDLDecompiler, and the SMD Importer can be accessed via the links above. After clicking the links, initiating the downloads is fairly straight-forward but just in case, here’s a badly-presented table that shows exactly what you’re after:
The SMD Importer is a plug-in for 3ds Max 6/7 (it also works for Version 8 but not Version 9) and basically adds files with the extension .smd to the list of files that can be imported into 3ds Max:
All you need to do is extract the smdimp.dli file from the smdimp_max6.v013a.rar archive you’ve downloaded, then move the file into your 3dsMax\plugins folder:
From now on, you’ll be able to import .smd files into your 3ds Max scene(s). Nifty, eh? Another thing you must do is move the mdldecompiler.exe file into your sourcesdk\bin folder:
Okay, moving on …
Extracting the 3D Model from Half-Life2
For this tutorial, I’ll explain how to extract the Strider but the same principles apply for the other 3D models. For some models, it’s a bit more of a challenge to find all the associated files (due to Valve’s naming conventions) but this guide should lead you in the right direction.
01. Create a ‘destination folder’ and give it an appropriate name, eg. Strider. This is the folder that will eventually contain all the files associated with the 3D model:
02. Navigate to your \Valve\Steam\SteamApps folder. This is where all the game cache files (.gcf) are stored:
The ones of interest to us are the source models.gcf and source materials.gcf files.
03. Double-click the source models.gcf file to open it within GCFScape.
04. With the source models.gcf file now open, expand the hl2 folder. Select the now-visible models folder, then click the Edit menu and choose Find (shortcut: Ctrl + F). Type ‘Strider’ into the search field and hit Enter. GCFScape will then search for all files that include the word ‘Strider’ and will display the results in the window pane on the right:
05. We want all the files identified by the search, so select one at random, then use the Ctrl + A shortcut (Select All) to group highlight all the others.
06. Okay, time to extract. Right-click on the highlighted files (making sure not to deselect them) and from the context menu that appears, choose Extract.
Via the Browse For Folder window, choose the Strider folder that was created earlier and click OK:
Here ends our fleeting interest in the source models.gcf file.
07. Now, double-click the source materials.gcf file to open it within GCFScape.
08. With source materials.gcf now open, expand the hl2 folder, then materials > models > Combine_Strider:
Within the Combine_Strider folder, you’ll see three files: striderdecalsheet.vmt, striderdecalsheet.vtf and striderdecalsheet_normal.vtf. We’re going to extract all three using the same method we used earlier.
09. In the pane on the right, select one of the three files at random, then use the Ctrl + A shortcut (Select All) to group highlight the rest.
10. Right-click on the highlighted files (again, making sure not to deselect them) and from the context menu that appears, choose Extract. Via the Browse For Folder window, as in Step 06, choose the Strider folder and click OK.
Here ends the ‘extraction’ phase. We’re doing well. I just hope, thus far, this has all been making sense. The next thing we must do is decompile the primary model file we extracted earlier.
Decompiling the Model (.mdl) File
11. Double-click the mdldecompiler.exe file to launch Cannonfodder’s MDL Decompiler. Remember that the executable should be in your sourcesdk\bin folder:
12. Uncheck the Use Steam File Access checkbox, then left-click the ellipsis button for the Choose Model File field and navigate to the Strider folder.
13. In the Strider folder, there should be a number of .mdl files. From the list, select Combine_Strider.mdl and hit Open.
14. Time now to choose an Output Directory. Left-click the ellipsis button for the Choose Model File field and again navigate to the Strider folder. Click the Select button to accept the folder as the Output Directory.
15. Click Extract. The extraction process will involve two additional prompts:
Click OK for each prompt, then click Exit to close Cannonfodder’s MDL Decompiler.
Converting .VTF Files
16. Launch the VPK Tool downloaded earlier by double-clicking the VPKTool.exe file included within the download:
I should mention: there are alternatives to this particular tool but I’ve not yet tried the others, nor have I experienced any trouble with this one.
17. Select the Texture tools tab, then the Open file button.
18. Navigate to the Strider folder and change the Files of Type: field to Source VTF texture:
You should see the two .vtf files extracted earlier: striderdecalsheet.vtf and striderdecalsheet_normal.vtf.
19. Select the striderdecalsheet.vtf file and click Open. You’ll now be able to convert the .vtf file into the .tga format. As a .tga file, the texture can be applied to a 3D model within 3ds Max and that’s exactly what we want. Just click the Convert to TGA button:
20. Now, repeat the above step to convert striderdecalsheet_normal.vtf into a .tga file.
Thankfully, the Strider only has those two .vtf files. Some of the other 3D models have more. For those other models, you’ll need to convert all the .vtf files, one-by-one.
21. Now that it’s no longer needed, you can close the VPK Tool.
Finally! All the necessary files have been extracted / converted and the model is ready to be imported into 3ds Max.
Importing the Model into 3ds Max
This part is easy!
22. Open 3ds Max (Version 6, 7 or 8; whichever one you’re using) and from the File menu, select Import.
23. Navigate to the Strider folder and change the Files of Type: field to Half-Life 2 SMD (*.SMD):
24. Most the of .smd files you’ll see in the Strider folder are actually animation files. They can be imported afterwards if you’re keen on using Valve’s keyframe data to animate the model. Right now, you should select the model’s _reference.smd. In the case of the Strider, it’s the Strider_reference.smd file.
At this point, I sincerely hope, the Strider will appear in your Viewports and you’ll be very happy.
Now, to get on with life …
*If you’d like to get the same model into 3ds Max 9, simply go through all the steps above, save the .max scene and close your old version of 3ds Max. Open 3ds Max 9 and then simply Open the .max file you saved earlier.