I guess a Python script would do it fine, but I don't use Python. I can write you a quick plugin if that's any use? A plugin would give a few more options than a script I think.
Steve
I guess a Python script would do it fine, but I don't use Python. I can write you a quick plugin if that's any use? A plugin would give a few more options than a script I think.
Steve
Hi rui,
Yes, it's a pain in the neck doing macOS development. I almost gave up on it at one point it's such a hassle. But once you figure out all the hoops to jump through, it's not too bad. You might want to take a look at my guide to notarizing a mac plugin on my site at https://microbion.co.uk/html/createplugins_r23_3_notarize.htm. This explains the steps needed; the first step is the Apple developer account, which is what I think the tutorial you read must have been referring to. Unfortunately, unlike an Apple ID, getting a dev account is not free.
Steve
When rebuilding my plugins for R2024, I had to notarize the Mac version again for the new builds. The process worked fine, but I noticed that there was a message from Apple stating that the use of 'altool' to notarize was not going to be supported by the end of 2023.
In fact, they now say "The Apple notary service no longer supports altool from November 1, 2023. You use notarytool instead." See https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution
So I looked into using 'notarytool' and surprisingly (for Apple and XCode) it's significantly simpler and faster than the previous method. I've written some notes on how to use it for anyone interested, which are on my site at https://microbion.co.uk/html/r2024macosnotarize.htm
Steve
@m_adam Thanks very much for your comments. You asked which parts of the manual page weren't clear. It's more that it's incomplete, in that it doesn't tell you how to get a bundle ID, app password or provider ID. Also, I don't think the statement that adding a timestamp is optional if you enable the hardended runtime is correct - from what I can see, you must provide a timestamp even though you enable the hardended runtime.
The other thing is that invariably at some point the process is going to fail and there's no mention of what to do when it does. It's extremely frustrating when the notarization fails and you have to figure out why. Apart from that, the page is actually very good - just needs a bit more detail (IMO).
Steve
No problem, give me a couple of days to get an initial test version working. Are you on PC or Mac?
Steve
Take a look at the command line arguments passed to the project tool in your screen shot. The project tool is looking in the wrong place.
Steve
Hi Bjorn,
I have a working version of this now which you can download from my site at https://microbion.co.uk/files/rounditr2024.zip
It's PC-only at the moment and requires C4D R2024. Try this and see if it does what you need. There's some basic documentation included which I'll tidy up for the final version.
There doesn't seem to be a DM facility here so we'd better take any further discussion to email. You can get hold of through the contact page on my site (link is in the PDF in the zip file). Do let me know what you think.
Cheers,
Steve
In C++ - I expect it's the same in Python - I would call GeGetPluginPath() to find the absolute path to the plugin, then append the filename to that path. This should work no matter where the user has installed your plugin.
Steve
Hi @ferdinand,
No problem, I got there in the end and it's actually not too tricky once you know how it's supposed to work. I'll have a go now at a material node, there are more examples of those so hopefully it'll be straightforward. I'll be sure to be back if it isn't!
In the meantime I've uploaded a detailed explanation of all the steps needed to build this kind of node to my site at https://www.microbion.co.uk/html/create_nodes_corenode1.htm so if anyone wants to see how it was done, it's all there. Hopefully it's fairly accurate; all I can say is that this is what I did and it worked for me
Thanks again for your help,
Cheers,
Steve
In addition to ACCEPT the LINK gui also has a REFUSE statement. You can use that to exclude your plugin ID.
Steve
Hi @m_adam
Thanks very much for this, it's extremely helpful and gives a lot of detail about how nodes actually work.
From what you say, it does indeed sound as though implementing a shader in RS is basically not possible. That's a shame, but at least I won't be wasting time trying to get it to work but not knowing it can't be done! Still, I've learnt quite a lot while trying to make it work, so it's not all bad.
Thanks again,
Steve
I've written a new node which outputs a colour and I want to use this in an RS material in the node editor - but it isn't present in the node list.
The node itself is fine and does what it is supposed to. It is in the node list in the category I want (Color) and I can add it to the node editor, if - and only if - the editor mode is 'Scene'. If I change the mode to 'Material', or create an new RS standard material and edit it, then my node disappears from the node list (so do a bunch of other nodes in the Color category) so I can't use it in the material.
My question is simply what other steps are needed to make this node available in the node list when the editor is in material mode? There must be something I haven't done - the node is just a core node written as shown in the SDK. What have I omitted to do?
Thanks,
Steve
I think I've solved this one (as so often happens when you write down a question the answer hits you soon after!).
When the node category is changed, if I right-click the node in the Uncategorized group, and select 'Create Node' the node is automatically removed from Uncategorized and put into the Color group. As long as I save the database, from then on it always appears in 'Color'. So that's fine.
One other thing I've discovered, if you change the node icon in the resource editor, to make it change in the node list just double-click the node and the icon will change. Whether that's the 'correct' way to change the icon I don't know, but it works.
Anyway, this one can be marked as closed.
Steve
I'm creating a new node intended for use in the material node editor. I've made scene nodes before and they all work fine, but I'm having trouble with this one.
The problem is that no matter what menu category I specify in the resource editor, the node always goes into the 'Uncategorized' group. As a result I can only use the node in the node editor's 'Scene' mode, not 'Material' mode as the uncategorized section isn't availalble in material mode. The resource editor looks like this:
So I've selected the Color category and in the .json file for the database it shows this:
So the node should go into the Color group...but it doesn't. What am I doing wrong?
Thanks,
Steve
Hi @ferdinand,
Thank you for the explanation. That makes it very clear. From what you are saying, the particle data is initially loaded onto the GPU and then the GPU processes the simulation. The particle data is then only changed by the GPU during the sim, or by the modifiers provided, which are changing the data but I assume are using Maxon's proprietary tools to do so.
That's a very different process to X-Particles, for which I wrote the majority of the modifiers. There, the particle data load is very heavy but it's all exposed and writeable. Here, the data load is small but can't be changed. The small amount of particle data is actually an advantage because it keeps to a minimum the data which cannot be changed by the user (if that makes sense).
Cheers,
Steve
Thanks guys, that's useful information. However, I don't understand this:
@m_adam said in Particle modifier plugin type:
it is not possible to persistently write data back to the particle system
But for example, isn't the color mapper modifier doing exactly that? It changes the particle colour...so is it correct that it is writing the new colour data into the particles? There are also the functions GetParticleColorsR() for reading colours, and GetParticleColorsW() - which is not explained in the SDK docs but looks like it returns writeable data.
I've seen the Python example about reading particle data and I'm puzzled as to why writing data back in is not possible.
Steve
I've been experimenting with the new particle system in R2024.4. What plugin type are modifiers for the new system? I've tried OBJECT_PARTICLEMODIFIER and OBJECT_MODIFIER but neither seem to work. Is it a new type not exposed in the API yet, or do they use Execute() to perform their function, or receive a specific message type as effectors do?
Steve
In addition to ACCEPT the LINK gui also has a REFUSE statement. You can use that to exclude your plugin ID.
Steve
@josephnvelasquez49 It could be that in Xcode you haven't changed the build system back to the legacy system. If you don't you get all sorts of weird errors and the ones you are seeing look suspiciously like that. Also, the recommended Xcode version for R2024 plugins is 13, not 15; I don't know what will happen if you try building plugins with Xcode 15 but it's possible it doesn't even have the legacy build system, which Apple deprecated in 13 (or earlier).. Finally, Xcode 13 doesn't come with Python as part of the install so you need to add that separately and 15 may be the same.
See this page: https://developers.maxon.net/docs/cpp/2024_0_0/page_maxonapi_dev_macos.html
Steve
@mocoloco My immediate reaction to seeing something like that is that your tag is storing data which is not being copied when the scene renders. If you render to the picture viewer, the document is first cloned before being rendered. If you have class-level data in your tag it will need to be copied when the document is copied. You do that by implementing the CopyTo() function of the TagData object.
When rendering to the editor the document is not copied so it works fine without CopyTo(), which may be why you are seeing a difference between editor and PV.
(Disclaimer: I use C++ and not Python, but I expect the same principle applies in both cases.)