Navigation
API > API/Runtime > API/Runtime/MovieScene
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.
| Name | UMovieSceneBlenderSystem |
| Type | class |
| Header File | /Engine/Source/Runtime/MovieScene/Public/EntitySystem/MovieSceneBlenderSystem.h |
| Include Path | #include "EntitySystem/MovieSceneBlenderSystem.h" |
Syntax
UCLASS (Abstract, MinimalAPI)
class UMovieSceneBlenderSystem : public UMovieSceneEntitySystem
Inheritance Hierarchy
- UObjectBase → UObjectBaseUtility → UObject → UMovieSceneEntitySystem → UMovieSceneBlenderSystem
Derived Classes
UMovieSceneBlenderSystem derived class hierarchy
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
UMovieSceneBlenderSystem
(
const FObjectInitializer& ObjInit |
EntitySystem/MovieSceneBlenderSystem.h |
Constants
| Name | Type | Remarks | Include Path |
|---|---|---|---|
| DefaultPriority | int32 | Default blender system priority. Higher priorities win, negative priorities are supported. | EntitySystem/MovieSceneBlenderSystem.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| BlenderTypeTag | UE::MovieScene::FComponentTypeID | Type that is unique to this blender system type that distinquishes its BlendInput and Output components | EntitySystem/MovieSceneBlenderSystem.h | |
| SystemID | FMovieSceneBlenderSystemID | Cached blender system ID | EntitySystem/MovieSceneBlenderSystem.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
| Allocate a new blend channel. | EntitySystem/MovieSceneBlenderSystem.h | ||
| Get the unique ID for this blender system's underlying type. | EntitySystem/MovieSceneBlenderSystem.h | ||
UE::MovieScene::FComponentTypeID GetBlenderTypeTag() |
Retrieve the tag that should accompany any blend input and output components to be used by this blender | EntitySystem/MovieSceneBlenderSystem.h | |
int32 GetSelectionPriority() |
Retrieve the selection priority to use when choosing a blender system. Highest wins. | EntitySystem/MovieSceneBlenderSystem.h | |
void ReleaseBlendChannel
(
FMovieSceneBlendChannelID BlendChannelID |
Release a previously allocated blend channel. | EntitySystem/MovieSceneBlenderSystem.h |
Protected
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void CompactBlendChannels() |
EntitySystem/MovieSceneBlenderSystem.h |
Overridden from UMovieSceneEntitySystem
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool IsRelevantImpl
(
UMovieSceneEntitySystemLinker* InLinker |
EntitySystem/MovieSceneBlenderSystem.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static TSubclassOf< UMovieSceneBlenderSystem > GetBlenderSystemClass
(
FMovieSceneBlenderSystemID InSystemID |
Get a blender system class, given a blender system ID. | EntitySystem/MovieSceneBlenderSystem.h | |
static FMovieSceneBlenderSystemID GetBlenderSystemID () |
Get the unique ID for a given blender system type. | EntitySystem/MovieSceneBlenderSystem.h |