python中maya常用操作总结(初学者,请补充,感谢)

获取对象命令ls:

  •  返回场景中所有的节点列表:
import maya.cmds as cmds
 

cmds.ls()

精确到选择的物体:

import maya.cmds as cmds

cmds.ls(selection = True) 

精确到类型:

import maya.cmds as cmds

cmds.ls(type = "类型", long = True)

# type 是指的精确到保存类型是什么
# long 是指的保存是以长名(路径名)

名字中带有某某字符的:

import maya.cmds as mc

mc.ls(“*_cn_*”)

#可以用* 和 ?当作占位符,*是可以表示多个字母,?是代表一个字母

 ls的参数

文件操作

file() 命令

mc.file(new = True) #新建场景,可能出现创建失败


mc.file(new = True,force/f = True)

#强制创建场景(建议提前保存,否则会出现前面的东西全部删除)


mc.file(rename = "文件的地址")


mc.file(save = True,type = "mayaAscii")  #保存文件


mc.file("文件的地址",o = True,f = True) #强制打开文件


mc.file(q = True,sn =True,shn = True) #sn 场景名字  shn 文件名 获取文件的场景名


mc.file("导出文件路径",exportSelected = True,typ = "mayaAscii") #导出选择的物体


mc.file("导出文件路径",exportAll = True,typ = "mayaAscii")# 导出所有


mc.file("导入文件路径",i/import = True,ns = True) #i是导入  ns是返回文件的来源


mc.file(q = True,r = True) #获取导入的节点


mc.file("导入的路径",q= True,r=True) #获取从导入路径的导入节点

cmds.internalVar(userAppDir=True) #获取当前文件夹的目录

重命名命令rename():

 mc.rename(oldName,newName)      #返回类型:返回节点新名称

查询层级关系:

listRelatives()命令 返回物体的父类或子类

  • listRelatives("Mery_grp", parent = True)   #parent属性是获得Mery_grp的父物体

  • listRelatives("Mery_grp", chidren = True)  #chidren属性是获得他的子物体

  • listRelative("Mery_grp", allDescendents = True, fullPath = True) # allDescendents 是获得他此节点下所有的后代,包括子代 孙代  fullPath是指的是此节点自身从根节点开始的完整路径

  • listRelatives参数表:

修改层级关系 :

parent()命令  设定父级子级关系

cmds.parent("子物体","父物体")

cmds,parent("子物体",World=True) #解除父子层级关系

parent参数表:

给物体打组:

group 命令

cmds.group(mc.ls(sl = True ),name = "组名")    #把选中的物品打组,并命名

group命名参数 

 如何获取和更换物体的变换信息:

move 移动:

mc.move(x,y,z,"物体名字", r = True) # r是相对移动,相对于当前位置移动

mc.move(x,y,z,"物体名字", a = True) # a是绝对移动,坐标相对于世界坐标移动

rotate 旋转 :

x y z 是相对x,y,z的度数

mc.rotate(x,y,z,"物体名字", r = True)  # r是相对旋转,相对于当前位置旋转

mc.rotate(x,y,z,"物体名字", a = True)  # a是绝对旋转,坐标相对于世界坐标旋转

scale 缩放:

mc.scale(1,1,1,"物体名称",r = True)   # r是相对缩放

mc.scale(1,1,1,"物体名称",a = True)   # a是相对缩放

xform() 命令 获取物体的属性 :

_ts = mc.xform("物体的名字1",q = True,t = True)

#q是获取某个属性,t是获得transform属性 返回世界物体坐标
mc.xform("物体的名字2",t = _ts) #将物体1的移动属性赋给物体2,即控制2移动时,可以同步控制1
#若是旋转,可以将t 换成ro
#若是想要两个物体完全重合,则需要加上属性ws = True(世界坐标开启,默认为个体坐标(objectSpace))

节点创建:

各种创建:

mc.polySphere() #创建一个球,属性  r:半径 sx:x轴上的细分 sy:y轴上的细分 
mc.circle() #创建一个圆环,属性    s:细分数 nr:指向那个方向(nr是一个向量值,即为(0,1,0)等 )
mc.curve() #创建曲线,    属性    d:曲线的曲率 p 是曲线经过的点
mc.joint() #创建骨骼,    属性    p: 骨骼坐标
 

 createNode 创建节点 

mc.createNode("类型")    # 创建节点,属性:类型,可以创建任意节点

createNode 参数

获取节点的类型和属性

nodeType()命令 返回节点类型

mc.nodeType(节点) # 返回节点的类型

 listAttr()命令 返回节点属性

mc.listAttr("物体名字")  #返回所有属性
mc.listAttr("物体名字",k = True)  #返回可以k帧的属性
mc.listAttr("物体名字",l= True)  #返回可以锁定的属性
mc.listAttr("物体名字",ud= True)  #返回可以自定义的属性

getAttr()和setAttr()命令 查询和修改属性

 mc.getAttr("属性")
mc.setAttr("属性",数值) #修改属性   对于字符串属性,需要加上type = “string” 属性 

属性的连接和断开 

connectAttr() 命令 // disconnectAttr() 命令 连接节点//断开链接

cmds.connectAttr("pCube1.ry","pSphere1.ry")

#如果无法链接,可能是两个物体中被链接过,可以使用 f = True 去强制链接 

cmds.disconnectAttr("pCube1.ry","pSphere1.ry")

获取链接 

istConnections()命令

mc.listConnections("节点名称",s=True,d = False) #获取这个节点的上游节点,不获取下游  
#(参数)s 上游 d 下游 p 连接属性 t 节点类型
mc.listConnections("节点名称",s=True,d = False,p = True,t = "mesh")
#默认上游下游都获取

connectionInfo()命令

mc.connectInfo("节点名称.节点属性",sfd = True) #获取输入他的属性 sfd 上游  dfs 下游
# isSource 判断是否是源头 isDestination 判断是否是被链接的

创建约束

点约束 pointConstraint() 可以实现约束,也可以查询约束

mc.pointConstraint("约束对象","被约束的对象",mo = True, name = " ball_cons ")
 #mo 保持偏移
mc.pointConstraint("查询对象",q = True, n =True) #返回约束节点的名字
mc.pointConstraint("查询对象",q = True, tl =True) #返回约束他的物体
mc.pointConstraint("查询对象",q = True, wal =True) #返回权重比例

旋转约束 orientConstraint()

mc.orientConstraint("约束对象","被约束的对象",mo = True, name = " ball_cons ")
 #mo 保持偏移
mc.orientConstraint("查询对象",q = True, n =True) #返回约束节点的名字
mc.orientConstraint("查询对象",q = True, tl =True) #返回约束他的物体
mc.orientConstraint("查询对象",q = True, wal =True) #返回权重比例

父子约束 parentConstraint() 同时约束物体位移和旋转

mc.parentConstraint('被约束的',"约束的")

设置关键帧

setKeyframe()命令

mc.setKeyframe("物体名字") #设置所有属性关键帧
#at = [] 设置属性
#tx ty tz 移动
#rx ry rz 旋转
#sx sy xz 缩放
#t r s 全部,不分x,y,z
#v 可以调节属性的大小 
#time 控制帧数 

keyframe()命令 查询/编辑

mc.keyframe("物体名称",q = True, tc = True) #tc = timeChange 
#查询帧的改变,返回帧的列表
 mc.keyframe("物体名称",q = True, vc = True) 
#查询每一帧上有那些数值
#at = ry 查旋转在y轴的属性变化
frame_tc = mc.keyframe("名字",at = "ry",q = True,tc = True) #获取所有的帧数
mc.keyframe("名字",
at = "ry", #编辑的属性
e = True,#编辑模式
time = (min(frame_tc),max(frame_tc)),#帧的范围
tc = 5, #变化
r = True)#相对的
#将这动画往后移动5帧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值