虚幻引擎入门_框架

2023-10-30

虚幻引擎所提供的GamePlay框架可谓是虚幻引擎最为重要的一部分内容也不为过。
虚幻引擎的设计希望开发人员在使用引擎之前是准备好了的!并且有充足的能力去理解游戏设计意图。在此之上为我们提供了一套开发规则,我们称之为游戏框架(GamePlay框架)。虚幻设计者为我们抽象出了多种角色,在开发过程中我们需要沿着设计者给定的身份进行游戏设定编写。这虽然约束了我们的设计,但是在一定程度上加强了开发的稳定性。

游戏模式(GameMode),游戏状态(GameState),玩家(DefaulePawn),玩家状态(PlayerState),玩家操控器(PlayerConroller),用户界面(HUD),以及其他556项蓝图类。

游戏模式(GameMode)

GameMode和GameState主要负责游戏中的相关信息。GM主要负责管理游戏的规则。 这些规则包括:

  • 出现的玩家和观众数量,以及允许的玩家和观众最大数量。
  • 玩家进入游戏的方式,可包含选择生成地点和其他生成/重生成行为的规则。
  • 游戏是否可以暂停,以及如何处理游戏暂停。
  • 关卡之间的过渡,包括游戏是否以动画模式开场。

GM的主要任务就是构建和实现游戏的规则,并将游戏中的其他角色进行注册:例如默认的玩家,HUD类,玩家控制器,观众类,GameState类,PlayerState类

游戏规则及获胜条件这样的内容。它仅存在于服务器上。它一般在游戏过程中不会有太多数据改变,并且它一定不应该具有客户端需要的临时数据。
【未完,会在虚幻网络服务中增加】

【注意!】 继承GameModeBase时,GameState也要继承GameStateBase!同理GameMode和GameState。

游戏状态(GameState)

可以理解为GameMode的小秘书,为世界管理者记录数据并传递给其他角色。
GameState主要负责游戏中共享信息的记录,游戏的信息可以通过GameState进行存储和同步。包括:

  • 游戏已运行的时间(包括本地玩家加入前的运行时间)。
  • 每个个体玩家加入游戏的时间和玩家的当前状态。
  • 当前 Game Mode 的基类。
  • 游戏是否已开始

GameState是虚幻中为我们进行游戏信息记录的载体。包括像关联玩家的列表、分数、象棋游戏中的象棋位置或者在开放世界游戏中已经完成的任务列表。GameState存在于服务器和所有客户端上,可以自由地进行复制来保持同步。

【注意!】 继承GameModeBase时,GameState也要继承GameStateBase!同理GameMode和GameState。

玩家(DefaulePawn)and 角色(character)

默认玩家,不管任何游戏,都应当存在一个默认的玩家,这是肯定的!即使是最开放的游戏,也需要存在一个上帝视角(摄像机)进行游戏的指令发布。在虚幻中默认玩家扮演的就是这个角色。

角色即是默认拥有一定双足运动功能的Pawn。
角色自带 SkeletalMeshComponent,可启用使用骨架的高级动画。可以将其他骨架网格体添加到角色派生的类,但这才是与角色相关的主骨架网格体。

注意:只有继承在Pawn的对象才能成为默认玩家。
默认玩家需要通过控制器进行控制,它们可以轻松地接受输入,并且可以执行各种各样的类似于玩家的动作。

玩家操控器(PlayerConroller)

控制器,是负责管理玩家的Actor类型对象。主要目的是将真实玩家的意愿进行收集,最后汇总转投给虚拟角色。这个过程就是游戏中的玩家交互过程。

PlayerController(玩家控制器)是Pawn和控制它的人类玩家间的接口。PlayerController本质上代表了人类玩家的意愿。

玩家状态(PlayerState)

PlayerState是游戏中的一个参与者的状态,比如人类玩家或者模拟人类玩家的机器人。作为游戏一部分存在的非人类玩家AI没有PlayerState。PlayerState中适合包含的示例数据有:**玩家姓名、分数、**像多人在线竞技场这样的比赛中的级别、或在夺旗模式游戏中玩家当前是否正占领旗帜。所有玩家的PlayerStates在所有机器上都存在(和PlayerControllers不同),并且可以自由地进行复制来保持同步。

我们需要搞清楚一个概念,玩家数据和玩家操控角色数据是两个不同的数据点。(与Pawn不同)
Pawn中着重存储的是角色的属性,比如说攻击力,防御力。(绑定在角色身上)
PlayerState中着重存储的是玩家的状态,比如说姓名,或是其他个性化的内容。(绑定在真人玩家身上)
在这里插入图片描述

用户界面(HUD)

HUD 是一种“平头显示信息”,或者说是二维的屏幕显示信息,在很多游戏中都很常见。想一下生命值、弹药量、枪支十字准线等。每个PlayerController一般都具有一些这样的信息。

HUD是我们用来进行简单UI绘制的入口,一般我们在游戏开发中均更换为UMG为用户界面开发主要手段。

结语

虽然这章内容很少,但是其中内容值得仔细推敲,什么功能写在什么类中,在实际的项目中是非常重要的一件事。
如何用好这套GamePlay框架还是需要通过实践多个项目去细细品味。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚幻引擎入门_框架 的相关文章

  • unity2D横版游戏教程10-场景控制

    我们让角色掉出地图时重置游戏 我们在Hierarchy那里创建一个一个空项目 命名为DeathLine 也就是死亡线 我们给它添加一个盒体碰撞器 调整一下碰撞器 我们要把这个碰撞器当做触发器使用 所以我们勾选Is Trigger 我们既然用
  • Unity经典项目及作品

    1 Unity Chan Toon Shader https github com unity3d jp UnityChanToonShaderVer2 Project 2 Procedural Cave Generator https g
  • HLSL 偏导数 ddx / ddy

    HLSL ddx ddy 在光栅化的时刻 GPUs会在同一时刻并行运行很多Fragment Shader 但是并不是一个pixel一个pixel去执行的 而是将其组织在2x2的一组pixels分块中 去并行执行 偏导数就正好是计算的这一块像
  • unity木船模型,古代帆船模型,古船

    unity木船模型 模型如下图所示 下载链接在文末 点我下载资源 https download csdn net download weixin 43474701 64876331
  • 【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

    未来的游戏开发程序媛 现在的努力学习菜鸡 本专栏是我关于游戏开发的学习笔记 本篇是unity的TMP中文输入显示乱码的解决方式 创建 TextMeshPro 中文字体 遇到的问题描述 解决方式 Font Asset Creator 面板扩展
  • Unity的三级排序层级渲染Layer,sorting layer,order in layer

    一 前言 Unity游戏开发中 模型 界面 特效等等 需要规划好层的概念 涉及到摄像机 Camera 画布 Canvas Shader等相关内容 Unity大致按照三级排序进行层级渲染 Camera的Depth CullingMask gt
  • Unity 使用LineRenderer连接2个物体

    1 在Hierarchy面板中创建2个GameObject A和B 这就是希望连接的2个物体 2 同理创建1个EmptyObject C 挂上LineRenderer组件 记得给Materials赋值 3 创建1个新的C 脚本LineMan
  • Unity卡死情况

    今天遇到了Unity点击播放后卡死 用任务管理器强行关闭后重开 打不开项目的情况 解决方案 检查USB接口设备 有些设备可能会影响Unity工程启动 比如VR头盔
  • 【Unity2d】带你制作一款类似于金山打字的小游戏

    博主大概08年开始接触电脑游戏 当时玩的是我哥的电脑 那时候家里没网 只可以玩电脑上自带的单机游戏 比如扫雷 蜘蛛纸牌等等 当然还有红色警戒 冰封王座 星际争霸 帝国崛起等等 这些大概是我哥当时在大学下载的 也是那个时候对游戏充满了兴趣 记
  • unity game界面按下play会不断闪烁,按下暂停键(pause)或者中止/下一步(step),game界面的画面会接连变化

    没找到答案 改了两个下午的程序 改完还是这样 后来发现是FixedUpdate Update与OnDrawGizmos的问题 OnDrawGizmos是每帧都会绘制 用FixedUpdate理所当然就那啥了 分析的时候 就突然想到是不是这俩
  • UE5学习笔记(一)——界面功能梳理&第一天知识点记录

    学习UE5的第一步 是软件安装 默认是安装好的 由于安装没有太多技术含量 所以就没有专门做记录 这里有个注意点 虚幻引擎是整合在Epic games launcher中的 也就是说开发引擎内嵌在游戏平台上 打个比方 就是如果你要下unity
  • 蒙特卡洛积分、重要性采样、低差异序列

    渲染公式 渲染的目标在于计算周围环境的光线有多少从表面像素点反射到相机视口中 要计算总的反射光 每个入射方向的贡献 必须将他们在半球上相加 为入射光线 与法线 的夹角 为方便计算可以使用法线向量和入射向量 单位化 的乘积表示 对于基于图像的
  • unity制作一个可以自由滑动收缩的历史记录功能。

    公司在做一款模拟经营类的卖车游戏 需要一个简单的历史记录功能 放在左上角 记录最近20条的收入 支出记录 超过2秒不动则收起 收起时展示最近的一个消息记录 用到的组件是ScrollView 使用方法可以参考我写过的一篇博客 ScrollVi
  • Unity之获取游戏物体对象或组件的几个方法

    文章目录 前言 通过物体名称获取对象 GameObject Find Transform Find 通过物体标签获取对象 GameObject FindWithTag GameObject FindGameObjectWithTag Gam
  • Unity学习笔记(一)—— 基础知识

    一 基础知识 1 开发团队组成 2 unity特点 图形界面 所见即所得 入门简单 支持C 比OC C 更友好 js 国内外资源丰富 因为使用的人多 跨平台性好 PC端 移动端等 对VR AR的支持最完善 3 成功案例 游戏 炉石传说 神庙
  • 【Unity步步升】监控与检测物体的各种方案,如:射线、碰撞、挂载等...

    在制作AR模型数值控制方案的时候遇到了检测的问题 学习过程受益匪浅 故今天为大家整理带来一篇监控与检测物体的参考方案集合 目录 一 射线检测 二 物体存在检测 三 碰撞检测 一 射线检测 单射线检测 首先完成搭建场景如下图1 1 我这里用到
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • VS2022 | 显示Unreal Engine日志

    VS2022 显示Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志 视图 gt 其他窗口 gt Unreal Engine日志

随机推荐

  • @Cacheable缓存注解(以Redis作为缓存)

    使用时需要先导入依赖包
  • 2022华为杯C题汽车制造涂装-总装缓存调序区调度优化问题建模解决

    一 背景介绍 汽车制造厂主要由焊装车间 涂装车间 总装车间构成 每个车间有不同的生产偏好 如 焊装车间由于车身夹具的限制偏向最小车型及配置切换生产 涂装车间由于喷漆 固定每5辆车清洗喷头 颜色切换也需清洗喷头 限制偏向颜色以5的倍数切换生产
  • 刷脸支付抓住机会将财富收入囊中

    目前刷脸支付很多地方都已经开始落地商业 2019年相比支付行业最火爆的项目应该就是刷脸支付代理了 相信很多消费者也都体验到了刷脸支付带给我们的便利性和智能化的体验 而对于商家是大大节省人力和时间成本 加盟刷脸支付项目有很大的商机和发展前景
  • 信号完整性分析:关于传输线的三十个问题解答(二)

    11 对于 50 欧姆带状线的纵横比 什么是好的经验法则 What is a good rule of thumb for the aspect ratio of a 50 Ohm stripline 在带状线几何形状和 FR4 基板中 线
  • 信息度量——熵

    1 熵 1 1 熵的定义和理解 热力学用熵值描述系统混乱程度或不确定程度 香农用信息熵的概念来描述信源的不确定度 信息量与信息熵是相对的 告诉你一件事实 你获取了信息量 但减少了熵 或者说 得知一件事实后信息熵减少的量 就是你得到的这个事实
  • 例题讲解拉格朗日乘子法、线性可分支持向量机(SVM)的推导

    支持向量机 Support Vector Machine SVM 于1995年被首次提出 在解决小样本 非线性及高维度模式识别模式中具有许多特有的优势 1 SVM的相关概念 在介绍SVM之前需要了解一些相关概念 最优分类超平面 分类超平面方
  • flutter 使用image_picker上传图片

    第一步 封装 可以单独放在一个文件里 可以直接复制 选择图片函数 拍照 HspTakePhoto async var image await ImagePicker pickImage source ImageSource camera m
  • React 全栈体系(六)

    第三章 React 应用 基于 React 脚手架 二 组件的组合使用 TodoList 3 添加 todo 3 1 App src App jsx 创建 外壳 组件App import React Component from react
  • 后端返回JSON数据格式,前端根据JSON数据 导出.CSV文件

    以下仅供参考 效果图 前端JSON导出CSV文件 param Object dataObj 对象 title 名称 jsonKey Name 键值对 key data JSON数据 fileName 文件名 function exportC
  • Java中的OIO和NIO详解(含代码)

    简介及示例 Java NIO New I O 和OIO Old I O 是Java提供的两种不同的I O模型 OIO Old I O 是传统的阻塞I O模型 也称为同步I O 在OIO模型中 每个I O操作 如读写操作 都会阻塞当前线程 直
  • 随手记录(日历)

    日历
  • 7.最大最小距离算法与最大最小距离

    7 最大最小距离算法与最大最小距离 最大最小距离算法 最大最小距离算法是一种聚类算法 算法描述 1 任意选取一个样本模式作为第一聚类中心K1 2 选择离Z1最远欧氏距离的模式样本作为第二聚类中心K2 3 逐个计算每个模式样本与已确定的所有聚
  • 哈希表(散列表)原理详解

    什么是哈希表 哈希表 Hash table 也叫散列表 是根据关键码值 Key value 而直接进行访问的数据结构 也就是说 它通过把关键码值映射到表中一个位置来访问记录 以加快查找的速度 这个映射函数叫做散列函数 存放记录的数组叫做散列
  • Kibana启动Kibana server is not ready yet

    问题 页面访问Kibana路径显示 Kibana server is not ready yet 原因1 启动Kibana时指定ElasticSearch地址错误 http 116 62 19 81 9200 需要改为自己本机服务器的ip和
  • python调用GPT实现:智能用例生成工具

    工具作用 根据输入的功能点 生成通用测试点 实现步骤 工具实现主要分2个步骤 1 https请求调用Gpt 将返回响应结果保存为 md文件 2 用python实现 将 md文件转换成 xmind文件 3 写个简单的前端页面 调用上述步骤接口
  • zabbix-server仪表板出现: 不

    1 检查配置文件 vi etc zabbix zabbix server conf 里面的配置项是否还是原始的 如果是 请修改如下 2 检查第二个配置文件 vi etc zabbix web zabbix conf php 修改之前的原始配
  • 未转变者怎么调服务器难度,Unturned——作弊模式下的各项数值微调【较实用的已详细描述】...

    您尚未登录 立即登录享受更好的浏览体验 您需要 登录 才可以下载或查看 没有帐号 注册 register x 本帖最后由 Crazy Zombie 于 2017 8 11 10 31 编辑 如标题所示 在下发一个关于Unturned模式下各
  • 区块链与哈希函数

    目录 哈希函数 定义 性质 发展 常见攻击方法 1 穷举攻击 2 生日攻击 3 其他攻击 构造方法 1 利用对称密码体制来设计哈希函数 2 直接设计哈希函数 编辑 常用哈希函数简介 1 SHA 256算法 编辑 2 Keccak算法 3 S
  • Rust 学习心得<3>:无栈协程

    Rust 学习心得 lt 3 gt 无栈协程 有栈协程 vs 无栈协程 Go 有栈协程 Rust 协程 绿色线程 GreenThread 无栈协程 协程解决的问题 Rust作为一门新兴语言 主打系统编程 提供了多种编写代码的模式 Rust在
  • 虚幻引擎入门_框架

    虚幻引擎所提供的GamePlay框架可谓是虚幻引擎最为重要的一部分内容也不为过 虚幻引擎的设计希望开发人员在使用引擎之前是准备好了的 并且有充足的能力去理解游戏设计意图 在此之上为我们提供了一套开发规则 我们称之为游戏框架 GamePlay