Navigation
API > API/Plugins > API/Plugins/MetaHumanIdentity
| Name | UMetaHumanIdentityFace |
| Type | class |
| Header File | /Engine/Plugins/MetaHuman/MetaHumanAnimator/Source/MetaHumanIdentity/Public/MetaHumanIdentityParts.h |
| Include Path | #include "MetaHumanIdentityParts.h" |
Syntax
UCLASS (HideCategories=("Preview"))
class UMetaHumanIdentityFace : public UMetaHumanIdentityPart
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UMetaHumanIdentityPart → UMetaHumanIdentityFace
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UMetaHumanIdentityFace() |
MetaHumanIdentityParts.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| CurveNamesForEyeFitting | const TArray< FString > | The list of curves required to be active when eye fitting is enabled | MetaHumanIdentityParts.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| bHasFittedEyes | uint8 | True if data-driven eyes was used during mesh conformation | MetaHumanIdentityParts.h |
|
| bIsAutoRigged | uint8 | True if this face has autorigged DNA applied either through AutoRig Service or if it was imported manually through Import functionality | MetaHumanIdentityParts.h |
|
| bIsConformed | uint8 | True if this face was conformed at least once | MetaHumanIdentityParts.h |
|
| bShouldUpdateRigComponent | bool | MetaHumanIdentityParts.h |
|
|
| bSkipDiagnostics | bool | Flag indicating whether processing diagnostics should be calculated during identity creation | MetaHumanIdentityParts.h |
|
| DefaultSolver | TObjectPtr< class UMetaHumanFaceFittingSolver > | The default solver | MetaHumanIdentityParts.h |
|
| MaximumScaleDifferenceFromAverage | float | The maximum percentage difference an autorigged face result is allowed to differ from an average MetaHuman. | MetaHumanIdentityParts.h |
|
| MinimumDepthMapFaceCoverage | float | The minimum percentage of the face region which should have valid depth-map pixels. | MetaHumanIdentityParts.h |
|
| MinimumDepthMapFaceWidth | float | The minimum required width of the face region on the depth-map in pixels. | MetaHumanIdentityParts.h |
|
| RigComponent | TObjectPtr< class USkeletalMeshComponent > | The result of the auto-rigging process. | MetaHumanIdentityParts.h |
|
| TemplateMeshComponent | TObjectPtr< class UMetaHumanTemplateMeshComponent > | The template mesh component for the face. | MetaHumanIdentityParts.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BrowsBufferBulkData | UE::Serialization::FEditorBulkData | Holds the brows.json data produced by conforming and needed in animation generation | MetaHumanIdentityParts.h | |
| CurrentPredictiveSolversTask | FPredictiveSolversTask * | Currently active predictive solver task | MetaHumanIdentityParts.h | |
| DNABufferBulkData | UE::Serialization::FEditorBulkData | Holds the final dna (RawCombinedDNABuffer with teeth fitting modifications). | MetaHumanIdentityParts.h | |
| PCARigBulkData | UE::Serialization::FEditorBulkData | Holds the PCA model of DNABuffer | MetaHumanIdentityParts.h | |
| Poses | TArray< TObjectPtr< UMetaHumanIdentityPose > > | An array of poses that will be used to fit the conformal mesh to the input data. | MetaHumanIdentityParts.h |
|
| PredictiveSolversBulkData | UE::Serialization::FEditorBulkData | Holds the trained predictive solvers, which are used for the preview solve | MetaHumanIdentityParts.h | |
| PredictiveWithoutTeethSolverBulkData | UE::Serialization::FEditorBulkData | Holds the trained predictive solver without teeth,which is used for the global teeth solve | MetaHumanIdentityParts.h | |
| RawCombinedDNABufferBulkData | UE::Serialization::FEditorBulkData | Holds the combined raw dna and delta dna file as returned from the autorigging service | MetaHumanIdentityParts.h | |
| RawDeltaDNABufferBulkData | UE::Serialization::FEditorBulkData | Holds the raw delta dna file as returned from the autorigging service | MetaHumanIdentityParts.h | |
| RawDNABufferBulkData | UE::Serialization::FEditorBulkData | Holds the raw dna file as returned from the autorigging service | MetaHumanIdentityParts.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddPoseOfType
(
EIdentityPoseType InPoseType, |
Adds the given pose to this face. Does nothing if a pose of the same type already exists | MetaHumanIdentityParts.h |
|
EIdentityErrorCode ApplyCombinedDNAToRig
(
TSharedPtr< class IDNAReader > InDNAReader |
Apply a combined DNA. If debugging is turned on, the DNA is saved; | MetaHumanIdentityParts.h | |
EIdentityErrorCode ApplyDNAToRig
(
TSharedPtr< class IDNAReader > InDNAReader, |
Apply a DNA to the Rig Depending on the level of detail and usage (e.g.only LOD0 has blend shapes), these options can be turned off to save time/memory | MetaHumanIdentityParts.h | |
void CancelAsyncPredictiveSolverTraining() |
Cancels active solver training, if any. | MetaHumanIdentityParts.h | |
bool CanConform() |
Return true if the face has all the required information to run the MetaHuman Identity solve (conforming) | MetaHumanIdentityParts.h | |
bool CanFitTeeth() |
Returns whether or not teeth can be conformed | MetaHumanIdentityParts.h | |
bool CanSubmitToAutorigging() |
Return true if the face can be submitted to the AutoRigging service, which means is already conformed and the Neutral Pose has a valid Capture Data | MetaHumanIdentityParts.h | |
bool CheckDNACompatible
(
IDNAReader* InDNAReader, |
Returns true if provided DNA is compatible with the Face archetype, false otherwise. | MetaHumanIdentityParts.h | |
bool CheckDNACompatible
(
IDNAReader* InDNAReader |
Returns true if provided DNA is compatible with the Face archetype, false otherwise | MetaHumanIdentityParts.h | |
bool CheckRigCompatible
(
FString& OutCompatibilityMsg |
Returns true if the face rig component is compatible with the Face archetype, false otherwise. | MetaHumanIdentityParts.h | |
bool CheckRigCompatible () |
Returns true if the face rig component is compatible with the Face archetype, false otherwise | MetaHumanIdentityParts.h | |
void ClearBrowsBuffer() |
MetaHumanIdentityParts.h | ||
void ClearCombinedDNABuffer() |
MetaHumanIdentityParts.h | ||
void ClearDNABuffer() |
MetaHumanIdentityParts.h | ||
void ClearPCARig() |
MetaHumanIdentityParts.h | ||
void ClearPredictiveSolvers() |
MetaHumanIdentityParts.h | ||
void ClearPredictiveWithoutTeethSolver() |
MetaHumanIdentityParts.h | ||
void ClearRawDeltaDNABuffer() |
MetaHumanIdentityParts.h | ||
void ClearRawDNABuffer() |
MetaHumanIdentityParts.h | ||
EIdentityErrorCode Conform
(
EConformType InConformType |
MetaHuman Identity solve | MetaHumanIdentityParts.h |
|
void CopyMeshVerticesFromExistingMesh
(
UCaptureData* CaptureData |
TODO: Come up with good explanation | MetaHumanIdentityParts.h | |
bool ExportDNADataToFiles
(
const FString& InDnaPathWithName, |
Exports DNA Buffer and Brows data to specified files | MetaHumanIdentityParts.h | |
void ExportTemplateMesh
(
const FString& InPath, |
MetaHumanIdentityParts.h |
|
|
EIdentityErrorCode Finalize() |
Finalize changes after DNA has been altered (updates skelmesh and create PCA model using DNABuffer) | MetaHumanIdentityParts.h | |
UMetaHumanIdentityPose * FindPoseByType
(
EIdentityPoseType InPoseType |
Finds a Pose of given type. Returns nullptr if one is not found. | MetaHumanIdentityParts.h |
|
EIdentityErrorCode FitTeeth() |
Fit the teeth to RawCombinedDNABuffer to generate final DNABuffer | MetaHumanIdentityParts.h | |
TArray< uint8 > GetBrowsBuffer() |
MetaHumanIdentityParts.h | ||
TArray< FCameraCalibration > GetCalibrationsForPoseAndFrame
(
UMetaHumanIdentityPose* InPose, |
Get the camera calibrations associated with the provided pose and frame index, and also return the full camera name for that pose and frame | MetaHumanIdentityParts.h | |
TArray< uint8 > GetCombinedDNABuffer() |
MetaHumanIdentityParts.h | ||
void GetConformalVerticesForAutoRigging
(
TArray< FVector >& OutConformedFaceVertices, |
Return the vertices of the conformed mesh transformed to the space required by the autorigging backend, for face mesh, left eye mesh and right eye mesh if eyes have been fitted. | MetaHumanIdentityParts.h | |
TMap< EIdentityPartMeshes, TArray< FVector > > GetConformalVerticesForTransform
(
const FTransform& InMeshTransform, |
Return conformal face mesh vertices for a given transform | MetaHumanIdentityParts.h | |
TMap< EIdentityPartMeshes, TArray< FVector > > GetConformalVerticesWorldPos
(
EIdentityPoseType InPoseType |
Return world position of conformal face mesh vertices | MetaHumanIdentityParts.h | |
TArray< uint8 > GetDNABuffer() |
MetaHumanIdentityParts.h | ||
FTransform GetFrontalViewFrameTransform() |
Returns the head alignment transform for frontal promoted frame of the Neutral Pose or the MetaHuman Identity transform if there is no frontal frame | MetaHumanIdentityParts.h | |
FString GetFullCameraName
(
UMetaHumanIdentityPose* InPose, |
Get the full camera name associated with the provided pose and frame index, given a base camera name which may be empty for M2MH, or a RGB or depth camera name for F2MH | MetaHumanIdentityParts.h | |
TArray< uint8 > GetPCARig() |
MetaHumanIdentityParts.h | ||
const TArray< UMetaHumanIdentityPose * > & GetPoses() |
MetaHumanIdentityParts.h |
|
|
TArray< uint8 > GetPredictiveSolvers() |
MetaHumanIdentityParts.h | ||
bool GetPredictiveSolversTaskConfig
(
FPredictiveSolversTaskConfig& OutConfig |
Populates predictive solver task config. | MetaHumanIdentityParts.h | |
TArray< uint8 > GetPredictiveWithoutTeethSolver() |
MetaHumanIdentityParts.h | ||
TArray< uint8 > GetRawDeltaDNABuffer() |
MetaHumanIdentityParts.h | ||
TArray< uint8 > GetRawDNABuffer() |
MetaHumanIdentityParts.h | ||
bool HasBrowsBuffer() |
MetaHumanIdentityParts.h | ||
bool HasCombinedDNABuffer() |
MetaHumanIdentityParts.h | ||
bool HasDNABuffer() |
MetaHumanIdentityParts.h |
|
|
bool HasPCARig() |
MetaHumanIdentityParts.h | ||
bool HasPredictiveSolvers() |
MetaHumanIdentityParts.h |
|
|
bool HasPredictiveWithoutTeethSolver() |
MetaHumanIdentityParts.h | ||
bool HasRawDeltaDNABuffer() |
MetaHumanIdentityParts.h | ||
bool HasRawDNABuffer() |
MetaHumanIdentityParts.h | ||
bool HasValidPromotedFramesForPose
(
EIdentityPoseType InPoseType |
MetaHumanIdentityParts.h | ||
bool IsAsyncPredictiveSolverTrainingActive() |
Returns true if predictive solver training is in progress, false otherwise. | MetaHumanIdentityParts.h | |
bool IsAsyncPredictiveSolverTrainingCancelling() |
Returns true if predictive solver training is in cancelling phase, false otherwise. | MetaHumanIdentityParts.h | |
bool IsConformalRigValid() |
Returns true if the conformal rig component is valid and points to a valid skeletal mesh | MetaHumanIdentityParts.h |
|
bool PollAsyncPredictiveSolverTrainingProgress
(
float& OutProgress |
Poll active solver training progress. | MetaHumanIdentityParts.h | |
bool RemovePose
(
UMetaHumanIdentityPose* InPose |
MetaHumanIdentityParts.h |
|
|
void ResetRigComponent
(
bool bInCreateNewRigComponent |
Resets face part to its initial state and optionally creates new rig component. | MetaHumanIdentityParts.h | |
void ResetTemplateMesh() |
Reset the template mesh | MetaHumanIdentityParts.h | |
void ResetTemplateMeshTransform() |
Reset the transform the template mesh to its default value | MetaHumanIdentityParts.h | |
bool RunAsyncPredictiveSolverTraining
(
FOnPredictiveSolversProgress InOnProgressCallback, |
Runs predictive solvers training asynchronously. | MetaHumanIdentityParts.h | |
bool RunPredictiveSolverTraining () |
Runs predictive solvers training externally (through python script or UE editor). | MetaHumanIdentityParts.h |
|
void SetBrowsBuffer
(
TConstArrayView< uint8 > InBrowsBuffer |
MetaHumanIdentityParts.h | ||
void SetCombinedDNABuffer
(
TConstArrayView< uint8 > InRawCombinedDNABuffer |
MetaHumanIdentityParts.h | ||
void SetDNABuffer
(
TConstArrayView< uint8 > InDNABuffer |
MetaHumanIdentityParts.h | ||
void SetPCARig
(
TConstArrayView< uint8 > InPCARig |
MetaHumanIdentityParts.h | ||
void SetPredictiveSolvers
(
TConstArrayView< uint8 > InPredictiveSolvers |
MetaHumanIdentityParts.h | ||
void SetPredictiveWithoutTeethSolver
(
TConstArrayView< uint8 > InPredictiveWithoutTeethSolver |
MetaHumanIdentityParts.h | ||
void SetRawDeltaDNABuffer
(
TConstArrayView< uint8 > InRawDeltaDNABuffer |
MetaHumanIdentityParts.h | ||
void SetRawDNABuffer
(
TConstArrayView< uint8 > InRawDNABuffer |
Functions to store and retrieve bulk data | MetaHumanIdentityParts.h | |
void SetTemplateMeshTransform
(
const FTransform& InTransform, |
Sets the transform for the conformal mesh and notifies subscribers | MetaHumanIdentityParts.h | |
void ShowHeadMeshForPose
(
EIdentityPoseType InPoseType |
Set the head mesh for the given pose type to be the active head mesh in the template mesh component | MetaHumanIdentityParts.h |
Overridden from UMetaHumanIdentityPart
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool DiagnosticsIndicatesProcessingIssue
(
FText& OutDiagnosticsWarningMessage |
Returns true if diagnostics indicates an issue processing this part, and also passes back a warning message if a diagnostic issue has been found | MetaHumanIdentityParts.h | |
virtual FText GetPartDescription() |
Returns a short description of the part | MetaHumanIdentityParts.h | |
virtual FSlateIcon GetPartIcon
(
const FName& InPropertyName |
Returns the icon for the part. This can optionally return an icon for the given InPropertyName | MetaHumanIdentityParts.h | |
virtual FText GetPartName() |
Returns the part name | MetaHumanIdentityParts.h | |
| Returns the tooltip for the part. This can optionally return a tooltip for the given InPropertyName | MetaHumanIdentityParts.h | ||
virtual void Initialize() |
Perform any initialization required after the Part is created | MetaHumanIdentityParts.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& InPropertyChangedEvent |
MetaHumanIdentityParts.h | ||
virtual void PostLoad() |
MetaHumanIdentityParts.h | ||
virtual void Serialize
(
FArchive& Ar |
MetaHumanIdentityParts.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static ETargetTemplateCompatibility CheckTargetTemplateMesh
(
const UObject* InAsset |
Helper function to evaluate the compatibility of a given mesh to be used as template | MetaHumanIdentityParts.h | |
static FString CombineFrameNameAndCameraViewName
(
const FString& InFrameName, |
Combine frame name and view name to give a unique identifier | MetaHumanIdentityParts.h | |
static TSharedPtr< class IDNAReader > GetPluginArchetypeDNAReader() |
Returns the DNA Reader for the plugin archetype DNA | MetaHumanIdentityParts.h | |
static FString TargetTemplateCompatibilityAsString
(
ETargetTemplateCompatibility InCompatibility |
Converts ETargetTemplateCompatibility to a string | MetaHumanIdentityParts.h |
Deprecated Variables
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| DNAPivot_DEPRECATED | FVector | Holds the DNA Pivot as returned from the autorigging service | MetaHumanIdentityParts.h |
|
| DNAScale_DEPRECATED | float | Holds the DNA Scale as returned from the autorigging service | MetaHumanIdentityParts.h |
|
| DNAToScanTransform_DEPRECATED | FTransform | The following properties shouldn't be included in the undo history as they are too big for the buffer TODO: Make them into a separate object and use lazy loading to improve the loading times of the Identity Holds the DNAToScan transform as returned from the autorigging service | MetaHumanIdentityParts.h |
|