AssettoCorsaの挙動設定等の仕組みを調べたいときや参考にしたい際に、KN5やACDの展開がいちいち面倒臭かったので、コマンドラインで動くコンバータの開発がてらにヘルパーを作ってみました。
KunosSDK KN5/ACD 展開ヘルパー

AssettoCorsaの挙動設定等の仕組みを調べたいときや参考にしたい際に、KN5やACDの展開がいちいち面倒臭かったので、コマンドラインで動くコンバータの開発がてらにヘルパーを作ってみました。
rFactorといえば2005年にリリースされてから早10年が経ってしまった、PCレーシングゲーマーにはおなじみの「老舗」シミュレーターですね。
最近になってrFactorを使用したシミュレーターショップが増えてきたこともあって、日本国内での認知度もかなり上がってきているようです。
すでに2作目の「rFactor2」が3年前にリリースされましたが、根強いファンに支えられ、今でも多くのMODがrFactor1向けに開発され続けています。
rFactor1のインターフェースは、AssettoCorsaのようにUI(ランチャー)テーマを自作・改造することが出来、MOD毎にオリジナルの変更が加えられていたり(背景に動画が再生されたりビジュアルイメージが変わったり)するのですが、標準状態だと個人的にはかなり使い勝手が悪く、兼ねてより全面改修したいと考えていました。
インターフェースの設定データ「OSC(Options Screens Configuration File)」はテキストファイルとして編集が可能になっており、ISI独自のフォーマットで記述されています。
しかしながらその記述のルール(仕様)が不明瞭な上に、オンライン各所のコミュニティ上にも情報が無く、かなり冗長な記述になっていて、とてもテキストエディターで編集できるような物ではありませんでした…
という事で、UIデザインエディターを作り始めてみました。
AssettoCorsaのLauncherは、コマンドライン引数を設定することによって「開発モード」と「翻訳モード」に設定することが出来るようになっています。
Themeのカスタマイズなどにお役立て頂ければと思いますので、今回はその設定方法や操作について解説します。
Defaultテーマファイルを複製して開発テスト用のJSをゴリゴリ書いて、Launcher上にWebGLレンダラーを実装させる所まで成功しました。
但し、WebWorkerで実装したKN5Analyzerは動きませんでした…orz
KN5用のマテリアルをまだ実装していないので、取り急ぎワイヤーフレームで描画確認しています。
動作も60fpsで安定していて結構軽いです。(PCのスペックに依存するので何とも言えませんが…)
先日KN5ファイルフォーマットの解析でプレビューに用いましたが、KN5を解析してThree.jsでレンダリングするためのKN5Loader.jsを作ってます。
KN5の解析はファイルサイズも大きく処理に時間がかかるため、WebWorkerで並行処理を実装してみました。
DDSLoader.jsの拡張もしてKN5に含まれるテクスチャは(GTR35しか試していませんが)全部読み込めたので、Kunosのシェーダープロパティに基づくテクスチャのマルチマッピングもとりあえずShaderMaterialでそれっぽく見えるように実装してみました。
ただ、マルチマッピング以外の処理を実装していないため、環境光による陰影や、シャドウマッピング、深度バッファなどが反映されません。
Three.jsのリポジトリにDDS Loaderがあるのですが、DXT1,?DXT3, DXT5, 32bit非圧縮ARGBの4種類のフォーマットのパーサしか実装されていません。
そのため、24bit/16bit非圧縮RGBや、NormalMap等で用いられる16bit非圧縮LuminanceAlphaFormatなどを読み込むことが出来ません。
このままではKN5に含まれるNormalMapが描画できなかったりするので、既存のDDS Loaderに追加実装する形でサポートしてみました。