はじめに
glslがあれば、Flash CC(Animate CC)が出来ることは何でもできます。そう、理論上はね。
但し、Flash CC(Animate CC)の機能を自分glslで実装する必要があります。
これはFlasherのためのメモです。
イージング関数を使うかどうかで、アニメーションの見栄えがぐっと変わってきます。
尚、glsl自体は状態の保存が出来ないので、動画の生成には向いていません。
イージング関数
イージング関数早見表
glslによるイージング関数の実装方法のサンプルはこちら
こちらで用意されているイージング関数は入力される引数tが0~1の間になっています。
というのも、開始時間を0秒、終了時間を1秒とすると、例えば、easeInCubicはt^3ですがt=1のときに返り値が1になって都合がいいからですね。
但し、アニメーションの時間が1秒ジャストである場合には良いのですが、例えば2秒とかになった場合にこのままだと使えません。
float linearstep(float begin, float end, float t) {
return clamp((t - begin) / (end - begin), 0.0, 1.0);
}
そこで、アニメーションの秒数が1秒ではない場合、linearstepという関数を使って任意の時間を0~1に置き換えてから各イージング関数を使います。
easeInCubic(linearstep(5.0, 5.25, t)) * 2.0;
そして、アニメーション速度を変更したい場合は、全体を掛けたり割ったりすればいいですね
ライブラリはこちら