This document is about: QUANTUM 2
SWITCH TO

동기화

Entity 컴포넌트를 사용하면 엔티티의 위치와 회전을 동기화할 수 있습니다. 동기화 유형은 위치 동기화회전 동기화 필드를 통해 조정할 수 있습니다. 이 분할은 게임에 가장 적합한 조합을 얻기 위해 각 동기화 모드를 개별적으로 조정할 수 있습니다. FPS 템플릿은 유니티에서 엔티티에 대해 다음 4가지 트랜스폼 동기화 모드를 지원합니다.

  1. None: 엔티티는 특정 위치/회전 위치에 생성되며 다음 프레임에서 업데이트되지 않습니다. 정적 엔티티에서 사용합니다.
  2. Simple: 엔티티 위치/회전이 해당 Quantum 엔티티의 정확한 위치/회전으로 모든 프레임이 업데이트됩니다. 자연스로운 이동이 필요 없는 엔티티에 사용합니다.
  3. Interpolate: 엔티티 위치/회전은 시뮬레이션 위치/회전에 보간됩니다. 이것은 종종 방향을 예측할 수 없거나(예: 플레이어) 클라이언트가 잘못된 네트워크 조건을 경험할 때 엔티티를 위한 최선의 옵션입니다.
  4. Error Correction: 엔티티 위치/회전은 예측 오차를 기반으로 시뮬레이션 위치/회전으로 수렴됩니다. 이는 자주 방향을 변경하지 않는 엔티티(예: AI)에 가장 적합합니다.

동기화 모드를 포함한 변환 동기화 매개 변수는 런타임에 변경할 수 있으며 생성 시 기본값으로 재설정될 수 있습니다.

fps template transform synchronization editor view
Transform Synchronization of the `Entity` component in Editor View

보간

보간 동작을 조정하는 데 사용할 수 있는 매개 변수는 다음과 같습니다:

  • Position Teleport Distance: 하드 재설정 전 관련 Quantum 엔티티 위치에서 유니티 엔티티의 최대 허용 위치 거리로 Position Teleport DistanceRTT Factor의 200%로 곱합 값으로 증가
  • Position Interpolation Speed: 델타 시간 기반 보간법의 상대 속도로, Position Interpolation SpeedRTT Factor의 75%를 곱한 값으로 감소
  • Culled Position Prediction: 엔티티 속도를 기반으로 도태된 엔티티에 대한 예측, 모든 예측 프레임에 대해 0-100% 속도로, Culled Position PredictionRTT 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 = 4
  • Position Interpolation Speed = 8 - 8 * 0.75 * RTT Factor = 5
  • Culled 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: 현재 회전이 연속 회전으로 보간되는 속도(델타 시간 곱하기)(도태된 엔티티에 한함)
Back to top