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

56 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 《Lyra初学者游戏包工程解读》 | quabqi 视频笔记
date: 2022-08-09 13:55:20
tags: Lyra
rating: ⭐️
---
# 《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。
- 动画分层:对动画蓝图进行分层,之后通过**PickBestAnimLayer**与**LinkAnimClassLayer**进行动态连接。
- 新的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页