Roblox 火焰特效
Roblox 免费火焰特效:篝火、火把、燃烧角色、火焰陷阱、火焰龙卷风和喷火器 Flipbook,附带闪烁的 PointLight 和造成伤害的燃烧 Luau 脚本。
Roblox 内置 Fire 对象,其官方参考文档建议,想要制作更精细的效果时使用 ParticleEmitter。火焰最能体现两者的区别:内置火焰看起来都差不多,而 Flipbook 能在一个粒子中呈现有形状的火焰、余烬和烟雾。在旁边放一个 PointLight,火光也会照亮周围场景。
可用作起点的火焰特效
- 地图火焰:篝火和滚滚烟雾火把会循环播放,适用于营地、地牢和大厅。
- 危险区域:地面火焰危险效果适合用作燃烧的地面或熔岩坑边缘。在上方放置一个隐形 Part 来处理伤害。
- 角色身上:角色燃烧特效会在玩家或 NPC 身上循环播放,直到燃烧状态结束(见下文)。
- 攻击:火焰龙卷风适合用作火焰技能,黑焰炼狱适合用作终极技能,动漫火焰爆发适合动漫或卡通游戏。
- 喷射效果:喷火器喷流的朝向是向右喷射。Flipbook 始终面向摄像机,因此适合侧视角游戏,例如 2.5D 或横版卷轴游戏。
用火焰照亮场景
ParticleEmitter 不会照亮周围环境。同一 Part 中的 PointLight 可以做到这一点:将 Color 设为橙色,Range 设为 12 到 16 studs,并且每帧稍微改变 Brightness,让光线随火焰闪烁。
-- A Script inside the fire's part. In Properties, set its RunContext to Client.
local RunService = game:GetService("RunService")
local light = Instance.new("PointLight")
light.Color = Color3.fromRGB(255, 150, 70)
light.Range = 14
light.Shadows = true
light.Parent = script.Parent
RunService.RenderStepped:Connect(function()
local t = os.clock()
-- Two quick waves and some noise read as a living flame.
local flicker = math.sin(t * 7) * 0.25 + math.sin(t * 13.3) * 0.15
light.Brightness = 2 + flicker + math.noise(t * 4) * 0.4
end)Part 保持隐形(Transparency 1),这样光线看起来就像是从火焰中发出的。在客户端处理闪烁:它每帧都会变化,服务器没有理由把这些变化发送给每位玩家。
造成伤害的燃烧效果
燃烧是一种状态效果:它开始后,每半秒对角色造成少量伤害,最后结束。在服务器上运行该效果,因为角色生命值由服务器管理;并将特效焊接到角色身上,这样每位玩家都能看到角色燃烧。
local Debris = game:GetService("Debris")
local template = game.ReplicatedStorage.Effects:WaitForChild("Burning")
local function ignite(character: Model, seconds: number, damagePerTick: number)
local humanoid = character:FindFirstChildOfClass("Humanoid")
local root = character:FindFirstChild("HumanoidRootPart")
if not humanoid or not root or character:FindFirstChild("Burning") then return end
local fx = template:Clone()
fx.Anchored = false
fx.CFrame = root.CFrame
local weld = Instance.new("WeldConstraint")
weld.Part0 = root
weld.Part1 = fx
weld.Parent = fx
fx.Parent = character
Debris:AddItem(fx, seconds)
for _ = 1, math.floor(seconds / 0.5) do
task.wait(0.5)
if humanoid.Health <= 0 or not fx.Parent then break end
humanoid:TakeDamage(damagePerTick)
end
end
-- From your hit code: burn for 3 seconds, 5 damage every half second.
-- task.spawn(ignite, character, 3, 5)使用 task.spawn 调用它,这样循环就不会阻塞调用它的代码。检查是否已有名为 Burning 的 Part,可以防止两个燃烧效果叠加;角色有 ForceField 时,TakeDamage 不会生效,因此出生保护仍然有效。
火焰设置
- 发光:素材库中的大多数火焰都带有烟雾或深色余烬,因此导出时会关闭 Glow(LightEmission 0),让烟雾保持可见。若想要更明亮、纯发光的火焰,请在导出前于工作室中隐藏烟雾图层;如果剩下的每个图层都会发光,导出时就会自动启用 Glow。
- 夜间地图:发射器不受光照影响(LightInfluence 0),因此火焰在黑暗中仍然明亮,这正适合火焰效果。夜间看起来过亮的可能是烟雾;请参阅烟雾特效。
- 大小:火把火焰为 2 到 3 studs,篝火为 6 到 8,燃烧角色约为 6,火焰龙卷风为 15 及以上。
- 保持火焰竖直:火焰会向上升,因此将 Orientation 设为 FacingCameraWorldUp。使用默认的 FacingCamera 时,摄像机从上方向下看火焰,火焰会向后倾斜。
- 大量火把:每个火把都只用一个粒子,但有五十支火把的地牢仍然要绘制五十个 Flipbook。墙上火把使用 512 px 纹理,并将 1024 留给玩家近距离观看的火焰。
Flipbook PNG 免费提供:每个特效页面上的 ROBLOX 按钮无需账号即可使用;免费账号也可以在工作室导出(每天 3 个特效),并自行选择网格和贴图尺寸。现成模型(已配置发射器并附带播放脚本的 .rbxmx 文件)以及供 UI 使用的 UIFlipbook.luau,包含在所有方案中,价格从每月 $7.99 起。
将特效导入游戏
所有设置和两种导入方式、免费 PNG 或现成模型,都可以在 Roblox 设置页面查看。按游戏类型浏览更多精选内容,请前往 免费 Roblox VFX。导出前还可以在工作室中修改任意特效:把火焰改成蓝色、绿色或诅咒般的紫色。
常见问题
应该使用 Roblox Fire 对象还是 ParticleEmitter?
内置 Fire 对象用起来很快,但设置不多,外观也只有一种。Roblox 官方参考文档建议,制作更精细的效果时使用 ParticleEmitter;在其中使用 Flipbook,就能呈现按设计播放的特定形状火焰、余烬和烟雾。
如何让火焰照亮周围区域?
粒子不会投射光线。在同一个 Part 中放置一个 PointLight,将 Color 设为橙色、Range 设为 12 到 16 studs,再通过客户端脚本每帧稍微改变 Brightness,让光线闪烁。
如何让玩家燃烧并受到伤害?
在服务器上,将循环播放的火焰特效焊接到 HumanoidRootPart,并在燃烧期间每半秒调用一次 Humanoid:TakeDamage;燃烧结束后移除特效。
我可以在能赚取 Robux 的游戏中使用这些特效吗?
可以。导出的特效,包括从素材库开始制作的特效,都可以用于任何项目,包括商业游戏,无需注明出处。但不能将素材库本身作为特效包转售。







