文章内容来自虚幻官方学习平台教程,内容仅供个人学习使用。

教程链接:

https://learn.unrealengine.com/course/

正文:

目录结构:

  • 1、初始虚幻引擎
  • 2、理解项目和文件结构
  • 3、构建更完善的工作流

一、初始虚幻引擎

基础讲解(略)

1 、如何将其他项目的资产,迁移到我们的项目中:

首先在世界大纲中找到它,然后在细节面板中可以看到,比如它是一个静态网格体,还有一些材质。在静态网格体旁边的放大镜,可以帮助我们转到这个资产。

然后右击资产---资产操作(Asset Actions)----迁移Migrate。

然后选择对应项目的内容文件夹下。

或者直接将关卡迁移。

问题:

使用模板开始建立项目有哪些好处? "项目模板”可快速启动不同类型的项目

在你创建项目之后,你想要给它添加其它模板的资产,你要怎么做?使用“添加/导入”按钮下的“添加内容或功能包”

2、调整Learning Kit 光照

SkyLight像是黑暗中的光亮,它是环境光,是阴影中的光亮,是物体中背后的光亮。

3、Light Mobility

这个会决定光源在场景中的使用方式,

“Movable可移动”的意思指的是完全动态,一切都有阴影,一切都是实时照亮的,它会占用大量的运算,因为每一帧都要计算所有东西的信息。

可移动灯光设置为使用整个场景动态阴影投射阴影,这具有显着的性能成本。性能成本主要来自受光影响的网格数以及这些网格的三角形数。这意味着具有大半径的投射阴影的可移动灯的成本将比具有小半径的可移动灯高出许多倍[1]。

“Static静态”,静态灯光是在运行时无法以任何方式更改或移动的灯光。它们仅在光照贴图中计算,一旦处理,就不会对性能产生进一步影响。可移动物体不能与静态光集成,因此静态光的用处是有限的。

当提示你需要重新构建光照,可以到这里:

固定灯是旨在保持在一个位置的灯,但能够以其他方式改变,例如它们的亮度和颜色。这是它们与静态光不同的主要方式,静态光在游戏过程中不能以任何方式改变。但是,应该注意的是,运行时对亮度的更改仅影响直接照明。间接(反弹)光照,因为它是由 Lightmass 预先计算的,不会改变[2]。

蓝图

蓝图是一种集合,他可能是网格体,可以包含逻辑,也可能是其他。蓝图是复用的绝佳方法

二、理解项目和文件结构

.upproject 是一种文本文件,包含了项目和引擎交互的基本设置。

DCC(派生数据缓存),就是以引擎及目标平台所用的资源格式,来保存的各版本的资源缓存。DCC加快了启动时间,允许我们更快的加载项目。

根据项目和系统的配置方式,可以存在多个DDC缓存(按照快慢顺序)。在评估派生数据时,你的系统将执行以下操作来确定访问速度:

  1. 当需要某条派生数据时,将首先检查最快的缓存,然后检查速度次之的缓存,依此类推,直到找到数据为止。

  2. 找到数据后,会将其复制到最快的本地缓存中,以便下次更快地访问。

  3. 如果未找到数据,则将首先生成数据,然后将其异步复制到缓存中,以便供你(甚至可能是你的团队)将来使用。

存储在DDC中的内容允许使用后即丢弃,因为它可以随时使用保存在.uasset文件中的数据重新生成。通过将这些派生格式存储在外部,我们可以轻松地添加或更改引擎使用的格式,而不需要修改源资产文件。

1 当您将项目移动到一个虚幻引擎的新预览版本时,您收到一条消息,提示插件不受支持。如何绕过此问题并启动您的项目?

从.uproject文件中移除插件。

2.您有一个大规模团队,并且希望加速资源的共享。您可以做些什么来帮助共享美术资源?

与团队成员共享衍生数据缓存。

三、构建更完善的工作流 

目录:

  1. Working with others
  2. Building Better 3D meshes&Textures
  3. Creating Materials & Materials Instances
  4. Performance & Optimization

1、Working with others

与他人合作的最佳方式是使用某种源代码控制软件,如 Perforce 或 SVN。这些程序允许你在同一个项目中与许多其他人一起工作,而不必担心覆盖其他人的工作。

图中的两个软件都可以完成以下三个任务:

  • Sync Data(同步数据)
  • Add / Remove Data
  • Revert Data(回复数据)

当虚幻启动时,源代码管理默认情况下会被禁用,可以通过Source Control按钮来设置:

输入服务器地址,用户名和工作区,如有必要,还有你的host地址和密码。

 项目迭代:

  • 在开发虚幻4项目的时候,应该确保只将最终资源导入UE4
  • 重新导入时确保覆盖现有文件
  • 不要导入不同的版本,如 MyMesh_1 MyMesh_2 等。(这会导致文件冗余和混淆,其次会占用空间)

如果你没有要使用的源代码控制,请考虑以下事项:

  • 制定计划并坚持下去:划分项目的管辖范围,确保各个范围的负责人都将资源更新至最新等
  • 分配所有权区域:一名专人负责项目的一个领域
  • 使用 Dropbox 或 Google Drive:设置 UE4 以收听人们将向其添加内容的文件夹

2 Building Better 3D meshes&Textures

Naming Conventions(命名规范):

良好的命名规范,会在最开始花费1h时间,但是最终会为你节省数小时的工作。

  • SM_Rock_00 – Static Mesh for a Rock version 00
  • T_Rock_00_BC – Base Color Texture for a Rock version 00
  • SKM_RockBunch_00 – Skeletal Mesh for Rocks version 00(骨骼网格体)

遵循良好的命名规则,能让你快速熟悉任何管线,并提取你需要的信息

Texture Creation

  • 导入的纹理应始终为 2 的幂:2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096 & 8192
  • Textures do not have to be square, just use a power of 2.:6x128 or 2048 x1024 or 2 x 4096 or 2048x64

拥有 2 的幂的纹理意味着它们可以更有效地打包到内存中。

You can import Non – Power of 2 Textures,但你会失去所有性能优势和优化,例如:

  • 没有Texture Streaming
  • 没有Mip Mapping
  • Non – Power of 2 Textures Will be Full Resolution at all times(没有多级渐进纹理,不能通过调整LOD Bias来查看纹理变化。)

Alpha Information:

处理Alpha 信息的纹理的两种方法。Embed Alpha和Separate Alpha。

<1> Embed Alpha –Alpha 信息与纹理一起存储。
带有嵌入式 Alpha 的 1024 x 1024 纹理使用大约 1.33 MB 的内存。
UE4 Embed Alpha Cost = Base Color + Alpha in Alpha Channel = 341 KB 大小
<2> 单独的 Alpha –Alpha 信息存储为单独的纹理。
没有嵌入 Alpha 的 1024 x 1024 纹理使用大约 682 KB 的内存。
UE4 单独 Alpha 成本 = 基色 + Alpha 纹理 = 256 KB 大小

选择的方法取决于你的项目需求。作者倾向于使用分离 Alpha,因为它允许你独立于其他纹理来减小 Alpha 的大小。

我们举个例子

假设你发现项目运行速度很慢,你希望降低所有alpha贴图的大小。如果使用的是嵌入式alpha,然后我们修改LOD Bias至5,它确实降低了大小,但是底色也变得完全模糊了,我们的视觉效果变差了。

但是当我们打开单独的alpha,然后将Lod Bias设置为5,和前面的相比,我们底色,完全不受影响

RGB Mask Packing:

这是一种降低项目整体纹理数量以及内存占用量的一种方法。它的工作原理是在纹理的红色、绿色、蓝色和有时是 Alpha 通道中存储不同的纹理。然后在材质内部,可以将 RGB 打包纹理添加到材质图表,并从 RGB 或 A 引脚中拉出以在您的材质中使用该通道信息。

这类技巧经常被用于特效(VFX),或者细节非常丰富的表面以及某类角色模型

我们看一个RGB Mask Packing的例子:

我们在PS中分别查看红绿蓝通道,可以看到每个通道都使用不同的图像,alpha通道同样有一张图像:

如果我们在虚幻中打开这个样例材质,可以看到下面的结果:

当使用这类技巧时,我们只能从每个通道获得黑白信息,我们需要把结果于某种颜色参数相乘,才能获得彩色信息。

另一点需要注意的是,在Texture属性中,我们要保证sRGB要被禁用。且当你用于材质时,需要保证Sampler Type被设置为 “Mask”

Saving Textures:

  • PNG – Embed Alpha Support
  • PSD -  Embed Alpha Support
  • TGA -  Embed Alpha Support
  • BMP
  • FLOAT
  • PCX
  • IPG
  • EXR
  • DDS – Cubemap Texture(32 Bits/Channel 8.8.8.8 ARGB 32 bpp, unsigned)
  • HDR – Cubemap Texture (LongLat Unwrap)(将HDR立方体贴图导入UE4用于光照时,纹理长宽不必是2的幂,然而HDR是唯一不需要遵循此规定的格式)

Mip Mapping(多级渐进纹理):

MIP 贴图是纹理的细节层次。纹理被导入到UE4以后就会生成多级渐进纹理,如下图:

mip-map 链由样本图像的多个级别组成,每个级别的分辨率都是之前级别的一半。我们这样做的原因是,假设纹理在屏幕上只占了100或200个像素点,或者离玩家100米或200米远。我们没必要显示纹理的完整分辨率。

你可以不显示所有细节,但是代价是,如果不以完整分辨率显示纹理,你必须使用更多的内存来保存这些纹理。大多数情况下,我们会看到 2 或 3 MIP。第一个 MIP 仅在相机非常靠近纹理时才真正显示。

最后在“多级渐进纹理生成设置”下,有FromTextureGroup,下面的选项中有各种参数,这些可以帮助我们调整多级渐进纹理的生成方式。

  • 简单平均:使用 2x2 内核大小
  • 锐化:除了 4x4 高斯核之外,还使用 8x8 内核和一些负权重进行锐化
  • Sharpen 0:不锐化,但仍使用质量下采样滤波器

如果你发现远处的纹理,有一些锯齿或者出现闪烁。可以通过调整这些参数(锐化程度、模糊程度)

Importing Texture:

手动拖拽或者选择导入按钮

Texture Groups:

你应该保证项目中的纹理,处于适当的纹理组中。原因在于,纹理组控制着项目中渲染纹理的大小,他们还控制着纹理的缩放程度,以及GPU会对纹理采用何种类型的纹理过渡。

在系统设置下面,有一段信息与“世界纹理组”有关。

假如你发现项目的纹理内存不够用了,你希望尝试恢复纹理内存,那么纹理组是一种很好的大规模资源实验方式,而且不会产生副作用。

Texture Compression:

你导入 UE4 的每个纹理都将以某种方式压缩,除非你明确告诉 UE4 不要压缩它。关于sRGB,sRGB 将被禁用或保持启用状态。例如,将压缩设置设置为法线贴图将禁用 sRGB,因为法线贴图不需要伽马校正。

下面是静态网格体部分,因文章大小,所以放到下一篇中

[1] Movable Lights---虚幻官方文档  https://docs.unrealengine.com/4.26/en-US/BuildingWorlds/LightingAndShadows/LightMobility/DynamicLights/

[2] Stationary Lights ---虚幻官方文档  https://docs.unrealengine.com/4.26/en-US/BuildingWorlds/LightingAndShadows/LightMobility/StationaryLights/

虚幻学习1--初识虚幻相关推荐

  1. 虚幻学习心得-一些快捷键的使用

    最新稍微学习了一下虚幻5,记录一下一些快捷键的使用 1.快速获取场景中的资源所在目录 Ctrl+B 2.快速进去蓝图界面 选中物体 Ctrl+E 3.导入模型 内容浏览器->添加->导入到 ...

  2. Nancy in .Net Core学习笔记 - 初识Nancy

    原文:Nancy in .Net Core学习笔记 - 初识Nancy 前言 去年11月份参加了青岛MVP线下活动,会上老MVP衣明志介绍了Nancy, 一直没有系统的学习一下,最近正好有空,就结合. ...

  3. Nacos学习之初识Nacos

    Nacos学习之初识Nacos 在分布式项目中既然存在Eureka这个注册中心,那么Nacos有充当什么角色?Nacos到底是个啥?他又是咋么下载安装的?本文我会将从什么是Nacos.Nacos与其他 ...

  4. PE病毒学习笔记——初识感染技术 (转自看雪学院)

    [分享]PE病毒学习笔记--初识感染技术 <script type="text/javascript"></script>   标 题: [分享]PE病毒学 ...

  5. 前端学习(初识HTML 上)——基础知识和基本标签

    前端学习之初识HTML 一.HTML基础知识 1.html定义 2.html特点 3.html标签 4.html基础结构 (1)<head></head>中的<meta& ...

  6. C++虚幻-密室逃脱学习总结(二)虚幻4文件夹结构及基本操作

    文件夹结构 打开你所下载的虚幻引擎 首先大致了解下目录结构,进入你存储的路径找到项目名文件夹下会有如下几个文件夹: 以下是官方文档中解释的目录存放内容 官方文档地址(建议保存):http://api. ...

  7. 虚幻学习3--使用Quixel创建动画【笔记】

    文章内容来自虚幻官方学习平台教程,内容仅供个人学习使用. 教程链接: https://learn.unrealengine.com/course/ 注意的是,这个项目没有Box链接.所以没办法展示过多 ...

  8. 火星人学习第一周——虚幻引擎基础应用笔记

    目录 一.导入虚幻前资产须要遵守的规范 二.3DMax 软件基础操作 三.虚幻引擎基础 虚幻资产分类 虚幻基本操作 虚幻坐标系 虚幻光 光源分类 光源的移动特性 固定光源 光照模式分类 构建光照 间接 ...

  9. 虚幻学习---项目一(场景布置)

    使用UE打造一个侦探事务所(项目内容较简单),项目涉及到的内容: 如何从头开始设置项目 如何通过头脑风暴构思场景 绘制草图以便进行比例调整和流程测试 借助第一人称模板加快开发节奏 导入导出静态网格体以 ...

最新文章

  1. 基础设施即代码:Terraform和AWS无服务器
  2. 前端各阶段资源,学得完算我输
  3. (回文串)Manacher算法
  4. centos中bash占用cpu_Docker 多种维度限制容器可用的 CPU
  5. Gradle修改缓存路径 和 Gradle修改Maven仓库地址
  6. ios开发之 -- 自动轮播图创建
  7. 反射学习系列3-反射实例应用
  8. 配置静态路由下一跳为本地出战接口和IP地址的区别
  9. 用C语言程序实现黎曼和求定积分
  10. ppt怎么无边距打印 wps_为什么用WPS的同事总是比你早下班?
  11. 黑苹果hidp显示不清楚_魔兽世界9.0:盟约指挥台不显示胜率?搞清楚机制,轻松收菜!...
  12. Android系统Audio框架介绍(一)
  13. Linux 和 Android 系统性能分析
  14. python源码剖析_Python源码剖析读后感1000字
  15. AutoCAD DWG,DXF文件导出高清图片、PDF
  16. 【程序员日记】快乐的一周嘛(第8期)(财富、快乐、技术)
  17. python创建一个列表、依次存放每个月对应的天数_python计算天数
  18. fiddler 抓包显示 ERR_TUNNEL_CONNECTION_FAILED
  19. SAS2x28扩展卡
  20. 【修色圣典】第一章 色彩、对比度和通道

热门文章

  1. 炫酷的jQuery手风琴图片和菜单插件及源码
  2. 技术分享 | OceanBase 错误日志分析
  3. 比较流行的颜色(16进制表)
  4. 用python实现困在栅栏中的凯撒解密
  5. 现代企业6S规范管理有哪些?
  6. 计算机开机后报rundll,电脑开机后,显示RUNDLL
  7. ffmpeg转换mp3的实现
  8. vue移动端项目在手机上调试
  9. java计算机毕业设计婚纱影楼服务管理源程序+mysql+系统+lw文档+远程调试
  10. Citespace做了啥?