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のプロパティの定義との混乱を避けるために、このガイドでは "アトリビュート"と呼ばれています。



 propertyValueType プロパティの値の種類。
 value プロパティの現在の値。
 hasMin trueの場合、プロパティには設定可能な最低値が存在している。
 hasMax trueの場合、プロパティには設定可能な最大値が存在している。
 minValue 設定可能なプロパティの最小値。
 maxValue 設定可能なプロパティの最大値。
 isSpatial trueの場合、プロパティは空間座標の設定値。
 canVaryOverTime trueの場合、プロパティにキーフレームが設定可能。
 isTimeVarying trueの場合、プロパティにはキーフレームまたはエクスプレッションが設定されている。
 numKeys プロパティに追加されているキーフレームの数。
 unitsText 値の単位を表現するためのテキストの記述。
 expression このプロパティのエックスプレッションの文字列。
 canSetExpression trueの場合、エクスプレッションがスクリプトによって設定可能。
 expressionEnabled trueの場合、エクスプレッションによってこのプロパティ値を設定可能。
 expressionError エクスプレッションの判定時にエラーが発生。
 selectedKeys プロパティで選択されているキーフレーム。
 propertyIndex プロパティのインデックス。
 dimensionsSeparated trueの場合、プロパティの寸法(X,Yなど)は別々のプロパティとして表されます。
 isSeparationFollower trueの場合、プロパティは多次元プロパティののいずれかを表します。
 isSeparationLeader trueの場合、プロパティは多次元プロパティで分離が可能です。
 separationDimension この次元は多次元のLeader内で表しています。
 separationLeader このseparated followerの多次元のプロパティ。



 valueAtTime() 指定された時間でのプロパティの値を取得。
 setValue() プロパティの静的な値を設定。
 setValueAtTime() プロパティのキーフレームを作成。
 setValuesAtTimes() プロパティのキーフレームのセットを作成。
 setValueAtKey() キーフレームを見つけ出して、そのキーフレームのプロパティに値を設定する。
 nearestKeyIndex() 指定された時間の最寄りのキーフレームを取得。
 keyTime() 条件が発生した時間を取得します。
 keyValue() 条件が発生した時間でのキーフレームの値を取得します。
 addKey() 指定された時間にプロパティのキーフレームを追加します。
 removeKey() プロパティからキーフレームを削除。
 isInterpolationTypeValid() trueの場合、このプロパティは補間が可能。
 setInterpolationTypeAtKey() キーフレームの補間の種類を設定。
 keyInInterpolationType() キーフレームの「イン」側の補間方法を取得。
 keyOutInterpolationType() キーフレームの「アウト」側の補間方法を取得。
 setSpatialTangentsAtKey() キーフレームの空間補間法のイン/アウトの接線のベクトルを設定。
 keyInSpatialTangent() キーフレームの空間補間法のイン/アウトの接線のベクトルを取得。
 keyOutSpatialTangent() キーフレームの空間補間法のアウト側の接線を取得。
 setTemporalEaseAtKey() キーフレームの時間補間法のイージーイーズを設定。
 keyInTemporalEase() キーフレームの時間補間法のイン側のイージーイーズを取得。
 keyOutTemporalEase() キーフレームの時間補間法のアウト側のイージーイーズを取得。
 setTemporalContinuousAtKey() キーフレームの時間補間法の連続ベジェモードを設定。
 keyTemporalContinuous() キーフレームの時間補間法が連続ベジェモードになっているか。
 setTemporalAutoBezierAtKey() キーフレームの時間補間法の自動ベジェモードを設定。
 keyTemporalAutoBezier() キーフレームの時間補間法が自動ベジェモードになっているか。
 setSpatialContinuousAtKey() キーフレームの空間補間法の連続ベジェモードを設定。
 keySpatialContinuous() キーフレームの空間補間法が連続ベジェモードになっているか。
 setSpatialAutoBezierAtKey キーフレームの空間補間法の自動ベジェモードを設定。
 keySpatialAutoBezier() キーフレームの空間補間法が自動ベジェモードになっているか。
 setRovingAtKey() キーフレームの時間ロービングモードの設定。
 keyRoving() キーフレームが時間ロービングモードになっているか。
 setSelectedAtKey() キーフレームを選択/非選択の設定。
 keySelected() キーフレームが選択状態になっているか
 getSeparationFollower() 多次元のプロパティで、指定した次元のプロパティを取得する。



サンプル

不透明度の値を取得
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