Jump to content


C4D Cafe Seller
  • Content count

  • Joined

  • Last visited

  • Days Won


C4DS last won the day on April 15

C4DS had the most liked content!

Community Reputation

156 Good


About C4DS

  • Rank
    Respected community member.
  • Birthday 06/04/1970

Profile Information

  • First Name
  • Last Name
  • C4D Ver
    19.024 Studio
  • Location
  • Interests
    Electric guitars, Radio controlled electric airplanes, 3D, Video editing

Recent Profile Visitors

4,936 profile views
  1. It kind of does. Open the script log, and every action which gets performed (well, maybe not ALL of them) is added to the log. Simply make a script out of it, and you have your macro.
  2. Version 2.5 has been released, and sent out to the current customers. Demonstration video showing the new additions:
  3. Create an uvw tag and rename it

    Just for completeness, and future reference, I will include the answer I provided on your same thread over at the plugincafe. Having explained that the best option was to rename the tag after it was created, of course, you need to be able to obtain the created tag. Which obviously cannot be done directly from the callcommand. So I came up with following code. Maybe not the best approach (I am not a Python developer). import c4d def main(): doc = c4d.documents.GetActiveDocument() obj = doc.GetActiveObject() tags = obj.GetTags() c4d.CallCommand(12235, 12235) newtags = obj.GetTags() newname = "NewName" for tag in newtags: if tag not in tags: # this is your newly created UVW tag # rename it tag.SetName(newname) c4d.EventAdd() if __name__=='__main__': main() Basically, you get the list of tags applied to your object, then perform your callcommand to generate the UVW tag. Then you get the list of the tags after. The difference between the tags after and before your callcommand will give you the UVW tag being created. Then it's simply a matter of setting its name. Notice that I left out validation code, checking if an object was selected ... and such things as error checking.
  4. Create an uvw tag and rename it

    As explained the code I provided gets the first UVW tag. Have a look into the Cinema 4D Python SDK documentation how to obtain the second UVW tag. In your case (when you want the second uvw tag), use the index value 1 (since zero-based). As such you will need to write: uvwtag = obj.GetTag(c4d.Tuvw, 1) But in some situations the tag you need won't be the second one. As a result you'll probably have to find a way how to make sure that the obtained uvw tag is the one you need. Coming back to you original question, where you mention that you are able to create an UVW tag, but are unable to rename it. If you create a tag, you should store the created tag in a variable, which you can then use to rename it. Much simpler than trying to get to the appropriate tag afterwards. So, when you create it, get a "pointer" to it, and rename it via its "pointer".
  5. Create an uvw tag and rename it

    If it changes the texture tag's name, that means you have that tag selected, as your function tag() return the currently selected tag. Try the next piece of code instead. It gets the currently selected object from your scene and gets the first UVW tag of that object, then renames it to "NewName". import c4d def main(): doc = c4d.documents.GetActiveDocument() obj = doc.GetActiveObject() if obj == None: return uvwtag = obj.GetTag(c4d.Tuvw) if uvwtag == None: return uvwtag.SetName("NewName"); c4d.EventAdd(); if __name__=='__main__': main()
  6. Create an uvw tag and rename it

    use the SetName() function on your tagm, as in: tag().SetName(newName)
  7. The product page doesn't contain the version number, since I have no access to update/manage the store pages. For every change in product description I would need to contact the owner of the C4DCafe website to make these changes. As such, I had decided not to include any reference to plugin version number, as this would require more maintenance for store owner. When purchasing the plugin via the C4DCafe Store you actually only purchase the license. As mentioned in the product description you then contact me via PM or e-mail (preferably e-mail) with the necessary information to complete the order, upon which you will be sent the latest version of the plugin. Which currently is 1.2
  8. A few weeks ago over at CGTalk a similar question was asked. I created a video then to demonstrate my workflow, which does heavily rely on plugins I created to automate the process. Still, the same an be done without these plugins, it only takes a little more manual work. First thing you will need to do is UV unwrapping of your models. This needs to be done in Cinema 4D, and while BodyPaint functionality is available I personally use my Seamilar plugin for this. But then again, as the creator of the plugin, I am biased. I then create dummy materials to assign to the different parts of the models, using yet another script/plugin I created especially for this workflow. Then it's up to exporting your models to Substance Painter, which I use FBX for, making sure to export the materials as well. This does prepare for the texture sets in Substance Painter. When texture creation is completed in Substance Painter, I export the textures using a specific preset I once set up. And use another plugin to import the textures and assign them to the specific material channels of the previously created dummy materials. this might be useful as well: https://www.c4dcafe.com/ipb/forums/topic/90805-c4d-learning-expedition-001-pro-level-uv-mapping/?do=findComment&comment=611274
  9. Thanks for replying bezo. The plugin has been released about something more than a year ago, what was then version 2.0 Since then updates have been released with additional features. Price of the plugin has also increased over the past year since more and more features have been added, but customers have received these updates for free. I am currently finalizing version 2.5, with some more updates coming in the future.
  10. Since today my antivirus software keeps refusing to let my browser connect to the C4DCafe as it mentions the website's certificate is invalid or has expired. Not sure what to make of this, just wanting to let you know.
  11. I can provide a solution where the image is kept non-square while the UV canvas remains square. For this I would then provide two options: "fit" and "fill" The "fit"option will fit the image with the largest dimension into the UV canvas (in the above example: the width), this will introduce blank spaces above and below. With the "fill" option the smallest dimension is used to fit into the UV canvas (in the above example: the height), resulting in the image being clipped in the width. I might introduce additional options to allow offsetting the image into the UV canvas after fitting. By default the image would be centered into the UV canvas.
  12. I will see what I can come up with, but cannot promise any solution available in the 2.5 time frame Just to make sure we're on the same track. What exactly do you expect to achieve with the fitting? Do you want the UV's to fit to the non-square inage, or the non-square image to be fitted to the square UV canvas? What do you mean by "it changes the image" when using the Texture Size command? How is the image adjusted, and in waht way would you want it to adjust instead?
  13. Thanks for the feedback so far. @bezo One thing to understand is that most of the UV editing functionality is not available to plugins. I always wondered why so few UV related plugins existed for Cinema 4D. Once I started writing my own I soon understood the reason. As a result, all required features have to be designed and written from scratch. No way to simply re-use built-in features. At least not with the current R19 SDK. Who knows what R20 will bring us. @avideditor I usually want to introduce more than just a few changes per update. As such, the release of 2.5 update will need to wait after the necessary additions are all implemented. Then a beta cycle follows, which might last a while depending the issues encountered. The fewer extra features are added the sooner the update is released ... It all comes down to balance between the number of features to add and the time the customer wants to wait between updates. @Cerbera The distortion display mode was something I wanted to try. I still am wondering about the right distortion indication to use. The standard seems to be to visualize red polygons where the UV's are stretched, and blue where they are compressed. Logically I would expect the opposite (red for compression -> hotter, blue for expanded/stretched -> colder). I suppose it depends how you want to indicate the distortion: from point of view of UV -> Texture -> Mesh, or from point of view of Mesh -> Texture -> UV. Seems the standard is Mesh -> Texture -> UV: when a large mesh surface gets a small texture area, the mesh gets compressed into a small UV space (= red). Logically I would expect you're interested in the UV space being stretched out onto the mesh (=blue) Maybe I'll need to provide alternative distortion viewing options: logical distortion versus "think different" distortion, where the blue and red colors get swapped. With the introduction of the Texture Display Mode, I now can finally provide the "snap to pixel" feature I wanted to implement for a while. Haven't recorded a video showing that feature, but it's already implemented. Another item ticked off from the to do list. Next is figuring out if I can also provide the quantization in pixel units without cluttering the user interface too much. Using cursor keys to precisely move items (points/edges/polygons/islands) has also been implemented in this update.
  14. Working on the next update ...
  15. Here's a scene file I created more than 10 years ago (time flies) which I used to insert greenscreen keyed video footage into 3D environments. With the use of the userdata I could then move the keyed live action character into my 3D scene. I extensively used this setup for a short story I created. Camera_Resize_RefPlane.c4d