This commit is contained in:
Nicholas Butzke
2026-08-09 01:31:44 -04:00
parent 922983429e
commit 9358746582
43 changed files with 4324 additions and 481 deletions
+20
View File
@@ -220,6 +220,26 @@ def main() -> None:
cmd.append("--keep-root-motion")
run(cmd, "Retarget animation library (Blender)")
# Blender's large NLA export can omit actions imported from the final
# animation libraries on some FBX/Auto-Rig Pro and Mixamo rigs. Re-inject
# the three critical late-library clips in compact passes. Besides making
# the build deterministic, this prevents backward movement and wall-running
# from silently falling through to unrelated ground/fall animations.
injector = os.path.join(TOOLS, "inject_wallrun.py")
wall_library = os.path.join(args.anim_dir, "_wallrun.glb")
backward_library = os.path.join(args.anim_dir, "_directional.glb")
wall_fixed = os.path.join(STAGING, f"{name}_wall_motion.glb")
fully_fixed = os.path.join(STAGING, f"{name}_required_motion.glb")
run([blender, "--background", "--python", injector, "--",
final_path, wall_library, wall_fixed,
"WallRunLeft", "WallRunRight"],
"Guarantee authored wall-run clips (Blender)")
run([blender, "--background", "--python", injector, "--",
wall_fixed, backward_library, fully_fixed,
"strafe_back-cycle=RunBackward"],
"Guarantee authored backward locomotion (Blender)")
shutil.copyfile(fully_fixed, final_path)
# 3. Gate on the checks that encode every way this has gone wrong before.
run([blender, "--background", "--python", os.path.join(TOOLS, "verify_character.py"),
"--", final_path], "Verify the built character (Blender)")