-
Notifications
You must be signed in to change notification settings - Fork 0
/
trimComp.jsx
46 lines (35 loc) · 1.27 KB
/
trimComp.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
(function() {
function compByName(name) {
for (var i = 1; i <= app.project.items.length; i++) {
var item = app.project.items[i];
if (item instanceof CompItem && item.name === name) {
return item;
}
}
}
function layerByName(comp, name) {
for (var i = 1; i <= comp.layers.length; i++) {
var item = comp.layers[i];
if (item.name === name)
return item;
}
}
if (typeof _trim !== 'undefined') {
// get the settings
var comp = _trim.get('comp');
var layer = _trim.get('layer');
var handle = _trim.get('handle');
// var comp = 'rendercomp';
// var layer = 'target';
// var handle = 0.5;
// access the render comp and layer
var renderComp = compByName(comp);
var referenceLayer = layerByName(renderComp, layer);
// calculate the desired outpoint (in comp time)
var newOutpoint = referenceLayer.inPoint + referenceLayer.source.duration;
// apply to the layer
referenceLayer.outPoint = newOutpoint;
// apply to the comp, with the handle
renderComp.workAreaDuration = newOutpoint - renderComp.workAreaStart + handle;
}
})();