BlueRoseNote/03-UnrealEngine/Gameplay/Lyra/《Lyra初学者游戏包工程解读》quabqi 视频笔记.md
2023-06-29 11:55:02 +08:00

2.4 KiB
Raw Blame History

title, date, tags, rating
title date tags rating
《Lyra初学者游戏包工程解读》 | quabqi 视频笔记 2022-08-09 13:55:20 Lyra

《Lyra初学者游戏包工程解读》 | quabqi 视频笔记

ModularGameplay

  • LyraGameMode/LyraGameState/LyrrPlayerState/LyrrPlayerStart
  • LyraChracter/LyraPawn/LyraPawnComponent
  • LyraPlayerController/LyraPlayerBotController

GameFeatures

GameFeatures=数据驱动+组件化通过配置自动挂载组件。GameFeatureData - Actions

  • ShooterCore
  • ShooterMap
  • TopDownArena

Experience

一个GameFeature包含多个ExperienceExperience通过Level或者房主指定所有业务都通过配置定义。 配表以实现数据驱动,几乎所有的逻辑都通过配置动态加载。

  • LyraWorldSettings
  • LyraUserFacingExperienceDefinition

Character、Controller、Camera

只提供空壳Class基类用来挂载各种Component。不再堆积大量业务逻辑只做基本的消息转发逻辑。

Controller上使用了输入增强组件通过触发IA(inputAction)发送GameplayTag角色收到这些GameplayTag就会激活对应的GA。通过MapingContext这种数据表的方式避免了进行大量if-else的判断。

Lyra上的换装系统

换装的数据由服务器创建并同步到客户端客户端收到后Spawn对应Actor并且Attach到主Mesh上主Mesh只有骨骼没有实际模型。

Lyra动画

  • 多线程动画UE5新增一个蓝图子线程Update函数BlueprintThreadSafeUpdateAnimation。
  • 动画分层:对动画蓝图进行分层,之后通过PickBestAnimLayerLinkAnimClassLayer进行动态连接。
  • 新的LayerBlendPerBone节点可以调整每个骨骼的混合权重。
  • UE5动画节点可以绑定回调函数了。
  • 因为主SkeletalMesh没有模型所有在其他动画蓝图中需要使用CopyPose将父组件的动画复制过来。

网络同步

  • GE尽量不开Full模式改用Mixed/Minimal 有些数据在外部同步可以显著减少流量

Lyra UI

  • 主UI分为4层模态弹出框的分层逻辑位于W_OverallUILayout
  • 提供一种UI挂点方案支持按需求加载不同的UI。实现在UIExtension建议复用

Common UI组件建议复用

  • 支持异步加载资源
  • 支持UI的Style配置
  • 支持Widget池复用UI
  • 支持根据硬件自动适配,显示/隐藏
  • 支持Action
  • 支持返回键/自动关闭
  • 可见性切换器
  • Tab页