其实作为一个设置或者技术指导,学习到一定程度必须要接触编程,比如Mel、Python、C++
Api等程序语言,这些教程主要是转载胡泳滨的Maya
Python学习教程,现在开始第一章-MayaPython教程四之实战篇。
上一篇,我们结束了演习,在这一篇中,我们将进入实战!我们将学习写一些实用的代码,以使我们的工作高效化。作为简易教程,我的范例代码的难度不会很大,学习者也可以触类旁通,重组这些简单的“零件”,发挥自己的“组合能力”。其实这个世界上真正复杂的“东西”很少,但是复杂的“组合”却是很多。复杂的“组合”往往需要自己创造,发挥自己的想象力吧。
4.1 自制吸附工具
事实上,Maya自己也有吸附工具,可以吸附很多场景中的元素。我们下面的代码的主要是用来吸附中心点位置的。在Maya场景中,如果遇到有很多物体时,Maya自带吸附功能可能会有点不太好使(会吸到别的物体)。但也有可能是我Maya掌握不全面。(事实上,操作上我更习惯Max,因为学的比较早,但从软件结构上,更偏爱Maya)OK,不废话了,先看看下面的代码吧:
#
执行代码前,请大家在自己的场景里建2个物体(任意),我们这里是pCube1和pSphere1
def
snap():
selection = mc.ls(sl = 1) # 把所选的物体命令存入变量selection
pos = mc.xform(selection[1],q = 1,t = 1,ws = 1) #
询问所选的第2个物体的位置信息,并存入变量pos
mc.xform(selection[0],t = pos,ws = 1) # 把这个pos变量的值给所选的第一个物体
先执行以上代码,什么也不会发生,因为我们现在已经定义了一个函数,这个函数叫snap,接下来,我们要执行这个函数了。先选pCube1,然后按Shift加选pSphere1,执行函数:
snap()
我们看到,pCube1的位置完全移到pSphere1的位置上去了。如果我们撤消操作,先选pSphere1,再加选pCube1,执行函数后结果就成了pSphere1的位置完全移到pCube1的位置上去了。这里我们看到选择的顺