第一个是创建三点光源的脚本
1.先选中被照亮的物体,必须先选中

2.应用脚本


完成

以后就不用手动创建三点光源了

源码如下:
"""
脚本作者:Dreamlandworks的仔仔
Scripted by MRzaizai from Dreamlandworks
"""
import c4d
from c4d import gui
user = doc.GetActiveObject()
"""print user"""
def main():
if user == None:
gui.MessageDialog("请先选中被照亮的物体,目前不支持多选")
else:
gui.MessageDialog(*三点光源创建完毕_(:з」∠)_喵~~*)
sub01()
#错误规避
c4d.EventAdd()
def sub01():
doc.StartUndo()
mainlight = c4d.BaseObject(c4d.Olight)
doc.InsertObject(mainlight)
mainlight[c4d.ID_BASELIST_NAME] = "主光源"
mainlight[c4d.LIGHT_TYPE] = 8
mainlight[c4d.LIGHT_SHADOWTYPE] = 3
#创建主光源
filllight = c4d.BaseObject(c4d.Olight)
doc.InsertObject(filllight)
filllight[c4d.ID_BASELIST_NAME] = "填补光源"
filllight[c4d.LIGHT_TYPE] = 8
filllight[c4d.LIGHT_SHADOWTYPE] = 3
filllight[c4d.LIGHT_BRIGHTNESS] = 0.5
#创建填补光源
backlight = c4d.BaseObject(c4d.Olight)
doc.InsertObject(backlight)
backlight[c4d.ID_BASELIST_NAME] = "背面光源"
backlight[c4d.LIGHT_TYPE] = 8
backlight[c4d.LIGHT_SHADOWTYPE] = 3
#创建背面光源
target1 = c4d.BaseTag(5676)
target2 = c4d.BaseTag(5676)
target3 = c4d.BaseTag(5676)
mainlight.InsertTag(target1)
filllight.InsertTag(target2)
backlight.InsertTag(target3)
target1[c4d.TARGETEXPRESSIONTAG_LINK] = user
target2[c4d.TARGETEXPRESSIONTAG_LINK] = user
target3[c4d.TARGETEXPRESSIONTAG_LINK] = user
#使灯光以用户的物体为目标
mainlight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] = -550 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X]
mainlight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y] = 200 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y]
mainlight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z] = -600 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z]
filllight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] = 500 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X]
filllight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y] = 100 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y]
filllight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z] = -350 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z]
backlight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X] = -300 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_X]
backlight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y] = 450 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Y]
backlight[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z] = 500 + user[c4d.ID_BASEOBJECT_REL_POSITION,c4d.VECTOR_Z]
#设置灯光位置
"""doc.SetActiveObject(mainlight)
doc.SetActiveObject(filllight,int = SELECTION_NEW)
doc.SetActiveObject(backlight,int = SELECTION_NEW)
c4d.CallCommand(100004772)
sence = doc.GetFirstObject()
sence.SetName(*场景*)"""
doc.AddUndo(c4d.UNDOTYPE_NEW,mainlight)
doc.AddUndo(c4d.UNDOTYPE_NEW,filllight)
doc.AddUndo(c4d.UNDOTYPE_NEW,backlight)
doc.EndUndo()
if __name__==*__main__*:
main()