ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:556.41KB ,
资源ID:23308473      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23308473.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(最不该遗忘的功能RealFlow Expression.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

最不该遗忘的功能RealFlow Expression.docx

1、最不该遗忘的功能RealFlow Expression最不该遗忘的功能RealFlow Expression 2012-06-28 17:32:04| 分类: RealFlow探索 | 标签:realflow 翻译 python 免费教程 豆芽兵 |字号大中小 订阅 说在前面:这是之前翻译的Realfow帮助文档。动画曲线那一节,前面对软件的介绍没有放上来,因为那只是简单的操作,大家看一下就会了。Expression真的非常值得学习,甚至比前面的Python脚本还要值得推荐。翻译的也是我平常的作风,加了上自己添加的东西,比如对基础知识的回顾。(其实是我不会)。19.04 Expressions

2、(表达式)表达式是最方便的,用来自动制作路径运动或做循环动画的方法。你曾尝试过塑造一个,完美的正弦波形曲线吗?如果你的答案是“Yes”,但还留存一些难点。那么你肯定会喜欢上表达式。有了它们,你不用考虑关键帧,因为你只需输入相应的函数或公式,就可以立即看到结果。从理论上讲,表达式曲线可以一直持续下去,因为它会自动计算某一帧的属性值。你也可以让表达式基于事件(event-base)。意思就是,你能定义一个特定的条件,触发后能自动切换功能,例如刚体与非刚体切换。条件可以是一个选定的帧或一个Null对像的位置,甚至用对像的名称。 图片:表达式控制球体垂直方向运动。 ReaalFlow提供所有通用的函数

3、,如Sine(正弦),Cosine(余弦),Square root(平方根),log(对数),tan(正切)等等。此外它也可以用操作符进行比较运算和简单的计算,例如, (括号)+,(加号) *,(乘号)等。很容易结合不同的运算符,创建复杂的公式。表达式是非常灵活多变的。RealFlow提供了另一种新功能:让表达式曲线与基于帧的曲线相结合。尽管两种方法完全不同,但可以混合它们和创建一个融合的曲线。两者结合后的动画,很多时候非常有用,例如:当你想添加一些扰动(Noise)到动画上,或创建第二套运动,用更高(high-ranking)的运动。如果你认为混合这些曲线很复杂,那你就错了!只需简单的点一下

4、“+”键。结果完全是一个新的曲线,具有动画和表达式的属性混合的曲线。为了让你加深印象,下图显示出了原始的基于关键帧动画曲线灰色那条。表达式是一个非常快速和可靠的方法来模仿各种不同的自然行为。在自然界中,我们很少看到完美的运动与永不消失的力,速度或运动。因为有各种阻力,随着时间推移肯定会慢慢失去能量。这种行为可以完美的用表达式模拟出来。 举个例子:当你在三维软件中打灯光时,经常会用到衰减。这可以防止光线太强烈,照射到远处的物体,那样看起来就不真实了。因此,大多数光源下,你通常是能够在预定义的模式中选择限制光强度,常见衰减模式有:倒数(inverse),反向平方(inverse-square),或

5、反向三次幂法则(inverse cubic)。【译者注:这几种衰减方法,很值得深入研究一下。】图:几种有代表性的衰减函数。另一种方法是用指数函数来做衰减。模拟的力随着时间的推移而减小。同样用其它值也可以达到,像摩擦力(friction)或温度(temperature)。用这些简单的函数是没有问题的。让确定的属性,在恒定的时间间隔衰减,或基于公式创建完整的运动。另一个重要的应用领域是随机性(randomness)。你往往需要一定量的随机性,使模拟变得更加可信。例如在模拟风时。首先,确定一个基本的风向,再加些轻微的变化。看下面: 表达式还有别的的优点: 1. 运行更快。Expressions可以使

6、用所有CPU和核2. 不需要脚本。如果你不熟悉Python,表达式是更好的选择3. 创建更快。你不需要debug或写很多行代码,因为表达式只由一行组成。4. 使用标准的数学函数。基本代数符号,像括号,小三角,所有你需要的。5. 完美的运动。由于表达式基于数学函数,它们是正确的物理表现生成绝对完美的结果。6. 如果你熟悉脚本或编程,表达式应该非常容易了解。a. 第一步你不需要为创建表达式特别做什么。首先,你要找一个需要写表达式的参数。在节点参数窗口选择一个需要设置的值右击,选择“Open curve”.然后你会看到结点相关的值,但当前没有曲线,因为没有任何关键帧。在曲线面板下你会看到“+”按钮,

7、一个输入框,和一个插入(Insert)按钮.用“+”你可以很轻松的合并表达式与现有的曲线。输入框包含表达式,你可以键入所有可用的函数和变量。一个很重要的问题是时间(time)。在RealFlow中,时间尺度是用帧或标准时间代码格式。hh : mm : ss (hours : minutes : seconds)默认时间栏在GUI(图形界面)和曲线编辑器中是用的是帧(frame)。如果你想用时间(time),你要用它的变量形式。变量是一个待“填充”的占位符。帧的变量是“f”,时间是“t”.在表达式中,“f”或“t”代替当前frame/time在时间栏上。这是自动产生的,所有不需要你去考虑它。你也

8、能创建表达式基于frame和time. (译者注:在表达式中把f或t,当成一个内置功能函数)如:sin(t*10)*f/ 20 图:表达式sin(t*10)*f/20的结果使用基于帧(frame)的曲线有一个很大的特点:看起来距齿状很重,因为在RealFlow内部,帧(frame)只有整数值。使用基于时间(time)的,曲线就会变得很平滑。幸运的是,去除距齿不是很麻烦,只要在表达式上乘上time就可以了。 图:红基于frame创建的锯齿状曲线;黄基于time创建的平滑曲线表达式不仅限于frame或time。你也可以使用数字,甚至其它结点的动画属性或参数,例如: sin(5)cos(Cube01

9、.rotation_X)另一个例子:如你想创建重复上下运动的物体,比如发射器。你首先要考虑的是有没有与这个任务需求类似的函数。通过比较各种数学函数,你会看到,正弦或余弦函数是最优的,因为他们已经表明这种波浪状的行为。正弦曲线更好点,因为它从0.0开始。像正弦,双曲余弦,平方根等只需要一个参数就能起作用的函数。称为一元函数。(译者注:一元函数是指函数方程式中只包含一个未知量)接下来你需要的是发射器的垂直位置的曲线。请注意,这可以是Y或Z轴,根据自己的喜好。在这里,我们假设Y代表垂直轴。转到发射器节点的params(参数)面板: Node Params Node Position Y右键单击该值,

10、并选择“Open curve”。现在的曲线编辑器中没有曲线或图形,然后在表达式框输入sin(t)回车确认,出现一个条曲线 。表达式sin(T)的工作方式:每一帧的RealFlow计算适当的正弦值,并将其应用于发射器的Y位置。然而,结果可能不是你预期的。你可能需要更多的“波峰波谷”?可以看到的是,只是在当前时间的函数依赖的基本正弦。简单的操作,你能够创造出密度较高或更广泛的曲线,更高的山峰,正或负的偏移。-知识回顾-下面进入一段基础知识的学习,放松一下,没有兴趣的读者可以跳过。简谐运动Simple harmonic motion (SHM)原名直译简单和谐运动是最基本也最简单的机械振动。实际上简

11、谐振动就是正弦振动。如下图:之前写的sin(t)就是一个简谐运动。现在我在下面写出它的正弦型函数解析式:y=Asin(x+)+h这个解析式非常重要。在写表达式时,依据就是这个方程。下面给出各个参数的意义各常数值对函数图像的影响:(初相位):决定波形与X轴位置关系或横向移动距离(左加右减):决定周期(最小正周期T=2/|)A:决定峰值(即纵向拉伸压缩的倍数)h:表示波形在Y轴的位置关系或纵向移动距离(上加下减)为了形像一点,给出一张图.-回顾结束 -这里有几个例子,修改的正弦曲线和结果:? sin(t*5) ,压缩波形在X轴,也就是增大频率(f)? sin(t/5) ,拉伸波形在X轴,也就是减小

12、频率(f)? sin(t+5) ,波形整体往右偏移,也就是相位改变(,水平方向)? sin(t-5) ,波形整体往左偏移,也就是相位改变(,水平方向)? sin(t)+5 ,波形整体往上偏移,(h,垂直)? sin(t)-5 ,波形整体往下偏移,(h,垂直)? sin(t)*5 , 拉伸波形在Y轴,也就是振幅变大(A)? sin(t)/5 ,压扁波形在Y轴,也就是振幅变小(A)译者注:经过上面的例子,你肯定会发现,哇,这些不都是上面知识回顾中讲到的吗。这些是中学就学过的,但那时根本不知道有什么用。现在知道了,原来跟我做电影特效有这么大的关系。它也可以综合起来使用。任何由单个函数组成的表达式都要

13、遵循数学规则:(sin(t) + cos(t) / (cos(t) sin(t)也就是除数不能是0或根为负数的值。除和乘优先级比加减高,如果不想这样,就要加括号。需要两个参数的函数被称作为二元函数,如:value1+value2 或 value11)或平滑(if 0x1).图:左边显示的函数是 5*exp(t),右边曲线代表5*exp(-t). c. Random Values(随机值)随机数在模型自然效果时有重要的作用。没什么是完全的可预见的,真实的效果还有一些轻微的变化。为此,我们可以用RealFlow内置的随机数发生器。这个工具实际上和曲线编辑器上其它曲线一样。你可以创建随机值,基于F和

14、T。例如:rnd(f) or rnd(t)正如你从图看到的,值变得越来越大。这是随机数的运作模式。在这种情况下rnd(f)-RealFlow表达式创建随机值在0和f之间,所以随着f增长,结果值就变得越来越大。如果你简单的输入数字 N,范围就在0到N之间,如这个: 表达式像前面的例子一样 Rnd(3.0)值在0和3之间。添加随机值给数字创建抖动或振荡效果,例如风或发射器速度值。这里用Y轴风辅助器表达式:Wind01.position_Y = 42.5 + rnd(5)风场辅助器随机振荡在42.5和47.5度之间。这是一个45度的平均水平。因此,我们可以很容易地定义,包括风主方向的细微变化。一个非

15、常有趣的场应用领域是除了标准的功能和随机值。然后我们能定义一种基本运动与加上一些随机扰动。Sin(f*5)+rnd(0.5)再说一次:用“+”按钮能添加任何随机功能函数与现有的动画曲线混合。随机数是一个非常灵活的方法用来创建更加逼真的动态。随机性可以使模拟有好看的细微变化。一个真正有效的方法是,与关键帧动画相结合用,“+”按钮。d. 条件(conditions)另一个有趣的功能是使用“if”条件语句。用这种方法你能够触发,停止或切换值,设置属性。“if”功能需要三个参数,在括号里:if(value1, value2, value3)第一个值是比较特定条件,例如 特定的帧或时间点:if(f49,

16、 value1, value2)这意味着,从时间轴达到50帧的时刻,值将切换到value2的。现在你也可以执行检查用赋值号“=”:if(t=5.0, value1, value2)相反,你可以使用从其他对象进行比较的节点值,像这样的:if(Null01.rotation_X 180, value1, value2)举个例子:你想创建一个正弦函数运动用随机数,但75帧属性值变成0.表达式用if语句是没有问题的。if(f75,cos(t*5)+rnd(1),0)换句话说:当达到75帧切换函数 sin(t*5)+rnd(1)到0.0.下面有张图描述了这种条件:图:条件(f75,cos(t*5)+rn

17、d(1),0)告诉Realflow设置值为0在75帧。另一个有趣的功能是切换刚体动力学。选择节点的Dynamic参数,打开曲线输入: if(f99,0,1)在Dynamics面板,对应参数编号:0 = No1 = Rigid body2 = Soft body如果你想到A)打开Soft body dynamics 在100帧,或B)切换rigid,表达式像这样:A) if(f99,0,2)B) if(fUnary functions正如你看到的表达式是不难使用的。他们快速自动生成一些动画。在许多情况下表达式能代替脚本。表达式是多线程和多核生理的。最简单的脚本RealFlow都不会使用一个以上的

18、处理器,因为Python是单线程的编程语言。请记住,这一个限制是Python语言特定的,与RealFlow本身没有关系。译者心得:Realflow表达式,是差点被我遗忘的功能。至从一次接触后就再也离不了它了。就像Maya的表达式一样。我最常用的是:1条件判断:如if(f12,0,1),在大于12帧后,将失去作用。用在Simulation属性上。就是说大于12帧后,由Active切换成InactiveInactive (1),active(0),cache(2).这个属性对应关系是自己试验的。这个功能用的非常频繁,用来控制多个物体,或根据镜头长度做特效时,需要在某一帧让其失活,之前都是手动关闭.2.Rnd (x)随机数用的也很多,通常是与关键帧动画结合的,就是那个神奇的“+”号。可以让我模拟的结果更真实。3. if(Null01.rotation_X 180, value1, value2)属性驱动,其实属于条件判断中的。 单独提出来原因,就是它能像maya一样把不同的属性可以关联起来。这是非常非常有用的。更多的表达式技巧,还需要大家多多亲自实践如果有错的希望指出来,谢谢。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1