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. intenditore
    • Profile
    • Following 0
    • Followers 0
    • Topics 9
    • Posts 34
    • Best 2
    • Controversial 0
    • Groups 0

    intenditore

    @intenditore

    Tech. animator. Like Expresso, MoGraph, setups and all the technical stuff. Available for outsource
    Reel - vimeo.com/308878899
    behance.net/ambiclusion
    instagram.com/ambiclusion

    2
    Reputation
    77
    Profile views
    34
    Posts
    0
    Followers
    0
    Following
    Joined Last Online
    Email [email protected] Website www.instagram.com/ambiclusion/ Location Moscow

    intenditore Unfollow Follow

    Best posts made by intenditore

    • RE: Get all neighboring points (including not connected by edge). Fast.

      @zipit I don't get why you're still not working in Maxon. That seems illogical!
      Many thanks for a such detailed answer once again!
      The problem is the solution is intended to chew a lot of polys and there may be some "Zbrush"-like model. So as I already understand, I will have to port it to CPP anyway.

      @nophoto said in Get all neighboring points (including not connected by edge). Fast.:

      I would use a BaseSelect to 'collect' all points

      Quite a point! Great suggestion I think, I will try that out

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • RE: Python tag - IsDirty() not working?

      @PluginStudent oh God! You helped me so much!
      Many thanks for that. Sincerely, it's not very well explained in docs, really not well (in opposite to Undo system for instance) and getting how exactly should it work is tricky. But your last suggestion surely works, and it raises the number every time hierarchy is changed, so I need only check has it been changed or not and than decide to run the code or not (maybe somebody will stuck in the same position so I hope my plain explanation would be useful)
      Thanks!

      posted in General Talk
      intenditoreI
      intenditore

    Latest posts made by intenditore

    • RE: pyDeformer mode: ID_MG_BASEEFFECTOR_POSITION works, but ID_MG_BASEEFFECTOR_SCALE doesn't

      Oh, you're always making a huge work answering the questions! 👏

      I'm slightly confused by the topic you cover, can't find what PNG is.
      What should I do with random.seed than if I rely on unique random number generated for the particular clone? I can't move it out of main() because only there ID is accessible.
      Make some class to store there those random numbers as globals and check should I generate it again or use as before based on user data seed and clone count?

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • RE: pyDeformer mode: ID_MG_BASEEFFECTOR_POSITION works, but ID_MG_BASEEFFECTOR_SCALE doesn't

      I am a bit confused, because the integer value for the symbol in question, is right there in your print out (1011 is integer value for c4d.ID_MG_BASEEFFECTOR_SCALE
      Sorry, that's my typo of course.
      My code actually looks like this:

      import c4d
      from c4d.modules import mograph as mo
      import random
      #Welcome to the world of Python
      
      def main():
          md = mo.GeGetMoData(op)
          if md is None: return 1.0
          mode = md.GetBlendID()
          
          index = md.GetCurrentIndex()
          random.seed(md.GetCount() * index * op[c4d.ID_USERDATA,1])
          rIndex = random.randint(0,2)
          if mode == c4d.ID_MG_BASEEFFECTOR_SCALE:
              rVal = 1
          else:
              rVal = random.choice([-1, 1])
          weights = md.GetArray(c4d.MODATA_WEIGHT)
          #print rVal
          vector = c4d.Vector()
          vector[rIndex] = rVal * weights[index]
          if mode == c4d.ID_MG_BASEEFFECTOR_POSITION or mode == c4d.ID_MG_BASEEFFECTOR_ROTATION or mode == c4d.ID_MG_BASEEFFECTOR_SCALE:
              return vector
          else: return 1.0
      

      It's point is to randomly choose the axis which the value will be added to. It can give results as in attached image 2020-07-22_16-58-31.png
      But to avoid negative scale I check if the Scale is active. But weirdly my code with the same check as yours never worked. For some reason I copied your and despite it's the same letter to letter now it works.
      I'm confused...

      But thanks for your answer anyway!

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • pyDeformer mode: ID_MG_BASEEFFECTOR_POSITION works, but ID_MG_BASEEFFECTOR_SCALE doesn't

      I stumbled upon a weird thing. I code a Python Effector (parameters control), there I want to check does it affect scale parameter or not:

      md = mo.GeGetMoData(op)
      mode = md.GetBlendID()
      if mode == c4d.ID_MG_BASEEFFECTOR_SCALE:
              rVal = 1
          else:
              rVal = 0
      

      Fairly basic
      And you know, the first if is never true. Despite ID_MG_BASEEFFECTOR_POSITION is working.
      I tried ID_MG_BASEEFFECTOR_SCALE_ACTIVE but nothing changed.
      Than I checked what mode is. Whatever I do it's always returning the same:

      1010
      1011
      1012
      1013
      1013
      1013
      1065
      1066
      1067
      1064
      1068
      1069
      1020
      19
      20
      

      There are all kinds of the modes enumerations (can be found in \resource\modules\objects\description\obaseeffector.h) despite only Scale (1013) is active. So I don't understand what is that.
      Why doesn't it work? And how should it?

      posted in Cinema 4D SDK python r19 r20
      intenditoreI
      intenditore
    • RE: Get all neighboring points (including not connected by edge). Fast.

      @zipit I don't get why you're still not working in Maxon. That seems illogical!
      Many thanks for a such detailed answer once again!
      The problem is the solution is intended to chew a lot of polys and there may be some "Zbrush"-like model. So as I already understand, I will have to port it to CPP anyway.

      @nophoto said in Get all neighboring points (including not connected by edge). Fast.:

      I would use a BaseSelect to 'collect' all points

      Quite a point! Great suggestion I think, I will try that out

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • Get all neighboring points (including not connected by edge). Fast.

      Hi. My goal is simple - I need to gather info from all the points which are near a given one. I can use

      c4d.utils.Neighbor.GetPointOneRingPoints()
      

      But it's downside (for me) is it only considers the points connected to specified point by edge. I need all of which belong to the polygons this point belongs to.

      So that could be done by Utils.Neighbour, but... First you have to get neighbour polys. Than their points. Than exclude the first given point from the list and toss them all so the list doesn't contain duplicates. And only than you get the list of the points.

      On dense geometry this would increase the cyclecount and memory consumption much! I don't really like that.

      Are there any handier way to achieve the same?

      posted in Cinema 4D SDK python
      intenditoreI
      intenditore
    • RE: TagData plugin to "return" Vertex map?

      Yeah, sure)

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • RE: TagData plugin to "return" Vertex map?

      @m_magalhaes said in TagData plugin to "return" Vertex map?:

      I don't see the benefice of creating a generator ? What's your idea ?

      actually it was another idea with the same concept behind - I wanted to make kingda "edit poly" modifier, so generator must have been behaving like a poly object. But now I see it's not possible...

      Thanks for all the help!

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • RE: TagData plugin to "return" Vertex map?

      Oh, that's sad..
      Thanks for answers
      Does this extrapolates to all the aspects? For instance, can I make a generator/deformer which would "return" PointObject?

      Sorry I forgot tags

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • TagData plugin to "return" Vertex map?

      I'm curious and nobody yet could answer me (even Donovan Keith doesn't know) - how to make a tag which can be used as a vertex map where the usual vertex map is applicable? Yeah, you can modify an existing map for sure, but it's not the way I wish to go
      Is it possible?

      posted in Cinema 4D SDK
      intenditoreI
      intenditore
    • RE: UI, Resource Descripion and all those .h, .str, .res

      Brah... Third time spent fighting with stupid typos! :
      @PluginStudent @zipit @r_gigante many thanks! I didn't assume you are using the same system inside the program and had no thought to take a look there!
      Seems adding the "," helped it.
      And, as I see, you must enumerate all the elements in your .h file, but though you can leave id blank.
      Thank you!
      %\

      posted in Cinema 4D SDK
      intenditoreI
      intenditore