Navigation
API > API/Plugins > API/Plugins/HairStrandsCore
Implements an asset that can be used to store hair strands
| Name | UGroomAsset |
| Type | class |
| Header File | /Engine/Plugins/Runtime/HairStrands/Source/HairStrandsCore/Public/GroomAsset.h |
| Include Path | #include "GroomAsset.h" |
Syntax
UCLASS (BlueprintType,
AutoExpandCategories=("HairRendering", "HairPhysics", "HairInterpolation", "HairDataflow"),
HideCategories=(Object, "Hidden"), MinimalAPI)
class UGroomAsset :
public UObject ,
public IInterface_AssetUserData ,
public IDataflowContentOwner
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UGroomAsset
Implements Interfaces
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UGroomAsset
(
const FObjectInitializer& ObjectInitializer |
GroomAsset.h |
Enums
Public
| Name | Remarks |
|---|---|
| EClassDataStripFlag | |
| EHairDescriptionType |
Typedefs
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| FOnGroomAssetChanged | TMulticastDelegate_NoParams< void > | Notification when anything changed | GroomAsset.h |
| FOnGroomAssetResourcesChanged | TMulticastDelegate_NoParams< void > | GroomAsset.h | |
| FOnGroomAsyncLoadFinished | TMulticastDelegate_NoParams< void > | GroomAsset.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AssetImportData | TObjectPtr< class UAssetImportData > | Asset data to be used when re-importing | GroomAsset.h |
|
| AssetUserData | TArray< TObjectPtr< UAssetUserData > > | Array of user data stored with the asset | GroomAsset.h |
|
| DeformedGroupSections | TArray< int32 > | Deformed skeletal mesh mapping from groups to sections | GroomAsset.h | |
| DisableBelowMinLodStripping | FPerPlatformBool | When true all LODs below MinLod will still be cooked | GroomAsset.h |
|
| EffectiveLODBias | TArray< float > | The LOD bias to use after LOD stripping, regardless of MinLOD. Computed at cook time | GroomAsset.h | |
| EnableGlobalInterpolation | bool | Enable radial basis function interpolation to be used instead of the local skin rigid transform | GroomAsset.h |
|
| EnableSimulationCache | bool | Enable guide-cache support. This allows to attach a guide-cache dynamically at runtime | GroomAsset.h |
|
| HairGroupsCards | TArray< FHairGroupsCardsSourceDescription > | Cards - Source description data | GroomAsset.h |
|
| HairGroupsInfo | TArray< FHairGroupInfoWithVisibility > | GroomAsset.h |
|
|
| HairGroupsInterpolation | TArray< FHairGroupsInterpolation > | GroomAsset.h |
|
|
| HairGroupsLOD | TArray< FHairGroupsLOD > | GroomAsset.h |
|
|
| HairGroupsMaterials | TArray< FHairGroupsMaterial > | Meshes - Source description data | GroomAsset.h |
|
| HairGroupsMeshes | TArray< FHairGroupsMeshesSourceDescription > | Meshes - Source description data | GroomAsset.h |
|
| HairGroupsPhysics | TArray< FHairGroupsPhysics > | GroomAsset.h |
|
|
| HairGroupsPlatformData | TArray< FHairGroupPlatformData > | Store strands/cards/meshes data | GroomAsset.h | |
| HairGroupsRendering | TArray< FHairGroupsRendering > | GroomAsset.h |
|
|
| HairInterpolationType | EGroomInterpolationType | Type of interpolation used | GroomAsset.h |
|
| MinLOD | FPerPlatformInt | Minimum LOD to cook | GroomAsset.h |
|
| OnGroomAssetChanged | FOnGroomAssetChanged | Private : | GroomAsset.h | |
| OnGroomAssetResourcesChanged | FOnGroomAssetResourcesChanged | GroomAsset.h | ||
| OnGroomAsyncLoadFinished | FOnGroomAsyncLoadFinished | GroomAsset.h | ||
| RiggedSkeletalMesh | TObjectPtr< USkeletalMesh > | Deformed skeletal mesh that will drive the groom deformation/simulation. | GroomAsset.h |
|
| ThumbnailInfo | TObjectPtr< class UThumbnailInfo > | Thumbnail Info used for Groom Assets | GroomAsset.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AssetNameHash | uint32 | GroomAsset.h | ||
| AssetToSave_Meshes | TQueue< UStaticMesh * > | Queue of procedural assets which needs to be saved. | GroomAsset.h | |
| AssetToSave_Textures | TQueue< FHairGroupCardsTextures * > | GroomAsset.h | ||
| AutoLODBias | float | GroomAsset.h |
|
|
| bIsInitialized | bool | GroomAsset.h | ||
| bRetryLoadFromGameThread | bool | GroomAsset.h | ||
| CachedHairDescription | TUniquePtr< FHairDescription > | GroomAsset.h | ||
| CachedHairDescriptionGroups | TUniquePtr< FHairDescriptionGroups > | GroomAsset.h | ||
| CachedHairGroupsCards | TArray< FHairGroupsCardsSourceDescription > | GroomAsset.h | ||
| CachedHairGroupsInterpolation | TArray< FHairGroupsInterpolation > | GroomAsset.h | ||
| CachedHairGroupsLOD | TArray< FHairGroupsLOD > | GroomAsset.h | ||
| CachedHairGroupsMeshes | TArray< FHairGroupsMeshesSourceDescription > | GroomAsset.h | ||
| CachedHairGroupsPhysics | TArray< FHairGroupsPhysics > | GroomAsset.h | ||
| CachedHairGroupsRendering | TArray< FHairGroupsRendering > | Cached groom settings to know if we need to recompute interpolation data or decimation when the asset is saved | GroomAsset.h | |
| CachedResourcesFeatureLevel | ERHIFeatureLevel::Type | GroomAsset.h | ||
| CachedResourcesPlatformLevel | ERHIFeatureLevel::Type | GroomAsset.h | ||
| CardsDerivedDataKey | TArray< FString > | GroomAsset.h | ||
| DataflowSettings | FGroomDataflowSettings | Dataflow settings used for any dataflow related operations | GroomAsset.h |
|
| GroomAssetStrongPtr | TStrongObjectPtr< UGroomAsset > | GroomAsset.h | ||
| HairDescriptionBulkData | TUniquePtr< FHairDescriptionBulkData > | GroomAsset.h | ||
| HairDescriptionType | EHairDescriptionType | GroomAsset.h | ||
| HairGroupsResources | TArray< FHairGroupResources > | Store strands/cards/meshes resources | GroomAsset.h | |
| InternalLock | UE::FRecursiveMutex | Transient HairDescription & HairDescriptionGroups, which are built from HairDescriptionBulkData. | GroomAsset.h | |
| LODMode | EGroomLODMode | GroomAsset.h |
|
|
| MeshesDerivedDataKey | TArray< FString > | GroomAsset.h | ||
| StrandsDerivedDataKey | TArray< FString > | GroomAsset.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void AddAssetUserData
(
UAssetUserData* InUserData |
GroomAsset.h | ||
bool AreGroupsValid() |
GroomAsset.h | ||
bool BuildCardsData() |
GroomAsset.h | ||
bool BuildMeshesData() |
GroomAsset.h | ||
bool CacheCardsData
(
uint32 GroupIndex, |
GroomAsset.h | ||
bool CacheDerivedData
(
uint32 GroupIndex |
GroomAsset.h | ||
bool CacheDerivedDatas () |
Caches the computed (group) groom data with the given build settings from/to the Derived Data Cache, building it if needed. | GroomAsset.h | |
bool CacheMeshesData
(
uint32 GroupIndex |
GroomAsset.h | ||
bool CacheStrandsData
(
uint32 GroupIndex, |
GroomAsset.h | ||
bool CanRebuildFromDescription() |
Returns true if the asset has the HairDescription needed to recompute its groom data | GroomAsset.h | |
void ChangeFeatureLevel
(
ERHIFeatureLevel::Type PendingFeatureLevel |
GroomAsset.h | ||
void ChangePlatformLevel
(
ERHIFeatureLevel::Type PendingFeatureLevel |
GroomAsset.h | ||
void ClearNumGroup
(
uint32 InGroupCount |
GroomAsset.h | ||
TArray< FHairVertexFactoryTypesPerMaterialData > CollectVertexFactoryTypesPerMaterialData
(
EShaderPlatform ShaderPlatform |
Used for PSO precaching of used materials and vertex factories | GroomAsset.h | |
void CommitHairDescription
(
FHairDescription&& HairDescription, |
Commits a HairDescription to buffer for serialization | GroomAsset.h | |
void CreateDebugData() |
GroomAsset.h | ||
uint8 GenerateClassStripFlags
(
FArchive& Ar |
GroomAsset.h | ||
uint32 GetAssetHash() |
GroomAsset.h | ||
FName GetAssetPathName
(
int32 LODIndex |
Helper function to return the asset path name, optionally joined with the LOD index if LODIndex > -1. | GroomAsset.h | |
virtual const TArray< UAssetUserData * > * GetAssetUserDataArray() |
GroomAsset.h | ||
virtual UAssetUserData * GetAssetUserDataOfClass
(
TSubclassOf< UAssetUserData > InUserDataClass |
GroomAsset.h | ||
float GetAutoLODBias
(
int32 InGroupIndex |
Return the group Auto LOD Bias, which combines both the asset's bias, and the group bias. | GroomAsset.h | |
float GetAutoLODBias () |
Return the asset Auto LOD Bias. | GroomAsset.h | |
EGroomBindingType GetBindingType
(
int32 GroupIndex, |
GroomAsset.h | ||
| Return the Dataflow settings associated to this groom asset if any. | GroomAsset.h | ||
const FGroomDataflowSettings & GetDataflowSettings () |
Return the Dataflow settings associated to this groom asset if any, const version. | GroomAsset.h | |
const TArray< int32 > & GetDeformedGroupSections() |
GroomAsset.h |
|
|
FString GetDerivedDataKey
(
bool bUseCacheKey |
GroomAsset.h | ||
FString GetDerivedDataKeyForCards
(
uint32 GroupIt, |
GroomAsset.h | ||
FString GetDerivedDataKeyForMeshes
(
uint32 GroupIndex |
GroomAsset.h | ||
FString GetDerivedDataKeyForStrands
(
uint32 GroupIndex |
GroomAsset.h | ||
FPerPlatformBool GetDisableBelowMinLodStripping() |
GroomAsset.h | ||
const TArray< float > & GetEffectiveLODBias () |
GroomAsset.h | ||
TArray< float > & GetEffectiveLODBias () |
GroomAsset.h | ||
EGroomGeometryType GetGeometryType
(
int32 GroupIndex, |
GroomAsset.h | ||
EGroomGuideType GetGuideType
(
int32 GroupIndex |
GroomAsset.h | ||
bool GetHairCardsGuidesDatas
(
const int32 GroupIndex, |
GroomAsset.h | ||
FHairDescription GetHairDescription() |
GroomAsset.h | ||
const FHairDescriptionGroups & GetHairDescriptionGroups() |
GroomAsset.h | ||
const TArray< FHairGroupsCardsSourceDescription > & GetHairGroupsCards() |
GroomAsset.h |
|
|
| GroomAsset.h | |||
const TArray< FHairGroupInfoWithVisibility > & GetHairGroupsInfo () |
GroomAsset.h | ||
const TArray< FHairGroupsInterpolation > & GetHairGroupsInterpolation() |
GroomAsset.h |
|
|
const TArray< FHairGroupsLOD > & GetHairGroupsLOD() |
GroomAsset.h |
|
|
const TArray< FHairGroupsMaterial > & GetHairGroupsMaterials() |
GroomAsset.h |
|
|
const TArray< FHairGroupsMeshesSourceDescription > & GetHairGroupsMeshes() |
GroomAsset.h |
|
|
const TArray< FHairGroupsPhysics > & GetHairGroupsPhysics() |
GroomAsset.h |
|
|
| GroomAsset.h | |||
const TArray< FHairGroupPlatformData > & GetHairGroupsPlatformData () |
GroomAsset.h | ||
const TArray< FHairGroupsRendering > & GetHairGroupsRendering() |
GroomAsset.h |
|
|
| GroomAsset.h | |||
const TArray< FHairGroupResources > & GetHairGroupsResources () |
GroomAsset.h | ||
bool GetHairStrandsDatas
(
const int32 GroupIndex, |
Get/Build render & guides data based on the hair description and interpolation settings | GroomAsset.h | |
int32 GetLODCount() |
GroomAsset.h | ||
EGroomLODMode GetLODMode() |
GroomAsset.h | ||
int32 GetMaterialIndex
(
FName MaterialSlotName |
Return the material slot index corresponding to the material name | GroomAsset.h | |
| GroomAsset.h | |||
FPerPlatformInt GetMinLOD() |
GroomAsset.h | ||
int32 GetNumHairGroups() |
GroomAsset.h | ||
FOnGroomAssetChanged & GetOnGroomAssetChanged() |
GroomAsset.h | ||
FOnGroomAssetResourcesChanged & GetOnGroomAssetResourcesChanged() |
GroomAsset.h | ||
FOnGroomAsyncLoadFinished & GetOnGroomAsyncLoadFinished() |
GroomAsset.h | ||
bool HasDebugData() |
Debug data for derived asset generation (strands textures, ...). | GroomAsset.h | |
bool HasGeometryType
(
uint32 GroupIndex, |
GroomAsset.h | ||
bool HasGeometryType
(
EGroomGeometryType Type |
GroomAsset.h | ||
void InitCardsResources() |
GroomAsset.h | ||
void InitGuideResources() |
GroomAsset.h | ||
void InitMeshesResources() |
GroomAsset.h | ||
void InitResources() |
Initialize/Update/Release resources. | GroomAsset.h | |
void InitStrandsResources() |
GroomAsset.h | ||
bool IsDeformationEnable
(
int32 GroupIndex |
GroomAsset.h | ||
bool IsGlobalInterpolationEnable
(
int32 GroupIndex, |
GroomAsset.h | ||
bool IsMaterialSlotNameValid
(
FName MaterialSlotName |
GroomAsset.h | ||
bool IsMaterialUsed
(
int32 MaterialIndex |
GroomAsset.h | ||
bool IsSimulationEnable
(
int32 GroupIndex, |
GroomAsset.h | ||
bool IsSimulationEnable () |
GroomAsset.h | ||
bool IsValid() |
GroomAsset.h | ||
bool IsVisible
(
int32 GroupIndex, |
GroomAsset.h | ||
void MarkMaterialsHasChanged() |
GroomAsset.h | ||
bool NeedsInterpolationData () |
GroomAsset.h | ||
bool NeedsInterpolationData
(
int32 GroupIndex |
GroomAsset.h | ||
void RecreateResources() |
GroomAsset.h | ||
void ReleaseCardsResource
(
uint32 GroupIndex |
GroomAsset.h | ||
void ReleaseGuidesResource
(
uint32 GroupIndex |
GroomAsset.h | ||
void ReleaseMeshesResource
(
uint32 GroupIndex |
GroomAsset.h | ||
void ReleaseResource() |
GroomAsset.h | ||
void ReleaseStrandsResource
(
uint32 GroupIndex |
GroomAsset.h | ||
virtual void RemoveUserDataOfClass
(
TSubclassOf< UAssetUserData > InUserDataClass |
GroomAsset.h | ||
void SetDataflowSettings
(
const FGroomDataflowSettings& InDataflowSettings |
Set the Dataflow settings associated to this groom asset if any | GroomAsset.h | |
void SetDisableBelowMinLodStripping
(
FPerPlatformBool In |
GroomAsset.h | ||
void SetEffectiveLODBias
(
const TArray< float >& In |
GroomAsset.h | ||
void SetHairGroupsInfo
(
const TArray< FHairGroupInfoWithVisibility >& In |
GroomAsset.h | ||
void SetHairGroupsPlatformData
(
const TArray< FHairGroupPlatformData >& In |
GroomAsset.h | ||
void SetHairWidth
(
float Width |
GroomAsset.h | ||
void SetMinLOD
(
FPerPlatformInt In |
GroomAsset.h | ||
void SetNumGroup
(
uint32 InGroupCount, |
GroomAsset.h | ||
void SetScatterSceneLighting
(
bool Enable |
GroomAsset.h | ||
void SetStableRasterization
(
bool bEnable |
Helper functions for setting options on all hair groups. | GroomAsset.h | |
void StripLODs
(
const TArray< int32 >& LODsToKeep, |
GroomAsset.h | ||
void UpdateCachedSettings() |
GroomAsset.h | ||
void UpdateHairGroupsInfo() |
GroomAsset.h | ||
void UpdateResource() |
GroomAsset.h | ||
void ValidateSimulationCache() |
Enable the simulation cache and recompute the cached derived data | GroomAsset.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BeginDestroy() |
GroomAsset.h | ||
virtual void GetAssetRegistryTags
(
TArray< FAssetRegistryTag >& OutTags |
GroomAsset.h | ||
virtual void GetAssetRegistryTags
(
FAssetRegistryTagsContext Context |
Retrieve the asset tags | GroomAsset.h | |
virtual void GetResourceSizeEx
(
FResourceSizeEx& CumulativeResourceSize |
GroomAsset.h | ||
virtual bool Modify
(
bool bAlwaysMarkDirty |
Part of Uobject interface | GroomAsset.h | |
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
GroomAsset.h | ||
virtual void PostInitProperties() |
Part of Uobject interface | GroomAsset.h | |
virtual void PostLoad() |
GroomAsset.h | ||
virtual void Serialize
(
FArchive& Ar |
GroomAsset.h |
Overridden from IDataflowContentOwner
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual TObjectPtr< UDataflowBaseContent > CreateDataflowContent() |
GroomAsset.h | ||
virtual void ReadDataflowContent
(
const TObjectPtr< UDataflowBaseContent >& DataflowContent |
GroomAsset.h | ||
virtual void WriteDataflowContent
(
const TObjectPtr< UDataflowBaseContent >& DataflowContent |
GroomAsset.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static FName GetAutoLODBiasMemberName() |
GroomAsset.h | ||
static FName GetDataflowSettingsMemberName() |
Static member to retrieve the member name | GroomAsset.h | |
static FName GetDeformedGroupSectionsMemberName() |
GroomAsset.h | ||
static FName GetDisableBelowMinLodStrippingMemberName() |
GroomAsset.h | ||
static FName GetEffectiveLODBiasMemberName() |
GroomAsset.h | ||
static FName GetEnableGlobalInterpolationMemberName() |
GroomAsset.h | ||
static FName GetEnableSimulationCacheMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsCardsMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsInfoMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsInterpolationMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsLODMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsMaterialsMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsMeshesMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsPhysicsMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsPlatformDataMemberName() |
GroomAsset.h | ||
static FName GetHairGroupsRenderingMemberName() |
GroomAsset.h | ||
static FName GetHairInterpolationTypeMemberName() |
GroomAsset.h | ||
static FName GetLODModeMemberName() |
GroomAsset.h | ||
static FName GetMinLODMemberName() |
GroomAsset.h | ||
static FName GetRiggedSkeletalMeshMemberName() |
GroomAsset.h |