ETS2 EDtracker+OpentrackでTrackIRエミュレートを試す

どうも、。け~えすです。

前回はEDtrackerの作成などを書きましたが、今回はEDtrackerにOpentrackって言うアプリを連動させて動作させようと思います。
Opentrackを使うことで、動作設定をもっと細かく指定したり、TrackIRとしてふるまわせたり出来るので、色々と捗ると思います。



Opentrackってなに?

今回試すのはヘッドトラッキング・フェイストラッキング用のフリーソフトのOpentrackです。 同名の物で鉄道シミュレーターがありますが、そっちではありません。

トラッキング系のアプリ・ドライバは何種類かありまして、FreeTrackやFaceTrackNoIRなどが有名です。 Vtuber向けの3teneやFeceRigにもフェイストラッキング機能が入ってますね。

Opentrackも同様のソフトなんですが、
・入力側はフェイストラック・ヘッドトラックの複数の機材に対応可能
・出力側はオリジナルプロトコルだけでなく、FreetrackやTrackIRのエミュレート機能や、フライトシミュ系の専用プロトコルにも一部対応してます。

EDtrackerもヘッドトラッキングですが、ジョイスティックのエミュレート機能しかなくTrackIRとしてゲームに認識されている訳ではありません。
なので、前回のETS2の設定でもコントローラーとして割り振って、ジョイスティックとして動かすようにしてました。 controlls.siiの書き換えもそのためです。

そこでOpentrackの入力側にEDtrackerを割り当て、Opentrackの機能を使ってTrackIRとして振舞うようにすることが可能になります。
EDtrackerの公式HPでもOpentrackが紹介されており、EDtrackerをOpentrackに対応させる方法が載ってます。

補足
Opentrackは6軸対応しているのですが、今回自分が作ったEDtrackerは3軸のみの対応です。
3次元移動(頭を前に動かして画面をズームするなどの、いわゆるx・y・z軸の移動)にはこの状態では対応出来ません。

OpentrackにEDtrackerを設定する

最初にOpentrackをダウンロードします。 公式HPはここ(リンク)です。
ダウンロードページ(リリース案内)のページは、ここ(リンク)になりますので、このページに飛んでください。

記事作成時はトップにVer.2.3.11.Beta3がありましたが、ベータ版ぽいので自分はリリース版を使いました。 下の方にスクロールするとVer2.3.10がありますので、そちらの下の方にexe版のリンクがあります。 こちらをDLしてPCにインストールしました。

インストールが終わったら、Opentrackを起動する前にEDtrackerをPCに接続し、EDtrackerGUIを起動します。
GUIが起動したら、下のスクショの赤枠の部分を変更します。

Yaw ScalingとPitch Scalingの数値を1.0にします。 Smoothingは適当でOKです。
Smoothing機能はEDtrackerGUIにしかないのですが、YawとPitchはOpentrack側で設定するので、スケーリングを切っておかないと細かい動作が出来なくなります。
必ずこの設定を行ってください。

上記設定が終わったらEDtrackerGUIを終了させて、EDtrackerをPCに接続した状態でOpentrackを起動させます。

Opentrack画面の説明

起動直後の画面はこんな感じです。

枠の色で解説していきますと

灰色
右側がヘッドトラックの動作状態を表示し、頭を動かすと絵が追従して回転する。 但しOpentrackをStartさせてないと動かない。
左側はWebカメラを使ったトラッキングを使う時に、カメラの画像を表示する部分。 EDtrackerを使う場合は、動作すると「No Camera」と文字が表示されます。

黒色
Opentrackが動作状態に入ったら動作する。 左側にEDtrackrから送られてくるヘッドトラックのデータが、右側はゲームに送られるヘッドトラックのデータをリアルタイムに表示します。

赤色
一番上が入力デバイスの設定。右側のハンマーの絵の所で選択したデバイスの設定を行う。
真ん中が出力プロトコルの設定。 右側で設定ができます。
一番下がフィルター設定。 今回は使用しておりません。

緑色
プロファイルファイルの選択を行う。 複数のiniを作れるので、ゲームごとに設定を分けることも可能。 右側の「Profile」がボタンになっており、新規作成、既存iniをコピー、iniを置いてあるフォルダを開くといった動作が出来ます。

青色
Option設定が可能。 ショートカットキーの割り当てや、ゲームへの紐づけなどの設定が可能。

黄色
マッピング設定。 ヘッドトラックの動作幅や移動量をここで設定する。

紫色
Opentrackの動作のON/OFFのボタン。 Opentrackを起動しても、ここのStartを押さないとヘッドトラッキングは動作しません

OpentrackをEDtracker用に設定する

新規Prifile作成

最初にProfileを新規で作ります。 default.iniがあるのですが、とりあえずETS2用に新しく作ってみましょう。
緑枠の左側のProfileボタンを押し、「Create new empty config」を押します。 別窓で名前の入力画面が出てきますので、ファイルネームを入力します。 とりあえず「ets2」としておきましょう。
その後緑枠の左側のリストにets2.iniが出てくると思いますので、それを選択しておいてください。

では設定に入っていきます。

入出力デバイスの設定

まず赤色の「Input」をJoystick inputにします。 変更したら右のハンマーの絵が描いてある設定ボタンを押します。

この画面が出てくると思います。 一番上のDeviceにEDtrackerを割り当ててください。EDtrackerと出てくる人や、自分みたいにArduino Leonardoと出てくる人もいますので間違わないでください。

MappingはX・Y・ZとRollはDisableにしてください。 EDtrackerはYaw・Pitch・Rollの3軸しか対応していないので、X・Y・Z軸は不要です。
また、RollはETS2だと使える部分が殆ど無いので念のためカットしてます。

YawとPitchですが、自分の場合はなぜか2番と3番で動いてます。 1番はどこに行った・・・
最初は1番と2番で設定してからOKを押して、メイン画面右下のStartを押してRaw tracker data(黒枠の左側)のYawとPitchの数値を見てください。(Startを押さないと数値が出ません。)
ここでYawだけしか数値が動かない場合は、頭を左右に振るときに数値が変化したのか、上下に振った時に数値が変化したのかを確認しましょう。
上記の状況と同じ場合は、さっきの設定画面を出してYawのaxisの番号#2に、Pitchの方を#3に変更してください。

YawとPitchが上手く行ったら、次は「Output」です。 ここは「freetrack 2.0 Enhanced」を選択し、右側の設定ボタンを押します。
別画面が出てきたら、上側のSelect interfaceの所を「Use TrackIR,hide FreeTrack」に設定します。
これで出力データがTrackIR相当に設定されます。

その下のFilterはリストの一番上の無記入を選択します。 使い方がよくわからないので、とりあえずフィルターを使わないようにしてます。

Option設定

次に「Option」を設定していきます。 Optionボタンを押すとこの画面が出てきます。

ショートカットの画面が出てくると思います。 赤色のCenterのショートカットは必ず設定しておいてください。
これはヘッドトラック情報にずれが出て、顔を正面に向けても画面が違う方向を向いてしまう状態をリセットするためのショートカットです。

EDtrackerにも物理ボタンでリセットボタンがありますが、これはEDtrackerからOpentrackにデータを送る方(つまり入力側の情報)をリセットするもので、OpentrackからETS2に送る方(出力プロトコル側)のデータがずれている場合は、このショートカットでしか修正できません。

その下の青色の枠はToggleです。 これはOpentrackの動作を一時的に止める・再開するをトグルで切り替えします。
ゲーム中に離席する時や、何か物を取るときに画面が不用意に動くときに、これを使って一時的に画面移動を停止する事が出来ます。
結構使うことは多いので、これも設定されることをお勧めします。

その他の項目は、記事制作時には試していないので割愛します。 すみません。

次に上のタブを 「Output」に変えます。

もしOpentrackを動作させた際に、首の左右の動きと画面の動きが逆になったとか、上下が逆になったってときは、赤枠の所にチェックを入れてください。 動作を反転させます。
問題が無い人はチェックを入れる必要はないので、この項目はスルーして下さい。

つぎの「Relative translation」は未検証なので割愛します。

最後に「Game detection」を設定します。
ここでゲームとiniを割り当てておくと、そのゲームを起動したときにOpentrackが自動的に動作を開始します(Startボタンを自動的に押してくれる)

この画面はすでに設定済みなんですが、最初であればこの項目は何も書かれてないと思います。
最初に赤枠の「+」ボタンを押します。 枠内に1行追加されるので、追加された行の青枠のボタンを押してください。
別窓が開きますので、ここでETS2のEXE(eurotruck2.exe)を割り当ててください。 32bitと64bitは別EXEなので、割り当てるEXEを間違わないようにしましょう。
割り当てたらOKを押してください。

別窓が消えてさっきの行の左側にeurotruck2.exeが表示されたと思います。 その右側(Profile)を押すとiniの選択画面が出ますので、ets2.iniを選択し、最後に右下のOKボタンを押してください。
これでOptionの設定は完了です。

Mapping画面の説明とETS2での動作確認

Opentrackで一番頭を悩ませる設定項目です。 ここで頭の動きとゲーム内の画面移動量を設定します。
まずは画面の紹介をします。

一番上にタブがあり、Yaw・Pitch等の設定を切り替え可能です。

下のグラフ画面に移動しますが、上側だけが青くなってます。 その下の緑枠にチェックを入れると、下側のグラフも青くなります。
注釈を入れていますが、上側のグラフが頭から右を向いた時の移動量で、下が頭を左に向けた際の移動量です。
チェックを外して上だけが青い場合は、上側は左右共用の設定となります。

また、グラフの縦軸と横軸ですが、縦軸がゲーム内の画面移動量(移動角度)で、横軸が自分の頭の移動量になります。
青枠のMAX Inputを変更すると横軸の角度を変更できます。 縦軸についてはこの状態で固定の様です。

デフォルトでは右上がりに赤い線が出てますが、これが実際に動く範囲となります。
とりあえずデフォルトのままでOKを押して、Mapping画面を閉じてください。
この状態でETS2を起動してみましょう。

先程のOption項目でETS2と紐づけしていれば、ETS2起動のタイミングで自動的にOpentrackがStartしています。
紐づけ設定をミスした場合や、紐づけしていない場合はStartボタンを自分で押してください。

ETS2起動後に運転画面まで移動し、実際に頭を振って上下左右の動きを追従するのか確認してみてください。

動きに問題があった場合
(EDtrackerが正常に動作している事・PCに接続済みであることが前提としての説明になります)

・左右にしか動かない場合や、上下にしか動かない、左右に動いても画面が上下に移動するなどの場合は、Inputのaxis設定がおかしいと思われます。

・全く動かない場合は、ETS2をいったん終了し、マイドキュメントのETS2フォルダを開きconfig.sii(Profileフォルダ内の方ではなく、ETS2フォルダのルートにあるもの)をメモ帳で開き、 「uset g_trackir "0"」になっていれば0を1に書き換えて保存してください。

補足:Opentrackを使った後にヘッドトラッキングをせずにETS2を遊んだ際に、マウスで画面移動が効かない場合があります。 そんな時はuset g_trackir "0"を確認してみてください。 1の場合はマウスが動かない事が多いです。

・「uset g_trackir "1"」でも動かない場合は、ETS2を起動していない状態でOpentrackをStartさせ、黒枠の数値(左側がEDtrackerからの入力・右側がOpentrackからETS2への出力)のYawとPitchが動いていることを確認してください。 動いていない場合はもう一度すべての設定を見直してください。

・前回の記事でEDtrackerのみでETS2のヘッドトラックを実際に試した人は、ETS2のコントローラー設定からEDtrackerを外してください。
その後ETS2を終了させ、そのプロフィールのフォルダにあるconfig.siiを開いて、前回書き換えた部分をデフォルトの状態に戻します。
デフォルトの記述は
 config_lines[172]: "mix trackiron `trackir.device.active?0`"
 config_lines[173]: "mix trackiryaw `trackir.device.position.yaw?0`"
 config_lines[174]: "mix trackirpitch `trackir.device.position.pitch?0`"
です。 


問題が無ければ一度画面の右端と左端に移動するように頭を振ってみてください。
思いっきり頭を振っても助手席側の窓ぐらいまでしか動かないと思いますし、そこまで頭を振るとゲーム画面が見えないところまで頭を曲げていると思います。
また、頭をまっすぐにしてても、小刻みに画面が揺れる方もいると思います。

このあたりを解消するために、先程のMapping設定があります。
次に実際にMapping設定を行っていこうと思います。

Mappingの設定方法

自分もまだ試行錯誤中ですので、基本的な使い方ぐらいしか説明できません。
それと、一番最後に自分がETS2で使っているMappingをお見せします。

Mapping設定を出してください。 上側のみ青色になっていますから、上側のグラフの赤線上に1か所左クリックしてみてください。

例として縦軸90・横軸90でクリックしてみました。 クリックしたところに小さな丸(ポイント)が追加され、線がこんな感じに変化してます。
このポイントはマウスでドラッグすると移動します。 ポイントを移動させると、それに伴って赤い線も変化していきます。

今度は縦軸60・横軸60にポイントを置いてみます。置いただけだと赤い線に変化はありませんが、この60・60にあるポイントを上にドラッグしてみます。

60・150に移動したところ、こんなラインに変化しました。 60・150から90・90のラインが曲線に変化しました。

次に60・150のポイントでマウスの右クリックをします。 ポイント上で右クリックするとそのポイントは消去されます。

 以上を簡単に説明すると、
・左クリックでポイントが追加され、ポイントに赤い線が移動してくる。
・右クリックでポイントが消去される
・ポイントはマウスでドラック可能
・ポイントとポイントの間のラインは、基本曲線で描かれる
となります。

このあたりが基本的な設定方法になりますので、これを踏まえて自分好みの移動量に設定していきましょう。
最初はなかなか思う様に設定できないと思いますが、少しずつコツコツを設定を積み重ねていきましょう。

最後に、私が現在使っている設定をお見せします。
Yaw

まず横軸の移動量を90度に変更しております。(赤枠部分)  画面中央のチェックを入れて、左右で設定を変えてます。

上側(右方向)
最初は0.00横にを広げて、正面を向いている時に画面が揺れにくいようにデッドゾーンを作りました。
右方向はちょうど助手席の窓がしっかりと見えるところで固定できるように、縦軸を50度でマックスにしてます。
後は自分の顔の移動量を決めるだけなので、18.00x50.00となりました。

下側(左方向)
内容としては右方向と同じで、目一杯左を向いても運転席の窓が見えるところまでの画面移動量にしてます。 もっと増やせば後方視点まで持っていけるのですが、普段後方視点のショートカットを設定して押しているので、そっちで対応するためにあえて運転席の窓までの移動量にしております。
 
Pitch

こちらもYawと考え方は一緒なのですが、最初は0.00で画面揺れを抑え、後は画面移動量を考えるだけでした。
上下について(特に下方向)はそんなに画面移動させることも無いと思ったので、結構ゆったり目の設定にしてます。
Pitchは画面移動量の変更できる(赤枠部分)ので、縦・横軸共に90度設定にしてます。

Rollは使うつもりが無かったので、Input設定Disableにしております。(そもそもETS2でRollが使えるのでしょうか・・・)


TrackIRを使っている、または使っていた人だと「特定の画面角度で一旦移動を止めて、その後さらに頭を振ったら移動し始める」ってカーブを作りたいと思われる人もいると思うのですが、近い形は何とかできました。
 
助手席側のミラーが見える縦軸の30度付近にポイントを複数個並べてみました。 これでも若干のカーブが発生してしまうので、実際に試すとミラー付近でちょっとドリフトしているような画面移動になります。

ポイント間を直線で結ぶ方法をご存知の方、コメントとかで教えていただけると助かります。


まだまだ自分自身が Opentrackを使いこなせてないので、あまり突っ込んだ内容を書けないのが心残りですが、現状で把握している部分はすべて書いたつもりです。
こちらの認識不足や勘違いで間違った内容を書いていることがありましたら、コメント等でご指摘ください。

今後何か解ればこの記事に追記したり、もしくは新規で記事を書くこともあると思います。
当Blogで書いていない項目に関する情報も、よかったらコメントやツイッターで教えてください。
よろしくお願い致します。


スポンサーリンク