UE5 网络联机常用命令
本文整理了网络联机常用的一些命令
1. 弱网环境模拟 (Network Simulation)
这些命令用于在编辑器或开发机上模拟真实的公网恶劣环境。通过这些设置,可以复现并调试"位置拉扯"和"预测失败"等问题。
注意:这些设置通常在 Net.Pkt... 前缀下,用于模拟数据包处理逻辑。 注意:高版本改成了把Net 改成了 NetEmulation
| 控制台变量 | 推荐调试值 | 功能说明 |
|---|---|---|
Net.PktLag |
100 | 数据包延迟。将发送的数据包延迟指定的毫秒数(例如 100ms)。 |
Net.PktLagVariance |
20 | 延迟抖动 (Jitter)。在 PktLag 的基础上提供随机性,范围为 +/- 指定毫秒。 |
Net.PktLoss |
5 | 丢包模拟。指定出站数据包被丢弃的百分比(如 5%)。最易触发拉扯。 |
Net.PktDup |
1 | 重复包模拟。指定发送重复数据包的百分比(如 1%)。 |
Net.PktOrder |
1 | 乱序发送。启用后,数据包将以乱序方式发送。1 为启用,0 为禁用。 |
2. 基础网络传输与打包 (RPC & Bandwidth)
控制客户端与服务器之间移动数据的封装方式。
| 控制台变量 | 默认值 | 功能说明 |
|---|---|---|
p.NetUsePackedMovementRPCs |
1 | 推荐开启。使用新的打包移动 RPC,支持变长数据序列化,扩展性更强且更节省带宽。 |
p.NetPackedMovementMaxBits |
4096 | 单个打包 RPC 的最大位数限制,防止异常数据导致服务器内存溢出。 |
p.NetEnableMoveCombining |
1 | 带宽优化。允许客户端将多个相似的微小移动合并为一个 RPC 发送,减少封包数量。 |
p.NetUseClientTimestampForReplicatedTransform |
1 | 使用客户端时间戳追踪同步变换。关闭则改用服务器 Tick 时间,可能影响高延迟下的平滑度。 |
3. 预测校正与平滑处理 (Prediction & Correction)
当客户端预测失败时,控制服务器如何强制校正位置。
| 控制台变量 | 默认值 | 功能说明 |
|---|---|---|
p.NetServerMaxMoveDeltaTimeScalar |
1.75f | 服务器允许的移动时间增量倍率。调大可减少因微小时钟偏差导致的频繁拉扯。 |
p.NetUseLastGoodRotationDuringCorrection |
1 | 校正重演时恢复上一个正确旋转,解决开启 bOrientToMovement 时的视觉闪烁。 |
p.NetEnableListenServerSmoothing |
1 | 开启监听服务器对远程客户端的平滑处理,改善主机视角下其他玩家的移动表现。 |
p.ResetJumpStateDuringResimIfNotFalling |
true | 在非下落状态校正时重置跳跃状态,防止坏网环境下跳跃指令被锁定。 |
p.NetServerForcePositionUpdateSyncToClient |
false | 启用后,服务器在强制更新位置后会严格强制客户端同步时间戳(旧版行为)。 |
3. 基于动态平台的移动 (Relative Movement)
针对载具、电梯、船只等移动平台的同步逻辑。
| 控制台变量 | 默认值 | 功能说明 |
|---|---|---|
p.NetUseBaseRelativeAcceleration |
1 | 核心配置。加速度相对于移动基座。在高速载具上走动时必须开启,否则极易拉扯。 |
p.NetUseBaseRelativeVelocity |
1 | 速度校正相对于移动基座。需配合上述加速度相对化使用。 |
p.BasedMovementMode |
2 | 0:常规Tick; 1:不延迟更新; 2:在常规Tick和物理后(Post Physics)均更新Base信息,精度最高。 |
p.ClientAuthorityThresholdOnBaseChange |
0.f | 切换平台时的信任阈值。在上下电梯产生小额偏差时,服务器优先信任客户端以减少抖动。 |
p.MaxFallingCorrectionLeash |
0.f | 角色在空中(无Base)时,允许客户端与服务器偏离的最大距离。 |
4. 物理模拟与碰撞 (Physics & Collision)
涉及底层物理线程及碰撞反馈。
| 控制台变量 | 默认值 | 功能说明 |
|---|---|---|
p.AsyncCharacterMovement |
0 | 实验性。是否在独立物理线程上异步模拟 CMC。目前 UE5 建议保持关闭。 |
p.ForceJumpPeakSubstep |
1 | 强制跳跃分步计算,确保低帧率下角色依然能触及跳跃的物理最高点。 |
p.UseTargetVelocityOnImpact |
1 | 处理与物理对象碰撞后的速度计算,使撞击移动物体后的反弹更自然。 |
p.LedgeMovement.ApplyDirectMove |
true | 边缘防掉落处理时,直接应用移动向量而非重新计算加速度。 |
p.CharacterStuckWarningPeriod |
1.f | 角色卡在几何体中时,日志输出的频率(秒)。 |
5. 调试与排查工具 (Debug Tools)
| 控制台变量 | 常用调试值 | 功能说明 |
|---|---|---|
p.NetShowCorrections |
1 | 必备。开启位置校正可视化。绿色为服务器位置,红色为客户端预测失败位置。 |
p.NetCorrectionLifetime |
4.f | 调试线框在世界中保留的时长(秒)。 |
p.VisualizeMovement |
1 | 在世界空间内直接绘制速度、加速度等物理矢量信息。 |
p.DebugTimeDiscrepancy |
1 | 记录移动时间差异。用于检测是否存在客户端加速或严重的网络包堆积。 |
p.NetForceClientAdjustmentPercent |
0.05 | 模拟恶劣网络,强制服务器发送校正指令,用于压力测试。 |
比如:p.NetShowCorrections 1 , 如下图,楼梯在服务器中没碰撞,但是在客户端有碰撞,表现结果:
