From bf5fe12e4cf6214464f9ecbbd24b8e3c18e3cbb0 Mon Sep 17 00:00:00 2001 From: Axel Meyer Date: Mon, 18 May 2026 22:13:56 +0200 Subject: [PATCH] =?UTF-8?q?fix(vagrant):=20walk=20anim=20=E2=80=94=20slow?= =?UTF-8?q?=20to=200.5x,=20no=20leg.scl=5Fy=20sign=20flip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User manual-test feedback after iteration-3 hip-stable + leg-rotation fixes: 1. Animation too fast for actual map traversal → play walk_fwd_lower and walk_upper with speed=0.5 (effective 1.6s cycle, was 0.8s). 2. Second half visually broken → was substrate's sign-flip trick where leg.scl_y goes +1 (opposite of rest -1) and foot.pos.y flips negative. Cascade foot.world.scl_y = +1 * -1 = -1 → foot rendered Y-flipped. User: 'die füße ... darf hier die skalierung nicht negativ werden'. New cycle: each half extends ONE leg (scl_y=-1 matching rest) while the other stays at scl_y=0 (collapsed/invisible). foot.world.scl_y never goes negative — only [0, +1]. Alternating-leg gait. Substrate first-half preserved verbatim; second-half mirrors with role swap. --- animations/walk_fwd_lower.anim.json | 8 ++++---- init.lua | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/animations/walk_fwd_lower.anim.json b/animations/walk_fwd_lower.anim.json index d18896b..9c65da6 100644 --- a/animations/walk_fwd_lower.anim.json +++ b/animations/walk_fwd_lower.anim.json @@ -9,16 +9,16 @@ "foot_l": {"pos": [0, 0]}, "foot_r": {"pos": [0, 0]} }, { "t": 0.2, - "leg_l": {"scl": [-1, -1]}, "leg_r": {"scl": [ 1, 1]}, - "foot_l": {"pos": [-0.044, 25.47]}, "foot_r": {"pos": [0.249, 25.85]} + "leg_l": {"scl": [-1, -1]}, "leg_r": {"scl": [ 1, 0]}, + "foot_l": {"pos": [0, 25]}, "foot_r": {"pos": [0, 0]} }, { "t": 0.4, "leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, 0]}, "foot_l": {"pos": [0, 0]}, "foot_r": {"pos": [0, 0]} }, { "t": 0.6, - "leg_l": {"scl": [-1, 1]}, "leg_r": {"scl": [ 1, -1]}, - "foot_l": {"pos": [ 0.044, -25.47]}, "foot_r": {"pos": [-0.249, -25.85]} + "leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, -1]}, + "foot_l": {"pos": [0, 0]}, "foot_r": {"pos": [0, 25]} }, { "t": 0.8, "leg_l": {"scl": [-1, 0]}, "leg_r": {"scl": [ 1, 0]}, diff --git a/init.lua b/init.lua index 36499dc..8719b51 100644 --- a/init.lua +++ b/init.lua @@ -113,9 +113,11 @@ local function update_lower_anim(moving, move_x, move_y) end puppet.stop(state.player, "idle_lower") puppet.stop(state.player, "idle") - puppet.play(state.player, anim_id, { loop = true }) + -- Slow walk to ~0.5x substrate speed (user preference: too fast for + -- actual map traversal at substrate's 0.8s/cycle). + puppet.play(state.player, anim_id, { loop = true, speed = 0.5 }) if not puppet.is_playing(state.player, "walk_upper") then - puppet.play(state.player, "walk_upper", { loop = true }) + puppet.play(state.player, "walk_upper", { loop = true, speed = 0.5 }) end state.walk_anim_current = anim_id if CI_FRAME_PERF and ci_last_state ~= "walk" then