Roblox 光束纹理

适用于 Roblox Beam 的免费方形无缝纹理:能量束、闪电、电路、火焰流、激光和光柱,了解纹理方向、Beam 设置,以及用于连接两个 Part 的 Luau 代码。

更新于

Beam 会在两个 Attachment 之间绘制一张带状图像。它不能播放 Flipbook:图像会沿长度方向首尾重复,并通过 TextureSpeed 滑动,因此动感来自纹理滚动。这使 Beam 纹理不同于粒子 Flipbook:它是一张方形静态图像,上下边缘完全匹配,因此每次重复都能无缝衔接,而且 Beam 无论拉多长都不会损失画质。闪电、牵引束、激光、火焰流和灯下的光柱,在大多数 Roblox 游戏中都属于 Beam。

无缝 Beam 纹理

Beam 纹理分类中还有等离子、聚光灯、水、冰霜、虚空和牵引光束。在这些特效页面中点击 ROBLOX,即可获取纹理:一张自下而上的 1024 x 1024 PNG。在工作室中,选择 Export,再选择 Roblox,这些纹理会自动选用 Beam;页面会在类似 Studio 的场景中显示 Beam,你可以拖动其 Attachment 来拉伸 Beam,还可以选择静态图像的截取时刻、纹理尺寸,以及保留颜色还是转为白色以便染色。任何特效都能用同样的方法变成 Beam 纹理:将画布设为正方形,并设置上下平铺,这样图像从一边越界后就会从另一边接上。

设置 Beam

  • 方向: Roblox 中 Beam 纹理自下而上延伸。图像的底边从 Attachment0 开始,顶边朝向 Attachment1,宽度则横跨 Beam。把同一张图像作为贴花放在 Part 上时,图像会正向显示,这也是创作者分享 Beam 纹理时采用的方式。
  • Texture:在 Asset Manager 中上传 PNG,然后将 rbxassetid://<id> 粘贴到 Beam 的 Texture 属性中。
  • TextureMode Wrap 会每隔 TextureLength studs 重复纹理,因此无论 Beam 多长,图案尺寸都保持不变。
  • 对于素材库中的方形纹理,设置 TextureLength = Width:例如 Width 为 2 时,TextureLength 也设为 2。其他数值会拉伸或压扁图案。较高的图像则应将 TextureLength 设为 Width x 图像高度除以图像宽度。
  • TextureSpeed 表示纹理每秒移动的长度,方向从 Attachment0 指向 Attachment1。闪电、火焰和能量特效适合设为 1 到 3;光柱慢速效果更好,约为 0.1 到 0.3。负值会让纹理反向移动。
  • LightEmission 1 会将 Beam 的光叠加到其后方的内容上,适用于闪电、激光、能量和光效。水和虚空光束使用常规混合绘制,应设为 0。LightInfluence 设为 0 可让 Beam 不受光照影响。
  • FaceCamera 会让带状图始终朝向摄像机,避免闪电束转到侧面后消失。

现成模型(付费计划功能)已设置好所有参数:一个不可见的 Part,包含相距 16 studs 的 Attachment0 和 Attachment1,两者之间放置 Beam,并附有列出所有设置的 README。使用免费 PNG 时,请自行添加 Beam 并使用上述数值。

用 Beam 连接两个 Part

在 ReplicatedStorage 中保留一个已配置好纹理的 Beam,需要连接两个对象时就克隆它,例如法杖和目标、塔和敌人,或灯和地面。

LocalScript
-- LocalScript (or a Script for a beam everyone sees)
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local template = ReplicatedStorage:WaitForChild("LightningBeam") -- a Beam with its Texture set

-- Draws the beam from one part to another; destroys it after `seconds` if given.
local function link(fromPart: BasePart, toPart: BasePart, seconds: number?)
	local a0 = Instance.new("Attachment")
	a0.Parent = fromPart
	local a1 = Instance.new("Attachment")
	a1.Parent = toPart
	local beam = template:Clone()
	beam.Attachment0 = a0
	beam.Attachment1 = a1
	beam.Parent = fromPart
	if seconds then
		task.delay(seconds, function()
			beam:Destroy()
			a0:Destroy()
			a1:Destroy()
		end)
	end
	return beam
end

link(workspace.Tower.Tip, workspace.Enemy.HumanoidRootPart, 0.4)

让效果看起来恰到好处

  • 闪烁:Beam 只显示一张图像,但闪电仍然可以闪烁。在不同时间点导出两到三张纹理(Export、Roblox、Beam、Moment),每隔几帧切换 Beam 的 Texture,或更改其 Transparency。
  • 光柱和聚光灯:将灯附近的 Width0 设窄,地面端的 Width1 设宽,并使用 NumberSequence 让 Transparency 朝地面方向渐变。
  • 一张纹理,多种颜色:将 Colour 设为 White 后导出,再根据用途设置 Beam 的 Color(例如一个队伍使用红色激光,另一个队伍使用蓝色激光)。
  • 曲线:CurveSize0 和 CurveSize1 可以将 Beam 弯成弧形,适用于鞭状效果、牵引束和抛射能量。提高 Segments 的值可让曲线保持平滑。

Flipbook PNG 免费提供:每个特效页面上的 ROBLOX 按钮无需账号即可使用;免费账号也可以在工作室导出(每天 3 个特效),并自行选择网格和贴图尺寸。现成模型(已配置发射器并附带播放脚本的 .rbxmx 文件)以及供 UI 使用的 UIFlipbook.luau,包含在所有方案中,价格从每月 $7.99 起。

将特效导入游戏

Roblox 设置页面介绍了所有设置以及两种使用方式:免费 PNG 或现成模型。按游戏类型浏览更多素材,请访问免费 Roblox VFX。导出前,也可以在工作室中修改任意特效,例如更改 Beam 的颜色或速度。

常见问题

Roblox 中的 Beam 纹理是什么?

Beam 使用的方形静态图像,上下边缘相匹配,因此 Beam 可以沿长度方向无缝重复并通过 TextureSpeed 滚动。图像高度沿 Beam 延伸,底边位于 Attachment0,宽度则横跨 Beam。

Roblox Beam 可以播放 Flipbook 吗?

不可以。Beam 只显示一张图像。动感来自 TextureSpeed 滚动,闪烁则可以通过脚本切换 Texture 或更改 Transparency 来实现。需要播放动画 Flipbook 时,请使用 ParticleEmitter。

为什么我的 Beam 纹理看起来被拉伸了?

TextureLength 与纹理形状不匹配。使用 TextureMode Wrap 时,将 TextureLength 设为 Width 乘以图像高度再除以图像宽度:对于方形纹理,TextureLength 就是 Width。

为什么我的 Beam 纹理是横着延伸的?

Roblox 会将 Beam 的纹理从底部映射到顶部,因此从左向右绘制的图像会横跨光束显示,而不是沿着光束延伸。将图像逆时针旋转四分之一圈(让右边缘朝上),或者从 ParticleFX Studio 导出,工具会自动为你旋转图像。

为什么我的光束只是一条纯色带?

尚未设置 Texture,或纹理尚未加载。粘贴图片 ID,格式为 rbxassetid://<id>;Roblox 也会审核新上传的内容,审核通过后才会在游戏中显示。

光束滚动方向不对。怎么翻转?

将 TextureSpeed 设为负值,或交换 Attachment0 和 Attachment1。

我可以在能赚取 Robux 的游戏中使用这些特效吗?

可以。导出的特效,包括从素材库开始制作的特效,都可以用于任何项目,包括商业游戏,无需注明出处。但不能将素材库本身作为特效包转售。

更多 Roblox VFX 指南