en
< VMDL (Source 2) | Animation
Language subpage
This subpage is used on the VMDL (Source 2)/Animation page to display content in English.
If you have edited the language subpage, do not forget to purge the base page by clicking on the button on the right. Otherwise, its contents will not be updated.
Animation files are stored in animation groups. A VMDL can have multiple animation groups and they can be internal or external.
Contents
Display
- Click on an animation item to play that animation in the viewport. Use the timeline to play/pause, adjust play back speed, and scrub the animation.
Create
- Use the Animation menu items.
Edit
- To add a material remap item, select the "Material Remap List" item and press the green "+" button in the property editor.
- To edit a material remap item, select it in the outliner.
Data Structures
The vmdl animation reference data looks like this:
CVanimGroupReference[] m_pAnimGroups =
[
CVanimGroupReference
{
CVanimGroup* m_pObject = &CVanimGroup_0
string m_sFileName = ""
}
]
m_pAnimGroups
A list of CVanimGroupReference elements
CVanimGroupReference
A reference to an internal or external CVanimGroup
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_pObject | pointer to the internal CVanimGroup | CVanimGroup* | ||
m_sFileName | content relative path to the external CVhitBoxSetList | string | ||
m_sScripts | Scripts | A list of script files | string[] |
CVanimGroup
Animation group, looks like this in the vmdl:
CVanimGroup CVanimGroup_0
{
string m_Name = ""
CVReferenceSkeletonReference m_pReferenceSkeleton = CVReferenceSkeletonReference
{
CVReferenceSkeleton* m_pObject = NULL
string m_sFileName = ""
}
CVBoneFlagListReference m_pBoneFlagList = CVBoneFlagListReference
{
CVBoneFlagList* m_pObject = NULL
string m_sFileName = ""
}
CVseqGroupReference m_pSeqGroup = CVseqGroupReference
{
CVseqGroup* m_pObject = NULL
string m_sFileName = ""
}
CVanimGroupReference[] m_pAnimGroups =
[
]
CVanim[] m_Vanim =
[
CVanim
{
string m_Animationname = "attack01"
string m_Filepath = "models\\sdk_character\\dmx\\animation\\attack01.dmx"
int m_nStartframe = 0
int m_nEndframe = 54
float m_flFps = 30.000000
CAnimationLoop m_Loop = CAnimationLoop
{
bool m_bLoop = false
bool m_bSmoothLoop = false
int m_nSmoothLoopStart = 0
int m_nSmoothLoopEnd = 0
CVAnimCmdStartLoop m_StartLoop = CVAnimCmdStartLoop
{
bool m_bEnabled = false
int m_nLoopRestart = 0
}
}
bool m_bHidden = false
CActivity[] m_Activities =
[
]
CAnimationEvent[] m_AnimationEvents =
[
]
CMotionFrame[] m_MotionFrames =
[
CMotionFrame
{
int m_nFrame = 0
bool m_bExtractTX = true
bool m_bExtractTY = true
bool m_bExtractTZ = false
bool m_bExtractRX = false
bool m_bExtractRY = false
bool m_bExtractRZ = false
bool m_bDiscardTX = false
bool m_bDiscardTY = false
bool m_bDiscardTZ = false
bool m_bDiscardRX = false
bool m_bDiscardRY = false
bool m_bDiscardRZ = false
}
]
CIKrule*[] m_pIkRules =
[
]
CAdjustAnimation m_adjustAnimation = CAdjustAnimation
{
float(3) m_translation = ( 0.000000, 0.000000, 0.000000 )
float(3) m_rotation = ( 0.000000, 0.000000, 0.000000 )
}
string[] m_Keywords =
[
]
}
]
string[] m_sScripts =
[
]
}
CVanimGroup
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_name | Name | Name of the animation group | string | |
m_pReferenceSkeleton | Skeleton | Pointer to a CVReferenceSkeleton | CVReferenceSkeletonReference | |
m_pBoneFlagList | Bone Encoding Flags | Pointer to a CVBoneFlagList | CVBoneFlagListReference | |
m_pSeqGroup | Sequence Group | Pointer to a CVseqGroup | CVseqGroupReference | |
m_pAnimGroups | Animation Group References | A list of external animation groups | CVanimGroupReference[] | |
m_Vanim | Animations | A list of CVanim files | CVanim[] |
Note:m_pSeqGroup, and m_pReferenceSkeleton are not longer used.
CVanim
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_Animationname | Name | Name of the animation | string | |
m_Filepath | File Path | Content relative path to the source file | string | |
m_nStartframe | Start Frame | Start frame of the animation | int | 0 |
m_nEndFrame | End Frame | End frame of the animation | int | 0 |
m_flFps | FPS | Frame rate of the animation | float | 30.0 |
m_Loop | Animation Loop Commands | CAnimationLoop | ||
m_bHidden | Hidden | Hide the compiled sequence from the UI | bool | false |
m_Activities | Activities | A list of CActivity elements | CActivity[] | |
m_AnimationEvents | Animation Events | A list of CAnimationEvent elements | CAnimationEvent[] | |
m_MotionFrames | Motion Frames | A list of CMotionFrame elements | CMotionFrame[] | |
m_pIkRules | IK Rules | A list of CIKrule* elements | CIKrule*[] | |
m_adjustAnimation | Adjust Animation | CAdjustAnimation element | CAdjustAnimation | |
m_Keywords | Keywords | A list of keywords | string[] |
CAnimationLoop
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_bLoop | Loop | Should the animation loop | bool | false |
m_bSmoothLoop | Smooth Loop | Should the animation smooth out the loop | bool | false |
m_nSmoothLoopStart | Frames From Start | Smooth this many frames in from the start | int | 0 |
m_nSmoothLoopEnd | Frames From End | Smooth this many frames in from the end | int | 0 |
m_StartLoop | Animation Start Loop | CVAnimCmdStartLoop |
CVAnimCmdStartLoop
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_bEnabled | Start Loop | Should the animation have a forced start loop | bool | false |
m_nLoopRestart | Loop Restart | Frame to restart the loop on | bool | false |
CActivity
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_Name | Name | Name of the activity | string | |
m_nWeight | Weight | Weight of the activity | int | 1 |
CAnimationEvent
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_Event | Event | Animation event name | string | |
m_nFrame | Frame | Frame the event is triggered on | int | 0 |
m_DataString | Data String | Additional information | string |
CMotionFrame
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_nFrame | Frame | Frame to extract the motion from | int | 0 |
m_bExtractTX | Extract TX | Extract X translation | bool | false |
m_bExtractTY | Extract TY | Extract Y translation | bool | false |
m_bExtractTZ | Extract TZ | Extract Z translation | bool | false |
m_bExtractRX | Extract RX | Extract X rotation | bool | false |
m_bExtractRY | Extract RY | Extract Y rotation | bool | false |
m_bExtractRZ | Extract RZ | Extract Z rotation | bool | false |
m_bDiscardTX | Discard TX | Discard X translation | bool | false |
m_bDiscardTY | Discard TY | Discard Y translation | bool | false |
m_bDiscardTZ | Discard TZ | Discard Z translation | bool | false |
m_bDiscardRX | Discard RX | Discard X rotation | bool | false |
m_bDiscardRY | Discard RY | Discard Y rotation | bool | false |
m_bDiscardRZ | Discard RZ | Discard Z rotation | bool | false |
Tip:adding a single motion frame on frame 0 of the animation will extract motion linearly across the entire animation.
CAdjustAnimation
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
m_translation | Translation | Adjust the translation of the animation by this amount | float( 3 ) | ( 0.000000, 0.000000, 0.000000 ) |
m_rotation | Rotation | Adjust the rotation of the animation by this amount | float( 3 ) | ( 0.000000, 0.000000, 0.000000 ) |