再绑定好一个角色/物体/场景后除了整理节点的层级结构和清理场景,还需要对需要smooth的多边形进行smooth并控制其smooth的大小。
几个月前我为公司(用mel)写了一个工具,来处理对所选的多边形进行smooth,并控制其smooth。为了使这个工具更强大、更智能,我先对所选的物体区分类别,再把筛选出来的多边形进行检查,看其是否已经被smooth,如果是直接进行控制,如果没就进行smooth并控制。
我自认这个工具已经够强大了,但使用了一段时间后却反觉得十分痛苦,为什么会这样,都是因为该死的重命名。虽然在maya里理论上是不能重命名的,但实际上却是能存在重命名的,面对复杂的场景很多时候都会出现重命名的现象,mel命令对重命名的对象很敏感,一旦执行到重命名的对象时maya就会报错,我就需要给他们改成不同的名称,然后再执行一次,变成了一个无聊的循环。
使用pymel,我根本不用顾及重命名的现象,而且代码超短,pymel的强大真让我爱不释手
你需要PyMEL v1.0.0以上的版本,来执行下面的代码
# -*- coding: UTF-8 -*-
from pymel.core import *
# 控制smooth的属性,可以将Global_Ctrl.Smooth改成你的属性
ctrlAttr = PyNode('Global_Ctrl.Smooth')
objs = ls(type='mesh')
[ctrlAttr >> polySmooth(obj)[0].divisions for obj in objs]