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

439 阅读3分钟

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

参加该活动的第 48 篇文章

正文

Parameter UI Flags

用这些标志控制参数的用户界面。

不要混淆 UI 标志和行为标志;它们驻留在参数定义的不同字段中,如果应用不当,将导致不可预知的行为。

PF_PUI_TOPIC

如果为参数的 “topic” 处理 PF_Cmd_EVENTs,则设置此标志。

“topic” 是在效果控制窗口(ECW)中参数 UI 的一部分,当旋转箭头为该参数旋转时,它仍然可见。

如果设置了这个标志,还必须在 PF_Cmd_GLOBAL_SETUP 时间设置PF_OutFlag_CUSTOM_UI

PF_PUI_CONTROL

如果您在 ECP 中为控制区域(旋转参数的旋转器时变为不可见的区域)处理PF_Cmd_EVENTs,则设置此标志。

如果设置了这个标志,还必须在 PF_Cmd_GLOBAL_SETUP 时间设置PF_OutFlag_CUSTOM_UI

详情请参见 Effect UI & Events

PF_PUI_STD_CONTROL_ONLY

如果你只想要标准控件,请设置此标志 —— 没有数据流将与此参数相关联,因此时间轴面板中将没有关键帧可用。

您可能希望使用标准控件来控制序列数据中的某些内容。

或在 arb 数据,或在合成窗口中的自定义 UI ,或将多个其他控件设置为组。

此标志不能用于:

  • PF_Param_CUSTOM,
  • PF_Param_NO_DATA,
  • PF_Param_LAYER,
  • PF_Param_ARBITRARY_DATA,
  • PF_Param_PATH.

如果你设置了这个标志,你还必须设置 PF_ParamFlag_SUPERVISE(否则你永远不会发现值的变化,这个设置永远不会被用于任何事情)。

这个标志不需要设置 PF_OutFlag_CUSTOM_UI 标志。

如果您想要 PF_Param_ARBITRARY_DATA 的标准控制,只需使用PF_PUI_STD_CONTROL_ONLY 添加一个(或多个)支持的参数类型,然后在处理PF_Cmd_USER_CHANGED_PARAM 时,您可以修改 arb 数据。

PF_PUI_NO_ECW_UI

如果你想在效果控制窗口中不显示 UI,请设置此标志。

假设,你正在通过一些其他方法设置参数的值(例如自定义 UI 在合成窗口,或为了不同的参数处理PF_Cmd_USER_CHANGED_PARAM 期间,同时设置了 PF_ParamFlag_SUPERVISE)。

在 AE 中,这并不影响关键帧在时间轴中的可见性。在 PPro 中,它会删除整行,所以你不会看到关键帧。

PF_PUI_ECW_SEPARATOR

After Effects 中不使用,但在 Premiere 中使用。如果你想在效果控制窗口的参数上方有一条粗线,请设置此标志。

提供这一功能是为了在需要时对参数进行可视化分组(无需添加组)。这个标志可以在运行时通过 PF_UpdateParamUI() 方法更改。

PF_PUI_DISABLED

禁用(变灰)参数,通常响应 PF_Cmd_USER_CHANGED_PARAM

PF_PUI_DONT_ERASE_TOPIC

After Effects 不会删除参数的主题。

PF_PUI_DONT_ERASE_CONTROL

After Effects 不会删除参数的控制。

PF_PUI_RADIO_BUTTON

After Effects 中不使用,但在 Premiere 中使用。显示参数为单选按钮组。仅对 PF_Param_POPUP 有效。

PF_PUI_INVISIBLE

首先在 Premiere 中支持,现在在 After Effects CS6 和更高版本中支持。这将在效果控件和时间轴中隐藏参数 UI 。

仅 Premiere: 标志是动态的,参数可见性可以在 PF_UpdateParamUI 回调期间切换。

除了这些标志外,还可以使用 AEGP_GetDynamicStreamFlags 隐藏或显示效果参数。