개발관련/유니티

[유니티] 지터링과 시네머신 브레인의 속성을 이용한 해결법🤓

kimyongmin519 2026. 3. 6. 16:22

지터링이 일어나는 모습

 

위 GIF를 보면 시네머신을 사용한 프로젝트에서 플레이어가 끊겨보이는 현상이 발생합니다.

이는 "지터링"이라는 현상 때문인데요.

 

지터링이란

카메라 좌표계가 정밀한 좌표 계산을 할 때 발생하는 미세한 떨림 및 끊김 증상을 말합니다.

위 상황처럼 카메라의 업데이트 주기와 캐릭터의 물리연산 주기가 어긋나면서 일어나는 경우가 대표적인 지터링 현상 중 하나입니다.

 

지터링현상을 그대로 놔두면 게임을 플레이하는 플레이어 입장에서는 게임플레이 시 이질감과 불편함을 감수해야하기 때문에 우리 개발자들은 이 현상을 해결해야합니다.

 

유니티에서는 이 문제를 어떻게 해결할까?

 

시네머신이 카메라를 조작할 수 있게하는 컴포넌트인 시네머신 브레인의 프로퍼티들을 보면,

Update Method항목과 Blend Update Method항목이 있는데요

 

Update Method: 시네머신이 언제 카메라의 위치, 회전값 등등을 어떻게 계산할 것이냐 여부

Blend Update Method: 카메라와 카메라 간에 전환 애니메이션을 어느 타이밍에 계산할 것 이냐 여부

 

2가지 프로퍼티는 간단하게 카메라의 변화값들을 어느 타이밍에 계산할지 여부인데요.

 

 

설정할 수 있는 값들을 보면 여러가지 Update들이 있는데, Fixed Update와 Late Update는 알더라도

Update Method안에 Smart Update Manual Update는 좀 생소할 것 입니다.

 

Smart Update:

내부적으로 추적대상을 실시간으로 감지해서 지터링이 일어나지 않게끔 타이밍을 계산하는 업데이트.

이름 그대로 똑똑하게 알아서 타이밍 계산을 해주는 녀석이며 대부분 시네머신 브레인 컴포넌트를 붙이면 기본값으로 되어있을 겁니다.

 

Manual Update:

카메라의 전환을 수동으로 제어하는 업데이트이며, 이 속성을 키면 Update나 Fixed Update 등등의 영향을 받지않고 오직 개발자가 CinemachineBrain.ManualUpdate()를 호출해야만 갱신되는 업데이트.

 

자 그러면 현재 문제가 일어나는 프로젝트에서는 Update Method가 Late Update로 되어있으며 Blend Update Method도 Late update로 되어 있습니다.

Smart Update로 바꿔서 실행해보면?

 

부드럽게 잘 움직이는 모습

 

만약 이래도 해결이 되지않는다면 캐릭터의 움직임은 물리기반으로 움직이고 있으니 Update Method나 Blend Update Method를 Fixed Update로 바꾸면 해결이 됩니다.