Question
スクリプトでエフェクトにエクスプレッションを適応したい。
平面レイヤーを生成して、ドロップダウンメニューで比率を選択したらCC Jawsの割合を調整してくれるスクリプトを制作しています。レイヤーを生成し、エフェクトを適応するとこまではできましたが、エクスプレッションが適応できません。たすけてください。。。
(function() {
app.beginUndoGroup("Create Aspect Ratio Limiter");
var comp = app.project.activeItem;
if (!comp || !(comp instanceof CompItem)) {
alert("Please select a composition.");
return;
}
var letterBoxLayer = comp.layers.addSolid([0, 0, 0], "LetterBox", comp.width, comp.height, 1);
// Add DropDownMenu Control
var dropdownEffect = letterBoxLayer.Effects.addProperty("ADBE Dropdown Control");
dropdownEffect.name = "Dropdown Menu Control";
var dropdownMenu = dropdownEffect(1);
dropdownMenu.setPropertyParameters(["16:9", "2.35:1", "2.39:1", "1.85:1", "1.66:1", "1.37:1", "1.33:1", "1:1", "Free Adjust"]);
// Add Slider Controls
var widthSlider = letterBoxLayer.Effects.addProperty("ADBE Slider Control");
widthSlider.name = "Ratio of Width";
var heightSlider = letterBoxLayer.Effects.addProperty("ADBE Slider Control");
heightSlider.name = "Ratio of Height";
// Add CC JAWS effect
var jawsEffect = letterBoxLayer.Effects.addProperty("CC JAWS");
// Set expressions
var widthExpression = 'a=effect("Dropdown Menu Control")(1);\n' +
'if(a==1){\n' +
' 16;\n' +
'}else if(a==2){\n' +
' 2.35\n' +
'}else if(a==3){\n' +
' 2.39\n' +
'}else if(a==4){\n' +
' 1.85\n' +
'}else if(a==5){\n' +
' 1.66\n' +
'}else if(a==6){\n' +
' 1.37\n' +
'}else if(a==7){\n' +
' 1.33\n' +
'}else if(a==8){\n' +
' 1\n' +
'}else if(a==9){\n' +
' value\n' +
'}';
if (widthSlider(1).canSetExpression) {
widthSlider(1).expression = widthExpression;
}
var heightExpression = 'a=effect("Dropdown Menu Control")(1);\n' +
'if(a==1){\n' +
' 9\n' +
'}else if(a==9){\n' +
' value\n' +
'}else{\n' +
' 1\n' +
'}';
if (heightSlider(1).canSetExpression) {
heightSlider(1).expression = heightExpression;
}
var jawsExpression = 'w=thisComp.width;\n' +
'h=thisComp.height;\n' +
'rw=effect("Ratio of Width")(1);\n' +
'rh=effect("Ratio of Height")(1);\n' +
'a=w*rh/(h*rw);\n' +
'b=h*rw/(w*rh);\n' +
'if(a<1){\n' +
' a*100;\n' +
'}else{\n' +
' b*100;\n' +
'}';
// Set expressions for CC JAWS effect
if (jawsEffect.property("Completion").canSetExpression) {
jawsEffect.property("Completion").expression = jawsExpression;
}
if (jawsEffect.property("Direction").canSetExpression) {
jawsEffect.property("Direction").expression = jawsExpression;
}
app.endUndoGroup();
})();
