最近VR機器を使うことが増えてきており、マルチモニター環境においてSteamVRやVRChat等のVRゲームを起動したときに、モニターの接続を解除してあげるとFPSが自環境では5-10FPSの向上が見られたので備忘録。

Table of Contents

  1. multimonitortoolの準備
  2. multimonitortoolでモニターIDの確認
  3. batファイルの作成
  4. autohotkeyの構築
  5. 参考

multimonitortoolの準備

multimonitortoolをダウンロード。結構下のほうにあるのでCtrl+FでDownloadと検索したほうが幸せかもしれない。Languageにある日本語化ファイルもダウンロードしておく。

multimonitortoolでモニターIDの確認

起動して、モニターidを取得する。
下部分に表示されているウィンドウと照らし合わせながら、モニターを右クリック

モニターIDをメモしておく

batファイルの作成

off時のbat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
setlocal

:: monitor IDs
set "MAIN_MONITOR_ID=MONITOR\*******\{*******-****-****-****-************}\****"
set "SUB1_MONITOR_ID=MONITOR\*******\{*******-****-****-****-************}\****"
set "SUB2_MONITOR_ID=MONITOR\*******\{*******-****-****-****-************}\****"

:: MultiMonitorToolで切断
"MultiMonitorTool.exe" /disable "%SUB1_MONITOR_ID%"
"MultiMonitorTool.exe" /disable "%SUB2_MONITOR_ID%"

:: 自動的に閉じる
timeout /t 3 >nul

on時のbat

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@echo off
setlocal

:: Define monitor IDs
set "MAIN_MONITOR_ID=MONITOR\*******\{*******-****-****-****-************}\****"
set "SUB1_MONITOR_ID=MONITOR\*******\{*******-****-****-****-************}\****"
set "SUB2_MONITOR_ID=MONITOR\*******\{*******-****-****-****-************}\****"

:: MultiMonitorToolで切断
"MultiMonitorTool.exe" /enable "%SUB1_MONITOR_ID%"
"MultiMonitorTool.exe" /enable "%SUB2_MONITOR_ID%"

:: 自動的に閉じる
timeout /t 3 >nul

まずset MAIN_MONITOR_IDset SUB1_MONITOR_IDset SUB2_MONITOR_IDでモニターIDを定義、私はトリプル環境のため三つ定義してあるため、各々そこは変更していただきたい。

"MultiMonitorTool.exe"はMultiMonitorTool.exeが配置されている絶対パス(エクスプローラーでexeを指定し右クリック -> パスのコピーで取得)を指定

これでとりあえず接続/切断は使えるはず。

autohotkeyの構築

autohotkeyを使ってSteamVRvrserver.exeが起動したときに切断、終了時に接続というようなことをする。ダウンロードしてインストールしておく。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#Persistent
SetTimer, CheckSteamVR, 1000
steamVRStarted := false
return

CheckSteamVR:
Process, Exist, vrserver.exe
if (ErrorLevel != 0 and !steamVRStarted) {
; SteamVR起動時に実行
Run, "off.bat"
steamVRStarted := true
}
else if (ErrorLevel == 0 and steamVRStarted) {
; SteamVR終了時に実行
Run, "on.bat"
steamVRStarted := false
}
return

off.baton.batは先ほどのパスをコピーから取得する

先ほど書いたahkファイルを開くと

といわれるのではいを選択、now installみたいなウィンドウが出てきたらok。
またahkファイルを開いてシステムトレイに追加されてたらok。緑でHと書いてあるロゴがそれ

だいぶ駆け足気味で書いているので、わかんなかったら遠慮なくTwitterのDMまでぜひ

参考

WSL2でマルチディスプレイの接続/切断をCLIで行う