当前位置:丝路教程网 > 3DMAX > 3dmax教程 >

3ds max 粒子制作:水管中流淌的水

2016-01-01 15:31 来源: 丝路教程网 分类: 3dmax教程
730 作者:丝路教程网

[导读] 水管中流淌的水 本课我们将通过在水管中流淌的水的效果来学习液体在管道中流淌的设置方法。我们将学习到水在多个分支管道中的流动的设置,当水管中的水接近分支管道时,它将会

  水管中流淌的水

  本课我们将通过在水管中流淌的水的效果来学习液体在管道中流淌的设置方法。我们将学习到水在多个分支管道中的流动的设置,当水管中的水接近分支管道时,它将会有选择的改变方向,最终效果如下图所示。

\

  1、打开范例场景。

  单击此处打开pf10.max场景文件(52k, winzip压缩文件)。在这个场景中我们提供了一个带有分支的水管的模型、三条样条曲线(主要用于定义不同分支水管的路径)、一个箭头模型,如图1-1所示。

\

  图1-1

  2、创建粒子流系统。

  单击create(建立)/geometry(物体)钮,在其下拉列表中选择particle systems(粒子系统)选项,然后在命令面板上单击pf source在front视图中创建一个粒子流,其大小同水管的开口大小相当,如图1-2所示。

\

  图1-2

  3、单击modify钮进入修改命令面板中,

  在“emission(发射)”卷展栏上,将“icon type(图标类型)”设置为“circle(圆形)”,并将“diameter(直径)”设置为20,此时观察摄影机视图,我们会发现粒子流源的图标显示为圆形,其中有一个徽标和一个从图标中心指向外侧的箭头,然后使用鼠标拖动粒子粒子流源图标使其位于水管的开口位置,它的箭头方向应该指向管道的内部,如图1-3所示。

\

  图1-3

  4、在场景中首先选定粒子流源图标,

  然后按下键盘上的6键或者是在modify(修改)命令面板中单击particle view(粒子视图)以打开粒子视图设置窗口,此时将按照默认排列打开“粒子视图”编辑器,在“particle view(粒子视图)”中,打开“options(选项)”菜单并选择“track up date(跟踪更新)”%26gt;“particle count(粒子数)”,如图1-4所示。

  此时在每个事件的上方将会出现一个数字,这是查看流中的粒子如何穿过事件的有效方法。现在我们如果拖动时间滑块会发现选项卡上的粒子数也就是数字会随时进行更新。在全局事件 (pf source 01) 显示的是流中的粒子的总数,此处它与“event 01”中的粒子数相同。需要说明的是,在事件当中的每一项上都有一些信息列出在操作名称旁边的圆括号内,通过它我们可以快速的知道我们的操作设置。

  比如说,在“birth”操作符旁的括号内显示为:“birth01 (0-30 T:200)”。这表示它是设置为从第 0 帧至第30帧发射总计200个粒子的“birth”操作符。我们可以通过单击“birth”操作符显示参数命令面板来检查其设置。在particle view(粒子视图)中,“pf source01”事件是初始事件,它仅仅包含一个“render”操作符,这是由于它充当了全局事件,即定义整个粒子流而不是单个事件和操作符的特性,在此事件中的所有的操作符都全局应用于所有的事件。

\

  图1-4

  5、将“display”操作符移动到“pf source01”事件当中。

  使用鼠标拖动的方法将“display”操作符从“event 01”拖动到“pf source01”事件中,以便无论粒子处于哪个事件中,都将始终使用相同的显示方式,如图1-5所示。

\

  图1-5

  6、在菜单栏上单击选择“options(选项)”菜单 %26gt;“default display(默认显示)”%26gt;“global(全局)”,使用此选项将会避免“particle view(粒子视图)”为每个事件创建新的和唯一的“display”操作符,如图1-6所示。

\

  图1-6

  7、粒子参数设置。

  在particle view(粒子视图)当中,首先右键单击“event01”的名称,在弹出的菜单当中选择“rename(重命名)”并输入emitter,如图1-7所示。

\

  图1-7

  8、在particle view(粒子视图)当中,单击emitter事件当中的“birth”操作符,然后在其右侧的参数命令面板上将“发射停止”值更改为600,然后删除“speed”、“rotation”和“shape”操作符,如图1-8所示。此时如果播放动画,我们将会看到粒子出现在粒子流源图标上,但是并没有运动。这是因为在“emitter”事件当中,粒子的位置是由“position icon”操作符来定义的,从而将粒子设置为使用粒子流源图标的体积。

\

  图1-8

  9、创建粒子的运动。

  这里我们将使用“speed by icon”操作符和路径约束来定义粒子沿样条曲线穿水管主体的运动。在事件当中,我们将会用到“speed by icon”操作符,它可以指定粒子速度:即,速度和方向。同时我们通过使用“speed by icon”操作符,还可运用多种控件来实现沿着不同的曲线运动的粒子效果。

  在particle view(粒子视图)当中,从仓库中拖动“speed by icon”操作符到“emitter”事件的底部,如图1-9所示。添加完“speed by icon”操作符后,在场景的世界坐标系原点(0,0,0)处将会自动创建一个新的名为“speed by icon01”的辅助对象,如果我们对此图标设置动画,那么粒子就可以继承其运动。

\

  图1-9

  10、在视图当中选择“speed by icon01”的辅助对象,然后在主菜单中选择“animation(动画)”%26gt;“constraints(约束)”%26gt;“path constraint(路径约束)”,此时在视图中移动鼠标,我们可以看见类似橡皮筋的虚线将图标与鼠标光标连接起来,此时软件正在请求要跟随的路径即样条曲线,在视图当中,我们单击水管中心的样条曲线line01。

  选择“speed by icon01”的辅助对象,然后在“motion(运动)”命令面板上,在path opations(路径参数)”卷展栏上,勾选follow项,然后在axis(轴)选项上,勾选z轴。

\

  图1-10

  11、在“particle view(粒子视图)”当中,单击“speed by icon01”操作符,然后在其右侧的参数命令面板上的“icon animation(图标动画)”组中,确保选项为“event duration(事件期间)”处于活动状态,这样“speed by icon 01”图标就在在动画期间被约束到了“line01”样条曲线上,并且与样条线垂直,如果此时播放动画,我们会看见粒子明显跟随“speed by icon01”辅助对象运动,如图1-11所示。

\

  图1-11

  12、将粒子转换为箭头。

  当前在粒子视图当中只包含“render”和“display”操作符,但是我们没有指定给粒子形状,因此,粒子在视图当中显示为任意形状,我们可以使用“display”操作符来更改粒子的显示的方式。我们将通过使用“shape instance”和“display”操作符来使粒子在场景中显示为箭头形状。首先单击“display”操作符,然后在其右侧的参数命令面板上将“type(类型)”更改为“geometry(几何体)”,如图1-12所示。

\

  图1-12

  13、在particle view(粒子视图)当中,从仓库中将“shape instance”操作符拖入“emitter”事件当中的任意位置,在放置的时候要确保在蓝线出现时才能将其放置,“shape instance”操作符允许我们将场景中的网格对象用作粒子,如图1-13所示。

\

  图1-13

  14、在particle view(粒子视图)当中,单击“emitter”事件中当中的“shape instance”操作符,然后在其右侧的参数命令面板上,单击“particle geometry object(粒子几何体对象)”下的NONE按钮,然后在场景中单击选择箭头对象,此时箭头名称将会出现在按钮上,勾选scale(缩放)选项,设置其值为100,如图1-14所示。

\

  图1-14

  15、调整箭头的对齐。

  在particle view(粒子视图)当中,从仓库中拖动“rotation”操作符到“emitter”事件的底部,我们通过使用该操作符来指定事件中粒子的方向。首先单击“rotation”操作符,然后在其右侧的参数命令面板上将“方向矩阵”设置更改为“速度空间跟随”,然后将“x”值设置为 90.0,将Y轴设置为180,这样就强制粒子的方向始终为移动方向。

  粒子流提供了两种速度空间方法:“速度空间”在每个粒子首次进入事件时设置一次方向,而“速度空间跟随”在粒子穿过场景时持续调整方向。现在播放动画,我们会看见箭头正沿首“line01”样条线正确移动。如图1-15所示。

\

  图1-15

  16、创建分支路径。

  粒子流功能的强大还体现在它可以创建由条件控制的分支事件,这里我们将使用“find target(目标测试)”来进行此项操作,它是一个条件测试,该条件下软件将会持续的检查每个粒子是否符合我们设定的条件,当测试条件为假时,粒子保留在当前事件中,当测试结果为真时,则粒子移动到指定不同行为的另外一个事件当中。

  在particle view(粒子视图)当中,从仓库中拖动“find target”测试到“emitter”事件的底部,如图1-16所示。

\

  图1-16

  17、单击“find target”操作符,在其右侧的参数命令面板上,在find target卷展栏的下拉列表中选择“no control(无控制)”,这将禁用测试的大多数参数,在我们创建“find target”测试时,它会自动将名称为“find target01”的辅助对象添加至场景当中,现在它就是事件当中粒子的目标,软件将会根据每个粒子“find target01”的辅助对象的距离对每个粒子进行测试。

  在“find target”测试参数中,将“test true if distance to(测试真, 如到以下项的距离)”选项设置为“target pivot(目标轴)”,并将“is less than(小于)”值设置为 5.0,如图1-17所示。

\

  图1-17

  18、在particle view(粒子视图)当中,从仓库中拖动“speed by icon”到空白处建立一个新的事件,我们将把它作为“find target”测试输出所要连接的事件,首先将此新事件重新命名为 flowh,然后 将鼠标光标移动至“find target01”测试左侧的凸起上,当光标变为水平的黑色双向箭头时,单击并拖动光标至“flow north”测试的左侧并释放按钮,此时我们已经将“ find target01”测试操作符上的输出连接器移动到了相反一侧,单击并将测试连接器末端上的蓝色小圆点拖动到“flow north”事件的输入连接器,如图1-18所示。

\

  图1-18

  19、设置“flowh”事件。

  现在我们已经正确设置了“find target”测试输出,但是“flowh”事件还没有正确设置,在该事件当中的唯一操作符是没有设置动画的“speed by icon”操作符,我们将沿新的路径对其图标进行动画设置,以使进入此事件的粒子移动至该路径。在“flowh”事件当中,在“speed by icon”操作符右侧的命令参数中,确保““icon animation(图标动画)”的“sync by(同步方式)”设置为“event duration(事件期间)”,

  然后在场景中,选择 speed by icon02辅助对象,在max的菜单栏中单击选择“animation(动画)”%26gt;“constraints(约束)”%26gt;“path constraint(路径约束)”,然后在视图当中,我们单击水管上的分支处的另外一条样条曲线line02。选择“speed by icon 02”的辅助对象,然后在“motion(运动)”命令面板上,

  在path opations(路径参数)”卷展栏上,勾选follow项,然后在axis(轴)选项上,勾选z轴。下面我们需要调整一下speed by icon 01和speed by icon 02辅助对象的动画关键点。在默认的情况下,软件将在动画的第一帧和最后一帧处设置默认关键点。首先在场景中单击选择speed by icon 02辅助对象,然后在轨迹栏中,将其最右侧的关键点移至第 100 帧,然后再选择speed by icon 01辅助对象,将其右侧的关键点移动至第150帧,如图1-19所示。

\

  图1-19

  20、在speed by icon 02操作符参数当中,启用“ust icon orientation(使用图标方向)”,启用“steer towards traiectory(转向轨迹)”复选框,并将“distance(距离)”的值设置为 5.0。由于场景在最初设置的方式并不都是坐标的中心点,因此我们创建的“find target”图标需要调整一下才能靠近正确位置,将 find target01 辅助对象移动到水管中第一个转折处,然后播放动画我们会发现一些箭头已经开始沿着分支向上移动,如图1-20所示。

\

  图1-20

  21、如果现在播放动画,就会看见某些箭头更改方向并沿第二条路径上移,但是所有的粒子继续指向同一个方向,因为“flowh”事件没有用于定义方向的“rotation”操作符,如果要解决此问题,我们需要使用相同参数添加另外的一个“rotation”操作符,或者复制上一事件当中的第一个操作符,由于本例中所有粒子都应指向其移动的方向,

  因此,我们只需要将“emitter”事件中的“rotation”操作符移动至全局事件即可。将“rotation”操作符从“emitter”事件拖至“pf source01”事件上,确保在看到蓝线而不是红线时放开鼠标,此时观看动画效果,向上移动的箭头现在指向其运动方向了,如图1-21所示。

\

  图1-21

  22、设置水管的另外一条分支路径。

  在particle view(粒子视图)当中,从仓库中拖动“find target”测试到“emitter”事件的底部,为了使粒子在水管的第三条路径上正确移动,需要将场景中的“find target”图标的轴与样条曲线的路径的起始点相重合,使用工具栏上的对齐工具将find targe02辅助对象与line03的起点对齐,如图1-22所示。

\

  图1-22

  23、在particle view(粒子视图)当中,从仓库中拖动“speed by icon”到空白处建立一个新的事件,我们将把它作为“find target02”测试输出所要连接的事件,首先将此新事件重新命名为iconh,然后“ find target02”测试操作符拖动到“flow north”事件的输入连接器,如图1-23所示。

\

  图1-23

  24、单击“find target02”操作符,在其右侧的参数命令面板上,在find target02卷展栏的下拉列表中选择“no control(无控制)”,在“find target”测试参数中,将“test true if distance to(测试真, 如到以下项的距离)”选项设置为“target pivot(目标轴)”,并将“is less than(小于)”值设置为 10,在“flowh”事件当中,

  在“speed by icon03”操作符右侧的命令参数中,确保““icon animation(图标动画)”的“sync by(同步方式)”设置为“event duration(事件期间)”,然后在场景中,选择 speed by icon03辅助对象,在max的菜单栏中单击选择“animation(动画)”%26gt;“constraints(约束)”%26gt;“path constraint(路径约束)”,然后在视图当中,我们单击水管上的分支处的另外一条样条曲线line03。

  选择“speed by icon 03”的辅助对象,然后在“motion(运动)”命令面板上,在path opations(路径参数)”卷展栏上,勾选follow项,然后在axis(轴)选项上,勾选z轴,然后在轨迹栏中,将其最右侧的关键点移至第100 帧,在speed by icon 03操作符参数当中,

  启用“use icon orientation(使用图标方向)”,启用“steer towards traiectory(转向轨迹)”复选框,并将“distance(距离)”的值设置为 10,如图1-24所示。现在播放动画,就会看见某些箭头更改方向并沿着第三条路径上移。

\

  图1-24

  25、更改箭头在视图中的显示颜色。

  为了能够更加清晰地观察到管中液体的流动,我们可以根据移动的路径来设置箭头的颜色。这里我们只需要为每个事件中的粒子指定不同的材质即可,在particle view(粒子视图)当中,将“material static”操作符从仓库拖入“emiter”事件当中,将其放置在测试的上面,如图1-25所示。

\

  26、在particle view(粒子视图)当中,单击“material static”操作符,在其右侧的参数命令面板上单击none按钮打开“材质编辑器”,将材质设置为红色,此时我们观看场景会发现水管中的一部分粒子都呈红色,如图1-26所示。

\

  图1-26

  27、同理,将“material static”操作符添加到其它的两个流事件当中,并分别应用黄色和绿色材质,此时视图中水管中箭头的颜色如图1-27所示。

\

  图1-27

  28、播放动画观看,水管中的粒子显示为彩色箭头,沿着不同的样条曲线路径流动,并且根据路径更改颜色,在动画的最后粒子会在路径终点聚集,由于我们要求水在场景中要恒定的流动,所以最好的办法是在粒子到达路径终点消失,所以我们可以通过使用“speed test”操作符并将结果传递至“delete”操作符来实现。

  在particle view(粒子视图)当中,从仓库中拖动“speed test”操作符到“emitter”事件的底部,并在其右侧的参数命令面板上将“test true if particle value(测试真值的条件是粒子值)”设置为“is less than test value(小于测试值)”,并且将“test value(测试值)”更改为 1.0,如图1-28所示。

\

  图1-28

  29、从仓库中将“delete”操作符拖至显示事件的空白区域,创建一个新事件,并将其关联至“emit ter”事件中的“speed test”的输出,如图1-29所示。

\

  图1-29

  30、在粒子视图中将“speed test01”从“emitter”事件拖至“pf source01”事件的底部,与该测试相关联的“delete”操作符将与之一起移动,现在播放动画观看,场景中的每一个粒子在它一到达路径终点时就会消失,如图1-30所示。

\

  图1-30

  31、应用水滴网格模拟水滴效果。

  单击create(创建)/geometry(几何体),在其下拉列表中选择compound objects(复合对象),然后单击blobmesh(水滴网格),并在视图当中单击以创建水滴网格对象,如图1-31所示。

\

  图1-31

  32、在场景中选择我们创建的“blobmesh(水滴网格)”对象,然后单击modify(修改)钮进入修改命令面板中,单击“blob object(水滴对象)”组中的“add(添加)”按钮,并从列表中选择“pf source01”,这样就将其作为整体应用至系统。如图1-32所示。

\

  图1-32

  33、定义包含在滴状网格中的事件。

  在修改命令面板中,在“particle flow parameters(粒子流参数)”卷展栏上,取消“all particle flow events(所有粒子流事件)”选项,然后单击“add(添加)”按钮,并从列表中选择“pf source 01%26gt;iconh”事件、“pf source01%26gt; flowh”事件和pf source01%26gt; emitter事件,单击“确定”,如图1-33所示。此时如果现在滑动时间滑块,将会在水管中看到已经形成了水滴,但是由于粒子数量不够多,所以流体看起来并不像真正的液体。

\

  图1-33

  34、我们也可以通过增加“viewport(视口) %”设置值有大小来获得更好的水滴效果,打开粒子视图,然后单击“pf source 01”事件,在其右侧的参数命令面板中,在emission(发射)选项中,在quantity multiplier(数量倍增)项中,将viewport(视口)设置为100,如图1-34所示。

\

  图1-34

  35、本节小结:本节课我们学习了如何使用粒子系统来模拟水管中流动的水的效果,我们通过使用粒子流系统,通过使用“speed by icon”操作符使粒子沿曲线路径运动,然后使用“find target”测试使流体转移至水管的不同分支,使用箭头形状的粒子来指示水流的方向,最后通过应用水滴网格复合对象使水流看起来更加逼真形象,

  好了,pf source粒子系统全攻略教程到今天为止就告一段落了,粒子流系统是一个功能非常强大的系统,这里我们只是通过几个实例来学习了一些常用的效果的制作方法,希望读者通过学习能够举一反三,设计出更加精美的动画效果。


免责声明:

丝路教程网的部分文章信息来源于网络以及网友投稿,本网站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,如权利人发现存在误传其作品情形,请及时与本站联系。

  • 所属专题:3dmax教程专题
  • 本文链接:http://blog.silucg.com/3dmax8/3dmaxjc/article-3854.html
Copyright © 2008-2017 blog.silucg.com 丝路教程网 版权所有 网站地图
点击这里给我发消息
丝路教育