지브러시 Zremesher워크플로의 분기점은 'Topology작업'에 있다. 최근 그래픽카드 성능이 폭발적으로 향상되면서, 굳이 Topology작업을 할 필요가 없어졌다.(개인적 견해) rtx2070급 수준의 그래픽카드라면, 다음 2가지 방법을 선택할 수 있다.
1] Dynamesh Resolution 설정(face&body 결합) → ZRemesher(polypaint) 실행 → Maya UV작업 → 지브러시 맵핑
2] Dynamesh → zPlugin Tpose 실행(or merge) → Maya Topology & UV작업 → 지브러시 맵핑
정석은 2번이다. 1번의 경우, Topology를 생략할 수 있다는 점에서 효율성이 높지만 하드웨어 성능(그래픽,메모리)이 충분해야한다. 뷰포트에서 최대1~2백만 폴리곤의 캐릭터를 애니메이팅할 수 있는 하드웨어 성능이 필요하다. 반면 2번의 경우, topology작업을 통해 면수를 조절할 수 있기 때문에 효율적으로 작업할 수 있다. 단, 성가신 Topology작업과 동시에 엣지 라인에 관한 숙련도가 필요하다.
일단, 1번을 실험해보자. 실험용 컴퓨터의 하드웨어 성능은 인텔 제온 계열의 cpu(딱히 상관없음)와 128G 메모리 및 vega그래픽 카드를 갖추고 있다. 애니메이팅 작업까지 염두에 둔다면, 폴리곤 면수가 3만을 넘겨서는 안 된다.
Workflow 1 Topology생략
Dynamesh에서는 모델의 세부적인 형태까지 작업하지 않는다. 폴리매쉬로 변환하는 과정에서 많은 부분이 유실되기 때문이다. 먼저, 'zPlugin'에서 Tpose manager -> Tpose Mesh를 실행해서 Dynamesh를 붙여준다. 이때 Dynamesh의 resolution을 200~250사이로 설정해야만 캐릭터의 형태가 그대로 유지될 수 있다.
Dynamesh가 결합하면서 발생한 자국은 smoth브러시로 문질러주고, 폴리페인팅으로 색칠을 한다. ZRemesher설정에서 'polypaint'를 활성화 했을 때, 파란색은 면수를 최대한 줄여서 계산한다.(빨간색은 반대)
일단, 기본값에서 ZRemesher를 실행해보자.
ZRemesher에서 폴리페인트 버튼만 클릭한 상태로 실행했을 때의 결과는 끔찍하다. 비록 5,000 이하 면수의 폴리곤이라 하더라도 아무 쓸모가 없다. 폴리페인트 기능을 좀더 확실하게 사용하기 위해서는 ColorDensity값의 변화가 필요하다.
ColorDensity 설정
ZRemesher → polypaint → 'color density'값을 '1'에서 '4'로 올려보자. 해당 기능을 통해 사용자가 지정한 color값을 좀더 엄격하게 계산할 수 있다.
color density : 4(최대값)에서는 32k 면수와 함께 형태가 크게 변형되지 않았다. 32k 폴리곤은 애니메이션용 캐릭터에서는 그럭저럭 쓸만한 편이다. 다만 불필요한 부분(가슴, 배 등)의 필요없는 디테일이 표현되었기 때문에 이를 제거할 필요가 있다.
Target Polygon Counts 설정
Target polygon Counts는 폴리곤 면수를 줄여주는 데에 핵심적인 역할을 한다. 기본값은 100으로 설정되어 있는데 이를 10이하로 줄여준다면 게임용 캐릭터를 뽑아낼 수 있다. 애니메이션 캐릭터용으로는 30정도가 무난하다.
Target polygons Count 수치를 10으로 낮춘 뒤(Color Density:4) ZRemesher를 실행해보자.
파란색으로 칠한 부위는 꽤 큰 모양의 사각형 폴리곤이 형성되었다. 얼굴 부위는 몸통보다 촘촘한 편이지만 다소 아쉬운 결과다. 전체 폴리곤 면수가 20k로 줄어들었지만 얼굴표정 애니메이팅의 중요부위 역시 심하게 줄어버렸기 때문에 실무에 사용하기 어려운 결과물이다.
Target Polygon Counts 최적값 찾기
ZRemesher를 통한 폴리곤 면수의 최적값을 찾기 위해서 중요부위에 빨간색을 칠해보자. 얼굴표정을 연출해야하는 페이스, 손, 관절 부위는 빨간색으로 칠하고, 나머지 의미없는 부위는 파란색으로 폴리페인트를 설정한다.
Target Polygons Count를 '50'정도로 설정했을 때를 기본값이라 한다면, 단순히 색상을 변경하는 것만으로는 28k수준의 폴리곤 면수가 된다.(아래 사진)
목표는 10 ~ 15k수준의 폴리곤이다. 이를 위해 Target Polygons Count의 수는 '30'이하로 설정하고, AdaptiveSize수치를 60정도로 ZRemesher를 실행해보자.
19k폴리곤. 일단 훌륭하다. 이 정도의 수치라면 애니메이션용 캐릭터로 특수효과 씬에 투입시킬 수 있다.
15 ~ 20k 폴리곤이라면 애니메이션용 캐릭터로 사용하기에 문제가 없지만 모바일 게임용 캐릭터로 사용하기에는 무리가 있다. 폴리곤이 찢어지지 않고, 최대 몇 k까지 줄일 수 있는지 좀더 진행해보자.
Target Polygons Count : 20 | Target Polygons Count : 10 |
폴리곤 수 : 12k | 폴리곤 수 : 8~9k |
폴리곤이 무너지지 않은 상태에서 최고 수준은 6~8k까지 가능하다. 최근 모바일 환경이 좋아졌기 때문에 7k 폴리곤 수준의 주인공 캐릭터라면 충분히 돌아가지 않을까한다.
9k수준의 캐릭터를 애니메이팅 ~ VFX씬에 투입했을 때의 결과가 기대된다. 일단 ZRemesher를 사용해서 작업을 할 수 있다는 결과를 확인했기 때문에 기존의 Dynamesh를 좀더 세밀하게 스컵팅한 뒤 나머지 작업을 실행해보자.
[향후 작업 프로세스]
1] PolyMesh상태에서 세부 스컵팅 진행(눈,코,입,귀 정밀묘사 및 주름작업)
2] ZRemesher → PolyMesh 진행(이번 포스팅 내용)
3] SubDiv Lev1 PolyMesh를 마야로 옮긴 뒤 UV작업 및 구멍뚫기
4] 지브러시에서 프로젝트 맵핑 작업
5] Mari or 지브러시에서 노멀, 디스, 칼라맵 뽑기
6] 마블러스 디자이너(옷 제작)