loop-animation

花の開閉Bloom

何重にも重なった花弁が外側の層から時間差で開いては閉じ、並べると花畑のように波打つループアニメーションです。

Canvas 2D で、図形を 1 つずつ計算して描いています。初期設定で再生しています。

何重にも重なった花弁が外側から時間差で開き、また閉じる。並べると花畑になる

このシーンで作る

パラメータ、色、エフェクトを変えて、GIF・APNG・WebP・MP4・WebM で書き出せます。

どう計算しているか

  1. 1つの層には「花弁の数」枚の花弁を等しい角度で並べ、各花弁はベジェ曲線(制御点で形を決める滑らかな曲線)で描きます。「花弁の形」で曲線の組み方が変わります。
  2. 「重ねる枚数」だけ層を作り、内側の層ほど小さくし、花弁が互い違いになるよう半枚ぶん角度をずらします。
  3. 開き具合は 0.5 − 0.5·cos(2π·e) で、閉じた状態から開いてまた閉じる山形の変化をします。これに合わせて花弁の長さ・幅・つぶれ具合、「開くときのひねり」による回転を変えます。
  4. 「層ごとの遅れ」で内側の層ほど遅れて開きます。「並べる数」を増やすと花を格子に並べ、中心からの距離などで開く時刻をずらします。
open = lerp(openMin, 1, 0.5 − 0.5·cos(2π·ease(fract(t − l·lag))))

ループがつながる理由

開き具合を作る 0.5 − 0.5·cos(2π·e) は e = 0 と e = 1 でどちらも 0 になり、ループの始めと終わりで必ず閉じた状態です。時間差は fract で巻き戻すので、どの層もどの花も1ループで1回ずつ開閉を終えます。

調整できるパラメータ

形

花弁の数3 〜 24(初期値 8)
重ねる枚数1 〜 8(初期値 4)
花弁の形丸い・尖った・ハート
並べる数(1辺)1 〜 8(初期値 1)
大きさ0.3 〜 1.3(初期値 0.9)
花芯オン/オフ(初期値 オン)

動き

閉じたときの開き0 〜 1(初期値 0.12)
層ごとの遅れ0 〜 0.2(初期値 0.06)
開くときのひねり0 〜 1(初期値 0.3)
位相のずれ方同時・放射・角度・渦巻き・斜め・横・縦・市松・ランダム
ずれ量0 〜 4(初期値 0.4)
イージングlinear・sine・quad・cubic・quint・expo・back・elastic

同じ分類のシーン(放射・回転)