Controlling Character Animations via APE


 

Misc Extern Notes

APE Command Documentation

There's a ton of externs that are undocumented. This is a pathetic attempt to document them all

Animation Externs

Over the past year or so I've added some animation control via APE. You can set entities to hold specific frames, play animations, set up sequences of animations, etc.

ANIM_PlaySequence [handle] [anim] [subid]

[handle]: Entity reference

[anim]: Animation name

[subid] Animation sub id

Example: extern ANIM_PlaySequence handle amb_ a

This plays the specified animation/subanim on the given edict. Because this function sucks you need the _ after the anim name.


ANIM_Stop [handle]

[handle]: Entity reference

Example: extern ANIM_Stop handle

This function stops all animations on the given handle and puts him in the ambient.


ANIM_MakeStupid [handle]

[handle]: Entity reference

Example: extern ANIM_MakeStupid handle

This forces the entity into server animate mode--meaning it will idle regardless of how you move it.


ANIM_MakeSmart [handle]

[handle]: Entity reference

Example: extern ANIM_MakeSmart handle

This forces the specified entity into smart animate mode.


ANIM_SetFrame [handle] [frame]

[handle]: Entity reference

[frame]: Animation frame

Example: extern ANIM_Frame handle 200

This forces the entity to hold at the specified animation frame.


ANIM_PlayAnim [handle] [state] {[loop] [flush] [holdframe]}

[handle]: Entity reference

[state]: Animation name

[loop] Loop this animation

[flush] Flush out current animation and play this one

[holdframe] Hold last frame of this animation

NOTE: loop/flush/holdframe must ALL be included if you want to loop or flush.

Example: extern ANIM_PlaySequence handle amb_a 0 1 0

This plays the specified animation on the given edict with style parameters. The parameters are numbers (either 0 or 1) that determine if you are flushing out the current animation, looping, or holding the frame. This is a much more robust version of playsequence and should be used instead.


assign [startelement] [value1] [value2] [value3] ...

[startelement]: e.g. a[10] will start assigning with tenth element of a

[value1]: Follow with values for successive elements

This is for assigning multiple elements of an array at once, rather than successive statements.

Example: extern assign d[25] 2 14 -3 2 0 1

Example: extern assign d[$index$] 2 14 -3 apevar 0 apevar2

(Note: eventually, the dollars signs in $var$ will be no longer necessary.)