UMovieSceneBlenderSystem

Base class for all systems that blend data from multiple entities/components into a single entity

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

MovieScene

Header

/Engine/Source/Runtime/MovieScene/Public/EntitySystem/MovieSceneBlenderSystem.h

Include

#include "EntitySystem/MovieSceneBlenderSystem.h"

Syntax

class UMovieSceneBlenderSystem : public UMovieSceneEntitySystem

Remarks

Base class for all systems that blend data from multiple entities/components into a single entity

This system has direct coupling to TCompositePropertySystemManager and forms the basis for built-in blend modes in Sequencer (Absolute, Relative and Additive). Blend 'channels' are allocated in this system which define a many to one relationship by corresponding blend input(many)/output(one) components added to the relevant entities. Blend input and output channel components are uint16.

The class supports a maximum of 65535 blend channels.

Additionally, blender systems tag their inputs using the built in Absolute, Relative and Additive tags for efficient computation of each type of blending (this allows each blend type to be computed without branching).

A simple example of 3 blended floats is as follows: Entity Data: Inputs: float [float component], uint16 [blend channel input], [Absolute Tag] => [ { 100.f, 0 }, { 200.f, 1 } ] float [float component], uint16 [blend channel input], [Additive Tag] => [ { 50.f, 1} ] Outputs: float [float component], uint16 [blend channel output] => [ { 0.f, 0}, { 0.f, 1} ] To perform blending for this data, accumulation buffers are allocated per-blend-type, and each blend accumulates into the index of its blend channel input component. A final combination pass walks over blend channel outputs a writes the results into the result component from the accumulation buffer.

Variables

Name Description

Protected variable

TBitArray

 

AllocatedBlendChannels

Bit array specifying currently allocated blend channels

Constructors

Name Description

Protected function

UMovieSceneBlenderSystem

(
    const FObjectInitializer& ObjInit
)

Functions

Name Description

Public function

FMovieSceneB...

 

AllocateBlendChannel()

Allocate a new blend channel.

Protected function

void

 

CompactBlendChannels()

Public function Static

TSubclassOf<...

 

GetBlenderSystemClass

(
    FMovieSceneBlenderSystemID InSystem...
)

Get a blender system class, given a blender system ID.

Public function Static

FMovieSceneB...

 

GetBlenderSystemID()

Get the unique ID for a given blender system type.

Public function Const

FMovieSceneB...

 

GetBlenderSystemID()

Get the unique ID for this blender system's underlying type.

Public function

void

 

ReleaseBlendChannel

(
    FMovieSceneBlendChannelID BlendChan...
)

Release a previously allocated blend channel.

Overridden from UMovieSceneEntitySystem

Name Description

Protected function Virtual Const

bool

 

IsRelevantImpl

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss