UE4(Unreal Engine 4)基本概念

文章介绍了虚幻4引擎中的关键概念,包括GameMode定义游戏规则,GameState存储和同步游戏状态,组件构成Actor的功能,以及Actor作为可生成对象的基本单位。同时,讨论了C++和蓝图在开发中的应用,展示了虚幻4为开发者提供的工具和开发方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

术语简表

游戏运行:

游戏入口:GameMode

GameModeBase

游戏状态:GameState

主要组成部分:

组件(Component)

Actor

Actor组成

常见Actor类——可被控制器控制的游戏角色

常见Actor类——控制器

Object

虚幻4提供的工具:

开发方式

蓝图

C++

混合使用

参考:


术语简表

参考:https://docs.unrealengine.com/4.26/zh-CN/Basics/UnrealEngineTerminology/

下表左侧是 Unity 中的常见术语,右侧则是对应的(或差不多的)虚幻 4 术语。


游戏运行:

游戏入口:GameMode

即使最开放的游戏也拥有基础规则,而这些规则构成了 Game Mode。在最基础的层面上,这些规则包括:

  • 出现的玩家和观众数量,以及允许的玩家和观众最大数量。

  • 玩家进入游戏的方式,可包含选择生成地点和其他生成/重生成行为的规则。

  • 游戏是否可以暂停,以及如何处理游戏暂停。

  • 关卡之间的过渡,包括游戏是否以动画模式开场。

Game Modes 的任务都是定义和实现规则。Game Modes 当前常用的基类有两个。

UE在4.14 版本中加入了 AGameModeBase,这是所有 Game Mode 的基类,是经典的 AGameMode 简化版本。AGameMode 是 4.14 版本之前的基类,仍然保留,功能如旧,但现在是 AGameModeBase 的子类。由于其比赛状态概念的实现,AGameMode 更适用于标准游戏类型(如多人射击游戏)。AGameModeBase 简洁高效,是新代码项目中包含的全新默认游戏模式。

GameModeBase

游戏状态:GameState

基于规则的事件在游戏中发生,需要进行追踪并和所有玩家共享时,信息将通过 Game State 进行存储和同步。这些信息包括:

  • 游戏已运行的时间(包括本地玩家加入前的运行时间)。

  • 每个个体玩家加入游戏的时间和玩家的当前状态。

  • 当前 Game Mode 的基类。

  • 游戏是否已开始。


主要组成部分:

组件(Component)

组件(Component) 是可以添加到Actor上的一项功能。

当你为Actor添加组件后,该Actor便获得了该组件所提供的功能。例如:

  • 聚光灯组件(Spot Light Component)允许你的Actor像聚光灯一样发光,

  • 旋转移动组件(Rotating Movement Component)能使你的Actor四处旋转,

  • 音频组件(Audio Component)将使你的Actor能够播放声音。

组件必须绑定在Actor身上,它们无法单独存在。

在为 Actor 添加组件时,你就是在拼凑构成 Actor 的零碎部分。 例如,汽车上的车轮、方向盘以及车身和车灯等都可以看作组件,而汽车本身就是 Actor。

Actor

Actor 是虚幻 4 中最常见的用于游戏的类,并是唯一能够在 世界 中 生成 的类。因此所有可以放入关卡的对象都是 Actor,比如摄像机、静态网格体、玩家起始位置。Actor支持三维变换,例如平移、旋转和缩放。可以通过游戏逻辑代码(C++或蓝图)创建(生成)或销毁Actor。

在C++中,AActor是所有Actor的基类。

Actor组成

在某种意义上,Actor 可被视为包含特殊类型 对象(称作组件component)的容器。 不同类型的组件可用于控制Actor移动的方式及其被渲染的方式,等等。Actor的其他主要功能是在游戏进程中在网络上进行属性复制 和函数调用。

  • UActorComponent:这是基础组件。其可作为Actor的一部分被包含。如果需要,其可进行Tick。ActorComponents与特定的Actor相关联,但不存在于场景中的任意特定位置。它们通常用于概念上的功能,如AI或解译玩家输入。

  • USceneComponent:SceneComponents是拥有变换的ActorComponents。变换是场景中的位置,由位置、旋转和缩放定义。SceneComponents能以层级的方式相互附加。Actor的位置、旋转和缩放取自位于层级根部的SceneComponent,层级根部的SceneComponent即为Root Component

注意:Actor不直接保存变换(位置、旋转和缩放)数据;Actor 有一个 Root Component,作为Actor根的组件, 指定了 Actor 在世界中的位置、角度及缩放比例,且这些属性会影响该 Actor 的所有子对象。

即便你只放置一个空 Actor,虚幻 4 也会为它创建一个"默认场景根(Default Scene Root)"对象,这是一个最简单的场景组件。当你放置一个新的场景组件时,默认场景根对象会被替换掉。

  • UPrimitiveComponent:PrimitiveComponent是拥有一类图像表达(如网格体或粒子系统)的SceneComponent。诸多有趣的物理和碰撞设置均在此处。

 如下图为在UE编辑器中创建蓝图类时提供的组件类解释:

常见Actor类——可被控制器控制的游戏角色

  • Pawn - Actor 的一种类型,用于表现一个可供控制的游戏对象,比如玩家操控的角色。玩家或者 AI 通常通过 Controller 来控制并移动 Pawn。

  • Character - 一种特殊类型的 Pawn,用于双足类型的角色,并具备一些复杂的功能。

常见Actor类——控制器

  • 玩家控制器(Player Controller)  - 一个更为特殊的 Controller,用于从玩家的手柄、触控板、鼠标/键盘获得输入信息,并将这些信息驱动玩家所控制的 Pawn 或者 Character 的行为。

    Player Controller会获取游戏中玩家的输入信息,然后转换为交互效果,每个游戏中至少有一个玩家控制器。玩家控制器通常会控制一个Pawn或角色,将其作为玩家在游戏中的化身。

    玩家控制器还是多人游戏中的主要网络交互节点。在多人游戏中,服务器会为游戏中的每个玩家生成一个玩家控制器实例,因为它必须对每个玩家进行网络函数调用。每个客户端只拥有与其玩家相对应的玩家控制器,并且只能使用其玩家控制器与服务器通信。

    相关的C++类是 PlayerController

  • AI控制器(AIController 通过控制Pawn来表示游戏中的非玩家角色(NPC)。默认情况下,Pawn和角色最终都会由基本的AI控制器控制,除非它们被指定通过玩家控制器(Player Controller)控制,或被告知不需要为它们自己创建AI控制器。关联的C++类是 AIController

Object

另外一个需要知道的关键类是 Object。Object 实际上是所有虚幻引擎的类的基类,包括 Actor 以及其他一些类都是如此。这是一个比 Actor 更加底层的类,但作为虚幻中的类,它仍拥有一些基本功能,比如 反射 和 序列化。Object 是一个非常基础的类,当我们需要定义一个新的类但又并非 Actor 的时候会使用它。比如 Actor Component 是所有组件的基类,而它则是继承 Object 而非 Actor。



虚幻4提供的工具:

参考:https://docs.unrealengine.com/4.26/zh-CN/Basics/ToolsAndEditors/

开发方式

虚幻 4 采用 (Gameplay 框架)[(InteractiveExperiences/Framework)] 来协同各种特殊的 Actor 一起工作。

Gameplay 框架利用一些基础类,并且遵循特定规范,就能省去很多造轮子的工作,否则你自己实现可能要花费很多时间,而且也很困难,或者很难改造。(比如完整的多人游戏支持!)

要使用 Gameplay 框架,你只需要了解一些预制的 Actor 类,比如 PawnCharacter,和 Player Controller,并逐步了解虚幻的网络复制和网络其他功能。

蓝图

蓝图可视化脚本适合实现简单的游戏逻辑以及按顺序进行的事件。这个系统对策划、美术以及面向可视化编程的程序员是非常好用的,它能以可视化的方式轻松访问并管理游戏内对象。你完全可以仅凭蓝图完成一个游戏的制作。请参考 Tappy Chicken 示例,它是一个完整的范例。

C++

C++ 编程适合用于大型任务,比如编写某个游戏逻辑系统,制作复杂的 AI 行为,或者新增引擎功能。对于已经掌握了 C++ 技能的开发人员来说,可以翻阅一下 在虚幻 4 中的 C++ 编程简述 页面。

混合使用

大部分的项目都适合混合使用蓝图和 C++。很多开发者都用蓝图来创作游戏原型,因为这个过程容易而且有趣,但之后出于性能优化、项目优化等考量,会把它们迁移到 C++ 中。

此外,蓝图类也能扩展 C++ 类。

参考:

https://docs.unrealengine.com/4.26/zh-CN/Basics/UnrealEngineForUnityDevs/

Unreal Engine 4 for Beginners, as its name implies, is specifically written with the beginner in mind. It is meant for those who wish to learn how to make video games with no prior game development, game design, or game programming experience. It concentrates on the fundamentals, in order to build a rock solid foundation upon which the reader can use to confidently explore more intermediate and advanced topics. It provides a thorough examination of the basics, covering each subject in fine detail. Great care has been taken to ad vance through the subject matter in an order that best ensures that everything needed to understand one piece of information has already been covered in the information prior. It makes a great textbook for an Intro to Unreal Engine, or Unreal Engine 101 course. In addition, the book has been formatted specifically for ease of use with tablets and other mobile devices. The book concentrates heavily on four key areas: Environments - Construct beautiful environments with moving objects and sounds Inputs - Enter and explore the worlds you construct by creating a Character and specifying how it can move and how to control those movements Menus & Displays - Learn how to create the user interfaces and on-screen displays that will enhance your game and bring it to the next level Logic - Learn how to construct logic and take full control over the first three subject areas. How should objects in your world move? What should cause a certain sound to play? How does the player win the game? You decide! No need to wait for shipping! Get started learning the fundamentals of game development right now with this specially formatted ebook textbook! Table of Contents Chapter 1 Getting Started Chapter 2 Basic Concepts Chapter 3 The Level Editor Chapter 4 Actors Chapter 5 Blueprints Chapter 6 Players & Input Chapter 7 Collisions Chapter 8 User Interfaces Chapter 9 Audio Chapter 10 Additional Topics Book Details QR code for Unreal Engine 4 for Beginners Title: Unreal Engine 4 for Beginners 收缩
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值