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");


サブページ (2): Attributes Methods
Comments