움직임 동기화¶
실시간 멀티플레이어 게임 대부분은 위치와 방향, 속도를 동기화하여 해당 월드 안에서 플레이어의 움직임을 정확히 나타내야 합니다.
Strix에는 이 기능을 담당하는 요소가 몇 가지 있습니다. 그중 하나가 StrixMovementSynchronizer
로, 움직임 동기화 과정에서 가장 역할을 많이 하는 요소입니다.
이것을 GameObject에 추가하자마자 포지션과 회전, 속도를 동기화하기 시작합니다. 이 싱크로나이저는 보간/보외를 실시하므로 부드러운 움직임을 원할 때, 예컨대 플레이어 캐릭터에 잘 어울립니다.
속성¶
StrixMovementSynchronizer
에는 인스펙터에서 액세스할 수 있는 설정이 많이 있습니다. 필요하다면 코드에서 변경할 수 있습니다.
NearDistance |
현재 위치에서 원하는 위치까지 허용 오차 거리. 너무 높게 설정하면 고무 밴딩이 발생할 수 있습니다. |
MaxSpeed |
GameObject가 이동하는 최대 속도. 너무 낮게 설정하면 움직임이 일정하지 않습니다. 너무 높게 설정하면 GameObjects가 부자연스럽게 빨리 움직입니다. |
Acceleration |
GameObject의 최대 가속입니다. 너무 낮게 설정하면 움직임이 일정하지 않습니다. 너무 높게 설정하면 GameObjects가 부자연스럽게 빨리 가속합니다. |
Damping |
평탄화 값. 낮은 값을 적용하면 보간이 더 부드러워지지만, 높은 값을 적용하면 움직임의 반응성이 떨어집니다. |
SyncPeriodMin |
업데이트 최소 간격입니다. 단위는 밀리초입니다. 이 값이 작으면 업데이트가 더 많이 일어나고 따라서 움직임이 더 정확해집니다. |
SyncPeriodMax |
업데이트 최대 간격입니다. 단위는 밀리초입니다. 이 값이 작으면 정지해 있을 때 업데이트를 더 많이 합니다. Sync Period Min과 연계되어, 많이 움직이지 않을 때 네트워크 성능을 줄여 주는 역할을 합니다. |
PredictionPeriod |
보간기가 다음 목표 포지션으로 텔레포트(점프)하기 전에 해당 경로에서 부드러운 움직임으로 그 포지션에 도달하기를 시도할 때까지 걸리는 시간(밀리초). 너무 낮게 설정하면 움직임이 일정하지 않습니다. 너무 높게 설정하면 예측된 변환이 오리지널보다 너무 늦게 나타납니다. |