UE5 Lyra项目源码分析-角色配置说明

news/2024/12/22 17:31:21/

在上一篇里,我们研究了关卡的配置如何在GameMode实现加载的,并稍微理解了Lyra是如何实现的模块化,由于模块化太彻底,所以理解起来有些难,在这一篇里,我们看一下配置里面比较想了解的一块。就是角色是如何配置,并且如何将GAS应用到身上的。

查看地图总配置

我们可以想到,在UI上可以看到,有地图配置和名称描述等内容,当然需要配置文件去配置
在这里插入图片描述
根据在ActionRPG里面学到的经验,我找到对应的用户控件
在这里插入图片描述
在里面发现了对应的用户资产类型,它将所有的对应类型的用户资产加载
在这里插入图片描述
然后查看类型里面的数据能不能默认显示,要不要放到前面优先显示,最后生成用户控件放置到HUD上。
在这里插入图片描述
基于类型,我们搜索所有的资源,可以发现一下资源都是通过此类创建的。
在这里插入图片描述
找到了以后,我们就迫不及待的打开查看一下配置项有哪些内容,发现第一项是关卡,第二项是关卡的玩法配置,后面就是在UI上的一些相关配置。
在这里插入图片描述
然后查看源码,发现MapID和ExperienceID都是通过资源ID进行设置,并且设定了类型,所以,在下拉里,我们只能选中对应的类型的语言。
在这里插入图片描述
还有值得一说的就是ExtraArgs,这个可以通过URL传递额外的配置,我们在上一篇Lyra解析里提到过这里。
在这里插入图片描述
然后就是加载地图时显示的背景图片,这里使用了TSoftClassPtr,也就是配置项里不会存储用户控件蓝图,而是存储的蓝图地址,在需要的时候进行加载。
在这里插入图片描述
后面,我们就要查看游戏玩法配置,接上了上一篇的配置加载解析。
在这里插入图片描述

玩家配置项

接着,我们查看一下玩家配置项,配置项里需要设置玩家使用的蓝图,初始的技能,标签之间的关系,然后就是输入操作触发的技能标签,最后是使用的相机模式。
在这里插入图片描述
技能集是个数组,可以配置多项,里面可以配置应用的技能和触发的标签,技能等级,还有GE和属性集AS
在这里插入图片描述
TagRelationshipMapping 则配置了技能标签之间的关系,这个本来应该是配置到技能里的,看来是为了模块化,也直接分开了
在这里插入图片描述
输入配置 Input Config,里面对应了输入操作Action对应触发的标签,分为默认操作和技能输入标签,实现逻辑应该不同。
在这里插入图片描述
最后是设置控制镜头的使用的类,看了一下应该是Lyra单独实现类,感兴趣的可以看一下源码
在这里插入图片描述

角色的查看完成,接着就是玩法的相关配置了,因为角色的那些配置还不足以支撑起当前游戏玩法,所以,还需要额外的一些操作配置来实现。
后面的玩法的操作配置,上一篇里我们也查看了对应的配置是如何实现,

处理配置

如何能够得之Lyra是如何处理角色数据的,我们可以从GameMode 的ChoosePlayerStart函数入手,这个函数是从场景里获取到玩家出生点,如果你设置了多个,还可以根据逻辑随机一个出生点生成
GameMode里获取出生点也是通过组件去获取的,这里我不再去看细节,感兴趣的可以去看看如何拿到的出生点。
在这里插入图片描述
接着,查看初始化GameState函数,在初始化完成GameState后,绑定监听配置加载完成的函数
在这里插入图片描述
获取到关卡里的所有的玩家控制器,如果从对应的玩家控制器获取不到Pawn,将创建。
在这里插入图片描述
基类里的RestartPlayer函数进行逻辑判断,获取到出生点,然后调用RestartPlayerAtPlayerStart函数
在这里插入图片描述
RestartPlayerAtPlayerStart函数里,先对所需的数据判断,获取到初始点的朝向
在这里插入图片描述
然后判断有没有Pawn,没有通过函数SpawnDefaultPawnFor创建一个
在这里插入图片描述

创建成功调用FinishRestartPlayer成功函数,要不然这调用失败
在这里插入图片描述
SpawnDefaultPawnFor其实就是获取出生点变换,方便后续设置角色位置,然后调用SpawnDefaultPawnAtTransform函数生成pawn
在这里插入图片描述
当然SpawnDefaultPawnAtTransform函数被Lyra覆写了,它是通过ULyraPawnExtensionComponent插件获取到PawnData,就是我们配置项里配置的角色配置去生成玩家控制的角色的
在这里插入图片描述
最后就是调用重置玩家控制角色位置,完成角色的Pawn的创建。
在这里插入图片描述


http://www.ppmy.cn/news/1557248.html

相关文章

阿里数据仓库-数据模型建设方法总结

一、大数据领域建模综述 1.1 为什么需要数据建模 有结构地分类组织和存储是我们面临的一个挑战。 数据模型强调从业务、数据存取和使用角度合理存储数据。 数据模型方法,以便在性能、成本、效率之间取得最佳平衡 成本:良好的数据模型能极大地减少不必要的数据冗余,也能实现…

【ETCD】【源码阅读】深入分析 applierV3backend.Apply`方法源码

applierV3backend的Apply主要负责将 Raft 请求 (pb.InternalRaftRequest) 应用到 Etcd 的后端存储中。它处理各种不同类型的请求,并且根据请求的具体内容调用相应的处理逻辑。 版本【release 文章目录 一、完整源码二、方法详解1. 定义和初始化2. 记录操作开始时间并…

Linux系统安全与应用: 筑牢防线,高效运维

在当今数字化时代,Linux系统凭借其卓越的稳定性与强大的性能,广泛应用于各类关键业务场景,从数据中心服务器到云计算平台,从网络设备到嵌入式系统,无处不在。因此,确保Linux系统安全稳定运行,成为重中之重。本文将深入解析Linux系统安全与应用的关键要点,涵盖账户安全,…

太速科技-527-基于3U VPX XCZU15EG+TMS320C6678的信号处理板

基于3U VPX XCZU15EGTMS320C6678的信号处理板 一、板卡概述 本板卡系我司自主研发的基于3U VPX风冷、导冷架构的信号处理板,适用于高速图像处理等。芯片采用工业级设计。 板卡采用标准3U VPX架构,板上集成一片Xilinx公司ZynqUltraScale系列F…

(OCPP服务器)SteVe编译搭建全过程

注意:建议使用3.6.0,我升级到3.7.1,并没有多什么新功能,反而电表的实时数据只能看到累计电能了,我回退了就正常,数据库是兼容的,java版本换位java11,其他不变就好 背景:…

Windows通过git-bash安装zsh

Windows通过git-bash安装zsh 1、安装git-bash 官网下载安装 2、下载windows版zsh 百度网盘下载 提取码: s84k 官网下载安装 注意官网下载需要解压两次 将解压两次后得到的文件,放在git根目录下 3、配置zsh 1. 配置.bashrc默认启动zsh 配置完成后重新打开终端即…

部署、DockerCompose

目录 部署Java 部署前端 DockerCompose 部署Java 1、创建网络:docker network create hmall 2、建立mysql容器,加入到hmall网络 3、Java配置文件、Dockerfile文件 4、打成jar包,放入Linux,在Docker创建镜像生成容器&#xff0c…

【Python入门】Python控制成分

文章一览 一 、顺序结构二、分支结构多分支结构 三、循环结构1. for语句循环结构range()函数 2. while语句构成循环1)while 循环流程 3、for 循环和 while 循环的区别4、for 循环和 while 循环效率比较 四、函数1、函数定义1) 内置函数2) 非内…