Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python 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

    access the target of pose morph [SOLVED]

    Scheduled Pinned Locked Moved PYTHON Development
    4 Posts 0 Posters 413 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H Offline
      Helper
      last edited by

      On 08/09/2016 at 11:06, xxxxxxxx wrote:

      hi , 
      I tried to add an object to morph "target" option

          obj = doc.GetActiveObject()
          corr= obj.GetDownLast()  #get the last child  
          if not corr : return False
          pmTag = obj.GetTag(c4d.Tposemorph) 
          mo = pmTag.AddMorph()
          pmTag.UpdateMorphs()
          count =mo.GetID()
          Id = 1000 + count*100 +1
          print Id
          pmTag[c4d.ID_CA_POSE_TARGET,Id]=corr
          c4d.EventAdd()
      

      I wanted to add it to the last morph (the one that was created with the script ) , so I made a little cheat get the Id , then do some math to match the style of the index (1101,1201,1301...etc )
      this cheat worked with the strength (I used the Id 4000 ) 
      but it does not seem to work with the target , it only affect the selected morph . 
      is there any way to make it affect specific morph ?
      or "force " select a morph with its index ?
      when I was searching in the older post , I found similar topic with C++ , but someone mentioned that Maxon made the tree view private so it is not possible to access it . 
      is there any workaround to this problem ?

      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

        On 09/09/2016 at 01:42, xxxxxxxx wrote:

        Hello,

        if I understand your intentions correctly you want to add a new morph and set the "Target" parameter?

        The pose morph tag has a dedicated API to use this tag: CAPoseMorphTag. This class includes SetActiveMorphIndex() which can be used to select a morph. With that morph select you can simply set the parameter:

          
        # create new morph  
        morph = morphTag.AddMorph()  
        if morph is None:  
             return  
          
        morph.SetName("New Morph")  
          
        # select latest morph  
        count = morphTag.GetMorphCount()  
        morphTag.SetActiveMorphIndex(count-1)  
          
        # set "Target"  
        morphTag[c4d.ID_CA_POSE_TARGET] = targetObject  
          
        c4d.EventAdd()  
        

        best wishes,
        Sebastian

        1 Reply Last reply Reply Quote 0
        • H Offline
          Helper
          last edited by

          On 09/09/2016 at 09:37, xxxxxxxx wrote:

          thanks for help , 
          it is working as expected 🙂 
          I didn't have this method in my python SDK , because I didn't updated it . 
          just to be sure , the user have to use the latest update of cinema 4d R17(.053) to use the script ?

          1 Reply Last reply Reply Quote 0
          • H Offline
            Helper
            last edited by

            On 12/09/2016 at 00:20, xxxxxxxx wrote:

            Hello,

            yes, some functions were added to the CAPoseMorphTag class with R17 SP3. So these functions are only available for users of this service pack or of R18.

            best wishes,
            Sebastian

            1 Reply Last reply Reply Quote 0
            • First post
              Last post