IC7 Python API
- Main article: Main Page.
Scripting can be powerful tool in your arsenal for dealing with 3D art production. Whether you are looking for a way to automate some parts of your workflow or develop more advanced tool-kits and plugins, scripting can offer something for everyone. With the iClone Python API, one has access to the powerful low level implementations hidden within iClone, while abstracting its complexity to a manageable level.
- ⚠ Reallusion cannot be held responsible for any damages to your code or project-schedule as a result of your study and use of this documentation or correspondence with our SDK support team. Reallusion is not obliged to make any changes to the SDK at your request. When using this reference or inquiring for support, you do so at your own risk.
Why Python?
Python is a general-purpose language, which means it can be used to build just about anything - a process made easy with the right tools and code libraries. Professionally, Python is great for backend web development, data analysis, artificial intelligence, and scientific computing. Many developers have also used Python to build productivity tools, games, and desktop apps, so there are plenty of resources to help you learn how to create those as well.
Python is easy to pick up for experienced programmers coming from other languages and easy to learn for beginners and novices. Which can also explain its wide-spread support with 3D software with the likes of Autodesk 3dsMax, Autodesk Maya, Maxon Cinema4d, Blender, etc.
Module & Class Documentation
Resource Article Categorized Python reference manual. Reallusion Python Modules Python Modules in alphabetical order. Python Modules Ordered List Class members listed in alphabetical order. Reallusion Python Class Members Existing enumerations in the RLPy namespace. Reallusion Python Enumerations Getting Started
iClone Conventions
Keep the following conventions in mind when dealing with the iClone environment:
- World Axis: Z up, -Y forward, Right-handed Coordinate system
- Rotational System: Quaternion, Matrix3 or Euler Angle ( Radians )
- Scale Units: 1 equals to 100% scale.
- Time Units: 1 equals to 1 millisecond and 1,000 equals to 1 second.
See Also
Topic Purpose Uses and Capabilities Understand what you can do in iClone with the current Python API set. Your First iClone Python Plugin Learn to prepare your IDE (Integrated Development Environment) for Python and produce your first "Hello World" program for iClone. Using Pyside 2 for Creating U.I. Learn to create a simple dialog window with PySide 2.0 module for Python 3.6.2. Controlling a Simple Prop Information on loading a file, adding a transform key, changing material parameters and rendering to video. Animating a Character Introduction to controlling character animation via Python script. iClone Events System Learn to use iClone events to trigger callback functions. Python Extension Libraries Get informed about Python package manager and recommended modules. Python Samples
The following samples demonstrate the use of the iClone Python API for creating simple and useful tools, including the implementation of major APIs exposed in iClone. If you are new to Python scripting or the iClone scripting environment, we recommend that you start off with the novice and fundamental level lessons.
Python of the Month
Python of the Month are monthly to bi-monthly lessons on various topics with the sole purpose of getting you up to speed on the various features of the iClone Python API. Each lesson comes with a plugin script as well as five fundamental lessons that are based on the content within the plugin script.
Release Date Plugin Script Fundamentals I Fundamentals II Fundamentals III Fundamentals IV Fundamentals V June, 2019 Smooth Camera Follow List All Props 3D Look At Transformation Key Linear Interpolation Float Slider July, 2019 Audio Driven Progress Bar Animated Material Audio Visualizer File Path Color Picker August, 2019 Camera Auto-Focus Stopwatch Bounding Info Linked Controls Blurry Vision Align to Camera November, 2019 Camera Dolly Zoom Object Type Message Box Item Lister Dialog Callbacks Local Move December, 2019 PopcornFX Sequencer Table View Tree View Plugin Window Loading PFX Loading JSON February, 2020 Spring Joints Transform Math Rotation Math Error Handling Handling Time Basic Math March, 2020 Pose Manager List View Icons and Images Serialize Pose Screenshotting Saving JSON Cells in light yellow are lessons derived from full-fledged paid versions, but they are still useful on their own. For a better understanding on how they integrate into the bigger picture, you might be interested in purchasing the fully-featured scripts from the Reallusion Marketplace. For more information see the Python of Month script article for the corresponding month.
Various Lessons
These lessons come in the form of free plugins. They are classified into different difficulty levels:
- Novice: Recommended for those who may be new to scripting and are not familiar with the iClone API library.
- Intermediate: Recommended for those have made an effort of understanding the iClone API and are getting comfortable with Python.
- Advanced: Recommended for those who have deep knowledge of the iClone API and are proficient with Python.
Difficulty Level Script Description Novice Batch Render Folder Takes multiple iClone projects within a directory and renders each one to a separate video. Novice Joint Driven Morph Drive morph targets via real-time rotation of bone joints. Intermediate Group Manager A utility that creates layer controls for iClone. Intermediate Musical Keyboard Creates key-press events that can respond in real-time. Advanced Light Remote Control Implements Internet of Things to drive functions within the iClone application itself. Advanced Hand Gestures Puppeteering Provides an intuitive graphical user interface to drive the hand gestures of a character. Sample Code Snippets
These samples are recommended for those who may have working knowledge of the iClone API but would like to digest certain ways of accomplishing specific tasks in piecemeal.
- Basic Animation
- Managing Time
- Loading All Props
- Using Temp Data
- Simple QML Interface
- QML Custom Components
External Resources
Release Cycles
We are constantly working on improving the coverage of our Python APIs, so we want to move to shorter release cycles. Rather than releasing major versions over longer periods of time, we will aim to build, test, and release updates more frequently.
With continuous delivery, we can exercise the option to include early access and experimental features in each release that are in early to intermediate stages of development. This strategy allows us get feedback for a feature while it is being worked on it, in turn we learn more about what you want in the final product. There will be two main types of feature releases:
- Early Access Features - We may deprecate this functionality at our discretion. However, we support backward compatibility for assets and the API for this feature should be stable.
- Experimental Features - We do not support backward compatibility for assets, the API for this feature is subject to change, and we may remove functionality at our discretion.