不透明度を一定間隔で切り替え、指定回数の後は元の不透明度に戻します。
レイヤーのIN点を起点にするため、レイヤーを移動しても同じタイミングで始まります。
2026年10月14日、Windows 11 Pro(10.0.26200)、After Effects 26.5(Build 89)日本語版・JavaScriptエンジンで確認しました。
960×540・24fps・4秒のコンポジションで、テキストの不透明度と描画結果をフレーム単位で照合しました。
初期値は1秒に2周期、3周期で停止する設定です。
点滅はレイヤーのIN点から始まり、1.5秒後に止まります。
2026年10月25日に公式資料と本文の式を再照合しましたが、AEでの追加実機検証は行っていません。
貼付先と設定
まず練習用に960×540、24fps、4秒のコンポジションを作り、テキストレイヤーを追加します。
レイヤーを選んでTキーを押し、不透明度を60%、IN点を0秒にします。
既存の制作物では、先にコンポジションを複製してください。
不透明度のストップウォッチをAlt(MacはOption)を押しながらクリックして、次の式を貼ります。
式の入力欄が開いたら、既にある文字をすべて選んで置き換えます。
貼り終えたら、式の入力欄の外側をクリックするか、テンキーのEnterで確定します。
貼り付ける前に、元の不透明度の値とキーフレームを控えてください。
点滅する周期と回数を指定する式
var mode = "step"; // "step"(オン/オフ)・"soft"(なめらか)
var frequency = 2; // 1秒あたりの周期数
var cycles = 3; // 0なら停止せず続ける
var elapsed = Math.max(0, time - inPoint);
var result = value;
if (isFinite(frequency) && frequency > 0 && isFinite(cycles) &&
cycles >= 0 && cycles % 1 == 0) {
var stop = cycles > 0 && elapsed >= cycles / frequency;
if (!stop) {
var phase = (elapsed * frequency) % 1;
if (mode == "step") result = phase < 0.5 ? value : 0;
else if (mode == "soft") result = value * (1 + Math.cos(phase * Math.PI * 2)) / 2;
}
}
result;
frequencyは1秒あたりの周期数で、2なら明→暗→明が0.5秒で1回です。
cyclesは0以上の整数で、3なら3周期後に停止し、0なら繰り返します。
modeは"step"で切替、"soft"でなめらかな変化です。
| 出したい見え方 | 書き換える行 | 結果 |
|---|---|---|
| チカチカと切り替わる点滅 | var mode = "step"; | 不透明度が元の値と0%を行き来する |
| ふわっとした明滅 | var mode = "soft"; | 元の値と0%の間をなめらかに変化する |
書き換えるのは1行目だけです。
2種類のコードを貼り替える必要はありません。
点滅を速くしたいときはfrequency、止めたい周期数はcyclesを変えます。
frequencyが0以下、またはcyclesが負・整数以外なら元の不透明度を維持します。
ここでいう「元の不透明度」は、現在時刻におけるエクスプレッション適用前の値です。
式のvalueは、貼り付けた瞬間の値を保存する変数ではありません。
不透明度にキーフレームがあれば、点滅停止後はその時刻のキーの補間値に従います。
公式の定義はAdobeの言語資料のvalueを参照してください。
| 入力・条件 | AE 26.5で確認した不透明度 | 確認点 |
|---|---|---|
frequency=2/step/INから0秒 | 60% | 明から始まる |
| 同条件で0.25秒 | 0% | 半周期後 |
| 同条件で0.5秒 | 60% | 1周期後 |
cycles=3/1.5秒以降 | 元の不透明度 | 3周期で止まる |
frequency=2/soft/0.125秒 | 30% | 明と暗の中間 |
frequency=0 | 元の不透明度 | 今回の式は停止扱い |
上表は2026年10月14日、24fps、元の不透明度60%、IN点0秒での実測記録です。
0.125秒は3フレーム目、0.25秒は6フレーム目、1.5秒は36フレーム目です。
タイムライン左上の現在時刻をクリックし、例えば0:00:00:03を入力すると3フレーム目へ移動できます。

frequency=2・cycles=3。24fpsの3フレーム目(0.125秒)ではSTEPが60%、SOFTが30%。 2026年10月14日、Windows 11 Pro・AE 26.5(Build 89)で撮影。画面の上側の文字がSTEP、下側がSOFTです。
同じ3フレーム目でも、STEPは60%を保ち、SOFTは30%まで下がりました。
36フレーム目では両方60%へ戻ります。
cycles=0では1.5秒以降も点滅し、cycles=1.5では点滅せず60%を保つことも確認しました。
30fpsでは0.25秒が7.5フレームに当たります。
実機では7フレーム目が60%、8フレーム目が0%でした。
表と同じ時刻をフレーム単位で再現する練習には24fpsを使ってください。
スライダーで点滅の速さを調整する
式のfrequencyにスライダーをつなぐと、エフェクトコントロールパネルから速さを調整できます。
式の参照を作る基本操作は次の公式資料で確認できます。
- 点滅させるレイヤーを選び、エフェクト&プリセットから「エクスプレッション制御」→「スライダー制御」を適用します。
- エフェクトコントロールパネルで、適用したスライダー制御の名前を
点滅の速さに変更します。 - 不透明度の式を開き、
var frequency = 2;の行を下の1行に置き換えます。 - スライダーに
2を入力します。新しく追加したスライダーが0のままなら、この式では点滅しません。 - 現在時刻を6フレーム目へ移動します。値2では不透明度0%、値0へ変更すると60%へ戻ることを確認します。
var frequency = effect("点滅の速さ")("スライダー");
エフェクト名(ここでは点滅の速さ)は、エフェクトコントロールパネルで自分が付けた名前と一致させます。
プロパティ名は日本語版では「スライダー」、英語版では「Slider」と表示されます。
環境で名前が違う場合は、式の入力欄のピックウィップをスライダーの値へドラッグすると、その環境に合った式が生成されます。
| スライダーの値 | 1周期にかかる時間 | 見え方の目安 |
|---|---|---|
| 0.5 | 2秒 | ゆっくりした明滅 |
| 2 | 0.5秒 | 掲載した式の初期値 |
| 8 | 0.125秒 | 速い点滅。フレームレートによって見えにくくなる |
スライダーの値はfrequencyと同じ「1秒あたりの周期数」です。
0以下にすると、掲載した式では点滅せず元の不透明度を維持します。
cyclesも同じようにスライダーへ逃がせますが、掲載した式はcyclesに0以上の整数しか受け付けません。
スライダーは小数も入力できるため、回数はコード側の数値で指定するほうが確実です。
2026年10月14日にAE 26.5日本語版でこの参照式を適用し、値2の6フレーム目は0%、値0では60%へ戻ることを確認しました。
次の画面ではSTEPだけをスライダーへ接続しています。
SOFTは元の固定値2のままなので、同じ6フレーム目で0%です。

この式は、その時点の速さとIN点からの経過時間を掛けて周期を求めます。
スライダーにキーフレームを打って途中で速さを変えると、位相や停止時刻も変わります。
一定周期の点滅には、スライダーを固定値で使ってください。
点滅しない・式エラーになるとき
modeは半角の引用符で囲んだ"step"または"soft"にします。
大文字の"STEP"など別の文字列では、掲載式は点滅せず元の値を返します。
| 症状 | 確認する場所 |
|---|---|
| ずっと同じ不透明度 | スライダーが0、frequencyが0以下、cyclesが負数や小数、または指定回数が終了していないか確認します。 |
| エフェクトが見つからないエラー | 同じレイヤーにスライダー制御を追加し、エフェクト名を「点滅の速さ」にそろえます。プロパティ名が異なる場合はピックウィップで参照を作ります。 |
| 貼り付けても見えない | レイヤーのIN〜OUTの範囲内か、元の不透明度が0%でないか、ビデオスイッチがONか確認します。 |
| 数字は変わるが速すぎて見えない | frequencyを2へ戻し、1フレームずつ移動して不透明度を確認します。 |
wiggleや旧式との違い
wiggleはランダムな変化で、一定間隔の明暗切替には使いません。
wiggle(50,100)の50は変化の頻度、100は振幅で、元の値へ加わる揺れです。
スライダーにwiggleを入れて不透明度から参照すると、スライダーの元の値が揺れの中心になります。
スライダー値だけを変えてもwiggleの振幅100は変わりません。
旧式のabs(sin(...))は速度0で不透明度0になります。
その挙動自体が計算エラーではなく、今回の式は速度0を「点滅停止」と定義して元の値を返します。
周期が高すぎるとフレームごとの表示で点滅が見えにくくなります。
まず24fps・frequency=2で確認し、IN点が途中ならコンポの0秒ではなくIN点からの経過時間を見ます。
レイヤーを動かしても点滅のタイミングがずれない理由
掲載した式はvar elapsed = Math.max(0, time - inPoint);で、コンポジションの0秒ではなくレイヤーのIN点からの経過時間を基準にしています。
そのため、タイムライン上でレイヤーを前後に動かしても、点滅はレイヤーの先頭から始まります。
IN点を1秒へ移した実機検証では、コンポ1秒で60%、1.25秒で0%、1.5秒で60%、2.5秒で3周期を終えて60%へ戻りました。
コンポの0秒を基準にする式(timeをそのまま使う形)では、レイヤーを後ろにずらすと点滅の途中から表示されます。
cyclesで回数を決めている場合は、ずらしただけで「もう止まっている状態」から始まることもあります。
レイヤーの位置を調整する前提なら、IN点基準のままにしてください。
確認する順番:値と描画を分けて見る
最初は掲載した固定値の式を使い、6フレーム目と36フレーム目の不透明度を確認します。
数値が合ってからスライダー参照へ変えると、式自体と参照名の問題を分けられます。
不透明度は合うのに見え方が違う場合は、ほかのレイヤーを重ねていないかも確認してください。
変更前のコンポジションを残し、同じフレームで比べます。
戻し方
変更前にコンポを複製し、元の不透明度とキーを控えます。
不透明度の左の三角を開き、エクスプレッションの有効スイッチ(=)をOFFにします。
2026年10月14日の検証では、6フレーム目が0%から元の60%へ戻りました。
練習で変更した不透明度やIN点も元へ戻してください。
2026年10月14日の確認は、指定フレームの不透明度と描画の照合です。
リアルタイム再生速度や動画への書き出し、キーフレーム付き不透明度との組み合わせは未検証です。
既存の参考画像
以下の2枚は旧記事の参考画像で、上に掲載した式の実機確認画像ではありません。


関連する操作
| やりたいこと | 最初に読む記事 |
|---|---|
| 映像の透明度を前後で変える | 不透明度のフェード |
| 音量を前後で下げる | オーディオレベルのフェード |
| 操作用のチェックで隠す | レイヤーの表示切替 |
| 式を探す・一時停止する | 式の削除と停止 |
参照資料
Adobeのエクスプレッション言語資料を参照しています。
旧版の参考コード・関連記事
既存の参考コードは旧版の可能性があるため、今回の手順では本文の式を使います。




