【rfactor2】 プラグイン開発1 – サンプル概要 –

今回の趣旨
 まずは、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つしかないため、プロジェクトファイルを開いても同様の結果となる。
 capt_001.jpg
 capt_001.jpg
変換ウィザードが表示されるが、特に気にせず完了を押すだけでよい。
capt_004.jpg
 晴れて、プロジェクト一覧が確認できるようになる。
だが、このテンプレートには簡単ではあるが不整合がある。
capt_006.jpg
Header Filesに記載される”RFPluginObjects.hpp”が実は存在しない。
 というよりも、上記に記載した”PluginObjects.hpp”が正しいファイル名となる。
 これを登録しなおす。削除して、ドラッグするだけで構わない。
 capt_008.jpg
 これで、整合性のとれたプロジェクトファイルが整った。
 メニューの「ビルド」から「ソリューションのビルド」を実行してみると、エラーなくコンパイルが完了するはずだ。
capt_012.jpg
 プロジェクトファイルの中にコンパイル結果である”InternalsPlugin.dll”が作成されているはずである。
capt_014.jpg
 これをrFactor2がインストールされた中の”Plugins”フォルダの中に配置すれば、コンパイルしたプラグインの
動作確認ができる。
capt_015.jpg
 rFactor2を起動して、走行をすると、新たに配置されたサンプルプラグインから出力されたデータ・ログが、
 インストール先直下に出力される。
capt_016.jpg
ExampleInternalsGraphicsOutput.txt
ほぼタイトル行のみのファイル
ExampleInternalsScoringOutput.txt
 ほぼタイトル行のみのファイル
ExampleInternalsTelemetryOutput.txt
詳細なテレメトリーデータが出力されている。
 MOTECのログの形式を詳しく知らないため実際のところは分からないが、本サンプルが有効に活用し変換コードを書いて、
 rFactor2に対応したMOTECのプラグインがリリースされたのかもしれない。
サンプルプラグインが出力するファイル形式
サンプルプログラムでは、下記の形式でファイルが出力されている。
・プラグインの読み込み・終了
 ・セッションの開始・終了
 ・リアルタイム入 リアルタイム出
  随時、テレメトリーデータを出力しているため、1分ほど走行するとあっという間に10MB程度のファイルが
  作成されているのを確認できた。
capt_017.jpg
おまけ
プラグインのExampleは、2005年11月に作成された模様であるが、作成者に”CUBE technology”という名(企業?)を見ることができる。
 また、”InternalsPlugin.hpp” “PluginObjects.hpp”は2008年2月に作成され、作成者に”isiMotor Technology”という部隊名を見ることができるので、派生クラスとして作成されているExampleそのものは、”CUBE technology”が作成していると思われる。
次回は、実際のコードにダイブする予定。

rfactor2 Plugin Develop