Env model (GoldSrc): Difference between revisions
Jump to navigation
Jump to search
Important:Env_models do not have any collision, and will not cast shadows with normal compilers.
Workaround:A few options:
SirYodaJedi (talk | contribs) |
SirYodaJedi (talk | contribs) (No, actually, most of them use rendermode 4) |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
{{dod topicon}} | {{dod topicon}} | ||
{{CD|CEnvModel|goldsrc=effects.cpp | {{CD|CEnvModel|base=CBaseAnimating|goldsrc=[https://github.com/HLSources/Spirit-of-Half-Life/blob/5ad2e00fe1546cc73e19255c75512a11ee3980c8/dlls/effects.cpp#L1812 effects.cpp]}} | ||
{{this is a|model entity|<!--sprite=1-->|name=env_model|game=Day of Defeat| | {{this is a|model entity|<!--sprite=1-->|name=env_model|game=Spirit of Half-Life|game1=Day of Defeat|game2=Cry of Fear|game3=Paranoia}} | ||
It is used to place a model (usually an [[MDL (GoldSrc)|MDL]]) on a map, with optional animation and ''no collision''. In the official [[FGD]] file it is descibed as a "new alternative to cyclers". | It is used to place a model (usually an [[MDL (GoldSrc)|MDL]]) on a map, with optional animation and ''no collision''. In the official [[FGD]] file it is descibed as a "new alternative to cyclers". | ||
{{modernImportant|Env_models do not have any collision, and will not cast shadows with normal compilers. {{workaround|A few options: | {{modernImportant|Env_models do not have any collision, and will not cast shadows with normal compilers. {{workaround|A few options: | ||
* Create a brush-based collision mesh and tie it to a {{ent|func_wall (GoldSrc)|alt=func_wall}} with {{code|renderamt}} set to 0 (aka invisible) ZHLT light flags to "Opaque", and {{code|zhlt_striprad}} set to 1 (aka enabled). This will also cast lightmap shadows, unless alphatest ({{code|{}}) textures are used.{{note|Will use up an extra [[edict]]; use sparingly.}} | * Create a brush-based collision mesh and tie it to a {{ent|func_wall (GoldSrc)|alt=func_wall}} with {{code|rendermode}} set to 4 (aka solid), {{code|renderamt}} set to 0 (aka invisible), ZHLT light flags to "Opaque", and {{code|zhlt_striprad}} set to 1 (aka enabled). This will also cast lightmap shadows, unless alphatest ({{code|{}}) textures are used.{{note|Will use up an extra [[edict]]; use sparingly.}} | ||
* Use NULL brushes on a func_detail, and ensure the env_model's origin is not inside of the brushes. | * Use NULL brushes on a func_detail, and ensure the env_model's origin is not inside of the brushes. | ||
* Use clip brushes. Note that clip brushes can be shot through, so this should only be done for certain niche situations. Additionally, this method will not cast lightmap shadows.{{note|NULL and clip brushes will use the default footstep sounds when stepped on; the func_wall method should be used for non-concrete surfaces, such as tanks or sandbags.}} }} }} | * Use clip brushes. Note that clip brushes can be shot through, so this should only be done for certain niche situations. Additionally, this method will not cast lightmap shadows.{{note|NULL and clip brushes will use the default footstep sounds when stepped on; the func_wall method should be used for non-concrete surfaces, such as tanks or sandbags.}} }} }} | ||
| Line 11: | Line 11: | ||
== Key Values == | == Key Values == | ||
{{Hl1_kv_targetname}} | {{Hl1_kv_targetname}} | ||
:{{note|In {{dod|2}}, unnamed env_models are | :{{note|In {{dod|2}}, unnamed env_models are loaded clientside, instead of by the server. This means they only count as an [[edict]] for a split second upon loading the map or restarting the round.}} | ||
{{KV_Angles}} | {{KV_Angles}} | ||
{{hl1 kv model}} | {{hl1 kv model|no sven=1}} | ||
{{KV|Skin|not={{dod}}|intn=skin|int|Display different skins of the model if available.}} | {{KV|Skin|not={{dod}}|intn=skin|int|Display different skins of the model if available.}} | ||
{{KV|Body|intn=body|int|Display different sub-models of the model if available.}} | {{KV|Body|intn=body|int|Display different sub-models of the model if available.}} | ||
Latest revision as of 09:37, 24 November 2025
| CEnvModel |
env_model is a model entity available in
Spirit of Half-Life,
Day of Defeat,
Cry of Fear, and
Paranoia.
It is used to place a model (usually an MDL) on a map, with optional animation and no collision. In the official FGD file it is descibed as a "new alternative to cyclers".
- Create a brush-based collision mesh and tie it to a func_wall with
rendermodeset to 4 (aka solid),renderamtset to 0 (aka invisible), ZHLT light flags to "Opaque", andzhlt_stripradset to 1 (aka enabled). This will also cast lightmap shadows, unless alphatest ({) textures are used.
Note:Will use up an extra edict; use sparingly. - Use NULL brushes on a func_detail, and ensure the env_model's origin is not inside of the brushes.
- Use clip brushes. Note that clip brushes can be shot through, so this should only be done for certain niche situations. Additionally, this method will not cast lightmap shadows.
Note:NULL and clip brushes will use the default footstep sounds when stepped on; the func_wall method should be used for non-concrete surfaces, such as tanks or sandbags.
Key Values
- Name (targetname) <string>
- The targetname that other entities refer to this entity by, usually via the target, killtarget, and TriggerTarget KVs.
Note:In
Day of Defeat, unnamed env_models are loaded clientside, instead of by the server. This means they only count as an edict for a split second upon loading the map or restarting the round.
- Pitch Yaw Roll (Y Z X) (angles) <QAngle>
- This entity's orientation in the world. Pitch is rotation around the Y axis, yaw is the rotation around the Z axis, roll is the rotation around the X axis.
- Model (model) <model path>
- Model to display (MDL, BSP, or SPR). Relative to mod folder.
- Colormap (colormap) <integer>
- Works like the deathmatch recolor system, wherein this KV equals
(bottomcolor * 256) + topcolor. This value can be calculated using
.
- Skin (skin) <integer> (not in
) - Display different skins of the model if available.
- Body (body) <integer>
- Display different sub-models of the model if available.
- Sequence when on (m_iszSequence_On) <string>
- Displays the animation sequence of the model when on.
- Behaviour when on (m_iAction_On) <choices>
- Behaviour of the model when on.
Value Description 0 Freeze when sequence ends 1 Loop 2 Change state when sequence ends
- Sequence when off (m_iszSequence_Off) <string>
- Displays the animation sequence of the model when off.
- Behaviour when off (m_iAction_Off) <choices>
- Behaviour of the model when off.
Value Description 0 Freeze when sequence ends 1 Loop 2 Change state when sequence ends
- Render Mode (rendermode) <choices>
- Render Mode to use.
Render modes - Normal
- Color
- Texture
- Glow
- Solid
- Additive
- Render Amount (0-255) (renderamt) <integer>
- Controls transparency when using another render mode then normal. 0 is completely invisible, and 255 is opaque. If render mode is solid, then all values except 0 are opaque.
- Render Color (R G B) (rendercolor) <color255>
- Color to use by the specified render mode.
Also used on brush entities to control the speed of scrolling textures; see func_conveyor for more information.
- Render FX (renderfx) <choices>
- Render FX mode to use, for special effects.
Render effects - Normal
- Slow Pulse
- Fast Pulse
- Slow Wide Pulse
- Fast Wide Pulse
- Slow Fade Away
- Fast Fade Away
- Slow Become Solid
- Fast Become Solid
- Slow Strobe
- Fast Strobe
- Faster Strobe
- Slow Flicker
- Fast Flicker
- Constant Glow
- Distort
- Hologram (Distort + fade)
ZHLT:
- Copy lighting from (VHLT+) (zhlt_copylight) <targetname>
- Copies the lighting from the named entity to the nearest lightmap luxel below this entity's origin.
Tip:To avoid having the copied lighting visibly affecting the brush lighting, put a 16x16x1 func_detail with zhlt_noclipenabled directly below this model's origin. Texture the top face withblack_HIDDEN, and the rest of the faces withSKIP. If the player or any other MDL entity can go above this model, place another identical func_detail above this model's origin to reduce the chance of extraneous models being lit weirdly.
Note:Not compatible with entities using the effect flag EF_INVLIGHT.
- Model shadows (UMHLT, SDHLT) (zhlt_studioshadow) <boolean>
- Enable to cast shadows from MDLs found in the
modelKV.
- Model shadow mode (SDHLT) (zhlt_shadowmode) <choices>
- 0 - Use Bounding Box
- 1 - Use triangles (default)
- 2 - Use Bounding boxes of triangles
Flags
- Initially Off : [1]
- Drop to Floor : [2]
See also
- cycler_sprite - Similar entity available in all
GoldSrc games, without animation. Can display MDL and BSP models, despite its name. Most frequently used in
Counter-Strike; will not survive save-loads in singleplayer. - item_generic - Equivalent entity in
Half-Life: Opposing Force,
Condition Zero Deleted Scenes, and
Sven Co-op. - prop_dynamic - comparable entity in
Source