Choose your operating system:
Windows
macOS
Linux
在 虚幻引擎4.26 和之后版本中,你可以使用 影片渲染队列(影片渲染队列) 在运行时渲染视频,并使用 蓝图 输出文件到用户的计算机。此功能有助于在特定目标硬件上渲染高质量视频。
工作流程
你可以在蓝图中使用 Movie Pipeline Queue Engine Subsystem 节点来访问影片渲染队列。
该子系统使用一个 队列(Queue) ,队列中有一系列渲染 任务(Job) 。每个任务可以包含一个或多个 镜头(Shot) ,并有自己的 配置(Configuration) 界面,显示用于渲染任务内镜头的
步骤
要在运行时渲染Sequencer视频,应用程序必须执行以下步骤:
-
创建 Movie Pipeline Queue Engine Subsystem 节点。点击输出引脚并拖出一条引线,然后创建一个 Get Queue 节点,以获得队列引用。
-
点击"Get Queue"节点上的"返回值(Return Value)"并拖动,然后调用 Allocate New Job 。上述操作将在队列中添加一个任务。
-
点击Allocate New Job节点的返回值(Return Value)并拖出一条引线,获得任务的一个引用。调用 Set Sequence ,将其配置为要播放的关卡序列的 软对象路径(soft object path) ,然后调用 Set Map ,将其配置为序列所在关卡的软对象路径。在此任务启动后,影片渲染队列将加载指定贴图,并启动指定序列。
-
再次点击Allocate New Job节点上的"返回值(Return Value)"并拖出一条引线,然后调用 Get Configuration ,以获得任务设置的引用。
-
点击Get Configuration节点上的"返回值(Return Value)"并拖出一条引线,然后调用 Find or Add Setting by Class ,以添加一个新设置。点击 In Class 输入引脚的下拉菜单,选择你想要更改的设置。 你可以点击Find or Add Setting by Class节点上的"返回值(Return Value)"并拖出一条引线,以编辑这些设置的属性。
一些影片渲染队列设置依赖于编辑器独有的功能,无法在运行时构建中使用。详见下文 限制(Limitations) 部分。
-
根据需要对每个分配的任务重复步骤2至5。
-
分配结束后,获取Movie Pipeline Queue Engine Subsystem节点的引用,然后调用 Render Queue with Executor 。将 In Executor Type 设置为 MoviePipelineInProcessExecutor 。此节点将通知执行器处理你在Movie Pipeline Queue Engine Subsystem中建立的队列,并将引用返回至执行器。
MoviePipelineInProcessExecutor是一个执行器类,专用于应用的运行时构建。其他执行器类分别用于不同情况,如在编辑器内运行期间。
-
要在执行器处理完队列后调用事件,点击Render Queue with Executor上的"返回值(Return Value)"引脚并拖出一条引线,然后调用 Bind Event to On Executor Finished Delegate 。然后便可将事件到此节点,以便在队列结束后运行此事件。
取消任务
可以从执行器中调用 Cancel Current Job 来取消执行器正在运行的任务,继续处理下一个任务。调用 Cancel All Jobs 将取消队列中的全部任务。
![](CancelingJobs.png)
自定义执行器
可以通过更改执行器的设置项来控制执行器如何处理队列。
使用 Construct Object 节点,可以手动构建执行器对于新建的执行器实例,选择 Movie Pipeline In Process Executor 作为 类(Class) ,然后将一个引用连接到 Movie Pipeline Queue Engine Subsystem 作为 外部(Outer) 。
![](ConstructExecutor.png)
你可以用此节点的"返回值(Return Value)"来编辑新建执行器的设置,或者将事件绑定到代理。操作完成后,调用Render Queue With Executor Instance而非 Render Queue With Executor ,然后把执行器连接到 In Executor 引脚。
![](ChangeExecutorSettings.png)
如果你想在当前已加载的关卡中运行一个序列而无须再次载入,把执行器的 使用当前关卡(Use Current Level) 变量值设置为 True 。此设置将确保在运行过程中保留所有已做出的更改,而不是重启关卡并从头开始。
更改调试控件
Debug调试控件(Debug Widget) 是UI控件,用于在渲染过程中显示视频预览帧。你可以通过设置执行器的 调试控件类(Debug Widget Class) 来更改调试控件。
![](SetDebugWidgetClass.png)
将此属性值设为"None"表示使用缺省调试控件。你可以通过创建一个 控件蓝图(Widget Blueprint) 来创建自己的自定义调试控件,然后将其 父类(Parent Class) 属性设置为 MovieRenderDebugWidget 。
![](MovieRenderParentClass.png)
然后你可以选择此自定义控件作为执行器的调试控件类。
![](UsingCustomDebugWidget.png)
限制
某些设置在运行时构建中不可用,因为它们依赖于编辑器特有功能。包括:
+ FinalCut Pro XML输出格式
+ Object ID渲染通道