Particle System을 이용하여 이펙트 만들어주기
유니티에서 지원하는 Particle System 을 이용하여, 피격시 나오는 이펙트를 만들어 보겠습니다.
Partice System 오브젝트 만들기
아래 그림과 같이 GameObject -> Create Other -> Particle System 을 눌러 새로운 Particle 오브젝트를 만들어줍니다. 그리고 아래 그림과 같이 이름을 Eff_Damage 로 변경해줍니다.
그러면, 아래 그림과 같이 흰색 구를 방출하는 Particle 기본 값을 볼 수 있습니다. 우측하단의 Pause 와 Stop 을 이용하면, 지금 제작중인Particle 이 어떤 모습으로 플레이 되는지 프리뷰 해볼 수 있습니다.
Partice System 컴퍼넌트 속성 변경하여 피격 이펙트 오브젝트 제작하기
이제, 이렇게 생성한 Particle System 의 속성을 변경하여, 피격 이펙트를 만들어 보도록 해보겠습니다.
우측의 인스펙터 창을 보면, 아래와 같이 해당 파티클의 속성을 변경할 수 있는 창이 나옵니다. 아래 그림을 참조해서 값을 수정해줍니다.
파티클 Life Time (화면에 존재하는 시간) 변경하기
먼저, 이펙트를 구성하는 파티클들의 LifeTime (화면에 그려지는 시간) 을 설정해보도록 하겠습니다.
위의 그림에서 1번을 클릭해줍니다. 그리고, 아래 그림과 같이 Random Between Two Constants 를 선택해줍니다. Random Between Two Constants 는 정의된 2개의 값의 사이에서 랜덤하게 값을 가져오는 설정입니다.
그리고, 아래 와 같이 2개의 옵션값이 생기면, 각각 0.5, 0.3 을 넣어줍니다. 따라서, 이제 이펙트를 구성하는 파티클은 0.5 초와 0.3 초 사이의 값의 라이프타임을 갖게 됩니다.
파티클의 최초 생성시 속력, 크기, 각도값 변경하기
이와 같은 방법으로 2번, 3번, 4번 도 Random Between Two Constants 를 선택해주고, 아래와 같이 값을 넣어줍니다.
2번은 Start Speed 로, 파티클 생성시, 방출 속력값을 정의합니다.
3번은 Start Size 로 파티클 생성시, 파티클의 상대적 크기를 정의합니다.
4번은 Start Rotation 로, 파티클 생성시, 어떠한 각도로 나오게 할지를 정의합니다.
파티클의 최초 생성시 색 변경하기
그리고, 5번을 클릭해서 아래와 같이 Random Between Two Colors 를 선택해줍니다.
5번은 Start Color 로, 해당 파티클의 최초 생성시 색을 선택해줄 수 있습니다.
그리고, 위 그림의 Color 항목 부분을 클릭하고 아래와 같이 색 정보를 수정합니다.
두번째로, 아래 Color 부분을 클릭하고 아래와 같이 색 정보를 수정합니다.
Start Color 에 2가지 색을 선택해주었음으로, 파티클 생성시 정의한 2가지색 사이의 색으로 파티클이 생성되게 됩니다.
파티클이 서서히 사라지는 효과 구현하기
다음으로, 시간이 지남에 따라서, 해당 파티클이 서서희 사라지는 효과를 만들어 보도록 하겠습니다.
아래 그림과 같이 Color Over Lifetime 의 좌측 체크 박스를 체크해주고, 우측의 흰색으로 되어있는 Color 부분을 클릭해서 Gradient Editor창을 열어줍니다.
그러면, 아래와 같이 Gradient Editor 창이 열립니다. 칼라 바의 우측 상단을 클릭하면 그림과 같이 표시가 나오고 표시를 클릭합니다.
그러면, 아래 그림과 같이 해당 표시의 속성값이 나오고 그중에서 Alpha 값을 0 로 수정합니다. 그러면 해당 표시가 검은색으로 변하는 것을 볼 수 있습니다. 검은색이 의미하는 것은 파티클이 완전히 투명하게 표현된다는 것을 의미합니다.
파티클이 커지면서 나타나는 효과 만들기
그리고 다음으로는 시간이 지남에 따라서 파티클의 크기가 변경되는 기능을 구현해보도록 하겠습니다.
먼저, Size Over Lifetime 의 체크박스를 체크해주고 Size 메뉴 우측의 그래프 칸을 클릭해줍니다.
그럼 인스펙터 창 최하단에 아래 그림과 같이 Particle System Cuves 창이 활성화 되게 됩니다. 아래 그림과 같이 기울기가 높았다가 낮아지는 커브를 선택해줍니다. 이 그래프의 의미는, 상대적인 크기가 0에서, 1까지 기울기가 점점 감소하여, 처음에는 급격하게 커지다가, 나중에는 커지는 속도가 점점 감소하는 형태로 파티클의 크기가 변경되게 된다는 의미입니다.
파티클이 뱅글뱅글 회전하며 튀어 나오는 효과 만들기
다음으로 시간이 지남에 따라 파티클이 뱅글 뱅글 회전하는 효과를 추가해보도록 하겠습니다.
Rotation over Lifetime 의 좌측 체크박스를 체크해주고, 우측의 화살표 ▼ 를 선택해줍니다.
그럼 아래와 같은 선택 리스트가 나오고 이 중에서 Random Between Two Constants 를 골라줍니다.
그리고 아래와 같이 -45, 45 값을 넣어줍니다. 이 의미는 파티클이 시작과 동시에 해당 이펙트가 종료될때까지 -45 도에서 45도까지 360도 회전하면서, 화면에 나올 수 있다는 것을 의미합니다.
파티클의 원형 소스 데이터 변경하기
다음으로 Particle 의 모양을 변경해 보도록 하겠습니다.
피격 이펙트를 만들기 위하여 프로젝트 폴더의 2_Resources 의 1_Effect 의 0_Texture 의 star.png 2D 이미지 소스를 사용하도록 하겠습니다. 유니티에서 배경이 투명한 2D 이미지 소스를 사용하기 위해서는 PNG 포맷의 파일을 널리 사용하고 있습니다.
그리고, 아래 그림과 같이 1_Materials 폴더에 Mat_Star 라는 메터리얼을 생성해주고, 아래 그림과 같이 값을 변경해줍니다. 그리고, 아래 그림과 같이 위에서 복사해논 star.png 파일을 적용해줍니다.
이렇게 만들어진 Mat_Star 메터리얼을 아래 그림과 같이 Eff_Damage 파티클 오브젝트의 Rander 속성의 Material 부분에 끌어다 넣어줍니다.
그리고, 씬탭에서 Simulate 를 눌러서, 프리뷰를 해보면 아래 그림과 같이 별들이 나오는 이펙트를 확인 할 수 있습니다.