takeyohのおぼえがき

気になったこと、試したことの記録です。

窓ガラス内側の反射設定(窓の汚れ?)

初心に立ち返り、assettocorsaのパイプライン(mod作成のマニュアル)を見て、窓関連の記述があったので、実装してみました。
パイプラインのPDFはassettocorsaのゲームがインストールされているフォルダ内にあります。

assettocorsa\sdk\dev\car_pipeline_2.0rev\AC_Pipeline_PUB_Rev2.0.pdf

今回は、窓ガラス内側の反射設定です。
Kunosの車両とかで走ると、逆光になった時、窓ガラスに汚れが見えると思います。あれです。
KINGHT2000にも実装はしていたのですが、覚書には書いてなかったので、メモします。
パイプラインのこのページになります。

前提として、実装するcar modに内側の窓ガラスのオブジェクトが存在している必要があります。
雨対応やワイパー実装している物であれば、窓ガラスは必ず外側と内側の2つが存在しています。
それぞれ面の向き(法線)が外向き、内向きになっています。
今回は、内側の窓ガラスに実装します。

blenderでは、内側の窓ガラスのマテリアルを用意し設定します。
パイプラインではINT_GLASSというマテリアル名になってますね。
今回のスープラ実装では、glass_innerという名前になっています。

そして、内側の窓ガラスに貼るテクスチャファイルを用意します。
今回は、Kunosの車から、INT_Glass_Windscreen.ddsというファイルを拝借してきました。
上記のマテリアルにこのテクスチャファイルを設定し、UVマッピングします。

この例では、単純にマップして、大きさだけ調整してますが、上下に引き延ばせば、もう少し広い範囲の模様が反映できるかと思います。

設定したら、fbxでエクスポートして(いつものとおりです。)、ksEditorで読み込みます。
パイプラインの説明に書かれている通り、内側の窓ガラスのマテリアル(私の場合はglass_inner)の設定を以下の様にします。

ksWindscreenを設定する必要があります。(内側の窓ガラスはReflectionではなく、これにしておくとよい。ワイパー作成の時も)
BlendModeはeAlphaBlend。あと、これを設定した内側の窓のオブジェクトにおいて、IsTransparentをTrueに変更します。(透過設定ですね)

設定後、kn5を作成し、car modファイルに入れて、ゲーム起動するとこんなかんじになります。
窓の汚れが逆光で反射しています。若干見えにくくなりますが、雰囲気はよくなりますね。

/* -----codeの行番号----- */