unreal.PCGMetadataSettingsBase

class unreal.PCGMetadataSettingsBase(outer: Object | None = None, name: Name | str = 'None')

Bases: PCGSettings

Base class for all Metadata operations. Metadata operation can work with attributes or properties. For example you could compute the addition between all points density and a constant from a param data. The output will be the duplication of the first spatial input (by default - can be overridden by OutputDataFromPin), with the same metadata + the result of the operation (either in an attribute or a property).

The new attribute can collide with one of the attributes in the incoming metadata. In this case, the attribute value will be overridden by the result of the operation. It will also override the type of the attribute if it doesn’t match the original.

We only support operations between points and between spatial data. They all need to match (or be a param data) For example, if input 0 is a point data and input 1 is a spatial data, we fail.

You can specify the name of the attribute for each input and for the output. If the input name is None, it will take the lastest attribute in the input metadata. If the output name is None, it will take the input name.

Each operation has some requirements for the input types, and can broadcast some values into others (example Vector + Float -> Vector). For example, if the op only accept booleans, all other value types will throw an error.

If there are multiple values for an attribute, the operation will be done on all values. If one input has N elements and the second has 1 element, the second will be repeated for each element of the first for the operation. We only support N-N operations and N-1 operation (ie. The number of values needs to be all the same or 1)

If the node doesn’t provide an output, check the logs to know why it failed.

C++ Source:

  • Plugin: PCG

  • Module: PCG

  • File: PCGMetadataOpElementBase.h

Editor Properties: (see get_editor_property/set_editor_property)

  • break_debugger (bool): [Read-Write] If a debugger is attached, a breakpoint will be triggered in the execution code to enable debugging. Only applies when inspecting a debug object. Transient and Editor-only.

  • category (Text): [Read-Write]

  • debug (bool): [Read-Write]

  • debug_buffer_size (int32): [Read-Write] Size (in number of floats) of the shader debug print buffer.

  • debug_settings (PCGDebugVisualizationSettings): [Read-Write]

  • description (Text): [Read-Write]

  • determinism_settings (PCGDeterminismSettings): [Read-Write]

  • dump_cooked_hlsl (bool): [Read-Write] Dump the cooked HLSL into the log after it is generated.

  • dump_data_descriptions (bool): [Read-Write] Dump the data descriptions of input/output pins to the log.

  • enabled (bool): [Read-Write]

  • execute_on_gpu (bool): [Read-Write] Whether this node should be executed on the GPU.

  • execution_dependency_required (bool): [Read-Write] If enabled, the execution dependency pin will require to be connected for execution (as any other required pin) and will be used for culling.

  • expose_to_library (bool): [Read-Write]

  • output_data_from_pin (Name): [Read-Write] By default, output is taken from first non-param pin (aka if the second pin is a point data, the output will be this point data). You can change it to any available input pin.

  • output_target (PCGAttributePropertyOutputSelector): [Read-Write]

  • print_shader_debug_values (bool): [Read-Write] Enable use of ‘WriteDebugValue(uint Index, float Value)’ function in your kernel. Allows you to write float values to a buffer for logging on the CPU.

  • profile_kernel_index (int32): [Read-Write] Index of kernel emitted by this node to repeatedly dispatch every frame to enable profiling. Set to -1 to disable profiling. PCG_GPU_KERNEL_PROFILING must be defined in PCG.Build.cs.

  • seed (int32): [Read-Write]

  • trigger_render_capture (bool): [Read-Write] Will trigger a render capture when this node executes and a debug object is selected in the graph editor. Transient and Editor-only. Render captures must be enabled (e.g. -AttachRenderDoc or -AttachPIX).

  • use_seed (bool): [Read-Write] deprecated: Implement the PCGSettings virtual UseSeed() override.

property output_data_from_pin: Name

[Read-Write] By default, output is taken from first non-param pin (aka if the second pin is a point data, the output will be this point data). You can change it to any available input pin.

Type:

(Name)

property output_target: PCGAttributePropertyOutputSelector

[Read-Write]

Type:

(PCGAttributePropertyOutputSelector)