CBaseAnimating

From Valve Developer Community
Revision as of 08:20, 27 September 2024 by Gameplayer (talk | contribs)
Jump to navigation Jump to search
English (en)Translate (Translate)
C++ Class hierarchy
CBaseAnimating
CBaseEntity
C++ baseanimating.cpp

CBaseAnimating is the C++ class from which all entities with models inherit, even if they don't actually move.

Icon-Important.pngImportant:Following Keyvalues / Inputs / Outputs are available for all entities that inherit this class, but may be overwritten by game code.

Descriptions of in-game accessible Keyvalues / Inputs / Outputs

Keyvalues
skin or ModelSkin Alien Swarm <integer>
Some models have multiple skins. This value selects from the index, starting with 0.
solid <choices>
Method of collision for this entity. {| class="mw-collapsible mw-collapsed" style="background:rgba(0,0,0,0.05) ;float:no;margin-bottom:0;margin-left:2em;padding-right:0.5em;border:1px solid rgba(255,255,255,0.1); border-left:solid 1px #8bb9e0; padding-left:1em;"
Choices
Icon-Bug.pngBug:In Portal 2 Portal 2, if an entity using QPhysics collisions is hit by Gel, the game will crash!  [todo tested in ?]
  • 2: Bounding Box
  • 3: Oriented Bounding Box (Use for runtime spawned rotated brush entities)
  • 4: Oriented Bounding Box, constrained to Yaw only
  • 5: Custom/Test (Usually no collision with anything)
  • 6: VPhysics


hitboxset <string> !FGD
Sets the $hboxset to use.
body or SetBodyGroup <integer> !FGD
Sets the the active $bodygroup.
Note.pngNote:If both body and SetBodyGroup are present (even if set to 0), body will be prioritized.
modelscale <float> (in all games since Half-Life 2: Episode Two)
A multiplier for the size of the model. Negative values are accepted. Does not alter the physics collisions in most cases, however.
Warning.pngWarning:Negative or extremely high values can cause crashes!
Note.pngNote:Scale may not appear in Hammer Hammer 4.x, but will appear in-game. This is fixed in Hammer++ Hammer++.

Animating

sequence <integer> !FGD
Default animation sequence for the model to be playing after spawning.
playbackrate <float> !FGD
A multiplier of the framerate at which animations are played, negative values are accepted. Default is 1.0.
cycle <float> !FGD
The current frame of the current animation, on a range from 0-1.

Effects - Render


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.
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.
fadescale <float>
If specified in the 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 $noforcedfade.

Effects - Environment


LightingOrigin <targetname>
Select an entity (not info_lighting!) from which to sample lighting instead of the entity's origin or $illumposition.


LightingOriginHack <targetname> (not in Left 4 Dead seriesLeft 4 Dead series) !FGD Obsolete
Deprecated.
The info_lighting_relative from which to sample lighting instead of the entity's origin or $illumposition. Use Lighting Origin instead.


disableflashlight <boolean> (in all games since Portal 2)
Used to disable projected texture lighting and shadows on this entity. Identical to EF_NOFLASHLIGHT.
disableshadowdepth <boolean> (in all games since Portal 2)
Makes this entity not cast a shadow from env_projectedtexture entities. Identical to EF_NOSHADOWDEPTH.
shadowdepthnocache <choices> (in all games since Portal 2)
Used to hint projected texture system whether it is sufficient to cache shadow volume of this entity or to force render it every frame instead. Identical toEF_SHADOWDEPTH_NOCACHE.
  • 0: Default
  • 1: No cache—render every frame
  • 2: Cache it—render only once

Miscellaneous


SuppressAnimSounds <boolean> (in all games since Portal 2) !FGD
Silences sounds linked to animations.
mindxlevel / maxdxlevel <choices> (removed since Left 4 Dead)
The entity will not exist if the engine is running outside the given range of DirectX Versions.
Choices
Warning.pngWarning:If these are used, the object may break when the user switches their DirectX settings.

|}

Inputs
skin <integerRedirectInput/integer>
Selects a skin from the model's index, starting with 0.
SetBodyGroup <integerRedirectInput/integer>
Sets the the active $bodygroup.
Ignite
Makes the entity catch on fire indefinitely.
IgniteLifetime <floatRedirectInput/float>
Makes the entity catch on fire for a given amount of time.
IgniteNumHitboxFires <integerRedirectInput/integer> (removed since Left 4 Dead 2)
Makes the entity catch on fire with a given number of hitbox fire particles. Does not function correctly in Left 4 Dead 2 onward.
IgniteHitboxFireScale <floatRedirectInput/float> (removed since Left 4 Dead 2)
Makes the entity catch on fire with a given scale for hitbox fire particles. Does not function correctly in Left 4 Dead 2 onward.
BecomeRagdoll
Kills the entity and creates a client-side ragdoll from the model. Input is only passed if the model contains $collisionjoints. For other models, phys_convert can be used instead.
SetLightingOrigin <targetnameRedirectInput/string>
Sets the entity's lighting origin to use this entity's position.
SetLightingOriginHack <targetnameRedirectInput/string> (removed since Left 4 Dead) Obsolete
Deprecated.
Offsets the entity's lighting origin by their distance from an info_lighting_relative. Use SetLightingOrigin instead.
fademindist <floatRedirectInput/float>
Sets distance at which the entity starts fading. If <0, the entity will disappear instantly when end fade is hit. The value will scale appropriately if the entity is in a 3D Skybox.
fademaxdist <floatRedirectInput/float>
Sets distance at which the entity ends fading. If <0, the entity won't disappear at all. The value will scale appropriately if the entity is in a 3D Skybox.
SetModelScale <vectorRedirectInput/Vector> (only in Source 2013)
Multiplies the size of the model. Does not alter the physics collisions in most cases. Can take two values separated by a space, in which case the first value would be the target model scale and the second value would be the number of seconds the change in scale will be spread over. If there is no second value, the model will scale instantly.
Tip.pngTip:The modelscale keyvalue can be AddOutputed as a workaround for other games with this input missing.
Warning.pngWarning:Negative or extremely high values can cause crashes!
SetCycle <floatRedirectInput/float> (only in Team Fortress 2)
Skip to a specific point in the current animation.
SetModel <stringRedirectInput/string> (only in Team Fortress 2)
Changes the model to the specified path. Form of models/ammo/ammo_us.mdl.
Icon-Important.pngImportant:Absolutely NO quotes! Make sure you use the forward slash '/'. Merasmus says to heed this advice, else thou shalt corrupt the VMF.

Outputs

OnIgnite  !FGD
Fired when the entity catches fire, such as from an env_entity_igniter or the Ignite inputs.
OnFizzled  (only in Portal 2)
Fired when this entity is fizzled by a trigger_portal_cleanser or, for prop_weighted_cube, the Dissolve or SilentDissolve inputs. :
Icon-Bug.pngBug:It does not fire when the object is fizzled by other means such as env_entity_dissolver.  [todo tested in ?]

Debugging

ent_text

Additional information added to ent_text overlay by this class

  • Sequence: (<sequence number>) <sequence name>
  • Activity: <activity name> (only if there is one)
  • Cycle: <cycle> (<animation time>)

exact format:

"Sequence: (%3d) %s",GetSequence(), GetSequenceName( GetSequence() )
"Activity %s", GetSequenceActivityName(GetSequence()) (only if there is one) 
"Cycle: %.5f (%.5f)", (float)GetCycle(), m_flAnimTime.Get()