UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
MLLevelSetModelAndBonesBinningInfo.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "CoreMinimal.h"
5#include "Engine/DataTable.h"
6#include "MLLevelSetModelAndBonesBinningInfo.generated.h"
7
8USTRUCT(BlueprintType)
10{
12
13 /* The bone that MLLevelSet is attached to. Note that the deformations near this joint is not trained*/
14 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
15 FString ParentBoneName = "";
16
17 /* The bones that are trained for deformation. We suggest only train one bone per MLLevelSet for efficiency*/
18 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
19 FString ActiveBoneNames = "";
20
21 /* The path to the DataTable that includes information about NNE Model */
22 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
23 FString MLModelInferenceInfoDataTablePath = "";
24
25 /* The index of the DataTable that includes information about NNE Model for signed distance */
26 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
27 FString MLModelInferenceInfoDataTableIndex = "";
28
29 /* The index of the DataTable that includes information about NNE Model for incorrect (safe-danger) zone. If uninitialized, this means no safe zone is used. */
30 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
31 FString MLModelInferenceForIncorrectZoneInfoDataTableIndex = "";
32
33 /* Model is trained for the subset of the rotations for each active bone. */
34 /* E.g. Use {1,2} if ActiveBone1 has one and ActiveBone2 has two active rotations. */
35 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
36 TArray<int32> NumberOfRotationComponentsPerBone = {};
37
38 /* The indices of the rotation components. E.g. use {1,1,2} if ActiveBone1 uses Rot.Y and ActiveBone2 uses Rot.Y and Rot.Z. */
39 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
40 TArray<int32> RotationComponentIndexes = {};
41
42 /* Usually MLModels for SDF are trained so that output lies in [-1,1]. To do so the SignedDistances (in the dataset) are divided by SignedDistanceScaling.
43 SignedDistanceScaling is generally defined to be the max length of the training bounding box. */
44 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
45 double SignedDistanceScaling = -1.0;
46
47 /* Resolution of the Grid that is used for debug visualization */
48 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
49 TArray<int32> DebugGridResolution = {50,50,50};
50
51 /* Reference Rotations for the Active Bones. */
52 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
53 TArray<double> ReferenceBoneRotations = {};
54
55 /* Reference Translations for the Active Bones. */
56 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
57 TArray<double> ReferenceBoneTranslations = {};
58
59 /* Min Corner of bounding box that MLLevelSet is trained on. */
60 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
61 TArray<float> TrainingGridOrigin = {};
62
63 /* First Edge of the bounding box that MLLevelSet is trained on. */
64 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
65 TArray<float> TrainingGridAxisX = {};
66
67 /* Second Edge of the bounding box that MLLevelSet is trained on. */
68 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
69 TArray<float> TrainingGridAxisY = {};
70
71 /* Third Edge of the bounding box that MLLevelSet is trained on. */
72 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
73 TArray<float> TrainingGridAxisZ = {};
74};
75
76USTRUCT(BlueprintType)
78{
80
81 /* The path to the NNE model. At the moment MLLevelSet Asset accepts only mlir.tosa models. */
82 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
83 FString NNEModelPath = "";
84
85 /* Model Architecture. Number of neurons in each layer, including input layer and the output layer. */
86 /* In most cases input layer is 3 (location input, X,Y,Z coordinates of the query), and output layer is 1 (Scaled Signed Distance or Incorrect Zone Indicator)*/
87 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
88 TArray<int32> ModelArchitectureActivationNodeSizes = {};
89
90 /* Model weights {W1,..,Wn} is tokanized into FString as "W1_0,W1_1,...,W1_k1|W2_0,W2_1,...,W2_k2|...|Wn_0,Wn_1,...,Wn_kn" */
91 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = MLModelBone)
92 FString MLModelWeights = "";
93};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define USTRUCT(...)
Definition ObjectMacros.h:746
Definition Array.h:670
Definition MLLevelSetModelAndBonesBinningInfo.h:10
Definition MLLevelSetModelAndBonesBinningInfo.h:78
Definition DataTable.h:37