$collisionmodel: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (→‎Options: all redir to this page!)
No edit summary
Line 1: Line 1:
The [[QC command]] <code>[[$collisionmodel]]</code> is used to generate a [[collision model]].  
The [[QC command]] <code>[[$collisionmodel]]</code> is used to embed a non-animated [[collision mesh]] in a model, for use in [[VPhysics]] calculations.


{{note|[[Jointed collision model]]s use <code>[[$collisionjoints]]</code>.}}
{{tip|Use <code>vcollide_wireframe 1</code> to view collision meshes in-game.}}


== Example Syntax==
{{tip|If your model has moving parts that need to collide, use <code>[[$collisionjoints]]</code>.}}


  [[$collisionmodel]] "tree_deciduous_01a_physbox.smd"
{{warning|Collision meshes should be extremely low-poly in comparison to [[body mesh]]es, and even [[lod mesh]]es. See [[collision mesh]].}}
 
== Usage ==
 
  [[$collisionmodel]] <collision mesh SMD>
  {
  {
     [[$mass]] 350.0
     <options>
    [[$concave]]
  }
  }
You should always create a low-detail collision SMD, as a body mesh is almost always far too complex to be used. See [[Collision model#Build_a_collision_model]].


==Options==
==Options==
Line 35: Line 36:
; <code>$drag <scale?></code>
; <code>$drag <scale?></code>
: Scales air resistance.
: Scales air resistance.
== Example ==
$collisionmodel "tree_deciduous_01a_physbox.smd"
{
$mass 350.0
$concave
}


==See also==
==See also==
*[[NPC Hull]]
 
*[[VPhysics]]
*[[Physics and Ragdolls]]
*[[Physics and Ragdolls]]
*[[$collisionjoints]]
*[[$collisionjoints]]


[[Category:QC Commands]]
[[Category:QC Commands]]

Revision as of 10:10, 27 April 2008

The QC command $collisionmodel is used to embed a non-animated collision mesh in a model, for use in VPhysics calculations.

Tip.pngTip:Use vcollide_wireframe 1 to view collision meshes in-game.
Tip.pngTip:If your model has moving parts that need to collide, use $collisionjoints.
Warning.pngWarning:Collision meshes should be extremely low-poly in comparison to body meshes, and even lod meshes. See collision mesh.

Usage

$collisionmodel <collision mesh SMD>
{
    <options>
}

Options

$mass <float|kilograms>
Manually set the mass of the model.
Todo: Presumably this has some use outside physics simulation?
$automass
Automatically compute the mass of the model. The calculation takes into account the density/thickness of the material defined by $surfaceprop and/or prop_data, as well as the volume of the collision SMD itself.
$concave
A collision model must be a convex shape, but you can create concave shapes by including multiple meshes in the same model. $concave tells studiomdl that this is what you want it to do, rather than make a single convex hull by bridging any gaps.
$maxconvexpieces <int>
By default, studiomdl limits a concave collision model to twenty convex pieces. This command can be used to override the limit - for instance if you are creating an unusually large model.
Note.pngNote:Introduced with the Orange Box. In the Ep1 engine, run studiomdl with -fullcollide when compiling instead.
$masscenter <X Y Z offset?>
Override the center of mass, in local coords.
$inertia <scale?>
Inertia scale.
$damping <scale?>
Linear damping scale.
$rotdamping <scale?>
Rotational damping scale.
$drag <scale?>
Scales air resistance.

Example

$collisionmodel "tree_deciduous_01a_physbox.smd"
{
	$mass 350.0
	$concave
}

See also