Chrome/Chromium系ブラウザで使える!FPS(フレームレート)上限を解除する方法
ここ最近よく遊んでいるブラウザFPS Krunker.io は、ゲーム中の挙動が内部動作フレームレートによって少し変わってしまう困ったちゃんです。
ブラウザで遊ぶとモニタの動作周波数以上のフレームレートが出ない(60hzモニタなら60fps、144hzモニタなら144fps)ようになっていますが、配布されている公式クライアント(Electron製)を使うとフレームレートの上限を解除することができます。
「Electronで作られている公式クライアントがフレームレート上限解除出来るのにChromiumで出来ないはずがない!あわよくばChromeで…!」ということで、その上限を解除する方法を調査してみました!
結論
解除出来ます。起動オプションに「--disable-frame-rate-limit」をつけるだけです。
起動オプションの設定方法
Chromeの起動ショートカットを作って、「右クリック→プロパティ→リンク先」欄の最後にスペースを入れてから上記のフラグを入れるだけです。 例)"C:\~~~\chrome.exe" --profile-directory="Profile 1" --disable-frame-rate-limit
※ただし、起動したChrome全体に設定は適用されてしまいます。(タブ毎に設定したりはできない)
(あとで詳細追記)
オススメの運用
ウェブブラウザ:Kinza - 国産で軽い・使いやすいWeb Browser
普段のブラウジングでもFPSのリミットが解除され負荷が上がってしまうため、上記のKinza・Operaなど、Chrome系の別ブラウザをDLしてKrunker用として使うのを基本的にはオススメします。
その他有用な起動オプション
↑のサイトに利用可能な起動オプションが沢山のっています。 Frame とか GPU でページ内検索すると色々捗るかもしれないですが、 危なそうなオプションも沢山あるのでご利用は自己責任で!
--show-fps-counter フレームレートを表示する ※F12のメニューからも設定可能。Chrome F12 → 右上の縦3つ点 → Rendering → FPS meter
--disable-gpu-vsync GPU有効時のVsyncを無効にする ※ただしONにしても体感は出来なかった
--ignore-gpu-blacklist 全てのグラボでGPUアクセラレーションを有効にする? ※Krunker公式・非公式クライアントではONになっている
--disable-accelerated-2d-canvas 2d-canvas(Krunkerでグラフィック描画に使われている)でのGPUアクセラレーションを無効にする ※Krunker公式クライアント の「InputLag」設定と対応している。 ※Chromeのバグによる「GPU使用時の入力・描画2F遅延」(?)を解消するらしいが、体感では感じられなかった。また、GPUを使わない場合は(筆者の環境では)内部動作フレームレートが半分くらいになるので、弄らないほうがいいかもしれない。
--limit-fps=数字(1~) ブラウザの動作フレームレートの上限を設定する。 ※--disable-frame-rate-limit がONの場合は機能しない(´;ω;`)
(ついでに)ChromeのVsyncバグ・Inputラグについて
↑この辺に詳しく載っています。
んでもって↑ここで実際にラグのテストが出来ますが、ぶっちゃけあまり体感出来ませんでしたw
※バグによるInputLagよりも、むしろフレームレート解除でやったときのブレが少ないということが体感出来て驚きました!Krunkerに限らずブラウザゲーやるときはフレームレート上限は解除したほうがいいのかもしれませんね!
とりまずまとめましたが、後ほど追記していきまぁす。