Property object

記述

app.project.item(index).layer(index).propertySpec

概要

Property objectはAfter Effectsのレイヤーのプロパティの値、キーフレーム、エクスプレッションの情報を含んでいます。After Effectsのプロパティは、個々のレイヤーにある設定可能な値(多くはアニメーション可能)、エフェクト、マスク、移動や変形といったものです。

これらプロパティへのアクセスの方法はPropertyBase objectおよびPropertyGroup objectproperty() 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");