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] Always Tick Falloff Aggression: 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] Budget Factor Before Aggressive Reduced Work: Range > 1. Reduced work will be applied more rapidly when budget pressure goes over this amount.

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

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

  • budget_in_ms (float): [Read-Write] Budget in Ms: 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] Budget Pressure Before Emergency Reduced Work: 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] Budget Pressure Smoothing Speed: 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] Initial Estimated Work Unit Time Ms: 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] Interpolation Falloff Aggression: 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] Interpolation Max Rate: Values > 1. Controls the rate at which ticks happen when interpolating.

  • interpolation_tick_multiplier (float): [Read-Write] Interpolation Tick Multiplier: 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] Max Interpolated Components: Range >= 0. Max number of components to interpolate before we start throttling.

  • max_tick_rate (int32): [Read-Write] Max Tick Rate: 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] Max Ticked Offsreen Components: Values >= 1 The maximum number of offscreen components we tick (most significant first)

  • min_quality (float): [Read-Write] Min Quality: 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] Reduced Work Throttle Max in Frames: 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] Reduced Work Throttle Max Per Frame: 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] Reduced Work Throttle Min in Frames: 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] State Change Throttle in Frames: Range [1, 128] Prevents throttle values from changing too often due to system and load noise.

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

property always_tick_falloff_aggression

[Read-Write] Always Tick Falloff Aggression: 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] Budget Factor Before Aggressive Reduced Work: 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] Budget Factor Before Reduced Work: 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] Budget Factor Before Reduced Work Epsilon: 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] Budget in Ms: 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] Budget Pressure Before Emergency Reduced Work: 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] Budget Pressure Smoothing Speed: 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] Initial Estimated Work Unit Time Ms: 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] Interpolation Falloff Aggression: 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] Interpolation Max Rate: Values > 1. Controls the rate at which ticks happen when interpolating.

Type

(int32)

property interpolation_tick_multiplier

[Read-Write] Interpolation Tick Multiplier: 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] Max Interpolated Components: Range >= 0. Max number of components to interpolate before we start throttling.

Type

(int32)

property max_tick_rate

[Read-Write] Max Tick Rate: 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] Max Ticked Offsreen Components: Values >= 1 The maximum number of offscreen components we tick (most significant first)

Type

(int32)

property min_quality

[Read-Write] Min Quality: 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] Reduced Work Throttle Max in Frames: 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] Reduced Work Throttle Max Per Frame: 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] Reduced Work Throttle Min in Frames: 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] State Change Throttle in Frames: 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] Work Unit Smoothing Speed: Values > 0.1. The speed at which the average work unit converges on the measured amount.

Type

(float)