UE5 官方案例LyraStarter 全特性详解 0.概览

0.启发

看到B站大佬大咸鱼呵呵的教程UE5手把手制作lyra动画蓝图教程,给我很大的启发,在写作UE5 GAS 学习笔记的时候,太偏重概念和框架,而非实践,这样就是形而上学了.
所以这一套专栏将更加侧重实践,或者说是手把手的教学,同时也要争取把概念和框架解析清楚.

1.技术演讲概览回顾

在开始手把手教学之前,先对官方技术演讲进行回顾,视频已经在上一篇中列出了,如果没有看过的话也没有关系,这里会把重点都列出来.

1.1什么是Experience?

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插件示例
Game Feature数据中描述了一系列在插件激活时采取的动作以及需要加载的资源,通过扩展资源管理器Asset Manager来定义需要扫描的新主资产类型,从而实现伴随插件激活而动态加载主资产.这里非常适合用来做热更新或者DLC,游戏的核心逻辑并不依赖Game Feature,所以可以将其进行Pak打包,然后动态加载和激活,当然也可以随时卸载并删除,一系列的动态操作都不会影响游戏核心的运行.

1.3 Actions

ExperienceGame Feature中描述的Actions,如下图所示:
Actions示例
这些Action动作可以预加载资源,动态激活和禁用游戏逻辑,常用的有:
常用Action示例
这些都是官方内置的一些动作,我们也可以通过C++代码继承并实现自己的动作.

1.4 Pawn Data

Pawn Data描述了玩家和AI控制的英雄角色是什么样的,如下图所示:
PawnData示例
Pawn Data也是个数据资产,用来配置玩家或者AI控制的角色:

  • Pawn Class定义了生成的角色类,我们都知道这个Character角色类可以实现什么,如果你不知道的话,应该对UE引擎内置的Gameplay Framework补补课了;
  • Abilities定义了角色可以使用的能力,这里的能力就是UE5 GAS 学习笔记中的Ability,只是在其基础上做成了集合;
  • Input就是玩家的输入,包括键盘/鼠标或者游戏手柄/移动端的触屏等等,这些都可以在这里进行配置;
  • Camera顾名思义就是定义玩家的视角,我们可以采用第一人称/第三人称/顶视角/45度等各种摄像机,也可以在游戏过程中随时切换

1.5 Ability Set

AbilitySet就是基于GAS插件的能力合集,AbilityUE5 GAS 学习笔记中有详细讲解,而 AbilitySet是这个项目定义的数据资产:
AbilitySet示例
由上图可以看出AbilitySet就是对玩家的能力进行配置,其中Gameplay Ability,Gameplay EffectAttributes Sets都是GAS插件中的概念,通过这些配置项就可以使玩家拥有各种各样的技能.

AbilitySet可以通过以下途径进行配置:

  • Pawn Data角色数据
  • Experience游戏体验中的Actions
  • GameFeatures游戏特性中的Actions
  • 装备独特能力,例如可激活技能的武器

1.6 User Facing Experience

UserFacingExperienceExperience游戏体验和Level游戏关卡绑定在一起,并且描述了UI界面的表现形式:
UserFacingExperience示例
UserFacingExperience本质上也是数据资产,通过配置项来决定关卡选择和加载界面的样子:

  • MapID就是地图Level,这个没有什么好说的,属于UE常识;
  • ExperienceID就是选择和Level相对应的Experience;
  • ExtraArgs额外的一些参数,这些参数就是一些自定义的选项,譬如关卡难度选择之类的,可以灵活配置;
  • TileTitle就是玩法的名称;
  • TileSubTitle副标题;
  • TileDescription描述,这个玩法是什么样的;
  • TileIcon图标;
  • bIsDefaultExperience是不是默认的玩法;
  • bShowInFrontEnd是否在前端进行展示;
  • bRecordReplay是否要录制回放;
  • MaxPlayerCount最大玩家数量;
  • LoadingScreenWidget加载界面是什么;
    通过这一系列的配置,在游戏UI界面上就会出现以下的效果,如图所示:
    UserFacingExperience界面

1.7 Online Features

当前项目支持的在线特性:

  • 用户登录/验证;
  • 局域网匹配;
  • 在线匹配;

可以快速匹配或者自己开设一个房间来做房主,也可以浏览并加入他人开始的房间,这些都是通过Online Subsystem实现的.
为了更好的服务于Online Subsystem,在这个项目里使用了Common UserCommon Session插件,这两个插件实现了引擎级别的提取和封装,为开发者提供了更加简单的API来处理用户和网络相关的开发.
官方还提供了在线系统服务EOS, EOSEpic Online System的缩写,后面会详细讲解.

1.8 跨平台

可以通过Edit > Project Settings > Game > Lyra Performance Settings对项目跨平台进行配置,如下图所示:
跨平台设置

1.9 动画设置

UE5提供了基于Meta Human的新一代骨骼,在项目路径All/Content/Characters/Heroes/Mannequin/下可以找到最佳实践,这里有两个模型,分别是男性角色Manny和女性角色Qunin,如下图所示:
Manny
不得不说,各方面相对于UE4都有巨大提升.至于动画蓝图这些参考篇头大佬大咸鱼呵呵的教程就可以了,真的是手把手教学,自认为不能比大佬讲得更细致了.

1.20 装饰系统和队伍配色系统

装饰系统是个简易的换装系统,可以配置角色的蒙皮和额外的配饰,例如头发/五官/帽子/背包/等等;
队伍配色系统就是对不同队伍的角色进行配色,例如红队,蓝队等任意颜色的队伍.

1.21 输入

项目使用引擎的增强输入系统Enhanced Input System,通过该系统用户可以通过Settings界面来自己绑定按键输入,这些输入可以通过Pawn DataActions来动态配置到游戏体验中.
按键配置UI

下图中的整个输入网络看起来很复杂,但是理清楚思路以后用起来非常简单且方便,具体如何使用,在后面的篇章中详细讲解.

输入资源图表

1.22 地图编辑

在编辑地图前,需要在World Settings中的World Partition栏下取消勾选Enable Streaming,否则地图中会一片空白.
Enable Streaming
Enable Streaming这个选项可以让大地图World Partition分批动态加载,简单说就是对大地图进行分区,在玩家到达某个区域后,加载该区域内的地图场景,卸载之前区域的场景.这样动态加载可以节省性能,当然小地图就没有这个必要了.
当然,地编环节不方便通过文字讲解,所以此处全部省略,大家看视频就非常直观.不仅如此,作者对地编也不甚了解,毕竟术业有专攻,这个专栏会默认跳过一切和美术相关的内容,而着重讲解程序相关的.
这里对于地编来说,比较方便的是可以在编辑器内快速设计游戏原型,在进行玩法测试通过之前,可以非常便捷地进行改动,这种方便的特性对于游戏原型制作阶段是非常方便的.
各种操作对于游戏设计师也非常友好,所以就不再赘述了.

2.总结

这一篇讲得比较浅显,主要是对整个项目有个大体的认知,下一篇将会手把手带大家一起开发一个新技能,力求尽可能的详细,从而使大家先掌握整套系统的使用方式.
再下一篇再一起制作一个武器,当然,这些都在官方的视频演讲中演示过了,可能大家已经会了,如果是已经掌握用法的朋友可以跳过这两篇内容.
在掌握用法后,后面的篇章就是深入源码去理解背后的机制,做到知其然,也知其所以然.
官方说这个案例会持续更新,因为UE5还有很多特性,所以这个专题也会尽量跟上节奏.

猜你喜欢

转载自blog.csdn.net/qq_30137245/article/details/125701785
今日推荐