- 博客(744)
- 资源 (6)
- 收藏
- 关注
原创 22. UE5 GAS RPG使用MMC根据等级设置血量和蓝量(下)
上一篇,我们实现了玩家角色和敌人的等级的获取,使用MMC的提前工作已经准备完成,那么,这一篇讲一下,如何使用MMC,通过角色等级和体力值设置角色的最大血量。MMC 全称 Mod Magnitude Calculation,为自定义计算数值的类,可以使用蓝图继承,也可以使用c++继承,在这个项目里面我们使用的c++实现。
2024-03-20 20:08:13 928
原创 21. UE5 GAS RPG使用MMC根据等级设置血量和蓝量(上)
上一篇文章,我们创建了次级属性,并实现了对次级属性的初始化,而且因为使用的Infinite模式,具有无限的持续时间,它能够跟随基础属性变动而实时修改数值。接下来,我们将为角色和敌人增加等级,将等级放到character身上,并实现使用Modifier Magnitude Calculation (MMC)进行自定义计算数值。(当然,等级属性也能够放到AS里面,这里为了学习,就作为一个单独的属性,看个人爱好了)在这一篇里面,我们先实现一下前面的两个步骤。
2024-03-19 19:18:01 1257
原创 20. UE5 GAS RPG创建次级属性并实现设置
在游戏中,游戏的角色属性会根据游戏玩法也不同,当前制作的RPG中,主要分为两种属性,一种是主要属性另一种次级属性。这两种类型属性的区分主要数值的计算是否需要依托于其它数值举个例子,你的体力值主要在于角色的个人成长增加以及装备等的增加,它不依托于其它属性,所以是主要属性。而你的血量上限需要依托于体力数值,根据体力进行一定的比例设置血量上线,它需要依托于体力属性,所以是次级属性。
2024-03-18 20:01:27 1030
原创 19. UE5 GAS RPG使用GameplayEffect的Attribute Based Modifiers
前几篇文章我也说了GE的基础使用,但是,对一些属性的应用没有述说,后续,我将一点一点的将它们如何使用书写下来。这一篇,主要就讲解一下Attribute Based Modifiers使用,先说一下它的应用场景,一般游戏里面,都有属性和属性之间的联系的东西,比如体力可以加血量上限,智力可以增加蓝量上限这种,它会根据职业或者角色的不同,按不同的比例增加,如果需要实现这种方式时,我们就可以通过使用Attribute Based Modifiers去实现。
2024-03-16 23:50:09 1005
原创 18. UE5 GAS RPG初始化角色的属性
在中,我们创建AS的时候,也设置了默认值,但是这种方法是在初始化AS的时候创建的,无法进行个性化定义,因为我们创建的所有的角色的属性不可能相同,所以,我们需要使用一个方法实现对角色基础属性的初始化。上面的代码为当前初始化AS时,对属性进行的初始化设置。下面呢,我们将新增加一些属性,和使用一种更方便的方式对值进行初始化。
2024-03-16 20:14:26 1059
原创 17. UE5 GAS RPG使用匿名函数替换事件委托
上一节里面,我们实现了GE被应用时的事件委托,在GE被应用到目标身上时,会触发GE身上设置的Tag,然后通过Tag在设置的表格内寻找表格数据,并添加到窗口显示。下面,为了防止OverlayWidgetController里面的回调太臃肿,这一节我们将它的代码优化一下。首先看一下现在的OverlayWidgetController的代码。
2024-03-13 19:50:10 687
原创 16. UE5 GAS RPG获取GE应用的回调,并根据Tag设置数据显示到窗口
在上一篇介绍了对标签如何在项目中设置,这一篇先讲解一下如何在GE里面使用GameplayTag标签。之前我在第十一章节中介绍了一些GE的属性,在UE 5.3版本中,修改的配置方式,需要在组件里面设置需要的组件下图为与标签相关的组件。
2024-03-12 20:15:46 1076
原创 15. UE5 GAS RPG使用GameplayTag
GameplayTag本来是应用在GAS游戏技能系统里面的,后来UE直接将其抽离出来,作为一个模块,现在可以不在GAS里也可以使用这个模块。比如,我需要判断一个射线拾取的物体,首先我需要判断这个actor是否存在,然后判断是否是对应类型,如果我们使用GameplayTag,直接判断拾取的actor上面是否含有对应标签,可以提高性能。GameplayTag也不是单纯的字符串标签,而是一种具有层级结构的对象,可以用作识别、匹配、分类或过滤易于管理,而且完全支持自定义结构。
2024-02-20 17:38:56 1229
原创 14. UE5 GAS RPG使用曲线表格设置回复血量值
之前的文章中,我使用的都是固定的数值来设置血量回复或者蓝量回复,在这篇文章里面,介绍一下使用曲线表格。通过曲线表格我们可以设置多个数值,然后通过去通过修改索引对应的数值去修改回复的血量或者蓝量。
2024-02-19 16:55:58 969
原创 13. UE5 GAS RPG限制Attribute的值的范围以及生成结构体
前面几章,我们实现了通过GameplayEffect对Attribute值的修改,比如血量和蓝量,我们都是有一个最大血量和最大蓝量去限制它的最大值,而且血量和蓝量最小值不会小于零。之前我们是没有实现相关限制的,接下来,我们需要在AttributeSet函数里面实现一下对实际值的范围限制。
2024-02-07 16:38:48 1428 3
原创 12. UE5 GAS RPG使用GameplayEffect修改角色属性(三)
书接前面,介绍了GameplayEffect的Instant和Duration的使用,这一篇主要介绍一下无限制时间类型的infinite的使用方式。无限时间限制模式下,如果你的周期时间(Period)为0,那就是相当于增加了一个状态加了一个Buff,效果是持续的,如果周期时间你设置了值,那么它将变成为每个周期执行一次Instant效果的GameplayEffect。使用起来基本上和有时间限制的Duration一样,它们的区别在于,一个是有时间限制的,另一个是没有时间限制。
2024-02-05 15:05:58 1161
原创 Unity制作随风摇摆的植物
今天记录一下如何实现随风摇摆的植物,之前项目里面的植物摇摆实现是使用骨骼动画实现的,这种方式太消耗性能,植物这种东西没必要,直接使用顶点动画即可。
2024-02-02 11:15:17 1540
原创 11. UE5 GAS RPG使用GameplayEffect修改角色属性(二)
上一篇写了一下GameplayEffect的基础操作,这一篇进阶一下,讲解一下GameplayEffect堆叠功能,以及能够基于这个堆叠能够实现一些怎样的效果。经过几天的查看,发现新版的更新的真不错,而且最上面竟然直接显示编译的错误,不需要编译后查看。
2024-02-01 12:02:31 1770
原创 10. UE5 GAS RPG使用GameEffect修改角色属性(一)
前面我们通过代码实现了UI显示角色的血量和蓝量,并实现了初始化和在数值变动时实时更新。为了测试方便,没有使用GameEffect去修改角色的属性,而是通过代码直接修改的数值。对于GameEffect的基础,这里不再讲解,如果需要可以查看文档。接下来,讲解一下,如何使用GameEffect进行属性修改。
2024-01-24 19:42:13 1882
原创 9. UE5 GAS RPG创建UI(下)
在上一篇文章里,制作了显示血量和蓝量的ui,并且还将ui和获取数据使用的控制器层创建出来并初始化成功。现在只有主用户控件上面被添加了控制器层,还未给每个用户控件赋予控制器层。接下来要实现对属性的广播功能,在属性值变化的时候,能够在蓝图中获取到数值的变化并更新到用户控件上面。
2024-01-23 17:01:32 1318
原创 8. UE5 GAS RPG创建UI(上)
上面这些我们主要实现了制作用户控件,并且能够在用户控件里面直接获取到控制器层,后续可以通过控制器层直接获取数据进行数据更新。具体实现过程:在创建玩家控制角色过程中,初始化完成技能系统后,去调用HUD的InitOverlay()函数,来实现用户组件控制器层的初始化。InitOverlay()中将实现对用户控件和用户控件控制器层的实例化,并将UI添加到屏幕中。
2024-01-22 13:53:47 2011
原创 7. UE5 GAS RPG修改GAS的Attribute的值
前面几节文章介绍了如何在角色身上添加AbilitySystemComponent和AttributeSet。并且还实现了给AttributeSet添加自定义属性。接下来,实现一下如何去修改角色身上的Attribute的值。
2024-01-17 19:33:34 1021
原创 6. UE5 GAS RPG AttributeSet的设置
AttributeSet 负责定义和持有属性并且管理属性的变化。开发者可以子类化UAttributeSet。在OwnerActor的构造方法中创建的AttributeSet将会自动注册到ASC。这一步必须在C++中完成。
2024-01-16 19:29:02 1495 2
原创 5. UE5 GAS RPG使用GAS技能系统
基础的讲解这里不再诉说,有兴趣的可以翻我之前的博客。接下来,在RPG游戏中实现GAS系统的使用。
2024-01-15 19:59:21 2062
原创 4. UE5 GAS RPG 通过接口实现角色描边效果
接口不能够被实例化,不能够在内部书写函数的逻辑和设置属性,只能够被继承使用。它能够让不同的类实现有相同的函数,继承接口的类必须实现接口的函数。并且,我们可以在不同的类里面的函数实现也不同,比如A类描边是红色,B类的描边是绿色的,描边的调用都使用一个函数调用。
2024-01-11 16:49:24 1583
原创 3. UE5 GAS RPG 实现RPG游戏操作控制
在UE5以后,epic抛弃了之前的那一套操作输入系统,使用了一套新的增强输入作为替代,目的主要是解决经常切换操作时的问题(操作人物上车以后,可以直接切换成操作汽车的一套输入)接下来,将实现如何使用增强输入实现对角色的操作。这里讲解一下如何实现通过操作控制角色移动。
2024-01-10 14:13:33 1822
原创 2. UE5 GAS RPG使用动画模板创建多个动画蓝图
这里就需要介绍一下动画模板,我们可以将动画蓝图相同的内容放置到一个动画模板内,去修改需求也就不会需要单独的去修改每个动画蓝图。我们制作游戏的时候,角色会根据不同的武器表现出来不同的攻击动画,待机动画以及移动动画。在帧更新里面,获取角色移动组件是否存在,然后获取到角色的这一帧的移动长度,并转换为速度。如果设置的正确,则左侧的模型将会播放动画。到这里,一个简单的动画模板创建完成,接下来,我们将基于这个模版创建动画蓝图使用。在创建指定骨架使用的动画蓝图时,我们需要指定父类使用前面创建的动画蓝图的模板。
2024-01-08 17:27:52 1138 2
原创 UE5 将类修改目录
删除后,右键.uproject文件,找到Generate Visual Studio project files,重新生成数据。如果我们需要创建它的子类,还想让它直接创建到当前目录中,直接在工具下拉里面选择创建C++类的话,还是会创建到根目录。有个需求,需要修改ue里面类的位置,默认在Public类下面,我想创建一个二级目录,将所有的类分好位置,方便查看。我想将类移动到Character目录下,那么,我需要手动创建目录,并将.h文件移入。我们可以直接右键父类,创建派生类,它将直接创建到当前文件夹内。
2024-01-08 10:29:30 989
原创 unity 使用模拟器进行Profiler性能调试
这篇文章主要记录如何实现通过模拟器对打包的app游戏进行Profiler调试。主要记录一些比较重要的点。
2023-10-10 17:48:58 2247
原创 在 Substance Painter中实现Unity Standard Shader
要同步shader,需要将一些常量设置SP是线性空间的,所以Standard里面一些Gamma相关的代码自动摒弃。贴图直接使用内置的方法去获取还有一些和Standard对应的参数间接光漫反射的球谐光照参数,是直接写死在shader里面的还有像在unity里面常用的一些函数,比如saturate和lerp,都直接定义出来。
2023-09-22 10:44:23 1862
原创 在 Substance Painter中自定义Shader
首先在着色器设置这里,我们可以查看当前渲染使用的着色器如果没有着色器设置窗口,可以在窗口这里打开点击着色器名称,可以切换当前拥有的shader相应的内置的shader可以在安装目录找到对应的Shader的api文档可以在帮助下拉中打开会打开相应的网页,网页地址在/resources/shader-doc/index.html,你也可以直接在目录中查找官方网站也有相应的文档,地址为接下来,按照官方的教程,先在shaders文件夹下创建一个color.glsl文件。
2023-09-14 17:07:47 1244 1
原创 使用GPA和夜神模拟器实现K帧
us的单位是微秒,1毫秒等于1000微秒,30004us就相当于30毫秒渲染完成此帧,右侧上面是33FPS,代表当前每秒可以渲染33帧,用1秒,也就是1000毫秒除以每帧时间30毫秒,结果是33.333,证明结果正确性。这里分为了三大块,分别是输入,处理,输出,输入有顶点数据geometry,相关贴图。这里说明一下,你K帧结束以后,也可以直接通过Graphics Frame Analyzer查看之前K到的帧,帧数据里面包含了你需要查看的内容,所以你K的一帧的数据都是有几百M。
2023-09-08 11:37:42 600
原创 UE 5 GAS 在项目中通过数据初始化
近期,在制作多角色,考虑到角色和角色之间有很多共用的内容,正常项目中的实现的话,会通过数据的方式去实现角色初始化,接下来介绍一下,我的实现方式。以上是我设置的相应的数据,上面最简单的名称,介绍还有显示图片,性别。
2023-08-31 00:57:16 537
原创 UE 5 GAS 在项目中处理AttributeSet相关
这一篇文章是个人的实战经验记录,如果对基础性的内容不了解的,可以看我前面一篇文章对基础的概念以及内容的讲解。
2023-08-11 21:40:17 1405
原创 UE 5 GAS Gameplay Ability System
游戏技能系统 简称(GAS),是一个健壮的,高度可扩展的gameplay框架,通常用于构件RPG、MOBA等游戏的完整战斗逻辑框架。通过GAS,可以快速地制作游戏中的主动/被动技能、各种效果Buff、计算属性伤害、处理玩家各种战斗状态逻辑。
2023-08-09 21:11:10 3032
原创 Unreal 5 游戏框架
创建自定义的资源管理器需要书写代码,类继承至UAssetManager然后在项目设置中,找到一般设置默认类,设置资产管理类要实现自定义主资产的创建,你需要通过c++代码创建,我们可以实现创建一个基于UPrimaryDataAsset创建一个自定义类,而且必须要实现GetPrimaryAssetId方法的覆盖首先创建一个基于PrimaryDataAsset的c++类。
2023-07-11 23:09:50 2086
原创 Unreal 5 Lyra初学者游戏包概览笔记
Simple Cosmetics System (简单的换装系统)实现了显示角色的替换功能,将actor添加到骨骼上面,下图是通过调用AddCharacterPart方法,选择机器人设置显示。并且在偏好向这里,你还可以直接替换模型进行测试如果实现使用角色修改,我们首先需要模型,直接从metahuman创建的模型然后再偏好向那里,可以直接设置,这属于调试的方式。
2023-07-07 02:45:17 1947
原创 Unreal 5 创建MetaHuman
unreal5里面最惊喜的就是可以通过引擎直接创建数字人模型,调整体型,相当于引擎规范了一套结构,期待后续用户会基于这一套开发更多相关的资源供开发者使用。接下来我讲解一下,metahuman的制作过程。
2023-07-05 16:58:22 1552 1
原创 Unreal 5 实现使用GPU Instancing批量渲染相同的物体
之前做unity的时候,专门研究了使用GPU进行批量相同的物体渲染,现在转ue以后,发现UE也有相同的功能。接下来讲解一下,在ue里面如何实现通过GPU进行实例化渲染。
2023-06-30 17:37:40 2622
原创 Unreal 5 实现骨骼网格体转静态网格体顶点动画
如果需要大批量的渲染具有动作的模型,如果使用骨骼网格体渲染模型,量级上去以后,性能肯定扛不住的。如果需要实现大批量的渲染相同的带有动画的模型,我们需要实现将骨骼网格体烘焙成静态网格体,然后将骨骼网格体动画转换成顶点贴图,通过顶点位置偏移实现动画播放,并且由于不需要骨骼,只需要修改一些材质配置,就可以实现每个模型单独动画的播放。连线的方式如下,除了法向其它的还是默认连,法向需要连接到函数,和烘焙出来的法向,设置给材质。烘焙纹理生成的两个贴图Nor为法向贴图,Pos为位置贴图,AnimData为动画数据。
2023-06-27 21:24:54 1526
原创 Unreal 5 实现Data Table 数据表格的使用
数据是一个游戏重要的组成部分,按分工,数据会交由策划去配置,所以,你的数据不可能直接写到蓝图里面,而是有一个专门的数据表格去配置。大家通用的方式是策划在Excel内编辑完成,然后通过工具生成游戏需要使用的数据格式,最后交由程序去使用。如果个人开发,直接使用ue内部实现的数据表格即可。接下来,我给大家讲解一下数据表格如何使用。
2023-06-25 13:01:04 4275 2
Substance Painter 和 Unity 同步Standard
2023-09-22
InstantOC Dynamic Occlusion Culling LOD 3.0.0
2022-09-29
three.js开发指南-资源部分
2017-12-25
three.js开发指南-代码部分
2017-12-25
webpack配置es6+less开发环境
2017-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人