This article's documentation is for anything that uses the Source engine. Click here for more information.

$staticprop: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(usage - more accurate info)
No edit summary
 
(37 intermediate revisions by 16 users not shown)
Line 1: Line 1:
{{LanguageBar}}
{{this is a|QC command|name=$staticprop}} It tells the model compiler that this model is not intended to have any moving parts. This will cause the compiler to strip away the skeleton & animations to just a single, unmoving bone named <code>static_prop</code>.
A model flagged with <code>$staticprop</code> is ''not'' necessarily limited to just being used with the <code>[[prop_static]]</code> [[point entity]]. <code>[[prop_static]]</code> will not function unless the model was compiled with this command. This command is also recommended for [[physics prop]]s, since physics props have animation forcibly disabled.
{{bug|If the model being compiled has a bone named <code>static_prop</code> already, it can cause the physics model for the prop to be misaligned, should the bone not be oriented how the model compiler expects it to be.}}
{{bug|[[$bodygroup|Bodygroups]] do not play well with this command. <code>prop_static</code> does not actually support bodygroups anyway, and therefore always defaults to whatever the default bodygroup state is.
* The <code>blank</code> keyword will outright fail compilation with an EXCEPTION_ACCESS_VIOLATION error.
* If used as a prop_static, VRAD will generate lightmaps for each bodygroup, if they're present, even though this is entirely useless.
Bodygroups can still be reliably used with $staticprop on entities other than prop_static, as long as none of the bodies are blank.}}
==Example==
$modelname props_junk/metal_paintcan001a.mdl
  $staticprop
  $staticprop
* Models where $staticprop has been used may be placed as [[prop_static]] entities, or as [[prop_physics]] (if they also have physics data and a collision mesh). Note, despite the name, models compiled with $staticprop do not always need to be used as prop_statics.
$body body metal_paintcan001a_lod0
* Causes all bones to be collapsed in the object; this can only be used when there’s no animation associated with the object, and no ragdoll behavior.
[...]
* This should be used for every non-animating, non-ragdoll prop, as it increases the render speed for the model. You want to use it wherever possible though, because it will make the models render more quickly.
 
* This will also cause the model's shadow to be generated from its collision model when the map is compiled.
==See also==
* For example:
* [[prop_static]]
$modelname "props/rock.mdl"
* [[prop_physics]]
$cdmaterials "models/props/"
$model "Rock" "rock.smd"
$sequence "idle" "rock.smd"
'''$staticprop'''


[[Category:QC Commands]]
[[Category:Modeling]]
[[Category:Source]]

Latest revision as of 17:52, 3 August 2025

English (en)Русский (ru)Translate (Translate)

$staticprop is a QC command available in all Source Source games. It tells the model compiler that this model is not intended to have any moving parts. This will cause the compiler to strip away the skeleton & animations to just a single, unmoving bone named static_prop.

A model flagged with $staticprop is not necessarily limited to just being used with the prop_static point entity. prop_static will not function unless the model was compiled with this command. This command is also recommended for physics props, since physics props have animation forcibly disabled.

Icon-Bug.pngBug:If the model being compiled has a bone named static_prop already, it can cause the physics model for the prop to be misaligned, should the bone not be oriented how the model compiler expects it to be.  [todo tested in ?]
Icon-Bug.pngBug:Bodygroups do not play well with this command. prop_static does not actually support bodygroups anyway, and therefore always defaults to whatever the default bodygroup state is.
  • The blank keyword will outright fail compilation with an EXCEPTION_ACCESS_VIOLATION error.
  • If used as a prop_static, VRAD will generate lightmaps for each bodygroup, if they're present, even though this is entirely useless.
Bodygroups can still be reliably used with $staticprop on entities other than prop_static, as long as none of the bodies are blank.  [todo tested in ?]

Example

$modelname props_junk/metal_paintcan001a.mdl
$staticprop
$body body metal_paintcan001a_lod0
[...]

See also