Skip to content

Class UManusSkeleton

ClassList > UManusSkeleton

This class is the bridge between the Manus Core animation data and the unreal animation it defines the nodes (bones) and chains (how bones are connected) of a skeleton and offers support functions to send them to Manus Core and retrieve them.

  • #include <ManusSkeleton.h>

Inherits the following classes: UObject

Public Attributes

Type Name
TMap< FName, FManusChainSetup > ChainsIndexMap
all the chains of the skeleton
FManusSkeletonTargetGloveData GloveData
the glove ID the skeleton is assigned to.
int ManusSkeletonId = = 0
the skeleton ID as generated by Manus Core for this skeleton.
TMap< FName, FManusNodeSetup > NodesSetupMap
all the nodes of the skeleton (bones)
bool ScaleToUser = = false
Option to scale the skeleton to the user, turn off to keep the original sizes.
class USkeletalMesh * SkeletalMesh
The unreal skeletal mesh to use with Manus skeleton.
EManusSkeletonType SkeletonType = = EManusSkeletonType::Invalid
the skeleton type. this needs to be setup or else it cannot be loaded into Manus Core
FManusSkeletonTargetAnimationData TargetAnimationData
the animation name the skeleton is assigned to.
FString TargetName = = L""
skeleton name
EManusSkeletonTargetType TargetType = = EManusSkeletonTargetType::UserIndexData
defines how this skeleton is targeted to data in Manus Core.
FManusSkeletonTargetUserData TargetUserData
the user ID that the skeleton is assigned to. only 1 of the four targets is used.
FManusSkeletonTargetUserIndexData TargetUserIndexData
the user index that the skeleton is assigned to.
bool UseEndPointApproximations = = true
the skeleton pinch correction.

Public Functions

Type Name
bool AllocateChains (uint32_t p_SkeletonSetupIndex)
sends all the nodes to Core to auto allocate chains for them and receive the chains back
void ClearAllTemporarySkeletonIndexes ()
clear all previously setup skeletons.
bool ClearSetupSkeleton (uint32_t p_SkeletonSetupIndex)
clear a specific skeleton
const TArray< FMeshBoneInfo > & GetRawRefBoneInfo ()
gets the boneinfo of the SkeletalMesh->referenceskeleton (not the same as SkeletalMesh->skeleton->referenceskeleton)
const TArray< FTransform > & GetRefBonePose ()
gets the transform of the SkeletalMesh->referenceskeleton (not the same as SkeletalMesh->skeleton->referenceskeleton)
class USkeleton * GetSkeleton ()
returns the USkeleton that is associated with this manus skeleton.
uint32_t GetTemporarySkeletonIndex ()
get current temporary skeleton index
void LoadChains (uint32_t p_SkeletonSetupIndex, bool p_Overridetrackers=false)
load the chains into the skeleton ready for sending it to Manus Core. (but not yet sent)
bool LoadExistingNodes (uint32_t p_SkeletonSetupIndex)
load existing nodes into SDK
bool LoadNewNodes ()
load the unreal skeleton bones and generate new nodes
bool LoadNewNodes (uint32_t p_SkeletonSetupIndex)
load the unreal skeleton bones and generate new nodes and then immediately load them into SDK
bool LoadSkeleton (uint32_t p_SkeletonSetupIndex, uint32_t & p_ID)
load the skeleton with all its data into Manus Core. (now it is being sent)
bool LoadSkeletonFromCore (uint32_t p_SkeletonSetupIndex)
get the temporary skeleton from Manus Core and load the chains and nodes.
void OnManusSkeletonChanged ()
event triggered when the data has changed
virtual void PostLoad () override
void RetrieveTemporarySkeleton ()
retrieve temporary skeleton from Manus Core.
void SetTemporarySkeletonIndex (uint32_t p_Id)
set the temporary skeleton index
EManusRet SetupSkeleton (uint32_t & p_SkeletonSetupIndex)
setup a skeleton for Manus Core (not yet sending it)
bool ToSkeletonMeshSetup (uint32 p_SkeletonSetupIndex)
Convert skeleton mesh information to skeleton setup TODO TODO this is currently not 100% ok TODO TODO.
bool ToSkeletonSetup (SkeletonSetupInfo & p_SkeletonSetupInfo)
Convert skeleton information to skeleton setup.
UManusSkeleton ()

Public Attributes Documentation

variable ChainsIndexMap

TMap< FName, FManusChainSetup> UManusSkeleton::ChainsIndexMap;

variable GloveData

FManusSkeletonTargetGloveData UManusSkeleton::GloveData;

variable ManusSkeletonId

int UManusSkeleton::ManusSkeletonId;

variable NodesSetupMap

TMap<FName,FManusNodeSetup> UManusSkeleton::NodesSetupMap;

variable ScaleToUser

bool UManusSkeleton::ScaleToUser;

variable SkeletalMesh

class USkeletalMesh* UManusSkeleton::SkeletalMesh;

variable SkeletonType

EManusSkeletonType UManusSkeleton::SkeletonType;

variable TargetAnimationData

FManusSkeletonTargetAnimationData UManusSkeleton::TargetAnimationData;

variable TargetName

FString UManusSkeleton::TargetName;

variable TargetType

EManusSkeletonTargetType UManusSkeleton::TargetType;

variable TargetUserData

FManusSkeletonTargetUserData UManusSkeleton::TargetUserData;

variable TargetUserIndexData

FManusSkeletonTargetUserIndexData UManusSkeleton::TargetUserIndexData;

variable UseEndPointApproximations

bool UManusSkeleton::UseEndPointApproximations;

Public Functions Documentation

function AllocateChains

bool UManusSkeleton::AllocateChains (
    uint32_t p_SkeletonSetupIndex
) 

function ClearAllTemporarySkeletonIndexes

void UManusSkeleton::ClearAllTemporarySkeletonIndexes () 

function ClearSetupSkeleton

clear a specific skeleton

bool UManusSkeleton::ClearSetupSkeleton (
    uint32_t p_SkeletonSetupIndex
) 

clear the previously setup skeleton. this may actually become obsolete. as skeletons are cleared on disconnect anyway and you can overwrite an existing skeleton for ease of use (even advisable to do so)

Parameters:

  • p_SkeletonSetupIndex

Returns:

true upon success.

function GetRawRefBoneInfo

gets the boneinfo of the SkeletalMesh->referenceskeleton (not the same as SkeletalMesh->skeleton->referenceskeleton)

const TArray< FMeshBoneInfo > & UManusSkeleton::GetRawRefBoneInfo () 

Returns:

function GetRefBonePose

gets the transform of the SkeletalMesh->referenceskeleton (not the same as SkeletalMesh->skeleton->referenceskeleton)

const TArray< FTransform > & UManusSkeleton::GetRefBonePose () 

Returns:

function GetSkeleton

class USkeleton * UManusSkeleton::GetSkeleton () 

function GetTemporarySkeletonIndex

get current temporary skeleton index

uint32_t UManusSkeleton::GetTemporarySkeletonIndex () 

get current temporary skeleton id

function LoadChains

load the chains into the skeleton ready for sending it to Manus Core. (but not yet sent)

void UManusSkeleton::LoadChains (
    uint32_t p_SkeletonSetupIndex,
    bool p_Overridetrackers=false
) 

load the chains into the skeleton ready for sending it to manus core. (but not yet sent)

function LoadExistingNodes

bool UManusSkeleton::LoadExistingNodes (
    uint32_t p_SkeletonSetupIndex
) 

function LoadNewNodes [1/2]

bool UManusSkeleton::LoadNewNodes () 

function LoadNewNodes [2/2]

bool UManusSkeleton::LoadNewNodes (
    uint32_t p_SkeletonSetupIndex
) 

function LoadSkeleton

load the skeleton with all its data into Manus Core. (now it is being sent)

bool UManusSkeleton::LoadSkeleton (
    uint32_t p_SkeletonSetupIndex,
    uint32_t & p_ID
) 

load the skeleton with all its data into manus core. (now it is being sent)

function LoadSkeletonFromCore

bool UManusSkeleton::LoadSkeletonFromCore (
    uint32_t p_SkeletonSetupIndex
) 

function OnManusSkeletonChanged

void UManusSkeleton::OnManusSkeletonChanged () 

function PostLoad

virtual void UManusSkeleton::PostLoad () override

function RetrieveTemporarySkeleton

retrieve temporary skeleton from Manus Core.

void UManusSkeleton::RetrieveTemporarySkeleton () 

retrieve temporary skeleton from manus core.

function SetTemporarySkeletonIndex

set the temporary skeleton index

void UManusSkeleton::SetTemporarySkeletonIndex (
    uint32_t p_Id
) 

set the temporary skeleton id

function SetupSkeleton

setup a skeleton for Manus Core (not yet sending it)

EManusRet UManusSkeleton::SetupSkeleton (
    uint32_t & p_SkeletonSetupIndex
) 

setup a skeleton for manus core (not yet sending it)

function ToSkeletonMeshSetup

bool UManusSkeleton::ToSkeletonMeshSetup (
    uint32 p_SkeletonSetupIndex
) 

function ToSkeletonSetup

Convert skeleton information to skeleton setup.

bool UManusSkeleton::ToSkeletonSetup (
    SkeletonSetupInfo & p_SkeletonSetupInfo
) 

Parameters:

  • p_SkeletonSetupInfo

Returns:

true when succesfully setup.

function UManusSkeleton

UManusSkeleton::UManusSkeleton () 

The documentation for this class was generated from the following file api/Unreal/Plugins/Manus/Source/Manus/Public/ManusSkeleton.h