【问题标题】:Error Using aimConstraint Maya Python Pymel使用目标约束 Maya Python Pymel 时出错
【发布时间】:2017-05-05 06:47:28
【问题描述】:

我有一个 Spot Lights 字段,我正在尝试使用 pm.aimConstraint 将他们的目标链接到定位器(称为“Light Point”)。这是我正在努力解决的部分以及它给我的错误:

import pymel.core as pm

aimTarget = "Light Point"

selection = pm.ls(sl = True)
for each in selection:
    pm.aimConstraint(aimTarget, each)

Error: MayaNodeError: file C:\Program Files\Autodesk\Maya2013\Python\lib\site-packages\pymel\internal\pmcmds.py line 140:  # 

显然选择的是所有聚光灯。

理想情况下,我希望这样做而不必选择所有灯光,我认为它看起来像这样:

pm.aimConstraint("Light Point", "spotLight"+light)

“light”是for循环范围内的灯数,转换为字符串。这会得到同样的错误。

我对 python 还是很陌生,但之前使用过第一个脚本,我很困惑为什么它不能在任何东西上工作,甚至不仅仅是聚光灯。

【问题讨论】:

    标签: python maya pymel


    【解决方案1】:

    “Light Point”不是有效的对象名称。

    当您在 Maya 中创建节点时,您需要捕获您在创建时给出的对象,否则无法保证它就是您认为的对象。

    【讨论】:

    • 制作定位器后,它被重命名为“Light POint”。但是,我现在意识到它实际上被命名为 Light_Point。所以这个做了调整。由于某种原因,该脚本现在正在运行。我仍然不清楚为什么,所以欢迎任何解释!
    • 空格是对象名称中的无效字符。 Maya 只会将其重写为下划线 _。
    【解决方案2】:

    我知道这是一篇较旧的帖子,但如果其他人看到它, PyMEL 具有PyNode() 函数。因此,如果您要通过那里传递“Light Point”,它将返回场景中的对象。

    from pymel.core import *
    
    PyNode("myCube")
    # Result: nt.Transform(u'myCube') # 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 2022-06-30
      • 1970-01-01
      • 2022-09-25
      • 1970-01-01
      • 1970-01-01
      • 2019-04-11
      相关资源
      最近更新 更多