最近FPSの為に試した事まとめ
エイム能力面の話
Xtrfy MZ1購入
Xtrfy GP3購入
上記に伴ってマウスグリップの改善を試みた
以前はZowie S2を使用していた。左右対称マウスな事もあり摘まみ、掴みに近いグリップをしていたがMZ1の特徴的な形に合わせてやや変化する。
GP3はハードパッドで沈み込み一切無く布パッドとは比べものにならない程滑る為余計な力を入れればミドルセンシと言えど簡単にレティクルが滑り出してしまう。これは予想していた事ではあるが改めて脱力について考える必要があった。
手のひらの中にある虫様筋と言う筋肉に着目。
力を発揮する速筋ではなく持久力を得意とする遅筋の部類。他の筋肉に比べて筋肉の伸び縮みを感知する筋紡錘と言う器官が10倍くらいある。指先第2関節までの動作は速筋が多く構成される前腕の筋肉が動かしているので指先は脱力ポイントとするのが適切と考えられる。虫様筋を用いてマウスをコントロールするためには掌に一番近い第3関節を意識する必要がある。これは楽器演奏における脱力を良しとした指導にも類似が見られる。また親指は虫様筋とはさらに独立した筋肉が動かす為、マウスを持つ時の親指はほぼ「添えるだけ」で良いと考えられる。エレキギターにおけるピックの持ち方について親指を使わず人差し指でなでる様に弾く事を良しとするような指導があり指先のコントロールについて転用が出来るポイントであると考えられる。
これらを踏まえて虫様筋を中心としたトレーニングやストレッチなどを空き時間に行う。ストレッチだけでも手の応答性がかなり上がる実感があった。この部位の筋トレを行うのであればアイソやスピードトレーニングが適当と考えられる。非常に小さな筋肉なので毎日やっても多分問題なさそう。
DPI高い方が遅延が少ない話
ゲーム系PCチューニング動画で検証動画を多数投稿してるBattle(non)sense氏が最近マウスDPIによってシステムレイテンシが50%も左右されると言う検証を投稿していた。
サムネでもわかる様に42msから22msまでレイテンシーが下がっている。
400DPIでは1600DPIに対して2倍の遅延が発生していると言うのが動画の本題。この原因とも言える挙動は手前の環境でも再現できる。ポーリングレートは固定ではなく可変であると言う事実が重要になるのだが、実はマウスは低速で動かすとポーリングレートが下がるのだ。自身のマウスのポーリングレートは下記サイトで簡単に確認する事が出来る。
試してもらえばお分かりだろうが、ポーリングレートが1000Hzに設定されていても数ドット差の狙いをつける様な細かい動きをしている時は著しくレートが下がる。これが動画で検証されている非常に低速と言う条件だ。私はFPSにおいてセンシを41.56cm/360°に統一しているが400DPIで低速操作を行うと大体300~400Hzかそれ以下になるのに対し、1600DPIで同じ動きをすると丁度2倍の600~800Hzくらいで動作する。
マウス上で起きている2倍差のレイテンシー、実際にはほんの数msなのだがこれがシステム全体のレイテンシーをそのまま2倍にする事になる訳だ。
結果から推察するに、マウスのポーリングレートは送信するデータ量に応じて可変していて、DPIが高いとデータ量が瞬時に増えるためこれに合わせてポーリングレートも素早く上昇していると考えられる。マウスの更新情報に合わせてゲームの画面情報も更新されるのだから単純な足し算ではなく倍数的に遅延に影響が出るのは納得のいく話だ。
予てからマウスDPIは高い方が操作が敏感になって良いとか、400DPIは若干の直線補正が入るとか言う根拠不確かなウワサはあったのだが「プロが400や800だから」と言う理由で低めのDPIを選択する人は多かった。またゲームが高いDPIに対応したセンシを用意していないと言う意見も最もであった。しかしBattle(non)sense氏によるエンドツーエンドでの実質的な検証でこの様な差異が見られた事はそれらの考え方に一石を投じるには十分な質量であると自分は思う。
Apexとかタルコフでキャッシュが必要な話
Apex Legendsで長らく一部のユーザーを悩ませているゲーム開始時の無限ロードバグ。
これはDDoS攻撃によるサーバー側の問題と見る人やゲームそのもののバグとしてプレイを諦めるか長い時間をかけて起動を待つ人が大半の様に思うが、手前の環境で発生していたコレはとても簡単な操作で解決することが出来た。
それはNvidiaコントロールパネルの3D設定の管理でシェーダーキャッシュを有効にするだけ。
ゲームをスタートする時点のロードで問題が発生しているのだから、それに関するオプションを設定すればいいのだとアタリを付けて確認してみたらドンピシャだった。普通のゲームはここを無効にしても特に問題は発生しないのでゲームそのもののバグと言うのは間違ってないが、世の中にはキャッシュが存在する事を前提として設計されているアプリは結構あるのでApexもその一つだと捉える他ないのだろう。
Escape from Tarkovもその一つと言っていい。このゲームはシェーダーではなくメモリ周りにかなり問題を抱えたヤツでレイドを2、3回出るとメモリの容量を食い散らかし場合に寄ってはPCごとクラッシュさせる困った奴だった。32GBあれば問題は起きないとか64GBは積んだ方がいいとかそんな噂もある訳だがメモリリークの為にそんな事をしてやるほど自分は心が広くない。タルコフはゲーム内のメモリクリーナーが正常動作しない場合もあり、動作していてもコミットチャージ(書き込み待ち)がどんどん膨らんで行くのでパッと見メモリ使用量に余裕があっても簡単にクラッシュしてしまうのだ。
なので自分は仮想メモリを有効にする事にした。仮想メモリの詳しい機能を調べれば調べる程無効にするデメリットの方が見えてくる。単純なメモリ領域の拡張ではなく、物理メモリにデータをスムーズに受け渡す機能であったりクラッシュに繋がるようなエラーをスワップしたりと、とても重要な役割を果たしている。仮想メモリの無効化はPCパフォーマンス向上と言えば誰もがまずやる手段だろうがこれはWindowsXP時代にさかのぼる古い慣習と言えるだろう。当時はSSDなんてものはなくHDDに仮想メモリを設置するのが当たり前だった。物理メモリに比べて圧倒的に読み書き速度の遅いHDDに設置された仮想メモリでは上記のような役割を十分に果たせていなかったのだ。しかし今はNVMeなどの非常に高速なSSDが存在する。オーバークロック競技や競技エイムの世界ではやはり差が出るのかもしれないが、遅延削減を目的としたチューニングは安定性とのトレードオフな部分が多くここは譲らなければいけない箇所になるのかもしれない。
とは言えタルコフはキャラクター動作がもともとモッサリしたゲームであり遅延を削るよりは安定性を向上させた方がメリットが大きいのは間違いない。自分はこれでクラッシュ頻度がかなり下がった(無くなったとは言っていない)。Apexはと言えばロードする時間が5分から数秒になった程度のメリットがあった。こちらは今のところ再発はない。
おわりに
こんな記事書いてるけど最近遊んでいるのは専らBattle Field4/5。2042とっても楽しみ~。