Cafu Engine
HL2mdl::StudioSequDescT Struct Reference

Sequences seem to be groups of animations that are supposed to be used together. More...

#include "Loader_mdl_hl2_anim.hpp"

Public Member Functions

const StudioHeaderTGetStudioHeader () const
 
const char * GetLabel () const
 
const char * GetActivityName () const
 
const StudioEventTpEvent (uint32_t i) const
 
uint16_t GetAnim (uint32_t x, uint32_t y) const
 Afaics, we always have GroupSize[0] * GroupSize[1] (with GroupSize[1] == 1) animations (StudioAnimDescT) that are supposed to be (randomly? sequentially?) blended with other animations in the same group. More...
 
const StudioAutoLayerTpAutoLayer (uint32_t i) const
 
const float * pBoneweight (uint32_t i) const
 
const float GetWeight (uint32_t i) const
 
const float * pPoseKey (uint32_t iParam, int iAnim) const
 
const float GetPoseKey (uint32_t iParam, int iAnim) const
 
const char * KeyValueText () const
 
std::ostream & print (std::ostream &os, const char *indent) const
 

Public Attributes

int HeaderOffset
 A negative number that is the offset back to the StudioHeaderT. More...
 
uint32_t LabelOffset
 
uint32_t ActivityNameOffset
 
uint32_t Flags
 
int32_t Activity
 
uint32_t ActWeight
 
uint32_t NumEvents
 see pEvent() More...
 
uint32_t EventOffset
 
Vector3fT BBMin
 
Vector3fT BBMax
 
uint32_t NumBlends
 Afaics, we always have NumBlends == GroupSize[0] * GroupSize[1] (with GroupSize[1] == 1). More...
 
uint32_t AnimIndexOffset
 See NumBlends and GetAnim() for details. More...
 
uint32_t MovementOffset
 
uint32_t GroupSize [2]
 Among other code, GetAnim() refers to these values. More...
 
int32_t ParamIndex [2]
 
float ParamStart [2]
 
float ParamEnd [2]
 
uint32_t ParamParent
 
float FadeInTime
 
float FadeOutTime
 
uint32_t LocalEntryNode
 
uint32_t LocalExitNode
 
uint32_t NodeFlags
 
float EntryPhase
 
float ExitPhase
 
float LastFrame
 
uint32_t NextSequ
 
uint32_t Pose
 
uint32_t NumIKRules
 
uint32_t NumAutoLayers
 
uint32_t AutoLayerOffset
 see pAutoLayer() More...
 
uint32_t WeightListOffset
 see GetWeight() More...
 
uint32_t PoseKeyOffset
 see GetPoseKey() More...
 
uint32_t NumIKLocks
 see pIKLock() More...
 
uint32_t IKLockOffset
 
uint32_t KeyValueOffset
 see KeyValueText() More...
 
uint32_t KeyValueSize
 
uint32_t CyclePoseIndex
 
uint32_t Unused [7]
 

Detailed Description

Sequences seem to be groups of animations that are supposed to be used together.

For example, a sequence labelled "head_rot_x" might refer to animations "a_head_rot_left", "a_head_rot", "a_head_rot_right". Other sequences "head_rot_y" and "head_rot_z" might use different begin and end animations but share the animation in the middle, for example: "a_head_rot_up", "a_head_rot", "a_head_rot_down".

Member Function Documentation

uint16_t HL2mdl::StudioSequDescT::GetAnim ( uint32_t  x,
uint32_t  y 
) const
inline

Afaics, we always have GroupSize[0] * GroupSize[1] (with GroupSize[1] == 1) animations (StudioAnimDescT) that are supposed to be (randomly? sequentially?) blended with other animations in the same group.

For example, a StudioSequDescT labelled "shiftweight_x" may refer to StudioAnimDescTs "23: shiftweight_left", "25: @shiftweight_x" and "24: shiftweight_right".

Returns
The returned value is supposed to be used with StudioHeaderT::GetAnimDesc(), e.g. const StudioAnimDescT* AnimDesc = StudioHeader->GetAnimDesc(GetAnim(x, y));

Member Data Documentation

uint32_t HL2mdl::StudioSequDescT::AnimIndexOffset

See NumBlends and GetAnim() for details.

uint32_t HL2mdl::StudioSequDescT::AutoLayerOffset

see pAutoLayer()

uint32_t HL2mdl::StudioSequDescT::GroupSize[2]

Among other code, GetAnim() refers to these values.

int HL2mdl::StudioSequDescT::HeaderOffset

A negative number that is the offset back to the StudioHeaderT.

uint32_t HL2mdl::StudioSequDescT::KeyValueOffset

see KeyValueText()

uint32_t HL2mdl::StudioSequDescT::NumBlends

Afaics, we always have NumBlends == GroupSize[0] * GroupSize[1] (with GroupSize[1] == 1).

A "blend" seems to address an animation (StudioAnimDescT) that is supposed to be (randomly? sequentially?) blended with other animations in the same group. See GetAnim() for further details.

uint32_t HL2mdl::StudioSequDescT::NumEvents

see pEvent()

uint32_t HL2mdl::StudioSequDescT::NumIKLocks

see pIKLock()

uint32_t HL2mdl::StudioSequDescT::PoseKeyOffset

see GetPoseKey()

uint32_t HL2mdl::StudioSequDescT::WeightListOffset

see GetWeight()


The documentation for this struct was generated from the following file: