Skip to content

feat(ui): add experimental serialized prefab preview - #12

Merged
nichinichisou0609 merged 3 commits into
mainfrom
feat/ui-prefab-preview
Sep 30, 2026
Merged

nichinichisou0609 merged 3 commits into
mainfrom
feat/ui-prefab-preview

Conversation

@nichinichisou0609

@nichinichisou0609 nichinichisou0609 commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Add an independent experimental ournotes-player/ui entry point for inspecting nnnotes ui exports 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:

  • Full Node suite: 578 passed; typecheck and reproducible build check pass. All four remote checks are green.
  • Generated ENGINE documentation stays consistent for LF and CRLF source files; the collector has a regression test for both.
  • Package-content check: no game data or review screenshots; the new UI modules, declarations, bundles and viewer are present.
  • Browser inspection against separately stored international 1.0.1 APK exports: NormalButtonM has a complete upper label and a 221×190 preview canvas; a loading Animator samples one numeric binding without diagnostics; the chapter Up sequence applies two parallel tweens without diagnostics.
  • Browser console has no errors/warnings after the fixes. UI documentation names the remaining rendering/runtime limits and the seconds-based API.

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.

@nichinichisou0609 nichinichisou0609 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@nichinichisou0609
nichinichisou0609 marked this pull request as ready for review September 30, 2026 08:39
@nichinichisou0609
nichinichisou0609 merged commit a9cd67c into main Sep 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant