Point posecontroller: Difference between revisions
Jump to navigation
Jump to search
Note:The posecontroller resets the prop's default animations.
Bug:Using an invalid or non-existant Pose Parameter will crash the game. [todo tested in ?]
Bug:
Bug:The value must have a trailing decimal (such as .0), or it will completely break the pose controller. [todo tested in ?]
(Use the fix/workaround templates, also the rounding/overflow bug needs clarification on what it actually affects, I've never heard of someone having to do this workaround) |
(-added class hierarchy, cleanup) |
||
Line 1: | Line 1: | ||
{{ | {{CD|CPoseController|file1=point_posecontroller.cpp}} | ||
{{entity|type=e0|point_posecontroller|since=Half-Life 2: Episode Two}} It controls a [[$poseparameter|pose parameter]] of a prop and cycles the pose clientside. | |||
{{note|The posecontroller resets the prop's default animations.}} | {{note|The posecontroller resets the prop's default animations.}} | ||
{{bug|Using an invalid or non-existant Pose Parameter will crash the game.}} | {{bug|Using an invalid or non-existant Pose Parameter will crash the game.}} | ||
== Keyvalues == | == Keyvalues == | ||
{{KV|Prop Name|string|Name of the prop to control.}} | {{KV Targetname}} | ||
{{KV|Prop Name|intn=PropName|string|Name of the prop to control.}} | |||
{{bugfix|This keyvalue does not receive [[instance]] fixups, making the entity mostly unusable inside instances.|Change the keyvalue type from <code>string</code> to <code>target_destination</code> in the [[FGD]].}} | {{bugfix|This keyvalue does not receive [[instance]] fixups, making the entity mostly unusable inside instances.|Change the keyvalue type from <code>string</code> to <code>target_destination</code> in the [[FGD]].}} | ||
{{KV|Pose Parameter Name|string|Name of the pose parameter to control.}} | {{KV|Pose Parameter Name|intn=PoseParameterName|string|Name of the pose parameter to control.}} | ||
{{KV|Pose Parameter Value|float|Normalized value for the pose parameter from 0.0 and 1.0 (maps to min and max range).}} | {{KV|Pose Parameter Value|intn=PoseValue|float|Normalized value for the pose parameter from 0.0 and 1.0 (maps to min and max range).}} | ||
{{bug|<code>Pose Paramater Value</code> suffers from rounding or overflow errors.}} | {{bug|<code>Pose Paramater Value</code> suffers from rounding or overflow errors.}} | ||
:{{clarify|What effect does this have?}} | :{{clarify|What effect does this have?}} | ||
:{{workaround|Apparently, constantly setting a new value using <code>SetPoseValue</code> can be used as a workaround.}} | :{{workaround|Apparently, constantly setting a new value using <code>SetPoseValue</code> can be used as a workaround.}} | ||
{{KV|Interpolation Time|float|Number of seconds (0.0 to 10.0) for client to match absolute pose values.}} | {{KV|Interpolation Time|intn=InterpolationTime|float|Number of seconds (0.0 to 10.0) for client to match absolute pose values.}} | ||
{{bug|The value must have a trailing decimal (such as .0), or it will completely break the pose controller.}} | {{bug|The value must have a trailing decimal (such as .0), or it will completely break the pose controller.}} | ||
{{KV|Should wrap from 0.0 to 1.0 when interpolating.|boolean|If set, wrap from 0.0 to 1.0 when interpolating.}} | {{KV|Should wrap from 0.0 to 1.0 when interpolating.|intn=InterpolationWrap|boolean|If set, wrap from 0.0 to 1.0 when interpolating.}} | ||
{{KV|Cycle Frequency|float|Base cycles per second from -10.0 to 10.0.}} | {{KV|Cycle Frequency|intn=CycleFrequency|float|Base cycles per second from -10.0 to 10.0.}} | ||
{{KV|Frequency Modulation Type|choices|Control the way the interpolation blends between the poses.}} | {{KV|Frequency Modulation Type|intn=FModulationType|choices|Control the way the interpolation blends between the poses.}} | ||
:{| class=standard-table | :{| class=standard-table | ||
! Value || Description | ! Value || Description | ||
Line 31: | Line 33: | ||
| <code>5</code> || Noise | | <code>5</code> || Noise | ||
|} | |} | ||
{{KV|Frequency Modulation Time Offset|float|Modulation time offset from -1.0f to 1.0.}} | {{KV|Frequency Modulation Time Offset|intn=FModTimeOffset|float|Modulation time offset from -1.0f to 1.0.}} | ||
{{KV|Frequency Modulation Rate|float|Modulation cycles per second from -10.0f to 10.0.}} | {{KV|Frequency Modulation Rate|intn=FModRate|float|Modulation cycles per second from -10.0f to 10.0.}} | ||
{{KV|Frequency Modulation Amplitude|float|Modulation extents from 0.0f to 10.0. | {{KV|Frequency Modulation Amplitude|intn=FModAmplitude|float|Modulation extents from 0.0f to 10.0.}} | ||
== Inputs == | == Inputs == | ||
Line 47: | Line 48: | ||
{{IO|RandomizeFMod|Randomize the frequency modulation by an extremeness of 0.0 to 1.0.|param=float}} | {{IO|RandomizeFMod|Randomize the frequency modulation by an extremeness of 0.0 to 1.0.|param=float}} | ||
{{IO|GetFMod|Outputs the current modulation settings in console.}} {{Not in FGD}} | {{IO|GetFMod|Outputs the current modulation settings in console.}} {{Not in FGD}} | ||
Revision as of 19:35, 31 July 2023
![]() |
---|
CPoseController |
![]() |
Template:Entity It controls a pose parameter of a prop and cycles the pose clientside.


Keyvalues
- Name (targetname) <string>[ Edit ]
- The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g.
parentname
ortarget
).
Also displayed in Hammer's 2D views and Entity Report.See also: Generic Keyvalues, Inputs and Outputs available to all entities
- Prop Name (PropName) <string>
- Name of the prop to control.
Fix:Change the keyvalue type from
string
totarget_destination
in the FGD.
- Pose Parameter Name (PoseParameterName) <string>
- Name of the pose parameter to control.
- Pose Parameter Value (PoseValue) <float>
- Normalized value for the pose parameter from 0.0 and 1.0 (maps to min and max range).

Pose Paramater Value
suffers from rounding or overflow errors. [todo tested in ?]- Clarify: What effect does this have?
Workaround:Apparently, constantly setting a new value using
SetPoseValue
can be used as a workaround.
- Interpolation Time (InterpolationTime) <float>
- Number of seconds (0.0 to 10.0) for client to match absolute pose values.

- Should wrap from 0.0 to 1.0 when interpolating. (InterpolationWrap) <boolean>
- If set, wrap from 0.0 to 1.0 when interpolating.
- Cycle Frequency (CycleFrequency) <float>
- Base cycles per second from -10.0 to 10.0.
- Frequency Modulation Type (FModulationType) <choices>
- Control the way the interpolation blends between the poses.
Value Description 0
None 1
Sine 2
Square 3
Triangle 4
Sawtooth 5
Noise
- Frequency Modulation Time Offset (FModTimeOffset) <float>
- Modulation time offset from -1.0f to 1.0.
- Frequency Modulation Rate (FModRate) <float>
- Modulation cycles per second from -10.0f to 10.0.
- Frequency Modulation Amplitude (FModAmplitude) <float>
- Modulation extents from 0.0f to 10.0.
Inputs
- SetPoseParameterName <string >
- Sets the pose parameter to control.
- SetPoseValue <float >
- Set the pose parameter to a normalized value between 0.0 and 1.0 (maps to min and max range).
- SetInterpolationTime <float >
- Set the interpolation time to a number of seconds between 0.0 and 10.0.
- SetCycleFrequency <float >
- Set the pose parameter's base cycles per second from -10.0f to 10.0.
- SetFModType <integer >
- Set the type of frequency modulation.
- SetFModTimeOffset <float >
- Set the modulation time offset from -1.0f to 1.0.
- SetFModRate <float >
- Set the modulation cycles per second from -10.0f to 10.0.
- SetFModAmplitude <float >
- Set the modulation extents from 0.0f to 10.0.
- RandomizeFMod <float >
- Randomize the frequency modulation by an extremeness of 0.0 to 1.0.
- GetFMod
- Outputs the current modulation settings in console. !FGD