From 6516fab7a9bbe53632e5fe8021ad01b6921497b4 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 2 Mar 2026 09:14:57 +0000 Subject: [PATCH] Fix lost connections for array-based pose links in animation graph TryResolvePoseLink only handled direct struct properties (single FPoseLink). Many animation nodes use arrays of pose links (e.g., BlendPose TArray in blend list nodes). Added handling for UScriptArray to iterate array elements and resolve each as a pose link. Co-authored-by: LoogLong <86428208+LoogLong@users.noreply.github.com> --- FModel/ViewModels/AnimGraphViewModel.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/FModel/ViewModels/AnimGraphViewModel.cs b/FModel/ViewModels/AnimGraphViewModel.cs index 9b0e7466..ca5e616a 100644 --- a/FModel/ViewModels/AnimGraphViewModel.cs +++ b/FModel/ViewModels/AnimGraphViewModel.cs @@ -424,6 +424,16 @@ public class AnimGraphViewModel AnimGraphNode sourceNode, List<(string name, string structType)> animNodeProps, Dictionary nodeByName, AnimGraphViewModel vm) { + // Handle arrays of pose links (e.g., BlendPose TArray) + if (tag.GenericValue is UScriptArray array) + { + for (var i = 0; i < array.Properties.Count; i++) + { + TryResolvePoseLink(array.Properties[i], $"{pinName}[{i}]", sourceNode, animNodeProps, nodeByName, vm); + } + return; + } + // A PoseLink/ComponentSpacePoseLink is a struct with a LinkID property if (tag.GetValue(typeof(FStructFallback)) is not FStructFallback linkStruct) return;