gpt4 book ai didi

javascript - 具有多个动画的网格

转载 作者:行者123 更新时间:2023-12-02 16:36:54 29 4
gpt4 key购买 nike

我试图理解 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"和 "run"。我使用 Maya 和 Blender 制作了动画(初级水平),但我不知道如何在同一网格上导出多个动画,以及如何命名它们。

  • (少)这是 JavaScript 语法的问题。为什么“varscope = this;”?我尝试在 "THREE.SkinnedMesh.call(scope, Geometry, OriginalMaterial);" 中用 "this" 替换 "scope",但是这使得它不再起作用。

感谢您阅读我的问题!

PS:抱歉我的英语...

最佳答案

(主要)问题:当您使用 Blender 并创建动画时,它会自动为动画创建一个名称,您可以在 Action 编辑器上更改名称。现在可以为一个网格导出多个动画。在 JavaScript 代码中,您可以通过 id (geometry.animations[id]) 调用每个动画。

关于javascript - 具有多个动画的网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27858182/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com