KNIGHT2000にはEBS(緊急ブレーキシステム)というのがあります。
まぁ、ダサいですよね。それが好きですが。(笑)
このパカッと飛び出してくるアニメーションを作るところまではよかったのですが、ここで問題が。
これまでのアニメーション実装はすべてINPUT(アニメーション制御のためのインプット情報)が一つしかありませんでした。速度とか、横Gとか、アクセル・ブレーキとか・・・。
しかし、EBSはSPMが動いている状態で発動します。ですが、INPUTが一つしかないため、INPUT=BRAKEとすると、SPMではない通常モードでもEBSのアニメーションが動いてしまう・・・。
これは困った・・・。ということでいつものwiki頼みでまた読んでいると、あるじゃないですか!これです。
ということで、2つの条件をINPUTにしてアニメーションを動かす方法の覚書です。
このページの下の方に行くと
More complex expressions
With CSP 0.1.77 it is now possible to have inputs referring to other inputs and using expressions. First of all, to refer to another input you can create new shared inputs:
というセクションがあります。どうやらCSPの0.1.77から実装されているもので、INPUT情報にほかのインプット情報を加えられるとあります。
そして、サンプルを見ると、INPUTに「calc:」という文字が。
これはもしかすると、複数のインプット情報を演算処理できるのでは?
で、KNIGHT2000のEBSの設定はextension/ext_config.iniに以下を追記しました。
; EBS
[ANIMATION_3]
FILE=ebs.ksanim
TIME= 0.5
INPUT = "calc:(BRAKE * EXTRA_D)"
INPUT_AS_PROGRESS = 0
INPUT_LUT = (|0.5=0 | 0.7=1|)
ebs.ksanimはEBSのアニメーション用のksanimファイルです。
ポイントになるのは、INPUTの行です。
これは、BRAKEとEXTRA_Dの乗算をしています。EXTRA_DはSPMの切り替えに使っています。SPMモードがOFFだと0、ONだと1になります。それにBRAKEのINPUT(踏まないと0、ブレーキペダルベタ踏みが1)をかけるので、SPMがONの時だけ、BRAKEのINPUTがANIMATION_3に渡されることになります。
これは便利ですね~!いろいろ応用できると思います。
これを反映した結果はこのようになります。