【エクスプレッション】画像の大きさをコンポジションに合わせる

謎のプリン語る。
プログラミングの役立つ情報とか、どうでもいい雑談とか書いてます。
一人書く人増えました。

【エクスプレッション】画像の大きさをコンポジションに合わせる

みやびプリン 500 316

144 144

※この記事は10年以上前の記事です。
現在は状況が異なる可能性がありますのでご注意ください。

どうも、みやびです。

またまた、AEです。
また頼まれて作ってみました。

今度は、題号の通り、
画像の大きさを、コンポジションの大きさと同じ大きさにするっていうのをやります。
まぁ、といっても、横幅は無視して、縦幅に合わせてますが・・・

下記を記述したスクリプトファイルを、拡張子.jsxで保存する。

//プロジェクトを取得
var $project = app.project;

//リサイズしたいファイル名を配列に格納
fileName = new Array(".jpg",".gif",".png");

//コンポジション毎にループ処理
for( var i = 1; i <= $project.numItems; i++) {
    //レイヤー毎にループ処理
    for( var j = 1; j <= $project.item(i).numLayers; j++) {
        //レイヤー名を取得
        var layerName = $project.item(i).layer(j).name;
        //レイヤー名に配列に格納した文字列が含まれている場合
        for( var f = 0; f <= fileName.length; f++) {
            if(layerName.indexOf(fileName[f]) != -1) {
                //一度画像の大きさの倍率を100%にリセット
                $project.item(i).layer(j).transform.scale.setValue([100,100,100]);
                //レイヤー親のコンポジションの高さを取得
                var CompHeight = $project.item(i).height;
                //レイヤーの高さを取得
                var LayerHeight = $project.item(i).layer(j).height;
                //レイヤーと親のコンポジションの高さの倍率を取得
                var HeightInt = (CompHeight/LayerHeight)*100;
                //レイヤーのスケールに倍率を適用
                $project.item(i).layer(j).transform.scale.setValue([HeightInt,HeightInt,HeightInt]);
            }
        }
    }
}

そして、AEを起動し、ファイル>スクリプト>スクリプトを実行 とメニューを進み、保存したスクリプトファイルを選ぶ。
すると、4行目の配列に入れたファイル名(レイヤー名)が、レイヤー名に含まれる場合に、そのレイヤーの大きさを、直親のコンポジションに合わせた大きさにリサイズしてくれる。

仕組みとしては、「コンポジションの大きさ÷画像の大きさ」で、倍率を出して、それをスケールに適用するというもの。

予め固定サイズのコンポジションの中に画像を入れて合わせたい時とかに使えると思います。

特定のレイヤー名だけをリサイズしたい時は、4行目の配列の中身を変えてください。

ではでは。

今回ムダ話ないねw

トラックバック(0)

トラックバックURL:

コメントする

ページトップへ戻る