three.js では、xyz に宇宙船があり、xyz にある惑星のメッシュ オブジェクトに向かって飛行するのが好きです。
私は一生これを理解することはできません。
惑星に向かって一定の速度で直線的に移動する必要があります。
three.js では、xyz に宇宙船があり、xyz にある惑星のメッシュ オブジェクトに向かって飛行するのが好きです。
私は一生これを理解することはできません。
惑星に向かって一定の速度で直線的に移動する必要があります。
それに焦点を当てたhttps://github.com/sole/tween.jsを使用できます。
主に次のコードを使用した非常に基本的な例http://jsfiddle.net/qASPe (正方形は 5 秒後に球に向かって飛行します):
new TWEEN.Tween(ship.position)
.to(planet.position, 700) // destination, duration
.start();
後で、THREE.Curve またはその他のパス メカニズムを、 http://jsfiddle.net/aevdJ/12のような「フライング」パスとして使用することができます。
// create a path
var path = new THREE.SplineCurve3([
ship.position,
// some other points maybe? representing your landing/takeoff trajectory
planet.position
]);
new TWEEN.Tween({ distance:0 })
.to({ distance:1 }, 3000) // destination, duration
.onUpdate(function(){
var pathPosition = path.getPointAt(this.distance);
ship.position.set(pathPosition.x, pathPosition.y, pathPosition.z);
})
.start();
いずれの場合も、更新関数にこの行を追加することを忘れないでください
TWEEN.update();