ae里的wiggle表达式(17.AE表达式之function)
说明:AE一般指Adobe After Effects。
前面我们对对象(Object)有了一定的了解,而且我们还介绍了一个特定的对象:方法(Method)。方法(Method)可以对值的进行操作并且可以生成新值。但是,如果我们需要的方法(Method)不存在,而我们想要创建自己的方法,该怎么办?
创建一个函数 function接下来我们介绍下一个关键字 function:
// 创建一个 function:
function nameFunction (){
// 你的 function 代码
return result; // 返回一个结果
};
// 调用上面创建的 function:
nameFunction(); // 使用 function 名称调用
我们通过一个例子来看看这是如何工作的,创建一个椭圆形状图层,并将其放置在合成的左上角:
接下来,我们打开图层的位置属性的表达式编辑器,并写入:
function center(){
return [thisComp.width/2,thisComp.height/2];
};
center();
我们看到,使用刚刚创建的这个自定义的函数,来将图层移动到了合成的中心。
function 创建详解
function nameFunction
/*
要创建一个函数,我们首先需要写该函数关键字 function,然后命名该函数。
在我们的示例中,我们给自定义函数命名为 center。
你可以根据需要为你函数命名,就像定义一个变量一样,只要你遵守我们提到的关于命名一个变量的规则。
这也适用于创建的任何新术语,但不要以数字开头,也不要使用已经在表达式中存在的术语。
*/
()
/*
为函数命名后,需要在后面添加一个括号 ()。
*/
{}
/*
接下来,我们在花括号内来定义函数体,即,编写函数要执行的操作。
请记住,当我们编写表达式时,它可以完全写在花括号之间;
创建函数时,就像创建一个可以通过快捷方式调用的表达式。
*/
return
/*
在花括号内,我们可以编写一个函数,就像编写一个独立存在的表达式一样。
需要注意的是,函数的结果需要使用关键字return返回,因此它将生成函数创建的新值。
没有return返回内容,它就不会产生任何内容。
当表达式执行到达return时,函数将停止执行。
return关键字有一个特定规则,函数的结果需要在同一行上才能起作用。
在我们的示例中,我们只有一条语句,因此我们直接在return关键字之后编写语句。
我们需要一个数组值来生成位置值,所以在括号中我们将创建一个数组值来描述x和y坐标。
宽度和高度是组成的值,将宽度和高度的数值,除以2,得到每个维度的中间值。
*/
使用这个函数 function
/*
一旦创建并定义了函数,就必须调用它,就像调用对象一样。
创建了函数并不代表被使用了,在表达式中创建对象或函数后,还得需要去调用它。
要调用该函数,我们需要输入要使用的函数的名称,但请注意,函数名称后需要加上括号。
在上述示例中,我们在表达式编辑器中输入 center() 来调用了而这个函数,
这个 center() 函数通过计算返回给我们最终要转到的位置的宽高值。
*/
上面我们创建了一个可以自己进行工作的函数,那么,如果我们需要让函数按照我们特定的要求,对我们告诉他的一些数据进行处理,并返回给我们结果,要如何处理呢?
这就需要我们创建一个带参数的函数 function :
// 创建一个带参数 arguments 的函数 function:
function nameFunction (arguments){
// 你的 function 代码,并包含对参数 arguments 的处理
return result; // 返回一个结果
};
// 调用上面创建的 function,并带上参数 arguments:
nameFunction(arguments); // 使用 function 名称调用
下面,我们尝试创建一个函数,使用函数我们反转图层的x和y坐标,仍然在位置属性的表达式编辑器中写入表达式代码。
初始状态:
初始位置是 [372,204]。
位置属性中写入,带有1个参数的函数:
function invert (a){
return [a[1],a[0]];
};
invert(position);
我们可以看到,当表达式写入后,位置属性数值改变成了 [204,372]。
在这里,我们的函数本身是并不知道对哪个数据进行处理的,而是在调用这个函数时,我们通过传递参数的方式,将一个数据(这里传递的是位置数据)告诉了我们自定义的函数 invert。
上面我们传递的参数是一个数组值,仅传递了1个参数,当然我们也可以将参数数据分开传递。
位置属性中写入,带有2个参数的函数:
function invert (a,b){
return [b,a];
};
invert(position[0],position[1]);
大家可以看到,效果是一样的。
函数的参数函数的参数是可以添加若干个的,需要注意,多个参数之间要用英文逗号“,”进行分隔,就像这样:
nameFunction (argument 1, argument 2,..., argument n)
以上是函数 function 的基础使用方法,大家可以尝试一下!
以上便是本节全部内容,如果你对AE表达式感兴趣,请关注后续文章!
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com