Fix output pose layer detection to use AnimGraphNode_Root Name="AnimGraph"

The output pose layer is now correctly identified by finding the node
whose Name property is "AnimGraph" (stored on AnimGraphNode_Root),
instead of incorrectly matching any node with "Root" in ExportType.

Co-authored-by: LoogLong <86428208+LoogLong@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-03-02 06:31:15 +00:00
parent 1ba3afb483
commit c1962c77be
2 changed files with 5 additions and 5 deletions

View File

@ -215,9 +215,9 @@ public class AnimGraphViewModel
/// </summary>
private static string GetLayerName(List<AnimGraphNode> nodes, int index)
{
// Look for a prominent node type to name the layer
// The final output pose layer contains an AnimGraphNode_Root with Name="AnimGraph"
var rootNode = nodes.FirstOrDefault(n =>
n.ExportType.Contains("Root", StringComparison.OrdinalIgnoreCase));
n.Name.Equals("AnimGraph", StringComparison.OrdinalIgnoreCase));
if (rootNode != null)
return "AnimGraph";

View File

@ -67,10 +67,10 @@ public partial class AnimGraphViewer
if (_viewModel.Layers.Count == 0)
return;
// Show only the final output pose layer (AnimGraph) initially
// Show only the final output pose layer (AnimGraph) initially.
// The root node of the output layer is an AnimGraphNode_Root with Name="AnimGraph".
var outputLayer = _viewModel.Layers.FirstOrDefault(l =>
l.Nodes.Any(n => n.ExportType.Contains("Root", StringComparison.OrdinalIgnoreCase) ||
n.ExportType.Contains("Result", StringComparison.OrdinalIgnoreCase)))
l.Nodes.Any(n => n.Name.Equals("AnimGraph", StringComparison.OrdinalIgnoreCase)))
?? _viewModel.Layers[0];
var layersToShow = new[] { outputLayer };