MomijiUI — 画像から起こす宣言的UI
スクリーンショットを渡すと、それと一致する画面を宣言的UI(JSON)で再現し、同じ1枚のJSONを native と web で同じに描く。 UIモックを複数プラットフォームへ爆速で出すためのUI層です。
原理:どういう仕組みか
宣言的UI(記述=データ)
12ウィジェット+スキーマで画面を JSON 1枚に。型・制約があるので生成がブレず・機械検証できる。
クロスプラットフォーム
同じ画面JSONを native(C++/SDL) と web(Canvas2D) が同一描画。プラットフォームごとに作り直さない。
部品のビルド時展開
部品(use)+反復(repeat)+算術({{cx+4}})を展開器で平坦化。レンダラは無改修。
作って・見て・直すループ
画像を読む→生成→展開→描画→参照と比較→修正。精度の最後は描画して目で確かめる。
回帰の自動化(SSIM)
レンダーを撮り直しベースラインと SSIM 比較(CPU・GPU不要)。見た目の崩れを機械検知。
参照一致の自動化(ビジョン判定)
レンダーと参照をAIが見比べ、差分を構造化で返す。Workflow で合格まで自動修正。
正直な線引き:再現できるのはレイアウト(位置と形)。ゲームロジック・実アート・アニメは別物。 つまり「どんなゲームも作れる」ではなく「どんなゲームのUIモックも多プラットフォームで爆速に出せる」。
方法:どう作るか
- 1参照画像を用意 — 既存ゲームのスクショ。フォルダ階層がそのまま画面遷移木になる。
- 2AIが画面JSONを生成 — 構造を読み、共有部品(top-tabs / bottom-nav / char-card / card-grid)+repeat+算術で起こす。
- 3展開して検証 — expand-components で素のツリーへ平坦化 → momiji-validate でスキーマ検証。
- 4描画して参照と比較 — kaedevn_game --capture で1枚撮り、参照画像と並べて差を見る。
- 5機械が詰める — SSIM 回帰で壊れ検知、ビジョン判定で参照一致、Workflow で目標スコアまで自動修正。
詳細ドキュメント
作例(ブラウザで開く)
宣言的UIで起こしたゲームを、サイト内のプレイ画面(web ランタイムを iframe 表示)で開けます。
メメントモリ風モック
画像から再現13画面 ・ 横1280×720
マイページ/キャラ(所持・進化・レベリング・育成・詳細)/ボックス/クエスト/ガチャ 等。スクショ階層から再現。
▶ プレイ画面で開く幻想のメメント
画像から再現8画面 ・ 縦720×1280
縦持ちのソシャゲUIモック。ホーム/キャラ/ガチャ等を宣言的UIで構成。
▶ プレイ画面で開くアトリエの灯
放置ゲーム5画面 ・ 放置 × 探索 × 錬金
ネイティブ実装の放置ゲームを MomijiUI(JSON) で起こし直しブラウザ対応に。探索/錬金/道具袋/物語+オフライン報酬。
▶ プレイ画面で開くコインクリッカー
軽量ゲーム2画面 ・ 横1280×720
数える・遷移する・表示するだけのゲームは JSON のみで成立(ゲーム固有コードゼロ)。
▶ プレイ画面で開く