Navigation
API > API/Plugins > API/Plugins/HairStrandsCore
| Name | UGroomComponent |
| Type | class |
| Header File | /Engine/Plugins/Runtime/HairStrands/Source/HairStrandsCore/Public/GroomComponent.h |
| Include Path | #include "GroomComponent.h" |
Syntax
UCLASS (HideCategories=(Object, Physics, Activation, Mobility, "Components|Activation"),
EditInlineNew, Meta=(BlueprintSpawnableComponent), ClassGroup=Rendering, MinimalAPI)
class UGroomComponent :
public UMeshComponent ,
public ILODSyncInterface ,
public INiagaraPhysicsAssetDICollectorInterface
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UActorComponent → USceneComponent → UPrimitiveComponent → UMeshComponent → UGroomComponent
Implements Interfaces
- IAsyncPhysicsStateProcessor
- IInterface_AssetUserData
- IInterface_AsyncCompilation
- INavRelevantInterface
- IPhysicsComponent
- ILODSyncInterface
- INiagaraPhysicsAssetDICollectorInterface
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UGroomComponent
(
const FObjectInitializer& ObjectInitializer |
GroomComponent.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| AngularSpringsSystem | TObjectPtr< class UNiagaraSystem > | GroomComponent.h | ||
| AttachmentName | FString | Optional socket name, where the groom component should be attached at, when parented with a skeletal mesh | GroomComponent.h |
|
| BindingAsset | TObjectPtr< class UGroomBindingAsset > | Optional binding asset for binding a groom onto a skeletal mesh. | GroomComponent.h |
|
| bInitSimulation | bool | Boolean to check when the simulation should be initialized | GroomComponent.h | |
| bResetSimulation | bool | Boolean to check when the simulation should be reset | GroomComponent.h | |
| bUseCards | bool | Force the groom to use cards/meshes geometry instead of strands. | GroomComponent.h |
|
| Cards_DefaultMaterial | TObjectPtr< UMaterialInterface > | GroomComponent.h | ||
| CollisionComponents | TArray< TWeakObjectPtr< class USkeletalMeshComponent > > | List of collision components to be used | GroomComponent.h | |
| CosseratRodsSystem | TObjectPtr< class UNiagaraSystem > | GroomComponent.h | ||
| GroomAsset | TObjectPtr< UGroomAsset > | Groom asset . | GroomComponent.h |
|
| GroomCache | TObjectPtr< UGroomCache > | GroomComponent.h |
|
|
| GroomGroupsDesc | TArray< FHairGroupDesc > | Groom's groups info. | GroomComponent.h |
|
| MeshDeformer | TObjectPtr< UMeshDeformer > | If set the MeshDeformer will be applied on groom instance for deformation. | GroomComponent.h |
|
| MeshDeformerInstance | TObjectPtr< UMeshDeformerInstance > | Object containing state for the bound MeshDeformer. | GroomComponent.h |
|
| MeshDeformerInstanceSettings | TObjectPtr< UMeshDeformerInstanceSettings > | Object containing instance settings for the bound MeshDeformer. | GroomComponent.h |
|
| Meshes_DefaultMaterial | TObjectPtr< UMaterialInterface > | GroomComponent.h | ||
| NiagaraComponents | TArray< TObjectPtr< class UNiagaraComponent > > | Niagara components that will be attached to the system | GroomComponent.h |
|
| PhysicsAsset | TObjectPtr< class UPhysicsAsset > | Physics asset to be used for hair simulation | GroomComponent.h |
|
| PrevBoneMatrix | FMatrix | Previous bone matrix to compare the difference and decide to reset or not the simulation | GroomComponent.h | |
| SimulationSettings | FHairSimulationSettings | Groom's simulation settings | GroomComponent.h |
|
| SourceSkeletalMesh | TObjectPtr< class USkeletalMesh > | Kept for debugging mesh transfer. | GroomComponent.h | |
| Strands_DebugMaterial | TObjectPtr< UMaterialInterface > | Reference of the default/debug materials for each geometric representation | GroomComponent.h | |
| Strands_DefaultMaterial | TObjectPtr< UMaterialInterface > | GroomComponent.h |
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BindingAssetBeingLoaded | TObjectPtr< UGroomBindingAsset > | GroomComponent.h |
|
|
| bIsGroomAssetCallbackRegistered | bool | GroomComponent.h | ||
| bIsGroomBindingAssetCallbackRegistered | bool | GroomComponent.h | ||
| bLooping | bool | GroomComponent.h |
|
|
| bManualTick | bool | GroomComponent.h |
|
|
| bPreviewMode | bool | GroomComponent.h | ||
| bRunning | bool | GroomComponent.h |
|
|
| bValidationEnable | bool | GroomComponent.h | ||
| DeformedMeshComponent | UMeshComponent * | GroomComponent.h | ||
| ElapsedTime | float | GroomComponent.h |
|
|
| GroomAssetBeingLoaded | TObjectPtr< UGroomAsset > | GroomComponent.h |
|
|
| GroomCacheBuffers | TSharedPtr< class IGroomCacheBuffers, ESPMode::ThreadSafe > | GroomComponent.h | ||
| GroomSolver | TSoftObjectPtr< UMeshComponent > | Groom solver pointer | GroomComponent.h | |
| HairGroupInstances | TArray< TRefCountPtr< FHairGroupInstance > > | GroomComponent.h | ||
| InitializedResources | void * | GroomComponent.h | ||
| LODForcedIndex | float | GroomComponent.h | ||
| LODPredictedIndex | float | GroomComponent.h | ||
| LODSelectionType | EHairLODSelectionType | LOD selection. | GroomComponent.h | |
| RegisteredMeshComponent | UMeshComponent * | GroomComponent.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddCollisionComponent
(
USkeletalMeshComponent* SkeletalMeshComponent |
Add a skeletal mesh to the collision components | GroomComponent.h |
|
virtual UPhysicsAsset * BuildAndCollect
(
FTransform& BoneTransform, |
GroomComponent.h | ||
void BuildSimulationTransform
(
FTransform& SimulationTransform |
Build the local simulation transform that could be used in strands simulation | GroomComponent.h | |
bool ContainsGroupInstance
(
FHairGroupInstance* Instance |
GroomComponent.h | ||
void CreateHairSimulation
(
const int32 GroupIndex, |
Create per Group/LOD the Niagara component | GroomComponent.h | |
float GetAnimationTime() |
GroomComponent.h | ||
virtual int32 GetBestAvailableLOD() |
GroomComponent.h | ||
virtual int32 GetDesiredSyncLOD() |
~ Begin ILODSyncInterface Interface. | GroomComponent.h | |
int32 GetForcedLOD() |
GroomComponent.h | ||
virtual int32 GetForceRenderedLOD() |
GroomComponent.h | ||
virtual int32 GetForceStreamedLOD() |
GroomComponent.h | ||
UGroomCache * GetGroomCache() |
GroomCache | GroomComponent.h | |
float GetGroomCacheDuration() |
GroomComponent.h | ||
UMeshComponent * GetGroomSolver() |
Get the groom solver from the component | GroomComponent.h | |
uint32 GetGroupCount() |
Hair group instance access | GroomComponent.h | |
const FHairGroupInstance * GetGroupInstance
(
int32 Index |
GroomComponent.h | ||
FHairGroupInstance * GetGroupInstance
(
int32 Index |
GroomComponent.h | ||
FHairStrandsDeformedResource * GetGuideStrandsDeformedResource
(
uint32 GroupIndex |
Return the guide hairs deformed resources | GroomComponent.h | |
FHairStrandsDeformedRootResource * GetGuideStrandsDeformedRootResource
(
uint32 GroupIndex |
GroomComponent.h | ||
FHairStrandsRestResource * GetGuideStrandsRestResource
(
uint32 GroupIndex |
Return the guide hairs rest resources | GroomComponent.h | |
FHairStrandsRestRootResource * GetGuideStrandsRestRootResource
(
uint32 GroupIndex |
Return the guide hairs root resources | GroomComponent.h | |
bool GetIsHairLengthScaleEnabled() |
GroomComponent.h |
|
|
bool GetManualTick() |
GroomComponent.h | ||
UMaterialInterface * GetMaterial
(
int32 ElementIndex, |
GroomComponent.h | ||
EHairGeometryType GetMaterialGeometryType
(
int32 ElementIndex |
GroomComponent.h | ||
UNiagaraComponent * GetNiagaraComponent
(
const int32 GroupIndex |
Given the group index return the matching niagara component | GroomComponent.h |
|
int32 GetNumLODs() |
GroomComponent.h | ||
virtual int32 GetNumSyncLODs() |
GroomComponent.h | ||
uint32 GetResourcesSize() |
GroomComponent.h | ||
void HandleFeatureLevelChanged
(
ERHIFeatureLevel::Type InFeatureLevel |
GroomComponent.h | ||
void HandlePlatformPreviewChanged
(
ERHIFeatureLevel::Type InFeatureLevel |
GroomComponent.h | ||
void Invalidate() |
GroomComponent.h | ||
void InvalidateAndRecreate() |
GroomComponent.h | ||
bool IsDeformationEnable
(
int32 GroupIndex |
Check if the deformation is enabled or not (from the rigged guides or from the solver deformer) | GroomComponent.h | |
bool IsLooping() |
GroomComponent.h | ||
bool IsSimulationEnable
(
int32 GroupIndex, |
Check if the simulation is enabled or not | GroomComponent.h | |
void PostCompilation() |
GroomComponent.h | ||
void ReleaseHairSimulation () |
Release Niagara components | GroomComponent.h | |
void ReleaseHairSimulation
(
const int32 GroupIndex |
GroomComponent.h | ||
void ResetAnimationTime() |
GroomComponent.h | ||
void ResetCollisionComponents() |
Reset the collision components | GroomComponent.h |
|
void ResetSimulation() |
Reset the simulation, if enabled | GroomComponent.h |
|
void SetBinding
(
UGroomBindingAsset* InBinding |
GroomComponent.h | ||
void SetBindingAsset
(
UGroomBindingAsset* InBinding |
Accessor function for changing Groom binding asset from blueprint/sequencer | GroomComponent.h |
|
void SetEnableSimulation
(
bool bInEnableSimulation |
Accessor function for changing the enable simulation flag from blueprint/sequencer | GroomComponent.h |
|
void SetForcedLOD
(
int32 LODIndex |
GroomComponent.h | ||
virtual void SetForceRenderedLOD
(
int32 LODIndex |
GroomComponent.h | ||
virtual void SetForceStreamedLOD
(
int32 LODIndex |
GroomComponent.h | ||
void SetGroomAsset
(
UGroomAsset* Asset |
Accessor function for changing Groom asset from blueprint/sequencer | GroomComponent.h |
|
void SetGroomAsset
(
UGroomAsset* Asset, |
GroomComponent.h | ||
void SetGroomCache
(
UGroomCache* InGroomCache |
Accessor function for changing GroomCache asset from blueprint/sequencer | GroomComponent.h |
|
void SetGroomSolver
(
UMeshComponent* InGroomSolver |
Set the groom solver onto the component | GroomComponent.h | |
void SetHairLengthScale
(
float Scale |
Accessor function for changing hair length scale from blueprint/sequencer | GroomComponent.h |
|
void SetHairLengthScaleEnable
(
bool bEnable |
GroomComponent.h |
|
|
void SetHairRootScale
(
float Scale |
GroomComponent.h | ||
void SetHairWidth
(
float HairWidth |
GroomComponent.h | ||
void SetManualTick
(
bool bInManualTick |
GroomComponent.h | ||
void SetMeshDeformer
(
UMeshDeformer* InMeshDeformer |
Change the MeshDeformer that is used for this Component. | GroomComponent.h |
|
void SetPhysicsAsset
(
UPhysicsAsset* InPhysicsAsset |
Accessor function for changing Groom physics asset from blueprint/sequencer | GroomComponent.h |
|
void SetPreviewMode
(
bool bValue |
Set the component in preview mode, forcing the loading of certain data. | GroomComponent.h | |
void SetScatterSceneLighting
(
bool Enable |
GroomComponent.h | ||
void SetStableRasterization
(
bool bEnable |
GroomComponent.h | ||
void SetUseCards
(
bool InbUseCards |
GroomComponent.h | ||
void SetValidation
(
bool bEnable |
GroomComponent.h | ||
void SwitchSimulationLOD
(
const int32 PreviousLOD, |
Enable/Disable hair simulation while transitioning from one LOD to another one | GroomComponent.h | |
void TickAtThisTime
(
const float Time, |
GroomComponent.h | ||
void UpdateHairGroupsDesc() |
Update Group Description | GroomComponent.h | |
void UpdateHairGroupsDescAndInvalidateRenderState
(
bool bInvalidate |
GroomComponent.h | ||
void UpdateHairSimulation() |
Update Niagara components | GroomComponent.h | |
void UpdateSimulatedGroups() |
Update simulated groups | GroomComponent.h | |
void ValidateMaterials
(
bool bMapCheck |
GroomComponent.h |
Overridden from UPrimitiveComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void CollectPSOPrecacheData
(
const FPSOPrecacheParams& BasePrecachePSOParams, |
GroomComponent.h | ||
virtual FPrimitiveSceneProxy * CreateSceneProxy() |
GroomComponent.h | ||
virtual UMaterialInterface * GetMaterial
(
int32 ElementIndex |
GroomComponent.h | ||
virtual int32 GetMaterialIndex
(
FName MaterialSlotName |
GroomComponent.h | ||
| GroomComponent.h | |||
virtual int32 GetNumMaterials() |
GroomComponent.h | ||
virtual void GetUsedMaterials
(
TArray< UMaterialInterface* >& OutMaterials, |
GroomComponent.h | ||
virtual bool IsMaterialSlotNameValid
(
FName MaterialSlotName |
GroomComponent.h |
Overridden from USceneComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual FBoxSphereBounds CalcBounds
(
const FTransform& LocalToWorld |
GroomComponent.h | ||
virtual void DetachFromComponent
(
const FDetachmentTransformRules& DetachmentRules |
GroomComponent.h | ||
virtual void OnAttachmentChanged() |
GroomComponent.h | ||
virtual void PreFeatureLevelChange
(
ERHIFeatureLevel::Type PendingFeatureLevel |
GroomComponent.h |
Overridden from UActorComponent
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void CheckForErrors() |
GroomComponent.h | ||
virtual void CreateRenderState_Concurrent
(
FRegisterComponentContext* Context |
GroomComponent.h | ||
virtual void DestroyRenderState_Concurrent() |
GroomComponent.h | ||
virtual void OnComponentDestroyed
(
bool bDestroyingHierarchy |
GroomComponent.h | ||
virtual void OnRegister() |
GroomComponent.h | ||
virtual void OnUnregister() |
GroomComponent.h | ||
virtual bool RequiresGameThreadEndOfFrameRecreate() |
GroomComponent.h | ||
virtual void SendRenderDynamicData_Concurrent() |
GroomComponent.h | ||
virtual void TickComponent
(
float DeltaTime, |
GroomComponent.h |
Overridden from UObject
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void BeginDestroy() |
GroomComponent.h | ||
virtual bool CanEditChange
(
const FProperty* InProperty |
GroomComponent.h | ||
virtual void FinishDestroy() |
GroomComponent.h | ||
virtual void GetResourceSizeEx
(
FResourceSizeEx& CumulativeResourceSize |
GroomComponent.h | ||
virtual void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
GroomComponent.h | ||
virtual void PostLoad() |
GroomComponent.h | ||
virtual void PreEditChange
(
FProperty* PropertyAboutToChange |
GroomComponent.h |
Overridden from IInterface_AsyncCompilation
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool IsCompiling() |
GroomComponent.h |