スクリプト

フェードイン・アウトを自動化するスクリプト「[auto]fIn_fOut.jsx」

[概要]

レイヤーのフェードイン・フェードアウトを自動化するエクスプレッションを仕込むスクリプト。「[auto]volfIn_fOut.jsx」の不透明度版。

レイヤーのインポイントからのフェードインと、アウトポイントまでのフェードアウトがキーフレームなしで動作しますので、レイヤーの長さ変更時にキーフレームをズラす手間がなくなります。

スライダーのfIn、fOutに秒数を指定して使用します。(※フレーム数ではないことに注意)

仕様としてフェードイン中でもフェードアウトが優先して始まります。

[使い方]

  1. 適用したいレイヤーを選択し、スクリプトを実行します。
  2. 開いたプロンプトにフェードイン時間を秒数で入力します。
  3. 次のプロンプトにフェードアウト時間を秒数で入力します。

[オプション]

  • キーフレームを打っても合わせて動作します。
  • 不透明度が”0″<->”セットしている値”でフェードします。
  • 不透明度50なら0->50にフェードイン、50->0にフェードアウトします。

[解説]

var sel=app.project.activeItem.selectedLayers;

function f_auto_fIn_fOut(){
    for(i=0;i<sel.length;i++){
        if(sel[i].property("ADBE Effect Parade")("fIn")==null){
            var fInTime = prompt("fInの時間を入力", 1);
            var fOutTime = prompt("fOutの時間を入力", 1);
            var fx=[];

            fx[0]=sel[i].property("ADBE Effect Parade").addProperty("ADBE Slider Control");
            fx[0].enabled=false;
            fx[0].name="fIn";
            fx[0](1).setValue(fInTime);
            fx[1]=sel[i].property("ADBE Effect Parade").addProperty("ADBE Slider Control");
            fx[1].enabled=false;
            fx[1].name="fOut";
            fx[1](1).setValue(fOutTime);

            sel[i].opacity.expression= // 選択レイヤーの不透明度にエクスプレッションを適用
                'fIn = effect("fIn")(1);\r'+
                'fOut = effect("fOut")(1);\r'+
                '(time >= outPoint-fOut )?ease(time,outPoint-fOut ,outPoint,opacity,0):((fIn==0)?opacity:ease(time,inPoint,inPoint+fIn,0,opacity));';
        }else{
            alert("fInというエフェクトがすでにあります");
            break;
        }
    }//for
}

app.beginUndoGroup("[auto]fIn_fOut");
    f_auto_fIn_fOut();
app.endUndoGroup();

新しく覚える知識は「prompt」です。

prompt("fInの時間を入力", 1);

ユーザーがテキストを入力できるウィンドウを表示するスクリプトで、引数1でウィンドウに表示するテキスト、引数2でデフォルトの値を指定できます。


選択レイヤーへエクスプレッション制御>スライダーを適用し、名前を「fIn」「fOut」へ変更。

プロンプトで入力した数字をそれぞれ設定します。

自分でスライダーを追加・リネームし、不透明度へ下記のエクスプレッションを打ち込んでも同じ結果です。

不透明度のエクスプレッションとしては

(time >= outPoint-fOut )?ease(time,outPoint-fOut ,outPoint,opacity,0):((fIn==0)?opacity:ease(time,inPoint,inPoint+fIn,0,opacity));

と短縮形で一行で書いていますが、読みやすい表記方法では

if(time >= outPoint-fOut ){ //フェードアウト時間内であれば
  ease(time,outPoint-fOut ,outPoint,opacity,0); //フェードアウト秒前からアウトポイントへ不透明度値→0にする
}else{ //フェードアウト時間内でなければ
  if(fIn==0){
      opacity;
  }else{ //フェードイン秒数が0以外なら
      ease(time,inPoint,inPoint+fIn,0,opacity)); //インポイントからフェードイン秒で0→不透明度値にする
  }
}

となります。

これでフェードを含むレイヤーが増える度に、多数のレイヤーへ打ち込む、またはコピペする時間が短縮でき、クリエイティブに割く時間を増やせるのです。

ダウンロード

現在時間のレイヤーを選択するスクリプト「selectCurrent.jsx」前のページ

セット済みのフェード時間を調整するスクリプト「[batch]@fIn_fOut.jsx」次のページ

ピックアップ記事

  1. フリーランスの開業届提出は開業freeeでとにかく簡単に
  2. なぜ?After Effectsの操作を「スクリプト」で効率化
  3. なぜ?After Effectsのレイヤーをエクスプレッションで効率化
  4. amazonのスポンサー商品(広告)を非表示にするブックマークレット「amazO…
  5. YouTubeで一時停止中のコントローラーを非表示にするブックマークレット

関連記事

  1. スクリプト

    選択レイヤーサイズのマスクをシェイプで描くスクリプト「addShapeMask@rect.jsx」

    テキストに合わせたサイズの、さらにサイズ追従するエクスプレッションを仕…

  2. スクリプト

    なぜ?After Effectsの操作を「スクリプト」で効率化

    出来る範囲はマウスやキーボードで編集者が直接できる操作に限られますが、…

  3. スクリプト

    選択順にレーザー線で繋ぐスクリプト「fakePlexus.jsx」

    有料プラグインの「Plexus」を模した「レイヤーとレイヤーを線で繋ぐ…

  4. スクリプト

    裏面を非表示にするスクリプト「hideBackface.jsx」

    3Dレイヤーの裏面を非表示にするスクリプト。…

  5. スクリプト

    アイソメトリックビューを簡易的に実現するスクリプト「isometricCamera.jsx」

    インフォグラフィックスにも相性のいいアイソメトリックビュー風カメラを手…

  6. スクリプト

    タイムリマップでレイヤー管理するスクリプト(フリーズフレーム)「tRemapSelectorSett…

    複数の整列させるレイヤーの管理を効率化するエクスプレッションを仕込むス…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA