Skip to content

Repository files navigation

SoulCombatLab

基于 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。尚无跨进程存档、联网玩法或正式美术关卡。

About

Unreal Engine 5.8 C++ melee combat demo with GAS, Behavior Trees, EQS, and a two-phase boss.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages