Software-谌嘉诚 UE4 教程(1-26)

学习自 B 站 UP 主谌嘉诚。

资源

课程

选看

【选看】什么是虚幻引擎、适合什么人学、支持平台、经验分享

这系列课程能带给你什么?

  • 能够了解虚幻 4

  • 了解虚幻 4 能够制作什么

  • 能够确认自己是否适合学习虚幻 4

  • 能够获得自我学习的途径

  • 能够熟悉基本的虚幻 4 的界面操作

  • 能够搭建简单的场景

  • 能够制作简单的互动(开关门、昼夜交替)

  • 能够使用地形工具绘制地形

  • 能够制作地形材质

  • 能够了解虚幻 4 渲染特性(灯光、后期、雾)

  • 能够制作简单的 UI 界面

  • 能够制作简单的过场动画

  • 了解虚幻 4 的一些基本概念

什么是虚幻 4?

  • 虚幻 4

    是由 Epic Games 开发的一个游戏引擎,Epic Games 是一家美国视频游戏和软件开发公司。虚幻 1 是由 TimSweeney 开发的,他同时也是 EpicGames 的创始人。于 1998 年 5 月发行。虚幻 4 从企业应用和电影体验到高品质的 PC、主机、移动、VR 及 AR 游戏,虚幻 4 能够提供从启动项目到发行产品所需的一切。世界级的工具套件以及简易的工作流程能够帮助开发者快速迭代概念并立即查看成品效果,且无需触碰一行代码。而完整公开的源代码则能让虚幻引擎 4 社区的所有成员都能够自由修改和扩展引擎功能。

  • 行业前景

    越来越多的开发者,开发商投入到虚幻 4 中,简单的说就是使用虚幻 4 的人越来越多了,许多独立游戏,大厂的游戏都在使用虚幻 4 来开发,加上虚幻 4 对开发者来说使用完全免费,所有源代码都是开源的,你只需要在发行的时候支付 5% 的费用。

虚幻 4 都有哪些功能?

  • 实时逼真渲染

    “开箱即用”的好莱坞级视觉效果。虚幻引擎基于物理的渲染技术、高级动态阴影选项、屏幕空间反射以及光照通道等强大功能将帮助您灵活而高效地制作出令人赞叹的内容。

  • 蓝图:创作,无需代码

    有了对于设计师更加友好的蓝图可视化脚本,您无需触碰一行代码,就能快速制作出原型并推出交互内容。您可以使用蓝图构建对象行为和交互、修改用户界面、调整输入控制以及许多其他操作。您还可以使用强大的内置调试器在测试作品的同时可视化玩法流程并检查属性。

  • 包含完整的 C++ 源代码

    通过完整的 C++ 源代码,您能够学习、自定义并调试整个虚幻引擎,并毫无阻碍地发行您的产品。

  • 稳健的多人框架

    历经 20 多年的发展,虚幻引擎的多人框架已通过众多平台以及不同游戏类型的考验,制作过众多业内顶尖的多人游戏体验。虚幻引擎推出的“开箱即用”型客户端/服务器端结构不但具有扩展性,而且久经考验,能够使任何项目的多人组件“立等可用”。

  • VFX 与粒子系统

    内置的 Niagara 和级联粒子视觉效果编辑器能让您采用大量不同类型的模块,完全自定义粒子系统利用粒子光照点亮您的场景,并使用向量场构建复杂的粒子运动模拟现实情境,并制作出专业级的完美成品。

  • 灵活的材质编辑器

    虚幻引擎 4 的材质编辑器采用基于物理 PBR 的着色技术,赋予您对于角色和物体外观和感觉的空前掌控力。使用以节点为基础的直观工作流程快速创建多种经得起近距离检验的表面。像素级别的图层材质和可微调的值能让你创作出任何想要的风格。

  • 电影级后期处理效果

    虚幻引擎的后期处理能够能让您优雅地调整场景的外观和感觉。动动指尖就能轻松获得电影级的效果,包括环境立方体贴图、环境遮挡、高级泛光、颜色分级、景深、人眼适应、镜头光晕、光束、临时采样抗锯齿和色调映射等众多实用功能。

  • 包罗万象的动画套件

    通过虚幻的网格体以及动画编辑工具,您能够完全自定义角色。工具中强大的功能包括了状态机、混合空间、逆向运动学和由动作驱动的物理特性。您可以使用动画蓝图高效工作,通过即时预览动作,制作出真正的动态角色以及真实可信的动作。

  • Sequencer:专业动画

    由影视行业专家设计的 Sequencer 是款完整的非线性、实时动画编辑工具,专为多人协同工作而生,能够释放您的创作潜能。它能让您以镜头为单位逐定义和修改光照、镜头遮挡、角色以及布景。使用动画运镜和实时游戏录制创作各种不同的动态剪辑。

  • 地形与植被使用地形系统

    创建巨大的、开放的世界环境。得益于地貌系统强劲的 LOD 系统和高效的内存使用,您可以创建比过去大出几个数量级的地形。使用 LandscapeGrass 功能用不同类型的花草自动覆盖庞大的户外环境,并使用植被工具快速地绘制摆放树木、灌木、岩石及其他装饰物。

  • 专为 VR、AR 及 MR (XR) 而生

    得益于 Epic 与全球顶尖的硬件及软件厂商间紧密的合作,虚幻引警能为虚拟现实 (VR)、增强现实 (AR) 及混合现实 (MR) 体验的创作者提供最高品质的解决方案。通过与最流行的各大平台实现本地集成,以及前向渲染、多采样抗锯齿 (MSAA) 以及实例化双目绘制以及单视场远景渲染等优化手段,UE4 能够在无损性能的前提下制作出高品质的成果。

  • 先进的人工智能

    通过虚幻引擎 4 的游戏框架及人工智能系统,可赋予 AI 控制角色对周围世界更好的空间意识,同时使他们能够更智能地行动。随着您不断移动对象,动态导航网格体会实时更新,以获得最佳路径。

虚幻 4 适合什么人学?

  • 爱玩游戏的 可能平时爱玩游戏,总想做一个自己的游戏,可以自己主导整个游戏剧情,玩法,以做游戏为业余爱好的朋友
  • Unity 转行的 可能刚刚由于种种原因,转行做 UE4 的朋友
  • 有代码基础的 可能之前学习过代码 (PHP、JAVA、C++),并对 UE4、做游戏有强烈热情的朋友
  • 大学期间有空闲时间的如果你还在迷茫,不知以后干嘛,可能学习虚幻 4 是一个不错的选择以兴趣爱好出发,总会有意想不到的收获!
  • 室内设计的(美术方向)虚幻 4 对于美术方面也是非常友好的,熟悉参数后就能调整到不错的画面,加上蓝图不需要任何代码,就可以实现一些简单的互动。
  • 更多…

虚幻 4 支持的平台

虚幻 4 还有很多插件,方便其他软件的用户使用,如 Vray,3dsmax,Speed tree,True sky。以及很多硬件厂商都有对应的 SDK 支持。

虚幻 4 制作的游戏

堡垒之夜、绝地求生、往日不在、方舟、SCUM、叛乱 2.沙漠风暴……

分享自己的学习之路

要点:

  1. 兴趣、热情
  2. 做一个自己想做的游戏
  3. 成就感
  4. 动力
  5. 能够独立解决问题
  6. 遇到问题能够快速的查阅相关资料
  7. 钻研精神

你们可能会问的问题

问:学习虚幻 4,一定要学 C++ 吗?

答:肯定的,就程序这条路而言,从一个初级虚幻 4 工程师到中级甚至是高级工程师,C++ 熟练掌握是必须的,入门可以先从蓝图开始。

问:学习虚幻 4 需要什么配置的电脑?

答:首先最好使用英伟达的游戏系的显卡,虚幻 4 对配置要求还是蛮高的,如果预算有限,刚刚入门的朋友,就我经验而言,可以差不多买个五六千的组装机就可以了。

CPU: i7-7700、显卡: GTX1060、内存: 8g、固态 128g(这是我能接受的最低配置,上不封顶)

问:我没有代码基础基础或者转行过来的,容易学吗?好上手吗?

答:虚幻 4 上手入门不难,学精就难了,所以一开始可以抱着玩游戏的心态(也就是兴趣,不是随便玩一玩的意思)。况且虚幻 4 有蓝图(不需要写任何代码),无论你是学习程序,还是美术,都可以在一开始实现一些简单的功能,做一些简单的游戏,增加你的成就感!

问:学习虚幻 4 是否要学报英语培训课?(是否要学英文)

答:不一定,但是能够同时进行是最好的,毕竟虚幻 4 很多功能选项还是英文的,不过随着版本的不断更新,汉化的力度越来越强大,我现在学习有时候都是用英文版本的,再开一个中文版本的作为翻译。

【选看】学习虚幻引擎的 15 个途径

【选看】虚幻引擎版本选择

4.24

【选看】虚幻引擎全流程安装

  1. 注册和登录 EpicGames 账号
  2. 下载和安装 Epicgames 启动器
  3. 使用和介绍 EpicGames 启动器
  4. 安装虚幻引擎

【选看】新版本下载流程、更改缓存路径

更改缓存路径

​ 将 安装盘:\Program Files\Epic Games\UE_4.24\Engine\Config\BaseEngine.ini

ini
DeleteUnused=true, UnusedFileAge=34, FoldersToClean=-1, Path="%ENGINEVERSIONAGNOSTICUSERDIR%DerivedDataCache", EditorOverrideSetting=LocalDerivedDataCache)

中的 Path="%ENGINEVERSIONAGNOSTICUSERDIR%DerivedDataCache"改为:Path="%GAMEDIR%DerivedDataCache"

如此做,项目的缓存路径就会在项目的根目录创建,以减少 C 盘占用空间。

【选看】虚幻 4 闪退原因汇总

【选看】虚幻 4 免费素材渠道汇总

  • 虚幻商城
虚幻商城

基础

【基础】01 课:创建项目全流程和模板试玩

打开 Unreal4.22,创建项目:

创建项目 创建项目

虚幻 4 工程文件夹的结构:

  • Config:包含了项目设置,键盘输入之类的配置文件
  • Content:存放引擎或游戏的内容,包括地图、贴图、模型、材质、蓝图等
  • Intermediate:包含了在编译引擎或游戏时生成的临时文件
  • Saved:包含了自动保存内容,配置 (*.ini) 文件以及日志文件
  • uproject:项目启动程序,开启我们的项目

【基础】02-1 课:超详细编辑界面介绍

介绍虚幻 4 的界面,跟 Unity 的差不多,有些没接触过的:

视图界面:

视图界面

书签可以保存 / 读取特定的视口。

视图界面

视图模式显示某些内容或是辅助信息。

【基础】02-2 课:视口导航(在视口界面移动视角)

不同于其他三维应用程序(聚焦和围绕一个正在构建的资源),虚拟引擎视口移动功能按键专门用于对大型游戏关卡进行布景,其中快速穿越大范围区域的功能非常关键。

功能按钮操作
左键单击 + 拖动前后移动视口摄像机和左右旋转视口摄像机。
右键单击 + 拖动旋转视口摄像机,不前后移动。
左单击 + 右单击 + 拖动 / 滚轮单击 + 拖动在世界场景中上下移动视口摄像机。
Ctrl + Alt + 单击 + 拖动创建方形选取框。
按住鼠标右键 + WASD 键像在典型的第一人称射击游戏中那样导航关卡。
F 键将视口摄像机聚焦到视口中选中的 Actor 上。
AIt + 鼠标左键 + 拖动围绕单个的支点或兴趣点翻转视口。
Alt + 鼠标右键 + 拖动向前推动摄像机使其接近或远离单个支点或兴趣点。
Alt + 中键单击 + 拖动根据鼠标移动的方向将摄像机向左、右、上、下移动。

【基础】03 课:物体编辑(坐标系、变换、单位)

变换

选中对象,R 移动,W 旋转,E 缩放。

设置局部坐标系 / 全局坐标系。

全局 / 局部

单位和度量

  • 默认情况下,1 个虚幻单位(uu)等于现实世界的 1 厘米(cm)。这是一个要注意的重要细节,你应将其应用于设计和游戏的所有方面,以开发出相应的环境、角色、效果等。
  • 默认情况下,玩家通常在游戏世界场景中高约 6 英尺:相当于 180 厘米,或 180 uu。为了满足项目的需要,你可以更改此默认值。但无论默认值是什么,你都可以将其用作基值来为所有其他 Actor 的大小建立情境。

枢轴偏移

  • 中键 选中物体中心再拖动,右键可以设置该对象的中心(枢轴偏移):
设置枢轴偏移

框选

  • Ctrl + Alt + 左键 可以进行框选。

复制

  • 选中对象,Alt + 左键 可以复制对象。

【基础】04 课:导入资源、项目迁移和管理

一些最常用的文件类型和资源类型以及相关的应用程序

资源类型文件扩展名应用程序
三维模型、骨架网格体结构、动画数据.fbx、.objMaya、3ds Max、ZBrush
纹理和图片.bmp、.jpg、.pcx、.png、.psd、.tga、hdrPhotoshop
字体.otf、 . ttfBitFontMaker2
音频.wavAudacity、 Audition
视频和多媒体.wmvAfter Effects、Media Encoder
PhysX(物理类).apb、.apxAPEX PhysX Lab
其它.csvExcel

许多资源不是导入的,而是直接在编辑器中创建的。 ​ 常见示例:

  • 蓝图类
  • 粒子系统
  • 材质和材质实例

选择某个资源,打开引用查看器可以查看这个资源与哪些其它资源绑定。

引用查看器

导入 / 导出资源最好使用虚幻引擎的迁移功能,使用复制粘贴有可能导致一些兼容性问题。

迁移

【基础】05-1 课:主流三维软件模型导入虚幻 4

对于一些主流的三维建模软件(3ds max、C4D),可以使用 Datasmith 插件将模型导入到虚幻引擎中。

对于 Maya,有 Maya Live Link 这个插件。

Maya Live Link

fbx 格式和 obj 格式的共同点: 它们都是三维通用模型格式,都支持三个点以上的面,都可以用在目前几乎所有主流的三维软件中。 fbx 格式和 obj 格式的大致区别: fbx 中包含动画、材质特性、贴图、骨骼动画、灯光、摄像机等信息0B]中不包含动画、材质特性、贴图路径、动力学、粒子等信息。 abc 格式: 中文名称:蒸馏机 支持动画、粒子等!bake 三维场景的模型、流体、动画、特效等数据。

传统文件格式的导入:

导入 fbx

emmm 感觉一个比较有用的是 合并网格体,其它随意。

戴珍珠耳环的少女

试了下导入之前建的模型,眼睛应该是建模的时候没设好材质……其它 OK。

【基础】05-2 课:Datasmith 插件使用全流程

给 3ds Max、C4D 安装这个插件,这样导出文件的时候就会多一个 Datasmith 文件格式的选项,这样一些材质参数就能够被虚幻引擎所识别。

4.24 的 datasmith 插件是内置到虚幻引擎中了 但是 4.24 以下的版本并没有 需要在虚幻商城中搜索 datasmith 然后选择 unreal datasmith 插件安装到对应的版本中即可~

【基础】06-1 课:BSP 画刷的概述和使用方法

什么是 BSP(画刷)?

  1. BSP (Binary Space Partitioning(二进制空间分区)) 在虚幻引擎 4 中有很多不同的方法可以创建、编辑场景中的几何体。通常意义下,相对于直接创建几何体而言,使用静态网格体是比较好的做法(性能上较优秀)。同时,由于静态网格体要求在引擎外部的 3D 建模软件中创建,因此可以使用引擎的几何体编辑工具快速的为游戏原型来搭建场景。

    所以就有了 BSP(画刷)工具,能够帮助你们在虚幻引擎快速的搭建一些基本的模型!

  2. 另外一个解读 BSP 画刷是虚幻的关卡构建中最为基本的工具。从理论上说,最好将 BSP 想象为可以在关卡中进行填充并切除空间体积的东西。很久之前,BSP 被用来作为关卡设计中的主要构建模块。但是现在,这个角色由静态网格物体来承担,相较而言,静态网格物体远为高效,不过,作为关卡和物体的快速原型化产品的前期应用:以及对于那些无法使用 3D 建模工具而需要进行关卡构建的人来说,BSP 依然很有用。

就是用虚幻引擎实现一些简单的建模功能。

BSP 画刷的用途

  1. 粗略画出关卡

    开发关卡的标准工作流程是这样的:

    • 设计出关卡草图及关卡路径。
    • 运行关卡测试流程和游戏性。
    • 修改布局并反复测试。
    • 起始的网格物体环节。
    • 起始的光照环节。
    • 对碰撞及性能问题的游戏测试。
    • 润色。
  2. 简单过滤器几何体

    通常,在关卡设计师制作他们的关卡过程中,他们会突然想出一个情形,其中他们需要一个非常简单的一块几何体来填充空隙或空问。如果没有静态网格物体填充空间,不需要麻烦美术组负责创建一个自定义网格物体,设计师只需使用 BSP 就可以填充这个空问。尽管静态网格物体在性能方面更好,但是只要几何体简单,就可在不造成任何严重影响的情况下可以偶尔使用 BSP。

BSP 画刷工具的使用

BSP 模式

感觉要比 Unity 里的要更高级一点……

选择多个面

细节面板里可以选择多个面,把材质拖上去以应用材质。

【基础】06-2 课:房子搭建全流程

内容浏览器下新建一个关卡,一片漆黑……往场景添加:定向光源、天空光照、天空大气、体积云、指数级高度雾。

新建关卡

内容浏览器下 添加功能或内容包…,导入 第三人称游戏 素材包。

导入人物

内容/ThirdPersonBP/Blueprints/ThirdPersonCharacter.uasset 拖入场景, 细节中搜索 poss,将 Pawn 下的 自动控制玩家 设为 玩家0,此时运行关卡就会以第三人称小人的形式。

设置玩家控制权 创建立方体

使用 BSP 创建立方体作房屋主体,注意是在几何体里而不是基础里。

Brush Settings 设置好对应的 XYZ(而不是缩放,这会导致材质问题)。

设置好 中空墙壁厚度

中空的门

设置一个 Subtractive 类型的立方体作门,如果把地面也挖了,在地面的 Brush Settings 设置好排序。

楼梯

挖楼梯。

内饰

内容/StarterContent/ 里选取对应的素材,一阵操作。

内饰

玻璃房里可以添加 球体反射采集,增加真实性。

打包

将所有的 BSP 画出来的东西打包成一个静态网络体。

【基础】06-3 课:静态网格模型碰撞设置

设置碰撞体

双击某个静态网络体,可以设置碰撞器(类似 Untiy 的 Mesh Colider?)

设置碰撞体

这个椅子可以从细节面板的 静态网络体 里设置碰撞。

设置碰撞体

此法设置碰撞体类似于 Unity 里的 Box Colider。

【基础】06-4 课:合并 Actor(合并静态网格体)

合并静态网络体

世界大纲中选择想要的合并的静态网格体,窗口 - 开发者工具 - 合并Actor

【基础】07-1 课:地形工具的使用

创建地形

模式下 管理,设置好参数,建立地形。

雕刻 类似 Unity,制造坑坑洼洼。

绘制 类似 Unity,给地形上材质。

编辑样条

编辑样条 在地形上创建样条线。

编辑样条

Ctrl + 左键 添加控制点。

创建地形

Landscape Spline 选择 分段 以选择所有样条线,Landscape Spline Meshes 中选择对应的网格体和材质覆盖创建一个类似马路的东东。

【基础】07-2 课:灰度图生成地形

height map - 搜索 图片 (bing.com) 整点灰度图,在 PS 中将其改成 16 位 且 颜色为 灰度pngraw 格式的图片。

灰度图

UE 中导入这个灰度图,调好参数,生成地形。

创建地形

【基础】07-3 课:植被工具的使用

使用植被工具!将想在地形中放置的对象拖入植被工具中。

植被工具

植被中有些参数值得调整:

  • Mesh 中网格体双击,添加碰撞
    • 可以手动生成简单的碰撞(立方体,胶囊体)。
    • 凸包分解,给模型增加一个凸包碰撞体,调节参数在性能与精确度之间取得平衡。
设置参数
  • Instance Settings
    • 设置 剔除距离,当摄像机里物体超过一定距离时,不渲染。
    • 碰撞预设

【基础】08 课:光照渲染、自动曝光、雾

  • UE4 里有着这么几种光源:

    • 定向光源
    • 点光源
    • 聚光源
    • 矩形光源(性能开支较大,用的比较少,如显示器屏幕)
    • 天空光照
  • 这些光源的细节里有着这么个属性:

    • 静态

      静态对象不能在游戏中修改。

      • 允许烘培的光照
      • 最快的渲染速度
    • 固定

      静止对象可在游戏中修改但无法移动,启用缓存光照法。

      • 缓存动态阴影。
    • 可移动

      可移动对象能在游戏中进行移动和修改。

      • 完全动态
      • 投射动态阴影
      • 渲染速度最慢

静态和固定移动性的区别:

  1. 渲染速度对比:静态渲染速度最快(性能开销最小)
  2. 参数修改:静态构建完修改参数,还需构建才会出效果且静态不能在游戏中修改参数
  3. 阴影:静态无法对可移动的模型产生阴影
构建光照

静态光照需要构建一波。

设置中有个自动曝光可以调整。

虚幻引擎中的自动曝光是一种功能,用于自动调整场景中的曝光水平,以确保画面亮度合适且细节丰富。在虚幻引擎中,自动曝光功能可以根据场景中的光照条件动态调整相机的曝光参数,使画面看起来更加自然和平衡。

通过自动曝光功能,虚幻引擎可以根据场景中不同区域的光照强度和对比度来动态调整曝光值,以确保整个画面的亮度范围都能得到良好的展示。这有助于避免画面出现过曝(亮部细节丢失)或欠曝(暗部细节丢失)的情况,提高视觉效果和画面质量。

总的来说,虚幻引擎中的自动曝光功能能够帮助开发者轻松地优化场景的曝光效果,使游戏画面看起来更加生动逼真。

自动曝光

指数级高度雾让场景在远处能有朦胧的效果。

【基础】09 课:实现光束和体积雾

光束

教你制作室内光束的效果。

平行光中细节 Light Shafts 调整 光束遮挡光束泛光

指数级高度雾中细节 Volumetric 打开设置 体积雾,然后调整光源中 Light体积散射强度

【基础】10 课:系统默认天空球使用

天空球

Ctrl + N 新建一个 Default 场景。

天空球

操作一下这个 Sky Sphere

  • 默认 下可以让这个天空球与平行光绑定
  • 然后就是操作颜色啊巴拉巴拉……

【基础】11 课:获得角色控制权的两种方法

把场景之前的小人给我删了。

窗口 - 世界场景设置,修改 Game ModeThirdPersonGameMode,然后在某个地方创建玩家出生点。

这个 Game Mode 也可以自己设计。

设置出生点

【基础】12 课:打包游戏、游戏模式、默认关卡

项目设置

设置里打开 项目设置,设置好 Default Modes (默认游戏模式)和 Default Maps (默认地图(关卡))。

项目设置

电脑应装有 Visual Studio 的相关库才可以打包项目!