// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "MetaHumanCharacterGeneratedAssets.h" #include "MetaHumanGeometryRemovalTypes.h" #include "MetaHumanPaletteItemKey.h" #include "MetaHumanCharacterPipelineData.generated.h" class UMaterialInterface; class USkeletalMesh; class UTexture; class UTexture2D; /** Transient data for a Character used during assembly */ USTRUCT() struct FCharacterPipelineData { GENERATED_BODY() UPROPERTY() TObjectPtr FaceMesh; UPROPERTY() TObjectPtr BodyMesh; UPROPERTY() FMetaHumanCharacterGeneratedAssets GeneratedAssets; bool bIsGeneratedAssetsValid = false; UPROPERTY() TMap> FaceRemovedMaterialSlots; UPROPERTY() TArray> FaceBakedNormalsTextures; UPROPERTY() TObjectPtr FollicleMap; UPROPERTY() TArray> PreBakedGroomTextures; UPROPERTY() TArray HeadHiddenFaceMaps; UPROPERTY() TArray BodyHiddenFaceMaps; // Each time a material parameter (or set of material parameters) is changed on a face mesh LOD, // the entry of the index of that LOD should be incremented in this array. // // It will be used to determine which face LODs have unique materials and need to be baked // separately. TArray FaceMaterialChangesPerLOD; UPROPERTY() TObjectPtr MergedHeadAndBody; bool bTransferSkinWeights = true; bool bStripSimMesh = false; }; /** * A containing object for FCharacterPipelineData, so that temporary objects it references are * visible to GC. */ UCLASS(Transient) class UCharacterPipelineDataMap : public UObject { GENERATED_BODY() public: UPROPERTY() TMap Map; };