使用光束创建冒烟和起火的效果

Time:15 分钟

在本教程中,你将学习:

  • 如何使用 Beam 对象创建自己的火焰效果

  • 如何在 Part 上创建 Attachment 并设置其位置

  • 如何在整个光束上设置光束的 Beam/ColorBeam/Transparency

  • Beam/LightEmission 如何在两个 Beam 对象上起作用

Tutorial final product

步骤

  1. 在“Insert(插入)”部分的“Home(主页)”选项卡下,插入一个 Part
    Inserting a Part

Selected part

  1. 在“Constraints(约束)”部分的“Model(模型)”选项卡下,选择 Attachment。在选中该工具的情况下,在游戏视图中两个不同的位置上单击你的 Part(部件)两次,可创建两个 Attachment(附件)对象。在“Explorer(管理器)”窗口中,观察这两个对象如何成为该 Part(部件)的父对象。
    Creating an Attachment

Created Attachments

Attachments in the Explorer Window

  1. 将这两个附件重命名为 “Center” 和 “Top”。完成此操作的方法是,在“Explorer(管理器)”窗口中右键单击这两个附件,然后选择“Rename(重命名)”或按 F2。
    Renamed Attachments in Explorer

  2. 选择 Center Attachment(中央附件)。在“Properties(属性)”窗口中,将其 Attachment/Position 设置为 0, 0, 0。将 Top Attachment (顶部附件)的 Position 设置为 0, 10, 0。Position(位置)会相对于 Part(部件)重定位附件。
    Attachment Position in the Properties Window

  3. 选择该 Part(部件)。在“Effects(效果)”下拉列表中“Gameplay(游戏)”部分的“Model(模型)”选项卡下,插入一个 Beam 对象。
    Inserting a Beam effect

Beam in the Explorer window

  1. 这个新的 Beam 将在插入时被选中。在“Properties(属性)”窗口中,在这个新的 Beam 被选中的情况下,将 Beam/Attachment0 属性设置为 Center Attachment(中央附件)并且将 Beam/Attachment1 属性设置为 Top Attachment(顶部附件)。
    提示: 若要设置对象引用属性(例如 Attachment0 和 Attachment1),请单击该属性右侧的空格。然后,单击“Explorer(管理器)”窗口中的对象,或单击 X 以清除该属性。
    设置这两个属性后,光束将在游戏视图中的部件上渲染。应该如下所示:
    Beam preview - step 6

  2. 将 Beam 的 Beam/Texture 属性设置为以下值:
    rbxassetid://1849531275 (Preview

)
此纹理是 128 × 1024 重复的透明白色烟雾纹理。
提示: 你只需粘贴数字部分(资源 ID),Roblox Studio 会填写前缀。
设置后,光束将立即渲染纹理。由于 Beam 的 TextureSpeed 属性(默认情况下是,设置为 1),因此它还会向上移动。
Beam preview - step 7

  1. 将 Beam 的 Beam/Width0 属性设置为 4,并将 Beam/Width1 属性设置为 8。这将使光束呈圆锥形渲染,在底部变细,在顶部变宽。
    Beam preview - step 8

  2. 接下来,在“Properties(属性)”窗口中选择 Beam 的 Beam/Transparency 属性。单击该属性,当你要输入数字时,请改为单击出现在字段右侧的 […]。
    Beam Transparency Field

此时将出现一个折线图。这是用于 DataType/NumberSequence 类型字段的编辑器。对于 Transparency(透明度),X 轴代表从 Attachment0 到 Attachment1 渲染的光束中的位置。 Y 轴代表该位置处光束的 Transparency(透明度)。默认情况下,在整个 Beam 中该值为 0.5,如 0.5 处的水平线显示。
Beam Transparency Graph - Constant

将鼠标悬停在左侧点(Time = 0 处)以将其选中。通过将它拖动到折线图的底部,将它的值设置为 0。将右侧点(Time = 1 处)的值设置为 1。这将导致 Beam(光束)在 Attachment0 附近完全不透明地渲染,并在 Attachment1 附近逐渐消失。该图现在应如下所示:
Beam Transparency Graph - Linear

光束现在会像这样。注意 Attachment1 附近的光束顶部没有硬边。
Beam preview - step 9

  1. 选择光束的 Beam/Color 属性。与透明度非常相似,你可以在编辑时单击 […] 打开 DataType/ColorSequence 编辑器。与透明度类似,此图根据位置确定光束的 Beam/Texture 的颜色。
    Beam Color Graph

我们希望光束从白色渐变为橙色再到红色。单击右侧的色块(Time = 1 处)以将其选中,然后单击 Color(颜色)将颜色更改为红色。对左侧的色块(Time = 0 处)进行相同的操作,将颜色更改为黄色。
Beam Color Graph - Gradient

现在,光束将从 Attachment0 到 Attachment1 从黄色混合为红色,中间为橙色。它看起来像这样:
Beam preview - step 10

  1. 启用光束的 Beam/FaceCamera 属性。这将导致在 Attachment0-Attachment1 行上旋转光束的 2D 面,以使光束始终面向 Camera。尝试从不同的镜头角度查看光束,以了解此属性的工作方式。

  2. 将光束的 Beam/LightEmission 属性更改为 1。光束会显得稍微亮一些,因为 LightEmission 导致光束使用 [加法混合] (https://en.wikipedia.org/wiki/Blend_modes#Addition) 进行渲染。
    Beam LightEmission and TextureSpeed in Properties window

  3. 将光束的 Beam/TextureSpeed 更改为 0.4 并将光束重命名为 BeamA。按 CTRL+D 复制该光束并将副本重命名为 BeamB。将 BeamB 的 TextureSpeed 更改为 0.8。现在,该部件的外观将明显变亮,因为有两个使用了加法混合的光束。BeamB 的纹理移动速度比 BeamA 的快,因此当纹理的颜色混合时,它们会产生一种烟雾效果。
    Beam preview - Step 13

  4. 在选中该部件的情况下,添加一个 Smoke 对象(通过“Gameplay(游戏)”部分的“Model(模型)”选项卡下的“Effects(效果)”菜单):
    Inserting a Smoke object

  5. 对于 Smoke 对象,将 Smoke/RiseVelocity 设置为 5,将 Opacity 设置为 0.2 并将 Smoke/Color 设置为黑色。这将对比 Beam 对象的明亮颜色。
    Beam preview - step 15

  6. 现在开始创造吧!开始摆弄在前面步骤中设置的属性。这里有一些想法。 1. 尝试在 0, 15, 0 处创建一个名为 Top2 的新 Attachment 并将 BeamB 的 Attachment1 设置为这个新附件。这将导致一些火焰升得更高。 2. 将 Part 的 BasePart/Transparency 设置为 1 以便它不可见。注意底部的硬边。尝试设置 Transparency 以便光束在 Attachment0 附近消失。
    A customized Transparency graph

3. 在选中 Center Attachment 的情况下,在“Effects(效果)”下添加一个 `PointLight` 对象。将它的 `PointLight/Color` 设置为橙色,将它的 Range 设置为 12。  

Inserting a PointLight

4. 尝试不同的 `Beam/Texture`!下面是一缕透明的白色烟雾。将 BeamB 的 TextureLength 设置为 1.25,将它的 Texture 设置为以下值:  

rbxassetid://1525327413 (Preview

) 17. 下面是执行上述步骤时效果的免费模型链接:Final Product

这是我玩了几分钟后想出的光束发射效果的一种变化。看看你是否可以重新创建它。
提示: 每次你改变内容时都要复制你的效果。这样你可以回到一个更基本的效果版本。
Pink fire Beam effect - try recreating me!

Roblox官方链接:使用光束创建冒烟和起火的效果