loop-animation

スライドパズルSlide Grid

格子の行が左右に1マス、続いて列が上下に1マスずれる動きを交互の向きで繰り返す、スライドパズルのような模様です。

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

行が左右に1マス、続いて列が上下に1マスずれる。交互の向きで織物のように組み替わる

このシーンで作る

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

どう計算しているか

  1. ループの前半は a = clamp(2t)、後半は b = clamp(2t − 1) を進み具合にします。
  2. 前半は偶数行を右へ、奇数行を左へ1マス動かします。後半は、前半で移った先の列番号の偶奇で、上か下へ1マス動かします。
  3. 「行・列ごとの時間差」が大きいほど、行(後半は列)の番号に応じて動き出しが遅れます。番号を全体の行数で割って0〜1未満にしてから clamp するので、どの行も半ループの中で動き終えます。
  4. 色はマスの番号 i + j の偶奇で2色を交互に塗ります。「図形」で四角・丸・角丸を選べます。
x = i + sx·ease(a),  y = j + sy·ease(b),  sx, sy ∈ {−1, +1}

ループがつながる理由

各図形は縦横にちょうど1マスずつ動くので、i + j の偶奇は変わりません。動き終えた格子は元と同じ色の並びになり、画面の外まで続く格子なのでループの始まりと区別がつきません。

調整できるパラメータ

形

図形四角・丸・角丸
分割数3 〜 30(初期値 9)
大きさ0.3 〜 1(初期値 0.82)

動き

行・列ごとの時間差0 〜 2(初期値 0.6)
イージングlinear・sine・quad・cubic・quint・expo・back・elastic

同じ分類のシーン(タイル・格子)