今度は車modにワイパーのアニメーションを追加です。
blenderでワイパー部分を切り出してオブジェクトを作成して、これを動かすための設定を探しました。
最初は
CSPの機能でワイパーを追加する方法【Assetto Corsa】 | shinのmodについてなんかかく
を見ながらトライしていたのですが、
・普通ワイパーの可動域は3か所ありますが、根元の1か所でしか制御できない
・最後の注意書き※4にあるラバー部分の認識ができないというエラーが発生
で、結局設定ができませんでした。
ほかの方法を探したところ、blenderでワイパーアニメーションを設定して、ksanimで取り込む方法がありました。
How to Animate Car Wipers in Blender | Assetto Corsa Modding Tutorial - YouTube
この方法だと、ワイパーの可動域にエンプティを追加していけるので、フロントガラスに合わせやすいです。
ワイパーのアニメーション設定ができて、ゲーム内でもワイパーが動くことは確認できました。ですが、雨が拭き取れません。(ワイパーの意味がない)
問題は2つ。
・そもそもフロントガラスに雨がついていない・・・。
・ついた雨粒が拭き取れない
【そもそもフロントガラスに雨がついていない】
車の外側から見ると雨粒はフロントガラスについていますが、車内から見ると、
フロントガラス(や横の窓も)には雨粒が付きません。
調べてみると、3Dのモデリングでは、ちゃんと表と裏を両方用意しないといけないとのこと。つまりついているフロントガラスは外側だけしかなく、内側のガラスがないので、車内から見ると”フロントガラスが無い”状態になっているのです。
そこで、フロントガラスを複製し、内側用を用意します。
このままだと、社外側にテクスチャが張り付いたガラスが2枚になってしまうので、内側用のガラスのテクスチャは車内側に貼りつくように設定を変えます。
↑の通り、法線を表示して、法線を反転させると車内側にテクスチャが張り付くようになります。
これで、車内側から見てもフロントガラスに雨粒がつくようになりました。
内側用のガラスオブジェクトの法線を表示させるとこのように車内側に青い線が伸びている状態になっていればOKです。
【ついた雨粒が拭き取れない】
ksanimでワイパーアニメーションは実装できましたが、CSPの雨表現とリンクできていないのが原因のようです。
アニメーションで使ったワイパーのオブジェクトがワイパーだよって教える設定が必要です。
ext_config.iniに追記します。
;Wiper
[WIPERS_TRACE_...]
SURFACE = pon_transamgta_87_cockpit_glassF_window___163_vertices__e34cc46
WIPERS = wiperLRubber, wiperRRubber
SURFACEはフロントガラスのオブジェクト名を設定
WIPERSはワイパーのオブジェクト名を設定(私はワイパーのラバー部分を設定してます)
ファイルを保存してゲームに戻ると、ちゃんとワイパーが雨粒を拭き取ってくれるようになりました!