MVでよく見る「文字が紙切れみたいにバラけて風に飛ばされる」演出を、After Effectsを触ったことがない人でも作り切れるように書いたマニュアルです。画面写真はすべて、この手順どおりに実際のAEで組んだ実物です。分解スクリプトは Aパターン: GG_Bunkai(GG分解)/Bパターン: UltraBarabara のどちらでも作れます(違うのは手順1だけ)。
完成形(実物の書き出し)。最初は元の配置のまま静止し、1秒すぎから下の文字がほどけて風に舞い、すっと消える
文字たちはバラバラに飛んでいるわけではありません。画面には映らない「風の通り道」が1本だけあって、全部の紙切れがその道を追いかけているだけです。1枚1枚が少しずつ「遅れ」たり、道から「ズレ」たりしながら追いかけるので、見た目には複雑な風に見えます。
つまり作るものは2つだけ。「道1本」と「追いかけるルール」。文字1枚ずつに動きを付ける作業は最初から存在しません。この作り方では、文字に打つキーフレームは0個です。
全パーツが見えない1本の道を追いかけているだけ
白い画面の中央下に文字が1行。レイヤーはまだテキスト1本だけ。
この状態からスタート(実物の出力フレーム)
なぜやるか:1枚の紙は1枚ずつしか飛ばせないからです。AEでは動かす単位を「レイヤー」と呼びます(絵が載った透明なシートのイメージ)。「な」を丸ごと1枚のシートに載せていたら「な」は塊のままでしか動きません。点やハネまで別々に舞わせたいので、1パーツ=1枚のシートにバラします。ここだけ標準機能ではなく無料スクリプトを使います。手順2からはA/Bどちらでも完全に同じです。
GG_Bunkaiパネル。左からT(変換)・モード切替・プリコンポーズ
正しくできた画面:「い Outline」「な Outline」…と1文字から複数レイヤーが生まれる(実測: 9文字→17枚)
UltraBarabaraパネル。縦棒のアイコンが筆画分割モード
正しくできた画面:「な Disassembled 1〜5」…(実測: 9文字→28枚)
なぜやるか:紙切れらしさの正体は「裏返り」だからです。ひらひら舞う紙は必ず表と裏を見せながら回っています。それには文字が奥行きの方向にも回れる必要があります。
立方体の列にチェックが入り、レイヤーを開くと回転が「X回転」「Y回転」「Z回転」の3つに増えている
立方体の列が見当たらないときは F4 キー(スイッチ/モード表示の切り替え)。
緩急のつくり方:キーフレームは「この時間にここにいてね」という記録ポイント。間隔がせまいと突風、広いとそよ風です。ゆっくり浮かせて→ぐんと走らせて→ふわっと漂わせる。この強弱が入ると一気に「風」になります。
赤い線=風の道(モーションパス)。点がキーフレーム。画面の外まで描いてOK
なぜやるか:28枚の紙に1枚ずつ地図を描くのは現実的じゃないからです。代わりに全員へ同じルール=エクスプレッション(数値を自動で計算してくれる小さなメモ書き)を配ります。書けなくて大丈夫、コピペで動きます。
seedRandom(index, true);
t0 = thisComp.layer("CTRL").effect("開始時間")("スライダー");
home = transform.position.valueAtTime(0);
dly = (thisComp.height - home[1]) / thisComp.height * 1.2 + random(0, 0.4);
t = time - t0 - dly;
lag = 0.2 + random(0, 1.0);
off = [random(-180, 180), random(-140, 140), random(-180, 180)];
lead = thisComp.layer("風パス").transform.position.valueAtTime(time - lag);
b = ease(t, 0, 1.0, 0, 1);
home + (lead + off - home) * b + (wiggle(1.3, 50) - value) * b;
| 行 | 意味 |
|---|---|
| seedRandom(index, true) | レイヤー番号でクジを固定。パーツごとに違う動きになり、再生のたびに変わらない |
| t0 = CTRL…スライダー | 飛び始める時刻。リモコン(CTRLの「開始時間」)から読む。今回は1秒 |
| home = …valueAtTime(0) | 元いた場所(0秒時点の自分の位置) |
| dly = …*1.2+random(0,0.4) | 出発時刻。画面の下にいるパーツほど早く飛び立つ+0〜0.4秒のランダム差 |
| t = time - t0 - dly | 自分が飛び立ってからの経過時間 |
| lag = 0.2+random(0,1.0) | 「遅れ」。風パスの何秒うしろを追いかけるか(パーツごとにランダム) |
| off = [x, y, z] | 「ズレ」。道からどれだけ離れて飛ぶか(±180/±140/±180pxの範囲) |
| lead = 風パス…(time-lag) | 追いかける目標=lag秒前の風パスの位置 |
| b = ease(t, 0, 1.0, 0, 1) | 0→1のスイッチ。飛び立ちの1秒間で「ふわっと」風に乗る |
| home+(lead+off-home)*b+… | 元の場所から目標へbの分だけ移動し、wiggle(1.3,50)の空気の揺れを足す |
「エクスプレッション: 位置」の行が現れ、数値が赤くなる(=コードが自動で動かしている印)
再生すると、下の文字から順にほどけて、みんなで同じ道を追いかけていきます。
実物の途中フレーム。下の文字からほどけていく
なぜやるか:今のままだと紙が滑って移動しているだけだからです。X・Y・Zの3方向の回転を回しっぱなしにすると「ひらひら」が生まれます。特にY回転=紙の裏返りが質感の主役です。
seedRandom(index, true);
t0 = thisComp.layer("CTRL").effect("開始時間")("スライダー");
home = transform.position.valueAtTime(0);
dly = (thisComp.height - home[1]) / thisComp.height * 1.2 + random(0, 0.4);
t = Math.max(time - t0 - dly, 0);
seedRandom(index + 200, true);
t * random(120, 300) + wiggle(0.5, 25) * ease(t, 0, 0.6, 0, 1);
X回転は6行目を seedRandom(index + 100, true); に、最終行を t * random(60, 180) + wiggle(0.6, 18) * ease(t, 0, 0.6, 0, 1); に変えるだけ。
Z回転は6行目を seedRandom(index + 300, true); に、最終行を t * random(40, 120) + wiggle(0.7, 15) * ease(t, 0, 0.6, 0, 1); に変えるだけ。
| 部分 | 意味 |
|---|---|
| Math.max(…, 0) | 飛び立つ前は t を0のまま止める=まだ飛んでいないのに回り出すのを防ぐ |
| seedRandom(index+100/200/300) | 回転専用のクジ。軸ごとに別のランダムを引く |
| t * random(120, 300) | 経過時間×速さ=一定スピードで回り続ける(数値は1秒あたりの角度の範囲) |
| wiggle(0.5, 25) | 回転のゆらぎ。回りっぱなしに不規則な揺れを重ねる |
| * ease(t, 0, 0.6, 0, 1) | 「飛ぶ前は揺らさない」スイッチ。これが無いと冒頭から文字が小さく揺れてしまい、最初が「元の配置のまま」にならない |
消え方(不透明度):T キーで不透明度を出して、同じく option(Alt)+クリック。上のコードの最後の2行を linear(t, 3.8, 5.0, 100, 0); の1行に差し替えて貼ります。意味は「飛び立って3.8〜5.0秒のあいだに不透明度を100→0へ=だんだん透明になって消える」。数字を変えれば消えるタイミングを調整できます。
回転3つと不透明度も、1枚に貼ったらプロパティをコピー → 全パーツへペーストです。
X回転・Y回転・Z回転・不透明度の数値がすべて赤くなっていればOK
なぜやるか:速く動くものはブレて見えるのが本物だからです(写真の被写体ブレと同じ現象)。
赤枠が親スイッチ。押し忘れが定番の失敗
突風の区間で紙切れに残像が付き、スピード感が本物になる(実物フレーム)
道を伸ばせば、どこまでも飛ばせる
| 症状 | 原因と直し方 |
|---|---|
| コードが赤いエラーになる | ほぼ名前の不一致。「CTRL」「開始時間」「風パス」がレイヤー名・エフェクト名と一字一句同じか、全角半角・余計なスペースを確認 |
| いつまでも飛ばない | CTRLの「開始時間」の数値が大きすぎる。1にすれば1秒から飛ぶ |
| 全員が同時に飛ぶ/最初から揺れる | コード1行目の seedRandom の行、またはwiggleのうしろの ease が抜けている |
制作・検証: 2026-08-30/After Effects 2026(26.3)・GG_Bunkai・UltraBarabara 1.0.1で実測。掲載画像・動画はすべて実際に組んだプロジェクトの実物です。