关于AE项目文件降级的一些想法
之前在做Pr版本降级的时候也考虑过如何制作针对AE项目文件的版本降级。不同于Pr,AE项目文件并未压缩,但时间轴等项目信息也并非明文键值存储。通过比较不同版本的项目文件我发现,不仅在文件头尾存在一定的差异,文件中部也有细微的不同。由于无法得知文件数据的具体编码格式,只好考虑其他的想法。
- 使用原生的降级功能
AE每个版本都带有原生的降级功能,如AE CC 2017可以降级项目文件至CC2015,CC原版可以降级至CS6等等。然而,这种降级非常受限,如果想跨版本降级则需要下载安装多个版本的AE,不太方便。不过,这倒是为从业者提供了一个机会:版本文件代降级……
- 使用XML导出
XML文件是明文存储的,无论哪个版本都可以方便读取。这种方案的不便之处在于有时一些特效或转换无法正确存储到文件,导致其他版本导入时丢失特效。作为一种备选方案,还是可以考虑采用的。
- 设计基于各版本降级相关dll的降级软件
之前在考虑这个方案,但觉得收益太低便没有实现。理论上来讲,各版本降级相关函数应该始终存在同一个dll中,只要找到其中一个的定义和调用方法,便能任意降级到其他版本。而且,观察项目文件结构,这个降级函数应该只是类似于字符串替换处理的函数,同时增加转换后的标识符,应该不会太过复杂。但由于需要逆向二进制文件,或者想办法找到函数原型,这个方案显然比较复杂。不过连amtlib的流程图都能被人分析出来,这个无足轻重的功能应该也不算太困难。可能需要IDA或是类似的逆向工程工具来分析一下。
由于自己暂时没有这个需求,因而只是将一些思路总结在这里,仅供参考。
Leave a Comment