资讯详情

第一章 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.作者答疑


  如有疑问,请留言。

标签: ae流通型传感器me

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台