1.概要
根据AE的工程文件拆解出OPENGL渲染的有效步骤,作为shader的渲染的参数或者模块。通过研究AE的使用及开发流程,主要从下面几个方面出发。
(1)XML 项目文件----apex文件;
(2)流程图面板信息研究;
(3)Adobe ExtendScript Toolkit的分析;
(4)bodymovin动画插件过程研究及转换出来的json文件;
最后得到了结论,要成功的解析出工程文件中渲染的流程,我们可以得到两个比较有效的方向:
(1)逆向 分析apex文件,得到每个标签中的含义,每个效果的对应的数值;
(2)自己进行插件的开发,在开发过程中得到相关的流程信息,然后输出来;
2.AE的概述
Adobe After Effects主要用于创建动态图形和视觉特效。允许使用者以2D或3D中的各种内建工具和第三方插件(插件)创建动画。After Effects是基于非线性编辑的软件。
我们安装之后看到,软件分为了几个部分,分别是,After Effects CC 编辑模块,Render Engine渲染模块, Encoder CC编码模块。
3.各部分拆解
3.1 XML 项目文件----apex文件;
After Effects 项目是一个文件,用于存储合成以及该项目中素材项目所使用的全部源文件的引用。合成是图层的集合。许多图层使用素材项目(例如影片或静止图像)作为源,但某些图层(例如形状图层和文本图层)包含您在 After Effects 中创建的图形。
项目文件使用文件扩展名 .aep 或 .aepx。使用 .aep 文件扩展名的项目文件是二进制项目文件。使用 .aepx 文件扩展名的项目文件是基于文本的 XML 项目文件。
aep为原始二进制文件,不是不可以拆解,但是信息无法做到精确匹配,参考意义不大。
这是一个典型的AEP工程,使用文件夹的方式来组织各种资源。那么XML中是怎么组织的呢?上面这个工程中存在8个顶级文件夹,可以在XML中看到对应8个
再来分析其中的合成(Composite):
这张图是关键的:经过验证我们可以猜到
(1)
(2)
(3)
(4)
(5)
(6)
后面需要针对每个效果或者图层进行分析标签中的数据的含义。
3.2 流程图面板信息研究
要打开项目流程图,请按 Ctrl+F11 (Windows) 或 Command+F11 (Mac OS),或者单击“项目”面板右边缘的垂直滚动条顶部的“项目流程图”
按钮。
要打开合成流程图,请选择合成并选择“合成”>“合成流程图”,或者单击“合成”面板底部的“合成流程图”
按钮。
流程图中,能够表示合成的主要流程,但是流程图导不出来,如何获取流程图中的信息也不太清楚,流程图面板应该是一个系统的插件
猜想应该在插件开发过程中用代码可以获取到这些信息。
3.3 Adobe ExtendScript Toolkit的分析
该软件是由Adobe公司开发的一款扩展脚本语言工具包。我们可以使用它来进行创建,编辑和调试扩展脚本语言。它能够帮助我们在编程的过程中进行一些脚本语言的编写和调试等。
包含一个 JavaScript 调试器,可
在一个应用程序内单步执行 JavaScript 脚本(JS 或 JSX 文件)
检查正在运行的脚本的所有数据
设置和执行断点
ESTK 4.0 可用性和稳定性改进
自动文档备份
在浮动窗口中打开新文档的选项
在可停靠窗口中显示对象模型查看器的选项
看下例子:
ExtendScript Tutorial - Automatic Editing, Encoding, and Uploading Workflow Script
发现此脚本工具主要是来帮助开发渲染或者自动合成的工具,提供了调试功能,不能帮助我们获取现成的工程文件的效果。
3.4 bodymovin动画插件过程研究及转换出来的json文件
大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
这片文章介绍了如何使用Bodymovin插件转换出矢量动画的json文件。视频教程
插件生成了工程文件中效果的列表,这里我们看到,插件开发中是可以获取到工程中的具体效果的,至于流程能不能完整拿到还需要进一步了解插件的开发。
4.小结
这里分析了AE使用及开发的几个方面,要成功的解析出工程文件中渲染的流程,我们可以得到两个比较有效的方向:
(1)进一步分析逆向 apex文件的含义,得到每个标签中的含义,及每个效果的含义;
(2)自己进行插件的开发,在开发过程中得到相关的流程信息,然后输出来;
第2点看起来比较有效和针对性。
5.参考链接
(1)Adobe SDK开发
(2)一款批量修改AE模板的工具
(3)AE用户指南
(4)『小高』- After Effects CC 強大轉場插件/腳本使用心得分享(非製作) | 錄人Passer