OBSでGT7のテレメトリーデータ表示を自動でON/OFFする

はじめに

以前、OBSでGT7のテレメトリーデータをゲーム画面に自然にオーバーレイ表示してみたということで
https://www.muaaru.com/2025/02/09/post-814/

配信画面にテレメトリーデータを表示したが、

走行中以外の画面でも手動でシーンを切り替えないとテレメトリーデータ表示されてしまい邪魔になっていました。

自動でシーンを切り替えたい

OBSには便利なプラグインがあって

Advanced Scene Switcher
https://github.com/WarmUpTill/SceneSwitcher/releases

を使うと様々な条件に応じてシーンを自動で切り替えができます。

特に画像認識をシーンチェンジの条件に組み込めるので、これを使用して走行中のみテレメトリーデータ表示がONになるようにします。

Advanced Scene Switcherのインストールなどは、この辺のサイトを参考にしました
https://game.deaf-ray.com/obs-plugin-advanced-scene-switcher/

シーンチェンジの条件を設定する

Mainのシーンがテレメトリーデータ表示をゲーム画面にオーバーレイした状態のシーン
_Gameのシーンがゲーム画面のみのシーンになります

今回設定した条件を説明すると

InDriveのマクロでは
シーンが_Gameの状態の時に速度表示の単位のkm/hとMTの文字が画面上に表示された場合に
シーンをMainに1秒かけてフェードインさせます

逆に、
InMenuのマクロでは
シーンがMainの状態の時に速度表示の単位のkm/hとMTの文字が画面上に表示されていない場合に
シーンを_Gameにすぐ切り替えます

設定については画像を参考にしてもらえれば設定できるはずです。

ただ、設定の注意点としては画像認識させる部分がすこし難しいです。
マッチさせる画像を設定する際にできるだけギリギリの範囲を画像として切り出さないと認識の精度に結構影響が出ます。
GT7の場合、走行中の画面では背景にコースやらが映り込んでしまい、確実に認識できる箇所がないです。
そのため、Threshholdの値をすこし落として指定したが画像とマッチしやすくしています。

しかし、それだけだと画像認識の誤判定が増えるため、認識率をあげるため認識する場所を2箇所に増やして両方がマッチしたらという条件にしています。

これでほぼ走行中の画面の判定ができるようになりました。

もう一点注意事項として、画像認識はCPUを消費するので、
Perform check onlyy in area の設定項目でSelect areaのボタンを押して画面上の認識範囲はちゃんと設定したほうが
CPUの消費を抑えられる上に画面の他の箇所での誤認識もなくせるので認識範囲は設定しておきましょう

この辺の どの部分を認識させて判定するか?Threshholdをどれくらいにするか?といった部分は自分で試しながら調整するしかないです
そのための機能が設定の下の方にある Show match のボタンを押すと表示できます
先ほどの画像に出ているように、赤い枠線が出ていると認識されている という表示なので、自分の思ったように認識するまでThreshholdや、認識画像、認識範囲を変えてみて調整しましょう

まとめ

これで自動で走行中のみテレメトリーデータが表示されるようにできました。

このプラグインを使用するとさまざまな条件でOBSの操作を自動化できるので、他にもいろいろと設定を組んで配信中に手間をかけずにリッチな画面表示が実現できそうです。