UE5中Sequencer的Niagara模拟缓存
34433 0
实名

通过了实名认证的内容创造者

发布于 2024-2-29 22:29:57

您需要 登录 才可以下载或查看,没有账号?注册

x
点击上方蓝字CG世界关注我们“ 感知技术 · 感触CG · 感受艺术 · 感悟心灵 ”中国很有影响力影视特效CG动画领域自媒体

当你发现模拟结果的算力成本过高时,缓存可以帮助你改善性能,或者锁定序列的特定效果。本指南将介绍如何创建和使用Sequencer中的Niagara缓存功能。做好准备要在Sequencer中捕捉和使用模拟缓存,需要先启用NiagaraSimCaching插件。请注意,该插件仍处于试验阶段,之后可能会有变动。Sequencer缓存要捕捉Niagara中的模拟结果,有两种不同的方法:    1.在Sequencer中插入缓存轨道,并使用录制功能    2.使用Niagara Actor作为镜头试拍录制器中的源这两种方法各有优势,下文中会详细说明。默认设置下,Niagara在Sequencer中的缓存会保存为轨道属性的一部分,不过你也可以自行创建并将其保存为独立资产。当你需要将缓存添加到版本控制,或者处理超大的缓存文件时,保存为单独资产就尤其有用。你也可以在Sequencer中通过烘焙工具或蓝图单独创建。
b2ccd828678c86fbc349c7737122bb08.png
烘焙器模拟缓存然后就可以在缓存轨道中使用这些Niagara模拟缓存资产了:
decbdd24eb77137248412d91fcde96e8.png
Sequencer轨道中的缓存资产缓存模拟时推荐使用的Sequencer工作流添加Niagara组件并附带一个生命周期轨道。在生命周期轨道上将“年龄更新模式(Age Update Mode)”设置为“所需年龄(Desired Age)”。

所需年龄更新模式录制缓存之后,它会作为单独的轨道出现在序列中。当使用缓存中的数据而不是运行系统模拟时,该缓存轨道会禁用生命周期轨道并显示状态图标。

缓存激活要重新启用生命周期轨道,并在序列中迭代效果,可以先将缓存轨道静音(即未激活)。做好修改之后,再取消缓存轨道的静音,然后重新录制。

静音轨道右键单击缓存轨道,编辑此部分可以更改一系列的属性,例如录制属性、播放速率或缓存反转。 录制缓存之后,你还可以使用“将缓存保存为资产(Save Cache to Asset)”选项,将关卡序列中的数据转移到单独的资产中。这在做版本控制时会尤为有用,因为缓存文件也可能会变得很大。

缓存属性缓存轨道的大小可通过该片段的句柄进行更改。由于缓存中的帧数是固定的,因此可用于减慢缓存播放速度或重复缓存。你也可以在编辑该片段时修改相应拉伸行为的设置。轨道选项中的“片段拉伸模式(section stretch mode)”属性也可以改变缓存播放时拉伸片段的方式。

拖拽片段句柄使用缓存轨道直接录制    1.将缓存轨道添加到Niagara组件    2.单击添加的轨道上的录制按钮,捕捉组件的数据默认情况下,这样只会录制在生命周期轨道时间范围内的数据。如果没有生命周期轨道,缓存则会拉伸至所选序列的播放范围。这种录制方式有以下优点:    ·无需打开镜头试拍录制器即可快速迭代和重新缓存    ·在捕捉缓存之前,可以先在轨道上编辑捕捉属性等录制选项    ·你可以在片段选项中选择缓存资产,这样录制时就会直接将数据写入资产。使用该选项时还请注意,重新缓存将删除现有的资产数据。前往不要在没有做版本控制的情况下使用。    ·使用序列的目标帧率来tick,这样每个模拟帧就都有固定的Delta时间了,而不是变量的编辑器tick。这也是更改缓存中录制的帧数的好办法——只需要在录制缓存前调整序列的目标显示帧率即可。使用镜头试拍录制器进行录制录制器可以通过非破坏性的方式来录制数据,因此它在录制时总是会创建新的缓存轨道或关卡序列。    1.首先,添加Niagara Actor作为源    2.选择添加的源时,可以在Actor属性中启用/禁用缓存录制    3.然后点击大红按钮开始录制!请注意,默认情况下,录制的序列会把Niagara Actor添加为新的可生成(而不是可拥有)资产。如果你只需要看到缓存的版本,请在大纲视图中将原来Niagara Actor的可见性关闭。这种录制方法的优点是可以同时录制多个源和缓存(不只是Niagara)。使数据接口可缓存默认情况下,只有绑定到渲染器的粒子属性才会在录制时写入缓存。当自定义数据接口也需要录制状态来正确显示效果时,可以使用接口INiagaraSimCacheCustomStorageInterface。UObject* SimCacheBeginWrite()bool SimCacheWriteFrame()bool SimCacheEndWrite()bool SimCacheReadFrame()void SimCachePostReadFrame()TArray GetSimCacheRendererAttributes()要了解这些接口是如何实现的,可以参考例子UNiagaraDataInterfaceRenderTargetVolume和UNiagaraDataInterfaceHairStrands。
全文完

《显卡》《幻兽帕鲁》《模型》《会员》


用CG技术如何让周润发变年轻?


迪士尼、暴雪、梦工厂、Netflix知名大厂都认可的角色建模师,作品到底有什么过人之处?
内容主要涵盖影视特效,CG动国,前沿CG技术,作品欣賞
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表