我是靠谱客的博主 震动大碗,最近开发中收集的这篇文章主要介绍第一章 Adobe After Effects AE插件开发 SDK入门-AE内部结构定义(一)-版本,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1.AE内部结构定义
- 2.作者答疑
1.AE内部结构定义
开发AE插件会使用到非常多的AE内部数据结构,先大致了解这些结构对于开发AE插件,还是非常有帮助,源代码如下所示:
//CC
#define PF_AE141_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE141_PLUG_IN_SUBVERS 14 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE140_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE140_PLUG_IN_SUBVERS 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE138_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE138_PLUG_IN_SUBVERS 11 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
// AE137 is same plugin version as AE136, below
#define PF_AE136_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE136_PLUG_IN_SUBVERS 10 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE135_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE135_PLUG_IN_SUBVERS 9 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
// AE131 and AE132 are the same plugin version as AE130, below
#define PF_AE130_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE130_PLUG_IN_SUBVERS 7 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE122_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE122_PLUG_IN_SUBVERS 6 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE121_PLUG_IN_VERSION 13 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE121_PLUG_IN_SUBVERS 5 // auto-set by prep_codeline_for_release.py, adjust comment if manually edit okay
#define PF_AE120_PLUG_IN_VERSION 13
#define PF_AE120_PLUG_IN_SUBVERS 4
//CS6.0.1
//Plugins have to make dummy checkout (hack) to fix W3163764 in CS6. The bug has been fixed in CS6.0.1 so increase SDK minor version
//so that plugins can constrain the hack only for CS6.
#define PF_AE1101_PLUG_IN_VERSION 13
#define PF_AE1101_PLUG_IN_SUBVERS 3
#define PF_AE110_PLUG_IN_VERSION 13
#define PF_AE110_PLUG_IN_SUBVERS 2
#define PF_AE105_PLUG_IN_VERSION 13
#define PF_AE105_PLUG_IN_SUBVERS 1
#define PF_AE100_PLUG_IN_VERSION 13
#define PF_AE100_PLUG_IN_SUBVERS 0
#define PF_AE90_PLUG_IN_VERSION 12
#define PF_AE90_PLUG_IN_SUBVERS 14
#define PF_AE80_PLUG_IN_VERSION 12
#define PF_AE80_PLUG_IN_SUBVERS 13
#define PF_AE70_PLUG_IN_VERSION 12
#define PF_AE70_PLUG_IN_SUBVERS 12
#define PF_AE65_PLUG_IN_VERSION 12
#define PF_AE65_PLUG_IN_SUBVERS 11
#define PF_AE41_PLUG_IN_VERSION 12
#define PF_AE41_PLUG_IN_SUBVERS 2
#define PF_AE40_PLUG_IN_VERSION 12
#define PF_AE40_PLUG_IN_SUBVERS 1
#define PF_AE31_PLUG_IN_VERSION 11
#define PF_AE31_PLUG_IN_SUBVERS 6
#define PF_AE31_PLUG_IN_SUBVERS_STRICTIFY 8
#define PF_AE_PLUG_IN_VERSION PF_AE141_PLUG_IN_VERSION // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
#define PF_AE_PLUG_IN_SUBVERS PF_AE141_PLUG_IN_SUBVERS // auto-set by prep_codeline_for_release.py, adjust comment if manually edit is okay
/* Note: AE3.1 will drive any v11.x plugin
AE4.0 will drive any v11.x or v12.x plugin
AE4.1 will drive any v11.x or v12.x plugin, changed current version from 12.1 -> 12.2
If you use PF_AE31_PLUG_IN_VERSION, PF_AE31_PLUG_IN_SUBVERS_STRICTIFY
or later (e.g. 11.8 or 12.0) AE4.0 will enforce new stricter rules and
report more plug-in errors.
*/
这一部分是版本定义,区别各种不同版本。部分常用参数和枚举变量,代码如下:
#define PF_MAX_EFFECT_NAME_LEN 31
#define PF_MAX_EFFECT_CATEGORY_NAME_LEN 31
#define PF_MAX_EFFECT_PARAM_NAME_LEN 31
#define PF_MAX_PARAM_DESCRIPTION_LEN 31
#define PF_MAX_PARAM_VALUE_LEN 31
#define PF_MAX_EFFECT_MSG_LEN 255
// Through AE6.5, effects could only have this many parameters. Now the number is unlimited.
#define PF_AE65_AND_EARLIER_MAX_NUM_EFFECT_PARAMS 127
#define PF_MAX_WORLD_WIDTH 30000
#define PF_MAX_WORLD_HEIGHT 30000
#define PF_FIRST_ERR 512
/* Standard effect categories for After Effects effects modules.
* These need to be set in the PiPL.
*/
#define PF_Category_BLUR_AND_SHARPEN "Blur & Sharpen"
#define PF_Category_CHANNEL "Channel"
#define PF_Category_DISTORT "Distort"
#define PF_Category_IMAGE_CONTROL "Image Control"
#define PF_Category_KEYING "Keying"
#define PF_Category_PERSPECTIVE "Perspective"
#define PF_Category_STYLIZE "Stylize"
#define PF_Category_TEXT "Text"
#define PF_Category_VIDEO "Video"
#define PF_Category_TRANSITION "Transition"
#define PF_Category_AUDIO "Audio"
#define PF_Category_OTHER "Other"
enum {
PF_Quality_DRAWING_AUDIO = -1, // only used to inform audio plugins that the output
// will be used to draw the waveform; the plugin should
// not perform any filtering operations that may weaken
// the amplitude when rendering at low sampling rates
PF_Quality_LO = 0, // LO & HI are sent to both audio & visual effects
PF_Quality_HI
};
typedef A_long PF_Quality;
enum {
PF_MF_Alpha_PREMUL = 0,
PF_MF_Alpha_STRAIGHT = (1L << 0)
};
typedef A_long PF_ModeFlags;
#define PF_ALPHA_PREMUL(F) (((F) & 0x00000001) == 0)
#define PF_ALPHA_STRAIGHT(F) (((F) & 0x00000001))
enum {
PF_Field_FRAME = 0L,
PF_Field_UPPER = 1L,
PF_Field_LOWER = 2L
};
typedef A_long PF_Field;
/* PF_ParamType
*/
enum {
PF_Param_RESERVED = -1,
PF_Param_LAYER = 0,
PF_Param_SLIDER, /* obsolete, use PF_Param_FLOAT_SLIDER */
PF_Param_FIX_SLIDER,/* obsolete, use PF_Param_FLOAT_SLIDER */
PF_Param_ANGLE,
PF_Param_CHECKBOX,
PF_Param_COLOR,
PF_Param_POINT,
PF_Param_POPUP,
PF_Param_CUSTOM, /* obsolete */
PF_Param_NO_DATA, /* used for CustomUI in Effect window controls, with NO data stream */
PF_Param_FLOAT_SLIDER,
PF_Param_ARBITRARY_DATA, // in AE: must combine with either PF_PUI_TOPIC/PF_PUI_CONTROL or PF_PUI_NO_ECW
// in PPro starting with 8.0: it's OK to set none of those flags, which allows you to
// see the parameter's keyframe track on the right side of Effect Controls
// without creating a custom control
PF_Param_PATH,
PF_Param_GROUP_START,
PF_Param_GROUP_END,
PF_Param_BUTTON, // must combine with PF_ParamFlag_SUPERVISE
PF_Param_RESERVED2,
PF_Param_RESERVED3,
PF_Param_POINT_3D // only supported by AE, not PPro
};
typedef A_long PF_ParamType;
有些参数阈值,有些是分哪些模块,它们都是可以转换成整形的有特定意义的标志。
2.作者答疑
如有疑问,请留言。
最后
以上就是震动大碗为你收集整理的第一章 Adobe After Effects AE插件开发 SDK入门-AE内部结构定义(一)-版本的全部内容,希望文章能够帮你解决第一章 Adobe After Effects AE插件开发 SDK入门-AE内部结构定义(一)-版本所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复