在After Effects中使用JSON来设置图层或合成的切入点。

问题描述 投票:0回答:1

我有一个视频模板,由大约30个组成,命名为1到30。

30个合成中的每一个都只由一个图层组成,这个图层是一个.mp4文件,其中的合成只提取某一段,比如5秒。

所以,构图1是由1.mp4层制作的一个5秒长的合成,而1.mp4是一个2分钟长的素材,我为它选择了一个1:02的切入点,所以我的构图只显示该素材从1:02到1:07。(请看下图)

每当我的客户给我发来一组新的30个.mp4片段素材,让我把它们放在我的30个作品中。

  • 我就把它们的名字从1.mp4改成30.mp4来替换我的旧文件(一个Python脚本就能完成这项工作)。

  • I 手动 将每个镜头的开始时间设置为所需的时间(例如:-1:02,如下图中蓝色圆圈所示)。

我的问题如下。有没有办法让我使用一个.json文件来批量设置我的~30个.mp4文件的入口点??

我与AE 2019工作。

谢谢你

Screen from AE

json after-effects
1个回答
0
投票

为什么要用json文件?根据我的理解,你是想在你的许多comps中自动改变每层1的开始时间,对吗?下面的.js或.jsx脚本(保存 纯文本 这些文件的任何一个扩展名,并从ae)运行,都可以达到你想要的效果,但是你的 必须

  1. 知道要使用的十进制时间(不是帧,不是时间码!)。它的工作对我来说,你在我的测试项目中的comps是在30帧,使用默认的-1.1输入。
  2. 选择Start Point ("Yes "按钮)来做我认为你想要的事情(你也可以做inPoint,这是我的测试项目。修剪 每层1)
  3. 在运行之前,选择要处理的comps

这是代码。

var everyItem = app.project.items;
selectedComps = new Array();
for (var i = everyItem.length; i >= 1; i--) {
    eyeTem = everyItem[i];
    if ((eyeTem instanceof CompItem) && eyeTem.selected) {
        selectedComps[selectedComps.length] = eyeTem;
    }
}
c=confirm("Shift Start Point of each Layer 1? Yes for Starting Point, No for inPoint (inPoint trims)");
p=prompt("Enter time in seconds:", "-1.1");
pNumber = 0;
if (p == null) {//User Canceled

}else{
    killit=false;
    try {
        pNumber = eval(p);
    } catch(e) {
        killit=true;
    }
    app.beginUndoGroup("Adjust Layer 1 Start or In");
    if (c==true) {//Yes - starting point
        for (var n = (selectedComps.length-1); n >= 0; n--) {
            item = selectedComps[n];
            item.layers[1].startTime = pNumber;
        }
    }else{//no - trim in
        if (pNumber >= 0) {//cannot be negative
            for (var n = (selectedComps.length-1); n >= 0; n--) {
                item = selectedComps[n];
                item.layers[1].inPoint = pNumber;
            }
        }else{
            alert("You entered a negative number for an inPoint trim. That won't do anything");
        }
    }
    app.endUndoGroup();
}
© www.soinside.com 2019 - 2024. All rights reserved.