Introduction to Jed’s Half-Life Model Viewer (GoldSrc)
Description In this Tutorial I will explain to the best of my knowledge how Jed’s Half-Life Model Viewer can be used to view, decompile and recompile Models, I take an indepth look at all the features this toolset provides. Feel free to download the accompanying PDF that goes into further detail on JHLMV.
Downloads
Version 2016.1
Support Support Thread
Software Windows, Jed’s Half-Life Model Viewer

Learn more about Jed’s Half-Life Model Viewer for the GoldSrc Engine

JHLMV is regarded as the defacto model viewer for the GoldSrc Engine. It is a branch off from the original HLMV which was developed by chUmbaLum sOft and ceased development in 1999. JHLMV ( current version 1.3.6 ) was developed by Neil “Jed” Jedrzejewski. JHLMV was developed to provide support for 1-bit transparent textures while previewing models.


You can download JHLMV here. The original HLMV for GoldSrc can be found here.


Mirrors for the above can be found here.

A New Tool was developed circa 2016 by the guys over at Sven Co-op called “HL Tools: HLMV”. It is an updated HLMV for use on modern systems. Download and read more about it here.

Controls

Mouse

 Drag in the center of the viewport. This will orbit the object.
 + Ctrl: Drag and this will orbit the light source.
 Drag and this will dolly the Camera Forwards and Backwards.
 + Shift: Drag and this will Pan the camera Up/Down/Left/Right.

Keyboard Shortcuts

Note: According to the programs Help -> Keyboard Shortcuts button there is a selection of shortcuts that should work in Fullscreen Mode.

G: Toggle ground
M: Toggle mirror on ground
B: Toggle background
S: Toggle stencil buffer
H: Toggle hitboxes
C: Save camera position
R: Recall camera position
+: Increase animation speed
-: Decrease animation speed
1: Wireframe mode
2: Flatshaded mode
3: Smoothshaded mode
4: Textured mode
5: Less opaque
6: More opaque
ESC: Quit fullscreen

Menu Bar

File

  • Load Model: This will allow you to load a valid GoldSrc model. It requires the .MDL extension and you can freely navigate to the folder yourself.
  • Load Background Texture: Load an 8bit .BMP as a background texture.
  • Load Ground Texture: Load an 8bit .BMP as a ground texture.
  • Unload Ground Texture: Remove the loaded ground texture and revert to the ground color instead.
  • Save Model As: Allows you to resave the currently opened model a .MDL
  • Open Half-Life Package: This lets you load in a valid .GCF, .BSP, .WAD or .PAK file allowing you to browse its contents.
  • Close Half-Life Package: Close any opened package.
  • Recent Models: List of recently opened models.
  • Recent Package Files: List of recently opened package files.
  • Exit: Terminate JHLMV.

Options

  • Background Color: Change the color of the background Clearing area.
  • Ground Color: Change the color of the ground the model is on top of.
  • Light Color: Change the color of the light in the scene.
  • Crosshair Color: Change the color of the crosshair.
  • Center View: Center the view on the loaded model.
  • Save View: Save a camera state you can return to.
  • Recall View: Return to the saved view you set above.
  • Make Screenshot: Create a screenshot of the scene (does not seem to work as expected)
  • Dump Model Info: Opens notepad with all the information on the currently loaded model.
  • Set Sound Folder: Useful if you want to view sequences with sound attached to it.
  • Save Options: Save your changes to the options to an .INI file located next to the JHLMV executable.

Tools

  • Configure Tools: Add the paths of studiomdl.exe (model compiling) and mdldec.exe (model Decompiling)
  • Decompile Model: Decompile a PC or PS2 Half-Life model.
  • Compile Model: Compile a model by pointing to its .QC script (Note: you should have the corresponding .SMD files ready as well for this to work)
  • Edit QC file: Open a selected .QC file in notepad for edits.

Model Display Tab

  • Render Mode
    • Wireframe: Display the model as a wireframe object.
    • Flat Shaded: Display the model as a flat shaded model with no smoothing applied.
    • Smooth Shaded: Display the model smooth shaded.
    • Texture Shaded: Display the model smooth shaded with its texture applied.
  • Opacity: Fade the visibility of the model.
  • Show Hit Boxes: Display the models hitboxes, used for registering collisions in the engine.
  • Show Bones: Display the models skeleton Rig.
  • Show Attachments: Display the attachment points on the model.
  • Show Eye Position: The point where the eyes are positioned.
  • Show ground: Render the ground underneath the model.
  • Mirror Model on ground: Reflect the model on the grounds surface.
  • Show Background: Display a texture for the background.
  • Wireframe Overlay: Overlay wireframe shading on top [Wireframe on shaded]
  • Scale Mesh: Scale the mesh up or down based on the numeric value inserted
  • Scale Bones: Scale the bones up or down based on the numeric value inserted
  • Drawn Polys: Displays the count of polygons currently rendering.

Body Parts Tab

  • Part: Select a body part from the list ( Highly dependent on how it was compiled )
  • Sub-model: If the model has a sub-model you can select it from the list
  • Skin: If the model has more than one skin associated with it you can select it here.
  • Controller: If the model has a bone controller attached you can modify it by selecting it from the list and modifying the value slider underneath.
  • Drawn Polys: Displays the count of polygons the current model is composed of.
The information to the right of this tab provides an insight to the number of features the model has.

Textures Tab

  • Texture:
    • Provides the size of the selected image.
    • Select a texture associated with the loaded model.
  • Scale Texture View: Scale up the texture view for easier viewing.
  • Chrome: Checked if there is a reflective effect associated with the selected texture.
  • Additive: Checked if the texture contains semi opaque/transparent properties.
  • Transparent: Checked if the texture has Fully transparent properties.
  • Show UV Map: Preview the UV of the selected texture.
  • Overlay UV Map: (dependant on Show UV Map) display the UV’s over the selected texture.
  • Anti-Alias Lines: Blur the lines to seem less jagged.
  • Drop Down: Choose which mesh to show the UV for.
  • Import Texture: Import a texture to view.
  • Export Texture: Export a texture for editing.
  • Export UV Map: Export the UV map as a Stamp for custom painting.

Sequences Tab

  • Animation Sequence: Select an animation to play.
  • Stop/Play: Stop and play the selected animation.
  • << / >>: step through each frame individually or enter a specific number to skip to.
  • Speed: Control the playback rate of the animation.
  • Center Section: Provides information on the count of sequences, Frames, FPS, Blends and Number of Events
  • Events: Select an Event from the list.
  • Play Sound: If you have configured the sound directory correctly in the Options you will hear the sound associated with a sequence.
  • Right Most Section: Provides information about the sound -> Frame Played, Event Number, Sound File and Type.

Weapon Origin

  • Animation Sequence: Select an animation to play.
  • Stop/Play: Stop and play the selected animation.
  • << / >>: step through each frame individually or enter a specific number to skip to.
  • Speed: Control the playback rate of the animation.
  • Center Section: Provides information on the count of sequences, Frames, FPS, Blends and Number of Events
  • Origin X / Y Z: Add an offset to the models position.
  • Test Origins: Test your offset.
  • Show Crosshair: Preview a crosshair.
  • Show Guidelines: Helpful guides for positioning your model to.

Fullscreen Tab

Set a resolution and view the model in Full Screen mode.
Keyboard Shortcuts now work.


Press ESC to exit.

Further Reading

I hope you find this document useful when you venture into the convoluted and often time awkward world of Source Modding.

The support thread for this tutorial can be found over at the forums.

I have tried my best to keep this tutorial as close to the facts as possible but when trying to describe a tool that doesn’t have its own documentation details can slip through the cracks. If you find any issues or if you know of anything this tutorial should include please feel free to send an e-mail onto me concerning it.

Kind Regards
Cathal McNally