見出し画像

XDR4におけるディスクの強制同期に関する考察及びまとめ

こんにちは、VRChatの世界をふらふらと旅する猫、Mashiro_Reconです。
この記事を読んでいるということは、XrossDiscs(旧:BattleDiscs)でお会いしてる方も多いですかね?
実はこの白猫、バトルディスクではちょくちょく大会に出てたりするぽんこつ猫でもあったりします。
SS!BD部杯の「Dive to Blueとか、SPARK LINKの「マスタークラス戦とかですね)

さて、自己紹介はこれくらいにして、今回お話しするのは「XDR4のワールドにおけるゲーム上の仕様について」です。
XDR4における立ち回り技術・戦術論に関してはフィジカルつよつよ組が同じくnoteで書いているので私が書く必要性は少ないと思います。

…はい、このあたりの人たちですね()
普段からよくXDR4に出没してる人たちです。
ちなみにこの人たちが書いたりしたXDR4関連のnoteは下の公開マガジンにまとめたりしているので気になる人はそっちもどうぞ。

じゃあ、その「XDR4のワールドにおけるゲーム上の仕様について」とは何ぞや?という話に移りましょう。
先日、X(旧:ツイッター)にてこんなツイートをしました。
(反応が一切なかったので誰も見てなさそうですが…)

はい、そうです。このツイートの通り、「ディスクの同期処理が強制的に入る」といった「XDR4にしか存在していない仕様」について、です。
…これって、XDR4の立ち回りや考え方を大きく変えるもの、でもあるんです。
今回はこの「XDR4におけるディスクの強制同期」について、解説していきたいと思います。

今回の記事はかなり専門的な内容になっています。なので、この記事を読むにあたって「専門用語」が出てきたり、わかりにくい細かな仕様の話になることがあります。
もちろんその都度解説を挟みますが、わからない・わかりにくいことがあった場合は私やよくR4にいる人たちに聞くことを推奨します。
また、今回の記事は「Ver101時点まで」で検証しているものです。今後のバージョンアップで挙動が変わることもあり得ます。
それらに関してはご了承ください。
また、あくまでこの記事は「検証結果及びそれをもとにした考察」です。
XrossDiscsをご存じの方は知っていると思いますが、ワールドの仕様に関しては基本的に「公式からの発表」がされることはなく、この記事はあくまで「私が発端となって検証した結果を、私の視点から考察し、数名に確認してもらった内容」となります。
そのため、実際の処理とは異なったり、確実ではないものが含まれる場合もあります。
さらに、今回は「どうしてこのような仕様が存在すると考察したのか」という「私個人の視点からの記述」も含まれます。
上記の点に関しても、ご了承ください。


・ローカル反射 is 何?

さて、まずは「強制同期とは?」という話をしなければならないのですが、この話をするにあたり、前提としてXrossDiscsにおける「ローカル反射」の仕様と、「そもそもどのようにしてXrossDiscsはヒットを取られるのか」について説明する必要があります。

一旦、XDR3のお話をしましょう。皆さん、こんな経験はありませんか?

  • 投げたディスクが相手にガードされてあらぬ方向に弾かれてしまった、けど突然相手がディスクにあたっていないのにゲージに入った

  • ゲームを見てたら、あらぬ方向にディスクが飛んで行ったのに突然片方がヒットを取られた

  • 相手から「なんでダウンしたの?」と聞かれた

これらは基本的にXrossDiscsのヒット判定が「ヒットを取られた側視点」を基準に行われているために発生する事象です。

話がややこしくなるので、まずはVRChatにおける同期の仕様とその呼称について確認しておきましょう。
VRChat内のオブジェクトは多くの場合、「ローカル」なものと「グローバル」なものが存在しています。
[JP]Tutorial Worldのキューブが分かりやすい例ですね。
ローカルなものは「その位置・状態がほかのプレイヤーと同期されず、その人の視点でのみその状態が維持されている」のに対し、
グローバルなものは「その位置・状態がほかのプレイヤーと同期されており、自分視点で動かしたものは他者にも同じように見える」といった特徴を持っています。
(ここら辺は細かく言うともっと複雑になりますが、今回はこの程度の認識で大丈夫です。一般的な「ローカル」と「グローバル」の認識です。)

では、「XDR3における投げたディスクはどっちの処理なのか?」という疑問点にあたると思います。これは「ローカル」なものである、と一般的にされています。
そのため、投げる時点まではどちらの視点でも基本的には投げる人の手元に追従し続けています。
(厳密には、投げるまでの時点で既にディスクの位置にずれが発生していることが大半ですが、ここではとりあえず一旦置いておきます。)
ですが、条件によってはその後、投げた側視点と相手視点で別々の挙動を見せた結果、互いの視点でのディスク位置が一致していない状態に陥ることがあります。
その原因としてわかりやすいのは、「投げられた側がガードしてディスクを弾くパターン」です。
(もう一つ、ディスク同士が空中で接触するパターンもありますが、こちらは挙動がブラックボックスなため、詳細は省略します。あとで理由についてちょこっと触れるね…)
このガードをした時点で、お互いのラグによっては「ガードした後のディスクの飛ぶ方向がそれぞれの視点で別々になる」ことがあり、これを「ローカル反射」と呼ぶことが多いです。
このローカル反射の最中に「相手視点で相手自身がディスクにあたってしまう」と、上記に書いたように「投げた人の視点では全然違うところにディスクがあるにもかかわらず、突然相手がヒットを取られたように見える」わけです。

では、ここまででXDR3におけるローカル反射の仕様について解説しました。
ここまでで既に2000字を越していますが、このままがんばります。
じゃあ、「強制同期とは結局なんなの?」というお話に移ります。
察しのいい方は気づいているかもしれませんが、XDR4ではこの「ローカル反射」の発生後に、「強制的にディスクの位置や状態を一致させる処理が行われる」ことがあり、それを「強制同期」と呼んでいます。
これにより、自分視点で見えていた相手のディスクが突然別の方向から飛んでくるといったことが発生することがあります。
次の章以降では、この「強制同期」が具体的にいつ・どのように発生していると考察しているかについて解説していきます。

・強制同期の種類

さて、ここからがようやく本題です()
まずは強制同期の種類について解説したいと思います。
XDR4のゲームシステムとしてディスクの強制的な同期は以下の2パターン存在していると考えられます。
(重要度順で番号を振っているので、解説は前後しちゃうから注意してね…!)

  1. ディスクの位置・速度・移動方向などがすべて同期されるパターン

  2. ディスクの状態のみが同期されるパターン

そして、それぞれのパターンに同期の発生条件が設定されていると考察しています。
それぞれの同期の発生条件や処理について、画像を踏まえながら解説していきます。

2.0:ディスクの状態のみが同期されるパターン

まず、解説が簡易な2番「ディスクの状態のみが同期されるパターン」について解説していきたいと思います。
この同期パターンの同期条件は「ディスクが消失・再生成される時(以下の画像での4番)」です。

画像1:ディスクの同期条件

XDR4ではXDR3と異なり、一定以上の距離を離れたディスクは手元に帰るような挙動をすることなく、その場で消失し、保持者の手元で再生成されるといった特徴があります。
(XDR3では基本的に投げた人の手元に引き寄せられるような動きをしていますよね。XDR4でも時々見かけるものです。)
またXDR4にはアビリティーが存在しており、アビリティーの種類によってはアビリティーの発動と同時にディスクが消失し、投げた人の手元に再生成されるものもあります。
この同期パターンは、上記のような状況での処理として行われるものだと考察しています。
では、この同期パターンで同期される「ディスクの状態」とは何のことなのか?となりますが、これは「ディスクが存在しているか否か」もしくは「ディスクの表示・非表示」自体です。

…と言われても、どのような挙動を見せるのか、想像しづらいですよね?

この同期では「ディスクの見え方のみ」が同期されている、と考えて大丈夫です。
投げた人の視点で、ディスクの消失する条件が成立した時に、「その人のディスクが全員の視点で即座に消失」します。
そしてこの同期の発生時に、他人の視点で「ローカル反射」が発生していても、ディスク位置の同期は行われずにディスクが消失するのみです。
そして、前述した「アビリティーの能力」によってこの同期が発生した場合、他人の視点でローカル反射が発生していても、アビリティーの能力の基準位置は「投げた人視点でのディスク位置」となります。
投げた人のアビリティーが「TELEPORT」だった場合、投げた人がトリガーを2回引いたタイミング(アビリティーの発動)で、投げた人視点でのディスク位置へテレポートするというように解釈してもらって大丈夫です。

…これ、すごくあっさりしてますが、実は結構えぐいこと書いてます。
ここの「えぐい内容」自体は別の同期の解説が必要なので、いったん保留します。
ですが一応、先に念押ししますが、これらは「バグではなく仕様」だと考察しています。
(あくまで考察としてですが、そう考えている理由があります。それについては後ほど…)
では続けて、同期パターンの複雑な方、「ディスクの位置・速度・移動方向などがすべて同期されるパターン」について触れていきましょう。

1.0:ディスクの位置・速度・移動方向などがすべて同期されるパターン

というわけで順番が前後しましたが、次に1番「ディスクの位置・速度・移動方向などがすべて同期されるパターン」について解説していきたいと思います。
先ほどの同期パターンと異なり、この同期パターンでは、ディスクの位置・速度・移動方向などすべてのディスクの挙動が、ディスクを投げた人視点を基準にして、他人の視点でのディスクの挙動を上書きする形で、強制的に同期される、と考察しています。
(この「他人の視点でのディスクの挙動を上書きする形」というのが、このゲームシステムによる同期を「強制同期」と呼ぶ理由になります。)

…はい、早速、「何言ってんだお前?」案件なことは重々承知しています。
「ゲームとしてこのシステムを成立させるにあたってそんなことあるわけないだろ!」
そんな声が聞こえてくる気がします。
ただ、実はわかりやすい実例がちゃんと存在しています。
次から説明していく、このパターンの同期条件の中でちゃんと説明するので、一旦、「そういうもの」という認識で大丈夫です。

というわけで同期条件の説明に移ります。
この同期パターンにおいて、同期条件は以下の4つが存在していると考察しています。
(カッコ内の番号は画像上のどれにあたるかの番号です)

  1. ディスクを投げた人視点で、投げた時(画像1)

  2. ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時(画像2)

  3. ディスクが投げた人の手元へ帰ってこようとしている時(画像3)

  4. どちらかの視点で、ディスク同士が空中で衝突した時

画像1:ディスクの同期条件(再掲)

…はい、わかりにくいですよね。
というか、色々と複雑に思えますよね。
ついさっき、「何言ってんだお前?」みたいな内容突きつけられたのに、こんな複雑な内容で余計混乱しますよね。
大丈夫です。私も考察時点で「…どうなってんだこれ?」となりました。
ここからそれぞれについてできる限りわかりやすく解説していこうと思います。
(順番が前後するのは勘弁してくださいな…)

1.4:どちらかの視点で、ディスク同士が空中で衝突した時

…はい、また早速番号が入れ替わってますが、とりあえず説明する量自体は少ない4番「どちらかの視点で、ディスク同士が空中で衝突した時」の同期について解説したいと思います。
と言いつつも、実はこの条件に関しては条件が特殊すぎて検証しきれていないのが現実です。
なので、どちらかというと考察・予想多めに解説を進めていきます。
この条件での処理は以下だと考察しています。

  • 「どちらか一方の視点で衝突しディスクが空中で止まってしまった場合、もう一方の視点でこれ以外の条件によるその人のディスクの強制同期が発生せず、一定時間その状態が維持されてしまった場合は、もう一方の視点での相手のディスクを基準に相手のディスクが同期される」

  • 「両方の視点で衝突しディスクが衝突し空中で止まってしまった場合、ディスクの様々な処理の結果によってランダムにディスクが飛ぶ」

…なんか釈然としないように感じると思います。特に後者。
まずは前者の方について詳細に説明していきます。
前者の処理で重要な点は以下の2つです。

  1. もう一方の視点でこれ以外の条件によるその人のディスクの強制同期が発生せず、一定時間その状態が維持されてしまった場合に発生すること

  2. もう一方の視点での相手のディスクを基準に相手のディスクのみが同期されること

まずは1番についてです。
この「もう一方の視点でこれ以外の条件によるその人のディスクの強制同期が発生せず、」は、後述する他の同期条件を、自分のディスクと衝突したディスクの持ち主(ここでは「もう一方の視点」と書いてます)の視点で達成し、もう一方の視点の持ち主のディスク(「相手のディスク」ということです)に対して強制同期が発生することによって、ディスクのスタック状態(空中で止まっている状態のことです)が解消されたか否か?ということです。
…文字が並んでいて複雑で非常に分かりにくいですね。
なのですごく簡略化すると、「一定時間ディスクが空中で止まった時」ということです。
もし一瞬空中でディスクが止まっても、その後すぐにディスク自体が動いていたら、それはこの同期が原因じゃないことが多いです。
(1回目に読んだ時点では「後述する他の同期条件」の内容が分からないので、「どういうこっちゃ?」となると思います。
なので、一旦は簡略化した内容でとらえてもらって大丈夫です。
この後を読み進めてから戻ってもらえると理解できると思います。)

というわけで続けて2番についてです。
この「もう一方の視点での相手のディスクを基準に相手のディスクのみが同期されること」という内容のどこが重要なのかというと、「相手のディスクのみが強制同期の対象であり、自分のディスクは自分の視点では強制同期の対象外である」という点です。
これはほかの強制同期にも関連する内容となります。
先ほど、ディスクの同期パターンについての説明のタイミングで以下のような説明をしました。

先ほどの同期パターンと異なり、この同期パターンでは、ディスクの位置・速度・移動方向などのすべてのディスクの挙動が、ディスクを投げた人視点を基準にして、他人の視点でのディスクの挙動を上書きする形で、強制的に同期される、と考察しています。

同文章内「1.0:ディスクの位置・速度・移動方向などがすべて同期されるパターン」より

また、2番「ディスクの状態のみが同期されるパターン」においても、以下のように解説しています。

投げた人の視点で、ディスクの消失する条件が成立した時に、「その人のディスクが全員の視点で即座に消失」します。

同文章内「2.0:ディスクの状態のみが同期されるパターン」より

つまり、すべての強制同期は「自分自身の視点では、自身のディスクでは発生せず、他者のディスクのみが特殊な挙動を見せる」といった特徴を持っている、と考察しています。
(ちょっと濁したのは、今説明している「ディスク同士の衝突」が特殊なためです。それに関してはちゃんと後述します。)
まあ、投げた人の視点でのディスクの挙動で他者のディスクの挙動を上書きするため、基準となるそのディスクの保持者の視点は変化しない、ということです。
今後の強制同期の説明の前提条件となるため、覚えておいてもらえると助かります。

さて、次は問題の後者、「両方の視点で衝突しディスクが衝突し空中で止まってしまった場合、ディスクの様々な処理の結果によってランダムにディスクが飛ぶ」という考察についてです。
これが、冒頭から「ブラックボックス」とか「条件が特殊すぎて」というように書いて後回しにした内容です。
…簡潔に言いましょう。
この条件の処理の場合、ディスクの挙動を予測することは不可能です。
それは「そもそものディスクの挙動自体がブラックボックスであり、ディスク単体の飛翔に関してもなんとなくでしか把握できていない現状、ディスク同士が衝突した場合の処理(速度・角度・慣性などを含む)自体が考察できず、検証も不可能に近いため」です。
(普段からXrossDiscsをされている人なら、なんとなく予想がついていたと思います。)

まず、前提としてXDR3の話になります。
XDR3においても時折、投げたディスク同士が空中で衝突することがあります。
この際、基本的に一時的に空中でスタックしたディスクは、一定時間後に弾かれるような挙動を見せながら動き始めます
(ちなみにこの際、空中でスタックしない場合もあるため、「条件が特殊すぎて」検証ができなかったわけです。)
この挙動自体はXDR3に既に存在していたのですが、そちらでも基本的には予想ができない挙動でした。
(XDR3も基本的には公式によるゲームシステムの解説なんてないので、ディスク自体の挙動が解明されておらず、プレイヤー自身の感覚で予測しているところが多いです。)

作者が同じく、あとから作られたXDR4に関しても、ディスクのある程度の挙動はXDR3から引き継いで作られたと考えるのが自然ですが、XDR3でも解明されていないブラックボックスなため、XDR4でももちろん解明されることはなく、予測が不可能であるということです。
(ちなみに豆知識ですが、飛翔しているディスクは強制同期されるまでは「ローカル処理」なため、前述したディスク同士の衝突の処理もローカルなものになります。それも検証不可能な理由の一つです。)
(また、忘れてはなりませんが、XDR3とXDR4のゲームシステムは「完全には同一ではない」と考察されています。ディスクの飛び方などある程度は一致する部分もあると思いますが、様々な部分において差異が存在するため、一応「別物のゲームシステムである」と考えたほうがいいでしょう。)

以上、4番「どちらかの視点で、ディスク同士が空中で衝突した時」の同期に関する解説でした。

1.1:ディスクを投げた人視点で、投げた時

次に、1番「ディスクを投げた人視点で、投げた時」の同期について解説したいと思います。
この条件の同期は一見すると、ごく当たり前のことのように見えると思います。
まあディスクを投げるんですからね、「ディスクの速度・移動方向」が分からないと「どう飛ばしているんだ?」という風に思ってしまいます。
ですが、実はこの条件の時も、実際には「ディスクの位置を含む、すべてのディスクの挙動が同期されている」というように考察しています。
そしてこの同期条件が、強制同期の一番わかりやすい実例でもあります。
ゆっくりわかりやすく解説していきたいと思います。

まず、この同期自体は「プレイヤーが自身のディスクを投げるとき」にシステム上で「他者にそのディスクの情報を送信する」ことによって発生します。
そして、それを一番実感しやすいのは「デスクトップ勢のプレイヤーのディスクの挙動」になります。

まず、この話をするにあたってXrossDiscsにおける「ラグの存在」「ラグ読み」について触れる必要があります。
VRChatはそもそも「自身で見ている自分の動き」「他者から見た自身の動き」は基本的に一致しないことが多いです。
(実際にそれを体感することは少ないと思います。特にダンスをやったり、PvPのゲームワールドとかに居ないと気づきにくいことです。)
これは様々な要因が絡んでいる結果なのですが、ここで重要な要因となるのは「自身の位置情報」が他者に同期されるまでに時間がかかる、ということです。
自分自身が何らかの行動を起こす(ワールド内での移動や手の動き、人によってはフルトラの動作などですね)と、それに関する情報が「自身のPCから他者のPC」へ配信され、それが他人の視点で反映される流れになっています。
(厳密にはVRChat自体がサーバーを中継する方式だった気がするので、まず「自身のPCからVRChatの各リージョンのサーバー」へ情報が送信され、「VRChatの各リージョンのサーバーから同インスタンス内の他者のPC」へ配信されることで他人視点で反映されている、と思われます。
が、話がややこしくなるので、ここでは「自身のPCから他者のPCまで」情報が到達し反映されるまでタイムラグが存在している、ぐらいの認識で大丈夫です。)
よく「海外リージョンだとPing高いから、会話するときにちょっとラグ気になるよね」みたいに言っているのと同じような認識で大丈夫です。
同じように「自分の動きが他人に反映されるまで」にもラグが存在しています。

さて、これが「ヒットを取られた側視点」を基準にゲームが進行しているXrossDiscsではかなり独特な影響を与えています。
その最たる例が、XrossDiscsでよく言われる「ラグ読み」です。
先ほど「自身の動きは相手には遅れて届いている」と書きましたが、これは裏を返すと「相手視点では、相手は自分が認識している位置には既にいない」といったことです。
通常のFPSにおける偏差射撃では、移動のみを予測して撃つことで、自分の視点で相手へ当てることができればダメージを与えられます。
しかしながらXrossDiscsでは、移動の偏差を読んでディスクを投げ、その結果として自分の視点でタイミングを合わせて相手に当てた場合でも、相手視点では既にその先へ移動しているため、後方をディスクが抜けていったように見え、結果としてヒットを取ることはできません。
相手視点で当てるためには、「移動偏差」と「相手視点と自分視点のラグ」の両方を予測した上でディスクを投げる必要があるわけです。
そのため、XrossDiscsでは「ラグ読み」重要な技術になっています。

さて、ここまでで一旦、XrossDiscsでのラグの存在について触れました。
このラグ自体はVRChat上でのゲームとしては仕方のないことです。
(VRCのサーバーが不機嫌だと悪化したりしますからね…)
そして本題に戻りますが、実はこのラグの存在によって、デスクトップ勢のディスクの挙動が不可思議なことになることがあります。
皆さんもこんな経験があるのではないでしょうか?

  • デスクトップ勢のアバターが見える前に、突然ディスクだけが先に飛んできた。

  • デスクトップ勢の人が投げたディスクが横や斜めに瞬間移動してから、自分に向かって曲がって飛んできた。

画像2:直角に曲がるディスクのパターン

実は、これらの挙動には共通点が存在します。
それは「あとからディスクの位置へ相手のアバターが現れる」という現象です。
もっと詳しく言うと、「おおよそディスクの曲がった位置に、後から相手プレイヤーが現れる」ということです。
たまに起きる「ゲージが出現してから、相手がその中に飛び込むようにしてダウン状態になる」と同じような感じです。
これらは多くの場合、「デスクトップの場合の処理がVRに比べて格段と軽く早いため、結果として他人視点ではアバターの同期が遅れていること」が原因であることが多いです。

ディスクは基本的に、自身の視点で見えているアバターの位置に追従しています。
これは、ディスクを持っている間は共通してこの状態の処理がされており、ガードでディスクを展開したとしても変わることがありません。
(この仕様が様々な特殊な状況を生み出しているので、軽くですがこういうものだ、という認識があると今後の説明も分かりやすくなると思います。)
また、デスクトップはVRよりも処理が軽く格段と早いとされており、他のプレイヤーがラグ読みで読むべき距離がVRプレイヤーと比較して伸びる傾向があるとされています。
(逆に、「デスクトッププレイヤー視点でのラグ読み」も変わってくるらしいのですが、ここに関しては省略します。)
つまるところ、VRプレイヤーと比較してデスクトッププレイヤーは、自身の視点で見えている位置と相手が実際にいる位置の差(単純に省略してラグと呼ぶことが多いです)が大きいことが多い、ということです。

さて、この状態になるとゲーム上の処理として大変な問題が一つあります。
上記で説明した通り、ディスク保持者の視点と他人の視点では、ディスクの存在している位置(プレイヤーのいる位置)が異なります。
これをそのままにディスクを飛ばした場合、ディスクの飛ぶ「方向・速度」が一致していても、ディスクの飛ぶ際の「始点」が完全に異なることになってしまいます。
…そうです、ディスクがそれぞれの視点でバラバラな方向に飛んでしまいますね。
そして、このゲームは前述した通り、当たり判定はヒットした人のローカルでの処理です。
この仕様を踏まえると、ある程度は「投げた側の視点」を基準に、ディスクの挙動が一致していなければならないはずです。
(でなければ、投げる人は何を基準にディスクを投げるべきなのかわからなくなってしまいます。)

そのため、プレイヤーがディスクを投げた場合、投げられた側の視点で以下のような2つの処理が順番に走り、それによってラグの差を補完していると予想できます。

  1. アバターが現在存在している位置から、相手プレイヤー視点で実際にいる位置のディスク追従位置へディスクが瞬間的に移動する(ディスク位置の同期

  2. 相手プレイヤー視点で実際にいる位置から、ディスクの速度・方向が同期されて、ディスクが射出される。(ディスクの速度・方向の同期


画像2:直角に曲がるディスクのパターン(再掲)

上記の画像で黄緑で振られた番号が、それぞれ上記の処理でディスクが移動した場合の範囲です。
これを踏まえると、前述した「デスクトップ勢のアバターが見える前に、突然ディスクだけが先に飛んできた。」現象に関して説明することが可能になります。
画像のパターンで説明しましょう。

画像3:LP_CITYの俯瞰写真

まず、画像の場所や状況について説明します。
場所は「LOW POLY CITY」の中央部、通称ですが「博物館」「カフェ」「噴水」に囲まれたエリアです。
青チームプレイヤーが「映画館・劇場」方向から「消防署」側へ移動していて、赤チームプレイヤーが「アパート」方向から「カフェ」側へ移動して横を突くように動いていた状態です。
(画像3の俯瞰写真を反時計回りに90度回転すると、画像2の方位と一致します。)

赤チームプレイヤー視点では、博物館とカフェの間の通路から赤チームプレイヤー正面に突然ディスクが現れて、まっすぐ飛んできてヒットを取られ、その直後に青チームプレイヤーが正面を通過していったような感じになります。

これを、今度は青チームプレイヤー視点で追っていきます。
青チームプレイヤーは、周囲を警戒しながら通路を抜け、十字路に差し掛かった時に、カフェ方面にまっすぐ進む赤チームプレイヤーを発見。
直線なので、とりあえずですが牽制を兼ねてディスクを投げます。
その後すぐに、さらに先の壁で射線を切りつつ、消防署側へ離脱しました。
(よくやる私のムーブを基準に、どちらの行動も再構築しています。)

このそれぞれの状況を踏まえて、実際に何が起きているのかを説明していきます。
赤チームプレイヤー視点からは、青チームプレイヤーのいるカフェ方面は目の前の通路しか見えていない状態です。
(大体の場合、相手が移動していることを把握しているので、青チームプレイヤーが博物館の陰から出てくること自体は想定していると思います。)
その状態で、それぞれの視点の同期に大きなラグが生じていると、青チームプレイヤーがローカルでは既に赤チームプレイヤーを認識しているにもかかわらず、赤チームプレイヤー視点ではまた博物館横の通路にいるときの状態が描画されており、結果として赤チームプレイヤーから青チームプレイヤーが認識できていないといった状態が発生します。
(存在している位置は赤チームプレイヤー視点からは博物館の陰になっているので、このあたりにいるだろうといった予想しかできないわけです。)
ここで青チームプレイヤーがディスクを投げた場合、赤チームプレイヤー視点では「描画されている青チームプレイヤーの位置」から「投げる処理の時点での青チームプレイヤーの位置」まで「ディスクの位置情報だけ」が一瞬で同期されます。
(ここで重要なのは「位置情報の同期はディスクに対してのみされている」という点です。青チームプレイヤーのアバターは同期されていないため、この時点ではまだ博物館横の通路に存在しています。
そしてその後、「投げた際のディスクの速度・方向」に従って、ディスクが実際に飛ばされます。
そのため、結果として赤チームのプレイヤー視点では、「陰から一瞬で現れたディスクが自身の方向に飛んできた」ように描画されてしまうわけです。
そして、赤チームプレイヤー視点ではその後にアバターの描画が追い付いてくるので、博物館側から青チームプレイヤーが現れ、目の前を横切っていく結果となります。

上記が1番「ディスクを投げた人視点で、投げた時」の同期についてでした。

1.2:ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時

次に、2番「ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」の同期について説明していきたいと思います。
…ぶっちゃけると、この同期条件が一番重要だと考えています。

この同期は「ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」に、その「反射した際のディスクの位置情報」及び「反射したことで変わったディスクの速度・方向」がシステム上で「他者に送信される」ことで発生すると考えられます。
この同期に関してはある検証を実施したので、その検証結果に関してお話しする方が早いでしょう。

画像4:コライダー反射での同期に関する検証

まず、検証の条件について説明します。
青チームプレイヤーにBOMBを持たせた状態、赤チームプレイヤーのアビリティーはNONEの状態にします。
(今回は赤チームプレイヤーにガードをしてもらうため、赤チームプレイヤーのアビリティーに条件はありません。)
また、青チームプレイヤーから見て、赤チームプレイヤーの後方(BURSTの範囲外ぐらいの距離)に壁(コライダー)が存在している状態にします。
(コライダーが分かりやすいほうが良いため、THE R4 DISTRICTで検証を行いました。)
そして赤チームプレイヤーには、常に青チームプレイヤーのディスクをガードしてもらい、それによってローカル反射を発生させます。
(この際、赤チームプレイヤーには「盾のように構える」のではなく、「飛んできたディスクを上方へ弾く」ように防いでもらうと検証がしやすいです。)
また、青チームプレイヤーは赤チームプレイヤーを挟んで壁と垂直に立ち、まっすぐに赤チームプレイヤー及び壁に向かってディスクを投げてもらいます。
(床に当たってしまうと状態が分かりにくいので、できる限り床と平行にディスクを飛ばせると検証しやすいです。GUNモードを推奨します。)

上記の条件のもと検証を行った結果、赤チームプレイヤー視点では、青チームプレイヤーのディスクがガードによって前方・上方向へ弾かれましたが、青チームプレイヤー視点では、赤チームプレイヤーの体を貫通して後方の壁へ着弾しました。
そして最終的に両方の視点で「赤チームプレイヤーの後方の壁(青チームプレイヤー視点での着弾位置)にボムが発生する」といったことが確認できました。
(ちなみに、赤チームのプレイヤー視点でガードが成立していたため、青チームプレイヤー視点で赤チームプレイヤーをディスクが貫通していてもヒットにはなりません。)

上記の結果から、「壁に当たった時点で青チームプレイヤー視点が同期された」と考察しています。
(ちなみにですが、ローカル反射中のボム挙動に関しては検証が難しいので今回は割愛させていただきます。ソノウチケンショウスルカモ…)

…ここで気になる方もいると思うのですが、上記の検証の条件では「ディスクが壁に反射した」という条件以外に、「ディスクが消失した」といった条件も成立してしまっています。
なので、この時の正しい「同期の発生条件」は、強制同期の種類の2番である「ディスクの状態のみが同期されるパターン」の、「ディスクが消失・再生成される時」じゃないか?という考察も可能です。
ですが、私はあくまで「壁に反射した条件」でディスクの位置が同期されていると考察しています。
これには、もう一つの検証の結果が関連しています。

冒頭、2番「ディスクの状態のみが同期されるパターン」で以下のような考察を書きました。

投げた人の視点で、ディスクの消失する条件が成立した時に、「その人のディスクが全員の視点で即座に消失」します。
そしてこの同期の発生時に、他人の視点で「ローカル反射」が発生していても、ディスク位置の同期は行われずにディスクが消失するのみです。
そして、前述した「アビリティーの能力」によってこの同期が発生した場合、他人の視点でローカル反射が発生していても、アビリティーの能力の基準位置は「投げた人視点でのディスク位置」となります。

同文章内「2.0:ディスクの状態のみが同期されるパターン」より

この考察にも深くかかわる検証結果になります。

画像5:テレポート・ポータル能力によるディスク再生成の処理に関する検証

今回、「テレポート・ポータル能力によるディスク再生成の処理に関する検証」のため以下のような実験を行いました。
先ほどと同様に、まず検証の条件から説明していきます。
青チームプレイヤーにTELEPORTを持たせた状態、赤チームプレイヤーのアビリティーはNONEの状態にします。
(ひとつ前の検証と同様、赤チームプレイヤーにガードをしてもらうため、赤チームプレイヤーのアビリティーに条件はありません。)
また、今回は青チームプレイヤーから見て、赤チームプレイヤーの後方(BURSTの範囲外ぐらいの距離)に壁(コライダー)が存在していない(TELEPORTの発動前に壁に当たることがない)状態にします。
(コライダーが分かりやすく、またマップが広いほうが良いため、THE SKY TOWERで検証を行いました。)
そして検証の際はほとんど一つ前の検証と同様に、青チームプレイヤーがまっずぐに赤チームプレイヤーへディスクを投げ、それを赤チームプレイヤーがガードするといった形になります。
そして、青チームプレイヤー視点で「ディスクが赤チームプレイヤーを貫通して、赤チームプレイヤーの後方に飛んで行ったとき」にTELEPORTを発動させて実際にテレポートします。

この「TELEPORTを青チームプレイヤーが発動させた時」は、赤チームプレイヤーがディスクをガードして弾いたことにより、ローカル反射が発生している状態になります。
わかりやすい区別方法ですが、投げた側の視点で自分のディスクが相手を貫通したにもかかわらず、相手がダウンしていない場合はローカル反射が発生していると考えていいです。
これは、相手視点でガードが成立しているためヒットしなかったものの、投げた側の視点ではガードのために相手が移動させたディスクの位置同期がずれていることによって、ディスクが当たることなくすり抜けてしまうことが原因だからです。
よって、赤チームプレイヤーの視点では、青チームプレイヤーのディスクが前方・上方向へ弾いてガードに成功していますが、青チームプレイヤー視点では、赤チームプレイヤーの体を貫通してそのまま後方に抜けている状態になります。

そしてこの検証の結果、どちらの視点でも「青チームプレイヤー視点でのディスク位置にプレイヤーがテレポート」しました。
この時、赤チームプレイヤー視点でローカル反射によって前方に弾かれたディスクは「位置の同期がされることなくその場で消失」しました。

よって、「ディスクが消失する」条件ではディスクの消失のみが同期され、ディスクの位置情報については同期されず「壁などのコライダーで反射する」条件ではディスクの位置を含むすべての情報が同期された後に、BOMBやBURSTの能力が発動すると考えられます。

…ここで閑話休題も兼ねて、細かいお話をします。
検証をするうえで設定された条件が、なぜこのような設定にしたのかについてです。
今回検証するにあたって気を付けなければいけなかったポイントがいくつかありました。

  • 飛んできたディスクを「弾き飛ばすように」ガードしてもらう必要がある

  • ガードで弾く方向は「前方・上方向」を狙わないといけない

こんな感じですね。上から順に説明していきましょう。
まずは一つ目、「飛んできたディスクを弾き飛ばすようにガードしてもらう必要がある」といった点についてです。
これはローカル反射の発生のしやすさに関連する内容です。
今回は検証の関係上、プレイヤーがコライダーに対して垂直に、一直線に並ぶような状態を作る必要がありました。
また、ローカル反射の発生後に「投げた側の視点で、防いだプレイヤーの後方のコライダーにディスクが当たる」必要がありました。
この2つの条件を満たしつつ、ローカル反射を高確率で発生させるためには、「ガードのディスクが動いていること」が重要になってきます。
ローカル反射の発生条件ですが、以下のように前述しました。

このガードをした時点で、お互いのラグによっては「ガードした後のディスクの飛ぶ方向がそれぞれの視点で別々になる」ことがあり、これを「ローカル反射」と呼ぶことが多いです。

同文章内「ローカル反射 is 何?」より

なぜ、そもそも「ガードした後のディスクの飛ぶ方向がそれぞれの視点で別々になる」ことがあるのかというと、「XrossDiscsのヒット判定がヒットを取られた側視点を基準にしている」ことと、互いの見えている位置関係やディスク位置が一致していない「ラグの存在」が原因となっているためです。
XrossDiscsのゲームシステムでは「相手の視点でディスクが当たっていれば」ヒットを取ることができます。
これは裏を返すと、「相手の視点でディスクを防ぐことができていれば」自分視点でたとえ相手プレイヤーをディスクが貫いていても、ヒットを取ることはかないません。
また、投げていないディスクは保持者のどちらかの手に追従して動いていますが、そもそも「プレイヤーの位置情報や動きの情報の同期は遅れている」ことから、それぞれの視点のディスクをガードするタイミングでのディスク同士の位置関係は一致していません。
自分のディスクが自分の視点で相手に到達するときに、相手はディスクを動かしてガードしているように見えますが、ラグの状況によってはガードの動きが先行して、結果として「相手がガードのために腕を振り上げて弾こうとしてから、そのちょうど振り上げてディスクがなくなった相手プレイヤーの体を、自分のディスクが貫いていく」といった光景を見ることになります。
(もちろん相手視点ではタイミングよくディスクを弾いているように見えているため、ヒットは取れません。)

ざっくりとした説明になってしまいますが、ローカル反射の発生の理由は上記のようなものが一般的です。
これらを踏まえると、ローカル反射を意図的に発生させるためには「ガードのために展開されたディスクの移動量を大きくすればいい」といった結論になるわけです。
(ディスクをしっかりとガードしつつ、かつ投げた人の視点でディスクが到達するまでにディスクが通過する位置からガードのために展開したディスクを移動させるためには、手っ取り早いのがこの方法というわけです。)
よって、飛んできたディスクを「弾き飛ばすように」ガードしてもらうといった条件が追加されます。

次に二つ目、「ガードで弾く方向は前方・上方向を狙わないといけない」というのは、展開されたガードのディスクの当たり判定とプレイヤーの当たり判定に起因するものです。
ここら辺の検証はまだ詳細を出せていないので、XDR3の考察の情報を踏まえた内容になります。

まず、飛んでいるディスクの当たり判定についてです。
これは多くの場合「ほぼ見た目通り」の判定だと考えています。
(XDR3がXDになる前、BD時代の検証で作られた考察結果を踏まえています。)
横から見た場合、おおよそ楕円形のディスクの判定ですね。
また、相手ディスクをガードするために展開された自身のディスクの当たり判定は「ディスクの半径を基準とした、中心を同一にとる球体」と考察しています。
(これもひとつ前と同様、BD時代のXDR3の検証結果をもとにしています。)
ちょっとこのあたりの話を突き詰めてしまうと、これ一つだけでまた考察の記事が書けてしまうので省略しますが、考察のヒントとして「足を抜くディスクのガードの時に、ガードと床コライダーの隙間を抜けることがある」という点だけを書かせていただきます。
(ケンショウシタイヒトハガンバッテネ…ソウダンモウケテハイルヨ…)

次に、プレイヤーの当たり判定についてです。
これはダブルディスクの定番の使い方、「ダブルの構え」の理論にも関連する内容になります。
すごく要約して書くと、「最低保証以上の高さを持った、アバターの中心を基準にしたカプセル状のコライダー」だと考察しています。
ここら辺に関してはおおよそXDR3と同一ですが、最低保証のサイズやトラッキング方法による判定の変化などは省略しています。
(大体の場合、VRは三点トラッキングなので上記の書き方で大丈夫なはず…)

上記の判定を基準に、プレイヤーがコライダーに対して垂直に、一直線に並ぶような状態で、ローカル反射を発生させ、また検証の簡易化のために投げた側視点で壁のコライダーに到達するような方法を取るための方法を考えます。
投げた側視点で壁のコライダーに到達するためには、壁まで直線で投げる必要があります。
そのためにはガードするプレイヤーの中心を狙って投げる必要が出てくるわけです。
そうなってしまった場合、正面から横方向に弾くためにはかなりシビアなタイミング調整を要求されます。
(失敗するとヒット判定の横を擦って当たってしまうためです。)
そのためできる限り前方方向に弾く必要がありました。
前方方向に弾きつつ、飛んできたディスクを弾き飛ばすようにガードするには、前方の上方向か下方向の二択になります。
ここでもう一つのディスクの当たり判定がかかわってきます。
下方向にはじき返そうとした場合、ガードするために展開したディスクの球状の下部の判定と、飛んできたディスクの楕円形の上部の判定が接触した場合、前方に弾けず、ガードの下へ潜り込むような反射をしてしまう可能性があると予想されます。
この場合、もちろん床にも接触判定が存在しているので、潜り込むように下へ反射したディスクは床に反射し、そのままプレイヤーの足を抜いてしまう形になります。
(プレイヤーの当たり判定もカプセル型なので、基本的にジャンプを使わないと当たります。)
これに対して上方向に弾こうとした場合、同じように斜めに滑るように弾いてしまった場合でも、上方向で反射することはないため、そのままプレイヤーの当たり判定の上部を抜けることが多いです。
よって、下方向よりも安定して検証を行いやすくなるのが上方向であるため、上記の条件で検証しています。

…さて、ここまでで3つの同期条件について説明してきました。
次がこの同期パターンのラストの条件です。

1.3:ディスクが投げた人の手元へ帰ってこようとしている時

というわけでラストの同期条件、3番「ディスクが投げた人の手元へ帰ってこようとしている時」の同期について説明していきましょう。

この同期条件はXDR3でおなじみの「減速した結果、手元に引き戻されるように返ってくる」時に、その「位置情報を更新し続ける」ことで発生していると思われるものです。
そしてその特性上、他の同期条件では「条件が成立した時点」の一回のみ同期は発生していますが、この同期条件は「条件が成立し続けている間」は「常に同期の処理が走り続けている」と考察しています。
この同期条件ですが、実はまだ不明瞭な部分が多いです。
特に誘導先がどの視点を基準にしているのかや、同期処理がどれくらいの間隔で発生しているのかなどです。
(結構検証しづらい部分が多い関係ですね…)

ですが、XDR4でよくある「ダブルの構えに対して誘導を用いて後ろから当てた際、ガードを貫通するような形でヒットが発生する」などは、この同期条件をトリガーに発生した同期処理によって「判定タイミングや位置がずれる」ことに起因するものだと考察しています。
(…それ以外にも壁反射による貫通ラグによる判定の貫通もありますが)
これ自体には特殊な検証を行っていませんが、普段プレイしている中で発生するものを元に考察した結果になります。

さて、ここまでですべての強制同期の種類と、そのトリガーとなる発生条件の詳細、及び検証内容について説明しました。
どうしてもXrossDiscsやVRChatの仕様や特性上、確実なものとは断言できませんが、これに近いような動作をしているとは考えています。
…ここから先は「これらによって何が起きると考えているのか」について触れていきましょう。

・強制同期で何が起きるのか

というわけで、ここからは「これらの強制同期の仕様によってどういったことが起きるのか」といったことに触れていきましょう。
ローカル反射は、ガードをした側の視点では判断するための材料が少ないので気づきにくいですが、結構頻繁に起きるものではあったりします。
また、XDR3はそうそう起きない、というか起きてもそこまで差がないことが多いため気になりませんが、XDR4はローカル反射によって発生する差が結構大きなものになりがちです。
(「1.2:ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」で検証した検証結果などが分かりやすいです。)
なので、少しではありますが「こんなことが起きる・起きている」ということについて触れていきたいなと思います。

まず、最初にこれまでと同様に今回ここで触れるものについて挙げていきたいと思います。

  1. TELEPORT・PORTALの移動位置の予測ミス

  2. 強制同期による事実上のガード貫通

今回はこの2つに関して触れていきたいと思います。
これ以外にももちろん想定できる挙動はありますが、それらに関しては各々の研究内容になると思うので、そこまで深くは触れません。
ではゆっくりいきましょう。

1.0:TELEPORT・PORTALの移動位置の予測ミス

まずは、一つ目「TELEPORT・PORTALの移動位置の予測ミス」について触れていきましょう。
とはいえ、これ自体は「テレポート・ポータル能力によるディスク再生成の処理に関する検証」の検証結果がそのまま答えです。

現在のXDR4の多くのプレイヤーはTELEPORT・PORTALの移動位置を「アビリティーの保持者が投げたディスクの消失位置」で予測していると思います。
確かにこの2つのアビリティーは、アビリティーの能力発動にディスクの存在する位置が関係してくることや、アビリティーの能力発動前にディスクが消失・再生成されるといった特徴があります。
そのため、そのアビリティーの保持者のディスクが空中で消失した場合、その位置に移動してくる、もしくはそこへの移動手段を確保しているといった読みが発生し、またそれを用いた駆け引きが成立しています。

しかしながら、一つだけ考慮しなければならないことがあります。
それは、近距離戦の最中ではローカル反射が発生していて予測がずれる可能性があるといった点です。
特に「テレポート・ポータル能力によるディスク再生成の処理に関する検証」の時のように、相手視点でディスクが体の後方へ抜けてしまった場合、正面側にディスクを弾いたため正面での移動を警戒していると、警戒できてない自身の後ろ側を取られてしまうことがあります。
これが、「TELEPORT・PORTALの移動位置の予測ミス」です。

2.0:強制同期による事実上のガード貫通

次に二つ目、「強制同期による事実上のガード貫通」について触れていきましょう。
これは、「ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」の検証結果をもとにしたものになります。

画像6:強制同期による事実上のガード貫通に関する考察

この状況自体は「ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」の検証の際の条件の亜種です。
違う点は、青チームプレイヤーのアビリティーがディスクが壁で反射するものであるという点です。
(BOMB・BURST以外のアビリティーということになります。)
この状態では、赤チームプレイヤー視点ではガードを成立させており、青チームプレイヤーの視点では後方の壁(コライダー)に反射するところまでは同一です。
しかしながら、青チームプレイヤーの視点で壁で反射したことによって強制同期が発生し、その結果として赤チームプレイヤー視点でガードによって前方・上方向へ弾かれていた青チームプレイヤーのディスクが、赤チームプレイヤーの後方まで瞬間的に移動し、そこから反射した時と同様に飛んでくるため、気づいてすぐにガードができない場合はヒットを取られる結果となります。
(正確には、強制同期時に後方から飛んできているディスクに対し、完璧にガードを重ねることができていればヒットを取られることはないのですが、難易度が高いため、基本的には不可能だと思ってもらって大丈夫です。考え方としては以前XDR4にあった「轢き」に対するガード方法や、XDR3の「殴り」に対するガードと大体一緒です。)

壁から離れている場合では「V字反射」のようになるため、しっかりと移動によって回避している場合は当たらないことが多いのですが、「バックウォール戦術(壁やエリアを背にした状態)」「エリア外を活用した対面戦術」などの場合は状況が変わってきます。
それぞれの戦術について軽く説明していきましょう。

まずは「バックウォール戦術」から。
バックウォール戦術がわかりやすい資料は、XDR3ではありますが「SPARK LINK 〈Battle Discs〉」の1回戦、私とLeisetsu選手の1ラウンド目です。
(以下の動画で35分ごろになります。)

この動画では両方とも「自分の後ろの壁に密着するような形」でゲームが進行しています。
この戦術は、XDR3では自身の背後すぐにコライダーを置くことで、「後ろから回り込むようなディスク」が飛んでこなくなるため、「ガードを多用した遠距離でのディスクの投げ精度の戦い」で戦うことを目的としたものです。
(それ以外にもメリット・デメリットはありますが、大きくわかりやすいのはこれですね。)
その特徴から、基本的には「壁あり(XDR3で中央を移動できない対戦ルール)」で用いられることが多いです。
(…逆に言うと、「壁なし(中央を移動できる対戦ルール)」では基本的に相手側へ詰めて近距離戦を仕掛けることが多いため、「バックウォール戦術の遠距離戦」を大会とかでしているのはあまりないです。)
この戦い方・戦術が「バックウォール戦術」とよく呼ばれるものになります。
XDR4では壁によって動くこと自体を「バックウォール戦術」と呼ぶことはあまりないですが、無意識に壁などに寄りながら移動している人は多いんじゃないでしょうか。

次に「エリア外を活用した対面戦術」について。
これはXDR4のみでみられる戦術であり、先ほどのバックウォール戦術の発展版にあたることが多いです。
この戦術がわかりやすいのは「SSBD部杯 最強ペア決定戦!!」の1回戦、私のいたチーム「Dive to Blue」と「ロングもみくれ」の第2ラウンド「LOW POLY TOWN」での試合です。
(以下の動画で1時間26分ごろです。)

この戦術を使っているのは私なのですが、動画で奥側のプレイヤーがエリアを出たり入ったりして戦っているのが目に見えると思います。
これは「ディスクがエリア外には到達しない」という仕様を利用して、エリアを出入りすることによって「エリアの壁を疑似的に盾にする」ことを目的とした戦術です。
基本的にディスクはプレイヤーに1枚しかないため、ディスクを放している間はガードができないことから、ゲーム内では「ディスクを投げるのか投げないのか」といった駆け引きが発生します。
しかしながらここでエリアの壁を利用することで、相手を攻撃しつつ自分はエリアの壁を用いてガードするということが可能となり、有利をとることができるということです。
(ちなみにこの戦術に対しての対応方法も現在では研究されているものになりますが、ここでは省略します。)
この戦い方・戦術が「エリア外を活用した対面戦術」になります。

さて、本題に戻ります。
これらの戦術を用いていると、必然的にディスクが反射するコライダーに密着していることが多いです。
そのため強制同期が発生すると、高確率で「自身の当たり判定と重なる位置にディスクが同期される」と予想されます。
この場合、当たり判定の処理は以前までのXDR4にあった「轢き」やXDR3の「殴り」と同一と考えられることから、判定に自身のディスクのガード判定を重ねなければガードができないと考えられます。
そのため、「強制同期による事実上のガード貫通」というように捉えています。

では、この強制同期による意図しないヒットを受けないようにガードするにはどのような方法を取る必要があるのかについて触れたいと思います。
この答えは単純です。
ローカル反射が発生しない(投げた人の視点でも同一のガードで弾かれたように見える)ように移動やガードを行えれば、意図しない強制同期は発生しないと思われます。
先ほど、2番「ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」の同期についての説明内で以下のような話をしました。

なぜ、そもそも「ガードした後のディスクの飛ぶ方向がそれぞれの視点で別々になる」ことがあるのかというと、「XrossDiscsのヒット判定がヒットを取られた側視点を基準にしている」ことと、互いの見えている位置関係やディスク位置が一致していない「ラグの存在」が原因となっているためです。
~~中略~~
自分のディスクが自分の視点で相手に到達するときに、相手はディスクを動かしてガードしているように見えますが、ラグの状況によってはガードの動きが先行して、結果として「相手がガードのために腕を振り上げて弾こうとしてから、そのちょうど振り上げてディスクがなくなった相手プレイヤーの体を、自分のディスクが貫いていく」といった光景を見ることになります。~~中略~~
これらを踏まえると、ローカル反射を意図的に発生させるためには「ガードのために展開されたディスクの移動量を大きくすればいい」といった結論になるわけです。

同文章内「1.2:ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」より

これらを元にすると、逆に相手の視点と自分の視点のラグが小さければ小さいほど、ローカル反射による差異は小さくなるはずです。
しかしながら、意図的にラグを減らすことは難しいです。
(Pingの問題もありますし、環境やその日の通信状況によっても変わってきます。)
なので、別の方法でのアプローチが必要となります。
ここでもう一つの考え方が必要になってきます。
それは、「ラグによる差は、そのラグの期間に移動したディスクの移動量」であるということです。
VRChat以外のゲームをやっている人はなんとなくわかるのではないでしょうか。
相手の通信状況や自分の通信状況が悪い時、自分視点では相手の移動がコマ送りの瞬間移動のように見えることがあります。
あれらは基本的に「通信状況で不安定な間に移動した分が定期的に更新される」ことでコマ送りのように進みます。
似たように、そのラグの間の移動量を抑えることで、その差異を小さくすることが可能です。

では、ここでいう「移動量」とは何を示すのかといった話になります。
実はこれまでの検証では「プレイヤーがディスクを移動させた場合」のみの条件しか触れていません。
ここで気にしなければならない「移動量」は、「マップに対して保持されたディスクがどれだけ移動したか」です。
…どこが違うのか、と感じると思います。
なので、この移動量の内訳をいくつか提示したいと思います。

  • ディスク保持者の腕の移動量(ディスク自体をどれだけ動かしたか)

  • ディスク保持者の移動量(どれだけ移動したか)

  • ディスク保持者のアビリティーによる移動量

これらが基本的な移動量になります。
つまり、ディスクをもって移動しながらガードした場合、その保持者の位置情報が伝達されるまでのラグによって、ローカル反射が発生することもあります。
なので、理論上は「移動を少なく、ディスクの位置を変えることなく全ディスクを防ぐ」ことができれば発生しなくなります。

…ここまで理論的なことを書きました。
ここからは私の研究及び考察的な視点で書きます。
まず結論から述べると、「強制同期による意図しないヒットを受けないようにガードする」ことはほぼ不可能です。
XDR4は複数対複数が基本となる、バトルロワイアルゲームです。
そういったゲームの性質上、「移動を少なく、ディスクの位置を変えることなく全ディスクを防ぐ」ということは基本的にできないです。
そのため、XDR4のガードの信用度・優先度は低いと考えています。
では、相手のディスクに当たらないようにするにはどうするのか、というお話になります。
それに関しての私の現時点の答えは以下の通りです。

  • 立ち回りを意識する

  • 移動による回避を最優先する

  • 周囲のコライダー(壁・床)などを意識する

  • XDR4のディスク展開のガードは最終手段

  • 狙えるならディスク同士をぶつけてなんとかする

つまり、普段練習している時の私の発言を引用すると、「XDR4ではガードの意味がない、重要度が低い、回避を優先するべきである」ということです。
(これ自体はかなりの極論であるのは重々承知ですが、練習ではガードを意識的にあまりしないように立ち回るために、自分で戒めているのも含んでいるからです。)
…さて、本題に戻りましょう。

ここまでで「強制同期について」と「それによって何が起きるのか・その対象方法」についてゆるく解説してきました。
…いくつかの伏線もしれっと回収しました。
メインの内容は大体終わりです。
では最後に、「どうしてこのような考察にまとまったのか」や「なぜこれが仕様であると考えているのか」などについて触れていきましょう。

・考察について

というわけで最後の段階です。
ここでは考察自体がどのような考えのもと出来上がったのかなどについて触れていきます。
ここには特に本編に大きくかかわる内容や解説はほぼ含まれていません。
細かな話はいいかな、という方は次まで飛ばしてもらってかまいません。

1.0:この考察の基本

まずは、この考察をした上で基本的にどのように考えたのかについてです。
この考察自体は、普段XDR4を遊んでいる中で時々「このディスクの挙動ってXDR3では見ない内容だよな」とか「XDR4ってXDR3と比較して結構明確にラグがあるよな」など、細かな疑問点を考えているところから始まりました。
実は、SS!BD部杯の練習期間ぐらいに上げていたXの動画も、その関係で気になっていたところの動画だったりします。

そんな中、いろんな疑問点を考察していったときに「これってディスクの状態が同期されているって考えたほうがつじつまが合うのか…?」となります。
それが、「1.1:ディスクを投げた人視点で、投げた時」の挙動です。
そこから今回の仕様にかかわるメインの考察が始まります。

ゲームシステムの都合上、トリガーとなる条件式は複雑にしないと考えています。
そのため、上記の同期の挙動が存在しているなら、他の状態でも同じような同期が存在していると予想し、いくつかこれまで引っかかっていた点を洗い直しました。
この時引っかかっていたのは「私自身の環境によるラグの大きさ」と「ガード時に貫通してヒットすることがある」といった点です。
前者に関してはどれだけ環境をチェックしても原因が見つからない(サーバーとの接続におかしな点が見つからない)ので諦めており、後者に関してはそもそも当時「SPRINTでガードしながらディスクに突っ込むとガードを貫通してヒットする」といった状況もあったため、どれがどれだかといった状態でした。
ですが、これらによって起きていたと考えていたことも、いろいろと紐解いていくと「いくつかのパターンで同期がされていると考えたほうがつじつまが合いそうだな」といった感想を持つようになります。

そして最終的に「1.2:ディスクを投げた人視点で、壁・床・天井を含むコライダーで反射した時」の処理を元に、「条件でディスクが同期される」といった予想を確定させました。
そこから、「条件でディスクが同期されている」といったことを前提にゲームのシステムの挙動をいろいろと見直し、ゲーム中のいくつかの挙動を推定する形で考察をまとめていきました。
この際、「アビリティーごとに同期条件が設定されている可能性」も考えましたが、「反射時のガード貫通の可能性」について説明できなかったことや、それ以外の条件を踏まえると「条件式が複雑化する」という考えになり、結果として現在の条件に落ち着きました。
(考えの最中にかなり気を使ったのはこの「条件式は複雑ではない」といった予想です。いろいろな同期されていると思われる状況から、複雑にならないように条件を抜き出していく形をとりました。)

また、もう一つ気にしていた点があります。
それは「プレイヤーが想定できない挙動は、基本的には仕様にしていない」という予想です。
もちろんゲームワールドということもあって、負荷を抑えるようになっているということも考慮しましたが、それと同時に「必要な部分に関してのみ特殊な仕様を入れている」ものの、それ以外は「一般的なものにしている」という想定をしていたということです。
表現が難しいのですが、ゲームは基本的に「見えている通りのもの」で「一般的な法則」のもとに作られている、と考えている人が多いと思います。
また、それと同時に「複雑なルール」はあまりありません。
今回のXDR4の場合は「相手のディスクに当たったら負け」「ディスクは壁に反射する」といった基本的な明言されているルールのほかに、「ディスクは基本的に瞬間移動しない」「ディスクは基本、直線的に飛ぶ」など、明示されていないものの「ゲームとして成立させるためにはこうなるだろう」「これが一般的だろう」といったプレイヤーが想定しているルールがあると思っています。
そのため「それらを大きく壊すことがあるような仕様はない」といった想定をしていた、という感じです。

さて、おおよその私の考察の流れや、考察の際に気にしていた点について書きました。
まあ、私の頭の中なのであまりきれいな流れじゃないのですが、なんとなく伝わると助かります。

2.0:仕様だと考察した理由

次に、「これが仕様だと考える理由」についてです。
これに関してはいくつかの理由があります。

  1. このゲームが複数人を想定したゲームであること

  2. アビリティーが存在すること

  3. 判定がヒットを取られた側視点のゲームであること

順番に説明していきましょう。

2.1:このゲームが複数人を想定したゲームであること

これについてはとても簡単です。
XDR4はXDR3と異なり、最大人数が16人・4チームまで参加可能なバトルロワイアル方式のゲームです。
そのため、ディスクの動きもXDR3では最大4人まで見えていれば問題なかったものが、XDR4では16人が見えていなければいけなくなりました。
その16人の視点でそれぞれでローカル反射が発生してしまった場合、基本的に16通りのディスクの動きが発生してしまいます。
よって何かしらの状態で同期されるのは必要だと考えているからです。

2.2:アビリティーが存在すること

これもその通りです。
XDR4ではそれぞれのプレイヤーがアビリティーという固有の能力を取得・利用可能です。
そして多くのアビリティーが「ディスクの位置」を基準に能力が発動します。
そのため、一部を除いて着弾地点が同期されていないと、そのアビリティーの発動地点も視点によって異なる状態になってしまうと考えています。
よってアビリティーの発動地点をできる限り一致させるために同期が存在していてもおかしくない、と考察しています。

2.3:判定がヒットを取られた側視点のゲームであること

これが一番大きな理由です。
このゲームの判定は、他のゲームワールドとは異なり、ヒットをとられた側の視点が基準となっています。
そのため、ディスクを投げた側の視点と、ヒットを取られた側の視点でのディスクの挙動がある程度一致している必要があると考えます。
全く異なっていたら、ゲームとして成り立たせるのが不可能だと思っているからです。
そのため、何かしらの方法でできる限り一致しているように調整していると考察していました。
それらを考えた際に、今回のように条件を満たした際に同期させる方法が、一番違和感がないと考えたからです。

こういった理由から、強制的な同期という仕様が存在していると考えています。
…とはいえ、何かしら明確なものが存在しているわけではなく、あくまで私の考察です。
なので確実なものではないですが、今後も考察を続けて精度を上げれたらいいと思っています。

・雑多なこととか

…というわけで、ここまで考察について書かせていただきました。
この考察は、XDR4を普段からやっているフレンドさんたちや、様々な人の協力のもと、まとめることができたものです。
この場を借りてお礼申し上げます。いつもありがと~!

さて、ここからは考察に一切関係ない、なんか雑多なことをまとめさせていただきます。
とはいえ、ここで書くことはそんなにないと思うんですけどね?

まずはもうちょっと細かな自己紹介を。
冒頭のだけだとわからない人もいると思うので…
VRChatのIDでは「Mashiro_Recon」ですが、大会アナウンスなどでは基本「ましろ」で登録していることが多い猫です。
(「Recon」って「レコン」に「リコン」に「リーコン」とかとか、読み方が人によって結構変わってくるので…)
ちなみに「Recon」って「偵察兵」の意味から持ってきてたりするんですけど、実は「斥候」よりも「狙撃手・観測手」の意味合いが大きかったりします。
もしかしたらゲームワールドで会ったときに、なんとなく独特な立ち回りをしていることできづいている人もいるかも…?
XrossDiscsシリーズは去年2月くらいからやっていて、大会もちょくちょく出てたりします。
なので、ディスカー歴としては約1年半ぐらい?
初期のころは白髪のミーシェちゃんがXDR3での私の姿だったので、そっちを覚えている人も多いかもです。

XDR3では基本的にThrowモードを利用してます。
メイン戦術はバックウォール型のカウンターメイン、サブ戦術がインファイト型のカウンターメインといった感じですかね…
ディスクの精度は結構甘いし、インファイトが大の苦手なので練習中だったりします。
XDR4では基本的にGunモードで戦っています。
得意なアビリティーはTELEPORT(初期に多用してた)・SPRINT・JUMP、逆に苦手なアビリティーなのはLONG・BIG・BOMBです。
(とはいえ、SS!BD部杯に出るために全般的にそこそこ使えなくはない、というぐらいまでは練習してました…)
こっちの戦術は、カウンターメインの立ち回り重視、アビリティーや状況によっては裏取りなどの不意打ちとかも使う、といった感じだったりします。
(ふだんはあんまりそういうこと考えてないけどね…?)

次はなんでNoteにまとめたのか、という話です。
まあ単純明快、Xに書こうと思ったら文字数半端ないことになったからやめた、というのが基本的な答えです。
じゃあ、ほかのサイトとかじゃないの?という疑問に関しては、既にXDR4についてこっちで書いてた先人がいたからですね。
既に書いている人がいるなら、そのプラットフォームにまとめちゃった方が後から見た人も探しやすい、そして新しい記事もそこに投稿してもらえれば、XDR4のプレイヤー間で情報共有もしやすくなる、といった考え方です。
今後、XDR4の大会とかが増えて競技人口も増えたら、こういった形で情報共有や交流ができたらいいなと思ってます。

大体書く内容としてはこんな感じかな…?
最後に、いくつかぼそぼそっと。
これからも、XDR4やXDR3にいる1プレイヤーとして、考察とかしていけたらなと思っています。
一緒に考察したいっていう人が出てくれると嬉しいな…?
あと、普段から私と関わっている人は既に耳に入っているかもしれないですが、そこそこの大会とぶっ飛んだイベントをそれぞれ企画中です。
そのうち、しっかりとした告知ができたらいいな…
(まぁまぁ前から作ってるけど、日程が未定なので…ね…)

これまで長々といろいろなことを書きました。
すごくすごく長い長文、読んでくださりありがとうございます。
280k文字だって…さすがに想定外でした…
これからも、XDR4に現れると思うので、会ったときはよろしくお願いします。
それ以外にも、普段からあちこちふらふらしているので、またどこかでお会いするかもしれません。
まぁ、VRChatの世界をふらふらと旅する野良猫ですから…?
そういうときもよろしくお願いしますね!

この記事が気に入ったらサポートをしてみませんか?