Difference between revisions of "IC Python API:Uses and Capabilities"

From Reallusion Wiki!
Jump to: navigation, search
m
m
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{TOC}}
 
{{TOC}}
 
{{Parent|IC_Python_API|iClone Python API}}
 
{{Parent|IC_Python_API|iClone Python API}}
 +
 +
The iClone Python API helps you to extend and customize iClone, and more easily integrate it into a Python-based pipeline. It provides a bridge between iClone and Python libraries and Python tools. The Python SDK is built on top of the iClone C++ SDK, and you can access a subset of the iClone API from Python scripts and execute them in iClone.
 +
 +
The iClone Python API can do the following:
 +
 +
{|class = "wikitable"
 +
|rowspan="2"|
 +
!colspan="3"|Character
 +
!rowspan="2"|Prop
 +
!rowspan="2"|Camera
 +
!rowspan="2"|Light
 +
|-
 +
!Std(G5, CC, etc.)
 +
!Non-Std
 +
!Non-Human
 +
|-
 +
!scope="row"|Transformation (RTS)
 +
|7.4
 +
|7.4
 +
|7.4
 +
|7.4
 +
|7.4
 +
|7.4
 +
|-
 +
!scope="row"|Facial Expression
 +
|7.4 Mo-cap Module
 +
|7.4 Mo-cap Module
 +
| -
 +
| -
 +
| -
 +
| -
 +
|-
 +
!scope="row"|Morph Animation
 +
|7.4 Experimental
 +
|7.4 Experimental
 +
|7.4 Experimental
 +
|7.4 Experimental
 +
|
 +
| -
 +
|-
 +
!scope="row"|Material
 +
|7.4 Experimental
 +
|7.4 Experimental
 +
|7.4 Experimental
 +
|7.4 Experimental
 +
|
 +
|7.4 Experimental
 +
|-
 +
!scope="row"|Parameters
 +
| -
 +
| -
 +
| -
 +
| -
 +
|7.4 Experimental
 +
|7.4 Experimental
 +
|}
 +
 +
== Capabilities ==
 +
 +
As the iClone Python API continues to evolve, additional capabilities will be added over time. Below are lists of iClone Python API's current capabilities categorized by version number. The lists below are by no means exhaustive.
 +
 +
=== Version 0.7 ===
 +
 +
{|class= "wikitable"
 +
!Functionality
 +
!Details
 +
|-
 +
|Load iClone Formats
 +
|This includes *.iProjects, *.iAvatars, *.iProps, and any number of supported file formats readable and writable by iClone.
 +
|-
 +
|Animate Props
 +
|RTS (Rotate, Translate, Scale) prop transformations, including playing their animation clips.
 +
|-
 +
|Animate Characters
 +
|Play motion clips and rotate joints of a character in FK mode (Forward Kinetic).
 +
|-
 +
|Morph Animation
 +
|Drive morph sliders and key morph slider values in the timeline.
 +
|-
 +
|Add audio to objects
 +
|Add or remove audio tracks to props and characters that can playback in real-time.
 +
|-
 +
|Adjust Materials
 +
|Adjust strength contributions per texture channel, UV settings, diffuse color, ambient color, opacity values, etc.
 +
|-
 +
|Camera Controls
 +
|Adjust focal length, angle of view, near and far clipping planes, etc. on any camera in the scene.
 +
|-
 +
|Light Controls
 +
|Control settings for direction, spot and point lights. Such as range, angle, falloff, attenuation, etc.
 +
|-
 +
|Device Input
 +
|Drive animations and object parameters with the keyboard, mice, joystick, etc.
 +
|-
 +
|TCP/IP
 +
|Drive animations and object parameters remotely with IOT (Internet of Things) from other computers, cell-phones, etc. Or, have iClone drive IOT with smart network connectivity for lights, doors, etc.
 +
|-
 +
|Get Events
 +
|Setup callbacks for iClone run-time events such as on load, on selection, on parameter value change, on set timer, etc. Useful for tasks that need to trigger following an event like adding newly created items into a list tree, deploying automatic settings on load, or driving corrective morph targets when certain combinations of morphs are activated.
 +
|-
 +
|Render Project
 +
|Write batch render scripts and specify target directories for output.
 +
|-
 +
|Custom UI Design
 +
|Use iClone's native UI classes, or extend beyond it with QT's Pyside2 to create buttons, forms, dropdowns, modal windows, etc.
 +
|-
 +
|Animation Keys
 +
|Set timeline keys for various motion clips. Animate props, characters, lights, etc. via scripting.
 +
|}
  
 
== Limitations ==
 
== Limitations ==
Line 33: Line 142:
 
*Align motion/character root alignment
 
*Align motion/character root alignment
 
*Modeling operations: manipulation of mesh components
 
*Modeling operations: manipulation of mesh components
 
== Capabilities ==
 
 
As the iClone Python API continues to evolve, additional capabilities will be added over time. Below are lists of iClone Python API's current capabilities categorized by version number. The lists below are by no means exhaustive.
 
 
=== Version 0.7 ===
 
 
Load iClone Formats
 
 
This includes *.iProjects, *.iAvatars, *.iProps, and any number of supported file formats readable and writable by iClone.
 
 
Animate Props
 
 
RTS (Rotate, Translate, Scale) prop transformations, including playing their animation clips.
 
 
Animate Characters
 
 
Play motion clips and rotate joints of a character in FK mode (Forward Kinetic).
 
 
Morph Animation
 
 
Drive morph sliders and key morph slider values in the timeline.
 
 
Add audio to objects
 
 
Add or remove audio tracks to props and characters that can playback in real-time.
 
 
Adjust Materials
 
 
Adjust strength contributions per texture channel, UV settings, diffuse color, ambient color, opacity values, etc.
 
 
Camera Controls
 
 
Adjust focal length, angle of view, near and far clipping planes, etc. on any camera in the scene.
 
 
Light Controls
 
 
Control settings for direction, spot and point lights. Such as range, angle, falloff, attenuation, etc.
 
 
Device Input
 
 
Drive animations and object parameters with the keyboard, mice, joystick, etc.
 
 
TCP/IP
 
 
Drive animations and object parameters remotely with IOT (Internet of Things) from other computers, cell-phones, etc. Or, have iClone drive IOT with smart network connectivity for lights, doors, etc.
 
 
Get Events
 
 
Setup callbacks for iClone run-time events such as on load, on selection, on parameter value change, on set timer, etc. Useful for tasks that need to trigger following an event like adding newly created items into a list tree, deploying automatic settings on load, or driving corrective morph targets when certain combinations of morphs are activated.
 
 
Render Project
 
 
Write batch render scripts and specify target directories for output.
 
 
Custom UI Design
 
 
Use iClone's native UI classes, or extend beyond it with QT's Pyside2 to create buttons, forms, dropdowns, modal windows, etc.
 
 
Animation Keys
 
 
Set timeline keys for various motion clips. Animate props, characters, lights, etc. via scripting.
 

Revision as of 23:32, 6 January 2019

Main article: iClone Python API.

The iClone Python API helps you to extend and customize iClone, and more easily integrate it into a Python-based pipeline. It provides a bridge between iClone and Python libraries and Python tools. The Python SDK is built on top of the iClone C++ SDK, and you can access a subset of the iClone API from Python scripts and execute them in iClone.

The iClone Python API can do the following:

Character Prop Camera Light
Std(G5, CC, etc.) Non-Std Non-Human
Transformation (RTS) 7.4 7.4 7.4 7.4 7.4 7.4
Facial Expression 7.4 Mo-cap Module 7.4 Mo-cap Module - - - -
Morph Animation 7.4 Experimental 7.4 Experimental 7.4 Experimental 7.4 Experimental -
Material 7.4 Experimental 7.4 Experimental 7.4 Experimental 7.4 Experimental 7.4 Experimental
Parameters - - - - 7.4 Experimental 7.4 Experimental

Capabilities

As the iClone Python API continues to evolve, additional capabilities will be added over time. Below are lists of iClone Python API's current capabilities categorized by version number. The lists below are by no means exhaustive.

Version 0.7

Functionality Details
Load iClone Formats This includes *.iProjects, *.iAvatars, *.iProps, and any number of supported file formats readable and writable by iClone.
Animate Props RTS (Rotate, Translate, Scale) prop transformations, including playing their animation clips.
Animate Characters Play motion clips and rotate joints of a character in FK mode (Forward Kinetic).
Morph Animation Drive morph sliders and key morph slider values in the timeline.
Add audio to objects Add or remove audio tracks to props and characters that can playback in real-time.
Adjust Materials Adjust strength contributions per texture channel, UV settings, diffuse color, ambient color, opacity values, etc.
Camera Controls Adjust focal length, angle of view, near and far clipping planes, etc. on any camera in the scene.
Light Controls Control settings for direction, spot and point lights. Such as range, angle, falloff, attenuation, etc.
Device Input Drive animations and object parameters with the keyboard, mice, joystick, etc.
TCP/IP Drive animations and object parameters remotely with IOT (Internet of Things) from other computers, cell-phones, etc. Or, have iClone drive IOT with smart network connectivity for lights, doors, etc.
Get Events Setup callbacks for iClone run-time events such as on load, on selection, on parameter value change, on set timer, etc. Useful for tasks that need to trigger following an event like adding newly created items into a list tree, deploying automatic settings on load, or driving corrective morph targets when certain combinations of morphs are activated.
Render Project Write batch render scripts and specify target directories for output.
Custom UI Design Use iClone's native UI classes, or extend beyond it with QT's Pyside2 to create buttons, forms, dropdowns, modal windows, etc.
Animation Keys Set timeline keys for various motion clips. Animate props, characters, lights, etc. via scripting.

Limitations

As the iClone Python API continues to evolve, limitations may expand or contract over time. Below are lists of iClone Python API's currently known limitations. This list is not exhaustive.

Inoperable Assets

The following items can not be manipulated and acted upon with Python scripting:

  • Particle FX (iClone & PopcornFX)
  • SpeedTrees
  • Substance Materials
  • Textures Images
  • Constraints: Path, Spring, LookAt, Link, Physics, etc.
  • Physics (Soft & Rigid)
  • IK end-effectors (control attached props instead to drive IK reach)
  • Mesh level components: vertices, edges, faces, etc.
  • Preview camera

Unsupported Operations

The following operations are not available via Python scripting:

  • Saving iClone formats: iProjects, iAvatars, iProps, etc.
  • Pixel operations: multiply, add, overlay, etc.
  • Image processing: Brightness, Hue, Saturation, Sharpen, Soften, Blend, etc.
  • Render parameter settings (Project settings can not be changed)
  • Facial lip-sync keying
  • Preference settings
  • Attach/Detach: changing object parent-child relation
  • Align motion/character root alignment
  • Modeling operations: manipulation of mesh components