Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login
    1. Maxon Developers Forum
    2. RneCGI
    R
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 2
    • Best 0
    • Controversial 0
    • Groups 0

    RneCGI

    @RneCGI

    0
    Reputation
    13
    Profile views
    2
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    RneCGI Unfollow Follow

    Latest posts made by RneCGI

    • RE: Run plugin every frame

      After a few mails with Ferdinand I switched to a Tag plugin solution. This does the job perfectly.
      So the solution was not to use an Object data solution but a TagData.

      Thanx!

      posted in Cinema 4D SDK
      R
      RneCGI
    • Run plugin every frame

      Hi,

      In short I build a plugin that's the same as the tiling camera in de C4D Lib. However the plugin does not update when it is not selected. Same thing when I render. How can I update / execute the plugin on every frame or change in the viewport like an xpresso tag for example.

      Below a small part of the code. The tiling camera is just 1 function of many.

      class RAARCGEN(plugins.ObjectData):
          if licenpass:
              include ('id')
              include ('reninit')
              include('iconchange')
              include('initvar')
              include('finalrender')
              #include('proxy')
              hashpass=False
              def __init__(self):
                  self.SetOptimizeCache(True)
              def Message(self, node, type, data):
                  data = node.GetDataInstance()
                  #for name in searchNames(type):
                  #    print type, name
                  global doc
                  doc = c4d.documents.GetActiveDocument()      
                  if type==c4d.MSG_MENUPREPARE:
                      InitVariables(doc,data)
                  elif type==1036465: #trigger for placing object in the include/exclude field
                      RelisInExc(doc, data)
                  elif type==1036464: #trigger for removing object in the include/exclude field
                      RelisInExc(doc, data)
                  #elif type==431000094 or type==c4d.MSG_DESCRIPTION_COMMAND:
                     #updatemodule(node,self)
                  return True
              
              def Init(self, node):
                  print ("test")
                  return True
              
              def GetDEnabling(self, node, id, t_data, flags, itemdesc):
                  data = node.GetDataInstance()
                  if data is None: return
                  ID = id[0].id
                  updatemodule(node,self)
                  #if (ID==FR_MAN):
                  #    updatemodule(node,self)
                  if (ID in {RENDER_ENGINE , RENDER_Q , GI_ENABLED , AO_ENABLED,FR_RENDER_Q} ):
                      if data.GetBool(REN_BOOL) == False: return False
                  if (ID in {MY_SUBBOX} ):
                      if data.GetBool(ONOFF_ENABLED) == False: return False
                  if (ID in {FILELOC , FILENAME , FILESUB , DESKPATH, FILCUST, FILEPATH} ):
                      if data.GetBool(FILE_BOOL) == False: return False
                  if (ID in {CUSRENTEXT , RENDER_SIZE , CUSSIZEW , CUSSIZEH, CUSRATIOLOCK, CUSRENUNIT, CUSRESO , BACKRENFILE , BACKRENRES , BACKRENVIS, FR_RENDER_SET ,TILINGCAM,TILINGR,TCAMSRC,TCAMTAR,CAMAXIS,RENDER_SIZE_TILE,FRAME_SELEC,MFRAMESEL}):
                      if data.GetBool(SIZEMAN) == False: return False
                  if (ID in {ABOUT_TEXT} ):
                      return False
                  if (ID in {PROXY_BOOL}):
                      if data.GetBool(PROXY_BOOL)==False:
                          checkLayer = doc.GetLayerObjectRoot().GetDown()
                          while checkLayer:
                              if checkLayer.GetName() == 'Proxy viewport' or checkLayer.GetName() == 'Proxy render':
                                  newLayer = checkLayer
                                  newLayer.Remove()
                              checkLayer = checkLayer.GetNext()
                  if (ID in {FRPROXYFORCERENDER,PROXYFORCEVIEW,PROXYFORCERENDER,OBJECT1_BOOL,OBJECT2_BOOL,OBJECT3_BOOL,OBJECT4_BOOL,OBJECT5_BOOL,OBJECT6_BOOL,OBJECT7_BOOL,OBJECT8_BOOL,OBJECT9_BOOL,OBJECT10_BOOL,
                             PROXY1,PROXY2,PROXY3,PROXY4,PROXY5,PROXY6,PROXY7,PROXY8,PROXY9,PROXY10,
                             OBJECT1,OBJECT2,OBJECT3,OBJECT4,OBJECT5,OBJECT6,OBJECT7,OBJECT8,OBJECT9,OBJECT10}):
                      if data.GetBool(PROXY_BOOL)==False: return False
                        
                           
                      return True
                  return True
                  
      if __name__ == "__main__":
          if licenpass:
              path, file = os.path.split(__file__)
              bmp = bitmaps.BaseBitmap()
              bmp.InitWith(os.path.join(path, "res", "Fire_base.png"))
              plugins.RegisterObjectPlugin(id=PLUGIN_ID, str=PLUGIN_NAME,
                                          g=RAARCGEN,
                                          description="raarc", icon=bmp,
                                          info=c4d.OBJECT_GENERATOR)
          
      

      Many thanx in advance

      posted in Cinema 4D SDK
      R
      RneCGI