VRChatでSocialがリアルタイム更新されない場合の対処法

#VRChatでSocialがリアルタイム更新されない場合の対処法

#目次
[1.はじめに](#1-はじめに)
[2.検証環境](#2-検証環境)
[3.下準備](#3-下準備)
[4.通信優先順位の確認](#4-通信優先順位の確認)
[5.通信設定の変更](#5-通信設定の変更)

#1. はじめに
VRChatは極めて流動性の高いコミュニケーションツールです。
その特性上、Friendの居場所がリアルタイムで見られないことは大きなディスアドバンテージたりえます。
かんたんな通信環境の見直しでこれらを改善し、快適なVRChatライフを手に入れましょう！

2022/1/25 公開、筆者環境ではこれで改善しましたが、これでもダメなケースや他にも改善策ありましたらご報告願います。

今回の記事は以下を参照して作成しました。今後ネットワークについて学習がてら追記していこうと思います。
https://bizlog.tech/windows-ipv4-priority/#:~:text=IPv4%20%E3%81%AE%E5%84%AA%E5%85%88%E5%BA%A6%E3%82%92,%E3%82%92%E4%B8%8A%E3%81%92%E3%82%8B%E3%81%A8%E3%81%84%E3%81%86%E6%96%B9%E6%B3%95%E3%81%A7%E3%81%99%E3%80%82

#2. 検証環境
OS: Windows10 Home 20H2
OS Build: 19042.1466

#3. 下準備
これから行うことはPCの通信設定の変更です。
設定変更によって通信ができなくなってしまった時のために
設定初期化用のコマンドをメモ帳に保存してデスクトップに控えておきましょう。

```
netsh interface ipv6 reset
```

#4. 通信優先順位の確認
コマンドプロンプトを起動します。Windows検索欄に"cmd"と入力して検索し、右クリックして"管理者として実行"を選択します。
![cmd起動解説用.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2515964/db00642c-f6b7-d280-bbe4-37706d14b66a.png)
続いて以下のコマンドを入力し、現在の通信の優先順位を確認します。

```
netsh interface ipv6 show prefixpolicies
```

すると次のように上から優先度が表示されます。ここでプレフィックスの“::ffff:0:0/96”がipv4通信です。
Windows10ではデフォルトでipv6がipv4より優先されるように設定されているようです。
今後、ipv6を使用するアプリが増えてくることを考え、無効にせずに優先度だけ変えていきましょう。

ipv4通信の優先順位が一番上に来るように設定し直します。

```
PS C:\Users\Administrator> netsh interface ipv6 show prefixpolicies
アクティブ状態を照会しています...
優先順位  ラベル プレフィックス
---------- ----- --------------------------------
       50     0 ::1/128
       40     1 ::/0
       35     4 ::ffff:0:0/96
       30     2 2002::/16
        5     5 2001::/32
        3    13 fc00::/7
        1    11 fec0::/10
        1    12 3ffe::/16
        1     3 ::/96

PS C:\Users\Administrator>
```

#5. 通信設定の変更
ここからは設定変更のコマンドをいくつか打っていきます。
以下のコードを一行づつ入力していってください。
それぞれのコードが通ったことを確認したらPCを一度、再起動します。
netsh interface ipv6 set prefixpolicy ::1/128 50 0
netsh interface ipv6 set prefixpolicy ::/0 40 1
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4
netsh interface ipv6 set prefixpolicy 2002::/16 30 2
netsh interface ipv6 set prefixpolicy 2001::/32 5 5
netsh interface ipv6 set prefixpolicy fc00::/7 3 13
netsh interface ipv6 set prefixpolicy fec0::/10 1 11
netsh interface ipv6 set prefixpolicy 3ffe::/16 1 12
netsh interface ipv6 set prefixpolicy ::/96 1 3

↓正常にコードが受け付けられた結果

```
PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy ::1/128 50 0
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy ::/0 40 1
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 100 4
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy 2002::/16 30 2
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy 2001::/32 5 5
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy fc00::/7 3 13
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy fec0::/10 1 11
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy 3ffe::/16 1 12
OK

PS C:\Users\Administrator> netsh interface ipv6 set prefixpolicy ::/96 1 3
OK

PS C:\Users\Administrator>
```

再起動後、通信の優先度を確認して次のような順になっていればOK!

```
PS C:\Users\Administrator> netsh interface ipv6 show prefixpolicies

アクティブ状態を照会しています...
優先順位  ラベル プレフィックス
---------- ----- --------------------------------
      100     4 ::ffff:0:0/96
       50     0 ::1/128
       40     1 ::/0
       30     2 2002::/16
        5     5 2001::/32
        3    13 fc00::/7
        1    12 3ffe::/16
        1     3 ::/96
        1    11 fec0::/10

PS C:\Users\Administrator>
```