Unreal Engine 4 Gameplay框架介绍
来源:互联网 发布:淘宝认证企业店铺条件 编辑:程序博客网 时间:2024/06/11 18:59
1、什么是框架,为什么使用框架
什么是框架
可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。为什么使用框架
说到为什么使用框架,那么我们就要谈谈使用框架的优势,以及框架能够带给我们什么好处。框架的优势在于便于维护我们设计的程序,当你的程序出现问题,或者需要添加功能时你可以很快的定位到应该添加功能到哪一个模块中。框架不仅给我们的程序构造了一种软件模型,还有很重要的一点是它给我们提供了非常丰富且实用的功能函数,这样可以大大提高我们的工作效率。需要明白的是,我们完全可以在一个文件中写上几千行几万行甚至更多的代码达到我们的目的,但这样的代码是不适合人类阅读的,它更适合机器去识别。需要注意的是:没有一种框架是可以应对一切设计需求的,当你所使用的框架不适合你的开发需求时,你应该果断的舍弃或者修改该框架去适应你的开发需求。
2、虚幻4Gameplay框架概述
- Gameplay架构中类的关系图
- 据该图,介绍一下该架构在RPG类游戏中类的职责对应关系。
- GameMode是游戏架构的基类,负责设置游戏规则(如:玩家怎样才算获得当前关卡的胜利)。在虚幻引擎中具有运动形态(如奔跑、跳跃)的物体应设计成继承于Pawn的类。那么,玩家就是一个Pawn类,玩家拥有的各种战斗技能都应该设计在这个类中。而PlayerController负责维护玩家这个Pawn类的实例、处理从玩家获得的一些输入、实施一些控制玩家的Pawn的手段。
- 如果玩家在某个地图中行走时,会有一些其他怪物(具有运动形态)对玩家进行攻击,那么这些怪物也应该继承于一个Pawn类,怪物的技能等功能应该在这个类中进行设计。但这个怪物Pawn的实例被AIController拥有(而不是PlayerController),因为怪物的攻击、巡逻等状态不受玩家控制,而是应该由AI控制(智能控制,自动处理)。
- 在游戏过程中,屏幕中显示的玩家/怪物等状态信息应该在HUD类中进行设计。HUD(平头信息显示)、Input(玩家输入)、PlayerCameraManager(摄像机管理)同样被PlayerController拥有,PlayerController负责维持这些实例之间的信息交互。
3、基本游戏类介绍
- 游戏场景中具有运动形态的物体
- Pawn:框架中Pawn代表了一切具有运动形态的物体,即拥有运动形态的物体应该继承于该类。
- Character:框架中Character继承于pawn,但设计为类人的,大多情况下游戏的主角(即玩家)应该继承于该类。
- 游戏界面显示
- HUD:框架下HUD是一种二维的屏幕显示信息,如玩家的生命值、分数信息等会在该类中进行绘制显示。
- Camera:PlayerCameraManager是玩家的眼睛,管理玩家应该看到的具体游戏画面。
- 游戏性逻辑控制
- Controller:框架下Controller拥有一个Pawn类实例,负责控制该Pawn应有的行为。
- PlayerController:框架下PlayerController继承于Controller,拥有一个Character/Pawn类的实例,本质上代表了人类玩家的意愿。
- AIController:框架下AIController继承于Controller,拥有一个Pawn的实例,主要负责控制非玩家控制的有运动形态的物体。
- 游戏规则设置
- GameMode:GameMode拥有一个GameState实例,并负责定义游戏规则。如设定在何种情况下玩家会通过该关卡。
- GameState:GameState关联了像玩家的列表、分数、象棋游戏中的象棋位置或者在开放世界游戏中已经完成的任务列表等数据,表示当前游戏的状态
- PlayerState:PlayerState是游戏中的一个参与者的状态,比如人类玩家或者模拟人类玩家的机器人。作为游戏一部分存在的非人类玩家AI没有PlayerState。PlayerState中适合包含的示例数据有:玩家姓名、分数、像多人在线竞技场这样的比赛中的等级、或在夺旗模式游戏中玩家当前是否正占领旗帜。所有玩家的PlayerStates在所有机器上都存在(和PlayerControllers不同),并且可以自由地进行复制来保持同步。
4、游戏流程概览
独立模式
在 Standalone 模式中(在编辑器外进行的游戏使用该模式),引擎启动和初始化之后将立即对游戏所需的对象进行创建和初始化。诸如 GameInstance 之类的对象在引擎启用之前被创建和初始化(与创建和初始化引擎不同)。引擎的启动函数被调用后,将立即加载初始地图。关卡创建适当的 GameMode 游戏模式 ,然后创建其他 Actor 后,游戏进程便正式开始。编辑器模式
编辑器模式由 Play In Editor 和 Simulate In Editor 使用,流程完全不同。引擎立即初始化并启动,因为需要它运行编辑器,但诸如 GameInstance 之类对象的创建和初始化将被延迟,直到玩家按下按钮启动 PIE 或 SIE 会话。此外,关卡中的 Actor 将被复制,使游戏中的变更不影响编辑器中的关卡,每个对象(包括 GameInstance)均有每个 PIE 实例的单独副本。在 UWorld 类中游戏进程开始时,编辑器路径和 standalone 路径再次结合。游戏流程图
本文部分内容取自虚幻4引擎官方文档
- Unreal Engine 4 Gameplay框架介绍
- Unreal Engine 4 C++ 插件介绍
- Unreal Engine 4 发布
- Unreal Engine 4 Terminology
- Unreal Engine 4 C++ Component介绍——BrainComponent
- Unreal Engine 4 C++ Component介绍——WidgetComponent
- Unreal Engine 4 —— Asset Manager介绍
- Gameplay 框架
- 从Unreal Engine 3到Unreal Engine 4
- 从Unreal Engine 3到Unreal Engine 4
- Unreal Engine 4 编码规范
- Unreal Engine 4 字符串转换
- Unreal Engine 4:数据存储
- Unreal Engine 4 术语简介
- Unreal Engine 4 初始化流程
- Unreal Engine 4 字符串转换
- Unreal engine 4 Automation Test
- Unreal 入门-Unreal Engine 4 AI Programming Essentials 书籍下载
- CygWin安装RedisCluster指南
- MD5 的加密
- 阿里云centos 7 上安装mysql
- CentOS下安装jdk及tomcat的安装
- 一定要弄懂GetMemory
- Unreal Engine 4 Gameplay框架介绍
- Android Studio 中建议过滤的文件:
- 构建一个使用mybatis框架的项目
- ViewPager Fragment 禁止预加载数据
- Gradle之使用Android Studio 编写Gradle插件并上传Library到JCenter
- Solr6.1配置中文分词
- linux 改回python2.6
- 'mvc:annotation-driven' must have no character or element问题
- 2016年8月 web前端面试题