Python for Maya 学习笔记002 创建球体

我们先来创建一个球(nurbsSphere)

首先你需要打开 Maya 的脚本编辑器 Script Editor,用过Maya的同学应该知道在哪里打开,最方便的方法就是在你的Maya界面的右下角,有个图标,没错点击这个图标就能很方便的打开这个 Maya Script Editor 的脚本编辑器了。

接下来有两个标签一个 MEL 一个 Python 点击 Python 标签就可以输入代码了。

Python对首行空格要求的非常严格,Python称之为缩进,下面的代码都是首行没有经过缩进的,关于缩进后面我们再讲解。
Python输入:

maya.cmds 这是 MEL 命令的 Python 包装,可以代替 MEL 使用 使用回车或者上面蓝色的向右箭头即可实行代码。执行后你会发现你刚才输入的代码部件了,要想执行后代码还保留到Python面板中,你可以全选这段代码,然后再回车或者

回车后就能看到反馈结果如:

     # 是代表注释的意思,是给人看的,别笑!这句话听起来有点别扭,但它就是给人看的,每一行加了 # 号 后面的计算机是不会参与计算的,使用你可以使用 # 来注释你的代码。
     Result:返回的结果,也就是当你输入 maya.cmds 执行后 Maya会告诉你 这是一个 Python 命令模块,所有的Maya命令都封装在 maya.cmds 模块中,具体的文件在 __init__.pyc 中,你可以看到这个文件的后缀是 .pyc 我们按照这个路径去找到这个文件。

     这个 .pyc 的文件文件就是 Python 的文件 但是 .pyc  的文件是一种二进制的文件,里面都是乱码,使人的都看不懂,但是它运行起来很快,因为是经过 Python 编译后的,所以我们在保存Python文件的时候需要保存 上面的那中 .py 格式的,这种 .py 格式就可以阅读了,等到你需要提高运行速度 或者想将你的代码加密的时候可以 编译成 .pyc 文件。
     OK!上面的这句Maya Python命令虽然运行起来没报错(报错为红色的反馈 # Error: )但是确实错误的,因为 maya.cmds 是一个模块,所以我们就要把这个 maya.cmds 模块导入到 Python 中 就需要用到 import
Python输入:

     这才是正确的,并且你可以看到 import 被高亮了,并且也好读了。
     Maya的命令模块我们导入进来了,下面我们就需要创建一个球体 对象了(nurbsSphere )
Python输入:

执行后可以看到场景中出现了一个 nurbsSphere1 球体

     maya.cmds是命令模块 我需要一个创建球体的命令,使用就需要加上 .sphere 意思是 maya.cmds 命令模块里的 sphere球体创建命令。后面的英文 ( ) 括号是球体命令的参数,我们可以让球体变大点,就需要在这个括号里加上参数。
     删除那个球体。
Python输入:

     可以看到球边大了 这里我就不放图片了。 radius 英文就是半径的意思后面带的参数是7 意思是 半径的值为 7
     其实后面还有很多的关于球体的参数,具体怎么加参数就需要帮助文档了点击 Script Editor 脚本编辑器 菜单 Help 下面的 Help on Python弹出网页我们来查看这个球体具体有哪些参数。
     在弹出的网页中我们在搜索框中输入 sphere 回车 可以看到有两个球体 一个 polySphere 一个 sphere,前面的是多边形球体,不是我们需要的,所以我们选择第二个。注意在命名方式的时候如果是两个单词连在一起的 第一给单词的首字母是小写的第二个单词字母开头就是大写的,比如 polySphere
     点开后会发现有好多参数,灰色底纹的都是参数括号里的是简写,比如我们之前创建的半径 radius = 7可以写成 r=7
     后面有三个颜色的 C Q E 分别代表着这个参数是 create 创建 query查询 edit编辑作用。拉到底下还有一些示例的代码,你可以拿到Maya Python脚本编辑器运行试试,看是干什么用的。遇到不明白的可以使用这个网页来查看你需要的命令。
     我们试试用 name(n)这个参数给刚才的球体起个名字
删除刚才创建的球体
Python输入:

     创建后你能看到它的名字已经变了,注意两个参数的中间有个英文的逗号 , 代表两个参数。而名称name等号后面的名称是加了两个英文的双引号“ ”符号,这个符号的位置在回车的左边,只要被这个双引号扩起来的就代表是字符串,而且这个双引号 是成对出现的。Python的这个双引号还可以是 单引号 ‘ ‘  或 “””  “”” 或者 ”’  ”’,至于为什么会有这么多,到底用哪个,后面我们在说,现在你只要记得字符串的左右都是一样的就行了。
     那到底什么是字符串,字符串是一种数据类型,比如后面我们还要讲到整数,浮点数什么的。字符串还和编码有关系,比如你想做个中文的插件,字符串换成中文就在Maya中出现乱码,所以需要进行你敢转换编码,这个说起来比较抽象,后面我们用实例去讲解,你可以google一下什么是字符串。
我们还可以将这个bigSphere的大球创建出来的时候就在Y轴10的位置上

从刚才这里name参数后面有缩写(n),所以这个name名称是可以用 n 缩写的,比如刚才的代码我都缩写一下。

     这样代码就少了不少了
     但是你会发现,如果我还想对这个球进行操作还得在每一行中使用 maya.cmds ,没错只要用到maya的命令只能这样,但是可以将这个maya.cmds模块导入到较短的命名空间中,比如Maya Python官方帮助文档中经常使用的案例用的命名空间是 cmds 如:

但是我更喜欢用 ms 如

     mc 更简单 意思是 maya.cmds 各取一个字母,而且比那个还短,当然你喜欢可以随便命名,甚至使用简单的字母 a 代替,但是我告诉你最好不要这样,代码多了你会后悔使用这么常用的名称的。
as就是相同的意思 ,翻译下来就是 导入maya.cmds模块命令到 mc 中,两个都可以同时使用,但是最好不要这样,以便混乱了。那刚才的那些代码就可以写成

看一看是不是更简单了,好了这段代码就写完了,如果你的代码想拷贝走或者是给其他同事用,就点击上面的或者 File 菜单中的 Save Script… 选个路径,起个名字,注意文件类型一定要是Python files这样保存的文件就是 .py 为后缀的 Python 文件了

     如果下次想在使用这个脚本只需要在Maya编辑器里点击 上面的 或者 File 菜单中的 Load Script…  ,找到那个脚本 Open打开即可,可以看到后缀是.py格式的
 
 我们还可以选择所有的代码,然后使用鼠标中键,将代码拖放到工具架Shelf上
下次直接点击就可以执行这个创建球体脚本,你可以在这个按键上右键点击 Edit 来给他编辑个名称
然后点击Shelves标签,给他命名
 
      也可以使用上面的 Icon Preview 给他换个图标 ,看看我换完的图标
     下次直接点击这个图标就能以Python脚本的形式创建一个球体了。
     今天的笔记要点:
  1. Maya Script Editor Python脚本编辑器的简单使用
  2. 简单的maya.cmd的球体命令参数使用
  3. 帮助的使用

发表评论

电子邮件地址不会被公开。 必填项已用*标注