25 lines
1.2 KiB
Python
25 lines
1.2 KiB
Python
"""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)
|