PremiereにはあるのにAfter Effectsにない標準ツール「前方選択」。タイムインジケーター以降の時間にあるレイヤーを選択できます。
After Effectsだってカットの伸び縮みがあれば、以降のレイヤーをずらしますよね?なぜ標準でないのか…。
ないならスクリプトで作ろうというのが自然な流れ。今回はPremiereの前方選択ツールを模したスクリプトを作ります。
今回学べること
スクリプトでの「現在時間インジケーターのある時間」の取得方法と、「レイヤーを選択状態にする」方法、「レイヤーの選択状態の解除」方法を学んでいきます。
[概要]
Premiereの前方選択と同じく、現在の時間以降にインポイントのあるレイヤーを全て選択するスクリプトです。
[使い方]
- タイムラインで現在の時間を任意のタイミングにズラす
- スクリプトを実行する
[解説]
var actCmp=app.project.activeItem;
function f_selectForward(){
for(i=1;i<=actCmp.layers.length;i++){
actCmp.layer(i).selected=false;
if(actCmp.time<=actCmp.layer(i).inPoint){
actCmp.layer(i).selected=true;
}//if
}//for
}
app.beginUndoGroup("selectForward");
f_selectForward();
app.endUndoGroup();
まず、for文が1から開始になっています。
当サイトで多用している選択中のレイヤー(app.project.activeItem.selectedLayers)であれば、配列に入るので[0]開始ですが、今回はアクティブコンポジションのレイヤーを上からチェックしてきます。
レイヤー番号は1から始まるのです。そのため繰り返し条件は”最後のレイヤー番号=レイヤー数を「含める」”必要があり、「<」でなく「<=」です。
i=1;i<=actCmp.layers.length
ここだけエラーくらい易いところなのでメモしておきます。
ポイントは「.selected」です。
レイヤー.selectedにtrueを代入すれば、そのレイヤーを選択状態にし、falseを代入すれば選択解除します。
これを使い、アクティブなコンポジション内の全レイヤーのインポイントと現在の時間「app.project.activeItem.time」を比較し、後ろにあるレイヤーを全て選択します。
その後は選択解除に気をつけてレイヤーを移動してください。
この記事へのコメントはありません。