we announced it already on several channels, with the upcoming Cinema 4D R20 a few old features need to be removed to allow for future development.
Over at MAXON Labs we have released two plugins, that are supposed to help with this transition.
Search for usage of C.O.F.F.E.E. scripting language in scenes and C4D installations.
This will provide you easy access to the code, so it can be easily ported to Python.
Cinema 4D R20 won’t be able to load scenes saved with versions prior to R12. With the Scene Updater plugin one can easily scan for and convert such scene files, so they can still be loaded with R20.
Have a good time,
MAXON’s SDK Team
We’d like to quickly turn your attention to a new toolset commissioned by Cineversity and developed by Niklas Rosenstein.
This plugin makes it easy to convert your prototype Python scripts and UserData to Cinema 4D plugins and resource files. After download and installation, you’ll find two new tools in your Plugins menu – the Script Converter and the Prototype Converter.
We’re sure this toolset will help many of you achieve your goals faster than ever before.
MAXON’s SDK Team
Over the last years we were working on new core technology for Cinema 4D. This new technology will also be available to third party developers in the form of new and extended API.
To make the transition as smooth as possible, we have introduced the first elements of this new API in the latest releases. With Cinema 4D R20 much more of the new API will be published. This will allow us and third party developers the development of faster, more stable and future-proof software.
To introduce this new API, compatability with older plug-ins needs to be capped. Existing C++ plugins that were build with previous versions of the SDK (R19 or earlier) will not work in Cinema 4D R20. Such plugins will simply not be binary compatible.
To adapt an existing plugin for R20 it is at least necessary to recompile it using the R20 SDK. Additionally there may be code changes necessary. The number of such changes required depends among other things on the code base being already adapted to the API changes of the previous years.
We will provide an extensive documentation and examples on the new API elements as well as information on how to adapt existing plugins. These resources will be available for all developers for free with the release of Cinema 4D R20.
The Python API will not be affected by these changes. Existing Python plugins and scripts will also work in R20.
In contrast, the C.O.F.F.E.E. programming language will be removed starting with Cinema 4D R20. So all C.O.F.F.E.E. plugins and scripts will no longer work in R20.
To stay informed on changes in the SDK you can subscribe to the MAXON Registered Developer program.
We all know that, since release 18, Cinema 4D comes with three different licensing mechanisms to properly respond to our customer base’s licensing needs and to increase license management effectiveness.
Standalone, node-locked, permanent Cinema 4D licenses are, since the very early days, delivered using Cinema 4D Serials where specific modules and/or product bundles are licensed using the provided serial numbers.
Floating, non-permanent Cinema 4D license are currently delivered using one of the two license-serving mechanism represented by:
- MAXON License Server;
- Reprise License Manager.
Whilst the former was actually introduced earlier, the latter has become available since R18 and represents a standard for customers looking for a flexible, non-proprietary, 3rd-party license management designed to centralize licensing operations for multiple client applications.
In R19 SP1 the RLM licensing mechanism has been slightly improved to allow our 3rd-party plugin developers to properly access Cinema 4D licensing information and, following the current practice, to bind their plugin licensing information to them.
It should be noted that whilst the MAXON License Server was designed to grant 3rd-party plugins licenses provision by simply enrolling the plugin license into the MAXON License Server, delivering a similar hassle-free functionality using the RLM requires 3rd-parties to integrate Reprise API into their products and to provide RLM compliant licenses due to the design of the RLM licensing infrastructure.
Aside from these two approaches, a third hybrid-one has been foreseen and implemented in R19 to still grant our developers to have their products properly licensed when RLM licensing takes place without too much effort.
It’s relevant to note that this approach relies on two pre-requisites:
- the 3rd-party developer has to load/save serial information locally on the client rather than querying the server;
- the customer will be asked to install the 3rd-party product’s license on each client where the product is supposed to be used rather than on the licensing server.
Given that RLM serves the client with a Cinema 4D license available in the RLM license pool, the mechanism, at the base of the third approach, can be schematized in two steps:
- The plugin accesses the Cinema 4D license information querying the running client;
- The plugin retrieves its license locally on the client and checks for its validity against the value retrieved on step 1.
The second step is achieved using ReadRegInfo() which is capable to read private serial information when Cinema 4D is provided with a floating-license via a license server. It’s worthy to point out that the plugin license should have been stored on the client using WriteRegInfo() during the plugin license submission otherwise the ReadRegInfo() will fail to retrieve meaningful values.
The changes introduced in the GeGetSerialInfo(), when used to query for a Cinema 4D license in a RLM context, populate the SerialInfo::nr member with a String() based on the following pattern XXRSSSNNNNN useful to check retrieved plugin license against the running Cinema 4D license similarly to using the GeGetSerialInfo() in a MAXON License Server licensing scenario.
Looking forward hearing from you, feel free to comment, ask more or simply share your experience.
Happy licensing, Riccardo
Dear Development Community,
for decades Cinema 4D is well known for one of the most stable C++ APIs on the market. In February 2016 our CTO and Managing Partner Harald Schneider blogged about the future of Cinema 4D and the development of a new core. It’s probably no surprise for developers, such integral changes will surface in the SDKs eventually. Actually they already did in small portions since R15. Yet, in order to prepare for the future, the upcoming releases will introduce relevant changes.
To improve our collaboration with 3rd party developers and to make sure everyone can follow as easily as possible, we’d like to introduce you to MAXON Registered Developer program.
Our goal is to be able to inform you about upcoming changes more timely and directly.
Therefore we are interested in your email address, in order to provide you with an SDK newsletter, outlining upcoming changes for developers, so you can be sure not to miss anything. This will be sent on a regular basis to all registered developers. We guarantee your mail address will be used for development related mails, only.
For professional developers we will offer additional services, including:
- A SDK newsletter, informing about upcoming changes
- Access to early builds containing upcoming SDKs
- Access to beta builds for early compatibility tests
- Access to our internal developer forum, where development related questions may be discussed more openly and feedback from beta testers can be received
- Access to our issue tracker, so any issues with upcoming SDKs can be reported directly
- Access to webinars, where we will introduce into new SDK features or workflows
These additional services are open to any professional developer and will be free of charge. Yet, we will need you to sign an NDA, as you will get access to sensitive information prior to public releases.
In order to apply for MAXON Registered Developer, please send an email to email@example.com.
For the additional services there are a few rules:
- Possession of a valid license of the current Cinema 4D version and a running MSA contract.
- We will need some kind of proof of your commercial work, be it a website offering your plugins or some kind of evidence you are doing internal work for a larger company.
- We reserve the right to make an individual per case decision.
We hope everybody understands we need to set up some barriers here, after all we will be giving away beta versions for free.
In the end, based on the provided information, MAXON will decide, if you can be considered for the additional services. If unsure about fulfilling the requirements, well, then apply nevertheless, it’s just an email.
The membership usually lasts for one release cycle. As we are currently in the middle of one, the first period will run until 1st of September, 2019. If you want to prolong your membership, all you need to do is to answer to a mail sent by us about two month before the end of the membership. Otherwise you need to do nothing, your membership and all access permissions related to it will expire without further notice.
Looking forward to your registrations,
MAXON’s SDK Team
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.
Mélange 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 a Q&A 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.