Difference between revisions of "IC Python API:Pose Manager"
Chuck (RL) (Talk | contribs) m (→Pose Group) |
Chuck (RL) (Talk | contribs) m (→Course Prerequisites) |
||
Line 47: | Line 47: | ||
|- | |- | ||
|[[ iC_Python_API:List_View | List View]] | |[[ iC_Python_API:List_View | List View]] | ||
− | | | + | |Learn to create a Qt list view and add functionality to edit list entries. |
|- | |- | ||
|[[ iC_Python_API:Icons_and_Images | Icons and Images]] | |[[ iC_Python_API:Icons_and_Images | Icons and Images]] | ||
|Learn to deploy icons and images inside a user interface. | |Learn to deploy icons and images inside a user interface. | ||
|- | |- | ||
− | |[[ iC_Python_API: | + | |[[ iC_Python_API:Serialize_Pose | Serialize Pose]] |
− | | | + | |Learn to serialize a character's pose data for file storage. |
|- | |- | ||
− | |[[ iC_Python_API: | + | |[[ iC_Python_API:Screenshotting | Screenshotting]] |
− | | | + | |Take advantage of features in Qt to grab screenshots. |
|- | |- | ||
|[[ iC_Python_API:Saving_JSON | Saving JSON ]] | |[[ iC_Python_API:Saving_JSON | Saving JSON ]] | ||
− | | | + | |Know how to handle JSON data for file storage. |
|} | |} | ||
Revision as of 00:19, 9 March 2020
- Main article: RL Python Samples.
Demo Video
Description
Pose Manager can be used to record a character’s pose for the current frame as snapshots. These pose snapshots can be edited, organized and saved as part of a Pose Library. Pose Manager allows you to load, edit, and overwrite existing Pose Libraries. You can apply these pose snapshots to any other character with compatible rigging. The target character will immediately assume the pose of the snapshot to the best of its abilities.
Feature Rich Interface
The interface is composed of several interface groupings: Library, Pose, Pose List, Masking, Right Hand, and Left Hand.
Library Group
Contains the name of the pose library, which is the same as the file name. Has the ability to load, save, and create an empty new library.
Pose Group
Contains a 128x128px preview image for the currently selected pose. Also has tools for the current pose such as mirror, mirror Left (Symmetry), mirror Right (Symmetry), and the ability to add poses.
Stored Poses Group
Contains a list of all the added poses. Also has tools to rename, overwrite, and remove poses; as well as the ability to move pose entries up and down the list. The Bone Rotations sections allows one to restrict certain bone rotational axes (x, y, z).
Masking
Contains full body masking buttons, excluding the fingers. Also has Tools to clear the current masks or invert the current mask selections including the right and left hands.
Right Hand
Contains the right hand finger masking buttons. Includes a button to invert the current right hand finger mask selections.
Left Hand
Contains the left hand finger masking buttons. Include a button to invert the current left hand finger mask selections.
Course Prerequisites
You should familiarize yourself with the following fundamental lessons before you proceed:
Link | Purpose |
---|---|
List View | Learn to create a Qt list view and add functionality to edit list entries. |
Icons and Images | Learn to deploy icons and images inside a user interface. |
Serialize Pose | Learn to serialize a character's pose data for file storage. |
Screenshotting | Take advantage of features in Qt to grab screenshots. |
Saving JSON | Know how to handle JSON data for file storage. |
Takeaway Lessons
- Read motion bone local transformation data.
- Save, load, and edit data.
- Apply motion bone transformation.
Required Files
- Pose Manager Python script.
- Characters and props in the iClone scene.
- Character motions or poses.
Usage Instructions
Code Flow
APIs Used
You can research the following references for the APIs deployed in this code.
- RLPy.RPyTimerCallback.__init__()
- RLPy.RScene.GetSelectedObjects()
- RLPy.RUi.ShowMessageBox()
- RLPy.RMatrix3()
- RLPy.RQuaternion()
- RLPy.RGlobal.GetTime()
- RLPy.RGlobal.Stop()
- RLPy.RGlobal.SetTime()
- RLPy.RTime.IndexedFrameTime()
- RLPy.RGlobal.GetFps()
- RLPy.RUi.GetMainWindow()
- RLPy.RScene.ClearSelectObjects()
- RLPy.RPyTimer()
- RLPy.RScene.SelectObjects()
- RLPy.RUi.CreateRDialog()
- RLPy.RUi.AddMenu()