diff --git a/retarget.py b/retarget.py index c41b5eb..764f3b9 100644 --- a/retarget.py +++ b/retarget.py @@ -244,9 +244,12 @@ def main(): f0, f1 = trim_bookends(target, f0, f1) fbx = outdir / f"{name}.fbx" - # the FBX take inherits the action name — un-named it exports as 'Armature|Scene' for EVERY clip, - # colliding in any take-addressed bank (Unreal/3GOD). merge_anims renames from the filename, but - # the take itself must be right (PROGRESS.md bug, fixed 2026-07-17). + # FBX take naming: the exporter builds the AnimStack from **scene.name**, NOT the action name + # (io_scene_fbx/export_fbx_bin.py — `name = ... else scene.name`). Renaming only the action left + # every clip exporting as the take 'Scene' (importing back as 'Armature|Scene'), so clips collide + # in any take-addressed bank (Unreal/3GOD). Rename the scene; keep the armature 'Armature' so the + # imported action reads '|' — the same shape Mixamo's anim-only FBXs use. + bpy.context.scene.name = name target.animation_data.action.name = name export_fbx(target, fbx) # sanity: the FBX action must carry keys on the driven bones