switchGesture

From Bohemia Interactive Community
Hover & click on the images for description

Description

Description:
When used on a person,the given move is started immediately (without transition).
Arma 3
Since Arma 3 logo black.png 2.18 it is possible to play gesture states (define in config under "CfgGesturesMale" >> "states" for male soldiers). In addition, it is also possible to play move states (define in config under "CfgMovesMaleSdr" >> "states" for male soldiers) as gestures if they have a valid mask defined in their configs (for example, weapon switching animations have a "WeaponSwitching" mask that only affects the upper body, so they work correctly with this command).
Groups:
Animations

Syntax

Syntax:
soldier switchGesture moveName
Parameters:
soldier: Object
moveName: String
Return Value:
Nothing

Alternative Syntax

Syntax:
soldier switchGesture [moveName, time, blendFactor, resetAim]
Parameters:
soldier: Object
moveName: String - entry from "CfgMovesMaleSdr" >> "states" or "CfgGesturesMale" >> "states"
time: Number - (Optional, default 0) normalised time, in range 0..1, where 0 = beginning of the animation, and 1 = end of the animation
blendFactor: Number - (Optional, default 1) how much to blend the current animation with the new animation, in range 0..1, where 0 = current animation, and 1 = new animation. When 1 is used, the switching is instant (not smooth).
resetAim: Boolean - (Optional, default true) whether the aim/head direction should be reset after switching
Return Value:
Nothing

Examples

Example 1:
soldierOne switchGesture "Wave";
Example 2:
// Create a dummy agent that copies your moves ai1 = createAgent [typeOf player, getPosATL player, [], 0, "NONE"]; ai1 disableAI "ALL"; onEachFrame { ai1 setAnimSpeedCoef getAnimSpeedCoef player; ai1 setVectorDir vectorDir player; private _m = animationState player; private _g = gestureState player; private _i = getUnitMovesInfo player; private _a = getUnitMovesInfo ai1; if (animationState ai1 != _m || abs(_i # 1 - _a # 1) > 0.1) then { ai1 switchMove [_m, _i # 0, _i # 3, false]; }; if ((gestureState ai1 != _g || abs(_i # 6 - _a # 6) > 0.1) && (_g != "<none>" && _g find "_player" < 0)) then { ai1 switchGesture [_g, _i # 5, _i # 8, false]; }; }

Additional Information

See also:
playGesture getUnitMovesInfo switchMove

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord.
Only post proven facts here! Add Note
.kju - c
Posted on Aug 31, 2010 - 18:42 (UTC)
Rpt says "Not implemented" as of OA 1.54.