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

From Reallusion Wiki!
Jump to: navigation, search
m (v0.7.1)
m (v0.7.5)
Line 319: Line 319:
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
 
{|class= "wikitable"
 
{|class= "wikitable"
!scope="row"|Modify RLPy.RCameraDofData
+
!scope="row"|RCameraDofData
|Set Function can now be used.  Originally all SetEnable, SetFocus, etc. were hidden functions.
+
|Modified RLPy.RCameraDofData: Set Function can now be used.  Originally all SetEnable, SetFocus, etc. were hidden functions.
 
|-
 
|-
!scope="row"|RLPy.RICamera
+
!scope="row"|RICamera
 
|New <RStatus> AddDofKey( RKey, RCameraDofData ): The key used to download the Camera Dof, the Preview Camera cannot be downloaded (not Pause).
 
|New <RStatus> AddDofKey( RKey, RCameraDofData ): The key used to download the Camera Dof, the Preview Camera cannot be downloaded (not Pause).
 
|-
 
|-
!scope="row"|RLPy.RICamera
+
!scope="row"|RICamera
 
|New <int> GetNearClippingPlane(): Get the near clipping plane of the camera
 
|New <int> GetNearClippingPlane(): Get the near clipping plane of the camera
 
|-
 
|-
!scope="row"|RLPy.RICamera
+
!scope="row"|RICamera
 
|New <RStatus> SetNearClippingPlane( int nNearPlane ): Set the near clipping plane of the camera to nNearPlane
 
|New <RStatus> SetNearClippingPlane( int nNearPlane ): Set the near clipping plane of the camera to nNearPlane
 
|-
 
|-
!scope="row"|RLPy.RICamera
+
!scope="row"|RICamera
 
|New <int> GetFarClippingPlane(): Get the far clipping plane of the camera
 
|New <int> GetFarClippingPlane(): Get the far clipping plane of the camera
 
|-
 
|-
!scope="row"|RLPy.RICamera
+
!scope="row"|RICamera
 
|New <RStatus> SetFarClippingPlane( int nFarPlane ): Set the far clipping plane of the camera to nFarPlane
 
|New <RStatus> SetFarClippingPlane( int nFarPlane ): Set the far clipping plane of the camera to nFarPlane
 
|-
 
|-
!scope="row"|RLPy.RIObject
+
!scope="row"|RIObject
 
|Update(): RTS & Geronetry to update all Child bone & Mesh of this object
 
|Update(): RTS & Geronetry to update all Child bone & Mesh of this object
 
|-
 
|-
!scope="row"|RLPy.RINode
+
!scope="row"|RINode
 
|Update(): Transform to update all Childe Nodes
 
|Update(): Transform to update all Childe Nodes
 
|-
 
|-
!scope="row"|RLPy.ELinkObjectAlignType
+
!scope="row"|ELinkObjectAlignType
 
|AlignType referenced when adding Link objects
 
|AlignType referenced when adding Link objects
 
|-
 
|-
!scope="row"|Modify RIObject::LinkTo( args... )
+
!scope="row"|RIObject
 
|Modified RIObject::LinkTo( std::shared_ptr< RIObject > spTargetObject, RO::ELinkObjectAlignType eAlignType, RTime kTime ): Link objects often pass AlignType to determine the Position / Rotation of the Target object.
 
|Modified RIObject::LinkTo( std::shared_ptr< RIObject > spTargetObject, RO::ELinkObjectAlignType eAlignType, RTime kTime ): Link objects often pass AlignType to determine the Position / Rotation of the Target object.
 
|-
 
|-
!scope="row"|RLPy.RIClip.SetLength()
+
!scope="row"|RIClip
 
|Fixed RLPy.RIClip.SetLength(): that now even the props from the Prop SetParent group can correctly modify the Clip Length of each Child Prop
 
|Fixed RLPy.RIClip.SetLength(): that now even the props from the Prop SetParent group can correctly modify the Clip Length of each Child Prop
 
|-
 
|-
!scope="row"|RLPy.RScene
+
!scope="row"|RScene
 
|Modified GetProps(): Restricted to get only the outermost Props on the scene (excluding the meaning of Props children)
 
|Modified GetProps(): Restricted to get only the outermost Props on the scene (excluding the meaning of Props children)
 
|-
 
|-
!scope="row"|RLPy.RScene
+
!scope="row"|RScene
 
|Modified FindObjects( RO::EObjectType eType ): Restricted to get only the outermost Props on the scene (excluding the meaning of Props children)
 
|Modified FindObjects( RO::EObjectType eType ): Restricted to get only the outermost Props on the scene (excluding the meaning of Props children)
 
|}
 
|}

Revision as of 00:10, 26 December 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.

v0.7

[Expand]
iC 7.4x

v0.7.1

[Expand]
iC 7.4x ( 01/17/2019 - 01/31/2019 )

v0.7.2

[Expand]
iC 7.4x ( 02/15/2019 - 02/27/2019 )

v0.7.4

[Expand]
iC 7.5 ( 04/08/2019 - 07/01/2019 )

v0.7.5

[Expand]
iC 7.6 (07/05/2019 - 07/29/2019)

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