このページはJava Edition(Java版)向けです。
揚げたてのポテト
揚げたてのポテト
統合版(BE版)で遊んでいる皆さん、一度はJava版の人と一緒にクロスプレイをしてみたいと思ったことはありませんか?
揚げたてのポテト
さて、今回ご紹介するのはJava版のマイクラサーバーに統合版でもログインできるようにするプラグインを紹介したいと思います。
目次
クロスプレイとは
まず、クロスプレイについて簡単にご説明します。
クロスプレイとは、同じゲームの異なるデバイス(機種)で通信を行いマルチプレイをできるようにする技術のことです。
ちなみにクロスプレイの正式名称は「クロスプラットフォームプレイ」といいます。
マインクラフトでは、様々なデバイスで遊べますよね。
パソコンで遊ぶJava版とWindows10版、PS4、スイッチ、スマホなどのBedrock Edition版(統合版)があります。
しかし、マインクラフトのクロスプレイでは、統合版のデバイスのみが対応しており、Java版と統合版ではクロスプレイができないのです!
揚げたてのポテト
昔にMojangがいずれはこの2つでもクロスプレイをさせたいと言ってたような記憶があります(ソース見つけられなかったです)。
※記憶違いでしたらすみません。
そんな環境の中で、Java版のプラグインである「GeyserMC」を導入するとJava版と統合版でクロスプレイで遊ぶことができます!
統合版の中でもIPアドレスを入力できないデバイスでは対応しておりません!(PS4版、スイッチ版、Xbox版)
GeyserMCを使おう!
上記のことからJava版と統合版ではクロスプレイができないと思っていましたが、このGeyserMCというプラグインを使うと疑似クロスプレイができるようになります。
※なぜ疑似クロスプレイなのかは後ほどご説明します。
どんな仕組みなの?
GeyserMCのサイトより引用
GeyserMCは、統合版の通信パケットをJava版の通信パケットに変換するミドルウェアになります。詳しい仕組みはわかりませんが、GeyserMCのおかげで統合版をJava版のサーバーに接続できるようになります。
※ミドルウェアとはそれぞれの処理を行うアプリの中間に位置するソフトウェアのこと
なぜクロスプレイではなく疑似クロスプレイ?
GeyserMCプラグイン単体では、クロスプレイができると言っても、統合版のアカウントではログインできず、サーバーにログインする際にJava版のアカウント情報を入力する必要があるため、疑似クロスプレイと呼んでいます。
ポテ子ちゃん
結局はJava版のアカウントも必要ってことじゃん!?
揚げたてのポテト
まぁまぁ、落ち着いてw
それは、GeyserMCプラグイン単体で導入した時だけです。もう少し話の続きを聞いてみましょう!
しかし、GeyserMCとは別のもう1つのプラグインを導入すると、統合版アカウント(Xbox Liveアカウント)だけでログインする方法もあるので一緒にご紹介しようと思います。
ポテ子ちゃん
なるほど、そういうことね~。
そうならそうって早く言ってよ~笑笑
ダウンロード
GeyserMCのダウンロード
こちらがGeyserMCのホームページになります。
右上にあるDownloadをクリックします。
Downloadをクリックすると、下記のページに移動します。
赤枠で囲われているのが、プラグインになります。
サーバーの種類によって対応したプラグインをダウンロードしてください。
名前 | サーバー |
---|
Geyser-BungeeCord | BungeeCord・WaterFallサーバーに対応 |
Geyser-Spigot | Bukkit・Spigot・PaperMCサーバーに対応 |
Geyser-Sponge | Spongeサーバーに対応 |
Geyser | 確認中 |
Geyser-Velocity | Velocityサーバーに対応 |
Floodgateのダウンロード
これが先ほど言った統合版アカウントだけでログイン可能とするプラグインです。
赤枠で囲われているのが、プラグインになります。
サーバーの種類によって対応したプラグインをダウンロードしてください。
名前 | サーバー |
---|
floodgate-bukkit | Bukkit・Spigot・PaperMCサーバーに対応 |
floodgate-bungee | BungeeCord・WaterFallサーバーに対応 |
floodgate-common | 確認中 |
floodgate-velocity | Velocityサーバーに対応 |
このプラグインでは、CraftBukkitサーバーに対応していないので注意!
SpigotまたはPaperMC、BungeeCordを推奨します。
導入方法
GeyserMCの導入方法
最新版のプラグインサーバーを用意してください。
※常に最新版のサーバーでしか動作しません。
先ほどダウンロードをしたGeyserMCプラグイン(Geyser-〇〇.jar)をサーバーのpluginsフォルダの中に入れてください。
これで導入は完了です。簡単ですね!
古いバージョンでログインしたい場合
どうしても古いバージョンでログインしたい場合は、当記事で紹介している「ViaBackwards」というプラグインを使用しましょう。
Floodgateの導入方法
統合版アカウント(Xbox Liveアカウント)でログインさせたい場合に導入してください。
CraftBukkit以外の最新版のプラグインサーバーを用意してください。
※既にGeyserMCプラグインは導入済みとする。
先ほどダウンロードをしたFloodgateプラグイン(floodgate-〇〇.jar)をサーバーのpluginsフォルダの中に入れてください。
Spigot、PaperMCサーバーで導入する場合
導入した状態でサーバーを起動すると、pluginsフォルダにGeyser-Spigotフォルダが生成されると思います。
その中のconfig.ymlを開き、29行目辺りのauth-type=onlineを以下の通りに変更する必要があります。
# Authentication type. Can be offline, online, or floodgate (see https://github.com/GeyserMC/Geyser/wiki/Floodgate).
auth-type: floodgate
これで導入は完了です。
マイクラサーバーのポート開放
それでは、サーバーにJava版と統合版がログインできるようにポート開放をしましょう!
Java版と統合版ではログインするポートが異なるのでそれぞれ開放する必要があります。
プラットフォーム | デフォルトポート |
---|
Java Edition(Java版) | 25565(TCP) |
Bedrock Edition(統合版) | 19132(UDP) |
統合版はTCPではなく、UDP開放になります!
マルチプレイで接続してみよう!
Java版のログイン方法はいつもと変わらないので、サーバーアドレスを入力してサーバーにログインします。
以下は、統合版でのログイン方法になります。
Floodgateを導入してない場合(Java版アカウント必要)
Java版のマイクラサーバーのグローバルIPでログインしましょう。
ポート番号は19132にしてください。
すると、Java版のアカウント情報を求められるのでアカウント情報を入力します。入力できたら、送信するとJava版のマイクラサーバーにログインすることができます。
こちらはログイン後のプレイ画面で左の画像は統合版で右の画像はJava版です。左上に統合版ならではのプレイヤー表示が出ていますね。
次は、Java版アカウントを必要としないログイン方法です。
Floodgateを導入している場合(Java版アカウント不要)
同じくJava版のマイクラサーバーのグローバルIPでログインしましょう。
ポート番号は19132にしてください。
すると、今度はJava版アカウント情報の画面が表示されず、そのままサーバーにログインすることができました!
これでJava版と統合版のクロスプレイで遊ぶことができますね!
揚げたてのポテト
個人的に遊んでみた結果、変な動作も感じず普通に遊ぶことができました。
一部のコマンドによる影響は見られましたがサバイバルで遊ぶ分には問題無さそうです!
揚げたてのポテト
サーバーにログインすると、マイクラIDの先頭に*が付いていると思いますがこれは仕様です。この文字を変えることも可能なので詳しくは下記の設定ファイルより参照ください。
クロスプレイの注意
互換性があるわけではありません、クロスプレイ中の不具合等は自己責任となりますのでご注意ください。
コマンドとパーミッションについて
コマンド | 許可 | 説明 |
---|
/geyser dump | geyser.command.dump | バグ報告でGeyserMCのデバッグ情報を出力 |
/geyser help /geyser ? | geyser.command.help | コマンド一覧を表示 |
/geyser list | geyser.command.list | GeyserMCのプレイヤー一覧を表示 |
/geyser offhand | geyser.command.offhand | アイテムをオフハンドに置く |
/geyser reload | geyser.command.reload | GeyserMCの再読み込み ※全てのプレイヤーがキックされる。 |
/geyser shutdown /geyser stop | geyser.command.shutdown | GeyserMCをシャットダウンする |
/geyser version | geyser.command.version | GeyserMCのバージョンを表示 |
設定(config)ファイルについて
サーバーを起動するとGeyserMCとFloodgateのプラグインフォルダが生成されます。その中に設定ファイル(config.yml)があり、様々な設定をすることができます。
以下はデフォルトの設定ファイルを日本語に翻訳した設定ファイルになります。
設定を変えない方がいい項目には★を付けています。
GeyserMCのconfigファイル
# ------------------------------------------------------
# Geyser 設定ファイル
#
# これはBedrock Edition版とJava Edition版を繋ぐプラグインです。
#
# GitHub: https://github.com/GeyserMC/Geyser
# Discord: https://discord.geysermc.org/
# ------------------------------------------------------
bedrock:
# 統合版が接続するIPアドレス
# サーバーに接続できるIPを制限しない限り、これを変更する必要はありません。
# ★
address: 0.0.0.0
# 統合版が接続するポート番号
# ★
port: 19132
# 一部のホスティングサービスは、サーバーを起動する度にJava版のポート番号を変更します。
# 統合版のポート番号をJava版のポート番号と同じにする。
# ★
clone-remote-port: false
# 統合版に表示されるMOTDを設定する。
# passthrough-motdがtrueに設定されている場合は関係ない。
motd1: "GeyserMC"
motd2: "Another GeyserMC forced host."
# 統合版に送信されるサーバー名です。
# 一時停止画面や設定画面の両方に表示される。
server-name: "Geyser"
remote:
# Java版のサーバーのIPアドレス
# autoの場合はIPアドレスは127.0.0.1に設定されます。
# 要するに自動的にIPアドレスを設定してくれます。
# ★
address: auto
# Java版のサーバーのポート番号
# autoの場合は自動的にポート番号を設定してくれます。
# ★
port: 25565
# サーバーにログインする時の認証タイプ
# サーバーがonline-modeがfalseであればoffline
# サーバーがonline-modeがtrueであればonline
# Java版アカウントが必要な場合はonline、Xbox Liveアカウントであればfloodgate
# floodgateタイプにする場合は、floodgateプラグイン導入必須
auth-type: online
# Floodgateは暗号化を使用して、許可されたソースからの使用を保証します。
# Floodgate(BungeeCordまたはSpigot)によって生成された公開鍵を指定する必要がある。
# ★
floodgate-key-file: public-key.pem
## auth-typeをonlineにした時に統合版ユーザーは、ログイン時にJava版アカウント情報の入力が必要ですが、あらかじめ下記でアカウント情報を入力できます。
## これにより、Java版サーバーへの自動ログインが可能になります。
## ただしアカウント情報をそのまま入力するのでセキュリティ的には推奨しません(自己責任)。
## Java版アカウント設定
## ★
#userAuths:
# bluerkelp2: # MCPE/Xbox username
# email: [email protected] # Mojang account email address
# password: "this isn't really my password"
#
# herpderp40300499303040503030300500293858393589:
# email: [email protected]
# password: dooooo
# チャットで「/(スラッシュ)」だけを打った時、コマンドの一覧を表示する。
# もしチャットの量が多く、フリーズするようであればfalse推奨です。
command-suggestions: true
# 次の3つの設定は、pingパススルー機能を有効にします。
# MOTD、プレーヤー数、およびプロトコル名は、Java版サーバーから取得されます。
# motdをJava版サーバーと同じにする。
passthrough-motd: false
# プロトコル名をJava版と同じにする(例:BungeeCord-[X.X]、Paper-1.X)
# カスタムプロトコル名を使用する場合にのみ役立ちます。
# これは、MCSrvStatusなどのサイトにも表示されます。 <mcsrvstat.us>
passthrough-protocol-name: false
# 最大プレイヤー数と現在のプレイヤー数情報をJava版サーバーと同じにする。
passthrough-player-counts: false
# pingパススルー機能を有効にします。
# MOTDまたはプレーヤー数が正しく表示されない限り、これを有効にする必要はありません。
# この設定はスタンドアロンでは何もしません。
# ★
legacy-ping-passthrough: false
# Java版サーバーにpingを送信する(秒単位)。
# BrokenPipeエラーが発生している場合は増やします。
# ★
ping-passthrough-interval: 3
# 統合版ユーザーがサーバーに接続できるプレイヤーの最大人数。
max-players: 100
# デバッグメッセージをコンソールから送信する。
# ★
debug-mode: false
# スレッドプールサイズ
# ★
general-thread-pool: 32
# Optifineなどのマント(ケープ)が表示されるようにする。
# 現在許可されているケープ:OptiFineケープ、LabyModケープ、5Zigケープ、MinecraftCapes
allow-third-party-capes: true
# MinecraftCapeの耳が表示されるようにする。
allow-third-party-ears: false
# Java版にある殴った時に表示されるチャージ表示を許可します。
# 統合版はまだ1.8戦闘を使用しているので、統合版プレイヤーはクールダウンを見ません。
# trueにすると疑似的に表示させます。
show-cooldown: true
# クライアントが要求した言語がない場合のデフォルトの言語設定
# 自動的に言語が設定される(日本語対応なので問題無し)。
# ★
# default-locale: en_us
# チャンクのキャッシュを有効にするかを設定します。
# これにより、クライアントがロードする各ブロックの個別のレコードが保持されます。
# この機能により、ブロックを壊した時のアニメーションなどのいくつかのことがクリエイティブモードで表示されるようになりますが
# 大量のRAMを消費する可能性があるため、運用環境では無効にすることを強くお勧めします。
# ただし、GeyserMCのSpigotバージョンを使用する場合、GeyserMCがサーバー自体に直接アクセスするため、
# 追加のキャッシュを行わなくても、この機能または実装のサポートが自動的に有効になります。
# ★
cache-chunks: false
# 画像をディスクにキャッシュして、インターネットからのダウンロードを保存する日数を指定します。
# 0は無効になる(デフォルト:0)。
# ★
cache-images: 0
# 統合版は、Y座標127以上を超えるブロックの設置ができません。
# 以下をtrueにすると、ディメンションIDをエンドIDに変更することで回避できます。
# これのデメリットは、空の見た目が変わらないことです。 ネザーの空ですが、この設定が唯一の方法です。
above-bedrock-nether-building: false
# bStatsは完全に匿名の統計トラッカーであり、オンラインの人数、Geyserを使用しているサーバーの数
# 使用されているOSなど、Geyserに関する基本情報のみを追跡します。
# 詳細については、「https://bstats.org/」をご覧ください。
# https://bstats.org/plugin/server-implementation/GeyserMC
# ★
metrics:
# metricsを有効にする必要がある場合
enabled: true
# サーバーのUUID、変更しないでください!
uuid: ee299711-b3b7-4f04-892a-7cfe3f198c01
#########################################################
# 以下は高度な設定となるため、基本的には変えないでください! #
#########################################################
# スコアボードパケットごとにスコアボードを更新しますが、
# GeyserMCが1秒あたり多数のスコアボードパケットを処理しようとすると、重大な遅延が発生する可能性があります。
# ★
scoreboard-packet-threshold: 20
# ProxyPassおよびWaterdogからの接続を許可します。
# 「https://www.spigotmc.org/wiki/firewall-guide/」を参照してください。TCPではなくUDPを使用してください。
# ★
enable-proxy-connections: false
# インターネットは1492の最大MTUをサポートしますが、パケットの断片化に関する問題を引き起こす可能性があります。
# 1400がデフォルトです。
# ★
# mtu: 1400
config-version: 4
Floodgateののconfigファイル
# Floodgateでは、統合版プレイヤーのデータは暗号化されて送信されます。
# 次の値は、生成されたFloodgateのキーを指す必要があります。
# 公開鍵はGeyserMCに使用し、秘密鍵はFloodgateに使用する必要があります。
# ★(このマークが付いている時は基本変えない)
key-file-name: key.pem
# 統合版プレイヤーとJava版プレイヤーのMinecraftIDが被らないようにMinecraftIDの接頭辞に文字を付ける。
# ただし、一部プラグインの競合により問題が発生する可能性があるため、この接頭辞は以下の項目を使用して設定します。
# "*"だと競合の恐れがあるため、"*"から"BE_"へ変更しましょう。
username-prefix: "BE_"
# 統合版のプレイヤー名に空白があった場合、空白を_(アンダーバー)に置き換える必要がありますか?
# ★
replace-spaces: true
# BungeeCordは、接続しているサーバーに統合版のプレイヤーデータを送信する必要がありますか?
# サーバーにFloodgateをインストールする必要があります。
# 使用しない場合はサーバーからキックされます。そのため、デフォルト値はfalseです。
# ★
send-floodgate-data: false
disconnect:
# GeyserMC以外でログインした時に表示される切断メッセージ
# 無効なキーを持つサーバー
# ★
invalid-key: Please connect through the official Geyser
# GeyserMC以外でログインした時に表示される切断メッセージ
# 正しいキーを使用してサーバーに送信し、正しいデータ形式を使用しない。
# ★
invalid-arguments-length: Expected {0} arguments, got {1}. Is Geyser up-to-date?
# プレイヤーのリンク機能
player-link:
# リンク機能を有効にするか?
# この機能を有効にすると、同じプレイヤーがJava版と統合版で同時ログインをした場合、同じプレイヤーとして認識する。
# ★
enable: false
# 使用するストレージシステムのタイプ
# 現在実装しているタイプ: SQLite
# ★
type: sqlite
# /linkaccountおよび/unlinkaccountコマンド実行を許可するか?
# 特定のプレイヤーに許可する。
# Permissionsは、「floodgate.linkaccount」と「floodgate.unlinkaccount」
# これはリンク機能です。既に接続されている人は接続されたままになります。
# ★
allow-linking: true
# リンクコードの有効期限(秒)
# ★
link-code-timeout: 300
最新版バージョン以下のサーバーで接続させたい時、サーバーのバージョンは最新版でなければならないので変えられません。そこで別のプラグインであるViaBackwardsというプラグインを使用するとバージョンを下げて参加できるようになります。
GeyserMCとFloodgateのWikiについて
GeyserMCやFloodgateをもっと詳しく知りたい方は、公式Wikiがありますので、下記よりご覧ください。
最後に
これは画期的なプラグインですね!!
一生できないと思われていたJava版と統合版のクロスプレイがついにできるようになりましたね。
無理矢理対応しているにしても、実際はあまり不具合もなくJava版と変わらないクオリティで遊ぶことができます。
ちょっと興味ある方は是非、お試しください。
揚げたてのポテト
CLOSED_BY_REMOTE_PEER というエラーが出てしまい、統合版の方々が突然入れなくなってしまいました。
先にコメントしていた方々の中に「Java自体のバージョンが違った」という方もいらっしゃったので、Javaを変えようと思ったのですが、どのバージョンに合わせれば良いのでしょうか、もし教えていただけたらとても嬉しいです。
また、WindowsのWSLで、Ubuntuを使ってサーバーを立てています。
そこら辺に詳しい方、もし似たような環境で、成功したという方が居たのであれば、
是非とも教えてください!よろしくお願いいたします。
ユーザー側には、「接続がタイムアウトしました」、サーバーのログ側には、「Bedrock ユーザーの◯◯は CLOSED_BY_REMOTE_PEER のために切断されました」というエラーが出てしまい、サーバーに接続することができません。。。何が原因でしょうか。
Java版1.12.2のサーバーに統合版でも接続できるようにしたいのですが
いまいちやり方がわかりません。
ViaBackwardsを導入し、かつGeyserMC、Floodgateを導入するのでしょうか?
よろしければご教授いただけないでしょうか?
よろしくお願いいたします。
op権限を付与するにはどうすればいいのでしょうか?