見出し画像

PC:ゲーム自体の回線優先度を高める(ネットワーク混雑時のラグやパケットロスの軽減)設定。

本記事の設定は下記ディスコサーバーで公開されています↓

この記事には設定を簡単にするスクリプトが付きます(使用は自己責任)
VALORANT FORTNITE OverWatch2 ApexLegendsの4ゲームQoSポリシーを個別に設定できます(オフにもできます)。

スクリプトのアップデート版(ゲーム追加)はディスコ鯖内にあります。

設定を簡単にできるスクリプトは、本記事内とディスコ鯖内の特殊ロールチャンネル(pKqの秘密の部屋)のみでダウンロードできます。
この記事でダウンロードできるようにしたのは気まぐれです(フォローしてね)

では本題に↓(この記事ではAPEXを例にしています)

このスクリプト(設定)は、Apex Legendsの通信を最優先に処理するよう、Windowsのネットワーク設定を変更します。(お守り設定)

これはQoS (Quality of Service) という技術を利用しており、ネットワークが混雑している時に「Apex Legendsの通信だけは優先的に通してください」とルーターにお願いするようなものです。

スクリプトは以下の2つの処理を行っています。

ファイアウォールルールの追加(明確に)
WindowsがApex Legendsの通信(r5apex.exe)を正確に識別できるように、専用のルールを作成します。

QoSポリシーの作成
識別したApex Legendsの通信に対し、「DSCP値 」という特別なマークを付けます。DSCP値はネットワーク通信における優先度を示す荷札のようなもので、「46」は「Expedited Forwarding (EF) Phased」と呼ばれ、リアルタイム通信(VoIPやオンラインゲームなど)で一般的に使われる非常に高い優先度です。

メリット↓
ネットワーク混雑時のラグやパケットロスの軽減。
自宅のネットワークを家族と共有している場合など、他の誰かが動画ストリーミング、大容量ファイルのダウンロード、Windows Updateなどを同時に行うと、ネットワーク回線が混雑してゲームの通信が不安定になることがあります。このスクリプトを適用しておくと、そのような状況でもルーターがApex Legendsの通信を優先的に処理してくれるため、ラグの発生やパケットロスを軽減できる可能性があります。

上り回線の安定化↓
特に、光回線などに比べて上り(アップロード)の帯域が狭い環境では、ゲームのデータ送信が他の通信に妨げられにくくなるため、効果を体感しやすい場合があります。

デメリット↓
ネットワーク機器の対応が必要(下記に説明アリ)
この設定が効果を発揮するためには、お使いのルーターがDSCP値に基づくQoS(優先度制御)機能に対応している必要があります。多くのゲーミングルーターや比較的高機能なルーターはこの機能に対応していますが、安価なモデルや古いモデルでは対応していない場合があります。対応していないルーターを使っている場合、このスクリプトを適用しても効果は全くありません。※「PC内部での通信の奪い合い」が発生した瞬間にも効果を発揮します。

ネットワークが混雑していないと意味がない(混雑時真価を発揮)
この設定は、あくまでネットワークが混雑した際の交通整理のルールです。道路が空いている時に優先車線を走っても速さが変わらないのと同じで、回線に十分な余裕があったりする場合には、パフォーマンスの向上は全く見られません。

根本的な回線品質は改善しない(あたりまえだのクラッカー)
このスクリプトは、プロバイダー自体の通信速度が遅い、サーバーとの物理的な距離が遠いことによるPing値の高さ、無線LAN(Wi-Fi)の電波が不安定といった、ネットワークの根本的な問題を解決するものではありません。

ネットワーク機器の対応が必要(DSCP値に基づくQoSに対応する機能名はメーカーごとに違います) Dynamic QoS トラフィックコントロール アプリケーションベースQoS、インテリジェントQoS、Adaptive QoSなんて呼ばれています

高度なQoS (DSCP対応)
優先単位はアプリ単位 (ゲーム、動画など)
仕組みは通信の中身を自動で解析・識別。柔軟性が非常に高く、PCの中でゲームだけをVIP扱いしている。

一般的なQoS(いままでのタイプ)
優先単位は機器(PC, スマホ)単位 or LANポート単位
仕組みとしてどの機器からの通信かを識別していてPCからの通信すべてをVIP扱いしていた。

つまり、一般的なQoSでは「PC Aからの通信はすべて優先!」という設定しかできませんでした。これだと、バックグラウンドで動いている様々な通信なども一緒に優先されてしまい、本当に優先したいゲーム通信の邪魔になる可能性がありました。 一方、高度QoSは「PC Aの中でも、Apex Legendsの通信だけを最優先!」という、よりきめ細やかな制御が可能です。

参考ルーター↓

10G↓

スクリプトとルーターの「兼ね合い」について

あなたのPC + スクリプト = 差出人
あなたのPC(差出人)は、Apex Legendsの通信(郵便物)をインターネット(宛先)に送ります。
この時、スクリプトは「これは超重要!最優先で届けて!」という『速達シール』(DSCP値46)を郵便物に貼り付ける役割を担う。

高機能ルーター = 優秀な郵便局
高機能ルーター(郵便局)は、たくさんの郵便物を受け取ります。
そのルーターの「Adaptive QoS」などの機能は、『速達シール』が貼られた郵便物を見つけ出し、他の普通郵便よりも先に、最優先で送り出す役割を担います。

この連携がなぜ重要なのか?
もし、ルーターが「普通の郵便局」(一般的なQoS)だったら…
あなたのPCがいくら『速達シール』を貼っても、郵便局員がシールを読んでくれないので、他の郵便物と同じ扱いで処理されてしまいます。→ スクリプトの効果なし

もし、スクリプトを使わなかったら…
「優秀な郵便局」(高機能ルーター)は、なんとなく「この郵便物はゲームっぽいから優先かな?」と推測してくれるかもしれません(ゲームブースト機能)。しかし、『速達シール』という明確な目印がないため、見逃す可能性があります。

スクリプトは「これは優先してほしい」という明確な意思表示であり、ルーターの高度なQoSはその意思を確実に実行するための機能です。この2つが揃って初めて、QoSの効果は最大化されます。

手動でやりたい方用に手順(自己責任です。)

ファイアウォールルールの作成↓
Windows Defender ファイアウォールを開く→左側メニューから「送信の規則」をクリック→右側操作メニューから「新しい規則...」をクリック→「プログラム」を選択して「次へ」→「このプログラムのパス」を選択し、「参照...」からApex Legendsの実行ファイル(r5apex_dx12.exe)を指定します(パスの例、C:\Program Files (x86)\Steam\steamapps\common\Apex Legends\r5apex.exeみたいな感じです。)

指定したら「次へ」→「接続を許可します」を選択「次へ」→「ドメイン」「プライベート」「パブリック」の3つすべてにチェックが入っていることを確認し、「次へ」→「APEX_QoS」という名前を付けて「完了」をクリック。QoSポリシーのレジストリ設定 作成したルールに紐づけて、通信の優先度(DSCP値)を設定。

regeditを開く↓ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\QoS ・もしWindowsキーの中にQoSキーがなければ、Windowsキーを右クリック →「新規」→「キー」でQoSという名前のキーを作成する。

左側のツリーでQoSキーを右クリックし、「新規」→「キー」を選択します→キーの名前をAPEX_QoSに。 APEX_QoS内に値を作成 (2つ)します。右側の何もない空間を右クリックして↓ 「新規」→「文字列値」を選択→名前をApplication Nameにする。 作成した値をダブルクリック、「値のデータ」にr5apex_dx12.exeと入力 再度、右側の何もない空間を右クリック、「新規」→「DWORD (32ビット) 値」を選択。
名前をDSCP Value値を10進数46と設定。 すべての設定を反映させるため、PCを再起動。

ルーターがDSCP値に基づくQoSに非対応の場合、PC内部での送信順序のみ「軽く」適用されることになります。


スクリプトです↓(上記手順が簡単に設定されます)


VALORANT FORTNITE OverWatch2 ApexLegends(4ゲーム個別で適用できます)OverWatch2はblizzardのみ適用できます。鯖にある更新版でSteamも自動検索できるようにします。

スクリプトダウンロード後、管理者として実行。

メイン画面です。
適用させたいゲームの「数字」を打ち込みエンター。
基本は「1」を選択してください。
パス先が自動検出されます。
見つけた場合は青線の
「このパスを使用しますか?(Y/N)」が表示されるのでYを押してエンターしてください。
すると構築してくれます。
最後に「成功」とあれば完了です・スクリプトを終了させて、PC再起動してください。

多分大体の人が自動検知で設定できるはずです。

出来なかった人は↓

基本的なパスは検知するようにしていますが、特殊なダウンロード構成をしている方は検知できない場合があります。

その場合はご自身でパスを打ち込んでいただく必要があります。
(VALORANTを例に)
エクスプローラから
(例)保存してあるドライブ:\valorant\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exeみたいな感じです。

上記の感じで実行ファイルを右クリックしてパスのコピーをすると楽です。

(例)"D:\valorant\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exe"
パスのコピーを行うと前と後ろに「"」が付きます。それを消してください

(例)D:\valorant\Riot Games\VALORANT\live\ShooterGame\Binaries\Win64\VALORANT-Win64-Shipping.exe(消すとこのような形になるはずです)

それをそのまま貼り付けます→エンター→実行しますか?Y/NでYを選択、エンターで完了です。

SteamやEpic Gamesなどのランチャーからインストールしたゲームは、下記方法が確実です。

Steamの場合


Steamライブラリを開き、対象のゲームを右クリック。
「管理」にカーソルを合わせ、「ローカルファイルを閲覧」を選択。
ゲームのインストールフォルダが開きます。
あとは方法1と同じ手順でパスをコピーします。「"」は消す。

Epic Gamesの場合


Epic Gamesのライブラリを開きます。
対象のゲームの右下にある「...」(三点リーダー)をクリックし、「管理」を選択します。
「インストール先」の項目にあるフォルダアイコンをクリックします。
ゲームのインストールフォルダが開きます。「"」は消す。


使用は自己責任です。

起動できないなどは鯖内で言ってくれれば対応できます。
予告なくこの記事を削除する場合がございます(はなほじ)


いいなと思ったら応援しよう!