Jump to content


Regular Member
  • Content Count

  • Joined

  • Last visited

  • Days Won


C4DS last won the day on December 29 2018

C4DS had the most liked content!

Community Reputation

270 Good

About C4DS

  • Rank
    Cafe Regular
  • Birthday 06/04/1970

Profile Information

  • First Name
  • Last Name
  • C4D Ver
    R20.026 Studio
  • Location
  • Interests
    Electric guitars, Virtual Instruments, Radio controlled electric airplanes, 3D animation story telling, Video editing, C4D plugin development

Recent Profile Visitors

8,869 profile views
  1. Apologies for misreading your question. My original interpretation of your problem was that you needed two layered materials, where the topo texture had some alpha or transparency. Hence the suggestion to use layered textures instead of layered geometry. However, I now understand that you need separate materials on the front and back of the geometry and therefore had duplicated the geometry, assigning the back material on the bottom geometry and the front topo material on the top geometry. This front/back information was only brought later into the discussion. And as such, my original suggestion for using layered material is actually of no use.
  2. I meant using a layer shader or fusion shader or similar, where you combine the different textures, and apply that as a single material to the single geometry
  3. Having geometry close to each other will always provide for issues. But why layer the geometry as you are trying to do? Why not simply layer the materials on a single geometry?
  4. Thanks for the kind words. Most of the plugins are written in C++, which I already was using before jumping into C4D, back in 2005. While Python is only used for "simple" plugins, or scripts, or for prototyping. And this language I only learned quite recently, as I still need to look up functions in the Python documentation, each time I am adding features or updating functionality to a plugin or script. As mentioned, STOS was the main reason I went for the Atari ST. So, software development was already a passion of mine, back then. I remember having purchased an (expensive) assembler only to be able to write a single extension for STOS. As such, I was then already writing plugins. STOS could only handle 15 sprites in total. I needed much more, so wrote a "shape" extension which mimicked a sprite. Didn't take long to write, as such the expensive assembler was only used a very short amount of time. With the "shape" extension available I could basically do all I wanted in every application I wrote since. That assembler was the best investment ever, and the most expensive software purchase I had ever made ... till I stumbled upon "trueSpace" somewhere halfway the 90s. Funny thing is that I also wrote plugins for that application ... "scitameniK" being my most popular one. As the name implies, it was an extension for Inverse Kinematics.
  5. I had used Reaper a while, some years ago, for editing voice-over takes and effects, but never really managed to stick to it for music making. As far as I remember I seemed to have had issues with Kontakt and other virtual instruments, and was too impatient to get used to its workflow. Went for Tracktion instead. As for the plugins I am developing, most except the latest one are listed in a blog here at the Cafe, as well as having their own threads in the plugin section of the forum. Right ... the Atari STE. Could indeed have as much as 4MB if I remember correctly. Never could justify the "upgrade" from my STFM, which I purchased having 512KB and had it upgraded to 1024KB. A few years later purchased a PC 80486 with ... 16MB. Still far away from the 16GB which are common now. Still, I much more enjoyed the Atari than any PC I have had in all these years. Shame for the lousy graphic resolution, back then.
  6. I remember the 512KB and 1MB versions, (STFM versions), but cannot recall the 2MB. Was that the STE, the TT, ...?
  7. I agree. Have purchased Cubase Elements 8 a few years ago. Never really used it to its full potential, as starting the application seemed to take forever. Each time I wanted to do a quick session, the amount of time to wait loading the application just killed the inspiration. Have since tried Reaper, and am now focused on Waveform (formerly know as Tracktion). Both of them launch in a blink of an eye. But, unfortunately, other things are keeping me away from music making ... and even from doing 3D. A decade ago it used to be building and flying model airplanes, but since a few years my attention is now fully turned to plugin development.
  8. Have been an ST(FM) user as well, but more for the graphics than for midi ... especially STOS. To be honest, prices have come down and storage has increased, both exponentially. But what about the fun and excitement? Maybe it's nostalgia, or old age, but the 80s-90s seemed to be more exciting computer-wise (as a teen) than today (as an old fart), even if things were barely affordable then ... And the music was better.
  9. I have been a Gold Support member for a long time. Just noticed I don't longer seem to carry the Gold Support tag. Which means it probably ran out. Haven't received a notification to renew, or anything similar. Still, as far as I remember, being a Gold Support member I still had ads popping up on every page, and between the first and seconds posts of each thread. As such, I am wondering, before renewing my membership, what would Gold Support entitle in the sense of ads free experience? Or would it mean an additional fee would be required on top of the Gold Support purchase? Just wondering.
  10. Both you and @RobertL should have received the updated version. I have added some documentation regarding the script, and even added a script example. Looking forward to both your feedback, before providing the update to other customers. As for Seamilar, PolyGnome (as well as Dials), they're currently still 15% off, and EasyUV is at 40% discount ... for the whole month of February.
  11. Yes, every output port requires it's variable to be defined as global. I was a little too fast with my response for the second script, and I omitted the 'global', as well as forgetting the namespace 'c4d' in front of the rotation attribute. As such, the working script should be # construct a matrix from Position and Rotation, # input ports are Position and Rotation, output port is NewMatrix import c4d def main(): global NewMatrix NewMatrix = c4d.utils.HPBToMatrix(Rotation, order=c4d.ROTATIONORDER_DEFAULT) NewMatrix.off = Position As you figured out by now, I hadn't tested the script before submitting ;-)
  12. As mentioned, name your input and output ports accordingly. These port names are used in the scripts. If these don't match you'll get the error you describe.
  13. OK, got it. As I thought, the input ports are "Position" and "Rotation", both of type vector, while the output port is "NewMatrix" of type matrix. So, when replacing the COFFEE node with a Python Node you should create the appropriate input and output ports. With the first scripts the input and output ports are floating point values. By default, when you create a Python node in Xpresso you get 2 input ports ... of type Real (or floating point), and an output port, again of type Real. What you need to do for the second script is create a Python node, remove the input and output ports, and create new ones of the appropriate types. I don't think you can change the port type (at least you could not in the past), therefore you need to remove the existing ports and create new ones. Name them accordingly and you'll be set!
  14. You could google this and find a better answer, but I'll try my best at explaining it. The "->" you see in COFFEE and other programming languages (C++), is a way to access an object's member or function. In the second script there is this "InMatrix" variable which refers to a matrix object, an instance of a matrix class. Be careful with "object". In this context it isn't a Cinema 4D mesh object or null object, nor deformer, nor generator, ... The object here is a "container" which holds some data and functions (members and methods in C++). The matrix class has a GetClone function which allows to create a copy of itself and pass it along. InMatrix->GetClone() thus means that from our InMatrix object, we call its internal function called GetClone, and the resulting copy is assigned to NewMatrix, a new object instantiated from the matrix class. EDIT: Well, for completeness. In C++ (other languages probably as well, but I am most familiar with C++) to access members and methods of an instantiated class or structure one can use "->" or sometimes just a dot. myObject->member myObject->method() - or - myOtherObject.member myOtherObject.method() It all depends how the object was instantiated, as a pointer or not. But I guess this all is getting beyond the scope of this forum.
  15. I can't seem to find the second COFFEE node you are referring to. All I see are 7 COFFEE nodes with the first script.



C4D Cafe is the largest CINEMA 4D community. We provide facilities for discussion, showcasing and learning our favorite software :)
  • Create New...