루핑 시스템
연기 효과는 루핑에 해당하며 항상 새로운 파티클을 생성합니다. 한편으로, 특정 시간 동안만 작동한 후에 시간이 다 되면 자동으로 소멸하는 시스템을 구축할 수도 있습니다. 먼저 인스펙터 창의 메인 Particle System 섹션으로 이동합니다.
-
Looping을 선택 해제합니다.
-
원하는 효과 지속 시간을 Duration에 설정합니다.
-
섹션 하단에 있는 Stop Action을 Destroy로 설정합니다. 파티클 시스템은 모든 파티클이 소멸된 후에만 제거되므로, 루핑 시스템을 수동으로 제거할 때처럼 모든 파티클이 동시에 사라지는 문제는 발생하지 않습니다.
버스트 방출
연기 효과는 일정한 속도로 파티클을 방출하고 있습니다. 이 속도는 Emission 섹션에서 설정할 수 있습니다.
Rate over Time은 초당 방출되는 파티클 수를 조절합니다. Rate over Distance를 활용하면 시스템이 움직일 때 파티클을 방출하도록 설정할 수 있습니다. 예를 들어 자동차가 움직일 때만 연기 파티클을 방출할 수도 있습니다.
물론 대량의 파티클을 단발성으로 한꺼번에 방출하는 효과도 가능합니다. 예를 들어, 폭발은 생성되자마자 대량의 연기 파티클만을 만들어낸 후 끝이 납니다.
이를 위해 Bursts 서브 섹션이 필요합니다. + 버튼을 클릭하여 버스트를 추가한 후, 파티클의 수명 동안 버스트가 발생할 시점, 생성될 파티클 수 등을 설정합니다.
충돌 효과 파티클을 예로 들면 다음과 같습니다.
-
Looping을 비활성화하고 Stop Action을 Destroy로 설정합니다.
-
시간이 지나도 파티클을 생성하지 않도록 Rate over Time을 0으로 설정합니다.
-
0.0의 시간에 20개 파티클의 버스트를 설정합니다.
이렇게 하면 시스템의 생성과 동시에 많은 파티클이 만들어지며, 모든 파티클의 수명이 다 되면 시스템은 자동으로 소멸됩니다.
파티클 시스템 인스턴스화
일단 파티클 시스템에서 프리팹을 만들고 나면, 사용자는 투사물과 같이 Instantiate 함수를 사용하여 프리팹을 생성할 수 있습니다.
따라서 충돌 적용, 체력 아이템의 수집 등과 같은 단발성 효과를 생성해야 할 경우, 먼저 프리팹에 대한 참조를 public 변수에 보관한 후 발생할 시기에 맞춰 Instantiate를 호출하면 됩니다. Particle System이 Looping이 아니며 Stop Action이 Destroy로 설정된 경우, 한 번 플레이된 후 소멸됩니다.
10.요약
이 튜토리얼에서는 파티클 시스템에서 효과를 생성하여 게임의 디자인(look and feel)을 개선하는 방법을 학습했습니다.
다음 튜토리얼에서 소개할 UI(사용자 인터페이스)는 모든 게임의 중요한 부분으로, 이를 통해 루비의 남은 수명을 표시할 수 있습니다.
게임 이펙트 효과를 유니티에서 설정할때 파티클이라고 하며 이 파티클을 적용하고 수정하는 법을 배웠다!
'1인개발 메이킹로그 > [Web game] 쿠크세이튼3마리오' 카테고리의 다른 글
[4주-18일차] 루비 프로젝트 chapter13 월드 인터랙션 – 대화상자 레이캐스트 (0) | 2022.02.24 |
---|---|
[4주-17일차] 루비 프로젝트 chapter12 비주얼 효과 구현 – 사용자 인터페이스 – 헤드업 디스플레이 (0) | 2022.02.23 |
[3주-15일차] 루비 프로젝트 chapter10 카메라 - 시네머신 (0) | 2022.02.21 |
[3주-14일차] 루비 프로젝트 chapter9 월드 인터랙션 - 투사물 (0) | 2022.02.19 |
[3주-13일차] 루비 프로젝트 chapter8 스프라이트 애니메이션 (0) | 2022.02.15 |