4508 字
12 分钟
UE基础知识

1. 安装虚幻引擎#

  1. 下载和安装Epic Games。下载虚幻引擎 - Unreal Engine
  2. 登录Epic Games
  3. 安装虚幻引擎,选择对应版本

2. UE编辑器界面概述#

uell.png

2.1工具栏#

📍 位置:界面顶部

主要功能

  • 保存当前关卡
  • 编译蓝图/C++
  • 播放(Play)
    • PIE(Play In Editor)
    • 模拟(Simulate)-
  • 构建
    • 构建光照
    • 构建导航
  • 平台打包
    • Windows
    • Android
    • IOS等

官方参考:

🔗 编辑器界面概述
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/unreal-editor-interface

🔗 构建和打包项目
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/packaging-projects-in-unreal-engine

2.2 视口区域#

📍 位置:编辑器中央(核心区域)

视口是 3D 实时编辑窗口,用于:

  • 查看场景
  • 操作 Actor
  • 调整摄像机
  • 调整光照与可视模式

常用快捷键

  • 右键 + WASD:移动视角
  • W / E / R:移动 / 旋转 / 缩放
  • Alt + 鼠标:旋转观察

官方文档:

🔗 视口控制方式
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/viewport-controls-in-unreal-engine?utm_source=chatgpt.com

🔗 显示选项
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/viewport-show-flags-in-unreal-engine

2.3 世界大纲#

📍 位置:右上区域

列出当前关卡中的所有 Actor。

功能包括:

  • 搜索 Actor
  • 分组
  • 查看层级结构
  • 快速选中对象

官方文档:

🔗世界大纲
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/outliner-in-unreal-engine

2.4 细节面板#

📍 位置:右侧下方

当选中一个 Actor 时,这里显示:

  • 位置(Location)
  • 旋转(Rotation)
  • 缩放(Scale)
  • 材质
  • 碰撞
  • 组件属性

detail.png

官方文档:

🔗 细节面板 https://dev.epicgames.com/documentation/zh-cn/unreal-engine/level-editor-details-panel-in-unreal-engine

2.5 内容浏览器#

📍 位置:底部

用于管理项目资源:

  • 材质(Materials)
  • 静态网格(Static Mesh)
  • 蓝图(Blueprint)
  • 动画
  • 贴图
  • 音效

查找资产:

  • 文本过滤器:在搜索资产(Search Assets)框中,键入文本以按名称(Name)、路径(Path)、标签(Tags)或类型(Type)查找资产。可以通过在搜索标记前面加上““来从搜索中排除资产
  • 扩展过滤器:单击过滤器(Fiters)按钮以按资产类型和其他条件进行过滤。

使用技巧
可以在顶部菜单栏中的**窗口(Window)**菜单打开,可以同时打开最多四个内容浏览器实例。例如,如果要执行以下操作,这很有用:

  • 在不同的内容浏览器(Content Browser)中筛选不同的资产类型,例如一个只显示静态网格体,另一个只显示材质。
  • 在项目的不同文件夹之间迁移资产。

默认情况下, 内容浏览器(Content Browser) 停放在虚幻编辑器(Unreal Editor)窗口的底部。可以点击并拖动,将其重新停靠在编辑器中的任何位置,或使其成为浮动窗口。还可以右键点击内容浏览器(Content Browser)选项卡,并选择 移至侧边栏(Move to Sidebar) ,这样内容浏览器(Content Browser)会折叠到虚幻编辑器(Unreal Editor)窗口左侧边栏中的可点击选项卡。

官方文档:

🔗 内容浏览器
https://dev.epicgames.com/documentation/zh-cn/unreal-engine/content-browser-in-unreal-engine

3.UE的基础概念#

3.1 资产(Assets):#

在 UE 中,资产(Assets) 指的是项目中使用的所有资源文件,例如:

  • 模型
  • 材质
  • 纹理
  • 音频
  • 动画
  • 蓝图
TIP

👉 只有位于 Content 目录下的资源才会被 UE 识别为资产。

常见资产格式:

类型示例
UE资产.uasset(这是最常见的资产文件格式,包含各种类型的资产,如模型、材质、蓝图等。)、.umap
纹理.png.jpg
音频.wav.mp3
模型/动画.fbx

这些原始文件导入后会转换为 .uasset,才真正成为引擎可用资源,可以理解为: 资产 = 游戏世界的原材料

3.2 世界(World):#

NOTE

世界的特点#

  1. 可以包含多个关卡,每个关卡代表了特定的场景或环境,开发者可以在这些关卡中放置对象、设置光照和定义游戏逻辑
  2. 支持动态加载与卸载(优化性能),例如,在一个大的开放世界游戏中,玩家可能只需加载当前区域的关卡,而其他区域则保持未加载状态
  3. 整个世界有其全局设置,如重力、时间等,而每个关卡可以有自己的特定设置。这使开发者能够在同一世界中创建多样化的体验。
  4. 支持资源共享,开发者可以在不同的关卡中使用相同的资产和资源,从而提高效率和一致性

在 UE 中,World 代表游戏运行的整体环境,包括:

  • 多个关卡
  • 光照系统
  • 地形
  • 场景对象
  • 全局物理规则(如重力)

世界提供统一规则,而具体内容由关卡组成,开发者创建多个世界,以支持不同的关卡或场景,并通过加载和卸载这些世界来管理游戏内容

3.3关卡(Level):#

关卡可以理解为:

玩家实际游玩的场景空间

它本质上是 Actor 的容器,所有游戏对象都存在于关卡中。

关卡可以:

  • 小到测试房间
  • 大到开放世界地图

常见关卡元素:

  • 静态网格体(Static Mesh):是用于表示不需要动态变化的三维模型的资源,静态网格体通常用于构建游戏中的环境、道具和其他物体。比如家具、武器、车辆,建筑物、地面、树木、岩石等
  • Volume(触发区域):一种特殊类型的Actor,用于定义特定的区域或空间,并可以影响该区域内的游戏逻辑和行为。比如 进入某Volume区域,可以开关门、播放音效等,在某些区域可以飞行等
  • 光源(Light): 控制场景照明,通过模拟光线行为,影响物体的外观
  • 蓝图(Blueprint):是一种可视化脚本系统,用于创建游戏逻辑和交互行为。比如实现开关门的逻辑。

3.4 Actor:#

在 UE 中:

几乎所有可以放置在场景中的对象都是 Actor

Actor 是关卡中对象的基础单位

常见 Actor 类型#

  • Character(角色):专门用于表示可以被玩家或AI控制的对象,角色通常用于创建游戏中的主要人物或者NPC
  • Camera(摄像机):捕捉和现实游戏场景的对象,决定了玩家看到的画面
  • Light(光源):同**关卡(Level)**中的描述
  • Static Mesh Actor(静态网格体):同**关卡(Level)**中的描述
  • Blueprint Actor(可编程对象):同**关卡(Level)**中的描述
  • PlayerController(玩家控制逻辑):负责接收玩家输入(如键盘、鼠标、手柄)并将这些输入转换为游戏中的逻辑(如移动、攻击等)

3.5 组件(Component):#

如果说 Actor 是实体,

那么 组件(Component) 就是赋予它能力的模块。

组件可以为 Actor 添加:

  • 渲染能力
  • 碰撞检测
  • 音效播放
  • 摄像机视角
  • 物理行为
TIP
  • 组件可以在多个Actor中重复使用,使得对象构建更加模块化与可复用
  • 组件可以在蓝图中创建和配置,使得非程序员也能轻松使用和管理它们
  • 一个 Actor 可以包含多个组件,这些组件可以相互协作,共同实现复杂的行为

自动门(Auto Door)的组件协作示例

假设制作一扇自动感应门,当玩家靠近时:

  • 门自动打开
  • 播放开门声音
  • 播放开门动画
  • 防止穿模

这个简单功能,由以下多个组件协同完成:

  1. 碰撞组件(Collision Component)

    作用:检测玩家是否靠近

    • 创建触发区域(Box Collision)

    • 当玩家进入范围时触发事件

    • 当玩家离开时关闭门

  2. 静态网格组件(Static Mesh Component)

    作用:显示门模型

    • 门的外观

    • 门框结构

  3. 动画 /时间轴组件(Timeline / Animation)

    作用:控制门的开关动画

    • 控制门的旋转或滑动

    • 平滑打开与关闭

    • 提升真实感

  4. 音频组件(Audio Component)

    作用:播放开门声音

    • 播放开门音效

    • 播放关门音效


    在蓝图中,将这些组件添加到门这个Actor中,当感应到玩家时,碰撞组件检测到玩家进入;触发蓝图事件;时间轴播放 → 门缓慢打开;音频组件播放开门声音

3.6 蓝图(Blueprint):#

蓝图是 UE 的可视化脚本系统,允许开发者通过节点连接实现逻辑功能,而无需编写传统代码

常见用途:

  • 角色行为逻辑
  • 场景事件触发
  • UI交互
  • 游戏规则实现

常见蓝图类型

  • Level Blueprint(关卡逻辑)
  • Actor Blueprint(对象逻辑)
  • Character Blueprint(角色行为)
  • Widget Blueprint(UI界面)

3.7 配置表(Data Table):#

配置表(Data Table) 是一种用于存储和管理结构化数据的工具。它允许开发者将数据以表格形式组织,便于读取、编辑和维护。

主要作用

  • 管理结构化数据,例如:

    • 角色属性
    • 物品信息
    • 数值平衡
    • 关卡配置
  • 动态加载配置表中的数据,支持根据不同条件(等级、难度等)调整不同的游戏行为

  • 蓝图与C++均可访问

配置表结构定义

  • 蓝图结构体
  • C++结构体
  • CSV文件(导入时指定数据类型和字段映射)
  • JSON文件
  • XML文件

3.8 材质材质与光照:#

材质(Materials)

材质决定物体如何与光线交互,从而影响其颜色、纹理、反射、透明度等视觉效果

基本组成:

  • Base Color:基础颜色
  • Metallic:控制表面金属效果
  • Roughness:表面光滑程度
  • Normal Map:细节和深度

光照(Lighting)

UE 提供多种光源类型:

  • Directional Light(太阳光)
  • Point Light(点光源)
  • Spot Light(聚光灯)
  • Sky Light(环境光)

良好的光照设计能显著提升画面质量

3.9 动画(Animation):#

动画让静态模型产生动态表现,例如:

  • 角色行走与攻击
  • 门的开关
  • 布料与水面模拟

部分动画类型:

  • 物体动画(Object Animation):用于控制非角色对象的运动,如门的开关、物品的移动等
  • 骨骼动画(Skeletal Animation):通过骨骼系统驱动角色模型,使其能够进行复杂的动作。如行走、跑步、跳跃等
  • 混合空间动画(Blend Space Animation):允许开发者创建多个动画之间的平滑过渡,例如在行走和奔跑之间平滑过渡。可以根据输入参数动态调整动画
  • 动画蓝图(Animation Blueprint):用于管理和控制角色的动画状态和过渡,通过可视化脚本系统实现复杂的动画逻辑

3.10状态机(State Machine):#

状态机是一种用于管理对象 不同状态及其切换规则 的系统。它允许开发者定义不同的动画状态(如行走、跑步、跳跃等)以及这些状态之间的过渡逻辑;状态机由多个“状态”组成,每个状态对应一个特定的动画或者行为;状态之间通过“条件转换(如输入、事件或变量值)”进行切换。

例子:

状态机:红绿灯

状态:

  • 红灯
  • 绿灯
  • 黄灯

条件:每60s切换一次灯的颜色

核心思想:

对象在任意时刻只处于一种状态, 并根据条件在不同状态之间切换。

3.11 AI#

UE 的 AI 系统通常由三部分组成:

  1. Blackboard

Blackboard 是 AI 的“记忆系统”。用于存储:

  • 目标位置
  • 是否看到玩家
  • 当前状态
  • 巡逻点
  • 攻击目标

行为树通过黑板读取信息做决策。

  1. EQS

EQS 用于环境查询与位置选择

AI 用它寻找最佳位置

例如:

  • 找最近掩体
  • 找安全位置
  • 找最佳射击点
  • 找可行走区域
  1. Behavior Tree

行为树用于定义 AI 的决策逻辑。

决定 AI 下一步该做什么

例如:

是否看到玩家?
是 → 追击
否 → 巡逻

三者结合可以实现复杂且智能的 AI 行为。

3.12 网络模式#

在多人游戏中,UE 使用 Replication(数据复制) 在客户端与服务器之间同步数据。

network.png

独立模式

图1:UE编辑器界面结构

network1.png

客户端-服务端模式

单机(Standalone):

  • 有一个或多个本地玩家且没有联网的游戏。仍被视为服务器,因为它包含所有服务器功能,但不接受来自远程客户端的连接。此模式用于单人和本地多人游戏。此模式可根据需要同时运行服务器端和客户端逻辑。
  • 常见场景:
    • 单人游戏:如角色扮演类、冒险类游戏,玩家在本地体验故事和任务
    • 本地多人游戏:如分屏合作或对战游戏,多个玩家在同一机器上进行游戏

客户端(Client):

  • 作为联网多人游戏会话中与服务器连接的客户端运行,不运行服务器的逻辑
  • 常见场景:
    • 在线多人游戏:MMORPG、FPS等,玩家通过客户端连接到专用服务器进行交互
    • 实时数据交换的场景

监听服务器(ListenServer):

  • 此服务器也有一个本地玩家,此玩家负责托管游戏。可供网络上的其他玩家链接。此模式常用于临时合作和竞技多人游戏。
  • 常见场景:
    • 临时合作类模式:如局域网多人游戏模式
    • 监听已有的游戏副本小范围游玩
  • 由于托管监听服务器的玩家是直接在服务器上玩游戏,因此相对于作为客户端在监听服务器上玩游戏的玩家来说,他们更有优势。这可能引发游戏公平性的问题。

专用服务器(DedicatedServer)

  • 没有本地玩家的服务器。服务器仅接受来自远程客户端的连接,因此为了更高效地运行,服务器放弃了图形、声音、输入和其他面向玩家的功能。此模式常用于需要更持久、安全或大规模多玩家的游戏。
  • 常见场景:
    • 大型在线多人游戏:需要处理大量并发用户并保持稳定性的环境
    • 游戏赛事:稳定与安全的环境

4. 项目结构:#

UE 项目包含几个关键目录:

Config 项目配置文件。

Content 所有游戏资源。

Intermediate 构建中间文件。

Saved 日志与自动保存数据。

.uproject 项目入口与模块配置。

5.使用 Unreal Engine 构建第三人称联网射击游戏:实现思路概览#

  1. 项目初始化与网络准备

    • 首先创建项目:

      • 启动 Unreal Engine
      • 选择 Games → Third Person 模板
      • 确认项目支持网络功能

      第三人称模板已经包含:

      ✔ 基础角色移动 ✔ 摄像机系统 ✔ 输入绑定

  2. 角色与控制

    • 角色蓝图:

      • 基于默认角色蓝图,可以扩展:

        • 射击功能
        • 重装逻辑
        • 受伤与生命系统

        在多人游戏中,需要特别注意:

        关键变量必须支持网络同步(Replication) 否则客户端状态会不一致

    • 自定义玩家控制器:

      • 处理输入逻辑
      • 管理玩家状态
      • 控制摄像机行为
  3. 武器系统

    • 武器蓝图:
      • 射击逻辑
      • 弹药管理
      • 换弹机制
      • 射击特效与音效

    在联网环境中:

    👉 客户端触发射击 👉 服务器验证并执行 👉 使用 RPC 同步结果

  4. 关卡与战斗环境设计

  • 创建关卡:

    • 地形工具构建场景

    • 静态网格体搭建建筑结构

    • 掩体与障碍设计战术空间

  1. 专用服务器(Dedicated Server)部署
  • 确保游戏模式支持服务器运行

  • 构建 Dedicated Server 版本

  • 生成服务器可执行程序

  1. 网络逻辑与同步策略

多人游戏开发的核心原则:

✔ 游戏规则在服务器执行 ✔ 客户端负责输入与显示 ✔ 关键状态通过复制同步

需要实现:

  • 玩家生成逻辑
  • 游戏规则同步
  • 状态一致性管理

这样可以防止作弊并保证公平性。

  1. UI设计
  • 控件蓝图
    • 生命值
    • 弹药数量
    • 击杀或得分信息
  1. 测试与调试
  • 编辑器内模拟多个客户端

  • 本地客户端连接服务器

  • 命令行启动服务器进行压力测试

  1. 打包与部署
  • 打包客户端版本
  • 部署服务器至云平台或物理服务器
  • 开放网络访问供玩家连接
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

UE基础知识
http://wangxvvv.top/posts/ue/
作者
王诩
发布于
2023-10-05
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时