【转载】UE4 的 GamePlay 框架简介

872 阅读2分钟

原文链接

游戏元素与组件

什么是 Actor

Actor 是 UE4 里最基础的场景元素,它类似于 Unity3D 里的 GameObject,或者是 Cocos2d-x 的 NodeActor 本身只是一个容器,没有任何可视化的属性,甚至连位置属性也没有。但是 Actor 可以拥有若干个可视化的组件(Component)来表示其外观,Actor 也可以拥有子 Actor

什么是组件(Component

组件需要挂在 Actor 身上使用,可以理解为人身上的挂件;组件可以有位置属性,Actor 的最终位置是从其根组件来的;组件也可以拥有子组件。

image.png

游戏物体与人

UE4 提供了很多内置的 Actor,便于游戏开发。

什么是 Pawn

Pawn 是可以被控制的物体,也就是拥有 Controller 。可以认为 Pawn生物的基类

什么是 Character

Character人形Actor,默认拥有一个用于碰撞的胶囊体组件(CapsuleComponent)和运动相关的组件(CharacterMoveMentComponent),并具有一些动画相关的功能。可以认为是 人形动物的基类

游戏控制器

控制器用于控制 Pawn 的行为,一般分为 AIControllerPlayerController。控制器也是从 Actor 派生的,因此也可以加入到场景中。

什么是 PlayerController

玩家控制器,是 Pawn 和控制它的玩家之间的桥梁。

PlayerController 代表了人类玩家的意愿。

什么是 AIController

用于控制 NPC 的控制器,决定了 NPC 如何与玩家互动。

游戏显示

HUD

平头显示信息,也就是我们常说的 UI 。显示玩家的名字,血条,得分等信息。

相机

每个 PlayerConroller 都有一个 PlayerCameraManager ,代表了玩家的视角。

游戏规则和状态

什么是 GameMode

游戏模式:处理 游戏的规则 ,只存在与服务器端,因此客户端相关的逻辑不能存放在 GameMode 中。

什么是 GameState

游戏状态:记录 游戏的数据 ,比如当前游戏的进度,世界任务的完成状态等,会自动同步到各个客户端

什么是 PlayerState

玩家状态:记录 玩家个人的数据 ,比如名字分数等,会自动同步到各个客户端

总结

GamePlay 框架使用了 MVC 架构,其中 Pawn视图PlayerState数据模型PlayerController控制器

一个游戏由 游戏规则 (GameMode)和 游戏状态 (GameState)组成;玩家在游戏里的化身是 Pawn ,玩家通过 PlayerConroller 控制着自己的化身,通过 PlayerCameraManager 观察世界,PlayerState 记录了玩家的数据,HUD 显示了这些状态;NPC 则由 AIConroller 去控制,与玩家进行互动。

image.png

参考

游戏架构快速指南