見出し画像

アンカーポイントと位置を中心に持ってくるスクリプト

After Effectsの有料ランチャーツール『Kbar』に仕込む用です。
アンカーポイントと位置を中心にします。
「Ctrl+Alt+Home」と「Ctrl+Home」を押すのと同じ動きをするスクリプトになります。
※平面、調整レイヤーのみ

var lay =app.project.activeItem.selectedLayers;
var actComp = app.project.activeItem;
var an_x=0;
var an_y=0;
var pos_x = actComp.width/2;
var pos_y = actComp.height/2;

for(var i=0; i < lay.length ; i++){
an_x=lay[i].width/2;
an_y=lay[i].height/2;
lay[i].property("ADBE Transform Group").property("ADBE Anchor Point").setValue([an_x,an_y,0]);
lay[i].property("ADBE Transform Group").property("ADBE Position").setValue([pos_x,pos_y,0]);
}

※追記 2023/10/19

上記のアンカーポイントの求め方だと、シェイプレイヤーとテキストレイヤーが対応できなかったので、新たに書き直しました。
sourceRectAtTime()がバウンディングボックスのサイズを判定してくれるものになるので、そちらでアンカーポイントを求めるように変更しました。(以前はレイヤーの幅と高さからアンカーポイントを求めた)

var lay =app.project.activeItem.selectedLayers;
var actComp = app.project.activeItem;
var an_x=0;
var an_y=0;
var pos_x = actComp.width/2;
var pos_y = actComp.height/2;
var time = app.project.activeItem.time;

for(var i=0; i < lay.length ; i++){
    var temp = lay[i].sourceRectAtTime(time,true);
    an_x=temp.width/2+temp.left;
    an_y=temp.height/2+temp.top;
    lay[i].property("ADBE Transform Group").property("ADBE Anchor Point").setValue([an_x,an_y,0]);
    lay[i].property("ADBE Transform Group").property("ADBE Position").setValue([pos_x,pos_y,0]);
}

この記事が気に入ったらサポートをしてみませんか?