IAnimationGraphState

C++
struct IAnimationGraphState {
};
File

IAnimationGraph.h

IAnimationGraphState::~IAnimationGraphState Destructor
C++
IAnimationGraphState::AddListener Method
C++
virtual void AddListener(const char * name, IAnimationGraphStateListener * pListener) = 0;
Description

Just register and non-selectivly call QueryComplete on all listeners (regardless of what ID's they are actually interested in).

IAnimationGraphState::ClearForcedStates Method
C++
virtual void ClearForcedStates() = 0;
Description

simply recurse

IAnimationGraphState::ClearInput Method
C++
virtual void ClearInput(InputID) = 0;
IAnimationGraphState::ClearTrigger Method
C++
virtual void ClearTrigger(EAnimationGraphTriggerUser user) = 0;
IAnimationGraphState::CreateExistanceQuery Method ()
C++
virtual IAnimationGraphExistanceQuery * CreateExistanceQuery() = 0;
virtual IAnimationGraphExistanceQuery * CreateExistanceQuery(int layer) = 0;
Description

Creates an object you can use to test whether a specific combination of inputs will select a state (and to get a bit more information about that state)

IAnimationGraphState::DoesInputMatchState Method
C++
virtual bool DoesInputMatchState(InputID) const = 0;
Description

Not used

IAnimationGraphState::ForceTeleportToQueriedState Method
C++
virtual void ForceTeleportToQueriedState() = 0;
IAnimationGraphState::GetAnimationActivation Method
C++
virtual bool GetAnimationActivation() = 0;
IAnimationGraphState::GetAnimationTarget Method
C++
virtual const SAnimationTarget* GetAnimationTarget() = 0;
IAnimationGraphState::GetCurrentStateName Method
C++
virtual const char * GetCurrentStateName() = 0;
Description

Concatenate all layers state names with '+'. Use only fullbody layer state name if upperbody layer is not allowed/mixed.

IAnimationGraphState::GetInput Method (InputID, char *)
C++
virtual void GetInput(InputID, char *) const = 0;
Description

assert all equal, use any (except if signalled, then return the one not equal to default, or return default of all default)

IAnimationGraphState::GetInput Method (InputID, char *, int)
C++
virtual void GetInput(InputID, char *, int layerIndex) const = 0;
Description

get input from specific layer if layer index is valid for this state

IAnimationGraphState::GetInputAsFloat Method
C++
virtual float GetInputAsFloat(InputID inputId) = 0;
Description

same as GetInput above

IAnimationGraphState::GetInputId Method
C++
virtual InputID GetInputId(const char * input) = 0;
Description

wrapper generates it's own input IDs for the union of all inputs in all layers, and for each input it maps to the layer specific IDs.

IAnimationGraphState::GetInputName Method
C++
virtual const char* GetInputName(InputID) const = 0;
Description

returns NULL if InputID is out of range

IAnimationGraphState::GetMemoryUsage Method
C++
virtual void GetMemoryUsage(ICrySizer * pSizer) const = 0;
Description

simply recurse (will add all layer's containers to the sizer)

IAnimationGraphState::GetVariationInput Method
C++
virtual const char* GetVariationInput(InputID inputID) const = 0;
IAnimationGraphState::GetVariationInputId Method
C++
virtual InputID GetVariationInputId(const char* variationInputName) const = 0;
IAnimationGraphState::GetVariationInputName Method
C++
virtual const char* GetVariationInputName(InputID) const = 0;
IAnimationGraphState::HasAnimationTarget Method
C++
virtual bool HasAnimationTarget() const = 0;
IAnimationGraphState::Hurry Method
C++
virtual void Hurry() = 0;
Description

simply recurse (hurry all layers, let them hurry independently where they can)

IAnimationGraphState::IsDefaultInputValue Method
C++
virtual bool IsDefaultInputValue(InputID) const = 0;
Description

AND all layers

IAnimationGraphState::IsInDebugBreak Method
C++
virtual bool IsInDebugBreak() = 0;
Description

is the same for all layers (equal assertion should not even be needed)

IAnimationGraphState::IsMixingAllowedForCurrentState Method
C++
virtual bool IsMixingAllowedForCurrentState() const = 0;
Description

the wrapper simply returns false

IAnimationGraphState::IsSignalledInput Method
C++
virtual bool IsSignalledInput(InputID intputId) const = 0;
Description

used by CAnimationGraphStates

IAnimationGraphState::IsUpdateReallyNecessary Method
C++
virtual bool IsUpdateReallyNecessary() = 0;
IAnimationGraphState::LockInput Method (InputID, bool)
C++
virtual void LockInput(InputID, bool locked) = 0;
IAnimationGraphState::LockInput Method (char *, bool)
C++
inline void LockInput(const char * name, bool locked);
IAnimationGraphState::Pause Method
C++
virtual void Pause(bool pause, EAnimationGraphPauser pauser, float fOverrideTransTime = -1.0f) = 0;
Description

simply recurse

IAnimationGraphState::PushForcedState Method
C++
virtual void PushForcedState(const char * state, TAnimationGraphQueryID * pQueryID = 0) = 0;
Description

simply recurse (will be ignored by each layer individually if state not found)

IAnimationGraphState::QueryChangeInput Method (InputID, TAnimationGraphQueryID *)
C++
virtual void QueryChangeInput(InputID, TAnimationGraphQueryID *) = 0;
Description

assert all equal, forward to all layers, complete when all have changed once (trivial, since all change at once via SetInput). (except for signalled, forward only to layers which currently are not default, complete when all those have changed).

IAnimationGraphState::QueryChangeInput Method (char *, TAnimationGraphQueryID *)
C++
inline void QueryChangeInput(const char * name, TAnimationGraphQueryID * pQueryID);
IAnimationGraphState::QueryLeaveState Method
C++
virtual void QueryLeaveState(TAnimationGraphQueryID * pQueryID) = 0;
Description

When QueryID of SetInput (reached queried state) is emitted this function is called by the outside, by convention(verify!). Remember which layers supported the SetInput query and emit QueryLeaveState QueryComplete when all those layers have left those states.

IAnimationGraphState::QueryOutput Method
C++
virtual const char * QueryOutput(const char * name) = 0;
Description

find highest layer that has output id, or null (this allows upperbody to override fullbody). Use this logic when calling SetOutput on listeners.

IAnimationGraphState::Release Method
C++
virtual void Release() = 0;
IAnimationGraphState::RemoveListener Method
C++
virtual void RemoveListener(IAnimationGraphStateListener * pListener) = 0;
IAnimationGraphState::Reset Method
C++
virtual void Reset() = 0;
Description

simply recurse

IAnimationGraphState::Serialize Method
C++
virtual void Serialize(TSerialize ser) = 0;
Description

simply recurse (preserve order), and don't forget to serialize the wrapper stuff, ID's or whatever.

IAnimationGraphState::SetAnimatedCharacter Method
C++
virtual void SetAnimatedCharacter(class CAnimatedCharacter* animatedCharacter, int layerIndex, IAnimationGraphState* parentLayerState) = 0;
Todo

This should be turned into registered callbacks or something instead (look at AnimationGraphStateListener). Use to access the SelectLocomotionState() callback in CAnimatedCharacter. Only set for fullbody, null for upperbody.

IAnimationGraphState::SetAnimationActivation Method
C++
virtual void SetAnimationActivation(bool activated) = 0;
Description

simply recurse

IAnimationGraphState::SetFirstPersonMode Method
C++
virtual void SetFirstPersonMode(bool on) = 0;
Description

simply recurse (first person skippable states are skipped independently by each layer)

IAnimationGraphState::SetInput Method (InputID, char *, TAnimationGraphQueryID *)
C++
virtual bool SetInput(InputID, const char *, TAnimationGraphQueryID * pQueryID = 0) = 0;
IAnimationGraphState::SetInput Method (InputID, float, TAnimationGraphQueryID *)
C++
virtual bool SetInput(InputID, float, TAnimationGraphQueryID * pQueryID = 0) = 0;
Description

recurse setting. query mechanism needs to be wrapped by wrapper. Associated QueryID will be given to QueryComplete when ALL layers supporting the input have reached their matching states. wrapper generates it's own query IDs which are associated to a bunch of sub IDs with rules for how to handle the sub IDs into wrapped IDs.

IAnimationGraphState::SetInput Method (InputID, int, TAnimationGraphQueryID *)
C++
virtual bool SetInput(InputID, int, TAnimationGraphQueryID * pQueryID = 0) = 0;
IAnimationGraphState::SetInput Method (char *, T, TAnimationGraphQueryID *)
C++
template <class T> inline bool SetInput(const char * name, T value, TAnimationGraphQueryID * pQueryID = 0);
Description

(see lower level versions below)

IAnimationGraphState::SetInputOptional Method (InputID, char *, TAnimationGraphQueryID *)
C++
virtual bool SetInputOptional(InputID, const char *, TAnimationGraphQueryID * pQueryID = 0) = 0;
Description

SetInputOptional is same as SetInput except that it will not set the default input value in case a non-existing value is passed

IAnimationGraphState::SetInputOptional Method (char *, char *, TAnimationGraphQueryID *)
C++
inline bool SetInputOptional(const char * name, const char * value, TAnimationGraphQueryID * pQueryID = 0);
Description

SetInputOptional is same as SetInput except that it will not set the default input value in case a non-existing value is passed

IAnimationGraphState::SetTrigger Method
C++
Description

Exact positioning: Forward to fullbody layer only (hardcoded)

IAnimationGraphState::SetVariationInput Method (InputID, char*)
C++
virtual bool SetVariationInput(InputID inputID, const char* value) = 0;
IAnimationGraphState::SetVariationInput Method (char*, char*)
C++
virtual bool SetVariationInput(const char* name, const char* value) = 0;
IAnimationGraphState::Update Method
C++
virtual bool Update() = 0;
Description

simply recurse

IAnimationGraphState::InputID Nested Type
C++
typedef AnimationGraphInputID InputID;