此教程由本人经验写成,未经本人及论坛管理团队许可不得转载或用于其它商业用途,学习之前尊重尤为重要,祝学习快乐!
作 者:freeyy
教程分类:MAX动画/动力学
适用读者:中高级用户
关于作者:
因本人能力有限文中有错误和疏漏之处在所难免 请为我指出 非常感谢~~
E.制作实例
一、拆迁!拆迁!破坏!!破坏!!
任务:现在资本家给你20块人民币,要你在最短时间内把下面这堵矮墙拆了,你现在一天没接活儿,又没吃两顿饭,那么你的选择是什么?看什么….干不干吧??
Step 01 工作前看单位
开始“干活儿”之前,请确保 3ds max 的系统单位是默认的英寸,显示单位也是默认的通用单位,看插图:
Step 02物体创建
创建“地面”、创建“砖块”、创建“石灰层”……..
A. Top视图拉一个plane,其大小为800×800个单位,位置其轴心点大概在世界坐标源点附近。
B. 在plane上面,任意视图创建一个Box物体,其大小为6x12x3,给长边分段3给短边分段2,高度分段不变,右键塌陷成editable polygan物体,按2,切换到边级别,全选物体外延的所有边,用倒角命令,给个0.5的倒角。然后全选面,删除所有平滑组。完了以后横向复制若干个, 捕捉对齐,变成一行“砖头”,纵向复制如干行错误捕捉对齐,变成一堵“砖墙”。
C. 在可以看到“砖墙”正面的视图中,画个矩形样条曲线,来作为“墙皮”的初始形状塌陷为editable spline,切换到顶点级别,全选顶点,右键转换为Corner(防止样条曲线产生多余的面) 通过Refine和移动工具来为“石灰层墙皮”添加该有的形状。完了直接右键塌陷为editable polygan物体,在这个新的单面物体上加几何体拓扑段数,为将来的切割破碎做准备,然后全选面,删除所有平滑组。最后为这个单面体加个shell修改 器,Outer Amout给0.6,墙皮完成。
D. 调整各个几何体的位置并为所有几何体用英文字母重命名,如果你愿意的话,给它们贴图坐标并给上相应的材质。如果你很爽的话,再给场景加上相机,给上灯光,最后保存这个工程文件,文件名比如:oldwall01
看我制作后完成的样子:
(如果你是个懒虫,不愿意用十分钟建完这个练习场景,那么劳驾请直接下载我帖子里的附件,上面的话都算废话,我只能无语了……..)
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的主面板。
B. 在任意一个正交视图中(最好是user视图),选择“石灰层墙皮”物体,转到RF的主面板中,点击Objects按钮切换到物体面板,在Impact Objects列表中点击Add按钮,此时“墙皮”被RF识别为作用物体。
C. 点击界面上部的Fragmentation按钮切换到破碎面板,把Fragmentation Options卷展内的Iteration(迭代)从原来的默认参数改为5和2,其它参数默认。(这个意思是把“墙皮”物体大体切割成5块,然后其中有两 块将会出现变化,最后计算结果可能会是5-7块之间。)点击同位置下部的Fragment Impact Object按钮,开始计算,现在你的“墙皮”应该能看见裂缝了
D. 现在你看见了你的“墙皮”由一大块,变成了若干块,但是效果有点糟糕,裂缝不是很好看,因为太规则了。我们来玩一下…….. 选择RF界面菜单栏上的Manager——Delete命令。现在你“失败”的作品消失了……
这个操作实际上是我前半部教程学习过的概念,即:RF会随时保留你前一步操作的结果,而当你点击了Fragment Impact Object按钮后,RF的Layers面板里已经多加了一个新的RF效果图层了,随后我们点击了Delete命令,它实际也是Layers面板里的 Delete按钮的快捷方式。另外,这里的“效果层”实际是这样的,RF把你的当前操作物体隐藏掉,然后对它的复制物体进行计算处理,如果你选择了 Delete,那么就意味着,RF会把计算的结果删除,然后把原来隐藏的原始物体再次“还”给你。
E. 继续玩一下,我们目前使用的破碎类型为默认的Uniform,而RF目前提供了9种程序式碎裂方法,你可以用前面的方法,只修改 Fragmentation type的类型以及Iterations参数,而不修改其它参数,尝试完一种看看效果后,记得每次使用Delete命令来删除结果。
每种效果点击一次Fragment Impact Object按钮,不要多按几次,不然RF会以当前的结果为下一次的计算开始点,我们目前需要的是感受各种程序式破碎效果。
F. 玩够了么?不够再继续………不然你就赶紧干正事儿,往下看吧:Q
Step 04 破坏墙皮
首先我总结一下你玩下来的结论,我们破坏墙皮应该使用Irregular(不规则)或者是Relative to Mouse(参考鼠标动作),另外Iterations参数的两个数值输入框你应该理解是干嘛用的了。另外你应该会发现,新产生的物体将会被自动的重命 名。现在有个问题,不管你选择什么样的破碎类型,都不能达到很好的效果,因为啥呢?没有裂缝?有 但是裂缝没缝隙。所以看上去碎裂的感觉都不对,那么现在我们继续我们的工作…….
A. 选择Irregular为破碎类型,然后迭代设置为5和2,其它参数默认。选择Options——Advanced Fragmentation Options(高级破碎操作),做下图参数修改,然后关闭这个浮动对话框。
Advanced Fragmentation Options对话框里第一个下拉菜单是用来选择破碎引擎的,选择ProBoolean还是选择ProCutter方式,我个人看来都无所谓的,不过我对 ProCutter有特殊感情,所以选择了它。Rift width参数即为破碎后碎片之间的裂缝宽度,它的设置单位为当前系统单位,对于这个对话框里的其它参数其实挺简单的,你可以通过我上部教学的方式自己学 习一下。
B. 那么现在我可以点击Fragment Impact Object按钮了,为了保持这个练习的完整性,请你尽量贴近我下面插图中的效果,如果效果差距较大,你可以再次Delete然后重新计算(每次点击 Fragment Impact Object按钮默认情况下计算结果都是随机产生的)。
C. 得到上图类似的效果后,选择RF界面菜单栏上的Manager——Select命令,这将会全选最后一次执行计算的结果,再选择Tools—— Remove mid-edge vertices命令,删除所有被选择物体的中间多余顶点,然后同菜单选择Delete all original Objects命令,这将会删除RF隐藏在场景中原始物体。
使用这些命令是为了在你确定当前计算结果就是你需要的效果的前提下,优化计算后的模型结果(注意max的提示行会有相应的数据提示),并且删除上次RF为你保存的“源”物体。也就是说这是优化RF计算结果的步骤。
D. 点击Objects按钮,切换回物体面板,此时我们看到刚才加入到Impact Objects列表内的一个物体经过RF计算后又自动添加变成了若干个碎片物体,注意它们每个物体后缀都变成了以frag_XX结尾的名称:
E. 点击Impact Objects列表中的Clear按钮,把当前列表清空,然后在场景中选择下面插图中组成类似形状的碎片几何体(我这里是一个,你的可能是多个),然后点击Impact Objects列表中的Add按钮,把新的物体加入到RF的计算中。
按照物理现象来说,一堵“被砸”的墙面应该是这样的:一段墙中间被拆除了,而其两边还保留着残缺的墙面。所以这个操作就是为了制作墙面中间的“缺口”,而对于墙皮其它相对“完好”的部分来说,我们可以后边再处理。
F. 回到Fragmentation面板,我们再次对新加入的“墙皮碎片”几何体进行破碎计算,除了修改Advanced Fragmentation Options对话框里的Rift width参数为0.2之外,保持其它的参数设置不变,直接点击面板中的Fragment Impact Object按钮,得到类似的下面插图的效果。
G. 再次重复前面的操作,我们需要细化这块墙皮区域的破碎效果。方法是使用前面的E—F步骤所述的相同方法。这里我们需要挑选每次计算后,得到的大块“墙 皮”,然后把它们加入到新的计算当中,让“它们”变小,你只需要留意自然法则所带来的结果。最后达到我下面插图中的类似效果。
你可以由自己的审美观来决定最后这个墙皮的破坏程度,计算的过程当中,然后完全可以修改Advanced Fragmentation Options对话框里的Rift width参数,以及破碎卷展中的Iterations 参数来达到多变的结果,让最终的效果更加丰富。另外,当你获得每个阶段性的结果后,使用Tools——Remove mid-edge vertices命令,删除所有被选择物体的中间多余顶点,优化你的结果。
H. 得到上图类似的效果后,选择RF界面菜单栏上的Tools——Delete all original Objects命令,这将会删除RF隐藏在场景中原始物体。
I. 再次对墙皮上必要的几何体进行RF破碎计算,然后使用max移动工具、选择工具调整一下我们的计算结果,最后选择不需要的部分隐藏(或者直接删除)的碎块,最终结果参考下面插图。
J. 至此,我们的墙皮“破坏”的完成了,现在进行最后的收尾工作,全选所有的“墙皮”物体,然后为它们重命名一下,因为目前的场景物体名称显而易见非常混乱,不利于场景的后续操作,完成后把这些物体加成一个组(Max菜单Group——Group)。
Step 05 破坏砖墙
有了目前的成果,我们就可以依据“墙皮”破损缺口的形状来制作砖墙的破碎了,这样的话我们的工作会轻松很多的~~
A. 使用max的选择工具,并且把选择方式切换为套索,然后依据“墙皮”的缺口来选择我们需要处理的砖块。
B. 反选场景中的其他物体,然后右键——冻结被选择物体,这样的话,我们的操作将会更加方便一些,利于进行下一步的操作。
C. 接下来对缺口处的砖块进行与墙皮物体同样的操作,步骤和方法以及需要注意的问题,都与破碎墙皮物体的时候完全一样,我就不在重复了。你可以完全按照你的意愿去破坏这些砖头,放开手去干吧~~~
好了这个“简单”的“半自动”拆墙任务到这里算是圆满完成了,恭喜你可以拿那二十块钱去吃饭了,这里我展示一下我的最终成 果,希望读者你干完活儿以后也给我看看你的成果。另外,请好好思考一下我所使用的这个操作流程,总结一下知识点,以及操作RF进行破碎计算时需要注意的一 些问题。另外,我提供的练习初始文件中,MAX内的物体都是带两个贴图通道的,计算完成后,可能会提示第二个贴图通道没有坐标,你可以选中所有墙皮物体, 然后直接给个UVWmaps修改器,然后把Map channel修改为2,然后把UV坐标的长宽高改为35。
二、把“美好的事物”打碎!
任务:原来你的桌上放置了四只高脚酒杯,它们本来是你用于和漂亮MM烛光晚餐的,可惜天有不测风云,它们被彻底打碎了…… 我希望你能节哀………(PS:如果你愿意的话我们最后可以让时光倒流……)
Step 01准备场景
创建“布景”,创建“桌面”,创建高脚杯………..
A. 还是原来的套路,在动手前先确认系统单位,为默认的Inches单位。
B. 在3ds max的Left视图里建一个大概为400×430单位的矩形样条线,右键塌陷为editable spline,然后删除相对的两个边,使它形成了一个L型,然后为这个物体添加一个Extrude修改器,拉伸长度为550。最后,把这个物体的轴心点重 置到物体中心的底部,然后放置世界坐标原点附近并且Z轴位置为0。它将作为我们的背景。
C. 在已经建好的“背景”物体上建立一个Box物体,长宽高分别大概在390x225x15左右,右键塌陷为editable polygan。进入物体的边线级别,全选所有边线,使用倒角命令,倒角数值为0.5。把它放在靠近“背景”物体的中心附近。这个物体是你的“桌面”。
D. 如下面插图所示,在Front视图创建4条样条曲线,然后对它们使用Lathe修改器,段数给24,点击MAX对齐方式,最后打开Weld Core(焊接中心)。四个高脚杯制作完成。
E. 在视窗中的任意位置建立一个Box物体,然后长宽高都是10个单位,段数全给3。为它添加一个Spherify(球面化)修改器,这个物体将成为砸碎你的高脚杯的“罪魁祸首”。当然你也可以直接建个球体,不一定要使用Box,我是因为节省多边形的习惯所以才这样的。
Step 02调整物体并制作一个小动画
A. 在视图中调整所有你已经建模完成物体的相对位置,使它们看起来类似下面的插图。
B. 为上面插图中的红色“小球”制作一个简单运动动画,红色小球的起始位置参考上面的插图,然后按下键盘的N键,打开自动关键帧记录按钮,移动底部的时间滑块 到第10帧,把小球移动到下面插图所示的位置,让它接近四只高脚杯的位置,然后随便在YXZ三个轴向中的两个,使用旋转工具旋转一些角度。这样会使小球具 有移动和旋转的简单10帧动画,这样做是为我们后面的破坏动画进行的“预先”准备动画,就像你在玩原来的Reactor动力学一样。
C. 保存你的目前的工程。
到这个步骤的工程文件:level02_01start.rar
Step 03进入RF进行破碎预计算
A. 到目前为止,我们所有的前期准备工作完成了,下面进入RF部分,所以现在你需要打开Rayfire的主面板。转换到它的Objects面板,在视窗中选择小球10帧动画落下后最靠它的两个高脚杯,然后点击Impact Objects卷展的Add按钮。
整个制作思路是这样的:依赖于物理的常识我们对所有的高脚杯进行“预处理”的破碎计算,然后由红色小球物体和所有高脚杯的碎片以及地面来计算整个动力学动画。目前我们正在进行的操作是处理高脚杯中由于红色小球撞击而破碎最严重的“部分”。
B. 点击Fragmentation按钮,转换到RF的破碎卷展。使用下面插图中的设置来对两个高脚杯进行第一次破碎计算。
破碎的状态由你自己去决定,就像前面一个练习一样,先由大块碎片开始,然后逐步深入,然后在每个阶段你得到满意的结果后,别忘记使用前个练习提到的优化方法去优化你的计算结果。
C. 进入第二次破碎计算,选择距离红色小球范围内比较近的2-4块高脚杯碎片,然后转换到Objects面板点击Impact Objects列表中的Clear按钮。然后在点击Add,把这块碎片添加进计算序列里。把破碎方式改为Relative to Mouse(参照鼠标动作),其它参数保持不变。这种方式顾名思义,在你点击Fragment Impact Objects按钮开始执行计算后,把鼠标移动到接近小球落点的范围处,让RF对这些区域进行计算。多尝试几次,你会体会到这种方式的优点的。这步操作结 果参考下面插图。
操作前,选择物体,并加入计算系列:
点击执行按钮以后,RF追踪鼠标运动产生破碎计算后所得到的结果。
D. 检查一下你目前的工作成果,查看一下Layers面板内目前的状态,另外到目前为止我都没有计算太多数量的“碎片”,你完全可以按照自己的要求去添加破碎的数量,但是别忘了全面提到过的那些原则。另外别忘了使用Tools菜单内的工具去优化你已经得到的碎片。
E. 在Objects面板中使用Impact Objects列表内的Clear按钮。来清除目前的计算结果,然后对场景中剩下的两个从未计算过的高脚杯进行分别计算,破碎方式使用Irregular即可,破碎数量还是少些比较好,下面是我完成这步操作的结果。
F. 到目前为止,我们完成了所有需要破碎东西的计算,除了必要的优化操作之外,现在最好全选所有碎片然后为它们进行重命名操作,这样利于你后续的操作。
G. 保存你目前的工程文件。
Step 04进行动力学计算前期准备
A. 来看看我们现在都有什么:有两个“背景”物体;一个“飞逝”运动的小红球以及一大堆物体的碎片。那么对于这些物体来说,我们目前要考虑的问题是,这些物体 需要被RF识别成什么物体?然后它们才能够在后续的RF计算中表现出正确的物理属性,最后得到正确的动画结果。还记得教程第一部分中我介绍过的物体类型 么?作用物体、不激活物体以及不活动物体,这三种物理属性分别适合于当前场景中那些物体呢?
B. 我们现在来进行物体分类的实际操作,看看操作的结果是否与你的想法一致,同时我们还会为所有的分类物体进行物理属性设置。选择RF菜单栏上的Tools ——Clear All Lists(清除所有类表),这将会把RF前面加入到任何它内部运算列表内的物体完全清除。然后选中场景中的“背景”物体以及“桌面”物体,在 Objects面板中的Unyielding Objects卷展内点击Add按钮。把它们拾取为不激活物体。最后把同卷展内的Material类型选择为Wood,这将把两个物体标记为具有木头物理 属性的物体。其它参数保持不变。
这里选择木头是因为,这两个物体将具有一定的弹性和摩擦力,有利于将来在它们上面运动的物体的效果。对于同卷展的 Friction(摩擦力)、Elasticity(弹性)这些物理属性,你可以通过测试来了解它们的作用,当然用过Reactor的话这将不会是一个问 题。对于材质选项来说它算是个预设,你可以自己看看里面有些什么东西,然后在当前的情况下,我们也可以选择类型为Titan(泰坦,意思是大地)因为目前 选择的物体也是可以这样理解的。另外,这里我们在Objects面板中设置的物体物理属性都属于全局性的属性,RF也可以针对你所选择的物体来设置局部的 属性,这可以通过顶部菜单栏的Options——Open Custom Properties rollout来实现。
C. 继续划分物理属性的操作,选择已经被你从新命名过的所有高脚杯碎片物体,然后来到Objects面板的Interactive Objects卷展点击Add按钮,把它们全部拾取成不活动物体。然后把同卷展内的Material类型选择为Glass,这将把这些物体标记为具有玻璃 物理属性的物体。其它参数保持不变。
这里你可以能会问为什么不把这些物体拾取成作用物体呢?有这个疑问是正确的,你可以回顾一下教程第一部分中讲到的概念,再 仔细琢磨一下目前场景中物体交互的作用关系,或者直接把它们加入到作用物体列表中实际测试一下,就能找到答案了。另外在上面截图上我画红线的地方,是用来 设置不活动物体的质量属性的,你可以尝试一下三种不同选择的动画结果。这里我仅用了默认的选项,属于随意的一种选择~~
D. 在视图中选择被动画过的“红色小球”Box物体,然后点击Impact Objects列表内的Add按钮,使它成为作用物体,然后把同卷展内的Material类型选择为Porous rock,这将把这些物体标记为具有野外风化岩石物理属性的物体。其它参数保持不变。
E. 这部分的处理完成,请保存你的工程文件。
Step 05 使用PhysX来进行进行动力学模拟
到目前为止,我们已经完成了所有动画计算之前的工作,下面我们将使用PhysX引擎来计算这个动画,并且学会如何操作RF的这个模块。
A. 点击RF主界面上部的Physics按钮,打开RF的PhysX动力学部分,确认Physical Options卷中的Time Range(时间范围)为150帧,其它参数先默认,随后我们在进行修改,点击Play按钮进行动画预览。
从左到右四个动画控制按钮的作用分别是:
预览动画按钮:点击后将按照你规定的时间范围进行动力学模拟动画计算,再次点击该按钮场景中参与计算的所有物体将回到初始的未计算状态。
烘焙动画按钮:当你在进行完预览动画后,此时你觉得已经达到了你的要求,那么可以点击这个按钮来把RF的动力学模拟动画转 换为MAX的关键帧动画。再次点击该按钮场景中参与计算的所有物体将回到初始的未计算状态。另外,某些RF的功能必须在这个模式下才能得到正确的计算结 果。这类功能比如RF的动力学实时二次破碎计算,在预览模式中就不会得到计算结果,只有在烘焙动画模式中才能得到它。
暂停按钮:在进行动画预览或者动画烘焙的过程当中,你随时可以暂停动力学运动动画的计算,此时你可以调整你的空间扭曲辅助物体,使它们从新影响后续的动画。也可以修改某些动画参数来修改动画的效果。再次点击这个按钮将继续计算目前的动力学动画。
停止按钮:在预览动画时,点击这个按钮,将会把当前帧的动画结果转变成静态的最终结果(和原来Reactor的相关功能一样)。在动画烘焙时,点击这个按钮将会把从零帧到当前帧(停止帧)的动力学动画保持下来,同时转换为MAX的标准关键帧动画。
B. 如果你的动画预览成功了,并且你对效果也满意了的话,我们现在可以进行最终的动力学动画记录工作了。把Physical Options卷展中的Substeps值从默认的3改为5或者更高,这个参数的作用是动画计算的精度,数值越高计算量越大,也就越耗时也就越精确,我个 人经验是不要太高,不然会很慢的。然后点击烘焙动画按钮,来产生我们最终的成果吧!
OK这个练习现在完成了,我制作了一个170帧长度的动画,然后通过MAX的曲线编辑器翻转了整个动画,然后每隔10帧渲 染一帧输出为静帧,通过PS制作成了下面的Gif动画。请好好思考一下我所使用的这个操作流程,总结一下知识点,其中在RF进行动力学模拟计算时最需要注 意的往往是物体的分类以及它们的物理属性设置,这是需要特别注意。至于动画记录方面并没有太多需要注意的问题。
另外忘记说了,到现在这个时候你是愿意用四只高脚杯陪美女吃饭呢,还是愿意把它们彻底摔烂呢?你是愿意摔啊?愿意摔啊?还是愿意摔啊??哈哈哈哈~~~~~~
写在最后的话:
通过上面的两个制作实例,我们初步体验了一下RF的部分功能,在练习中的流程是需要特别注意,也是我个人学习总结的成果,希望在今后的学习中读者你也能总 结出自己的操作流程来。另外,在前半部教程中我讲述了很多使用这个插件的使用经验,以及遇到问题解决问题的思路,希望这些我认为是重要的概念能对你有所帮 助吧,对于练习部分虽然只是初级的接触,但是还是包含了很多有用的信息,特别是在操作流程方面,希望对你将来Rayfire的学习能起到一定的引导作用~
另外,希望大家能把做完的最终结果发上来,这样能够让大家共同探讨,共同进步,祝学习快乐!虎年顺利!
0回复MAX 动力学插件RayFire 入门教程之二"