一个 瀑布 是河流或溪流中水流经过一个或多个垂直落差流入水体的地方。体验通常包括瀑布以提升视觉美感,例如增强环境或创建视觉兴趣点,或出于功能性游戏目的,例如隐藏资源或在地方内部转换玩家在不同区域之间的移动。
使用 Waterfall Island .rbxl 文件作为参考,本教程向您展示如何创建一个瀑布及其 VFX 对象,这些对象代表现实世界的物理行为,包括以下指南:
- 将参考材料分解成具有独特视觉和行为特征的单个组件。
- 配置从悬崖跌落的不同速率的急流,从而模拟水从悬崖下降时的扩散。
- 配置水花,以模拟急流撞击底部池塘时水变得气溶胶化。
- 配置白水,以模拟湍流的气泡水在流出撞击岩石时的情况。
- 配置泡沫,以模拟破坏表面张力的毛细波。
- 配置雾气,以模拟从撞击点升起的雾气,创建一个玩家可以从任何角度观看的彩虹。
拆解参考
为了创建可信的瀑布,重要的是在设计过程中参考现实世界的自然特征,因为这让您能够将主题分解成具有独特视觉和行为特征的单个组件。例如,样本 Waterfall Island 体验参考了华盛顿州的斯诺夸尔米瀑布,以告知与瀑布及其周围地形相关的所有纹理和 VFX 设计决策。

虽然瀑布是一个连续的、连接的水流,涉及多种物态的动态流体和空气运动,但将这个复杂系统分解成单独的组件是有用的,这样您就可以计划如何利用不同的 VFX 对象来模仿其现实世界的对应物。为此,本教程将示例瀑布分解为五个独特的组件:
- 急流 – 从悬崖跌落的水。
- 水花 – 当急流与底部池塘碰撞时,散布的水。
- 白水 – 湍流水源接近悬崖边缘时产生的水。
- 泡沫 – 当急流和池塘发生碰撞时,水平扩散的气泡水。
- 雾气 – 由于整体瀑布而在空气中蒸发的云状水分。


接下来的部分将深入分析可以使用的不同设计决策和技术,以重新创建构成样本 3D 空间中主要落差的每个瀑布组件。当您查看这些决策并尝试各种 Beam 和 ParticleEmitter 属性时,您将学习如何利用 VFX 来解决您自己体验中的独特环境需求。
配置急流
一个 急流 是流过悬崖或悬崖边缘流入底部池塘的下落水流。急流以不同速率下落,这取决于其水量和落入池塘的高度。例如,样本的主要落差似乎下落比较慢,因为有大量水从高处下落,但样本的第二落差似乎下落比较快,因为较少的水量在短距离内下落。
此外,瀑布通常有多层急流,以不同速率下落,因为水在流入池塘时会扩散。为了演示这个原理,样本使用了多个无缝纹理的 Beam 对象,这些对象在不同的速度和长度之间在 Attachment 对象之间呈现。除了提供主要落差更逼真的下落行为外,此技术还创造了视差的错觉,使急流看起来有深度和体积感,即使它只是一个 2D 图像。
要在样本 Waterfall Island 位置文件中重新创建主落差的急流:
创建流出用于急流的水。
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以包含所有流出对象,然后将文件夹重命名为 Outflow。
在 Outflow 文件夹中插入两个 block 部件,然后分别重命名为 OutflowStart 和 OutflowStop。
将 OutflowStart 移动到您希望流出开始的位置,将 OutflowStop 移动到悬崖的边缘。

在 OutflowStart 和 OutflowStop 中插入一个附件,然后旋转附件,直到黄颜色指示器指向上方。

在 Outflow 文件夹中插入一个 Beam,然后将其命名为 OutflowWater。
将每个部分的附件分配给 OutflowWater。
- 在 Explorer 窗口中,选择 OutflowWater。
- 在 Properties 窗口中,
- 将 Attachment0 设置为 OutflowStart 中的附件。
- 将 Attachment1 设置为 OutflowStop 中的附件。光束会在两个附件之间呈现其默认纹理。

自定义光束的视觉外观,使其看起来像流动的水,接近悬崖的边缘。
- 在 Explorer 窗口中,验证 OutflowWater 仍然被选中。
- 在 Properties 窗口中,
将 Texture 设置为 rbxassetid://4787437624,以呈现看起来像流动泡沫的新纹理。
将 Width0 设置为 60,以使纹理从其开始渲染的轴宽度增宽。
将 Width1 设置为 20,以便将纹理引导到悬崖的边缘。
将 TextureSpeed 设置为 0.4,以减缓纹理的流动。
将 TextureLength 设置为 64,以拉伸纹理的长度。
将 TextureMode 设置为 Wrap,使光束的整体长度之间重复纹理 3D 世界中的两个附件除以其 TextureLength。这使得纹理更逼真地渲染流动水。
将 Color 设置为一个颜色序列,其颜色从深蓝色和浅蓝色交替到白色。
单击 Color 属性,然后单击 ⋯ 按钮。将显示一个颜色序列弹出窗口。

颜色序列底部轴上的每个三角形都是一个 关键点,决定粒子生命周期在该点的属性的颜色值。
在整个颜色序列中设置以下时间和值属性:
- Time = 0,RGB Value = 208, 247, 255
- Time = 0.135,RGB Value = 146, 235, 255
- Time = 0.248,RGB Value = 255, 255, 255
- Time = 0.384,RGB Value = 128, 183, 202
- Time = 0.757,RGB Value = 166, 213, 248
- Time = 1,RGB Value = 255, 255, 255

将 Transparency 设置为一个数字序列,使水在接近悬崖的边缘时变得更加生动。
单击 Transparency 属性,然后单击 ⋯ 按钮。将显示一个数字序列弹出窗口。默认情况下,图表是直线,图像在从左到右的透明度保持不变。

每个数字序列的开始和结束的正方形都是一个 关键点,在从左到右的纹理这一点上决定属性的透明度值。
在整个数字序列中设置以下时间和值属性:
- Time = 0,Value = 1
- Time = 0.375,Value = 0.725
- Time = 0.615,Value = 0
- Time = 0.92,Value = 1
- Time = 1,Value = 1

缩放每个部件,以确保纹理覆盖流出池的宽度。流出现在在不同角度下看起来像是向悬崖的边缘流动。
创建主要落差的快速流动急流。
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以包含所有急流对象,然后将文件夹重命名为 Cascades。
在 Cascades 文件夹中插入两个 block 部件,然后分别重命名为 MainDropStart 和 MainDropStop。
将 MainDropStart 移动到悬崖的边缘,将 MainDropStop 移动到底部池塘下方。

配置主落差所有急流光束的附件以用于渲染其纹理。
- 在 MainDropStart 中插入一个附件,然后旋转该附件,直到黄颜色指示器指向远离悬崖。
- 在 MainDropStop 中插入一个附件,然后旋转该附件,直到黄颜色指示器指向悬崖。

在 Cascades 文件夹中插入一个 Beam,然后将其命名为 FastDrop。
将每个部件的附件分配给 FastDrop。
- 在 Explorer 窗口中,选择 FastDrop。
- 在 Properties 窗口中,
- 将 Attachment0 设置为 MainDropStart 中的附件。
- 将 Attachment1 设置为 MainDropStop 中的附件。光束会在两个附件之间呈现其默认纹理。

自定义光束的视觉外观,使其看起来像从主要落差流出的快速流动急流。
在 Explorer 窗口中,验证 FastDrop 仍然选中。
在 Properties 窗口中,
- 将 Texture 设置为 rbxassetid://16808804567,以呈现看起来像流动水的新纹理。
- 将 Width0 设置为 5,以使纹理从其开始渲染的轴宽度增宽。
- 将 Width1 设置为 10,以便在与池塘相遇时将纹理增宽。
- 将 CurveSize0 设置为 10,使纹理向远离悬崖的方向弯曲。
- 将 CurveSize1 设置为 20,使纹理朝向池塘弯曲。
- 将 TextureSpeed 设置为 1.3,以使纹理更快流动。
- 将 TextureLength 设置为 2,以略微拉伸纹理的长度。
- 将 Color 设置为一个颜色序列,其颜色从深蓝色和浅蓝色交替到白色。
- Time = 0,RGB Value = 208, 247, 255
- Time = 0.135,RGB Value = 210, 246, 255
- Time = 0.25,RGB Value = 255, 255, 255
- Time = 0.384,RGB Value = 163, 187, 202
- Time = 0.757,RGB Value = 214, 229, 248
- Time = 1,RGB Value = 255, 255, 255

- 将 Transparency 设置为一个数字序列,使急流更生动。
- Time = 0,Value = 1
- Time = 0.115,Value = 0
- Time = 0.835,Value = 0
- Time = 0.881,Value = .994
- Time = 1,Value = 1

- 将 ZOffset 设置为 2,使纹理稍微偏离悬崖。
- 启用 FaceCamera,确保无论玩家与水的角度如何,急流是可见的。
创建主要落差的慢流急流。
复制 FastDrop,然后将复制的光束命名为 SlowDrop。
自定义光束的视觉外观,使其看起来像从主要落差流出的快速流动急流。
- 在 Explorer 窗口中,选择 SlowDrop。
- 在 Properties 窗口中,
- 将 Width1 设置为 20,以便在与池塘相遇时将纹理增宽。
- 将 TextureLength 设置为 1.5,略微缩短纹理的长度。
- 将 TextureSpeed 设置为 1,以使纹理流动较慢。
- 将 ZOffset 设置为 0,以允许纹理直接流出悬崖的边缘。
在 Explorer 窗口中,选择 Outflow 文件夹中的所有块部件,在 Properties 窗口中,将 Transparency 设置为 1,以使块变得不可见。
配置水花
当急流撞击底部池塘的密度时,水会从撞击点向上推进形成 水花。当这些气溶胶化的水向上推动时,它会扩散并分散出不同方向的小水滴。
为了演示这个过程,样本在主要落差的底部使用了两个 ParticleEmitter 对象。第一个粒子发射器发射看起来像密集水花的粒子,代表随着急流撞击池塘而开始向上推进的水的重量。第二个粒子发射器发射看起来像水滴的粒子,代表水变得气溶胶化。
当您配置这些粒子发射器同时以不同的速率发射这两种粒子时,最终的视觉效果模拟了水花的现实世界物理行为。这类细节有助于增强 VFX 的真实感并使玩家沉浸在 3D 空间中。


要在样本 Waterfall Island 位置文件中重新创建主落差底部的水花:
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以包含所有水花对象,然后将文件夹重命名为 Splashes。
在 Splashes 中插入一个 block 部件,然后将其重命名为 MainDropSplashes。
将 MainDropSplashes 定位并缩放到急流撞击池塘的整个表面区域。

创建主落差的急流撞击池塘时的浓密水花。
在 MainDropSplashes 中插入一个 ParticleEmitter,然后将发射器重命名为 SplashDense。
选择 SplashDense,在 Properties 窗口中,
- 将 Texture 设置为 rbxassetid://16829556885,以呈现看起来像密集水花的粒子。
- 将 Color 设置为一个颜色序列,开始为蓝色,然后变为白色。
- Time = 0,RGB Value = 189, 246, 255
- Time = 1,RGB Value = 255, 255, 255

- 将 Size 设置为一个数字序列,随着变化窗口稳定地增大。
- Time = 0,Value = 1.81,Envelope = 0.562
- Time = 1,Value = 5.75,Envelope = 1.31

- 将 Transparency 设置为一个数字序列,粒子在其生命周期内开始为透明、变为不透明、然后再次变为透明,并具有较大的变化窗口。
- Time = 0,Value = 1,Envelope = 0
- Time = 0.5,Value = 0.181,Envelope = 0.181
- Time = 1,Value = 1,Envelope = 0

- 将 Lifetime 设置为 0.25, 0.35,以随机设置每个粒子的生命周期在 250 毫秒到 350 毫秒之间。
- 将 Rate 设置为 30,以每秒发射 30 个粒子。
- 将 Rotation 设置为 -45, 45,随机定向每个粒子在每秒 -45 到 45 度之间。
- 将 RotSpeed 设置为 -40, 40,随机发射每个粒子在 -45 到 40 度之间。
- 将 Speed 设置为 20, 35,随机发射每个粒子在每秒 20 到 35 砖之间。
- 将 SpreadAngle 设置为 50, 50,以沿 X 轴和 Z 轴发射粒子。
- 将 Acceleration 设置为 0, -40, 0,以模拟重力并将粒子向下拉动。
- 将 LightEmission 设置为 0.5,以使粒子变亮。
- 将 LightInfluence 设置为 0.1,以显著减少环境光对粒子颜色的影响。
创建主落差水流撞击池塘时的水滴。
复制 SplashDense,然后将其重命名为 SplashDroplets。
选择 SplashDroplets,在 Properties 窗口中,
- 将 Texture 设置为 rbxassetid://17082061238,以呈现看起来像水滴的粒子。
- 将 Size 设置为一个数字序列,迅速增大,并具有变化窗口。
- Time = 0,Value = 1.81,Envelope = 0.562
- Time = 1,Value = 8.69,Envelope = 1.31

- 将 Transparency 设置为一个数字序列,粒子开始为透明,迅速变为不透明,然后在其生命周期中慢慢开始变为透明。
- Time = 0,Value = 1,Envelope = 0
- Time = 0.104,Value = 0.0625,Envelope = 0.0625
- Time = 0.429,Value = 0.0562,Envelope = 0.0562
- Time = 1,Value = 1,Envelope = 0

- 将 Lifetime 设置为 0.15, 0.6,以随机设置每个粒子的生命周期在 150 毫秒到 600 毫秒之间。
- 将 Rate 设置为 20,以每秒发射 20 个粒子。
在 Explorer 窗口中,选择 Splashes 文件夹中的所有块部件,在 Properties 窗口中,将 Transparency 设置为 1,以使块变得不可见。
配置白水
白水 是指水源接近下落并撞击路径中的物体时愈加湍流,导致气泡水的产生。由于水源中更多的气泡,最终看起来呈现为白色。
为了模拟这个过程,样本使用了两个 ParticleEmitter 对象,发射看起来像大量气溶胶化水的水花,这些水花在流出撞击悬崖的岩石边缘的地方。发射器不使用内置照明,而是优先考虑白色和灰色的色调,配合各种下降速率,以展示水中空气的数量。

要在样本 Waterfall Island 位置文件中重新创建流出撞击悬崖岩石时的白水:
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以包含所有白水对象,然后将文件夹重命名为 WhiteWater。
在 WhiteWater 中插入一个 block 部件,然后将其重命名为 MainDropWW。
将 MainDropWW 定位并缩放到流出的水开始从悬崖流出的整个表面区域。

创建主流出撞击周围岩石时的较平缓的白水。
在 MainDropWW 中插入一个 ParticleEmitter,然后将发射器重命名为 GentleWW。
选择 GentleWW,在 Properties 窗口中,
- 将 Texture 设置为 rbxassetid://16808075391,以发射看起来像网状水花的粒子。
- 将 Color 设置为一个颜色序列,开始为蓝色,然后变为白色。
- Time = 0,RGB Value = 189, 246, 255
- Time = 1,RGB Value = 255, 255, 255

- 将 Size 设置为一个数字序列,随着变化窗口稳定地增大。
- Time = 0,Value = 1.13,Envelope = 0.562
- Time = 1,Value = 5.56,Envelope = 0.563

- 将 Transparency 设置为一个数字序列,粒子开始为透明,变为不透明,然后在其生命周期中稍微有峰值再次变为透明。
- Time = 0,Value = 1,Envelope = 0
- Time = 0.143,Value = 0.462,Envelope = 0.0625
- Time = 0.336,Value = 0.462,Envelope = 0.0562
- Time = 0.622,Value = 0.788,Envelope = 0.0538
- Time = 1,Value = 1,Envelope = 0

- 将 ZOffset 设置为 2,以便使纹理稍微偏离悬崖。
- 将 Lifetime 设置为 1.25, 1.5,以随机设置每个粒子的生命周期在 1250 毫秒到 1500 毫秒之间。
- 将 Rate 设置为 12,以每秒发射 12 个粒子。
- 将 Rotation 设置为 -45, 45,随机定向每个粒子在每秒 -45 到 45 度之间。
- 将 RotSpeed 设置为 -40, 40,随机发射每个粒子在 -45 到 40 度之间。
- 将 Speed 设置为 15, 18,随机发射每个粒子在每秒 20 到 35 砖之间。
- 将 SpreadAngle 设置为 5, 5,以发射粒子在 X 轴和 Z 轴的较小角度。
- 将 Acceleration 设置为 0, -35, 0,以模拟重力并将粒子向下拉动。
- 将 Drag 设置为 0.25,以使粒子失去其速度,呈指数衰减。
- 将 LightEmission 设置为 0.6,以使粒子变亮。
- 将 LightInfluence 设置为 0.1,以显著减少环境光对粒子颜色的影响。
创建主流出撞击周围岩石时的更多湍流白水。
复制 GentleWW,然后将其重命名为 TurbulentWW。
选择 TurbulentWW,在 Properties 窗口中,
- 将 Size 设置为一个数字序列,随着变化窗口不断增大。
- Time = 0,Value = 1.6,Envelope = 0.562
- Time = 1,Value = 2.63,Envelope = 0.563

- 将 Transparency 设置为一个数字序列,粒子开始为透明,变为不透明,然后在其生命周期内再次变为透明。
- Time = 0,Value = 1,Envelope = 0
- Time = 0.156,Value = 0.0437,Envelope = 0.0437
- Time = 0.55,Value = 0.075,Envelope = 0.0252
- Time = 1,Value = 1,Envelope = 0

- 将 Lifetime 设置为 0.25, 0.5,以随机设置每个粒子的生命周期在 250 毫秒到 500 毫秒之间。
- 将 Rate 设置为 20,以每秒发射 20 个粒子。
- 将 Speed 设置为 5, 6,以随机发射每个粒子在 5 到 6 砖之间。
- 将 Acceleration 设置为 0, -15, 0,以模拟重力并将粒子向下拉动。
在 Explorer 窗口中,选择 WhiteWater 文件夹中的所有块部件,在 Properties 窗口中,将 Transparency 设置为 1,以使块变得不可见。
配置泡沫
与水花在急流撞击池塘时向上推进不同,泡沫 是从撞击点的底部向外波动的气溶胶化水。类似于水花,泡沫向外扩散并分解成网状水滴,随着气溶胶化而形成。
为了模拟这一效果,样本使用了一个 ParticleEmitter 对象来发射看起来像泡沫涟漪的粒子,并缓慢平行于池塘发射。这使得粒子能够模拟破坏基础水池表面张力的毛细波的视觉和行为效果。

要在样本 Waterfall Island 位置文件中重新创建主落差底部的泡沫:
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以包含所有泡沫对象,然后将文件夹重命名为 Foam。
在 Foam 中插入一个 block 部件,然后将其重命名为 MainDropFoam。
将 MainDropFoam 定位并缩放到主急流撞击池塘最密集的部分的整个表面区域。

在 MainDropFoam 中插入一个 ParticleEmitter,然后将发射器重命名为 FoamRipples。
在 Explorer 窗口中,选择 FoamRipples,在 Properties 窗口中,
将 Texture 设置为 rbxassetid://16811365086,以发射看起来像泡沫涟漪的粒子。
将 Orientation 设置为 VelocityPerpendicular,以便粒子垂直于其运动方向发射。
将 Transparency 设置为一个数字序列,粒子快速变为不透明,随后的生命周期迅速变为透明。
- Time = 0,Value = 1,Envelope = 0
- Time = 0.143,Value = 0.119,Envelope = 0.1
- Time = 0.664,Value = 0.125,Envelope = 0.112
- Time = 1,Value = 1,Envelope = 0

将 Lifetime 设置为 0.5, 0.7,以随机设置每个粒子的生命周期在 500 毫秒到 700 毫秒之间。
将 Rate 设置为 5,以每秒发射 5 个粒子。
将 Rotation 设置为 0, 360,随机定向每个粒子在发射点的圆形。
将 RotSpeed 设置为 -15, 15,随机发射每个粒子在 -15 到 15 度之间。
将 Speed 设置为 0, .01,随机发射每个粒子在 0 到 .01 砖之间。
将 LightEmission 设置为 0.25,以稍微使粒子变亮。
将 LightInfluence 设置为 0,以防止环境光影响粒子颜色。
在 Command Bar 中,输入以下字符串,以随粒子生命周期的变化将每个粒子的大小从 5 增加到 20 砖,并具有小幅变化窗口:
workspace.Foam.MainDropFoam.FoamRipples.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,5,0), NumberSequenceKeypoint.new(1,20,5)}在 Explorer 窗口中,选择 Foam 文件夹中的所有块部件,在 Properties 窗口中,将 Transparency 设置为 1,以使块变得不可见。
配置雾气
当急流撞击池塘时,一些水蒸发并在凉爽、潮湿的空气中凝结形成 雾气。雾气蒸气的光线反射方式不同于坚硬表面;相反,它们以意想不到的方式反射光线,在整体环境中看起来明亮,直到完全蒸发。
样本通过在落差底部使用两个 ParticleEmitter 对象来模拟这个过程。第一个粒子发射器主动发射粒子远离撞击点和悬崖,第二个粒子缓慢向上发射,朝向天空。两个粒子发射器的粒子在其生命周期开始时,亮度较高,随着蒸发而缓慢变得透明。
与现实世界相似,雾的蒸发过程使得彩虹得以形成,因为光线从小水滴上反射,样本也通过一个 ParticleEmitter 对象来模拟该过程,该对象发射彩虹粒子,粒子生命周期短暂。这些粒子始终面向相机,无论玩家与瀑布的角度如何,以产生光束在蒸气上的光学错觉。


要在样本 Waterfall Island 位置文件中重新创建从主落差向外和向上移动的雾气:
在 Explorer 窗口中,在 Workspace 中创建一个 Folder 以含有所有雾气相关对象,然后将文件夹重命名为 Mist。
创建从急流撞击池塘辐射出来的雾。
在 Mist 中插入一个 block 部件,然后将其重命名为 BaseMist。
定位、调整和缩放 BaseMist,使其朝离急流撞击池塘的最密集部分。

在 BaseMist 中插入一个 ParticleEmitter,然后将发射器重命名为 Mist。
选择 Mist,在 Properties 窗口中,
- 将 Texture 设置为 rbxassetid://16830667309,以发射看起来像浓雾的粒子。
- 将 Color 设置为一个颜色序列,开始为蓝色,然后变为白色。
- Time = 0,RGB Value = 171, 244, 255
- Time = 0.339,RGB Value = 251, 254, 255
- Time = 1,RGB Value = 255, 255, 255

- 将 Size 设置为一个数字序列,稳定地增大。
- Time = 0,Value = 8,Envelope = 0
- Time = 1,Value = 10,Envelope = 0

- 将 Transparency 设置为一个数字序列,粒子开始为透明,快速变得稍微不透明,随后迅速再次变得透明。
- Time = 0,Value = 1,Envelope = 0
- Time = 0.0971,Value = 0.8,Envelope = 0.0625
- Time = 1,Value = 1,Envelope = 0

- 将 ZOffset 设置为 2,使纹理稍微偏离池塘。
- 将 Lifetime 设置为 0.5, 1,以随机设置每个粒子的生命周期在 500 毫秒到 1000 毫秒之间。
- 将 Rate 设置为 20,以每秒发射 20 个粒子。
- 将 Rotation 设置为 -360, 360,随机定向每个粒子为一个圈。
- 将 RotSpeed 设置为 -50, 50,随机发射每个粒子从 -50 到 50 度之间。
- 将 Speed 设置为 35, 50,随机发射每个粒子在 35 到 50 砖之间。
- 将 SpreadAngle 设置为 25, 25,在 X 轴和 Z 轴以小角度发射粒子。
- 将 Acceleration 设置为 -10, -25, -10,以模拟喷发冲击池塘的影响。
- 将 Drag 设置为 1.5,以使粒子随着时间的推移失去速度。
创建从池塘上升的雾气。
- 复制 BaseMist,然后将其重命名为 RiseMist。
- 定向 RiseMist,使发射粒子的顶部构件朝向天空。
- 选择其子粒子发射器,然后在 Properties 窗口中,
- 将 Lifetime 设置为 4,以将每个粒子的生命周期设置为 4 秒。
- 将 Rate 设置为 3,以每秒发射 3 个粒子。
- 将 RotSpeed 设置为 -10, 10,随机发射每个粒子在 -10 到 10 度之间。
- 将 Speed 设置为 25,以每秒发射每个粒子 25 砖。
- 将 Acceleration 设置为 0, 0, 0,以移除先前的模拟。
- 将 Drag 设置为 1,以使粒子失去其速度,呈指数衰减。
- 在 Command Bar 中,输入以下字符串,以在每个粒子的生命周期内从 20 增加到 20 砖,并具有小幅度变化窗口:
workspace.Mist.RiseMist.Mist.Size = NumberSequence.new{NumberSequenceKeypoint.new(0,20,1), NumberSequenceKeypoint.new(1,25,5)}创建彩虹。
在 Mist 中插入一个 block 部件,然后将其重命名为 RainbowPart。
将 RainbowPart 定位在其他块部件稍微上方。

在 Rainbow 中插入一个 ParticleEmitter,然后将发射器重命名为 Rainbow。
选择 Rainbow,在 Properties 窗口中,
- 将 Texture 设置为 rbxassetid://16828911033,以呈现看起来像微弱彩虹的粒子。
- 将 Size 设置为 25,以渲染较大的粒子。
- 将 Transparency 设置为一个数字序列,粒子开始为透明,稍微变得不透明,然后在其生命周期内再次变得透明。
- Time = 0,Value = 1,Envelope = 0
- Time = 0.497,Value = 0.363,Envelope = 0.05
- Time = 1,Value = 1,Envelope = 0

- 将 Lifetime 设置为 2, 4,以随机设置每个粒子的生命周期在 200 毫秒到 400 毫秒之间。
- 将 Rate 设置为 0.25,以每 4 秒发射一个粒子。
- 将 Rotation 设置为 -20,使每个粒子稍微定向。
- 将 Speed 设置为 0,以呈现每个粒子在每秒 0 砖的发射。
- 将 Drag 设置为 1,以使粒子失去速度,呈指数衰减。
- 将 LightEmission 设置为 1,以使用叠加混合将粒子渲染与其后的颜色。此步骤还移除了纹理本身的黑色背景。
- 将 LightInfluence 设置为 0,以防止环境光影响粒子颜色。
在 Explorer 窗口中,选择 Mist 文件夹中的所有块部件,在 Properties 窗口中,将 Transparency 设置为 1,以使块变得不可见。