|
|
@@ -3886,8 +3886,17 @@ class GLTFParser {
|
|
|
primitive.mode === WEBGL_CONSTANTS.TRIANGLE_FAN ||
|
|
|
primitive.mode === undefined ) {
|
|
|
|
|
|
+ const needsSkinning = meshDef.isSkinnedMesh === true;
|
|
|
+ const hasSkinningAttributes = geometry.hasAttribute( 'skinIndex' ) && geometry.hasAttribute( 'skinWeight' );
|
|
|
+
|
|
|
+ if ( needsSkinning && hasSkinningAttributes === false ) {
|
|
|
+
|
|
|
+ console.warn( 'THREE.GLTFLoader: Missing skinIndex or skinWeight attributes. Skinning disabled.' );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
// .isSkinnedMesh isn't in glTF spec. See ._markDefs()
|
|
|
- mesh = meshDef.isSkinnedMesh === true
|
|
|
+ mesh = ( needsSkinning && hasSkinningAttributes )
|
|
|
? new SkinnedMesh( geometry, material )
|
|
|
: new Mesh( geometry, material );
|
|
|
|