Bedrock / Geyser / Rich UI ガイド
このページでは、Geyser経由で接続するBedrock版プレイヤーにEasyMenuを表示するための設定を説明します。
EasyMenuの初期表示はインベントリGUIです。 Geyserを入れただけでは、Bedrockプレイヤーにも(Geyserが変換した)インベントリ画面が表示されます。
Bedrock向けのフォームやRich UIを使うには、メニュー側(または config.yml)で表示モードを選ぶ必要があります。
全体像
Bedrock向けの表示には、役割の異なる3つの設定が関わります。混同しないようにしてください。
| 設定 | 場所 | 役割 |
|---|---|---|
| 表示モード | EasyMenuの presentation.mode / dialog / config.yml の runtime.default-presentation | どの種類の画面で開くかを選びます。既定は inventory。 |
bedrock.rich-ui | plugins/NegiLib/config.yml | Rich UIの利用を許可するかを決めます。既定は auto(許可)。 |
| Geyser | Geyser-Spigot または Geyser-Velocity | BedrockプレイヤーをJavaサーバーへ接続する仕組みです。 |
bedrock.rich-ui: auto は「Rich UIを使ってよい」という許可で、メニューの表示モードを自動で変えるものではありません。
表示モードが inventory のままのメニューは、bedrock.rich-ui の値にかかわらずインベントリGUIで開きます。
設定手順
1. 構成を選んで導入する
2つの構成のどちらかを選び、必要なJARを導入します。
2. 表示モードを決める
サーバー全体の既定を自動選択にする場合は、plugins/EasyMenu/config.yml を編集します。
runtime:
default-presentation: auto
presentation を持たないすべてのメニューに適用されます。変更後は /menu reload を実行してください。
特定のメニューだけRich UIを優先する場合は、そのメニューのYAMLに書きます。
presentation:
mode: rich-preferred
fallback: true
native:
columns: 3
button-width: 128
native.columns と native.button-width は、Java版のダイアログだけでなく、Bedrockのレイアウトの希望値としても使われます(レイアウトの扱い)。
3. NegiLib側の設定を確認する
既定のままで構いません。Rich UIを使わせたくない場合だけ変更します。
bedrock:
rich-ui: auto # auto(既定)または off
off にすると、Rich UIは使われず、常に通常のBedrockフォーム(SimpleForm)になります。値は off 以外であれば auto と同じ扱いです。
4. Bedrockの端末で確認する
接続し直して /menu を実行します。Pack更新後や初回は、一度再接続してください。
構成ごとの導入物
Geyser-Spigot 構成(Paper直結)
Geyserを、EasyMenuが動いているPaper / Purpur / Foliaと同じサーバーで動かす構成です。
| 導入先 | 導入するもの |
|---|---|
| Paper / Purpur / Folia | NegiLib-1.1.1.jar、EasyMenu-7.0.2.jar、Geyser-Spigot |
| Velocity | なし |
- Velocity用のCompanionは不要です。
- NegiLibが
Geyser-Spigotを検出すると、Geyser用の描画機能が自動で有効になります。
Geyser-Velocity 構成(プロキシ)
GeyserをVelocity上で動かし、Paper系サーバーをバックエンドに置く構成です。
| 導入先 | 導入するもの |
|---|---|
| Velocity | Geyser-Velocity、NegiLib-Geyser-Velocity-1.1.1.jar(NegiLib Geyser Velocity Companion) |
| Paper / Purpur / Folia(バックエンド) | NegiLib-1.1.1.jar(必須)、EasyMenu-7.0.2.jar |
- バックエンドにもNegiLib本体が必須です。 VelocityのCompanionだけでは動作しません。
- EasyMenuは、メニューを使うバックエンドごとに導入します。
- Companionとバックエンドは、
negilib:bridgeというプラグインメッセージのチャンネルで通信します。
どちらの構成でも、EasyMenuとNegiLibをPaper系サーバーに入れる点は同じです。違いはGeyserとCompanionの置き場所だけです。
表示モードの違い
メニュー(またはサーバー全体)が指定した表示モードによって、試される描画方式の順序が決まります。
fallback: true(既定)のとき、各モードは左から順に試して、最初に使えるものを選びます。
| モード | 試す順序(fallback: true) | fallback: false のとき |
|---|---|---|
inventory(既定) | インベントリのみ | 同じ |
native-preferred | Native Dialog → インベントリ | Native Dialog のみ試す |
native-required | Native Dialog のみ | 同じ(常に切り替えない) |
rich-preferred | Rich UI → 通常のBedrockフォーム → Native Dialog → インベントリ | Rich UI のみ試す |
rich-required | Rich UI のみ | 同じ(常に切り替えない) |
auto | Rich UI → 通常のBedrockフォーム → Native Dialog → インベントリ | Rich UI のみ試す |
- 「使える」かどうかは、プレイヤーごとに判定されます。Rich UIと通常のBedrockフォームは、Geyser経由で接続したBedrockプレイヤーにだけ使われます。Javaプレイヤーは、これらを飛ばして次の方式へ進みます。
*-requiredは、条件を満たさないとき他の方式へ切り替えず、メニューを開きません。プレイヤーには「このメニューは現在のサーバーバージョンでは表示できません」という趣旨のメッセージが送られます。fallback: falseにすると、*-preferredやautoでも次の方式へ切り替えず、先頭の方式だけを試します。- Rich UIの描画中に失敗した場合も、
fallbackが許されていれば次の方式で開き直します(inventoryと*-requiredを除く)。 rich-preferredとautoは、試す順序が同じです。
native-preferred とBedrockプレイヤーnative-preferred はBedrock向けのフォームを試さない順序です。Bedrockプレイヤーに専用の画面を出したい場合は、rich-preferred か auto を使ってください。
native-preferred をBedrockプレイヤーに使った場合の実際の見え方(Geyserがダイアログをどう変換するか)は、このWikiでは確認していません。
「通常のBedrockフォーム」は、Rich UIのPackを使わない標準のフォームです。Rich UIが使えない場合の安全な代替として使われます。
Rich UIとは
Rich UIは、NegiLibが生成するBedrockのJSON UI用Resource Packを、Geyser経由でBedrockクライアントに配布して実現する、見た目を整えたメニュー画面です。
- 接続時にPack(現在のリビジョンは
negilib-rich-ui-v11)がGeyserのセッションへ登録されます。Pack更新後は再接続しないと反映されません。 - アイテムのアイコンは、Bedrockが元から持つテクスチャを使います。接続後に新しく生成されたカスタムアイコンは、再接続するまで参照されません。
- Packの登録が成功しても、クライアントがJSON UIを正しく解釈して表示できたことの確認にはなりません。
Rich UIが使えない(Packが登録されていない、bedrock.rich-ui: off など)場合や、送信に失敗した場合は、fallback が許されていれば通常のBedrockフォームへ切り替わります。
レイアウトの扱い
Bedrock Rich UIのレイアウトは、Java版のNative Dialogとは別の制約を持ちます。
| 項目 | Java版 Native Dialog | Bedrock Rich UI |
|---|---|---|
| 列数 | 1〜8(既定 3) | 指定値の上限は3列相当。画面幅に応じて3・2・1列へ自動で折り返す |
| ボタン幅 | 1〜1024(既定 150) | 100 以下 / 101〜180 / 181 以上の3段階に丸められ、セル幅は 112 / 128 / 144 になる |
| 高さ | 内容に応じる | 画面高の82%。タイトルと閉じるボタンは固定で、内容だけがスクロールする |
互換性と、確認できていないこと
NegiLibのRich UIは、生成されるPackの構造や通信処理について自動テストで検証されていますが、クライアント端末での表示・GUIスケール変更・入力機器ごとの動作は自動テストで検証されていません。 Minecraft Bedrock版のクライアントのバージョンや端末(スマートフォン、コンソール、PC)によって、JSON UIの挙動に差が出る可能性があります。「完全に対応」とは言えません。
導入前に、実際に使うクライアントで次の点を確認してください。
- 4つのボタンが2列で並ぶか、最後の行が一部だけでも崩れないか
- 項目が多いとき、最後のボタンまでスクロールで到達できるか
- GUIスケールの変更、狭い画面
- タッチ操作、コントローラー操作のスクロール
- 無効化されたボタン、アイコン、ツールチップ、閉じるボタン
Rich UIで問題が出る場合は、plugins/NegiLib/config.yml で bedrock.rich-ui: off を指定すると、通常のBedrockフォームに戻せます。
チェックリスト
Bedrock プレイヤーの画面が期待どおりにならないときは、上から順に確認してください。
- EasyMenuとNegiLibが、Paper / Purpur / Folia側に導入されているか(Velocity構成でもバックエンドに必須)。
- 構成に合ったGeyserが入っているか(Paper直結なら
Geyser-Spigot、Velocity構成ならGeyser-Velocityと Companion)。 - メニューの表示モードが
inventoryのままになっていないか(presentation.mode、dialog、runtime.default-presentation)。dialog: falseは表示をinventoryに固定します。 bedrock.rich-uiがoffになっていないか。- 一度切断して再接続したか(Pack更新後や初回は必須)。
- サーバーのログに、
Geyser Rich UI pack registration failedやusing clean SimpleForm fallbackのような警告が出ていないか。出ている場合、Rich UIは使われず通常のフォームになっています。 - 使用しているクライアントで、上の確認項目を試したか。