Files
TheTree_mock/docs/UI_OPERATION_SPECIFICATION.md
T

123 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# UI・操作仕様書
更新日: 2026-09-09。ドット断面版の復旧基準は `423fd6d`。この文書には、その後に追加した通常開業ガイド、継続配属、日次帳簿と単日確認を反映する。現在の接続状態と製品版へ向けた要求を分け、3営業日を含むP1全体は未合格として扱う。
## 1. 目的と外観
メイン画面を離れずに、宿の観察、問題発見、建築、改善までを完結できる経営シミュレーションUIとする。The Tower SPを参考に、世界樹の断面と小さなドット人物の営みを画面の中心へ置く。施設配置と動線の変更が、人の移動、混雑、待機、稼働として観察できることを重視する。
現在は濃緑、クリーム、木色の平坦で小さな枠を使う。部屋、家具、床、世界樹はドット主体で描き、人物・小物・庭木にKenneyの16px素材を使う。太い装飾枠や大きな人物アイコンを常設して中央の断面を狭めない。
## 2. 画面の領域と開閉
| 領域 | 現在の情報・操作 | 表示状態 |
|---|---|---|
| 上部 | 営業日、時刻、時間帯、来客、宿泊予定、資金、Mana、資材、Faith、Heat、停止、x1/x2/x4 | 常設の小型HUD |
| 左側 | 従業員、施設、商品、探索、投資、帳簿の入口 | 常設の細いカテゴリ列。入口があるだけの準備中項目を含む |
| 中央 | 世界樹の断面、施設の室内、客、従業員、工事、待機、混雑、6段階の開業手引き | 手引きは左上の見出しで折り畳める。断面を広く使用 |
| 右側 | 運営概要、施設状態、雇用候補/雇用済み人物の配属、帳簿、要対応イベント | `I`、カテゴリ、施設選択で必要な内容を開く重ね表示。初期は閉じる |
| 下部 | 建築、FRONT/BACK、掘削、回転、解除、運営、保存、読込と状況案内 | 操作バーと案内を常設 |
| 下部の追加領域 | MVP施設16種のカード、建設費、資材 | `B`で開閉する横スクロール建築パレット。初期は閉じる |
中央の可視面積を優先する。通常の管理パネルは画面幅の35%以内を設計目安とし、現実装は右側約312pxを使用する。人物編成や帳簿など一覧性が必要な機能は、将来の専用パネルで扱う。目標と通知を独立した右下領域へ常設する製品案は未接続。
## 3. 観察と基本操作
1. 中央の断面で営業を観察する。
2. 待機人数や施設の状態表示を見て、必要なときだけ `G` で格子・混雑を表示する。
3. 施設を選び、右パネルで状態と停止理由を確認する。
4. `B`または左の施設カテゴリから建築カードを選ぶ。
5. マップのPreviewと下部の失敗理由を確認して配置する。
6. 営業を再開し、人流と待機人数の変化を確認する。
ホイールはカーソル基準のズーム、中ボタンドラッグはパン、Homeは全体表示へ戻す。TabはFRONT/BACK切替、Spaceは停止/再開、1・2・4は時間倍率。Hは雇用候補、Eは掘削、Rは回転、Escはツールとパネルの解除に使う。地上/地下とFRONT/BACKは異なる軸として説明する。
現在は施設・工事・セルの選択を接続している。客や従業員のクリック選択、再クリック追跡、通知から原因地点への移動、トラックパッドや中ボタンなし環境の代替パンは今後の要求であり、現操作として案内しない。
## 4. 建築操作
現在の接続範囲:
- カード選択後、カーソル位置に占有セルを示す半透明Previewを表示する。
- 配置可能と不可を枠・色・失敗理由で区別する。範囲外、占有、資金、未掘削、接続・支持等の根拠はRuntimeの検証結果を用いる。
- 左クリックで建設Commandを送る。回転後もカード選択を維持する。
- Escまたは下部の解除でツールを取り消す。パレットは横スクロールする。
- 掘削はRank/運営gate、費用、資材、入口、支保をPreviewし、FRONT/BACKを同時に解放する。
- 客用/業務用昇降機は階間Topology未統合のため建設を拒否する。見えるカードを利用可能な運行設備として説明しない。
今後の要求:
- 注意状態の黄色表示、カーソル付近の短い理由、右クリック取消、床・通路・装飾のドラッグ連続配置。
- 解体前の返金額、停止する経路、利用中人物の退避を予告し、退避完了後に撤去するUI。
- 必要人員、欠品、接続の案内を建設後の対処へつなげる。
## 5. 観察表示と人物の動作
| 表示 | 現在の状態 | 次に接続する要求 |
|---|---|---|
| 室内・人物 | 施設別家具、Kenneyの小人物、セル間補間、左右反転、簡易歩行 | 専用の食事、睡眠、清掃、運搬、休憩動作と利用位置 |
| 混雑 | `G`で実密度/容量に基づく緑・黄・赤を表示 | 改善前後の待ち時間比較と目的地への案内 |
| 待機 | 実待機人数Badge、人物の小さな待機表示 | 推定待ち時間を保持し、選択または警告時に展開 |
| 客/従業員経路 | FRONT/BACK切替と共通の実混雑表示 | 人物ごとの経路、職員の搬送・勤務先の個別表示 |
| 清潔・騒音・治安・物流 | 専用オーバーレイ切替は未接続 | 清潔、距離減衰、目撃・監査、倉庫・予約・運搬の表示 |
人物はRuntimeの実Actorを表示する。客のサービス中位置は施設内へ描画上だけ投影し、権威セル、経路探索、占有、保存を変えない。停止中は動作も止め、移動は確定セルへ合わせる。隣接Atlasセルの別人物を歩行差分に使用しない。
昇降機については待つ→乗る→昇降→降りるを将来の運行状態へ接続する。乗客の徒歩表示と車内表示の重複を防ぐ。現段階の上下通路移動を昇降機完成の証拠にしない。
## 6. 人物と施設の詳細
施設の営業状態、複数停止理由、容量、利用中Service、待機、人員は右パネルへ接続済み。客や従業員の画面上のクリック選択と追跡は未接続。次を製品要求とする。
- 客: 目的、行き先、経路、欲求、残り忍耐。
- 従業員: 勤務先、状態、疲労、担当、再配属と勤務帯変更は雇用済みパネルに接続済み。実通勤・到着、次の休憩の詳しい予告と人物クリック連動は追加が必要。
- 施設: 営業/休業、価格・方針、清潔、在庫、当日売上・費用、担当変更。
雇用候補20人の比較と雇用Commandに加え、雇用済み一覧から人物、配属先、日勤06:00〜18:00/夜勤18:00〜翌06:00を選ぶ操作を接続した。「配属・勤務帯を変更」はRuntime Commandで確定し、未配属、反映予定、役割・定員・経路の失敗理由、作業中などの変更不可、処理中の重複防止を表示する。勤務帯は継続計画として保存する(D-032)。
この配属では人物の位置を変更せず、配属先への経路存在を事前に検証して論理的に確定する。勤務先へ実通勤し、到着後に施設人員へ加える統合は未完了である。契約、計画の確定、現場到着の3つを同じ意味で表示しない。
商品、探索、投資の準備中案内を完成した経営機能として説明しない。
## 7. 時間進行と06:00決算
時間操作は上部の時計の近くへ置き、停止・通常・2倍・4倍を一操作で切り替える。重要な選択肢では右パネルを開き、選択と解決後の停止解除を接続する。
Runtimeでは00:00の暦日更新と、06:00の前営業日締め・朝運用を別の境界として扱う。帳簿は当営業日の現金入出金・うち建築・給与支払と、選んだ確定営業日の売上・運営費・給与・その他費用・利益・前日差・未払・照合・施設別損益を表示する。建築による資金減少を営業赤字と混同しない。06:00の給与現金支払が新営業日の出金、費用が前営業日の決算に属する点を案内する。
開業の手引きは受付→客室→接続→配属→初宿泊売上→翌朝決算の6段階を実状態から示す。達成後は売上と決算の履歴を先に評価し、夜間の勤務外や配属変更だけで達成が消えないようにする。Save復元では新しいServiceから読み直す。手引きは状態を書き換えず、ボタンから通常の建築・従業員・時間・帳簿操作へ進める。
通常初期予算での宿泊売上320G、翌06:00の給与120G・未払0・照合一致・専用保存復元を単日確認した。受付売上6,020Gと全利益6,040Gの現結果は調整対象で、価格や宿泊の決済時点を今回のUI追加で改定していない。厨房・補給・実配送を含む3営業日運営、初見試遊、製品バランスは残る。
帳簿は表示中だけ更新し、日付のPopup操作中は選択肢を再構築しない。画面を閉じれば断面の観察へ戻る。
## 8. 視覚と資源管理のルール
- 濃緑、クリーム、木色を基本にし、正常は緑、注意は黄、危険は赤、地下固有情報は紫で示す。状態名や記号を添え、色だけに依存しない。
- 日本語と小さな数値に筆文字を使わず、読みやすい書体を使用する。小アイコンには日本語ラベルまたはツールチップを併記する。
- 成人向け施設は紫の照明、幕、夜の装飾などで区別する。固有作品のボタン、キャラクター、画面寸法を複製しない。
- KenneyのPacked Atlasを `VisualThemeProfile.pixel_dungeon_tiles`/`pixel_town_tiles` から取得する。16pxセルと用途の切り出しは描画ヘルパー側で扱い、画像Path・Atlas座標・カメラ状態をSimulationやSaveへ保存しない。
- KenneyのPixel素材はNearest、Mipmap無効。人物の小ささと床への接地を維持し、整数倍率を優先する。最小表示や大きな世界の一覧では縮小が起こるため、ズームで確認できるようにする。
- 建築カード、管理カテゴリ、資源、操作の小アイコンは既存のTheme安定ID参照を維持する。マップの施設は大きな共通Iconではなく室内として描き、右Inspectorの小Iconとは役割を分ける。
- 現マップは旧生成背景、人物Bust Marker、装飾Skinを使用しない。旧TextureのMipmap方針をPixel素材へ一括適用しない。
- 基準解像度1440×810、HiDPI、`canvas_items`/`expand`/fractional stretchを使用し、横長画面の余白を中央へ配分する。解像度別のレイアウト確認と実描画fpsの検証を分ける。
- Pixel Texture欠落時にも背景・家具・操作系は手続き描画を継続する。ただし現人物描画は素材がなければ省略されるため、「必ず代替人物Markerが出る」とは保証しない。
## 9. 現在の表示基準と確認資料
現在の基準は [PIXEL_TOWER_VISUALS.md](PIXEL_TOWER_VISUALS.md)、`make capture-pixel` の実描画・状態JSONと、`make capture-opening` の通常開業・配属後・決算PNGとする。`scenes/main/world_preview.gd`、`scripts/ui/pixel_tower_art.gd`、`scenes/main/main.gd` が主な表示実装である。
旧V3モック `assets/mockups/the-tree-main-gameplay-visual-mock-v3-tower-style.png` と旧画像制作仕様書は過去の資料として保存する。現在の画面を旧モックの装飾や常設パネルへ戻す基準にはしない。画像内の数値・施設寸法ではなく、正式DefinitionとWorldServiceの占有を正とする。
確認手順は [PLAYTEST_GUIDE.md](PLAYTEST_GUIDE.md)、実装と未接続の区分は [DEVELOPMENT_BACKLOG.md](DEVELOPMENT_BACKLOG.md) を参照する。
## 10. 商品・厨房・配送
左の「商品」は右パネルを開き、仕入れ/厨房/配送の3タブを切り替える。完成した倉庫・厨房を選び、仕入れは合計代金と購入後残金、厨房は現物在庫・生産状態・目標4/8/12/16を表示する。入力途中の数量と厨房別の設定は表示更新やタブ変更で失わない。
仕入れ・設定は正式Commandを1件だけ送り、待機中の同じ操作を無効にする。処理結果は固定位置の日本語ラベルに表示し、失敗時は入力を保持する。Save復元時もCommand Queueを参照し、二重購入を防ぐ。
配送は施設名、品目数量、担当者、状態、待機理由を表示する。現在の配送を優先し、完了履歴は直近10件まで表示する。食堂未建築でも厨房への配送は表示する。帳簿・従業員等と同時に常設せず、Escで閉じて断面へ戻る。
実装: `scripts/ui/supply_management_panel.gd`。検証: `tests/ui/test_supply_management.gd`。詳細と画面は [供給検証記録](qa/P1_SUPPLY_CHAIN.md) を参照。