$collisionmodel: Difference between revisions
Jump to navigation
Jump to search
Note:If your model has moving parts that may affect collisions, such as ragdoll limbs, use
Note:Collision meshes should be extremely lo-poly in comparison to reference meshes, and even lod meshes. See collision mesh.
Tip:Set the Console Variable
Note:Introduced with the Orange Box. In the Ep1 engine, run StudioMDL with
(more options) |
m (→Options: link) |
||
Line 53: | Line 53: | ||
: The parent-most bone that actually has collision geometry. | : The parent-most bone that actually has collision geometry. | ||
;<code>$jointconstrain</code> | ;<code>[[$jointconstrain]]</code> | ||
: The limits of the joint's movement. | : The limits of the joint's movement. | ||
Revision as of 15:07, 28 April 2008
The QC command $collisionmodel
is used to embed a non-animated collision mesh in a model, for use in VPhysics calculations.

$collisionjoints
instead.

vcollide_wireframe 1
to view collision meshes in-game.Syntax
$collisionmodel "<collision mesh SMD>.smd" { <options> }
Options
$mass <float|kilograms>
- Manually set the mass of the model, in kilograms.
$automass
- Calculate the mass of the model based on the volume of the collision model and the material defined in its prop_data.
$concave
- By default, the model compiler will generate a single convex hull by bridging any concavities in a collision SMD. You can create a concave hull by including multiple, overlapping convex meshes in your SMD, and adding the
$concave
will preserve concavities by using multiple convex pieces. The resulting hull structure is a bit like a rigid ragdoll.
$maxconvexpieces <int>
- By default, the model compiler 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.

-fullcollide
when compiling instead.$masscenter <vector|offset>
- Override the center of mass, in local coords.
$inertia <float|scale>
- Inertia scale.
$damping <float|scale>
- Linear damping scale.
$rotdamping <float|scale>
- Rotational damping scale.
$drag <float|scale>
- Scales air resistance.
$jointskip
- Rarely used. Eliminates a joint in the collision model that you don't want to use. (i.e. if you were using a render model as a ragdoll, and it has bones you don't want)
$jointmerge
- Merges the vertex assignments for two joints.
$rootbone
- The parent-most bone that actually has collision geometry.
$jointconstrain
- The limits of the joint's movement.
$jointinertia
- Like
$inertia
, but per-bone.
$jointdamping
- Like
$damping
, but per-bone.
$jointrotdamping
- Like
$rotdamping
, but per-bone.
$jointmassbias
- Mass is automatically distributed by volume, this lets you bias it per-bone.
$noselfcollisions
- Turns off all collisions between bones in this model, usually for perf.
$jointcollide
- If any
$jointcollide
pairs are specified, only those joints collide with each other.
$animatedfriction
- Used to animate the amount of friction on joints over time.
Example
$collisionmodel "tree_deciduous_01a_physbox.smd" { $mass 350.0 $concave }