feat(ui): add experimental serialized prefab preview - #12
Conversation
nichinichisou0609
left a comment
There was a problem hiding this comment.
Author self-review of commit 3142b0a.
Reviewed the actual PR scope, public declarations, data loading, duplicate-instance addressing, motion/field writes, Canvas preview and element lifecycle. Fixed receiver-sensitive fetch calls, stale ready/controller/render/playback races, reconnect handling, disabled-binding semantics and prototype/inherited field writes. Unsupported motions keep a finite clock and report their limit without writing a pose.
The initial remote failure was an unsynchronized generated ENGINE list: CRLF source files hid the new notes from the local collector. The list is refreshed and LF/CRLF equivalence has a regression test. All four remote checks are green at this final head.
Local checks: 578 Node tests passed, typecheck and reproducible builds pass, and focused regression tests pass. Browser review against separately stored international 1.0.1 exports confirmed the complete NormalButtonM upper label, one numeric Animator binding and two parallel chapter tweens, with no motion diagnostics or console warnings/errors. Package/source inspection confirms no game data, review images or unrelated songs changes are included.
No outstanding code blocker found within the experimental inspector scope. Full TMP/localization, GPU materials/particles, complex animation fidelity and real JP UI coverage remain follow-ups explicitly documented in the PR. This author comment is not an independent approval, and the PR remains a draft.
Add an independent experimental
ournotes-player/uientry point for inspectingnnnotes uiexports without modifying the chart/story/Live2D players. The module provides a lazy library loader, DOM-independent editable session, Canvas 2D host, custom element and a viewer that loads user-supplied data.The preview includes the supported geometry, bindings, numeric/Sprite curves, single-layer Animator and DOTween subset. It preserves signed intermediate rectangles, includes visible overflow for isolated prefabs, keeps fixed-size children inside flexible cells, and fixes trailing-line-feed alignment. Lifecycle/load/playback race guards, receiver-safe fetch calls and protected field paths are covered by synthetic tests.
Validation:
This is an inspector using Canvas 2D approximations, not GPU/Unity pixel parity or a complete Presenter implementation. Full TMP/localization, materials/particles, complex Animator cases and real JP UI coverage remain unverified. Game assets and screenshots stay outside the repository.
Companion nnnotes export PR: MetaSekaiLab/nnnotes#11.