What was New in R19¶
The Python API in R19 brings important additions and more C++ API coverage. It also carries some API changes and fixes several issues.
R19¶
New Features Support¶
- LOD object generator:
c4d.LodObject. See LodObject Manual. - Polygon Reduction:
c4d.utils.PolygonReduction. See PolygonReduction Manual. - Character Animation:
- Weight Manager: The new class
c4d.modules.character.CAWeightMgrgives access to the functionality of the dialog. - Pose Space Deformation: The specific data of this mode is stored in a
c4d.modules.character.CAReferencePSDobject obtained from ac4d.modules.character.CAMorphNode.
- Weight Manager: The new class
- MoGraph: Sound Effector
c4d.SoundEffectorData.
API Parity¶
Here are the additions in R19 for the ongoing effort on parity with the C++ API:
- Preference Plugin:
c4d.plugins.PreferenceData. - Plugin Help Callback:
c4d.plugins.RegisterPluginHelpCallback(). - Document Pick Session:
BaseDocument.StartPickSession()/StopPickSession(). - Camera Stereo Information:
CameraObject.StereoGetCameraCount()/StereoGetCameraInfo().
- More messages support for
c4d.plugins.NodeDataplugins:- MSG_POINTS_CHANGED/MSG_POLYGONS_CHANGED/MSG_SEGMENTS_CHANGED
- MSG_DESCRIPTION_CHECKUPDATE
- MSG_DESCRIPTION_CHECKDRAGANDDROP
- MSG_DESCRIPTION_INITUNDO
- MSG_DESCRIPTION_VALIDATE
- MSG_DRAGANDDROP
- MSG_FILTER
- Miscellaneous:
Fixes¶
ToolData.InitDefaultSettings()is not called on Reload Python Plugins command.- Expression editor changes and
c4d.EventAdd(). (Since R19 ifc4d.EventAdd()is called from within the code of an expression, then it is simply skipped.)
Documentation¶
- Added documentation for drag and drop functions in
c4d.gui.GeDialogandc4d.gui.GeUserArea.
Examples¶
- Plugins:
- Py-Preference new example for
c4d.plugins.PreferenceDatashows how to add a new category to the Preferences dialog. - Py-SpherifyModifier has been extended with a
falloff. - Py-DoubleCircle implements a
c4d.plugins.RegisterPluginHelpCallback().
- Py-Preference new example for
- Scripts in release19 folder of examples.
R19.024¶
API Additions¶
- Most important are the additions of:
Fixes¶
- Important issue with several functions and operators returning a corrupt
BaseContainerobject. BaseObject.CopyTagsTo()expects parameter hierarchical instead of hierarchial.PolygonObject.GetPolygonTranslationMap()returns too less values.- Error in default code of Python Effector for Full Control mode.
BaseCustomGui.GetData()/SetDatacan crash with some custom GUIs.c4d.storage.LoadDialog()/c4d.storage.SaveDialog()def_file parameter always set.- MSG_DESCRIPTION_GETBITMAP not sent to
NodeDataplugins.
R19.053¶
API Additions¶
Changes¶
- The following functions have been optimized:
Fixes¶
SoundEffectorCustomGui.SetGUIOwnerOverride()/GetGUIOwnerOverride().CAReferencePSD.GetExternalController()crashes if a wrong index is given.- Environment variable C4D_PLUGINS_DIR with multiple directories.
- PointObject.CalcVertexmap() should be spelled
CalcVertexMap(). (Old name still works for backward compatibility.)
Documentation¶
- These functions have been documented:
- The constants have been cleaned up and improved. They now have a title and when a symbol appears in search results, a title is shown instead of “<no title>”.
R19.068¶
Fixes¶
- Missing doc, op and tp variables in Python tag when executed without being inserted inside a document.
- Missing bt variable in Python tag when executed from
BaseDocument.ExecutePasses()if bt argument is None. - Crash with
c4d.modules.tokensystem.StringConvertTokensFilter()/FilenameConvertTokensFilter()if the passed exclude list is empty. - Parameter issues for
CAWeightTag.TransferWeightMap(). - Cannot call
GeUserArea.FillBitmapBackground().
- Atom and plugin messages:
Documentation¶
- Cleaned up and improved
c4d.modules.character.CAMorphNode. - Removed c4d.modules.CheckMocca().
API Changelist¶
See API Changelist R19 page.