2024. 7. 24. 18:29ㆍUnity
유니티에서는 셰이더를 이용해서 물 표현이 가능하다. 이렇게 만든 물에 오브젝트와 인터랙션이 가능한 물 파동 효과를 넣는다면 훨씬 사실적인 표현을 할 수 있을 것이다.
표현 방법에는 여러가지가 있다. 하나씩 알아보고 정리하면 좋을 것 같다.
VFX로 물 표현 응용하기
VFX도 물 표현이 가능하다. Asset Store에 정말 괜찮은 유료에셋이 있는 것을 발견했다.
직접 만들기에는 연구할 시간이 필요해서 대략적으로 분석만 해보았다.
물 프리팹으로 총 9개가 포함되어 있는 것을 볼 수 있다.
- Wake 프리팹이 왼쪽, 오른쪽, 뒤쪽
- 물 거품이 측면, 앞쪽, 뒤쪽
- 물 스프레이가 앞쪽 A, 앞쪽 B, 뒤쪽
총 9개의 효과가 합쳐서 하나의 효과를 만들어 내고 있다.
4개의 텍스쳐만으로 이런 효과를 만들어낼 수 있다니 신기하기도 하다.
어쨌든 VFX를 이용한 물 응용은 추후에 더 알아보는 것으로...
파티클 시스템(Particle System)으로 물 표현 응용하기
텍스쳐 이미지를 이용한 물 스플래시 표현도 당연히 가능하다.
위의 영상을 참고하면, 기존의 찰랑거리는 물 표현 위에 두 가지 표현을 더했다. 영상에서는 Godot 엔진이지만 나는 Unity에서 적용해보았다.
물 표면에서 퍼지는 효과 + 총알에 맞아 물이 솟구치는 효과
물이 표면에서 퍼지는 효과
영상에서도 나왔듯이 "BrokenGlassBullet"를 구글 검색 후 적당한 원형 이미지를 받는다. (저작권에 주의)
다운 받은 이미지를 포토샵에서 잘 편집하여 사용한다. (자르기 + Blur 효과)
파티클 용도의 메테리얼이기 때문에 [Particles/Standard Unlit] 셰이더를 사용했다.
파티클 설정 중 [Color over Lifetime]으로 시간이 갈 수록 Alpha 값을 낮춰 투명도를 줄 것이기 때문에
[Rendering Mode] - [Fade]로 설정해야 한다.
이제 파티클 해당 텍스쳐를 사용할 파티클 설정을 알아보자.
[Start Lifetime] : 0.2 설정으로 원형 텍스쳐가 빠르게 나타나고 없어지도록 설정했다.
[Start Rotation] : 0~180 설정으로 원형이더라도 최대 180도 degree 각도까지 랜덤으로 회전하여 살짝의 변형을 주었다.
[Rate over Time] : 5 설정으로 생성되는 텍스쳐 수를 조절한다.
[Shape] : [Edge]로 설정, [Radius] 값을 최대한 낮춰서 한 점에서 텍스쳐 파티클이 생성되도록 설정했다.
[Color over Lifetime] : 끝으로 갈 수록 알파 값을 낮춰 점점 투명해지도록 설정.
[Size over Lifetime] : 그래프를 조절하여 파티클의 스케일을 점점 크게 만들되 너무 커지지 않도록 설정했다.
[Render Mode] : [Horizontal Billboard] 설정으로 수평상에서 빌보드로 카메라를 바라보도록 설정했다.
[Material] : 위에서 [Particles/Standard Unlit], [Fade]로 설정된 메테리얼을 넣는다.
내가 따로 만든 물 위에 올려놓으면 이런 식으로 볼 수 있다.
물이 솟구치는 효과
물이 어떤 힘에 의해 위로 솟구치는 모습을 표현하기 위해서는 그런 효과를 가진 텍스쳐를 사용하면 된다.
Water Splash Texture를 검색해서 투명한 배경을 가진 물 텍스쳐를 찾아서 편집했다.
텍스쳐 특성상 같은 텍스쳐가 계속 나오면 복사한 티가 나고 이상할 수 있기 때문에 하나를 Mirror 하여 두 파티클 시스템을 사용할 예정이다.
물 스플래시 효과의 Particle System 설정과 메테리얼 설정은 아래와 같다.
특징으로는,
[Shape] - [Cone] : 원뿔 모양의 Emitter로 반지름을 작게하여 살짝씩 회전 랜덤을 넣었다.
[Render Mode] - [Mesh] : Plane 메쉬로 사용했다.
[Render Alignment] : [Local]로 설정.
Mirror 되어있는 다른 스플래시 파티클에서는 [Color Mode] - [Additive]로 설정된 메테리얼로 적게 생성되도록 해서 만약 두 파티클이 겹친다면 좀 더 밝게 보이도록 설정했다. 다른 설정들은 똑같이 유지했다.
여기까지 되었다면 바닥 파동과 솟구치는 효과까지 만든 것이다.
물안개 효과
자연스러운 물 튀는 현상이 되기 위해서는 만든 파티클 배경에 흐릿한 물안개 또는 물보라 텍스쳐도 넣으면 좋다.
포토샵을 이용해 흐릿한 도형을 만든다.
물안개 파티클도 생성한다.
물안개 파티클까지 포함된 완성된 물 효과이다.
Hierarchy 상으로 보면 총 4개의 파티클이 쓰인 것을 볼 수 있다.
'Unity' 카테고리의 다른 글
[Unity] 나무와 풀이 바람에 영향을 받는 것처럼 보이는 셰이더 만들기 (0) | 2024.07.09 |
---|---|
[Unity] VFX를 이용해 모닥불 만들기 (0) | 2024.05.21 |
[Unity E-Book] 모바일 게임 퍼포먼스 최적화하기(Profiling, Memory, Code Architecture) (1) | 2024.05.09 |
[Unity] Unity Muse 사용해보기(3) -Sprite 편 (2) | 2024.05.02 |
[Unity] Unity Muse 사용해보기(2) -Animation 편 (0) | 2024.04.30 |