Realmsのワールドを自宅PCへ移行!SwitchとPCで遊べるマイクラサーバーを作った

Realmsのワールドを自宅PCへ移行!SwitchとPCで遊べるマイクラサーバーを作った

こんにちは、えびかずきです!

今回は、Minecraft Realmsで使っていたワールドを、自宅のWindows PCへ移してみました。統合版のサーバーを立て、PCとNintendo Switchから同じワールドに入れる構成です。

ワールドのコピーだけでなく、Windows起動時の自動起動、別ドライブへのバックアップ、Switchからの接続も用意しました。その後、移行したワールドを残したまま、新しいワールドへの切り替えも行っています。

途中では「Switchは入れるのに、PCだけタイムアウトする」という問題にも遭遇しました。今回は、その対処も含めて紹介します。

この記事は、2026年9月27日〜10月10日に行った移行・接続試験の記録です。10月22日の資料作成時点ではサーバーの稼働とバックアップ先を確認できておらず、現在も連続稼働しているという報告ではありません。

Realmsから何を移すのか

今回移したのは、Realmsに保存していたワールドのデータです。

Realmsのサービスをそのまま自宅へ持ってくるわけではありません。取り出したワールドを、別途用意したサーバーで読み込ませます。サーバーの起動・停止やバックアップも、自宅側で管理する構成になります。

使ったのは、統合版向けのBedrock Dedicated Server、略してBDSです。Windows版の導入方法はMicrosoftのBDS公式ガイドに案内されています。

今回の環境

項目 作業時の構成
ホストPC Windows 11 Pro / Core i5-13400F / メモリー16GB
サーバー Bedrock Dedicated Server 1.26.52.3
参加端末 Minecraft for Windows、Nintendo Switch
ネットワーク 自宅LAN、ホストPCは5GHz Wi-Fi
バックアップ先 外付けDドライブ

これは今回使った環境で、必要最低スペックや同時プレイの性能測定結果ではありません。

ワールドは「元データ・サーバー用・バックアップ」の3つに分ける

まず、Realmsから取り出したワールドをMinecraft for Windowsの保存先で特定しました。移行対象は約248MiB、142ファイルでした。

Realmsからの取得は、所有者アカウントで対象ワールドをダウンロードする流れです。当日の画面操作を一つずつ記録していないため、ここではボタン位置までの説明は省きます。操作時には利用中の版の画面で確認してください。

保存フォルダーの名前は、ゲーム内のワールド名と同じとは限りません。対象を取り違えないように、levelname.txtに書かれた表示名などを確認します。

今回のコピー先は、次のように分けました。

コピー 目的
Minecraft for Windows側の元ワールド 移行元として残す
BDSのworlds/realm_world サーバーから読み込む
Dドライブ上の初期バックアップ 別ドライブへ保管する

コピーは、ワールドを閉じ、サーバーも停止した状態で行いました。元ワールドを直接サーバーの運用先にはしていません。

さらに、ファイル数・合計サイズ・SHA-256を使った照合で、3つのコピーが一致することを確認しました。SHA-256は、ファイルの内容から計算する値で、コピー前後の内容を照合するために使っています。

ここで確認できるのは、データのコピーが一致していることです。建築物、所持品、エンダーチェスト、ネザーやエンドをゲーム内ですべて点検できたわけではないので、そこは別の確認として残っています。

BDSにワールドを読み込ませる

BDSを専用フォルダーへ配置し、コピーしたワールドをworldsの下に置きました。

Bedrock/
├─ bedrock_server.exe
├─ server.properties
└─ worlds/
   └─ realm_world/
      ├─ level.dat
      ├─ levelname.txt
      └─ db/

そして、server.propertiesの設定で読み込むワールドを指定します。

level-name=realm_world

この値は、worldsの下にあるフォルダー名と一致させます。既存ワールドのコピーとlevel-nameによる指定は、Microsoftの既存ワールド利用手順でも説明されています。

参加者は許可リストに登録し、オンライン認証を有効にしました。

起動後はログのワールド読込とServer started.を確認し、そのうえでクライアントから参加できるかを試しました。起動メッセージだけでは、ゲーム内に入れたかまでは分からないためです。

自動起動とバックアップまで含めた構成

全体の構成は次のようになりました。

PCとSwitchが自宅PCのBDSへ接続し、Windowsタスクが自動起動と停止バックアップを行う構成図

BedrockConnectはSwitchから接続先を選ぶ入口です。ワールド本体は自宅PCにあり、別ドライブへバックアップします。

サーバーの実行ファイル、管理資料、バックアップは分けて保存しました。管理用には、次のPowerShellスクリプトを用意しています。

スクリプト 役割
Run-Server.ps1 BDSの実行、ログ保存、管理コマンドの受け渡し
Start-Server.ps1 登録したタスクなどを使った起動
Stop-Server.ps1 stopを渡し、正常終了を待つ
Backup-And-Restart.ps1 正常停止、バックアップ、世代整理、再起動

これらは今回の環境向けに作成したスクリプトで、BDSに標準で付属しているものではありません。

Windowsのタスクには、起動から30秒後のサーバー起動と、毎日午前4時のバックアップを登録しました。バックアップは、稼働中ならいったん正常停止してからワールドをZIPにし、再起動する方式です。そのため、バックアップ時にはプレイできない時間が発生します。

保存対象はserver.propertiesで選択されているワールドで、ワールド別に14世代を残す設計です。PCの電源が入っているだけでなく、スリープしないことと、保存先のドライブが利用できることも運用の条件になります。

また、バックアップに失敗しても、開始前に動いていたサーバーは再起動する設計にしています。サーバーが動いていることと、バックアップが成功していることは別なので、バックアップの結果も確認する必要があります。

SwitchからはBedrockConnectを入口にする

当時のSwitchの通常画面では、任意のサーバーIPを登録できなかったため、BedrockConnectのDNS方式を使いました。

これは、特集サーバーの項目から接続先を選ぶ画面へ入り、そこから自分のサーバーへ移動する仕組みです。Minecraft公式の機能ではなく、コミュニティのプロジェクトです。BedrockConnectのREADMEに仕組みと設定方法が載っています。

当時の手順は次のとおりです。

  1. SwitchをサーバーPCと同じ自宅ネットワークにつなぐ。
  2. Switchのインターネット接続設定でDNSを手動にする。
  3. 優先DNSに104.238.130.180、代替DNSに8.8.8.8を指定する。
  4. Minecraftの特集サーバーからLifeboatへ接続する。
  5. BedrockConnectの「Connect to a Server」で、自宅PCのLANアドレスとポート19132を指定する。
  6. 接続先を保存できる項目があれば保存する。

自宅PCのLANアドレスは、それぞれの環境で確認した値を使います。localhostは操作している端末自身を指すので、Switchから別のPCを指定するアドレスにはなりません。

2026年9月27日には、この方法で接続・スポーンを確認できました。私の環境ではThe Hiveを選ぶと通常のHiveへ入ってしまい、Lifeboatが入口になりました。

2026年10月22日に確認したREADMEのDNS手順にも上記のDNSが掲載されていますが、提供状況や対応サーバーは変わる可能性があります。DNS設定はそのインターネット接続全体へ適用されるため、不具合がある場合は自動設定へ戻します。

Switchは入れるのに、PCだけタイムアウトする

接続では、時期の異なる2つの問題がありました。

同じPC上のサーバーへ接続できなかった

9月の移行時には、サーバーとMinecraft for Windowsを同じPCで動かしていて、接続待ちが長く続く問題がありました。

当時はMinecraft for Windowsにループバック通信の除外設定を登録し、クライアントを完全終了して起動し直した後に、localhostで接続できたという記録があります。

これは同じPC内の通信に関する対処です。アプリの配布形式などで対象が変わるため、当時のコマンドをそのまま万能な解決策として扱わず、利用中の環境に合う設定を確認する必要があります。

新ワールドでは同時接続時にタイムアウトした

10月には別の問題が起きました。Switchが新ワールドへ接続している状態で、PCが「外部サーバーに接続中」の後にタイムアウトします。接続先を127.0.0.1からPCのLANアドレスへ変えても改善しませんでした。

調べると、サーバーの参加用HTTPエンドポイントは応答していて、ワールド名と接続人数も返っていました。しかし、ゲームへの参加は成功していません。

今回の構成で使っていたNetherNetは、最初の接続調整とゲーム通信を分けて扱います。MojangのNetherNet資料も参考にしました。HTTPの応答があるだけで、ゲーム通信まで正常とは判断できないわけですね。

当時のUDP割当は、次のように1ポートへ固定されていました。

server-udp-ports=19132:19132

そこで、ポート不足の可能性を考え、次の範囲へ広げました。

server-udp-ports=19132-19141:19132-19141

追加したUDP 19133〜19141は、BDSの実行ファイルに限定し、LANとlocalhostからの受信だけを許可しました。設定を保存し、正常停止・再起動した後、10月10日のログでSwitchとPCの両方の参加・スポーンを確認できました。

この結果から言えるのは、今回の環境では、UDP範囲の変更後に両端末の同時接続を確認できたということです。厳密な比較試験やパケット解析は行っていないため、すべてのタイムアウトの原因がポート不足だとは断定できません。

なお、ここまでの接続確認は自宅LAN内の話です。家庭外から接続する試験やルーターのポート転送完了は確認していません。

旧ワールドを残して、新しいワールドへ切り替える

移行後の10月9日には、新しいワールドを作りました。

採用したのは、1つのBDSが読み込むワールドを切り替える方法です。旧ワールドのフォルダーを消さず、並べて置いておきます。

旧ワールドと新ワールドを保持し、level-nameで片方を選んで起動する仕組み

同時に2つのワールドを動かす構成ではありません。正常停止してから、読み込むフォルダーを切り替えます。

実際には、次の順番で進めました。

  1. 新しいワールド名のフォルダーが、まだ存在しないことを確認する。
  2. 設定ファイルとバックアップスクリプトを保存する。
  3. サーバーを正常停止し、プロセスが終了したことを確認する。
  4. 旧ワールドをDドライブへコピーし、各ファイルのSHA-256を照合する。
  5. level-nameを新しい名前へ変更する。
  6. バックアップ対象を選択中のワールドに合わせ、サーバーを起動する。

起動ログで、新規ワールドの生成と対象フォルダーの読込を確認しました。

このとき、日次バックアップの対象が旧ワールド名に固定されていたため、level-nameを読む処理へ修正しました。ワールドを切り替えるだけでは、周辺の管理処理まで自動で追従するとは限らない、という点がポイントでした。

旧ワールドへ戻す場合は、サーバーを正常停止してlevel-name=realm_worldへ戻し、再度起動します。旧・新の両フォルダーが残っているので、この設定で切り替えられます。

移行できたことと、これから確認すること

今回の作業では、Realmsから取り出したワールドのコピー照合、BDSへの移行、停止してからのバックアップ試験、PCとSwitchの接続、新ワールドへの切り替えまで確認できました。

ワールドを自宅へ移す作業を通じて、データの置き場所だけでなく、起動・接続・保存をひとまとまりで考える必要があると分かりました。

特に役に立ったのは、元ワールドを残すこと、切り替え前にコピーを照合すること、そしてサーバーの応答と実際のゲーム参加を分けて確認することです。次は、残してあるバックアップから戻せるところまで確かめ、運用手順を整えていきたいと思います。

その他カテゴリの最新記事