examples/FBXLoader.js
function () {

			var skeletons = {};
			var morphTargets = {};

			if ( 'Deformer' in fbxTree.Objects ) {

				var DeformerNodes = fbxTree.Objects.Deformer;

				for ( var nodeID in DeformerNodes ) {

					var deformerNode = DeformerNodes[ nodeID ];

					var relationships = connections.get( parseInt( nodeID ) );

					if ( deformerNode.attrType === 'Skin' ) {

						var skeleton = this.parseSkeleton( relationships, DeformerNodes );
						skeleton.ID = nodeID;

						if ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: skeleton attached to more than one geometry is not supported.' );
						skeleton.geometryID = relationships.parents[ 0 ].ID;

						skeletons[ nodeID ] = skeleton;

					} else if ( deformerNode.attrType === 'BlendShape' ) {

						var morphTarget = {
							id: nodeID,
						};

						morphTarget.rawTargets = this.parseMorphTargets( relationships, DeformerNodes );
						morphTarget.id = nodeID;

						if ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: morph target attached to more than one geometry is not supported.' );

						morphTargets[ nodeID ] = morphTarget;

					}

				}

			}

			return {

				skeletons: skeletons,
				morphTargets: morphTargets,

			};

		}
function () {

			var skeletons = {};
			var morphTargets = {};

			if ( 'Deformer' in fbxTree.Objects ) {

				var DeformerNodes = fbxTree.Objects.Deformer;

				for ( var nodeID in DeformerNodes ) {

					var deformerNode = DeformerNodes[ nodeID ];

					var relationships = connections.get( parseInt( nodeID ) );

					if ( deformerNode.attrType === 'Skin' ) {

						var skeleton = this.parseSkeleton( relationships, DeformerNodes );
						skeleton.ID = nodeID;

						if ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: skeleton attached to more than one geometry is not supported.' );
						skeleton.geometryID = relationships.parents[ 0 ].ID;

						skeletons[ nodeID ] = skeleton;

					} else if ( deformerNode.attrType === 'BlendShape' ) {

						var morphTarget = {
							id: nodeID,
						};

						morphTarget.rawTargets = this.parseMorphTargets( relationships, DeformerNodes );
						morphTarget.id = nodeID;

						if ( relationships.parents.length > 1 ) console.warn( 'THREE.FBXLoader: morph target attached to more than one geometry is not supported.' );

						morphTargets[ nodeID ] = morphTarget;

					}

				}

			}

			return {

				skeletons: skeletons,
				morphTargets: morphTargets,

			};

		}
function ( ) { var skeletons = { } ; var morphTargets = { } ; if ( 'Deformer' in fbxTree . Objects ) { var DeformerNodes = fbxTree . Objects . Deformer ; for ( var nodeID in DeformerNodes ) { var deformerNode = DeformerNodes [ nodeID ] ; var relationships = connections . get ( parseInt ( nodeID ) ) ; if ( deformerNode . attrType === 'Skin' ) { var skeleton = this . parseSkeleton ( relationships , DeformerNodes ) ; skeleton . ID = nodeID ; if ( relationships . parents . length > 1 ) console . warn ( 'THREE.FBXLoader: skeleton attached to more than one geometry is not supported.' ) ; skeleton . geometryID = relationships . parents [ 0 ] . ID ; skeletons [ nodeID ] = skeleton ; } else if ( deformerNode . attrType === 'BlendShape' ) { var morphTarget = { id : nodeID , } ; morphTarget . rawTargets = this . parseMorphTargets ( relationships , DeformerNodes ) ; morphTarget . id = nodeID ; if ( relationships . parents . length > 1 ) console . warn ( 'THREE.FBXLoader: morph target attached to more than one geometry is not supported.' ) ; morphTargets [ nodeID ] = morphTarget ; } } } return { skeletons : skeletons , morphTargets : morphTargets , } ; }
Parse nodes in FBXTree.Objects.Deformer Deformer node can contain skinning or Vertex Cache animation data, however only skinning is supported here Generates map of Skeleton-like objects for use later when generating and binding skeletons.
Parse nodes in FBXTree . Objects . Deformer Deformer node can contain skinning or Vertex Cache animation data however only skinning is supported here Generates map of Skeleton - like objects for use later when generating and binding skeletons .