동기화
Entity
컴포넌트를 사용하면 엔티티의 위치와 회전을 동기화할 수 있습니다. 동기화 유형은 위치 동기화
및 회전 동기화
필드를 통해 조정할 수 있습니다. 이 분할은 게임에 가장 적합한 조합을 얻기 위해 각 동기화 모드를 개별적으로 조정할 수 있습니다. FPS 템플릿은 유니티에서 엔티티에 대해 다음 4가지 트랜스폼 동기화 모드를 지원합니다.
None
: 엔티티는 특정 위치/회전 위치에 생성되며 다음 프레임에서 업데이트되지 않습니다. 정적 엔티티에서 사용합니다.Simple
: 엔티티 위치/회전이 해당 Quantum 엔티티의 정확한 위치/회전으로 모든 프레임이 업데이트됩니다. 자연스로운 이동이 필요 없는 엔티티에 사용합니다.Interpolate
: 엔티티 위치/회전은 시뮬레이션 위치/회전에 보간됩니다. 이것은 종종 방향을 예측할 수 없거나(예: 플레이어) 클라이언트가 잘못된 네트워크 조건을 경험할 때 엔티티를 위한 최선의 옵션입니다.Error Correction
: 엔티티 위치/회전은 예측 오차를 기반으로 시뮬레이션 위치/회전으로 수렴됩니다. 이는 자주 방향을 변경하지 않는 엔티티(예: AI)에 가장 적합합니다.
동기화 모드를 포함한 변환 동기화 매개 변수는 런타임에 변경할 수 있으며 생성 시 기본값으로 재설정될 수 있습니다.
보간
보간 동작을 조정하는 데 사용할 수 있는 매개 변수는 다음과 같습니다:
Position Teleport Distance
: 하드 재설정 전 관련 Quantum 엔티티 위치에서 유니티 엔티티의 최대 허용 위치 거리로Position Teleport Distance
를RTT Factor
의 200%로 곱합 값으로 증가Position Interpolation Speed
: 델타 시간 기반 보간법의 상대 속도로,Position Interpolation Speed
에RTT Factor
의 75%를 곱한 값으로 감소Culled Position Prediction
: 엔티티 속도를 기반으로 도태된 엔티티에 대한 예측, 모든 예측 프레임에 대해 0-100% 속도로,Culled Position Prediction
에RTT Factor
의 100%를 곱한 값으로 감소Culled Position Prediction Source
: 예측용 가속도의 소스 (PhysicsBody3D
/Movement
컴포넌트)Min RTT Prediction Threshold
: 보간 모수가 변경되지 않을 때 RTT의 하한 (RTT Factor
= 0.0f)Max RTT Prediction Threshold
: 보간 매개변수가 완전히 완화되었을 때 RTT의 상한 (RTT Factor
=RTT Relaxing Factor
)RTT Relaxing Factor
: 보간이 얼마나 완화되는지를 나타냄 (0-100%)Rotation Teleport Distance
: 하드 재설정하기 전에 Quantum 엔티티 회전에서 유니티 엔티티의 허용된 최대 회전 차이(정도)Rotation Interpolation Speed
: 델타 시간 기반 보간법의 상대 속도
완벽한 네트워크 조건(예: RTT 40ms)이 제공될 경우 보간 값은 위의 이미지와 동일합니다. 네트워크 상태가 좋지 않은 경우(예: RTT 200ms) 매개 변수는 다음과 같습니다:
RTT Factor
= 0.5 (RTT가Max RTT Prediction Threshold
보다 높으므로RTT Relaxing Factor
속성의RTT Factor
= 100%)Position Teleport Distance
= 2 + 2 * 2 *RTT Factor
= 4Position Interpolation Speed
= 8 - 8 * 0.75 *RTT Factor
= 5Culled Position Prediction
= 0.85 - 0.85 *RTT Factor
= 0.425
이 최악의 경우 원래 값과 비교하여 엔티티는 텔레포트 거리 허용오차가 200%, 보간 속도가 37.5% 느리고 속도 예측이 50% 감소합니다. 따라서 이동 방향 변경을 예측할 수 없는 경우 이동 아티팩트를 줄이는 데 큰 도움이 됩니다.
에러 보정
오류 보정 동작을 조정하는 데 사용할 수 있는 파라미터는 다음과 같습니다:
Error Correction Rate Min
:Error Position Blend Start
/Error Rotation Blend Start
거리와 가까움, 델타 타임으로 곱해진 위치 / 회전 오류을 감소 속도Error Correction Rate Max
:Error Position Blend End
/Error Rotation Blend End
거리와 더 먼지, 델타 타임으로 곱해진 위치 / 회전 오류 감소 속도Error Correction Extrapolation
: 시뮬레이션되지 않은 Quantum 프레임에 대한 선택적 변환 외삽 (0-100%,QuantumGame.InterpolationFactor
기반)Error Position Blend Start
: 오류 수정 속도가Error Correction Rate Min
에서Error Correction Rate Max
로 혼합되기 시작하는 보간되지 않은 위치에서의 거리(Error Correction Rate Min
은 현재 값입니다)Error Position Blend End
: 오류 수정 속도가Error Correction Rate Min
에서Error Correction Rate Max
로 블렌드가 종료되는 보간되지 않은 위치에서의 거리(Error Correction Rate Max
은 현재 값입니다)Error Position Teleport Distance
: 하드 재설정하기 전에 Quantum 엔티티 위치에서 유니티 엔티티의 최대 허용 위치 거리Error Position Min Correction
: 단일 프레임(거리)에서 최소 위치의 보정Error Position Interpolate Speed
: 현재 위치가 정제되지 않은 위치로 보간되는 속도, 델타 시간 곱하기(도태된 엔티티에 한함)Error Rotation Blend Start
: 오류 수정 속도가Error Correction Rate Min
에서Error Correction Rate Max
로 혼합되기 시작하는 보간되지 않은 회전에서의 회전 차이(라디안)Error Rotation Blend End
: 오류 수정 속도가Error Correction Rate Min
에서Error Correction Rate Max
로 혼합이 종료되는 보간되지 않은 회전에서의 회전 차이(라디안) (Error Correction Rate Max
은 현재 값입니다)Error Rotation Teleport Distance
: 하드 재설정하기 전에 Quantum 엔티티 회전에서 유니티 엔티티의 허용된 최대 회전 차이(라디안)Error Rotation Interpolate Speed
: 현재 회전이 연속 회전으로 보간되는 속도(델타 시간 곱하기)(도태된 엔티티에 한함)