56 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								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包含多个Experience;Experience通过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页
							 |