見出し画像

VRChatのSocialがうまく更新しない対策

Socialが更新しない
ここのところフレンドがどこに居るかわかるSocialの表示がおかしいです。少し前まではいる場所が違っていたり(Joinすると誰も居ないとか)、最近は見えているのにPrivateインスタンスという表示になっていたりします。
以前よりSocialの更新がなかなか進まなかったりという問題は今でも残っているようです。なんか、ひどくなっている感じがします。

IPv6が悪さをしている?
IPv6でVRChatにつなごうとしてデータが落ちてこないことがあるようです。これは自分が契約している回線の問題もあるでしょうし、VRChatサーバ側の問題もある気がしています。
Windowsのネットワーク設定を変えてIPv6を無効にしてIPv4のみで繋がるようにしてしまえば良い、という話を結構見かけます。がしかし。

IPv6をWindowsで無効化してしまうと
すべてのネットワーク通信がIPv4のみになるので、混雑しているIPv4のみを使うことになるのでネットアクセスが遅くなってしまいます。
特にSYNCROOMではIPv6を使わないと遅延が大きくなってしまう。
という問題が起きます。

VRChatのSocial関係だけIPv4通信を優先するようにする
この方法により、問題が起きている通信のみをIPv4に限定します。
さらに、もしIPv4通信がうまく行かなかった場合にはIPv6通信に切り替えるような方法も仕込んでおきます。

具体的なやりかた
エクスプローラーを使って次の順でフォルダを掘っていきます。
Cドライブ>Windows>System32>Drivers>etc
この中にhostsという拡張子のないファイルがあります。
※システムファイルを非表示にしていると見えないかも。
hostsファイルはテキストファイルなので、メモ帳や秀丸エディタを使って開きます。ただし、このとき管理者モードでメモ帳等を起動してください。管理者モードでないと中を編集できません。メモ帳等を管理者として立ち上げておき、Fileから開くを選択して先程のフォルダを掘って行きましょう。
hostsファイルの最下行に次の8行を追記します。

104.18.26.36 pipeline.vrchat.cloud            # VRChat Social Bug Workaround.
104.18.26.36 api.vrchat.cloud                 # VRChat Social Bug Workaround.
104.18.27.36 pipeline.vrchat.cloud            # VRChat Social Bug Workaround.
104.18.27.36 api.vrchat.cloud                 # VRChat Social Bug Workaround.
2606:4700::6812:1a24 api.vrchat.cloud         # VRChat Social Bug Workaround.
2606:4700::6812:1a24 pipeline.vrchat.cloud    # VRChat Social Bug Workaround.
2606:4700::6812:1b24 api.vrchat.cloud         # VRChat Social Bug Workaround.
2606:4700::6812:1b24 pipeline.vrchat.cloud    # VRChat Social Bug Workaround.

保存すると即時反映するはずです。VRChatアプリを再起動して確認してみてください。

技術的な補足説明
ここから先は読まなくてよいです。
hostsファイルは名前解決に使っていて、全てにおいて最優先して処理されます。通常はプロバイダが用意したDNSサーバに問い合わせている部分です。
Windowsではhostsファイルに記述されたものを上から順に参照していき、通信が正常に行われたら終了し、以降の記述は無視されます。
この例では、pipeline.vrchat.cloudのIPアドレスを取得しようとした時、1行目で通信が確立したら同名の3行目6行目8行目は無視する動きをします。
上から順に見ていって通信が確立したところで処理が終わる感じになります。
なぜこの解説を書いたかと言うと、同じ書き方をLinuxでしているときと違う動きをするからです。Linuxではラウンドロビン動作をするので、同じ名前に対してのIPアドレス指定が複数ある時はランダムに採用されて負荷軽減をする仕組みがあるのです。
これに対してWindowsはラウンドロビンではないので、上に書いてあるものが常に優先されるため、1つのサーバに集中することになります。

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