Daily Log - 2025-12-08
Summary
- Finished renaming keyframe flipbook exports to
flipbookEventsacross extractor and frontend, keeping data in GLTFextras. - Hardened hash resolution for flipbook events (name-hash and clip-hash), skipping unresolved entries instead of exporting
anim_xxxxfallbacks. - Added frontend fixes for normalized event times and timeScale-aware playback for TFT companions.
- Implemented flipbook reset on T-pose/stop and removed debug spam once validated.
- Added loop grace period in submesh visibility processing to prevent flicker when animations loop.
- Optimized frontend flipbook events: guarded per-frame calls and cached sorted event times to avoid allocations; removed unused properties.
- Documented flipbook events pipeline and binary structures; added best-practice note for loop grace handling.
Details
- Extractor:
HasFlipbookEventsflag, name-first export;flipbookEventswritten to skeleton extras;GltfAssetproperty renamed accordingly. - Frontend:
flipbookEventshandling uses animation duration for normalized times; guard around update call; event time caching; loop grace period state reset on load/start/stop. - Docs: Added
tft-flipbook-events.mdand updatedbest-practices.mdwith loop grace guidance.
Risks / Next Steps
- Monitor any models with unusual
submeshVisibilityEventstiming; adjust grace frames if future flicker reports arise. - Consider a configurable grace-frame value if different frame rates become common.