Difference between revisions of "IC Python API:Pose Manager"

From Reallusion Wiki!
Jump to: navigation, search
m (Pose Group)
m (Required Files)
 
(7 intermediate revisions by the same user not shown)
Line 3: Line 3:
  
 
== Demo Video ==
 
== Demo Video ==
 +
 +
{{#evt:
 +
service=youtube
 +
|id=youtube.com/watch?v=tvdKh0omM8k
 +
}}
  
 
== Description ==
 
== Description ==
Line 14: Line 19:
 
[[File:Ic_python_api_pose_manager_01.png]]
 
[[File:Ic_python_api_pose_manager_01.png]]
  
==== Library Group ====
+
{|class="wikitable
 
+
!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.
+
!Description
 
+
|-
==== Pose Group ====
+
!scope="row"|Library
 
+
|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.
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.
+
|-
 
+
!scope="row"|Pose
==== Stored Poses 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.
 
+
|-
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).
+
!scope="row"|Stored Poses
 
+
|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 ====
+
|-
 
+
!scope="row"|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.
+
|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 ====
+
!scope="row"|Right Hand
 
+
|Contains the right hand finger masking buttons.  Includes a button to invert the current right hand finger mask selections.
Contains the right hand finger masking buttons.  Includes a button to invert the current right hand finger mask selections.
+
|-
 
+
!scope="row"|Left Hand
==== Left Hand ====
+
|Contains the left hand finger masking buttons.  Include a button to invert the current left hand finger mask selections.
 
+
|}
Contains the left hand finger masking buttons.  Include a button to invert the current left hand finger mask selections.
+
  
 
== Course Prerequisites ==
 
== Course Prerequisites ==
Line 47: Line 51:
 
|-
 
|-
 
|[[ 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:Record_Pose | Record Pose]]
+
|[[ iC_Python_API:Serialize_Pose | Serialize Pose]]
|
+
|Learn to serialize a character's pose data for file storage.
 
|-
 
|-
|[[ iC_Python_API:Taking_Screenshots | Taking Screenshots]]
+
|[[ 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.
 
|}
 
|}
  
Line 74: Line 78:
 
*Character motions or poses.
 
*Character motions or poses.
  
== Usage Instructions ==
+
You can download this plugin from the [https://marketplace.reallusion.com/pose-manager Reallusion Marketplace].
  
 +
To acquire and view the source code, please visit [https://github.com/reallusion/iClone/tree/master/Pose_Manager Reallusion GitHub].
 +
 +
== Usage Instructions ==
  
 +
#Clone or download the Reallusion/iClone GitHub.
 +
#Copy '''Pose_Manager''' folder into the iClone install directory > '''...\Bin64\OpenPlugin'''. 
 +
#Load the script into the project from the menu: '''Plugins > Python Samples > Pose Manager'''.
 +
#Load or create a scene with an avatar and pose it as desired.
 +
#Load the '''Pose Manager''' script and select the avatar.
 +
#Click the '''Add Pose''' button add an entry to the '''Pose List'''.
 +
#Load another avatar with compatible rigging.
 +
#Double-click on the new '''Pose List''' entry to apply the pose to the other avatar.
 +
#Feel free to play around with the other '''Pose Manager''' settings.
  
 
== Code Flow ==
 
== Code Flow ==

Latest revision as of 00:47, 12 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.

Ic python api pose manager 01.png

Group Description
Library 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 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 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.

You can download this plugin from the Reallusion Marketplace.

To acquire and view the source code, please visit Reallusion GitHub.

Usage Instructions

  1. Clone or download the Reallusion/iClone GitHub.
  2. Copy Pose_Manager folder into the iClone install directory > ...\Bin64\OpenPlugin.
  3. Load the script into the project from the menu: Plugins > Python Samples > Pose Manager.
  4. Load or create a scene with an avatar and pose it as desired.
  5. Load the Pose Manager script and select the avatar.
  6. Click the Add Pose button add an entry to the Pose List.
  7. Load another avatar with compatible rigging.
  8. Double-click on the new Pose List entry to apply the pose to the other avatar.
  9. Feel free to play around with the other Pose Manager settings.

Code Flow

Ic python api pose manager 02.png

APIs Used

You can research the following references for the APIs deployed in this code.