スクリプト

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

[概要]

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

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

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

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

[使い方]

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

[オプション]

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

[解説]

JavaScript
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」です。

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

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


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

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

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

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

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

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

JavaScript
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. なぜ?After Effectsの操作を「スクリプト」で効率化

  2. フリーランスの開業届提出は開業freeeでとにかく簡単に

  3. amazonのスポンサー商品(広告)を非表示にするブックマークレット「amazO…

  4. YouTubeで一時停止中のコントローラーを非表示にするブックマークレット

  5. なぜ?After Effectsのレイヤーをエクスプレッションで効率化

関連記事

  1. スクリプト

    マーカーでリズムを刻むスクリプト「keyframePlayer@Marker.jsx」

    事前に用意したキーフレームをマーカーごとに再生させる「マーカーでリズム…

  2. スクリプト

    全選択レイヤーのデュレーションを一致させるスクリプト「durationMatcher.jsx」

    全選択レイヤーを1つめに選択したレイヤーのデュレーションと一致させるス…

  3. スクリプト

    放射状に配置するスクリプト「posCircleAlign.jsx」

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

  4. スクリプト

    3D回転対応の矢印を作成するスクリプト「shapeArrow(s)@3D.jsx」

    ベンド可の矢印シェイプを作成するスクリプト。…

  5. スクリプト

    H型の定規シェイプを作成するスクリプト「Shape-RulerH_V2.jsx」

    Hの形の定規シェイプレイヤーと追従するラベルのテキストレイヤーを作成す…

コメント

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

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

CAPTCHA


PAGE TOP