-
Posts
1,280 -
Joined
-
Last visited
-
Days Won
68
Content Type
Profiles
Blogs
Forums
Gallery
Pipeline Tools
3D Wiki
Plugin List
Store
Downloads
Everything posted by dast
-
Seamilar is being updated to R21. Still some minor things to finalize. Current customers will be contacted by e-mail shortly.
-
That was more or less the idea behind the whole concept of lack of advertising: provide members of the cafe some additional value for being member.
-
Thanks for the feedback. You're welcome. My pleasure to provide the offer. Actually, the current prices on the website or the original prices, from which 50% will be deducted when the order/invoice is made. I haven't updated the website to indicate the current 50% off deal, as it really makes no sense since the shop will be down in a few days. I didn't advertise the website too much, on purpose. As I currently already get too many orders from users of a pirated copy of Cinema4D. These orders, obviously, are all rejected, as I am not looking into doing business with such type of "users". By doing so, I can understand I have excluded legitimate users from the opportunity to get my plugins, which I do apologize for.
-
Thanks, but no thanks.
-
As mentioned in my latest blog entry I am done with plugin development: https://www.c4dcafe.com/ipb/blogs/entry/601-the-post-r21-announcement-depression/ For those who will stay with their R16, R17, R18, R19 or R20, I am providing 50% off on my current plugins available at https://toolspixels.be/plugins/ And this for the next few days ... till the shop shuts down. Make sure to understand these plugins will not be updated to work with R21. Additionally, I cannot guarantee any of these plugins will ever see a future update. Thanks. EDIT: Deal has ended, shop is closed!
-
What do you mean? According to your profile you're using R18, and as far as I remember you have received the TINA plugin for your R18. I haven't updated the plugin, as there was no real interest. Besides, what more features could I had? I understood people had their specific workflow and as such SPETI or TINA wasn't really needed to the majority of users. I had received a request for the plugin from 9 people in total, all of them received the plugin. And half of them provided a donation. Again, thank you to those who donated.
-
This topic didn't die just yet. Problem is that potential subjects are encountered less and less. I would have assumed that by now someone would have at least posted an image of a road sign mentioning the Tower Bridge ... or any bridge for that matter. There sure should be some in the UK, no? Maybe in the US then? The next picture of a road sign represents a selection tool we're all familiar with ... and no, it's not the loop selection tool ;-)
-
The numeric transform is currently in beta, awaiting feedback. As mentioned earlier I had been working on adding a new feature to the plugin, which would allow stacking of UV islands. With this addition users are able to stack multiple islands. When manipulating a stack each of its island would inherit the UV manipulation. It also allows to free up UV canvas space by stacking islands that require the same texture space. For now, only the "single-shot" island stacking is being demonstrated, where you stack selected islands by a command. In future, a more elaborate stacking-tool will be made available, where you will be able to interactively stack islands. This will allow to specify the stacking with specific polygon-matching requirement (later more about this). While the stacking-tool allows for a more specific solution, in case of complex island structure, I preferred to have the automatic stacking-command worked out first. This required quite some design and implementation, but also allows for a quick-and-dirty stacking of multiple islands ... which I assume would be mostly used.
-
Made a quick demonstration video of the new feature in action. While the feature originated from the demand to have a pixel accurate positioning and sizing option, I figured I could as well implement a full transform tool supporting both UV unit as pixel units (except for scale and rotate, obviously). The new tool is still work in progress, but should be available in a next update.
-
Since last post I was working on a new feature, which I am very excited about. More about that later. It took time to work out a design and required quite some supporting math to get the desired solution. Implementation is now mostly done, just not finalized yet. However, I was recently contacted for a particular request, and have put the feature on the shelf (only for a while) as I assume this new request to be more useful on a long term. Up till now Seamilar's manipulation of UVs (via points, edges, polygons, islands) was mainly focused on using interactive tools. Soon the new numeric transform tool will be available, allowing to manipulate points, edges, polygons and islands via precise values. For this to work the way I intended I had to construct a custom GUI component: ReferencePoint. With this you will be able to move, rotate, scale, position, size items from the four corners of a bounding box, or its center. For rotating, scaling and sizing you will also be able to perform the transformation actions on the whole set of selected items, or on the different islands separately. For moving and positioning you will be able to specify any corner of the UV canvas as origin. And when in Texture Display mode you will have the option to specify the transformation action in UV coordinates, or in pixel values. The icon for this new tool needs some attention, as this one is just a placeholder during the work-in-progress. I am currently finalizing the implementation of this tool. Followed with some more testing days ahead, before releasing an update. (Maybe some porting to pre-R20 version of Seamilar, depending the interest) After the release of the update I'll continue working on the other feature.
-
There is an order form with all the details.
-
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.
-
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.
-
I remember the 512KB and 1MB versions, (STFM versions), but cannot recall the 2MB. Was that the STE, the TT, ...?
-
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.
-
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.
-
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.
-
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 ;-)
-
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.
-
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!
-
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.
-
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.
-
Here is the first # Get the "shortest" angle between two vectors, provided via input ports Input1 and Input2, # The result is sent to output port Output1 import c4d def main(): global Output1 Output1 = c4d.utils.GetOptimalAngle(Input1, Input2, c4d.ROTATIONORDER_DEFAULT) And the second one As far as I can see this script is meant to create a matrix from a rotation and position, provided via input ports called Rotation and Position. The output port is then NewMatrix. I am not 100% sure this is what it is supposed to be, but without the actual scene file where the Xpresso and nodes can be investigated from, it is hard to tell. So, I'll go with my first assumption. The code for this is then # construct a matrix from Position and Rotation, # input ports are Position and Rotation, output prt is NewMatrix import c4d def main(): NewMatrix = c4d.utils.HPBToMatrix(Rotation, order=ROTATIONORDER_DEFAULT) NewMatrix.off = Position
-
I will contact you when I get a release version ready. And will provide you with a link from a gmail account ... no blocking out anymore.
-
It's Sunday morning, 6 AM. I just woke up with a possible solution to your request. I still need to see if I can get this solution implemented. But I guess I will have to get rid of the sticky key code as it kind of interferes with this new multi toolset shortcut solution. Since the sticky key didn't behave as expected on every version of Cinema 4D or OS platform, I was already more or less inclined to remove this anyway. Will report back when I have more news ... Edit: OK, the concept does work, but I had some trouble with the assignment of the different shortcuts. Basically what needs to be done is for the user to create a script per wanted toolset shortcut. Then assign a shortcut to each of these scripts ... and that's where Cinema didn't cooperate. It would allow me to assign a shortcut only to the last script of the set I had created. But restarting Cinema 4D after having created all the scripts does seem to do the trick. The script is simply passing the toolset number to Dials, so all scripts are equal except for the toolset number # Dials - toolset shortcut helper # 'TOOLSET' refers to the toolset number you would want to activate # Any number between 1 and N, where N is the total number of toolsets available. # Using toolset number 0 will activate the last used one. # When a toolset number is provided out of range the plugin will revert to using 0 # # Assign a shortcut to this script to activate the required Dials toolset # (for this to work you'll need Dials v1.2) import c4d TOOLSET = 1 if __name__=='__main__': c4d.CallCommand(1041321, TOOLSET) The above script uses TOOLSET = 1 to activate the first toolset, simply create different of these scripts, replacing the '1' with the required toolset number. @RobertLLet my know if you want to test this new version.