From 9f4bce7ea312ffbc309bf436d956a9e51d469224 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 1 Oct 2026 09:43:51 +0200 Subject: [PATCH] Fix crash on invalid Multi Blend 1D indices #4176 --- Source/Engine/Animations/Graph/AnimGroup.Animation.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp b/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp index 4ab0ebed2..acc30b6c6 100644 --- a/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp +++ b/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp @@ -1427,11 +1427,12 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu { const auto aIndex = data.IndicesSorted[i]; const auto bIndex = data.IndicesSorted[i + 1]; + ASSERT_LOW_LAYER(aIndex != ANIM_GRAPH_MULTI_BLEND_INVALID); const auto aData = node->Values[4 + aIndex * 2].AsFloat4(); AnimSampleData a(node->Assets[aIndex].As(), aData.W, aIndex); // Check single A case - if (x <= aData.X + ANIM_GRAPH_BLEND_THRESHOLD) + if (x <= aData.X + ANIM_GRAPH_BLEND_THRESHOLD || bIndex == ANIM_GRAPH_MULTI_BLEND_INVALID) { MultiBlendAnimData::BeforeSample(context, bucket, prevList, a, speed); value = SampleAnimation(node, loop, startTimePos, a);