ParticleEmitter
ParticleEmitter : Instance
Overview
다양한 속성을 활용해 입자 효과를 생성하고 표현할 수 있는 2D 파티클 생성 인스턴스입니다.
정상적으로 작동하려면 BasePart 또는 Attachment의 자식으로 설정되어야 합니다.
설정된 Rate 값에 따라 자동으로 입자가 방출되며, Emit() 메서드를 사용하여 수동으로 방출하거나, Clear() 메서드를 통해 현재 방출된 입자들을 초기화할 수 있습니다.
Properties
Acceleration
Vector3
파티클이 얼마나 빠르게 가속하거나 감속할지를 Vector3 값으로 지정합니다.
X, Y, Z 축 각각에 대해 가속도의 방향과 크기를 설정할 수 있으며, 기존에 생성된 파티클뿐만 아니라 이후 생성되는 파티클의 움직임에도 영향을 줍니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Acceleration = Vector3.new(0, 500, 0)
Brightness
number
파티클에서 방출된 광원의 밝기를 지정하는 속성입니다.
Code Samples
Color
ColorSequence
파티클이 살아 있는 동안 어떤 색상으로 점진적으로 표시될지 ColorSequence를 이용하여 설정할 수 있습니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Color = ColorSequence.new(Color3.fromRGB(255, 0, 0))
Drag
number
파티클이 이동하는 동안 얼마나 빠르게 속도가 줄어들지를 제어하는 속성으로, 지수 감쇠 방식으로 적용됩니다.
음수 값은 지원하지 않습니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Drag = 0.5
Enabled
bool
파티클의 표시 여부를 지정하는 속성입니다.
방출된 입자가 남아있는 상태에서 Enabled를 false로 변경하면 즉시 사라집니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Enabled = false
EmissionDirection
Enum.NormalId
부모 파트의 어떤 면을 기준으로 방출될지를 지정하는 속성입니다.
만약 Speed가 음수로 설정되어 있다면 파티클은 해당 면의 반대 방향으로 방출됩니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.EmissionDirection = Enum.NormalId.Right
FlipbookFramerate
NumberRange
파티클에 적용된 플립북 애니메이션이 얼마나 빠르게 재생될지를 지정하는 속성입니다.
초당 프레임 단위로 설정되며, 최소 및 최대 값을 각각 지정하면 각 파티클마다 재생 속도를 랜덤하게 설정할 수 있습니다.
Code Samples
FlipbookLayout
Enum.ParticleFlipbookLayout
파티클에 적용된 텍스처가 어떤 방식으로 프레임에 배치되어 있는지를 정의하는 속성으로, 텍스처를 격자 형태로 나누어 순차적으로 재생하는 플립북 애니메이션을 구성합니다.
None: 텍스처는 단일 이미지로 유지되며 애니메이션 없이 고정된 모습으로 표시됩니다.
Grid2x2: 텍스처를 2x2 구조로, 총 4프레임으로 나누어 애니메이션을 구성합니다.
Grid4x4: 텍스처를 4x4 구조로, 총 16프레임으로 나누어 애니메이션을 구성합니다.
Grid8x8: 텍스처를 8x8구조로, 총 64프레임으로 나누어 애니메이션을 구성합니다.
Code Samples
local ParticleEmitter = script.Parent
print(ParticleEmitter.FlipbookLayout)
FlipbookMode
Enum.ParticleFlipbookMode
플립북 애니메이션이 어떤 방식으로 재생될지를 정의하는 속성으로, 각 모드는 파티클의 연출 목적에 따라 다양하게 활용할 수 있습니다.
Loop: 기본적인 순환 애니메이션으로, 파티클이 살아 있는 동안 계속해서 프레임을 순차 재생합니다.
OneShot: 한 번만 재생되며 반복되지 않기 때문에, 폭발이나 번쩍이는 효과처럼 단발성 효과에 적합합니다. 이 모드에서는 프레임 속도를 별도로 설정하지 않아도 자동으로 파티클 수명에 맞게 재생됩니다.
PingPong: 프레임이 앞뒤로 왕복하며 재생되어 자연스럽고 반복적인 움직임을 만들어낼 수 있습니다.
Random: 각 프레임을 무작위로 보여주면서 프레임 간 부드러운 전환 효과도 제공하므로, 별빛이나 불꽃처럼 섬세하고 변화무쌍한 입자 표현에 활용됩니다.
Code Samples
local ParticleEmitter = script.Parent
print(ParticleEmitter.FlipbookMode)
FlipbookStartRandom
bool
파티클이 생성될 때 항상 애니메이션의 시작 프레임에서 재생될지, 아니면 랜덤한 프레임에서 시작할지를 설정하는 속성입니다.
FlipbookFramerate를 0으로 설정하고 이 속성을 true로 설정하면, 각 파티클이 서로 다른 프레임을 고정된 상태로 표시하게 되어, 정적인 무작위 이미지를 연출할 수 있습니다.
Code Samples
LifeTime
NumberRange
파티클이 생성된 후 얼마 동안 유지될지를 최소값과 최대값 범위로 설정하는 속성입니다.
값을 변경해도 기존 파티클에는 영향을 주지 않고, 이후 생성되는 파티클부터 변경된 값이 적용됩니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Lifetime = NumberRange.new(1, 1)
LightEmission
number
파티클의 색상이 배경과 어떤 방식으로 시각적으로 섞일지를 제어하는 속성입니다.
0으로 설정하면 기본적인 반투명 처리(알파 블렌딩)가 적용되며, 1로 설정하면 색상이 화면에 더해지는 형식의 밝은 효과(가산 블렌딩)가 나타납니다.
이 값은 이미 방출된 파티클에도 실시간으로 적용됩니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.LightEmission = 0.5
Orientation
Enum.ParticleOrientation
파티클이 화면에 어떤 방향으로 배치될지를 정의하는 속성입니다.
Facing Camera: 파티클이 항상 카메라(플레이어가 보는 방향)를 향하도록 정렬합니다.
Facing Camera World Up : 파티클이 카메라를 향하지만, 파티클의 위쪽은 항상 월드 좌표의 위쪽(Y축)을 유지합니다.
Velocity Parallel: 파티클이 이동하는 속도 벡터와 평행하게 정렬합니다.
Velocity Perpendicular: 파티클이 이동하는 속도 벡터에 수직으로 정렬합니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Orientation = Enum.ParticleOrientation.FacingCameraWorldUp
Rate
number
파티클이 얼마나 자주 생성될지를 정의하는 속성으로, 값이 클수록 더 많은 파티클이 짧은 시간 안에 방출됩니다.
값을 변경해도 기존 파티클에는 영향을 주지 않고, 이후 생성되는 파티클부터 변경된 값이 적용됩니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Rate = 20
RotSpeed
number
파티클이 생성될 때 얼마만큼의 속도로 회전할지를 설정하는 속성입니다.
이 값은 이미 방출된 파티클에도 실시간으로 적용됩니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.RotSpeed = 3
Rotation
NumberRange
파티클이 생성될 때 어떤 각도로 회전된 상태로 나타날지를 설정하는 속성입니다.
설정된 각도 범위 안에서 무작위 값이 선택되어 파티클에 적용되며, 일반적으로 (0, 360)처럼 전체 회전 범위를 지정하면 파티클들이 각기 다른 방향으로 보이게 되어 더 자연스럽고 흩어진 느낌을 줄 수 있습니다.
값을 변경해도 기존 파티클에는 영향을 주지 않고, 이후 생성되는 파티클부터 변경된 값이 적용됩니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Rotation = NumberRange.new(0, 360)
Shape
Enum.ParticleEmitterShape
파티클이 어떤 형상의 영역 내에서 생성될지를 지정하는 속성으로, 박스형, 구형, 원통형, 원반형 중 하나를 선택할 수 있습니다.
선택한 형태를 기준으로 파티클이 퍼져나가며, 이후 ShapeStyle, ShapeInOut, ShapePartial 속성들을 조합하면 방향, 범위, 안팎으로의 방출 등 다양한 세부 설정이 가능합니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Shape = Enum.ParticleEmitterShape.Cylinder
ShapeInOut
Enum.ParticleEmitterShapeInOut
파티클이 방출 영역의 외부로만 나갈지, 내부로만 향할지를 지정하는 속성입니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.ShapeInOut = Enum.ParticleEmitterShapeInOut.InWard
ShapeStyle
Enum.ParticleEmitterShapeStyle
파티클이 선택한 모양(Shape)의 모든 지점에서 생성될지, 아니면 해당 모양의 표면에서만 생성될지를 결정합니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.ShapeStyle = Enum.ParticleEmitterShapeStyle.Volume
Size
NumberSequence
파티클의 점진적인 크기 변화를 ColorSequence를 이용하여 설정할 수 있습니다.
NumberSequence를 사용해 크기를 단계별로 설정하면, 파티클이 생성될 때는 작았다가 점점 커지거나, 반대로 생성 직후 크고 점차 줄어드는 식의 효과를 구현할 수 있습니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Size = NumberSequence.new(0.5)
Speed
NumberRange
파티클이 생성될 때 얼마나 빠르게, 그리고 어떤 방향으로 이동을 시작할지를 지정하는 속성입니다.
설정된 범위 안에서 무작위 값이 선택되어 파티클의 속도에 적용되며, 음수로 설정하면 지정된 방출 방향의 반대쪽으로 움직이게 됩니다.
값을 변경해도 기존 파티클에는 영향을 주지 않고, 이후 생성되는 파티클부터 변경된 값이 적용됩니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Speed = NumberRange.new(1000, 1200)
SpreadAngle
number
파티클이 생성될 때 적용할 무작위 각도를 지정하는 속성입니다.
예를 들어 +Y 방향으로 발사되도록 설정했더라도, SpreadAngle 값을 이용하면 위로 향하는 각도에 X/Z 축 기준의 퍼짐 효과가 더해져 자연스러운 분산 연출이 가능합니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.SpreadAngle = 90
Squash
NumberSequence
파티클의 가로와 세로 크기를 서로 다른 비율로 점진적으로 조절하는 속성입니다.
양수 값을 설정하면 가로로 넓어지면서 세로 길이가 줄어들고, 음수 값을 설정하면 파티클이 세로로 늘어나면서 가로 폭이 줄어듭니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Squash = NumberSequence.new(5)
Texture
string
파티클에 표시될 이미지를 설정하는 속성입니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Texture = "ovdrassetid://1234"
Transparency
NumberSequence
파티클의 투명도 변화를 점진적으로 설정하는 속성입니다.
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter.Transparency = NumberSequence.new(0.8)
Methods
Clear
생성된 모든 파티클을 한 번에 삭제하는 기능을 제공합니다.
이를 활용하면 특정 이벤트 시 남아 있는 입자를 깔끔하게 정리하거나, 새로운 효과를 시작하기 전에 화면을 초기화할 수 있습니다.
Parameters
Return
void
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter:Clear()
Emit
지정한 수의 파티클을 동시에 생성하는 기능을 제공합니다.
Rate 속성기반의 자동 방출과 달리, 호출 시점에 맞춰 즉각적으로 파티클이 생성되므로 폭발, 번쩍임, 충돌 효과처럼 특정 이벤트에 맞춘 연출에 적합합니다.
Parameters
number
ParticleCount
생성할 파티클의 개수입니다.
Return
void
Code Samples
local ParticleEmitter = script.Parent
ParticleEmitter:Emit(30)
Events
See also
VFXLast updated