🎯B站视频地址【XHFrameworkSkill 一Unity 可视化技能编辑器与技能框架】 https://www.bilibili.com/video/BV1aAZEBjEcQ/?share_source=copy_web&vd_source=c7d3d63972de09d5db2e623c82034012
项目简介 | 为什么做这个技能模块 | 框架概述 | 技能编辑器详解 | 标签编辑器 | 技能示例分析 | 数值系统 | 仓库内容 | 交流学习
本组织还包含其他仓库:
- 技能框架:基于GAS模式的技能系统
- Unity客户端框架:基础游戏框架
- 资源服务器:资源管理和分发
- 工具集:开发辅助工具
- 常用Package包:Unity常用插件和库
如上图,这是我在上家公司做的技能模块和树形技能编辑器。
以往技能配置通常通过表格实现,存在以下问题:
- 各个表之间跳转复杂,不够直观
- 配置修改麻烦,难以维护
在传统树形结构编辑器中:
- 技能/子弹/Buff/放置物:都通过触发器驱动
- 核心思想:在何时触发什么效果(Trigger + Effect)
- 事件系统:在各个模块添加大量触发事件(技能内事件和全局事件)
- 局限性:依赖于树形结构,一对多的思想做复杂技能很困难,需要添加很多特殊机制
后来了解了虚幻引擎的GAS模式:
- 标签系统:避免了过多的事件情况
- 节点图:天然的图形化结构
- 灵活性:多对多的连接方式更加灵活
但是虚幻GAS也有不足:制作一个技能需要配置很多资产,在不同资产间跳转。
因此,我开发了这款技能编辑器,特点是:
- 一体化设计:配置一个技能只有一个节点图
- 全面覆盖:技能产生的所有效果、子弹、Buff等都可以在一个图中表现
- 直观可视:所有逻辑关系一目了然
不了解虚幻GAS?可以参考中文文档
框架模块遵循GAS的核心思想:
- AbilitySystemComponent:能力系统组件
- Attribute:属性系统
- Ability:技能能力
- Effect:效果系统
- Cue:表现系统
了解了技能编辑器,也就基本了解了整个技能框架。
- 左侧区域显示技能文件和文件夹
- 支持常规操作:新建、剪切、粘贴、重命名等
- 中间主编辑区
- 右键可唤出节点选择菜单
目前有五种节点类型:
- 包含ID和标签配置
- 支持消耗、动画、CD等配置
- 提供事件激活输出点
- 分为瞬时、持续、永久三种类型
- 主要用于属性和状态的修改
- 用于触发各种行为
- 动画节点是一个Timeline编辑器,方便策划和程序编辑
- 对情况进行分析
- 根据条件输出不同的结果
- 处理美术表现:特效、音效、飘字等
- 右侧显示选中节点的属性
- 可配置节点具体参数
- 高度灵活:所有节点都可以互相链接
- 复用性强:所有节点设计为可复用组件
这是一个树形结构的标签编辑器,特点包括:
- 直观的树形结构管理
- 支持常用功能:添加标签、剪切、复制、粘贴等
注意:由于资源来自上家公司(使用多皮肤换装系统),事件轴动画预览区域显示可能不正确。
-
添加技能CD标签
-
创建技能文件
-
创建技能节点
- 填写技能ID
- 将CD标签添加到"激活时阻止"
-
创建消耗节点
- 连接技能消耗输出点
- 可配置多个消耗项,释放技能前自动检测
-
创建CD节点
- 连接技能冷却输出点
- 配置"激活时授予标签"为CD标签
- 支持普通CD和充能CD
-
- 连接技能动画节点
- 可添加轨道,轨道链接效果
- 支持时间线拖拽,逐帧查看
-
创建技能结束和特效节点
- 连接动画节点
-
创建搜索目标节点 → 伤害 → 飘字
- 节点属性直观易懂
- 最大叠加层数:3层
- 叠加规则:刷新时间,周期不重置
- 过期处理:清理全部堆叠
- 溢出处理:拒绝新应用
-
Buff节点提供多种输出点:
- 初始效果
- 每周期执行
- 刷新时
- 完成效果
- 全部移除后
- 溢出时
-
可链接不同节点:特效、范围搜索、伤害等
-
Buff节点拥有五种不同标签(参考虚幻GAS Effect系统)
- 实现方式1:作为Buff实现
- 实现方式2:作为通用效果实现(推荐)
- 创建通用效果,类型为永久
- 在节点中勾选"技能结束后取消"
- 技能结束,效果也随之结束
- 使用标签系统
- 在"持续所需标签"内填写技能标签
- 标签移除时,效果自动取消
- 简单实现:链接恢复节点即可
- 节点类型:投掷物节点
- 发射来源:可配置
- 目标来源:可配置
- 飞行模式:直线/曲线/偏移/飞越
- 碰撞设置:穿透等
- 触发点:碰撞时/完成时/到达目标时
- 与火球术类似,可共用伤害节点
- 三个火球各自配置偏移属性
- 核心机制:带位移的Buff
- 内置配置:提供多种位移配置选项
- 可扩展性:支持自定义位移方式
- 简单实现:在Buff的属性管理器中添加移速属性即可
- 创建被动回血的3秒CD标签
- 被动激活时添加永久回血Buff
- Buff的"打断持续标签"中增加CD标签
- 技能添加受到伤害时事件
- 接收到事件后触发冷却节点
- 冷却节点自动添加CD标签
- Buff检测到CD标签,自动结束
- 三秒后冷却节点结束,移除CD标签
- 冷却节点结束时效果链接到Buff节点,重新添加Buff
节点中的数值配置支持四种方式:
- 具体值:直接填写固定数值
- 公式:使用公式计算数值,支持技能等级等变量
- MMC(Modifier Magnitude Calculation):自定义计算逻辑
- 上下文:从外部数据源(如配置表)获取数值
- 技能等级参数:使用公式或MMC处理不同等级的数值差异
- 策划配表:使用上下文方式从配置表读取数据
- 复杂计算:使用MMC实现自定义计算逻辑
本组织还包含以下内容:
- 技能框架:基于GAS模式的技能系统
- Unity客户端框架:基础游戏框架
- 资源服务器:资源管理和分发
- 工具集:开发辅助工具
- 常用Package包:Unity常用插件和库
欢迎大家加入QQ群一起交流学习!
QQ交流群:621790749
示例场景在SampleScene里面
本组织还有 XHFramework - Unity 游戏客户端框架:https://github.com/XH-Unity/XHFrameworkClient
(请根据实际情况添加许可证信息)
(请根据实际情况添加使用说明)
最后更新:请根据实际情况更新日期
版本:请根据实际情况填写版本号































