GT7 Dashboardの紹介
グランツーリスモ7には公式のテレメトリー取得機能が無いのですが、GitHub上にデータ取得用ソフトが公開されているので、ダウンロードして動作確認を行ってみます。
関連ページのリンク
- GT7 Dashboardでテレメトリーデータを取得 ←この記事
- GT7DashboardのJSONデータをC#で解析してみた
- 自作ソフトでGT7Dashboardの色々なデータをトレースした
- GT7DashBoardのデータで車両解析する
ソフトの動作環境と取得できるデータ
Windows、MAC、Linuxそれぞれで実行ファイルが用意されており、実行するとWEBサーバーとして動作します。起動後にブラウザでアクセスすることでデータを確認できます。データはコースの周回ごとに更新されるようで、速度やエンジン回転数だけでなく、アクセル開度やブレーキングデータ等も出力されます。
主な機能として最も新しいラップとリファレンスとして指定したラップの比較が可能です。下記の例では、7周のレースで最速だった5ラップ目と最終ラップのスピード比較を表示しています。スピード以外にも色々なデータを比較できます。
ソフトのデータ取得方法
UDPプロトコルで33740番又は33739番を使用してデータ取得を行うようです。Readmeファイルに記載があるようにオプションでPS5のIPアドレスを指定できますが、未指定で実行するとブロードキャストアドレス(すべての通信を受け取る設定)で受信開始します。LAN内に複数のPS5が存在する場合はパケットを受信するIPを指定してデータの識別を行う必要があります。多くの開設サイトや動画ではPS5のIPを指定して実行していますが、家で利用する場合はIP指定無しで受信しても問題無いでしょう。
Windows11でソフトを実行する準備
ソフトの使用方法はReadmeファイルに起動までの手順の記載があるのですが、記載内容が正確ではない点やその他の注意点があったのでメモしておきます。
Pythonバージョンの注意
ソフトを使用するにはPythonのインストールが必要なのですが、バージョンに注意が必要です。GitHub上のIssuesに記載があるのですが、3.12以降のバージョンはサポートしていないようです。そのため、3.11をインストールします。今回はPython-3.11.8をインストールしました。
Pythonのインストール
インストールの注意点としてはインストーラ実行時に"Add python.exe to PATH"というチェック項目があります。チェックをしておかないと手動でPATH登録しないといけないので、忘れずにチェックを入れておきます。
Microsoft C++ Build Tools
こちらもReadmeファイルに記載があります。ダウンロードして、「C++によるデスクトップ開発」にチェックを入れてインストールします。
UDP33739-33740ポートの解放
スタートメニューから「設定>ネットワークとインターネット>ネットワークの詳細設定」を開きます。関連設定の「Windowsファイアウォール」を選択し、「詳細設定」を開きます。「受信の規則」を選択すると右側操作メニューに「新しい規則」があるので選択します。ここで33739-33740/UDPの開放設定を行います。規則の種類は「GT7Dashboard_UDP」としました。
以上で起動までの準備は完了です。
PowerShellによる実行
ReadmeにはWindowsの場合は"run.bat"を実行すると記載がありますが、2024/2/24現在はこのファイルが見当たりません。代わりに"run.ps1"があるので、PowerShellによる実行が必要だと推測できます。
PowerShell起動時の注意
"run.ps1"ファイルを右クリックして、PowerShellによる実行を行ってもコンパイルを開始してくれません。これはWindows11がデフォルトの状態でスクリプト実行を無効にしているからです。そのため、管理者権限でPowerShellを開いて、cdコマンドで"run.ps1"のフォルダまで移動し、下記コマンドでを実行します。
powershell -ExecutionPolicy Bypass ./run.ps1
この"-ExecutionPolicy Bypass"オプションでスクリプト実行が可能になります。
実行に成功すると、下記のような表示で停止します。ここで記載のあるURL"http://localhost:5006/GT7Dashboard"にブラウザでアクセスするとダッシュボードが起動できます。
... 2024-02-24 15:58:17,159 Starting Bokeh server version 3.2.2 (running on Tornado 6.4) 2024-02-24 15:58:17,481 User authentication hooks NOT provided (default user enabled) 2024-02-24 15:58:17,485 Bokeh app running at: http://localhost:5006/GT7Dashboard 2024-02-24 15:58:17,485 Starting Bokeh server with process id: 12524
ブラウザで起動するとUDP受信用のサーバーが確立されたと表示されます。内容からブロードキャストアドレスですべての通信を受け入れていると推測できます。
2024-02-24 16:00:00,942 No IP set in env var GT7_PLAYSTATION_IP using broadcast at 255.255.255.255 2024-02-24 16:00:01,284 WebSocket connection opened 2024-02-24 16:00:01,284 ServerConnection created
PS5からのデータ受信の確認
無事にブラウザでDashBorad画面が立ち上がるとグランツーリスモ7との通信状態を確認できます。左上の丸マークが緑色であれば通信が確立出来ており、赤色だと通信出来ていません。この通信状態はPS5でグランツーリスモを立ち上げると緑色に変化しました。
データ取得の終了
ブラウザのページを終了すると、通信を終了するようです。
実際にデータを取得してみた
実際に走行データを取得してみます。
UIの使い方
まず、コースを変更した場合などに記録をリセットする方法です。"ResetLaps"のボタンで初期化できますが、最終ラップのデータが残ることがあります。その時はブラウザで画面を再読み込みするとリセットできます。
"SaveLaps"ボタンはログとしてファイルにデータを保存できると書いてあるのですが、ファイル名は時刻と車名で自動付与されるようです。ただ、保存時にファイル名等の通知がないので、少々使いにくく感じます。また、保存ファイル一覧はブラウザを再読み込みしないと更新されません。
このデータは"\GT7Dashboard\data"内に保存され、後で読み込み出来ます。
S660でパドルシフトと3ペダルMT操作を比較
走行データにどのような差が出るか実際のデータで比較してみます。Last Lapが3ペダルMTによる操作で、Best Lapがパドルシフトによる操作です。Last Lapはスロットル全開で加速している途中にスロットル開度が0になっている瞬間があります。このようにギアチェンジでアクセルを閉じている様子を確認できました。
使用した感想
走行動画とこのようなテレメトリーを一緒に保管すればおもしろいと思いました。欲を言えばデータの保存先や読み込むデータのパスを設定できればさらに使いやすそうです。
バッチファイルの作成
毎回PowerShellを開いて実行するのは手間なので、バッチファイルを作成します。
デスクトップに"GT7Dashboard.bat"として下記ファイルを作成します。
cd C:\Users\[ソースの保存先]\GT7Dashboard powershell -ExecutionPolicy Bypass ./run.ps1
これでデスクトップのバッチファイルをダブルクリックするだけで起動できるようになりました。