add custom object buffer
-
On 05/03/2014 at 01:56, xxxxxxxx wrote:
Hi,
i want to add a custom object buffer to my render settings.
i was only able to add an "empty" channel yet. maybe there is some issue in the GetDataInstance() - using the wrong object or something similar.
-
On 05/03/2014 at 02:23, xxxxxxxx wrote:
buffer = c4d.BaseList2D(c4d.Zmultipass)
buffer.GetDataInstance()[c4d.MULTIPASSOBJECT_TYPE] = c4dd.MULTIPASSOBJECT_OBJECTBUFFERthis seems not to be enough to initialize the channels as a Object Buffer. Maybe there is some kind of init function needed?
-
On 05/03/2014 at 07:48, xxxxxxxx wrote:
other channels like specular / mat_uv / etc working fine
-
On 05/03/2014 at 10:00, xxxxxxxx wrote:
Maybe this will help?
#This script checks to see if the first Multi-Pass item is an object buffer #If it is.. Then it changes it's name and GroupID# value #If not.. Then it creates an object buffer and changes it's name and GroupID# value import c4d def main() : rd = doc.GetActiveRenderData() #Get the render settings mp = rd.GetFirstMultipass() #Get the first Multi-Pass item #If the first item in the Multi-Pass list is already an object buffer #We'll just change it's name and GroupID# to 3 while mp: if mp.GetTypeName() == "Object Buffer": mp.SetName("My Buffer") mp[c4d.MULTIPASSOBJECT_OBJECTBUFFER] = 3 break #We're done. So lets get outta this loop mp = mp.GetNext() #Otherwise..Get the next Multi-Pass item #If the first item in the Multi-Pass list is not an object buffer #We'll add it...then change it's name and Group# to 3 if not mp: rd[c4d.RDATA_MULTIPASS_ENABLE]= True #Enable the Multi-Pass option buffer = c4d.BaseList2D(c4d.Zmultipass) buffer.GetDataInstance()[c4d.MULTIPASSOBJECT_TYPE] = c4d.VPBUFFER_OBJECTBUFFER buffer.SetName("My Buffer") buffer[c4d.MULTIPASSOBJECT_OBJECTBUFFER] = 3 rd.InsertMultipass(buffer) rd.Message(c4d.MSG_UPDATE) #Tell c4d you changed the render settings c4d.EventAdd() if __name__=='__main__': main()
-ScottA
-
On 21/05/2014 at 21:04, xxxxxxxx wrote:
is there anyway to remove an object buffer from the multipass list? I only saw functions for adding
Thanks!
-
On 22/05/2014 at 08:14, xxxxxxxx wrote:
The MP gui is a tree gui gizmo similar to the OM gui.
You can traverse through it the same way you traverse through the OM tree. And get one of the children.
Then you can edit or delete that specific child object.#This is how to delete a specific Object Buffer import c4d def main() : rd = doc.GetActiveRenderData() #Get the render settings mp = rd.GetFirstMultipass() #Get the first Multi-Pass item #The Multi-Pass option is a tree gui type gizmo like the OM tree #Use GetNext() to step down to get each child object in the tree #Either one at a time...or with a loop if mp.GetTypeName() == "Object Buffer": #<---The topmost object in the tree gizmo firstBuffer = mp secondBuffer = mp.GetNext() thirdBuffer = secondBuffer.GetNext() if secondBuffer is not None: secondBuffer.Remove() rd.Message(c4d.MSG_UPDATE) #Tell c4d you changed the render settings c4d.EventAdd() if __name__=='__main__': main()
-ScottA
-
On 22/05/2014 at 09:30, xxxxxxxx wrote:
Oh that makes sense. Wish the would make that more clear in the documentation. Thanks Scott!