マイクラ統合版ver1.21.70(60)アップデート後より、オンラインプレイ時に挙動が不安定になる不具合が発生しています。具体的には、下記のような不具合が発生しています。
- 数秒前にいた位置に戻される
- 急にランダムな場所へ瞬間移動する
- ブロックの設置/破壊が反映されない
これにより、「挙動がおかしい」、「動きが変」といった報告が相次いでいます。
今回はこの不具合の詳しい原因と現在分かっていることを解説します。
「挙動が不安定になる不具合」の詳細
エラーの概要
マルチプレイ(またはRealms/サーバー等の一人プレイ)中に、下記のような不具合が発生する。
- 数秒前にいた位置に戻される
- 急にランダムな場所へ瞬間移動する
- ブロックの設置/破壊が反映されない
不具合が最初に確認されたのはver1.21.60で、ver1.21.70以降も引き続き発生している。
エラーの発生機種
ver1.21.70(60)にアップデートした全ての機種で発生しています。
「挙動が不安定になる不具合」の原因
今回のロールバック系不具合の原因は、1.21.70アップデートで導入されたプレイヤーの位置同期方式の変更が大きく関与していると考えられています。
統合版の従来のシステムでは、プレイヤーの移動やブロック操作について、クライアント(プレイヤー)側の判定がある程度優先されていましたが、ver1.21.60、ver1.21.70で優先度に変更が加えられ、マルチプレイ中に不自然な挙動が発生しやすくなってしまいました。
以下、各verごとに優先度がどのように変化したのかを解説していますので、興味がある方はご覧ください。
ver1.21.60以前
ver1.21.60よりも前のバージョンでは、プレイヤーの行動の優先度を判定するパラメータ「Server Authoritative Movement」のデフォルト値がclient-auth(クライアント=プレイヤー優先)となっており、サーバー上のプレイヤーの位置と、プレイヤーが実際に存在する位置がずれた場合、プレイヤー側の位置が優先されていました。
ver1.21.60~
ver1.21.60では、Server Authoritative Movementについて下記の変更が実施されました。
The movement mode authority chosen settings will now be displayed in the command window on dedicated server launch.(選択された移動モードの権限設定が、専用サーバー起動時にコマンドウィンドウに表示されるようになりました)
公式ページの記述は以上となりますが、もう一つ明記されていない変更が行われており、それは「Server Authoritative Movement」のデフォルト値がserver-auth(サーバー優先)に変更されたということです(参考:Minecraft Bedrock server properties guide – Knowledgebase – BisectHosting)。
プレイヤーの実際の行動よりもサーバーが認識している行動が優先されること自体は問題はなく、正しく機能していればチートによる不自然な移動や設置/破壊の防止につながります。
ですが、この変更によりネットワーク速度の遅延や高負荷な処理が発生した場合、過剰な行動修正(ロールバック)が発生する重大な不具合を引き起こすことが判明しました(Player randomly being pushed…が再オープンされていること)。
皆さんがver1.21.60から感じている不自然な挙動の原因は、「アプデによるサーバー設定の変更に付随して発生した不具合だった」ということがわかると思います。
ver1.21.70~
ver1.21.70アップデート後、この不具合の修正に向けて大きな変更が加えられました。変更内容は下記の通りです(長いので翻訳のみ掲載します)。
専用サーバーがserver-auth-with-rewindモードの場合、2つの新しいパラメータが公開されました。これにより、サーバーはプレイヤーの位置判定をより厳格に行うようになります。詳細はserver.propertiesをご確認ください。
- server-authoritative-movement-strict
デフォルトはfalseで、trueに設定可能です。プレイヤーの位置の受け入れに影響します。- server-authoritative-dismount-strict
デフォルトはfalseで、trueに設定可能です。プレイヤーが乗り物から降りる際の位置に影響します。また、専用サーバー向けに新しいパラメータが公開され、これによりサーバーはエンティティの相互作用判定をより厳格に行います。
- server-authoritative-entity-interactions-strict
デフォルトはfalseで、trueに設定可能です。エンティティの相互作用の受け入れに影響します。さらに、server-authoritative-movementパラメータは削除され、常にserver-auth-with-rewindが使用されるようになりました。
簡単にまとめると下記の3点の変更となります。
- より厳格にするかどうかの判定項目を3つ追加(移動、降りる位置など)
- server-authoritative-movementパラメータが削除
- server-auth-with-rewindが常に適用されるように
一部難しい用語がありますので簡単に解説します。
- server-auth-with-rewind:サーバーとクライアントとの状態がズレたと判断した場合に、その直前の安全な状態に巻き戻す補正を行う。server-authよりも安全でスムーズな補正が行われる。
- server-authoritative-movement:従来のプレイヤーの行動における判定の優先度を決めていたパラメータで、client-auth、server-auth、server-auth-with-rewindの3つの値があった。
つまりver1.21.70からserver-auth-with-rewindに固定されたのですが、この値であっても大きなラグや負荷のかかる行動を行った時に誤った巻き戻しが発生することが、ver1.21.71でも解消されていない不具合としてバグトラッカーで報告されています。
現時点で根本的な解決策はない
ver1.21.70以降、server-auth-with-rewindで固定されている以上、何らかの修正アップデートが配信されない限りは根本的な解決策はありません。
ちなみに専用サーバーと言っていますが、Realmsでも同様にserver-auth-with-rewindで固定されています。
さらにRealms(レルム)など公式サーバー環境では、数秒間の補正だけでなく、大規模なロールバックが発生する場合があり、数分~1時間単位で進捗が失われるケースが報告されています。
あくまで推測ですが、Realmsのオートセーブが始まる前の段階において、まだプレイヤーの行動がサーバーに記録されていない状態でサーバーが落ちるかプレイヤーが自ら退出した場合、次に参加する時にはサーバーが最後に記録したワールドの状態に戻されてしまうのだと思います。
また、退出する直前の世界は、チェストが開かなかったりブロックの設置/破壊が一切反映されない状態になる場合が多いです。
不安定な挙動の例
ブロックの設置/破壊が反映されない
例えば、一人のプレイヤーが破壊したブロックが他のプレイヤーには破壊されていない判定のままとなり、その場所に近づくと見えない壁に押し戻されてしまう。
ロールバックによるダメージ
ラグ発生時などの不安定なロールバックにより、不自然な位置へのテレポートが発生(ブロックの中やマグマなど)し、プレイヤーがダメージを受けてしまう。
アイテムが消えてしまう
回収したアイテムがチェストやインベントリなどから消えてしまう。
※その他、サーバーとプレイヤー間での行動記録に差があった場合に様々な問題を引き起こしています。
不具合に関する一時的な対処など
発生パターンが非常に多いため、下記の点を確認していただいた上で、当ブログのX(旧Twitter)のDMまでご連絡ください(フォロワー様優先)。
- サーバーの種類(Realms / 専用サーバー / フレンド間のマルチプレイ)
- プレイしている機種(switchやスマホ、PCなど)
- どのような不具合が発生したか
コメント