Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
노드 속성
최소, 최대 및 곡선 속성
이 재질의 속성은 입자가 수명 동안 동작하고 변경하는 방식을 제어합니다. 이들 중 다수는 동작을 미세 조정할 수 있는 Min, Max 및 Curve 값을 가지고 있습니다. 이러한 값 사이의 관계는 다음과 같습니다. 입자가 생성되면 속성은 Min``와 ``Max 사이의 임의 값으로 설정됩니다. Min 및 ``Max``가 동일한 경우 값은 모든 입자에 대해 항상 동일합니다. ``Curve``도 설정된 경우 속성 값은 입자 수명 중 현재 지점의 곡선 값과 곱해집니다. 곡선을 사용하여 입자 수명 동안 속성을 변경합니다. 매우 복잡한 동작을 이런 식으로 표현할 수 있습니다.
참고
이 페이지에서는 구체적으로 3D 장면에 ParticleProcessMaterial을 사용하는 방법을 다룹니다. 2D 씬에서 사용하는 방법에 대한 자세한 내용은 :ref:`doc_particle_process_material_2d`를 참조하세요.
타임스탬프
Lifetime Randomness 속성은 각 입자의 수명에 적용할 무작위성의 정도를 제어합니다. 0 값은 임의성이 전혀 없으며 모든 입자가 Lifetime 속성에 의해 설정된 동일한 시간 동안 살아 있음을 의미합니다. 1 값은 입자의 수명이 [0.0, Lifetime] 범위 내에서 완전히 무작위임을 의미합니다.
입자 플래그
Align Y 속성은 각 입자의 Y축을 해당 속도에 맞춰 정렬합니다. 이 속성을 활성화하는 것은 Transform Align 속성을 ``Y to Velocity``로 설정하는 것과 같습니다.
Rotate Y 속성은 Angle 및 Angular Velocity 그룹의 속성과 함께 작동하여 입자 회전을 제어합니다. 입자에 회전을 적용하려면 Rotate Y``를 활성화해야 합니다. 이에 대한 예외는 ``Billboard 속성이 ``Particle Billboard``로 설정된 :ref:`Standard Material <doc_standard_material_3d>`을 사용하는 입자입니다. 이 경우 ``Rotate Y``를 활성화하지 않아도 입자가 회전합니다.
Disable Z 속성이 활성화되면 입자가 Z축을 따라 이동하지 않습니다. 파티클 시스템의 로컬 Z축이 될지 월드 Z축이 될지는 Local Coords 속성에 의해 결정됩니다.
Damping as Friction 속성은 댐핑 동작을 일정한 감속에서 속도 기반 감속으로 변경합니다.
소환
방출 모양
입자는 공간의 단일 지점에서 또는 모양을 채우는 방식으로 방출될 수 있습니다. Shape 속성은 해당 모양을 제어합니다. Point``가 기본값입니다. 모든 입자는 입자 시스템 중앙의 단일 지점에서 방출됩니다. ``Sphere 또는 ``Box``로 설정하면 입자가 구 또는 상자 모양을 균일하게 채우는 방식으로 방출됩니다. 이러한 모양의 크기를 완전히 제어할 수 있습니다. ``Sphere Surface``는 ``Sphere``처럼 작동하지만 이를 채우는 대신 모든 입자가 구 표면에 생성됩니다.
점(왼쪽), 구(가운데) 및 상자(오른쪽)에서 방출되는 입자
입자(Particle) 시스템 (2D)
Ring 방출 모양은 입자가 고리 모양으로 방출되도록 합니다. Ring Axis 속성을 변경하여 링의 방향을 제어할 수 있습니다. Ring Height``는 축을 따라 링의 두께를 제어합니다. ``Ring Radius 및 ``Ring Inner Radius``는 링의 너비와 가운데 구멍의 크기를 제어합니다. 이미지는 반경이 ``2``이고 내부 반경이 ``1.5``인 입자 시스템을 보여줍니다. 축은 전역 Z축을 가리킵니다.
이러한 상대적으로 단순한 모양 외에도 Points 또는 Directed Points 옵션을 선택하여 매우 복잡한 방출 모양을 만들 수 있습니다. 이를 설정하는 방법에 대한 자세한 설명은 복합 방출 형태 섹션을 참조하세요.
각
Angle 속성은 입자의 시작 회전 위에서 설명한대로 <#process-material-properties>`__를 제어합니다. 입자에 실제 효과를 적용하려면 두 가지 속성 중 하나를 활성화해야 합니다. `Y 회전 <#particle-flags>`__는 입자 시스템의 Y축을 중심으로 입자를 회전합니다. :ref:`표준 재료 <doc_standard_material_3d>`의 ``Billboard` 속성이 ``Particle Billboard``로 설정된 경우 입자에서 카메라를 가리키는 축을 중심으로 입자를 회전합니다.
방향
참고
Direction 속성만으로는 입자의 움직임을 볼 수 없습니다. 여기에서 설정한 값은 속도 또는 가속도 속성이 설정된 후에만 적용됩니다.
Direction 속성은 입자가 생성되는 순간 각 입자의 이동 방향을 제어하는 벡터입니다. (X=1,Y=0,Z=0) 값은 모든 입자가 X축을 따라 옆으로 이동하도록 만듭니다. 입자가 공중으로 솟아오르는 분수 같은 경우에는 (X=0,Y=1,Z=0) 값이 좋은 시작점이 될 것입니다.
다양한 방향 값: Y축만(왼쪽), X와 Y의 동일한 값(가운데), 중력이 활성화된 X와 Y(오른쪽)
방향을 설정하면 모든 입자가 동일한 방향으로 직선으로 움직이는 것을 볼 수 있습니다. Spread 속성은 각 입자의 방향에 약간의 변형과 임의성을 추가합니다. 값이 높을수록 원래 경로와의 편차가 커집니다. 0 값은 확산이 전혀 없음을 의미하고, 180 값은 입자가 모든 방향으로 튀어나오게 함을 의미합니다. 폭발 효과가 발생하는 동안 파편 조각과 같은 것에 이것을 사용할 수 있습니다.
확산 없음(왼쪽), 45도 각도(가운데), 전체 180도(오른쪽)
Flatness 속성은 Y축을 따른 확산을 제한합니다. 0 값은 제한이 없음을 의미하고 1 값은 Y축을 따라 모든 입자 이동을 제거함을 의미합니다. 입자는 완전히 "평평하게" 퍼집니다.
아래의 속도 및 가속도 속성에 대한 일부 값을 설정하기 전까지는 실제 움직임을 볼 수 없으므로 다음 항목을 살펴보겠습니다.
초기 속도
Direction 속성은 입자의 이동 방향을 제어하는 반면, Initial Velocity 속성은 입자의 이동 속도를 제어합니다. Velocity Min, ``Velocity Max``로 구분되어 있으며 둘 다 기본적으로 ``0``로 설정되어 있어 처음에는 아무런 움직임도 보이지 않습니다. 위에서 설명한대로 속성 중 하나에 대한 값을 설정하자마자 입자가 움직이기 시작합니다. 방향에 이 값을 곱하므로 음의 속도를 설정하여 입자가 반대 방향으로 이동하도록 할 수 있습니다.
선형 가속도(Linear Acceleration)
중력
다음 몇 가지 속성 그룹은 긴밀하게 함께 작동하여 입자 이동 및 회전을 제어합니다. Gravity``는 입자가 가리키는 방향으로 입자를 드래그합니다. 이는 기본적으로 지구의 중력 강도에 따라 수직 방향으로 향합니다. 중력은 모든 입자 이동에 영향을 미칩니다. 게임에서 물리학을 사용하고 세계의 중력이 런타임 시 변경될 수 있는 경우 이 속성을 사용하여 게임의 중력을 입자 중력과 동기화된 상태로 유지할 수 있습니다. ``(X=0,Y=0,Z=0)``의 ``Gravity 값은 다른 이동 속성이 설정되지 않은 경우 입자가 전혀 이동하지 않음을 의미합니다.
왼쪽: (X=0,Y=-9.8,Z=0), 가운데: (X=0,Y=9.8,Z=0), 오른쪽: (X=4,Y=2,Z=0).
각속도
Angular Velocity``는 입자의 회전 속도 `위에서 설명한대로 <#process-material-properties>`__를 제어합니다. ``Velocity Min 또는 Velocity Max``에 음수를 사용하여 방향을 바꿀 수 있습니다. `각도 <#angle>`__ 속성과 마찬가지로 회전은 `Y 회전 <#particle-flags>`__ 플래그가 설정되거나 :ref:`표준 재료 <doc_standard_material_3d>`에서 ``Particle Billboard 모드가 선택된 경우에만 표시됩니다.
참고
Damping 속성은 각속도에 영향을 주지 않습니다.
선형 가속도(Linear Acceleration)
입자의 속도는 일정한 값입니다. 일단 설정되면 변경되지 않으며 입자는 항상 같은 속도로 움직입니다. Linear Accel 속성을 사용하여 입자의 수명 위에서 설명한대로 동안 이동 속도를 변경할 수 있습니다. 양수 값은 입자 속도를 높이고 더 빠르게 움직입니다. 음수 값은 정지하고 다른 방향으로 움직이기 시작할 때까지 속도를 늦춥니다.
음수(상단) 및 양수(하단) 선형 가속도
가속도를 변경할 때 속도를 직접 변경하는 것이 아니라 속도의 *변경*을 변경한다는 점을 명심하는 것이 중요합니다. 가속도 곡선의 0 값은 입자의 움직임을 중지하지 않고 입자 움직임의 변화를 중지합니다. 그 순간의 속도가 무엇이든 가속도가 다시 변경될 때까지 해당 속도로 계속 움직일 것입니다.
지름 가속도(Radial Acceleration)
Radial Accel 속성은 모든 입자에 중력과 같은 힘을 추가하며 해당 힘의 시작점은 입자 시스템의 현재 위치입니다. 음수 값을 사용하면 행성이 궤도에 있는 물체에 미치는 중력처럼 입자가 중심을 향해 이동합니다. 양수 값을 사용하면 입자가 중심에서 멀어집니다.
음수(왼쪽) 및 양수(오른쪽) 방사형 가속도
접선가속도(Tangential Acceleration)
이 기능은 항상 전반적인 좌표에 적용됩니다.
이 속성은 원점이 시스템 중심이고 반경이 각 입자의 현재 위치와 해당 평면에 투영된 시스템 중심 사이의 거리인 입자 시스템의 XZ 평면에 있는 원에 접하는 방향으로 입자 가속도를 추가합니다.
그 내용을 풀어보겠습니다.
원에 대한 접선은 터치 지점에서 원의 반경에 직각으로 원과 "접촉"하는 직선입니다. 입자 시스템의 XZ 평면에 있는 원은 위에서 입자 시스템을 똑바로 내려다볼 때 표시되는 원입니다.
접선가속도(Tangential Acceleration)
``Tangential Accel``는 항상 해당 평면으로 제한되며 시스템의 Y축을 따라 입자를 이동하지 않습니다. 입자의 위치는 벡터의 Y 구성 요소를 무시할 경우 시스템 중심까지의 거리가 반경인 원을 정의하는 데 충분합니다.
Tangential Accel 속성은 입자가 입자 시스템의 중심을 공전하도록 만들지만 반경은 지속적으로 증가합니다. 위에서 보면 입자는 나선형으로 중심에서 멀어집니다. 음수 값은 방향을 반대로 합니다.
댐핑
Damping 속성은 모든 움직임을 점차적으로 중지합니다. 총 가속도가 감쇠 효과보다 크지 않으면 각 프레임에서 입자의 움직임이 약간 느려집니다. 그렇지 않은 경우 입자는 전혀 움직이지 않을 때까지 계속 느려집니다. 값이 클수록 입자를 완전히 정지시키는 데 걸리는 시간이 줄어듭니다.
벡터 보간
입자 시스템이 입자 유인자 <doc_3d_particles_attractors>`와 상호 작용하도록 하려면 ``Enabled` 속성을 확인해야 합니다. 비활성화되면 파티클 시스템은 모든 파티클 어트랙터를 무시합니다.
디스플레이
스케일
Scale``는 입자 크기 `위에서 설명한대로 <#process-material-properties>`__를 제어합니다. ``Scale Min 및 Scale Max``에 대해 서로 다른 값을 설정하여 각 입자의 크기를 무작위로 지정할 수 있습니다. 음수 값은 허용되지 않으므로 이 속성을 사용하여 입자를 뒤집을 수 없습니다. 파티클을 빌보드로 방출하는 경우 드로우 패스의 :ref:`표준 재료 <doc_standard_material_3d>`에 있는 ``Keep Size 속성을 활성화해야 스케일링이 적용됩니다.
색상
Color 속성은 입자의 초기 색상을 제어합니다. Standard Material <doc_standard_material_3d>`의 ``Vertex Color` 그룹에 있는 Use As Albedo 속성이 활성화된 후에만 효과가 있습니다. 이 속성은 입자 재료의 자체 Color 또는 Texture 속성에서 나오는 색상과 곱해집니다.
씬 설정하기
Color 그룹에는 두 개의 Ramp 속성이 있습니다. 이를 통해 입자 색상을 설정하는 데 사용되는 색상 범위를 정의할 수 있습니다. Color Ramp 속성은 입자의 수명 동안 입자의 색상을 변경합니다. 정의한 전체 색상 범위를 통해 이동합니다. Color Initial Ramp 속성은 색상 램프의 임의 위치에서 입자의 초기 색상을 선택합니다.
색상 램프를 설정하려면 속성 이름 옆에 있는 상자를 클릭하고 드롭다운 메뉴에서 New GradientTexture1D``를 선택합니다. 텍스처의 세부정보를 열려면 상자를 다시 클릭하세요. ``Gradient 속성을 찾아 옆에 있는 상자를 클릭하고 ``New Gradient``를 선택합니다. 해당 상자를 다시 클릭하면 색상 범위가 표시됩니다. 새 마커를 삽입하려면 해당 범위의 아무 곳이나 클릭하세요. 마커를 마우스로 이동시킬 수 있으며, 마우스 오른쪽 버튼을 클릭하면 마커를 삭제할 수 있습니다. 마커가 선택되면 범위 옆에 있는 색상 선택기를 사용하여 색상을 변경할 수 있습니다.
표준화
Color 속성과 마찬가지로 ``Hue Variation``는 입자의 색상을 제어하지만 방식이 다릅니다. 색상 값을 직접 설정하는 것이 아니라 *색상의 색조를 이동*하여 이를 수행합니다.
색조는 색상의 색소(빨간색, 주황색, 노란색, 녹색 등)를 나타냅니다. 색상이 얼마나 밝고 채도가 높은지는 알려주지 않습니다. Hue Variation 속성은 사용 가능한 색상 `위에서 설명한대로 <#process-material-properties>`__의 범위를 제어합니다.
이는 입자의 현재 색상 위에 작동합니다. Variation Min 및 ``Variation Max``에 대해 설정한 값은 색조가 어느 방향으로든 이동할 수 있는 정도를 제어합니다. 값이 높을수록 색상 변형이 더 많아지고, 값이 낮을수록 사용 가능한 색상이 원래 색상과 가장 가까운 색상으로 제한됩니다.
색조 변형에 대한 서로 다른 값(두 경우 모두 파란색을 기본 색상으로 사용함): 0.6(왼쪽) 및 0.1(오른쪽)
애니메이션
Animation 속성 그룹은 입자의 표준 재료 <doc_standard_material_3d>`에서 스프라이트 시트 애니메이션의 동작을 제어합니다. ``Min`, Max 및 Curve 값은 `위에서 설명한대로 <#process-material-properties>`__에서 작동합니다.
애니메이션 스프라이트 시트는 그리드에 정렬된 여러 개의 작은 이미지를 포함하는 텍스처입니다. 이미지는 너무 빨리 하나씩 표시되어 마치 플립북처럼 짧은 애니메이션을 재생하기 위해 결합됩니다. 연기나 불과 같은 애니메이션 입자에 사용할 수 있습니다. 애니메이션 입자 시스템을 만드는 단계는 다음과 같습니다.
8x8 애니메이션 연기 스프라이트 시트
스프라이트 시트 텍스처를 엔진으로 가져옵니다. 갖고 있지 않다면 :download:`예제 이미지의 고해상도 버전 <img/particle_sprite_smoke.webp>`을 다운로드할 수 있습니다.
하나 이상의 드로 패스로 파티클 시스템을 설정하고 해당 드로 패스의 메시에 ``Standard Material``를 할당합니다.
Albedo그룹의Texture속성에 스프라이트 시트를 할당합니다.재료의
Billboard속성을Particle Billboard``로 설정합니다. 이렇게 하면 재료에서 ``Particles Anim그룹을 사용할 수 있게 됩니다.애니메이션을 계속 반복하려면 ``Loop``를 선택하세요.
이것이 표준 재료의 전부입니다. 바로 애니메이션이 표시되지 않습니다. 여기서 Animation 속성이 필요합니다. Speed 속성은 스프라이트 시트의 애니메이션 속도를 제어합니다. Speed Min 및 Speed Max``를 ``1``로 설정하면 애니메이션이 재생되는 것을 볼 수 있습니다. ``Offset 속성은 새로 생성된 입자에서 애니메이션이 시작되는 위치를 제어합니다. 기본적으로 이 이미지는 항상 시퀀스의 첫 번째 이미지가 됩니다. Offset Min 및 ``Offset Max``를 변경하여 시작 위치를 무작위로 지정하여 다양성을 추가할 수 있습니다.
동일한 연기 스프라이트 시트를 사용하는 세 가지 다른 파티클 시스템
스프라이트 시트에 포함된 이미지 수와 입자가 살아 있는 기간에 따라 애니메이션이 매끄럽게 보이지 않을 수 있습니다. 입자 수명, 애니메이션 속도, 스프라이트 시트의 이미지 수 사이의 관계는 다음과 같습니다.
참고
``1.0``의 애니메이션 속도에서 애니메이션은 입자의 수명이 끝나자마자 시퀀스의 마지막 이미지에 도달합니다.
스프라이트 시트에 64개(8x8) 이미지가 포함되어 있고 입자 수명이 ``1 second``로 설정된 경우 애니메이션은 **64FPS**(1초/64개 이미지)에서 매우 매끄러워집니다. 수명이 ``2 seconds``로 설정된 경우 **32FPS**에서는 여전히 상당히 부드럽습니다. 그러나 ``8 seconds``에 대해 입자가 살아 있으면 애니메이션이 **8FPS**에서 눈에 띄게 고르지 않게 됩니다. 애니메이션을 다시 부드럽게 만들려면 애니메이션 속도를 ``3``와 같이 높여 허용 가능한 프레임 속도에 도달해야 합니다.
다양한 수명의 동일한 입자 시스템: 1초(왼쪽), 2초(가운데), 8초(오른쪽)
GPUParticles3D 노드의 **Fixed FPS**도 애니메이션 재생에 영향을 미칩니다. 원활한 애니메이션 재생을 위해서는 렌더링된 모든 프레임에서 입자가 시뮬레이션되도록 0으로 설정하는 것이 좋습니다. 이것이 사용 사례에 대한 옵션이 아닌 경우 **고정 FPS**를 플립북 애니메이션에서 사용하는 유효 프레임 속도와 동일하도록 설정하세요(공식은 위 참조).
난기류
난류는 입자 이동에 소음을 추가하여 흥미롭고 생생한 패턴을 만듭니다. 활성화하려면 Enabled 속성 옆의 확인란을 선택하세요. 이동 속도, 노이즈 패턴 및 입자 시스템에 대한 전반적인 영향을 제어하는 여러 가지 새로운 속성이 표시됩니다. 입자 난류 섹션에서 이에 대한 자세한 설명을 확인할 수 있습니다.
콜리전
Mode 속성은 이미터가 입자 충돌 노드와 충돌하는 방법과 충돌 여부를 제어합니다. 이 입자 시스템에 대한 충돌을 비활성화하려면 ``Disabled``로 설정하십시오. 입자가 충돌하자마자 사라지도록 하려면 ``Hide On Contact``로 설정하십시오. 입자가 충돌하고 튕겨 나가도록 하려면 ``Constant``로 설정합니다. Inspector에 두 개의 새로운 속성이 나타나는 것을 볼 수 있습니다. 충돌 이벤트 중에 입자가 동작하는 방식을 제어합니다.
Friction 값이 높으면 표면을 따라 미끄러지는 현상이 줄어듭니다. 이는 파티클이 경사진 표면과 충돌하고 산에 눈이 내리는 것처럼 바닥까지 미끄러지는 대신 제자리에 머물기를 원하는 경우 특히 유용합니다. Bounce 값이 높으면 입자가 단단한 바닥의 고무공처럼 충돌하는 표면에서 튕겨 나가게 됩니다.
Use Scale 속성이 활성화된 경우 :ref:`collision base size <doc_3d_particles_properties_collision>`에 입자의 `현재 규모 <#scale>`__을 곱합니다. 이를 사용하여 렌더링된 크기와 충돌 크기가 무작위 배율 또는 시간에 따라 변하는 배율이 있는 입자에 대해 일치하는지 확인할 수 있습니다.
이 매뉴얼의 Collisions 섹션에서 입자 충돌에 대해 자세히 알아볼 수 있습니다.
하위 방출기
사용 가능한 하위 방출기 모드
Mode 속성은 하위 이미터가 생성되는 방법과 시기를 제어합니다. Disabled``로 설정하면 하위 이미터가 생성되지 않습니다. 하위 이미터가 일정한 속도로 지속적으로 생성되도록 하려면 이를 ``Constant``로 설정합니다. ``Frequency 속성은 1초 내에 이러한 일이 발생하는 빈도를 제어합니다. 상위 입자의 수명이 끝날 때, 즉 파괴되기 직전에 하위 방사체가 생성되도록 모드를 At End``로 설정합니다. ``Amount At End 속성은 생성될 하위 이미터 수를 제어합니다. 입자가 환경과 충돌할 때 하위 방사체가 생성되도록 모드를 At Collision``로 설정합니다. ``Amount At Collision 속성은 생성될 하위 이미터 수를 제어합니다.
Keep Velocity 속성이 활성화되면 새로 생성된 하위 이미터는 하위 이미터가 생성될 때 상위 입자의 속도로 시작됩니다.
입자 시스템에 하위 이미터를 추가하는 방법에 대한 자세한 설명은 이 매뉴얼의 Sub-emitters 섹션을 참조하십시오.
프로세스 머티리얼 만들기
셰이더 코드에서 새로운 동작을 변경하거나 구현해야 하는 경우 현재 ParticleProcessMaterial을 :ref:`class_ShaderMaterial`로 변환하면 됩니다. 기존 속성은 변환 프로세스에 의해 보존됩니다. 활성화된 기능은 변환된 셰이더 코드에 있는 내용에도 영향을 미칩니다.
이렇게 하려면 FileSystem 도크에서 재질을 마우스 오른쪽 버튼으로 클릭하고 **ShaderMaterial로 변환**을 선택합니다. 인스펙터에서 머티리얼에 대한 참조를 보유하는 속성을 마우스 오른쪽 버튼으로 클릭하여 이를 수행할 수도 있습니다.