bones.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. var CreateBonesTestScene = function (engine) {
  2. var scene = new BABYLON.Scene(engine);
  3. var light = new BABYLON.DirectionalLight("dir01", new BABYLON.Vector3(0, -0.5, -1.0), scene);
  4. var camera = new BABYLON.ArcRotateCamera("Camera", 0, 0, 10, new BABYLON.Vector3(0, 30, 0), scene);
  5. camera.setPosition(new BABYLON.Vector3(20, 70, 120));
  6. light.position = new BABYLON.Vector3(20, 150, 70);
  7. camera.minZ = 10.0;
  8. scene.ambientColor = new BABYLON.Color3(0.3, 0.3, 0.3);
  9. // Ground
  10. var ground = BABYLON.Mesh.CreateGround("ground", 1000, 1000, 1, scene, false);
  11. var groundMaterial = new BABYLON.StandardMaterial("ground", scene);
  12. groundMaterial.diffuseColor = new BABYLON.Color3(0.2, 0.2, 0.2);
  13. groundMaterial.specularColor = new BABYLON.Color3(0, 0, 0);
  14. ground.material = groundMaterial;
  15. ground.receiveShadows = true;
  16. // Shadows
  17. var shadowGenerator = new BABYLON.ShadowGenerator(1024, light);
  18. // Meshes
  19. BABYLON.SceneLoader.ImportMesh("Rabbit", "Scenes/Rabbit/", "Rabbit.babylon", scene, function (newMeshes, particleSystems, skeletons) {
  20. var rabbit = newMeshes[1];
  21. rabbit.scaling = new BABYLON.Vector3(0.4, 0.4, 0.4);
  22. shadowGenerator.getShadowMap().renderList.push(rabbit);
  23. var rabbit2 = rabbit.clone("rabbit2");
  24. var rabbit3 = rabbit.clone("rabbit2");
  25. shadowGenerator.getShadowMap().renderList.push(rabbit2);
  26. shadowGenerator.getShadowMap().renderList.push(rabbit3);
  27. rabbit2.position = new BABYLON.Vector3(-50, 0, -20);
  28. rabbit2.skeleton = rabbit.skeleton.clone("clonedSkeleton");
  29. rabbit3.position = new BABYLON.Vector3(50, 0, -20);
  30. rabbit3.skeleton = rabbit.skeleton.clone("clonedSkeleton2");
  31. scene.beginAnimation(skeletons[0], 0, 100, true, 0.8);
  32. scene.beginAnimation(rabbit2.skeleton, 73, 100, true, 0.8);
  33. scene.beginAnimation(rabbit3.skeleton, 0, 72, true, 0.8);
  34. // Dude
  35. BABYLON.SceneLoader.ImportMesh("him", "Scenes/Dude/", "Dude.babylon", scene, function (newMeshes2, particleSystems2, skeletons2) {
  36. var dude = newMeshes2[0];
  37. for (var index = 0; index < newMeshes2.length; index++) {
  38. shadowGenerator.getShadowMap().renderList.push(newMeshes2[index]);
  39. }
  40. dude.rotation.y = Math.PI;
  41. dude.position = new BABYLON.Vector3(0, 0, -80);
  42. scene.beginAnimation(skeletons2[0], 0, 100, true, 1.0);
  43. });
  44. });
  45. return scene;
  46. };