曲线动画是 Roblox 动画系统消耗的子类型 AnimationClip 。它将每个动画通道在装备中的动画数据存储为单独的个别曲线。例如,曲线动画为复合关节的位置通道存储为 Vector3Curve , 并且可能将旋转通道存储为 EulerRotationCurve 或 RotationCurve 。
曲线动画结构
曲线动画以层次方式存储曲线,与动画模型中结构的 Motor6Ds 或 Bones 的层次匹配。在每个弯曲动画实例下面,有一个由 Folder 实例组成的层次,代表模型中的动画关节。在每个此类文件夹实例下,可能存在多个可能的实例。类型为 Vector3Curve 的名为 'Position' 的实例可以驱动动画模型上的 Motor6D 或 Bone 的本地翻译。同样,类型为 EulerRotationCurve 或 RotationCurve 的名为“旋转”的实例可以驱动动画模型上的 Motor6D 或 Bone 的本地旋转。
部分匹配层次
当在 Roblox 的动画系统中播放曲线动画时,您可以将部分结构匹配到模型。这意味着不是所有的节点都需要在等级中存在,以便应用正确的节点。此外,您可以以“相对”方式匹配等级。例如,曲线动画的第一个 Folder 实例根可以是 UpperTorso , 动画系统与模型中的任何现有分层匹配。
动画各种通道
曲线动画也可以在模型中动画其他数值。例如,您可以通过在模型中创建一个名为现有 FaceControls 实例的曲线动画实例下的文件夹来动画面部动画的 FACS 控件。然后,要动画个人面部控制器,您可以存储具有动画 FloatCurve 属性命名的个人 FaceControls 实例。
在制作动画时使用曲线动画
对于其他动画片类型(例如 KeyframeSequence ),您必须先将曲线动画上传到 Roblox 才能播放它们。要做到这一点,右击曲线动画然后单击“保存到 Roblox”。或者,使用 Plugin:SaveSelectedToRoblox() 来打开动画上传窗口。
如果您想在上传到 Roblox 网站之前预览动画,您可以使用 AnimationClipProviderProvider:RegisterAnimationClip 生成临时 id。这会生成一个哈希 ID,您可以用于本地化动画测试。
获取曲线动画
对于其他 AnimationClip 类型(例如 KeyframeSequence ),如果您想使用 Luau 脚本下载对应的曲线动画(例如已上传的动画),请使用 AnimationClipProvider:AnimationClipAsync。