cover

【开发辅助】从多图层PSD导出成联排动画的脚本(改)

A

http://www.nvlmaker.net/bbs/forum.php?mod=viewthread&tid=87

↑NVLmaker的作者给吉里吉里中的ASD(序列帧动画)文件做的一个脚本。

我改了一下,改成了纵横可用,可以指定纵横拼多少个,
加上可能需要作为打印稿件(比如贴纸)等特殊情况,增加了分辨率设置。

在:

    var f_width=app.documents[sourcePsdName].width;

    var f_height=app.documents[sourcePsdName].height;

下面追加:

    var pic_w=0;

    var pic_h=0;

    var w=0;

    var h=0;

    var MAXw = 10;

    var MAXh = 10;

    var dpi = 300.0;

然后将


    //新建一个PSD

    asdPsd=app.documents.add(f_width*layerCount, f_height, 72.0, sourcePsdName+"_a", NewDocumentMode.RGB, DocumentFill.TRANSPARENT);

改为


    //新建一个PSD

    asdPsd=app.documents.add(f_width*MAXw, f_height*MAXh, dpi, sourcePsdName+"_a", NewDocumentMode.RGB, DocumentFill.TRANSPARENT);

最后将


    //激活新文档

    app.activeDocument=asdPsd;

     for (var i=0; i<layerCount;i++)

        {

          //选中当前图层

          asdPsd.activeLayer=asdPsd.layers[i];

          //移动到指定位置

          asdPsd.layers[i].translate(f_width*i, 0);

     }

改为

    //激活新文档

    app.activeDocument=asdPsd;

     for (var i=0; i<layerCount;i++)

        {

          //选中当前图层

          asdPsd.activeLayer=asdPsd.layers[i];

          //移动到指定位置

        if(w>=MAXw)

        {

            w=0;

            h++;

        }

          pic_w = f_width*w

          pic_h = f_height*h

          asdPsd.layers[i].translate(pic_w, pic_h);

          w++;

     }

使用说明:

个人试用时拼过2米X2米,300dpi,一共一百层,这个脚本在同人周边印刷的排版上应该也是可以胜任的……当然请量力而行。(电脑配置不好的话还是别弄那么大)

下面是可以根据需要修改的数字

var MAXw = 10;横向一共多少张

var MAXh = 10;纵向一共多少张

var dpi = 300.0; 300分辨率,彩色印刷推荐。

电子文档一般为72。在绘画软件的改变图像大小的地方可以看到。

如果不是很明白分辨率的意思,建议直接查看图片属性后再确定数字。

使用时将所需图片排列从下到上,最早放进psd文档的一张为序列帧的第一帧。

使用图层文件夹会报错,请在导出前删除。

附上脚本下载。

链接:https://pan.baidu.com/s/1WfCAn20z6DFcACtuSUQ_kw

提取码:s3vs

2020/09/08

#修正了一个会导致最终输出宽度异常的bug。

本文发布于瞬matataki, 本文使用 知识共享 署名-非商业性使用-相同方式共享 4.0 协议 请遵守协议许可进行转载

免责声明:本文由用户「Lyceenee」上传发布,内容为作者独立观点。不代表瞬Matataki立场,不构成投资建议,请谨慎对待。

喜欢就打赏Fan票吧~

avatar
0/500
评论0 打赏0