Skip to main content
Version: v1.18

Manikin

SkyReal provide a powerfull manikin simulation system (powered the MetaHuman technology) since version 1.15 that contains a set of tools like third person posture edition, vision field, msds analyser, ...

Import a manikin in Unreal editor

To import a manikin in an Unreal editor plugin, first check that your project has SkyReal plugins SkrManikinDataModelPlugin and SkrUtilities enabled.

How to add a manikin to the scene

  • In the content Browser, display plugins content using "Settings" menu (step 1 & 2)
  • In the content Browser project hierarchy, go to the "SkrManikinDataModelPlugin Content" directory and then to the "ManikinBase" directory (step 3). Select BP_SkrManikin (step 4) and drag and drop it into the scene viewport.

    Add manikin to Unreal scene


  • Select the actor newly created (step 5)

    Add manikin to Unreal scene

  • go to the details panel in the Skr -> Manikin section (step 6)
  • Edit the field Manikin Description to set a custom appearence (step 7)
  • In the details panel, you can edit properties:
    • Size mode: "Initial" means keeps metahuman original height, "Fixed" means use height defined bellow in the "Height Target in Metters"
    • Logo: Edit the logo visible in the manikin back
    • Toggle Vision field Editor: Display the green vision field light of the manikin
    • Toggle MSD***BodyEditor: Display or hide mesh representing msd notation
    • Save Report MSD Editor: Create a json file in the project Saved directory. This JSon is the same SkyReal exports at runtime.

Add manikin to Unreal scene

How to edit manikin posture

To move the manikin in the scene, select it using the white circle (only one left click) representing its local ground. Then use the Unreal compas to move it. To edit the posture:

  • Double click on the manikin effectors. A compass should appears on it and moving it should change the posture. If not, got to the 3D viewport burger menu (top left) and check "Realtime - (Ctrl + R)" (step 1)
  • On the details panel, edit the effector parameter to change the effector behavior. In the example, hands effectors have controls over finger closing using "Skr Hand State".

Edit manikin effector


  • The fields that can be edited are:
    • Effector Status:
      • Free: You can move the effector anywhere in the scene
      • Simulated: The effector will be set by the system using other bone location. This works for pelvis that compute its location from the eyes location, and the feets that computes their location from the pelvis transform.
      • Snap to bone: You can move the effecor anywhere, with the contraint that the effector and the bone cannot be separated. The effector will always be placed at a valid posture location.
      • Snap to actor: The Effector will be linked to the actor specified in the Actor to Snap to field. When the actor will move, the effector will follow. When the effector will be move inside Unreal, the delta between both will be edited.
      • Locked local: The effector is locked in the manikin space. It means that if the manikin actor move, the effector will also move.
      • Locked world: The effector is locked in the world space. It means that if the manikin actor move, the effector will stay where it is.
      • Disabled: The effector will stop controlling the manikin posture. It will turn grey and be automatically at located at the bone location.
    • Effector Visibility: Define whether the effector is visible or not. Warning, if effector is no mre visible, you will have to find the component manualy in the details panel to change its properties.
    • Only for hands
      • Actor to Grab: The actor that the hand effector will try to grab using its meshes sockets (see bellow)
      • Hand/finger Closing factor: Whether the finger (of the global hand) are closed or opened
      • Hand/finger Spread factor: Whether the fingers are spread apart or not.
    • Only for foot
      • Foot Behaviour:
        • Snapped to effector: The foot will always try to fit the effector transform
        • Snapped to ground: The foot will try to fit on the ground just bellow the effector transform

How to grab an object manikin posture

To grab an object on the manikin hands and force finger to be well placed:

  • Select the hand effector with double click (step 1)
  • In the Effector Status field, select Snap to Actor (step 2)
  • In the Actor to Snap to field, select the actor you want's to grab (step 3)
  • In the Skr Hand State field, select Tracked finger (step 4)
  • In the Actor to Grab field, select the same actor as step 3 (step 5)


Snap actor to hand


The actor and the object are now linked. To place the finger and the hand correctly, go to the mesh editor of one of the mesh of the actor in the Socket Manager panel. Create new sockets using the "+" icon on the top left of the SOCKETS tab. Every sockets correspond to a manikin hand bone ik location.


Edit mesh sockets

Import your own manikin in SkyReal using MetaHuman

To create a SkyReal extension containing a new manikin appearence:

  • In your project
    • Create an new extension plugin with a RegistrableAssets directory
  • In your web browser
    • Go to metahuman.unrealengine.com (You need to connect your Epic Games account to Metahuman Creator)
    • Create a new MetaHuman


Create a metahuman


  • In your project
    • Launch Quixel Bridge and connect your Epic Games account at the top right of the window.

Open Quixel


- When connected, you should find all your Metahumans by clicking on the Metahumans tab on the left bar of Bridge.
- You can download them and export them to your scene.


Select a metahuman in Quixel


- Once added you should have a Metahumans folder in your project content directory.
- Move the Metahumans folders of your newly imported metahumans (not the common folder) inside the content of your extension plugin.
- In the blueprint of every MetaHuman, right click on the asset and select _Convert to Skr Manikin Description_

Create manikin description data asset


- A new asset has been created in the same dorectory will all the metahuman description. 
- Move it to the "RegistrableAssets" directory
- Open it and fill the _Image_ and _Name_ field and check _Auto Register Description_ field.

Fill manikin description data asset


- Package your extension by cooking content. You can extract the plugin.
- Because most of the time, the manikin imported used ressources in the Content/MetaHumans/Comon directory, you need to copy the coocked version of it into the official SkyReal content directory. To do so:
- Copy the common directory in the cooked folder `\Saved\Cooked\Windows\{MyProjectName}\Content\MetaHumans\Common`
- Paste it into the Skyreal instalation directory `SkyReal\Content\MetaHumans`. Choose the _Merge_ options to keep previous asset and only add your new and modified assets.

Extend the MSDs system

The MSD analyser system has been build to be extensible in case the score computation is not compliant with your company ergonomic standards.

The system is based on a set of analysers that are contained on every manikin and that compute some values based on a prioryty workflow. At each tick and by default, every manikin executes:

  • DA_Analyser_BonesAngles: Compute (X, Y, Z) angles of every bones of interest of the manikin.
  • DA_Analyser_RULABones: Compute RULA score of every bones
  • DA_Analyser_RULAGlobal: Compute RULA score of the back, the left body part, the right body part and the worst of every score.

In a second step, each analyser will received a request for retreiving visual output foreach bones having a MSD indicator in 3D. The first analyser to respond in the priority workflow, will give the definitive result. If you override one, be sure having the priority over the SkyReal ones.

To add a new alayser:

  • Create a new extension plugin with a RegistrableAssets directory

  • Create a data asset in the RegistrableAssets directory that inherits from SkrManikinAnalyserDescription


    Create MSD analyser data asset

  • Opens it and edit the fields:

    - **Auto register analyser**: This one should be true to enable the analyser on every manikins
    - **Analyser dependencies**: Reference the analysers that are required to execute your analyser
    - **Analyser Has Prioriry Over**: Reference the analysers that shouldn't be executed before yours

    Edit MSD analyser data asset

  • Create a blueprint in your extension plugin (NOT in the RegistrableAssets directory) that inherits from SkrManikinAnalyserBaseClass and reference it into the Analiser Base Class field of your previously created data asset.

  • Open the blueprint and override function:

    - **Analyse Manikin Blueprint**: Fonction executed every tick. It's used to computes some data and save it into a report.
    - **Get Bone Score Blueprint**: Fonction executed every tick. It's used to returns the bone score given the data of the report. The first analyser to answer this method will have control over the rendering of the manikin.
    - **Set Parameters Initialization Report Blueprint**: Fonction executed at startup that will initialize the parameters of the MSD computation.

    Override analyser functions

For example, to create an alayser for feets, you can:

  • Override function Analyse Manikin Blueprint with code:
  • Override function Get Bone Score Blueprint with code: