メインコンテンツまでスキップ

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-uiplugins/NegiLib/config.ymlRich UIの利用を許可するかを決めます。既定は auto(許可)。
GeyserGeyser-Spigot または Geyser-VelocityBedrockプレイヤーをJavaサーバーへ接続する仕組みです。

bedrock.rich-ui: auto は「Rich UIを使ってよい」という許可で、メニューの表示モードを自動で変えるものではありません。 表示モードが inventory のままのメニューは、bedrock.rich-ui の値にかかわらずインベントリGUIで開きます。


設定手順​

1. 構成を選んで導入する​

2つの構成のどちらかを選び、必要なJARを導入します。

2. 表示モードを決める​

サーバー全体の既定を自動選択にする場合は、plugins/EasyMenu/config.yml を編集します。

plugins/EasyMenu/config.yml
runtime:
default-presentation: auto

presentation を持たないすべてのメニューに適用されます。変更後は /menu reload を実行してください。

特定のメニューだけRich UIを優先する場合は、そのメニューのYAMLに書きます。

plugins/EasyMenu/sub/shop.yml
presentation:
mode: rich-preferred
fallback: true
native:
columns: 3
button-width: 128

native.columns と native.button-width は、Java版のダイアログだけでなく、Bedrockのレイアウトの希望値としても使われます(レイアウトの扱い)。

3. NegiLib側の設定を確認する​

既定のままで構いません。Rich UIを使わせたくない場合だけ変更します。

plugins/NegiLib/config.yml
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 / FoliaNegiLib-1.1.1.jar、EasyMenu-7.0.2.jar、Geyser-Spigot
Velocityなし
  • Velocity用のCompanionは不要です。
  • NegiLibが Geyser-Spigot を検出すると、Geyser用の描画機能が自動で有効になります。

Geyser-Velocity 構成(プロキシ)​

GeyserをVelocity上で動かし、Paper系サーバーをバックエンドに置く構成です。

導入先導入するもの
VelocityGeyser-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-preferredNative Dialog → インベントリNative Dialog のみ試す
native-requiredNative Dialog のみ同じ(常に切り替えない)
rich-preferredRich UI → 通常のBedrockフォーム → Native Dialog → インベントリRich UI のみ試す
rich-requiredRich UI のみ同じ(常に切り替えない)
autoRich 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 DialogBedrock 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 プレイヤーの画面が期待どおりにならないときは、上から順に確認してください。

  1. EasyMenuとNegiLibが、Paper / Purpur / Folia側に導入されているか(Velocity構成でもバックエンドに必須)。
  2. 構成に合ったGeyserが入っているか(Paper直結なら Geyser-Spigot、Velocity構成なら Geyser-Velocity と Companion)。
  3. メニューの表示モードが inventory のままになっていないか(presentation.mode、dialog、runtime.default-presentation)。dialog: false は表示を inventory に固定します。
  4. bedrock.rich-ui が off になっていないか。
  5. 一度切断して再接続したか(Pack更新後や初回は必須)。
  6. サーバーのログに、Geyser Rich UI pack registration failed や using clean SimpleForm fallback のような警告が出ていないか。出ている場合、Rich UIは使われず通常のフォームになっています。
  7. 使用しているクライアントで、上の確認項目を試したか。