Если вы пытаетесь переименовать преобразования выше форм, вам нужно на самом деле проходят в формах. То, как вы сделали это вы передаете выбор для listRelatives
, который возвращает None
в старой Майе
locators = cmds.ls(type=('locator','mesh'), l=True) or []
loc_parents = cmds.listRelatives(*locators, p=True, f=True) or []
loc_parents.sort(reverse=True)
for lp in loc_parents:
cmds.rename(lp, 'new_name')
При переименовании вы хотите использовать длинные имена - в случае, если у вас есть несколько объектов с одинаковым коротким названием под разными родителями - и работать от самых длинных полных путей до кратчайшего, чтобы вы не переименовали родителя объекта и тем самым не изменили его путь.
Удостоверьтесь, что вы получаете пустой список вместо None, поэтому скрипт запускается, если нет локаторов.
** редактировать **
обновлен, чтобы включить сетки, за просьбу ФПА в. Для суставов нет необходимости делать шаг listRelatives - но длительные имена и переупорядочивание жизненно важны, поскольку его легко скопированные соединения для создания повторяющихся имен