I'd like to add support for animated previews in my custom node space. I assumed, that enabling Animate Preview on the Viewport tab of the material means that the GetMaterialParameters() function of my viewport material is called every time the frame changes in the scene.

However that does not seem to be the case, nothing happens when moving the timeline. Am I missing something? Do you have an example of how to support animated previews?
Best posts made by peter_horvath
-
Animated viewport preview in Node Materials
-
RE: Particles and RenderDocument
Hey Ferdinand,
Nothing special about the context. Tried cloning with AliasTrans, but it does not help.
I'm attaching a simple code taken from the manual in case you want to reproduce the issue. The code adds two commands, one calling RenderDocument() with the
RENDERFLAGS::NODOCUMENTCLONEflag and one without. You can see, that the one with the flag does not render the particles. Note, that no manual cloning is involved in the example, just loading the document, which might indicate that it's indeed a bug.Thanks,
Peter -
Copy over additional nodes with a Node Material
This might be a very unique use-case.
We define a custom node system that is used in Node Materials. We have a shader that references another nodes from the scene, such as materials and objects. Currently when the Node Materials is copied over to a new scene, these references are lost. Ideally, the referenced nodes should be cloned and copied over to the new scene along with the material. Is it possible to do this with the current SDK?
This was not an issue with our legacy material, since it was our custom MaterialData implementation, and so we had control over copying by overriding the CopyTo() method.
Latest posts made by peter_horvath
-
RE: Cinema 4D 2027 SDK fails to build on macOS if the path contains spaces
It's not a blocker or critical issue for sure, the SDK builds fine when no whitespaces are in the path. Normally I don't use whitespaces either, but this time I unpacked the SDK in the Cinema 4D install folder in "/Applications/Maxon Cinema 4D 2027/sdk", that's why I noticed the issue. (The "Application Support" folder is where the SDK scripts are copying some files to, and that is properly escaped. The issue is only with whitespaces in the source folder CMAKE_CURRENT_SOURCE_DIR).
Yes, the fix is to escape CMAKE_CURRENT_SOURCE_DIR in
core.framework/project/CMakeLists.txtandcinema.framework/project/CMakeLists.txt. There are also a few other places in sdk_targets.cmake that break when the path has whitespaces. It's fine to fix it in an upcoming release instead of a hotfix. Thank you. -
Cinema 4D 2027 SDK fails to build on macOS if the path contains spaces
The cmake build fails with the following error if the sdk is located in a folder that has spaces in the name:
PhaseScriptExecution Generate generated/core.framework/prebuildEventStamp2 ... (in target 'core.framework') cp: .../Library/Application Support/MAXON/maxon.py: Not a directoryThe generated script (
build/core.framework.build/Release/Script-A6F7B869415D4714E2AE9A4C.sh) contains a cp command where the source path isn't escaped, so cp interprets the path as multiple arguments.The issue is in
frameworks/core.framework/project/CMakeLists.txt:23-24(and probably in other frameworks as well), where${CMAKE_CURRENT_SOURCE_DIR}goes in raw/unescaped. (Can not post the actual code block, because the security filter blocks it.) -
RE: GetWorkplaneMatrix is broken in Cinema 4D 2026.3
Sorry, I haven't noticed. Seems like I can't upload, it always failing me. I updated the links now, hope this works.
-
GetWorkplaneMatrix is broken in Cinema 4D 2026.3
Hi,
We are calling GetWorkplaneMatrix() from the c++ API in a custom command to create objects in the center of the current workplane. This function is either crashing or returns an invalid matrix now in Cinema 4D 2026.3.x.
Attached a simple repro: workplane_test.zip
And the crash report: _bugreports.zipNote, that we build our project with the 2026.0 SDK and run the binary in 2026.3.
Cheers,
Peter -
RE: MoGraph data index and Multi-Instances
Hi Ferdinand,
Thank you, I will consider different approaches based on your reply and might file a feature request as you suggested if I can't find any solution.
Thanks,
Peter -
RE: MoGraph data index and Multi-Instances
Hi Ferdinand,
Thanks for your feedback, Yes, I'm aware of the object structure. Let me explain a bit more what I'm trying to do and what I'm missing.
Here's a simple example of a Cloner with two shapes, a Sphere and a Torus, and a Plain Effector with a Spherical Field. The effector sets the weight of the clones (1 to zero from the middle) and also modifies the shape order ("Modify Clone" is enabled), so that Torus shapes are in the middle and Spheres are outside the field. So the shape order is not necessarily the same as how the data is stored on the mograph tag. I'd like to export weight as user data per shape. In Instance or Render Instance mode I can read the mograph data index from the clones, that tells me the weight from the MoData tag.

In Multi-Instance mode, I would expect the same result. However, since the indexes are not available, I can not connect the MoGraph data to the instances and read the weights. As you said, in Multi-Instance mode there are reference shapes and Instance Objects per each reference shape in the cache. The InstanceObject can return the matrices and colors of the individual shape instances, but no indexes as far as I can see. I'm not sure how complicated is to generate this data, but would be nice to have.

Cheers,
Peter -
MoGraph data index and Multi-Instances
When using a MoGraph Cloner in Instance or Render Instance mode, the MoGraph data index is available via the
BC_ID_MODATAINDEXid in each clone.clone->GetDataInstance()->GetInt32(BC_ID_MODATAINDEX);This is the index of the clone in the data arrays of the MoGraph Data tag.
Is this index available in Multi-Instance mode as well via the SDK? Via the InstanceObject maybe?
We'd need this index to be able to export MoGraph attributes to each clone/instance. -
RE: Hide port from input menu in the Node Editor
Thanks for looking into it @m_adam.
Maybe this is specific to Arnold, but there are shader parameters that are not linkable. It's a flag on the parameter. Typically, boolean and enum type parameters are not linkable, like the ones highlighted in the screenshot below. But could be any parameters really, depending on the shader code.

-
RE: Input port menu in Node Editor does not respect order index
Hi Ferdinand,
Thank you for your reply. Sorry for not being completely clear. Yes, I meant maxon::nodes::ReqOrderIndex. I feel like it would be more natural if the input menu would match the order in the Attribute Editor, instead of listing the items in alphabetical order. Being able to control the behavior via the API could be welcome. I'll make a feature request, just in case. What's the best option to file an API request? Should I use the form in support.maxon.net or the contact form here?
Thanks,
Peter -
RE: Distribute asset library as a zip file
Hi Ferdinand,
Thank you for the detailed description, it's very useful, I have a good understanding now how this should work. Yes, the main goal here is installer optimization. Unfortunately, hosting online is not an option. I'll give it a thorough testing to see if we hit any limitations with this approach, and we might drop the idea if so.
Thanks,
Peter