1. はじめに
Race Sim Central Forum で Joan Pey (AKA [NFBS]Nye) さんがリリースされた GTR-PD OCX の存在を知った時は、かなり感動し色々と想像してニヤケまくりました。と言うのも、Frex の SimConBASE や Blimey! Games の G-Racer などを見て、ゲームのデータを読み出せる事を知ってから自分なりに調べて色々とやってみたのですが、どれもなかなかうまくいかずノックアウト状態だったからです。
プログラマーでもない私がこんな物を作れたのは、Joan Pey さんのお陰です。本当に感謝しています。かなり先走って、OCX 再配布の許諾を求めた際に、「好きにしていいよ。でもお願いだから、完成したらみんなに公開して使うことができるようにして欲しい。」と言われていたので、なんとか公開できてホッとしています。
Special Thanks Joan Pey (AKA [NFBS]Nye), Osaka Joe and Taku.
あと、色々と応援メッセージくださった皆様ありがとうございました。嬉しかったです。
ひとりでもこれ使って「ニヤリ」としてくれる人がいれば T2R は幸せです。
説明書、頑張って書いてみたけど見難い。^^; まぁ、我慢してやってください。
Note: 今回公開のこのソフトウェアは、かなりベータバージョンです。 色々未実装だったり、エラーチェック漏れなどたくさんあると思います。諸々ご理解いただける場合のみご使用下さい。
|
2. ソフトウェアについて
2.1. ソフトウェア構成
Virtual Dash には以下のアプリケーションが含まれています。
- LTU - Logger/Transmitter Unit: ログ&キー採取/転送を行います。
- DCU - Display Control Unit: ディスプレイ表示とテーマの管理および設定を行います。
- Motec - Display Theme: ディスプレイテーマです。
- KeyConfig - Key Configuration Helper: キー設定補助ツールです。
|
Note: とりあえずテーマは Motec 風のみです。今後作成するかもしれませんし、しないかもしれません。汗
|
2.2. 対応ゲーム
現在の対応および今後対応予定のゲームタイトル(ほんまかいや;)
2.3. 動作に必要なもの
本ソフトウェアの動作には、以下のランタイムが必要です。
Note: LTU.exe は .NET Framework 2.0 以降、DCU.exe は .NET Framework 3.5 が必要です。
別 PC で DCU.exe を実行させる場合 LTU.exe を実行する PC への .NET Framework 3.5 の導入は必須ではありません。
|
2.4. ハードウェアについて
作成中…
2.5. 補足/注意事項など
-
WPFフォントキャッシュサービスについて
DCU.exe は WPF アプリケーションです。なので、DCU.exe 起動時に WPF フォントキャッシュのサービスが動作していない場合、起動します。DCU.exe が終了しても、サービスはそのままですので、気になる方は、DCU.exe 終了後、手動でサービスを終了させてください。(スタートボタン -> コントロールパネル -> 管理ツール -> サービス から "Windows Presentation Foundation Font Cache 3.0.0.0" をダブルクリック -> 終了 )特に気にならない方はそのままでもかまいません。
また、WPFアプリケーションが最初に起動されるとき、WPFフォントキャッシュのサービスが動作しているかどうか確認し、動作していなければ、これを起動しようとします。そのため、WPFアプリは最初の起動に余分に時間がかかります。もし起動時間を短縮したい場合は、上記のサービス設定のところで、スタートアップの種類を自動にすると、OS 起動時に WPFフォントキャッシュのサービスも起動するようになりますのでアプリ起動時間が短縮されます。(自分はしませんが。)
3. ライセンス
思案中…とりあえず
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
4. インストール
ダウンロードした zip ファイルを、お好きな場所へ解凍/展開するだけです。
ゲーム PC と異なる PC でディスプレイ (DCU.exe) を実行する場合は、その PC にも zip をダウンロードして解凍する、あるいは DCU フォルダのみをコピーするなりして配置してください。
5. 初期設定
ここでの説明は動作に最低限必要な設定のみです。詳細は 7. 設定ファイル をご覧下さい。
5.1. OCX(OLE) コントロールの登録
LTU.exe では、ゲームからデータを取得する部分に Joan Pey (AKA [NFBS]Nye) さんが作成された OCX(OLE) コントロール*1 を利用しています。OCX(OLE) コントロールはゲームを実行する PC へ登録する必要があります。各ゲーム用の OCX(OLE) コントロールは、Support\PD_OCX フォルダに同梱しています。(作者さんから再配布の許可をいただいています。)
5.1.1 Windows XP をお使いの場合
登録するには
スタート - ファイル名を指定して実行 - 名前 のところへ regsvr32 { xxx.ocxへのパス } - OK ボタンをクリック。
例)regsvr32 C:\PD_OCX\GTR2_PD_OCX.ocx |
解除するには
スタート - ファイル名を指定して実行 - 名前 のところへ regsvr32 /u { xxx.ocxへのパス } - OK ボタンをクリック。
|
例)regsvr32 /u C:\PD_OCX\GTR2_PD_OCX.ocx
|
5.1.2 Windows Vista をお使いの場合
登録するには
スタート - すべてのプログラム - アクセサリ - コマンドプロンプト を右クリックして、 管理者として実行 をクリックします。
黒いコマンドプロンプトのウインドウが開いたら、 regsvr32 { xxx.ocxへのパス } と入力して Return キーを押します。
例)regsvr32 C:\PD_OCX\GTR2_PD_OCX.ocx |
解除するには
スタート - すべてのプログラム - アクセサリ - コマンドプロンプト を右クリックして、 管理者として実行 をクリックします。
黒いコマンドプロンプトのウインドウが開いたら、 regsvr32 /u { xxx.ocxへのパス } と入力して Return キーを押します。
|
例)regsvr32 /u C:\PD_OCX\GTR2_PD_OCX.ocx
|
Note: パスに空白が含まれる場合は、二重引用符( " )で囲みます。 例) regsvr32 "C:\Document and Settings\foo\PD_OCX\xxx.ocx"
登録後に OCX ファイルを移動してしまうと見つけられなくなり起動できなくなりますのでご注意を。
|
*1 - GTL_PD_OCX | GTR_PD_OCX | GTR2_PD_OCX
5.2. 操作キーの設定
メモ帳などのテキストエディタで LTU.conf を開いて編集します。以下ような書式(XML)になっています。
Motec テーマの現バージョンで有効なトリガーは、trigger00-03, trigger98-99 の6個です。
Trigger00 id="1" key="0" // スイッチ
Trigger01 id="1" key="1" // バックライトスイッチ
Trigger02 id="1" key="2" // セッション表示モード切替スイッチ
Trigger03 id="1" key="3" // ボトム表示モード切替スイッチ
Trigger98 id="1" key="4" // フルスクリーン切替
Trigger99 id="1" key="5" // 終了
|
Note: id がデバイス番号、key がキー/ボタン番号です。
この値を調べるには、Support\Tool フォルダにある KeyConfig.exe を使用します。
|
KeyConfig.exe (Support\Tool\KeyConfig.exe)
起動した状態で、希望するデバイス*2 のボタンやキーを押すと、(id, key) が表示されます。
id と key の組み合わせがわかったら、LTU.conf へ記入します。
Trigger00 id="0" key="38"
|
*2 - キーボードやゲームパッド, ジョイスティック, ハンドルコントローラなど
5.3. ディスプレイ (DCU.exe) を異なるPCで動作させる
送信先IPアドレスの設定が必要です。メモ帳などのテキストエディタで LTU.conf を開いて編集します。DestinationIPAddress へ DCU.exe を起動する PC の IP アドレスを記入します。
DestinationIPAddress192.168.0.3/DestinationIPAddress 例) 192.168.0.3
|
|
Note: 面倒なら192.168.0.255 とか 192.168.1.255 でも構いません。興味ある方は"ブロードキャストアドレス"で検索してみて。
|
IPアドレスを調べる
スタート -> ファイル名を指定して実行 -> 名前のテキストボックスへ cmd と入力して OK をクリック
ipconfig と入力し retrun キーを押します。すると下記の表示が出ます。この場合 192.168.0.3 が IP アドレスになります。
Ethernet adapter ローカル エリア接続 1:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.0.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
|
6. 操作方法
6.1. LTU.exe
4. で解凍/展開したフォルダの中の LTU フォルダの中に LTU.exe がありますので、アイコンをダブルクリックして起動します。起動すると画面右下のタスクトレイに、赤い四角のアイコンが表示されます。
|
Note: Windows Vista をお使いの場合、LTU.exe は管理者として実行する必要があります。(OCX コントロール利用のため)
|
タスクトレイのアイコン上で右クリックすると、コンテキストメニューが表示されます。まずゲーム選択メニューから GTR2 を選んでみてください。選択すると再起動します。(ゲーム選択あるいは、言語設定を変更すると、自動的に再起動するようになっています。)
スタートするには、タスクトレイのアイコンを右クリックし、スタートをクリックします。するとタスクトレイのアイコンがグリーンに変わり、ゲームからのデータ待受け状態となります。
終了するには、タスクトレイのアイコンを右クリックして、終了を選びます。(もしくは、trigger99 に設定した、ボタン/キーを押します。)
6.2. DCU.exe
4. で解凍/展開したフォルダの中の DCU フォルダの中に DCU.exe がありますので、アイコンをダブルクリックして起動します。正常に起動すると味気ないモーテックの初期画面が表示されます。
ウインドウがアクティブな状態で F11 キー(または、Trigger98に割り当てたキー/ボタン)を押すとフルスクリーンに、フルスクリーン状態で押すと元のサイズへ戻ります。
終了するには Ctrl + Q を押すか、trigger99 に設定した、ボタン/キーを押します。
6.3. Motec.dll
先ほど設定したモーテックのスイッチに割り当てたキー/ボタン(Trigger00)を押してモーテックを起動します。DCU.exe がちゃんとトリガーを受信できたら、ボトムラインに "ADL2 ver0.9.2"と表示されモーテックが起動します。もう一度押すと、"SHUTDOWN ADL2" と表示し停止します。
|
Note: もしここで表示されない場合は、トリガーを受信できてないか(Firewall等)、LTU.conf のキー設定が間違っているかもしれません。もう一度ゆっくりと設定を見直してください。
|
モーテックが ON の状態で、ゲーム内のイグニッションが ON になると(乗車してエンジンがかかった状態)データ表示が始まります。
バックライト表示切替、セッション表示切替、ボトム表示切替 の操作もモーテックが ON の時のみ動作します。
セッションモード (各モードで表示するセンサーは Motec.conf で選択できます。)
- Practice
- Warm Up
- Race
- Analysis (未使用)
ボトムモード
- Engine RPM
- Engine (Engine Water Temp, Engine OIL Temp)
- TireTemp (FR, FL, RR, RL)
- BrakeTemp (FR, FL, RR, RL)
- TirePressure (FR, FL, RR, RL)
- Position (Position, Lap Count)
- LastLapTime
- BestLapTime
- DriverInputs (Throttle Position, Brake Position)
- Blank
|
Note: ラップ更新時や各種警告発生時にはボトムラインが上書きモードになりますが、その時ボトム表示切替ボタンを押すと、上書きモードを解除になり、上書き前のモード表示に戻ります。
|
7. 設定ファイル
7.1. LTU.conf - LTU\LTU.conf
?xml version="1.0" encoding="utf-8"?
configurations version="1.0"
UseSystemLocaletrue/UseSystemLocale // OS の言語設定を使用するかどうか (true or false)
LocaleId1041/LocaleId // ロケールID
LogModeSilent/LogMode // エラーログ出力モード
LastTargetGTR2/LastTarget // 最後に選択されていたゲームタイトル
GTLRoot / // 未実装
GTRRoot / // 未実装
GTR2Root / // 未実装
SoundEffectsfalse/SoundEffects // 未実装
NetworkMonitoringfalse/NetworkMonitoring // 未実装
MaxDevices3/MaxDevices // 監視する入力デバイスの数
LoggingInterval50/LoggingInterval // ログ採取の間隔 (ミリ秒)
TriggerInterval50/TriggerInterval // トリガー監視の間隔 (ミリ秒)
DestinationIPAddress127.0.0.1/DestinationIPAddress // データ送信先IPアドレス (127.0.0.1)
DestinationPort165534/DestinationPort1 // データ送信ポート1 (udp 49152-65535)
DestinationPort265535/DestinationPort2 // データ送信ポート2 (udp 49152-65535)
Trigger00 id="1" key="0" / // トリガーキー
Trigger01 id="1" key="1" / // トリガーキー
Trigger02 id="1" key="2" / // トリガーキー
Trigger03 id="1" key="3" / // トリガーキー
Trigger04 id="1" key="4" / // トリガーキー
Trigger05 id="1" key="5" / // トリガーキー
Trigger06 id="1" key="6" / // トリガーキー
Trigger07 id="1" key="7" / // トリガーキー
Trigger08 id="1" key="8" / // トリガーキー
Trigger09 id="1" key="9" / // トリガーキー
Trigger98 id="1" key="10" / // トリガーキー
Trigger99 id="1" key="11" / // トリガーキー
/configurations
|
7.2. DCU.conf - DCU\DCU.conf
?xml version="1.0" encoding="utf-8"?
configurations
ShowLastPositiontrue/ShowLastPosition // 前回終了時の位置へ表示するかどうか (true or false)
PrimaryResolution // プライマリモニタの解像度
Width0/Width
Height0/Height
/PrimaryResolution
SecondaryResolution // セカンダリモニタの解像度
Width0/Width
Height0/Height
/SecondaryResolution
LastLocation // 前回終了時の位置
X0/X
Y0/Y
/LastLocation
ReceivePort165534/ReceivePort1 // データ受信ポート1 (udp 49152-65535)
ReceivePort265535/ReceivePort2 // データ受信ポート2 (udp 49152-65535)
/configurations
|
7.3. Motec.conf - DCU\Themes\Motec.conf
?xml version="1.0" encoding="utf-8"?
configurations
GearNeutralMinus/GearNeutral // ニュートラルギアの表示文字 ( Zero(0), Minus(-), NString(N) )
RpmPeakHoldtrue/RpmPeakHold // RPMピークホールド (true or false)
RpmPeakHoldDuration1500/RpmPeakHoldDuration // RPMピークホールドの表示の時間 (ミリ秒)
ShowRevLimitSegmentfalse/ShowRevLimitSegment // レブリミットセグメントの常時点灯 (true or false)
LapBeaconOverridetrue/LapBeaconOverride // ラップ更新時のボトムラインへの通知 (true or false)
LapBeaconOverrideDuration250/LapBeaconOverrideDuration // ラップ更新時のボトムライン点滅間隔 (ミリ秒)
LowFuelOverridetrue/LowFuelOverride // 燃料残量警告時にボトムラインへの通知 (true or false)
LowFuelAlarmtrue/LowFuelAlarm // 燃料残量警告 (true or false)
LowFuelThreshold5/LowFuelThreshold // 燃料残量警告閾値 (リットル)
// プラクティスセッションモード
Practice
LeftSpeed/Left // 左側ディスプレイに表示するセンサー
RightLapTime/Right // 右側ディスプレイに表示するセンサー
/Practice
// レースセッションモード
Race
LeftLapCount/Left // 左側ディスプレイに表示するセンサー
RightEngineRpm/Right // 右側ディスプレイに表示するセンサー
/Race
// ウォームアップセッションモード
WarmUp
LeftEngineTemp/Left // 左側ディスプレイに表示するセンサー
RightOilTemp/Right // 右側ディスプレイに表示するセンサー
/WarmUp
ShiftLightPoint0.94/ShiftLightPoint // シフトライトポイント (%) 未実装
/configurations
// 左ディスプレイに使用できるセンサー [ OilTemp, EngineTemp, EngineRpm, LapTime, LapCount, Speed, MinSpeed*3 ]
// 右ディスプレイに使用できるセンサー [ OilTemp, EngineTemp, EngineRpm, LapTime, LapCount, Speed, MaxSpeed*3 ]
*3 - 本バージョンでは未実装です。
|