Property object
記述
app.project.item(index).layer(index).propertySpec
概要
Property objectはAfter Effectsのレイヤーのプロパティの値、キーフレーム、エクスプレッションの情報を含んでいます。After Effectsのプロパティは、個々のレイヤーにある設定可能な値(多くはアニメーション可能)、エフェクト、マスク、移動や変形といったものです。
これらプロパティへのアクセスの方法はPropertyBase objectおよびPropertyGroup objectのproperty() methodを参照してください。
PropertyはPropertyBaseのサブクラスです。PropertyではPropertyBaseのすべてのメソッドとアトリビュートに加えて、下の表のメソッドとアトリビュートが使用可能です。
注意: 一般的には "プロパティ"と呼ばれるJavaScriptオブジェクトは、After Effectsのプロパティの定義との混乱を避けるために、このガイドでは "アトリビュート"と呼ばれています。
サンプル
不透明度の値を取得
var myProperty = myLayer.opacity;
//opacity has propertyValueType of OneD, and is stored as a float
myProperty.setValue(50); // set opacity to 50%
// Variable myOpacity is a float value
var myOpacity = myProperty.value;
位置の値を取得
var myProperty = myLayer.position;
//position has propertyValueType of ThreeD_SPATIAL, and is stored as an array of 3 floats
myProperty.setValue([10.0, 30.0, 0.0]);
// Variable myPosition is an array of 3 floats
var myPosition = myProperty.value;
マスクのシェイプを閉じている状態から開く。
var myMask = mylayer.mask(1);
var myProperty = myMask.maskPath;
myShape = myProperty.value;
myShape.closed = false; myProperty.setValue(myShape);
指定された時間でのカラーの値を取得。
var myProperty = myLight.color;
var colorValue = myProperty.valueAtTime(2,true);
colorValue[0] = 0.5 * colorValue[0];
myProperty.setValueAtTime(4,colorValue);
3.5秒目でエクスプレッションによるスケール値が [10,50]であるを確認。
var myProperty = myLayer.scale;
// false value of preExpression means evaluate the expression
var scaleValue = myProperty.valueAtTime(3.5,false);
if (scaleValue[0] == 10 && scaleValue[1] == 50) {
alert("hurray");
} else {
alert("oops");
}
5秒で0〜90度まで回転して10秒で戻るアニメーションのキーフレーム。
myProperty = myLayer.rotation;
myProperty.setValueAtTime(0, 0);
myProperty.setValueAtTime(5, 90);
myProperty.setValueAtTime(10, 0);
テキストレイヤーのソーステキストの最初の3つのキーフレームの値を変更。
myProperty = myTextLayer.sourceText;
if (myProperty.numKeys < 3) {
alert("error, I thought there were 3 keyframes");
} else {
myProperty.setValueAtKey(1, new TextDocument("key number 1"));
myProperty.setValueAtKey(2, new TextDocument("key number 2"));
myProperty.setValueAtKey(3, new TextDocument("key number 3"));
}
例: 便利な構文を用いた値の設定方法。
// These two are equivalent. The second fills in a default of 0.
myLayer.position.setValue([20, 30, 0]);
myLayer.position.setValue([20, 30]);
// These two are equivalent. The second fills in a default of 100.
myLayer.scale.setValue([50, 50, 100]);
myLayer.scale.setValue([50, 50]);
// These two are equivalent. The second fills in a default of 1.0
myLight.color.setValue([.8, .3, .1, 1.0]);
myLight.color.setValue([.8, .3, .1]);
// These two are equivalent. The second creates a TextDocument
myTextLayer.sourceText.setValue(new TextDocument("foo"));
myTextLayer.sourceText.setValue("foo");