AEJoy —— AE 插件开发中的 PF_ParamDef 结构体(一)

438 阅读2分钟

「这是我参与11月更文挑战的第 28 天,活动详情查看:2021最后一次更文挑战」。

参加该活动的第 47 篇文章

正文

PF_ParamDef

After Effects 将 PF_ParamDefs 数组和每个选择器传递给 effects,该数组描述插件当前的参数。参数数组中的值仅在某些选择器期间有效(这在 命令选择器 描述中有说明)。

第一个参数

第一个参数 params[0] 是要应用效果的输入图像(PF_EffectWorld / PF_LayerDef)。

其他参数

所有参数类型都由 PF_ParamDef 表示。使用联合体(Union),这样只需要(或应该)填充 PF_ParamDef 的相关部分。

PF_ParamDef 成员

数据类型名称描述
A_longid该参数的 ID 。如果跨版本维护参数的 ID ,则可以在插件的未来版本中重新排列参数,而不会导致用户重新应用您的效果。
PF_ChangeFlagschange_flags如果更改了参数值,则设置。 PF_Cmd_USER_CHANGED_PARAMPF_Cmd_UPDATE_PARAMS_UI 只在拖动(而不是单击! )事件时有效。
PF_ParamUIFlagsui_flags在添加之前指定参数的 UI 行为; 事件处理过程中只能设置 PF_PUI_DISABLED
A_shortui_width参数的用户界面宽度(只适用于非标准参数)。
A_shortui_height参数的用户界面高度(只适用于非标准参数)。
PF_ParamTypeparam_type参数类型
A_char[32]name参数的名称。可以在事件处理期间更改。是的,在 After Effects 1.0 之后,更长的参数名就已经被请求了。想想用 31 个简单的字符来充分描述你改变世界的效果,就像俳句一样,是一种语言挑战。
PF_ParamFlagsflags在添加之前指定参数的 UI 行为; 只能在事件处理期间设置 PF_ParamFlag_COLLAPSE_TWIRLY
PF_ParamDefUnionu所有可能的参数类型的并集。只有由 param_type 指定的类型包含有意义的数据。

PF_ValueDisplayFlags

PF_ParamDefUnion 中,PF_FloatSliderDefPF_FixedSliderDef 都有一个成员变量 PF_ValueDisplayFlags ,它允许它们响应用户的像素值显示首选项(在信息面板中设置)。如果设置了这个参数,参数的值将显示为 0-10-2550-327680.0-1.0 ,这取决于首选项。您还可以设置第一比特位(PF_ValueDisplayFlag_PERCENT),以便在参数显示的值后面附加一个百分比符号。

我们知道您永远不会做这样的事情,但是如果您创建一个以百分比显示的参数,请不要允许 0 到 100 之外的任何范围,以免使用户感到困惑。Percent 的意思是“百分之一”。