HLMV create hitboxes

From Valve Developer Community
Jump to: navigation, search
If you are starting from scratch, you can use HLMV to create a base set of hitboxes, and then modify them to fit your models needs. This page will take you step by step through the process.
Warning:you will need a model that compiles properly and has a least 1 bone that the geometry is skinned to.

Auto Generating hitboxes

The first thing we'll do is get HLMV to create a set of hitboxes for us. When it does this it will create a hitbox for every bone that has geometry skinned to it, and will fit the hitbox around that geometry.

  1. Open HLMV and load your model. From the Render tab press CTRL+H or select the Hit Boxes checkbox to view the hitboxes
    Hlmv hitboxes 01.jpg
  2. Select the Bones tab. If you did not create hitboxes in your .qc/.qci file(s) then the Auto-Generate Hitboxes checkbox should be ON. If you have specified some hitboxes, turning on the auto-generation will do nothing.
    Hlmv hitboxes 02.jpg
  3. With the auto-generated hitboxes visible, click Generate QC button. This will copy the .qc commands needed to create the auto-generated hitboxes into your clipboard.
    Hlmv hitboxes 03.jpg
  4. Open your model's .qc or create a new hitbox.qci file with your favorite text editor. CTRL+V to paste the autogenerated .qc lines into the file, save it, and recompile your model. It's a good idea to format the pasted commands into something more legible, especially if you plan on modifying the hitboxes. It should look something like this:
// .qc block generated by HLMV begins.
$surfaceprop "default"
$hboxset "default"
$hbox 0 "head"	   -14.83  -11.24  -23.58    32.59   11.24    9.46 "head"
$hbox 0 "spine1"	   -33.32  -20.38  -40.78    33.32   20.38   40.78 "spine1"
// .qc block generated by HLMV ends.

Creating new hitboxes and hitbox sets

The easiest way to create new hitboxes or hitbox sets is to simply cut/copy & paste the lines in the .qc that refer to a hitbox on the bone you'd like to add the hitbox to.

You can create a new hitbox set by adding $hboxset "your_set_name_here" and then cut/copy & pasting the .qc commands for an existing hitbox below.

Once you've finished adding the all the hitboxes and sets you need, save the file and recompile the model.

Modifying your hitboxes with HLMV

Once you have all of your hitboxes and sets added, it's much faster to use HLMV to edit the scale and position of them. You can do it directly in the .qc file, but it will require recompiling the model many times to review your changes and thus is a much more inefficient way of accomplishing the same thing.

  1. Open your model in HLMV, turn the hitboxes on, flip over to the Bones tab
    Hlmv hitboxes 04.jpg
  2. Select the set that contains the hitbox you would like to edit, and then the joint it is attached to. You'll see the boxes describing the hitboxes' position and size fill out.
    Note:While this info represents what is defined in the .qc, it is presented differently. The .qc script defines the 2 opposite corners of the hitbox in relation to the bones pivot. HLMV converts that info into a more user friendly size and origin, or offset if you will, in relation to the bone's pivot.

    Hlmv hitboxes 05.jpg
  3. Edit the Origin and Size blocks and press the Update Hitbox button to see your changes.
    Hlmv hitboxes 06.jpg
  4. Repeat until all of the hitboxes in all of your sets are looking good.
  5. Click Generate QC to copy these new settings into your clipboard again and then replace your old hitbox info with it. Recompile your model. High-five someone.

See also