From bc051184b87a4a8ae0c3e5ac97871054cc854da1 Mon Sep 17 00:00:00 2001 From: Matthias Gall Date: Fri, 3 Apr 2026 23:41:11 +0200 Subject: [PATCH] FBXLoader: Guard against orphaned animation curve nodes. (#33327) --- examples/jsm/loaders/FBXLoader.js | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/jsm/loaders/FBXLoader.js b/examples/jsm/loaders/FBXLoader.js index a834398d8cd945..eb7dd870ac7d27 100644 --- a/examples/jsm/loaders/FBXLoader.js +++ b/examples/jsm/loaders/FBXLoader.js @@ -2750,11 +2750,15 @@ class AnimationParser { if ( layerCurveNodes[ i ] === undefined ) { - const modelID = connections.get( child.ID ).parents.filter( function ( parent ) { + const filteredParents = connections.get( child.ID ).parents.filter( function ( parent ) { return parent.relationship !== undefined; - } )[ 0 ].ID; + } ); + + if ( filteredParents.length === 0 ) return; + + const modelID = filteredParents[ 0 ].ID; if ( modelID !== undefined ) { @@ -2814,11 +2818,15 @@ class AnimationParser { if ( layerCurveNodes[ i ] === undefined ) { - const deformerID = connections.get( child.ID ).parents.filter( function ( parent ) { + const filteredParents = connections.get( child.ID ).parents.filter( function ( parent ) { return parent.relationship !== undefined; - } )[ 0 ].ID; + } ); + + if ( filteredParents.length === 0 ) return; + + const deformerID = filteredParents[ 0 ].ID; const morpherID = connections.get( deformerID ).parents[ 0 ].ID; const geoID = connections.get( morpherID ).parents[ 0 ].ID;