タイムレンジがプリファレンスのまま変化しない。
そもそも、アニメーションを中間ファイルで管理しようとするのが問題なんですけど・・・。
地味に面倒です。
そこで、アニメーションカーブを調べて、タイムレンジを復元するスクリプトを作成してみました。
global proc string tryRestoreTimeRange() { float $min; float $max; string $aniCrvs[]=`ls -typ "animCurve"`; if(!`size $aniCrvs`) return ""; int $isFirst=1; for( $aniCrv in $aniCrvs ) { int $kc=`keyframe -q -kc $aniCrv`; float $tmpMin[]=`keyframe -in 0 -q $aniCrv`; float $tmpMax[]=`keyframe -in ($kc-1) -q $aniCrv`; if( $isFirst ) { $isFirst=0; $min=$tmpMin[0]; $max=$tmpMax[0]; } if( $tmpMin[0]<$min ) $min=$tmpMin[0]; if( $max<$tmpMax[0] ) $max=$tmpMax[0]; } eval("playbackOptions -min "+$min+" -max "+$max+" -ast "+$min+" -aet "+$max); return ($min+":"+$max); }
アニメカーブノードをリストアップしてキーフレームの先頭と末尾の最小、最大を取るだけ。
もう少し賢くしたい感じはする。
0 件のコメント:
コメントを投稿