介绍
名称:空对象的力量 (this Nulls Power)
作者:芊葉狼七
第一个主要功能:通过脚本创建的空对象,在素材箱里永远只有一个空对象;
第二个主要功能:支持把工程所有的空对象整理成一个空对象。
下载链接:https://drive.yuelili.com/s/nx4fq
(个人开发的所有脚本,将全部放到这个下载链接里)
视频
主要特点
新建空对象
需要先激活合成窗口,或者在素材箱选中合成,再点击“创建空对象”按钮才能够在合成内部添加空对象图层。另外添加的空对象图层名是 Null+随机的4位数字。
该操作可撤销,撤销名“x77 new Null Layer”。
整理空对象
可直接点击“整理空对象”按钮来整理整个工程所有的空对象,整理过后素材箱只会剩下一个空对象。
该操作可撤销,撤销名“x77 Only One Null”。
由于涉及空对象的自动化替换与删除,虽然我们设定了撤销动作,用来保障工程安全。但如果你很担心工程被炸,要么手动备份工程,要么不使用该整理功能。
修改&重置 空对象名
点开脚本的空对象文本输入框,可输入任意内容,记得点击“修改”按钮来确认修改结果。
“重置”按钮则是恢复默认的“100x100 NULL”命名格式。
原先是有素材箱选中空对象点击“修改”按钮来同步空对象名的,但是细节处理方面太繁琐了,写了好几次依然不满意就暂时删掉该功能。
AE的设置是不同语言不同的配置,做不到同步配置,所以我们把空对象名保存在 "%AppData%\\maderx77\\nullName.txt" 这个文件里面,这样用户就能够跨版本甚至同版本不同语言,使用统一的源名称。
安装脚本
具有可视化界面的本体脚本:
把本体脚本放到AE安装目录的Scripts的子目录ScriptUI Panels里面,比如 C:\Program Files\Adobe\Adobe After Effects CC 2019\Support Files\Scripts\ScriptUI Panels
两个无界面纯快捷键操作的脚本:
空对象的力量 无界面整理 By芊葉狼七.jsx
由于脚本本身不支持全局快捷键,明显不能满足随时随地按快捷键的需求,因为我们针对这个需求,专门定制了无界面纯快捷键操作的脚本。
把它们放到AE安装目录的Scripts文件夹里面,比如 C:\Program Files\Adobe\Adobe After Effects CC 2019\Support Files\Scripts
快捷键操作
启动AE,打开设置快捷键的窗口,或者按 Ctrl+Alt+' 快速打开窗口('是单引号 在ENTER键左侧),在搜索框输入脚本关键词找到这两个脚本,设定你喜欢的快捷键。
我们这边就假定无界面创建绑定Shift+Z,无界面整理绑定Shift+X,这两个快捷键都是无主未使用过的。
另外貌似只能在激活的合成窗口按快捷键,所以按快捷键整理空对象时,记得先激活一个合成窗口。
其他
注意事项
如果遇到点击按钮没反应的情况,请注意查看 信息(info) 窗口的报错信息。
意见反馈
如果有BUG或者建议需要反馈,可去B站联系作者(芊葉狼七),或者在本贴留言。
作者语
若你使用后觉得这个脚本还不错,可以请作者喝一杯奶茶,你的奶茶将成为我们继续更新脚本和修复错误的动力!祝你使用愉快 :]
碎碎念
你是否遇到一部分脚本在满足你需求的同时,疯狂往素材箱塞一堆空对象;
你是否每次使用空对象时,不停的右键新建空对象,然后素材箱空对象的数量在疯狂增加。
具有强迫症的你,是否要保持素材箱仅一个空对象和一个纯色层(固态层)呢?
纯色层我们可以直接拽托下来使用,但是空对象呢?直接变成100*100的白色纯色层,这是无法忍受的。
修改不透明度?每次都要修改太麻烦了,而且从素材箱拖下来的空对象已经丢失了作为空对象的特性,只有新建空对象和复制已有的空对象,才是真正的空对象。
想保持素材箱只有一个空对象,起码要在素材箱选一个空对象,然后手动替换所有合成的空对象,这一点也不优雅,重复劳动能累死。
因此,我们开发了一个AE脚本,用来代替这种重复劳动,享受高效率的无缝创作,无需为琐事分心。
备注:感谢鹤梦提供的检索素材箱空对象思路
评论(2)
大佬,问一下,原理是先创建一个空对象,其他创建的空对象都是引用吗?
原理是 先调用AE提供的创建空对象API,这时候它会在素材箱生成一个新的空对象,我们规定了唯一的空对象名字,如果素材箱存在该空对象,那么用AE提供的替换API对合成里面的空对象进行替换,这样素材箱新生成的空对象就闲置下来可以直接删除。如果素材箱不存在规定的空对象名,那么用AE提供的API对合成的空对象的源(也就是素材箱里面的)进行重命名。每次创建空对象,脚本都会完整遍历素材箱,通过一系列的筛选条件,选出真正的空对象,然后比对空对象名字。【app.project.item(i)】其中的i代表着素材箱所有素材包括文件夹的ID数字,是固定的,只要知道ID号就能定位该素材在素材箱的位置。app.project.activeItem指的是当前激活的合成窗口,等价于上面的app.project.item(i),用for遍历就行。