前言
2月主要在推进UE与Unity自带SSAO方案之间的性能和效果差异分析,只跑到一半,最快也得在3月才能总结成文,加之春节长假回老家放浪形骸(吃睡躺),实在是惭愧于没有什么“长篇大论”值得分享,倒是年前在帮助某项目组分析升级Unity版本后各种诡异现象时捕捉到了一个粒子系统的差异,可能对某些需要“卡点对齐”的美术特效有重大影响,故此分享出来。
问题现象
更新2022版Unity引擎后Timeline播放出现特效播放效果与原版引擎(2021.3)不一致,从而导致部分Timeline画面元素间无法按原始需求对齐。
真机对比表现
2022新版播放raditz@aoyi01_e Timeline,在第94帧处可得如下播放效果
对比2021旧版同样位置处的效果(下图)
分析
通过对特效面片逐帧播放检查,发现在老版本(2021.3.34之前),编辑如下图Particle System Curves时,使用线性节点(创建节点时勾选了面板中的Both Tangents -> Linear选项)存着异常。
用2021版引擎实际运行上述粒子系统,发现对Curve的重建结果存在问题,观察下图
在预计完成缩放的0.09时间点之后,x缩放仍然在进行!
原因推测
如下图所示,旧版Unity的Particle System Curves没有正确使用线性重建算法,使用了类似贝塞尔曲线的平滑算法实时计算渲染面片的轴向缩放。
该问题在2022.1.0 beta版本中修复,推测可能得修复日志如下:
结论
美术同学在旧版Unity中基于错误的粒子系统曲线节点编辑效果(获得对齐的画面),新版本修复了原有的重建算法问题,使得Linear效果恢复正确,但是会导致之前编辑的关键节点数据失效(出现对不齐的情况)。该问题影响范围可能涉及全部Particle system。建议的修正方案是排查和重建部分效果错位的特效关键帧数据。