This script creates a light from a selected cameras’ view. GUI will give you the option to create a VRay Rect Light, Spot Light, Directional Light, or Area Light.
New: Version 2 allows you to create a locator with a selected mesh, camera, or light.
Coming Soon: Arnold Light Support
To Run: Select the camera you want to create the light from. Run the script.
#Create Light from Camera View version 3.0.0 #For Maya. Tested in version 2014. With Vray Light support #Bryanna London www.bryannalondon.com #!/usr/bin/env python #2.0 has VRay Sphere light support #3.0 has locator support. Create locators from selected objects or cameras. #TO USE: Select the camera you want to create the light from then run the script import maya.cmds as cmds #delete window if a window already exisits if cmds.window('lightCamWindow', exists=True): cmds.deleteUI('lightCamWindow') #Create my GUI def createGUI(): #window layout lightCamWindow = cmds.window('lightCamWindow',title="What Light", rtf=True) cmds.columnLayout(adjustableColumn= True, rowSpacing= 3) cmds.checkBox('rectLight',label= "VRay Rect Light", value=True) cmds.checkBox('sphereLight',label= "VRay Sphere Light", value=False) cmds.checkBox('spotLight', label= "Spot Light", value=False) cmds.checkBox('directionalLight',label= "Directional Light", value=False) cmds.checkBox('areaLight',label= "Area Light", value=False) cmds.checkBox('locator',label= "Locator", value=False) cmds.button( label='Run', width= 224, command=('lightFromCamera()')) cmds.setParent('..') cmds.setParent('..') cmds.showWindow('lightCamWindow') createGUI() def queryValues(): #Query which checkboxes were checked rectValue = cmds.checkBox('rectLight', query = True, value = True) sphereValue = cmds.checkBox('sphereLight', query = True, value = True) spotValue = cmds.checkBox('spotLight', query = True, value = True) directValue = cmds.checkBox('directionalLight', query = True, value = True) areaValue = cmds.checkBox('areaLight', query = True, value = True) locatorValue = cmds.checkBox('locator', query = True, value = True) return rectValue, sphereValue, spotValue, directValue, areaValue, locatorValue def lightFromCamera(): #Define Selected Camera currentCamera = cmds.ls(selection = True, type = 'transform') #Query Translate and Rotation Values trans = cmds.xform(currentCamera, query = True, worldSpace = True, rotatePivot = True) rot = cmds.xform(currentCamera, query = True, worldSpace = True, rotation = True) #Run query to find which checkboxes were checked rectValue, sphereValue, spotValue, directValue, areaValue, locatorValue = queryValues() #queryValues() #If Rect Light checkbox is selected if rectValue == True: #Create VRay Rect Light rectLight = cmds.shadingNode( 'VRayLightRectShape' , asLight=True ) #Apply camera transforms to Rect Light cmds.xform(rectLight, relative = True, rotation = rot, translation = trans) #Set some default values cmds.setAttr('%s.invisible' %(rectLight), 1) cmds.setAttr('%s.intensityMult' %(rectLight), 10) cmds.setAttr('%s.uSize' %(rectLight), 3) cmds.setAttr('%s.vSize' %(rectLight), 3) #Sphere Light if sphereValue == True: #Create VRay Rect Light sphereLight = cmds.shadingNode( 'VRayLightSphereShape' , asLight=True ) #Apply camera transforms to Sphere Light cmds.xform(sphereLight, relative = True, rotation = rot, translation = trans, scale = (3,3,3)) #Set some default values cmds.setAttr('%s.invisible' %(sphereLight), 1) cmds.setAttr('%s.intensityMult' %(sphereLight), 10) cmds.setAttr('%s.radius' %(sphereLight), 30) #Spot Light if spotValue == True: #Create Spot Light spotLight = cmds.spotLight(name = 'spotLight') #Apply camera transforms to Spot Light cmds.xform('spotLight' , relative = True, rotation = rot, translation = trans, scale = (3,3,3)) #Directional Light if directValue == True: #Create Directional Light directionLight = cmds.directionalLight(name = 'directionalLight') #Apply camera transforms to Directional Light cmds.xform('directionalLight' , relative = True, rotation = rot, translation = trans, scale = (3,3,3)) #Area Light if areaValue == True: #Create Area Light areaLightShape = cmds.createNode("areaLight", name = 'areaLightShape') #Get Area Light Transform Node areaTrans = cmds.listRelatives('areaLightShape', parent = True) #Apply camera transforms to Area Light cmds.xform(areaTrans , relative = True, rotation = rot, translation = trans, scale = (3,3,3)) #Locator if locatorValue == True: locator = cmds.spaceLocator(name = 'locator') #Apply camera transforms to Directional Light cmds.xform('locator' , relative = True, rotation = rot, translation = trans, scale = (3,3,3)) #rename locator cmds.rename('locator', 'locator_0')
© 2016 Bryanna London