After Effectsでフォントをランダムに変えるエクスプレッション

After Effectsでフォントをランダムに変えるエクスプレッション


Adobe After Effects 2025
文字ごとにフォントをランダムに変更するエクスプレッション

After Effects 2025の新機能でエクスプレッションの制御項目が追加され、テキストレイヤーの文字ごとにスタイルの制御ができるようになりました。エクスプレッションで文字ごとのスタイル変化が表現できるようになったので、今回は試しに文字ごとにフォントとフォントサイズをランダムに変更し続けるエクスプレッションを作ってみました。





エクスプレッションのコード(After Effects 2025以降に対応)

posterizeTime(10); // 1秒間の更新頻度

// フォントリスト
var fonts = ["VDL-V7Gothic-Bold", "YDWbananaslipplus", "katyou", "SourceHanSans-ExtraLight"];

// フォントサイズの範囲
var minFontSize = 40;
var maxFontSize = 120;

// テキスト取得
var textContent = text.sourceText;
var newStyle = text.sourceText.style; // **元のスタイルをコピーして利用**

for (var i = 0; i < textContent.length; i++) {
    seedRandom(i + time, true); // 文字ごとに異なるランダムシードを生成

    // ランダムなフォントを選択
    var randomFontIndex = Math.floor(random(fonts.length));
    var selectedFont = fonts[randomFontIndex];

    // ランダムなフォントサイズを設定(整数化)
    var randomFontSize = Math.floor(random(minFontSize, maxFontSize + 1));

    // 各文字ごとにフォントとサイズを設定(オブジェクトを再代入せず適用)
    newStyle = newStyle.setFont(selectedFont, i, i+1).setFontSize(randomFontSize, i, i+1);
}

// **テキストを維持**
newStyle.setText(textContent);


このエクスプレッションの使い方

①アニメーション更新頻度の設定
posterizeTime(10); // 1秒間の更新頻度
例えば30フレームのコンポジションの場合にposterizeTime(10)に設定すると、1秒間に10回の更新となり、テキストが3フレームごとに変わるようになります。この数値を変更して、フォントの更新頻度を調整します。

➁フォントリストを指定
var fonts = [“VDL-V7Gothic-Bold”, “YDWbananaslipplus”, “katyou”, “SourceHanSans-ExtraLight”];
“(ダブルクォート)で囲っているのはフォント名です。「, 」で複数のフォントを記載します。ここに入力するフォント名は、テキストパネルに表示されているものではなく、システム名になりますので、「エクスプレッション言語メニュー」→「Text」→「Font」から指定して入力します。


③フォントサイズの範囲を指定
var minFontSize = 40;
var maxFontSize = 120;
ランダムに変更するフォントサイズの最小サイズと最大サイズを指定します。同じ数値を設定するとフォントサイズが固定されます。

 





back to top