スクリプト

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

[概要]

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

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

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

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

[使い方]

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

[オプション]

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

[解説]

function autoFadeSetter(){
    var actCmp=app.project.activeItem;
    var selItmAll=actCmp.selectedLayers;
    var fInTime = prompt("fInの時間を入力", 1);
    var fOutTime = prompt("fOutの時間を入力", 1);
    var fx=[];


    for(i=0;i<selItmAll.length;i++){
        if(selItmAll[i].property("エフェクト")("fIn")==null){
            fx[0]=selItmAll[i].property("ADBE Effect Parade").addProperty("ADBE Slider Control");
            fx[0].enabled=false;
            fx[0].name="fIn";
            fx[0](1).setValue(fInTime);
            fx[1]=selItmAll[i].property("ADBE Effect Parade").addProperty("ADBE Slider Control");
            fx[1].enabled=false;
            fx[1].name="fOut";
            fx[1](1).setValue(fOutTime);
        }else{
            break;
        }
    
    selItmAll[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));';
    
    }//for
}

app.beginUndoGroup("[auto]fIn_fOut");
autoFadeSetter();
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→不透明度値にする
  }
}

となります。

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

ダウンロード

フェードイン・アウトをエクスプレッションで自動化する前のページ

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

ピックアップ記事

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

関連記事

  1. スクリプト

    グリッド上に均等配置するスクリプト「posGridAlign.jsx」

    複数のレイヤーをグリッド状に整列させるエクスプレッションを仕込むスクリ…

  2. スクリプト

    After Effectsのスクリプトの書き方

    After Effectsのスクリプトを作るのに必要なものを紹介します…

  3. スクリプト

    ソーステキストをスプレッドシートで一括管理するスクリプト+aep「aepSyncer@TSV.jsx…

    aep内の置換したいテキストを表計算で管理→一括置換できるスクリプトで…

  4. スクリプト

    選択順にレーザー線を追加するスクリプト「fakePlexus.jsx」

    記事「レーザーの線で繋ぐエクスプレッション」をスクリプト化。…

  5. スクリプト

    オーディオのフェードイン・アウトを自動化するスクリプト「[auto]volfIn_fOut.jsx」…

    オーディオレイヤーの音量のフェードイン・フェードアウトをエクスプレッシ…

コメント

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

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

CAPTCHA