注册
注: 这是一个自动翻译;请使用明确的语言没有俚语.

随机生成Motion带有 AE 5.5的表达

Dan Ebberts
教程 :
随机生成Motion带有 AE 5.5的表达
随机生成Motion带有 AE 5.5的表达


from CreativeCow.net's ''25 Cool Things about After Effects 5.5'' Series


Generating Random Motion with AE 5.5's Expressions
Dan Ebberts Dan ebberts,
萨克拉门托, 加利福尼亚州, 美国

© 2002 Dan ebberts和Creativecow.net. 版权所有.

文章重点:
在本教程, Dan ebberts表明生成方法的议案是随机在这两个时间和空间,让您可以快速组装组成的惊喜流体, 混沌运动.


下载电影 项目文件(包括爱档案) 下载stuffit膨胀的Windows

问题:

背后的概念本教程出来的在线讨论. 研究员After Effects发烧友试图拿出一个表达式的产生是随机运动在时间和空间. 这是, 目标职位将随机为将所花费的时间到达那里. 的问题,您遇到试图发展这样一种表达的是,刚才似乎没有一个很好的方法进行价值的变量着时间从一帧到下一. 任何变量,你已经确定将在下一帧. 考虑下面的例子表达不透明:

如果(时间= 0 ) (
X = 10
}
其他(
X = x + 1
}

正常工作的第一帧. 在第二帧你得到一个错误,因为X是未定义. 表达不记得,十是10前帧. 这已成为一个严重的限制当您尝试做了一个随机的时间,因为一旦你决定多久应采取, 您需要检查每一个帧,看看您是否还没有完成. 很难做到如果您不能错过的价值从一帧到下一.


Seed_random救援:

事实证明,你可以解决这个问题同加强(对 AE 5.5 ) seed_random功能. 这一功能可以让您建立一个可重复序列的随机数和恢复他们将, 只是恢复到以前的种子值,然后调用随机( )函数. 这给我们提供了解决问题的办法,因为即使我们无法通过我们的随机值从一帧到下一, 我们可以重新使用他们seed_random. 让我们来看看如何seed_random工程.

打开该项目文件,然后打开“基本补偿”. 这仅仅是一个640x480补偿与50x50固体层增加. 选择“固体1 ”和揭示知识产权的立场. 按Alt -单击(选项点击)关于秒表激活表达此属性. 输入以下表达式:

[随机( 0,This_comp.宽度),随机( 0,This_comp.高度) ] ;

这将导致广场跳转到一个随机位置补偿. 预览压缩机. 您会发现,广场上跳跃到一个新的立场,每一帧. 不是很有用. 添加一个新行的表达,以便它现在行文:

Seed_random ( 1,真正的) ;
[随机( 0,This_comp.宽度),随机( 0,This_comp.高度) ] ;


通知方再次跳跃到一个随机的位置,但是当你有预览停留. 这一新的现象是由于改变Adobe向seed_random功能 AE 5.5. 他们也加入了第二个参数, 当设置为“真正的”设置随机函数,使产生的随机数不依赖于时间. 随机数字取决于层数, 财产数量, 价值的第一个参数在seed_random电话(以下简称“种子” ), 和多少次的随机函数被称为. 这意味着,同样的表达会产生不同的随机数在不同的层或财产(稍后我们将利用这一快速购买我们比较复杂). 尝试改变“种子”的一些其他参数数目. 您会发现,广场移动到不同的位置,并保持有. 改变的第二个参数,以“假” ,并发出通知,当您预览, 广场上跳各地再次.

添加一些其它的东西代码到您的表达,使它看起来像这样:

如果(时间“ 1 ) (
Seed_random ( 1,真)
}
其他(
Seed_random ( 2,真)
}
[随机( 0,This_comp.宽度),随机( 0,This_comp.高度) ] ;


现在你会发现,当您预览, 广场停留在一个位置的第一第二,然后跳跃到另一个位置的剩余补偿.

因此,我们如何使用这个新的, 功能更强大的seed_random? 这里的关键概念: 与第二个参数设置为“真”, 为给定的层, 财产, 和种子价值, 随机数时,要求你的随机( )函数只取决于有多少次你有所谓的功能,因为设置的种子. 这是, 您第一次呼吁随机( )设置的种子后,您将获得particlar随机数(让我们称之为十). 第二个电话会产生一个随机数第二(让我们称之为1年) ,等等. 但如果你请seed_random再次与原来的种子, 顺序将重新开始. 这是, 下一个随机( )调用将恢复原来的随机数字( x在这种情况下). 使用不同的种子值将导致一个完全不同的序列产生. 考虑下面的例子:

Seed_random ( 1,真正的) ; / /设置种子值
1 =随机( ) ;
B =随机( ) ;
ç =随机( ) ;

Seed_random ( 1,真正的) ; / /重置种子为相同的值
为I =随机( ) ;
J =随机( ) ;
κ =随机( ) ;

Seed_random ( 2,真正的) / /新种子
为Q =随机( ) ;
R =随机( ) ;
秒=随机( ) ;

Seed_random ( 1,真正的) ; / /恢复原来的种子
X =随机( ) ;
为Y =随机( ) ;
ž =随机( ) ;

在这种情况下,, A,B, 和C都将不同的随机数. 但是, 1 ,我将同, B和j将是相同的, 和C和K是相同的,因为种子已重置( 1在这种情况下)和随机序列开始了. Q,R和s将一个新的序列的随机数,因为种子已变更为2. 序列x,Y,厦门将是一样的,B,C和I,J,K ,因为种子已经重新设置为1. 因此,我们可以返回一个序列的随机数种子的重建价值,产生这些数字.

它如何帮助我们? 我们随机生成的议案, 在任何特定范围内,我们必须知道几件事情对当前部分的议案: 开始时间, 起始位置, 结束时间, 和结束的位置. 这些都将随机数,我们将产生使用不同的种子值为每一部分的议案. 我们将基础种子价值上部分目前我们在. 因此,所有我们能做的就是有表达能够找出其中部分是在(从其中将能够找出种子值), 确定种子, 和恢复序列的随机数,让我们的开始时间, 起始位置, 结束时间, 和结束的位置值,目前部分.

确定-让我们回顾一下我们的目标将是这一表达. 我们希望广场顺利从一个随机的位置在屏幕上的另一个. 我们也希望所花费的时间这样做,这是随机的(假设之间 .5和2秒). 这样表达会做到这一点:

Seg_start_time = 0 ; / /初始条件
Seg_末端_time = 0 ;
余= 1 ;
Tmin = .5 ; / /最小周期时间(不能零)
Tmax分别= 2 ; / /最大周期时间
而(时间“ = seg_末端_time ) (
我本人= 1 ; seed_random (一,真正的) ;
Seg_start_time = seg_末端_time ;
Seg_末端_time = seg_末端_time +随机( tmin,Tmax分别) ;
}
百分之= (时间- seg_start_time ) / ( seg_末端_time - seg_start_time ) ;
随机target_x = ( ) * This_comp.宽度;
随机target_y = ( ) * This_comp.高度;
Seed_random ( I型-1,真正的) ;
X =随机( ) ; / /这是一个被扔掉的价值
Old_x =随机( ) * This_comp.宽度;
Old_y =随机( ) * This_comp.高度;
缓解(占,[ old_x,Old_y ],[ target_x,Target_y ] ) ;

复制此表达并将其粘贴到表达的立场(或只是开放“的基本补偿+表达” ). 预览压缩机. 您会发现,广场上现在有一个很好, 流体, 运动是随机的时间和方向.

在此表达, “我”是我们的部分反, 其中,我们也会使用的种子值的部分. “ tmin ”和“ tmax为”界定范围的随机时间可能期间每一部分. 在这种情况下,, 将最后一个部分之间 .5和2秒. 的“ while ”循环是数字的表达出这部分有. 为此,它会递增种子和积累随机部分时间,直到一个值大于当前时间达到. 在这一点上知悉启动, 末端, 和当前时间目前的部分,因此可以计算出的百分比,这部分是完成. 它呼吁随机( )函数两次获得靶X和Y坐标为最终地位这一部分. 下一个部分是一个小麻烦. 表达仍然需要知道起始位置的这一部分,因此可以计算(根据完成的百分比)当前的位置. 年初以来的立场是相同的立场,年底前部分, 我们只是递减种子返回的种子前部分. 表达然后调用随机( )函数获取结束X和Y坐标的前部分. 您会发现,有一个“被扔掉”电话随机( )之前,前X和Y值的确定. 这是因为每一个种子, 第一随机( )调用是用于结束时间(我们已经知道) -第2和第3要求用于X和Y坐标.

打开“表达补偿”. 这个比较是一样的前比较除此外类似的随机表达式不透明和轮换. 不透明表达式:

Seg_start_time = 0 ; / /初始条件
Seg_末端_time = 0 ;
余= 1 ;
Tmin = .5 ; / /最小周期时间(不能零)
Tmax分别= 2 ; / /最大周期时间
而(时间“ = seg_末端_time ) (
我本人= 1 ; seed_random (一,真正的) ;
Seg_start_time = seg_末端_time ;
Seg_末端_time = seg_末端_time +随机( tmin,Tmax分别) ;
}
百分之= (时间- seg_start_time ) / ( seg_末端_time - seg_start_time ) ;
Target_不透明 =随机( ) * 100 ;
Seed_random ( I型-1,真正的) ;
X =随机( ) ; / /这是一个被扔掉的价值
Old_不透明 =随机( ) * 100 ;
缓解(占,Old_不透明,Target_不透明 ) ;

和轮换的表达:

Seg_start_time = 0 ; / /初始条件
Seg_末端_time = 0 ;
余= 1 ;
Tmin = .5 ; / /最小周期时间(不能零)
Tmax分别= 2 ; / /最大周期时间
而(时间“ = seg_末端_time ) (
我本人= 1 ; seed_random (一,真正的) ;
Seg_start_time = seg_末端_time ;
Seg_末端_time = seg_末端_time +随机( tmin,Tmax分别) ;
}
百分之= (时间- seg_start_time ) / ( seg_末端_time - seg_start_time ) ;
随机target_rotation = ( ) * 360 ;
Seed_random ( I型-1,真正的) ;
X =随机( ) ; / /这是一个被扔掉的价值
随机Old_rotation = ( ) * 360 ;
缓解(占,Old_rotation,Target_rotation ) ;

这些表现形式在几乎相同的一个位置,但它已被修改,以产生一系列的价值适当的透明度和轮换. 预览压缩机和通知方现在已经随机轮换和褪色以及运动.

来这里的乐趣的一部分. 重复的“固体1 ”一群倍(或只需打开“多补偿” )和预览压缩机. 记住-你可以做到这一点真的很快通过控制+ d捷径(命令+ D对 MAC ). 现在,当您预览有一系列的活动. 随机号码,每一层是不同的表现形式,即使是完全相同的每一.


现在事情变得更加有趣


开放的“乐趣补偿”和预览. 本压缩机, 本人重复“固体1 ” 2次,然后改为每固体之一的Illustrator文件. 那么,我重复的每一个层次一群倍. 你可以看到,一旦你的表达成立, 重复层增加了复杂性迅速到您的计算机.


可以很容易地创建一个复杂的补偿迅速与这些表现形式


您可以解剖的表达,看看它们如何工作, 或者您也可以只复制并粘贴到您自己的comps. 这三个例子我已经考虑(立场, 不透明, 和轮换)应该给你一个很好的想法,如何调整表达的其他财产. 我希望这激发了一些你玩这些,并建立一些真正酷!

# # Dan ebberts

随时讨论这一技术在 After Effects论坛 在这里Creativecow.




请访问我们的论坛,并认为在其他条款 Creativecow.net 如果您发现此页面的直接链接.


论坛教程杂志服务影片新闻博客


© CreativeCOW.net 版权所有.

创新社区世界

[顶端]

Englishالعربية中文FrançaisDeutschעבריתहिन्दीItaliano日本語PortuguêsРусскийEspañol