今回の趣旨
まずは、rFactor2のプラグインでどんなことができるのかというのも大事ではあるが、まずはサンプルのプラグインの概要を確認したいと思う。
現在、rFactor2の公式フォーラムで配布されているプラグイン例(Jan 15, 2012版)について解析をした。
ファイル構成
圧縮ファイル名: rF2 Example Plugin.7z
解凍後の構成:
-rF2 Example Plugin
-Include
Example.hpp
InternalsPlugin.hpp
PluginObjects.hpp
-Source
Example.cpp
-Win32
InternalsPlugin.sln
InternalsPlugin.vcproj
プラグインテンプレート開発環境
Win32フォルダ配下のファイルからも分かる通り、Visual Studioで作られたテンプレートとなる。
なおこのテンプレートは、内部を確認するとVisual Studio 2005内(もしくは個々のプロダクト)の
Visual C++ 8.0を使用して作成されていることが分かる。
プラグインテンプレートの起動
Win32内のInternalsPlugin.slnを開けば、ソリューション(.sln)が開かれる。
開発環境のバージョンに依存する特殊な処理は書かれていないため、2005以降であれば、
どのバージョンでも問題なく開くはずだ。
ソリューション内のプロジェクト(vcproj)は1つしかないため、プロジェクトファイルを開いても同様の結果となる。
変換ウィザードが表示されるが、特に気にせず完了を押すだけでよい。
晴れて、プロジェクト一覧が確認できるようになる。
だが、このテンプレートには簡単ではあるが不整合がある。
Header Filesに記載される”RFPluginObjects.hpp”が実は存在しない。
というよりも、上記に記載した”PluginObjects.hpp”が正しいファイル名となる。
これを登録しなおす。削除して、ドラッグするだけで構わない。
これで、整合性のとれたプロジェクトファイルが整った。
メニューの「ビルド」から「ソリューションのビルド」を実行してみると、エラーなくコンパイルが完了するはずだ。
プロジェクトファイルの中にコンパイル結果である”InternalsPlugin.dll”が作成されているはずである。
これをrFactor2がインストールされた中の”Plugins”フォルダの中に配置すれば、コンパイルしたプラグインの
動作確認ができる。
rFactor2を起動して、走行をすると、新たに配置されたサンプルプラグインから出力されたデータ・ログが、
インストール先直下に出力される。
ExampleInternalsGraphicsOutput.txt
ほぼタイトル行のみのファイル
ExampleInternalsScoringOutput.txt
ほぼタイトル行のみのファイル
ExampleInternalsTelemetryOutput.txt
詳細なテレメトリーデータが出力されている。
MOTECのログの形式を詳しく知らないため実際のところは分からないが、本サンプルが有効に活用し変換コードを書いて、
rFactor2に対応したMOTECのプラグインがリリースされたのかもしれない。
サンプルプラグインが出力するファイル形式
サンプルプログラムでは、下記の形式でファイルが出力されている。
・プラグインの読み込み・終了
・セッションの開始・終了
・リアルタイム入 リアルタイム出
随時、テレメトリーデータを出力しているため、1分ほど走行するとあっという間に10MB程度のファイルが
作成されているのを確認できた。
おまけ
プラグインのExampleは、2005年11月に作成された模様であるが、作成者に”CUBE technology”という名(企業?)を見ることができる。
また、”InternalsPlugin.hpp” “PluginObjects.hpp”は2008年2月に作成され、作成者に”isiMotor Technology”という部隊名を見ることができるので、派生クラスとして作成されているExampleそのものは、”CUBE technology”が作成していると思われる。
次回は、実際のコードにダイブする予定。