使用 CMDS 在 Maya 中获取选定定位器的变换

Get Transform of selected Locator in Maya using CMDS

使用 Maya 的 cmds (python) 我如何检查用户是否选择了定位器,然后获取该定位器转换?

我试过用这个,但我不熟悉 Maya python...

nodes = cmds.filterExpand(sm=22) # check if user has a locator selected
if not len(nodes) == 1:
     return
# not sure if this is the proper method to use, can i pass in my nodes from the method above like i have written?
tm = cmds.ls(nodes[0], sl=True, transforms=True)
# ... from here i can work on TM assuming it's the transform ex. Locator1

您可以使用简单的列表理解来收集所有选定的具有定位器形状的转换,如下所示:

[obj for obj in cmds.ls(sl=True) if cmds.listRelatives(obj, shapes=True, type="locator")]

为了分解它,cmds.ls(sl=True) 将 return 列出所有选定的对象。然后过滤我们可以使用 cmds.listRelatives 检查转换是否有任何形状作为定位器,如果有,收集它。