72 lines
5.1 KiB
Markdown
72 lines
5.1 KiB
Markdown
# UI — すべてのゲームで共有されるインターフェース
|
|
|
|
UI は全ゲームが共有するインターフェース層です。右上のツールバー、ゲーム内メニュー、セーブインジケーター、左上の通知、背景の表示、そしてパネル・ボタン・リストの共通デザインがここに集まっています。UI 自体は物語もルールも持ちません。ほぼすべての他の MOD が UI の上に成り立っているため、どのゲームにも含まれており、依存関係に挙げる MOD も非常に多くなっています。
|
|
|
|

|
|
|
|
## ツールバー
|
|
|
|
アイコンごとにパネルが開きます。ボタンは固定ではなく、ゲームに含まれる各 MOD が自分のボタンを追加します。そのため、アイテムのないノベルにはインベントリのボタンがなく、Scenario Studio を含むゲームではアイコンが一つ増えます。
|
|
|
|

|
|
|
|
Cthangover では左から順に:
|
|
|
|
1. **ツール** — 開発者ツールのメニュー(エディターがゲームに含まれているときだけ)。
|
|
2. **マップ** — ワールドマップ(Map Engine)。
|
|
3. **インベントリ** — 所持品(Items)。
|
|
4. **キャラクター** — パーティとキャラクター(Characters)。
|
|
5. **勧誘した者たち** — 勧誘で仲間にしたキャラクター(Recruiting)。
|
|
6. **スキル** — スキル(Skills)。
|
|
7. **メニュー** — 後述のゲーム内メニュー(この MOD)。
|
|
8. **日誌** — クエスト(Quests)。
|
|
|
|
他のゲームでは並びが異なります。たとえば RPG Plus は**キャラクターシート**を追加します。
|
|
|
|
## ゲーム内メニュー
|
|
|
|
歯車のアイコンでメニューが開きます:**再開**、**セーブ**、**ロード**、**設定**、**メインメニュー**、**終了**。セーブが許可されていないシーンでは、画像のように「セーブ」がグレーアウトします。「ロード」「セーブ」「設定」はメインメニューと同じウィンドウを開きます。
|
|
|
|

|
|
|
|
## 通知
|
|
|
|
左上には短いメッセージが表示されます。日誌の新しい記録や、物語からのヒントなどです。同時に最大 4 件まで表示され、それぞれ約 10 秒で消えます。残りは順番を待ちます。
|
|
|
|

|
|
|
|
## 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 には、このゲームでまだ見せるものがないのです。たとえばクエストがまだ始まっていない、といった具合です。
|