The model button now accepts .fbx too: a new model:convert IPC runs
Blender with scripts/fbx2modelglb.py (mesh + skin kept, animations
dropped, embedded diffuse recovered even when the FBX references
missing external textures) into userData/models3d, then the resulting
GLB loads as usual. anim/model conversion share one convertFbx helper.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- models/dance_library.glb: skeleton-only GLB with the 13 Mixamo dances,
loaded at startup and bound BY BONE NAME to whatever rigged GLB the
user loads — new models dance immediately, no baking needed.
- Repertoire UI (Media tab): checkbox chips of the available clips, the
director only picks the ticked ones (none = all); persisted.
- 'Aggiungi animazioni': extra .glb clips load directly; .fbx are
converted on the fly by Blender via a new anim:convert IPC and the
bundled scripts/fbx2animglb.py (asarUnpacked for packaged builds).
- Manual BPM with TAP tempo: 0 = follow the detected beat, otherwise a
pure metronome drives the dance clock.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Recovers the embedded diffuse when the FBX references missing external
textures, discards animation-file objects keeping only their actions,
retargets bone-name prefixes (mixamorig vs mixamorig1) so clips recorded
for another character land on the base rig, and exports all clips as NLA
tracks for the dance director.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>