ワンクリックでアクティブプロパティにエクスプレッションを適用

rd_ScriptLauncher.jsxにエクスプレッション適用のスクリプト書いて突っ込んでおいて、適当なレイヤーorエフェクトのプロパティを選んでダブルクリック。

スクリプトの内容は↓みたいな感じ。

var Exp = "wiggle(1,15)";
var undoStr = "Set Expression";
var activeLayer = app.project.activeItem.selectedLayers[0];

app.beginUndoGroup(undoStr);

 var arr=activeLayer.selectedProperties;
 for (var i=0; i<arr.length; i++)
 if (arr[i]) arr[i].expression=Exp;

app.endUndoGroup();

自分で使うようなので動けばいいやってことで、レイヤー未選択時にアラート出たりとかはしてないです。
最初↓みたいにしてたんだけど@rlldiさんにアイデアいただいて前者の方に落ち着いた感じ。

var Exp = "(Math.sin(time)+1)*50";
var myLayer = app.project.activeItem.selectedLayers[0];

if( myLayer.selectedProperties[1] ){
    myLayer.selectedProperties[1].expression = Exp;
}else if( myLayer.selectedProperties[0] ){
    myLayer.selectedProperties[0].expression = Exp;
}else{
    alert("アラート");
}

よく使うものを用意しておくと便利かも。


value+[time*100,0]
wiggle(1,15)
Math.round(random(0,1))*10
(Math.sin(time)+1)*50