【UE4】GamePlay框架简介(蓝图)
文章目录
- GamePlay框架简介
- 定义
- 设计者的规则
- Game Mode
- Game State
- Default Pawn
- Player Controller
- Player State
- HUD
GamePlay框架简介
如果不知道GamePlay框架,基本上无法使用虚幻引擎
定义
框架(Framework)是一个框子**(约束性),也是一个架子(支撑性)**。是一个基本概念上的结构,用于去解决或者处理复杂的问题。
框架这个广泛的定义使用的十分流行,尤其在软件概念。框架也能用于机械结构。
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面,而后者是从目的方面给出定义。
设计者的规则
虚幻引擎的设计希望开发人员在使用引擎之前是准备好了的!并且有充足的能力去理解游戏设计意图。在此之上为我们提供了一套开发规则,我们称之为游戏框架(GamePlay框架)。虚幻设计者为我们抽象出了多种角色,在开发过程中我们需要沿着设计者给定的身份进行游戏设定编写。这虽然约束了我们的设计,但是在一定程度上加强了开发的稳定性。
我们需要认知虚幻为我们抽象出的角色:游戏模式(GameMode),游戏状态(GameState),玩家(DefaulePawn),玩家状态(PlayerState),玩家操控器(PlayerConroller),用户界面(HUD)
抽象的角色,在游戏中扮演不同的身份,从事不同的工作任务。
Game Mode
GameMode和GameState主要负责游戏中的相关信息。GM主要负责管理游戏的规则。这些规则包括:
1、出现的玩家和观众数量,以及允许的玩家和观众最大数量。
2、玩家进入游戏的方式,可包含选择出生地点和其他生成/重生行为的规则。
3、游戏是否可以暂停,以及如何处理游戏暂停。
4、关卡之间的过渡,包括游戏是否以动画模式开场。
GM的主要任务就是构建和实现游戏的规则,并将游戏中的其他角色进行注册:例如默认的玩家,HUD类,玩家操控器,观众类,GameState类,PlayState类
游戏规则及获胜条件这样的内容。它仅存在于服务器上。它一般在游戏过程中不会有太多数据台变,并且它一定不应该具有客户端需要的临时数据。
Game State
GameState主要负责游戏中共享信息(公共数据)的记录,游戏的信息可以通过GameState进行存储和同步。包括:
1、游戏已运行的时间(包括本地玩家加入前的运行时间)
2、每个个体玩家加入游戏的时间和玩家的当前状态
3、当前GameMode的基类
4、游戏是否已开始
例如,FPS游戏中的积分版。
GameState是虚幻中为我们进行游戏信息记录的载体。包括像关联玩家的列表、分数、象棋游戏中的象棋位置或者在开放世界中已经完成的任务列表。GameState存在于服务器和所有客户端上,可以自由地进行复制来保持同步。
Default Pawn
默认玩家,不管任何游戏,都应当存在一个默认的玩家,这是肯定的!即使是最开放的游戏,也需要存在一个上帝视角进行游戏的指令发布。在虚幻中默认玩家扮演的就是这个角色。
注意:只有继承在Pawn的对象才能成为默认玩家。
默认玩家需要通过控制器进行控制,它们可以轻松地接受输入,并且可以执行各种各样的类似于玩家的动作。
Player Controller
控制器,是负责管理玩家的Actor类型对象。主要目的是将真是玩家的意愿进行收集,最后汇总转投给虚拟角色。这个过程就是游戏中的玩家交互过程。
这个是连接真实玩家和你控制的虚拟玩家的桥梁。
PlayerController(玩家控制器)是Pawn和控制它的人类玩家间的接口。PlayerController本质上代表了人类玩家的意愿。
例如,人类玩家在键盘上按下W,则PlayerController将会把这一信息传递给Default Pawn
PlayerController还有一个兄弟,叫AIController。PlayerController是用来控制DefaultPawn的,而AIController用来控制NPC,怪物等非玩家Pawn的。
Player State
PlayerState是游戏中的一个参与者的状态,比如人类玩家或者模拟人类玩家的机器人。作为游戏一部分存在的非人类玩家AI没有PlayerState。PlayerState中适合包含的示例数据有:玩家姓名、分数、像多人在线竞技场这样的比赛中的级别、或在夺旗模式游戏中玩家当前是否正在占领旗帜。所有玩家的PlayerStates在所有机器上都存在(和PlayerControllers不同),并且可以自由地进行复制来保持同步。
这个是保存真实数据的,不是皮囊数据。
我们需要搞清楚一个概念,玩家数据和玩家操控角色数据是两个不同的数据点。
HUD
HUD是一种“平头显示信息”,或者说是二维的屏幕显示信息,在很多游戏中都很常见。想一下生命值、弹药量、枪支十字准线等。每个PlayerController一般都具有一些这样的信息。
显示信息”,或者说是二维的屏幕显示信息,在很多游戏中都很常见。想一下生命值、弹药量、枪支十字准线等。每个PlayerController一般都具有一些这样的信息。
HUD是我们用来进行简单UI绘制的入口,一般我们在游戏开发中均更换为UMG为用户界面开发主要手段。
【UE4】GamePlay框架简介(蓝图)相关推荐
- UE4学习笔记:GamePlay框架与蓝图功能实现,开关门互动、鼠标、按键开门、按键升降电梯
前言: 目前是正式学习ue4第二周 个人觉得很重要的一点就是理解UE4 GamePlay框架.后续学习unity以及其他引擎,框架应该是需要最先了解的 我是先看了近2周谌嘉诚老师的教程,然后中途才了解 ...
- UE4 Gameplay框架浅析笔记
GameMode 游戏模式,不同关卡可以应用不同的游戏模式 Pawn 棋子,非人形角色. Character是人形角色,有移动组件. HUD UI管理器,管理UI生命周期 PlayerControll ...
- 谈谈Gameplay,以及UE4的Gameplay框架
文章目录 前言 什么是Gameplay Character Camera Control 游戏脚本 介绍脚本语言 脚本系统 UE4 Gameplay框架 介绍重要框架类 Actor类 Componen ...
- 【UE4】GamePlay框架应用(蓝图)
文章目录 GamePlay框架应用 1.为关卡设置GameMode ①为当前关卡设置GameMode ②为该项目的所有关卡设置GameMode 2.切换相机视角 3.在事件图表中使用GameMode中 ...
- UE4入门学习3:GamePlay框架
- - 文章 UE4入门学习3:GamePlay框架 作者 游蓝海( http://blog.csdn.net/you_lan_hai ) UE4为游戏开发提供了一套基础的框架,在这套框架的基础上,我 ...
- UE4:浅谈什么是GamePlay框架
世界大纲那里的gamemode下面的选项就可以看成是一个gameplay框架的具体体现 首先是GameMod,它是指游戏模式,一个游戏可能有多个模式,比如一个关卡是一个模式,一个游戏大厅来说又是一个模 ...
- ue4的GamePlay框架
创世记 UE创世,万物皆UObject,接着有Actor. UObject: 起初,UE创世,有感于天地间C++原始之气一片混沌虚无,便撷取凝实一团C++之气,降下无边魔力,洒下秩序之光,便为这个世界 ...
- UE5 Gameplay 框架拆解
应前辈要求,开始看UE5中关于Gameplay中两个新的特性--Game Feature和Modular Gameplay. 然而我现在连Fortnite的Gameplay Ability系统还没有摸 ...
- UE4 GamePlay架构
UE4 GamePlay架构 前言 GamePlay架构_1_Actor和Component GamePlay架构_2_Level和World GamePlay架构_3_GameInstance Ga ...
最新文章
- java的内省有用么_JAVA中的内省使用
- 系统集成资质培训 - 标准系列 -软件文档管理指南
- python3读取csv和xlsx文件
- 前端学习(3144):react-hello-react之对比新旧周期
- reactor模型_Reactor模式以及Netty中的应用
- 今天的成功的滋味 企业即时通讯
- 【jQuery Demo】jQuery打造动态下滑菜单
- linux 域名怎么平台,linux平台搭建DNS域名服务与常用配置
- Kubernetes持久化方案(PV、PVC、StorageClass)
- Nugine: Rust 性能调优
- 解决WPS文档不加载金格office360签章的问题
- Android Studio数据库增删改查。
- Sublime Text 一键删除空白行的方法
- 阿里云商标注册流程步骤-阿里云商标自助注册申请步骤...
- ResHacker使用小解
- MySQL 临时目录
- JAVA表示姓名和对应的出生日期
- linux 查看ko符号表,linux modprobe命令参数及用法详解--linux加载模块命令
- 成功申请美国研究生的10大潜规则
- 两大图灵奖得主力作:计算机架构的新黄金时代
热门文章
- 单片机数码管显示程序c语言,基于STC89C52单片机的动态数码管显示C语言程序
- 2016年上半年信息系统监理师考试感想
- feather初体验
- kali 改root_linux切换到root用户,kali怎么切换root身份运行
- 粒子系统-烟花效果的实现
- android视频播放框架Vitamio
- [记录] 基于STC89C52RC的贪吃蛇三色游戏机设计(内含点阵驱动、数码管驱动详解)
- go语言宕机(panic)——程序终止运行
- OCP 11G 051题库解析汇总链接
- 移动端微信浏览器调试工具整理eruda,微信x5调试工具无法使用,推荐新工具eruda、vconsole和debugxweb