ここではコードです。鳥を含むように書き直された "webgl_terrain_dynamic"の例です。3つのJSアニメの書き換えまたは修正。 MorphAnimMesh.jsが含まれていても新しいバージョンでは再生されません
これは鳥なしで、新しい例です。https://threejs.org/examples/webgl_terrain_dynamic.html
は、これは鳥で動作する古い例である - とthree.jsの古いバージョン:これは私がしたコードであるhttp://alteredqualia.com/three/examples/webgl_terrain_dynamic.html
製。それはすべて動作しますが、鳥は動きませんし、テクスチャ(特にオウム)上にも少しピクセルがあります。
function morphColorsToFaceColors(geometry) {
if (geometry.morphColors && geometry.morphColors.length) {
var colorMap = geometry.morphColors[ 0 ];
for (var i = 0; i < colorMap.colors.length; i ++) {
geometry.faces[ i ].color = colorMap.colors[ i ];
}
}
}
var loader = new THREE.JSONLoader();
var startX = -3000;
loader.load("models/animated/parrot.js", function(geometry) {
morphColorsToFaceColors(geometry);
addMorph(geometry, 250, 500, startX -500, 500, 700);
addMorph(geometry, 250, 500, startX - Math.random() * 500, 500, -200);
addMorph(geometry, 250, 500, startX - Math.random() * 500, 500, 200);
addMorph(geometry, 250, 500, startX - Math.random() * 500, 500, 1000);
});
loader.load("models/animated/flamingo.js", function(geometry) {
morphColorsToFaceColors(geometry);
addMorph(geometry, 500, 1000, startX - Math.random() * 500, 350, 40);
});
loader.load("models/animated/stork.js", function(geometry) {
morphColorsToFaceColors(geometry);
addMorph(geometry, 350, 1000, startX - Math.random() * 500, 350, 340);
});
// PRE-INIT
// renderer.initWebGLObjects(scene);
// MORPHS
function addMorph(geometry, speed, duration, x, y, z) {
var material = new THREE.MeshLambertMaterial({ color: 0xffaa55, morphTargets: true, vertexColors: THREE.FaceColors });
var meshAnim = new THREE.MorphAnimMesh(geometry, material);
meshAnim.speed = speed;
meshAnim.duration = duration;
meshAnim.time = 600 * Math.random();
meshAnim.position.set(x, y, z);
meshAnim.rotation.y = Math.PI/2;
meshAnim.castShadow = true;
meshAnim.receiveShadow = false;
scene.add(meshAnim);
morphs.push(meshAnim);
//renderer.initWebGLObjects(scene);
}
...関数の中で(レンダリング)私もこれを追加しました:https://github.com/mrdoob/three.js/pull/8488
:for (var i = 0; i < morphs.length; i ++) {
morph = morphs[ i ];
morph.updateAnimation(1000 * delta);
morph.position.x += morph.speed * delta;
if (morph.position.x > 2000) {
morph.position.x = -1500 - Math.random() * 500;
}
I ALSは本当に私を助けていないこの記事を見つけました
VR映画を輸出して、里親の子供たちが感情を学ぶのを助けるためには、このコードが必要です(解決方法はより複雑ですが、鳥は本当に素晴らしいです、私たちは知っている - 経験から - 彼らはそれらを愛するでしょう)。
私はThree.jsの専門家ではありません。あなたの助けと丁重な答えをありがとう。 :)あなたたちは本当に助けてくれました。私は今までコードを作るために多くを探しました。 :)