切换深色模式
一 项目创建
1.0 版本
目前ThingUE对应的UE大版本为5.2。
1.1 制作团队
内部人员制作,推荐从始至终都用UINO发行版UE;如果是外包制作,验收人员应使用UINO发行版UE进行验收,提交服务器前,请务必确保场景已通过UINO发行版UE的验证。
上图分别为UINO发行版UE的图标与启动界面;
为避免混淆,内部人员本地下载UINO发行版UE后,可选择卸载Epic官方版本。
1.2 项目创建
创建项目时切勿勾选StarterContent,提交服务器前,需确保项目资源中没有StarterContent。
1.3 插件与工具
项目默认设置以UINO发行版UE为主,如需用到UINO发行版UE未开启的插件,需与UE开发团队进行沟通,切勿擅自开启使用。
在与UE开发团队沟通之前,请勿对该面板里的内容进行任何操作。
1.4 资源包
· UE5版本资源包已公布,在UE5项目中,禁止使用UE4版本的资源包;
· ThingUE5.0.3及后续版本,需用最新版本的资源包,否则会出现昼夜,天气等无法实现的问题;
· 最新版本的资源包将内嵌于UINO发行版UE中,后续更新将与Engine同步,无需手动迁移文件。具体请参照 资源包使用指南
建议:
1.5 环境组件
不涉及天气,昼夜等需求的项目,不需要使用UINO内部的Sky环境组件,尤其严禁将Sky环境组件拆分使用,如下图所示;
如需使用Sky环境套件,须用一整套。 在此前提下,无特殊要求的场景,用官方提供的环境组件自行搭建环境,如下图所示:
二 基础事项
2.1 启用Nanite
· 除需用到半透明材质的模型外,其他所有模型都需要开启Nanite,开启方式包括文件夹目录批量操作与单文件独立操作:
· 如果项目包含SM5版本,需保证FallBackTrianglePercent为100;
· FallbackRelativeError可理解为Nanite优化力度,0为完全不优化,1为正常优化。
2.2 模型数量
场景打包前,检查大纲列表的actor统计,如下图:
当actor 总数超过5000时,制作人员要警惕;
模型制作阶段,制作人员要对项目场景的体量以及制作方案,有明确的判断。
基本原则:
2.3 模型面数
基于UE5制作的场景,原则上对模型面数要求并不严格,常规场景不做要求;
部分项目如换流站,会有设备不支持Nanite的情况,即:项目设置切换到SM5后,Nanite会失效。这种情况下要对高面数的模型生成LOD进行优化处理,具体方式与规则,参考宜宾换流站。
原则上,单个模型的三角面数超过一万的都需要进行LOD制作。规则不绝对,具体是否需要进行优化,要根据模型实际复杂度进行有效判断。
2.4 模型层级
2.4.1 杜绝无用套壳
模型阶段制作要规范,不要出现无用的组套组,层套层的结构。下图所示 StaticMesh被Actor套壳即为建模阶段的不规范嵌套造成。
这种无用的嵌套结构无法进行instance合并,会影响场景的优化工作,需杜绝。
2.4.2 层级内,只放需要交互的物体
前端不操作的模型,actor等,禁止放到campus等层级内;没有标签的对象,禁止放到层级内。
2.5 模型命名
· 命名要规范,禁止出现中文,空格,以及特殊符号(~,!,@,#,$,%等);
· 建议max建模阶段就按规范命名。
2.6 灯光阴影
PointLight,SpotLight,RectLight三种灯光,除影响光影结构的少数几盏灯外,所有的灯光阴影都需要关闭;
如果无法对光影结构进行准确判断,建议统一关闭。
三 常见问题及解决方案
3.1 场景视觉模糊
3.1.1 阴影区域整体发黑
模型密集处,阴影过度发黑,如下图:
调整后处理中的SkyLightLeaking至理想效果即可:
3.1.2 模型局部发黑
该问题为LumenGI下的AO错误,如下图:
解决该问题,可以显隐的方式找到干扰模型(通常不会是发黑模型自身,从与其接触的模型入手排查),勾选TwoSideDistanceFieldGeneration后,点击应用即可:
解决后的效果如下:
注意:
3.1.3 金属反射模糊(辉光效应)
项目端出于性能考虑,部分情况下会降低渲染质量,偶尔会出现金属发射发糊的情况,如下图箭头所示部分,金属有辉光效应,边界模糊:
该问题发生于高金属度材质的同时,加了灯光。在后处理中,将反射方式从Lumen改为ScreenSpace,重调材质参数即可。
注:
3.1.4 整体不清晰
上述几种情况均已解决的前提下,思考是否为材质影响,如上图:设备颜色与地面颜色混为一谈而导致的不清晰
3.2 模型破面
常见于换流站项目,不支持SM6的设备运行结果。通常可从以下两个方面入手解决:
3.2.1 LOD问题
如果模型巨变出现于相机推拉的过程,优先考虑LOD影响
3.2.2 Nanite过度优化
如果模型本身就呈现破败,不跟随相机变化,则为Nanite过度优化所致,通过查看模型NaniteFallBackMesh可复现:
可通过阵列编辑器批量修改模型的FallbackTriPercent=100和FallbackRelativeError=0进行修复:
3.3 场景闪烁
3.3.1 纹理摩尔纹
如视频中房顶的样子:
解决该问题,建议按以下步骤进行:
· 确定目标纹理的分辨率是否为2的幂次方;
· 修改纹理mipmap设置,譬如固定为sharpen5等级别
· 调整材质中纹理的tiling次数
3.3.2 模型摩尔纹
示例:略。
解决方案:
制作lod。
3.3.3 模型重叠面
示例:略。
解决方案:
从模型层面剔除重叠面,嵌套模型等内容。
3.3.4 跳跃式阴影闪烁
表现为离散阴影区域间断式跳跃闪烁,如视频所示:
该情况由LumenGI的间接光反弹引起,禁用lumenGI即可,如视频所示:
四 禁用Lumen的场景调整方式
4.1 控制台设置
按“~”调出控制台,键入1.“r.DistanceFieldAO 0”,回车确定。
4.2 GI和Reflection
·GI方式从Lumen改为None;
·Reflection方式从Lumen改为ScreenSpace;
4.3 天光设置
· 插入合适的CubeMap以提供环境光照
· 调整CubeMap角度将亮部旋转至阴影方向
· 如果涉及室内场景,调整LowerHemisphereColor以照亮场景Z轴正方向
· 调整亮度控制全局
4.4 AO设置
完成以上步骤后,后处理中开启SSAO,调整强度,半径,及消退距离等参数。
五 验收
验收要求
参考配置
GPU | 3070 |
CPU | 11700K |
RAM | 32G |
Res | 1920*1080 |
该配置为UINO场景制作人员的基础配置,输出标准以此配置为参考。
帧率
稳定 | 60fps |
最低 | 50fps |
表中帧率为运行时帧率,输出的场景包运行时帧率,应严格按照表中标准执行。
补充:
性能优化方向
通过控制台命令来锁定性能损耗方向:
Detaied
按“~”调出控制台,键入“stat detailed”唤出如下面板:
重点关注红框圈住的三块儿内容: 如果GPU过高,通过查看GPU消耗来确定解决方案; 如果是Draws和Prim过高,严格执行本文第三部分——场景雷区,并按文中描述进行优化;
GPU
按“~”调出控制台,键入“stat gpu”唤出如下面板:
从上往下顺序查看哪些内容耗时较多,并按需减弱渲染精度以达到优化目的。GPU内容的优化,美术方面多在后处理上,通常从以下角度入手解决:
- 自发光
- 屏幕渲染倍率
- 反射
- 灯光
- AO
从GPU状态面板上,查看是否相关属性字段,按需优化。
提示:
五 场景问题常规排查逻辑
遇到打包后在ThingUE里运行与编辑器中效果不一致的问题(包括场景曝光,颜色,材质错乱,材质丢失等),按以下顺序进行排查:
- 检查UE大版本是否一致;
- 在文件夹列表中,右键Content文件夹进行FixUpRedirectors;
- 将问题关卡的内容全部复制到一个空关卡内进行查看;(注意是复制,不是另存为)
- 新建空项目工程,将content整体迁移或选择出问题的关卡迁移到新工程里打开检查;
- 打开关卡后,注意弹窗上的报错提示,按提示内容找到问题所在,按提示内容进行百度谷歌查询解决方案;
- 检查材质错乱的模型资源是否被赋予了材质,是否被赋予了与场景中不一致的材质;
- 打开丢失了纹理的材质,查看页面左上角的报错提示,按提示定位问题;
- 若是开了Nanite的模型材质丢失,检查模型是否引用了半透明,单层水等Nanite不支持的材质。
提示: