··············
import maya.cmds as
mc
import os
#添加一个"Maya动画收集数据"窗口设置动画开始播放
#win = mc.window(title = "Maya动画收集数据", w = 400, h = 40)
#mc.frameLayout( lv=False )
#mc.playbackOptions( minTime=0, maxTime=20 )
mc.select("jamie_arm_R", "jamie_elbow_R")#输入模型骨骼,最后输出的就是这些骨骼对应的数据
sel = mc.ls(sl = 1)
maxT = mc.playbackOptions(query = True,
maxTime = True)
minT = mc.playbackOptions(query = True,
minTime = True)
os.remove("D:\RotationInfo.txt")#在添加数据之前删除原存数据的txt
#定义GetRot方法
def GetRot(time):
info = []
#t
= mc.currentTime(query = True)
t = mc.currentTime(time)
for i in sel:
rotx = mc.getAttr(i + ".rx")
roty = mc.getAttr(i + ".ry")
rotz = mc.getAttr(i + ".rz")
iposInfo = [i,
rotx, roty, rotz]
info.append(iposInfo)
info_str = ""
for i in info:
info_str = info_str + "rn" + str(i[1]) + "rn" + str(i[2]) + "rn" + str(i[3])
#info_str
= info_str + i[0] + "rnrotX:" + str(i[1]) + " rotY:" + str(i[2]) + " rotZ:" + str(i[3]) +
"rnrn"
#info_str
= str(t) + "rnrn" + info_str
f = open("D:\RotationInfo.txt" , "a")#打开要存数据的txt,若不存在则新建一个
f.write(info_str)
f.close
for i in range(int(minT), int(maxT + 1)):
GetRot(i)
#mc.showWindow(win)
#mc.text(label = "选择动画的其中一帧,然后点击“收集数据”执行数据统计", h = 50)
#mc.button(label = "播放动画", command = "mc.play(state = 1)")
#mc.button(label = "收集数据", command = "GetRot()")
#mc.button(label = "结束播放", command = "mc.play(state = 0)")