CurveAnimation 是 Roblox 動畫系統所消耗的子類型 AnimationClip 的子類型。它會將每個動畫通道在裝備中的動畫數據存儲為單獨的個別曲線。例如,CurveAnimation 儲存關節軸的位置通道為 Vector3Curve,可能儲存旋轉通道為 EulerRotationCurve 或 RotationCurve 。
結構
CurveAnimation 以階層方式儲存曲線,與動畫模型中的結構階層匹配,例如 Motor6Ds 或 Bones 。在每個 CurveAnimation 實例下,有一個代表模型中動畫聯結的 Folder 實例層級。在每個此類文件夾實例下,可能存在多個可能的實例。命名為 Position 的實例類型 Vector3Curve 可以驅動動畫模型上的本地翻譯 Motor6D 或 Bone ,而命名為 Rotation 的實例類型 EulerRotationCurve 或 RotationCurve 可以驅動動畫模型上的本地旋轉 Motor6D 或 Bone 。
部分匹配階層
當在 Roblox 的動畫系統中播放 CurveAnimation 時,您可以將部分階層匹配到模型。這意味著不是所有的聯結必須存在於階層中,以便現有的聯結正確地應用。此外,您可以以「相對」方式匹配階層。例如,第一個兒子 Folder 實例根可以是 UpperTorso 並且動畫系統會將其匹配到模型中的任何現有子層級。
動畫各種通道
CurveAnimation 也可以在模型中動畫其他數字值。例如,您可以通過在模型中創建 Folder 下的 CurveAnimation 實例來動畫 FACS 控件的面部動畫,該實例名稱與現有的 FaceControls 實例相同。然後,要動畫個別面部控制器,您可以儲存個別 FloatCurve 名稱後的動畫 FaceControls 屬性的個案。
製作動畫時的使用
與其他 AnimationClip 類型,例如 KeyframeSequence ,您必須先將 CurveAnimation 實例上傳到 Roblox,才能播放它們。如果您想在將動畫上傳到 Roblox 之前預覽它,您可以使用 AnimationClipProvider:RegisterAnimationClip() 生成暫時 ID;這會生成一個您可以用於本地化動畫測試的哈希 ID。
如果您想下載使用 Luau 腳本下載已存在的已上傳動畫的相應 CurveAnimation 檔案,請使用 AnimationClipProvider:GetAnimationClipAsync() 。