首页 > 影视项目大揭秘 > 表达式参考19-属性特性和方法 Property

表达式参考19-属性特性和方法 Property

2020年08月04日

属性特性和方法

value


返回类型:数值、数组或字符串。 

返回属性在当前时间的值。


valueAtTime(t)


返回类型:数值或数组。

 

参数类型:t 是数值。

 

返回属性在指定时间(以秒为单位)的值。

 

例如,要从一组(四个)值中随机选择每个帧的属性值,请在 0、1、2 和 3 秒将您的四个值设为关键帧,然后将以下表达式应用于该属性:

 

  valueAtTime(random(4))


注意:

Dan Ebberts 在其 MotionScript 网站上提供了使用 valueAtTime 和 velocityAtTime 方法的更多示例和技术。


velocity


返回类型:数值或数组。 

返回当前时间的临时速度值。对于空间属性(例如位置),它返回正切矢量值。结果与属性的维度相同。


velocityAtTime(t)


返回类型:数值或数组。 

参数类型:t 是数值。

返回指定时间的临时速度值。


speed


返回类型:数值。 

返回 1D,等于属性在默认时间更改的速度的正速度值。此元素只能用于空间属性。


speedAtTime(t)


返回类型:数值。 

参数类型:t 是数值。

返回指定时间的空间速度值。


wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)


返回类型:数值或数组。

 

参数类型:freqampoctavesamp_mult 和 t 是数值。

 

随机摇动(摆动)属性值。

 

freq 值是每秒摆动的频率。

 

amp 值是向其应用了此值的属性单位中的振幅。

 

octaves 是要加在一起的噪声的八度数。此值控制摆动的详细程度。使此值高于默认值 1 可在摆动中包括更高的频率,使此值低于默认值 1 可在摆动中包括振幅谐波。

 

amp_mult 是 amp 乘以每个八度的值。此值控制谐波减弱的速度。默认为 0.5;使其更接近 1 可以与基本频率相同的振幅添加谐波,使其更接近 0 可以添加更少的细节。

 

t 是基础启动时间。此值默认为当前时间。如果您希望输出成为在不同时间采样的属性值的摆动,请使用此参数。

 

示例:position.wiggle(5, 20, 3, .5) 每秒产生约 5 次摆动,平均大小约 20 像素。除了主要摆动之外,其他两个级别的详细摆动发生的频率为每秒 10 次和 20 次摆动,各自的大小为 10 和 5 像素。

 

对于二维属性(例如缩放),以下示例按相同值摆动两个维度:

 

  v = wiggle(5, 10);   [v[0], v[0]]

 

此示例具有两维属性,只能在 Y 轴上摇摆:

 

  freq = 3;   amp = 50;   w = wiggle(freq,amp);   [value[0],w[1]];

 

Dan Ebberts 在其 MotionScript 网站上提供了演示如何使用 wiggle 方法的时间参数创建循环动画的示例表达式和详细说明。


temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)


返回类型:数值或数组。 

参数类型:freqampoctavesamp_mult 和 t 是数值。

在摆动的时间对属性进行采样。freq 值是每秒摆动的频率,amp 是向其应用了此值的属性单位中的振幅,octaves 是要加在一起的噪声八度数,amp_mult 是 amp 乘以每个八度的值,t 是基础启动时间。为使此函数有意义,必须对其采样的属性制作动画,因为此函数只更改采样时间而不是值。示例:scale.temporalWiggle(5, .2)


smooth(width=.2, samples=5, t=time)


返回类型:数值或数组。 

参数类型:widthsamples 和 t 是数值。

随着时间的推移平滑属性值,将值的大而短的偏差转换为更小、分布更均匀的偏差。此平滑通过在指定时间向属性值应用框滤镜来完成。width 值是平均滤镜的时间(以秒为单位)范围。samples 值是随着时间均匀分布的分离样本的数目;为更大的平滑度使用更大的值(但性能下降)。通常,您会希望 samples 是奇数,以便当前时间的值包括在平均数中。示例:position.smooth(.1, 5)


loopIn(type="cycle", numKeyframes=0)


返回类型:数值或数组。

 

循环从向图层的出点前进的图层的第一个关键帧中计算的时间段。该循环从图层的入点播放。numKeyframes 值确定循环的段:循环的段是图层从第一个关键帧到 numKeyframes+1 个关键帧的部分。例如,loopIn("cycle", 3) 循环以第一个和第四个关键帧为界的段。默认值为 0 意味着所有关键帧都会循环。

 

您可以使用关键帧循环方法来重复一系列关键帧。您可以对多数属性使用这些方法。例外包括无法用“时间轴”面板中的简单数值表示的属性,例如源文本属性、路径形状属性以及色阶效果的直方图属性。过大的关键帧或持续时间值修剪为最大允许值。过小的值会导致不变的循环。

 

 

循环类型

结果

cycle

(默认)重复指定段。

pingpong

重复指定段,向前和向后交替。

offset

重复指定段,但会按段开始和结束时属性值的差异乘以段已循环的次数偏移每个周期。

continue

不重复指定段,但继续基于第一个或最后一个关键帧的速度对属性进行动画制作。例如,如果图层的缩放属性的最后一个关键帧是 100%,则图层将继续从 100% 缩放到出点,而不是直接循环回出点。此类型不接受 keyframes 或 duration 参数。


loopOut(type="cycle", numKeyframes=0)


返回类型:数值或数组。

 

循环从向图层的入点后退的图层的最后一个关键帧中计算的时间段。循环一直播放到图层的出点。要循环的片段由指定数量的关键帧决定。numKeyframes 值设置要循环的关键帧段的数量;指定范围从最后一个关键帧向后进行计算。例如,loopOut("cycle", 1) 循环以最后一个关键帧和倒数第二个关键帧为界的段。默认值为 0 意味着所有关键帧都会循环。有关更多信息,请参阅 loopIn 的项。

 

David Van Brink 在 omino pixel 博客上提供了一篇指导性文章和一个示例项目,介绍如何使用回声效果、粒子运动场效果和 loopOut 方法,对一群程式化的游动细菌进行动画制作。


loopInDuration(type="cycle", duration=0)


返回类型:数值或数组。

 

循环从向图层的出点前进的图层的第一个关键帧中计算的时间段。该循环从图层的入点播放。要循环的片段由指定的持续时间决定。duration 值设置要循环的段中的合成秒数;指定的范围从第一个关键帧进行计算。例如,loopInDuration("cycle",1) 循环整个动画的第一秒。默认的 0 意味着要循环的段开始于图层出点。有关更多信息,请参阅 loopIn 的项。


loopOutDuration(type="cycle", duration=0)


返回类型:数值或数组。

 

循环从向图层的入点后退的图层的最后一个关键帧中计算的时间段。循环一直播放到图层的出点。要循环的片段由指定的持续时间决定。duration 值设置要循环的段中的合成秒数;指定的范围从最后一个关键帧向前进行计算。例如,loopOutDuration("cycle", 1) 循环整个动画的最后一秒。默认的 0 意味着要循环的段开始于图层入点。有关更多信息,请参阅 loopIn 的项。


key(index)


返回类型:Key 或 MarkerKey。 

参数类型:index 是数值。

按数字返回 Key 或 MarkerKey 对象。例如,key(1) 返回第一个关键帧。


key(markerName)


返回类型:MarkerKey。

参数类型:markerName 是字符串。

返回具有此名称的 MarkerKey 对象。仅对标记属性使用。


nearestKey(t)


返回类型:Key 或 MarkerKey。 

返回最接近指定时间的 Key 或 MarkerKey 对象。


numKeys


返回类型:数值。

 

返回属性的关键帧数目。返回标记属性的标记数目。


注意:

如果您使用“分离维度”命令将位置属性的维度分离到各个组件,则关键帧数会更改,因此,此方法返回的值会更改。


propertyGroup(countUp = 1)


返回类型:组。

返回与对其编写表达式的属性相关的属性组。例如,如果您将 propertyGroup(1) 表达式添加到笔刷笔触的旋转属性,则该表达式会瞄准包含旋转属性的变换属性组。如果您改为添加 propertyGroup(2),则该表达式会瞄准笔刷属性组。此方法使您可在属性层次结构中建立独立于名称的关系。当复制包含表达式的属性时,此方法特别有用。

propertyGroup 的 numProperties 方法返回属性组中属性的数目。

此示例返回包含对其编写表达式的属性的组中的属性数目:

  thisProperty.propertyGroup(1).numProperties


propertyIndex


返回类型:数值。 

返回与其属性组中的其他属性相关的属性的索引,包括蒙版、效果、文本动画、选择器、形状、跟踪器以及跟踪点中的属性组。


name


返回类型:字符串。 

返回属性或属性组的名称。


示例:使用 propertyGroup 方法和 propertyIndex 属性进行动画制作

与笔刷笔触的位置属性相关的 propertyGroup 的值

与笔刷笔触的位置属性相关的 propertyGroup 的值


A. propertyGroup(4) B. propertyGroup(3) C. propertyGroup(2) D. propertyGroup(1) E. Position propertyIndex 值为 2;Rotation propertyIndex 值为 4。 

在此示例中,每个笔刷笔触的 propertyGroup 方法都会瞄准笔刷属性组,因为该组是旋转属性下面的两个属性组。每个笔刷笔触中的 propertyIndex 属性稍后会为每个笔刷笔触返回一个唯一值。生成的值稍后会乘以时间和 200 并应用于每个旋转值,以不同的方式旋转每个笔刷笔触,创建旋转的绘画笔触:  propertyGroup(2).propertyIndex * time * 200

1
  propertyGroup(2).propertyIndex * time * 200

使用表达式对笔刷笔触进行动画制作

使用表达式对笔刷笔触进行动画制作


讲师加盟

明狮网-学习交流QQ群:24903810

VIP看全网课程,系统课程持续更新

免费指导 在线咨询

 

COPYRIGHT © 2018 VIDEO-STUDY.COM ALL RIGHTS RESERVED.

冀ICP备2021010530号-1  技术支持:明狮教育   免责申明

明狮交流群

明狮交流群