$collisionjoints: Difference between revisions
Jump to navigation
Jump to search
Tip:Use
Shawnolson (talk | contribs) (→Options: Added confirm notice for the All item... I've found the $masscenter causing a compile error when using $collisionjoints) |
TomEdwards (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
{{toc-right}} | {{toc-right}} | ||
The [[QC command]] '''<code>$collisionjoints</code>''' is used to define a | The [[QC command]] '''<code>$collisionjoints</code>''' is used to define a [[collision mesh]] made up of multiple independent parts, either for a [[ragdoll]] or for [[$sequence|an animated object]]. If your model has no moving parts that need to collide, use <code>[[$collisionmodel]]</code> instead. | ||
A ragdoll can have up to 25 separate parts (i.e. 25 bones can be simulated). The limit for an animated model is unknown. | |||
{{tip|Use <code>vcollide_wireframe 1</code> to view collision meshes in-game.}} | {{tip|Use <code>vcollide_wireframe 1</code> to view collision meshes in-game.}} | ||
== Syntax == | == Syntax == |
Revision as of 03:02, 23 May 2011
The QC command $collisionjoints
is used to define a collision mesh made up of multiple independent parts, either for a ragdoll or for an animated object. If your model has no moving parts that need to collide, use $collisionmodel
instead.
A ragdoll can have up to 25 separate parts (i.e. 25 bones can be simulated). The limit for an animated model is unknown.

vcollide_wireframe 1
to view collision meshes in-game.Syntax
$collisionjoints <collision mesh SMD> { <options> }
Options
- All
$collisionmodel
options, except$concave
- Each individual bone's collision mesh is convex. Only concavity between bones is permitted.
Confirm:Is $masscenter allowed?
- $rootbone <string|bone>
- Overrides the SMD's root bone.
- Todo: Purpose.
- $jointskip <string|bone>
- Eliminates a joint in the skeleton that you don't want to use in collisions.
$jointmerge <string|bone1> <string|bone2>
- Merges the vertex assignments for two joints.
$jointconstrain <string|bone> <axis> <allow_option> <min_angle> <max_angle> <friction>
- Limits of the a bone's movement relative to its parent bone. See $jointconstrain for a full description.
$jointinertia <string|bone> <float|scale>
- Per-bone
$inertia
. $jointdamping <string|bone> <float|scale>
- Per-bone
$damping
. $jointrotdamping <string|bone> <float|scale>
- Per-bone
$rotdamping
. $jointmassbias <string|bone> <float|bias>
- Mass is automatically distributed by volume, this lets you bias it per-bone.
- Todo: Difference from a $weightlist.
$noselfcollisions
- Disables collisions between bones in the same collision model for performance.
Warning:Results in arms clipping through torsos and other weirdness if used improperly!
$jointcollide <string|bone1> <string|bone2>
- If any
$jointcollide
pairs are specified, only those joints collide with each other. $animatedfriction <float|FrictionTimeIn> <float|FrictionTimeOut> <float|FrictionTimeHold> <float|MinAnimatedFriction> <float|MaxAnimatedFriction>
- Used to animate the amount of friction on joints over time.
Example
$collisionjoints "bip01_phys.smd"
{
$mass 115.0
$inertia 2.00
$damping 0.01
$rotdamping 0.40
$rootbone "bip01_pelvis"
$jointmerge "bip01_pelvis" "bip01_spine"
$jointmassbias "bip01_l_arm2" 2.00
$jointconstrain "bip01_l_arm2" x limit 0.00 0.00 0.00
$jointconstrain "bip01_l_arm2" y limit 0.00 0.00 0.00
$jointconstrain "bip01_l_arm2" z limit -120.00 4.00 0.20
$jointrotdamping "bip01_head" 5.00
$jointconstrain "bip01_head" x limit -20.00 20.00 0.00
$jointconstrain "bip01_head" y limit -25.00 25.00 0.04
$jointconstrain "bip01_head" z limit -13.00 30.00 0.04
}