"""Verify position queries and relative movement after kept Mixamo root travel.""" import math from ue_workshop import Scene, Sequence from ue_workshop.animations import CreatureAnimations as C from ue_workshop.characters import CREATURE_MODEL scene = Scene("RelativeMoveSmoke") creature = scene.skeletal_model(CREATURE_MODEL, name="Creature", height=300, location=(0, -850, 0)) shot = Sequence(scene, fps=30, frames=180) shot.animation(creature, C.MUTANT_RUN, start=0, end=60, keep_end_position=True) shot.animation(creature, C.MUTANT_SWIPING, start=20) shot.animation(creature, C.MUTANT_WALKING, start=80, end=120) before = shot.position(creature, 80) assert math.dist(before, (0, -850, 0)) > 100, before target = shot.move(creature, start=80, end=120, offset=(0, 50, 0), interpolation="auto") assert math.dist(shot.position(creature, 80), before) < 0.001 assert math.dist(shot.position(creature, 120), target) < 0.001 assert abs(target[1] - before[1] - 50) < 0.001 assert math.dist(shot.position(creature, 179), target) < 0.001 middle = shot.position(creature, 100) assert before[1] < middle[1] < target[1] shot.save(open_editor=False) print("Relative movement from", before, "to", target)