Navigation
API > API/Plugins > API/Plugins/PCG
Inheritance Hierarchy
- UObject
- UPCGData
- UPCGSettingsInterface
- UPCGSettings
- UPCGAddAttributeSettings
- UPCGAddTagSettings
- UPCGApplyOnActorSettings
- UPCGApplyScaleToBoundsSettings
- UPCGAttributeCastSettings
- UPCGAttributeFilteringRangeSettings
- UPCGAttributeFilteringSettings
- UPCGAttributeGetFromIndexSettings
- UPCGAttributeGetFromPointIndexSettings
- UPCGAttributeNoiseSettings
- UPCGAttributeReduceSettings
- UPCGAttributeSelectSettings
- UPCGAttributeTransferSettings
- UPCGBaseSubgraphSettings
- UPCGSpawnActorSettings
- UPCGSubgraphSettings
- UPCGLoopSettings
- UPCGBlueprintSettings
- UPCGBooleanSelectSettings
- UPCGBoundsModifierSettings
- UPCGBranchSettings
- UPCGCollapseSettings
- UPCGConvertToPointDataSettings
- UPCGCombinePointsSettings
- UPCGConvertToAttributeSetSettings
- UPCGConvexHull2DSettings
- UPCGCopyPointsSettings
- UPCGCreateAttributeSetSettings
- UPCGCreatePointsGridSettings
- UPCGCreatePointsSettings
- UPCGCreateSplineSettings
- UPCGCreateSurfaceFromSplineSettings
- UPCGCreateTargetActor
- UPCGCullPointsOutsideActorBoundsSettings
- UPCGDataFromActorSettings
- UPCGGetLandscapeSettings
- UPCGGetPCGComponentSettings
- UPCGGetPrimitiveSettings
- UPCGGetSplineSettings
- UPCGGetWaterSplineSettings
- UPCGGetVolumeSettings
- UPCGDataNumSettings
- UPCGDataTableRowToParamDataSettings
- UPCGDebugSettings
- UPCGDeleteAttributesSettings
- UPCGDeleteTagsSettings
- UPCGDensityFilterSettings
- UPCGDensityRemapSettings
- UPCGDifferenceSettings
- UPCGDistanceSettings
- UPCGDuplicatePointSettings
- UPCGExternalDataSettings
- UPCGLoadAlembicSettings
- UPCGLoadDataTableSettings
- UPCGFilterDataBaseSettings
- UPCGFilterByAttributeSettings
- UPCGFilterByIndexSettings
- UPCGFilterByTagSettings
- UPCGFilterByTypeSettings
- UPCGGatherSettings
- UPCGGetActorPropertySettings
- UPCGGetBoundsSettings
- UPCGGetLoopIndexSettings
- UPCGGetPropertyFromObjectPathSettings
- UPCGGraphInputOutputSettings
- UPCGHiGenGridSizeSettings
- UPCGIndirectionSettings
- UPCGInnerIntersectionSettings
- UPCGLinearDensityRemapSettings
- UPCGLoadDataAssetSettings
- UPCGMakeConcreteSettings
- UPCGMatchAndSetAttributesSettings
- UPCGMergeAttributesSettings
- UPCGMergeSettings
- UPCGMeshSamplerSettings
- UPCGMetadataOperationSettings
- UPCGMetadataPartitionSettings
- UPCGMetadataRenameSettings
- UPCGMetadataSettingsBase
- UPCGMetadataBitwiseSettings
- UPCGMetadataBooleanSettings
- UPCGMetadataBreakTransformSettings
- UPCGMetadataBreakVectorSettings
- UPCGMetadataCompareSettings
- UPCGMetadataMakeRotatorSettings
- UPCGMetadataMakeTransformSettings
- UPCGMetadataMakeVectorSettings
- UPCGMetadataMathsSettings
- UPCGMetadataRotatorSettings
- UPCGMetadataStringOpSettings
- UPCGMetadataTransformSettings
- UPCGMetadataTrigSettings
- UPCGMetadataVectorSettings
- UPCGMultiSelectSettings
- UPCGMutateSeedSettings
- UPCGNormalToDensitySettings
- UPCGNumberOfElementsBaseSettings
- UPCGNumberOfEntriesSettings
- UPCGNumberOfPointsSettings
- UPCGPointExtentsModifierSettings
- UPCGPointFromMeshSettings
- UPCGPointMatchAndSetSettings
- UPCGPointNeighborhoodSettings
- UPCGPrintElementSettings
- UPCGProjectionSettings
- UPCGQualityBranchSettings
- UPCGQualitySelectSettings
- UPCGReplaceTagsSettings
- UPCGRerouteSettings
- UPCGNamedRerouteBaseSettings
- UPCGNamedRerouteDeclarationSettings
- UPCGNamedRerouteUsageSettings
- UPCGResetPointCenterSettings
- UPCGSampleTextureSettings
- UPCGSanityCheckPointDataSettings
- UPCGSelectPointsSettings
- UPCGSelfPruningSettings
- UPCGSettingsWithDynamicInputs
- UPCGOuterIntersectionSettings
- UPCGSortAttributesSettings
- UPCGSpatialNoiseSettings
- UPCGSplineSamplerSettings
- UPCGSplitPointsSettings
- UPCGStaticMeshSpawnerSettings
- UPCGSurfaceSamplerSettings
- UPCGSwitchSettings
- UPCGTextureSamplerSettings
- UPCGTransformPointsSettings
- UPCGTrivialSettings
- UPCGUnionSettings
- UPCGUserParameterGetSettings
- UPCGVisualizeAttributeSettings
- UPCGVolumeSamplerSettings
- UPCGWorldQuerySettings
- UPCGWorldRayHitSettings
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 | bExposeToLibrary | ||
| bool | bUseSeed | By default, settings won't use a seed. Set this bool to true in the child ctor to allow edition and use it. | |
| 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. | |
| 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 | |||
| 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 | |
| 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 | ||
| 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 | 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 | |
| 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. | ||
| 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 | ||
| int | GetSeed
(
const UPCGComponent* InSourceComponent |
Get the seed, combined with optional PCGComponent seed. | |
| 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 | 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 | 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 | 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. | ||
| 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 | UseSeed () |
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 |