Loading...
「ツール」は右上に移動しました。
利用したサーバー: natural-voltaic-titanium
8いいね 196回再生

My First Python Script II Learning Python II Python For Maya II ObjectShaderAnimation

I am learning python scripting, and this is my first successfully written the first python script.

Tip: Select any object and put steps according to your requirements and run this script.

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


from maya import cmds

def objFaceShader(step=3,strtFrom=0):
getSelection = cmds.ls(selection=True)
allPolyGeo = []
allOtherObj = []
startFrom = strtFrom
steps = step
x = 0
setFstFrm = 1
setEndFrm = 30
for sel in getSelection:
getShape = cmds.listRelatives(sel,s=True,f=True) or []
selShape = cmds.ls(sel,sl=True, o=True)
sha = cmds.shadingNode('lambert', asShader=True, name="{}_{}_lambert".format(sel, x))
cmds.setAttr("{}.color".format(sha), 0.0, 1.0, 1.0 ,type = "double3")
lambartName = ("{}_{}_lambert".format(sel,x))
sg = cmds.sets(empty=True, renderable=True, noSurfaceShader=True, name="{}_{}_sg".format(sha, x))
cmds.connectAttr( sha+".outColor", sg+".surfaceShader", f=True)
setFrs = cmds.currentTime(setFstFrm,e=True,u=1)
setKey = cmds.setKeyframe("{}.c".format(lambartName) )
setEnd = cmds.currentTime(setEndFrm,e=True,u=1)
cmds.setAttr("{}.color".format(lambartName), 1.0, 0.0, 0.0 ,type = "double3")
setEndKey = cmds.setKeyframe("{}.c".format(lambartName) )



if len(getShape) == 1:
getMeshType = cmds.objectType(getShape)
if getMeshType == "mesh":
allPolyGeo.append(sel)
else:
allOtherObj.append(sel)

getFaceNumber = cmds.polyEvaluate(sel, f=True)

for face in allPolyGeo:
getFaceNumber = cmds.polyEvaluate(face, f=True)
objFace = range(startFrom , getFaceNumber , steps)
cmds.select(cl=True)

for allFace in objFace:
selFace = cmds.select('%s.f[%s]' % (face , allFace) , add=True)
arayFaces = cmds.ls(sl=True)

if cmds.objExists(lambartName):
cmds.sets(arayFaces, e=True, forceElement=sg)
cmds.select(cl=True)
goTofstFrame = cmds.currentTime(setFstFrm,e=True,u=1)
else:
print("Already Exist")
"""
print allPolyGeo
print allOtherObj
print getFaceNumber
"""
#Run This Proc

objFaceShader(step=3,strtFrom=0)

#pythonScripting#mayaPython#rigging

コメント