美文网首页After Effects
AE流程输出设计

AE流程输出设计

作者: jerryhigh | 来源:发表于2019-01-28 21:49 被阅读10次

1.概要

通过开发AE的Pugin。我们能够输出有效的信息,其中拆解了每一层的关键信息。我们设计了一个基本的AE转场效果,根据此信息设计了json的格式用于输出。

2.SDK中的一些重要概念和API

    (1)项目bin中的任何内容都是AEGP_Item,相机没有来源,因此没有AEGP_ItemH;

    (2)AEGP_CollectionItems是图层,蒙版,效果,流,蒙版顶点和关键帧项目的联合,我们于是可以从中获取到相关信息

Debug看到的信息

3.AE基本转场的效果设计

码农一般不会设计软件,这里学些AE的东西也是很不错的一种体验,同时对AE软件渲染对过程,有了比较好了了解。这里简单制作一个图片对过度效果。

(1)新建合成

新建合成

双击左边空白处,导入两张图片,新建一个合成,定义时间10s,宽度和高度1280x720

(2)拖入两个图层,统一缩小时间为5s

添加图层

(3)同时选中两个图层,右键,关键帧辅助,序列图层,不叠加

序列图层

这个时候会顺序排列每个图层,当选中重叠当时候,输入重叠当帧数,下面选择溶解效果。这个时候就可以看到简单当渐变过度效果。

关键帧过度

我们看到实际上是在重叠区域加入了alpha的渐变,开始和结束的位置分别加上了关键帧,

第一个图层alpha从100 到0

第二个图层alpha从0到100  

这样实现了溶解过度的效果。

4.工程中加入JsonCpp库

   在插件中用到json的工具库来生成。mac下

brew install jsoncpp

查看安装的目录

$ brew list jsoncpp

/usr/local/Cellar/jsoncpp/1.8.4/include/json/ (11 files)

/usr/local/Cellar/jsoncpp/1.8.4/lib/libjsoncpp.1.8.4.dylib

/usr/local/Cellar/jsoncpp/1.8.4/lib/cmake/ (2 files)

/usr/local/Cellar/jsoncpp/1.8.4/lib/pkgconfig/jsoncpp.pc

/usr/local/Cellar/jsoncpp/1.8.4/lib/ (3 other files)

添加到工程里面

添加库you

再把头文件拖进左边到Supporting Code中。

        Json::Value root;

        Json::FastWriter fast; 

        root["LayIn"]=Json::Value("11");

        root["LayDur"]=Json::Value("22");

        fast.write(root);

        fprintf(out, "test: %s\n", fast.write(root).c_str());

5.定义Json格式

{

    "composite0": {

        "during":0.00,

        "width":1280,

        "height":720,

        "layersNum":2,

        "layer0": {

            "name": "Layer1Name",

            "during":0.00,

            "startTime":0.00,  //开始时间

            "endTime":0.00,  //结束时间

            "effectsNum":2,

            "anchorPoint":{

                "value":[100.00, 100.00],

                "keyframeSet":[{"time":0.00, "value":[100, 100]},

                                            {"time":2.00, "value":[200, 200]}]

            },

            "position":{

                "value":[100.00, 100.00],

                "keyframeSet":[{"time":0.00, "value":[100, 100]},

                                            {"time":2.00, "value":[200, 200]}]

            },

            "scale":{

                "value":[0.5, 0.5],

                "keyframeSet":[{"time":0.00, "value":[0.5, 0.5]},

                                            {"time":2.00, "value":[1.0, 1.0]}]

            },  //0到1

            "rotate":{

                "value":180,

                "keyframeSet":[{"time":0.00, "value":180},

                                            {"time":2.00, "value":360}]

            },  //  0到360

            "alpha":{

                "value":100,

                "keyframeSet":[{"time":0.00, "value":100},

                                            {"time":2.00, "value":0}]

            },  // 0到100

            "effectSet":{

                    "effect1":{

                            "name": "fastBlur",

                            "blurRadius":10

                      },

                      "effect2":{

                            "name": "llluminate",

                            "value":10

                      }

            }

        }

        "layer1": {

            "name": "Layer1Name",

            "during":0.00,

            "startTime":0.00,  //开始时间

            "endTime":0.00,  //结束时间

            "effectsNum":2,

            "anchorPoint":{

                "value":[100.00, 100.00],

                "keyframeSet":[{"time":0.00, "value":[100, 100]},

                                            {"time":2.00, "value":[200, 200]}]

            },

            "position":{

                "value":[100.00, 100.00],

                "keyframeSet":[{"time":0.00, "value":[100, 100]},

                                            {"time":2.00, "value":[200, 200]}]

            },

            "scale":{

                "value":[0.5, 0.5],

                "keyframeSet":[{"time":0.00, "value":[0.5, 0.5]},

                                            {"time":2.00, "value":[1.0, 1.0]}]

            },  //0到1

            "rotate":{

                "value":180,

                "keyframeSet":[{"time":0.00, "value":180},

                                            {"time":2.00, "value":360}]

            },  //  0到360

            "alpha":{

                "value":100,

                "keyframeSet":[{"time":0.00, "value":100},

                                            {"time":2.00, "value":0}]

            },  // 0到100

            "effectSet":{

                    "effect1":{

                            "name": "fastBlur",

                            "blurRadius":10

                      },

                      "effect2":{

                            "name": "llluminate",

                            "value":10

                      }

            }

          }

    }

"composite1":{

  。。。。//同上

  }

}

6.按照Json格式进行输出

修改代码进行输出结果:

实际验证得到的结果

7.按照Json格式进行输出

根据上面我们定义好对格式,将整个合成的图层信息进行输出,保存为我们需要的json格式。我们下一步要做的是回到APP中,将此输出进行shader的定义或者组装,完成整个流程。

相关文章

  • AE流程输出设计

    1.概要 通过开发AE的Pugin。我们能够输出有效的信息,其中拆解了每一层的关键信息。我们设计了一个基本的AE转...

  • 【软件架构篇】架构设计流程

    序言 架构设计的输出就是文档,设计中的每一个流程输出为子文档。每个架构师可能有自己的一个架构设计流程,也会不断优化...

  • 如何盘点财务流程现状

    之前我们介绍了财务共享流程清单的输出方法,从宏观方面来讲,共享流程清单为共享流程详细设计和系统设计提供了输入。不过...

  • 动效设计步骤

    一、PS中分层 二、动效逻辑整理 三、AE中动态设计 四、体验优化 五、输出阶段 1、swf 格式 -在fil...

  • AE转JS动画,lottie.js和bodymovin的简易使用

    PS:描述不清或者描述错误请见谅... AE动画转换JS动画使用了lottie.js库 制作流程:1、设计师使用P...

  • 流程图

    流程图 流程图是对过程、算法、流程的一种图形表示。又称为输入-输出表示图。 流程图优点 1.设计产品交互图2.使结...

  • 浅谈PAG与Lottie对比

    1、工作过程Lottie:设计师使用 AE 设计好动画, 通过 bodymovin 插件将 AE 工程文件导出为 ...

  • 交互设计(转)

    目录导读 1.交互设计概念 2.交互设计输出物 3.交互设计相关理论 4.交互设计流程及方法 5.交互设计常见案例...

  • [项目] 互联网金融类APP从开始到上线

    产品需求分析阶段涉及到目标用户分析、信息架构设计、导航设计、流程设计等分析,最后依据分析输出较为合理的线框图。最后...

  • UX体验设计之旅(四)_UX工作流程&方法简介_2017

    UX工作流程大致分成如下4步骤:发现并定义、设计、设计验证环节、设计支持输出 以下我在介绍着4个环节中,会穿插讲述...

网友评论

    本文标题:AE流程输出设计

    本文链接:https://www.haomeiwen.com/subject/qrrzjqtx.html