前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AE工程文件拆解可行性分析

AE工程文件拆解可行性分析

原创
作者头像
jerrypxiao
发布2019-01-14 23:58:07
3.3K0
发布2019-01-14 23:58:07
举报
文章被收录于专栏:音视频专栏音视频专栏

AE工程文件拆解可行性分析

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个<Item>标签:

再来分析其中的合成(Composite):

这张图是关键的:经过验证我们可以猜到

(1)<Sfdr>标签 文件夹中的子元素;

(2)<Item>标签,不管是Composite还是文件夹,都是以<Item>标签来表示的

(3)<idta>标签,区分item的类型0001开头的表示是文件夹,0004开头的表示合成,而0007开头的则表示是其他普通资源文件,如图片、AI文件等

(4)<Layr>标签,文本

(5)<Pin>标签,图片资源的引用

(6)<fileReference>标签,文件的属性,直接以路径的形式引用

后面需要针对每个效果或者图层进行分析标签中的数据的含义。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档