スクリプト

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

関連記事

  1. スクリプト

    AEでも前方選択するスクリプト「selectForword.jsx」

    PremiereにはあるのにAfter Effectsにない標準ツー…

  2. スクリプト

    パスに沿ってレイヤーを均等配置するスクリプト「masktoPosPathAlign.jsx」

    全選択レイヤーをパスに沿って配置するスクリプト。…

  3. スクリプト

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

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

  4. スクリプト

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

    既に[auto]fIn_fOut.jsxで追加された自動フェード用のス…

  5. スクリプト

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

    「3Dレイヤーの裏面を非表示にするエクスプレッション」をスクリプト化…

  6. スクリプト

    使用フォント一覧をテキストファイル出力するスクリプト「exportFontName.jsx」

    実行すると、開いているaepファイルと同じフォルダに、使用フォント一…

コメント

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

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

CAPTCHA