takeyohのおぼえがき

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

流れるウィンカー

アルファードといえば、流れるウィンカー?だと思ったので、試しに作ってみました。その覚書(というほどでもないです。)

流れるウィンカーはCSPの機能としてすでに実装されていますので、必要なオブジェクトを用意して設定するだけで動きます。
説明は公式WIKIです。

github.com

こちらのページの「Animated turn signals」に書いてある通りに設定すればよいだけです。以上!(笑)

と、それだけでは何なので、今回のアルファードの例ですが・・・。
まず、車のモデルで、ウィンカーとして光るオブジェクトをいくつかに分割します。

この図では、左前方のウインカーオブジェクトを例にしており、blinkerLF_0からblinkerLF_6という7つのオブジェクトに分かれています。
これはもともと一つのオブジェクトだったのですが、このオブジェクトの頂点部分でいくつかに分割しました。
そしてオブジェクト名を、光る流れの順(点灯させたい順)に「名前_数字」という名前にします。
上記の例ではblinkerLFという名前にして光る淳にblinkerLF_0, blinkerLF_1, .... , blinkerLF_6という順です。
この時、数字は必ず一桁数字からスタートします。00とか001とかの数字はNGです。

続いて、ext_config.iniでの左前方ウインカーの設定はこの通りです。

[EMISSIVE_TURNSIGNAL_LEFT_0]
RANGE_START_INDEX = 0
RANGE_END_INDEX = 6
RANGE_PREFIX = blinkerLF_
COLOR=255,120,50,1
LAG=0.5
SIMULATE_HEATING=0
CAST_LIGHT=1
LOCATION = FRONT

いつもはNAME=で光らせるオブジェクトを設定しますが、その代わりに3つのパラメータに書き換えます。
RANGE_PREFIX は上記でいうblinkerLF_のような名前の共通部分を描きます。
RANGE_START_INDEXは始まりの数字。上記例では0からスタートするので0を設定。
RANGE_END_INDEXは終わりの数字。上記例では6までありましたので、6を設定。
これだけで、勝手にウィンカーが流れて点灯するようになります。簡単ですね!

ちなみにこれは頑張って、光る順に並べて定義しても動きます。
その場合はNAMEの代わりに以下の一行です。

RANGE_NAMES = blinkerLF_0, blinker_LF_1, (以下続けて記述)

なので、この順に並べて定義すればオブジェクト名がバラバラでも設定は可能です。
が、あとでややこしくなるし、RANGE_PREFIXで設定する方がスマートだと思います。

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