takeyohのおぼえがき

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

ウィンカーの設定方法

アセットコルサは標準機能ではウィンカー機能がありません。がCM(Content Manager)とCSP(Custom Shader Patch)を導入することで、ウィンカー機能を実装することができるようになります。ということで、ウィンカーの設定方法の覚書です。

 

CSPの導入方法は突撃アセットコルサさんのサイトがあったので、こちらを見てください。(突撃アセットコルサさん、いつもありがとうございます!)

ac.totsugeki.com

 

では、ウィンカーの設定方法です。

ウィンカーを実現するには、

「車のデータ(kn5)に、ウィンカーとして光らせるオブジェクトがある」

が前提となります。かつ、ウィンカーは左右独立して点灯させるため、右ウィンカーと左ウィンカーのオブジェクトが独立していることが前提です。

これが満たせていない車の場合は、車のモデルに光らせるオブジェクトを用意する必要があります。

オブジェクトの確認およびオブジェクト名の取得はカスタムショールームで可能です。

カスタムショールームを起動してウィンカー部分をクリックすると、ハイライトされた部分のオブジェクト名が表示されます。

(左ウインカーの例:ウィンカーのオブジェクト名はturnLightReflectorLR。)

(右ウィンカーの例:ウィンカーのオブジェクト名はturnLightReflectorRR。)

このように右左にそれぞれオブジェクトが存在する場合は、extensionの設定を追記することでウィンカーを点灯させることが出来るようになります。

オブジェクトが無い場合は、kn5の加工が必要になります。説明が複雑なので、いったんおいておきます。

 

ウィンカーの設定は、car modフォルダのextensionフォルダ内にあるext_config.iniに追記します。(無い場合はext_config.iniというテキストファイルを新しく作ります)

上記のturnLightReflectorLRとturnLightReflectorRRを点灯させる設定例は以下の通り。

[EMISSIVE_TURNSIGNAL_LEFT_...]
NAME=turnLightReflectorLR
COLOR=255,120,50,0.5
LAG=0
SIMULATE_HEATING=0
CAST_LIGHT=1
LOCATION = REAR

 

[EMISSIVE_TURNSIGNAL_RIGHT_...]
NAME=turnLightReflectorRR
COLOR=255,120,50,0.5
LAG=0
SIMULATE_HEATING=0
CAST_LIGHT=1
LOCATION = REAR

前半が左用、後半が右用です。

セクション名はEMISSIVE_TURNSIGNAL_....です。左ならLEFT、右ならRIGHTを続けて記載します。

NAMEは点灯させるオブジェクトの名前です。

COLORは光った時の色です。赤、緑、青の明るさと明るさの倍率で、4つの数字がカンマで区切られて並んでいます。

0が一番弱くて、255が一番強いので、上記例だと赤が255、緑が120、青が50なので、オレンジ色になります。倍率は0.5なので、全体の明るさが0.5倍になります。

LAGは点灯の遅延時間です。数字を大きくすると少し遅れて光るようになります。

CAST_LIGHT=1は光を地面へ反射させます。

LOCATIONはこのオブジェクトの光る方向です。後ろ向きのライトはREAR、前向きのライトはFRONTを設定します。

設定を保存し、ゲームを起動。ウィンカーを点けて、オブジェクトが光ればOKです。

光らないよ、ってときはいろんな要因があるのですが、よくあるパターンは、ウィンカーのオブジェクトの手前に別のオブジェクト(例えばライトのカバーとか)があって、それが後ろのオブジェクトを透過しない場合、とかでしょうか。

よくわからない場合や初めてお試しする場合は、一番外側に見えているオブジェクトの名前を設定して、意図したとおりの動きをするかを試してみるとよいです。

ext_config.iniの設定が間違っているのか、kn5内のオブジェクトの問題なのかの切り分けができます。

 

(アドバンスド編)

上記の設定は、設定したオブジェクトを光らせることができますが、普通光が発せられるとその周りがポワ~っと照らされますよね。

その雰囲気を出すには、LIGHT_EXTRAを追加します。

[LIGHT_EXTRA_...]
COLOR=255,120,50,5
DIFFUSE_CONCENTRATION=0.85
EXTERIOR_ONLY=0
INTERIOR_ONLY=0
AFFECTS_TRACK=1
FADE_AT=1
FADE_SMOOTH=1
POSITION=0.538229, 0.739542 ,-1.80
DIRECTION=0.0.0,0, -0.1
RANGE=0.06
RANGE_GRADIENT_OFFSET=0.1
SPECULAR_MULT=1
SPOT=250
SPOT_SHARPNESS=10
BOUND_TO=turnLightReflectorLR

 

[LIGHT_EXTRA_...]
COLOR=255,120,50,5
DIFFUSE_CONCENTRATION=0.85
EXTERIOR_ONLY=0
INTERIOR_ONLY=0
AFFECTS_TRACK=1
FADE_AT=1
FADE_SMOOTH=1
POSITION=-0.538229, 0.739542 ,-1.80
DIRECTION=0.0.0,0, -0.1
RANGE=0.06
RANGE_GRADIENT_OFFSET=0.1
SPECULAR_MULT=1
SPOT=250
SPOT_SHARPNESS=10
BOUND_TO=turnLightReflectorRR

同じく前半が左後ろ用、後半が右後ろ用です。

この設定は光らせるオブジェクトを指定するのではなく、光る場所を座標で設定し、どのオブジェクトと連動させるかで制御します。

いくつか設定がありますが、いろいろ試してもらうと効果はわかります。

特にポイントになりそうな部分だけ。

POSITIONは光源の場所を座標で指定します。X、Y、Zの3つの数字、単位はメートルです。

Xは横方向(中心が0とすると、右方向がマイナス、左方向がプラス)、Yは上下方向、Zは前後方向になります。

DIRECTIONは光源から光が発せられる方向です。こちらもX,Y,Zで指定します。上記例では、Zだけマイナスなので、後ろ方向に光を発することになります。

RANGEは光の強さ。大きくするほど照らす範囲が広くなります。

SPOTは照らす範囲。180にすれば、半球範囲のみ、360にすれば全方向を照らすようになります。照射方向を絞りたいときは数字を小さくします。

BOUND_TOは発光のオンオフを連動させる対象オブジェクトを設定します。上記例は、先ほどのウィンカーのオブジェクトを設定しているので、ウィンカーの点滅に合わせて、この光源も点滅するようになります。

 

 

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