From 3b1ab36ac1171aae512589b265f15f63f6c97390 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sun, 6 Sep 2026 00:45:34 +0300 Subject: [PATCH] remove rotation-order (use original directives order) --- res/modules/animation.lua | 13 ++++++++----- res/modules/internal/formats/vca.lua | 1 - 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/res/modules/animation.lua b/res/modules/animation.lua index 258b87d70..2f5af4ca4 100644 --- a/res/modules/animation.lua +++ b/res/modules/animation.lua @@ -187,14 +187,17 @@ local function codegen_track(raw_track, lineset, memoised, keysets, use_tsf) end local axis_names = {"X", "Y", "Z"} - 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 axes = {1, 2, 3} + + table.sort(axes, function(a, b) + return rotation[a] < rotation[b] + end) + + for _, axis in ipairs(axes) do 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 1cc48f0e3..a44a89826 100644 --- a/res/modules/internal/formats/vca.lua +++ b/res/modules/internal/formats/vca.lua @@ -25,7 +25,6 @@ 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)