📖 학습 목표
- 유니티의 파티클(Particle System)에 대해 배웁니다.
- 파티클을 학습하고 컨페티 효과를 만들어봅니다.
🔨 시작하기 전에
- 유니티의 파티클(Particle System)은 매우 많은 기능들로 이루어져 있습니다.
- 이 모든 것을 다룰 순 없으며, 컨페티 효과를 만들면서 관련된 기능 설명을 하도록 하겠습니다.
- 컨페티 효과를 만들면서 과정을 완전히 따라 하지 않고 여러 가지 기능을 응용하여 여러분들이 직접 커스텀하여 멋진 파티클을 만들어보세요.
📒 과정
0. Scene 열기
- 프로젝트 폴더 내 Scenes폴더 안에 있는 "6. Particle"을 엽니다.
1. 파티클
- 유니티에서 파티클 시스템은 게임이나 시뮬레이션에서 입자 효과를 구현하기 위해 사용되는 강력한 도구입니다. 파티클 시스템은 작은 입자들을 생성하고 제어하여 다양한 시각적 효과를 만들어내는 데 사용됩니다.
- 파티클은 일반적으로 불, 연기, 폭발, 물결 등과 같은 효과를 만들어내는 데 사용됩니다. 각각의 입자는 위치, 속도, 크기, 색상 및 투명도와 같은 속성을 가질 수 있으며, 이러한 속성들을 조작하여 다양한 효과를 구현할 수 있습니다.
2. 파티클 생성
- 하이어라키(Hierachy) 창에서 빈 공간을 우클릭합니다.
- Effects > Particle System을 클릭합니다.
- Particle System이라는 이름으로 새로운 오브젝트가 생성됩니다.
- 수많은 원 오브젝트가 위 방향으로 뿜어져 나오는 Default 파티클이 보입니다.
· 파티클 재생 제어
- 파티클을 선택한 경우 Scene 화면에서 우측 하단에 검은색 UI와 함께 파티클 재생 제어창이 나타납니다.
- 이 제어창은 파티클을 제작하고 콘텐츠를 개발하는데 도움을 주며, Play 모드가 아닐 때만 유효합니다.
3. 컨페티 만들기
- 수많은 기능 중 일반적으로 사용되는 기능들을 살펴보면서 컨페티 파티클을 제작합니다.
· General(일반) 옵션
- 위 옵션들 중 화살표가 있는 옵션만 다루겠습니다.
· 옵션 설정 방식
- 값을 설정하는 옵션에는 여러 가지 방식이 있습니다.
Constraint (제한)
Constraint는 변수에 지정한 값 하나로 값을 제한하는 방법입니다.
Curve (곡선)
곡선은 변수의 값을 시간에 따라 움직이도록 정의하는 방법입니다. 예를 들어, 파티클의 크기를 조정할 때 크기 커브를 사용하여 시간이 흐름에 따라 크기가 변화하도록 설정할 수 있습니다. 곡선은 보간 된 점들의 집합으로 구성되며, 각 점은 시간과 해당 시간에 대한 변수 값을 가지고 있습니다.
Random Between Two Constraints (두 제약 조건 사이의 무작위 값)
두 개의 제한 값을 설정하고, 이 사이에서 무작위 값을 생성하여 변수를 결정하는 방식입니다. 예를 들어, 파티클의 초기 속도를 설정할 때, 최소 속도와 최대 속도 사이에서 무작위로 속도를 생성하여 파티클마다 다른 초기 속도를 부여할 수 있습니다.
Random Between Two Curves (두 곡선 사이의 무작위 값)
두 개의 곡선을 설정하고, 이 사이에서 무작위 값을 생성하여 변수를 결정하는 방식입니다. 예를 들어, 파티클의 생명 주기 동안 크기를 조정할 때, 최소 크기와 최대 크기 사이에서 무작위로 크기를 생성하여 파티클마다 다른 크기 변화를 부여할 수 있습니다.
· Duration
- 이 파티클이 파티클을 만들어내는 지속시간입니다.
- 예시로 5로 설정된 경우 5초 동안 파티클을 생성하고 시간이 경과된 경우 더 이상 파티클을 생성하지 않습니다.
- Looping이 켜져 있는 경우 파티클을 생성하는 로직이 Duration마다 반복됩니다.
- Looping이 꺼져있으면 파티클을 생성 로직이 1회 실행 후 더 이상 생성하지 않게 됩니다.
· Looping
- 파티클을 Loop(반복)하여 계속 생성하게 합니다.
· Start Lifetime
- 생성된 파티클 입자의 지속시간입니다.
- 생성된 파티클 입자는 이 값이 지나면 사라집니다.
· Start Speed
- 파티클 입자의 시작 속도를 설정합니다.
- 값이 높을수록 파티클 입자의 속도는 빨라져 동일 Lifetime보다 멀리 이동합니다.
· Start Size
- 파티클 입자의 초기 생성 크기를 설정합니다.
· Start Color
- 파티클 입자가 생성될 때 색상을 결정합니다.
· Stop Action
- 파티클 속성 중 Looping이 켜져있지 않은 경우, Stop Action이 발동할 수 있습니다.
- 파티클 지속시간 후 모든 파티클 입자가 사라진 후 Stop Action이 호출되어 설정한 기능을 수행하도록 합니다.
None: 아무런 수행을 하지 않습니다.
Disable: 파티클 오브젝트를 비활성화합니다.
Destroy: 파티클 오브젝트를 파괴(제거)합니다.
Callback: 파티클 오브젝트에 있는 다른 컴포넌트의 스크립트를 호출합니다.
· 🔍 General(일반) 옵션에서 컨페티 파티클 만들기
- Start Size는 "Random Between Two Constrants"를 눌러 두 값 사이에 랜덤 한 크기로 생성되도록 합니다.
- 컨페티 모습이 아닌 현재 모습(원형)에서 0.01 ~ 0.05는 너무 작기에 적절한 값으로 실습을 진행합니다.
- Start Color은 "Random Color"을 누릅니다.
- 그 후에 색상 영역을 클릭하여 그라디언트 창을 열어 설정합니다.
- 이 색상들 중 무작위 색상으로 생성되게 됩니다.
- 그라디언트 창을 위 영상처럼 설정합니다.
- 색상을 자유롭게 설정하여 여러분만의 파티클을 만들어보세요.
- Stop Action을 "Destroy"로 설정합니다.
· Emission 옵션
· Rate over Time
- Duration 시간 동안 몇 개의 파티클 입자를 생성할지 결정합니다.
- 예시로, Duration이 1인 상태에서 Rate over Time이 10이면 1초 동안 10개의 입자를 생성합니다.
· Bursts
- 이 옵션을 통해 파티클 입자를 정해진 규칙에 따라 폭발적으로 생성할 수 있습니다.
- 우측 하단에 + 버튼을 눌러 새로운 Burst 규칙을 만듭니다.
- Rate over Time은 0으로 설정하여 Bursts 규칙만 사용하도록 합니다.
Bursts 옵션
Count: 1 Cycle마다 생성할 입자의 개수를 결정합니다.
Cycles: 이 규칙을 Cycles만큼 반복합니다.
Interval: Cycles마다 딜레이 시간을 줍니다.
· 🔍 Emission 옵션에서 컨페티 파티클 만들기
- 100개의 입자를 한 번에 폭발적으로 나타나게 합니다.
· Shape 옵션
- 파티클 입자가 생성되는 형태를 결정합니다.
- 여러 가지 형태를 선택할 수 있습니다.
- 각 형태별로 파티클 입자가 생성되는 방향이나 모습이 다릅니다.
· 🔍 Emission 옵션에서 컨페티 파티클 만들기
- Shape를 Sphere로 선택합니다.
- Radius는 가장 낮은 값인 0.00001로 선택합니다.
- 좁은 점에서 모든 방향으로 분사되도록 만들었습니다.
- Shape를 여러가지 모습 중 하나를 선택하여 여러분들이 원하는 형태로 만들어보세요.
· Force over Lifetime 옵션
- 이 옵션은 파티클 입자가 평생(LifeTime) 받는 힘의 크기를 결정합니다.
- X Y Z 방향으로 지속적인 힘을 부가할 수 있습니다.
- 일반적으로 중력을 표현하기 위해 Z 방향으로 -9.81을 입력하는 경우가 대부분입니다.
· 🔍 Force over Lifetime 옵션에서 컨페티 파티클 만들기
- 위에서 언급했듯이 중력의 영향을 표현하기 위해 Z에 -9.81로 설정하였습니다.
· Rotation over Lifetime 옵션
- 이 옵션은 파티클 입자가 평생(LifeTime) 동안 회전하는 정도를 결정합니다.
- Angular Velocity가 45라는 뜻은 지속적으로 45 각도만큼 회전을 한다는 뜻입니다.
- Separate Axes를 활성화하면 3차원에서 세 개의 각에 대해 별도로 회전값을 지정할 수 있습니다.
· 🔍 Rotation over Lifetime 옵션에서 컨페티 파티클 만들기
- Separate Axes를 활성화하고 X, Y, Z를 0~360로 완전 무작위로 회전하도록 설정합니다.
- 다른 옵션값들과 마찬가지로 우측의 버튼을 클릭하여 "Random Between Two Constraints"를 선택하여 설정합니다.
· Renderer 옵션
- Renderer 옵션은 파티클 입자가 어떻게 Rendering(렌더링)될지 설정하는 옵션입니다.
- 많은 기능들 중 이번 강의에서는 파티클 입자의 형태(모습)를 설정해 보도록 하겠습니다.
- Render Mode는 파티클 입자가 어떤 형태로 렌더링 될지 결정합니다.
- Billboard는 항상 카메라를 정면으로 바라보는 2D 이미지를 사용합니다.
- Mesh는 3D 데이터를 사용하여 입체감 있는 오브젝트를 사용합니다.
· 🔍 Renderer 옵션에서 컨페티 파티클 만들기
- Render Mode를 Mesh로 설정합니다.
- Render Mode를 Mesh로 선택하면 Meshes 영역이 생깁니다.
- Meshes 영역 우측 버튼을 선택하여 창을 열은 후 "Plane"을 검색한 후 나오는 Plane을 선택합니다.
- Plane을 가득 채운 색상으로 표현하기 위해 Material 속성을 "Sprites-Default"로 선택합니다.
- Plane을 선택함과 같은 방법으로 우측 버튼을 선택하여 창을 열은 후 "Sprite-Default"를 검색하여 선택합니다.
· 😊 잘 따라오셨나요?
다음의 설정은 필수적으로 수행해야 합니다!
다음에 진행할 "골프 게임"에서 여러분들이 제작한 컨페티 파티클을 함께 사용할 것이기 때문입니다.
- General(일반) 옵션에서 Looping을 해제
- Stop Action이 "Destrory"로 설정
📋 학습 완료
- 파티클 시스템에 대해 다뤘습니다.
- 파티클 시스템에서 여러가지 기능 중 자주 사용할 옵션들을 살펴보고 이를 제어하였습니다.
- 파티클 시스템을 이용하여 컨페티 파티클을 제작하였습니다.
'unity etc. > lecture' 카테고리의 다른 글
[유니티] 터레인(Terrain) (0) | 2023.06.19 |
---|---|
[유니티] 오디오(Audio) (0) | 2023.06.19 |
[유니티] 골프 게임 제작 실습 (0) | 2023.06.19 |
[유니티] 캐릭터 애니메이션 - Mixamo 캐릭터 (0) | 2023.06.19 |
[유니티] 캐릭터 애니메이션 - Mixamo 애니메이션 (0) | 2023.06.19 |