创建一个合成。
单击项目面板底部的合成图标,或在主页屏幕上选择新建合成。
- After Effects 用户指南
- Beta 版
- 快速入门
- 工作区
- 项目与合成
- 导入素材
- 文本和图形
- 绘图、绘画和路径
- 图层、标记和摄像机
- 动画、关键帧、运动跟踪和抠像
- 透明度与合成
- 调整颜色
- 效果和动画预设
- 表达式和自动化
- 沉浸式视频、VR 和 3D
- 视图和预览
- 渲染和导出
- 使用其他应用程序
- 协作:Frame.io 和团队项目
- 内存、存储、性能
- 知识库
创建所含下拉列表允许用户在 Premiere Pro 中自定义的动态图形模板。
在创作动态图形模板 (MOGRT) 时,可保持其属性的灵活性,以便编辑人员在 Premiere Pro 中对其进行自定义。一种方法是通过创建滑块和复选框来实现。您也可以使用具有不同选项的下拉列表来实现此目的。
创建下拉列表非常有用,因为它可为 Premiere Pro 编辑人员提供更多菜单控件和更简单的编辑体验。您可以将这些下拉列表控件设置保存为模板,以便将来用在其他合成和项目中。
创建下拉列表的原因
您可以将滑块和复选框作为编辑选项提供给 Premiere Pro 的编辑人员,但有时它们可能不太直观而且更耗时。在这种情况下,下拉列表可能更加适合。使用此选件可让 Premiere Pro 编辑人员进行以下选择:
选择颜色方案 - 例如,您可以为一组要用于影片字幕的颜色添加一个下拉列表。
不同位置或设计 - 例如,为下沿字幕的位置(例如左侧或右侧)添加一个下拉列表。
动画选项 - 例如,添加一个下拉列表以选择不同的动画持续时间。
文本或资源选项 - 例如,为一周的七天添加一个下拉列表。这样可避免重新键入源文本,并且还可以减少后期制作出错的可能性。
设置下拉列表控件
使用“下拉菜单控件”效果创建下拉列表。要了解此功能的工作原理,请执行以下步骤:
-
-
要添加文本图层,请选择“图层”>“新建”>“文本”,然后键入要添加的文本。在本例中,让我们写入“Morning”。
-
打开“效果和预设”面板并搜索“填充颜色”,然后放置到文本图层上。
-
所有图层就位后,请在“效果和预设”面板中,搜索“下拉菜单控件”,并将其放置到图层上。您也可以通过“效果”>“表达式控制”>“下拉菜单控件”来访问该菜单。
在时间轴面板中,旋转打开文本图层属性,然后按住 Alt 键并单击“源文本”旁边的秒表图标。
在表达式文本字段中,复制以下可更改源文本的表达式代码片段:
var x = effect("Weekday")("Menu").value;
if ( x === 1 ) {
"Morning";
} else if ( x === 2 ) {
"Evening";} else if ( x === 3 ) {
"Night";
}
使用关联器工具,并将名为“Weekday”的下拉菜单链接到源文本属性。
在效果控件面板中,单击“编辑”。该下拉菜单控件附带了一个默认菜单,其中包含三个项:项 1、项 2、项 3。使用此功能可命名菜单选项。您还可以使用“+”图标将更多选项添加到菜单。
-
添加另一个下拉菜单并将其重命名为“Color”。接下来,旋转打开填充颜色图层,然后按住 Alt 键并单击“颜色”属性。要更改文本颜色,请在表达式字段中复制以下文本:
dropDownIndex = effect("Color options")("Menu").value;
switch ( dropDownIndex )
{
case 1: hexToRgb("FF3211");
break;
case 2: hexToRgb("CC1234");
break;
default: hexToRgb("BBB001")
};使用关联器工具并将下拉菜单链接到“颜色”属性。将此下拉列表命名为“Color options”。您可以让颜色跟随颜色属性旁边的颜色图表而变化。
-
要将两个下拉菜单属性相互挂钩,请使用“Color options”关联器工具,并将其链接到“Weekday”下拉菜单。“Color options”下拉菜单会引用“Weekday”下拉菜单,这意味着您选择的“Weekday”也会更改文本颜色。
-
接下来将这些下拉菜单拖到基本图形面板中,然后使用它们创建动态图形模板。
为了帮助您开始创建项目,请下载此示例文件。
下载
下拉列表控件的表达式示例
与其他表达式控件(如滑块)一样,菜单值也称为表达式中的索引。您可以从下面的示例表达式中复制到表达式文本字段中,以使用下拉菜单获得不同的结果。
表达式不会读取菜单项本身的名称。而是读取索引,即该菜单项在列表中的层次位置。
示例 1:定义图层的颜色,并将其引用到下拉控件中的菜单项:
dropDownIndex = thisComp.layer("Null 2").effect("Dropdown Menu Control")("Menu").value;
switch ( dropDownIndex )
{
case 1: hexToRgb("FF4678");
break;
case 2: hexToRgb("CC1234");
break;
default: hexToRgb("BBB007")
};
dropDownIndex = thisComp.layer("Null 2").effect("Dropdown Menu Control")("Menu").value;
switch ( dropDownIndex )
{
case 1: hexToRgb("FF3211");
break;
case 2: hexToRgb("CC1234");
break;
default: hexToRgb("BBB001")
};
示例 2:将源文本与下拉菜单控件结合使用
如果您有一个下拉菜单,其中包含以下菜单项:
- 星期一
- 星期二
- 星期三
则“星期一”为索引 1,“星期二”为索引 2(只要它是列表中的第二项)。如果将“星期二”重命名任何其他名称,则该表达式也不会被破坏,因为它仍是索引 2。
下面提供了一个将源文本与下拉菜单控件结合使用的简单示例:
x = comp("合成名称").layer("图层名称").effect("Dropdown Menu Control")("Menu");
if (x == 1) {
text.sourceText = ("星期一");
}
if (x == 2) {
text.sourceText = ("星期二");
}
if (x == 3) {
text.sourceText = ("星期三");
}
示例 3:定义文本图层的源文本,并将其引用到下拉控件中的菜单项:
var listItems = [
"Lambs",
"Pups",
"Not a thing",
];
var dropDownValue = effect("Dropdown Menu Control")("Menu").value;
listItems[ dropDownValue - 1 ];
var x = effect("Dropdown Menu Control")("Menu").value;if ( x === 1 ) {
"Lambs";
} else if ( x === 2 ) {
"Pups";
} else {
"Not a thing";
}
x = effect("Dropdown Menu Control")("Menu").value;
switch (x) {
case 1 : "dog";
break;
case 2 : "cat";
break;
default : "default" }
使用下拉列表控件时需牢记的事项
- 始终将下拉列表控件重命名为最能反映其内容的文字。
- “下拉菜单控件”中的菜单选项并非区分大小写或文本的选项。这意味着,即使您重命名菜单项,表达式也不会被破坏。但是,它们是区分位置的,因此更改菜单选项的位置会破坏表达式。
- 在动态图形模板中,应均衡使用各种不同的组件。对于存在范围的实例,请使用滑块;对于包含“是”或“否”选项的情况,请使用复选框。
- 链接了所有其他下拉菜单的下拉菜单,将变成父菜单。合成中的下拉菜单会引用父菜单并进行相应的行为。
下拉菜单控件的脚本支持
属性.setPropertyParameters()
方法:
app.project.item(index).layer(index).propertySpec.setPropertyParameters([param-array])
描述:
为属性设置参数。
注释
- 下拉菜单控件效果(matchname:ADBE Dropdown Control)是唯一允许设置参数的属性。
- 无论何时,此方法失败时都将引发异常。
- 要核实某个属性是否允许设置参数,请在调用此方法之前,先核实 isDropdownEffect(请参阅“属性.isDropdownEffect”)。
参数详细信息:
param-array |
字符串数组。此方法将使用提供的字符串数组覆盖现有的菜单项组。 对于指定为菜单项的字符串,存在一些限制: 1.不允许存在空项字符串 2.不允许存在重复的项字符串 3.在项字符串中不允许使用字符“|”。 4.仅允许使用字符串。 5.项字符串应采用可在当前代码页中编码的 ASCII 或多字节。换句话说,项字符串应该是所运行系统的脚本中提供字符串。例如:在英文系统上运行脚本时指定日语的项字符串,将生成项字符串中带有非法字符的下拉菜单效果。 注意:字符串“(-”可指定为项字符串。该字符串在下拉菜单中显示为分隔线。作者需要记住,每个分隔线将为自身声明一个索引。 |
示例:
Dropdowneffect = Dropdowneffect.setPropertyParameters(["星期一", "星期三", "星期五", "星期日"]);
上面的语句将对下拉菜单进行编辑,使其拥有“星期一”、“星期三”、“星期五”、“星期日”作为项。返回的属性将是更新后的属性,且应将其用于所有其他用途。
返回:
更新后的属性。用户应注意,此方法调用的属性对象因内部实施而无效,因此,返回的属性应用于所有其他用途。
属性.isDropdownEffect
方法:
app.project.item(index).layer(index).propertySpec.isDropdownEffect
描述:
如果属性是“下拉菜单控件”效果,则返回 true。
示例:
appliedEffect.property("菜单").isDropdownEffect // returns true
appliedEffect.property("颜色").isDropdownEffect // returns false
appliedEffect.property("羽化").isDropdownEffect // returns false
返回:
布尔值
有问题或想法?
如果您有疑问或有希望分享的想法,请加入我们的 After Effects 社区。我们很荣幸能倾听您的意见并欣赏您的动态图形模板。