ON-BLOG

CGのこと、あれこれ書いてます。

カメラを作成

スクリプトからカメラを作るコード。
これ自体はなんら意味のないものですが
これに色々載せると、自由なカメラリグに。

というか、Aimカメラの作り方がわからなかったので
それを実行しただけですが…


def Normal_Camera(self):
    cameraName = cmds.camera()
    cmds.select(cameraName[0])
    Sel = cmds.ls(sl=True)[0]
    Camera = cmds.rename(cameraName[0],"Camera")
    cmds.setAttr(Camera + "Shape.horizontalFilmAperture",0.935)
    cmds.setAttr(Camera + "Shape.filmFit",1)
    cmds.setAttr(Camera + "Shape.focalLength",float(55))
    cmds.setAttr(Camera + "Shape.locatorScale",10)
    cmds.setAttr(Camera + ".rotateY", 0)
    cmds.select(cl=True)

def Aim_Camera(self):
    cameraName = cmds.camera()
    cmds.select(cameraName[0])
    Sel = cmds.ls(sl=True)[0]
    Camera = cmds.rename(cameraName[0],"Aim_Camera")
    cmds.setAttr(Camera + "Shape.horizontalFilmAperture",0.935)
    cmds.setAttr(Camera + "Shape.filmFit",1)
    cmds.setAttr(Camera + "Shape.focalLength",float(20))
    cmds.setAttr(Camera + "Shape.locatorScale",10)
    GrpCam = cmds.createNode('lookAt',n="Camera_Set_grp")
    AimLoc = cmds.spaceLocator(n="Aim")[0]
    cmds.setAttr(AimLoc + ".translateZ", -50)

    cmds.parent(Camera,GrpCam)
    cmds.parent(AimLoc,GrpCam)
    cmds.connectAttr(GrpCam + ".distanceBetween", Camera + "Shape.centerOfInterest")
    cmds.connectAttr(AimLoc + ".translateX", GrpCam + ".target[0].targetTranslateX")
    cmds.connectAttr(AimLoc + ".translateY", GrpCam + ".target[0].targetTranslateY")
    cmds.connectAttr(AimLoc + ".translateZ", GrpCam + ".target[0].targetTranslateZ")
    cmds.connectAttr(AimLoc + ".parentMatrix[0]", GrpCam + ".target[0].targetParentMatrix")
    cmds.connectAttr(AimLoc + ".rotatePivot", GrpCam + ".target[0].targetRotatePivot")
    cmds.connectAttr(AimLoc + ".rotatePivotTranslate", GrpCam + ".target[0].targetRotateTranslate")
    cmds.connectAttr(Camera + ".translate", GrpCam + ".constraintTranslate")
    cmds.connectAttr(Camera + ".parentInverseMatrix[0]", GrpCam + ".constraintParentInverseMatrix")
    cmds.connectAttr(Camera + ".rotatePivot", GrpCam + ".constraintRotatePivot")
    cmds.connectAttr(Camera + ".rotatePivotTranslate", GrpCam + ".constraintRotateTranslate")
    cmds.connectAttr(GrpCam + ".constraintRotateX", Camera + ".rotateX")
    cmds.connectAttr(GrpCam + ".constraintRotateY", Camera + ".rotateY")
    cmds.connectAttr(GrpCam + ".constraintRotateZ", Camera + ".rotateZ")

    cmds.setAttr(GrpCam + ".aimVectorZ", -1)
    cmds.setAttr(GrpCam + ".aimVectorX", 0)
    cmds.setAttr(AimLoc + "Shape.localScaleX", 10)
    cmds.setAttr(AimLoc + "Shape.localScaleY", 10)
    cmds.setAttr(AimLoc + "Shape.localScaleZ", 10)
    
Normal_Camera(None)
Aim_Camera(None)


以上。