myara CG blog

CG Design Blog. Thoughts, experiments and experiences.

SI | mMirrorFCurve Fカーブのコピーミラー

お久しぶりです!

最近色々あって、ブログは全く更新出来ませんでしたが、
こないだ書いたプラグインを公開します。

Fカーブをコピーして、ミラーするツールです。

mMirrorFCurve from myara on Vimeo.



左右対称のモーションを付けている時に左側だけやって、
カーブのキーを右側にコピぺして、X軸に「-1 *」を掛けるとモーションが反転されます。

この「-1*」機能は結構便利なんですけど、これを1クリックでやりたくてスクリプトを書き始めました。


まずは、Fカーブの取得:


var fc = obj1.posx.sources;
var fc = fc(fc.count -1);


SI メールリストで誰かがこんなやり方をメールで公開していたので、試してみました。
コンパクトで良いね。


次はキーのコピー

CopyKeys と PasteKeys でやっていましたが、キーの選択コマンドも必要らしいです。 
eX-SI ブログ
よく分からないけど、一応 SelectKeysInTimespan も使っています。


そして、反転ですね。

キーの数値に -1 を掛けると、大体反転されますが、Fカーブのハンドルが反転されません!

マニュアルを探って、色々試してみてたら、LeftTanY で キーのタンジェントの取得が出来ました。
こいつを反転 (* -1) すればどうなるのかな~って試してみたら、出来ました。

大体こんな感じになります。

k = コピー先のキー
k0 = コピー元のキー


k.value = - k0.value
k.LeftTanY = - k0.LeftTanY
k.LeftTanX = k0.LeftTanX
k.Left = - k0.Left
k.RightTanY = - k0.RightTanY
k.RightTanX = k0.RightTanX
k.Right = - k0.Right
k.Interpolation = k0.Interpolation


念のためにInterpolationやLeftとRightもコピーしています。
そしてよく分からないTanXも。

value のコピーはあまり意味がない気がしますが、最初の駄目スクリプトから残っています。


これで上手く行っているっぽいので、とりあえず公開しちゃいます。

それじゃ、またやる気が出るまで。


DOWNLOAD
ミスってたところがあったので、修正し最アップしました。

Comments

Post a comment


Only the blog author may view the comment.

Trackbacks

Trackbacks URL
http://myara.blog.fc2.com/tb.php/166-f01771c4
Use trackback on this entry.