import maya.cmds as cmds
import maya.mel as mel
# 获取选中相机
select_cams = cmds.ls(sl=True)
for cam in select_cams:
# 获取相机shape节点
camShape = cmds.listRelatives(cam,s=True)[0]
# 复制相机
newCamera = cmds.duplicate(cam,rr=True,name="CamForExport_{}".format(cam))[0]
# 捆绑相机属性
cmds.setAttr(newCamera+".focalLength",keyable = True)
mel.eval("expression -s \""+newCamera+".focalLength="+camShape+".focalLength;\" " + "-ae 1 -uc all ;")
# 提取到根层级
cmds.parent(newCamera,w = True)
# 点约束\目标约束
pointConstrain = cmds.pointConstraint(cam,newCamera)
orientConstrain = cmds.orientConstraint(cam, newCamera)
# 帧范围
startFrame = cmds.playbackOptions(ast=True, q=True)
endFrame = cmds.playbackOptions(aet=True, q=True)
# bake
cmds.bakeResults(newCamera,simulation=True,t=(startFrame,endFrame),sampleBy=1,disableImplicitControl=True,preserveOutsideKeys=True,sparseAnimCurveBake=False,removeBakedAttributeFromLayer=False, removeBakedAnimFromLayer=False, bakeOnOverrideLayer=False, minimizeRotation=True, controlPoints=False , shape=True)
# 清理约束
cmds.delete(pointConstrain,orientConstrain)
maya 导出层级干净的相机
最新推荐文章于 2022-03-09 13:55:13 发布