示例#1
0
 def __init__(self, curve_sel, vertex_list, chain_geo):
     self.curve_sel = curve_sel
     self.verts = vertex_list
     self.chain_geo = chain_geo
     self.find_length = Find_Out()
     
     self.link_length = self.find_length.edge_length(self.verts)
     self.chain_length = self.find_length.curve_length(self.curve_sel)
     self.link_total = int(self.chain_length/self.link_length)
     self.motion_path_name = str(self.chain_geo) + '_Path'
     
     cmds.pathAnimation(self.chain_geo, name = self.motion_path_name, fractionMode = True, follow= True, followAxis = 'x', 
             upAxis = 'y', worldUpType = 'object', startTimeU = 1, endTimeU = self.link_total, c = self.curve_sel)
             
     cmds.setKeyframe(self.motion_path_name + '.frontTwist', v = 0.0, t = 1 )
     cmds.setKeyframe(self.motion_path_name + '.frontTwist', v = 60.0*self.link_total, t = self.link_total )
     
     cmds.keyTangent(self.motion_path_name + '.uValue', itt = 'linear', ott = 'linear' )
     cmds.keyTangent(self.motion_path_name + '.frontTwist', itt = 'linear', ott = 'linear')
     
     cmds.snapshot( self.chain_geo, constructionHistory=True, startTime=1, endTime = self.link_total, increment=1, update = 'animCurve', 
             name = str(self.chain_geo) + '_snapShot' )
     
     self.chain_group = cmds.group( em=True, name=str(self.chain_geo) + '_geo_grp' )
     
     self.chain_list = cmds.listRelatives(str(self.chain_geo + '_snapShotGroup'))
     
     for dummy_geo in self.chain_list:
         cmds.delete(icn = True, ch = True)
         cmds.parent(dummy_geo, self.chain_group)
示例#2
0
def sweepPipe(circle, pipeCurve):
	numberOfCVs = cmds.getAttr('%s.cp' % pipeCurve[0], size=1)
	motionPath = cmds.pathAnimation("%s" % circle[0], curve=pipeCurve[0], follow=True, startTimeU=1, endTimeU=numberOfCVs)
	cmds.selectKey("%s.uValue" % motionPath)
	cmds.keyTangent( itt="linear", ott="linear")
	pipeSweep = cmds.snapshot(circle, startTime=1, endTime=numberOfCVs)
	return pipeSweep
示例#3
0
def doReplicate():

    the_name = cmd.textFieldGrp("name", query=True, text=True)
    the_incr = cmd.floatSliderGrp("incr", query=True, value=True)

    selection = cmd.ls(selection=True, long=True)

    element = selection[0]
    curve = selection[1]

    # Build motion path
    the_motion_path = cmd.pathAnimation(element,
                                        curve=curve,
                                        fractionMode=True,
                                        follow=True,
                                        followAxis="z",
                                        upAxis="y",
                                        startTimeU=1,
                                        endTimeU=100)

    # Flat animation curves
    cmd.keyTangent(the_motion_path,
                   inTangentType="linear",
                   outTangentType="linear")

    # Create animation snapshot
    the_snapshot = cmd.snapshot(element,
                                name=the_name,
                                endTime=100,
                                increment=the_incr)
 def snapshot(model, time):
     cm.currentTime(time)
     snap_node = cm.snapshot(model, st=time, et=time, ch=0)
     snap = cm.listRelatives(snap_node, c=1)[0]
     snap = cm.parent(snap, w=1)
     cm.delete(snap_node)
     return snap
示例#5
0
	def motionPathTool(self, status):
		if status == 'On':
			for i in x:
				a = cmds.snapshot ( i, motionTrail = 1, increment = 1, startTime = cmds.playbackOptions( query = 1, minTime = 1 ), endTime = cmds.playbackOptions( query = 1, maxTime = 1 ) )
				cmds.setAttr( str(a[0]) + '.showFrames', 1)
		if status == 'Off':
			print 'need to fix'
示例#6
0
	def update(self, *args):
		# Update locators
		for item in cmds.textScrollList(self.objectUI, q=True, ai=True):
			try:
				pc = cmds.listRelatives(item, type='parentConstraint')[0]
				target = cmds.parentConstraint(pc, q=True, tl=True)[0]
				cmds.parentConstraint(target, pc, e=True, mo=True, )

			except:
				print 'Unable to update "{}". Skipped.'.format(item)

		# Update Motion Paths
		for item in cmds.textScrollList(self.motionTrailUI, q=True, ai=True):
			try:
				cmds.snapshot(cmds.listConnections(item, type='motionTrail')[0], e=True,
				              st=cmds.playbackOptions(q=True, min=True), et=cmds.playbackOptions(q=True, max=True))
			except:
				print 'Unable to update "{}". Skipped.'.format(item)
		return
示例#7
0
def addCurrentSelection():
    global allSelections
    global currentSelection
    global trailName
    global trailNamesAll
    global keyAttribs
    global dictCheck
    #allSelections = {}
    #trailNamesAll = []
    #dictCheck = {}
    currentSelection = cmds.ls(sl=True)
    #if currentSelection in allSelections.keys():
    #print "already in all selections list"
    #print "this is where to toggle vis"
    #else:
    if checkIfRedo() == False:
        print "adding the new selection to all selections list"
        allKeys = cmds.keyframe(currentSelection,
                                attribute=keyAttribs,
                                query=True)
        amountKeys = len(allKeys)
        nameKey = ''.join(currentSelection)
        allSelections[nameKey] = amountKeys
        startFrame = allKeys[0]
        endFrame = allKeys[-1]
        cmds.snapshot(currentSelection,
                      constructionHistory=True,
                      startTime=startFrame,
                      endTime=endFrame,
                      increment=1,
                      u="animCurve",
                      mt=True)
        print allSelections
    else:
        print "that item has not been changed"
        visTrailName = cmds.listConnections(currentSelection, t="motionTrail")
        visTrailNameHandle = cmds.listConnections(visTrailName[0], t="shape")
        print visTrailNameHandle[0]
        if cmds.getAttr(visTrailNameHandle[0] + ".visibility") == 0:
            cmds.setAttr(visTrailNameHandle[0] + ".visibility", 1)

        elif cmds.getAttr(visTrailNameHandle[0] + ".visibility") == 1:
            cmds.setAttr(visTrailNameHandle[0] + ".visibility", 0)
def createTrails(sel=None):
    '''Creates motion trails on selected nodes'''
    if not sel:
        #get selected nodes
        sel = cmds.ls(sl=True)
        
    #delete existing motion trails
    deleteTrails(sel)
    
    #see if time range has been selected
    playBackSlider = mel.eval('$tmpVar=$gPlayBackSlider')
    start, end = cmds.timeControl(playBackSlider, q=True, rangeArray=True)
    if (end-start!=1):
        sTime = start
        eTime = end
    else:
        #no selection done, get min and max playback values
        sTime = cmds.playbackOptions(q=True, min=True)
        eTime = cmds.playbackOptions(q=True, max=True)
    
    #create new trails
    cmds.snapshot(motionTrail=True, increment=1, startTime=sTime, endTime=eTime)
示例#9
0
 def motionPathTool(self, status):
     if status == 'On':
         for i in x:
             a = cmds.snapshot(i,
                               motionTrail=1,
                               increment=1,
                               startTime=cmds.playbackOptions(query=1,
                                                              minTime=1),
                               endTime=cmds.playbackOptions(query=1,
                                                            maxTime=1))
             cmds.setAttr(str(a[0]) + '.showFrames', 1)
     if status == 'Off':
         print 'need to fix'
示例#10
0
def convertMotionToCurve(target,start=False,end=False,accuracy=100,increment=1):
    if not start:
        start = cmds.playbackOptions(q=1,min=1)
    if not end:
        end = cmds.playbackOptions(q=1,max=1)
    cmds.select(target)
    motionTrail = cmds.snapshot(motionTrail=1,startTime=start,endTime=end,increment=increment,update='animCurve')
    # motionTrail[0] = shape, [1] = xform
    pts = cmds.getAttr(motionTrail[0]+'.pts')
    ptsFix = [f[:-1] for f in pts]
    # make duplicate curve
    newCurve = cmds.curve(d=1,ws=1,p=ptsFix)
    cmds.rebuildCurve(newCurve,rt=0,s=accuracy,kr=0)
    cmds.delete(motionTrail)
    return newCurve
 def CreateAni(self, *args):
     offtX = float(
         mc.textField('offsetX',
                      query=True,
                      text=True,
                      alwaysInvokeEnterCommandOnReturn=True))
     offtY = float(
         mc.textField('offsetY',
                      query=True,
                      text=True,
                      alwaysInvokeEnterCommandOnReturn=True))
     offtZ = float(
         mc.textField('offsetZ',
                      query=True,
                      text=True,
                      alwaysInvokeEnterCommandOnReturn=True))
     checkHi = int(mc.checkBox("setZero", query=True, v=True))
     #创建cube
     if mc.objExists("myAniCube"):
         mc.delete("myAniCube")
     self._myCube = mc.polyCube(n="myAniCube")[0]
     f = open(self._dateFileName)  # 返回一个文件对象
     line = f.readline()  # 调用文件的 readline()方法
     FrameValue = 0
     SecTime = 0
     rotaFV = ""
     while line:
         #print line                 # 后面跟 ',' 将忽略换行符
         # print(line, end = '')   # 在 Python 3中使用
         if line.find("Index") >= 0:
             #读取帧数,并设置帧数
             FrameFL = re.findall(r"Index:(.+?),", line)
             if FrameFL:
                 FrameNum = int(FrameFL[0])
                 if FrameNum % 4 == 0:
                     FrameValue += 1
                     mc.currentTime(FrameValue, u=False)
                     #读取旋转值,并旋转
                     rotaFV = re.findall(r"\((.+?)\)", line)
                     if rotaFV:
                         rotaFL = rotaFV[0].split(",")
                         mc.rotate((float(rotaFL[0]) + offtX) * checkHi,
                                   -float(rotaFL[1]) + offtY,
                                   float(rotaFL[2]) + offtZ,
                                   self._myCube,
                                   a=True)  #加偏移值,设置x轴
                         mc.setKeyframe("%s.rotate" % self._myCube)
                         #设置位置值
                         if self._tranDVBG:
                             mc.move(0,
                                     0,
                                     self._TranValue *
                                     self._tranDVBG[FrameValue - 1],
                                     self._myCube,
                                     r=True,
                                     os=True,
                                     wd=True)
                         else:
                             mc.move(0,
                                     0,
                                     self._TranValue,
                                     self._myCube,
                                     r=True,
                                     os=True,
                                     wd=True)
                         mc.setKeyframe("%s.t" % self._myCube)
         elif line.find("save") >= 0:
             SecTime += 1
             # print SecTime
         else:
             pass
         line = f.readline()
     f.close()
     tmpSnap = []
     tmpSnapShape = ""
     if FrameValue >= 1:
         mc.playbackOptions(min=1, ast=1, max=FrameValue, aet=FrameValue)
         tmpSnap = mc.snapshot(self._myCube,
                               mt=True,
                               startTime=0,
                               endTime=FrameValue,
                               increment=1)
         tmpSnapShape = mc.listRelatives(tmpSnap[0])[0]
         print tmpSnapShape
         mc.setAttr("%s.showFrames" % tmpSnapShape, 1)
         mc.currentTime(1, u=True)
         mc.textField('startFrame',
                      edit=True,
                      text="1",
                      alwaysInvokeEnterCommandOnReturn=True)  #设置界面起始帧
         mc.textField('endFrame',
                      edit=True,
                      text=FrameValue,
                      alwaysInvokeEnterCommandOnReturn=True)  #设置界面结束帧
 def CreateAni(self, *args):
     #创建cube
     if mc.objExists("myAniCube"):
         mc.delete("myAniCube")
     self._myCube = mc.polyCube(n="myAniCube")[0]
     f = open(self._dateFileName)  # 返回一个文件对象
     line = f.readline()  # 调用文件的 readline()方法
     FrameValue = 0
     SecTime = 0
     rotaFV = ""
     while line:
         #print line                 # 后面跟 ',' 将忽略换行符
         # print(line, end = '')   # 在 Python 3中使用
         if line.find("Index") >= 0:
             #读取帧数,并设置帧数
             FrameFL = re.findall(r"Index:(.+?),", line)
             if FrameFL:
                 FrameNum = int(FrameFL[0])
                 if FrameNum % 4 == 0:
                     FrameValue += 1
                     mc.currentTime(FrameValue, u=False)
                     #读取旋转值,并旋转
                     rotaFV = re.findall(r"\((.+?)\)", line)
                     if rotaFV:
                         rotaFL = rotaFV[0].split(",")
                         mc.rotate(rotaFL[0],
                                   -float(rotaFL[1]),
                                   rotaFL[2],
                                   self._myCube,
                                   a=True)
                         mc.setKeyframe("%s.rotate" % self._myCube)
                         #设置位置值
                         if self._tranDVBG:
                             mc.move(0,
                                     0,
                                     self._TranValue *
                                     self._tranDVBG[FrameValue - 1],
                                     self._myCube,
                                     r=True,
                                     os=True,
                                     wd=True)
                         else:
                             mc.move(0,
                                     0,
                                     self._TranValue,
                                     self._myCube,
                                     r=True,
                                     os=True,
                                     wd=True)
                         mc.setKeyframe("%s.t" % self._myCube)
         elif line.find("save") >= 0:
             SecTime += 1
             # print SecTime
         else:
             pass
         line = f.readline()
     f.close()
     tmpSnap = []
     tmpSnapShape = ""
     if FrameValue >= 1:
         mc.playbackOptions(min=1, ast=1, max=FrameValue, aet=FrameValue)
         tmpSnap = mc.snapshot(self._myCube,
                               mt=True,
                               startTime=0,
                               endTime=FrameValue,
                               increment=1)
         tmpSnapShape = mc.listRelatives(tmpSnap[0])[0]
         print tmpSnapShape
         mc.setAttr("%s.showFrames" % tmpSnapShape, 1)
         mc.currentTime(1, u=True)
示例#13
0
def makeTreadObj(*args):
    """This function makes a tread out of the selected object"""

    usePreMade = cmds.radioButton("premadeGeo", query=True, select=True)
    
    if usePreMade:
        renamePreMade()
        return
    
    useProxy = cmds.checkBox("useProxy", query=True, value=True)
    
    if useProxy:
        if cmds.objExists("TreadProxyGeo"):
            userObj = "TreadProxyGeo"
        else:
            userObj = makeProxyGeo()
    else:
        userObj = cmds.textFieldButtonGrp("treadName", query=True, text=True)
        
        if not userObj:
            cmds.confirmDialog(t="Select a piece", m="Please choose a piece to build a tread or tick proxy option")
            return
    
    cmds.select(userObj, replace=True)
    
    # Verify if we want to use the actual measures of the object
    useBbox = cmds.checkBox("bboxCheck", q=True, v=True)
    
    if useBbox:
    
        bbox = cmds.exactWorldBoundingBox(userObj)
        radius = data.curveRadius
        perimeter = 2*3.14159*radius
        bboxDistance = abs(bbox[2]-bbox[-1])
        bboxDistance*=.85
        amount = round(perimeter / bboxDistance)
        
    else:
        amount = cmds.intSliderGrp("treadAmount", q=True, v=True)
     
    
    cmds.select(data.treadCircle, add=True)
    pathAnimation = cmds.pathAnimation(fm=True, f=True, fa="z", ua="y", stu=1, etu=amount, wu=(0,1,0), iu=False)
    
    # Adjust animCurve
    cmds.selectKey("{}_uValue".format(pathAnimation), time=(1,amount))
    cmds.keyTangent(itt="linear", ott="linear")
    
    #Creating snapshot
    cmds.snapshot(n="TreadSnapShot", ch=False, i=1, st=1, et=amount, update="animCurve")
    cmds.DeleteMotionPaths()
    cmds.select("TreadSnapShotGroup", r=True)
    
    if not amount == 1:
        data.treadMesh = cmds.polyUnite(n="TreadMesh", ch=False)[0]
        data.treadMesh = checkDuplicatedName(data.treadMesh)
        
    else:
        piece = cmds.listRelatives(cmds.ls(selection=True))[0]
        cmds.select(piece)
        cmds.parent(world=True)
        piece = cmds.rename("TreadMesh")
        cmds.DeleteHistory()
        
    cmds.delete("TreadSnapShotGroup")
        
    cmds.select(data.treadMesh, r=True)
    cmds.CenterPivot()
    
    # Hide original geo
    cmds.setAttr("%s.visibility"%userObj, False)

    # Delete Proxy geo if used
    if cmds.objExists("TreadProxyGeo"):
        cmds.delete("TreadProxyGeo")
示例#14
0
def createMotionTrail(obj, typ):
	camera = None
	motionTrail = None
	pivot = None

	# Query Time Range
	playStart = cmds.playbackOptions(query=True, min=True)
	playEnd = cmds.playbackOptions(query=True, max=True)

	# Master Motion Trail Group
	mtGrp = createMasterGroup()

	# Get Camera
	focus = cmds.getPanel(wf=True)
	if cmds.getPanel(to=focus) == component.modelPanel:
		focusCam = cmds.modelPanel(focus, q=True, cam=True)
		focusCamShape = cmds.listRelatives(focusCam, shapes=True)[0]

		if cmds.objectType(focusCamShape) == component.camera:
			camera = focusCam

	# Create Motion Trail
	if typ == component.motionObject or typ == component.motionCamera:

		# Create Pivot
		if not queryPivot(obj):
			pivot = createPivot('{}_pivot#'.format(obj))
			cmds.parent(pivot, mtGrp)
			cmds.parentConstraint(obj, pivot, mo=False)
		else:
			pivot = obj

		# Motion Camera
		if typ == component.motionCamera:
			if camera:
				motionTrail = cmds.snapshot(pivot,
				                            camera,
				                            n='{}_motionTrail0'.format(pivot),
				                            mt=True,
				                            i=1,
				                            startTime=playStart,
				                            endTime=playEnd,
				                            anchorTransform=True,
				                            )

		# Motion Object
		elif typ == component.motionObject:
			motionTrail = cmds.snapshot(pivot,
			                            n='{}_motionTrail0'.format(pivot),
			                            mt=True,
			                            i=1,
			                            startTime=playStart,
			                            endTime=playEnd,
			                            ch=True,
			                            )

		if motionTrail:
			motionTrailShape = cmds.listRelatives(motionTrail[0], shapes=True)[0]
			motionTrailMainNode = motionTrail[1]

			# Set Handle Attrs
			cmds.setAttr('{}.trailDrawMode'.format(motionTrailShape), 1)
			cmds.setAttr('{}.overrideEnabled'.format(motionTrailShape), 1)
			cmds.setAttr('{}.overrideDisplayType'.format(motionTrailShape), 2)

	# Create Ghost
	elif type == component.ghost:

		if cmds.objectType(cmds.listRelatives(obj, shapes=True)[0]) == 'mesh':
			motionTrail = cmds.snapshot(obj,
			                            n=obj + '_ghost_#',
			                            i=1,
			                            startTime=playStart,
			                            endTime=playEnd,
			                            ch=True,
			                            u='always')

			motionTrailShape = motionTrail[0]
			motionTrailMainNode = motionTrail[1]

			cmds.parent(motionTrailShape, mtGrp)

			# Set Ghost Attrs
			cmds.setAttr('{}.overrideEnabled'.format(motionTrailShape), 1)
			cmds.setAttr('{}.overrideDisplayType'.format(motionTrailShape), 1)

	if motionTrail:
		cmds.parent(motionTrail[0], mtGrp)

	return [pivot, motionTrail]
示例#15
0
    def motionTrail(self, *args):

        # Get Vars

        getType = cmds.radioCollection(self.mtType, q=True, sl=True)

        selected = cmds.ls(sl=True)
        objList = []
        camList = []

        playStart = cmds.playbackOptions(query=True, min=True)
        playEnd = cmds.playbackOptions(query=True, max=True)

        if selected:

            # Master Motion Trail Group

            mtGrp = 'bboy_motionTrail_grp'

            if not cmds.objExists(mtGrp):
                cmds.group(n=mtGrp, em=True)

            # Create Lists

            for obj in selected:

                objShape = cmds.listRelatives(obj, s=True)[0]

                if cmds.objectType(objShape) == 'camera':
                    camList.append(obj)

                else:
                    objList.append(obj)

            if not camList:
                focus = cmds.getPanel(wf=True)

                if cmds.getPanel(to=focus) == 'modelPanel':
                    focusCam = cmds.modelPanel(focus, q=True, cam=True)
                    focusCamShape = cmds.listRelatives(focusCam,
                                                       shapes=True)[0]

                    if cmds.objectType(focusCamShape) == 'camera':
                        camList.append(focusCam)
            # print camList
            # print objList

            if camList:
                for obj in objList:

                    if 'motion' in getType:
                        print 'motion'

                        allItems = cmds.textScrollList(self.mt1TextScroll,
                                                       q=True,
                                                       ai=True)

                        if allItems and obj in allItems:

                            loc = obj

                        else:
                            if 'mt_pivot' not in obj:
                                loc = cmds.spaceLocator(n=obj +
                                                        '_mt_pivot_#')[0]
                                cmds.parent(loc, mtGrp)
                                cmds.parentConstraint(obj, loc, mo=False)
                                cmds.setAttr(loc + '.v', 0)

                                cmds.textScrollList(self.mt1TextScroll,
                                                    e=True,
                                                    append=str(loc))

                        if 'camera' in getType:
                            # print 'camera'
                            mt = cmds.snapshot(loc,
                                               camList[0],
                                               n=loc + '_motionTrail_#',
                                               mt=True,
                                               i=1,
                                               startTime=playStart,
                                               endTime=playEnd,
                                               anchorTransform=True)

                        elif 'object' in getType:
                            # print 'object'
                            mt = cmds.snapshot(loc,
                                               n=loc + '_motionTrail_#',
                                               mt=True,
                                               i=1,
                                               startTime=playStart,
                                               endTime=playEnd,
                                               ch=True)

                        mtShape = cmds.listRelatives(mt[0], shapes=True)[0]
                        mtMainNode = mt[1]

                        # Set Handle Attrs

                        cmds.setAttr(mtShape + '.trailDrawMode', 1)
                        cmds.setAttr(mtShape + '.overrideEnabled', 1)
                        cmds.setAttr(mtShape + '.overrideDisplayType', 2)

                        cmds.textScrollList(self.mt2TextScroll,
                                            e=True,
                                            append=str(mtShape))

                    elif 'ghost' in getType:

                        if cmds.objectType(
                                cmds.listRelatives(obj,
                                                   shapes=True)[0]) == 'mesh':
                            mt = cmds.snapshot(obj,
                                               n=obj + '_ghost_#',
                                               i=1,
                                               startTime=playStart,
                                               endTime=playEnd,
                                               ch=True,
                                               u='always')
                            mtShape = mt[0]
                            mtMainNode = mt[1]

                            cmds.parent(mtShape, mtGrp)

                            # Set Ghost Attrs

                            cmds.setAttr(mt[0] + '.overrideEnabled', 1)
                            cmds.setAttr(mt[0] + '.overrideDisplayType', 1)

                            # Update UI

                            cmds.textScrollList(self.mt1TextScroll,
                                                e=True,
                                                append=str(obj))
                            cmds.textScrollList(self.mt2TextScroll,
                                                e=True,
                                                append=str(mtShape))

            # Clean Up

            cmds.select(d=True)
示例#16
0
文件: animation.py 项目: zewt/pymel
def snapshot(*args, **kwargs):
    res = cmds.snapshot(*args, **kwargs)
    if not kwargs.get('query', kwargs.get('q', False)):
        res = _factories.maybeConvert(res, _general.PyNode)
    return res
示例#17
0
    def updateMotionTrail(self, var, *args):

        if var == 'update':

            # Update locators

            try:
                for item in cmds.textScrollList(self.mt1TextScroll,
                                                q=True,
                                                ai=True):
                    pc = cmds.listRelatives(item, type='parentConstraint')[0]
                    target = cmds.parentConstraint(pc, q=True, tl=True)[0]
                    cmds.parentConstraint(
                        target,
                        pc,
                        e=True,
                        mo=True,
                    )

            except:
                pass

            # Update Motion Paths

            try:
                for item in cmds.textScrollList(self.mt2TextScroll,
                                                q=True,
                                                ai=True):
                    cmds.snapshot(cmds.listConnections(item,
                                                       type='motionTrail')[0],
                                  e=True,
                                  st=cmds.playbackOptions(q=True, min=True),
                                  et=cmds.playbackOptions(q=True, max=True))

            except:
                pass

        elif var == 'delete':

            masterGrp = 'bboy_motionTrail_grp'
            deleteList = []

            if cmds.objExists(masterGrp):

                for obj in cmds.listRelatives(masterGrp, ad=True):
                    print obj
                    x = cmds.listConnections(obj, type='motionTrail')

                    if x:
                        for y in x:
                            print '         ' + y

                            if y not in deleteList:
                                deleteList.append(y)

                            z = cmds.listConnections(
                                y, type='motionTrailShape')[0]

                            if z not in deleteList:
                                deleteList.append(z)

                for obj in deleteList:
                    try:
                        cmds.delete(obj)
                    except:
                        pass

            try:
                cmds.delete('bboy_motionTrail_grp')

            except:
                pass

            cmds.textScrollList(self.mt1TextScroll, e=True, ra=True)
            cmds.textScrollList(self.mt2TextScroll, e=True, ra=True)

        elif var == 'deleteMotionTrail':
            try:
                selected = cmds.textScrollList(self.mt2TextScroll,
                                               q=True,
                                               si=True)

                cmds.delete(cmds.listRelatives(selected, p=True))
                cmds.textScrollList(self.mt2TextScroll, e=True, ri=selected)

            except:
                pass
示例#18
0
        def process_keyframe_animation_btn(*args):  # 377
            reinit_vars()
            #
            with Undo():
                for selected in cm.ls(sl=1):
                    if check_model(selected):
                        self.static_base_meshes.append(selected)

                # >>>> added by Hiura
                bCanceled = False
                if len(self.static_base_meshes) > 0:
                    for one_mesh in self.static_base_meshes:
                        time = 0

                        tmp_node = cm.snapshot(one_mesh,
                                               st=time,
                                               et=time,
                                               ch=0)
                        tmp_snap = cm.listRelatives(tmp_node, c=1)[0]
                        tmp_snap = cm.parent(tmp_snap, w=1)

                        cm.polySoftEdge(tmp_snap, a=180, ch=0)
                        cm.polyTriangulate(tmp_snap, ch=0)
                        org_num = get_vert_count(one_mesh)
                        new_num = get_vert_count(tmp_snap)
                        if org_num != new_num:
                            buf = 'Warning! Vertex Number Change.\n  original=' + str(
                                org_num
                            ) + ' new=' + str(
                                new_num
                            ) + '\n\nMaybe not working properly.\nContinue?'
                            ret = cm.confirmDialog(title='Confirm',
                                                   message=buf,
                                                   button=['Yes', 'No'],
                                                   defaultButton='Yes',
                                                   cancelButton='No',
                                                   dismissString='No')
                            if ret != 'Yes':
                                bCanceled = True
                        cm.delete(tmp_snap)
                        cm.delete(tmp_node)
                # <<<< added by Hiura

                if not bCanceled:
                    if len(self.static_base_meshes) > 0:
                        # >>>> added by Hiura
                        gMainProgressBar = mel.eval('$tmp = $gMainProgressBar')
                        cm.progressBar(gMainProgressBar,
                                       edit=True,
                                       beginProgress=True,
                                       isInterruptable=False,
                                       status='"VAT Converting ...',
                                       minValue=0,
                                       maxValue=100)
                        # <<<< added by Hiura

                        make_merge_snapshots(self.static_base_meshes)
                        cm.progressBar(gMainProgressBar, edit=True,
                                       step=5)  # added by Hiura
                        # smooth_copy(self.morph_array[0][0], gMainProgressBar, 15)
                        smooth_copy(self.morph_array[0], gMainProgressBar,
                                    15)  # modified by Hiura
                        pack_vert_uvs(self.original_mesh, gMainProgressBar, 30)
                        populate_morph_arrays(gMainProgressBar, 50)
                        remove_meshes()

                        cm.progressBar(gMainProgressBar,
                                       edit=True,
                                       endProgress=True)  # added by Hiura

                        render_out_textures()
                        #..
                    else:
                        cm.warning("No applicable meshes selected")
示例#19
0
def createMT():
    sTime = int(cmds.playbackOptions(q=True, min=True))
    eTime = int(cmds.playbackOptions(q=True, max=True))
    #sel = cmds.ls(sl=True)
    cmds.snapshot(tCams, st=sTime, et=eTime, mt=True, n='MotionTrail_#')
    cmds.editRenderLayerMembers('Perspective', 'MotionTrail*')