Three.js - 模型的翻译动画。不是object3D

时间:2014-05-07 09:15:46

标签: animation three.js 3d-model

嘿伙计基本上我有一个粗糙的场景设置。我终于能够将跑车的3D模型加载到我的场景中。

我可以使用例如sphere.translateY(1)。

为Object3D原语设置动画

我为我的死亡无法弄清楚如何在我的汽车模型上做类似的翻译动画。首先它表示当我为它制作全局变量时未找到汽车变量,然后我尝试将汽车变为动画功能无效。

我确定translateY仅适用于像球体这样的Object3D,那么我如何在导入的3D模型上进行这种简单的翻译呢?我尝试增加位置。这是我的代码有人请帮忙! (我省略了相机和渲染代码等,这一切都只需要为这辆车制作动画!

var sphere;
var car;

function init() {
    // THE USUAL STUFF, scene, camera, renderer
  }

function addSceneElements() {
 // Sphere
    sphere = new THREE.Mesh(new THREE.SphereGeometry(8, 70, 20), blueMat);
    sphere.position.set(-260, 9, 125);
    scene.add(sphere);

    var loader = new THREE.JSONLoader();
    loader.load( "models/hotride.js", function(geometry){
    var material = new THREE.MeshLambertMaterial({color: 0x66CCFF});
    var car = new THREE.Mesh(geometry, material);
    car.scale.set(7,7,7);
    car.position.set(10, 22, -1000);
    scene.add(car);
    animate();
  });
  }

function animate() {
sphere.translateX(1);
      //car.translateZ(2);
     // car.position.z += clock.getDelta();

      // render
      renderer.render(scene, camera);
       requestAnimationFrame( animate );
      controls.update();
    }

2 个答案:

答案 0 :(得分:1)

你有一辆全球变辆车和一辆本地变辆车

var car;

function init() {
    // THE USUAL STUFF, scene, camera, renderer
  }

function addSceneElements() {
 // Sphere
    sphere = new THREE.Mesh(new THREE.SphereGeometry(8, 70, 20), blueMat);
    sphere.position.set(-260, 9, 125);
    scene.add(sphere);

    var loader = new THREE.JSONLoader();
    loader.load( "models/hotride.js", function(geometry){
    var material = new THREE.MeshLambertMaterial({color: 0x66CCFF});
    var car = new THREE.Mesh(geometry, material);     //// <<<< local var !!!

这意味着全球汽车不会将网格分配给本地汽车。只需删除行中的 var 即可!

    car = new THREE.Mesh(geometry, material);     //// <<<< global var !!!

答案 1 :(得分:0)

您可以在新的Object3D中添加模型,并操纵此对象进行平移/旋转。