Point posecontroller: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Add note about instance fixup)
(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)
Line 5: Line 5:
== Keyvalues ==
== Keyvalues ==
{{KV|Prop Name|string|Name of the prop to control.}}
{{KV|Prop Name|string|Name of the prop to control.}}
{{bug|This keyvalue does not receive [[instance]] fixups, making the entity mostly unusable inside instances. This can be fixed by changing the 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|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|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, the only fix is to constantly set a new value using <code>SetPoseValue</code>.}}
{{bug|<code>Pose Paramater Value</code> suffers from rounding or overflow errors.}}
:{{clarify|What effect does this have?}}
:{{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|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.}}

Revision as of 18:25, 17 September 2022

Template:Base point It controls a pose parameter of a prop and cycles the pose clientside.

Note.pngNote:The posecontroller resets the prop's default animations.
Icon-Bug.pngBug:Using an invalid or non-existant Pose Parameter will crash the game.  [todo tested in ?]
C++ In code, it is represented by theCPoseControllerclass, defined in thepoint_posecontroller.cppfile.

Keyvalues

Prop Name ([todo internal name (i)]) <string>
Name of the prop to control.
Icon-Bug.pngBug:This keyvalue does not receive instance fixups, making the entity mostly unusable inside instances.  [todo tested in ?]
Note.pngFix:Change the keyvalue type from string to target_destination in the FGD.
Pose Parameter Name ([todo internal name (i)]) <string>
Name of the pose parameter to control.
Pose Parameter Value ([todo internal name (i)]) <float>
Normalized value for the pose parameter from 0.0 and 1.0 (maps to min and max range).
Icon-Bug.pngBug:Pose Paramater Value suffers from rounding or overflow errors.  [todo tested in ?]
Clarify: What effect does this have?
PlacementTip.pngWorkaround:Apparently, constantly setting a new value using SetPoseValue can be used as a workaround.
Interpolation Time ([todo internal name (i)]) <float>
Number of seconds (0.0 to 10.0) for client to match absolute pose values.
Icon-Bug.pngBug:The value must have a trailing decimal (such as .0), or it will completely break the pose controller.  [todo tested in ?]
Should wrap from 0.0 to 1.0 when interpolating. ([todo internal name (i)]) <boolean>
If set, wrap from 0.0 to 1.0 when interpolating.
Cycle Frequency ([todo internal name (i)]) <float>
Base cycles per second from -10.0 to 10.0.
Frequency Modulation Type ([todo internal name (i)]) <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 ([todo internal name (i)]) <float>
Modulation time offset from -1.0f to 1.0.
Frequency Modulation Rate ([todo internal name (i)]) <float>
Modulation cycles per second from -10.0f to 10.0.
Frequency Modulation Amplitude ([todo internal name (i)]) <float>
Modulation extents from 0.0f to 10.0.


Inputs

SetPoseParameterName <stringRedirectInput/string>
Sets the pose parameter to control.
SetPoseValue <floatRedirectInput/float>
Set the pose parameter to a normalized value between 0.0 and 1.0 (maps to min and max range).
SetInterpolationTime <floatRedirectInput/float>
Set the interpolation time to a number of seconds between 0.0 and 10.0.
SetCycleFrequency <floatRedirectInput/float>
Set the pose parameter's base cycles per second from -10.0f to 10.0.
SetFModType <integerRedirectInput/integer>
Set the type of frequency modulation.
SetFModTimeOffset <floatRedirectInput/float>
Set the modulation time offset from -1.0f to 1.0.
SetFModRate <floatRedirectInput/float>
Set the modulation cycles per second from -10.0f to 10.0.
SetFModAmplitude <floatRedirectInput/float>
Set the modulation extents from 0.0f to 10.0.
RandomizeFMod <floatRedirectInput/float>
Randomize the frequency modulation by an extremeness of 0.0 to 1.0.
GetFMod
Outputs the current modulation settings in console. !FGD


Outputs