This article relates to the game "Day of Defeat". Click here for more information.

Env model (GoldSrc): Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Updated old entity format to {{this is a}}. This action was perfomed by a bot.)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{dod topicon}}
{{dod topicon}}
{{this is a|point|<!--sprite=1-->|name=env_model|engine=gldsrc|game=Day of Defeat}}
{{CD|CEnvModel|goldsrc=effects.cpp|base=CBaseAnimating}}
Originally found in [[Spirit of Half-Life]], 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".
{{this is a|model entity|<!--sprite=1-->|name=env_model|game=Day of Defeat|game1=Cry of Fear|game2=Paranoia|game3=Spirit of Half-Life}}
 
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) and ZHLT light flags to "Opaque". Set the texture scale to 4.0 or higher to avoid wasting allocblock on invisible faces. 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|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 9: Line 11:
== Key Values ==
== Key Values ==
{{Hl1_kv_targetname}}
{{Hl1_kv_targetname}}
:{{note|In {{dod|2}}, unnamed env_models are made client-only after spawning. 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_renderfields}}
{{hl1 kv model}}
{{KV|Model name|intn=model|studio|Path to the model to be displayed.}}
{{KV|Skin|not={{dod}}|intn=skin|int|Display different skins of the model if available.}}
{{KV|Skin|intn=skin|int|Display different skins of the model if aviable.}}
{{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 aviable.}}
{{KV|Sequence when on|intn=m_iszSequence_On|string|Displays the animation sequence of the model when on.}}
{{KV|Sequence when on|intn=m_iszSequence_On|string|Displays the animation sequence of the model when on.}}
{{KV|Behaviour when on|intn=m_iAction_On|choices|Behaviour of the model when on.}}
{{KV|Behaviour when on|intn=m_iAction_On|choices|Behaviour of the model when on.}}
Line 36: Line 38:
| 2 || Change state when sequence ends
| 2 || Change state when sequence ends
|}
|}
{{Hl1_kv_renderfields}}
{{Hl1 kv zhlt point}}


== Flags ==
== Flags ==
Line 42: Line 46:


== See also ==
== See also ==
* {{ent|cycler_sprite|eng=goldsrc}} - Similar entity available in all {{gldsrc|4}} games, without animation. Can display MDL and BSP models, despite its name. Most frequently used in {{cs|4}}; have issues when used in singleplayer.
* {{ent|cycler_sprite|eng=goldsrc}} - Similar entity available in all {{gldsrc|4}} games, without animation. Can display MDL and BSP models, despite its name. Most frequently used in {{cs|4}}; will not survive save-loads in singleplayer.
* {{ent|item_generic|eng=goldsrc}} - Equivalent entity in {{hlop4|4}}, {{czero|4}}, {{czeror|4}}, and {{sven|4}}.
* {{ent|item_generic|eng=goldsrc}} - Equivalent entity in {{hlop4|4}}, {{czeror|4}}, and {{sven|4}}.
* {{ent|prop_dynamic}} - comparable entity in {{src|4}}
* {{ent|prop_dynamic}} - comparable entity in {{src|4}}

Latest revision as of 06:55, 15 July 2025

C++ Class hierarchy
CEnvModel
CBaseAnimating
CBaseDelay
CBaseEntity
C++ effects.cpp

env_model is a model entity available in Day of Defeat Day of Defeat, Cry of Fear Cry of Fear, Paranoia Paranoia, and Spirit of Half-Life Spirit of Half-Life.

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".

Icon-Important.pngImportant:Env_models do not have any collision, and will not cast shadows with normal compilers.
PlacementTip.pngWorkaround:A few options:
  • Create a brush-based collision mesh and tie it to a func_wall with renderamt set to 0 (aka invisible) ZHLT light flags to "Opaque", and zhlt_striprad set to 1 (aka enabled). This will also cast lightmap shadows, unless alphatest ({) textures are used.
    Note.pngNote: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.pngNote: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.
Note.pngNote:In Day of Defeat Day of Defeat, unnamed env_models are made client-only after spawning. 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.
Skin (skin) <integer> (not in Day of Defeat)
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 FX (renderfx) <choices>
Render FX mode to use, for special effects.
Value Description
0 Normal
1 Slow Pulse
2 Fast Pulse
3 Slow Wide Pulse
4 Fast Wide Pulse
5 Slow Fade Away
6 Fast Fade Away
7 Slow Become Solid
8 Fast Become Solid
9 Slow Strobe
10 Fast Strobe
11 Faster Strobe
12 Slow Flicker
13 Fast Flicker
14 Constant Glow
15 Distort
16 Hologram (Distort + fade)
Render Mode (rendermode) <choices>
Render Mode to use.
Value Description
0 Normal
1 Color
2 Texture
3 Glow
4 Solid
5 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.


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.pngTip:To avoid having the copied lighting visibly affecting the brush lighting, put a 16x16x1 func_detail with zhlt_noclip enabled directly below this model's origin. Texture the top face with black_HIDDEN, and the rest of the faces with SKIP.
Note.pngNote: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 model KV.
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