Posts 유니티 - 모델 트랜스폼 구조 최적화하기
Post
Cancel

유니티 - 모델 트랜스폼 구조 최적화하기

문제점


Skinned Mesh가 적용되는 게임 오브젝트의 경우,

하이라키에서 트랜스폼 구조를 확인해보면

image

이렇게 Bone 별로 각각 존재하여, 굉장히 많은 게임오브젝트들로 이루어져 있다.

그런데 유니티 엔진에서는 부모 게임 오브젝트의 트랜스폼에 변경사항이 생기면

모든 자식 트랜스폼에 변경이 발생한다.

한마디로, 위와 같이 무수히 많은 자식 오브젝트가 존재하면 성능에 좋지 않다는 의미이다.


해결책


Project 윈도우에서 해당 모델 파일을 선택한다.

인스펙터 창에서 Rig 탭을 클릭한다.

image

여기서 만약 Optimize Game Objects 옵션이 나타나지 않는다면

Animation TypeGeneric 또는 Humanoid로 바꾸고,

Avatar DefinitionCreate From This Model로 선택한다.

마지막으로 Optimize Game Objects에 체크하고 Apply 버튼을 클릭한다.


image

이제 트랜스폼 구조가 아주 단순화된 것을 확인할 수 있다.


특정 본 나타내기


그런데 특정한 본을 기준으로 무기를 장착해야 한다거나 하는 이유로

본의 트랜스폼을 드러내야 하는 경우가 있을 수 있다.

이런 경우에는 Optimize Game Objects 하단의 Extra Transforms to Expose를 펼치고,

원하는 본을 찾아서 체크한 뒤 Apply를 누른다.

image

그러면 해당 트랜스폼이 드러난 것을 확인할 수 있다.

image


특정 오브젝트만 최적화하기


모델 파일에 대한 최적화 설정은 해당 메시를 사용하는 모든 오브젝트에 적용된다.

이를 개별적으로 적용하려면,

image

루트 게임 오브젝트에서 Animator 컴포넌트에 우클릭하고

Optimize Transform Hierarchy를 클릭하여,

해당 오브젝트만 최적화하도록 설정할 수도 있다.

This post is licensed under CC BY 4.0 by the author.