見出し画像

#10 iRacing から出力される3つのデータ result.json, .ibt, .blap .olap の活用

ここ1か月ほどは FIA-F4 と Formula 1600 Rookie のオフィシャルレースに参加しつつ、iRacing から出力されるデータについてを調べるのにかなり時間を費やしました。

このへんの情報がネット上に少ないので、わかった範囲でまとめておきます。
マニアックなのでどのくらいの需要があるのかわかりませんが、きっと知りたい人もいるはず。

ここに紹介する3つのデータは、特殊なプログラムを介して iRacing のサーバーから情報を取得するタイプのものではなく、Windows のファイルとして取得できるものです。


1. リザルト情報 .json ファイル


◆ 概要 ◆

オフィシャルセッションの Results 画面の内容をデータとして取得することができます。

◆ 出力先 ◆

自動では出力されません。
Results 画面左下の「Export Results」ボタンから任意のフォルダへダウンロードすることができます。
ファイル名は iracing-result-[サブセッションID].json

◆ ファイルの確認方法 ◆

json 形式のテキストファイルなのでテキストエディタで内容を確認できます。
各項目について一覧で説明されているものが存在しませんが、なんとなくわかるものが多いと思います。データ構造を理解するのに少し時間がかかりますが。

json形式のファイルの一部

◆ このファイルを活用して ◆

iRating の推移は iRacingUI からでも確認できますが、私は SafetyRating の推移を見える化したいのです。→ 同じ考えの方って多くないですか??

これまではスプレッドシートに手動入力してましたが、プログラム化してこのファイルから以下のような内容を google スプレッドシートに取得できるようにしました。

このファイルから作成したスプレッドシートの一部

また、SafetyRating の算出の基となる CPI (Corner per Incident) がこのファイルから取得できます。
まだ実際にはやってませんが、オフィシャルレースのおよその周回数がわかるので Incident がいくつまでなら SafetyRating を落とさないか、が出走前に計算できる気がします。
CPI については皆さんお世話になってる iRJA-iRacing日本語情報サイトで。ちょっと更新日が古いですが。


2. テレメトリ情報 .ibt ファイル


◆ 概要 ◆

テレメトリ情報を1秒間に60回出力しており、テレメトリ分析ソフト McLaren ATLAS などで閲覧するためのファイルです。

◆ 出力先 ◆

iRacing フォルダ直下の telemetry フォルダ
セッションに参加してから Escape(Reset) するまでが1つのファイルとなります。
自動で出力されますが、もしかしたら最初の1回目は有効にする操作が必要だったかも。

例)フォルダがデフォルトの場合
 C:\Users\[ユーザー名]\Documents\iRacing\telemetry\[車種名]_[トラックコンフィグレーション名] YYYY-MM-DD hh-mm-ss.ibt

◆ ファイルの確認方法 ◆

1つのファイルの中に、バイナリのテレメトリ情報とYAML形式テキストのセッション情報の2つの部分で構成されています。
Visual Studio Code などのコードエディタを使用するとテキスト部分は内容を確認できます。
バイナリ部分は API を使用したプログラムによる読み出しが必要です。

このファイルの出力項目は以下のリンク先 iRacing フォーラム(ログインが必要です)の本文中のPDFファイル ”telemetry_11_23_15.pdf” に記載があります。
Appendix A が バイナリ部分、Appendix B がテキスト部分の項目解説です。

https://forums.iracing.com/discussion/62/iracing-sdk/p1

私は(エンジニア等ではありません)独学ですが Python が少し理解できるので、Python 版の API を利用しました。

◆ このファイルを活用して ◆

私はタイムアップのモチベーションとして、自分の走行タイムをセクター単位で記録したいのです。
現在は RsDash ASR というサービスを利用してタイムの記録をしてますが、セクターの区切りが最大3つに丸められてしまうなど、このサービスに頼らず自力でなんとかならないか、という感覚になってしまったんです。

で、かなりゴリゴリやった結果、ある程度、先が見える状態まで来ました。
こちらもこのファイルからセクタータイムを割り出して、その他各種情報とともに google スプレッドシートに取得できるようにしました。
セクタータイムも UI 上で確認できるものと 2/1000 秒程度の誤差なので、プログラム上は正確なものが算出できているようです。

これも下の 3 .blap .olap ファイルから取得できれば苦労しなかったのですが…

このファイルから作成したスプレッドシートの一部

3. ラップタイム情報 .blap .olap ファイル


◆ 概要 ◆

blap:Best Lap Time
olap:Optimal Lap Time
各トラックとコンフィグレーション(GrandPrixコース、Eastコース など)ごとに、有効な1周ベストラップ(blap)といわゆるセクターベスト(olap)が収められています。

有料サイトのコーチなどの blap,olap ファイルを入手して、Reference Car として設定することにより Ghost Car として表示できたり、デルタタイムとして 表示できたりできるようです(私はやったことありません)。

◆ 出力先 ◆

 iRacing フォルダ直下の lapfiles フォルダに トラックとコンフィグレーションごとのフォルダができ、その中に車種ごとに .blap と .olap の2ファイルが作成されます。

例)フォルダがデフォルト
 トラックが OKAYAMA
 コンフィグレーションが FULLコース の場合
 C:\Users\[ユーザー名]\Documents\iRacing\lapfiles\okayama full\[CustomerID]_[車種名].blap

◆ ファイルの確認方法 ◆

このファイルの内容を確認したいのですが、ファイルはバイナリファイルで、残念ながらファイルの内容にアクセスするための API のようなものが見当たりませんでした。

ただし、下の画像のようにセッション初期画面の右下「SPLITS」から手動で編集できるようです。

◆ このファイルを活用して ◆

ベストラップ関連のデータをこのファイルから取得できれば手っ取り早かったのですが、上述のようにアクセスできなかったので、このファイルのデータは活用できませんでした。

◆ 参考にしたサイト ◆


いかがでしたでしょうか?
あなたはこのようなことを知りたくてここにたどり着いた方ですか?
でしたら、スキ をよろしくお願いします。

レースで勝つこと、タイムを上げること、だけが iRacing ではないですね。
私のように「データ好き」がデータを蓄積できるレースシム。
数学的思考を仕事上求められることが少なくなったこともあり、脳にもいい刺激。
おとなの部活です。


#iRacing
#レースシム
#eモータースポーツ
#eSport
#大人の趣味
#FANATEC
#グランツーリスモ
#アセットコルサ
#アセットコルサコンペティツィオーネ
#ACC
#LFM

この記事が気に入ったらサポートをしてみませんか?