Browse Source

Examples: Refactor BVH demo. (#25763)

* Examples: Refactor BVH demo.

* Update E2E screenshot.
Michael Herzog 2 years ago
parent
commit
ef05216d80
2 changed files with 10 additions and 8 deletions
  1. BIN
      examples/screenshots/webgl_loader_bvh.jpg
  2. 10 8
      examples/webgl_loader_bvh.html

BIN
examples/screenshots/webgl_loader_bvh.jpg


+ 10 - 8
examples/webgl_loader_bvh.html

@@ -44,7 +44,7 @@
 			const clock = new THREE.Clock();
 
 			let camera, controls, scene, renderer;
-			let mixer, skeletonHelper;
+			let mixer;
 
 			init();
 			animate();
@@ -52,18 +52,20 @@
 			const loader = new BVHLoader();
 			loader.load( 'models/bvh/pirouette.bvh', function ( result ) {
 
-				skeletonHelper = new THREE.SkeletonHelper( result.skeleton.bones[ 0 ] );
-				skeletonHelper.skeleton = result.skeleton; // allow animation mixer to bind to THREE.SkeletonHelper directly
+				const skinnedMesh = new THREE.SkinnedMesh();
+				skinnedMesh.visible = false; // dummy skinned mesh for animating the skeleton
 
-				const boneContainer = new THREE.Group();
-				boneContainer.add( 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( skeletonHelper );
-				scene.add( boneContainer );
 
 				// play animation
-				mixer = new THREE.AnimationMixer( skeletonHelper );
-				mixer.clipAction( result.clip ).setEffectiveWeight( 1.0 ).play();
+				mixer = new THREE.AnimationMixer( skinnedMesh );
+				mixer.clipAction( result.clip ).play();
 
 			} );