Power by Lenshuang~2+3D Game Vfx Base since 2003~2014
  • 01

    A.总体介绍:

    Logo_RayFire

    Rayfire是俄罗斯一个叫Mir Vadim的脚本/编程高手制作的3ds max脚本插件。目前支持9.0-2010 32bit版本的3ds max,最新的版本为1.46,这个插件的官方网站地址是:http://www.mirvadim.com/

    朋友你可以随时到这个网站下载插件的最新demo版本(在一定期限内你可以使用插件的所有功能)或者觉得它不错的可以购买它,另外网站里包含了完整的英文版在线帮助文档,以及一大堆教学视频范例供你下载,我自己就是通过这些东西来学习这个插件的。

    Rayfire 插件可以基于max自带的Reactor动力学刚体模块或者NVIDIA显卡硬件加速引擎:PhysX的动力模块同时整合max自带的 ProBooleans、ProCutter复合运算以及空间扭曲和例子系统来进行视窗实时交互式的物体动力学计算。目前它可以进行子弹射击、物体碎裂、 爆炸、软体动力学、软体破碎等物理动力学的动画计算,同时对于所有RF的计算结果来说都是可逆转的,也就是说你的操作结果在任何时候都可以进行取舍,通过 RF的Layout(层)功能将可以轻松实现这种操作。对于模拟计算后的结果可以是静态的,也可以通过烘焙动画转换成为标准的max关键帧动画。相对于原 先同类型的插件来说,这个插件的效果是非常“震撼”的,更难得的是计算结果精确度高而且操作简单。不过遗憾的是,目前推出的版本仅支持32位的 3ds max对应版本,并不支持64位的,这算是个小小的遗憾吧,估计未来的版本可以解决这个问题。

    B.安装注意事项

    在安装Rayfire插件时,有几个问题需要注意,否则可能无法正常使用这个插件:

    1、你电脑的显卡最好是NVIDIA的,并且最好是支持PhysX硬件加速的型号,对于装有ATI的显卡的电脑,我并没有使用过这个插件,原因不言自明吧,可能可以使用吧…….

    2、你显卡的驱动最好是NVIDIA官方推出并且通过微软WHQL认证的驱动。我的显卡为 NVIDIA 8600GT,所用的驱动版本为90.38whql。去驱动之家能够找到你所需要的驱动网站地址:http://www.mydrivers.com/。

    3、下载最新的NVIDIA PhysX硬件加速驱动,我目前使用的是PhysX_9.09.0814版本。你可以在你系统的显卡相关设置中看到版本信息,这个东西一般显卡驱动里面都已经附带了,一般不用另外装,否则的话,你就需要单独下载来安装了。

    4、下载PhysX Plug-In for Autodesk 3ds Max插件,这是PhysX引擎对max的插件,Rayfire动力学引擎缺它不可,不过在RayFire安装时默认会自动安装相关文件,所以一般不用另 外装,否则的话,你就需要单独下载来安装了。我目前使用的版本为最新的Max_1.0.6如果有问题你可以到NVIDIA官方去下载,网页地址是:http://developer.nvidia.com/object/p…c_plugins.html

    02

    NVIDIA PhysX for Max插件安装成功后,每次打开MAX,点击Utilities(工具)面板,默认面板下部都会出现Phys X的工具,这就说明这个插件安装成功了。

    注意:有了以上的驱动和插件,那么Rayfire将可以正常运行并使用了。反过来说,如果你的插件不能正常运行的话,请查看上面的几个必备的要求。对于Rayfire本身的安装来说基本没任何特别的地方,一直next就行,我就不在重复了。

    C.3ds max界面中RayFire的组件分布

    安装完成后,你可以在以下地方找到Rayfire的工具:

    1、Customize菜单——Customize User Interface命令——Category:RayFire Tool,通过这里你可以把RayFire的主界面启动快捷方式,自定义到max界面的任何位置。比如右键菜单中。

    2、Create面板——Geometry几何体分类:RayFire Tool,通过这里你可以打开RayFire Tool的主面板。

    03

    未购买软件使用权的时候每次使用RayFire 都会出现下面的注册对话框:

    03a

    3、 Create面板——Helpers辅助物体分类:RayFire Tool,通过这里你可以访问RayFire 两个动力学辅助物体,RF_PhysX以及RF_Bomb。一个用于动画使用PhysX引擎时动画PhysX的参数,一个用于动力学模拟时作为炸弹,计算 爆炸效果。

    04

    在这里你可以使用RF自己的辅助物体,它具有RF专用的一些参数。

    除了以上的工具之外,RayFire也可以利用部分max自带辅助物体,比如空间扭曲辅助物体,如风、重力、粒子炸弹、置换。除此之外RF还可以利用几何体来作为作用力的来源,比如标准几何体或者Editable mesh、Editable poly等等……

    D.RayFire主要控件简介

    RF的主要控制部件和功能都集中在了它的主面板里了,当前的版本中各个不同的控制部件都有了明显的划分,这对于我们能快速的访问我们所需要的功能非常有帮助。

    1、菜单栏

    05

    通过这里你可以快速的访问RF的一些功能以及一些有针对性的优化工具。这里的命令大部分都是下面功能控制组里的相应功能的 快捷方式。根据我的经验来说我们会经常使用到这里的Manager(管理)、Tools(工具)、Options(操作)菜单,请注意自己学习相应的命 令,你留意的话可以在这些菜单中找到许多“熟悉的面孔”,而其它的独特功能也并不难掌握。

    需要注意的是,执行相应的命令,你就必须符合这个命令所要求的执行状态,然后命令操作才会得到相应的结果。

    举例来说:如果你想对场景当前选择的物体使用Execution(执行)菜单下的 Fragment(破碎)命令,要使它得到正确的结果,你就必须先把需要操作的物体添加到RF主面板的Objects(物体)控制组内的Impact Objects(作用物体)列表里,然后在同界面的Fragmentation(破碎)控制组里设置相应的破碎属性参数。最后,才能使用 Fragmentation(破碎)控制组内的Fragment Impact Objects按钮或者是Execution(执行)菜单下的Fragment(破碎)命令,才能最终得到你需要的物体破碎效果。

    注意:在整个RF的操作流程里,你都必须遵守上面这个举例的步骤方法来执行操作,然后才能得到正确的结果,也就是说:首先让RF知道你要对那个物体进行操作,你要RF把这个物体看做什么样的物体,然后对需要进行的操作进行参数设置,最后执行操作。请牢记这个思路!

    2、控制组

    06

    RF的这个区域是我们实现主要功能的地方,它分为了六大块我将分别简单介绍它们的作用和注意事项。

    07

    Objects面板的主要功能是拾取并标记你需要RF进行计算的物体,这个部分非常重要,你需要通过这里的几个列表区域来定义你所要处理的物体,以及它们所具有的物理属性,从而才能为后续的动力学模拟计算做好准备。

    在这个区域里出现的几组参数以及与它们对应的概念对于整个RF操作过程来说都需要特别的注意。我将逐一进行解释:

    Impact Objects(作用物体)在该列表中出现的物体,表示它们将会在RF的后续计算中相互产生作用并同时由RF产生基于物理的动力学运动, 比如一个需要破碎的物体你就需要把它拾取成作用物体然后进行破碎计算。又比如,你需要场景中一个球体与另外一个物体产生碰撞的刚体动力学计算,那么你就需 要把两个物体同时拾取成作用物体,然后利用RF的动力学部件进行动力学的交互运动计算。最后才能得到两个物体的运动计算的正确结果。

    Impact Objects Properties(作用物 体属性)设置在Impact Objects列表中拾取物体的物理属性,这个部分与你所知道的Reactor的操作非常类似,你需要设置物体的材质、质量、摩擦力以及弹性,默认情况下 RF已经为你提供了一堆材质属性预设,所以使用时非常的简单。你打算让虚拟的三维物体转换成为现实中的任何材料所做成的任意物体就把它做相应的设置即可。

    Unyielding Objects(不激活物体)在该列表中出现的物体,表示它们将会在RF的后续计算中影响其它被标记为Impact Objects的物体,不激活物体自身可以具有动画但始终不会因为 RF 的计算而产生任何的动力学运动,这个部分与你所知道的Reactor操作非常类似,正如地面与上面运动的球体和踢球的人一样,大地会产生重力、摩擦力等物理属性从而影响在上面运动的物体,但是皮球不会让地面运动一样,这个概念非常好理解。

    Unyielding Properties(不激活属性)设置Unyielding Objects列表中拾取物体的物理属性,用途于作用物体属性完全一样。

    Inactive Objects(不活动物体)在该列表中出 现的物体,表示它们将会在RF的后续计算中受到标记为Impact Objects的物体所影响而产生运动,而且在受到任意Impact Objects标记的物体影响之前,不活动物体将不会产生交互性的运动动画,只能产生简单的重力动画。也就是说在这个列表中的物体除非受到作用物体影响,否则它们将不会由RF产生运动动画,凡是Inactive Objects列表里拾取的物体,都属于被动运动物体。举例来说,你用一个木棒挥击一堵砖墙,木棒在这里就是作用物体,而砖墙就可以设置为不活动物体,因为它需要由木棒碰触到以后才可能产生下一步的运动效果。

    Inactive properties(不活动属性)设置Inactive Objects列表中拾取物体的物理属性,用途于作用物体属性完全一样。

    注意:作用物体、不激活物体以及不活动物体之间的关系其实不难掌握,在要把你要计算的物体归属于那个类型的物体,这个问题上面,你只要考虑我上面介绍中粗体字标示的功能对号入座即可。

    b Physics(动力学)控制组:

    08

    正如这个卷展的名称一样,Physics(动力学)控制组内的卷展栏都是用于记录和控制动力学模拟计算的设置和参数。你可以通过它们来全局的控制动力学引擎类型、计算精度以及动力学模拟时要考虑的“影响力”、破坏属性等等因素。

    这个控制组由三个卷展组成分别是Physical Options(动力学操作)、PhysX Simulation Properties(动力学模拟属性)、以及PhysX Demolition Properties(动力学破坏属性)下面我逐一简单进行介绍。

    Physical Options卷展主要是用于选择RF计算 时所使用的引擎类型以及动力学模拟时的计算精度,另外还可以进行计算结果的记录输出,也就是烘焙成帧动画或者是静态结果直接输出。就目前最新版本来说RF 现在可以使用两种动力学引擎,就像你知道的一样,分别是PhysX和Reactor。依据你所选择的引擎不同在余下的两个卷展栏中的参数将有部分产生变 化。就我个人而言一直都使用默认的PhysX,因为它比后者计算精度和效率都要好很多。参数方面如果你有原来MAX的Reactor使用经验的话,基本是 没有难度的,无非就是计算范围、碰撞阈值、计算精度这些。卷展中的四个记录动画按钮作用从左到右分别是预览计算动画、记录并烘焙最终的计算结果、暂停当前 计算、停止动力学计算。

    这里我稍微提一下操作方法:

    对于动画结果输出的话,在设置完其它所有操作参数的前提下,你可以这样操作:先点击预览动画,随后在max视图中观察模拟 计算的动画结果(通过设置可实时在视窗中用鼠标来控制运算对象或者实时修改某些动力学参数,RF会实时考虑你的操作),然后再次点击同按钮来停止预览,调 整你所需要修改的参数设置,最后点击记录烘焙动画按钮来产生最终的MAX帧动画。

    随后我会通过实例来说明方法,所以别着急继续往下看…….

    对于静帧结果输出,在设置完其它所有操作参数的前提下,你可以这样操作:点击预览动画,随后在max视图中观察模拟计算的 动画结果(通过设置可实时在视窗中用鼠标来控制运算对象或者实时修改某些动力学参数,RF会实时考虑你的操作),当你看到你所需要的动画帧时,单击暂停当 前计算按钮,然后单击停止动力学计算按钮来得到经过RF动力学计算的MAX单帧输出无动画结果。

    PhysX Simulation Properties卷展 的主要作用是设置RF在进行动力学模拟计算时要考虑的额外因素。你可以通过这里把max的标准动力学力影响加入到RF的计算中,比如风力、重力这些普通的 力影响通过卷展中的拾取列表就能让RF认识“它们”,对于RF自己的力影响物体也是如此。这个部分的其它参数都是用于设置交互影响的设置,它们包括:影响 力物体的倍增设置、动力学实时计算时的物体交互方式设置、群组物体的计算模式、实时计算时是否考虑鼠标操作等等属性设置。

    PhysX Demolition Properties卷展的作用主要是设置RF进行实时动力学计算期间的附加属性。在这里你可以让RF计算实时的二次破碎,以及最近RF版本在这里加入的初级粘性群组物体动力学属性(具有软体橡胶类物体的计算能力),以使成组的物体得到正确的动力学计算结果。

    C, Fragmentation(破碎)控制组:

    09

    Fragmentation面板的主要作用是对拾取到Objects面板内Impact Objects(作用物体)列表中的物体进行破碎计算,另外,在RF进行任何实时破碎计算时实际的破碎效果参数都是通过这个面板中的参数来最终确定的。我 们可以通过这个面板实现多种的破碎效果,比如随机生成的破碎效果,或者通过鼠标移动轨迹追踪的破碎效果,又或者根据其它参考物体的破碎效果(爆炸点)等 等。

    这个部分由三个卷展栏组成:Fragmentation Options(破碎操作)、Draw Fragmentent(绘制破碎)以及Fragmentation by Shapes(通过形状破碎),我逐一对它们进行介绍。

    Fragmentation Options卷展是在使用RF 时使用率最高的地方,为什么呢?原因很简单,不管是静态的碎裂效果还是基于物理的动画化碎裂效果,它们最开始的计算“元素”都将会是这个卷展计算的结果, 也就是基础的物体碎块。这个卷展虽然不大,但是功能却非常强大,同时设置的参数也不多。这完全归功于软件作者,我们那位俄罗斯同志的细心规划啦:O ,下面我介绍一下这里的参数。

    卷展中最上面的Fragmentation Type(破碎类型)列表:

  • http://tut.aboutcg.com/all-tutorials-list/rayfire-02.html

    因本人能力有限文中有错误和疏漏之处在所难免 请为我指出 非常感谢~~

    E.制作实例

    一、拆迁!拆迁!破坏!!破坏!!

    任务:现在资本家给你20块人民币,要你在最短时间内把下面这堵矮墙拆了,你现在一天没接活儿,又没吃两顿饭,那么你的选择是什么?看什么….干不干吧??

    level01_start

    Step 01 工作前看单位

    开始“干活儿”之前,请确保 3ds max 的系统单位是默认的英寸,显示单位也是默认的通用单位,看插图:

    step01

    Step 02物体创建

    创建“地面”、创建“砖块”、创建“石灰层”……..

    A. Top视图拉一个plane,其大小为800×800个单位,位置其轴心点大概在世界坐标源点附近。

    B. 在plane上面,任意视图创建一个Box物体,其大小为6×12x3,给长边分段3给短边分段2,高度分段不变,右键塌陷成editable polygan物体,按2,切换到边级别,全选物体外延的所有边,用倒角命令,给个0.5的倒角。然后全选面,删除所有平滑组。完了以后横向复制若干个, 捕捉对齐,变成一行“砖头”,纵向复制如干行错误捕捉对齐,变成一堵“砖墙”。

    C. 在可以看到“砖墙”正面的视图中,画个矩形样条曲线,来作为“墙皮”的初始形状塌陷为editable spline,切换到顶点级别,全选顶点,右键转换为Corner(防止样条曲线产生多余的面) 通过Refine和移动工具来为“石灰层墙皮”添加该有的形状。完了直接右键塌陷为editable polygan物体,在这个新的单面物体上加几何体拓扑段数,为将来的切割破碎做准备,然后全选面,删除所有平滑组。最后为这个单面体加个shell修改 器,Outer Amout给0.6,墙皮完成。

    D. 调整各个几何体的位置并为所有几何体用英文字母重命名,如果你愿意的话,给它们贴图坐标并给上相应的材质。如果你很爽的话,再给场景加上相机,给上灯光,最后保存这个工程文件,文件名比如:oldwall01
    看我制作后完成的样子:

    step02a

    step02b

    (如果你是个懒虫,不愿意用十分钟建完这个练习场景,那么劳驾请直接下载我帖子里的附件,上面的话都算废话,我只能无语了……..)
    level01_01start.part01.rar
    level01_01start.part02.rar
    level01_01start.part03.rar
    level01_01start.part04.rar
    level01_01start.part05.rar
    level01_01start.part06.rar

    Step 03 开始破坏!

    A. 打开创建面板——RayFire Tool——点击RayFire 打开RF的主面板。

    step03a

    B. 在任意一个正交视图中(最好是user视图),选择“石灰层墙皮”物体,转到RF的主面板中,点击Objects按钮切换到物体面板,在Impact Objects列表中点击Add按钮,此时“墙皮”被RF识别为作用物体。

    step03b

    C. 点击界面上部的Fragmentation按钮切换到破碎面板,把Fragmentation Options卷展内的Iteration(迭代)从原来的默认参数改为5和2,其它参数默认。(这个意思是把“墙皮”物体大体切割成5块,然后其中有两 块将会出现变化,最后计算结果可能会是5-7块之间。)点击同位置下部的Fragment Impact Object按钮,开始计算,现在你的“墙皮”应该能看见裂缝了

    step03c

    D. 现在你看见了你的“墙皮”由一大块,变成了若干块,但是效果有点糟糕,裂缝不是很好看,因为太规则了。我们来玩一下…….. 选择RF界面菜单栏上的Manager——Delete命令。现在你“失败”的作品消失了……

    step03d

    这个操作实际上是我前半部教程学习过的概念,即:RF会随时保留你前一步操作的结果,而当你点击了Fragment Impact Object按钮后,RF的Layers面板里已经多加了一个新的RF效果图层了,随后我们点击了Delete命令,它实际也是Layers面板里的 Delete按钮的快捷方式。另外,这里的“效果层”实际是这样的,RF把你的当前操作物体隐藏掉,然后对它的复制物体进行计算处理,如果你选择了 Delete,那么就意味着,RF会把计算的结果删除,然后把原来隐藏的原始物体再次“还”给你。

    E. 继续玩一下,我们目前使用的破碎类型为默认的Uniform,而RF目前提供了9种程序式碎裂方法,你可以用前面的方法,只修改 Fragmentation type的类型以及Iterations参数,而不修改其它参数,尝试完一种看看效果后,记得每次使用Delete命令来删除结果。

    step03e

    每种效果点击一次Fragment Impact Object按钮,不要多按几次,不然RF会以当前的结果为下一次的计算开始点,我们目前需要的是感受各种程序式破碎效果。

    F. 玩够了么?不够再继续………不然你就赶紧干正事儿,往下看吧:Q

    Step 04 破坏墙皮
    首先我总结一下你玩下来的结论,我们破坏墙皮应该使用Irregular(不规则)或者是Relative to Mouse(参考鼠标动作),另外Iterations参数的两个数值输入框你应该理解是干嘛用的了。另外你应该会发现,新产生的物体将会被自动的重命 名。现在有个问题,不管你选择什么样的破碎类型,都不能达到很好的效果,因为啥呢?没有裂缝?有 但是裂缝没缝隙。所以看上去碎裂的感觉都不对,那么现在我们继续我们的工作…….

    A. 选择Irregular为破碎类型,然后迭代设置为5和2,其它参数默认。选择Options——Advanced Fragmentation Options(高级破碎操作),做下图参数修改,然后关闭这个浮动对话框。

    step04a

    Advanced Fragmentation Options对话框里第一个下拉菜单是用来选择破碎引擎的,选择ProBoolean还是选择ProCutter方式,我个人看来都无所谓的,不过我对 ProCutter有特殊感情,所以选择了它。Rift width参数即为破碎后碎片之间的裂缝宽度,它的设置单位为当前系统单位,对于这个对话框里的其它参数其实挺简单的,你可以通过我上部教学的方式自己学 习一下。

    B. 那么现在我可以点击Fragment Impact Object按钮了,为了保持这个练习的完整性,请你尽量贴近我下面插图中的效果,如果效果差距较大,你可以再次Delete然后重新计算(每次点击 Fragment Impact Object按钮默认情况下计算结果都是随机产生的)。

    step04b

    C. 得到上图类似的效果后,选择RF界面菜单栏上的Manager——Select命令,这将会全选最后一次执行计算的结果,再选择Tools—— Remove mid-edge vertices命令,删除所有被选择物体的中间多余顶点,然后同菜单选择Delete all original Objects命令,这将会删除RF隐藏在场景中原始物体。

    step04c

    使用这些命令是为了在你确定当前计算结果就是你需要的效果的前提下,优化计算后的模型结果(注意max的提示行会有相应的数据提示),并且删除上次RF为你保存的“源”物体。也就是说这是优化RF计算结果的步骤。

    D. 点击Objects按钮,切换回物体面板,此时我们看到刚才加入到Impact Objects列表内的一个物体经过RF计算后又自动添加变成了若干个碎片物体,注意它们每个物体后缀都变成了以frag_XX结尾的名称:

    step04d

    E. 点击Impact Objects列表中的Clear按钮,把当前列表清空,然后在场景中选择下面插图中组成类似形状的碎片几何体(我这里是一个,你的可能是多个),然后点击Impact Objects列表中的Add按钮,把新的物体加入到RF的计算中。

    step04e

    按照物理现象来说,一堵“被砸”的墙面应该是这样的:一段墙中间被拆除了,而其两边还保留着残缺的墙面。所以这个操作就是为了制作墙面中间的“缺口”,而对于墙皮其它相对“完好”的部分来说,我们可以后边再处理。

    F. 回到Fragmentation面板,我们再次对新加入的“墙皮碎片”几何体进行破碎计算,除了修改Advanced Fragmentation Options对话框里的Rift width参数为0.2之外,保持其它的参数设置不变,直接点击面板中的Fragment Impact Object按钮,得到类似的下面插图的效果。

    step04f

    G. 再次重复前面的操作,我们需要细化这块墙皮区域的破碎效果。方法是使用前面的E—F步骤所述的相同方法。这里我们需要挑选每次计算后,得到的大块“墙 皮”,然后把它们加入到新的计算当中,让“它们”变小,你只需要留意自然法则所带来的结果。最后达到我下面插图中的类似效果。

    step04g

    你可以由自己的审美观来决定最后这个墙皮的破坏程度,计算的过程当中,然后完全可以修改Advanced Fragmentation Options对话框里的Rift width参数,以及破碎卷展中的Iterations 参数来达到多变的结果,让最终的效果更加丰富。另外,当你获得每个阶段性的结果后,使用Tools——Remove mid-edge vertices命令,删除所有被选择物体的中间多余顶点,优化你的结果。

    H. 得到上图类似的效果后,选择RF界面菜单栏上的Tools——Delete all original Objects命令,这将会删除RF隐藏在场景中原始物体。

    I. 再次对墙皮上必要的几何体进行RF破碎计算,然后使用max移动工具、选择工具调整一下我们的计算结果,最后选择不需要的部分隐藏(或者直接删除)的碎块,最终结果参考下面插图。

    step04i

    J. 至此,我们的墙皮“破坏”的完成了,现在进行最后的收尾工作,全选所有的“墙皮”物体,然后为它们重命名一下,因为目前的场景物体名称显而易见非常混乱,不利于场景的后续操作,完成后把这些物体加成一个组(Max菜单Group——Group)。

    step04final

    Step 05 破坏砖墙

    有了目前的成果,我们就可以依据“墙皮”破损缺口的形状来制作砖墙的破碎了,这样的话我们的工作会轻松很多的~~

    A. 使用max的选择工具,并且把选择方式切换为套索,然后依据“墙皮”的缺口来选择我们需要处理的砖块。

    step05a

    B. 反选场景中的其他物体,然后右键——冻结被选择物体,这样的话,我们的操作将会更加方便一些,利于进行下一步的操作。

    C. 接下来对缺口处的砖块进行与墙皮物体同样的操作,步骤和方法以及需要注意的问题,都与破碎墙皮物体的时候完全一样,我就不在重复了。你可以完全按照你的意愿去破坏这些砖头,放开手去干吧~~~

    好了这个“简单”的“半自动”拆墙任务到这里算是圆满完成了,恭喜你可以拿那二十块钱去吃饭了,这里我展示一下我的最终成 果,希望读者你干完活儿以后也给我看看你的成果。另外,请好好思考一下我所使用的这个操作流程,总结一下知识点,以及操作RF进行破碎计算时需要注意的一 些问题。另外,我提供的练习初始文件中,MAX内的物体都是带两个贴图通道的,计算完成后,可能会提示第二个贴图通道没有坐标,你可以选中所有墙皮物体, 然后直接给个UVWmaps修改器,然后把Map channel修改为2,然后把UV坐标的长宽高改为35。

    level01_final

    二、把“美好的事物”打碎!
    任务:原来你的桌上放置了四只高脚酒杯,它们本来是你用于和漂亮MM烛光晚餐的,可惜天有不测风云,它们被彻底打碎了…… 我希望你能节哀………(PS:如果你愿意的话我们最后可以让时光倒流……)

    L02_start

    Step 01准备场景
    创建“布景”,创建“桌面”,创建高脚杯………..

    A. 还是原来的套路,在动手前先确认系统单位,为默认的Inches单位。

    B. 在3ds max的Left视图里建一个大概为400×430单位的矩形样条线,右键塌陷为editable spline,然后删除相对的两个边,使它形成了一个L型,然后为这个物体添加一个Extrude修改器,拉伸长度为550。最后,把这个物体的轴心点重 置到物体中心的底部,然后放置世界坐标原点附近并且Z轴位置为0。它将作为我们的背景。

    C. 在已经建好的“背景”物体上建立一个Box物体,长宽高分别大概在390×225x15左右,右键塌陷为editable polygan。进入物体的边线级别,全选所有边线,使用倒角命令,倒角数值为0.5。把它放在靠近“背景”物体的中心附近。这个物体是你的“桌面”。

    D. 如下面插图所示,在Front视图创建4条样条曲线,然后对它们使用Lathe修改器,段数给24,点击MAX对齐方式,最后打开Weld Core(焊接中心)。四个高脚杯制作完成。

    L02step04

    E. 在视窗中的任意位置建立一个Box物体,然后长宽高都是10个单位,段数全给3。为它添加一个Spherify(球面化)修改器,这个物体将成为砸碎你的高脚杯的“罪魁祸首”。当然你也可以直接建个球体,不一定要使用Box,我是因为节省多边形的习惯所以才这样的。

    Step 02调整物体并制作一个小动画

    A. 在视图中调整所有你已经建模完成物体的相对位置,使它们看起来类似下面的插图。

    L02step06

    B. 为上面插图中的红色“小球”制作一个简单运动动画,红色小球的起始位置参考上面的插图,然后按下键盘的N键,打开自动关键帧记录按钮,移动底部的时间滑块 到第10帧,把小球移动到下面插图所示的位置,让它接近四只高脚杯的位置,然后随便在YXZ三个轴向中的两个,使用旋转工具旋转一些角度。这样会使小球具 有移动和旋转的简单10帧动画,这样做是为我们后面的破坏动画进行的“预先”准备动画,就像你在玩原来的Reactor动力学一样。

    L02step07

    C. 保存你的目前的工程。
    到这个步骤的工程文件:level02_01start.rar

  • 作 者:freeyy

    教程分类:MAX动画/动力学

    文章中我首先会介绍如何安装并成功运行这个插件,然后整体介绍一下RayFire的各个功能模块,以及操作原理和需要注意的问题,最后的部分我将用一些简单的应用实例来说明插件的实际操作流程。另外我将会以Rayfire 1.45为基础来讲解这个插件。

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站A.总体介绍:

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站

    Rayfire是俄罗斯一个叫Mir Vadim的脚本/编程高手制作的3ds max脚本插件。目前支持9.0-2010 32bit版本的3ds max,最新的版本为1.46,这个插件的官方网站地址是:http://www.mirvadim.com/

    朋友你可以随时到这个网站下载插件的最新demo版本(在一定期限内你可以使用插件的所有功能)或者觉得它不错的可以购买它,另外网站里包含了完整的英文版在线帮助文档,以及一大堆教学视频范例供你下载,我自己就是通过这些东西来学习这个插件的。

    Rayfire 插件可以基于max自带的Reactor动力学刚体模块或者NVIDIA显卡硬件加速引擎:PhysX的动力模块同时整合max自带的 ProBooleans、ProCutter复合运算以及空间扭曲和例子系统来进行视窗实时交互式的物体动力学计算。目前它可以进行子弹射击、物体碎裂、爆炸、软体动力学、软体破碎等物理动力学的动画计算,同时对于所有RF的计算结果来说都是可逆转的,也就是说你的操作结果在任何时候都可以进行取舍,通过 RF的Layout(层)功能将可以轻松实现这种操作。对于模拟计算后的结果可以是静态的,也可以通过烘焙动画转换成为标准的max关键帧动画。相对于原先同类型的插件来说,这个插件的效果是非常“震撼”的,更难得的是计算结果精确度高而且操作简单。不过遗憾的是,目前推出的版本仅支持32位的 3ds max对应版本,并不支持64位的,这算是个小小的遗憾吧,估计未来的版本可以解决这个问题。

    B.安装注意事项

    在安装Rayfire插件时,有几个问题需要注意,否则可能无法正常使用这个插件:

    1、你电脑的显卡最好是NVIDIA的,并且最好是支持PhysX硬件加速的型号,对于装有ATI的显卡的电脑,我并没有使用过这个插件,原因不言自明吧,可能可以使用吧…….

    2、你显卡的驱动最好是NVIDIA官方推出并且通过微软WHQL认证的驱动。我的显卡为 NVIDIA 8600GT,所用的驱动版本为90.38whql。去驱动之家能够找到你所需要的驱动网站地址:http://www.mydrivers.com/。

    3、下载最新的NVIDIA PhysX硬件加速驱动,我目前使用的是PhysX_9.09.0814版本。你可以在你系统的显卡相关设置中看到版本信息,这个东西一般显卡驱动里面都已经附带了,一般不用另外装,否则的话,你就需要单独下载来安装了。

    4、下载PhysX Plug-In for Autodesk 3ds Max插件,这是PhysX引擎对max的插件,Rayfire动力学引擎缺它不可,不过在RayFire安装时默认会自动安装相关文件,所以一般不用另外装,否则的话,你就需要单独下载来安装了。我目前使用的版本为最新的Max_1.0.6如果有问题你可以到NVIDIA官方去下载,网页地址是:http://developer.nvidia.com/object/p...c_plugins.html

           MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站

    NVIDIA PhysX for Max插件安装成功后,每次打开MAX,点击Utilities(工具)面板,默认面板下部都会出现Phys X的工具,这就说明这个插件安装成功了。

     

    注意:有了以上的驱动和插件,那么Rayfire将可以正常运行并使用了。反过来说,如果你的插件不能正常运行的话,请查看上面的几个必备的要求。对于Rayfire本身的安装来说基本没任何特别的地方,一直next就行,我就不在重复了。

    C.3ds max界面中RayFire的组件分布

    安装完成后,你可以在以下地方找到Rayfire的工具:

    1、Customize菜单——Customize User Interface命令——Category:RayFire Tool,通过这里你可以把RayFire的主界面启动快捷方式,自定义到max界面的任何位置。比如右键菜单中。

    2、Create面板——Geometry几何体分类:RayFire Tool,通过这里你可以打开RayFire Tool的主面板。

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站未购买软件使用权的时候每次使用RayFire 都会出现下面的注册对话框:

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站3、 Create面板——Helpers辅助物体分类:RayFire Tool,通过这里你可以访问RayFire 两个动力学辅助物体,RF_PhysX以及RF_Bomb。一个用于动画使用PhysX引擎时动画PhysX的参数,一个用于动力学模拟时作为炸弹,计算爆炸效果。

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站在这里你可以使用RF自己的辅助物体,它具有RF专用的一些参数。

    除了以上的工具之外,RayFire也可以利用部分max自带辅助物体,比如空间扭曲辅助物体,如风、重力、粒子炸弹、置换。除此之外RF还可以利用几何体来作为作用力的来源,比如标准几何体或者Editable mesh、Editable poly等等……

    D.RayFire主要控件简介

    RF的主要控制部件和功能都集中在了它的主面板里了,当前的版本中各个不同的控制部件都有了明显的划分,这对于我们能快速的访问我们所需要的功能非常有帮助。

    1、菜单栏

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站通过这里你可以快速的访问RF的一些功能以及一些有针对性的优化工具。这里的命令大部分都是下面功能控制组里的相应功能的快捷方式。根据我的经验来说我们会经常使用到这里的Manager(管理)、Tools(工具)、Options(操作)菜单,请注意自己学习相应的命令,你留意的话可以在这些菜单中找到许多“熟悉的面孔”,而其它的独特功能也并不难掌握。

    需要注意的是,执行相应的命令,你就必须符合这个命令所要求的执行状态,然后命令操作才会得到相应的结果。

    举例来说:如果你想对场景当前选择的物体使用Execution(执行)菜单下的 Fragment(破碎)命令,要使它得到正确的结果,你就必须先把需要操作的物体添加到RF主面板的Objects(物体)控制组内的Impact Objects(作用物体)列表里,然后在同界面的Fragmentation(破碎)控制组里设置相应的破碎属性参数。最后,才能使用 Fragmentation(破碎)控制组内的Fragment Impact Objects按钮或者是Execution(执行)菜单下的Fragment(破碎)命令,才能最终得到你需要的物体破碎效果。

    注意:在整个RF的操作流程里,你都必须遵守上面这个举例的步骤方法来执行操作,然后才能得到正确的结果,也就是说:首先让RF知道你要对那个物体进行操作,你要RF把这个物体看做什么样的物体,然后对需要进行的操作进行参数设置,最后执行操作。请牢记这个思路!

     

    2、控制组

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站RF的这个区域是我们实现主要功能的地方,它分为了六大块我将分别简单介绍它们的作用和注意事项。

    a Objects(物体)控制组:

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站Objects面板的主要功能是拾取并标记你需要RF进行计算的物体,这个部分非常重要,你需要通过这里的几个列表区域来定义你所要处理的物体,以及它们所具有的物理属性,从而才能为后续的动力学模拟计算做好准备。

    在这个区域里出现的几组参数以及与它们对应的概念对于整个RF操作过程来说都需要特别的注意。我将逐一进行解释:

    Impact Objects(作用物体)在该列表中出现的物体,表示它们将会在RF的后续计算中相互产生作用并同时由RF产生基于物理的动力学运动,比如一个需要破碎的物体你就需要把它拾取成作用物体然后进行破碎计算。又比如,你需要场景中一个球体与另外一个物体产生碰撞的刚体动力学计算,那么你就需要把两个物体同时拾取成作用物体,然后利用RF的动力学部件进行动力学的交互运动计算。最后才能得到两个物体的运动计算的正确结果。

    Impact Objects Properties(作用物体属性)设置在Impact Objects列表中拾取物体的物理属性,这个部分与你所知道的Reactor的操作非常类似,你需要设置物体的材质、质量、摩擦力以及弹性,默认情况下RF已经为你提供了一堆材质属性预设,所以使用时非常的简单。你打算让虚拟的三维物体转换成为现实中的任何材料所做成的任意物体就把它做相应的设置即可。

    Unyielding Objects(不激活物体)在该列表中出现的物体,表示它们将会在RF的后续计算中影响其它被标记为Impact Objects的物体,不激活物体自身可以具有动画但始终不会因为 RF 的计算而产生任何的动力学运动,这个部分与你所知道的Reactor操作非常类似,正如地面与上面运动的球体和踢球的人一样,大地会产生重力、摩擦力等物理属性从而影响在上面运动的物体,但是皮球不会让地面运动一样,这个概念非常好理解。

    Unyielding Properties(不激活属性)设置Unyielding Objects列表中拾取物体的物理属性,用途于作用物体属性完全一样。

    Inactive Objects(不活动物体)在该列表中出现的物体,表示它们将会在RF的后续计算中受到标记为Impact Objects的物体所影响而产生运动,而且在受到任意Impact Objects标记的物体影响之前,不活动物体将不会产生交互性的运动动画,只能产生简单的重力动画。也就是说在这个列表中的物体除非受到作用物体影响,否则它们将不会由RF产生运动动画,凡是Inactive Objects列表里拾取的物体,都属于被动运动物体。举例来说,你用一个木棒挥击一堵砖墙,木棒在这里就是作用物体,而砖墙就可以设置为不活动物体,因为它需要由木棒碰触到以后才可能产生下一步的运动效果。

    Inactive properties(不活动属性)设置Inactive Objects列表中拾取物体的物理属性,用途于作用物体属性完全一样。

    注意:作用物体、不激活物体以及不活动物体之间的关系其实不难掌握,在要把你要计算的物体归属于那个类型的物体,这个问题上面,你只要考虑我上面介绍中粗体字标示的功能对号入座即可。

    b Physics(动力学)控制组:

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站正如这个卷展的名称一样,Physics(动力学)控制组内的卷展栏都是用于记录和控制动力学模拟计算的设置和参数。你可以通过它们来全局的控制动力学引擎类型、计算精度以及动力学模拟时要考虑的“影响力”、破坏属性等等因素。

    这个控制组由三个卷展组成分别是Physical Options(动力学操作)、PhysX Simulation Properties(动力学模拟属性)、以及PhysX Demolition Properties(动力学破坏属性)下面我逐一简单进行介绍。

    Physical Options卷展主要是用于选择RF计算时所使用的引擎类型以及动力学模拟时的计算精度,另外还可以进行计算结果的记录输出,也就是烘焙成帧动画或者是静态结果直接输出。就目前最新版本来说RF现在可以使用两种动力学引擎,就像你知道的一样,分别是PhysX和Reactor。依据你所选择的引擎不同在余下的两个卷展栏中的参数将有部分产生变化。就我个人而言一直都使用默认的PhysX,因为它比后者计算精度和效率都要好很多。参数方面如果你有原来MAX的Reactor使用经验的话,基本是没有难度的,无非就是计算范围、碰撞阈值、计算精度这些。卷展中的四个记录动画按钮作用从左到右分别是预览计算动画、记录并烘焙最终的计算结果、暂停当前计算、停止动力学计算。

    这里我稍微提一下操作方法:

    对于动画结果输出的话,在设置完其它所有操作参数的前提下,你可以这样操作:先点击预览动画,随后在max视图中观察模拟计算的动画结果(通过设置可实时在视窗中用鼠标来控制运算对象或者实时修改某些动力学参数,RF会实时考虑你的操作),然后再次点击同按钮来停止预览,调整你所需要修改的参数设置,最后点击记录烘焙动画按钮来产生最终的MAX帧动画。

    随后我会通过实例来说明方法,所以别着急继续往下看…….

    对于静帧结果输出,在设置完其它所有操作参数的前提下,你可以这样操作:点击预览动画,随后在max视图中观察模拟计算的动画结果(通过设置可实时在视窗中用鼠标来控制运算对象或者实时修改某些动力学参数,RF会实时考虑你的操作),当你看到你所需要的动画帧时,单击暂停当前计算按钮,然后单击停止动力学计算按钮来得到经过RF动力学计算的MAX单帧输出无动画结果。

    PhysX Simulation Properties卷展的主要作用是设置RF在进行动力学模拟计算时要考虑的额外因素。你可以通过这里把max的标准动力学力影响加入到RF的计算中,比如风力、重力这些普通的力影响通过卷展中的拾取列表就能让RF认识“它们”,对于RF自己的力影响物体也是如此。这个部分的其它参数都是用于设置交互影响的设置,它们包括:影响力物体的倍增设置、动力学实时计算时的物体交互方式设置、群组物体的计算模式、实时计算时是否考虑鼠标操作等等属性设置。

    PhysX Demolition Properties卷展的作用主要是设置RF进行实时动力学计算期间的附加属性。在这里你可以让RF计算实时的二次破碎,以及最近RF版本在这里加入的初级粘性群组物体动力学属性(具有软体橡胶类物体的计算能力),以使成组的物体得到正确的动力学计算结果。

    C, Fragmentation(破碎)控制组:

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站Fragmentation面板的主要作用是对拾取到Objects面板内Impact Objects(作用物体)列表中的物体进行破碎计算,另外,在RF进行任何实时破碎计算时实际的破碎效果参数都是通过这个面板中的参数来最终确定的。我们可以通过这个面板实现多种的破碎效果,比如随机生成的破碎效果,或者通过鼠标移动轨迹追踪的破碎效果,又或者根据其它参考物体的破碎效果(爆炸点)等等。

    这个部分由三个卷展栏组成:Fragmentation Options(破碎操作)、Draw Fragmentent(绘制破碎)以及Fragmentation by Shapes(通过形状破碎),我逐一对它们进行介绍。

    Fragmentation Options卷展是在使用RF时使用率最高的地方,为什么呢?原因很简单,不管是静态的碎裂效果还是基于物理的动画化碎裂效果,它们最开始的计算“元素”都将会是这个卷展计算的结果,也就是基础的物体碎块。这个卷展虽然不大,但是功能却非常强大,同时设置的参数也不多。这完全归功于软件作者,我们那位俄罗斯同志的细心规划啦:O ,下面我介绍一下这里的参数。

    卷展中最上面的Fragmentation Type(破碎类型)列表:

     

    MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站这里标注了目前1.45版本中我们可以使用的破碎计算类型,从上到下依次是:规则、不规则、相对于炸弹/作用物体、相对于鼠标、相对于物体轴心点、连续、维偌尼—规则、维偌尼—炸弹/作用物体、维偌尼—粒子系统。至于那种类型得到如何的效果,读者你完全可以从它们的名称中得到答案,我就不加阐述了。

    这里只要注意下“相对于”的三个类型,我们可以通过同卷展的Pick(拾取)按钮来拾取相应的物体就可以达到“相对于”的目的。另外,选择了不同的破碎类型意味着下面的可用参数会随之变化,参数的多少都是相对于你的选择的。

    除了破碎类型以外,其它参数分别是,Iterations(反复)迭代次数、Chaos(混乱度)、Detalization(细节程度)以及Noise Strength(噪波强度),这里还提供了碎裂断面的材质贴图通道,也就是说所有计算后的结果破碎碎块的断面都将可以赋予新的材质,否则它们将继承原始物体的材质。Pick(拾取)按钮是用于拾取破碎参考物体或者场景材质的。最后一个大按钮Fragmentent Impact Obiects(破碎作用物体)是用于最终计算破碎效果的按钮。对于使用这个卷展的方法来说,你完全可以通过多次的练习来掌握技巧。

    Draw Fragmentent 卷展,这个卷展所实现的功能非常强大,同时又非常的好玩~~。绘制破碎首先是上一个卷展功能的补充,原因很简单Fragmentation Options卷展实现的大多数功能毕竟都是自动的程序式方法,而在这个卷展中我们可以通过在3ds max视图拖拽鼠标来绘制碎裂效果。完全满足了使用者你的自定义需要。这里的参数也非常的简单就几个:Step size(步幅大小)它控制你在视窗中绘制的线段最后转换为“裁剪”几何体的精度。Segments(段数)控制破碎后几何体切面的精细程度。Noise(噪波)控制破碎后几何体切面的噪波效果。Auto smooth Threshold(自动平滑阈值)控制鼠标绘制破碎后剪切几何体时的平滑角度。最后一个按钮Draw Fragment Mode(绘制破碎模式)打开它后你就可以在视窗中任意“破坏”几何体了!随后RF会把当前激活视图转换为用户视图来让你进行绘制操作。

    Fragmentation by Shapes卷展,这个卷展理论上可以通过拾取任意的图像文件然后转换为剪切图形然后,用它来破碎几何体。不过通过我自己的测试,并没有产生我想要的结果,而且官方的帮助文档里面也没有提及这个卷展的使用方法,估计是我有点笨吧~,读者你自己测试吧,要是有结果的话希望你跟我分享你的使用心得。对于这个卷展的参数来说挺简单的,所以我就阐述了。

    必须注意:对于整个Fragmentation面板来说,我们所得到的结果是可以互相作用的,意思就是说,我可以先通过Objects 面板拾取我场景中的Impact Obiects(作用物体),然后使用绘制破碎来对我的几何体进行第一次的手工碎裂计算,然后RF会把这个操作之后的结果,也就是若干的碎片几何体,自动加载到Impact Obiects物体列表中,然后我可以直接点击Fragmentation Options卷展中我选择的任意一种自动的程序式破碎类型计算第二次计算破碎结果,随后RF又会把这个操作之后的结果,自动加载到Impact Obiects物体列表中,然后我又可以继续操作……….

    这种过程理论上说只要你电脑的内存足够大电脑配置越好,那么可以无限次的进行下去!这里体现了RF的强大,但是同时也有两个问题需要考虑,第一MAX自身的承受能力,因为RF的每次计算或操作结果都将备份原始的未处理物体(把它们隐藏起来),然后对“复制的物体”进行计算处理。你可以想象一下,换算成几何体面数的话,越到后面就越考验MAX的承受能力。第二是内存的使用量,跟前一个问题一样,RF每次处理操作,尤其是破碎计算操作的时候都将使用大量的内存,这可以从你每次点击Fragmentation Options卷展中的Fragment Impact Objects按钮后出现的进度条看出,而且在你不加干预的前提下,这种内存的使用量是叠加的关系,物体的碎裂结果和原始的物体都将保留在你的系统内存之中!这两个问题直接导致的后果就是MAX当机,或者直接不打招呼直接强制退出程序,原因不言自明。这类问题是我们在使用RF时需要特别注意的问题!

    当然RF已经提供了工具和命令,帮我们大部分的解决了这类问题,所以不必担心,我后续的文字中将会阐述如何来解决和避免这些问题,以及一些必要的优化方法。

    d Shooting(射击)控制组:

     MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站

    Shooting面板的主要作用是利用MAX自身的Reactor动力学引擎为基础来模拟计算枪械射击物体的整个过程并且同时产生所有附属物的动画结果。对于整个“过程”而言,我们可以进行完全的控制并且射击过程所产生的任意效果,不论是在模拟计算之前还是之后都可以进行任意的添加或者修改。也就说利用RF的这个部分我们可以在MAX内部轻松实现电脑游戏《反恐精英》中的警匪枪械从发射子弹、子弹飞驰、击中物体到火候四溅血肉横飞的整个动画效果。最经典的是RF的这个部分还可以配合外部的粒子系统,比如ThinkingParticles这样的高级粒子系统来实现更加复杂的粒子效果。你可以想象一下,这是个多么令人激动的功能组件!

    由于这个部分的卷展菜单以及参数众多,这里我只能简略的对它们进行介绍,但是我会为读者你首先提供一个大略的操作步骤和思路:

    对于射击模拟来说,RF首先需要你指定一个Gun Objects(枪物体),然后指定被射击的物体,随后制定模拟时需要出现的效果和相应的效果参数,最后设置模拟的动画范围和对应的参数,最后进行模拟射击计算。

    注意:这里的枪物体你可以自己制作,也可以通过RF菜单栏Tools——Create Gun来自动建立一个,研究一下这个由RF自己建立的物体你就可以知道如何去制作你自己的枪物体了。另外这个Gun Objects是需要提前制作动画的,否则你在RF计算之后是看不到动态的弹道运动动画的。其次“被射击物体”实际在RF的操作中是由Objects面板内的Impact Objects(作用物体)列表中拾取的物体来指定的。同理“地面、实体墙”这些不可动的物体,也是通过Objects面板内的Unyielding Objects(不激活物体)列表中拾取物体来指定的。

    上面这种“传统”方式在RF中称为Simulate Shooting(模拟射击)模式;而在整个过程中你也可以不使用“枪物体”而是在视窗中使用鼠标点击来替代枪物体的作用,这种方式的其它操作流程和第一种方式相同,而这种鼠标控制的方式在RF中被称为Instant Action(及时激活)模式,它的效果是所见即所得的实时计算效果。而第一种方式是计算完成之后才能得到结果的。这两种模式可以通过Shooting Options卷展的同名按钮来进行激活。

    对于两种射击模拟方式来说,最后的计算结果又可以通过两种交互式模式(Interactive Mode)来进行实时的效果参数修改。第一种模式称为Selected Layer(被选择的层),这种模式依赖于Layers面板中当前选择的效果层而言,通过当前你所选择的效果层来修改层内的所有已存在效果。(注:Layers(层)的概念我会在后面叙述)第二种模式称为Selected Objects(被选择的物体),这种模式比较直观,你可以在场景中选择任意一个经过射击计算后的物体,然后对它进行实时的参数修改。因为整个射击模拟过程最后的计算结果都是动画化的,所以经过这两种效果修改模式修改后的效果都将跟随效果一起继续保持动画的结果。这两种修改模式可以通过Shooting Options卷展最下部的同名按钮来进行激活。

    通过上面思路的介绍,以及两个计算模式和两种修改模式的介绍,我想读者你大概应该理解一些操作的方法了。实在不行的话等我有空再写一篇RF这个部分的教程,到时候我们在讨论吧。

    最后对于这个部分中的所有卷展栏及参数,我快速的梳理一下它们功能:

    Shooting Options(射击选项)卷展:用于指定“枪”物体,选择计算模式,选择修改效果模式,全局控制整个射击模拟计算的动画参数,控制射击时需要产生效果的全局开关。射击时产生的效果包括有:弹坑、子弹、碎块。粒子效果能产生:血块、火花、碎块、烟雾或者自定义的粒子系统,对于子弹击中后的物体可以产生:动力学的几何体破碎、置换、预定义的弹孔几何体等等效果。

    Holes(孔洞)卷展:预先定义被射击物体上的弹孔形状几何体及其变形参数。

    Reactor Debris(动力学Reator碎块)卷展:预先定义Reator射击模拟后得到的碎块几何体及其利用Reactor进行碎块模拟变形的参数。

    Decals,Bullets(弹坑,子弹)卷展:定义弹坑贴图的尺寸、子弹物体的形状几何体及其物体参数。

    Displace,Reactor Hit(置换,动力学Reator射击)卷展:定义置换贴图生成的参数以及利用Reactor进行射击动力学模拟的参数。

    Light(闪光)卷展:定义枪口及击中物体时产生闪光的灯光参数属性。

    Debris(碎块)卷展:预先定义碎块的形状几何体以及与它交互作用的导向板(MAX内古老的Deflector)拾取及其相应参数。

    Sparks(火花)卷展:定义击中物体后产生火花的几何体参数,以及与它交互作用的导向板拾取。

    Smoke(烟雾)卷展:定义子弹射击至物体时产生烟雾的粒子系统的生成参数。

    Blood(血块)卷展:定义击中物体后产生血块的粒子系统参数,以及与它交互作用的导向板拾取。

    Custom Effect(自定义效果)卷展:从这里你可以拾取外部的粒子系统来增强RF射击计算的效果。这里就是RF系统相对于PF、TP这些高级粒子系统的数据交互接口。

    e Reactor(Reactor动力学)控制组:

     MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站

    Reactor面板的主要作用也是利用MAX自身的Reactor动力学引擎为基础来模拟计算物体爆炸冲击波和破碎效果,并且同时将产生相应的动画。对于这个部分来说,我个人使用经验,觉得效果并不是很好,而且操控性差了一下。感觉这里仅仅是把Reactor的相应功能做了一个集成在这个面板里,有待于软件作者对这里有更进一步的开发吧。

    这个部分由两个卷展栏组成:Reactor Explosion(Reactor爆炸)以及Reactor Demolition(Reactor破碎),使用的方法与 Shooting面板中的卷展差不多:由Objects面板内的Impact Objects(作用物体)列表中拾取的物体来指定需要爆炸计算的几何体。同理“地面、实体墙”这些不可动的物体,也是通过Objects面板内的Unyielding Objects(不激活物体)列表中拾取物体来指定为不参与计算的物体。有点小差别是Reactor Explosion卷展中的Bombs(炸弹)拾取列表,可以用于指定炸弹物体,从而使几何体产生爆炸动力学计算,炸弹物体可以是标准的MAX空间扭曲力物体,也可以是RF自己的RF_Bomb物体。另外也可以不指定Bomb辅助物体,这样的话RF将使用参与爆炸计算的所有物体的相对位置来作为爆炸或者破碎的基准。参数方面也就Reactor里面那些东西并不难掌握,读者你可以自己用原来方法使用这些参数。

    物体拾取及参数设置完成以后可以通过两个卷展最下方的按钮来执行相应的计算,然后都将获得一个“萎缩”版本的动画结果,你可以手动调整MAX的动画范围来达到正常的动画效果。

    最后要注意的是,要使Reactor爆炸或者Reactor破坏计算成功的话,你需要向原来使用Reactor一样,注意设置物体的属性、Bombs辅助物体的属性以及RF相应卷展中的计算属性,综合上述的参数才可能获得理想的计算结果,这也是我们在使用同类软件或者插件是需要注意的问题。一旦出现了错误,读者你就该用我说的这个思路去尝试解决问题。

    f Layers(层)控制组:

     MAX 动力学插件RayFire 入门教程之一 - 风雨一线天  - 王小虎 cg教程站

    Layers控制组的主要作用是全局性的控制RF所产生一切计算结果,同时可以把用户设置参数保存为预设以便将来快速的访问这些设置。通常情况下,经过RF模拟计算出的大部分结果都将会在Layers面板中得到体现,换句话说Layers面板的操作与RF的所有模块都有关联。我们可以通过这个强大的功能随时在计算结果之间进行取舍,或者隐藏掉某一个阶段的计算结果,以便调整场景中的其它设置。读者你可以想象一下,这个面板将为我们的创作提供大多的便利。

    Layers控制组中由两个卷展组成:Interactive Layer Manager(交互式层管理)卷展,以及Presets(预设)卷展。它们的控制参数都非常简单,在每次计算之后,读者你可以自己尝试一下操作,就能轻松掌握所以在这里我就不再讲解了。

    OK 到这里整个RayFire 的安装、控制组件以及操作界面构成都介绍完了,下面我将由浅到深的讲解几个RF的具体操作实例来强化一下我们前面讲解到的大部分知识及概念。

     

    PhysX Plug-In for Autodesk 3ds Max插件下载

    http://physxinfo.com/news/1205/physx-dcc-plug-in-2-01-for-3ds-max-now-available/

     

     

     rayfire  的官方下载地址  http://www.mirvadim.com/ 

     

     

  •  

       上次简单介绍了Rayfire Tool的界面及简单应用,这次为大家讲解如何用它做一个简单的碰撞动画。
    (1)打开MAX2010,依次创建图中三个物体,分别赋予不同的石头材质,需要注意的是,当作地面的模型的分段要足够多,这里采用200×200×200.

     
    (2)在面板里依次点击右图按钮,RayFire tool 面板调节出来。如左图所示。
     

    (3)下面先对石头做一个破裂效果,选择方形物体,将物体添加进RF中后,点击Fragmenttation,破裂方式选择Irregular,破裂数这里选择30×20.然后点击运算按钮,看效果。下图效果基本可以。

     

    (4)下面选择刚刚破裂好的碎片,添加到Inactive objects,点击Add,添加到这里的目的是使这些物体在后来的运算中只作为被激活物体,而不是作为作用物体。

     
    (5)为小球K一个撞击石头的动画,同时观察在第几帧碰到方形的物体,这里是在22帧最合适。然后点击Physics,将开始时间改为22,结束时间改为150即可。
     
    (6)下面一步是将物体添加进RF,选择被当作地面的物体添加至固定物体Unyielding Objects,选择圆球添加至激活物体Impact Objects。这里的地面物体属性我选择了Wood.RF就会当作了地板来运算。

    (7)下面将圆球添加至引发作用的物体,点击Physics,然后点击Add.下面就可以进行碰撞测试了,点击开始运算。
     
    如图所示碰撞效果很差,没有重力的影响,下面就为场景添加一个重力场,让碰撞看起来更真实,在MAX里创建一个重力场,如下图。
     
    (8)把刚刚添加的重力场添加进RF,同刚才添加圆球的方法相同,点击Add即可。然后开始新的运算,得到想要的效果。



  •  

     
    在这里首先调整3ds max的系统单位,应为默认的英寸,显示单位也为默认的通用单位。

     下面先以一个简单例子了解一下此插件的操作界面。创建一个Box,然后塌陷成poly. 

     
    本插件的操作原理是需要先将物体导入插件,插件识别了物体后,对物体做出裂缝,破碎,爆炸等效果。
    所以先将刚刚创建的Box添加到插件中,先点击物体,然后点击,Objects__Add,然后下拉式菜单中就有了物体Box01.

     点击界面上部的Fragmentation按钮切换到破碎面板,把Fragmentation Options卷展内的Iteration默认参数改为5和2,其它参数默认即可。这两个参数的意思就是横向和纵向的破裂数量。点击同位置下部的Fragment Impact Object按钮,开始计算。 

     现在来看,破裂的太过规则,并不是很理想的效果,下面点击Manager——Delete命令,可以继续调不同的参数来看效果 

    点击Delete命令后,模型又恢复了原来的状态,就可以开始重新运算了,右图中菜单中有9种破裂方式,自己可以试一下哪一种是你想要的效果。尝试完一种看看效果后,记得每次使用Delete命令来删除结果。

  • 关于作者:

    aboutus_freeyy


    因本人能力有限文中有错误和疏漏之处在所难免 请为我指出 非常感谢~~

    E.制作实例

    一、拆迁!拆迁!破坏!!破坏!!

    任务:现在资本家给你20块人民币,要你在最短时间内把下面这堵矮墙拆了,你现在一天没接活儿,又没吃两顿饭,那么你的选择是什么?看什么….干不干吧??

    level01_start

    Step 01 工作前看单位

    开始“干活儿”之前,请确保 3ds max 的系统单位是默认的英寸,显示单位也是默认的通用单位,看插图:

    step01

    Step 02物体创建

    创建“地面”、创建“砖块”、创建“石灰层”……..

    A. Top视图拉一个plane,其大小为800×800个单位,位置其轴心点大概在世界坐标源点附近。

    B. 在plane上面,任意视图创建一个Box物体,其大小为6×12x3,给长边分段3给短边分段2,高度分段不变,右键塌陷成editable polygan物体,按2,切换到边级别,全选物体外延的所有边,用倒角命令,给个0.5的倒角。然后全选面,删除所有平滑组。完了以后横向复制若干个, 捕捉对齐,变成一行“砖头”,纵向复制如干行错误捕捉对齐,变成一堵“砖墙”。

    C. 在可以看到“砖墙”正面的视图中,画个矩形样条曲线,来作为“墙皮”的初始形状塌陷为editable spline,切换到顶点级别,全选顶点,右键转换为Corner(防止样条曲线产生多余的面) 通过Refine和移动工具来为“石灰层墙皮”添加该有的形状。完了直接右键塌陷为editable polygan物体,在这个新的单面物体上加几何体拓扑段数,为将来的切割破碎做准备,然后全选面,删除所有平滑组。最后为这个单面体加个shell修改 器,Outer Amout给0.6,墙皮完成。

    D. 调整各个几何体的位置并为所有几何体用英文字母重命名,如果你愿意的话,给它们贴图坐标并给上相应的材质。如果你很爽的话,再给场景加上相机,给上灯光,最后保存这个工程文件,文件名比如:oldwall01
    看我制作后完成的样子:

    step02a

    step02b

    (如果你是个懒虫,不愿意用十分钟建完这个练习场景,那么劳驾请直接下载我帖子里的附件,上面的话都算废话,我只能无语了……..)
    level01_01start.part01.rar
    level01_01start.part02.rar
    level01_01start.part03.rar
    level01_01start.part04.rar
    level01_01start.part05.rar
    level01_01start.part06.rar

    Step 03 开始破坏!

    A. 打开创建面板——RayFire Tool——点击RayFire 打开RF的主面板。

    step03a

    B. 在任意一个正交视图中(最好是user视图),选择“石灰层墙皮”物体,转到RF的主面板中,点击Objects按钮切换到物体面板,在Impact Objects列表中点击Add按钮,此时“墙皮”被RF识别为作用物体。

    step03b

    C. 点击界面上部的Fragmentation按钮切换到破碎面板,把Fragmentation Options卷展内的Iteration(迭代)从原来的默认参数改为5和2,其它参数默认。(这个意思是把“墙皮”物体大体切割成5块,然后其中有两 块将会出现变化,最后计算结果可能会是5-7块之间。)点击同位置下部的Fragment Impact Object按钮,开始计算,现在你的“墙皮”应该能看见裂缝了

    step03c

    D. 现在你看见了你的“墙皮”由一大块,变成了若干块,但是效果有点糟糕,裂缝不是很好看,因为太规则了。我们来玩一下…….. 选择RF界面菜单栏上的Manager——Delete命令。现在你“失败”的作品消失了……

    step03d

    这个操作实际上是我前半部教程学习过的概念,即:RF会随时保留你前一步操作的结果,而当你点击了Fragment Impact Object按钮后,RF的Layers面板里已经多加了一个新的RF效果图层了,随后我们点击了Delete命令,它实际也是Layers面板里的 Delete按钮的快捷方式。另外,这里的“效果层”实际是这样的,RF把你的当前操作物体隐藏掉,然后对它的复制物体进行计算处理,如果你选择了 Delete,那么就意味着,RF会把计算的结果删除,然后把原来隐藏的原始物体再次“还”给你。

    E. 继续玩一下,我们目前使用的破碎类型为默认的Uniform,而RF目前提供了9种程序式碎裂方法,你可以用前面的方法,只修改 Fragmentation type的类型以及Iterations参数,而不修改其它参数,尝试完一种看看效果后,记得每次使用Delete命令来删除结果。

    step03e

    每种效果点击一次Fragment Impact Object按钮,不要多按几次,不然RF会以当前的结果为下一次的计算开始点,我们目前需要的是感受各种程序式破碎效果。

    F. 玩够了么?不够再继续………不然你就赶紧干正事儿,往下看吧:Q

    Step 04 破坏墙皮
    首先我总结一下你玩下来的结论,我们破坏墙皮应该使用Irregular(不规则)或者是Relative to Mouse(参考鼠标动作),另外Iterations参数的两个数值输入框你应该理解是干嘛用的了。另外你应该会发现,新产生的物体将会被自动的重命 名。现在有个问题,不管你选择什么样的破碎类型,都不能达到很好的效果,因为啥呢?没有裂缝?有 但是裂缝没缝隙。所以看上去碎裂的感觉都不对,那么现在我们继续我们的工作…….

    A. 选择Irregular为破碎类型,然后迭代设置为5和2,其它参数默认。选择Options——Advanced Fragmentation Options(高级破碎操作),做下图参数修改,然后关闭这个浮动对话框。

    step04a

    Advanced Fragmentation Options对话框里第一个下拉菜单是用来选择破碎引擎的,选择ProBoolean还是选择ProCutter方式,我个人看来都无所谓的,不过我对 ProCutter有特殊感情,所以选择了它。Rift width参数即为破碎后碎片之间的裂缝宽度,它的设置单位为当前系统单位,对于这个对话框里的其它参数其实挺简单的,你可以通过我上部教学的方式自己学 习一下。

    B. 那么现在我可以点击Fragment Impact Object按钮了,为了保持这个练习的完整性,请你尽量贴近我下面插图中的效果,如果效果差距较大,你可以再次Delete然后重新计算(每次点击 Fragment Impact Object按钮默认情况下计算结果都是随机产生的)。

    step04b

    C. 得到上图类似的效果后,选择RF界面菜单栏上的Manager——Select命令,这将会全选最后一次执行计算的结果,再选择Tools—— Remove mid-edge vertices命令,删除所有被选择物体的中间多余顶点,然后同菜单选择Delete all original Objects命令,这将会删除RF隐藏在场景中原始物体。

    step04c

    使用这些命令是为了在你确定当前计算结果就是你需要的效果的前提下,优化计算后的模型结果(注意max的提示行会有相应的数据提示),并且删除上次RF为你保存的“源”物体。也就是说这是优化RF计算结果的步骤。

    D. 点击Objects按钮,切换回物体面板,此时我们看到刚才加入到Impact Objects列表内的一个物体经过RF计算后又自动添加变成了若干个碎片物体,注意它们每个物体后缀都变成了以frag_XX结尾的名称:

    step04d

    E. 点击Impact Objects列表中的Clear按钮,把当前列表清空,然后在场景中选择下面插图中组成类似形状的碎片几何体(我这里是一个,你的可能是多个),然后点击Impact Objects列表中的Add按钮,把新的物体加入到RF的计算中。

    step04e

    按照物理现象来说,一堵“被砸”的墙面应该是这样的:一段墙中间被拆除了,而其两边还保留着残缺的墙面。所以这个操作就是为了制作墙面中间的“缺口”,而对于墙皮其它相对“完好”的部分来说,我们可以后边再处理。

    F. 回到Fragmentation面板,我们再次对新加入的“墙皮碎片”几何体进行破碎计算,除了修改Advanced Fragmentation Options对话框里的Rift width参数为0.2之外,保持其它的参数设置不变,直接点击面板中的Fragment Impact Object按钮,得到类似的下面插图的效果。

    step04f

    G. 再次重复前面的操作,我们需要细化这块墙皮区域的破碎效果。方法是使用前面的E—F步骤所述的相同方法。这里我们需要挑选每次计算后,得到的大块“墙 皮”,然后把它们加入到新的计算当中,让“它们”变小,你只需要留意自然法则所带来的结果。最后达到我下面插图中的类似效果。

    step04g

    你可以由自己的审美观来决定最后这个墙皮的破坏程度,计算的过程当中,然后完全可以修改Advanced Fragmentation Options对话框里的Rift width参数,以及破碎卷展中的Iterations 参数来达到多变的结果,让最终的效果更加丰富。另外,当你获得每个阶段性的结果后,使用Tools——Remove mid-edge vertices命令,删除所有被选择物体的中间多余顶点,优化你的结果。

    H. 得到上图类似的效果后,选择RF界面菜单栏上的Tools——Delete all original Objects命令,这将会删除RF隐藏在场景中原始物体。

    I. 再次对墙皮上必要的几何体进行RF破碎计算,然后使用max移动工具、选择工具调整一下我们的计算结果,最后选择不需要的部分隐藏(或者直接删除)的碎块,最终结果参考下面插图。

    step04i

    J. 至此,我们的墙皮“破坏”的完成了,现在进行最后的收尾工作,全选所有的“墙皮”物体,然后为它们重命名一下,因为目前的场景物体名称显而易见非常混乱,不利于场景的后续操作,完成后把这些物体加成一个组(Max菜单Group——Group)。

    step04final

    Step 05 破坏砖墙

    有了目前的成果,我们就可以依据“墙皮”破损缺口的形状来制作砖墙的破碎了,这样的话我们的工作会轻松很多的~~

    A. 使用max的选择工具,并且把选择方式切换为套索,然后依据“墙皮”的缺口来选择我们需要处理的砖块。

    step05a

    B. 反选场景中的其他物体,然后右键——冻结被选择物体,这样的话,我们的操作将会更加方便一些,利于进行下一步的操作。

    C. 接下来对缺口处的砖块进行与墙皮物体同样的操作,步骤和方法以及需要注意的问题,都与破碎墙皮物体的时候完全一样,我就不在重复了。你可以完全按照你的意愿去破坏这些砖头,放开手去干吧~~~

    好了这个“简单”的“半自动”拆墙任务到这里算是圆满完成了,恭喜你可以拿那二十块钱去吃饭了,这里我展示一下我的最终成 果,希望读者你干完活儿以后也给我看看你的成果。另外,请好好思考一下我所使用的这个操作流程,总结一下知识点,以及操作RF进行破碎计算时需要注意的一 些问题。另外,我提供的练习初始文件中,MAX内的物体都是带两个贴图通道的,计算完成后,可能会提示第二个贴图通道没有坐标,你可以选中所有墙皮物体, 然后直接给个UVWmaps修改器,然后把Map channel修改为2,然后把UV坐标的长宽高改为35。

    level01_final

    二、把“美好的事物”打碎!
    任务:原来你的桌上放置了四只高脚酒杯,它们本来是你用于和漂亮MM烛光晚餐的,可惜天有不测风云,它们被彻底打碎了…… 我希望你能节哀………(PS:如果你愿意的话我们最后可以让时光倒流……)

    L02_start

    Step 01准备场景
    创建“布景”,创建“桌面”,创建高脚杯………..

    A. 还是原来的套路,在动手前先确认系统单位,为默认的Inches单位。

    B. 在3ds max的Left视图里建一个大概为400×430单位的矩形样条线,右键塌陷为editable spline,然后删除相对的两个边,使它形成了一个L型,然后为这个物体添加一个Extrude修改器,拉伸长度为550。最后,把这个物体的轴心点重 置到物体中心的底部,然后放置世界坐标原点附近并且Z轴位置为0。它将作为我们的背景。

    C. 在已经建好的“背景”物体上建立一个Box物体,长宽高分别大概在390×225x15左右,右键塌陷为editable polygan。进入物体的边线级别,全选所有边线,使用倒角命令,倒角数值为0.5。把它放在靠近“背景”物体的中心附近。这个物体是你的“桌面”。

    D. 如下面插图所示,在Front视图创建4条样条曲线,然后对它们使用Lathe修改器,段数给24,点击MAX对齐方式,最后打开Weld Core(焊接中心)。四个高脚杯制作完成。

    L02step04

    E. 在视窗中的任意位置建立一个Box物体,然后长宽高都是10个单位,段数全给3。为它添加一个Spherify(球面化)修改器,这个物体将成为砸碎你的高脚杯的“罪魁祸首”。当然你也可以直接建个球体,不一定要使用Box,我是因为节省多边形的习惯所以才这样的。

    Step 02调整物体并制作一个小动画

    A. 在视图中调整所有你已经建模完成物体的相对位置,使它们看起来类似下面的插图。

    L02step06

    B. 为上面插图中的红色“小球”制作一个简单运动动画,红色小球的起始位置参考上面的插图,然后按下键盘的N键,打开自动关键帧记录按钮,移动底部的时间滑块 到第10帧,把小球移动到下面插图所示的位置,让它接近四只高脚杯的位置,然后随便在YXZ三个轴向中的两个,使用旋转工具旋转一些角度。这样会使小球具 有移动和旋转的简单10帧动画,这样做是为我们后面的破坏动画进行的“预先”准备动画,就像你在玩原来的Reactor动力学一样。

    L02step07

    C. 保存你的目前的工程。
    到这个步骤的工程文件:level02_01start.rar

    Step 03进入RF进行破碎预计算

    A. 到目前为止,我们所有的前期准备工作完成了,下面进入RF部分,所以现在你需要打开Rayfire的主面板。转换到它的Objects面板,在视窗中选择小球10帧动画落下后最靠它的两个高脚杯,然后点击Impact Objects卷展的Add按钮。

    L02step08

    整个制作思路是这样的:依赖于物理的常识我们对所有的高脚杯进行“预处理”的破碎计算,然后由红色小球物体和所有高脚杯的碎片以及地面来计算整个动力学动画。目前我们正在进行的操作是处理高脚杯中由于红色小球撞击而破碎最严重的“部分”。

    B. 点击Fragmentation按钮,转换到RF的破碎卷展。使用下面插图中的设置来对两个高脚杯进行第一次破碎计算。

    L02step09

    破碎的状态由你自己去决定,就像前面一个练习一样,先由大块碎片开始,然后逐步深入,然后在每个阶段你得到满意的结果后,别忘记使用前个练习提到的优化方法去优化你的计算结果。

    C. 进入第二次破碎计算,选择距离红色小球范围内比较近的2-4块高脚杯碎片,然后转换到Objects面板点击Impact Objects列表中的Clear按钮。然后在点击Add,把这块碎片添加进计算序列里。把破碎方式改为Relative to Mouse(参照鼠标动作),其它参数保持不变。这种方式顾名思义,在你点击Fragment Impact Objects按钮开始执行计算后,把鼠标移动到接近小球落点的范围处,让RF对这些区域进行计算。多尝试几次,你会体会到这种方式的优点的。这步操作结 果参考下面插图。

    操作前,选择物体,并加入计算系列:

    L02step10a

    点击执行按钮以后,RF追踪鼠标运动产生破碎计算后所得到的结果。

    L02step10b

    D. 检查一下你目前的工作成果,查看一下Layers面板内目前的状态,另外到目前为止我都没有计算太多数量的“碎片”,你完全可以按照自己的要求去添加破碎的数量,但是别忘了全面提到过的那些原则。另外别忘了使用Tools菜单内的工具去优化你已经得到的碎片。

    E. 在Objects面板中使用Impact Objects列表内的Clear按钮。来清除目前的计算结果,然后对场景中剩下的两个从未计算过的高脚杯进行分别计算,破碎方式使用Irregular即可,破碎数量还是少些比较好,下面是我完成这步操作的结果。

    L02step11

    F. 到目前为止,我们完成了所有需要破碎东西的计算,除了必要的优化操作之外,现在最好全选所有碎片然后为它们进行重命名操作,这样利于你后续的操作。

    G. 保存你目前的工程文件。

    Step 04进行动力学计算前期准备
    A. 来看看我们现在都有什么:有两个“背景”物体;一个“飞逝”运动的小红球以及一大堆物体的碎片。那么对于这些物体来说,我们目前要考虑的问题是,这些物体 需要被RF识别成什么物体?然后它们才能够在后续的RF计算中表现出正确的物理属性,最后得到正确的动画结果。还记得教程第一部分中我介绍过的物体类型 么?作用物体、不激活物体以及不活动物体,这三种物理属性分别适合于当前场景中那些物体呢?

    B. 我们现在来进行物体分类的实际操作,看看操作的结果是否与你的想法一致,同时我们还会为所有的分类物体进行物理属性设置。选择RF菜单栏上的Tools ——Clear All Lists(清除所有类表),这将会把RF前面加入到任何它内部运算列表内的物体完全清除。然后选中场景中的“背景”物体以及“桌面”物体,在 Objects面板中的Unyielding Objects卷展内点击Add按钮。把它们拾取为不激活物体。最后把同卷展内的Material类型选择为Wood,这将把两个物体标记为具有木头物理 属性的物体。其它参数保持不变。

    L02step12

    这里选择木头是因为,这两个物体将具有一定的弹性和摩擦力,有利于将来在它们上面运动的物体的效果。对于同卷展的 Friction(摩擦力)、Elasticity(弹性)这些物理属性,你可以通过测试来了解它们的作用,当然用过Reactor的话这将不会是一个问 题。对于材质选项来说它算是个预设,你可以自己看看里面有些什么东西,然后在当前的情况下,我们也可以选择类型为Titan(泰坦,意思是大地)因为目前 选择的物体也是可以这样理解的。另外,这里我们在Objects面板中设置的物体物理属性都属于全局性的属性,RF也可以针对你所选择的物体来设置局部的 属性,这可以通过顶部菜单栏的Options——Open Custom Properties rollout来实现。

    C. 继续划分物理属性的操作,选择已经被你从新命名过的所有高脚杯碎片物体,然后来到Objects面板的Interactive Objects卷展点击Add按钮,把它们全部拾取成不活动物体。然后把同卷展内的Material类型选择为Glass,这将把这些物体标记为具有玻璃 物理属性的物体。其它参数保持不变。

    L02step13

    这里你可以能会问为什么不把这些物体拾取成作用物体呢?有这个疑问是正确的,你可以回顾一下教程第一部分中讲到的概念,再 仔细琢磨一下目前场景中物体交互的作用关系,或者直接把它们加入到作用物体列表中实际测试一下,就能找到答案了。另外在上面截图上我画红线的地方,是用来 设置不活动物体的质量属性的,你可以尝试一下三种不同选择的动画结果。这里我仅用了默认的选项,属于随意的一种选择~~

    D. 在视图中选择被动画过的“红色小球”Box物体,然后点击Impact Objects列表内的Add按钮,使它成为作用物体,然后把同卷展内的Material类型选择为Porous rock,这将把这些物体标记为具有野外风化岩石物理属性的物体。其它参数保持不变。

    L02step14

    E. 这部分的处理完成,请保存你的工程文件。

    Step 05 使用PhysX来进行进行动力学模拟

    到目前为止,我们已经完成了所有动画计算之前的工作,下面我们将使用PhysX引擎来计算这个动画,并且学会如何操作RF的这个模块。

    A. 点击RF主界面上部的Physics按钮,打开RF的PhysX动力学部分,确认Physical Options卷中的Time Range(时间范围)为150帧,其它参数先默认,随后我们在进行修改,点击Play按钮进行动画预览。

    L02step15

    从左到右四个动画控制按钮的作用分别是:
    预览动画按钮:点击后将按照你规定的时间范围进行动力学模拟动画计算,再次点击该按钮场景中参与计算的所有物体将回到初始的未计算状态。

    烘焙动画按钮:当你在进行完预览动画后,此时你觉得已经达到了你的要求,那么可以点击这个按钮来把RF的动力学模拟动画转 换为MAX的关键帧动画。再次点击该按钮场景中参与计算的所有物体将回到初始的未计算状态。另外,某些RF的功能必须在这个模式下才能得到正确的计算结 果。这类功能比如RF的动力学实时二次破碎计算,在预览模式中就不会得到计算结果,只有在烘焙动画模式中才能得到它。

    暂停按钮:在进行动画预览或者动画烘焙的过程当中,你随时可以暂停动力学运动动画的计算,此时你可以调整你的空间扭曲辅助物体,使它们从新影响后续的动画。也可以修改某些动画参数来修改动画的效果。再次点击这个按钮将继续计算目前的动力学动画。

    停止按钮:在预览动画时,点击这个按钮,将会把当前帧的动画结果转变成静态的最终结果(和原来Reactor的相关功能一样)。在动画烘焙时,点击这个按钮将会把从零帧到当前帧(停止帧)的动力学动画保持下来,同时转换为MAX的标准关键帧动画。

    B. 如果你的动画预览成功了,并且你对效果也满意了的话,我们现在可以进行最终的动力学动画记录工作了。把Physical Options卷展中的Substeps值从默认的3改为5或者更高,这个参数的作用是动画计算的精度,数值越高计算量越大,也就越耗时也就越精确,我个 人经验是不要太高,不然会很慢的。然后点击烘焙动画按钮,来产生我们最终的成果吧!

    L02step16

    OK这个练习现在完成了,我制作了一个170帧长度的动画,然后通过MAX的曲线编辑器翻转了整个动画,然后每隔10帧渲 染一帧输出为静帧,通过PS制作成了下面的Gif动画。请好好思考一下我所使用的这个操作流程,总结一下知识点,其中在RF进行动力学模拟计算时最需要注 意的往往是物体的分类以及它们的物理属性设置,这是需要特别注意。至于动画记录方面并没有太多需要注意的问题。

    另外忘记说了,到现在这个时候你是愿意用四只高脚杯陪美女吃饭呢,还是愿意把它们彻底摔烂呢?你是愿意摔啊?愿意摔啊?还是愿意摔啊??哈哈哈哈~~~~~~

    写在最后的话:
    通过上面的两个制作实例,我们初步体验了一下RF的部分功能,在练习中的流程是需要特别注意,也是我个人学习总结的成果,希望在今后的学习中读者你也能总 结出自己的操作流程来。另外,在前半部教程中我讲述了很多使用这个插件的使用经验,以及遇到问题解决问题的思路,希望这些我认为是重要的概念能对你有所帮 助吧,对于练习部分虽然只是初级的接触,但是还是包含了很多有用的信息,特别是在操作流程方面,希望对你将来Rayfire的学习能起到一定的引导作用~

    另外,希望大家能把做完的最终结果发上来,这样能够让大家共同探讨,共同进步,祝学习快乐!虎年顺利!