这几天导师没有给我分配什么任务,刚好同学问到怎么去做简化Sequence导出工具,所以我就自己瞎捣鼓了一下。
工具界面做得比较简单,毕竟只是自己用Python+UE4做工具的练习。
基本界面,多选Sequence添加序列,可以选择输出格式和分辨率

也可以自定义渲染通道,需要渲染自定义深度或者是场景法线等等。

一开始同学告诉我,需求是多个Sequence自动导出渲染,一个接着一个导出就完事了,所以我就选择用编辑器蓝图来完成。

核心蓝图大概就这些
这里做的时候就会出现一个问题,UE4是不能同时多个Sequence一起渲染导出的,我认为是一个Sequence渲染会开启Game Instance,这时候主游戏线程被占用,所以会导致for循环执行是无效的,只能在RenderMovie的委托成功之后再执行其他Sequence的渲染导出。
这方面我比较不太熟,所以没有深究,但是我认为肯定是可以多线程进行渲染,提高导出速率的,这坑以后再填。
后面同学告诉我,需求增加了,需要可以自定义输出格式,比如自定义渲染通道之类的

我研究了一下午,都没搞懂怎么用蓝图操作AutomatedLevelSequenceCapture获得自定义渲染通道对象引用

C++源码这里,这个类并不是可公开用于蓝图的变量类型

可能是我对于蓝图的理解不够深吧,于是我就转战Python来解决这个问题,在Python中就很容解决了,直接获取image_capture_protocal设置里面的属性就完事了

这时候又出现Python委托又出现了问题,居然渲染完成之后没调用,由于我才刚学了Python没几天,所以对于Python并不是很熟悉,在问了同学之后才知道问题所在。
解决方案:需要定义为全局函数,这里用到了global关键字,对我的Python查漏补缺真挺好。

Python相关知识还需继续强化,如果还有时间,下次再分享经纬度定位工具。最后说一句,Houdini是真的难学。