Tried to send the crash report on 6/6/25 at 22:08 but I got a message saying there was a problem sending it. The message also says to send it by email so I've sent it to sdk_support(at)maxon(dot)net.
Steve
Tried to send the crash report on 6/6/25 at 22:08 but I got a message saying there was a problem sending it. The message also says to send it by email so I've sent it to sdk_support(at)maxon(dot)net.
Steve
Hi @ferdinand
Thanks, I’ll submit a crash report as soon as I can. The power keeps going on and off here, when it’s restored I’ll send one in.
Steve
Hi @ferdinand
Firstly, many thanks for looking at this. The plugin ID is a silly mistake on my part (I didn't realise that VS had auto-completed with the wrong ID). It should be ID_RSC4DSHADER (not IDS...) in the register function. If you look in rsc4dshader.h, you'll see it correctly identified with a valid plugin ID there. I was in a bit of a hurry building this and didn't realise what had happened. I'm surprised it ran at all TBH!
The SDK version was 2024.5.1 (Build 2024_5_ac4bc44383e4_1378804312). Isn't this a newer SDK than 2024.4.0, not an older one?
I can get the crash in 2024 but I've tried now in 2025.2.1 and it doesn't crash, so possibly whatever it is was fixed. I've also tried several other of my shader plugins in 2024 and they all exhibit the same issue, crash in 2024 but not in 2025.
Cheers,
Steve
Hi,
I've written several shaders which I also use in Redshift using the C4D Shader material. I get a consistent crash in the following circumstances:
The crash occurs in customgui_gradient.cpp at line 59, which is:
maxon::Result<maxon::GradientRenderData> Gradient::PrepareRenderData(const InitRenderStruct &irs) const
{
GradientCallRC(maxon::UnexpectedError(MAXON_SOURCE_LOCATION, "Gradient::PrepareRenderData() not found."_s), PrepareRenderData)(irs);
}
It happens in all the shaders I've written which use a gradient. It looks as if scrubbing the knot forces Redshift to repeatedly bake the shader and doesn't like it for some reason, but that is just a guess.
To demonstrate this, I've written a very basic shader plugin - it just draws a red-blue gradient over the surface. The attached file has the source and a debug version of the shader built with the R2024 SDK. To see it, load the included example file, then scrub one of the knots in the gradient, increasing the texture parameter size until it crashes.
I should also mention that this does not happen in the standard renderer.
Cheers,
Steve
RSC4DShader.zip
I actually quite like the Apple keyboard, even if Apple’s idea of a UK keyboard is different to everyone else. For example, shift-2 should produce a “ character but on this Apple kit, it’s the @ symbol. The odd key bindings just make it worse, but it’s a nice keyboard.
But I detest the Apple Magic Mouse, I can’t get used to those ‘gestures’. Give me my Logitech trackball any time. A bit of extra software does make a Mac so much more useful though. Pathfinder is way better than the horrible Finder, and BetterZip is very user-friendly.
Ouch. I've never had that happen with VS, but I've had Xcode refuse to build for all sorts of reasons, all of which VS happily ignores. I have to say that building on this Mac mini compared to my old MacBook is a revelation though - so much faster, and the screen is way bigger. That said, I still prefer VS, it just seems easier to use. Xcode really is painful, and as you say, Apple clearly enjoy that.
Yes, that Xcode download site is extremely useful!
Cheers,
Steve
Well, for the benefit of anyone else in this position, I finally got it working. There was another problem in that Xcode 15.3 won't install on macOS Sequoia; you can apparently make it run with a small hack, but in the end it was easier to uninstall Xcode 16.3 and install 16.2 instead. Then it works fine and builds the SDK without incident.
On a side note: why do Apple make life so ^&%&^$^^(* difficult for developers?
Thanks again Ferdinand,
Steve
Hi @ferdinand,
Many thanks for this. It shouldn’t be a problem using an older version of Xcode for the time bring. I’ll get version 15.3 and give it another try.
Cheers,
Steve
I've tried for the first time to build the SDK C++ examples on MacOS and have run into a problem. I'm using a new Mac mini with Sequoia 15.4.1, Xcode 16.3, CMake 4.02 and Python 3.13. I've followed the procedure in the SDK docs and everything appears fine until I try to build the examples, when it fails with this error in interfacebase.h:
/Users/steve/Documents/C4DPlugins/C4D_2025/frameworks/core.framework/source/maxon/interfacebase.h:638:73 A template argument list is expected after a name prefixed by the template keyword
I have no idea what to do about that. The examples build fine on Windows but (as usual) Xcode throws up some sort of problem. Could I have done something wrong or is this an issue in the SDK code?
Thanks,
Steve
The green tick/red cross only indicates if an object is enabled or not. You can see it with deformers, fields, primitives (which are generators anyway), other generators such as the cloner or extrude, etc. The tick does NOT show that the object is a generator. You only see it with objects whose actions can be enabled or disabled, so you won't see it with polygon objects or things such as the floor object.
To get the status of the green tick for objects which have it, use GetDeformMode().
(Edit) I've never used it, but if you call obj.GetInfo() and test for the flag OBJECT_HASDEFORMMODE, if that flag is present then it seems that the object does have the green tick. This could be useful when looking at objects which aren't generators, etc. but still have that tick.
Steve
Hi @skibinvitaliy
There's a few things to watch out for here. First, you will need to include at the very least the file c4d.h from the framework, if this is missing that might account for the undeclared identifiers.
Assuming you're doing that, you must either use the cinema namespace or specifically qualify function declarations etc. If you don't, the compiler won't recognise the C4D functions and objects as valid. The manual explains how to do this, it's not difficult - just an extra step to take which I keep forgetting because it's new to R2025.
The error 'int Bool' redefinition is because what it looks like you're doing there is declaring a variable named 'Bool' to be of type 'int'. But 'Bool' cannot be a variable, it's a variable type (actually a typedef defined by the SDK) so the compiler thinks you are redefining it, which isn't allowed.
These are all just guesses though without seeing any code, but the first thing to look at is the namespace. Catches me out every time.
Steve
Excellent. Glad you got it working okay.
Steve
What I meant was, if your resource files are now named curvaturetools.res/h/str then RegisterTagPlugin() must contain the ‘description’ parameter to be “curvaturetools” not “Tpylookatcamera”.
Steve
@mogh If you are using the same code but just different resource files, did you remember to change the resource name in the RegisterTagPlugin() function?
Steve
@mogh Ah, this is the old symbol cache bug/feature. I'd forgotten about that. With Cinema not running, go into the prefs folder - you can get the location by running Cinema, opening the Preferences dialog, and click 'Open Preferences Folder...'.
In that folder you'll see a file called 'symbolcache', probably with today's date. Delete that file, then run/restart Cinema and all should now work with your revised resource files.
AFAIK this was only a problem with Python plugins, not C++. I've tested this in R19, not R20, but my guess is that it's the same in R20.
(Edit - yes, same in R20.)
Steve
@mogh I think it's unlikely to be anything VS Code does. Millions of people use it and I've never heard of a problem caused by whatever line endings it adds.
Much more likely is an error in the resource files. Earlier versions of Cinema were incredibly sensitive to mistakes in the resource and the stock response is to show that message. Misleadingly, it says the error is in the .res file but it could actually be in the matching .h. or .str files.
The most common errors I find are:
There are probably other causes but these are the commonest ones (IMO). If you altered the name of an element .res file of your plugin did you change the .h and .str files to match? And if you did, did you alter the Python source code to use the new name?
Steve
Unfortunately not (in my case) because my MacBook is too old to run Ventura. This means I can only build macOS plugins for R2024 or earlier, because I can’t run R2025 on my Mac (requires Ventura to run). Therefore, I’ve made the decision not to build my plugins for R2025 on macOS until/unless I can afford to buy a newer Mac. It just isn’t worth it for free plugins. If I had a newer Mac I would almost certainly do as you suggest; I’ve done it before with older macOS versions.
Why not just use a BaseArray of the data structures you want to use? Re-initialise this every time InitRender is called then you can iterate through it when needed (presumably in the Output function?).
You’ll also need to implement CopyTo() to make sure the data is available when rendering to the picture viewer.
Steve
Just to note for info, the SDK docs for 2025 have a page for notarizing a Mac plugin. However, it still refers to using 'xcrun altool ...' but as I have just discovered, the use of altool has been discontinued and you must use 'xcrun notarytool ...' instead. The command line is almost the same but slightly different if you don't use a keychain profile but enter your Apple ID, app-specific password, and team ID separately.
Thought I'd mention it so the page can be corrected (in all that wonderful free time I'm sure you have!).
Steve
That’s a very useful site, thank you. I already have Xcode 13.4 installed but I don’t know if it will still be available after upgrading the OS to Ventura. If not, I can get it from there and reinstall.