takeyohのおぼえがき

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

横Gに応じてアニメーション

車ではあまり感じませんが、今回ホバーボードをさくせいしてみて思ったことが。

左右に曲がるとき、ボードは傾きますよね。バイクとかもそうですが。

これを表現できないかと調べてみたので、覚書です。

blenderで動かしたいオブジェクトをまとめて一つのエンプティに入れ、そのエンプティにアニメーションを設定します。

で、アニメーションをfbxでエクスポート。

ksEditorでkn5を作成。この時fbx animationで、先ほど作ったアニメーション用fbxを読み込む。→ksanimファイルが生成される。

kn5本体をcar modフォルダに、生成されたksanimファイルをanimationsフォルダにコピー。

extension/ext_config.iniに以下を追加。

[ANIMATION_...]
INPUT = G_FORCE
FILE = g_animation.ksanim
INPUT_SELECTOR=X
INPUT_AS_PROGRESS = 1
INPUT_LUT = (|-5=1.0|0=0.5 | 5=0.0 |)
INPUT_LAG_UP = 0.9
INPUT_LAG_DOWN = 0.95

G_FORCEは重力をインプットにするってことですね。

FILEは先ほど作成したksanimファイルを指定します。

INPUT_SELECTORは重力の働く方向(Xは横向き)

INPUT_LUTはインプットとアニメーションのポジションを紐づけてます。

blenderのアニメーション設定ではマイナスの時間設定がないです。

アニメーションフレームの真ん中(全体が50フレームなら25フレーム目)が、横G=0ってことですね。

ちなみにblender上でみるとこんな感じになります。

25フレーム目が真ん中(アニメーション全体を50フレームにしてます)

右にGがかかると、0フレームに近づくので、ボードは左に傾ける。

左へのGは逆に50フレーム目の方に動くので、ボードは右に傾ける。。

 

これらを設定して、走らせてみるとこうなります。

youtu.be

右左に曲がるときにボードが傾いています。

でも、これだとドライバは傾かないんです。ドライバも傾けるいい方法ってないですかね?

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