【脚本案例】GIF等素材循环

介绍

许多可以循环的素材,比如gif,本身导入是不能循环的,很蛋疼。

如果要更改的话,一般需要右键素材 – 解释素材 – 主要

【脚本案例】GIF等素材循环

然后在其他选项里更改循环次数

【脚本案例】GIF等素材循环

更改前与更改后(所有合成内的该项目会同时更改,所以不用担心重新替换之类)

【脚本案例】GIF等素材循环

使用方法

在项目面板选择素材文件(可多选),单击按钮即可

这里有默认文件类型 ,以及默认循环次数,可以自行更改

tips:可以在项目面板搜索筛选(比如输入gif,mp4)

【脚本案例】GIF等素材循环
【脚本案例】GIF等素材循环

源码

/**
 * 功能:在项目面板选择一个或多个素材文件,可以批量更改循环次数,比如gif文件等
 * 源码:https://www.yuelili.com/?p=17991
 * 版本:1.0
 */

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

    // 用户自定义区
    loop_list = [".mov", ".gif"]
    loop_times = 100

    // UI 界面 可以不管
    var palette = (panelGlobal instanceof Panel) ? panelGlobal : new Window("palette");
    if (!(panelGlobal instanceof Panel)) palette.text = "素材重映射";
    palette.orientation = "row";
    palette.alignChildren = ["center", "top"];
    palette.spacing = 10;
    palette.margins = 16;

    var remap_btn = palette.add("button", undefined, undefined, { name: "remap_btn" });
    remap_btn.helpTip = "选择素材(可以多个),然后单击";
    remap_btn.text = "重映射";
    remap_btn.preferredSize.width = 80;
    remap_btn.onClick = loop_it

    // 判断是否在数组内 ES不自带 所以要加一个
    function isInArray(arr, value) {
        for (var i = 0; i < arr.length; i++) {
            if (value === arr[i]) {
                return true;
            }
        }
        return false;
    }

    function loop_it() {
        // 当前项目选择的文件
        var selItems = app.project.selection
        if (selItems.length > 0) {

            // 遍历选择的文件
            for (var i = 0; i < selItems.length; i++) {
                selItem = selItems[i]

                // 判断文件是否有本地文件
                if (selItem.mainSource instanceof FileSource) {

                    // 获取文件后缀
                    inx = selItem.name.lastIndexOf(".")
                    endfix = selItem.name.substr(inx, 9)

                    // 判断文件后缀是否在指定列表内
                    if (isInArray(loop_list, endfix)) {

                        // 将该素材的源循环改为指定次数
                        selItem.mainSource.loop = loop_times
                    }
                }
            }
        } else {
            alert("请至少选择一个项目")
        }
    }

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

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

    return palette;

}());
</code></pre>

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

【脚本案例】素材本地文件重命名

2021-9-29 0:41:17

AE开发脚本开发

【脚本案例】基于选择图层时间 创建新图层

2021-9-29 2:27:41

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