【问题标题】:get Attr from Maya shotlist从 Maya 镜头列表中获取 Attr
【发布时间】:2019-05-11 03:37:48
【问题描述】:

我想从镜头列表(在相机序列器中)的字段中获取信息。我解决的shotname:

test = cmds.getAttr('shot1.sn')
print test

但其余的......我被困住了。当我尝试调用其他参数(如 startTime)时,我会遇到各种错误,具体取决于我尝试执行的方式。

【问题讨论】:

  • 你能提供一些测试和错误吗?例如,您尝试使用 startTime 做什么?我不熟悉相机定序器。尝试使用 echo all 命令找出在操作 ui 时触发了哪种命令。然后,您可以使用 MEL 命令 whatIs 进行调试,以查找 procs 的位置以及它们的实际作用。

标签: python maya getattr timefield


【解决方案1】:

欢迎来到 SO,Fantasi。

您提出了一个非常模糊的问题,因此作为回报,您将得到一个非常模糊的答案。

您可以通过在您的音序器对象上使用cmds.listConnections 来获取您的镜头列表。之后,使用for 循环并使用cmds.getAttr 获取镜头信息,如下所示:

shots = cmds.listConnections("sequencer1", type="shot") or []  # Get a list of all shots from the sequencer.

for shot in shots:
    shot_name = cmds.getAttr("{}.shotName".format(shot))  # Query shot's name.
    start_frame = cmds.getAttr("{}.startFrame".format(shot))  # Query shot's start frame.
    end_frame = cmds.getAttr("{}.endFrame".format(shot))  # Query shot's end frame.
    print shot_name, start_frame, end_frame  # Print out shot's info.

带有 2 个镜头的音序器输出示例:

输出:

射击 1.0 50.0

shotEnd 51.0 120.0

如果您不确定拍摄对象的属性名称,请使用you can find them here

如果您仍有问题,我建议您从脚本编辑器粘贴错误消息,以便我们诊断问题所在。

【讨论】:

  • 哇,谢谢!是的,对不起,我知道这是模糊的。但你仍然完全正确!
  • 太棒了!不要忘记接受这个答案,让其他人知道它已经解决了。
猜你喜欢
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
  • 2015-10-31
  • 1970-01-01
相关资源
最近更新 更多