本文系笔者的实习生分享会内容预备兼GameplayAbilities的初学者教程。

本文适合已有四十天UE4开发经验的初学者。

参考资料:https://wiki.unrealengine.com/GameplayAbilities_and_You#Introduction

简介(用有道词典机器翻译得到的简介,原文是上面的连接):

那么,什么是GameplayAbility ?

基本上,他们就像你在Dota或等价游戏中所拥有的能力。你可以投一个火球,这个火球击中一个玩家,爆炸(造成一定数量的伤害),并将爆炸范围内的每一个人都设置为火灾(随时间而造成的伤害)。与此同时,投火球的球员失去一些法力,并被冷却。

你可以使用Epic的GameplayAbility插件来完成所有这些事情。这个模块很难让你的头脑清醒,但是一旦你知道它们有多么强大,以及如何恰当地利用它们,它们就能让你的生活变得更加轻松。

但是为什么要在自己的系统上使用这个呢?

如果你的游戏需要一种强大的技能、浅黄色和属性系统,可以很容易扩展和疯狂的复制,那么游戏能力就会派上用场。这对于在多玩家RPG上使用很多技能/类或者甚至是MOBA的人来说是很神奇的,但是你可以在任何你想要的游戏中使用这个系统。主要的问题是它不是最容易理解的,相当大的,可能会在你的道路上有一点点距离,你离这个多玩家的RPG理想太远了,所以不是每一场游戏都能得到相同的里程。

那听起来像是个梦,但我在哪儿能得到它呢?

嗯,首先,GameplayAbilities代码模块,用于被整合到UE4的来源,但由于当前版本(4.15,也就是说,来自未来的人)被移动到一个单独的插件,交付与虚幻引擎,所以它可能不带走空间在你的游戏如果不使用系统。这个系统实际上并不是一个内置的引擎功能,但实际上,它已经被从Paragon和Fortnite的开发者那里得到了,以供第三方享用。不幸的是,由于这些独特的环境,整个模块是相当混乱的,糟糕的(阅读:几乎没有,你最好的选择是代码注释,即使是只有一半的时间)文档记录,很少更新和清理。

也不是100%的蓝图,部分,但不是全部,由于很多系统滥用很多引擎诡计和魔法以及他们所做的工作,如果你从来没有接触过c++ UE4的上下文中,您可能想要回头,也许做一个教程,因为本教程将让糟糕的第一次学习体验。

换句话说,这是一种完全的“臀部疼痛”的感觉,让你的脑袋到处都是,但这就是本指南来帮助你的地方。Epic开发者戴夫·拉蒂(Dave Ratti)有一个例子,GitHub项目通过一些基本的例子来帮助你开始,但忽略了细线,并进行了广泛的笔触。然而,这个项目本身是相当隐蔽的,而且(当时)并没有真正出现在谷歌或任何真正的关于游戏功能插件的搜索中,所以它没有像一个全面的指南那样有帮助。而且,现在游戏的标签已经被默认地集成到编辑器中(一个系统的游戏能力本身在每个角落都可以使用,扮演游戏能力的骨干),设置从来没有那么容易!

尽管如此,我们还是开始吧。

上述Github项目其实是没有的,链接已失效。

第一步:

第二步:

第三步:

第四步:它会提示重启,重启即可。同时请注意VS方面需要build:

说明:我做对了吗?如果你看到了下面这两个东西,就说明操作正确。

第五步:

选择上面的GameplayAbilityBP蓝图,然后

第六步:打开刚刚新建的GA(GameplayAbility)蓝图,然后helloWorld一下:

编译保存(如果你连如何新建节点和编译保存都不知道,请先去自学更加基础的入门内容)。

第七步:这一步是为了注册我们用到的插件。

VS中双击这个文件:

修改代码:

▼代码开始

        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "HeadMountedDisplay"
//原本代码中只有这一行
, "GameplayAbilities"
//这一行是新增的,表示注册GA插件
});

▲代码结束

第八步:

打开模板中自带的Character文件:

第九步:

修改代码如:

#include "CoreMinimal.h"
#include "GameFramework/Character.h" #include "AbilitySystemInterface.h"
//改动1:添加头文件 #include "GATutCharacter.generated.h" UCLASS(config=Game)
class AGATutCharacter : public ACharacter
,public IAbilitySystemInterface
//改动2:继承此接口
{
GENERATED_BODY() /** Camera boom positioning the camera behind the character */
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
class USpringArmComponent* CameraBoom; /** Follow camera */
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
class UCameraComponent* FollowCamera; //改动3:添加一个Abi组件
//BlueprintReadOnly的内容其实是不允许写在private区中的,如果写在private区且要蓝图可读,那么需要写上meta=(AllowPrivateAccess="true")
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = GameplayAbilities, meta = (AllowPrivateAccess = "true"))
class UAbilitySystemComponent* AbilitySystem;

由于代码过长,所以中间的就不写了,除了上面三处改动以外,还需要再public域中加入:

//改动4:添加一个返回此组件的方法

UAbilitySystemComponent* GetAbilitySystemComponent()const override;

说明:VS里面有很多爆红,不要管!

最后一步:代码编译。如果编译成功,那么本节的教程完成。目前还没有helloWorld。

原创声明:本文系小江村儿的文杰原创,若有参考的资料必在本文中给出。

2017年7月12日14:51:52

Unreal Engine 4(虚幻UE4) GameplayAbilities插件入门教程(一)的更多相关文章

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

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

  2. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(二)

    我们接着学习.如果没有学习第一篇,请前往学习. 由于GameplayAbilities插件基本上没有资料(除了前面提供的那篇Dave的博文以外,再无资料,有迹象表明Dave是这个插件的开发者). 这个 ...

  3. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(四)技能屏蔽和简单的Buff等

    本节内容继续上一节教程的内容(如果没有看过前面的教程,请前往学习),不会讲太难的新东西,而是继续探究技能标签(Abiilty Tags)的内容.先来一道开胃菜. 第1.1步: 将上一次的召唤冰龙中的C ...

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

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

  5. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(六)GameplayEffect的级别设置

    本节的内容不难,权当是复习.如果没有完成前面的教程,请前往学习. 第一步:用一个csv文件表示级别数据,下图中的Hurt随级别1~7表示其损伤值在1~7级别时分别是-7,-14,-20等.写好之后关闭 ...

  6. Unreal Engine 4(虚幻UE4)GameplayAbilities 插件入门教程(五)技能属性集(AttributeSet)

    如果没有完成前面的教程,请前往学习.先上一段理论介绍(源于https://wiki.unrealengine.com/GameplayAbilities_and_You#GameplayTasks): ...

  7. Unreal Engine 4 Radiant UI 插件入门教程(二)

    本篇章前提要求:在UE4上安装了Radiant UI插件.如果没有安装,请找其它教程(或者是笔者的其它的教程,目前正在写). 本教程的目的:探讨如何从网页元素中调用蓝图中的内容: 第一步: 写一个网页 ...

  8. 使用 ADD-ON SDK 开发 基于 Html JQuery 和 CSS 的 firefox 插件入门教程1: 创建一个简单的 Add-on

    [本文转载自http://sixpoint.me/942/implementing-simple-addon/] 实现一个简单的插件 教程的这个部分带你使用 SDK 来实现, 运行并打包一个插件. 这 ...

  9. [UE4]GameplayAbilities,技能系统插件

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

随机推荐

  1. Lua学习(2)——表达式

    1. lua算术操作符lua支持的算数操作符: + - * /除 ^指数 %取模 -符号 2. lua关系操作符 <小于 >大于 <= >= == ~=不等于 3. 逻辑操作符 ...

  2. 关于vue生命周期中的同步异步的理解

    在vue官网中介绍生命周期的图如下: 主要测试代码如下: 主要是测试前四个生命周期beforeCreate,created,beforeMount,mounted,里面同步和异步的执行顺序,其它的类似 ...

  3. pythion 第二弹

    ################################第二节################################################python中数据类型的常见的方法 ...

  4. yarn工作流程

    YARN 是 Hadoop 2.0 中的资源管理系统, 它的基本设计思想是将 MRv1 中的 JobTracker拆分成了两个独立的服务 : 一个全局的资源管理器 ResourceManager 和每 ...

  5. 移动端H5通用表单验证插件

    将表单验证的通用部分提炼出来,做成一个简易插件,方便调用. 已将源码放到GitHub上,名字叫zValidate. 手机可扫描下图查看示例,PC端可点击此处查看: 一.原理 1)需要引入zepto.j ...

  6. 从零开始理解JAVA事件处理机制(1)

    “事件”这个词已经被滥用了.正因为“事件”的被滥用,很多人在用到事件的时候不求甚解,依样画葫芦,导致学习工作了很多年,还是不清楚什么是事件处理器.什么是事件持有者.所以,如果你对于Event这个词还是 ...

  7. python基础入门教程《python入门经典》

    第一章 在python中使用数字 1.用变量存储信息 1.1变量的类型 变量,用于存储很多不同的数据类型的信息. 基本数据类型 数据类型 存储内容 示例 integer 整   float 浮点   ...

  8. iOS CAEmitterLayer 实现粒子发射动画效果

    iOS CAEmitterLayer 实现粒子发射动画效果 效果图 代码已上传 GitHub:https://github.com/Silence-GitHub/CoreAnimationDemo 动 ...

  9. Linux SSH安全技巧

    SSH服务器配置文件是/etc/ssh/sshd_conf.在你对它进行每一次改动后都需要重新启动SSH服务,以便让改动生效. 1.修改SSH监听端口默认情况下,SSH监听连接端口22,攻击者使用端口 ...

  10. 黄油刀ButterKnife的使用

    1.ButterKnife是一个由JakeWharton写的开源框架,它使用注解处理将属性和方法和View绑定,以生成模板代码. 2.作用: @1通过使用@BindView 注释属性取消了findVi ...