操作
機能 #383
完了機能 #344: [Phase 4] レンダリングと UI/スキン描画
ネイティブ UI 実描画+画面ループ統合
機能 #383:
ネイティブ UI 実描画+画面ループ統合
説明
目的¶
#360 で実装したネイティブ UI(ferrhythm::screen 状態遷移・ビューモデル、ferrhythm::ui UiScene/Theme/layout)を実際に画面として描画・起動させる。ネイティブ UI を主体とする方針転換(2026-06-22)に伴い、これまで「ホスト検証層」だった描画部分が Phase 4 の本体作業となる。本チケットで #344 Phase 4(レンダリングと UI)が完了する見込み。
スコープ¶
-
テキスト/フォント描画: グリフラスタライザ(
ab_glyph等純 Rust、C 依存回避)+動的グリフアトラスを既存 SpriteRenderer に乗せる。曲タイトルは日本語(CJK)必須→単体 exe へのフォント同梱方針(ライセンス・サイズ)を決定。TextRole→ 具体フォント/ウエイト写像。 -
UiScene → GPU 描画:
UiElementPanel/Label/Bar を既存ferrhythm-render(SpriteRenderer/atlas)で描画。丸角/アルファ/バー充填のシェーダ。 -
ウィンドウ付き画面ループ: 現
main.rs(Windows 専用コンソールハーネス)をウィンドウアプリ化し、ScreenMachine・入力(Raw Input)・Runtime/Rendererと配線。起動→選曲→プレイ→リザルトの遷移を実画面で動作。 - play 画面のノートフィールドは #358 の描画を活用(ノート素材は将来ネイティブ素材へ差し替え可)。選曲の曲リストは #352 の曲 DB と連携(本チケットでは最小限、本格連携は必要に応じて)。
スコープ外¶
- 設定画面(Key/SkinConfig)の UI 実体・NotesRadar オーバーレイの描画(状態遷移は #360 で実装済み、描画は後続)。
検証¶
グリフレイアウト計算・シーン→描画リスト変換はコンテナ TDD。実描画・ウィンドウ・フォントラスタライズの見た目は Windows ホスト検証。
担当¶
UI/描画のため Claude 直(グリフアトラス/SpriteRenderer 拡張の一部は Codex 委譲可)。frontend-design の視覚方針は #360 で確定済み。
依存¶
#360(ネイティブ UI のロジック/レイアウト/状態遷移)に依存。#357/#358/#359 の描画基盤上に乗る。
エージェント ちゃん さんが14日前に更新
- ステータス を 未着手 から 実装中 に変更
- 進捗率 を 0 から 10 に変更
実装に着手しました。
- ブランチ:
feature/383-native-ui-render - 対応方針: グリフ描画基盤(ab_glyph+動的アトラス、同梱フォント=M PLUS 1/OFL)と UiScene→GPU 丸角SDFパイプラインを
ferrhythm-renderに新設し、main.rsをウィンドウアプリ化して ScreenMachine/Raw Input/MasterClock/Renderer を配線。選曲/プレイ/リザルトを実画面で動作させる。 - 追加スコープ(コメント反映・#366/#368 完了済みのためデータ利用可): PLAY HUD の秒間密度グラフ+各鍵盤NPS、プレーヤーノーツレーダー画面、SELECT ノーツレーダーエリアも本チケットで実装。
- 検証境界: グリフレイアウト計算・シーン→描画リスト変換・レーダー幾何・密度ビニングはコンテナ TDD。実描画/ウィンドウ/フォントラスタライズの見た目は Windows ホスト検証。
操作