ParticleEmitter 는 세계에 사용자 정의 2D 입자를 발생시키는 특수 개체입니다. 입자를 발생하려면 부모가 되는 BasePart 또는 Class.
에미터가 Enabled 와 함께 비-Zero Rate 를 가지고 있거나 수동으로 에미터 메서드 Class.Part
기본적으로 입자는 카메라를 직면하지만 Orientation 을 수정하면 입자 속도를 존중하여 수정할 수 있습니다.
입자의 수명 동안 Lifetime
입자 방출기를 만들고 사용자 정의하는 방법에 대해서는 입자 방출기를 참조하십시오.
코드 샘플
local emitter = Instance.new("ParticleEmitter")
-- Number of particles = Rate * Lifetime
emitter.Rate = 5 -- Particles per second
emitter.Lifetime = NumberRange.new(1, 1) -- How long the particles should be alive (min, max)
emitter.Enabled = true
-- Visual properties
emitter.Texture = "rbxassetid://1266170131" -- A transparent image of a white ring
-- For Color, build a ColorSequence using ColorSequenceKeypoint
local colorKeypoints = {
-- API: ColorSequenceKeypoint.new(time, color)
ColorSequenceKeypoint.new(0, Color3.new(1, 1, 1)), -- At t=0, White
ColorSequenceKeypoint.new(0.5, Color3.new(1, 0.5, 0)), -- At t=.5, Orange
ColorSequenceKeypoint.new(1, Color3.new(1, 0, 0)), -- At t=1, Red
}
emitter.Color = ColorSequence.new(colorKeypoints)
local numberKeypoints = {
-- API: NumberSequenceKeypoint.new(time, size, envelop)
NumberSequenceKeypoint.new(0, 1), -- At t=0, fully transparent
NumberSequenceKeypoint.new(0.1, 0), -- At t=.1, fully opaque
NumberSequenceKeypoint.new(0.5, 0.25), -- At t=.5, mostly opaque
NumberSequenceKeypoint.new(1, 1), -- At t=1, fully transparent
}
emitter.Transparency = NumberSequence.new(numberKeypoints)
emitter.LightEmission = 1 -- When particles overlap, multiply their color to be brighter
emitter.LightInfluence = 0 -- Don't be affected by world lighting
-- Speed properties
emitter.EmissionDirection = Enum.NormalId.Front -- Emit forwards
emitter.Speed = NumberRange.new(0, 0) -- Speed of zero
emitter.Drag = 0 -- Apply no drag to particle motion
emitter.VelocitySpread = NumberRange.new(0, 0)
emitter.VelocityInheritance = 0 -- Don't inherit parent velocity
emitter.Acceleration = Vector3.new(0, 0, 0)
emitter.LockedToPart = false -- Don't lock the particles to the parent
emitter.SpreadAngle = Vector2.new(0, 0) -- No spread angle on either axis
-- Simulation properties
local numberKeypoints2 = {
NumberSequenceKeypoint.new(0, 0), -- At t=0, size of 0
NumberSequenceKeypoint.new(1, 10), -- At t=1, size of 10
}
emitter.Size = NumberSequence.new(numberKeypoints2)
emitter.ZOffset = -1 -- Render slightly behind the actual position
emitter.Rotation = NumberRange.new(0, 360) -- Start at random rotation
emitter.RotSpeed = NumberRange.new(0) -- Do not rotate during simulation
-- Create an attachment so particles emit from the exact same spot (concentric rings)
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 5, 0) -- Move the attachment upwards a little
attachment.Parent = script.Parent
emitter.Parent = attachment
요약
속성
모든 활성 입자의 전체 축 가속을 결정하고, 초당 스터드당 측정됩니다.
Class.ParticleEmitter.LightInfluence가 0인 경우 에미터에서 방출되는 빛을 조정합니다.
개별 수명에 대한 모든 활성 입자의 색을 결정합니다.
입자가 절반 속도를 잃을 때의 속도 손실 속도를 결정합니다.
입자가 방출하는 개체의 얼굴을 결정합니다.
에미터에서 방출되는 입자를 결정합니다.
프레임 당 플립북 텍스처 애니메이션의 속도를 결정합니다.
Class.ParticleEmitter.Texture|Texture 이 플립북에 호환되지 않으면 표시하는 오류 메시지입니다.
플립북 텍스트 레이아웃을 결정합니다. 아무 것도, 그리드2x2, 그리드4x4 또는 그리드8x8여야 합니다.
리플북 애니메이션의 유형을 결정합니다. 루프, 원샷, 핑퐁 또는 랜덤이어야 합니다.
모든 프레임에서 항상 프레임 0에 시작하는 대신 랜덤 프레임에서 애니메이션이 시작되는지 여부를 결정합니다.
새로 생성된 입자에 대한 랜덤 연령을 정의합니다.
입자 색상이 뒤에 있는 색상과 얼마나 혼합되는지 결정합니다.
환경 조명에 의해 영향을 받는 입자의 양을 결정합니다.
방출되는 부품과 함께 입자가 얼마나 단단하게 이동하는지 결정합니다.
입자를 정렬하는 방법을 지정합니다.
초당 방출되는 입자 수를 결정합니다.
초당 초기 속도 측정 단위인 도를 사용하여 방출된 입자의 각도 속도를 결정합니다.
새로 생성된 입자의 회전 범위를 결정합니다.
방출기의 모양을 상자, 구, 실린더 또는 디스크로 설정합니다.
입자가 나가거나 들어가거나 두 방향으로 방출하는지 여부를 설정합니다.
실린더, 디스크, 구, 상자 모양의 입자 방출에 영향을 미칩니다.Influences particle emission from cylinder, disc, sphere, and box shapes.
입자 방출을 음이 아닌 음이나 표면 전용 음으로 설정합니다.
개별 입자의 수명에 대한 세계 크기를 결정합니다.
초당 스터드(최소값에서 최대값)에 따라 새로운 입자가 방출하는 랜덤한 범위(최소값에서 최대값)를 결정합니다.
입자가 무작위로 방출되는 각도를 정의합니다.
입자의 비정규 크기 조정을 허용하고 수명 동안 곡선을 통제합니다.Allows for non-uniform scaling of particles, curve-controlled over their lifetime.
입자에 대해 렌더링할 이미지를 결정합니다.
입자 효과 속도를 조정하는 값은 0에서 1 사이입니다.
개별 수명에 대한 입자의 투명도를 결정합니다.
부모의 속도를 입자가 방출할 때 상속하는 부분을 결정합니다.
방출되는 입자가 Workspace.GlobalWind 벡터를 따릅니까?
입자의 앞/뒤 렌더링 위치를 결정합니다. 입자가 맨 위/맨 아래에서 렌더링되는지 제어합니다.
메서드
방출된 모든 입자를 제거합니다.
지정된 수의 입자를 생성합니다.
속성
Acceleration
Acceleration 속성은 입자의 수명에 걸쳐 Speed 가 어떻게 변경되는지 결정합니다. 이는 Vector3 를 사용하여 가속을 결정하는데
Acceleration will slow particles down if the vector points in the opposite EmissionDirection in which they emitted. Otherwise, it will speed them up.
Color
색 속성은 모든 활성 입자의 개별 수명에 걸쳐 적용되는 모든 색을 결정합니다. 색은 렌더링 시 Texture 에 적용되며, 이는 이미터의
이 속성을 변경하면 현재와 미래의 모든 입자가 에미터에 의해 방출됩니다.
이 속성이 그라디언트를 사용할 때, 입자의 현재 색상은 입자의 나이와 총 수명을 선형으로 인터폴레이션하여 결정됩니다. 예를 들어, 입자가 2초 전에 생성되었으며 총 수명이 4초인 경우, 색상은 입자의 50%를 통과하는 길이를 가진
EmissionDirection
EmissionDirection 속성은 발생하는 부모 개체의 얼굴( Class.ParticleEmitter.Speed|Speed)을 결정합니다. 부정적인 Class.ParticleEmitter.Speed|Speed 는 입자가 방출하는 반대 방향으로 입자가 방출합니다. 1> Class.ParticleEmitter.SpreadAngle|SpreadAngle1> 는
Class.ParticleEmitter 를 Attachment 에 추가하면 방향이 있는 경우 해당 부착물 자체를 회전하여 해결할 수 있습니다(Attachment.Orientation). Korean: Class.ParticleEmitter 를 Class.Attachment 에 추가하면 해당 부착물 자체를 회전하여 해결할 수 있습니다( Class
Enabled
설정 을 사용하면 입자가 발생하는 에미터에서 입자를 발생시키는지 여부를 결정합니다. 이 속성을 false false 로 설정하면 입자 생성을 중지할 수 있지만, 기존 입자는 만료될 때까지 활성으로 유지됩니다. 이 속성은 입자 효과를 사용하여 비활성화하려는
비활성 에미터에서 모든 입자를 제거하려면 Class.ParticleEmitter:Clear()|Clear()를 호출하십시오. 그런 다음, 원하는 경우 에미터에서 Emit()를 호출하여 입자를 제거하고 렌더링하십시오.
FlipbookFramerate
FlipbookFramerate 속성은 프레임당 초당 프레임 속도에 대해 결정합니다. Lifetime 와 마찬가지로, 프레임당 최소 및 최대 범위를 설정하여 프레임 속도를 무작위로 변경할 수 있습니다. 최대 30개의 프레임이 있는 경우).
FlipbookIncompatible
Class.ParticleEmitter.Texture|Texture 이 플립북에 호환되지 않으면 표시 오류 메시지가 표시됩니다. 플립북 텍스처는 8×8, 16×16, 32×32, 64×64, 128×128, 256×256, 512×512, 또는 1
FlipbookLayout
FlipbookLayout 속성은 텍스트 레이아웃을 결정합니다. 그것은 Enum.ParticleFlipbookLayout 열거형의 어느 값이든 될 수 있습니다.
- 없음 – 플립북 기능을 비활성화하고 텍스처를 입자 수명 전체에 단일 정적 텍스처로 사용합니다.
- Grid2x2 – 4-프레임 애니메이션용 2×2 프레임.
- Grid4x4 – 16개의 프레임을 위한 4×4 애니메이션.
- Grid8x8 – 64개 프레임 애니메이션용 8×8 프레임.
FlipbookMode
FlipbookMode 속성은 플립북 애니메이션의 유형을 결정합니다. 열거형 Enum.ParticleFlipbookMode의 값을 모두 포함할 수 있습니다.
- 루프: – 마지막 프레임을 플레이한 후 첫 번째 프레임으로부터 계속 재생합니다.
- 원샷 – 프레임 속성은 입자의 수명 동안 단 한 번만 애니메이션을 플레이합니다. 이 설정으로 Class.ParticleEmitter.FlipbookFramerate|
- PingPong – 첫 번째 프레임에서 마지막 프레임으로 플레이하고, 마지막으로 첫 번째로 되돌리고, 입자의 Lifetime 전체에 걸쳐 반복합니다.
- 랜덤 – 프레임을 랜덤 순서로 플레이하고 한 프레임에서 다른 프레임으로 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 섬세하게 ��
FlipbookStartRandom
FlipbookStartRandom 속성은 각 입자가 항상 첫 번째 프레임에 시작하는 대신 랜덤 프레임으로 시작하는지 여부를 결정합니다. 한 사용 사례는 이 속성을 활성화하고 FlipbookFramerate 를 랜덤로 설정하여
Lifetime
수명력 속성은 새로 발생한 입자에 대한 최대 및 최소 나이를 정의합니다. 수명은 각 입자에 대해 순차적으로 선택된 생성 시간에 저장됩니다. 0 순차 기반 수명은 모든 입자를 비활성화합니다.
LightEmission
LightEmission 속성은 배경색과 색상 Class.ParticleEmitter.Texture|Texture 색상 사이의 혼합을 결정합니다. 0 값은 일반 혼합 모드를 사용하며 1 값은 추가 혼합 모드를 사용합니다. 변경하면 이 속성은 현재 및 미래의 모든 입자에 영향을 즉시 미칩니다.
이 속성은 LightInfluence 에 의해 결정된 환경 조명에 의해 입자가 어떻게 영향을 받는지 결정하지 않아야 합니다.
이 속성은 입자가 환경을 둘러싸게 하지 않도록 합니다. 이를 달성하려면 Class.PointLight를 사용하십시오.
LightInfluence
LightInfluence 속성은 렌더링할 때 개별 입자의 색을 결정하는 환경 조명의 양을 결정합니다. 범위는 0-1 범위입니다. 범위 외의 값은 동작을 정의하지 않습니다. 0에서는 입자가 조명에 영향을 받지 않습니다(완전히 밝게 유지됨). 1에서는
기본적으로 이 값은 Studio 도구를 사용하여 삽입하는 경우 1이 됩니다. Instance.new() 를 사용하여 삽입하는 경우 0이 됩니다.
LocalTransparencyModifier
LockedToPart
Class.ParticleEmitter 클래스에 속성 Attachment 이 있는 경우 입자가 발생 원본(BasePart 또는 1> Class.BasePart1>에 스틱하는지 여부를 결정합니다. 활성 입자는 부모 개체가 이동하는 잠금 단계에 따
또한, 일부 효과에 적합하도록 속도 상속자 값이 1인 <Class.ParticleEmitter.VelocityInheritance|VelocityInheritance> 속성을 사용하는 것을 고려하십시오.
Orientation
지향성 속성은 방출자의 입자 기하구조에 대해 사용할 지향 모드를 결정합니다.
<tbody><tr><td><b>얼굴 카메라</b></td><td>기본 카메라 얼굴 광고 쿼드; 기본 동작.</td></tr><tr><td><b>페이셜 카메라 월드업</b></td><td>카메라를 바라보고 있지만 세로 상승 세계 <b>Y</b> 축을 중심으로 회전합니다.</td></tr><tr><td><b>VelocityParallel</b></td><td>이동 방향과 맞춤.</td></tr><tr><td><b>VelocityPerpendicular</b></td><td>그들의 방향 이동에 맞춰 정렬됩니다.</td></tr></tbody>
지향성 | 입자 동작 |
---|
Rate
Rate 속성은 발생기가 Enabled 인 경우 초당 발생하는 입자 수를 결정합니다. 이것은 주파수의 반대이며, 즉 5 개의 입자가 0.2초마다 발생합니다. 이 속성을 변경하면 이 속성은 어떤 활성 입자에도 영향을 미치지 않습니다.
RotSpeed
RotSpeed 속성은 초당 초기 방출된 입자에 대한 무작위 각도의 속도를 결정합니다. 무작위 각도의 속도는 방출 시 선택되며, 이 속성을 변경하면 활성 입자에 영향을 주지 않습니다. 이 속성과 Rotation 간의 각도 간의 각도 간의 각도 간의
매우 높은 각도 속도를 가진 입자는 회전이 더 느리거나 아예 회전하지 않을 수 있습니다, 회전 각도가 소프트웨어 렌더링 속도와 동기화되기 때문입니다. 예를 들어, 각도가 360도 마다 정확히 회전하는 경우 회전에 대한 변경은 없습니다.
Rotation
회전 속성은 새로 생성된 입자에 대한 회전 범위를 정의합니다. 이 속성은 시계 방향으로 정의됩니다. 양수 값은 새로운 입자에 대한 완전히 무작위 회전을 제공하기 위해 [0, 360] 로 설정됩니다.
이 값에 변경 사항을 적용하면 새로운 입자에만 적용됩니다. 기존 입자는 원래 방출된 때의 회전을 유지합니다.
모양 속성은 에미터의 모양을 상자, 구, 실린더 또는 디스크로 설정합니다. 선택을 하면 ShapeStyle , Class.ParticleEmitter.ShapeInOut|ShapeInOut
ShapePartial
Class.ParticleEmitter.Shape|Shape 값에 따라 이 속성은 다른 액션수행합니다.
실린더의 경우 상위 반지 비율을 지정합니다. 0의 값은 실린더의 상위 반지가 0인 것을 의미하므로 콘이 됩니다. 1의 값은 실린더의 상피가 변형되지 않습니다.
디스크에 대해 내부 반경 비율을 지정합니다. 0의 값은 디스크가 완전히 닫힌 상태를 나타내며(원/타원형), 1의 값은 디스크의 외부 면에서만 방출이 발생합니다. 0과 1 사이의 값은 특정 두께의 원에서 나옵니다.
구체의 경우, 그것은 입자가 방출하는 쌍극자 각도를 지정합니다. 값 1은 입자가 전체 구체에서 방출하는 것을 의미합니다; 값 0.5는 입자가 반픽셀에서 방출하는 것을 의미합니다; 값 0은 입자가 단일 지점에서만 방출합니다.
시각적 예시는 여기에 참조하십시오.
Size
크기 속성은 모든 활성 입자의 개별 수명에 걸쳐 전 세계 크기를 결정합니다. 이 속성은 각 입자의 Class.ParticleEmitter.Texture|Texture 차원을 나타냅니다. 이 속성은 Texture 와 같이 작동하며 Class.ParticleEmitter.Transparency|Transparency
입자의 현재 크기는 입자의 나이와 총 수명을 사용하여 이 시퀀스에서 직선적으로 인터폴레이션하여 결정됩니다. 예를 들어, 입자가 2초 전에 생성되었으며 총 수명이 4초인 경우,
Speed
속도 속성은 주어진 속도(최소값에서 최대값)에 따라 새로운 입자가 방출하는 속도를 결정합니다(측정값은 초당 스터드). 각 입자의 속도는 방출 시 선택되며 적용 사항은 Class.ParticleEmitter.EmissionDirection|EmissionDirection 입니다. 부정수 값은 입자가 역방향으로 이동하게 합니다.
Class.ParticleEmitter.Speed|Speed를 변경하면 활성 입자에는 영향을 주지 않지만 이미 가진 속도를 유지합니다. 그러나 Acceleration , Drag 및 1>Class.
SpreadAngle
SpreadAngle 속성은 입자가 방출되는 무작위 각도를 결정합니다. 예를 들어, EmissionDirection 이 상단 (+ 1>Y1>)이면 이 4>Datatype.Vector2</
하나의 축을 360으로 설정하면 입자가 원의 모든 방향으로 방출됩니다. 둘 다를 360으로 설정하면 입자가 원의 모든 방향으로 방출됩니다.
Squash
특성의 크기를 조정하는 것이 아닌 경우 모든 크기를 조정할 수 있습니다. 특성의 크기를 조정하는 것은 모든 크기를 조정하는 것보다 작거나 같습니다. 값이 0보다 작으면 특성의 크기를 조정하는 것이 모든 크기를 조정하는 것보다 작습니다.
Texture
텍스처 속성은 입자에 대해 렌더링되는 이미지를 결정합니다. 이 이미지는 Class.ParticleEmitter.Color|Color, Color, Transparency 및 2>
Transparency
투명도 속성은 모든 활성 입자의 개별 수명에 대해 투명도를 결정합니다. 시간에 따라 입자에 영향을 미치는 Class.ParticleEmitter.Size|Size와 같은 작동 방식을 사용합니다. 렌더링 측면에서 0은 완전히 보이지 않고 1은 완전히 보이지 않습니다.
입자의 현재 투명도는 입자의 나이와 총 수명을 사용하여 이 시퀀스에서 직선적으로 인터폴레이션하는 방식으로 결정됩니다. 예를 들어, 입자가 2초 전에 생성되었으며 총 수명
VelocityInheritance
VelocityInheritance 속성은 부모 부품의 Class.BasePart.Velocity|Velocity 가 얼마나 많은 속도를 입자가 방출할 때 상속하는지 결정합니다. 값 0은 속도가 상속되지 않음을 나타내고 값 1은 입자가 부모 부품의 Velocity 와 정확히 같은
Class.ParticleEmitter.Drag|Drag 와 함께 사용할 때 입자 에미터는 이동 부품에서 입자를 "흘려주는" 것처럼 보일 수 있습니다.
ZOffset
ZOffset 속성은 크기를 변경하지 않고 스터드 단위의 입자 앞-뒤 렌더링 위치를 결정합니다. 이 속성은 현재 및 미래의 모든 입자에 영향을 줍니다. 이 속성은 소수 값을 수락합니다; 그것은 GuiObject.ZIndex (정수)와 같은 것이 아닙
긍정 값은 카메라에 더 가까이 입자를 이동하고 부정 값은 입자를 부모 부품 뒤로 이동합니다. 충분히 부정 값은 입자를 부모 부품 내부 또는 부모 부품 뒤에 렌더링할 수 있습니다.
메서드
Clear
Clear 메서드는 자연 방출(non-zero Class.ParticleEmitter.Rate|Rate)을 통해 발생한 모든 입자를 즉시 제거합니다(ParticleEmitter 의 내장 방출(Rate 없음). 또는 1>Class.ParticleEmitter:Enable|Enable1>
반환
코드 샘플
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end
Emit
에미트 메서드는 ParticleEmitter에게 즉시 입력된 입자 수를 에미트하도록 합니다.
매개 변수
방출할 입자 수입니다.
반환
코드 샘플
local RunService = game:GetService("RunService")
local emitter = script.Parent
local part = emitter.Parent
local PARTICLES_PER_STUD = 3
local lastPosition = part.Position
local distance = 0
local function onStep()
local displacement = part.Position - lastPosition
distance = distance + displacement.magnitude
local n = math.floor(distance * PARTICLES_PER_STUD)
emitter:Emit(n)
distance = distance - n / PARTICLES_PER_STUD
lastPosition = part.Position
end
RunService.Stepped:Connect(onStep)
emitter.Enabled = false
local emitter = script.Parent
while true do
emitter:Clear()
emitter:Emit(10)
task.wait(2)
end