我試圖在Three.js中理解這個例子:http://threejs.org/examples/#webgl_animation_skinning_blending。這部分代碼(BlendCharacter.js文件)存在一些問題。具有多個動畫的網格
this.load = function (url, onLoad) {
var scope = this;
var loader = new THREE.JSONLoader();
loader.load(url, function(geometry, materials) {
var originalMaterial = materials[ 0 ];
originalMaterial.skinning = true;
THREE.SkinnedMesh.call(scope, geometry, originalMaterial); // QUESTION (2)
// Create the animations
for (var i = 0; i < geometry.animations.length; ++i) {
var animName = geometry.animations[ i ].name; // QUESTION (1)
scope.animations[ animName ] = new THREE.Animation(scope, geometry.animations[ i ]);
}
(...)
});
};
我有兩個問題:
(主)如何在3D對象(three.js所格式)已經與名動畫?在for循環中,
"geometry.animation[i].name"
是"walk", "idle" and "run"
。我用maya和blender(初學者級別)製作了動畫,但我不知道如何在同一個網格上導出多個動畫,以及如何命名它們。(更少)這是一個JavaScript語法問題。爲什麼
"var scope = this;"
?我試圖用"this"
代替"scope"
"THREE.SkinnedMesh.call(scope, geometry, originalMaterial);"
,但這使它不再有效。
感謝您閱讀我的問題!
PS:對不起,我的英語...
您的(較少)問題在SO中被多次回答。例如這裏:http://stackoverflow.com/questions/4886632/what-does-var-that-this-mean-in-javascript和在這裏:http://stackoverflow.com/questions/5355041/in-javascript-爲什麼使用-VAR - 這,這。你應該閱讀JavaScript的範圍。 –
@Bob Woodley謝謝你回答我。 – Koala1
而@邁克爾Zucchetta糾正我的英語:) – Koala1