Mot/HMotファイルの出力:Key行

 Keyは、
  "Key %.17g %.17g %d %.17g %.17g %.17g %.17g %.17g %.17g", val, time, shape, p1, p2, p3, p4, p5, p6 で、
  "Key val time shape T C B In Out 0" か、"Key val time shape InTime InVal OutTime OutVal Out 0"。
 後者のOutはゴミっぽいけど互換上残す。 p6は0固定で良い気がする(・з・)

 で、In/OutはshapeがHermiteの時のLWKEY_PARAM_0と1。
 shapeを一度Hermiteにしてp4,p5にkeyGet()した後に、shapeを本来の物に直してp1~p3/p4を取る事でMot/HMotと同じKeyデータになる。
 DStormのDevKitのcorve.cを参考にしても求められない気がする。 てか、私には導出出来なかった('ω`)

 一応、DevKit(curve.c)やSDK/Lay/ChanFilter/Interp.cのoutgoing()/incoming()のCase:TCBで求められる。
 精度53bit(FPUなら要変更、SSE2なら不要)、丸めをFPU:CHOP、SSE:TOWARD_ZEROで計算する事で15,6桁迄は合うようになる。
 精度と丸めが違ってもまぁ概ね合致するから、基本的にはそのままでも良いけど、0.5とかの切りの悪い値の時に0.49~98~とか0.50~01の誤差が出てくるから、テキストとして見た時に嫌んな感じ。 まぁ気分の問題。
 ただ、Envelope上の最初と最後のKeyに関してはLW自身による出力と大きく違う数値になる。
 始終点に掛かる補完値の算定方法は謎のまま('ω`)

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック