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
No edit summary
No edit summary
 
(36 intermediate revisions by 16 users not shown)
Line 1: Line 1:
The [[QC command]] '''<code>$staticprop</code>''' specifies that the model being compiled does not have any moving parts. This allows several useful optimisations to take place, so should be used whenever possible.
{{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>.


{{note|The command does ''not'' have anything to do with [[prop_static]].}}
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.


== Effects ==
{{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.}}


* Collapses all bones
{{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.
* Allows [[Vrad|VRAD]] to cast shadows using the collision model
* The <code>blank</code> keyword will outright fail compilation with an EXCEPTION_ACCESS_VIOLATION error.
* {{todo|Other?}}
* 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.}}


== QC syntax example==
==Example==
$modelname props_junk/metal_paintcan001a.mdl
$staticprop
$body body metal_paintcan001a_lod0
[...]


[[$modelname]] "weapons/shell.mdl"
==See also==
'''$staticprop'''
* [[prop_static]]
[[$cdmaterials]] "models/weapons/"
* [[prop_physics]]
[[$body]] shell "shell-ref.smd"
[[$sequence]] idle "shell-idle.smd" ''// A default animation is still required''


Note how the command does not accept any parameters.
[[Category:Modeling]]
 
[[Category:Source]]
[[Category:QC Commands]]

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