I actually have a fair bit of experience with putting Half Life models into GZDoom, it takes a little bit of work. But yes, you can get the animations into GZDoom!
1. Decompile the MDL file to get access to the textures and SMD files. You can use Milkshape 3D to decompile them for this. Hit Tools -> Half Life -> Decompile Normal HL MDL File. (btw, personally I recommend downloading the HD Half Life Models and using those, they look better)
2. Convert the texture files from .bmp to .png so they work with GZDoom.
3. Half Life uses many SMD files to make up the model. The SMD files beginning the "DC" are the base files, they store no animations and are just the static model. Import those first into Milkshape, there may be a few as it might be a multi part model.
4. Half Life stores each individual animation state into its own SMD file. So say you want to import the Idle animation of a grunt, you'd import idle1.smd or idle2.smd after importing the static meshes.
5. Most Half Life Models use multiple textures, something MD2 models do not support... BUT MD3 DOES. Hit Tools -> Quake 3 Arena -> Generate QC File. This will create a .qc file for your model. Open up the file and edit the "$skin" line so the file inside the quotations is the name of the .png texture you want to use for each model part. Half Life usually has each mesh named after its .bmp texture so just copy and paste that file name and replace the .bmp with .png. For example heres what my grunts .qc file looks like:
Code: Select all
// Quake III Arena MD3 control file, generated by MilkShape 3D
//
$model "models/players/model/model.md3"
// reference frame
//$frames -1 -1
// frame 1-343
$frames 1 343
$flags 0
$numskins 0
// you can have one or no parent tag
// tags
// meshes (surfaces)
$mesh "DC_soldier_face_cmdr_blk.BMP"
$skin "DC_soldier_face_cmdr_blk.png"
$flags 0
$mesh "DC_soldier_torso.BMP"
$skin "DC_soldier_torso.png"
$flags 0
$mesh "DC_soldier_misc.BMP"
$skin "DC_soldier_misc.png"
$flags 0
$mesh "DC_soldier_skin_blk.BMP"
$skin "DC_soldier_skin_blk.png"
$flags 0
$mesh "m4_world.BMP"
$skin "m4_world.png"
$flags 0
6. Make sure your textures are in the same folder as your .qc file, after you do this, export the model as an MD3 in milkshape to the same folder as where your .qc file is. Make sure your .md3 file has the same file name as the .qc file. So you should have something like grunt.md3 and grunt.qc.
7. Make a DECORATE actor for your Half Life model.
8. Make a ModelDef, don't define a skin in the ModelDef though, as you defined the skins in the .qc file so you could use more then one.
9. Put your .md3, .qc, textures, ModelDef, and DECORATE definition (unless you have it loading into the game somewhere else) into a .pk3.
That's about it, summon your actor into the game and you should be good to go!
Just so you can see an example, here's a Half Life grunt I imported into GZDoom. Just load the .pk3 up with the game, open the console, and hit "summon grunt_blk"
http://files.drdteam.org/index.php/file ... /grunt.pk3