动画导出
通用准则
动画以.a2d格式存储。要从 3ds Max 导出动画,请执行以下步骤:
确保可见性: 所有包含骨骼的图层以及骨骼本身都必须被取消隐藏和可见。
导出设置:在导出设置中指定动画的开始帧和结束帧。自动帧检测不起作用。
添加Node轨道: 在Track View > Dope Sheet中,添加一条Note Track到任意动画骨骼。
See also
有关添加和编辑 Note Tracks 的更多信息,请参阅 添加 Note Track.
向 Note Track 添加两个键:
在第 0 帧:设置带有 ‘
start’ 标签的关键帧。在最后一帧:设置带有 ‘
end’ 标签的键。
这些键对应于单元的 ‘
animtree.blk’ 文件中的 ‘key_start’ 和 ‘key_end’ 参数。您可以根据需要更改标签。See also
For more information, see .blk File Format.
骨骼一致性: 目标模型(将应用动画的模型)和导出到 ‘
.a2d’ 文件的骨骼之间的骨骼数量及其链接顺序必须匹配。
项目之间的资产转移
在项目之间传输资源时,可能会出现 着色器差异 ,从而导致错误。要解决此问题,请执行以下作:
使用“
F4”编辑 FAR 中的“.dag”文件(针对工作室特定的设置进行配置)并确保着色器兼容性。请注意,“
dynamic_simple”着色器在工作室项目中普遍可用,建议在资源转移的初始阶段使用。
3ds Max 中的“自定义属性”无法在传输后进行调整。
遗憾的是,导入 ‘.dag’ 文件可能会导致皮肤数据损坏。但是,您可以在 FAR 中使用 ‘Alt’+’F4’ 修改属性。
Warning
请谨慎使用语法: 语法错误不会触发警告,未保存的更改将被丢弃。
限制
骨骼限制:每个带皮肤的节点最多支持 200 个骨骼。虽然理论上可以扩展到 255,但当前的着色器限制将限制限制为 200。
三角形限制: 每个节点最多允许 65,534 个三角形。
特定于项目的自定义对象属性
不同的项目可能对 自定义对象属性 有独特的要求 确保虚拟资产的正确生成。例如:
Enlisted: 每个蒙皮对象必须包含以下属性:
animated_node:b=yes collidable:b=no massType:t="none"
省略这些属性将导致动态模型生成过程中出现一般错误。
CRSED: 此类要求不适用。
Tip
如果您对本节有任何疑问,请直接通过 a.vlasov@gaijin.team直接联系作者。
animtree.blk中的动画描述
动画必须在相应块的 animtree.blk 中描述。
对于基于 War Thunder 的项目,这涉及两个部分:
AnimBlendNodeLeaf{} 模块:
AnimBlendNodeLeaf{ a2d:t="animation_file.a2d" // 动画文件名 continuous{ name:t="animation_name" // 动画名称 key_start:t="start" // 开始键 key_end:t="end" // 结束键 time:r=1 // 播放时长 own_timer:b=yes eoa_irq:b=yes addMoveDirH:r=-90 // 设备移动方向 addMoveDist:r=1.33 // 每个播放时间覆盖的距离 } }hub{} 模块:
hub{ name:t="animation_file" // 动画名称 const:b=yes // 指示动画是否循环 }
请记住,’animtree.blk’ 也是一个可导出的资源。要在游戏中看到它,您必须执行 ‘daBuild’。
“.blk”中的动画导出描述
“.blk”格式的动画的导出说明:
file:t=some.a2d
opt:b=yes // 保守优化
posEps:r=0.01
rotEps:r=0.2
sclEps:r=0.1
对于 .folder.blk 文件:
virtual_res_blk{
find:t="^(.*)\.a2d$"
className:t="a2d"
contents{
opt:b=yes // 保守优化
posEps:r=0.01
rotEps:r=0.2
sclEps:r=0.1
}
}