Difference between revisions of "IC Python API:Uses and Capabilities"
Chuck (RL) (Talk | contribs) m (→v0.7.4) |
Chuck (RL) (Talk | contribs) m (→v0.7.1) |
||
Line 118: | Line 118: | ||
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
{|class="wikitable" | {|class="wikitable" | ||
− | !scope="row"|LocalTransform | + | !scope="row"|LocalTransform/WorldTransform |
− | |Fixed | + | |Fixed LocalTransform/WorldTransform( RIObject, RIAvatar, RIProp,RILight, RICamera ): Incorrect transform rotations for RIObject, RIAvatar, RIProp, RILight, RICamera. |
|- | |- | ||
− | !scope="row"|RINode::WorldTransform | + | !scope="row"|RINode |
− | + | |New RINode::WorldTransform(): New WorldTransform for RINode; No need for the user to write a function to retrieve it. | |
|- | |- | ||
!scope="row"|Rkey | !scope="row"|Rkey | ||
|New RKey can be used to carry additional data such as Time, TransitionType, and TransitionStrength. | |New RKey can be used to carry additional data such as Time, TransitionType, and TransitionStrength. | ||
|- | |- | ||
− | !scope="row"| | + | !scope="row"|MaterialComponent |
− | |Fixed kTime > kKey for the MaterialComponent; Besides setting the frame time, one can also set the Transition Type and Strength. | + | |Fixed MaterialComponent( AddAmbientKey, AddDiffuseKey, AddSpecularKey, AddGlossinessKey, AddSpecularKey, AddSelfIlluminationKey, AddOpacityKey, AddTextureWeightKey, AddUvDataKey, RemoveUvDataKey, LoadVideoToTexture, AddVideoVolumeKey): kTime > kKey for the MaterialComponent; Besides setting the frame time, one can also set the Transition Type and Strength. |
|- | |- | ||
!scope="row"|LoadImageToTexture | !scope="row"|LoadImageToTexture | ||
Line 142: | Line 142: | ||
|New RApplication class can retreive registry related data and API version number. Test case has been added. | |New RApplication class can retreive registry related data and API version number. Test case has been added. | ||
|- | |- | ||
− | !scope="row"|RIObject::SetParent(RIObject/RINode) | + | !scope="row"|RIObject |
− | + | |New RIObject::SetParent(RIObject/RINode): All classes that derive from RIObject also inherit the SetParent member function. | |
|- | |- | ||
− | !scope="row"|RIObject::LinkTo(RIObject, RTime) | + | !scope="row"|RIObject |
− | + | |New RIObject::LinkTo(RIObject, RTime): All classes that derive from RIObject also inherit the LinkTo member function. | |
|- | |- | ||
− | !scope="row"|RIObject::Unlink(RTime) | + | !scope="row"|RIObject |
− | + | |New RIObject::Unlink(RTime): All classes that derive from RIObject also inherit the Unlink member function. | |
|- | |- | ||
− | !scope="row"|RIFaceComponent::GetKey( | + | !scope="row"|RIFaceComponent |
− | + | |New RIFaceComponent::GetKey(RTime, Head, LeftEye, RightEye, Morph, Custom, Bone, Weight): Used to retrieve the current time's Facial Expression, Eye, and Head key values. | |
|- | |- | ||
− | !scope="row"|RIFaceComponent::AddClip(RTime) | + | !scope="row"|RIFaceComponent |
− | + | |New RIFaceComponent::AddClip(RTime): Adds a default Facial clip at the designated point in time. | |
|- | |- | ||
!scope="row"|RIFaceComponent::AddEyeKey() | !scope="row"|RIFaceComponent::AddEyeKey() | ||
|Create a EyeKey under the Facial Layer. | |Create a EyeKey under the Facial Layer. | ||
|- | |- | ||
− | !scope="row"|RIFaceComponent::AddHeadKey() | + | !scope="row"|RIFaceComponent |
− | + | |New RIFaceComponent::AddHeadKey(): Create a HeadKey under the Facial Layer. | |
|- | |- | ||
− | !scope="row"|RIFaceComponent::AddExpressionKey() | + | !scope="row"|RIFaceComponent |
− | + | |New RIFaceComponent::AddExpressionKey(): Create a ExpressionKey under the Facial Layer. | |
|- | |- | ||
− | !scope="row"|RIFaceComponent::AddVisemeKey() | + | !scope="row"|RIFaceComponent |
− | + | |New RIFaceComponent::AddVisemeKey(): Create a LipsKey under the Viseme layer. | |
|- | |- | ||
− | !scope="row"|RIObject::SetName(std::wstring) | + | !scope="row"|RIObject |
− | + | |New RIObject::SetName(std::wstring): Used to change the name of an object. | |
|- | |- | ||
− | !scope="row"|RIObject::GetPivot() | + | !scope="row"|RIObject |
− | + | |New RIObject::GetPivot(): All classes that derive from RIObject also inherit the GetPivot member function. | |
|- | |- | ||
− | !scope="row"|RIObject::SetPivot() | + | !scope="row"|RIObject |
− | + | |New RIObject::SetPivot(): Provides a way to retrieve the pivot point of a prop. | |
|- | |- | ||
− | !scope="row"|RIObject::GetBounds() | + | !scope="row"|RIObject |
− | + | |New RIObject::GetBounds(): All classes that derive from RIObject also inherit the GetBounds member function. | |
|} | |} | ||
</div></div> | </div></div> |
Revision as of 23:09, 25 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
v0.7.1
v0.7.2
v0.7.4
v0.7.5
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