In cases where After Effects must preserve state information around the functions your AEGP calls (as when an artisan is rendering a frame, or a keyframer is adding and removing a series of keyframes from the same stream), you'll call begin() and end() functions.
Typically, the begin function will return an opaque identifier, or 'cookie', which you must then pass to the functions being used. The end function will properly dispose of the cookie. See AEGP_StartAddKeyframes()
(under aegps/aegp-suites.AEGP_KeyframeSuite
) for an example.
If you call AEGP_AddCompToRenderQueue
(from aegps/aegp-suites.AEGP_RenderQueueSuite
), or if the user manually adds or removes a composition from the render queue, all references to render queue items are invalidated. Similarly, adding or removing output modules invalidates any such references for each render queue item.
Solids have names in the After Effects UI, but not in their PF_LayerDef
effect-basics/PF_EffectWorld
. Consequently, their names cannot be retrieved by AEGP_GetItemName
(in aegps/aegp-suites.AEGP_ItemSuite
) or AEGP_GetLayerName
(in aegps/aegp-suites.AEGP_LayerSuite
).
However, you can use the ItemH associated with them to AEGP_GetItemName
(from aegps/aegp-suites.AEGP_ItemSuite
).
Use AEGP_ItemSuite>AEGP_ReportInfo()
to report information to users, and identify your plug-in. AEIO plug-ins use the msg_func pointer contained in the AEIO_BasicData they're passed (with every function) instead.
After Effects computes rotation based on auto-orientation (towards path, or point of interest), then computes Orientation, then computes X, Y, and Z rotation.
Use AEGP_GetNewStreamValue
(in aegps/aegp-suites.AEGP_StreamSuite
) to get the layer's layer_id
, then the new AEGP_GetLayerFromLayerID
(in aegps/aegp-suites.AEGP_LayerSuite
) to get the AEGP_LayerH
.