【問題】
AfterEffects CC 2015 (13.5) にて、「Property.valueAtTime(time,false)」が返すRGB(A)値が全て[0,0,0,(1)]となってしまいます。
※ 以前の AfterEffects CC 2014 (13.0) では、正常に取得出来ていました。
【内容】
行いたいこととしては、一つのコンポジションから取得したレイヤーの「エフェクト: グロー[カラーA]」プロパティ(propObj)において、
キーフレーム毎のRGB(A)値をCSVファイルに出力したい。
具体的なコードは以下となります。
解決策など、何かご存知の方がいらっしゃればご教授お願い致します。
////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
// 初期情報取得
frameRate = CompObj.frameRate;
workAreaIn = CompObj.workAreaStart;
workAreaEnd = CompObj.workAreaStart + CompObj.workAreaDuration;
layObj = CompObj.layer(1);
// … 省略 … (layObj 」の「エフェクト: グロー[カラーA]」プロパティを「propObj」に取得する)
// fps / 時間位置 / ループ数を算出
var fps = 1 / frameRate;
var timePoint = workAreaIn;
var loopCnt = workAreaEnd / fps;
var ErrCnt = 0; // undefined 取得エラー用リトライカウンタ
// キーフレーム毎のプロパティ値を出力する
for ( var i = 0; i <= loopCnt; i++) {
ErrCnt = 0;
timePoint = i * fps;
while (ErrCnt < 10) {
val = propObj.valueAtTime(timePoint, false); // プロパティ値取得
// エラーチェック
if (val == undefined) {
// 取得失敗
ErrCnt++; // カウントアップ
}
else {
// 取得成功
break;
}
}
// エラーカウントチェック
if (ErrCnt >= 10) {
alert("[valueAtTime] [Error] 10Count Over!!!"); // Error 表示
return true; // Error 発生 ( ※ 処理強制終了)
}
if (val instanceof Array) {
fileObj.writeln(val[0]+ ',' +val[1]+ ',' +val[2]); // プロパティ値出力
}
delete val; // メモリ解放
}
////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////