Nuke制作带缩放动画视频时如何将背景黑框设置为alpha值0的透明状态
Nuke 缩放动画背景透明调整方案
要实现缩放动画的背景透明效果,需要对你的代码做3处核心修改:
- 给无alpha通道的JPEG素材添加值为1的不透明alpha通道
- 调整Transform节点的填充规则,避免空白区域被默认填充黑色
- 修改输出编码为支持alpha通道的格式,普通H.264编码的MOV默认不存储alpha信息
修改后的完整可运行代码如下:
import nuke projset = nuke.Root() projset["format"].setValue("HD_1080") # 开启项目全局alpha通道支持 projset["alpha_channel"].setValue("alpha") content = nuke.createNode("Read") content["file"].fromUserText("input.jpeg") # 新增:给JPEG素材添加纯白alpha通道 add_alpha = nuke.nodes.AddAlpha() add_alpha.setInput(0, content) result = nuke.nodes.Transform() result.setInput(0, add_alpha) # 新增:设置Transform空白区域不填充黑色,保留透明 result["black_outside"].setValue(False) result["center"].setValue(result.width() / 2, 0) result["center"].setValue(result.height() / 2, 1) scale = result["scale"] scale.setAnimated() for value, time in ( (0, 0), (1, 20), (1, 40), (0, 60), ): scale.setValue(value, time=time) output = nuke.nodes.Write(file="output.mov") output.setInput(0, result) # 新增:设置输出编码为ProRes 4444 支持alpha通道 output["file_type"].setValue("mov") output["format"].setValue("Apple ProRes 4444") # 开启alpha通道输出 output["alpha"].setValue(True) nuke.render(output)
注意:如果你的后期流程不需要MOV封装,也可以将输出格式改为PNG序列,天然支持透明通道,兼容性更强。
内容的提问来源于stack exchange,提问作者shpindler
相关产品推荐
相关产品推荐

