灵感来源
《破魇》是一段基于 Unity 制作的动作战斗关卡白盒。我把它作为一个可迭代的战斗遭遇样板:用状态机和连招建立玩家操作,用资源条和技能反馈塑造节奏,再用垂直爬塔关卡验证战斗空间与敌人行为。
习武少女因家人变故遭受打击,心怀愧疚的她陷入沉睡之中,却意外发现梦魇正在吞食她的情感与记忆。本关卡截取她在梦境中逐渐找回能力、面对梦魇的部分章节。
本项目参考了 ARPG/ACT 游戏中的资源条、技能节奏和高速动作体验。资源条参考《怪物猎人》系列,角色机制与战斗反馈参考《尼尔:自动人形》和《鬼泣5》。项目使用修改版开源动作编辑器 PengFramework,部分美术资源来自商用素材,关卡白盒由 Unity ProBuilder 搭建。
游戏场景
用垂直塔体承载战斗节奏
场景围绕“向上推进”的爬塔结构展开,同时通过内部战斗空间、外侧绕行路线和高差变化,避免白盒关卡只剩单一路径。
UI 设计
| 资源条 / 血条 | ![]() |
三个技能图标(Q / E / R)排列在 UI 中:

技能正在冷却中,图标变灰。

操作方式
- 移动:W/A/S/D 键控制
- 跳跃:空格键
- 普通攻击:鼠标左键
- 闪避:鼠标右键或 Shift 键
- 技能:Q、E、R 分别对应三个不同的技能
玩法介绍
游戏目标
击败每个区域的所有敌人,探索周围环境,向最终目的地推进。
游戏流程
探索区域 → 与敌人战斗 → 进入下一个区域 → 重复探索和战斗 → 迎战并击败区域 Boss
机制设计
完美闪避
闪避有使用次数限制:玩家在一段时间内只能闪避两次,之后进入冷却期,暂时无法闪避。大部分敌人攻击都可以闪避,在精确时机闪避会触发完美闪避。完美闪避会触发时间减速、重置闪避次数,屏幕会出现残影效果和径向模糊等视觉提示。这个设计鼓励玩家执行精准闪避,而不是无脑乱按闪避键。

![]() | ![]() |
|---|
攻击拼刀
当敌人在发动攻击前闪黄光时,这个特定攻击可以被打断或招架。成功拼刀会打断敌人的攻击并造成硬直。面对攻击频率高的敌人,善用这个机制可以有效减轻对方的进攻压力,让玩家在战斗中占据主动。

![]() |
|---|
状态机与连招系统
状态机
角色的状态机大致如下:

![]() | |
|---|---|
| 状态机概览 | 状态编辑器 |
连招
地面状态
- 鼠标左键 → 鼠标左键 → 鼠标左键 → 鼠标左键 → 长按鼠标左键(将角色挑飞至空中,切换为空中状态)
- 长按鼠标左键可以在四段连招的任何时刻插入
- E → 鼠标左键 → 鼠标左键 → 长按鼠标左键(进入空中状态)
- Q 可以在连招中途插入
- R 可以在连招中途插入
空中状态
- 鼠标左键 → 鼠标左键 → 鼠标左键 → 长按鼠标左键(落地回到地面状态)
- E → 鼠标左键 → 鼠标左键 → 长按鼠标左键
- Q 可以在连招中途插入,然后落地
技能图标
资源条
主角拥有一个能量条,最大容量为 100 能量点,UI 上显示为四段蓝色能量。在地面连招的第 4 段或空中连招的第 3 段命中敌人时,恢复 25 能量点。
- 能量条满时按 E 键激活 Skill_B(地面)或 Skill_B_InAir(空中),召唤四个能量分身攻击路径上的敌人。



- 在地面按 Q 激活 Skill_A 可以召回所有已召唤的分身;在空中同样可以通过长按攻击键、按 R 释放 Skill_C 或按 Q 释放 Skill_A / Skill_A_InAir 来召回分身。分身在接近主角时爆炸,对周围敌人造成范围伤害。

![]() |
|---|
- 如果分身没有被主动召回引爆,它们会在一定时间后自动爆炸,对附近敌人造成伤害。

资源条的设计把战斗循环进一步划分为两个阶段:能量积攒阶段和能量消耗阶段。
能量积攒阶段:玩家使用基础连招(地面的 1-3 段,空中的 1-2 段)攻击敌人,目标是”命中敌人,每段积累 25 能量”。同时结合完美闪避来回避敌人攻击、拼刀来打断敌人连招,在”不被命中”的前提下逐步填满四段能量条。
能量消耗阶段是对玩家精准操作的奖励。能量条满后,玩家可以爆发输出、压制敌人的攻击节奏,甚至打断 Boss 的连招。这个设计鼓励玩家主动掌控战斗节奏,而不是无脑丢技能。
关卡设计
关卡采用线性爬塔框架,引导玩家从塔底推进到塔顶。为了避免“一直向上”的单调感,空间节奏被拆成垂直探索与水平战斗两个交替模块。
设计判断:垂直维度用于制造路线变化和探索动机,水平维度用于承载战斗遭遇。两者交替出现,让玩家在寻路、遭遇战和空间辨识之间不断切换。
关卡整体总览
战斗设计
战斗设计的核心是教玩家技巧,然后验证玩家的技巧。玩家需要仔细观察敌人的攻击模式和视觉提示,做出战术决策来击败敌人。
敌人设计
-
近战敌人:攻击模式相对简单,引导玩家掌握基础的闪避和拼刀操作。
- 行为逻辑:如果与目标的水平距离较近,敌人会立即发起攻击。如果距离较远,它会进行立回(通过向前移动或左右侧步调整位置)来接近或寻找进攻机会。

![]() |
|---|

![]() |
|---|
-
远程敌人:能发动单体远程攻击和范围远程攻击,进一步磨练玩家的闪避反应。
- 行为逻辑:与目标保持安全远程距离,优先使用远程攻击。当目标逼近至近身距离时,它会击退攻击者或后退重新建立立回距离。

![]() |
|---|

![]() | ![]() |
|---|
-
Boss 战:Boss 具有高攻击侵略性,会快速逼近玩家。拼刀是核心应对手段(成功拼刀会打断 Boss 的攻击,减轻战斗压力),考验玩家对拼刀机制的掌握程度。
- 行为逻辑:如果与目标的水平距离较近,Boss 会立即发起攻击。如果距离较远,它会用立回调整位置,或使用冲刺技能快速追击目标。

![]() |
|---|

![]() |
|---|
制作过程
编程
基于原始编辑器,增加了大量自定义节点。

![]() | |
|---|---|
| SpawnProjectile 节点运行脚本 | SpawnProjectile 节点编辑器脚本 |
增强打击感的方法
角色抖动
当攻击没有打断敌人的状态时,敌人的骨骼也会沿 X/Y/Z 轴产生模拟振动,表现为不同方向的抖动。

屏幕震动
使用 CinemachineImpulseSource(来自 Cinemachine 插件)为屏幕添加震动效果。震动方向与角色攻击动作的方向保持一致,以增强打击感。

AI 设计
AI 有 4 种行为模式:巡逻、返回出生点、追击和决策(基于行为树)。
- 巡逻:AI 没有目标且有有效巡逻点时激活。在合适距离内发现目标时切换到追击/决策;没有巡逻点时切换到返回出生点。
- 返回出生点:AI 没有目标且没有有效巡逻点时触发。如果在规定时间内没有回到出生点,AI 会传送回去。中途检测到目标会打断返回,切换到追击/决策;成功返回出生点且无目标时切回巡逻。
- 追击:AI 在中远距离内有目标时启动。目标接近至近战范围时切换到决策;目标超出追击范围且有有效巡逻点时切回巡逻;无目标时切换到返回出生点。
- 决策:AI 在近战范围内有目标时启动。目标退到中距离时切回追击;目标超出追击范围且有巡逻点时巡逻;无目标时返回出生点。

AI 使用行为树进行决策,发出战斗和移动指令,角色的状态机再处理这些指令来完成状态切换。

AI 寻路使用 Unity 的导航系统。

![]() |
|---|
编辑器改进
现在可以直接在关卡编辑器中配置出生点和巡逻点。

![]() |
|---|
玩家反馈与优化方向
- AI 在返回巡逻点时偶尔会卡住,需要进一步优化 AI 寻路逻辑。
- 加入 QTE 机制(如处决、背刺)可以增强战斗的交互感和打击反馈。
- 目前镜头的切换和移动比较单调,优化镜头控制、加入动态镜头运动可以改善视觉表现。















