- 서론
유니티 카테고리에 글을 올릴까 하다가, 마야 작업하시는 분들이 아무래도 더 해당되는 것 같아서 마야 카테고리로 집어넣었습니다 ㅎㅎ 다만 유니티를 주로 다루시는데 마야를 쓰게 되신 분들이 혹시나 있을까 하여 마야를 쓰시는 분, 유니티를 쓰시는 분 모두 고려해서 글을 작성하였습니다.
- 목차
- 그냥 마야에서 작업해서 FBX로 넘기면 되는 것 아닌가?
- 유니티와 마야는 메쉬와 머터리얼 시스템이 다르다
- 프로그램 추천 - NVIDIA Texture Tool https://developer.nvidia.com/nvidia-texture-tools-exporter
그냥 마야에서 작업해서 FBX로 넘기면 되는 유니티에서 쓸 수 있는 것 아닌가?
결론적으로 말하면 아닙니다. 마야에 Send To Unity라는 기능도 있으나, 바로바로 호환되게 하는 기능이 아니라 내보내는 작업 자체의 자동화 및 간소화를 도와주는 기능입니다.
다시 말해서 유니티랑 마야는 기본적으로 다른 메테리얼 시스템과 메쉬시스템을 가지고 있기 때문에 호환성을 항상 고려해야 합니다. 이러한 작업이 매끄럽지 못할 경우, 아티스트 입장에선 마야에서 만족스럽던 결과물을 유니티상에서 충분하게 표현하지 못할 수도 있습니다.
근데 이러한 메쉬와 머터리얼 시스템이 어떻게 다른걸까요?이 부분은 아마 유니티만 다루시는 분 입장에서도 혼동스러울 것이고, 마야만 다루시는 분에게도 혼동스러우실 겁니다. 따라서 양쪽 툴 모두 비교하면서 알아볼게요
지금 위 사진에 나오는 내용대로, 마야는 사각형 메쉬 시스팀이고, 유니티도 사각도 지원하지만 기본적으로는 삼각형 메쉬시스템으로 작용합니다. 등등 시스템적으로 차이는 수없이 많지만, 어떻게 다른지 깊게 파시기 보다는, 지금은 일단 "
마야랑 유니티는 서로 간 호환이 1:1로 안되는구나"라고 받아들이시는 게 당장은 명료할 것입니다. 따라서 최대한 유니티에 적합하도록 마야에서 들여온 모델링 파일에 폴리곤작업을 어느 정도 해줘야 되는구나로 받아들이시면 될 것 같습니다. 혹은 극단적인 경우지만 마야에서 작업한 것을 사실상 유니티에 쓸 수없는 작업도 꽤 있습니다 (예를들어 넙스 같은 것들)
메쉬뿐 아니라 머터리얼도 다르다고?
메쉬 뿐 아니라 머터리얼 시스템도 다릅니다. 개인적으로 처음에 유니티랑 마야가 잘 호환되는 줄 알고 호환시키려다가 애를 많이 먹었던 부분입니다. 일단 결론적으로 어느 정도 호환되는 기본 머터리얼도 물론 있지만 사실상 마야에서 작업을 해도 텍스쳐랑 해서 머터리얼 작업을 유니티를 위해서 최종적으로 다듬어 주셔야 합니다.
아마 유니티를 다루시는 개발자 분이라면 노말맵, 알비도, 베이스컬러 등등의 용어가 친숙하실 것이고, 마야로 주로 작업하신 분이라면 범프맵이나 파일별로 쪼개서 작업하는 저 그래프 창에 익숙하실 겁니다. 둘이 비슷하면서 많이 다른데요, 사실상 머터리얼 시스템이 많이 다르다고 해야겠죠.
마야 스크립팅이나 유니티에서 최대한 쉐이더를 조작하여 비슷하게 만드는 워크플로우를 간단하게 할 수 있다고 알 고있지만 이것도 프로젝트마다 퉁칠 수 없다고 합니다. 결론적으로 마야에서 작업한 모델링을 유니티에 가져오려면 유니티에서 머터리얼과 메쉬를 전반적으로 작업을 해주어야 합니다.
마야에서 유니티로 Export 하는 경우 팁.
전반적인 모든 과정을 경우별로 다 설명하기엔 저도 많이 부족합니다. 그래서 제가 많이 애를 먹었던 메쉬변환 문제와 텍스쳐, 범프맵을 유니티에 적용하는 사례를 보여드리겠습니다.
1. 메쉬의 경우: 폴리곤으로 작업 후 Smooth 적용하기
메쉬 부분은 저도 연구가 많이 필요한 부분이지만, 일단 마야에서 Smooth작업이나 Smooth 미리 보기 상태로 추출해서 유니티에서는 매끄럽지 않게 표현되는 이슈를 많이 보았습니다. 이런경우에는 Smooth 설정해서 디비전을 어느정도 올려주거나, 폴리곤 Smooth 미리보기상태로 작업해서 렌더링 상태에서는 적용 안된 채로 FBX가 추출된 것은 아닌지 점검해 보시면 될 것 같습니다.
개인적으로는 메쉬 부분이 유니티에서 살짝 정확하게 표현되지 않는다는 느낌을 받아서 이 부분에 대한 이슈를 정리해서 포스팅하면 어떨까 합니다.
2. 머터리얼의 경우,
- 텍스쳐 UV를 뽑아서 그대로 입히기
- 범프맵을 노말맵화 하기. (참고로 둘은 비슷하나, 노말맵이 좀 더 고도화된 표현을 할 수 있다는 차이가 있습니다.)
- 텍스쳐 UV를 그대로 뽑아서 유니티에 입히기
사실 UV mapping, Unwrapping이라는 표현이 정확합니다. 다만 유니티를 다루시는 분을 위해 조금 쉽게 풀어서 이렇게 표현하겠습니다. 쉽게 말해서 마야에서 3D 페인트툴을 이용해서 색칠을 한경우는 물론, 마야에서만 지원하는 머터리얼을 사용해서 칠한 경우에 그대로 유니티에 입히기가 조금 까다로울 수 있는데요. 이땐 마야에서 UV좌표, 즉 캐릭터에 입혀진 이미지를 좌표대로 2D 맵핑한 파일을 유니티의 베이스맵에 그대로 가져오는 과정을 거치는 게 올바른 시작이라고 할 수 있습니다.
*참고로 마야에서는. iff파일이 자주 이용되는데, 유니티에서는 호환되지 않으니, 마야에서 PSD, PNG, JPG 등으로 변환하는 작업이 필요합니다.
- 범프맵을 노말맵화 하기
간단하게 말해 범프맵 보다 노말맵이 조금 더 고도화된 버전입니다. (범프맵은 Y좌표만 컨트롤 하지만, 노말은 X,Y,Z를 모두 컨트롤 합니다) 사실상 변환기를 통해서 사실상 동일하게 쓰는 경우도 많습니다. 물론 이 부분도 세부사항으로 들어가면 알아야 할게 많으니 일단은 마야에서 작업한 범프맵을 변환해서 유니티의 노말맵으로 쓰는구나!로 이해해 주시면 될 것 같습니다.
일단 변환에 앞서, 사용 배경을 말씀드리자면, 마야의 범프맵과 유니티 노말맵은 둘다 표면 질감을 표현하지만 호환되지 않습니다. 애초에 범프맵은 사실상 지원하지않는 유니티인데다가, 마야에서는 3D Paint Tool로 질감을 표현할 때 범프맵을 사용하기 때문에 더욱더 즉각적으로 임포트해서 사용하는 작업은 안되고요.(물론 마야에서 3D Paint Tool 이외에 노말맵으로 작업하는 워크 플로우는 있습니다.) 즉 정리하자면, 마야에서 작업한 범프맵을 유니티의 노말맵으로 쓰고싶다면, 아래 예시에서 오른쪽 범프맵 이미지를, 변환기를 통해 왼쪽의 노말맵변환 작업을 해주어야 합니다. 이때 유용한 툴 중 하나가 바로 엔비디아 텍스쳐 툴입니다.
엔비디아 텍스쳐 툴 말고 서브스턴스 디자이너 등 다양한 프로그램이 있으나, 마야에서 파일을 따로 뽑아서 작업하기에 엔비디아 툴이 많이 무겁지도 않고, 변환 시 세부조정도 쉽게 가능해서 자주 쓰게 되는 것 같습니다. 포토샵을 사용하신다면 플러그인도 적용 가능하고요. 마야나 포토샵을 두루 다루는 아티스트 사용자입장에서는 꽤나 편리하다고 할 수 있을 것 같습니다.
이렇게 마야에서 유니티로 작업할 때 메쉬아 머터리얼에 대한 주의점을 알아보았는데요. 이외에도 다양하게 마야와 유니티에서 작업할때 주로 생기는 이슈와 해결법이 있다면 자주 공유드리겠습니다.
도움이 되었기를 바랍니다.
'Technical Art > Maya' 카테고리의 다른 글
마야 파이썬 스크립팅 예제: 1/3의 면을 랜덤선택하여 머터리얼 바꾸기 (2) | 2023.10.09 |
---|