Files
ZMMO/Source
Mateus Rodrigues 86df9478d4 feat(client): snapshot interpolation no proxy remoto para suavizar movimento
Implementa o padrao Source/Quake/Unreal: o proxy nao aplica mais a posicao
recebida diretamente — empurra para um buffer ordenado de snapshots e o Tick
interpola entre os dois snapshots que cercam (server_now - InterpolationDelayMs).

- Novo USTRUCT FZMMOProxySnapshot guardado em TArray ordenado por ServerTimeMs
  (insercao defensiva + dedupe; UDP pode trocar ordem).
- ApplyEntitySnapshot vira "push to buffer"; estabelece o offset de relogio
  na primeira amostra (local_now - server_time). Mudanca de bGrounded
  continua aplicada imediatamente (MovementMode) para o pulo nao herdar o
  delay de interpolacao.
- Tick acha o par (A,B), faz Lerp em pos/vel/yaw; extrapolacao curta
  clampada por MaxExtrapolationSeconds quando faltam snapshots futuros.
- Aceleracao derivada agora vem da curva interpolada (mais estavel que a
  derivada snapshot-a-snapshot anterior). Fallback sintetico de accel para
  o AnimBP do Quinn preservado.
- Removido o line-trace de Z (causava oscilacao apos a interpolacao; a Z
  autoritativa do dono ja vem no snapshot, ADR 0041).
- Separacao explicita AuthoritativePosCm vs InterpolatedPosCm, com
  LastSnapshotPosition mantido como alias para compat de Blueprint.
- Defaults: InterpolationDelayMs=100, SnapshotBufferCapacity=8,
  MaxExtrapolationSeconds=0.1 (UPROPERTY EditAnywhere para tunar em PIE).
- Log Verbose 1x/s com renderLagMs, interpAlpha, flag de extrapolacao.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 23:31:42 -03:00
..