움직임 동기화

실시간 멀티플레이어 게임 대부분은 위치와 방향, 속도를 동기화하여 해당 월드 안에서 플레이어의 움직임을 정확히 나타내야 합니다.

Strix에는 이 기능을 담당하는 요소가 몇 가지 있습니다. 그중 하나가 StrixMovementSynchronizer로, 움직임 동기화 과정에서 가장 역할을 많이 하는 요소입니다.

이것을 GameObject에 추가하자마자 포지션과 회전, 속도를 동기화하기 시작합니다. 이 싱크로나이저는 보간/보외를 실시하므로 부드러운 움직임을 원할 때, 예컨대 플레이어 캐릭터에 잘 어울립니다.

속성

StrixMovementSynchronizer에는 인스펙터에서 액세스할 수 있는 설정이 많이 있습니다. 필요하다면 코드에서 변경할 수 있습니다.

NearDistance

현재 위치에서 원하는 위치까지 허용 오차 거리. 너무 높게 설정하면 고무 밴딩이 발생할 수 있습니다.

MaxSpeed

GameObject가 이동하는 최대 속도. 너무 낮게 설정하면 움직임이 일정하지 않습니다. 너무 높게 설정하면 GameObjects가 부자연스럽게 빨리 움직입니다.

Acceleration

GameObject의 최대 가속입니다. 너무 낮게 설정하면 움직임이 일정하지 않습니다. 너무 높게 설정하면 GameObjects가 부자연스럽게 빨리 가속합니다.

Damping

평탄화 값. 낮은 값을 적용하면 보간이 더 부드러워지지만, 높은 값을 적용하면 움직임의 반응성이 떨어집니다.

SyncPeriodMin

업데이트 최소 간격입니다. 단위는 밀리초입니다. 이 값이 작으면 업데이트가 더 많이 일어나고 따라서 움직임이 더 정확해집니다.

SyncPeriodMax

업데이트 최대 간격입니다. 단위는 밀리초입니다. 이 값이 작으면 정지해 있을 때 업데이트를 더 많이 합니다. Sync Period Min과 연계되어, 많이 움직이지 않을 때 네트워크 성능을 줄여 주는 역할을 합니다.

PredictionPeriod

보간기가 다음 목표 포지션으로 텔레포트(점프)하기 전에 해당 경로에서 부드러운 움직임으로 그 포지션에 도달하기를 시도할 때까지 걸리는 시간(밀리초). 너무 낮게 설정하면 움직임이 일정하지 않습니다. 너무 높게 설정하면 예측된 변환이 오리지널보다 너무 늦게 나타납니다.