关于AE项目文件降级的一些想法

关于AE项目文件降级的一些想法

之前在做Pr版本降级的时候也考虑过如何制作针对AE项目文件的版本降级。不同于Pr,AE项目文件并未压缩,但时间轴等项目信息也并非明文键值存储。通过比较不同版本的项目文件我发现,不仅在文件头尾存在一定的差异,文件中部也有细微的不同。由于无法得知文件数据的具体编码格式,只好考虑其他的想法。

  1. 使用原生的降级功能

AE每个版本都带有原生的降级功能,如AE CC 2017可以降级项目文件至CC2015,CC原版可以降级至CS6等等。然而,这种降级非常受限,如果想跨版本降级则需要下载安装多个版本的AE,不太方便。不过,这倒是为从业者提供了一个机会:版本文件代降级……

  1. 使用XML导出

XML文件是明文存储的,无论哪个版本都可以方便读取。这种方案的不便之处在于有时一些特效或转换无法正确存储到文件,导致其他版本导入时丢失特效。作为一种备选方案,还是可以考虑采用的。

  1. 设计基于各版本降级相关dll的降级软件

之前在考虑这个方案,但觉得收益太低便没有实现。理论上来讲,各版本降级相关函数应该始终存在同一个dll中,只要找到其中一个的定义和调用方法,便能任意降级到其他版本。而且,观察项目文件结构,这个降级函数应该只是类似于字符串替换处理的函数,同时增加转换后的标识符,应该不会太过复杂。但由于需要逆向二进制文件,或者想办法找到函数原型,这个方案显然比较复杂。不过连amtlib的流程图都能被人分析出来,这个无足轻重的功能应该也不算太困难。可能需要IDA或是类似的逆向工程工具来分析一下。

由于自己暂时没有这个需求,因而只是将一些思路总结在这里,仅供参考。

Chen Ting

Chen Ting

The page aimed to exhibit activities & achievements during Ting's undergraduate & graduate period. Meanwhile, other aspects such as lifestyles, literary work, travel notes, etc. would interweave in the narration.

Leave a Comment

Disqus might be GFW-ed. Excited!