[Unity] Blender에서 Fluid Simulation을 Unity에 가져오기

2024. 4. 3. 17:13Unity

728x90
반응형

Unity는 URP 환경에서 물의 부피를 구할 수 없다.

HDRP로 가야 Water Volume을 구할 수 있어 보이는데, 텍스쳐 셰이더를 이용한 물의 흐름은 부피의 출렁거림을 표현하는 데에 제한적이기 때문에 URP에서도 물리적인 물을 어떻게 구현할지를 찾아보았다.

아래의 유튜브를 참고했다.

 

https://www.youtube.com/watch?v=ihY4KkSXfhI

https://www.youtube.com/watch?v=3EskeIwg2hA

 

 


 

 

블렌더에서는 다음과 같은 Fluid Simulation이 가능하다.

 

 

이런 시뮬레이션을 유니티로 가져와서 Timeline으로 실행하여 보여질 수 있게 할 수 있다.

https://github.com/Unity-Technologies/com.unity.formats.alembic

 

GitHub - Unity-Technologies/com.unity.formats.alembic: Alembic importer and exporter plugin for Unity

Alembic importer and exporter plugin for Unity. Contribute to Unity-Technologies/com.unity.formats.alembic development by creating an account on GitHub.

github.com

 

 

먼저, 블렌더에서 Constraints - Fluid에서 Domain으로 설정된 객체를 선택하여 .abc 파일로 export 한다.

 

 

PackageManager에 "com.unity.formats.alembic"으로 패키지를 설치하고 .abc 파일을 드래그앤 드랍으로 가져오면 fbx 형태처럼 가져와진다.

 

 

Domain의 가장 하위 진짜 액체로 표현될 객체를 선택한 후, Timeline을 새로 만든다.

 

 

Alembic Track 추가,

 

 

Alembic Track의 가장 오른쪽 점 세 개를 눌러서 [Alembic Shot] 추가

 

 

생성된 Timeline 부분을 누르고 [Stream Player] 부분에 fbx 끌어다 놓기

 

 

재생하면 시뮬레이션이 Timeline에서 재생으로 보여지게 된다.

 

 

주변 경계면으로 쓰인 컵 모델링을 붙여주면 그럴듯한 모양이 나온다. 메테리얼을 잘 쓰면 더 좋을 듯 하다.

 

 

이 기술의 단점은 모바일 환경에서는 사용할 수 없고, Mac과 Window의 PC 빌드만 지원한다는 점이다...

하나 더, 물 자체가 부피를 차지하고 있기 때문에 Vertex 수와 Polygon 수가 높다는 점.

728x90
반응형