From eeff17e143224cd90e743cd14aba6bebc9306864 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sun, 6 Sep 2026 00:05:03 +0300 Subject: [PATCH] add rotation-order parameter to vca configure --- res/modules/animation.lua | 8 ++++++-- res/modules/internal/formats/vca.lua | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/res/modules/animation.lua b/res/modules/animation.lua index 92c136eeb..258b87d70 100644 --- a/res/modules/animation.lua +++ b/res/modules/animation.lua @@ -187,10 +187,14 @@ local function codegen_track(raw_track, lineset, memoised, keysets, use_tsf) end local axis_names = {"X", "Y", "Z"} - for axis, var in ipairs(rotation) do + local axis_indices = {X=1, Y=2, Z=3} + local rotation_order = raw_track.rotation_order + for i=1,3 do + local axis = axis_indices[rotation_order[i]] + local var = rotation[axis] if var then code = code .. "\n mat4.rotate(dst, " .. axis_names[axis] .. - ",l" .. var .. ", dst)" + ", l" .. var .. ", dst)" end end diff --git a/res/modules/internal/formats/vca.lua b/res/modules/internal/formats/vca.lua index a44a89826..1cc48f0e3 100644 --- a/res/modules/internal/formats/vca.lua +++ b/res/modules/internal/formats/vca.lua @@ -25,6 +25,7 @@ local function parse_configure(raw_track, node) elseif node.duration then raw_track.duration = node.duration end + raw_track.rotation_order = string.upper(node["rotation-order"]) or "XYZ" end local function parse_curve(line, node)