ライトや各種灯火類を光らせるとき、オブジェクトをしていて光らせる(EMISSIVE設定をする)とオブジェクトが光を放ちますが、この時オブジェクト全体が光ってしまうので、ちょっと違和感が出ます。(まぁ、それでも良いのですが)
例として、こちらの画像のような感じですね。
上の絵がオブジェクトを発光させた場合ですが、全体が光っています。
一方、下の絵はライトのバルブがある部分を中心に光り方に濃淡があります。
これを実現しようということで、覚書です。
灯火類のEMISSIVE設定をCSPの拡張機能で設定しても良いと思いますが、より分かりやすくて簡単な方法ということで、ksEditorに機能を追加する方法があります。
使用するツールはこちら。(上記の絵もこのページのものです。)
こちらのツールをダウンロードして、assettocorsaのフォルダに展開すると、ksEditorのShaderに「ksPerPixelMultiMap_emissive」という項目が追加されます。
マテリアルに対してこのShaderを設定すると、ksPerPixelMultiMapと比べて、登録できる画像が5つに増えます。(txEmissiveが増える。)
このtxEmissiveは、extension機能でこのオブジェクトにEMISSIVEの設定を行ったとき、色のついた部分はその色で、黒い部分は光らないという制御ができます。
たとえば、コルト作成時のリフレクタの設定にこれを使ってみました。
5つ目にreflectorEmissive.ddsというファイルを設定していますが、その画像が下記の絵です。
(わかりやすくするため、緑のフレーム線が入っていますが、実際のddsファイルでは、緑のフレームを除いた画像になります。)
例えば、丸いライトに対して、放射状のグラデーションをつけると、中心部分が最も明るく、周りに行くほど暗くなっていきます。
また、ブレーキライト部分は赤、ウィンカー部分は黄色に塗っています。
このファイルを指定してkn5を作成し、灯火類についてext_config.iniでEMISSIVE設定をすると、このddsファイルで指定した色、明るさで光ります。
上記の設定反映の効果はこうなります。
灯火の光が反射するリフレクタ部分が、中央から縁に向けて徐々に暗くなっているのがわかりますでしょうか?(もっと上手に表現できればよかったですね。)