Model entity/Generic Keyvalues, Inputs and Outputs/Keyvalues: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
(Replaced content with "{{Note|Template no longer needed kept for page history. Content moved to CBaseAnimating}}")
Tag: Replaced
Line 1: Line 1:
{{Lang}}
{{Note|Template no longer needed kept for page history. Content moved to [[CBaseAnimating]]}}
{{Doc}}
 
== Tests ==
{{KV|start}}
{{KV BaseAnimating|new=1}}
{{KV|end}}
 
<includeonly><onlyinclude><!--
 
-->{{#ifeq:{{{new|0}}}|0||
{{KV|new=1|model|string|src=BaseAnimating|World Model|The [[model]] this entity should appear as. 128-character limit.}}
 
{{KV|new=1|skin or ModelSkin {{as}}|int|src=BaseAnimating|[[Skin]]|value=0|nofgd={{{nofgd|}}}|Some models have multiple skins. This value selects from the index, starting with 0.}}
 
{{KV|new=1|solid|choices|src=BaseAnimating|Collisions|value=Use VPhysics|nofgd={{{nofgd|}}}|Method of collision for this entity.
 
'''Values:'''
:*'''0''': Not Solid
:*'''1''': BSP ([[QPhysics]]) {{#if:{{{nofgd|}}}||{{Not in FGD}}}} {{#if:{{{l4d|}}}{{{l4d2|}}}{{{as|}}}{{{base|}}}||{{bug|In {{portal2|4}}, if an entity using QPhysics collisions is hit by [[Gel]], the game will crash!}} }}
:*'''2''': [[Bounding box|Bounding Box]]
:*'''3''': Oriented Bounding Box (Use for runtime spawned rotated brush entities) {{#if: {{{nofgd|}}}||{{Not in FGD}} }}
:*'''4''': Oriented Bounding Box, constrained to [[QAngle|Yaw]] only {{#if: {{{nofgd|}}}||{{Not in FGD}} }}
:*'''5''': Custom/Test (Usually no collision with anything) {{#if: {{{nofgd|}}}||{{Not in FGD}} }}
:*'''6''': [[VPhysics]]
}}
 
{{KV|new=1|hitboxset|string|src=BaseAnimating|[[Hitbox]] Set|nofgd=1|Sets the {{Ent|$hboxset}} to use.}}
 
{{KV|new=1|body or SetBodyGroup|int|src=BaseAnimating|Body Group|value=0|nofgd=1|Sets the the active submodel ({{Ent|$bodygroup}}).{{warning|Submodel changes do not appear in {{hammer|4}}, which may result in an inaccurate preview.}}}}<!-- `$bodygroup`s are referred to as Submodels in HLMV and HLAM -->
 
{{KV|new=1|modelindex|short|src=BaseAnimating|Model Index|nofgd=1|Given the number index from dumping the <code>cl_precacheinfo modelprecache</code> table, sets entity model to the index. {{Warning|If an entity has animations that ''will be'' played, then the set model also must have its own sequences, else the game crashes.}}}}
 
{{#if:{{{l4d|}}}{{{l4d2|}}}
|
|{{KV|new=1|modelscale|float|src=BaseAnimating|Model Scale|value=1.0|since=EP2|A multiplier for the size of the model. Negative values are accepted. Scales the physics model if the entity has a [[VPhysics]] object. {{Warning|Negative or extremely high values can cause crashes!}}{{note|Scale may not appear in {{hammer4|2}}, but will appear in-game (tested in {{dods}}). This is fixed in {{hammer++|2}} and {{strata|4}} Hammer.}}{{warning|Scaling physics objects is extremely expensive, and it can take x100 longer (~5 milliseconds) to spawn the entity! This is because it has to re-generate a new physics mesh each time. If this is an issue, recompile the model with the scaling baked in, or apply modelscale after spawning (only the visual will be scaled).}}}}
}}
 
{{#if:{{{base|}}}|{{KV DXLevelChoice|new=1}}}}
 
{{KV|sectiontitle = Animating}}
 
{{KV|new=1|sequence|int|src=BaseAnimating|Sequence|nofgd=1|Default animation sequence for the model to be playing after spawning.}}
 
{{KV|new=1|playbackrate|float|src=BaseAnimating|Playback Rate|nofgd=1|A multiplier of the [[framerate]] at which animations are played, negative values are accepted. Default is 1.0.}}
 
{{KV|new=1|cycle|float|src=BaseAnimating|Cycle|nofgd=1|The current frame of the current animation, on a range from 0-1.}}
 
{{KV|new=1|texframeindex|int|src=BaseAnimating|Texture Frame|nofgd=1|The initial frame number for all animated textures on this entity.}}
 
{{KV|sectiontitle = Effects - Render}}
 
{{KV|new=1|fademindist|float|src=BaseAnimating|Start Fade Distance|value=-1|nofgd={{{nofgd|}}}|Distance at which the entity starts fading. If 0 or less, the entity will disappear instantly when end fade is hit. The value will scale appropriately if the entity is in a [[3D Skybox]].}}
 
{{KV|new=1|fademaxdist|float|src=BaseAnimating|End Fade Distance|value=0|nofgd={{{nofgd|}}}|Distance at which the entity ends fading. If 0 or less, the entity won't disappear at all. The value will scale appropriately if the entity is in a 3D Skybox.}}
 
{{KV|new=1|fadescale|float|src=BaseAnimating|Fade Scale|value=1|nofgd={{{nofgd|}}}|If specified in the {{Ent|worldspawn}}, or if the engine is running below DirectX 8, entities will fade out even if the fade distances above aren't specified. This value gives more control over when this happens: numbers smaller than 1 cause the entity to fade out at further distances, and greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also {{Ent|$noforcedfade}}.}}
 
{{KV|new=1|renderamt|int|src=BaseAnimating|FX Amount/Transparency (0–255)|value=255|nofgd={{{nofgd|}}}|Transparency amount, requires a Render Mode other than '''Normal'''. 0 is invisible, 255 is fully visible.}}
 
{{KV|new=1|rendercolor|color255|src=BaseAnimating|Render Color (R G B)|color=255 255 255|nofgd={{{nofgd|}}}|Color tint.}}
 
{{#if:{{{base|}}}| {{KV Render FX|new=1|src=BaseAnimating|l4d=b4}} | {{#if:{{{l4d|}}}{{{l4d2|}}}{{{as|}}}{{{portal2|}}}|{{KV Render FX|new=1|src=BaseAnimating|l4d=onlyafter}}|{{KV Render FX|src=BaseAnimating|new=1}}}} }}
 
{{KV|new=1|rendermode|choices|src=BaseAnimating|[[Render Mode]]|value=Normal|nofgd={{{nofgd|}}}|Set a non-standard rendering mode on this entity.
 
'''Values:'''
:*'''0''': Normal
:*'''1''': Color
:*'''2''': Texture
:*'''3''': Glow
:*'''4''': Solid/Alphatest {{obs}}
:*'''5''': Additive
:*'''6''': "Environmental" (removed, does nothing) {{Obs}} {{#if:{{{nofgd|}}}||{{not in FGD}}}}
:*'''7''': Additive Fractional Frame
:*'''8''': Alpha Add {{#if:{{{nofgd|}}}||{{not in FGD}}}}
:*'''9''': World Space Glow
:*'''10''': Don't Render
}}
 
{{KV|sectiontitle = Effects - Environment}}
 
{{KV|new=1|disableshadows|boolean|src=BaseAnimating|Disable Shadows|value=No|nofgd={{{nofgd|}}}|Prevent the entity from creating cheap render-to-texture shadows. Does not affect [[shadow mapping]].}}
 
{{KV|new=1|disablereceiveshadows|boolean|src=BaseAnimating|Disable Receiving Shadows|value=No|nofgd={{{nofgd|}}}|Prevent the entity from receiving shadows on itself.}}
 
{{KV|new=1|shadowcastdist|int|src=BaseAnimating|Shadow Cast Distance|value=0|nofgd={{{nofgd|}}}|Sets how far the entity casts dynamic shadows. 0 means default distance from the {{Ent|shadow_control}} entity.}}
 
{{KV|new=1|LightingOrigin|targetname|src=BaseAnimating|Lighting Origin|nofgd={{{nofgd|}}}|Select an entity (not {{Ent|info_lighting}}!) from which to sample lighting instead of the entity's [[origin]].}}
 
{{#if:{{{l4d|}}}{{{l4d2|}}}
|
|{{KV|new=1|deprecated=1|LightingOriginHack|targetname|src=BaseAnimating|Lighting Origin Offset|not={{l4ds}}|nofgd=1|The {{Ent|info_lighting_relative}} from which to sample lighting instead of the entity's origin. Use <tt>Lighting Origin</tt> instead.}}
}}<!-- will show as long as neither l4d nor l4d2 are 1-->
 
{{#if:{{{l4d|}}}{{{l4d2|}}}{{{as|}}}{{{base|}}}
|<!-- will show as long as nothing other than portal2 is checked -->
|{{KV|new=1|disableflashlight|boolean|src=BaseAnimating|Disable Flashlight|value=No|since=P2|nofgd={{{nofgd|}}}|Used to disable [[env_projectedtexture|projected texture]] lighting and shadows on this entity. Identical to <tt>[[Effect flags|EF_NOFLASHLIGHT]]</tt>.}}
 
{{KV|new=1|disableshadowdepth|boolean|src=BaseAnimating|Disable ShadowDepth|value=No|since=P2|nofgd={{{nofgd|}}}|Makes this entity not cast a shadow from {{Ent|env_projectedtexture}} entities. Identical to <tt>[[Effect flags|EF_NOSHADOWDEPTH]]</tt>.}}
 
{{KV|new=1|shadowdepthnocache|choices|src=BaseAnimating|Projected Texture Cache|value=Default|since=P2|nofgd={{{nofgd|}}}|Used to hint [[env_projectedtexture|projected texture system]] whether it is sufficient to cache shadow volume of this entity or to force render it every frame instead. Identical to<code>[[Effect flags|EF_SHADOWDEPTH_NOCACHE]]</code>.
 
'''Values:'''
:*0: Default
:*1: No cache—render every frame
:*2: Cache it—render only once}}
}}
|}}<!--
 
-->{{#ifeq:{{{new|0}}}|0|
{{ScrollBox|title=BaseAnimating|noscroll={{{noscroll|}}}|
{{KV|World Model|intn=model|string|The [[model]] this entity should appear as. 128-character limit.}}
{{KV|[[Skin]]|intn=skin or ModelSkin {{as}}|int|Some models have multiple skins. This value selects from the index, starting with 0.|nofgd={{{nofgd|}}}}}
{{KV|Collisions|intn=solid|choices|Method of collision for this entity.<!-- BREAK
-->{{Expand|title=Choices|margin_left=2em|
:*'''0''': None
:*'''1''': BSP ([[QPhysics]]) {{#if: {{{nofgd|}}}||{{Not in FGD}} }} {{#if: {{{l4d|}}}{{{l4d2|}}}{{{as|}}}{{{base|}}}||{{Bug|In {{portal2|4}}, if an entity using QPhysics collisions is hit by [[Gel]], the game will crash!}} }}
:*'''2''': [[Bounding box|Bounding Box]]
:*'''3''': Oriented Bounding Box (Use for runtime spawned rotated brush entities) {{#if: {{{nofgd|}}}||{{Not in FGD}} }}
:*'''4''': Oriented Bounding Box, constrained to [[QAngle|Yaw]] only {{#if: {{{nofgd|}}}||{{Not in FGD}} }}
:*'''5''': Custom/Test (Usually no collision with anything) {{#if: {{{nofgd|}}}||{{Not in FGD}} }}
:*'''6''': [[VPhysics]]}}|nofgd={{{nofgd|}}}
}}
{{KV|[[Hitbox]] Set|intn=hitboxset|string|Sets the {{Ent|$hboxset}} to use.|nofgd=1}}
{{KV|Body Group|intn=body or SetBodyGroup|int|Sets the the active {{Ent|$bodygroup}}.|nofgd=1}}
<!-- We should make a new page for "model index"? -->
{{KV|Model Index|intn=modelindex|short|Given the number index from dumping the <code>cl_precacheinfo modelprecache</code> table, sets entity model to the index. {{warning|If an entity has animations that ''will be'' played, then the set model also must have its own sequences, else the game crashes.}}|nofgd=1}}
{{#if: {{{l4d|}}}{{{l4d2|}}}||{{KV|Model Scale|intn=modelscale|float|A multiplier for the size of the model. Negative values are accepted. Does not alter the physics collisions in most cases, however.{{warning|Negative or extremely high values can cause crashes!}}{{note|Scale may not appear in {{hammer4|2}}, but will appear in-game (tested in {{dods}}). This is fixed in {{hammer++|2}}.}}|since=EP2}}
}}
{{#if: {{{base|}}} | {{KV DXLevelChoice}} }}
<!--
  ++ Animating ++
-->
{{style|color:white;font-size:14px;padding-bottom:5px|'''Animating'''}}
{{KV|Sequence|intn=sequence|int|Default animation sequence for the model to be playing after spawning.|nofgd=1}}
{{KV|Playback Rate|intn=playbackrate|float|A multiplier of the [[framerate]] at which animations are played, negative values are accepted. Default is 1.0.|nofgd=1}}
{{KV|Cycle|intn=cycle|float|The current frame of the current animation, on a range from 0-1.|nofgd=1}}
{{KV|Texture Frame|intn=texframeindex|int|The initial frame number for all animated textures on this entity.|nofgd=1}}
<!--
  ++ Effects - Render ++
-->
{{style|border-bottom:1px solid #3A3937;display:block;  color:white;font-size:16px;padding-bottom:6px|'''Effects - Render'''}}
 
{{KV|Start Fade Distance|intn=fademindist|float|Distance at which the entity starts fading. If 0 or less, the entity will disappear instantly when end fade is hit. The value will scale appropriately if the entity is in a [[3D Skybox]].|nofgd={{{nofgd|}}}}}
{{KV|End Fade Distance|intn=fademaxdist|float|Distance at which the entity ends fading. If 0 or less, the entity won't disappear at all. The value will scale appropriately if the entity is in a 3D Skybox.|nofgd={{{nofgd|}}}}}
{{KV|Fade Scale|intn=fadescale|float|If specified in the {{Ent|worldspawn}}, or if the engine is running below DirectX 8, entities will fade out even if the fade distances above aren't specified. This value gives more control over when this happens: numbers smaller than 1 cause the entity to fade out at further distances, and greater than 1 cause it to fade out at closer distances. Using 0 turns off the forced fade altogether. See also {{Ent|$noforcedfade}}.|nofgd={{{nofgd|}}}}}
{{KV|FX Amount/Transparency (0–255)|intn=renderamt|int|Transparency amount, requires a Render Mode other than '''Normal'''. 0 is invisible, 255 is fully visible.|nofgd={{{nofgd|}}}}}
{{KV|Render Color (R G B)|intn=rendercolor|color255|Color tint.|nofgd={{{nofgd|}}}}}
{{#if: {{{base|}}}
| {{KV Render FX|l4d=b4}}
| {{#if: {{{l4d|}}}{{{l4d2|}}}{{{as|}}}{{{portal2|}}} | {{kV Render FX|l4d=onlyafter}} | {{KV Render FX}} }}
}}
{{KV Rendermode}}
<!--
  ++ Effects - Environment ++
-->
{{style|border-bottom:1px solid #3A3937;display:block;  color:white;font-size:16px;padding-bottom:6px|'''Effects - Environment'''}}
 
{{KV|Disable Shadows|intn=disableshadows|boolean|Prevent the entity from creating cheap render-to-texture shadows. Does not affect [[shadow mapping]].|nofgd={{{nofgd|}}}}}
{{KV|Disable Receiving Shadows|intn=disablereceiveshadows|boolean|Prevent the entity from receiving shadows on itself.|nofgd={{{nofgd|}}}}}
{{KV|Shadow Cast Distance|intn=shadowcastdist|int|Sets how far the entity casts dynamic shadows. 0 means default distance from the {{Ent|shadow_control}} entity.|nofgd={{{nofgd|}}}}}
{{KV|Lighting Origin|intn=LightingOrigin|targetname|Select an entity (not {{Ent|info_lighting}}!) from which to sample lighting instead of the entity's [[origin]].|nofgd={{{nofgd|}}}}}
{{#if: {{{l4d|}}}{{{l4d2|}}}||<!--
-->{{KV|Lighting Origin Offset|intn=LightingOriginHack|targetname|The {{Ent|info_lighting_relative}} from which to sample lighting instead of the entity's origin. Use <tt>Lighting Origin</tt> instead.|not={{l4ds}}|nofgd=1|deprecated=1}}
}}<!-- will show as long as neither l4d nor l4d2 are 1-->
{{#if: {{{l4d|}}}{{{l4d2|}}}{{{as|}}}{{{base|}}}|<!--will show as long as nothing other than portal2 is checked
-->|{{KV|Disable Flashlight|intn=disableflashlight|boolean|Used to disable [[env_projectedtexture|projected texture]] lighting and shadows on this entity. Identical to <tt>[[Effect flags|EF_NOFLASHLIGHT]]</tt>.|since=P2|nofgd={{{nofgd|}}}}}
{{KV|Disable ShadowDepth|intn=disableshadowdepth|boolean|Makes this entity not cast a shadow from {{Ent|env_projectedtexture}} entities. Identical to <tt>[[Effect flags|EF_NOSHADOWDEPTH]]</tt>.|since=P2|nofgd={{{nofgd|}}}}}
{{KV|Projected Texture Cache|intn=shadowdepthnocache|choices|Used to hint [[env_projectedtexture|projected texture system]] whether it is sufficient to cache shadow volume of this entity or to force render it every frame instead. Identical to<code>[[Effect flags|EF_SHADOWDEPTH_NOCACHE]]</code>.
:*0: Default
:*1: No cache—render every frame
:*2: Cache it—render only once|since=P2|nofgd={{{nofgd|}}}}}
}}
<!--
  ++ Misc ++
Game-Specific Configs
-->
{{#if: {{{base|}}}||<!--nothing if base is checked; following ifs don't need to check it
-->{{style|border-bottom:1px solid #3A3937;display:block;  color:white;font-size:16px;padding-bottom:6px|'''Miscellaneous'''}}<!--
-->{{#if: {{{l4d|}}}{{{as|}}}{{{portal2|}}} ||<!--won't show if anything other than l4d2 is set, but WILL show if all are left blank--><!--
  -->{{KV|Glow Backface Multiple|intn=glowbackfacemult|float|nofgd=1|If this object has a glow effect, multiply the effect by this much on the sides of the object that are facing away from the viewer.|only={{l4d2}}}}<!--
-->}}<!--
 
-->{{#if: {{{l4d|}}}{{{l4d2|}}}||<!--these two will show if none of the pre-AS ones are checked
  -->{{KV|Move Type|intn=MoveType|choices|Sets a movetype for this entity, which changes its movement behavior.<!-- BREAK -->
{{Expand|title=Move Types|margin_left=2em|
:*'''0''': None, don't move
:*'''1''': Isometric
:*'''2''': Walk, player only, moving on ground
:*'''3''': NPC, movement
:*'''4''': Fly, no gravity
:*'''5''': Fly, with gravity
:*'''6''': Physics
:*'''7''': Push
:*'''8''': [[Noclip]]
:*'''9''': Ladder, for players on ladders
:*'''10''': Spectator
:*'''11''': Custom}}
|since={{as}}|nofgd=1<!--
  -->}}<!--
 
  -->{{KV|Collision Group|intn=CollisionGroup|choices|Sets a collision group for this entity, which changes its collision behavior.<!-- BREAK -->
{{Expand|title=Groups|margin_left=2em|
:*'''0''': None
:*'''1''': Debris, collides only with the world and static props
:*'''2''': Debris, with trigger interaction
:*'''3''': Interactive Debris, doesn't collide with other debris
:*'''4''': Interactive, collides with everything except debris
:*'''5''': Player
:*'''6''': Breakable Glass
:*'''7''': Vehicle
:*'''8''': Player Movement
:*'''9''': In-Vehicle
:*'''10''': Weapon
:*'''11''': Vehicle Clip
:*'''12''': Projectile
:*'''13''': Door blocker, not permitted to go near doors
:*'''14''': Passable Door
:*'''15''': Dissolving
:*'''16''': Pushaway
:*'''17''': NPC Actor, NPCs ignore the player
:*'''18''': NPC Scripted, NPCs do not collide with each other}}
|since={{as}}|nofgd=1<!--
  -->}}<!--
-->}}<!-- ENF #IF L4D/L4D2
-->{{#if: {{{l4d|}}}{{{l4d2|}}}{{{as|}}}||<!--will show as long as nothing other than portal2 is checked
  -->{{KV|No Animation Sounds|intn=SuppressAnimSounds|boolean|Silences sounds linked to animations.|since=P2|nofgd=1}}<!--
-->}}<!--
-->{{#if: {{{l4d|}}}{{{l4d2|}}}{{{as|}}}{{{portal2|}}}|<!--will only show if none are checked-->|{{KV DXLevelChoice}} }}<!--
-->{{KV SystemLevelChoice|nofgd={{{nofgd|}}}}}<!--
 
-->}}<!-- END #IF base
-->}}<!-- END ScrollBox
-->}}<!-- END #IFEQ new == 0
 
--></onlyinclude></includeonly>

Revision as of 15:09, 2 July 2024

Note.pngNote:Template no longer needed kept for page history. Content moved to CBaseAnimating