$collisionmodel: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(→‎Options: added tip for $mass)
Line 17: Line 17:


; <code>$mass <[[float]]|kilograms></code>
; <code>$mass <[[float]]|kilograms></code>
: Manually set the mass of the model, in kilograms.
: Manually set the mass of the model, in kilograms. {{tip|By default, the Player can +USE pick up 35KG max. The gravgun can pick up 250KG max.}}
{{tip|By default, the Player can +USE pickup 35kg max. The gravgun can pickup 250kg max.}}
 
;<code>$automass</code>
;<code>$automass</code>
: Calculate the mass of the model based on the volume of the collision model and the material defined in its [[Prop Data|prop_data]].
: Calculate the mass of the model based on the volume of the collision model and the material defined in its [[Prop Data|prop_data]].
; <code>$concave </code>
; <code>$concave </code>
: By default, the model compiler will generate a single [[Wikipedia:Convex|convex]] hull by bridging any [[Wikipedia:Concave|concavities]] in a collision SMD. You can create a [[Wikipedia:Concave|concave]] hull by including multiple, overlapping convex meshes in your SMD, and adding the <code>$concave</code> will preserve concavities by using multiple convex pieces. The resulting hull structure is a bit like a ''rigid'' [[$collisionjoints|ragdoll]].
: By default, studiomdl will generate a single [[Wikipedia:Convex|convex]] hull by 'shrinkwrapping' any [[Wikipedia:Concave|concavities]]. You can create a [[Wikipedia:Concave|concave]] hull by including multiple (potentially overlapping) convex shapes in your SMD and specifying <code>$concave</code>.
 
;<code>$maxconvexpieces <[[int]]></code>
;<code>$maxconvexpieces <[[int]]></code>
: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.
:By default, the model compiler limits a concave collision model to twenty convex pieces. This command can be used to override the limit if you are creating an unusually large model. {{note|Introduced with the Orange Box. In the Ep1 engine, run studiomdl with <code>-fullcollide</code> instead.}}
{{note|Introduced with the Orange Box. In the Ep1 engine, run StudioMDL with <code>-fullcollide</code> when compiling instead.}}
 
; <code>$masscenter <[[vector]]|offset></code>
; <code>$masscenter <[[vector]]|offset></code>
: Override the center of mass, in local coords.
: Override the center of mass, in local coords.
; <code>$inertia <[[float]]|scale></code>
; <code>$inertia <[[float]]|scale></code>
: Inertia scale.
: Inertia scale.
; <code>$damping <[[float]]|scale></code>
; <code>$damping <[[float]]|scale></code>
: Linear damping scale.
: Linear damping scale.
; <code>$rotdamping <[[float]]|scale></code>
; <code>$rotdamping <[[float]]|scale></code>
: Rotational damping scale.
: Rotational damping scale.
; <code>$drag <[[float]]|scale></code>
; <code>$drag <[[float]]|scale></code>
: Scales air resistance.
: Scales air resistance.

Revision as of 06:44, 7 January 2009

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

Note.pngNote:If your model has moving parts that may affect collisions, such as ragdoll limbs, use $collisionjoints instead.
Note.pngNote:Collision meshes should be extremely lo-poly in comparison to reference meshes, and even lod meshes. See collision mesh.
Tip.pngTip:Set the Console Variable 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.
Tip.pngTip:By default, the Player can +USE pick up 35KG max. The gravgun can pick up 250KG max.
$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, studiomdl will generate a single convex hull by 'shrinkwrapping' any concavities. You can create a concave hull by including multiple (potentially overlapping) convex shapes in your SMD and specifying $concave.
$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 if you are creating an unusually large model.
Note.pngNote:Introduced with the Orange Box. In the Ep1 engine, run studiomdl with -fullcollide 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.

Example

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

See also