Chapter 8-1. 모닥불 : 모닥불 구현(Particle System, Light)
카테고리: Unity Lesson 3
태그: Unity Game Engine
인프런에 있는 케이디님의 [유니티 3D] 실전! 생존게임 만들기 - Advanced 강의를 듣고 정리한 필기입니다. 😀
🌜 강의 들으러 가기 Click
Chapter 8. 모닥 불에 고기 굽기
모닥불 구현
🚖 장작 만들기
장작 오브젝트 4 개 조합. 이 장작 4 개에 모닥 불을 피울 것이고 Graphics
라는 빈 오브젝트의 자식들로 넣어준다. Graphics
로 묶어 줌.
🚖 불 만들기
Particle System
Flame
이름의 Particle System. 입자 하나 하나가 불 꽃이 된다.
- Transform
- 장작 위에서 불이 타도록 위치를 장작 위로 조정
- Scale 로 입자들 크기를 조정
- X 축 중심으로 -90 도 회전시켜 주어 불 꽃 입자들이 수직적으로 하늘 위로 올라갈 수 있도록 해주었다.
- Main
- Start Lifetime, Start Speed, Start Size, Start Rotation, Start Color 을 Random Between Two Constant 로 지정하여 입자들마다 수명, 속도, 크기, 회전값, 컬러를 랜덤하게 해주었다.
- Start Rotation : 입자들마다 -15 ~ 15 도 사이에서 랜덤한 회전값을 가진다.
- Start Color : 주황색, 빨간색 이 두 색 사이에서 랜덤한 색상을 가진다.
- Looping 반복 재생
- Play On Awake 활성화 되자마자 재생
- Start Lifetime, Start Speed, Start Size, Start Rotation, Start Color 을 Random Between Two Constant 로 지정하여 입자들마다 수명, 속도, 크기, 회전값, 컬러를 랜덤하게 해주었다.
- Emission
- 입자들은 한번에 100개씩 태어나게 한다.
- Shape
- 이 전체 파티클 시스템은 뒤집어진 원 뿔(Cone) 모양을 그린다.
- 콘의 경사는 30도
- Raius 를 줄여 좁은 한군데에서 입자들이 태어날 수 있도록 하였다.
- 이 전체 파티클 시스템은 뒤집어진 원 뿔(Cone) 모양을 그린다.
- Color over LifeTime
- 주황색에서 시작하여 수명의 중간 즈음부터는 투명해지도록 하였다.
- 입자들이 처음엔 주황 빛이 강하다가 수명이 끝나갈 때쯤엔 자연스럽게 투명해지며 사라지도록
- Size over LifeTime
- 처음엔 작다가 초반에 뽝! 커지고 점점 자연스럽게 크기가 작아지며 사라지도록 하였다.
- Rotation over Lifetime
- 불 꽃 입자들은 수명내내 15 회전 속도로 회전한다.
불의 Material
모닥불 파티클 시스템에 입힐 Material 로
Fire
이름의 Material을 만들었다.
- Shader 는 Mobile/Particles/Additive 로 설정해주었다.
- Additive 쉐이더
- 색을 표현할 때 RGB 3 가지만 사용하여 뚜렷한 색을 표현한다.
- 뚜렷하게 색을 표현하고 어두운 색은 최대한 표현하지 않기 떄문에 ‘불’ 을 표현하기에 좋다.
- 검은색 빛은 마치 투명한 것처럼 다룬다. 검정색을 투명도처럼 존재하지 않는 빛으로 다루기 때문에 어두운 색 Material 로 사용할 것이라면 이 쉐이더는 어울리지 않는다.
- 색을 표현할 때 RGB 3 가지만 사용하여 뚜렷한 색을 표현한다.
- 파티클 시스템의 모양이 될 불 모양의 Texture 이미지를 할당해준다.
- Additive 쉐이더이기 때문에 어두운 색은 다른 색에 의하여 덮혀져 최대한 가려지고, 색을 뚜렷하게 표현할 것이다.
- Additive 쉐이더
만든 Matrial을 불 파티클 시스템의 머테리얼로 설정해주었다.
🚖 검은 연기 만들기
Particle System
불의 검은 연기를 표현하기 위한 파티클 시스템. 이름은
Smog
Flame
Particle System과 거의 동일한 설정을 가지는 파티클 시스템이기 때문에 Flame
을 복사하여 만들었다. 불이 재생될 땐 Flame
와 함께 하나의 파티클 시스템으로서 재생될 것이기 때문에 Flame
의 자식으로 넣어 주었다.
- Transform
- 검은 연기는 보통 불의 윗부분에서 피어나므로
Flame
보다 위에 위치하도록 Y 위치를 좀 올려주었다.
- 검은 연기는 보통 불의 윗부분에서 피어나므로
- Emission
- 일반 불보단 입자 갯수가 덜해야 하므로 Rate over Time 은 30개
- Size over Lieftime
- 일반 불과는 다르게 수명에 따른 크기 커브를 지정해주었다. 검은 연기 답게..
- Rotation voer Lifetime
- 일반 불보단 좀 더 빠르게 회전할 수 있도록 회전 속도를 올려주었다.
연기의 Material
연기 파티클 시스템에 입힐 Material 로
Fire_Smog
이름의 Material을 만들었다.
- Shader 는 Legacy/Particles/Alpha Blended 로 설정해주었다.
- Alpha Blended 쉐이더
- 색을 표현할 때 RGBA 투명도까지 4 가지를 사용한다.
- Additive 와 다르게 검정색을 표현할 수 있다. 👉 검은 연기 표현에 적합
- 따라서 사용하려는 텍스처의 이미지 배경이 검정색이면 안된다.
- 색을 표현할 때 RGBA 투명도까지 4 가지를 사용한다.
- 파티클 시스템의 모양이 될 불 모양의 Texture 이미지를 할당해준다.
- Tint Color 를 검정 계열의 어두운 색으로 하여 연기를 어둡게 표현하였다. 투명도도 좀 올려주어 살짝 투명하게 표현되도록 하였다.
- 이제 이 Material을 가지는 오브젝트는 기본적으로 검정색이다. 색을 지정해도 이 검정색 위에 섞여서 나타나게 된다.
- Alpha Blended 쉐이더
만든 Matrial을 연기 파티클 시스템의 머테리얼로 설정해주었다.
🚖 불 꽃 입자의 ‘빛’만들기 💡
Light
Hierarchy - Create - Light -
Point Light
이 포인트 빛을 불🔥 파티클 시스템 입자 하나 하나의 빛으로 넣어 줄 것이다.
- Range : 빛이 도달할 사정 거리
- Color : 빛의 색
- Intensity : 빛의 강도
설정이 끝났으니 파티클 시스템 입자의 빛으로 태어나게 하기 위하여 프리팹으로 만들었다.
파티클 입자에 Light 적용
Flame
Particle System 의 Light 모듈- 프리팹으로 만들어 둔
Point Light
을 할당해준다. - Ratio 0.1 👉 파티클 입자들의 10 % 정도는 이 빛을 가진다.
- 프리팹으로 만들어 둔
🚔 최종적인 모습
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글남기기