You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maya Python Playblast按文件同名保存到指定文件夹的实现问题

Maya Playblast 按当前文件名保存到指定路径实现方案

原有代码问题说明

  • cmds.playblast 参数语法错误,参数需要放在函数调用的括号内,不能拆分后无缩进
  • 路径与变量拼接直接硬写不符合Python语法,需要用路径拼接方法处理
  • 无目录存在性校验,目标文件夹不存在时会导出失败

实现代码

import maya.cmds as cmds
import os

# 获取当前Maya文件信息
filepath = cmds.file(q=True, sn=True)
# 处理未保存的空场景情况
if not filepath:
    cmds.warning("当前场景未保存,请先保存Maya文件后再执行")
    raise RuntimeError("场景未保存")

filename = os.path.basename(filepath)
raw_name, extension = os.path.splitext(filename)

# 如果你确实需要把文件名最后一个字符替换为空格,保留下面这行,否则可以删除直接用raw_name
name = raw_name.replace(raw_name[-1::], ' ')
# 指定你要保存的根目录,用r前缀避免Windows路径转义问题
save_root = r"C:\Users\Julio\Desktop\test\row"
# 拼接完整输出路径,后缀可以根据你需要的格式修改为mov/avi等
output_path = os.path.join(save_root, f"{name}.mp4")

# 校验目标目录是否存在,不存在则创建
if not os.path.exists(save_root):
    os.makedirs(save_root)

def test():
    # playblast 常用参数可以根据自己需求调整,比如分辨率、帧范围、格式等
    cmds.playblast(
        fileName=output_path,
        format="video",
        forceOverwrite=True,
        percent=100,
        showOrnaments=False,
        viewer=False
    )

test()

核心逻辑说明

  • 路径拼接使用os.path.join()方法,自动适配不同系统的路径分隔符,避免手动拼接出现的转义、分隔符错误问题
  • 新增了场景未保存的校验逻辑,避免空场景获取文件名失败报错
  • 新增目录自动创建逻辑,不需要手动提前建文件夹
  • playblast的参数可以根据你自己的需求调整,比如添加startTime、endTime指定导出帧范围,添加width、height指定导出分辨率等

内容的提问来源于stack exchange,提问作者David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 14:42:02