Zh/Dota 2 Workshop Tools/VMDL/Animation: Difference between revisions
< Zh | Dota 2 Workshop Tools
Jump to navigation
Jump to search
mNo edit summary |
m (Using L template for links) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
== 创建 == | == 创建 == | ||
* 使用 | * 使用{{L|Source 2 Model Editor/Docs/Animation Menu|动画(Animation)}}菜单的选项。 | ||
== Edit == | == Edit == |
Latest revision as of 07:54, 11 July 2024
动画文件存储在动画组(Animation Group)中。一个 VMDL 可以包含多个动画组,他们可以是内部或外部的。
显示
- 点击一个动画项以在视窗中播放该动画。用时间轴播放/暂停,调整重播时间和整理动画。
创建
- 使用动画(Animation) 菜单的选项。
Edit
- 添加 材质映射(material remap) 项:选择“材质映射列表(Material Remap List)”项并在属性编辑器(property editor)中按绿色的“+”。
- 编辑 材质映射(material remap) 项:在大纲(outliner)中选择它。
数据结构(Data Structures)
VMDL动画的参考数据结构如下:
CVanimGroupReference[] m_pAnimGroups =
[
CVanimGroupReference
{
CVanimGroup* m_pObject = &CVanimGroup_0
string m_sFileName = ""
}
]
m_pAnimGroups
CVanimGroupReference中元素的列表
CVanimGroupReference
对内部或外部的CVanimGroup的参考
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_pObject | 内部 CVanimGroup的指针 | CVanimGroup* | ||
m_sFileName | 外部CVhitBoxSetList相对路径 | string | ||
m_sScripts | Scripts | 代码文件的列表 | string[] |
CVanimGroup
动画组在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 | 动画组的名称 | string | |
m_pReferenceSkeleton | Skeleton | CVReferenceSkeleton的指针 | CVReferenceSkeletonReference | |
m_pBoneFlagList | Bone Encoding Flags | CVBoneFlagList的指针 | CVBoneFlagListReference | |
m_pSeqGroup | Sequence Group | CVseqGroup的指针 | CVseqGroupReference | |
m_pAnimGroups | Animation Group References | 外部动画组列表 | CVanimGroupReference[] | |
m_Vanim | Animations | CVanim文件列表 | CVanim[] |

CVanim
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_Animationname | Name | 动画名称 | string | |
m_Filepath | File Path | 外部资源文件相对路径 | string | |
m_nStartframe | Start Frame | 开始逐帧动画 | int | 0 |
m_nEndFrame | End Frame | 结束逐帧动画 | int | 0 |
m_flFps | FPS | 逐帧动画速率 | float | 30.0 |
m_Loop | 动画循环命令 | CAnimationLoop | ||
m_bHidden | Hidden | 从UI隐藏compiled sequence | bool | false |
m_Activities | Activities | CActivity中元素的列表 | CActivity[] | |
m_AnimationEvents | Animation Events | CAnimationEvent中元素的列表 | CAnimationEvent[] | |
m_MotionFrames | Motion Frames | CMotionFrame中元素的列表 | CMotionFrame[] | |
m_pIkRules | IK Rules | CIKrule* 中元素的列表 | CIKrule*[] | |
m_adjustAnimation | Adjust Animation | CAdjustAnimation 元素 | CAdjustAnimation | |
m_Keywords | Keywords | 关键字列表 | string[] |
CAnimationLoop
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_bLoop | Loop | 动画是否循环 | bool | false |
m_bSmoothLoop | Smooth Loop | 动画循环是否平滑 | bool | false |
m_nSmoothLoopStart | Frames From Start | 平滑开头的数帧 | int | 0 |
m_nSmoothLoopEnd | Frames From End | 平滑结尾的数帧 | int | 0 |
m_StartLoop | 动画开始循环 | CVAnimCmdStartLoop |
CVAnimCmdStartLoop
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_bEnabled | Start Loop | 动画是否强制循环 | bool | false |
m_nLoopRestart | Loop Restart | 重新开始循环 | bool | false |
CActivity
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_Name | Name | 活动名称 | string | |
m_nWeight | Weight | 活动负担 | int | 1 |
CAnimationEvent
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_Event | Event | 动画事件名称 | string | |
m_nFrame | Frame | 触发事件帧 | int | 0 |
m_DataString | Data String | 其他信息 | string |
CMotionFrame
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_nFrame | Frame | 获取动作帧 | int | 0 |
m_bExtractTX | Extract TX | 获取X轴位移 | bool | false |
m_bExtractTY | Extract TY | 获取Y轴位移 | bool | false |
m_bExtractTZ | Extract TZ | 获取Z轴位移 | bool | false |
m_bExtractRX | Extract RX | 获取X轴旋转 | bool | false |
m_bExtractRY | Extract RY | 获取Y轴旋转 | bool | false |
m_bExtractRZ | Extract RZ | 获取Z轴旋转 | bool | false |
m_bDiscardTX | Discard TX | 取消X轴位移 | bool | false |
m_bDiscardTY | Discard TY | 取消Y轴位移 | bool | false |
m_bDiscardTZ | Discard TZ | 取消Z轴位移 | bool | false |
m_bDiscardRX | Discard RX | 取消X轴旋转 | bool | false |
m_bDiscardRY | Discard RY | 取消Y轴旋转 | bool | false |
m_bDiscardRZ | Discard RZ | 取消Z轴旋转 | bool | false |

CAdjustAnimation
Attribute | Friendly Name | Description | Type | Default Value |
---|---|---|---|---|
属性 | 易记名称 | 描述 | 类型 | 默认值 |
m_translation | Translation | 调整动画的位移(X,Y,Z) | float( 3 ) | ( 0.000000, 0.000000, 0.000000 ) |
m_rotation | Rotation | 调整动画的旋转(X,Y,Z) | float( 3 ) | ( 0.000000, 0.000000, 0.000000 ) |