« ゲーム音楽コンサート | トップページ | タイミング »

2019年4月25日 (木)作業を少しは楽にするためには

おはようございます。本日の当番、プログラマのY.Nです。
今回は単純な作業を楽するためにはってお話です。

AMではプログラマでもAfterEffectsを使うことがあるのですが、正直結構めんどくさいなと思っている作業があります。

そう!!!
それが素材のループ化です。
背景や図柄など同じ映像を繰り返し再生する際に行うのですが、正直ボタン一つでできるってわけではなく、タイムリマップを指定してエクスプレッションを書く必要があり、とても面倒だと感じています。

なので、ボタンをぽちっとするだけでループになるスクリプトを書いてみました。

↓↓↓こんな感じ
#target aftereffects
var comp = app.project.activeItem;
var fps = comp.frameRate;
// レイヤーが1つ以上選択されているかどうか?
if(app.project.activeItem.selectedLayers.length > 0){
// 選択されてる数だけ回します。
for(i = 0; i < app.project.activeItem.selectedLayers.length; i++){
var layObj = comp.selectedLayers[i];
// リマップが設定可能か?
if(layObj.canSetTimeRemapEnabled){
// リマップが有効かどうか?
if(false == layObj.timeRemapEnabled) {
var layerDurationInFrame = Math.floor( (layObj.outPoint - layObj.inPoint) * fps );
if(layerDurationInFrame > 1){
layObj.timeRemapEnabled = true;
layObj.timeRemap.expression = "loopOut(Type=\"cycle\");";
                    var firstKeyframeTime = layObj.timeRemap.keyTime(1);
var lastKeyframeTime = layObj.timeRemap.keyTime(2);
                    var endKeyframeTime = lastKeyframeTime - firstKeyframeTime;
                    layObj.timeRemap.setValueAtTime((lastKeyframeTime * fps -1) / fps, (endKeyframeTime * fps -1) / fps);
                    layObj.timeRemap.setValueAtKey(3, 0);
}else{
layObj.timeRemapEnabled = true;
layObj.timeRemap.removeKey(2);
}
layObj.outPoint = comp.duration;
}
}
}
}

案外簡単ですね。
って事で今ではスクリプトなしでは素材のループができない思考になってしまいました。

でも、楽ができてとても幸せです。
困っている方がいましたらどうぞご自由に使ってみてください。

follow us in feedly
result = encodeURIComponent( "http://www.accessgames-blog.com/blog/2019/04/post-e9bbd6.html" );document.write( "result = " , result );&media=https%3A%2F%2Ffarm8.staticflickr.com%2F7027%2F6851755809_df5b2051c9_z.jpg&description=Next%20stop%3A%20Pinterest">

| | コメント (0)

« ゲーム音楽コンサート | トップページ | タイミング »

プログラマー」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« ゲーム音楽コンサート | トップページ | タイミング »