UE GamePlay框架

概述

所谓的引擎,一般都是先要学习下引擎的主要框架。对于UE来说,一般先要去看下gameplay。这篇简单写下个人理解。关于框架类的关系,可以参考下下图:
gameplay框架

Actor

UE中Actor是放置或者生成的对象的基类。关于Actor的加载方式,这个之前写过一篇,可以参考下。UE Actor生命周期

GameMode

上图,可以看出,Game里边,GameMode和GameState是非常重要的组成部分。接下来了解一下GameMode。
对于游戏来说,都有一些基础规则,比如:

  • 出现玩家和观众,以及允许多少玩家
  • 玩家进入的方式,比如出生地点和其他生成/重生等规则
  • 游戏是否可以暂停,以及如何处理游戏暂停
  • 关卡之间的过渡,包括游戏是否以动画模式开场

来看下Lyra里边的GameMode的规则,如下:
ALyraGameMode
初始化各个类
从上图可以看到,ALyraGameState,ALyraGameSession,ALyraPlayerController,ALyraReplayPlayerController,ALyraPlayerState,ALyraCharacter,ALyraHUD都是在这里初始化的。

GameState

Game State 负责启用客户端监控游戏状态。从概念上而言,Game State 应该管理所有已连接客户端已知的信息(特定于 Game Mode 但不特定于任何个体玩家)。它能够追踪游戏层面的属性,如已连接玩家的列表、夺旗游戏中的团队得分、开放世界游戏中已完成的任务,等等。


以上部分来源于官方文档。我觉得对于一些非职业游戏开发者来说,不是那么容易理解的。我来说下我的看法,对于gamestate,主要用于存储整个游戏全局的信息,比如,包括当前玩家的信息,如果是多人游戏,还要包括多人的玩家信息。当然对于每个人的信息,在PlayState里边。如下图:
gameState
gameState

lyra里边,就放在lyraPlayState里。如下图:
ALyraPlayerState
AlyraPlayerState

控制器(Controller)

控制器(Controller) 是一种可以控制Pawn(或Pawn的派生类,例如角色(Character)),从而控制其动作的非实体Actor。人类玩家使用PlayerController控制Pawn,而AIController则对它们控制的Pawn实加人工智能效果。控制器用Possess函数控制Pawn,用Unpossess函数放弃控制Pawn。

控制器会接收其控制的Pawn所发生诸多事件的通知。因此控制器可借机实现 响应此事件的行为,拦截事件并接替Pawn的默认行为。 可以让控制器在给定的Pawn之前运行, 从而从而最大限度减少输入处理与Pawn移动之间的延迟。

默认情况下,控制器与Pawn之间存在一对一的关系;也就是说,每个控制器在任何给定的时间只控制一个Pawn。这对于大多数 类型的游戏都是可以接受的,但对于某些类型的游戏可能需要进行调整,因为实时策略可能需要能够同时控制多个实体。

对于Lyra来说,当然也有专门的控制器。如下图:
LyraController。在这个里边,包含了太多的内容,感兴趣,可以去看看源码。

摄像机(Camera)

摄像机,在UE中,它代表了玩家的视角,也就是玩家如何看待世界。对于我们游戏的主视角,playercontroller会去指定一个Camera Actor。关于CameraActor,如下图:
CameraActor
可以看到,CameraActor中,UCameraComponent这个组件主要操作相机。Lyra里,是直接用的ULyraCameraComponent这个组件,如下图:
lyraCameraComponent

用户界面和HUD

关于这块,用户界面,引擎底层主要是用slate框架写的。包括现在很多设计或者蓝图程序常用的UMG,都是基于slate。然后,很多项目采用一些继承机制,把UI分成多层,每一层有每一层的作用,也是很常见。至于这层,不同项目的解决方案不一样,不多说。
至于HUD嘛,这个举个例子,每个character上都有一些血量,经验值之类的,就是hud里做的。

小结

这篇主要写了以下UE的GamePlay的框架,包括GameMode,GameState,Controller,Camera,用户界面和HUD。其实,要看懂这些内容的底层代码,需要一定的C++功底,关于C++,可以去学习学习。OK,这篇结束。

UE4中的Gameplay框架是一个强大的工具集,用于开发和实现游戏玩法和用户交互。该框架提供了许多功能和组件,以帮助游戏开发者快速构建出丰富、流畅的游戏体验。 UE4的Gameplay框架主要由以下几个方面组成: 1.输入系统:该系统可以处理各种输入设备的操作,如鼠标、键盘和游戏手柄。开发者可以轻松地设置和管理输入映射和按键绑定。此外,还提供了鼠标和手柄的即时响应和移动方向控制功能,使玩家能够自由操作游戏中的角色。 2.角色控制器:角色控制器是游戏玩家在游戏中扮演的角色,他们的控制是通过输入系统和蓝图来实现的。游戏玩家可以移动角色、执行动作、攻击敌人等。角色还可以通过动画系统实现自然的运动和交互。 3.人工智能:UE4的Gameplay框架提供了内置的人工智能系统,可以对NPC和敌人进行编程控制。开发者可以设置敌人的行为模式、路径寻找和攻击策略,让游戏中的敌人具有更真实和智能的表现。 4.物理模拟:UE4的Gameplay框架使用了物理引擎来实现真实的物理模拟效果,比如碰撞、重力和刚体运动等。这使开发者能够创建更真实和具有交互性的游戏世界,使玩家可以与环境进行互动。 总之,UE4的Gameplay框架提供了强大而灵活的工具,帮助开发者轻松地构建出丰富多样的游戏玩法和用户交互。无论是开发动作冒险游戏、射击游戏还是角色扮演游戏,该框架都能满足开发者的需求,并带来令人惊叹的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值