Posts 파티클 시스템 기초 - 05 - 주요 모듈
Post
Cancel

파티클 시스템 기초 - 05 - 주요 모듈

목차



개요


  • 메인 모듈 외의 모듈 중에서 주로 사용되는 모듈들에 대해 소개한다.


Emission


image

  • 파티클의 생성 타이밍과 개수에 관여한다.


Rate over Time

  • 초당 생성할 개수를 지정한다.

  • 예시 : [1] vs [4]

2021_0222_Particle_RateOverTime_1_4


Rate over Distance

  • 게임오브젝트의 이동거리 당 생성할 파티클의 개수를 지정한다. (거리 1 단위)

  • 1로 지정할 경우 거리 1을 이동할 때마다 1개, 2로 지정할 경우 거리 0.5를 이동할 때마다 1개를 생성한다.

  • 예시 : [1] vs [2]

2021_0222_Particle_RateOverDist_1_2


Bursts

  • 버스트의 목록을 만들어, 각 버스트마다 파티클을 생성할 정확한 타이밍과 개수, 반복 횟수 등을 지정한다.

  • 각 버스트는 독립적으로 실행되며, 버스트의 반복(Cycle)으로 인해 특정 타이밍에 실행되는 버스트가 여러 개일 경우 생성되는 파티클 개수는 합산된다.

  • +를 눌러 버스트를 생성하고, -를 눌러 버스트를 제거할 수 있다.

  • Duration으로 지정한 시간 내에서만 버스트를 등록할 수 있다. (벗어날 경우 무시)

이름 설명
Time 버스트가 실행될 타이밍.
Duration 내에서만 지정할 수 있다.
Count 버스트가 실행될 때 생성할 파티클 개수
Cycles 버스트를 반복할 횟수.
Interval 하나의 버스트 내에서 각 Cycle 사이의 간격을 의미한다.
Cycle이 1인 경우에는 의미가 없다.
Probability 해당 버스트를 실행할 확률.
(0 : 0% ~ 1 : 100%)


  • 예시 (Duration : 5)

image

타이밍(초) 생성 파티클 개수
0.0 1개 [Burst 0]
0.5 0개
1.0 2개 [Burst 1]
1.5 0개
2.0 5개 (2 + 3) [Burst 1, Burst 2]
2.5 3개 [Burst 2]
3.0 3개 [Burst 2]
3.5 3개 [Burst 2]
4.0 3개 [Burst 2]
4.5 0개

2021_0223_Particle_Burst


추가 설명

  • Rate over Time, Rate over Distance, Bursts는 각각 독립적으로 실행된다.
  • 따라서 서로 영향을 주지 않고 개별적으로 실행되어, 최종적으로 생성되는 개수는 합산된다.


Shape


image

  • 파티클들이 생성될 영역의 모양과 크기를 결정한다.

  • 파티클 시스템을 생성할 경우 초깃값은 Cone이며, 주로 Sphere, Box 등이 사용된다.


Cone

  • 원뿔 모양


Angle

  • 원뿔의 벌어진 각도(작을수록 원통에 가깝다)

image

Angle [0] vs[45]


Radius

  • 원뿔의 반지름

image

Radius [0] vs [1]


Radius Thickness

  • 원뿔 내에서 파티클이 실제로 생성될 영역의 두께 (0 ~ 1)

2021_0222_Particle_Con_RadiusThickness

Radius Thickness [0.1] vs [0.9]


Arc

  • 파티클이 생성될 영역의 각도 범위(0 ~ 360)

2021_0222_Particle_Cone_Arc

Arc [90] vs [360]


Mode

  • 파티클이 생성될 방법 정의
  • Random : 생성 영역 내에서 무작위
  • Loop : 원호를 순서대로 돌며 생성
  • Ping-Pong : Loop와 유사하지만, 한 번의 루프가 끝날 때마다 순회 방향 변경
  • Burst Spread : 넓게 흩뿌리며 생성

2021_0222_Particle_Cone_Mode

Mode [Random] vs [Loop] vs [Ping-Pong]


Spread

  • 파티클의 분포 지정(0 ~ 1)

  • 0을 지정할 경우 모든 지점에서 파티클 생성
  • 0.1을 지정할 경우 10% 구간씩 총 열 군데에서만 파티클 생성
  • 0.5를 지정할 경우 두 군데에서만 파티클 생성

2021_0222_Particle_Cone_Spread

Spread [0] vs [0.33] vs [0.5]


Speed

  • 원호 순회 속도 지정(0 ~ )

2021_0222_Particle_Cone_Speed_01_05_10gif

Speed [0.1] vs [0.5] vs [1.0]


Emit from

  • 파티클 생성 위치 지정

  • Base : 원뿔의 입구(좁은 부분)에서만 생성
  • Volume : 원뿔의 모든 부분에서 생성

2021_0222_Particle_Cone_EmitFrom

Emit from [Base] vs [Volume]


Length

  • 원뿔의 높이 지정
  • Emit from [Volume]일 때만 지정 가능


Texture

  • 파티클 생성 영역을 텍스쳐의 RGBA 채널 중 하나를 통해 마스킹


Position, Rotation, Scale

  • 원뿔의 위치, 회전, 크기 지정


Align To Direction

  • 생성되는 파티클이 이동 방향을 바라보도록 설정

2021_0222_Particle_Cone_AlignToDirection

Align To Direction [False] vs [True]


Randomize Direction

  • 파티클 진행방향 무작위화 정도 설정(0 ~ 1)

2021_0222_Particle_Cone_RandomizeDirection_0_1

Randomize Direction [0] vs [1]


Spherize Direction

  • 파티클 진행방향이 구체에 가깝도록 설정(0 ~ 1)

2021_0222_Particle_Cone_SpherizeDirection_0_05_1

Spherize Direction [0] vs [0.5] vs [1]


Randomize Position

  • 파티클 생성 위치가 Shape 영역을 벗어나도록 설정 (0 ~ )

2021_0222_Particle_Cone_RandomizePosition_0_3_8

Randomize Position [0] vs [3] vs [8]


기타 Shape 정보


Velocity over Lifetime


image

  • 파티클에 지정한 수명(Start Lifetime) 동안의 속도 변화를 지정한다.

  • 값을 Constant로 지정할 경우 수명 동안 속도가 일정한 값으로 유지된다.

  • 값을 Curve로 지정할 경우 수명 동안 시간의 흐름에 따른 속도를 지정한다.

  • 값을 Random ~ 으로 지정할 경우 두 값 또는 두 커브 사이의 범위에서 무작위 속도값을 지정한다.


Linear X, Y, Z

  • X, Y, Z축 방향으로의 이동속도 각각 지정

2021_0223_Particle_Velocity_Linear_0_Y2

Linear[0, 0, 0] vs [0, 2, 0]


Space

  • 기준이 될 공간 지정

  • Local : 트랜스폼의 회전(Rotation) 영향을 받는다.
  • World : 트랜스폼의 회전을 무시하고 절대적인 월드를 기준으로 한다.


Orbital X, Y, Z

  • X, Y, Z 축 회전속도 각각 지정

2021_0223_Particle_Velocity_Orbital_0_Z2

Orbital[0, 0, 0] vs [0, 0, 2]


Offset X, Y, Z

  • 회전 궤도의 중심 좌표 지정
  • Orbital에 값을 지정한 경우에만 기능한다.

2021_0223_Particle_Velocity_Offset_0_X1

Orbital[0, 0, 1]
Offset[0, 0, 0] vs [1, 0, 0]


Radial

  • 원심력 지정
  • 값이 양수일 경우 바깥으로 퍼진다.
  • 값이 음수일 경우 안쪽으로 모인다.

2021_0223_Particle_Velocity_Radial_-1_0_1

Radial [-1] vs [0] vs [1]


Speed Modifier

  • 속력 배수 지정


Color over Lifetime


image

  • 파티클의 수명 동안 색상과 알파값의 변화를 그라디언트를 통해 지정한다.

  • 가장 많이 사용하는 예시로, 파티클이 생성될 때 알파 값이 0, 수명의 절반 지점에서 255, 마지막 지점에서 0으로 설정하여 자연스럽게 Fade-in ~ Fade-out 형태가 되도록 설정할 수 있다.

image

2021_0223_Particle_ColorOverLifetime

Color over Lifetime [미지정] vs [지정(알파값 변화)]


Size over Lifetime


image

  • 파티클의 수명 동안 크기의 변화를 지정한다.


Separate Axes

  • 체크할 경우 X, Y, Z 크기를 각각 따로 지정할 수 있다.


Size - Curve

  • 크기변화를 커브를 통해 지정한다.

image

2021_0223_Particle_SizeOverLifetime_1


Size - Random Between Two Constants

  • 수명 주기 동안 변하지 않는 고정 크기 값을 두 값 사이의 무작위 값으로 지정한다.

image

2021_0223_Particle_SizeOverLifetime_2


Size - Random Between Two Curves

  • 크기 변화를 두 커브 사이의 무작위 값으로 지정한다.

image

2021_0223_Particle_SizeOverLifetime_3


Rotation over Lifetime


image

  • 수명 동안 파티클의 회전값 변화를 지정한다.


Separate Axes

  • 체크할 경우 X, Y, Z 회전값을 각각 지정할 수 있다.


Angular Velocity - Constant

  • 수명 주기 동안 변하지 않는 고정 회전값을 지정한다.

image

2021_0223_Particle_RotationOverLifetime_1


Angular Velocity - Curve

  • 수명에 따라 변화하는 회전값을 커브를 통해 지정한다.

image

2021_0223_Particle_RotationOverLifetime_2


Angular Velocity - Random Between Two Constants

  • 수명 주기 동안 변하지 않는 고정 회전값을 두 상수값의 사이에서 랜덤으로 지정한다.

image

2021_0223_Particle_RotationOverLifetime_3


Angular Velocity - Random Between Two Curves

  • 수명에 따라 변화하는 회전값을 두 커브의 사이 범위값으로 지정한다.

image

2021_0223_Particle_RotationOverLifetime_4


Texture Sheet Animation


image

  • 대부분의 경우에 파티클 하나를 그려놓은 텍스쳐를 이용하여 이펙트를 제작한다.

  • 그리고 또다른 방식으로, 마치 스톱모션 애니메이션을 만드는 것처럼 연속된 애니메이션을 표현하는 여러 장의 텍스쳐를 교체하며 보여주는 방법이 있다.

  • 여러 장의 텍스쳐, 혹은 연속된 텍스쳐들을 하나의 작은 텍스쳐에 그리드(Grid) 영역을 나누어 표현해 놓은 텍스쳐 시트(Texture Sheet)를 이용할 수 있다.

  • [Texture Sheet Animation] 모듈은 위에 해당하는 경우들에만 체크하여 사용한다.

image

텍스쳐 시트의 예시


Mode

  • Grid : 각각의 스냅샷이 한 장의 텍스쳐에 그리드 형태로 표현된 텍스쳐 시트를 사용하는 경우
  • Sprites : 여러 장의 텍스쳐를 교체하며 보여주려는 경우


Tiles

  • 그리드를 이루는 타일의 가로, 세로 개수를 X, Y에 입력한다.


Animation

  • Whole Sheet : 텍스쳐 내의 모든 타일을 애니메이션에 사용한다.
  • Single Row : 특정 행을 하나 지정하여 사용한다.


Time Mode

  • Lifetime : 메인 모듈의 [Start Lifetime] 속성을 기준으로 애니메이션의 속도를 조정한다.
  • Speed : 파티클의 속도에 비례하여 프레임을 선택하기 위한 최소 ~ 최대 속도 범위를 지정한다.
  • FPS : 초당 재생할 프레임 수를 입력한다.


Row Mode

  • Animation이 Single Row일 때만 설정할 수 있다.

  • Custom : 재생할 특정 행의 인덱스를 지정한다.
  • Random : 무작위 행을 재생한다.
  • Mesh Index : 파티클에 할당된 메시 인덱스에 기반하여 행을 지정한다.


Start Frame

  • 처음으로 재생할 프레임의 번호를 입력한다.


Cycles

  • 한 번의 수명 주기 내에서 애니메이션을 반복할 횟수를 지정한다.


Affected UV Channels

  • 파티클 시스템에 영향을 받는 UV 채널을 정확히 지정한다.


2021_0223_Particle_SpriteSheet_Fire

위의 텍스쳐 시트로 만든 파티클 예시

References


This post is licensed under CC BY 4.0 by the author.