最近、three.js を掘り下げることに時間を費やしました。Blender で 3D モデルを作成し、それを three.js にインポートします。すべて正常に動作し、currentKeyframe や lastKeyframe などの morphAnimMesh 内のデータは両方とも更新されますが、アニメーションはレンダリングされず、静的な 3D オブジェクトのみがレンダリングされます。誰か助けてくれませんか?ありがとう。
これは私の作品の URL です: http://www.dustedge.com/mathspace/three_test2.html
私のコードはすべてここにあります:
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var histLookVector = new THREE.Vector3(1,1,1);
var currentLookVector = new THREE.Vector3(1,1,1);
var xAxis = new THREE.Vector3(1,0,0);
var yAxis = new THREE.Vector3(0,1,1);
var renderer = new THREE.WebGLRenderer();
var mesh;
var time;
var oldTime;
var delta;
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
camera.position.x = -20;
camera.position.y = 20;
camera.position.z = 20;
camera.lookAt(currentLookVector);
var x=0;
var loader = new THREE.JSONLoader();
loader.load( "nets.js", createGeometry );
function createGeometry(model){
var material = new THREE.MeshNormalMaterial({morphTargets:true});
mesh = new THREE.MorphAnimMesh(model, material);
mesh.scale.x = mesh.scale.y = mesh.scale.z = 4;
mesh.position.x = 10;
mesh.time = 0;
mesh.duration = 2000;
oldTime = time = new Date().getTime();
scene.add(mesh);
render();
}
function render() {
requestAnimationFrame(render);
time= new Date().getTime();
delta= time-oldTime;
oldTime=time;
if(mesh){
mesh.updateAnimation(delta);
//console.log('current: ' + geometry.currentKeyframe);
}
renderer.render(scene, camera);
}