For those who didn’t see the announcement on https://www.3dmotionshow.com and the blog post on our website, the next release of Cinema 4D is moving from Python 2.7.14 to Python 3.7.7.
This next Cinema 4D release will only run on Python 3.7.7 and it will not be possible to execute Python 2.7.14 code.
Python 3.7.7 offers a vast improvement over Python 2.7.14 including better Unicode handling, internal rewriting for better performance, and much more.
For more information about Python 3.7.7 please read the Official Python Documentation.
Those vast improvements may require modifications to existing scripts and plugins.
The only change in the Cinema 4D python module is the class c4d.storage.ByteSeq removed in favor of Python built-in types such as:
- memoryview: represents a view of the current memory;
- bytes: represents an immutable bytes sequence;
- bytearray: represents a mutable bytes sequence.
For code not belonging to the c4d module, lib2to3 can be used to spot possible issues. This can be used with Cinema 4D S22 with `c4dpy -m lib2to3 yourPythonFile.py` for more information look at the lib2to3 official documentation.
To give you an idea, converting the whole Python Github Repository to Python 3 took less than half a day since most of the changes are related to `xrange` changed to `range` and print statement requiring parenthesis. Almost no changes in Cinema 4D API calls were needed. It’s worth noting the updated code on the Github repo will be made available before the Cinema 4D release.
Regarding SDK Support and Python 3 check our Maxon Registered Developer Program to see if you are eligible to participate: getting admitted to the program level-2 will let you early test your plugins against Cinema 4D beta versions.
Finally, any 2.7.x code which is not bound to the Cinema 4D Python API can be ported and tested on 3.7.x with a regular Python Interpreter before the Cinema 4D release. This could speed up porting part of your code before being able to get hands-on the next release.
Hoping this blog post answers some of your questions, we keep looking forward on working together with this new exciting Python update.
MAXON’s SDK Team
UPDATE: on 10.06.2020 Maxon has released Cinema 4D S22.1 Hot-Fix 1 to solve a severe scene compatibility issue. While the updated version is immediately available via the official channels, we’re not providing updated API documentation since the fix has no impact on its contents.
On 09.06.2020 Maxon released Cinema 4D S22.1 (version 22.114). For details on bugfixes and changes see the official release notes on the Maxon Website.
In parallel, we updated the SDK documentation for C++ and Python.
A service release for Cineware SDK for Cinema 4D R21 has been released.
- fix reflection layer functions return wrong IDs/data
- fix in command line example and improved animation out prints
- add support for DOCUMENT_INFO_FILEVERSION_INT32 parameter
- fixes in BaseDocument::GetParamter()
- fix Cineware SDK – extrude generator bug
Cinema 4D S22 released
The new Cinema 4D Subscription Release (S22) has been officially released today and is now available for download. The next generation of Maxon’s 3D application and first subscription-only release affords customers early access to massive performance and interactivity improvements including:
- UV unwrapping and editing tools,
- improved modeling tool functionality,
- organizational licensing for volume customers,
- updated viewport technology with support for Metal on macOS,
- improved GLTF export,
- improved GoZ integration with ZBrush.
With regard to the APIs, the most significant changes are:
- existing C++ plugins will work in S22,
- building C++ plugins requires Visual Studio 2019 or Xcode 11,
- OpenGl-related source files (headers and examples) are deprecated and have been removed,
- the .CHM Windows-only portable format for the C++ API Documentation is not supported anymore.
- a fake Python dummy package is shipped with Cinema 4D, to performs auto-completion for the c4d package in external IDE.
With regard to plugins binary compatibility it should be noted that older plug-ins that were built for R21 should work in R22 unless they make use of removed OpenGL APIs. Nevertheless it’s recommended to contact the respective plug-in vendor and check if a newer version specifically released for R22 is available.
Documentation and Downloads
- Browse C++ SDK Documentation Online
- List of C++ API changes
- Download HTML format
- The latest Project Tool can be found on Downloads page
The ProjectTool has been updated to deliver IDE-compatible project files.
Examples on GitHub
The examples on GitHub have been updated.
first time around?
Pick the right API for the right job
The very first thing you will need to do is choose which API will suit your needs.
Cinema 4D has… three APIs, the first two may be used to add functionality and are part of the product’s distribution:
The C++ SDK is what is used internally by the development team to write all our product’s functionalities. It is robust reliable and the obvious choice for commercial plugins. The C++ SDK offers the most extended capabilities of all APIs. Yet, if you are new in software development the learning curve may be a bit too steep. Then you probably want to have a look at the scripting languages.
Python is a scripting languages. It is a good choice for TDs, easier, more flexible to use than the C++ API, but the feature set exposed is a bit less extended. In general Python provides the means for very rapid development. On the other hand your sources are harder to protect in Python, your algorithms are easily exposed to all for reading.
Cineware is a bit different, as it provides means to exchange data with the “outside world”. It can be downloaded on this site.
All APIs have their own documentation which can be downloaded from this website. That documentation contains two things: articles explaining concepts and a functional documentation of the header files. The later is generated directly from our sources and is written by our development team. We publish relevant articles on our plugin development blog. These articles eventually find their way into the API documentation.
The first place to look is on your chosen API’s page. We will explain how to setup your development environment and get results fast.
We all need help once in a while. For this we have the Plugin Café forum where all are invited to ask questions and provide answers. Our support engineers will do their best to provide a solution to your problem.