takeyohのおぼえがき

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

ext_config.iniのセクション内で計算する。

通常いろんな演算はlua scriptの中で実行することが多いと思いますが、今回はext_config.iniの中で計算する必要があって、調べてできたので覚書です。

およそいろんなパラメータは数字の設定で直接記入することが多いと思います。
例えば、色の指定は、青なら、
COLOR=0, 0, 255, 1
のように。

そして、一つの変数に色情報を設定して、複数のセクションで利用する場合は、
[DEFAULTS]セクションで例えば

[DEFAULTS]
LightColor=0,0,255

と書いて、それを使いたい別のセクションでは

COLOR=$LightColor , 1

と書きます。最後の1は明るさの調整ですね。
これをやっておくと、LightColorの設定を変えるだけで、全体の色を簡単に変えることできるようになります。

で本題の計算です。今回は、ウーハーの光の点滅の周期を音楽のBPMに合わせるというものです。
上記の変数に計算結果を入れて対応することもできるのですが、どうせならBPMで設定できるようにしたい!(それの方がわかりやすい!)
BPMを自動で計算してくれると嬉しいのですが、さすがにそれはできないので、音楽のBPMは自分で計測します。
続いて[DEFAULTS]セクションに

[DEFAULTS]
BPM = 115

と書いて、BPMの変数を設定します。
続いて、光を点滅させるセクションは以下のように書きます。

;; illumination light
[EMISSIVE_EXTRA_A_...]
NAME=illumi,illumi2,illumi3,alphard.040,doorLF_illumi,doorRF_illumi
COLOR = $LightColor,2
LAG = 0.5
SIMULATE_HEATING = 0.5
BLINKING_PATTERN = (|0=1|0.5=0|)
BLINKING_DURATION = $"60/$BPM"

BLINKING_PATTERNは0.5秒間点灯して、あとは消灯という単純なパターンを設定してます。
ポイントはその次のBLINKING_DURATION。これで点滅の間隔が調整できますが、このように記述すると、60をBPMの値で割った数字が入ります。これで、音楽のスピードにあった点滅感覚になるってわけですね。

実はこの設定、ANIMATIONなどにも使えます。例えば、スピーカーコーンを動かすアニメーションksanimをつくっておいて、

[ANIMATION_...]
FILE=car_SPEAKER.ksanim
TIME= $"60/$BPM"
LOOP_WHILE_ACTIVE = 1
BIND_TO_EXTRA_A=1

と設定すると、これまた音楽のテンポに合わせてコーンが動くようになります。

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