基于 Unreal Engine 5.8 和 C++ 的第三人称近战 Demo。六个相连区域串起训练、剑兵、重兵、双敌战斗和双阶段 Boss,包含连击、防御、弹反、处决、目标锁定与失败重试。
视频时长 2 分 17 秒,展示区域推进和 Boss 两阶段战斗。录屏无声音。
- GAS 战斗状态:技能负责激活、消耗与取消,Gameplay Effect 修改生命、体力和韧性,Gameplay Tag 约束攻击、防御、失衡与死亡状态。
- 动画驱动命中:Montage 与 NotifyState 控制连击输入窗口、无敌窗口和武器 Sweep;同一命中窗口对目标去重。
- 中断与恢复:Trace 代次校验处理弹反回调中的同步重入;Montage 实例 ID 隔离旧动画回调,避免受击后新连段被旧实例清理。
- 敌人决策:AI Perception 提供目标信息,C++ 构建 Blackboard 和 Behavior Tree,EQS 选择换位位置。Boss 用距离、阶段和出招历史给六种攻击评分。
- 锁定与镜头:按距离、视角及屏幕中心评分选择目标,支持滚轮切换;锁定时调整机位,解除或目标失效后恢复自由镜头。
- 关卡流程:清场开门、Boss 入场封门、区域重试和胜利重开;重生时清理角色、AI、武器、输入映射和事件监听。
玩法逻辑使用 C++,动画使用 AnimBP、Montage 等资源。角色与基础动画来自 Epic 的第三人称模板,地图为运行时构造的灰盒场景,详见资源说明。
环境要求:Windows、Unreal Engine 5.8、Visual Studio 的 C++ 游戏开发工具链、Git LFS。
git lfs install
git clone https://github.com/zhao390/SoulCombatLab.git
cd SoulCombatLab
git lfs pull右键 SoulCombatLab.uproject 生成 Visual Studio 工程文件,编译 Development Editor / Win64,再打开工程。默认地图为 /Game/Maps/L_CombatLab。
生成独立可玩包:
.\Scripts\BuildPlayableDemo.ps1 -EngineRoot 'C:\Program Files\Epic Games\UE_5.8'将引擎路径改为实际安装位置。脚本构建 Editor 和 Game,随后执行 Cook、Stage、Pak 与 Archive。输出入口为 Builds/PlayableDemo/Windows/SoulCombatLab.exe;运行或分发时保留整个 Windows 目录。
| 操作 | 按键 |
|---|---|
| 移动 / 视角 | WASD 或方向键 / 鼠标 |
| 轻攻击与连击 | 鼠标左键 |
| 翻滚 / 跳跃 | 左 Shift / 空格 |
| 格挡 / 弹反 | 按住右键 / Q |
| 处决 | 目标可处决时按 E |
| 锁定 / 切换目标 | 鼠标中键 / 滚轮 |
| 开始 / 跳过训练 | Enter |
| 暂停与操作说明 | Esc |
| 失败重试 | R 或 Enter |
清场后沿金线进入下一区域。进入区域时恢复玩家生命与体力;失败从当前区域重试。Boss 为 400 生命,半血进入二阶段。
| 路径 | 职责 |
|---|---|
Source/SoulCombatLab/AbilitySystem |
技能、属性、效果与 AbilityTask |
Source/SoulCombatLab/Combat |
攻击实例、连段、武器与命中采样 |
Source/SoulCombatLab/AI |
感知、行为树、EQS 与 Boss Utility |
Source/SoulCombatLab/Targeting |
目标评分、切换与锁定镜头 |
Source/SoulCombatLab/Demo |
区域、门、菜单、重试与胜利流程 |
Source/SoulCombatLab/Tests |
策略、生命周期和实机场景回归 |
当前范围为单人 Windows Development Demo。尚无跨进程存档、联网玩法或正式美术关卡。
