这篇条目有关 Source引擎。如需详情,点击这里。

$animation

From Valve Developer Community
< Zh
Jump to navigation Jump to search
English (en)中文 (zh)Translate (Translate)

$animation是一个QC 命令(en),可在所有的 起源 起源 游戏中使用。 它被用于具有高级功能的序列

语法

$sequence不同,$animation仅有一种模式。选项可以在同一行中定义,也可以使用类似类的格式,用一个起始的{和结束的}来定义。

$animation <name> <骨骼动画 smd> <options>
Tip.png提示:$animation名称后附加_a,以避免与$sequence混淆。

选项

循环

loop
使序列从第一帧开始循环。
fixuploop <整数|前循环帧> <int|后循环帧>
找到动画最后一帧和第一帧之间的差异,并调整它们以实现跨越边界的平滑过渡。
startloop <int|本地帧>
重置循环动画的起始帧。这在创建包含多个动画且这些动画需要同步运行的序列时非常有用,但源动画并不完全匹配。
fudgeloop
循环动画(至少包含运动的动画)需要第一帧和最后一帧在位置上**理想情况下**匹配并具有运动。这是因为studiomdl在计算最后补间帧时,需要告诉引擎模型在“最后”唯一关键帧和“第一”关键帧之间移动了多远。如果动画的最后一帧重叠无法创建,此选项会告诉studiomdl假定运动是动画中平均每帧的运动,并需要自行创建重叠帧。

世界运动

walkframe <int|帧> <LX LY LZ LXR LYR LZR>
使模型通过其根骨骼的运动在世界中移动。
  • frame 是在给定方向上结束运动的帧。除非模型在动画中途改变方向,否则应设置为最后一帧。
  • LX, LY 等为提取运动的轴,R 代表“旋转”。
每个$animation最多可以有64个链接的walkframe
<string|运动提取轴>
动画制作更容易,如果模型实际向前移动,但在游戏中播放时必须“原地行走”。此命令通过从动画中移除根骨骼平移来解决问题。接受的轴有:
  • X, Y, 和 Z
Warning.png警告:这些轴似乎完全忽略了walkframe
  • LX, LY 和 LZ - 根骨骼沿轴移动到动画完成一半时,然后返回到原始位置。
    Tip.png提示:可以从任意轴组合中提取运动,只需用空格分隔它们。
  • LM - 指定运动提取应被视为线性
  • LQ - 指定运动提取应被视为二次

混合

subtract <$animation/$sequence 名称> <int|帧>
subtract 实际上从另一个动画中减去此动画。被减去的动画必须被“增量”$sequence使用,此时它将被添加到现有姿势中(而不是替换)。这是混合序列的一种方法;参见权重列表了解其他方法。
presubtract <$animation/$sequence 名称>
减去指定动画的第一帧。
待完善: 这是否与subtract <anim> 0相同?
lineardelta
splinedelta
减去第一帧和最后一帧的线性或样条(S曲线)混合。
worldspaceblend
待完善: 文档待补充

...