水管中流淌的水

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

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(跟踪更新)”>“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(选项)”菜单 >“Default Display(默认显示)”>“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(动画)”>“Constraints(约束)”>“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 target0

0

顶一下

0

踩一下

3dmax 管子动画_3ds MAX 7.0 PF Source粒子详解之水管中流淌的水-动画与插件-3DMAX教程网,3DMAX下载...相关推荐

  1. T4M插件放入unity后怎么找不到_Unity动画系统详解4:如何用代码控制动画?

    摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...

  2. Apollo6.0代码Lattice算法详解——Part4:计算障碍物ST/SL图

    Apollo6.0代码Lattice算法详解--Part4:计算障碍物ST/SL图 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc中代 ...

  3. Apollo6.0代码Lattice算法详解——Part5: 生成横纵向轨迹

    Apollo6.0代码Lattice算法详解--Part5: 生成横纵向轨迹 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc中代码部分 ...

  4. marlin2.0.5.4配置详解——个人记录

    marlin2.0.5.4配置详解--个人记录 串口波特率 主板类型 挤出机数量 混色打印 温度传感器 最大温度 挤出机保护 双轴联动结构 限位开关上拉 限位开关信号 电机使能信号 禁用电机 电机运动 ...

  5. Unity动画系统详解4:如何用代码控制动画?

    摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...

  6. Apollo6.0代码Lattice算法详解——Part6:轨迹评估及碰撞检测对象构建

    Apollo6.0代码Lattice算法详解--Part6:轨迹评估及碰撞检测对象构建 0.前置知识 1.涉及主要函数 2.函数关系 3.部分函数代码详解 3.1 lattice_planner.cc ...

  7. Unity ShaderLab特效教程 适用于sprite和ugui的2d着色器实例 代码+详解注释 【波浪起伏的扭曲动画效果】

    如果代码中有什么不清楚请查看以下基础知识 Shader基础知识 unity3d 中 七种坐标知识详解 适用于sprite和ugui的波浪动画shader Shader "Custom/wav ...

  8. 关于android的4.2的0文件夹的详解

    关于android的4.2的0文件夹的详解 ---- android 4.0 ---- 在galaxy nexus(GN)手机上userdata分区很大,被挂在/data目录,用户的数据通常是放在sd ...

  9. mysql8.0.11 安装顺序_mysql 8.0.11 安装步骤详解

    本文为大家分享了mysql 8.0.11 安装步骤,供大家参考,具体内容如下 第一步:下载安装包 MYSQL官方下载地址:官方下载 这里第一项是在线安装,第二项是离线包安装,我选择的是第二项(不用管你 ...

最新文章

  1. highstock 只显示所有 不显示 月_小米34寸曲面显示器深度体验 办公体验极佳 但是还有个大弱点...
  2. 关于网页制作的规划与流程图的使用
  3. sklearn自学指南(part16)--SGD,Perceptron,PassiveAggressive
  4. 获取 当前日期、当前时间、前一天日期
  5. h5 登录页面_一份写给新手的微信H5页面制作流程介绍
  6. 二进制(1):无符号编码和补码编码
  7. VTK(二)vs2010第一个VTK程序。
  8. 视觉平台搭建——LED光源介绍
  9. qq发文件大小上限_微信又出新功能!网友:终于不用转QQ了
  10. PHP Cookbook读书笔记 – 第11章Session和持久化
  11. dio设置自定义post请求_Flutter用dio封装http网络请求,设置统一的请求地址、headers及处理返回内容...
  12. 计算机c 逻辑符号,c语言基本符号
  13. 在线html转txt文件,html网页转txt文件、文本转换器
  14. ESP8266和腾讯云的使用
  15. Apache2 MPM 模式了解
  16. Linux cp: omitting directory错误的原因及解决办法
  17. Apollo第五讲——Apollo定位模块
  18. 涂抹mysql笔记-数据导出导入
  19. 「UG/NX」NX2212手动安装方法教程
  20. altera fpga 约束

热门文章

  1. postsql和geoserver进行连接,并发布服务
  2. AppScan9.0
  3. 【IEEE论文投稿word中双栏情况下插入单栏效果图片】
  4. 若依框架如何新建模块
  5. Nginx安装及入门笔记
  6. 前端实现pdf,word,doc等Office文档格式在线预览
  7. C#操作Access之读取mdb浅析
  8. 关于PCB的工艺注意事项
  9. 【Git】git commit --amend 追加提交
  10. 自学杨中科老师视频 68.Part3-19:EF Core自引用的组织结构树(Av500515272,P68) 出现错误