GhostShot 是一款基于 Unreal Engine 5 开发的多人在线对战射击 Demo,
项目采用 C++ + 蓝图混合架构,实现了完整的联网同步框架、状态驱动角色系统、射击与动画融合机制,以及基于行为树与 EQS 的 AI 战斗系统。
本项目的核心特色为原创玩法机制 —— “生死转换 / 幽灵态复活系统”,在保证射击手感的同时,引入更具策略性的战斗循环。
-
玩家生命值归零后不会立即出局,而是进入 Ghost(幽灵态)
-
幽灵态玩家:
- 可移动与观察战场
- 不可攻击、不可阻挡子弹
- 可主动或被动复活
-
引入战斗资源 “灵契(ReviveTickets)”:
- 击杀敌人可获得灵契
- 复活消耗灵契
- AI 与玩家共享资源系统
该机制有效:
- 减少被击杀后的挫败感
- 增强团队协作与战术选择
- 提升观战与战局感知体验
项目基于 UE5 监听服务器(Listen Server)模型实现多人对战:
- 服主玩家同时承担服务器与客户端职责
- 其他玩家作为客户端连接服主
-
关键变量复制(Replication)
- 生命状态
LifeState - 当前血量
CurrentHealth - 比赛计时
MatchTimer
- 生命状态
-
远程过程调用(RPC)
- Client → Server:射击请求
Server_Fire() - Server → All:特效广播
Multicast_PlayFireFX()
- Client → Server:射击请求
-
权限控制
- 所有伤害计算、状态切换、资源变更仅在 服务器端执行
- 客户端仅接收同步结果,避免作弊与状态错乱
角色拥有三态:
-
Alive:正常战斗状态 -
Ghost:幽灵态(可移动不可攻击) -
Dead:完全失效状态 -
使用
ReplicatedUsing同步状态变更 -
在回调中统一处理:
- 材质替换
- 碰撞开关
- UI 刷新
- 复活后开启
bIsInvincible无敌标志 - 叠加 Overlay 材质进行视觉提示
- 5 秒后自动关闭保护状态
- 倒计时阶段锁定移动与射击输入
- 幽灵态:
- 保留 Walking 模式
- 调整重力比例保持真实手感
- 碰撞忽略 Pawn,仅阻挡场景物体
-
Hitscan 实现:
LineTraceSingleByChannel -
使用
ECC_Visibility通道进行命中检测 -
特殊设计:
- 幽灵态 Pawn 对射线 Ignore
- 存活 Pawn 对射线 Block
- 实现“子弹可穿过幽灵,不被友军遮挡”
- Mesh Space Additive 叠加动画
- 在
NativeUpdateAnimation中:- 计算 ControlRotation 与 ActorRotation 差值
- 插值平滑驱动 Pitch / Yaw
效果:
- 上半身瞄准与武器方向完全对齐
- 不受下半身移动或转身动画干扰
- 使用
UCurveFloat曲线驱动 - 定时采样并调用
AddControllerPitchInput - 搭配 Niagara 枪口火焰与音效,形成完整射击闭环
- AI 自动忽略 Ghost 状态玩家
- 仅对 Alive 状态目标进行追踪与攻击
- 最近目标写入黑板
TargetActor
- 距离判定进入射击态
- 引入随机散布模拟真人误差
- 战斗态平滑切换动画姿态
-
AI 幽灵态超过 5 秒且持有灵契自动复活
-
行为树支持:
- 搜索 Ghost 队友
- 移动至目标
- 消耗资源复活队友
-
血量过低时触发 EQS 查询掩体,主动避战回血
- 头顶 UI 始终朝向本地相机
- 动态计算 LookAtRotation 保证可读性
- 使用
CeilToInt向上取整 - 解决 0.9 秒显示为 0 的视觉错误
- Anchor + Alignment 组合
- 适配 1080P – 4K 分辨率
- 防止 UI 拉伸与遮挡
- 同时处理:
OnRep_PlayerStatePossessedBy
确保:
- 阵营颜色正确
- 灵契数量即时显示
- 断线重连 UI 不错乱
- 跨关卡强制重置 Input Mode
- 延迟 0.2 秒恢复输入,避免操作冻结
- 引擎:Unreal Engine 5
- 语言:C++ / Blueprint
- 网络:Listen Server / Replication / RPC
- AI:Behavior Tree / Blackboard / EQS
- 动画:Aim Offset / Mesh Space Additive
- 特效:Niagara
- UI:UMG / DPI Scaling / Anchor Layout
GhostShot 实现了一套完整的小型多人射击技术闭环:
- 联网同步与权限控制
- 状态驱动角色系统
- 高精度射击与动画融合
- AI 战斗、避战、复活协作
- UI 多分辨率与时序稳定性修复