[Unity] 물 효과 연구(1) - VFX, 텍스쳐 파티클 시스템 사용하기

2024. 7. 24. 18:29Unity

728x90
반응형

 

 


 

 

유니티에서는 셰이더를 이용해서 물 표현이 가능하다. 이렇게 만든 물에 오브젝트와 인터랙션이 가능한 물 파동 효과를 넣는다면 훨씬 사실적인 표현을 할 수 있을 것이다.

 

 

표현 방법에는 여러가지가 있다. 하나씩 알아보고 정리하면 좋을 것 같다.

 

 

VFX로 물 표현 응용하기

VFX도 물 표현이 가능하다. Asset Store에 정말 괜찮은 유료에셋이 있는 것을 발견했다.

직접 만들기에는 연구할 시간이 필요해서 대략적으로 분석만 해보았다.

 

Boat VFX | 시각 효과 파티클 | Unity Asset Store

Add depth to your next project with Boat VFX from RealtimeVFXStore. Find this & more 시각 효과 파티클 on the Unity Asset Store.

assetstore.unity.com

 

 

물 프리팹으로 총 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개의 파티클이 쓰인 것을 볼 수 있다.

728x90
반응형