Navigation
API > API/Plugins > API/Plugins/OptimusCore
A Deformer Graph is an asset that is used to create and control custom deformations on skeletal meshes.
| Name | UOptimusDeformer |
| Type | class |
| Header File | /Engine/Plugins/Animation/DeformerGraph/Source/OptimusCore/Public/OptimusDeformer.h |
| Include Path | #include "OptimusDeformer.h" |
Syntax
UCLASS (MinimalAPI, Blueprintable, BlueprintType)
class UOptimusDeformer :
public UMeshDeformer,
public IInterface_PreviewMeshProvider,
public IOptimusPathResolver ,
public IOptimusNodeGraphCollectionOwner ,
public IOptimusNodeFunctionLibraryOwner ,
public ISkeletalMeshHalfEdgeBufferAccessor
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UMeshDeformer → UOptimusDeformer
Implements Interfaces
- IOptimusNodeFunctionLibraryOwner
- IOptimusNodeGraphCollectionOwner
- IOptimusPathResolver
- IInterface_PreviewMeshProvider
- ISkeletalMeshHalfEdgeBufferAccessor
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UOptimusDeformer() |
OptimusDeformer.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| PublicFunctionsAssetTagName | const TCHAR * | OptimusDeformer.h | |
| PublicFunctionsWithGuidAssetTagName | const TCHAR * | OptimusDeformer.h |
Variables
Public
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| Mesh | TObjectPtr< USkeletalMesh > | OptimusDeformer.h |
|
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| ActionStack | TObjectPtr< UOptimusActionStack > | OptimusDeformer.h |
|
|
| Bindings | TObjectPtr< UOptimusComponentSourceBindingContainer > | OptimusDeformer.h | ||
| CompileBeginDelegate | FOptimusCompileBegin | OptimusDeformer.h | ||
| CompileEndDelegate | FOptimusCompileEnd | OptimusDeformer.h | ||
| CompileMessageDelegate | FOptimusGraphCompileMessageDelegate | OptimusDeformer.h | ||
| ConstantValueUpdateDelegate | FOptimusConstantValueUpdate | OptimusDeformer.h | ||
| GlobalNotifyDelegate | FOptimusGlobalNotifyDelegate | OptimusDeformer.h | ||
| Graphs | TArray< TObjectPtr< UOptimusNodeGraph > > | OptimusDeformer.h | ||
| Resources | TObjectPtr< UOptimusResourceContainer > | OptimusDeformer.h | ||
| SetAllInstancesCanbeActiveDelegate | FOptimusSetAllInstancesCanbeActive | OptimusDeformer.h | ||
| Status | EOptimusDeformerStatus | OptimusDeformer.h | ||
| Variables | TObjectPtr< UOptimusVariableContainer > | OptimusDeformer.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UOptimusComponentSourceBinding * AddComponentBinding
(
const UOptimusComponentSource* InComponentSource, |
Component Bindings. | OptimusDeformer.h | |
UOptimusResourceDescription * AddResource
(
FOptimusDataTypeRef InDataTypeRef, |
Resources. | OptimusDeformer.h | |
| Add a setup graph. | OptimusDeformer.h | ||
UOptimusNodeGraph * AddTriggerGraph
(
const FString& InName |
Add a trigger graph. | OptimusDeformer.h | |
UOptimusVariableDescription * AddVariable
(
FOptimusDataTypeRef InDataTypeRef, |
Variables. | OptimusDeformer.h | |
void BeginDestroy() |
OptimusDeformer.h | ||
bool Compile() |
Graph compilation. | OptimusDeformer.h | |
UOptimusNodeGraph * CreateGraph
(
EOptimusNodeGraphType InType, |
OptimusDeformer.h | ||
UMeshDeformerInstance * CreateInstance
(
UMeshComponent* InMeshComponent, |
OptimusDeformer.h | ||
UOptimusDeformerInstance * CreateOptimusInstance
(
UMeshComponent* InMeshComponent, |
OptimusDeformer.h | ||
UMeshDeformerInstanceSettings * CreateSettingsInstance
(
UMeshComponent* InMeshComponent |
OptimusDeformer.h | ||
UOptimusFunctionNodeGraph * FindFunctionByGuid
(
FGuid InFunctionGraphGuid |
OptimusDeformer.h | ||
UOptimusActionStack * GetActionStack() |
Get the action stack for this deformer graph | OptimusDeformer.h | |
virtual void GetAssetRegistryTags
(
FAssetRegistryTagsContext Context |
OptimusDeformer.h | ||
virtual void GetAssetRegistryTags
(
TArray< FAssetRegistryTag >& OutTags |
OptimusDeformer.h | ||
FOptimusCompileBegin & GetCompileBeginDelegate() |
Returns a multicast delegate that can be subscribed to listen for the start of compilation. | OptimusDeformer.h | |
FOptimusCompileEnd & GetCompileEndDelegate() |
Returns a multicast delegate that can be subscribed to listen for the end of compilation but before shader compilation is complete. | OptimusDeformer.h | |
FOptimusGraphCompileMessageDelegate & GetCompileMessageDelegate () |
Returns a multicast delegate that can be subscribed to listen compilation results. | OptimusDeformer.h | |
const TArray< UOptimusComponentSourceBinding * > & GetComponentBindings() |
OptimusDeformer.h |
|
|
TArray< UOptimusFunctionNodeGraph * > GetFunctionGraphs
(
FName InAccessSpecifier |
Returns all function graphs with the given access specifier. If InAccessSpecifier is None, it performs no filtering. | OptimusDeformer.h | |
TArray< UOptimusNode * > GetNodesUsingComponentBinding
(
const UOptimusComponentSourceBinding* InBinding |
OptimusDeformer.h | ||
TArray< UOptimusNode * > GetNodesUsingResource
(
const UOptimusResourceDescription* InResourceDesc |
OptimusDeformer.h | ||
TArray< UOptimusNode * > GetNodesUsingVariable
(
const UOptimusVariableDescription* InVariableDesc |
OptimusDeformer.h | ||
FOptimusGlobalNotifyDelegate & GetNotifyDelegate() |
Returns the global delegate used to notify on global operations (e.g. graph, variable, resource lifecycle events). | OptimusDeformer.h | |
USkeletalMesh * GetPreviewMesh() |
OptimusDeformer.h | ||
UOptimusComponentSourceBinding * GetPrimaryComponentBinding() |
OptimusDeformer.h |
|
|
const TArray< UOptimusResourceDescription * > & GetResources() |
OptimusDeformer.h |
|
|
EOptimusDeformerStatus GetStatus() |
Returns the current compilation/error status of the deformer | OptimusDeformer.h | |
UOptimusNode * GetSubGraphReferenceNode
(
const UOptimusNodeSubGraph* InSubGraph |
Returns the sub graph reference node that is uniquely associated with the given subgraph | OptimusDeformer.h | |
UOptimusNodeGraph * GetUpdateGraph() |
Returns the update graph. The update graph will always exist, and there is only one. | OptimusDeformer.h | |
const TArray< UOptimusVariableDescription * > & GetVariables() |
OptimusDeformer.h |
|
|
bool IsSkeletalMeshHalfEdgeBufferRequired() |
OptimusDeformer.h | ||
void MarkModified() |
Mark the deformer as modified. | OptimusDeformer.h | |
void PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
OptimusDeformer.h | ||
void PostLoad() |
OptimusDeformer.h | ||
| Whenever the asset is renamed/moved, generated classes parented to the old package are not moved to the new package automatically (see FAssetRenameManager), so we have to manually perform the move/rename, to avoid invalid reference to the old package | OptimusDeformer.h | ||
bool RemoveComponentBinding
(
UOptimusComponentSourceBinding* InBinding |
OptimusDeformer.h | ||
bool RemoveGraph
(
UOptimusNodeGraph* InGraph |
Remove a graph and delete it. | OptimusDeformer.h | |
bool RemoveResource
(
UOptimusResourceDescription* InResourceDesc |
OptimusDeformer.h | ||
bool RemoveVariable
(
UOptimusVariableDescription* InVariableDesc |
OptimusDeformer.h | ||
bool RenameComponentBinding
(
UOptimusComponentSourceBinding* InBinding, |
OptimusDeformer.h | ||
bool RenameResource
(
UOptimusResourceDescription* InResourceDesc, |
OptimusDeformer.h | ||
bool RenameVariable
(
UOptimusVariableDescription* InVariableDesc, |
OptimusDeformer.h | ||
void Serialize
(
FArchive& Ar |
UObject overrides. | OptimusDeformer.h | |
void SetAllInstancesCanbeActive
(
bool bInCanBeActive |
OptimusDeformer.h | ||
bool SetComponentBindingSource
(
UOptimusComponentSourceBinding* InBinding, |
OptimusDeformer.h | ||
void SetPreviewMesh
(
USkeletalMesh* PreviewMesh, |
OptimusDeformer.h | ||
bool SetResourceDataDomain
(
UOptimusResourceDescription* InResourceDesc, |
OptimusDeformer.h | ||
bool SetResourceDataType
(
UOptimusResourceDescription* InResourceDesc, |
OptimusDeformer.h | ||
bool SetVariableDataType
(
UOptimusVariableDescription* InVariableDesc, |
OptimusDeformer.h |
Overridden from IOptimusPathResolver
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual IOptimusNodeGraphCollectionOwner * ResolveCollectionPath
(
const FString& InPath |
Takes a collection path string and attempts to resolve it to a specific graph collection. | OptimusDeformer.h | |
virtual UOptimusComponentSourceBinding * ResolveComponentBinding
(
FName InBindingName |
OptimusDeformer.h | ||
virtual UOptimusNodeGraph * ResolveGraphPath
(
const FString& InPath |
Takes a graph path string and attempts to resolve it to a specific graph | OptimusDeformer.h | |
virtual UOptimusNode * ResolveNodePath
(
const FString& InPath |
Takes a node path string and attempts to resolve it to a specific node | OptimusDeformer.h | |
virtual UOptimusNodePin * ResolvePinPath
(
const FString& InPinPath |
Takes a dot-separated path string and attempts to resolve it to a specific pin on a node. | OptimusDeformer.h | |
virtual UOptimusResourceDescription * ResolveResource
(
FName InResourceName |
OptimusDeformer.h | ||
virtual UOptimusVariableDescription * ResolveVariable
(
FName InVariableName |
OptimusDeformer.h |
Overridden from IOptimusNodeGraphCollectionOwner
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool AddGraphDirect
(
UOptimusNodeGraph* InGraph, |
Takes an existing graph and adds it to this graph collection. If the graph cannot be added, the object remains unchanged and this function returns false. | OptimusDeformer.h | |
virtual UOptimusNodeGraph * CreateGraphDirect
(
EOptimusNodeGraphType InType, |
Create a new graph of a given type, with an optional name. | OptimusDeformer.h | |
virtual UOptimusNodeGraph * FindGraphByName
(
FName InGraphName |
OptimusDeformer.h | ||
virtual IOptimusNodeGraphCollectionOwner * GetCollectionOwner() |
Returns the collection that owns this collection, or nullptr if this is the root collection | OptimusDeformer.h | |
virtual FString GetCollectionPath() |
Returns the path to this graph collection owner. | OptimusDeformer.h | |
virtual IOptimusNodeGraphCollectionOwner * GetCollectionRoot() |
Returns root collection that owns all the collections | OptimusDeformer.h | |
virtual const TArray< UOptimusNodeGraph * > & GetGraphs() |
Returns all immediately owned node graphs. | OptimusDeformer.h | |
virtual bool MoveGraphDirect
(
UOptimusNodeGraph* InGraph, |
Re-order the graph relative to the other graphs. | OptimusDeformer.h | |
virtual bool RemoveGraphDirect
(
UOptimusNodeGraph* InGraph, |
Remove the given graph. | OptimusDeformer.h | |
virtual bool RenameGraph
(
UOptimusNodeGraph* InGraph, |
Rename the given graph, subject to validation of the name. | OptimusDeformer.h | |
virtual bool RenameGraphDirect
(
UOptimusNodeGraph* InGraph, |
Rename the given graph, subject to validation of the name. | OptimusDeformer.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
bool AddComponentBindingDirect
(
UOptimusComponentSourceBinding* InComponentBinding, |
OptimusDeformer.h | ||
bool AddResourceDirect
(
UOptimusResourceDescription* InResourceDesc, |
Adds a resource that was created by this deformer and is owned by it. | OptimusDeformer.h | |
bool AddVariableDirect
(
UOptimusVariableDescription* InVariableDesc, |
Adds a resource that was created by this deformer and is owned by it. | OptimusDeformer.h | |
UOptimusComponentSourceBinding * CreateComponentBindingDirect
(
const UOptimusComponentSource* InComponentSource, |
OptimusDeformer.h | ||
UOptimusResourceDescription * CreateResourceDirect
(
FName InName |
Create a resource owned by this deformer but does not add it to the list of known resources. | OptimusDeformer.h | |
UOptimusVariableDescription * CreateVariableDirect
(
FName InName |
Create a resource owned by this deformer but does not add it to the list of known resources. | OptimusDeformer.h | |
void Notify
(
EOptimusGlobalNotifyType InNotifyType, |
OptimusDeformer.h | ||
bool RemoveComponentBindingDirect
(
UOptimusComponentSourceBinding* InBinding |
OptimusDeformer.h | ||
bool RemoveResourceDirect
(
UOptimusResourceDescription* InResourceDesc |
OptimusDeformer.h | ||
bool RemoveVariableDirect
(
UOptimusVariableDescription* InVariableDesc |
OptimusDeformer.h | ||
bool RenameComponentBindingDirect
(
UOptimusComponentSourceBinding* InBinding, |
OptimusDeformer.h | ||
bool RenameResourceDirect
(
UOptimusResourceDescription* InResourceDesc, |
OptimusDeformer.h | ||
bool RenameVariableDirect
(
UOptimusVariableDescription* InVariableDesc, |
OptimusDeformer.h | ||
bool SetComponentBindingSourceDirect
(
UOptimusComponentSourceBinding* InBinding, |
OptimusDeformer.h | ||
bool SetResourceDataDomainDirect
(
UOptimusResourceDescription* InResourceDesc, |
OptimusDeformer.h | ||
bool SetResourceDataTypeDirect
(
UOptimusResourceDescription* InResourceDesc, |
OptimusDeformer.h | ||
void SetStatusFromDiagnostic
(
EOptimusDiagnosticLevel InDiagnosticLevel |
OptimusDeformer.h | ||
bool SetVariableDataTypeDirect
(
UOptimusVariableDescription* InResourceDesc, |
OptimusDeformer.h |