Unity/Unity Study

[Pixyz Studio] Decimate를 통한 유니티 캐릭터 최적화 (실습)

pnltoen 2023. 7. 25.
반응형

Pixyz Studio

Unity Technologies


서론

 

캐릭터의 옷을 바꾸고 당연히 가볍겠지 생각하고 들고 왔더니... Triangles의 개수가 10224개에서 287842개로 약 28배 늘어났다. 타겟 기기가 Occulus여서 찾아보니 750k에서 1M의 삼각형 개수가 권고사항이던데... 메인 캐릭터이다 보니 여기서 Lighting 좀만 넣어도 개수가 엄청나게 불어난다.

 

1000k triangles per frame: Quest or Quest 2? What is the difference? Why the update from 100k?

The official documentation page "Testing and Performance Analysis" has been updated to state that the recommended "load" for tris count is 750-1000k.  This used to be 100k. A professional who constantly works with Oculus Quest VR in a major firm recently

communityforums.atmeta.com

 

 

사실 새로운 캐릭터의 엄지 손톱 하나를 잃어 버렸고 옷도 너무 길어서 이렇게 된 김에 다시 해보도록 하자.

 

본문

 

Decimate

Decimation은 크게 2가지의 설정 방법이 있다. 하나는 Ratio이고 다른 하나는 Value이다.

위의 예로 설명을하면 약 287000개의 삼각형을 갖고 있는 옷의 10% Ratio으로 decimate를진행하면 28700개로 또는 28700이라는 값을 넣어서 차이를 확인할 수 있다.

 

 

10% 정도로 줄이니까 눈에 띄게 퀄리티를 낮추지 않는 선에서 decimate가 가능하였다. 옷과 같이 속면이 필요하지 않은 경우에는 decimate 뿐만 아니라 한가지 더 진행할 수 있다. skinned mesh를 이용하는 방법인데 옷의 속면의 mesh를 삭제하는 방법이다.

 

Phantom Mesh

 

 

자세히 보면 안에도 mesh가 되어 있는 것을 볼 수있다. wireframe으로 보면 좀 더 명확하게 볼 수 있는데 다음과 같다.

 

 

보통 온보딩 때 해당 내용과 관련해서, 옷은 겉면과 속면이 있지만 mesh는 그렇지 않다고 비유하고 있다. 해당 면에대해 없얘기위해 Phantom mesh 기능을 사용한다.

 

 

Advnaced에 custom 값을 최대한 낮게 잡아서 사용하도록 하자.

 

 

약 2450개 정도의 triangles이 감소하였다. 결과적으로 눈에 보이는 차이는 크지 않지만 사용되는 mesh가 90% 넘게 감소되었다. 실제 Mixed lighting 시 삼각형이 중복 카운트 되는 것을 감안했을 때 엄청난 발전이라고 생각한다.

 

이 후 조금 더 수정해서 15878개로 수정하였음

 

 

Rigging (사전 작업 + 옷 바꾸기)

 

옷과 신발이 묶여 있다. 해당 메쉬를 나눠주도록 하자. 

 

이 방법을 쓰면 각각의 파트가 다 나눠지게 되는데 이 경우에는 merge를 통해서 합치고 transform을 바꿔주면서 진행한다.

 

CAD에서는 Origin 또는 원점 그리고 유니티에서는 Pivot이 따로 놀아서 설정하기가 힘들다. 이를 유니티에서 수정하도록 하자. 솔직히 이 부분은 아직도 모델러가 해야 한다고 생각하고 있음. Selction의 원점으로 Pivot을 설정한다.

 

이 후 붙여주고 악세사리 몇가지 추가해주면된다. 쓱쓱싹싹.

 

사실 이거는 정석적인 방법은 아니다. 유튜브 찾아보니 2D 형태의 옷을 만들고 skin simulation을 주로 하는 것으로 확인하였음.

 

accuRig

 

accurig라는 툴을 발견 하였는데 따른 툴 보다 Riggin 하는 것이 편한 것 같다. 해당 방법은 튜토리얼 영상을 참고하였는데 3분까지만 봐도 충분함.

 

https://actorcore.reallusion.com/auto-rig

 

actorcore.reallusion.com

 

애니메이션 돌려보다 어깨부분 decimate가 과하게 들어간 것을 확인했는데...처음부터 다시하는 것은 머리아프니 이 글을 읽는 독자분들은 하나하나 체크해보면서 하시면 좋을 것 같습니다 (급 마무리) 개인적으로 찾아볼 때부터 되게 노가다의 영역이라고 들었는데 컴퓨터로 노가다 해봤다고 생각함... 리깅이나 애니메이션은 아무리 봐도 재미도 없고 관심사 밖인 것 같다... 그냥 이런 것도 있구나 하고 넘어갈 예정

 

반응형

댓글