Navigation
API > API/Plugins > API/Plugins/PCG
Inheritance Hierarchy
- UObject
- UPCGData
- UPCGSettingsInterface
- UPCGSettings
- UPCGAddAttributeSettings
- UPCGAddComponentSettings
- UPCGAddTagSettings
- UPCGApplyOnActorSettings
- UPCGApplyScaleToBoundsSettings
- UPCGAttractSettings
- UPCGAttributeCastSettings
- UPCGAttributeFilteringRangeSettings
- UPCGAttributeFilteringSettings
- UPCGAttributeGetFromIndexSettings
- UPCGAttributeGetFromPointIndexSettings
- UPCGAttributeNoiseSettings
- UPCGAttributeReduceSettings
- UPCGAttributeRemoveDuplicatesSettings
- UPCGAttributeSelectSettings
- UPCGBaseSubgraphSettings
- UPCGSpawnActorSettings
- UPCGSubgraphSettings
- UPCGLoopSettings
- UPCGBlueprintSettings
- UPCGBlurSettings
- UPCGBooleanSelectSettings
- UPCGBoundsFromMeshSettings
- UPCGBoundsModifierSettings
- UPCGBranchSettings
- UPCGCleanSplineSettings
- UPCGClusterSettings
- UPCGCollapsePointsSettings
- UPCGCollapseSettings
- UPCGConvertToPointDataSettings
- UPCGCombinePointsSettings
- UPCGConvertToAttributeSetSettings
- UPCGConvexHull2DSettings
- UPCGCopyAttributesSettings
- UPCGCopyPointsSettings
- UPCGCreateAttributeSetSettings
- UPCGCreateCollisionDataSettings
- UPCGCreatePointsGridSettings
- UPCGCreatePointsSettings
- UPCGCreatePointsSphereSettings
- UPCGCreateSplineSettings
- UPCGCreateSurfaceFromSplineSettings
- UPCGCreateTargetActor
- UPCGCullPointsOutsideActorBoundsSettings
- UPCGDataFromActorSettings
- UPCGGetDynamicMeshDataSettings
- UPCGGetLandscapeSettings
- UPCGGetPCGComponentSettings
- UPCGGetPrimitiveSettings
- UPCGGetSplineSettings
- UPCGGetWaterSplineSettings
- UPCGGetVolumeSettings
- UPCGDataNumSettings
- UPCGDataTableRowToParamDataSettings
- UPCGDebugSettings
- UPCGDeleteAttributesSettings
- UPCGDeleteTagsSettings
- UPCGDensityFilterSettings
- UPCGDifferenceSettings
- UPCGDistanceSettings
- UPCGDuplicatePointSettings
- UPCGDynamicMeshBaseSettings
- UPCGAppendMeshesFromPointsSettings
- UPCGBooleanOperationSettings
- UPCGCreateEmptyDynamicMeshSettings
- UPCGDynamicMeshTransformSettings
- UPCGMergeDynamicMeshesSettings
- UPCGSaveDynamicMeshToAssetSettings
- UPCGSpawnDynamicMeshSettings
- UPCGStaticMeshToDynamicMeshSettings
- UPCGElevationIsolinesSettings
- UPCGExternalDataSettings
- UPCGLoadAlembicSettings
- UPCGLoadDataTableSettings
- UPCGFilterDataBaseSettings
- UPCGFilterByAttributeSettings
- UPCGFilterByIndexSettings
- UPCGFilterByTagSettings
- UPCGFilterByTypeSettings
- UPCGFilterElementsByIndexSettings
- UPCGGatherSettings
- UPCGGenericUserParameterGetSettings
- UPCGGetActorPropertySettings
- UPCGGetAttributesSettings
- UPCGGetBoundsSettings
- UPCGGetLoopIndexSettings
- UPCGGetPropertyFromObjectPathSettings
- UPCGGetTagsSettings
- UPCGGraphInputOutputSettings
- UPCGHiGenGridSizeSettings
- UPCGIndirectionSettings
- UPCGInnerIntersectionSettings
- UPCGLoadDataAssetSettings
- UPCGMakeConcreteSettings
- UPCGMatchAndSetAttributesSettings
- UPCGMergeAttributesSettings
- UPCGMergeSettings
- UPCGMeshSamplerSettings
- UPCGMetadataPartitionSettings
- UPCGMetadataRenameSettings
- UPCGMetadataSettingsBase
- UPCGAttributeRemapSettings
- UPCGMetadataBitwiseSettings
- UPCGMetadataBooleanSettings
- UPCGMetadataBreakTransformSettings
- UPCGMetadataBreakVectorSettings
- UPCGMetadataCompareSettings
- UPCGMetadataMakeRotatorSettings
- UPCGMetadataMakeTransformSettings
- UPCGMetadataMakeVectorSettings
- UPCGMetadataMathsSettings
- UPCGMetadataRotatorSettings
- UPCGMetadataStringOpSettings
- UPCGMetadataTransformSettings
- UPCGMetadataTrigSettings
- UPCGMetadataVectorSettings
- UPCGParseStringSettings
- UPCGMultiSelectSettings
- UPCGMutateSeedSettings
- UPCGNormalToDensitySettings
- UPCGNumberOfElementsBaseSettings
- UPCGNumberOfEntriesSettings
- UPCGNumberOfPointsSettings
- UPCGPathfindingSettings
- UPCGPointExtentsModifierSettings
- UPCGPointFromMeshSettings
- UPCGPointMatchAndSetSettings
- UPCGPointNeighborhoodSettings
- UPCGPrimitiveCrossSectionSettings
- UPCGPrintElementSettings
- UPCGPrintGrammarSettings
- UPCGProjectionSettings
- UPCGQualityBranchSettings
- UPCGQualitySelectSettings
- UPCGRandomChoiceSettings
- UPCGReplaceTagsSettings
- UPCGRerouteSettings
- UPCGNamedRerouteBaseSettings
- UPCGNamedRerouteDeclarationSettings
- UPCGNamedRerouteUsageSettings
- UPCGResetPointCenterSettings
- UPCGReverseSplineSettings
- UPCGSampleTextureSettings
- UPCGSanityCheckPointDataSettings
- UPCGSaveDataAssetSettings
- UPCGSelectGrammarSettings
- UPCGSelectPointsSettings
- UPCGSelfPruningSettings
- UPCGSettingsWithDynamicInputs
- UPCGOuterIntersectionSettings
- UPCGSortAttributesSettings
- UPCGSortTagsSettings
- UPCGSpatialNoiseSettings
- UPCGSpawnSplineMeshSettings
- UPCGSpawnSplineSettings
- UPCGSplineSamplerSettings
- UPCGSplineToSegmentSettings
- UPCGSplitPointsSettings
- UPCGStaticMeshSpawnerSettings
- UPCGSubdivisionBaseSettings
- UPCGDuplicateCrossSectionsSettings
- UPCGSubdivideSegmentSettings
- UPCGSubdivideSplineSettings
- UPCGSurfaceSamplerSettings
- UPCGSwitchSettings
- UPCGTagsToAttributeSetSettings
- UPCGTextureSamplerSettings
- UPCGTransformPointsSettings
- UPCGTrivialSettings
- UPCGUnionSettings
- UPCGUserParameterGetSettings
- UPCGVisualizeAttributeSettings
- UPCGVolumeSamplerSettings
- UPCGWaitLandscapeReadySettings
- UPCGWorldQuerySettings
- UPCGWorldRaycastElementSettings
- UPCGWorldRayHitSettings
- UPCGWriteToNiagaraDataChannelSettings
References
| Module | PCG |
| Header | /Engine/Plugins/PCG/Source/PCG/Public/PCGSettings.h |
| Include | #include "PCGSettings.h" |
Syntax
UCLASS (Abstract, BlueprintType, ClassGroup=(Procedural))
class UPCGSettings : public UPCGSettingsInterface
Remarks
Base class for settings-as-data in the PCG framework
Variables
| Type | Name | Description | |
|---|---|---|---|
| bool | bDumpCookedHLSL | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | |
| bool | bDumpDataDescriptions | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | |
| bool | bExecuteOnGPU | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | |
| bool | bExposeToLibrary | ||
| bool | bHasAnyOverridableHardReferences | We need to make sure that if we have hard references that are overridable, and they are overriden by paths on objects that are not yet loaded, that we are loading it on the main thread. | |
| bool | bPrintShaderDebugValues | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | |
| bool | bUseSeed | ||
| TArray< FPCGSettingsOverridableParam > | CachedOverridableParams | Needs to be serialized since property metadata (used to populate this array) is not available at runtime. | |
| FText | Category | ||
| int32 | DataVersion | The version number of the data after load and after any data migration. | |
| int | DebugBufferSize | [EXPERIMENTAL] Note: This variable is subject to change without deprecation. | |
| FText | Description | ||
| FPCGDeterminismSettings | DeterminismSettings | ||
| const UPCGSettings * | OriginalSettings | Holds the original settings used to duplicate this object if it was overridden. | |
| int | Seed | ||
| int32 | UserDataVersion | If a custom version guid was provided through GetUserCustomVersionGuid(), this field will hold the version number after load and after any data migration. |
Functions
| Type | Name | Description | |
|---|---|---|---|
| FName | |||
| void | AddStaticCreatedStrings
(
TArray< FString >& InOutStringTable |
[EXPERIMENTAL] Add any strings emitted by this node that are known statically at compile time. | |
| TArray< FPCGPinProperties > | Return the concatenation of InputPinProperties and FillOverridableParamsPins | ||
| TArray< FPCGPinProperties > | For symmetry reason, do the same with output pins. | ||
| void | ApplyDeprecation
(
UPCGNode* InOutNode |
Any final migration/recovery that can be done after pins are finalized. | |
| void | ApplyDeprecationBeforeUpdatePins
(
UPCGNode* InOutNode, |
UpdatePins will kick off invalid edges, so this is useful for moving edges around in case of pin changes. | |
| void | ApplyPreconfiguredSettings
(
const FPCGPreConfiguredSettingsInfo& PreconfigureInfo |
||
| void | ApplyStructuralDeprecation
(
UPCGNode* InOutNode |
If settings require structural changes, this will apply them | |
| int32 | BP_GetTypeUnionOfIncidentEdges
(
const FName& PinLabel |
BP version since EPCGDataType is uint32 and BP only supports uint8 enums. | |
| bool | True if we can safely cull this node & task if it has unwired non-advanced inputs. | ||
| bool | Derived classes must implement this to communicate that they might have dynamic dependencies. | ||
| bool | CanEditChange
(
const FProperty* InProperty |
Passthrough for the simpler method, to avoid modifying the child settings already overriding this method. | |
| bool | CanEditChange
(
const FEditPropertyChain& InPropertyChain |
We need the more complex function (with PropertyChain) to detect child properties in structs, if they are overridable. | |
| bool | Returns whether the user can directly interact with the node name | ||
| int | ComputeKernelThreadCount
(
const UPCGDataBinding* Binding |
[EXPERIMENTAL] Compute how many threads should be dispatched to execute this node on the GPU. | |
| bool | ComputeOutputPinDataDesc
(
const UPCGPin* OutputPin, |
[EXPERIMENTAL] Compute a description of data that will be output from OutputPinLabel/OutputPin. | |
| bool | ComputeOutputPinDataDesc
(
const FName& OutputPinLabel, |
[EXPERIMENTAL] Compute a description of data that will be output from OutputPinLabel/OutputPin. | |
| void | CreateAdditionalInputDataInterfaces
(
FPCGGPUCompilationContext& InOutContext, |
[EXPERIMENTAL] Create additional input data interfaces to marshal any required input data. | |
| void | CreateAdditionalOutputDataInterfaces
(
FPCGGPUCompilationContext& InOutContext, |
[EXPERIMENTAL] Create additional output data interfaces to marshal any required output data. | |
| void | CreateAdditionalOutputDataInterfaces
(
TArray< TObjectPtr< UComputeDataInterface > >& OutDataInterfaces |
||
| FPCGElementPtr | |||
| UPCGNode * | CreateNode () |
||
| TArray< FPCGPinProperties > | Internal functions, should not be used by any user. | ||
| TArray< FPCGPinProperties > | |||
| TArray< FPCGPinProperties > | Methods to remove boilerplate code across settings | ||
| TArray< FPCGPinProperties > | |||
| void |
DirtyCache ()
|
Method that can be called to dirty the cache data from this settings objects if the operator== does not allow to detect changes | |
| bool | [EXPERIMENTAL] Whether to display GPU execution option in node settings UI. | ||
| bool | DoesPinSupportPassThrough
(
UPCGPin* InPin |
By default, the first non-Advanced pin that supports pass-through will be selected. | |
| void | FillOverridableParamsPins
(
TArray< FPCGPinProperties >& OutPins |
Iterate over OverridableParams to automatically add param pins to the list. | |
| void | There is a weird issue where the BP class is not set correctly in some Server cases. | ||
| TArray< FPCGSettingsOverridableParam > | Can be overridden to add more custom params (like in BP). | ||
| FString | Derived classes can implement this to expose additional information or context, such as an asset in use by the node. | ||
| const FPCGCrc & | GetCachedCrc () |
Get the Crc value precomputed for these settings. | |
| EPCGChangeType | GetChangeTypeForProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
Gets the change impact for a given property. | |
| EPCGChangeType | GetChangeTypeForProperty
(
const FName& InPropertyName |
Gets the change impact for a given property. | |
| bool | GetCompactNodeIcon
(
FName& OutCompactNodeIcon |
Returns the icon to use instead of text in compact node form | |
| FString | GetCookedKernelSource
(
const TMap< FName, FPCGKernelAttributeIDAndType >& GlobalAttributeLookupTable |
[EXPERIMENTAL] Produces the node specific portion of kernel shader source text, including the main entry point. | |
| EPCGDataType | GetCurrentPinTypes
(
const UPCGPin* InPin |
Returns the current pin types, which can either be the static types from the pin properties, or a dynamic type based on connected edges. | |
| FName | |||
| FText | |||
| FPCGElementPtr | GetElement () |
TODO: check if we need this to be virtual, we don't really need if we're always caching. | |
| UObject * | Override this class to provide an UObject to jump to in case of double click on node ie. returning a blueprint instance will open the given blueprint in its editor. | ||
| void | GetKernelAttributeKeys
(
TArray< FPCGKernelAttributeKey >& OutKeys |
[EXPERIMENTAL] Get a list of the attributes read or written by this node. | |
| TArray< FText > | List of extra aliases that will be added to the node list in the Editor.Useful when we rename a node, but we still want the user to find the old one. | ||
| FLinearColor | |||
| FText | |||
| bool | GetPinExtraIcon
(
const UPCGPin* InPin, |
Can override to add a custom icon next to the pin label (and an optional tooltip). | |
| bool | GetPinLabelStyle
(
const UPCGPin* InPin, |
Can override the label style for a pin. Return false if no override is available. | |
| TArray< FPCGPreConfiguredSettingsInfo > | Return preconfigured info that will be filled in the editor palette action, allowing to create pre-configured settings | ||
| PRAGMA_ENABLE_DEPRECATION_WARNINGS int | GetSeed
(
const UPCGComponent* InSourceComponent |
Get the seed, combined with optional PCGComponent seed. | |
| uint64 | GetStableUID () |
Returns Original UID when this is a duplicated settings so we can compare successive executions for reuse cases. | |
| void | GetStaticTrackedKeys
(
FPCGSelectionKeyToSettingsMap& OutKeysToSettings, |
Derived classes must implement this to communicate dependencies that are known statically. | |
| EPCGSettingsType | GetType () |
||
| uint32 | Can be overriden by child class if they ever got renamed to avoid changing the default seed for this one. | ||
| EPCGDataType | GetTypeUnionOfIncidentEdges
(
const FName& PinLabel |
Bitwise union of the allowed types of each incident edge on pin. | |
| FGuid | An additional custom version number that external system users can use to track versions. | ||
| bool | If there are preconfigured info, decide if they are grouped in the palette in a folder with the node name, or if they are not grouped. | ||
| bool | |||
| bool | If the node has any dynamic pins that can change based on input or settings | ||
| bool | Display generated title line as primary title (example: BP nodes display the blueprint name as the primary title). | ||
| bool | HasOverridableParam
(
FName InParamName |
Checks if a label matches an overridable param | |
| bool | Check if we have some override. Can be overriden to force params pin for example | ||
| void | InitializeCachedOverridableParams
(
bool bReset |
Called after intialization to construct the list of all overridable params. | |
| TArray< FPCGPinProperties > | Returns an array of all the input pin properties. You should not add manually a "params" pin, it is handled automatically by FillOverridableParamsPins. | ||
| bool | IsInputPinRequiredByExecution
(
const UPCGPin* InPin |
By default a node does not specify any pin requirements, and will execute if it has no non-advanced pins or if it has any active connection to any pin. | |
| bool | IsKernelValid
(
FPCGContext* InContext, |
[EXPERIMENTAL] Performs validation and returns true if this node is suitable for deployment to the GPU. | |
| bool | IsPinStaticallyActive
(
const FName& OutputPinLabel |
True if we know prior to execution that the given pin will be active (not on inactive branch). | |
| bool | IsPinUsedByNodeExecution
(
const UPCGPin* InPin |
Returns true if InPin is in use by node (assuming node enabled). | |
| bool | IsPropertyOverriddenByPin
(
const FProperty* InProperty |
Returns true if the given property is overridden by graph parameters | |
| bool | IsPropertyOverriddenByPin
(
FName PropertyName |
Returns true if the base property, given by name, is overridden by graph parameters | |
| bool | IsPropertyOverriddenByPin
(
const TArrayView< const FName >& PropertyNameChain |
Returns true if the property, given by chain of property names, is overridden by graph parameters | |
| bool | IsStructuralProperty
(
const FName& InPropertyName |
||
| bool | If there are preconfigured info, we can skip the default settings and only expose pre-configured actions in the editor palette | ||
| bool | Returns true if only the first input edge is used from the primary pin when the node is disabled. | ||
| void | OnOverrideSettingsDuplicated
(
bool bSkippedPostLoad |
||
| void | OnOverrideSettingsDuplicatedInternal
(
bool bSkippedPostLoad |
Can be overriden by child class if some fixup code needs to run after duplication in the context of FPCGContext::InitializeSettings | |
| TArray< FPCGPinProperties > | |||
| bool | Whether this node can deactivate its output pins during execution, which can dynamically cull downstream nodes. | ||
| const TArray< FPCGSettingsOverridableParam > & | Overridable param section. | ||
| void | PostEditChangeProperty
(
FPropertyChangedEvent& PropertyChangedEvent |
||
| void | PostEditUndo () |
||
| void | |||
| void | PostLoad () |
||
| void | PostPaste () |
Perform post-operations when an editor node is copied | |
| void | PostSaveRoot
(
FObjectPostSaveRootContext ObjectSaveContext |
||
| bool | Check if we need to hook the output of the pre-task to this. | ||
| void | Serialize
(
FArchive& Ar |
||
| bool | Puts node title on node body, reducing overall node size | ||
| bool | GPU section. | ||
| PRAGMA_DISABLE_DEPRECATION_WARNINGS bool | UseSeed () |
By default, settings do not use a seed. |
Overridden from UPCGSettingsInterface
| Type | Name | Description | |
|---|---|---|---|
| const UPCGSettings * | GetSettings () |
||
| UPCGSettings * | GetSettings () |
Overridden from UPCGData
| Type | Name | Description | |
|---|---|---|---|
| void | AddToCrc
(
FArchiveCrc32& Ar, |
Adds this data to Crc. Fallback implementation writes object instance UID. | |
| EPCGDataType | GetDataType () |
Operators
| Type | Name | Description | |
|---|---|---|---|
| bool | operator==
(
const UPCGSettings& Other |
Deprecated Variables
| Type | Name | Description | |
|---|---|---|---|
| EPCGSettingsExecutionMode | ExecutionMode_DEPRECATED | ||
| TSet< FString > | TagsAppliedOnOutput_DEPRECATED |