media
mosaic reveal / tile reveal
画像がタイル状に分割され、1枚ずつ時間差で現れるリビール演出。実装はgridで敷いたカバータイルをopacityで消していくだけと軽い。出現順(ランダム/順番/斜め)とstaggerの設計が世界観を決める。
02 — Prompt template
03 — Params
tiles(分割数) — 選択: 4×3 / 6×4 / 8×5 / 10×6(初期: 6×4)
タイルの分割数。24〜40枚が目安。少ないと大味、多すぎると砂嵐ノイズに寄る。stagger(1枚ごとの時間差 ms) — 範囲 5〜60 / 初期 25
総時間≒最大delay+フェード0.4s。枚数を増やしたらstaggerを削り、全体で1〜1.5sに収める。order(出現順) — 選択: random / sequential / diagonal(初期: random)
randomはノイズ的、sequentialは走査線的、diagonalは左上から光が走るように見える。
04 — Vocab
カバータイル方式 — 画像を切るのではなく、背景色のタイルを上に敷いて消していく方式。どんなコンテンツにも使え、DOMも軽い。
transition-delay — 各タイルの開始時刻をずらすCSSプロパティ。JSで作ったdelay配列をstyleに流し込むだけでstaggerが組める。
Fisher–Yates — 偏りのないシャッフルの定番アルゴリズム。Math.random() - 0.5 でsortする方法は偏るので使わない。
総時間の逆算 — 体感時間 = 最大delay + タイル1枚のフェード時間。枚数×staggerが膨らみやすいので、常に合計から逆算する。
05 — NG → OK examples
NG
言い方: 「「画像をモザイクみたいにパラパラ表示して」」
なぜNG: 分割数も出現順も時間差も未定義。canvasで画像をピクセル分解する過剰実装や、総時間の逆算がなく表示に3秒かかる実装が返ってきがち。
OK
言い方: 「「mosaic revealを実装。6×4のカバータイルをgridで敷き、randomの順に25msずらしてopacity 1→0(各0.4s)。動かすのはopacityのみ、完了後はオーバーレイをdisplay: none。reduced-motionは全体フェード1回」」
なぜOK: 分割数・順序・時間差・後始末まで揃っている。「カバータイルを消す」方式と明示すれば、画像自体を切り刻む重い実装を避けられる。
