创建激光束效果

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

激光束是一束光。在现实生活中它很少危险,但科幻体验通常使用激光束作为在碰撞时对玩家造成伤害的机制。然而,由于它们在未来媒体中的多功能性和显著性,激光束在各种游戏机制中都有用,例如炮台武器、谜题、障碍物和环境美学。

使用一个示例激光束枪模型,本教程向您展示如何创建一个激光束特殊效果,并附带一个可选的脚本,在碰撞时将玩家的生命值设置为零,包括以下指导内容:

  • 设置一个不可见的碰撞框,检测玩家与激光束的碰撞。
  • 配置代表激光束发射范围的附件。
  • 自定义一个模拟未来激光束视觉特征的光束。
  • 为碰撞框编写脚本,使其对玩家角色造成伤害。

获取炮台资产

创作者商店是工具箱的一个标签,您可以在其中找到 Roblox 和 Roblox 社区为您的项目制作的所有资产,包括模型、图像、网格、音频、插件、视频和字体资产。您可以使用创作者商店将单个资产或资产库直接添加到开放体验中。

本教程引用了您可以在复制以下各个步骤时使用的高质量激光束枪模型。

您可以通过单击以下组件中的 添加到库存 链接将此模型添加到您的Studio库存中。一旦资产位于您的库存中,您可以在平台上的任何项目中重复使用它们。


要将此炮台资产从库存中放入您的体验中:

  1. 在工具栏中,选择 视图 标签。

  2. 单击 工具箱工具箱 窗口显示。

  3. 工具箱 窗口中,单击 库存 标签。我的模型 排序显示。

  4. 单击 激光束枪 瓦片。模型在您的视口中显示。

设置碰撞框

完整的激光束模型在碰撞时需要能够检测玩家与激光的碰撞。由于 Beam 对象没有默认的碰撞检测能力,您必须使用基本部件设置碰撞检测。

例如,本教程使用一个不可见的块部件与 Beam 对象作为碰撞框,以检测角色的 Humanoid 对象何时触碰激光束。在教程的最后部分,您将创建一个脚本,利用此信息触发对玩家生命值的伤害。

要设置碰撞框:

  1. LaserBeamBlaster 中插入一个 部件。

  2. 选择该部件,然后在 属性 窗口中,

    1. 名称 设置为 CollisionBox。该部件的名称和大小写风格对于后续教程中的脚本很重要。
    2. 启用 固定 以确保物理系统在体验开始时不会移动部件。
  3. CollisionBox 的长度缩放到您希望激光束从炮台发射的长度。例如,本教程将其缩放为与炮台的长度相同。

  4. CollisionBox 移动到扩展自炮台发射器灯泡的位置。您的碰撞框现在代表激光束从炮台发射的范围。

配置附件

在将 Beam 对象添加到炮台之前,重要的是在3D空间中配置两个 Attachment 对象,以表示激光从炮台发射灯泡的发射范围。光束通过在附件之间渲染纹理来工作,因此如果没有供光束参考的附件,它将完全无法运行。

要为激光束配置附件:

  1. (可选) 在3D空间中将附件视觉辅助工具放大,以便您可以清晰可视化激光束的起始和结束。

    1. 导航至工具栏的 模型 标签,然后是 约束 部分。
    2. 缩放 设置为 2.5 使每个附件的视觉辅助工具更大。
  2. 在碰撞框中插入两个附件。

    1. 资源管理器 窗口中,将鼠标悬停在 CollisionBox 上,然后单击 ⊕ 图标。上下文菜单显示。
    2. 从上下文菜单中,插入一个 附件
    3. 重复此过程,以便 CollisionBox 中有两个附件对象。
    4. 分别将两个附件重命名为 StartAttachmentEndAttachment
  3. StartAttachment 移动到与发射器灯泡重叠的 CollisionBox 边缘,然后将 EndAttachment 移动到表示激光束范围的 CollisionBox 边缘。

  4. CollisionBox 设置为透明,以便您能够在没有障碍的情况下看到光束在附件之间渲染的纹理。

    1. 资源管理器 窗口中,选择 CollisionBox
    2. 属性 窗口中,将 透明度 设置为 1 使部件完全透明。

自定义光束

现在您在3D空间中拥有了 Attachment 对象,您可以添加并自定义 Beam 对象,使其模拟激光束的视觉特征。本教程提供了如何创建一个未来派的、明亮的粉色光束的指导,该光束快速动画,但通过实验相同的属性,您可以创建各种不同的特殊效果。

要自定义光束:

  1. CollisionBox 中插入一个光束。

    1. 资源管理器 窗口中,将鼠标悬停在 CollisionBox 上,然后单击 ⊕ 图标。上下文菜单显示。
    2. 从上下文菜单中,插入一个 光束
  2. 将碰撞框的附件分配给新的 Beam 对象。

    1. 资源管理器 窗口中,选择光束。
    2. 属性 窗口中,
      1. Attachment0 设置为 StartAttachment
      2. Attachment1 设置为 EndAttachment。光束在这两个附件之间渲染其默认纹理。
  3. 自定义光束的视觉外观,使其看起来像一个未来派的激光束。

    1. 资源管理器 窗口中,确保光束仍然被选中。
    2. 属性 窗口中,
      1. 纹理 设置为 rbxassetid://6060542021 渲染看起来像激光束的新纹理。
      2. 颜色 设置为 255, 47, 137 将激光染成明亮的粉色。
      3. 光发射 设置为 0.5 为激光添加微弱的光辉。
      4. 宽度0宽度1 设置为 4 扩大激光。
      5. 纹理速度 设置为 2 使激光动画更快。
      6. 启用 面向相机 以确保激光在玩家的任何角度下都可见。

脚本伤害行为

您的激光束目前在其环境中具有视觉吸引力,但作为炮台武器它完全无害。要修改激光炮,使其能够对玩家造成伤害,您必须在碰撞框中添加一个脚本来触发这种行为。

示例脚本通过等待查看哪些对象接触碰撞框来工作。如果触碰碰撞框的对象包含一个子 Humanoid 对象,脚本就将其 Health 属性 设置为 0。默认情况下,每个玩家角色都包含一个 Humanoid 对象,因此每当玩家与碰撞框接触时,脚本会瞬间将他们的生命值设置为零,角色会崩溃。

要编写损伤玩家的行为脚本:

  1. LaserBeamBlaster 中插入一个脚本。

    1. 资源管理器 窗口中,将鼠标悬停在 LaserBeamBlaster 上,然后单击 ⊕ 图标。上下文菜单显示。
    2. 从上下文菜单中,插入一个 脚本
  2. 用以下代码替换默认代码:


    local laserTrap = script.Parent
    local collisionBox = laserTrap.CollisionBox
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    if humanoid then
    humanoid.Health = 0
    end
    end
    collisionBox.Touched:Connect(onTouch)
  3. 通过走进激光束来测试行为。

    1. 在工具栏中,单击 播放 按钮。Studio 进入游戏测试模式。

      在Studio游戏测试选项中突出显示的播放按钮。
    2. 走进激光束以查看您的角色崩溃。完成后,单击 停止 按钮。Studio 退出游戏测试模式。

      在Studio游戏测试选项中突出显示的停止按钮。

现在您有一个危险的激光束炮台!利用本教程中的技能,您可以自定义各种光束特殊效果,例如发光的力场、快速的瀑布和速度坡道。例如,您可以尝试其他光束属性,如 CurveSize0CurveSize1导入 您自己的纹理,并将光束与其他特效配对,如 粒子发射器光源。祝您创造愉快!