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

    Priority Delay on Stacking Skin Deformers

    Cinema 4D SDK
    r21 python
    5
    16
    1.7k
    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.
    • ManuelM
      Manuel
      last edited by Manuel

      hi,

      first, you don't have to change all priorities to "fixe" priorities issue. The undo command often make obvious an already existing priority issue.
      In your document, if you change the position of your joint in the position palette (without dragging the object) you will see that your object isn't following.

      As you can see, your second join isn't updating correctly.
      That said, even after correcting the priorities (the join move as expected) the second skin deformer doesn't take the position of this joint into account.
      I've asked our specialist and it's seem to be a limitation. You can't add an expression based operator between two skindeformer.
      I've tried to create some sort of generator but failed until now.

      I'm not sure if there's a solution for this one. That's interesting and would require more investigation or test.

      Cheers,
      Manuel

      MAXON SDK Specialist

      MAXON Registered Developer

      1 Reply Last reply Reply Quote 1
      • B
        bentraje
        last edited by

        RE: I've asked our specialist and it's seem to be a limitation
        Yes, this is what I am afraid of 😞

        RE: You can add an expression based operator between two skindeformer.
        I'm not sure I understand, isn't the Python Tag I used already the expression based operator between two skindeformer

        ==============

        Hypothetically speaking, can I instance the default skin deformer and create a new one with a hardcoded generator priority? Currently, it is set to Generator -1. How about I hard code it as Generator -10 on creation.

        Will that work? I believe it involves C++ so I haven't tried it yet.

        1 Reply Last reply Reply Quote 0
        • ManuelM
          Manuel
          last edited by

          @bentraje said in Priority Delay on Stacking Skin Deformers:

          RE: You can add an expression based operator between two skindeformer.
          I'm not sure I understand, isn't the Python Tag I used already the expression based operator between two skindeformer

          Sorry i mean "you can't add" the negation is important on that case.

          cheers,
          Manuel

          MAXON SDK Specialist

          MAXON Registered Developer

          1 Reply Last reply Reply Quote 1
          • B
            bentraje
            last edited by

            @m_magalhaes
            Ah gotcha. I guess there is no way around this, yet.

            Thanks for the confirmation.

            1 Reply Last reply Reply Quote 0
            • B
              bentraje
              last edited by

              Hi,

              Any update on this one on the latest release (S24)?

              1 Reply Last reply Reply Quote 0
              • ManuelM
                Manuel
                last edited by

                hi,
                it's still a limitation.

                Cheers,
                Manuel

                MAXON SDK Specialist

                MAXON Registered Developer

                1 Reply Last reply Reply Quote 0
                • B
                  bentraje
                  last edited by

                  Gotcha.
                  Thanks for the response. Will close this thread for now.

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User
                    last edited by

                    @m_magalhaes Hello! I just want to add to this and say that this limitation is REALLY holding back C4D for rigging and thereby character animation. I would very much hope that the developers will allow the Skin Deformer's Priority to be set. It is my understanding that the Neutron node-based version of C4D will not have Priorities (THANK GOD!) but I don't know how long we will have to wait to be able to use it for character rigging.

                    1 Reply Last reply Reply Quote 1
                    • jochemdkJ
                      jochemdk
                      last edited by jochemdk

                      Hi, @m_magalhaes & the rest,
                      Joints & skins work a bit differently than setting priorities in the usual way..
                      Basically, only the first line changes @ the "declaration" of pd.

                      Hope this helps, Jochem

                      for item in items: # .. a list with objects or tags..
                      	# prioGeneric
                      	pd = item[c4d.EXPRESSION_PRIORITY]
                      	pd.SetPriorityValue(c4d.PRIORITYVALUE_MODE, 4) # 4 = Generators (as an example..)
                      	pd.SetPriorityValue(c4d.PRIORITYVALUE_PRIORITY, 412)
                      	item[c4d.EXPRESSION_PRIORITY] = pd
                      
                      for j in joints: # .. a list with joints..
                      	# prioJoints
                      	pd = j[c4d.ID_CA_JOINT_OBJECT_PRIORITY]
                      	pd.SetPriorityValue(c4d.PRIORITYVALUE_MODE, 4)
                      	pd.SetPriorityValue(c4d.PRIORITYVALUE_PRIORITY, 413)
                      	j[c4d.ID_CA_JOINT_OBJECT_PRIORITY] = pd
                      
                      for s in skins: # .. a list with skins..
                      	# prioSkins
                      	pd = s[c4d.ID_CA_SKIN_OBJECT_PRIORITY]
                      	pd.SetPriorityValue(c4d.PRIORITYVALUE_MODE, 4)
                      	pd.SetPriorityValue(c4d.PRIORITYVALUE_PRIORITY, 414)
                      	s[c4d.ID_CA_SKIN_OBJECT_PRIORITY] = pd
                      
                      1 Reply Last reply Reply Quote 0
                      • jochemdkJ
                        jochemdk
                        last edited by jochemdk

                        Hmmm… some extra notes: Although it’s possible to change the priority of skin deformers - it’s of no use.
                        The documentation states that priorities only will be applied if the “Force” option under “Include” is turned on.
                        But that’s not for polygon objects.

                        So in my case, I wanted to set skin deformers after dynamics had been applied, but that’s a no-go.
                        The only alternative I found was to add an extra pythonTag (Gen.412), which updated all meshes.
                        This means that on render time all works well, but in the viewport it will still lag 1 frame 😞

                        1 Reply Last reply Reply Quote 0
                        • ferdinandF
                          ferdinand
                          last edited by

                          Hello @jochemdk,

                          thank you for reaching out to us. I am not sure if your postings are questions, please remember to open a new thread for questions of your own. @m_magalhaes is also currently on vacation, so he will not respond here any time soon.

                          Thank you for your understanding,
                          Ferdinand

                          MAXON SDK Specialist
                          developers.maxon.net

                          jochemdkJ 1 Reply Last reply Reply Quote 0
                          • jochemdkJ
                            jochemdk @ferdinand
                            last edited by

                            Hi @ferdinand, I was working on a similar topic, trying to change the prio of skin deformers to "after dynamics"... (didn't want to start a new thread, thx for replying anyway:)

                            1 Reply Last reply Reply Quote 0
                            • ManuelM
                              Manuel
                              last edited by

                              Hi,

                              for me you still have the issue of priority. Does it solve the problem?

                              Cheers,
                              Manuel

                              MAXON SDK Specialist

                              MAXON Registered Developer

                              jochemdkJ 1 Reply Last reply Reply Quote 0
                              • jochemdkJ
                                jochemdk @Manuel
                                last edited by

                                Hi @m_magalhaes,

                                No there's still a problem, but for now it seams to be unsolvable.. It would be nice if C4D would allow for priority changes on the skin deformer - for polygon objects.

                                1 Reply Last reply Reply Quote 0
                                • B
                                  bentraje
                                  last edited by

                                  Hi,

                                  Just checking if this is now resolved in the current version of C4D (2023).

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