SDK Change Notes for Cinema 4D 2025.0¶
Summarizes the API and API documentation changes made between Cinema 4D version 2024.5.0 and 2025.0.0.
Documentation Changes¶
Major Changes¶
Updated what formerly was known as the Classic API to Cinema API. This change originates from the C++ API where a new namespace cinema has been introduced. In Python, the Classic API has already always been effectively represented by the c4d package, which was different from how C++ handled things and we did not change that. But the documentation will now refer to the Cinema API instead of a Classic API.
Updated mxutils with new functions and classes, most importantly multiple scene traversal functions, such as
mxutils.RecurseGraph()
and a class to generate random values,mxutils.Random
.Added new py-ocio_node_2025 SDK example, demonstrating how to handle colors in a scene element such as an object, tag, shader, etc. with OCIO being the new default color management mode.
Minor Changes¶
Fixed a crash when instancing a Xpresso Node in Python as a
c4d.BaseList2D
.Fixed a crash when printing a Xpresso Node in Python.
Fixed a freeze when calling
BaseDocument.SetMode()
in a row.Updated graph descriptions to now support variadic ports and explicit connections, for details see the Graph Description Manual.
Updated styling and formatting of the documentation in minor ways.
API Changes¶
Cinema API¶
Added
BaseContainer.SetDataNoDirty()
: Sets arbitrary data at the specified id without setting the container dirty.Added
BaseDocument.IsBlank()
: Checks if the scene contains any elements.Added
BaseDocument.HasUncachedDynamicMograph()
: Checks if the scene contains uncached dynamic MoGraph effects.Deprecated
c4d.StatusClear()
, usec4d.gui.StatusClear()
instead.Deprecated
c4d.StatusNetClear()
, usec4d.gui.StatusNetClear()
instead.Deprecated
c4d.StatusSetNetLoad()
, usec4d.gui.StatusSetNetLoad()
instead.Deprecated
c4d.StatusSetNetBar()
, usec4d.gui.StatusSetNetBar()
instead.Deprecated
c4d.StatusSetNetText()
, usec4d.gui.StatusSetNetText()
instead.Deprecated
c4d.StatusSetSpin()
, usec4d.gui.StatusSetSpin()
instead.Deprecated
c4d.StatusSetBar()
, usec4d.gui.StatusSetBar()
instead.Deprecated
c4d.StatusSetText()
, usec4d.gui.StatusSetText()
instead.
Maxon API¶
mxutils Package¶
Added
mxutils.Random
: Generates pseudo-random floating point, integer, vector, color, and matrix values in a deterministic manner.Added
mxutils.SceneFaker
: Generates random scene data such as objects, materials, tags, layers, render data and tracks.Added
mxutils.GetFirstSiblingNode()
: Rewinds the passed node to its first sibling.Added
mxutils.GetRootNode()
: Rewinds the passed node to its root.Added
mxutils.GetTreeString()
: Returns a string representation of a tree-like data structure.Added
mxutils.IterateTree()
: Yields nodes that are hierarchically related to a node.Added
mxutils.RecurseTree()
: Yields nodes that are hierarchically related to a node.Added
mxutils.RecurseGraph()
: Yields nodes that are in some relationship with the passed node.Added
mxutils.TIMEIT()
: Decorates a function call with a timing or profiling report printed to the console.Added
mxutils.SET_STATUS()
: Decorates a function call with output to the Cinema 4D status bar.Added
mxutils.g_id_provider
: Provides a global instance ofmxutils.IdProvider
.Added
mxutils.g_random
: Provides a global instance ofmxutils.Random
.Added
mxutils.g_scene_faker
: Provides a global instance ofmxutils.SceneFaker
.