Selaa lähdekoodia

Target bone objects directly in BVHLoader keyframe tracks (#25811)

* Target bone objects directly in BVHLoader tracks

* Remove dummy SkinnedMesh from example
Matt Rossman 2 vuotta sitten
vanhempi
commit
e583934273
2 muutettua tiedostoa jossa 5 lisäystä ja 11 poistoa
  1. 2 2
      examples/jsm/loaders/BVHLoader.js
  2. 3 9
      examples/webgl_loader_bvh.html

+ 2 - 2
examples/jsm/loaders/BVHLoader.js

@@ -385,13 +385,13 @@ class BVHLoader extends Loader {
 
 				if ( scope.animateBonePositions ) {
 
-					tracks.push( new VectorKeyframeTrack( '.bones[' + bone.name + '].position', times, positions ) );
+					tracks.push( new VectorKeyframeTrack( bone.name + '.position', times, positions ) );
 
 				}
 
 				if ( scope.animateBoneRotations ) {
 
-					tracks.push( new QuaternionKeyframeTrack( '.bones[' + bone.name + '].quaternion', times, rotations ) );
+					tracks.push( new QuaternionKeyframeTrack( bone.name + '.quaternion', times, rotations ) );
 
 				}
 

+ 3 - 9
examples/webgl_loader_bvh.html

@@ -54,19 +54,13 @@
 			const loader = new BVHLoader();
 			loader.load( 'models/bvh/pirouette.bvh', function ( result ) {
 
-				const skinnedMesh = new THREE.SkinnedMesh();
-				skinnedMesh.visible = false; // dummy skinned mesh for animating the skeleton
+				const skeletonHelper = new THREE.SkeletonHelper( result.skeleton.bones[ 0 ] );
 
-				skinnedMesh.add( result.skeleton.bones[ 0 ] );
-				skinnedMesh.bind( result.skeleton );
-
-				const skeletonHelper = new THREE.SkeletonHelper( skinnedMesh );
-
-				scene.add( skinnedMesh );
+				scene.add( result.skeleton.bones[ 0 ] );
 				scene.add( skeletonHelper );
 
 				// play animation
-				mixer = new THREE.AnimationMixer( skinnedMesh );
+				mixer = new THREE.AnimationMixer( result.skeleton.bones[ 0 ] );
 				mixer.clipAction( result.clip ).play();
 
 			} );