Version: Unity 6.0 (6000.0)
언어 : 한국어
플레이어블 예시
메카님 FAQ

성능 및 최적화

이 페이지에는 Unity에서 최고의 성능을 얻는 데 도움이 되는 애니메이션 시스템, 런타임 최적화에 대한 몇 가지 팁이 포함되어 있습니다.

참고: Unity에서 최고의 성능을 발휘하기 위해 3D 애플리케이션에서 캐릭터를 모델링하는 방법에 대한 팁은 최적의 성능을 위한 캐릭터 모델링을 참조하십시오.

애니메이션 시스템

컨트롤러

애니메이터컨트롤러가 설정되어 있지 않으면 처리하는 데 시간을 소비하지 않습니다.

간단한 애니메이션

블렌딩 없이 단일 애니메이션 클립을 재생하면 Unity가 레거시 애니메이션 시스템보다 느려질 수 있습니다. 예전 시스템은 매우 직접적이며 커브를 샘플링하고 트랜스폼에 직접 작성합니다. Unity의 현재 애니메이션 시스템에는 블렌딩에 사용하는 임시 버퍼가 있으며, 샘플링된 커브와 기타 데이터의 복사 기능이 추가되었습니다. 현재 시스템 레이아웃은 애니메이션 블렌딩과 더 복잡한 설정에 최적화되어 있습니다.

스케일 커브

스케일 커브 애니메이션화는 이동 및 회전 커브 애니메이션화보다 리소스를 더 많이 사용합니다. 성능을 개선하려면 스케일 애니메이션을 사용하지 마십시오.

참고: 상수 커브(애니메이션 클립의 길이에 대해 값이 동일한 커브)에는 적용되지 않습니다. 상수 커브는 최적화되어 있으며 일반 커브보다 리소스를 더 적게 사용합니다. 기본 씬 값과 동일한 값을 가진 상수 커브는 프레임마다 씬에 작성되지 않습니다.

레이어

대부분의 경우 Unity는 애니메이션을 평가하며, 애니메이션 레이어애니메이션 상태 머신에 대한 오버헤드를 최소화합니다. 애니메이터에 다른 레이어를 추가하는 비용(동기화 여부)은 레이어가 플레이하는 애니메이션과 블렌드 트리에 따라 다릅니다. 레이어의 가중치가 0이면 Unity는 레이어 업데이트를 건너뜁니다.

휴머노이드와 제네릭 애니메이션 유형

다음 유형을 결정하는 데 유용한 팁입니다.

  • 휴머노이드 애니메이션을 임포트하는 경우 아바타 마스크(class-AvatarMask)를 사용하여 필요하지 않은 IK 골 또는 손가락 애니메이션을 제거하십시오.
  • 제네릭을 사용하는 경우 루트 모션을 사용하는 것이 루트 모션을 사용하지 않는 것보다 리소스를 더 많이 소모합니다. 애니메이션이 루트 모션을 사용하지 않는 경우 루트 뼈대를 지정하지 않았는지 확인합니다.

씬 레벨 최적화

다음은 최적화에 대한 몇 가지 유용한 팁입니다.

  • 애니메이터를 쿼리할 때 문자열 대신 해시를 사용합니다.
  • 애니메이터를 제어할 작은 AI 레이어를 구현합니다. OnStateChange, OnTransitionBegin 및 기타 이벤트를 위한 간단한 콜백을 제공하도록 설정할 수 있습니다.
  • 상태 태그를 사용해 AI 상태 머신을 Unity 상태 머신에 쉽게 일치시킬 수 있습니다.
  • 추가 커브를 사용해 이벤트를 시뮬레이션합니다.
  • 추가 커브를 사용해 타겟 매칭과 함께 애니메이션을 마크업합니다.

런타임 최적화

가시성과 업데이트

항상 애니메이터의 Culling ModeCull Completely로 설정하고 스킨드 메시 렌더러Update When Offscreen 프로퍼티를 비활성화하여 애니메이션을 최적화합니다. 그러면 캐릭터가 보이지 않을 때 Unity가 애니메이션을 업데이트하지 않습니다.

플레이어블 예시
메카님 FAQ