[Maya] アニメーションカーブのオフセット

エフェクトをアセット化したい場合など、一旦つけたアニメーションを手軽にオフセットしてやりたいことがあります。
あります、というかありました。あるんです。あるんです・・・!!
そういう時のネットワークのつなぎ方をメモ。
簡単なんでメモるまでもないんですが、一瞬トラップにかかったので一応。


まず画像を見て頂いた方が早いと思うので先にドン。
ネットワークは以下のようになります。

キャプチャがデカかったので画像だいぶ大きいです。サーセン。

簡単に解説。
prtGrpというのは適当なノードです。これがコントローラです。
今回はこれにoffsetFrameというアトリビュートを作って、それでオフセットを行うことにしました。

アニメーションカーブはinputに何か突っ込んでやるとそれがオフセットになります。
なのでそこにアニメーションカーブを突っ込んでやれば簡単にタイムリマップしたり出来るというわけなのです。
これを利用すれば簡単にアニメーションのオフセットが実現出来ます。
ドリブンキーです、まさに。
(厳密にはドリブンキーで使うAnimノードタイプと、通常のキーフレームアニメーションのAnimノードタイプは別なんですが、特に気にしないでもらってOKです。)

このネットワークだとtimeノードからの出力を足しているので、0ならばそのままタイムスライダーと同じ結果が返ってきます。
これならばイチイチ全部にキーを打たなくても必要なものだけ設定すれば良いのです。

その際、timeとオフセットを足すところでオフセットの値を正負反転しています。
僕が引っかかったのはここなのですが、ここをそのまま足してしまうと、時間が未来へ進んでしまいます。
思ったフレームよりも早く動いちゃうってことです。

通常1フレから始まるアニメーションを5フレからスタートさせたければ、
5フレの時点でアニメーションカーブへのインプットが1フレになっていればいいわけです。
時間を巻き戻してアニメーションカーブを騙すのです。スタートフレームを過去へ・・・!!

ただし5フレから、通常1フレスタートのアニメーションを再生したい場合、
オフセット値は-3に設定する必要があります。
もちろん直接値を入れてもいいのですが直感的ではないので、addDoubleLinearなどを使って値をアジャストしてあげると、
5と入力したら5フレから再生されるようになるので便利です。

と、これだけなんですが、、なんだかとても分かりづらい説明になってしまいました。
こういう地味なものの説明は難しい・・・。

ってでもこれは算数の問題なんで、まぁ各自理解してもらえればいいんじゃないですかね!!と全力で放り投げるテスト。

なぜMaya Assetを使わないかという点に関しては、僕がよくわかってない&覚えるほどのものでもなさそう、だからです:P

こんなクソ説明ですがお役に立ったら幸いです。
 
 
 
最近開発っぽいこととか全然やってないこともあって、メモっぽく書くことがほぼない本ブログです。
ネタが無ぇ!! 
しかしそろそろSiggraphも近づいてきたので、次書くのはH12のネタになりますかね。
今回は出し惜しみしてるんで何か良い感じのアップデートでもあるのかなと期待してます:D

コメントを残す

メールアドレスが公開されることはありません。