Edit a Composition
Accessing a Composition
A Composition
can be retrieved from a ProjectItem
with ProjectItem.getMainEffectInstance()
Change Composition parameters
Since the Composition
class inherits Effect
, all its Param
can be accessed with Autograph.Effect.param(uniqueName)()
or Autograph.Effect.getParams()
.
However, some commonly used Params have a dedicated API to make it easier:
comp.setFormat(width, height, pixelAspectRatio)
comp.framerate = 60.0
# 300 frames at 60fps is 5 seconds
comp.duration = 300
Manage layers
Composition
contains is a list-like API for managing layers:
comp.addLayer(Autograph.Layer2D())
allLayers = comp.getLayers()
for i in range(len(allLayers)):
print("Layer %i is %r" % (i, allLayers[i]))
To create a layer with a project item as source, use the dedicated constructor:
project=Autograph.app.getActiveProject()
myFootage=project.importFootage('/media/myfiles/video.mov')
...
comp.addLayer(Autograph.Layer2D(myFootage))
Under the hood, this constructor assigns an Effect
returned from Autograph.ProjectItem.createEffectSharedInstance()
to the generator slot of the source param of the layer. Here is the equivalent:
project=Autograph.app.getActiveProject()
myFootage=project.importFootage('/media/myfiles/video.mov')
layer=Autograph.Layer2D()
# Note that we create a shared copy of the effect so that the user can unshare parameters if needed
layer.source.setGeneratorEffect(myFootage.createEffectSharedInstance())
comp.addLayer(layer)
Setting the layer transform
The layer transform parameters can be accessed with the Layer2D.transform
attribute or with the generic Effect.param()
accessor.
layer.transform.position.setValues([300.,0.])