UE5 官方案例LyraStarter 全特性详解
0.启发
看到B站大佬大咸鱼呵呵 的教程UE5手把手制作lyra动画蓝图教程,给我很大的启发,在写作UE5 GAS 学习笔记的时候,太偏重概念和框架,而非实践,这样就是形而上学了. 所以这一套专栏将更加侧重实践,或者说是手把手的教学,同时也要争取把概念和框架解析清楚.
1.技术演讲概览回顾
在开始手把手教学之前,先对官方技术演讲进行回顾,视频已经在上一篇中列出了,如果没有看过的话也没有关系,这里会把重点都列出来.
1.1什么是Experience?
Experience 直译是游戏体验,在这个项目中是非常重要的数据资产,通过Experience 可以对游戏体验直接进行配置:
Experience 包含了一系列需要激活的Game Feature 列表;- 默认的
Pawn Data ,用来玩家或者AI要使用的英雄角色数据; - 在加载
Experience 的时候需要运行的一系列动作Action . 现在如果搞不明白什么是Game Feature /Pawn Data /Action 等概念,没有关系,后面会逐一进行讲解,现在只需知道这些都是用来配置游戏体验的配置项.
1.2 Game Feature
Game Feature 插件和常规插件不一样,里面包含了动态控制游戏的逻辑,Game Feature 有着自己独特的生命周期. 在Game Feature 数据中描述了一系列在插件激活时采取的动作以及需要加载的资源,通过扩展资源管理器Asset Manager 来定义需要扫描的新主资产类型,从而实现伴随插件激活而动态加载主资产.这里非常适合用来做热更新或者DLC ,游戏的核心逻辑并不依赖Game Feature ,所以可以将其进行Pak 打包,然后动态加载和激活,当然也可以随时卸载并删除,一系列的动态操作都不会影响游戏核心的运行.
1.3 Actions
在Experience 和Game Feature 中描述的Actions ,如下图所示: 这些Action 动作可以预加载资源,动态激活和禁用游戏逻辑,常用的有: 这些都是官方内置的一些动作,我们也可以通过C++代码继承并实现自己的动作.
1.4 Pawn Data
Pawn Data 描述了玩家和AI控制的英雄角色是什么样的,如下图所示: Pawn Data 也是个数据资产,用来配置玩家或者AI控制的角色:
Pawn Class 定义了生成的角色类,我们都知道这个Character 角色类可以实现什么,如果你不知道的话,应该对UE 引擎内置的Gameplay Framework 补补课了;Abilities 定义了角色可以使用的能力,这里的能力就是UE5 GAS 学习笔记中的Ability ,只是在其基础上做成了集合;Input 就是玩家的输入,包括键盘/鼠标或者游戏手柄/移动端的触屏等等,这些都可以在这里进行配置;Camera 顾名思义就是定义玩家的视角,我们可以采用第一人称/第三人称/顶视角/45度等各种摄像机,也可以在游戏过程中随时切换
1.5 Ability Set
AbilitySet 就是基于GAS 插件的能力合集,Ability 在UE5 GAS 学习笔记中有详细讲解,而 AbilitySet 是这个项目定义的数据资产: 由上图可以看出AbilitySet 就是对玩家的能力进行配置,其中Gameplay Ability ,Gameplay Effect 和Attributes Sets 都是GAS 插件中的概念,通过这些配置项就可以使玩家拥有各种各样的技能.
AbilitySet 可以通过以下途径进行配置:
Pawn Data 角色数据Experience 游戏体验中的Actions GameFeatures 游戏特性中的Actions - 装备独特能力,例如可激活技能的武器
1.6 User Facing Experience
UserFacingExperience 将Experience 游戏体验和Level 游戏关卡绑定在一起,并且描述了UI 界面的表现形式: UserFacingExperience 本质上也是数据资产,通过配置项来决定关卡选择和加载界面的样子:
MapID 就是地图Level ,这个没有什么好说的,属于UE 常识;ExperienceID 就是选择和Level 相对应的Experience ;ExtraArgs 额外的一些参数,这些参数就是一些自定义的选项,譬如关卡难度选择之类的,可以灵活配置;TileTitle 就是玩法的名称;TileSubTitle 副标题;TileDescription 描述,这个玩法是什么样的;TileIcon 图标;bIsDefaultExperience 是不是默认的玩法;bShowInFrontEnd 是否在前端进行展示;bRecordReplay 是否要录制回放;MaxPlayerCount 最大玩家数量;LoadingScreenWidget 加载界面是什么; 通过这一系列的配置,在游戏UI界面上就会出现以下的效果,如图所示:
1.7 Online Features
当前项目支持的在线特性:
可以快速匹配或者自己开设一个房间来做房主,也可以浏览并加入他人开始的房间,这些都是通过Online Subsystem 实现的. 为了更好的服务于Online Subsystem ,在这个项目里使用了Common User 和Common Session 插件,这两个插件实现了引擎级别的提取和封装,为开发者提供了更加简单的API 来处理用户和网络相关的开发. 官方还提供了在线系统服务EOS , EOS 是Epic Online System 的缩写,后面会详细讲解.
1.8 跨平台
可以通过Edit > Project Settings > Game > Lyra Performance Settings 对项目跨平台进行配置,如下图所示:
1.9 动画设置
UE5 提供了基于Meta Human 的新一代骨骼,在项目路径All/Content/Characters/Heroes/Mannequin/ 下可以找到最佳实践,这里有两个模型,分别是男性角色Manny 和女性角色Qunin ,如下图所示: 不得不说,各方面相对于UE4 都有巨大提升.至于动画蓝图这些参考篇头大佬大咸鱼呵呵 的教程就可以了,真的是手把手教学,自认为不能比大佬讲得更细致了.
1.20 装饰系统和队伍配色系统
装饰系统是个简易的换装系统,可以配置角色的蒙皮和额外的配饰,例如头发/五官/帽子/背包/等等; 队伍配色系统就是对不同队伍的角色进行配色,例如红队,蓝队等任意颜色的队伍.
1.21 输入
项目使用引擎的增强输入系统Enhanced Input System ,通过该系统用户可以通过Settings 界面来自己绑定按键输入,这些输入可以通过Pawn Data 和Actions 来动态配置到游戏体验中.
下图中的整个输入网络看起来很复杂,但是理清楚思路以后用起来非常简单且方便,具体如何使用,在后面的篇章中详细讲解.
1.22 地图编辑
在编辑地图前,需要在World Settings 中的World Partition 栏下取消勾选Enable Streaming ,否则地图中会一片空白. Enable Streaming 这个选项可以让大地图World Partition 分批动态加载,简单说就是对大地图进行分区,在玩家到达某个区域后,加载该区域内的地图场景,卸载之前区域的场景.这样动态加载可以节省性能,当然小地图就没有这个必要了. 当然,地编环节不方便通过文字讲解,所以此处全部省略,大家看视频就非常直观.不仅如此,作者对地编也不甚了解,毕竟术业有专攻,这个专栏会默认跳过一切和美术相关的内容,而着重讲解程序相关的. 这里对于地编来说,比较方便的是可以在编辑器内快速设计游戏原型,在进行玩法测试通过之前,可以非常便捷地进行改动,这种方便的特性对于游戏原型制作阶段是非常方便的. 各种操作对于游戏设计师也非常友好,所以就不再赘述了.
2.总结
这一篇讲得比较浅显,主要是对整个项目有个大体的认知,下一篇将会手把手带大家一起开发一个新技能,力求尽可能的详细,从而使大家先掌握整套系统的使用方式. 再下一篇再一起制作一个武器,当然,这些都在官方的视频演讲中演示过了,可能大家已经会了,如果是已经掌握用法的朋友可以跳过这两篇内容. 在掌握用法后,后面的篇章就是深入源码去理解背后的机制,做到知其然,也知其所以然. 官方说这个案例会持续更新,因为UE5 还有很多特性,所以这个专题也会尽量跟上节奏.
|