Navigation
API > API/Plugins > API/Plugins/MLDeformerFramework
Inheritance Hierarchy
- UObjectBase
- UObjectBaseUtility
- UObject
- UMLDeformerInputInfo
- UMLDeformerMorphModelInputInfo
- UNearestNeighborModelInputInfo
- UNeuralMorphInputInfo
References
| Module | MLDeformerFramework |
| Header | /Engine/Plugins/Animation/MLDeformer/MLDeformerFramework/Source/MLDeformerFramework/Public/MLDeformerInputInfo.h |
| Include | #include "MLDeformerInputInfo.h" |
Syntax
UCLASS ()
class UMLDeformerInputInfo : public UObject
Remarks
The neural network input information. This contains arrays of names for things such as bones and curves. Knowing what bones etc are used as inputs, and in what order, helps us feeding the data during inference. It can also help us detect issues, for example when the character we apply the deformer to is missing any of those bones.
Variables
| Type | Name | Description | |
|---|---|---|---|
| TArray< FName > | BoneNames | The name of each bone. | |
| TArray< FName > | CurveNames | The name of each curve. | |
| int32 | NumBaseMeshVertices | Number of imported base mesh vertices, so not render vertices. | |
| int32 | NumTargetMeshVertices | Number of imported target mesh vertices, so not render vertices. | |
| FSoftObjectPath | SkeletalMesh | The path to the skeletal mesh that this model was trained on. |
Destructors
| Type | Name | Description | |
|---|---|---|---|
Functions
| Type | Name | Description | |
|---|---|---|---|
| int32 | Calculate how many inputs this input info generates for the neural network. | ||
| int32 | CalcNumNeuralNetInputs
(
int32 NumFloatsPerBone, |
Calculate how many inputs this input info generates for the neural network. | |
| void | CopyMembersFrom
(
UMLDeformerInputInfo* Other |
Copy members from the other class. | |
| void | ExtractBoneRotations
(
USkeletalMeshComponent* SkelMeshComponent, |
Extract bone space rotations, as a float array. | |
| void | ExtractCurveValues
(
USkeletalMeshComponent* SkelMeshComponent, |
Extract the curve values for all curves we're interested in. | |
| void | ExtractCurveValues
(
USkeletalMeshComponent* SkelMeshComponent, |
Extract the curve values for all curves we're interested in. Assume one float per curve. | |
| FString | GenerateCompatibilityErrorString
(
USkeletalMesh* InSkeletalMesh |
Get the compatibility error report. | |
| FName | GetBoneName
(
int32 Index |
Get the bone name as an FName, for a given bone we included during training. | |
| const TArray< FName > & | GetBoneNames () |
||
| TArray< FName > & | GetBoneNames () |
Get the list of bone names that should be included as training inputs. | |
| const FString & | GetBoneNameString
(
int32 Index |
||
| TArray< FString > & | |||
| FName | GetCurveName
(
int32 Index |
Get the curve name as an FName, for a given curve we included during training. | |
| const TArray< FName > & | |||
| TArray< FName > & | Get the list of curve names that should be included as training inputs. | ||
| const FString & | GetCurveNameString
(
int32 Index |
||
| TArray< FString > & | |||
| int32 | Get the number of imported vertices in the base mesh, which is the linear skinned skeletal mesh. | ||
| int32 | GetNumBones () |
Get the number of bones that we trained on. | |
| int32 | GetNumCurves () |
Get the number of curves that we trained on. | |
| int32 | Get the number of imported vertices in the target mesh, which is our training target/ground truth mesh. | ||
| const FSoftObjectPath & | Get the path to the skeletal mesh that this deformer was trained on. | ||
| bool | IsCompatible
(
USkeletalMesh* InSkeletalMesh |
Check whether the current inputs are compatible with a given skeletal mesh. | |
| bool | IsEmpty () |
Check whether we have any training inputs or not. | |
| void | OnPostLoad () |
This method is executed post loading of the ML Deformer asset. | |
| void | Reset () |
Clear all contents. | |
| void | RotationToTwoVectorsAsSixFloats
(
TArrayView< FTransform > Transforms, |
Batch convert a set of transform rotation quaternions into two column vectors. | |
| void | RotationToTwoVectorsAsSixFloats
(
const FQuat& Rotation, |
Convert a rotation quaternion to two basis vectors, each represented as 3 floats, so 6 floats in total. | |
| void | SetNumBaseVertices
(
int32 NumVerts |
Set the number of vertices of our base mesh, which is the linear skinned skeletal mesh. | |
| void | SetNumTargetVertices
(
int32 NumVerts |
Set the number of target mesh vertices. | |
| void | SetSkeletalMesh
(
USkeletalMesh* InSkeletalMesh |
Set skeletal mesh that we trained on. | |
| void | UpdateFNames () |
||
| void |
Overridden from UObject
| Type | Name | Description | |
|---|---|---|---|
| void | GetAssetRegistryTags
(
TArray< FAssetRegistryTag >& OutTags |
||
| void | GetAssetRegistryTags
(
FAssetRegistryTagsContext Context |
Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects |