From 3f6dd92a68d0d9f8beacc92c8e2c43dea7bb3270 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 14 Apr 2024 14:51:40 +0200 Subject: [PATCH] Fix crash when using old `Blend with Mask` node in Anim Graph #2434 --- Source/Engine/Animations/Graph/AnimGroup.Animation.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp b/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp index c2c7127a5..247c999e9 100644 --- a/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp +++ b/Source/Engine/Animations/Graph/AnimGroup.Animation.cpp @@ -1177,14 +1177,12 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu { const float alpha = Math::Saturate((float)tryGetValue(node->GetBox(3), node->Values[0])); auto mask = node->Assets[0].As(); - auto maskAssetBox = node->GetBox(4); // 4 is the id of skeleton mask parameter node. - // Check if have some mask asset connected with the mask node - if (maskAssetBox->HasConnection()) + // Use the mask connected with this node instead of default mask asset + auto maskAssetBox = node->TryGetBox(4); + if (maskAssetBox && maskAssetBox->HasConnection()) { const Value assetBoxValue = tryGetValue(maskAssetBox, Value::Null); - - // Use the mask connected with this node instead of default mask asset if (assetBoxValue != Value::Null) mask = (SkeletonMask*)assetBoxValue.AsAsset; } @@ -2119,7 +2117,6 @@ void AnimGraphExecutor::ProcessGroupAnimation(Box* boxBase, Node* nodeBase, Valu value = Variant(Transform::Identity); break; } - // Two Bone IK case 31: {