11、在事件窗口中单击“Collision Spawn”测试以选择它,“CollisionSpawn”是一种混合性的测试,它拥有“Spawn”测试和“Collision”测试的大部分功能。我们先来看一下“CollisionSpawn”测试,“Event01”事件定义了粒子的出生并且粘在了小船的底面的粒子,面且在每一帧都测试它是否与水发生碰撞。当粒子与水发生碰撞时,则测试为真,粒子有资格继续执行下一个事件,如果粒子没有与水发生碰撞,则测试为假,粒子将不会继续执行下一步的操作。使用“CollisionSpawn”测试,我们可以选择只将原始的粒子发送至下一事件,或者只发送繁殖出的新粒子,或是两者同时发送,这里我们将使用默认选项,这种设置只会将繁殖的粒子发送到下一个事件当中,单击“Add(添加)”或“By List(按列表)”按钮将 UDeflector01空间扭曲添加到导向器列表中,此时事件中的测试名称将会由“Collision Spawn 01 (无)”更改为“Collision Spawn01 (UDeflector01)”,这是粒子流的动态名功能,即在事件中动作名称包括动作最重要的参数,如图1-11所示。

图1-11
12、在粒子视图右侧的命令面板上,在“Spawn Rate And Amount(繁殖速率和数量)”组中勾选“Spawn On Each Collision(每次碰撞时繁殖)”,这时“Until(次数上限)”参数将变为可用,它主要用来定义父粒子接受碰撞测试的最大次数,我们需要将默认值更改为任意较大数字,以确保每次船起伏时都发射粒子,这里我们将“Until(次数上限)”值设置为100,同时,还要确保卷展栏顶部已勾选了为以下项测试真值>繁殖粒子的复选框,这样就会使繁殖的粒子在出生后立即有资格重定向到下一事件当中。将“Spawnable(可繁殖) %”设置为 25.0,它表示将实际繁殖粒子的现有粒子或父粒子的百分比,将“Offspring(子孙数)”设置为15,它会会告知粒子流从与 WaterMover 对象碰撞的每个原始粒子发射15个粒子。将“Variation(变化) %”设置为15.0,如图1-12所示。

图1-12
13、设置繁殖粒子的速度。在“Speed(速度)”组设置中可用于指定受测试影响或由测试创建的粒子的速度和方向。在其下拉列表中可用来设置父粒子和繁殖的粒子在碰撞时的反应。选项包括“Continue(继续)”和“Bounce(反弹)”。“Continue(继续)”将忽略导向器的效果,使粒子继续它们的运动,就像没有发生任何事情一样。在此场景中,父粒子将永远不会测试为真,因此此设置对它们没有任何影响。我们希望繁殖的粒子反弹离开导向器,因此可以保留“Offspring(子孙)”设置为“Bounce(反弹)”,我们还要考虑导向器的粒子反弹的参数,较高的数值将会使繁殖的粒子反弹得更远,“CollisionSpawn”测试可用两种方法来控制繁殖粒子的初始速度,一种是“In Units(使用单位)”,另一种是“Inherited(继承)”,其中前者是粒子发射的绝对速度值,与父粒子的运动无关。在本例中我们将使用“Inherited(继承)”,也就是船在航行时,与水面接触得越剧烈,子孙粒子运动的速度就越快,“Inherited(继承)”是默认值,在实际使用过程中需要将其值减小至四分之一左右,这里我们设置“Inherited(继承)%”值为 25.0,将“Variation(变化) %”值设置为 15.0,将“Divergence(散度)”设置为15.0,“Divergence(散度)”类似于“Variation(变化)”,但它并不能随机改变速度,而只影响方向,如图1-13所示。

图1-13
14、创建一个新事件到场景当中。在当在事件显示的空白区域添加“Speed”操作符,将它放在现有事件下面,此时粒子流将会创建一个包括“Speed”操作符和“Display”操作符的新事件,由于“Display”操作符可以用来控制粒子在视图中的显示方式,所以非常重要,当我们使用分支事件时,怎样判断测试结果何时为真?这就要通过更改分支事件中的“Display”操作符,便可以轻松地查看系统如何在视图中流动,我们还可以限制该事件中所显示粒子的百分比,以及显示每个粒子的ID号,在新事件中,我们通过单击“Speed”操作符的图标禁用它,此时操作符变成灰色,表示其禁用状态。如图1-14所示。

图1-14
15、将“Collision Spawn”测试的输出连接到新事件的输入。使用鼠标拖动Collision Spawn测试到Event02事件上的小圆上,此时会在两个连接器之间出现一条蓝色连线,并带有显示流动方向的箭头。如图1-15所示。

图1-15
16、在创建的新事件中单击“Display”操作符,在其右侧的命令面板上更改其显示类型和颜色,单击操作符名称旁边的彩色圆点,也可以不进入操作符参数直接更改显示颜色,我们将它们变成绿色线,播放动画我们会发现,当船与水碰撞时,会发射粒子,由于我们已经为新粒子定义了不同于父粒子的显示方式,因此可以轻松识别这些新粒子,即视图中显示为绿色短线的即是,如图1-16所示。

图1-16
17、重新启用“Speed”操作符,方法是单击其图标即可,也可以使用鼠标右键单击操作符并从菜单中选择Turn On(启用),“Speed”操作符是根据粒子流的图标来创建速度,前面我们已经将图标与船对象对齐并链接到了船对象上,下面我们需要对其进行设置以创建径向力,此径向力将施加到粒子使其远离中心。单击“Speed”操作符,在其右侧的参数命令面板上,将“Direction(方向)”设置为“Along Icon Arrow(图标中心朝外)”,将“Speed(速度)”设置为 30.0,将“Variation(变化)”设置为15.0 以使速度随机化,将“Divergence(散度)”设置为 45.0,如图1-17所示。

图1-17
18、添加外力作用。如果要添加像重力那样的力,我们需要使用“Force”操作符在事件中定义它们。但为获得更大的灵活性,我们将使用两个“Force”操作符,以便为每个“Force”操作符指定不同的强度,在“Speed”操作符下添加两个“Force”操作符,如图1-18所示。

图1-18
19、在第一个操作符中,使用“添加”按钮将 Gravity01空间扭曲添加至其列表当中,将此“Force”操作符的“Influence(影响) %”值设置为150.0,它表示此事件中的粒子将受到Gravity01 空间扭曲的影响,影响程度是其强度的150%,这样设置以后将使这些飞溅粒子看起来比它后面的的薄雾具有更大的质量,而薄雾将会使用相同的“重力”空间扭曲,但是受到的影响确较小,如图1-19所示。

图1-19
20、向第二个“Force”操作符添加 Wind01 空间扭曲,并将其“Influence(影响) %”值设置为 5.0,设置较小的影响值是因为飞溅效果要模拟质量较大的水,所以它们受到的风的影响不应该像细微的海洋喷雾那么大,如图1-20所示。

图1-20
21、设置粒子寿命。此时如果播放动画,我们会看到正确形成的飞溅粒子,但是存在的问题是它们永远不会消失,只是受重力影响在水中持续下落,这是由于我们没有为粒子指定寿命。为粒子指定寿命我们可以使用“Delete”操作符,此操作符主要删除传递给它的粒子,我们在第二个“Force”操作符下面添加“Delete”操作符,并将其“Remove(移除)”选项设置为“By Particle Age(按粒子年龄)”,保持其默认的“Life Span(寿命)”值为60 帧以及“Variation(变化)”值为10帧,此时如果播放动画,我们会看到飞溅粒子在约 60帧后消亡,如图1-21所示。

图1-21
22、创建水雾效果。下面我们来制作来自飞溅水花的水雾效果。在“Event02”事件的底部添加一个“AgeTest”,保持其默认设置,即“Particle(粒子年龄)”和“Is Greater Than Test Value(大于测试值)”,将“Test Value(测试值)”设置为 10,将“Variation(变化)”设置为 4,如果“Event02”事件中的所有粒子年龄约为10 帧,对于添加的随机性要加上或减去 4 帧,则此测试会将所有粒子传送至新事件,如图1-22所示。

图1-22
23、创建一个新事件。将“Spawn”测试拖动添加到事件显示的空白区域,将“Event02”事件中的“Age Test”关联到包含“Spawn”测试的新事件,此时,由于“AgeTest”会在粒子达到其寿命被删除之前将其移至下一事件,因此,“EVENT02”事件中的“Delete”操作符不再具有任何作用,但中它可以减轻系统负担过多粒子,如图1-23所示。

图1-23
24、单击选择“Display”操作符,在其右侧的命令面板中将“Type(类型)”设置为“Geometry(几何体)”,粒子流将为自动添加的每个“Display”操作符指定随机的颜色,另外,我们也可以自己更改此颜色,如图1-24所示。

图1-24
25、单击选择“Spawn”测试,它的参数设置类似于“CollisionSpawn”测试的参数。在默认的情况下,它设置为繁殖粒子一次,这表示其在流中不持续繁殖粒子。在这个场景中,我们不希望每个飞溅粒子都发射出水雾粒子,设置“Spawnable(可繁殖) %”值为 75.0,如图1-25所示。

图1-25
26、在参数命令面板上将“Offspring(子孙数)”值设置为3,将“Variation(变化) %”设置为 15.0,并保持默认的“Divergence(散度)”设置 20.0,如图1-26所示。

图1-26
27、在“Event03”事件中,在“Spawn”测试符后添加一个“Force”操作符,单击其右侧命令面板上的“Add(添加)”或“By List(按列表)”按钮,向列表中添加 Drag01 和 Wind01空间扭曲,同时,将“Influence(影响) %”设置为50.0。粒子流的重要功能之一就是可以将具有不同影响值的相同力应用到不同的操作符中,在此场景中我们不需要多余的空间扭曲,同前面一样,我们将使用“Delete”操作符使水雾粒子在特定时间后消亡,如图1-27所示。

图1-27
28、添加Delete操作符。在“Event02”事件中单击选择“Delete”操作符,然后右键单击它并从菜单中选择“Copy(复制)”项,然后将鼠标光标放在“Event03”事件的底部并单击鼠标右键,在弹出的菜单选项中单击“Paste(粘贴)”,这样我们就将“Delete”操作符粘贴到了“Event03”事件中,此操作符在事件中显示为“Delete 02”,如图1-28所示。

图1-28
29、为不同粒子类型定义几何体和材质。现在播放动画观看,我们会发现相当逼真的水花向上飞溅并从中喷射出水雾,但要让其成为生产实例,我们还需要进行一些设置,我们可以将每个事件的粒子描述为球体、长方体或实例几何体等,而且,当在不同事件之间移动粒子时,还可以更改它们的形状。这里我们将使用两种几何体类型即飞溅粒子和水雾。飞溅粒子需要模拟大量飞溅的数百万个微小粒子,我们将使用混合到一起且具有不透明度衰减的大型球体形状来进行模拟,这样就会生成类似由数百万个粒子组成的柔软的曲面,另一方面,水雾可以是很多小圆点。在“Event02”事件中的任意位置添加“ShapeInstance”操作符,此操作符的功能非常强大,它允许我们在场景中将唯一的对象用作粒子几何体,并且更改此几何体的某些参数,而实际中不更改此几何体,如图1-29所示。

图1-29
30、单击选择“Shape Instance”操作符,在其右侧的命令面板上单击“粒子几何体对象”组中的按钮,此时鼠标将切换至拾取模式,然后在场景中选择Sphere01对象,如图1-30所示。

图1-30