Python for Maya DCC工具插件开发学习记录(一)

参考学习链接 代码和上手难度比较简单,但是没有字幕…
18版的Maya官方API文档
关于python中的中文使用解决方法

写在最前面

干到啥就写点啥,不过也是从入门开始啦,暂定为第一篇吧。本次记录和往常一样用于自己复习,但如果能对别人有所帮助,那荣幸至极;

Maya默认的脚本支持Mel与python,写工具则需要使用C++或者C#或者Python,其中C++与C#不能直接使用,需要编译,且仅能写工具,但速度来说较Python好,但Python 上手简单且兼顾工具和脚本编写,故在此选择使用Python进行学习;

下面两张图大致讲了下关于各种API相关的介绍,看不懂可以使用有道翻译词典拍摄翻译!
在这里插入图片描述
在这里插入图片描述另外,python对于格式的把握非常的严格,最好用Tab来控制缩进,否则一直报错,明明看起来写的一样,结果就是疯狂报错,调了一晚上,气的想骂人…

一.简单尝试及简单语法

1.使用Python脚本第一步,先在脚本里输入如下:

from maya import cmds

给我的感觉类似于#include的用法;

2.一串简易的代码,包括:创建物体,设置父子集,锁定

from maya import cmds
#创建物体
mysphere = cmds.polySphere()
mysphereShape = mysphere[0]

circle = cmds.circle()
circleShape   = circle[0]

#父子集
cmds.parent(mysphereShape,circleShape)

#锁定
cmds.setAttr(mysphereShape+".translate",lock=True)
cmds.setAttr(mysphereShape+".rotate",lock=True)
cmds.setAttr(mysphereShape+".scale",lock=True)

cmds.select(circleShape)

3.python中的if esle

如下图
在这里插入图片描述
下面的代码是通过判断是否选择了物体,如果选择物体的话,输出选择的物体名,否则,输出场景内所有物体,结果看下面的图;

from maya import cmds 

selection = cmds.ls(selection=True)

if len(selection) == 0:
    
    selection = cmds.ls(dag=True,long=True)

print selection

在这里插入图片描述

4.排序

sort排序,reverse用来倒序

from maya import cmds 

selection = cmds.ls(selection=True)

if len(selection) == 0:
    
    selection = cmds.ls(dag=True,long=True)

selection.sort(key=len,reverse=False)#sort排序,reverse用来倒序

print selection

在这里插入图片描述
5.for循环
在这里插入图片描述下面两个代码的区别在于最后一句话,两个都是用来输出场景中物体的名称的

from maya import cmds 

selection = cmds.ls(selection=True)

if len(selection) == 0:
    
    selection = cmds.ls(dag=True,long=True)

selection.sort(key=len,reverse=True)

for obj in selection:
    print obj.split()

在这里插入图片描述

from maya import cmds 

selection = cmds.ls(selection=True)

if len(selection) == 0:
    
    selection = cmds.ls(dag=True,long=True)

selection.sort(key=len,reverse=True)

for obj in selection:
    print obj.split("|")[-1]

在这里插入图片描述

6.while循环

在这里插入图片描述
用于输出物体的属性

from maya import cmds 

selection = cmds.ls(selection=True)

if len(selection) == 0:
    
    selection = cmds.ls(dag=True,long=True)

selection.sort(key=len,reverse=True)

for obj in selection:
	shortName = obj.split("|")[-1]
	
children  = cmds.listRelatives(obj,children=True,fullPath=True)or[]

if len(children) == 1:
	child = children[0]
	objType = cmds.objectType(child)
else:
	objType = cmds.objectType(obj)

print objType

在这里插入图片描述
7.int to string,python中的强制转换
参考下图
在这里插入图片描述
8.另外三种字符串加减法

分别是创建字典和利用标识符%
在这里插入图片描述以及.format,可以玩出很多花来
在这里插入图片描述在这里插入图片描述

9.变量

全局变量,内部变量等,和往常其他语言一样就是了;
在这里插入图片描述
10.类

python中的类,和其他语言类似
在这里插入图片描述

python类的继承

在这里插入图片描述当我们在子类里定义了新的同名函数,会覆盖原来的函数,否则就继承父类的其他函数

在这里插入图片描述


二.环境安装

1.pycharm安装第一步设置
百度直接搜索就好了,安装基本点下一步,完事后,需要改动的地方在设置里,如下图,找到Maya安装目录下的mayapy.exe;

  • 9
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值