自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(681)
  • 资源 (6)
  • 收藏
  • 关注

原创 37. UE5 RPG创建自定义的Ability Task

在前面的文章中,我们实现了一个火球术的一些基本功能,火球术技能的释放,在技能释放后,播放释放动画,在动画播放到需要释放火球术的位置时,将触发动画通知,在动画通知中触发标签事件,然后再技能中监听事件完成火球术的创建。接下来,我们将继续优化火球术技能,并研究点新的东西。

2024-04-19 11:16:28 472

原创 36. UE5 RPG在激活技能时使用蒙太奇动画

在上一篇文章里面,我们实现了一个简单的火球术,创建了火球术的火球,以及能发射它的技能。很简陋,在技能触发的时候,直接在武器的位置生成火球发射出去。在一篇文章里,我们要实现使用技能时,角色会播放攻击动画,然后再某个动画帧,将火球发射出去。所以,我们要使用播放蒙太奇动画来实现动画覆盖,以及动画通知来实现角色手向前攻击时触发火球射出。

2024-04-16 18:02:43 1018

原创 35. UE5 RPG制作火球术技能

接下来,我们将制作技能了,总算迈进了一大步。首先回顾一下之前是如何实现技能触发的,然后再进入正题。现在技能可以被激活了,需要我们实现技能内的逻辑,接下来,我们将从简单的开始实现,那就是火球术。

2024-04-16 11:14:26 1205

原创 UE5 GameplayAbility 源码定义解析

在源码中,我可以看到技能的简介,以及内置的一些函数属性,并且可以看到在技能蓝图中设置的属性在代码里面是如何设置的。这一篇文章主要是对GA的源码定义文件的解析,方便后续学习对GA内部的内容做一个了解,而不是去学习GA的实现。我们实现的技能相当于是一个类,它可以直接被使用,或者实例化以后使用它的实例。首先对源码注释进行一个了解。

2024-04-14 17:45:14 294

原创 34. UE5 RPG实现鼠标点击移动

在前面,我们实现过使用键盘按键wasd去实现控制角色的移动,现在,我们实现了InputAction按键触发,后面,实现一下通过鼠标点击地面实现角色移动。我们将实现两种效果的切换,如果你点击地面快速松开,角色将自动寻路到目标为止。如果你按住鼠标不放,角色将自动朝向鼠标所指向的位置移动。接下来,我们实现它吧!首先在PlayerController(玩家控制器类)里面增加一些参数,用来记录一些信息,主要对应的是查询鼠标悬停的目标是否有敌人,按下的时间,以及自动寻路的参数。

2024-04-09 17:58:58 1179

原创 UE5俯视角游戏案例代码查看

对于初学者来说,UE的项目案例是我们入手的最佳途径,首先代码量少,思路清晰,还能给你提供一个清晰的结构。所以,我创建了一个俯视角的官方案例,来查看一下官方的代码学习一下。首先打开引擎,启动引擎然后创建一个示例,这是ue自带的案例打开源代码,看到案例就几个文件。

2024-04-07 19:32:26 1091

原创 33. UE5 RPG使用增强输入激活GameplayAbility(三)

在前面的文章,我们实现了使用GameplayTag和InputAction的对应绑定的数据,并且添加到了增强输入映射的上下文中,实现了通过按键打印对应的GameplayTag,这只是我们基础需要制作的。目的主要是为了实现在GameplayAblity上面设置对应的Tag,在按下对应按键时,可以激活技能。

2024-04-06 18:46:31 1139

原创 32. UE5 RPG使用增强输入激活GameplayAbility(二)

在上一篇文章中,我们实现了Tag和InputAction的数据对应,后面,我们会通过InputAction触发对应的Tag,然后在GameplayAbility身上设置对应的Tag,然后通过Tag遍历角色身上的所有应用的技能去激活。为了实现这个功能,我们需要增加自定义输入控件,通过此控件增加函数实现输入触发对应Tag触发,数据已经有了,这一篇的内容为创建一个用于增加自定义绑定事件的Component,以及在PlayerController上面使用新的绑定事件。

2024-04-04 15:52:55 1327

原创 31. UE5 RPG使用增强输入激活GameplayAbility(一)

在前面文章中,我们实现了对技能添加并直接激活功能,介绍了GA的相关参数配置。现在,我们还不能通过键位触发技能,正常在游戏时,我们需要通过键位触发技能,实现技能的激活。在UE5里面添加了增强输入,相对于之前的输入操作,切换为了模块化,我们可以通过切换输入上下文,来实现键位输入和InputAction的映射,你可以创建多个上下文蓝图,在角色不同操作时,切换不同的上下文来实现不同的映射,比如,在正常情况下,有一套控制任务的上下文,当角色进入汽车后,我们可以停止当前的上下文,并改为使用汽车操作上下文去实现。

2024-04-04 12:36:27 987

原创 30. UE5 RPG GamplayAbility的配置项

在上一篇文章,我们介绍了如何将GA应用到角色身上的,接下来这篇文章,将主要介绍一下GA的相关配置项。在这之前,再多一嘴,你要能激活技能,首先要先应用到ASC上面,才能够被激活。

2024-04-02 21:06:06 816

原创 29. UE5 RPG应用GamplayAbility

GamplayAbility 简称 GA,是UE引擎里的GAS内的功能组件,它的主要功能包括技能冷却时间(CD)和技能消耗的管理,同时也支持网络同步和实例支持。开发者可以在ActivateAbility事件中编写相关的技能逻辑,如角色动作、粒子效果以及角色数值的变动。根据技能是否施展成功,可以调用CommitAbility()或EndAbility()来结束技能。

2024-04-01 20:23:48 1128

原创 28. UE5 RPG同步面板属性(四)

上面几步在前几篇文章中,我们都基本实现了,只有AttributeMenuWidgetController对应的逻辑没有实现。在这一篇里面,我们将实现对应的逻辑,实现对UI数据的同步。

2024-03-30 15:13:42 1106

原创 27. UE5 RPG同步面板属性(三)

我们将在这一篇里实现对AttributeMenuWidgetController创建,可以将数据从AS里同步到UI上面。

2024-03-30 15:12:25 939

原创 26. UE5 RPG同步面板属性(二)

并且我们实现了第一步,就是在C++里可以创建GameplayTag,并且可以通过单例去获取到Tag的变量。后面属性修改委托也会通过Tag去匹配,这一篇,我们将实现创建一个DataAsset类,用于存储UI显示所需的数据。

2024-03-30 15:12:08 1053

原创 25. UE5 RPG同步面板属性(一)

那么我们需要创建一个自己的AssetManager,打开UE,在Public目录创建一个继承AssetManager的子类创建了此类,我们首先增加一个静态的Get函数,用于获取它的单例。在实现这里,我们要先判断引擎,然后通过引擎获取到资源管理器的单例,获取到的是对其的引用,我们返回时需要加*来返回它的实例。接着,我们覆盖其父类的StartInitialLoading()函数,在内部增加对自定义的标签FMyGameplayTags处理。

2024-03-30 15:11:30 901

原创 24. UE5 RPG制作属性面板(二)

在上一篇中,我们创建属性面板的大部分样式,这一篇里面接着制作。接下来,我们将一步步实现上面的功能。

2024-03-24 20:15:52 946

原创 23. UE5 RPG制作属性面板(一)

随着角色的属性越来越多,我们不能每次都进行showdebug abilitysystem进行查看,而且玩家也需要查看角色属性,所以需要一个查看玩家角色属性的面板。在前面,我们创建三种类型的属性我们制作的面板就需要将这三大块区分开来,主要属性增加加点按钮,次级属性只做显示,重要属性在显目的位置显示。

2024-03-23 19:51:33 920

原创 22. UE5 RPG使用MMC根据等级设置血量和蓝量(下)

上一篇,我们实现了玩家角色和敌人的等级的获取,使用MMC的提前工作已经准备完成,那么,这一篇讲一下,如何使用MMC,通过角色等级和体力值设置角色的最大血量。MMC 全称 Mod Magnitude Calculation,为自定义计算数值的类,可以使用蓝图继承,也可以使用c++继承,在这个项目里面我们使用的c++实现。

2024-03-20 20:08:13 701

原创 21. UE5 RPG使用MMC根据等级设置血量和蓝量(上)

上一篇文章,我们创建了次级属性,并实现了对次级属性的初始化,而且因为使用的Infinite模式,具有无限的持续时间,它能够跟随基础属性变动而实时修改数值。接下来,我们将为角色和敌人增加等级,将等级放到character身上,并实现使用Modifier Magnitude Calculation (MMC)进行自定义计算数值。(当然,等级属性也能够放到AS里面,这里为了学习,就作为一个单独的属性,看个人爱好了)在这一篇里面,我们先实现一下前面的两个步骤。

2024-03-19 19:18:01 1056

原创 20. UE5 RPG创建次级属性并实现设置

在游戏中,游戏的角色属性会根据游戏玩法也不同,当前制作的RPG中,主要分为两种属性,一种是主要属性另一种次级属性。这两种类型属性的区分主要数值的计算是否需要依托于其它数值举个例子,你的体力值主要在于角色的个人成长增加以及装备等的增加,它不依托于其它属性,所以是主要属性。而你的血量上限需要依托于体力数值,根据体力进行一定的比例设置血量上线,它需要依托于体力属性,所以是次级属性。

2024-03-18 20:01:27 837

原创 19. UE5 RPG使用GameplayEffect的Attribute Based Modifiers

前几篇文章我也说了GE的基础使用,但是,对一些属性的应用没有述说,后续,我将一点一点的将它们如何使用书写下来。这一篇,主要就讲解一下Attribute Based Modifiers使用,先说一下它的应用场景,一般游戏里面,都有属性和属性之间的联系的东西,比如体力可以加血量上限,智力可以增加蓝量上限这种,它会根据职业或者角色的不同,按不同的比例增加,如果需要实现这种方式时,我们就可以通过使用Attribute Based Modifiers去实现。

2024-03-16 23:50:09 820

原创 18. UE5 RPG初始化角色的属性

在中,我们创建AS的时候,也设置了默认值,但是这种方法是在初始化AS的时候创建的,无法进行个性化定义,因为我们创建的所有的角色的属性不可能相同,所以,我们需要使用一个方法实现对角色基础属性的初始化。上面的代码为当前初始化AS时,对属性进行的初始化设置。下面呢,我们将新增加一些属性,和使用一种更方便的方式对值进行初始化。

2024-03-16 20:14:26 817

原创 17. UE5 RPG使用匿名函数替换事件委托

上一节里面,我们实现了GE被应用时的事件委托,在GE被应用到目标身上时,会触发GE身上设置的Tag,然后通过Tag在设置的表格内寻找表格数据,并添加到窗口显示。下面,为了防止OverlayWidgetController里面的回调太臃肿,这一节我们将它的代码优化一下。首先看一下现在的OverlayWidgetController的代码。

2024-03-13 19:50:10 506

原创 16. UE5 RPG获取GE应用的回调,并根据Tag设置数据显示到窗口

在上一篇介绍了对标签如何在项目中设置,这一篇先讲解一下如何在GE里面使用GameplayTag标签。之前我在第十一章节中介绍了一些GE的属性,在UE 5.3版本中,修改的配置方式,需要在组件里面设置需要的组件下图为与标签相关的组件。

2024-03-12 20:15:46 698

原创 15. UE5 RPG使用GameplayTag

GameplayTag本来是应用在GAS游戏技能系统里面的,后来UE直接将其抽离出来,作为一个模块,现在可以不在GAS里也可以使用这个模块。比如,我需要判断一个射线拾取的物体,首先我需要判断这个actor是否存在,然后判断是否是对应类型,如果我们使用GameplayTag,直接判断拾取的actor上面是否含有对应标签,可以提高性能。GameplayTag也不是单纯的字符串标签,而是一种具有层级结构的对象,可以用作识别、匹配、分类或过滤易于管理,而且完全支持自定义结构。

2024-02-20 17:38:56 732

原创 14. UE5 RPG使用曲线表格设置回复血量值

之前的文章中,我使用的都是固定的数值来设置血量回复或者蓝量回复,在这篇文章里面,介绍一下使用曲线表格。通过曲线表格我们可以设置多个数值,然后通过去通过修改索引对应的数值去修改回复的血量或者蓝量。

2024-02-19 16:55:58 735

原创 13. UE5 RPG限制Attribute的值的范围以及生成结构体

前面几章,我们实现了通过GameplayEffect对Attribute值的修改,比如血量和蓝量,我们都是有一个最大血量和最大蓝量去限制它的最大值,而且血量和蓝量最小值不会小于零。之前我们是没有实现相关限制的,接下来,我们需要在AttributeSet函数里面实现一下对实际值的范围限制。

2024-02-07 16:38:48 1151 3

原创 12. UE5 RPG使用GameplayEffect修改角色属性(三)

书接前面,介绍了GameplayEffect的Instant和Duration的使用,这一篇主要介绍一下无限制时间类型的infinite的使用方式。无限时间限制模式下,如果你的周期时间(Period)为0,那就是相当于增加了一个状态加了一个Buff,效果是持续的,如果周期时间你设置了值,那么它将变成为每个周期执行一次Instant效果的GameplayEffect。使用起来基本上和有时间限制的Duration一样,它们的区别在于,一个是有时间限制的,另一个是没有时间限制。

2024-02-05 15:05:58 855

原创 Unity制作随风摇摆的植物

今天记录一下如何实现随风摇摆的植物,之前项目里面的植物摇摆实现是使用骨骼动画实现的,这种方式太消耗性能,植物这种东西没必要,直接使用顶点动画即可。

2024-02-02 11:15:17 755

原创 11. UE5 RPG使用GameplayEffect修改角色属性(二)

上一篇写了一下GameplayEffect的基础操作,这一篇进阶一下,讲解一下GameplayEffect堆叠功能,以及能够基于这个堆叠能够实现一些怎样的效果。经过几天的查看,发现新版的更新的真不错,而且最上面竟然直接显示编译的错误,不需要编译后查看。

2024-02-01 12:02:31 1050

原创 10. UE5 RPG使用GameEffect修改角色属性(一)

前面我们通过代码实现了UI显示角色的血量和蓝量,并实现了初始化和在数值变动时实时更新。为了测试方便,没有使用GameEffect去修改角色的属性,而是通过代码直接修改的数值。对于GameEffect的基础,这里不再讲解,如果需要可以查看文档。接下来,讲解一下,如何使用GameEffect进行属性修改。

2024-01-24 19:42:13 1256

原创 9. UE5 RPG创建UI(下)

在上一篇文章里,制作了显示血量和蓝量的ui,并且还将ui和获取数据使用的控制器层创建出来并初始化成功。现在只有主用户控件上面被添加了控制器层,还未给每个用户控件赋予控制器层。接下来要实现对属性的广播功能,在属性值变化的时候,能够在蓝图中获取到数值的变化并更新到用户控件上面。

2024-01-23 17:01:32 1144

原创 8. UE5 RPG创建UI(上)

上面这些我们主要实现了制作用户控件,并且能够在用户控件里面直接获取到控制器层,后续可以通过控制器层直接获取数据进行数据更新。具体实现过程:在创建玩家控制角色过程中,初始化完成技能系统后,去调用HUD的InitOverlay()函数,来实现用户组件控制器层的初始化。InitOverlay()中将实现对用户控件和用户控件控制器层的实例化,并将UI添加到屏幕中。

2024-01-22 13:53:47 1327

原创 7. UE5 RPG修改GAS的Attribute的值

前面几节文章介绍了如何在角色身上添加AbilitySystemComponent和AttributeSet。并且还实现了给AttributeSet添加自定义属性。接下来,实现一下如何去修改角色身上的Attribute的值。

2024-01-17 19:33:34 752

原创 6. UE5 RPG AttributeSet的设置

AttributeSet 负责定义和持有属性并且管理属性的变化。开发者可以子类化UAttributeSet。在OwnerActor的构造方法中创建的AttributeSet将会自动注册到ASC。这一步必须在C++中完成。

2024-01-16 19:29:02 1161

原创 5. UE5 RPG使用GAS技能系统

基础的讲解这里不再诉说,有兴趣的可以翻我之前的博客。接下来,在RPG游戏中实现GAS系统的使用。

2024-01-15 19:59:21 1277

原创 4. UE5 通过接口实现角色描边效果

接口不能够被实例化,不能够在内部书写函数的逻辑和设置属性,只能够被继承使用。它能够让不同的类实现有相同的函数,继承接口的类必须实现接口的函数。并且,我们可以在不同的类里面的函数实现也不同,比如A类描边是红色,B类的描边是绿色的,描边的调用都使用一个函数调用。

2024-01-11 16:49:24 1191

原创 3. UE5 实现RPG游戏操作控制

在UE5以后,epic抛弃了之前的那一套操作输入系统,使用了一套新的增强输入作为替代,目的主要是解决经常切换操作时的问题(操作人物上车以后,可以直接切换成操作汽车的一套输入)接下来,将实现如何使用增强输入实现对角色的操作。这里讲解一下如何实现通过操作控制角色移动。

2024-01-10 14:13:33 1299

原创 2. UE5 RPG使用动画模板创建多个动画蓝图

这里就需要介绍一下动画模板,我们可以将动画蓝图相同的内容放置到一个动画模板内,去修改需求也就不会需要单独的去修改每个动画蓝图。我们制作游戏的时候,角色会根据不同的武器表现出来不同的攻击动画,待机动画以及移动动画。在帧更新里面,获取角色移动组件是否存在,然后获取到角色的这一帧的移动长度,并转换为速度。如果设置的正确,则左侧的模型将会播放动画。到这里,一个简单的动画模板创建完成,接下来,我们将基于这个模版创建动画蓝图使用。在创建指定骨架使用的动画蓝图时,我们需要指定父类使用前面创建的动画蓝图的模板。

2024-01-08 17:27:52 683 2

原创 1. UE5 RPG使用代码开发UE设置,以及创建基于类的蓝图

此文章用于记录当前学习的重要的点。

2024-01-08 14:40:55 561 1

Substance Painter 和 Unity 同步Standard

同步了一个渲染shader,Substance Painter使用的版本是 9.0.0,Unity版本2019.4.40 。同步的shader为默认的Standard,工作流为金属工作流

2023-09-22

InstantOC Dynamic Occlusion Culling LOD 3.0.0

对unity的免费资源的修改版。 修改了脚本内过时的接口。 修改为了2020版本的urp渲染管线。 使用时,可以直接将内容解压到项目中的Asset文件夹中。 具体使用方式,参考链接:

2022-09-29

three.js开发指南-资源部分

之前下载过three.js开发指南的代码,发现很有代码都是无法运行的。所以找了一份没有问题的代码上传,让朋友少走点弯路。由于资源太大,所以分开上传,这一部分只是资源部分。

2017-12-25

three.js开发指南-代码部分

之前下载过three.js开发指南的代码,发现很有代码都是无法运行的。所以找了一份没有问题的代码上传,让朋友少走点弯路。由于资源太大,所以分开上传,这一部分只是代码部分。

2017-12-25

webpack配置es6+less开发环境

此为本人制作的webpack开发环境,使用babel进行代码转换,postcss进行兼容性,可以使用less进行css预编译,欢迎测试

2017-11-17

41节的可交互的立方体

预留的WebGL交互立方体的代码

2017-06-14

WebGL预先定义库

一些专为WebGL准备、事先定义好的函数库

2017-04-25

jquery源码_详细中文注释.pdf

1.2.6版本的jquery注释,大家共同学习,注释十分详细

2016-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除