5.1 KiB
UI — すべてのゲームで共有されるインターフェース
UI は全ゲームが共有するインターフェース層です。右上のツールバー、ゲーム内メニュー、セーブインジケーター、左上の通知、背景の表示、そしてパネル・ボタン・リストの共通デザインがここに集まっています。UI 自体は物語もルールも持ちません。ほぼすべての他の MOD が UI の上に成り立っているため、どのゲームにも含まれており、依存関係に挙げる MOD も非常に多くなっています。
ツールバー
アイコンごとにパネルが開きます。ボタンは固定ではなく、ゲームに含まれる各 MOD が自分のボタンを追加します。そのため、アイテムのないノベルにはインベントリのボタンがなく、Scenario Studio を含むゲームではアイコンが一つ増えます。
Cthangover では左から順に:
- ツール — 開発者ツールのメニュー(エディターがゲームに含まれているときだけ)。
- マップ — ワールドマップ(Map Engine)。
- インベントリ — 所持品(Items)。
- キャラクター — パーティとキャラクター(Characters)。
- 勧誘した者たち — 勧誘で仲間にしたキャラクター(Recruiting)。
- スキル — スキル(Skills)。
- メニュー — 後述のゲーム内メニュー(この MOD)。
- 日誌 — クエスト(Quests)。
他のゲームでは並びが異なります。たとえば RPG Plus はキャラクターシートを追加します。
ゲーム内メニュー
歯車のアイコンでメニューが開きます:再開、セーブ、ロード、設定、メインメニュー、終了。セーブが許可されていないシーンでは、画像のように「セーブ」がグレーアウトします。「ロード」「セーブ」「設定」はメインメニューと同じウィンドウを開きます。
通知
左上には短いメッセージが表示されます。日誌の新しい記録や、物語からのヒントなどです。同時に最大 4 件まで表示され、それぞれ約 10 秒で消えます。残りは順番を待ちます。
MOD 作者向け
ツールバーボタンとそのパネルを追加するには、manifest の ui エントリーを使います。Items がインベントリを追加しているのがその例です:
"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 コマンドを使います:
notify "日誌に新しい記録"
共通デザインを使う。 コードで組み立てたパネルは、フレームやラベル、チップ、ボタンを UI キット(UiKit)とその色・サイズのトークンから受け取ります。新しいパネルもゲームの見た目に自然になじみ、テーマに従います。
うまく動かないとき
- ツールバーにボタンがない。 そのボタンを追加する MOD がこのゲームに含まれていません。MOD とコレクションでゲームの構成を確認してください。
- 「セーブ」がグレーアウトしている。 現在のシーンはセーブを許可していません。別の場所へ移動してからもう一度。作者はシーンのシナリオのいずれかのヘッダーに
save_allowed: trueと書けばセーブを許可できます。 - パネルが開くが中身がない。 その MOD には、このゲームでまだ見せるものがないのです。たとえばクエストがまだ始まっていない、といった具合です。



