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>
11 KiB
11 KiB