UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimNodeAlphaOptions.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
9
10// Alpha blending options helper functions for anim nodes
11// Assumes that the specified node contains the members:
12// AlphaInputType, ActualAlpha, AlphaScaleBias, Alpha, bAlphaBoolEnabled, AlphaCurveName
14{
15 // Per-tick update
16 template<typename AnimNodeType>
18 {
19 // Determine Actual Alpha.
20 switch (InAnimNode.AlphaInputType)
21 {
22 case EAnimAlphaInputType::Float:
23 InAnimNode.ActualAlpha = InAnimNode.AlphaScaleBias.ApplyTo(InAnimNode.AlphaScaleBiasClamp.ApplyTo(InAnimNode.Alpha, InContext.GetDeltaTime()));
24 break;
25 case EAnimAlphaInputType::Bool:
26 InAnimNode.ActualAlpha = InAnimNode.AlphaBoolBlend.ApplyTo(InAnimNode.bAlphaBoolEnabled, InContext.GetDeltaTime());
27 break;
28 case EAnimAlphaInputType::Curve:
29 if (UAnimInstance* AnimInstance = Cast<UAnimInstance>(InContext.AnimInstanceProxy->GetAnimInstanceObject()))
30 {
31 InAnimNode.ActualAlpha = InAnimNode.AlphaScaleBiasClamp.ApplyTo(AnimInstance->GetCurveValue(InAnimNode.AlphaCurveName), InContext.GetDeltaTime());
32 }
33 break;
34 };
35
36 // Make sure Alpha is clamped between 0 and 1.
37 InAnimNode.ActualAlpha = FMath::Clamp<float>(InAnimNode.ActualAlpha, 0.f, 1.f);
38
39 return FAnimWeight::IsRelevant(InAnimNode.ActualAlpha);
40 }
41};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition AnimInstance.h:353
Definition AnimNodeAlphaOptions.h:14
static bool Update(AnimNodeType &InAnimNode, const FAnimationUpdateContext &InContext)
Definition AnimNodeAlphaOptions.h:17
static bool IsRelevant(float InWeight)
Definition AnimTypes.h:666
Definition AnimNodeBase.h:354