deadline基本操作和初渲常见问题培训
如何使用remote来远程渲染
1、下载以下文件包并在本机解压
2、点击软件运行
Deadline Monitor基本操作界面说明
.png)
1.Jobs过滤器
- 新打开的deadline布局(layout)可能没有左边的过滤器窗口,点击漏斗图标的按钮即可打开和关闭过滤器
.png)
- 任务(jobs)过滤器
根据状态标签过滤 常用
.png)
根据渲染池标签分类 常用
第二渲染池(secondary pool)标签意思和第一渲染池标签相同(不常用)
.png)
根据组标签分类 不常用
.png)
勾选对应的标签就会对任务展示界面显示的任务进行过滤处理,如果需要快速查找某一条任务可以在这里快速过滤。
注:出现看不到某条任务的情况时,请确认过滤器标签筛选是否正确,如果不好把握,请全部勾选Select All(选择全部)
2.远程机(workers)过滤器
一般情况不需要对工作机器进行过滤,因为机子并不多,可以直接浏览到所有机子的状态
.png)
渲染机的状态主要为上图圈出的几种,各个标签意思如下:
- Idle 空闲:该状态下的远程机属于在线状态,且随时可以执行远程任务,颜色为白色。
此时远程连接渲染机,deadline worker软件运行界面如下
.png)
- Offline 离线:该状态下的远程机属于被人关闭worker的状态,不会执行远程任务,颜色为灰色。
当有人远程连接渲染机,并且x掉了deadline worker,就会进入离线状态
.png)
如要恢复在线,再次打开deadline worker软件即可
.png)
- Rendering正在渲染:该状态下远程机正在执行远程任务,在完成正在执行的任务前不会接取新的远程任务,颜色为绿色。
此时远程连接渲染机,deadline worker软件运行界面如下
.png)
- Stalled终止:该状态下的远程机完全关闭了deadline软件,不会执行远程任务,颜色为红色。
此时的远程机一般是死机了,或者是重启之后还未打开deadline worker,需要远程连接确认是哪种情况。
死机找运维重启,重启之后如果deadline worker未启动则需要手动打开软件
(TO也需要一并打开并登录,不然远程任务会因为to掉线哐哐爆红)
有时候远程机死机时可能正在执行任务,是rendering状态,但是rendering时间已经持续好几个小时,这个时候除了任务卡住也可能是死机了
- Disabled禁用:该状态的远程机被管理员禁用,不会执行远程任务,颜色为黄色。
该状态一般是管理员(比如TD)操作导致的,禁用机子的原因可能是机子本身有问题需要调整。调整之后会解禁(忙起来也可能忘)
.png)
注:颜色只是用于快速区分状态,建议养成看英文状态标签的习惯
3.开启管理员权限
.png)
.png)
成功开启之后可以在软件右下角看到
.png)
开启管理员权限后可以进行禁用解禁远程woker、查看修改任务属性等操作
4.任务(Job)
需要打开管理员权限
在选择的任务上鼠标右键单击,会弹出如下的菜单,可以对任务进行状态的调整,比如重跑,删除等操作
.png)
- 任务名称,任务名称由前缀+中间部分+后缀组成
a) 前缀,代表任务性质
ASSEMBLE:组装任务:
.png)
PUBLISH:发布任务:
.png)
Review_: 预渲染任务:
.png)
Render_render_:镜头灯光远程渲染任务:
.png)
b) 中间,展示项目信息和资产code或者镜头号
.png)
.png)
c) 后缀,标注任务工序信息
model 模型:
.png)
tex 贴图:
.png)
hair 毛发:
.png)
engine_material_set 引擎材质:
.png)
asset_rig_maya maya绑定:
.png)
engine_cloth_set 引擎设置:
.png)
hair_solution_front 毛发解算:
.png)
cloth_solution 布料解算:
.png)
shot_animation 镜头动画:
.png)
shot_light 镜头灯光:
.png)
shot_efx 镜头特效:
.png)
engine_render 引擎渲染:
.png)
注:Review_: 预渲染任务 Render_render_:镜头灯光远程渲染任务没有后缀
- Job Properties(任务属性面板)
双击选中的任务或者右键单击再选择Modify Job Properties,会弹出任务属性面板
.png)
a) General(基本设置)
大体了解一下上图圈出的几个属性即可,这些比较常用。
Pool和Secondary Pool、Group:对应的就是之前讲到的过滤器的标签,过滤器是根据这些标签对展示任务进行筛选的,方便快速定位到某一类的任务清单。具体含义不再赘述了。
Priorities 优先级:此条任务的执行优先顺序,数值越大优先级越高,如果有空闲渲染机,将会优先执行优先级高的任务
b) Timeouts(超时时间)
.png)
远程任务有时候会因为某些原因比如报错卡住、引擎崩溃报错弹窗等等,导致无法顺利完成或者终止。
在这种情况下,渲染机将会被永远占用,导致后续的排队任务没有机子执行。
为了避免这种情况,可以设置最大渲染时间(超时时间),当时间超过此设定值,这条任务就算没有完成也会被强制终止退出,把渲染机空出来去执行排队的任务。
目前只有提交的渲染任务(预渲染、灯光渲染)会自动设置1h30mins的超时时间,其他类型任务均没有设置此值
c) Machine Limit(指定任务机器)
.png)
有时候要测试或者因为机子硬件差异,想要指定某些任务只在某些机子上运行(优先根据Pool标签划分,在这之后再次指定此Pool下的某一两个远程机)。
可以使用机器白名单来指认特定渲染机。
注意一定要勾选Whitelist(白名单)不然会变成(黑名单)禁用,永远不会在指定的机子上运行。
- 任务状态信息
.png)
任务清单窗口最上方是每个任务的基本任务信息,比如名称、提交任务的用户、报错次数、任务状态、提交时间、开始时间、结束时间等等。
点击某一列的表头名称可以将任务按着此列排序。
Status(任务状态):
Queued(排队中):任务在排队,当前没有可用的渲染机执行任务,一旦有渲染机空闲出来便会被安排执行。
颜色白色、粉红色(运行失败过的任务再次被重提requeue之后排队时的颜色)
.png)
.png)
Rendering(正在渲染):任务正在被执行。颜色绿色、黄绿色(失败过的任务重跑后正在被执行的颜色)
.png)
.png)
Completed(已完成):任务已经完成且成功。颜色蓝色
.png)
Failed(失败):任务运行报错失败。颜色红色
.png)
注:颜色只是用于快速区分状态,建议养成看英文状态标签的习惯
5.日志
.png)
任务清单面板右边还有一个窗口,显示最近一次执行此任务的worker和一些状态信息,双击此条会弹出Report(日志报告面板)
.png)
日志详细报告的内容只看图中开头几行一般是无法判断具体错误产生原因的,需要详细查看日志后面的内容,推断错误原因。
这里通过阅读日志判断错误产生原因的难度对初学者来说是比较大的。
因此我在这里会列举一些经常出现的、比较典型的错误,如果没有出现归类在此的问题,可以找TD解决。
- 远程渲染机的TO掉线
.png)
点开日志,向下划几下,如果看到如上图所示的tm ERROR,由于目标计算机积极拒绝,无法连接等字样,是远程渲染机的TO掉线或者没有打开。
这个时候远程进生成这条任务日志的那个渲染机如图为12号渲染机,把TO打开登录好,然后重提任务即可(鼠标右键单击该任务,点击【Resume Failed Jobs】)
- 组装和发布任务报错定位
在日志报告界面,快捷键ctrl+F可以呼出搜索框,搜索pyblish,然后点击Find Next找到最后一条
a. 如果是pyblish.publish.success,则代表任务执行成功
.png)
如果是pyblish.publish.fail,则任务执行失败,一般失败报错紧跟在后面,可以截图发给TD
.png)
由于Deadline目前对UE5版本以上的引擎支撑不到位等等原因,这类组装和发布任务的完成状态或者失败状态有时不代表最终的运行结果,及有的任务爆红但是日志存在pyblish.publish.success便代表运行成功,有的任务是蓝色完成状态但是日志存在pyblish.publish.fail则实际还是失败的。
b. 那么如果搜索pyblish最后找不到pyblish.publish.success或者pyblish.publish.fail,就将日志拖到最后
如果存在如下两种日志
.png)
.png)
hr failed at E:/UnrealEngineBuildCode/Engine/Source/Runtime/D3D12RHI/Private/D3D12Resources.cpp:440
出现类似D3D报错字样为引擎GPU崩溃错误,及渲染机显存爆了渲染失败,重跑即可【Resume Failed Jobs】
c. 有关最近镜头灯光和镜头特效远程组装任务显示成功但是scm没有文件的情况说明
由于运维修改了scm存储逻辑为分布式存储,因此需要每个项目在每集(EP)的标准目录下面提前手动上传xlink.lock,如果在日志里面看到找不到路径 /Content/shenyinwangzuo/shot/EP114/xlink.lock,代表scm现在缺少这个文件,需要找运维或者专人在scm提前准备好,再重跑任务
.png)
6.重跑任务【Resume Failed Jobs】
此时即可重跑失败的任务,点击重跑失败的任务后会出现如下弹窗,直接点击ok
.png)
此时该任务的颜色会变成淡粉色、status变为queued,该任务即成功重跑
.png)
7.服务器账号密码
Deadline 维护说明
1、检查服务器TO是否开启自动发布
长沙deadline服务器ip地址为:10.168.30.11 密码见服务器机器及密码文档
远程连接进去,查看TO是否登录,自动发布是否是开启状态
.png)
2、检查执行任务的渲染机TO是否全部登录、deadlineworker(小锤子) 是否开启
3、检查P盘连接是否正常
.png)
4、检查C盘、E盘磁盘空间是否充裕,出现爆红则需要定期清理以保证远程任务正常执行。
清理方法:C盘清理:删除C:\Users\Administrator\AppData\Local\UnrealEngine下的引擎缓存文件
E盘清理:重新配置E盘项目的scm工作区 详见scm操作说明文档
.png)
Deadline任务数据定期归档操作说明
deadline上的每一条任务都会被加载到数据库内,并在软件开启时加载到内存。
一个月内deadline大概会新增40000条任务记录,因此会对内存消耗越来越大,导致软件的卡顿
因此需要每月对上个月的累积任务进行归档,一下为归档操作:
.png)
deadline会对选择的任务进行归档操作,然后删除数据库中的记录。
归档后的文件会变成zip文件存在服务器机子的DeadlineRepository10的jobsArchived目录下
.png)
.png)
归档操作本身也可逆,可以如下还原被归档的任务数据
.png)
预渲染(初渲)常见问题查验指南
注:
1 由于当前版本Deadline对UE5以上引擎支持不完全的原因(推测),预渲染的任务无论成功与否均是爆红状态,任务是否成功根据P盘预渲染标准输出路径下是否有和当前任务执行时间匹配的视频生成!
2 由于全面爆红的原因,导致原本设定的预渲染任务完成后清理组装临时镜头定序器关卡文件的脚本无法运行,因此需要人为手动远程进渲染机进行定期清理,不然反复重提爆红镜头不会重新组装,依然会使用之前的问题定序器和关卡进行渲染,导致暴露的问题依然存在,不会被更新修复。
.png)
我在每个预渲染远程渲染机的桌面都放了这个脚本,双击运行一下即可清理旧的临时组装文件,使用前请先停掉正在执行的渲染任务。
1.最常见爆红问题,引擎GPU崩溃
这个时候如果远程渲染机可以看到如下几种弹窗,均为渲染机硬件不足导致的,一般发生在89、91、92、94、95渲染机上。有时候一个镜头关联太多的资产、关卡场景更大更复杂也经常会出现渲染崩溃。
.png)
.png)
.png)
这个时候可以先把任务指定到93、80、81、82上面重跑,看看是否还有爆红问题
此类问题除了会导致p盘没有输出视频外还可能出现,有视频存在但是大小0k,或者有视频存在但是大小较小打开的话时相机模糊的情况。均提到93、80、81、82上面重跑可以解决部分问题。
2.如果在93、80、81、82上面反复重跑依然无法正常输出视频,并且排除TO掉线等情况后。就需要查看日志、分析问题、精准定位。
首先,远程预渲染任务分为三个阶段:拉取scm资产、组装、渲染
因此需要先分辨是哪个阶段出了问题。
a. 拉取scm资产阶段
一般此阶段出现的问题可能为:scm服务器连不上、to掉线连不上、to未查到上游关联资产信息导致无资产拉取而直接跳过此阶段进入组装阶段或渲染阶段然后组装、渲染报错。
判断这个阶段出问题比较简单,看任务的执行时间即可,一条预渲染任务执行时间一般快的要几分钟,慢的要一个多小时,如果看执行时间为几十秒,一般就是在scm拉取资产阶段出了问题。
b. 组装阶段
组装阶段开始前会有一条固定日志,ctrl+F调出搜索框搜索assemble cmd,如果能找到匹配记录则代表渲染任务已经运行到组装阶段了,拉取阶段应该没有大问题。
一般此阶段出现的问题主要为:关联资产(角色、道具)引擎设置没有发布或发布文件有问题或scm缺少绑定蓝图文件、镜头动画发布的abc、fbx有问题等,具体原因需要进一步判断。
此阶段出现问题,通过手动组装可以比较精准的定位到问题位置
c. 渲染阶段
渲染阶段开始前会有一条固定日志,ctrl+F调出搜索框搜索render cmd,如果能找到匹配记录则代表渲染任务已经运行到渲染阶段了,前两个阶段应该没有大问题。 一般此阶段出现的问题主要为:引擎渲染爆GPU显存崩溃、镜头关卡内一些问题资产导致远程渲染无法正常执行等
并且此阶段出现问题时会表现为p盘没有对应视频生成、或者生成视频文件为0k,或者视频文件已损坏打不开
d. 渲染机本身配置问题
● 渲染机的ue引擎变更集太老,没有更新为引擎研发那边修复过某些bug的版本,有时候会影响某些镜头的渲染
● 渲染机根本没有安装对应版本的ue引擎,deadline无法启动相应引擎执行渲染任务导致任务失败
● 渲染机自身的问题比如C盘空间不足,也无法正常打开引擎,需要清理c盘的临时日志文件
● TO没有更新,有时候to dcc修复的一些bug没有及时更新导致渲染任务报错
● P盘空间不足,P盘空间不足会使得渲染视频无法存储。
● P盘权限不足,有时候因为运维调整或是其他不知名原因导致P盘项目权限没了,找运维解决
● 输出视频文件本身已经存在,但是有人正在打开观看。这个时候如果渲染机正在渲染同一个视频理论上将会因为文件占用无法正常输出。
注:判断上述组装和渲染两个阶段部分问题的通用方法,前台手渲+后台渲染对比。不过此方法并不能百分百排查出所有问题。
3.手渲教程
a. 先找一台有该项目全部引擎资产的机子,启动引擎打开项目,如下图手动组装。(如果是因为上游资产工序问题导致的,这一步会出现报错提示。)
.png)
b. 使用参考关卡工具将镜头关联的关卡组装进来
.png)
c. 选中相机,修改相机的聚焦方法为禁用模式
.png)
d. 给角色打光,使用打光工具点击创建人物灯光
.png)
e. 双击打开定序器
.png)
f. 前台后台渲染 .png)
4.远程渲染任务成功生成视频,但是视频效果不对的常见问题及解决经验
a. 关卡问题
● 渲染视频背景漆黑(关联关卡失败、有关卡但是没有关卡灯光)
.png)
无关卡问题目前有如下几个常见原因
- 关联关卡的关卡氛围工序没有完成,p盘发布的xml文件不是关卡氛围工序的
解决办法:让关卡发布
.png)
- 关卡氛围完成,p盘有xml文件,但是xml文件不正确
粗略看发布文件是否正确,首先查看xml文件大小,xml文件里记录了这个关卡所有引用信息,一般不会很小。
如果xml文件大小是2k则说明完全没有记录正确的引用信息。
解决办法:让关卡重新发布(先提交审核再发布新版本)
.png)
- 缺少灯光
没有上述两种制作问题存在,则手动组装镜头并关联关卡之后,可以发现关卡成功组装进去,但是缺少灯光导致渲染的时候看不见关卡。
这个时候要先打开关联关卡的主关卡文件,看看效果是否本身就不对,效果本身不对则关卡制作本身有问题,让关卡返修之后重新提交审核、发布
上述均无问题则检查看看原关卡文件关联的子关卡有哪些,对比镜头组装出来的关卡关联的关卡有哪些,是否有疏漏。
点关卡和子关卡命名是否符合标准规范、或放置位置是否符合标准规范
.png)
.png)
- 关卡和子关卡命名不符合标准规范、或放置位置不符合标准规范
主关卡的命名时关卡code + _level_engine_EngineComp.umap后缀
子关卡命名为关卡code + level_engine_child + A/B/C/Light.umap等等
主关卡和子关卡必须放在关卡标准路径level_engine层级下面
下图就是错误示范,镜头组装此关卡时会因为子关卡命名错误导致无法组装子关卡,最终效果就是1关卡没打光2关卡残缺丢模型。
此类问题均让关卡返修、改正之后重新提交审核+发布
.png)
- 因为引用的一些问题资产导致渲染视频没有光
此类问题不好排查,需要找引擎研发协助。
简单排查则是通过前台手渲+后台渲染对比。
手渲一遍,看看渲染效果是否正确。再通过后台渲染,对比看效果是否正确。
一般前台渲染如果没有问题、后台渲染有问题,基本可以锁定这个方向、然后找引擎研发协助排查。
● 缺材质、丢失模型
关卡命名不规范导致的,见渲染视频背景漆黑的第4)点
关卡制作人不根据流程打返修重新发布,而是直接修改完上传更新scm
这类问题是经常发生的,因为关卡就算不打返修,也可以直接通过将更改后的最新文件通过更新scm给到灯光特效使用。但是这样会影响到预渲染的效果。
为什么关卡不返修,直接将修改更新给scm,就可以给到灯光?
因为灯光特效也是直接从scm更新资产,他们电脑本地都有scm的全部资产,每天早上他们都会手动更新来完成这些修改的文件的同步。
但是,预渲染机子上在渲染前是没有任何引擎资产文件的,因为如果每个项目都拉取几个T文件到远程渲染机,那么远程渲染机的E盘会直接爆掉。
所以预渲染机子会在组装渲染开始前,根据今天关联的关卡还有角色道具的发布文件内记录的引用信息进行资产拉取。这就产生了离线的时间差。关卡在上次发布的时候引用的是资产A,并被记录在发布文件里面,这个时候预渲染机子会拉取A,但是如果现在关卡将引用改为了B,预渲染机子因为不知道要拉取B所以缺少了B,那么结果就是丢失了B(模型或材质)
排查此类问题,可以通过对比发布文件生成时间,和scm上面对应关卡文件更新时间来判断
如果两个时间点相隔有一段时间,比如几天,就存在这个问题
.png)
- missing bUsedWithNanite=True! Default Material will be used in game
手动组装镜头关卡后,打开关卡有时候会在消息窗口弹出警告,大致为某某uasset丢失bUsedWithNanite标签,可能会影响离线渲染。
丢失bUsedWithNanite只会影响远程和后台渲染,前台手渲是没有问题的。
发生原因是因为使用nanite的引擎资产是从其他项目其他版本引擎迁出过来,需要在当前项目里面重新打开再保存一次。
因为涉及的资产文件或许比较多+没有人去处理这个事情,导致自从ue使用5.1以上引擎以来一直影响远程渲染效果的问题。
临时解决办法:手渲
.png)
b. 角色、道具问题
● 丢失材质
.png)
类似于关卡不返修直接更新scm的操作。引擎材质工序也经常发生此类事情,导致引擎设置阶段的发布文件是老的。
遇到此类问题虽然起因是因为引擎材质不规范操作,但是处理方法让引擎设置重新提交审核和发布即可。(只需要保证镜头的上游引擎设置的发布文件是最新的即可)
● 丢失角色、道具
这类问题的通用排查方法就是手动组装一次
.png)
.png)
如果是因为引擎设置工序没有完成(未发布、scm缺少绑定蓝图、骨骼网格体),或者外包的文件没有及时同步到scm导致缺少绑定蓝图、骨骼网格体,组装时会报错。
这种情况也会导致远程渲染任务爆红并且没有视频输出
动画fbx小数帧问题 也会导致动画fbx导入ue生成动画序列这一步报错,最终会使得角色没有动画,无法正确组装,但是可以渲染出视频,视频内会丢失对应角色或者道具(暂时没图)。
手动将fbx拖入ue导入的话会有弹窗提示这一类问题。
动画fbx从第0帧开始每一帧都k了。之前动画发布代码问题导致角色动画从第0帧开始导入,最后在相机动画帧范围内角色动画根本没有跑到真正有动画的部分而是留在原位置不动,最后相机内可能就看不到角色,渲染视频内就是角色丢失的效果。
● 角色身上有奇怪的材质纹路
.png)
这类拉伸一般是因为关卡内的贴花效果,被贴到了角色身上,需要生产检查角色actor的属性设置。
● 角色身上缺少打光(打光只给角色打,道具不会有打光)
.png)
之前因为角色头骨不同项目不同导致有时候角色打光绑不上去,4月29号已经上线了最新打光逻辑,如果再出现类似问题可能是绑定的头骨命名出了问题。或者是执行该任务的渲染机TO未更新。
● 渲染动画效果与拍屏不符
这类问题大体分几个方向1.动画发布的fbx有问题2.角色、道具的绑定有问题3.动画fbx本身没问题但是导入引擎时出了问题
普遍检查方法是要先检查动画fbx是否有问题,再反复手动将fbx导入引擎检查这一步是否有问题。
如下这个例子是有问题的fbx导入时消息日志上的警告
.png)
手动导入fbx还可以选择同时导入动画fbx的骨骼,来判断是否是绑定引擎材质阶段的绑定蓝图骨骼网格图和动画导出fbx的骨骼不相符。
