After Effects CC SDK 使用指南(一)—— 序

378 阅读8分钟

前言

很久之前就想一篇文章,一直没有太多时间。本系列文章将长期更新,主要是翻译Adobe官方的 pdf 文件,因本人能力有限,难免有翻译错误之处,欢迎指正。

文档原文附在后半部分,官方资料下载地址

欢迎转载,转载请表明出处。

本文仅供参考

其他文章链接

  • 第一章 介绍
  • 第二章 Effects基础

After Effects CC SDK 使用指南

Adobe System股份有限公司版权所有保留所有权利。

本文档中的信息仅供参考使用,如有更改,恕不另行通知,且不应被解释为Adobe System公司的承诺。Adobe System公司不为可能出现在本文件的任何错误或不准确承担任何责任。本文档中描述的软件是在许可下提供的,只能根据许可条款使用或复制。

Adobe、Adobe After Effects、Adobe Premiere Pro、Adobe Photoshop、Adobe Illustrator、Adobe Type Manager、ATM和PostScript是可能在某些司法管辖区注册的Adobe Systems Incorporated的商标。Macintosh和Apple是注册商标,macOS是Apple Computer, Inc.的商标。Microsoft、Excel和Windows是微软公司的注册商标。所有其他产品或名称品牌均为其各自持有人的商标。

本文档中的材料由Adobe数字视频和音频集成工程团队提供。

表一:版本历史

January 1993Russell BelferVersion 1.0 – Initial SDK release.
January 1994Dan WilkVersion 2.0 – Updates.
August 1994Dave Herbstman
Dan Wilk
Version 2.0.1 – Added support for PowerPC.
5 March 1996Brian AndrewsVersion 3.0 – Preliminary release for the After Effects developer kitchen.
21 June 1996Brian AndrewsVersion 3.1 – Final 3.x release.
13 Nov. 1996Brian AndrewsVersion 3.1 SDK Release 2 – Minor updates.
17 April 1997Brian AndrewsVersion 3.1 SDK Release 3 – First public release (really a pre-release) of the SDK for Windows development.
1 May 1998Bruce BullisVersion 3.1 SDK Release 6 - Editorial changes only
1 January 1999Bruce BullisVersion 4.0 SDK Release 1 - Added information on new global flags, custom data types, utilization of PICA suites, CustomUI messaging and parameter supervision, new callbacks. many editorial changes.
9 September 1999Bruce BullisRevised for 4.1; added General plug-ins and AEGP information. Added information on new selectors, resize handle.
2 February 2001Bruce Bullis5.0 release. Entire document edited and reformatted. Sections on 16 bit-per-channel color and parameter supervision, as well as the entire AEGP chapter, have all substantially expanded.
1 December 2001Bruce Bullis5.5 release. Added information on new outflags, PiPL changes, and additions and changes to the AEGP API. Numerous clarifications and edits.
4 March 2002Bruce BullisUpdated Mac OS X details, expanded AEIO and AEGP documentation.
20 July 2003Bruce BullisMajor overhauls for After Effects 6.0. Added documentation for all new (and some old) suites, and many supporting details for effects.
4 April 2004Bruce BullisUpdated for 6.5. Expanded and corrected all documentation. Added documentation of all new AEGP functions.
1 December 2005Bruce BullisUpdated for 7.0. Added SmartFX documentation. Noted current suite version numbers throughout. Numerous editorial changes. Documented many new AEGP suite functions.
4 April 2006Bruce BullisUpdated to reference new development system requirements and Xcode-specific issues. Some editing.
1 July 2007Bruce BullisCS3 (8.0) release.
4 May 2009Russell BelferCS4 (9.0) release. Complete reorganization of first three chapters. Fleshed out documentation on Premiere Pro.
28 April 2010Zac LamCS5 (10.0) release. 64-bit porting info. Drawbot.
2 May 2011Zac LamCS5.5 (10.5) release.
26 April 2012Zac LamCS6 (11.0) release. Big reorganization of the AEGP and Artisan chapters. Many additions throughout.
15 July 2013Zac LamCC (12.0) release. API version changes, misc small clarifications, more details in AEIO chapter.
12 June 2014Zac LamCC 2014 (13.0) release. Corrections for accuracy. Removed old version references.
21 July 2015Zac LamCC 2015 (13.5) release.
2 November 2016Zac LamCC 2017 (14.0) release.
12 May 2017Zac LamCC 2017.1 (14.2) release
10 November 2017Zac Lam15.0 release

关于本文档

这些年来这份文件变化很大。从超过20年的API开发和改进积累了多个沉积层的信息。所以,我们确实需要有一个关于After Effects api的每一个细节的信息来源。然而,由于心智正常的人都不会想要阅读这样的文档,所以我们尝试着让它具有吸引力和趣味性。只要有机会,我们将尝试包括更多的图表、插图和purdy pickshurs来解释API的复杂性。一如既往,我们期待你的意见。

文档结构

第一章)概述了After Effects的集成可能性。它解释了插件是什么,以及它们如何在After Effects中使用。它包含了一些示例项目,以及如何修改。它还解释了在哪里安装插件,以及插件使用的资源。

Effect效果插件的基础知识将在 第二章12) 讨论。此概述提供了关于传递到和从effect插件入口点的函数参数的信息。它描述了功能标志、effect效果参数和图像缓冲区。

第3章详细介绍了如何使用提供的许多回调函数开发一个完整的效果插件。它还提供了许多测试思路,以确保插件的稳定性。

SmartFX是对支持32位浮点图像的特效插件API的扩展,这将在第4章中介绍。

第5章介绍了发送给效果插件的事件、如何合并定制用户界面元素、参数监控以及定制数据参数类型对定制UI消息传递的依赖。

音频效果将在第6章中介绍。

第七章详细介绍了After Effects General Plug-in (AEGP) API。将在本文中详细介绍提供的回调函数、连接到内部消息、操作打开项目的当前内容和处理菜单命令。

在第8章中专业插件3D渲染器AEGPs Artisans

第九章介绍AEIOs,专门处理文件输入和输出的AEGPs。

第10章讨论了与 Premiere Pro 和其他支持After Effects插件子集的应用程序兼容相关的问题。

文档约定

函数、结构名和一般C/ c++代码在Courier中; MyStructMyFunction();

蓝色文本是超链接。

命令选择符是斜体;PF_Cmd_RENDER

代码风格

因为我们为自己的插件使用公共api,所以我们的编码准则在整个SDK中都很明显。这是对我们使用的伪新后匈牙利符号的描述。当然,欢迎您以自己喜欢的方式编写代码。如果你强烈认为我们应该改变内部编码标准,请在comp.sys. programer.better.things.to.do.with.your.time.我们会仔细考虑,然后再不做任何改变。

表二:代码约定

类型后缀示例
HandleHfooH
pointer(to)PfooP
BooleanBvisibleB
FloatFdegreeF
LongLoffsetL
unsigned longLucountLu
shortSindexS
charCdigitC
unsigned charCuredCu
function pointer_funcsample_func
time valueTdurationT
char * (Null-terminated C string)ZnameZ
rectangleRboundsR
fixed rectangleFiRboundsFiR
float rectangleFRboundsFR
ratioRtscale_factorRt
void *PVrefconPV
optional parameter
(must be passed, can be NULL)
0extra_flag0

原文

Adobe After Effects CC SDK Guide.
Copyright © 1992–2017 Adobe Systems Incorporated. All rights reserved.
The information in this document is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies that may appear in this document. The software described in this document is furnished under license and may only be used or copied in accordance with the terms of such license.
Adobe, Adobe After Effects, Adobe Premiere Pro, Adobe Photoshop, Adobe Illustrator, Adobe Type Manager, ATM and PostScript are trademarks of Adobe Systems Incorporated that may be registered in certain jurisdictions. Macintosh and Apple are registered trademarks, and macOS are trademarks of Apple Computer, Inc. Microsoft, Excel, and Windows are registered trademarks of Microsoft Corporation. All other products or name brands are trademarks of their respective holders.
The material in this document is supplied by the Adobe Digital Video and Audio Integration Engineering team.

This document has changed much over the years. Part encyclopedia, part how-to guide, with multiple sedimentary layers of accreted information from more than two decades of API development and refinement. Yes, there does need to be one source of information about every last niggling detail of the After Effects APIs. However, since no human in their right mind would ever want to read such a document, we’ve tried to keep it involving and interesting. As opportunity allows, we’ll try to include more diagrams, illustrations, and purdy pickshurs explaining API intricacies. As always, your input is valued and appreciated.

The Introduction provides an overview of the integration possibilities with After Effects. It explains what plug-ins are, and how they work with After Effects. It describes the sample projects, and how to modify them. It explains where to install plug-ins, and what resources they use.
The basics of effect plug-ins are discussed in chapter 2. This overview provides information on the function parameters passed to and from an effect plug-in’s entry point. It describes capability flags, effect parameters, and image buffers.
Chapter 3 dives into the details of developing a complete effect plug-in using the many provided callback functions. It also provides many testing ideas to ensure the plug-in is stabile.
SmartFX is the extension to the effect plug-in API to support 32-bit floating point images, and is covered in chapter 4.
Chapter 5 covers events sent to effect plug-ins, how to incorporate custom user interface elements, parameter supervision, and the reliance of custom data parameter types on Custom UI messaging.
Audio effects are covered in Chapter 6.
Chapter 7 details the After Effects General Plug-in (AEGP) API. Provided callback functions, hooking into internal messaging, manipulating the current contents of open projects and handling menu commands are all covered at length.
Artisans, specialized plug-in 3D renderer AEGPs, are covered in chapter 8.
Chapter 9 documents AEIOs, specialized AEGPs which handle file input and output.
Chapter 10 discusses issues related to compatibility with Premiere Pro and other applications that support a subset of After Effects plug-ins.

Functions, structure names and general C/C++ code are in Courier; MyStruct and MyFunction();
Text in blue is hyperlinked.
Command selectors are italicized; PF_Cmd_RENDER.

Because we use the public APIs for our own plug-ins, our coding guidelines are apparent throughout the SDK. Here’s a description of the pseudo-neo-post-Hungarian notation we use. Of course, you’re welcome to code however you like. If you feel strongly that we should change our internal coding standards, please post your requests at comp.sys.programmer.better.things.to.do.with.your.time, and we’ll carefully consider them before not making any changes