UE5 RPG
文章平均质量分 88
暮志未晚season
这个作者很懒,什么都没留下…
展开
-
43. UE5 RPG 实现敌人血量显示条
在上一篇文章中,我们实现了火球术伤害功能,在火球击中敌方目标,可以降低敌人20的血量,这个值现在是固定的,后面我们会修改火球的伤害设置。接着,我们也测试了功能是实现的,但是在正常的游玩过程中,你不可能让玩家通过log界面获取敌人血量,这不符合玩家体验,所以,这一篇我们来实现在敌人的上方显示敌人剩余血量的UI。为了实现敌人的血量条,我们首先将创建一个显示血量的用户控件,然后再敌人的基类里面实现在敌人血量变化时,对敌人的血量进行事件委托广播,来告知敌人修改血量。原创 2024-04-26 16:39:16 · 622 阅读 · 0 评论 -
42. UE5 RPG 实现火球术伤害
上一篇,我们解决了火球术于物体碰撞的问题,现在火球术能够正确的和攻击目标产生碰撞。接下来,我们要实现火球术的伤害功能,在火球术击中目标后,给目标造成伤害。实现伤害功能的思路是给技能一个GameplayEffect,在击中时,给目标应用GE。首先,我们在GameplayAbility(GA)身上增加一个设置GE的类,在创建火球时,在火球身上创建一个GE的实例,在火球击中目标后,使用GE的实例通过目标的ASC应用GE并造成伤害。原创 2024-04-25 15:38:03 · 963 阅读 · 0 评论 -
41. UE5 RPG 设置火球术的碰撞类型
如果你在蓝图中设置实现,需要在碰撞体这里开启生成重叠事件,并且将对应项设置为重叠,即可实现事件。如果你在代码中设置,那么需要调用对应的函数比如,我在角色上面,设置了,不会响应相机碰撞,但是对发射物类型产生重叠事件,并开启了重叠事件。//设置碰撞体可以和发射物产生重叠//设置碰撞体可以生成重叠事件。原创 2024-04-24 15:01:13 · 869 阅读 · 0 评论 -
40. UE5 RPG给火球术增加特效和音效
前面,我们将火球的转向和人物的转向问题解决了,火球术可以按照我们的想法朝向目标发射。现在,我们解决接下来的问题,在角色释放火球术时,会产生释放音效,火球也会产生对应的音效,在火球击中目标时,我们需要一个爆炸特效以及爆炸音效。接下来,我们将一步步实现它们。原创 2024-04-23 11:52:21 · 751 阅读 · 1 评论 -
39. UE5 RPG角色释放技能时转向目标方向
在上一篇,我们实现了火球术可以向目标方向发射,并且还可以按住Shift选择方向进行攻击。技能的问题解决,现在人物释放技能时,无法朝向目标方向,接下来我们解决人物的问题。实现思路:我们将使用一个官方的新插件叫Motion Warping来实现它,然后在蒙太奇中设置它的旋转即可。原创 2024-04-21 20:34:54 · 735 阅读 · 0 评论 -
38. UE5 RPG 修改火球术的攻击方向以及按住Shift攻击
在前面,我们实现了火球术火球的制作,能够在释放火球术时,角色将播放释放技能动画,并实现了对火球的目标的服务器同步功能。我们先回忆一下之前完成的内容。Projectile,里面包含碰撞体和子弹移动组件,后面可以用于碰撞检测和子弹移动的支持。,它在后续会专门用于发射技能。在技能里面,制作了一个生成发射物体的函数,它内部主要实现为生成需要发射的物体,并设置变量,可以设置一个类,它会根据类生成对应的物体,比如你需要角色技能发射一个火球,那么设置火球的类即可。原创 2024-04-21 18:32:06 · 718 阅读 · 0 评论 -
37. UE5 RPG创建自定义的Ability Task
在前面的文章中,我们实现了一个火球术的一些基本功能,火球术技能的释放,在技能释放后,播放释放动画,在动画播放到需要释放火球术的位置时,将触发动画通知,在动画通知中触发标签事件,然后再技能中监听事件完成火球术的创建。接下来,我们将继续优化火球术技能,并研究点新的东西。原创 2024-04-19 11:16:28 · 990 阅读 · 0 评论 -
36. UE5 RPG在激活技能时使用蒙太奇动画
在上一篇文章里面,我们实现了一个简单的火球术,创建了火球术的火球,以及能发射它的技能。很简陋,在技能触发的时候,直接在武器的位置生成火球发射出去。在一篇文章里,我们要实现使用技能时,角色会播放攻击动画,然后再某个动画帧,将火球发射出去。所以,我们要使用播放蒙太奇动画来实现动画覆盖,以及动画通知来实现角色手向前攻击时触发火球射出。原创 2024-04-16 18:02:43 · 1111 阅读 · 0 评论 -
35. UE5 RPG制作火球术技能
接下来,我们将制作技能了,总算迈进了一大步。首先回顾一下之前是如何实现技能触发的,然后再进入正题。现在技能可以被激活了,需要我们实现技能内的逻辑,接下来,我们将从简单的开始实现,那就是火球术。原创 2024-04-16 11:14:26 · 1551 阅读 · 0 评论 -
34. UE5 RPG实现鼠标点击移动
在前面,我们实现过使用键盘按键wasd去实现控制角色的移动,现在,我们实现了InputAction按键触发,后面,实现一下通过鼠标点击地面实现角色移动。我们将实现两种效果的切换,如果你点击地面快速松开,角色将自动寻路到目标为止。如果你按住鼠标不放,角色将自动朝向鼠标所指向的位置移动。接下来,我们实现它吧!首先在PlayerController(玩家控制器类)里面增加一些参数,用来记录一些信息,主要对应的是查询鼠标悬停的目标是否有敌人,按下的时间,以及自动寻路的参数。原创 2024-04-09 17:58:58 · 1208 阅读 · 0 评论 -
33. UE5 RPG使用增强输入激活GameplayAbility(三)
在前面的文章,我们实现了使用GameplayTag和InputAction的对应绑定的数据,并且添加到了增强输入映射的上下文中,实现了通过按键打印对应的GameplayTag,这只是我们基础需要制作的。目的主要是为了实现在GameplayAblity上面设置对应的Tag,在按下对应按键时,可以激活技能。原创 2024-04-06 18:46:31 · 1149 阅读 · 0 评论 -
32. UE5 RPG使用增强输入激活GameplayAbility(二)
在上一篇文章中,我们实现了Tag和InputAction的数据对应,后面,我们会通过InputAction触发对应的Tag,然后在GameplayAbility身上设置对应的Tag,然后通过Tag遍历角色身上的所有应用的技能去激活。为了实现这个功能,我们需要增加自定义输入控件,通过此控件增加函数实现输入触发对应Tag触发,数据已经有了,这一篇的内容为创建一个用于增加自定义绑定事件的Component,以及在PlayerController上面使用新的绑定事件。原创 2024-04-04 15:52:55 · 1343 阅读 · 0 评论 -
31. UE5 RPG使用增强输入激活GameplayAbility(一)
在前面文章中,我们实现了对技能添加并直接激活功能,介绍了GA的相关参数配置。现在,我们还不能通过键位触发技能,正常在游戏时,我们需要通过键位触发技能,实现技能的激活。在UE5里面添加了增强输入,相对于之前的输入操作,切换为了模块化,我们可以通过切换输入上下文,来实现键位输入和InputAction的映射,你可以创建多个上下文蓝图,在角色不同操作时,切换不同的上下文来实现不同的映射,比如,在正常情况下,有一套控制任务的上下文,当角色进入汽车后,我们可以停止当前的上下文,并改为使用汽车操作上下文去实现。原创 2024-04-04 12:36:27 · 1000 阅读 · 0 评论 -
30. UE5 RPG GamplayAbility的配置项
在上一篇文章,我们介绍了如何将GA应用到角色身上的,接下来这篇文章,将主要介绍一下GA的相关配置项。在这之前,再多一嘴,你要能激活技能,首先要先应用到ASC上面,才能够被激活。原创 2024-04-02 21:06:06 · 821 阅读 · 0 评论 -
29. UE5 RPG应用GamplayAbility
GamplayAbility 简称 GA,是UE引擎里的GAS内的功能组件,它的主要功能包括技能冷却时间(CD)和技能消耗的管理,同时也支持网络同步和实例支持。开发者可以在ActivateAbility事件中编写相关的技能逻辑,如角色动作、粒子效果以及角色数值的变动。根据技能是否施展成功,可以调用CommitAbility()或EndAbility()来结束技能。原创 2024-04-01 20:23:48 · 1139 阅读 · 0 评论 -
28. UE5 RPG同步面板属性(四)
上面几步在前几篇文章中,我们都基本实现了,只有AttributeMenuWidgetController对应的逻辑没有实现。在这一篇里面,我们将实现对应的逻辑,实现对UI数据的同步。原创 2024-03-30 15:13:42 · 1110 阅读 · 0 评论 -
27. UE5 RPG同步面板属性(三)
我们将在这一篇里实现对AttributeMenuWidgetController创建,可以将数据从AS里同步到UI上面。原创 2024-03-30 15:12:25 · 941 阅读 · 0 评论 -
26. UE5 RPG同步面板属性(二)
并且我们实现了第一步,就是在C++里可以创建GameplayTag,并且可以通过单例去获取到Tag的变量。后面属性修改委托也会通过Tag去匹配,这一篇,我们将实现创建一个DataAsset类,用于存储UI显示所需的数据。原创 2024-03-30 15:12:08 · 1054 阅读 · 0 评论 -
25. UE5 RPG同步面板属性(一)
那么我们需要创建一个自己的AssetManager,打开UE,在Public目录创建一个继承AssetManager的子类创建了此类,我们首先增加一个静态的Get函数,用于获取它的单例。在实现这里,我们要先判断引擎,然后通过引擎获取到资源管理器的单例,获取到的是对其的引用,我们返回时需要加*来返回它的实例。接着,我们覆盖其父类的StartInitialLoading()函数,在内部增加对自定义的标签FMyGameplayTags处理。原创 2024-03-30 15:11:30 · 906 阅读 · 0 评论 -
24. UE5 RPG制作属性面板(二)
在上一篇中,我们创建属性面板的大部分样式,这一篇里面接着制作。接下来,我们将一步步实现上面的功能。原创 2024-03-24 20:15:52 · 953 阅读 · 0 评论 -
23. UE5 RPG制作属性面板(一)
随着角色的属性越来越多,我们不能每次都进行showdebug abilitysystem进行查看,而且玩家也需要查看角色属性,所以需要一个查看玩家角色属性的面板。在前面,我们创建三种类型的属性我们制作的面板就需要将这三大块区分开来,主要属性增加加点按钮,次级属性只做显示,重要属性在显目的位置显示。原创 2024-03-23 19:51:33 · 931 阅读 · 0 评论 -
22. UE5 RPG使用MMC根据等级设置血量和蓝量(下)
上一篇,我们实现了玩家角色和敌人的等级的获取,使用MMC的提前工作已经准备完成,那么,这一篇讲一下,如何使用MMC,通过角色等级和体力值设置角色的最大血量。MMC 全称 Mod Magnitude Calculation,为自定义计算数值的类,可以使用蓝图继承,也可以使用c++继承,在这个项目里面我们使用的c++实现。原创 2024-03-20 20:08:13 · 713 阅读 · 0 评论 -
21. UE5 RPG使用MMC根据等级设置血量和蓝量(上)
上一篇文章,我们创建了次级属性,并实现了对次级属性的初始化,而且因为使用的Infinite模式,具有无限的持续时间,它能够跟随基础属性变动而实时修改数值。接下来,我们将为角色和敌人增加等级,将等级放到character身上,并实现使用Modifier Magnitude Calculation (MMC)进行自定义计算数值。(当然,等级属性也能够放到AS里面,这里为了学习,就作为一个单独的属性,看个人爱好了)在这一篇里面,我们先实现一下前面的两个步骤。原创 2024-03-19 19:18:01 · 1064 阅读 · 0 评论 -
20. UE5 RPG创建次级属性并实现设置
在游戏中,游戏的角色属性会根据游戏玩法也不同,当前制作的RPG中,主要分为两种属性,一种是主要属性另一种次级属性。这两种类型属性的区分主要数值的计算是否需要依托于其它数值举个例子,你的体力值主要在于角色的个人成长增加以及装备等的增加,它不依托于其它属性,所以是主要属性。而你的血量上限需要依托于体力数值,根据体力进行一定的比例设置血量上线,它需要依托于体力属性,所以是次级属性。原创 2024-03-18 20:01:27 · 839 阅读 · 0 评论 -
19. UE5 RPG使用GameplayEffect的Attribute Based Modifiers
前几篇文章我也说了GE的基础使用,但是,对一些属性的应用没有述说,后续,我将一点一点的将它们如何使用书写下来。这一篇,主要就讲解一下Attribute Based Modifiers使用,先说一下它的应用场景,一般游戏里面,都有属性和属性之间的联系的东西,比如体力可以加血量上限,智力可以增加蓝量上限这种,它会根据职业或者角色的不同,按不同的比例增加,如果需要实现这种方式时,我们就可以通过使用Attribute Based Modifiers去实现。原创 2024-03-16 23:50:09 · 831 阅读 · 0 评论 -
18. UE5 RPG初始化角色的属性
在中,我们创建AS的时候,也设置了默认值,但是这种方法是在初始化AS的时候创建的,无法进行个性化定义,因为我们创建的所有的角色的属性不可能相同,所以,我们需要使用一个方法实现对角色基础属性的初始化。上面的代码为当前初始化AS时,对属性进行的初始化设置。下面呢,我们将新增加一些属性,和使用一种更方便的方式对值进行初始化。原创 2024-03-16 20:14:26 · 830 阅读 · 0 评论 -
17. UE5 RPG使用匿名函数替换事件委托
上一节里面,我们实现了GE被应用时的事件委托,在GE被应用到目标身上时,会触发GE身上设置的Tag,然后通过Tag在设置的表格内寻找表格数据,并添加到窗口显示。下面,为了防止OverlayWidgetController里面的回调太臃肿,这一节我们将它的代码优化一下。首先看一下现在的OverlayWidgetController的代码。原创 2024-03-13 19:50:10 · 509 阅读 · 0 评论 -
16. UE5 RPG获取GE应用的回调,并根据Tag设置数据显示到窗口
在上一篇介绍了对标签如何在项目中设置,这一篇先讲解一下如何在GE里面使用GameplayTag标签。之前我在第十一章节中介绍了一些GE的属性,在UE 5.3版本中,修改的配置方式,需要在组件里面设置需要的组件下图为与标签相关的组件。原创 2024-03-12 20:15:46 · 707 阅读 · 0 评论 -
UE5 将类修改目录
删除后,右键.uproject文件,找到Generate Visual Studio project files,重新生成数据。如果我们需要创建它的子类,还想让它直接创建到当前目录中,直接在工具下拉里面选择创建C++类的话,还是会创建到根目录。有个需求,需要修改ue里面类的位置,默认在Public类下面,我想创建一个二级目录,将所有的类分好位置,方便查看。我想将类移动到Character目录下,那么,我需要手动创建目录,并将.h文件移入。我们可以直接右键父类,创建派生类,它将直接创建到当前文件夹内。原创 2024-01-08 10:29:30 · 639 阅读 · 0 评论 -
1. UE5 RPG使用代码开发UE设置,以及创建基于类的蓝图
此文章用于记录当前学习的重要的点。原创 2024-01-08 14:40:55 · 577 阅读 · 1 评论 -
2. UE5 RPG使用动画模板创建多个动画蓝图
这里就需要介绍一下动画模板,我们可以将动画蓝图相同的内容放置到一个动画模板内,去修改需求也就不会需要单独的去修改每个动画蓝图。我们制作游戏的时候,角色会根据不同的武器表现出来不同的攻击动画,待机动画以及移动动画。在帧更新里面,获取角色移动组件是否存在,然后获取到角色的这一帧的移动长度,并转换为速度。如果设置的正确,则左侧的模型将会播放动画。到这里,一个简单的动画模板创建完成,接下来,我们将基于这个模版创建动画蓝图使用。在创建指定骨架使用的动画蓝图时,我们需要指定父类使用前面创建的动画蓝图的模板。原创 2024-01-08 17:27:52 · 703 阅读 · 2 评论 -
3. UE5 实现RPG游戏操作控制
在UE5以后,epic抛弃了之前的那一套操作输入系统,使用了一套新的增强输入作为替代,目的主要是解决经常切换操作时的问题(操作人物上车以后,可以直接切换成操作汽车的一套输入)接下来,将实现如何使用增强输入实现对角色的操作。这里讲解一下如何实现通过操作控制角色移动。原创 2024-01-10 14:13:33 · 1331 阅读 · 0 评论 -
4. UE5 通过接口实现角色描边效果
接口不能够被实例化,不能够在内部书写函数的逻辑和设置属性,只能够被继承使用。它能够让不同的类实现有相同的函数,继承接口的类必须实现接口的函数。并且,我们可以在不同的类里面的函数实现也不同,比如A类描边是红色,B类的描边是绿色的,描边的调用都使用一个函数调用。原创 2024-01-11 16:49:24 · 1205 阅读 · 0 评论 -
5. UE5 RPG使用GAS技能系统
基础的讲解这里不再诉说,有兴趣的可以翻我之前的博客。接下来,在RPG游戏中实现GAS系统的使用。原创 2024-01-15 19:59:21 · 1306 阅读 · 0 评论 -
6. UE5 RPG AttributeSet的设置
AttributeSet 负责定义和持有属性并且管理属性的变化。开发者可以子类化UAttributeSet。在OwnerActor的构造方法中创建的AttributeSet将会自动注册到ASC。这一步必须在C++中完成。原创 2024-01-16 19:29:02 · 1178 阅读 · 0 评论 -
7. UE5 RPG修改GAS的Attribute的值
前面几节文章介绍了如何在角色身上添加AbilitySystemComponent和AttributeSet。并且还实现了给AttributeSet添加自定义属性。接下来,实现一下如何去修改角色身上的Attribute的值。原创 2024-01-17 19:33:34 · 766 阅读 · 0 评论 -
8. UE5 RPG创建UI(上)
上面这些我们主要实现了制作用户控件,并且能够在用户控件里面直接获取到控制器层,后续可以通过控制器层直接获取数据进行数据更新。具体实现过程:在创建玩家控制角色过程中,初始化完成技能系统后,去调用HUD的InitOverlay()函数,来实现用户组件控制器层的初始化。InitOverlay()中将实现对用户控件和用户控件控制器层的实例化,并将UI添加到屏幕中。原创 2024-01-22 13:53:47 · 1358 阅读 · 0 评论 -
9. UE5 RPG创建UI(下)
在上一篇文章里,制作了显示血量和蓝量的ui,并且还将ui和获取数据使用的控制器层创建出来并初始化成功。现在只有主用户控件上面被添加了控制器层,还未给每个用户控件赋予控制器层。接下来要实现对属性的广播功能,在属性值变化的时候,能够在蓝图中获取到数值的变化并更新到用户控件上面。原创 2024-01-23 17:01:32 · 1148 阅读 · 0 评论 -
10. UE5 RPG使用GameEffect修改角色属性(一)
前面我们通过代码实现了UI显示角色的血量和蓝量,并实现了初始化和在数值变动时实时更新。为了测试方便,没有使用GameEffect去修改角色的属性,而是通过代码直接修改的数值。对于GameEffect的基础,这里不再讲解,如果需要可以查看文档。接下来,讲解一下,如何使用GameEffect进行属性修改。原创 2024-01-24 19:42:13 · 1283 阅读 · 0 评论 -
11. UE5 RPG使用GameplayEffect修改角色属性(二)
上一篇写了一下GameplayEffect的基础操作,这一篇进阶一下,讲解一下GameplayEffect堆叠功能,以及能够基于这个堆叠能够实现一些怎样的效果。经过几天的查看,发现新版的更新的真不错,而且最上面竟然直接显示编译的错误,不需要编译后查看。原创 2024-02-01 12:02:31 · 1072 阅读 · 0 评论