unreal.AnimationBudgetAllocatorParameters

class unreal.AnimationBudgetAllocatorParameters(budget_in_ms=1.0, min_quality=0.0, max_tick_rate=10, work_unit_smoothing_speed=5.0, always_tick_falloff_aggression=0.8, interpolation_falloff_aggression=0.4, interpolation_max_rate=6, max_interpolated_components=16, interpolation_tick_multiplier=0.75, initial_estimated_work_unit_time_ms=0.08, max_ticked_offsreen_components=4, state_change_throttle_in_frames=30, budget_factor_before_reduced_work=1.5, budget_factor_before_reduced_work_epsilon=0.25, budget_pressure_smoothing_speed=3.0, reduced_work_throttle_min_in_frames=2, reduced_work_throttle_max_in_frames=20, budget_factor_before_aggressive_reduced_work=2.0, reduced_work_throttle_max_per_frame=4, budget_pressure_before_emergency_reduced_work=2.5)

Bases: unreal.StructBase

Parameter block used to control the behavior of the budget allocator

C++ Source:

  • Plugin: AnimationBudgetAllocator

  • Module: AnimationBudgetAllocator

  • File: AnimationBudgetAllocatorParameters.h

Editor Properties: (see get_editor_property/set_editor_property)

  • always_tick_falloff_aggression (float): [Read-Write] Range [0.1, 0.9]. Controls the rate at which ‘always ticked’ components falloff under load. Higher values mean that we reduce the number of always ticking components by a larger amount when the allocated time budget is exceeded.

  • budget_factor_before_aggressive_reduced_work (float): [Read-Write] Range > 1. Reduced work will be applied more rapidly when budget pressure goes over this amount.

  • budget_factor_before_reduced_work (float): [Read-Write] Range > 1 Reduced work will be delayed until budget pressure goes over this amount.

  • budget_factor_before_reduced_work_epsilon (float): [Read-Write] Range > 0.0. Increased work will be delayed until budget pressure goes under BudgetFactorBeforeReducedWork minus this amount.

  • budget_in_ms (float): [Read-Write] Values > 0.1. The time in milliseconds that we allocate for skeletal mesh work to be performed. When overbudget various other parameters come into play, such as AlwaysTickFalloffAggression and InterpolationFalloffAggression.

  • budget_pressure_before_emergency_reduced_work (float): [Read-Write] Range > 0.0. Controls the budget pressure where emergency reduced work (applied to all components except those that are bAlwaysTick).

  • budget_pressure_smoothing_speed (float): [Read-Write] Range > 0.0. How much to smooth the budget pressure value used to throttle reduced work.

  • initial_estimated_work_unit_time_ms (float): [Read-Write] Values > 0.0. Controls the time in milliseconds we expect, on average, for a skeletal mesh component to execute. The value only applies for the first tick of a component, after which we use the real time the tick takes.

  • interpolation_falloff_aggression (float): [Read-Write] Range [0.1, 0.9]. Controls the rate at which interpolated components falloff under load. Higher values mean that we reduce the number of interpolated components by a larger amount when the allocated time budget is exceeded. Components are only interpolated when the time budget is exceeded.

  • interpolation_max_rate (int32): [Read-Write] Values > 1. Controls the rate at which ticks happen when interpolating.

  • interpolation_tick_multiplier (float): [Read-Write] Range [0.1, 0.9]. Controls the expected value an amortized interpolated tick will take compared to a ‘normal’ tick.

  • max_interpolated_components (int32): [Read-Write] Range >= 0. Max number of components to interpolate before we start throttling.

  • max_tick_rate (int32): [Read-Write] Values >= 1. The maximum tick rate we allow. If this is set then we can potentially go over budget, but keep quality of individual meshes to a reasonable level.

  • max_ticked_offsreen_components (int32): [Read-Write] Values >= 1 The maximum number of offscreen components we tick (most significant first)

  • min_quality (float): [Read-Write] Values [0.0, 1.0]. The minimum quality metric allowed. Quality is determined simply by NumComponentsTickingThisFrame / NumComponentsThatWeNeedToTick. If this is anything other than 0.0 then we can potentially go over our time budget.

  • reduced_work_throttle_max_in_frames (int32): [Read-Write] Range [1, 255]. Prevents reduced work from changing too often due to system and load noise. Max value used when under budget pressure.

  • reduced_work_throttle_max_per_frame (int32): [Read-Write] Range [1, 255]. Controls the max number of components that are switched to/from reduced work per tick.

  • reduced_work_throttle_min_in_frames (int32): [Read-Write] Range [1, 255]. Prevents reduced work from changing too often due to system and load noise. Min value used when over budget pressure (i.e. aggressive reduction).

  • state_change_throttle_in_frames (int32): [Read-Write] Range [1, 128] Prevents throttle values from changing too often due to system and load noise.

  • work_unit_smoothing_speed (float): [Read-Write] Values > 0.1. The speed at which the average work unit converges on the measured amount.

property always_tick_falloff_aggression

[Read-Write] Range [0.1, 0.9]. Controls the rate at which ‘always ticked’ components falloff under load. Higher values mean that we reduce the number of always ticking components by a larger amount when the allocated time budget is exceeded.

Type

(float)

property budget_factor_before_aggressive_reduced_work

[Read-Write] Range > 1. Reduced work will be applied more rapidly when budget pressure goes over this amount.

Type

(float)

property budget_factor_before_reduced_work

[Read-Write] Range > 1 Reduced work will be delayed until budget pressure goes over this amount.

Type

(float)

property budget_factor_before_reduced_work_epsilon

[Read-Write] Range > 0.0. Increased work will be delayed until budget pressure goes under BudgetFactorBeforeReducedWork minus this amount.

Type

(float)

property budget_in_ms

[Read-Write] Values > 0.1. The time in milliseconds that we allocate for skeletal mesh work to be performed. When overbudget various other parameters come into play, such as AlwaysTickFalloffAggression and InterpolationFalloffAggression.

Type

(float)

property budget_pressure_before_emergency_reduced_work

[Read-Write] Range > 0.0. Controls the budget pressure where emergency reduced work (applied to all components except those that are bAlwaysTick).

Type

(float)

property budget_pressure_smoothing_speed

[Read-Write] Range > 0.0. How much to smooth the budget pressure value used to throttle reduced work.

Type

(float)

property initial_estimated_work_unit_time_ms

[Read-Write] Values > 0.0. Controls the time in milliseconds we expect, on average, for a skeletal mesh component to execute. The value only applies for the first tick of a component, after which we use the real time the tick takes.

Type

(float)

property interpolation_falloff_aggression

[Read-Write] Range [0.1, 0.9]. Controls the rate at which interpolated components falloff under load. Higher values mean that we reduce the number of interpolated components by a larger amount when the allocated time budget is exceeded. Components are only interpolated when the time budget is exceeded.

Type

(float)

property interpolation_max_rate

[Read-Write] Values > 1. Controls the rate at which ticks happen when interpolating.

Type

(int32)

property interpolation_tick_multiplier

[Read-Write] Range [0.1, 0.9]. Controls the expected value an amortized interpolated tick will take compared to a ‘normal’ tick.

Type

(float)

property max_interpolated_components

[Read-Write] Range >= 0. Max number of components to interpolate before we start throttling.

Type

(int32)

property max_tick_rate

[Read-Write] Values >= 1. The maximum tick rate we allow. If this is set then we can potentially go over budget, but keep quality of individual meshes to a reasonable level.

Type

(int32)

property max_ticked_offsreen_components

[Read-Write] Values >= 1 The maximum number of offscreen components we tick (most significant first)

Type

(int32)

property min_quality

[Read-Write] Values [0.0, 1.0]. The minimum quality metric allowed. Quality is determined simply by NumComponentsTickingThisFrame / NumComponentsThatWeNeedToTick. If this is anything other than 0.0 then we can potentially go over our time budget.

Type

(float)

property reduced_work_throttle_max_in_frames

[Read-Write] Range [1, 255]. Prevents reduced work from changing too often due to system and load noise. Max value used when under budget pressure.

Type

(int32)

property reduced_work_throttle_max_per_frame

[Read-Write] Range [1, 255]. Controls the max number of components that are switched to/from reduced work per tick.

Type

(int32)

property reduced_work_throttle_min_in_frames

[Read-Write] Range [1, 255]. Prevents reduced work from changing too often due to system and load noise. Min value used when over budget pressure (i.e. aggressive reduction).

Type

(int32)

property state_change_throttle_in_frames

[Read-Write] Range [1, 128] Prevents throttle values from changing too often due to system and load noise.

Type

(int32)

property work_unit_smoothing_speed

[Read-Write] Values > 0.1. The speed at which the average work unit converges on the measured amount.

Type

(float)