Files

72 lines
5.1 KiB
Markdown

# UI — すべてのゲームで共有されるインターフェース
UI は全ゲームが共有するインターフェース層です。右上のツールバー、ゲーム内メニュー、セーブインジケーター、左上の通知、背景の表示、そしてパネル・ボタン・リストの共通デザインがここに集まっています。UI 自体は物語もルールも持ちません。ほぼすべての他の MOD が UI の上に成り立っているため、どのゲームにも含まれており、依存関係に挙げる MOD も非常に多くなっています。
![Cthangover の正午のシーン:左上に時計、右上にツールバー、右側にシーンの選択肢。](assets/scene-hud.jpg)
## ツールバー
アイコンごとにパネルが開きます。ボタンは固定ではなく、ゲームに含まれる各 MOD が自分のボタンを追加します。そのため、アイテムのないノベルにはインベントリのボタンがなく、Scenario Studio を含むゲームではアイコンが一つ増えます。
![Cthangover のツールバー:ツール、マップ、インベントリ、キャラクター、勧誘した者たち、スキル、メニュー(歯車)、日誌。](assets/toolbar.png)
Cthangover では左から順に:
1. **ツール** — 開発者ツールのメニュー(エディターがゲームに含まれているときだけ)。
2. **マップ** — ワールドマップ(Map Engine)。
3. **インベントリ** — 所持品(Items)。
4. **キャラクター** — パーティとキャラクター(Characters)。
5. **勧誘した者たち** — 勧誘で仲間にしたキャラクター(Recruiting)。
6. **スキル** — スキル(Skills)。
7. **メニュー** — 後述のゲーム内メニュー(この MOD)。
8. **日誌** — クエスト(Quests)。
他のゲームでは並びが異なります。たとえば RPG Plus は**キャラクターシート**を追加します。
## ゲーム内メニュー
歯車のアイコンでメニューが開きます:**再開**、**セーブ**、**ロード**、**設定**、**メインメニュー**、**終了**。セーブが許可されていないシーンでは、画像のように「セーブ」がグレーアウトします。「ロード」「セーブ」「設定」はメインメニューと同じウィンドウを開きます。
![シーンの上に開いたゲーム内メニュー:Menu, Resume, Save, Load, Settings, Main menu, Exit。](assets/game-menu.jpg)
## 通知
左上には短いメッセージが表示されます。日誌の新しい記録や、物語からのヒントなどです。同時に最大 4 件まで表示され、それぞれ約 10 秒で消えます。残りは順番を待ちます。
![時計の下の通知:「あたりを見渡せ。路地に何か落ちている。」 — Cthangover プロローグのヒント。](assets/notification.png)
## MOD 作者向け
**ツールバーボタンとそのパネルを追加する**には、manifest の `ui` エントリーを使います。Items がインベントリを追加しているのがその例です:
```json
"ui": [
{
"id": "inventory",
"kind": "panel",
"slot": "ModBeforeUIPanel",
"scene_path": "scenes/ui/inventory_panel.tscn",
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
"priority": 10
}
]
```
- `button.index` がアイコンの順序を決めます(マップ 10、インベントリ 20、キャラクター 30、スキル 40、メニュー 50、日誌 60、スタジオ 90);
- `button.icon` はアイコン名、`button.locale` はツールチップの翻訳キー;
- `button` のないエントリーは、ゲームが自ら開くパネルやオーバーレイです。Crafting は作業台を `"kind": "overlay"` として `ModLastPanel` スロットに登録し、シナリオから開きます。
**シナリオからパネルを開く**には `ui.toggle_panel` アクションを、**通知を表示する**には `notify` コマンドを使います:
```scenario
notify "日誌に新しい記録"
```
**共通デザインを使う。** コードで組み立てたパネルは、フレームやラベル、チップ、ボタンを UI キット(`UiKit`)とその色・サイズのトークンから受け取ります。新しいパネルもゲームの見た目に自然になじみ、テーマに従います。
## うまく動かないとき
1. **ツールバーにボタンがない。** そのボタンを追加する MOD がこのゲームに含まれていません。**MOD とコレクション**でゲームの構成を確認してください。
2. **「セーブ」がグレーアウトしている。** 現在のシーンはセーブを許可していません。別の場所へ移動してからもう一度。作者はシーンのシナリオのいずれかのヘッダーに `save_allowed: true` と書けばセーブを許可できます。
3. **パネルが開くが中身がない。** その MOD には、このゲームでまだ見せるものがないのです。たとえばクエストがまだ始まっていない、といった具合です。