Collision Hulls in 3ds Max for Source

Posted Feb 12, 2012
Last Updated Mar 27, 2020

A collision hull (also known as a physics modelcollision mesh or simply hull) is a simplified version of your model that is used for collision detection. By being a simplified version of the model, it saves the game engine all the effort of detecting collisions on complex shapes.

Things To Know

  1. Collision hulls must be Convex.
  2. If your model is complex and cannot be realistically wrapped in a single convex shape, then the hull must be separate convex pieces.
    Concave Hull
  3. If your hull is composed of multiple pieces, and each piece is an Element sub-object of a single mesh, then each element must have a single unique smoothing group that all faces in the element share.
  4. For multi-part hulls, your model QC file must have the $concave parameter.

Making a Collision Model

This page details making a hull using Wall Worm Model Tools and the Quick Hull feature.

  1. For each segment of the model that needs a hull, Detach it into its own element (or object*)
  2. Assign your mesh(es) to a WWMT Helper
  3. Press the Quick Hull button
  4. The $concave flag is automatically set
  5. Each Element of each mesh in your model will get a hull made from it
  6. Each hull will get a unique smoothing group
  7. All hulls are automatically assigned as hulls in the WWMT Helper

Fixing a Rotated Hull

Sometimes you will find that your collision hull is rotated 90 degrees from the model, especially if you did not compile with the $staticprop option.

choose hull typeWhile there are several reasons this could happen, the easiest solution in WW is usually to set an explicit collision model type. By default, Wall Worm will choose $collisionmodel for models using $staticprop and $collisionjoints when $staticprop is off. This, however, can lead to rotated hulls in some cases. As such, if you have a rotated hull, a quick solution is often to tell WW to use $collisionmodel. You can do this with the Choose Hull Type menu in the modify tab when you select the WWMT Helper in the scene.

General Hints

  • *Any piece of the model that is broken into a separate Object (as opposed to Element) with the Editable Poly Detach function is no longer part of the model and must be re-assigned to the WWMT helper with the Add Sel or Append functions before the Quick Hull Function is run.
  • When using Quick Hull, make sure there are no planar Elements. Planar elements will create invalid hull pieces.
  • The Process Hulls function sets all the required smoothing groups.
  • If your model is animated, you will need to skin the hull OR set each convex part of the hull as a linked child to a bone. Important: Each separate convex part of the hull must be skinned 100% to a single bone--and each bone can only have one convex hull unless you use the $concave option turned on! If you skin multiple hull parts to a single bone and do not check the $concave setting (which will export at $concaveperjoint with dynamic props), the Valve model compiler will collapse all of the parts into a single hull for that bone!
  • For any model using Skin, you should generally never use the Rotate Origin option in WWMT.
  • Also see Hull Helper for more advanced hull generation tools.

WWMT Collision Hull Utilities & Techniques

If you do not have access to the Quick Hull button (because your version of Max doesn't support PhysX or MassFX), you still have several tools in WWMT to optimize the process of making a hull.

Auto Hull

If your model is simple, you can tell the Valve model compiler to generate a hull by clicking the Auto Hull button in the Collision Model & Physics Rollout.

This function does not work in conjunction with $concave.

This function does not work with animated models.

Prepare CM

This function lets you choose a mesh and apply proper smoothing groups and textures. Read More.

Process CM

This function will apply proper smoothing groups to all hulls assigned to the current WWMT helper and give a texture. Read More.

Newsletter Subscription