Difference between revisions of "IC Python API:Uses and Capabilities"
Chuck (RL) (Talk | contribs) m (→Version 0.7.1) |
Chuck (RL) (Talk | contribs) m (→Version 0.7.3) |
||
Line 230: | Line 230: | ||
</div></div> | </div></div> | ||
− | === Version 0.7. | + | === Version 0.7.4 === |
<div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;"> | <div class="toccolours mw-collapsible mw-collapsed" style="overflow:auto;"> | ||
− | <div style="font-weight:bold;line-height:1.6;"> | + | <div style="font-weight:bold;line-height:1.6;">iClone 7.5 Open Change Log: 04/08/2019 - 07/01/2019 </div> |
<div class="mw-collapsible-content"> | <div class="mw-collapsible-content"> | ||
{|class= "wikitable" | {|class= "wikitable" | ||
− | !scope="row"|RO:: | + | !scope="row"|RO::RCameraDofData* CCameraObject::GetDOFData() |
− | + | |Get Camera Dof data. | |
|- | |- | ||
− | !scope="row"|RO:: | + | !scope="row"|RO::RICameraPtr RScene::GetCurrentCamera() |
− | | | + | |Get the camera currently used by the current IC. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RO::RStatus RGlobal::GetScreenSize( int& nWidth, int& nHeight ) |
− | | | + | |Get Export Render size. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RIObject::SetName History |
− | | | + | |SetName will now be recorded into undo/redo history. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RO::RStatus RScene::ClearSelectObjects() |
− | | | + | |Added the state of deselecting objects in the scene. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|float CCameraObject::GetAngleOfView( RO::RTime kTime ) const |
− | | | + | |Get Iclone camera FOV. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RO::RStatus CCameraObject::GetAperture( float& fWidth, float& fHeight ) |
− | + | |Get Filmback width and height. | |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RIVisemeComponent::AddVisemeKey( RVisemeKey ) |
− | | | + | |Pass in RVisemeKey instead. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RIVisemeComponent::RemoveVisemesKey( RVisemeKey ) |
− | | | + | |Pass in RVisemeKey instead. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RIVisemeComponent::GetVisemeKey( RTime kTime, RVisemeKey& kKey ) |
− | | | + | |Pass in RVisemeKey and Reference to retrieve data. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RIVisemeComponent::GetVisemeKeys() |
− | | | + | |Directly return std :: vector <RVisemeKey>. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RIAvatar::GetGeneration |
− | | | + | |Added two types CC_Game_Base_One & CC_Game_Base_Multi. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RFileIO::ExportFbxFile |
− | | | + | |Take one more parameter std :: wstring strIncludeMotionPath to output together with Object. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|bool RGlobal::IsTrialContentMode() |
− | | | + | |Added judging whether the current AP is loaded with trial content (for internal API). |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RISkeletonComponent::ConvertBoneAxisAndParent(kAxisMaps, kReParentMaps) |
− | | | + | |Calculate the current RTS according to the incoming axial map & change the parent's map. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RO::ECameraFitResolution CCameraObject::GetFitRenderRegionType() |
− | | | + | |Get Camera fit render region type (Horizontal / Vertical). |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RO::ECameraFitResolution CCameraObject::GetFitFovType() |
− | | | + | |Get Camera fit fov type (Horizontal / Vertical). |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|void REventCallback::OnObjectDataChangedWithType( int nObjectChangeDataType ) |
− | | | + | |Added the type corresponding to the event when the AP triggers the ObjectDataChanged event. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|void REventCallback::OnHierarchyChanged() |
− | | | + | |Added AP to trigger HierarchyChanged event, currently occurs in reach effector. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RIAvatar::GetAvatarType |
− | | | + | |Which Type is used to get the current character (Standard, NonStd, StandardSearize). |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|bool RFileIO::CheckExportFbxHasLicense( RO::RIObjectPtr spObject ) |
− | | | + | |Added judging whether the output Fbx comes with a sell / export license (for internal API). |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RFileIO::ExportFbxFile |
− | | | + | |When exporting Fbx, judge whether it has a sell / export license |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RISkeletonComponent::ConvertToOriginalBoneAxis() |
− | | | + | |Turn the current Pose into the axis of the original skeleton (NonStd characters only). |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|Modify RICCamera::GetFocalLength |
− | | | + | |Correction If it is judged that the control (CameraFovClipControl / CCameraFovKeyControl) is wrong, the focal length is calculated based on the FrustumFov in the current camera. |
|- | |- | ||
− | !scope="row"| | + | !scope="row"|RGlobal.TrialVersionRemainingTimes( args... ) |
− | + | |Can check the remaining number of trails (some Trial will be useful, ex 3DX). Usage: RGlobal.TrialVersionRemainingTimes( const std::wstring& strBinPath, unsigned int uProductID, const std::wstring& strProductFold,const std::wstring& strRegRoot,unsigned int uTimeNo ) | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | | | + | |
− | + | ||
− | + | ||
− | + | ||
|} | |} | ||
</div></div> | </div></div> |
Revision as of 19:42, 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.
Version 0.7
Version 0.7.1
Version 0.7.2
Version 0.7.4
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