Files
2025-05-18 13:04:45 +08:00

489 lines
7.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "UObject/ObjectMacros.h"
#include "MetaHumanBodyType.h"
#include "MetaHumanMigrationInfo.generated.h"
USTRUCT()
struct FMetaHumanTextureSynthesisMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
bool bSkinUnlocked = true;
UPROPERTY()
float LowFrequency = 0.5f;
UPROPERTY()
float HighFrequency = 0.5f;
UPROPERTY()
float Contrast = 0.5f;
UPROPERTY()
FVector2f SkinToneUI = FVector2f{ ForceInit };
UPROPERTY()
FLinearColor SkinTone = FLinearColor{ ForceInit };
};
USTRUCT()
struct FMetaHumanFreckesMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FName Option;
UPROPERTY()
float Density = 0.5f;
UPROPERTY()
float Saturation = 0.5f;
UPROPERTY()
float Strength = 0.5f;
UPROPERTY()
float ToneShift = 0.5f;
};
USTRUCT()
struct FMetaHumanAccentRegionMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
float Redness = 0.5f;
UPROPERTY()
float Saturation = 0.5f;
UPROPERTY()
float Lightness = 0.5f;
};
USTRUCT()
struct FMetaHumanAccentRegionsMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo Scalp;
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo Forehead;
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo Nose;
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo UnderEye;
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo Cheeks;
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo Lips;
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo Chin;
UPROPERTY()
FMetaHumanAccentRegionMigrationInfo Ears;
};
USTRUCT()
struct FMetaHumanIrisMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FName Option;
// TODO: Need to map these to FLinearColor
UPROPERTY()
FVector2D Color1UI = FVector2D(0.8f, 0.3f);
UPROPERTY()
FLinearColor Color1 = FLinearColor{ ForceInit };
UPROPERTY()
FVector2D Color2UI = FVector2D(0.5f, 0.3f);
UPROPERTY()
FLinearColor Color2 = FLinearColor{ ForceInit };
UPROPERTY()
bool bUseRadialBlend = true;
UPROPERTY()
float ColorBalance = 0.5f;
UPROPERTY()
float ColorBalanceSmoothness = 0.5f;
UPROPERTY()
float Size = 0.5f;
UPROPERTY()
float Saturation = 0.5f;
UPROPERTY()
float LimbusDarkAmount = 0.5f;
};
USTRUCT()
struct FMetaHumanScleraMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FVector2D TintUI = FVector2D{ 0.2f, 0.2f };
UPROPERTY()
FLinearColor Tint = FLinearColor{ ForceInit };
UPROPERTY()
float Brightness = 0.5f;
UPROPERTY()
float Rotation = 0.5f;
UPROPERTY()
float Vascularity = 0.5f;
UPROPERTY()
float VeinsRotation = 0.5f;
};
USTRUCT()
struct FMetaHumanEyeMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FMetaHumanIrisMigrationInfo Iris;
UPROPERTY()
FMetaHumanScleraMigrationInfo Sclera;
};
USTRUCT()
struct FMetaHumanTeethMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FVector2D TeethColorUI = FVector2D(0.35f);
UPROPERTY()
FLinearColor TeethColor = FLinearColor{ ForceInit };
UPROPERTY()
FVector2D GumColorUI = FVector2D(0.35f);
UPROPERTY()
FLinearColor GumColor = FLinearColor{ ForceInit };
UPROPERTY()
FVector2D PlaqueColorUI = FVector2D(0.35f);
UPROPERTY()
FLinearColor PlaqueColor = FLinearColor{ ForceInit };
UPROPERTY()
float PlaqueAmount = 0.12f;
};
USTRUCT()
struct FMetaHumanFoundationMakeupMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
bool bApplyFoundation = false;
UPROPERTY()
FLinearColor Color = FLinearColor{ ForceInit };
UPROPERTY()
float Intensity = 0.39f;
UPROPERTY()
float Roughness = 0.25f;
UPROPERTY()
float Concealer = 0.57f;
};
USTRUCT()
struct FMetaHumanEyesMakeupMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FName Option;
UPROPERTY()
FLinearColor PrimaryColor = FLinearColor{ ForceInit };
UPROPERTY()
FLinearColor SecondaryColor = FLinearColor{ ForceInit };
UPROPERTY()
float Roughness = 0.5f;
UPROPERTY()
float Transparency = 0.6f;
UPROPERTY()
float Metalness = 0.0f;
};
USTRUCT()
struct FMetaHumanBlusherMakeupMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FName Option;
UPROPERTY()
FLinearColor Color = FLinearColor{ ForceInit };
UPROPERTY()
float Intensity = 0.4f;
UPROPERTY()
float Roughness = 0.25f;
};
USTRUCT()
struct FMetaHumanLipsMakeupMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FName Option;
UPROPERTY()
FLinearColor Color = FLinearColor{ ForceInit };
UPROPERTY()
float Roughness = 0.5f;
UPROPERTY()
float Transparency = 0.85f;
};
USTRUCT()
struct FMetaHumanMakeupMigrationInfo
{
GENERATED_BODY()
public:
UPROPERTY()
FMetaHumanFoundationMakeupMigrationInfo Foundation;
UPROPERTY()
FMetaHumanEyesMakeupMigrationInfo Eyes;
UPROPERTY()
FMetaHumanBlusherMakeupMigrationInfo Blusher;
UPROPERTY()
FMetaHumanLipsMakeupMigrationInfo Lips;
};
USTRUCT()
struct FMetaHumanFaceMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FMetaHumanFreckesMigrationInfo Freckles;
UPROPERTY()
FMetaHumanAccentRegionsMigrationInfo Accents;
UPROPERTY()
FMetaHumanEyeMigrationInfo LeftEye;
UPROPERTY()
FMetaHumanEyeMigrationInfo RightEye;
UPROPERTY()
FMetaHumanTeethMigrationInfo Teeth;
UPROPERTY()
FMetaHumanMakeupMigrationInfo Makeup;
};
USTRUCT()
struct FMetaHumanGroomMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FName Option;
UPROPERTY()
float Length = 1.0f;
UPROPERTY()
bool bUseCustomProperties = false;
UPROPERTY()
FVector2D MelaninAndRedness = FVector2D::ZeroVector;
UPROPERTY()
float Roughness = 0.25f;
UPROPERTY()
float Whiteness = 0.0f;
UPROPERTY()
float Lightness = 0.5f;
UPROPERTY()
FName PresetOption;
UPROPERTY()
bool bUseDyeColor = false;
UPROPERTY()
FLinearColor DyeColor = FLinearColor(0.32156899571418762f, 0.0f, 0.69019597768783569f, 0.0f);
UPROPERTY()
bool bUseRegions = false;
UPROPERTY()
FVector2D RegionsUV = FVector2D(0.2819f, 0.25f);
UPROPERTY()
bool bUseRegionsColor = false;
UPROPERTY()
FLinearColor RegionsColor = FLinearColor::White;
UPROPERTY()
FName RegionsPresetOption;
UPROPERTY()
bool bUseOmbre = false;
UPROPERTY()
FVector2D OmbreUV = FVector2D(0.2819f, 0.25f);
UPROPERTY()
bool bUseOmbreColor = false;
UPROPERTY()
FLinearColor OmbreColor = FLinearColor::White;
UPROPERTY()
float OmbreShift = 0.5f;
UPROPERTY()
float OmbreContrast = 0.0f;
UPROPERTY()
float OmbreIntensity = 1.0f;
UPROPERTY()
FName OmbrePresetOption;
UPROPERTY()
bool bUseHighlights = false;
UPROPERTY()
FVector2D HighlightsUV = FVector2D(0.2819f, 0.25f);
UPROPERTY()
bool bUseHighlightsColor = false;
UPROPERTY()
FLinearColor HighlightsColor = FLinearColor::White;
UPROPERTY()
float HighlightsBlending = 0.5f;
UPROPERTY()
float HighlightsIntensity = 0.5f;
UPROPERTY()
int32 HighlightsVariation = 0;
UPROPERTY()
FName HighlightsPresetOption;
UPROPERTY()
float EyebrowsShading = 1.0f;
UPROPERTY()
float EyebrowsMicroblading = 1.0f;
UPROPERTY()
bool bUseMaskModulation = true;
UPROPERTY()
FName MaskModulationOption;
};
USTRUCT()
struct FMetaHumanGroomsMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FMetaHumanGroomMigrationInfo Hair;
UPROPERTY()
FMetaHumanGroomMigrationInfo Eyebrows;
UPROPERTY()
FMetaHumanGroomMigrationInfo Eyelashes;
UPROPERTY()
FMetaHumanGroomMigrationInfo Beard;
UPROPERTY()
FMetaHumanGroomMigrationInfo Mustache;
UPROPERTY()
FMetaHumanGroomMigrationInfo Peachfuzz;
};
USTRUCT()
struct FMetaHumanBodyMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
EMetaHumanBodyType Type = EMetaHumanBodyType::f_med_nrw;
};
USTRUCT()
struct FMetaHumanMigrationInfo
{
GENERATED_BODY()
UPROPERTY()
FMetaHumanBodyMigrationInfo Body;
UPROPERTY()
FMetaHumanFaceMigrationInfo Face;
UPROPERTY()
FMetaHumanTextureSynthesisMigrationInfo TextureSynthesis;
UPROPERTY()
FMetaHumanGroomsMigrationInfo Grooms;
};