本教程参考了https://wiki.unrealengine.com/GameplayAbilities_and_You,如果没有学习前两篇教程,请前往学习。

GameplayAbilities插件提供了强大的技能系统,今天介绍的是和标签有关系的内容。

第零步:随便打开一个Actor,随便查看一个组件,发现里面有tag:

这个Tag和我们本篇讲的内容无关,不要混淆!

第一步:打开projectsettings,查看

添加一些Tag,什么是Tag呢?简单来说就是技能(Ability)树中的每一个标签。

如上图的过程,添加如下Tag:

Magic.Wood :木精灵魔法

Magic.Fire :火焰魔法

Magic.Ice :冰封魔法

Remote.BirdHit:飞鸟

Remote.Arrow:弓箭

参考:https://www.youtube.com/watch?v=e2rdXo408Q0

第1.5步:在character的蓝图中创建一个tagscontainter结构体,打开其眼睛(公开)。

知识点说明:GameplayTag和GameplayTagContainer是对新手较为重要的两个类型,其中前者是单个的Tag变量,后者可以看成是Tag的数组。

追加步骤:在这个Container中选择火焰魔法(表明这个Container默认含有火焰魔法)。

第二步【本步骤制作一个pickup类(我们称为技能球),使得主人公拾取它时得到新的技能】:拉出一个球然后创建蓝图。

第2a步:对“技能球”加入一个变量如下,默认值其实不重要,重要的是暴露。

第2b步【本步骤是关键,添加拾取逻辑】:添加一个shpere collision,注意它的大小要调整一下,它的半径要比SM球大一些(这一点总很容易理解吧,因为要让人物能够碰到这个sphere collision)。拾取逻辑如下。这里有一个重要的节点,就是AddGameplayTag,表示添加一个Tag到容器中。【说明:下图中的Hit事件不正确,应该是oncomponentbeginoverlap事件】

追加一个拾取后消失的逻辑:

第2c步【放置这些“技能球”】:注意在细节面板中配置它们的skill,放置示意图如下。

第3步【在人物中打印,看看是否有拾取到远程技能】:在人物中,下面的蓝图应该不难看懂,不多解释,其中重要的节点是MakeGameplayTagQuery和DoesContainerMatchTagQuery。

第4步:运行测试,让人物去拾取所有的技能球,然后不断地打印,看看有没有技能。

以上的小实例仅仅是一个开胃菜,GameplayAbilities插件提供了超级复杂的技能系统。我们继续!

另一组探索:

第5.1步【创建Ability】:创建两个GameplayAbility(注意别搞错了),命名为“烈焰之鸟”和“召唤冰龙”。

第5.2步【AbilityTags的讲解】:在烈焰之鸟中配置AbilityTags为MagicFIre和RemoteBird,表示这个Ability有两个标签:魔法-火焰 和 远程-鸟。(请注意点击ClassDefault)

重要的讲解:Ability Tags决定了这个Ability的标签!简单来说就是这个Ability所具备的属性(或者分类)。

第5.3步【CancelAbiliesWithTags的讲解】:在召唤冰龙中配置它的技能标签(Ability Tags)以及“打断技能列表”(CancelAbilitieswithTags)。

这是什么意思呢?

凡是“召唤冰龙”被激活时,释放者actor(简单来说就是这个character)正在释放的所有火魔法技能将被打断。

我们希望召唤冰龙的时候,正在释放的烈焰之鸟被中断。怎么做呢?继续看:

第5.4步:召唤冰龙里的激活逻辑:

烈焰之鸟里的激活逻辑:

知识点:注意其中的EndAbility和OnEndAbility是很重要的节点。

上述逻辑表示:烈焰之鸟将要五秒钟的蓄力事件才能释放完毕。

第5.5步:在character中配置MyAbilities数组(这个不是天生就有的,它是作者自定义的类变量,如果不知道由来,请看之前的教程):配置烈焰之鸟和召唤冰龙的Ability。

第5.6步:在人物character中写激活技能的逻辑(其中的UseAbility1和UseAbility2其实仅仅是很简单的输入事件,如果不知道由来的话,请看前面的教程)(注意:下面的示意图中笔者展示了两种不同的激活Ability的方法,不难理解)

第5.7步:保存编译,执行。

实验a:点击z(UseAbility1的按钮),等候5秒看到:

实验b:点击z之后马上点击x(UseAbility2的按钮),看到:

秒懂了吧。

还有很有趣的知识点,下一篇教程大概也有点像巩固课,会讲一些新的内容,但是不难。

原创声明:本文系小江村儿的文杰原创,若有参考的资料必在本文中给出。——小江村儿的文杰 zouwj5@qq.com 2017年7月14日14:44:47

转载于:https://www.cnblogs.com/JackSamuel/p/7170262.html

Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(三)技能标签(Ability Tags)...相关推荐

  1. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(七)Ability的信息传递等

    本节及后面的内容将会探索更加有意思的内容,更加逼近实际的使用的内容.我们本节内容不难,讲的是释放Ability时的信息传递: 第一步:创建一个GA称为GA_AOE_BlindVengeance,复仇忌 ...

  2. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(三)技能标签(Ability Tags)

    本教程参考了https://wiki.unrealengine.com/GameplayAbilities_and_You,如果没有学习前两篇教程,请前往学习. GameplayAbilities插件 ...

  3. Unreal Engine(虚幻引擎)渲染 – 正确使用方法

    我们已经讨论过 Unreal Engine(虚幻引擎)中可用的很多神奇工具,包括最近抢先体验的 Unreal Engine 5.多亏了 Epic,世界各地的开发人员和团队都可以轻松进行游戏开发.Epi ...

  4. 【学习笔记】Unreal Engine 4 虚幻引擎蓝图中级教程物理碰撞教程

    教程链接:Unreal Engine 4 虚幻引擎蓝图中级教程物理碰撞 想共享的小伙伴可以E-mail我:lxbcolorgalaxy@qq.com 目录 第一章 常见的物理现象及分析 1蓝图模板中的 ...

  5. qpython3可视图形界面_PySide——Python图形化界面入门教程(三)

    PySide--Python图形化界面入门教程(三) --使用内建新号和槽 --Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

  6. SpringCloud 入门教程(三): 配置自动刷新

    Spring Cloud 入门教程(三): 配置自动刷新 之前讲的配置管理, 只有在应用启动时会读取到GIT的内容, 之后只要应用不重启,GIT中文件的修改,应用无法感知, 即使重启Config Se ...

  7. 【MATLAB Image Processing Toolbox 入门教程三】快速入门之“在多光谱图像中寻找植被”

    [MATLAB Image Processing Toolbox 入门教程三] 本篇摘要 一.从多光谱图像文件导入彩色红外通道 二.构建近红外光谱散射图 三.计算植被系数并显示其定位 四.综合实例部分 ...

  8. python爬虫入门教程(三):淘女郎爬虫 ( 接口解析 | 图片下载 )

    2019/10/28更新 网站已改版,代码已失效(其实早就失效了,但我懒得改...)此博文仅供做思路上的参考 代码使用python2编写,因已失效,就未改写成python3 爬虫入门系列教程: pyt ...

  9. R语言七天入门教程三:学习基本结构

    R语言七天入门教程三:学习基本结构 一.编程的语言的基本结构 1.三种基本结构 绝大多数编程语言,都有三种最基本的程序结构:顺序结构.分支结构.循环结构.这三种结构的流程图如下所示(从左至右依次为:顺 ...

最新文章

  1. python支持向量机框架_Netflix 内部 Python 框架 Metaflow 正式开源,可加速机器学习模型部署...
  2. 为什么7层负载均衡压测性能低
  3. java小程序死机_求解,刚写的小程序,一运行我机器就死机
  4. python相关性分析的散点图怎么做_Python:matplotlib 和 Seaborn 之散点图和相关性 (三十二)...
  5. g20曲线拟合源码解读
  6. fanuc roboguide_ROBOGUIDE码垛简单工作站的创建
  7. 2010年第一届蓝桥杯省赛 —— 第一题
  8. c# decodeuri,用C#进行URL编码
  9. PHP接收到的$_POST数据里的邮箱符号@变成了%40
  10. 显示器信号接口的发展历程
  11. 浅谈React Hooks
  12. SylixOS 内存管理源代码分析--pageLib.c
  13. 无人机项目跟踪记录五十八--原理图控制部分分析
  14. Trister Community DAOs最新型DAO架构
  15. 【初识C语言:编程小白与C语言say hello的正确打开方式(绘制草图阶段)】
  16. 茜在人名可以读xi吗_茜读xi还是qian?
  17. 股票买卖明细接口是怎样实现查询交易数据的?
  18. 数据库日常运维操作手册
  19. sonar覆盖率、代码覆盖率、分支覆盖率的计算方式
  20. 快速排序(quickSort) 和 插入排序(insertSort)

热门文章

  1. And The Winner Is --- 百度网盘
  2. 面试被问到CAS原理,触及知识盲区,脸都绿了!
  3. 商品销售订单综合分析
  4. 计算机组成C和MDR是什么意思,计算机组成原理复习要点及答案
  5. 大专毕业C/C++零基础学编程难吗?多久能就业?
  6. 电商订单仓储ERP管理系统软件源码
  7. playframework 笔记——搭建自己的paly工程
  8. 每日一诗词 —— 假如我不曾见过太阳
  9. combo是什么意思啊(combo卡是什么意思)
  10. uniapp h5 微信打开双标题处理