$collisionmodel: Difference between revisions
Jump to navigation
Jump to search

Warning:Collision meshes should have extremely few polygons. See Collision mesh for examples.
Note:For collision meshes modeled in XSI ModTool, ensure that none of the edges are marked as hard edges. Hard edges generate errors in the physbox model.
Tip:Set the Console Variable
Note: Missing parameters for some options
m (→Options) |
Alexscott20 (talk | contribs) m (Removed warning, "Concave collision meshes should not have meshes overlapping." As it is said on multiple other pages that this is fine, and when testing it is. I may be misunderstanding though, so feel free to undo this if i'm wrong.) |
||
| Line 4: | Line 4: | ||
{{warning|Collision meshes should have extremely few polygons. See [[Collision mesh]] for examples.}} | {{warning|Collision meshes should have extremely few polygons. See [[Collision mesh]] for examples.}} | ||
{{note|For collision meshes modeled in XSI ModTool, ensure that none of the edges are marked as hard edges. Hard edges generate errors in the physbox model.}} | {{note|For collision meshes modeled in XSI ModTool, ensure that none of the edges are marked as hard edges. Hard edges generate errors in the physbox model.}} | ||
Revision as of 01:13, 27 August 2023
The QC command $collisionmodel is used to embed a static collision mesh in a model for use in VPhysics calculations. Animated models (including ones that will become ragdolls) should use $collisionjoints instead.
vcollide_wireframe 1 to view collision meshes in-game.Syntax
$collisionmodel <collision mesh SMD/DMX> { <options> }
Options
$mass <float|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. The portal gun can pick up 85KG 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 convex shapes (potentially overlapping) in your collision model, smoothing the hulls’ shading, and passing this command.
$maxconvexpieces <int>(in all games since
)- 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 a Costly collision model.
Note:Introduced with the Orange Box. In the Ep1 engine, run studiomdl with -fullcollideinstead. $masscenter <vector|offset>- Override the center of mass, in local coords.
$inertia <normal>- Inertia scale. Lower values make the physics model fall 'harder'.
$damping <float>- Linear damping scale.
$rotdamping <float>- Rotational damping scale.
Warning:This affects the pull of gravity on the model and if abused can make it appear to float gently through the air. Valve recommends using "friction" instead. $drag <normal>- Scales air resistance. Essentially a more subtle version of $damping.
$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.
$jointinertia- Like $inertia, but per-bone.
$jointdamping- Like $damping, but per-bone.
$jointmassbias- Mass is automatically distributed by volume, this lets you bias it per-bone.
$jointrotdamping- Like $rotdamping, but per-bone.
$jointcollide- If any $jointcollide pairs are specified, only those joints collide with each other.
$jointconstrain- The limits of the joint's movement.
$rootbone- The parent-most bone that actually has collision geometry.
$noselfcollisions- Turns off all collisions between bones in this model.
$animatedfriction- Used to animate the amount of friction on joints over time.
$addconvexsrc <file> "offset pos[ <float> <float> <float> ] angle[ <float> <float> <float> ] scale[ <float> ] concave"(only in
)- Adds a convex model onto the collision model with the specified position, angle, and scale. The "concave" option is optional.
Note:It must be formatted EXACTLY like this! $remove2d(only in
)- Used to remove flat shaded faces. Off by default.
$weldposition <float>(only in
)- The amount of distance tolerance to use when trying to merge vertices of separate concave pieces in order to create a single concave piece.
$weldnormal <float>(only in
)- The amount of tolerance to check if the vertice normal is similar enough to consider merging to a unique vertice. Used in conjunction with $weldposition.
$assumeworldspace(only in
)- Assumes the joints are positioned in world space.
Example
$collisionmodel "tree_deciduous_01a_physbox.smd"
{
$mass 350.0
$concave
}