Dear Developer Community,
now, that Cinema 4D R20 has been announced, MAXON is planning an event in Frankfurt am Main on November 1st and 2nd, 2018. Due to the rather large changes inside of the SDK’s, we are thinking about having a DevKitchen in parallel to this event.
The DevKitchen would be a one day event with several presentations targeted at plugin developers. Currently we have the following topics in mind:
- MAXON API – General Concepts
- MAXON API – Basic Tools
- Demo: R19 Plugin Project to R20 Plugin Project
- Python in R20
- R20 Features and their APIs
These topics are not set in stone, yet. If you are interested in other topics or have specific topics for discussions, please let us know.
We may also have the option for a second day, probably used for hands-on workshops, if there’s enough interest.
Of course the SDK Team will be there almost entirely, so there’s also the possibility for additional Q&A and extensive discussions.
DevKitchen itself is free and as a DevKitchen attendee you will also get free access to the entire surrounding event, including free lunch and drinks.
In order for DevKitchen to happen, we would need roughly 15 pre-registrations until September, 16th. Please send such via email: email@example.com
There’s another interesting option: As a plugin developer you might want to present your plugins at the event or even do a talk or presentation. If this sounds interesting to you, please contact us for further discussion.
Looking forward to meeting you,
your SDK Team
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
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.