C4D Programming

Developing plugins and scripts for CINEMA 4D

Month: March, 2013

Why use Get/SetParameter and Get/SetDParameter

by franz3d78

Usually Cinema4D store settings for nodes and tools in a BaseContainer.
BaseContainer is very useful class that allow you to store different data type in easy way.
But you will notice there are some cases where Cinema don’t store parameter in BaseContainer, for example some of light and camera parameters are not reachable by Get/Set BaseContainer Methods.
Read the rest of this entry »


MAXON Developer Kitchen 2013

by .

On Thursday, June 13th 2013, MAXON is hosting the Developer Kitchen. It will take place in the context of the MAXON User Meeting in Cologne, Germany.

Commercial 3rd party plugin developers are invited to participate, to meet and discuss with MAXON developers, hear interesting presentations about plugin development, and find out more!

The participation is free of charge. To get more information and to apply, please contact MAXON Product Manager Bernd Lutz (b_lutz[at]maxon[dot]net).

Automatically add tags at last position on creation

by .

Usually, when the user attaches a new tag to an object using the “Tags” menu in the Object Manager, the new tag is always added as first element to the object’s tag list.

For some tags, however, it would make sense to rather add them to the end of the object’s tag list. Especially if those tags should ‘layer’ their effects on top of each other (e.g. like multiple texture tags).

If you want your tag to be added to the end of the tag list automatically when it is being created, this article will tell you how.
Read the rest of this entry »

NodeData – what is it good for?

by .

If you’re new to programming for CINEMA 4D, you might have wondered what’s the deal with NodeData and its derivatives (e.g. ObjectData, TagData, ShaderData, et cetera).
When you are writing a plugin object, which is a BaseObject, why do you have to derive your plugin class from ObjectData instead of BaseObject? What is the connection between NodeData and the GeListNode derivatives (BaseObject, BaseTag, BaseShader, et cetera)?
In this article, you’re going to find out.
Read the rest of this entry »