Roblox용 화염 VFX
Roblox용 무료 화염 이펙트입니다. 모닥불, 횃불, 불타는 캐릭터, 화염 함정, 화염 회오리와 화염방사기를 플립북으로 만들고, 깜박이는 PointLight와 피해를 주는 화상용 Luau 코드도 제공합니다.
Roblox에는 기본 Fire 오브젝트가 있으며, Roblox 자체 레퍼런스에서는 더 섬세한 효과에 ParticleEmitter를 사용할 것을 권장합니다. 기본 화염은 모두 비슷하게 보이기 때문에 화염 이펙트에서 차이가 특히 두드러집니다. 플립북을 사용하면 형태가 뚜렷한 불꽃, 불씨와 연기를 하나의 파티클에 담을 수 있습니다. 옆에 PointLight를 배치하면 주변 장면도 화염빛으로 밝힐 수 있습니다.
시작하기 좋은 화염 이펙트
- 맵의 불: Rolling Smoke가 있는 모닥불과 Smoking Torch는 계속 반복 재생되므로 캠프, 던전과 로비에 적합합니다.
- 위험 요소: Ground Fire Hazard는 불타는 바닥이나 용암 웅덩이 가장자리에 사용할 수 있습니다. 그 위에 투명한 파트를 배치해 피해를 처리하세요.
- 캐릭터에 적용: 플레이어나 NPC가 불타는 동안 Burning을 반복 재생합니다(아래 참조).
- 공격: Fire Tornado는 화염 능력에, Black Flame Inferno는 필살기에, Anime Fire Burst는 애니메이션이나 만화풍 게임에 적합합니다.
- 분사형: Flamethrower Stream은 오른쪽을 향해 발사되는 모습으로 그려집니다. 플립북은 항상 카메라를 향하므로 2.5D 또는 횡스크롤 게임처럼 측면 시점인 게임에 적합합니다.
화염으로 장면 밝히기
ParticleEmitter는 주변에 빛을 비추지 않습니다. 같은 파트에 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)파트는 투명 상태(Transparency 1)를 유지하므로 빛이 불꽃에서 나오는 것처럼 보입니다. 깜박임은 클라이언트에서 처리하세요. 매 프레임 바뀌는 값이며, 서버가 모든 플레이어에게 이를 전송할 이유는 없습니다.
피해를 주는 화상
화상은 상태 효과입니다. 화상이 시작되고, 캐릭터가 0.5초마다 조금씩 피해를 입다가 끝납니다. 체력은 서버가 관리하므로 서버에서 실행하고, 모든 플레이어가 불타는 모습을 볼 수 있도록 이펙트를 캐릭터에 용접하세요.
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이라는 이름의 파트가 이미 있는지 확인해 화상이 중첩되지 않도록 합니다. 캐릭터에게 ForceField가 있으면 TakeDamage가 아무 효과도 내지 않으므로 스폰 보호도 작동합니다.
화염 설정
- Glow: 라이브러리의 대부분의 화염에는 연기나 어두운 불씨가 포함되어 있으므로 Glow를 끈 상태(LightEmission 0)로 내보내 연기가 잘 보이도록 합니다. 더 밝고 빛나는 화염만 원한다면 내보내기 전에 스튜디오에서 연기 레이어를 숨기세요. 남은 레이어가 모두 빛을 더하면 내보낼 때 Glow가 자동으로 켜집니다.
- 야간 맵: 이 이미터는 빛의 영향을 받지 않으므로(LightInfluence 0) 어둠 속에서도 불꽃이 밝게 유지됩니다. 화염에는 적합한 설정입니다. 밤에 너무 밝아 보일 수 있는 것은 연기입니다. 연기 VFX를 참조하세요.
- 크기: 횃불 불꽃은 2~3 studs, 모닥불은 6~8, 불타는 캐릭터는 약 6, 화염 회오리는 15 이상으로 설정하세요.
- 수직으로 솟는 불꽃: 화염은 위로 올라가므로 Orientation을 FacingCameraWorldUp으로 설정하세요. 기본값인 FacingCamera를 사용하면 카메라가 불꽃을 내려다볼 때 불꽃이 뒤로 기울어집니다.
- 횃불 여러 개: 횃불 하나는 파티클 하나지만, 횃불이 50개 있는 던전에서는 플립북도 50개를 그립니다. 벽에 거는 횃불에는 512 px 텍스처를 사용하고, 플레이어가 가까이 다가가는 화염에는 1024를 사용하세요.
플립북 PNG는 무료입니다. 각 이펙트 페이지의 ROBLOX 버튼은 계정 없이 사용할 수 있고, 무료 계정으로 스튜디오에서 원하는 그리드와 텍스처 크기를 선택해 내보낼 수도 있습니다(하루 3개 이펙트). 이미터가 설정되어 있고 재생 스크립트가 포함된 .rbxmx 준비 모델과 UI용 UIFlipbook.luau는 월 $7.99부터 모든 플랜에서 제공됩니다.
게임에 적용하기
모든 설정과 두 가지 적용 방법, 무료 PNG 또는 바로 사용할 수 있는 모델은 Roblox 설정 페이지에 있습니다. 장르별 추천 이펙트는 무료 Roblox VFX에서 확인하고, 내보내기 전에 스튜디오에서 원하는 이펙트의 불꽃을 파란색, 초록색 또는 저주받은 듯한 보라색으로 바꿔 보세요.
자주 묻는 질문
Roblox Fire 오브젝트와 ParticleEmitter 중 무엇을 사용해야 하나요?
기본 Fire 오브젝트는 설정이 몇 가지뿐이고 모양도 하나라 빠르게 사용할 수 있습니다. Roblox 자체 레퍼런스에서는 더 섬세한 작업에 ParticleEmitter를 권장합니다. 여기에 플립북을 사용하면 디자인한 그대로 재생되는 형태가 뚜렷한 불꽃, 불씨와 연기를 만들 수 있습니다.
화염으로 주변을 밝히려면 어떻게 해야 하나요?
파티클은 빛을 내지 않습니다. 같은 파트에 주황색 Color와 12~16 studs의 Range를 설정한 PointLight를 넣고, 클라이언트 스크립트에서 매 프레임 Brightness를 조금씩 바꿔 빛이 깜박이게 하세요.
플레이어가 불타면서 피해를 입게 하려면 어떻게 해야 하나요?
서버에서 반복되는 불 이펙트를 HumanoidRootPart에 용접하고, 화상 효과가 지속되는 동안 0.5초마다 Humanoid:TakeDamage를 호출한 다음, 화상 효과가 끝나면 이펙트를 제거합니다.
Robux를 버는 게임에서 이 이펙트를 사용할 수 있나요?
네. 라이브러리에서 시작한 이펙트를 포함해 내보낸 이펙트는 상업용 게임을 포함한 모든 프로젝트에서 출처 표시 없이 사용할 수 있습니다. 라이브러리 자체를 이펙트 팩으로 재판매하는 것은 허용되지 않습니다.







