【AfterEffects】コンポの長さに対してレイヤーを均等に配置する方法

duration-divide

コンポの長さに対してレイヤーを均等に配置したかったのでやってみました。

選択したレイヤーをコンポの長さに対してレイヤーを均等に配置するスクリプト

function DurationDivide(){
    app.beginUndoGroup("DurationDivide");
    var thisComp = app.project.activeItem;
    var selectedLayers = app.project.activeItem.selectedLayers;
    var layerDuration = thisComp.workAreaDuration / selectedLayers.length;

    for(var i = 0; i < selectedLayers.length; i++){
        currentLayer = selectedLayers[i];
        currentLayerDuration = Math.abs(currentLayer.outPoint - currentLayer.inPoint);
        inPoint = i*layerDuration+thisComp.workAreaStart;
        outPoint = inPoint+layerDuration;
        currentLayer.startTime = inPoint;
        currentLayer.outPoint = outPoint;
     }
    app.endUndoGroup();
}
DurationDivide();

並びを逆にしたい場合は

currentLayer.startTime = outPoint;
currentLayer.outPoint = inPoint;

おまけ

Twitterで知ったのですが、こちらのスクリプトも便利そうです。

まとめ

AEの作業はレイヤー操作かエフェクトのパラメ調整が多いので、その片方のレイヤー操作、今後もスクリプトで効率化していきたいです。