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

上传人:博****1 文档编号:562779559 上传时间:2023-07-05 格式:DOCX 页数:12 大小:659.22KB
返回 下载 相关 举报
最不该遗忘的功能——RealFlow Expression.docx_第1页
第1页 / 共12页
最不该遗忘的功能——RealFlow Expression.docx_第2页
第2页 / 共12页
最不该遗忘的功能——RealFlow Expression.docx_第3页
第3页 / 共12页
最不该遗忘的功能——RealFlow Expression.docx_第4页
第4页 / 共12页
最不该遗忘的功能——RealFlow Expression.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《最不该遗忘的功能——RealFlow Expression.docx》由会员分享,可在线阅读,更多相关《最不该遗忘的功能——RealFlow Expression.docx(12页珍藏版)》请在金锄头文库上搜索。

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

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

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

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

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

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

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

8、达式中把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.rotation_X)另一个例子:如你想创建重复上下

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

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

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

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

13、cos(t) sin(t)也就是除数不能是0或根为负数的值。除和乘优先级比加减高,如果不想这样,就要加括号。需要两个参数的函数被称作为二元函数,如:value1+value2 或 value1 value2【译者注:二元函数(binary function)是一种带有两个参数的函数。这是编程中的定义。数学上二元函数是这样定义的:设平面点集D包含于R2,若按照某对应法则f,D中每一点P(x,y)都有唯一的实数z与之对应,则称f为在D上的二元函数.造成歧义的原因是数学与计算机中函数用的同一个词:Function数学中函数含义(function):表示每个输入值对应唯一输出值的一种对应关系。计算机中

14、函数定义:函数过程中的这些语句用于完成某些有意义的工作通常是处理文本,控制输入或计算数值。通过在程序代码中引入函数名称和所需的参数,可在该程序中执行(或称调用)该函数。简单说就是某种带参数的可输入输出的功能块。】现在你已经输入过表达式了!关闭或最小化曲线编辑器,从时间轴控制,看到发射器做完美的循环运动。当然,它也可以创造传统的运动曲线,但很困难。不要害怕表达式:只要实验一下,你就会发现它们很灵活,功能强大易于使用。图:sin(t)*cos(t*2)在垂直方向的运动路径 b. 反函数和负值(Inverse Functions and Negative Values)另一个重要的功能是用倒函数和负

15、值。你只要简单的应用它们就可以了。1/x“X”是变量,或是你想用的功能反函数往往用来做衰减。任何有效的功能块或项都可倒,有可能在函数的定义有些差距,因为除数是0.例如,正弦或余弦的逆函数。正弦90度和270度是0,除数是0,没有意义。图:是1/cos(t),图中垂直的尖峰表示某些值未定义 值在90度和270度时快速收敛变得无穷大,变得非常高。这通常会导致完全不正常的动作或设置。在使用反函数之前最好先输出看一下。可以直接在编辑器图形窗口或外部的函数绘图仪。你会看到值在表达式在导致的问题。负值是另一个典型的转换函数和表达式。负值,可以改变一个函数的方向。看下列项。5 * exp(t)这是一个不错的函数(其实就是指数函数)。函数值集中在5到0.它实际上是一个理想的辅助器的表达式,慢慢失去强度或力。但有一个问题:这个函数绘出来的图显示了所有值在下面图中。意味着你有“负”的时间值。用一个简单的转换,你可以改变方向,使时间值再次变成正值:5 * exp(-t)这是一个表达式,你可以到达需要的目的。你可以改变初始因子(此处为5)。一个因子像-t*x会使曲线变得陡(i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号