【脚本案例】合成批量加时间码

介绍

选择所有合成,单击创建按钮,即可在所有合成左下角加个时间码。

具体位置啥的、字体、字体大小自己改

【脚本案例】合成批量加时间码

源码

 * https://www.yuelili.com/?p=18016
 */

var panelGlobal = this;
var main = (function () {

    /*
    Code for Import https://scriptui.joonas.me — (Triple click to select): 
    {"activeId":0,"items":{"item-0":{"id":0,"type":"Dialog","parentId":false,"style":{"enabled":true,"varName":"main","windowType":"Palette","creationProps":{"su1PanelCoordinates":false,"maximizeButton":false,"minimizeButton":false,"independent":false,"closeButton":true,"borderless":true,"resizeable":true},"text":"合成批量加时间码","preferredSize":[0,0],"margins":16,"orientation":"column","spacing":10,"alignChildren":["center","top"]}},"item-1":{"id":1,"type":"Button","parentId":0,"style":{"enabled":true,"varName":"time_code_btn","text":"加时间码","justify":"center","preferredSize":[0,0],"alignment":null,"helpTip":null}}},"order":[0,1],"settings":{"importJSON":true,"indentSize":false,"cepExport":false,"includeCSSJS":true,"showDialog":true,"functionWrapper":true,"afterEffectsDockable":true,"itemReferenceList":"None"}}
    */

    // MAIN
    // ====
    var main = (panelGlobal instanceof Panel) ? panelGlobal : new Window("palette", undefined, undefined, {});
    if (!(panelGlobal instanceof Panel)) main.text = "合成批量加时间码";
    main.orientation = "column";
    main.alignChildren = ["center", "top"];
    main.spacing = 10;
    main.margins = 16;

    var time_code_btn = main.add("button", undefined, undefined, { name: "time_code_btn" });
    time_code_btn.text = "加时间码";
    time_code_btn.onClick = time_code_it

    // 获取时间信息
    function get_time(comp) {
        s1 = comp.duration;//获取时间
        s2 = comp.frameRate;//获取帧数率
        s = (Number(s1 * s2)) + 1;
        var a, b, c, d;
        a = parseInt((s - 1) / 24);
        b = "s+";
        c = (s - 1) % 24;
        d = "帧";
        return a + b + c + d
    }

    // 主函数
    function time_code_it() {
        var selItems = app.project.selection
        if (selItems.length == 0) {
            alert("请在项目面板至少选择一个合成")
        } else {
            app.beginUndoGroup("Add 持续时间");//记录撤销

            // 循环选中的项目
            for (i = 0; i < selItems.length; i++) {

                // 判断项目是否为合成
                if (selItems[i] instanceof CompItem) {

                    // 获取合成时间
                    var time_txt = get_time(selItems[i])

                    var textLayer = selItems[i].layers.addText(time_txt);//文本显示格式为##  s  +   ##   帧
                    textLayer.position.setValue([125, 1000]);//位置修改
                    textLayer.property("transform").property("Scale").setValue([200, 200]);//字符放大
                    var ramp = textLayer.effect.addProperty("ADBE Fill")//填充效果
                    ramp(3).setValue([1, 0, 0]);//字符颜色
                }
            }
            app.endUndoGroup() //撤销结束
        }
    }

    main.layout.layout(true);
    main.layout.resize();
    main.onResizing = main.onResize = function () { this.layout.resize(); }

    if (main instanceof Window) main.show();

    return main;

}());

给TA充电
共{{data.count}}人
人已充电
AE开发脚本开发

【脚本案例】rd_Scooter 图层时间与关键帧控制

2021-9-30 4:45:16

AE开发脚本开发

【脚本案例】批量另存工程

2021-9-30 18:52:32

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
搜索