Cubism SDK for Unity의 성능 튜닝 정보

[마지막 업데이트 날짜: 2020/01/31]

 

개요

기본적으로는 퍼포먼스 튜닝은 Unity의 프로파일러를 이용해 처리의 무거운 부분을 확인하면서 실시해 주세요.

Cubism SDK에서는 모델 구조에 따라 프로그램의 성능에 영향을 줄 수 있습니다.
또한 Live2D SDK for Unity는 구조의 명확성을 선호하기 때문에 일부 의도적으로 성능을 희생하는 부분이 있습니다.
다음은 SDK의 성능에 영향을 주는 점을 설명합니다.

 

모델 구조

자세한 내용은 여기를 참조하십시오.

 

프로젝트 구조

Unity 이벤트 함수

앞서 언급했듯이 Live2D SDK for Unity는 구조의 친숙함을 우선합니다.
그 때문에, 각 컴퍼넌트의 갱신 처리는, LateUpdate() 등의 Unity의 이벤트 함수로부터 실시하고 있습니다.
이 Unity의 이벤트 함수는 호출 비용이 적지 않습니다.
SDK를 그대로 사용하여 모델을 여러 개 표시하는 경우 실행 환경에 따라 매우 성능이 나빠질 수 있습니다.
성능에 중점을 두면 각 구성 요소의 업데이트 프로세스를 하나의 컨트롤러에서 호출하는 것이 좋습니다.
Cubism SDK for Unity와 함께 제공되는 CubismUpdateController는 Cubism SDK의 구성 요소 실행 순서를 제어하기 위해 동일한 작업을 수행하므로 위의 작업을 수행하는 경우 CubismUpdateController 구현이 도움이 됩니다.

CubismUpdateController에 대한 자세한 내용은 여기를 참조하십시오.

 

마스크용 텍스쳐 처리

Cubism 모델에서 사용되는 마스크용 텍스쳐는 글로벌 하나를 공유하여 사용하고 있습니다.
Unity에서 Prefab이 생성된 시점에 CubismMaskController에 해당 참조가 설정됩니다.

그러나 모델의 Prefab을 그대로 AssetBundle로 설정하면 Prefab을 인스턴스화 할 때 CubismMaskController로 설정된 마스크 텍스쳐는 참조에서 복사본이 설정된 상태로 변경됩니다.
그 때문에, 이 사양을 무시하면, AssetBundle로부터 모델의 생성과 파기를 반복할 때마다 텍스쳐가 계속 남아, 메모리를 압박하게 됩니다.

이 현상에 대한 자세한 내용과 대책은 여기를 참조하십시오.

 

 

© 2010 - 2022 Live2D Inc.