从fbx模型构建骨架
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从fbx模型构建骨架相关的知识,希望对你有一定的参考价值。
我试图从blender导出一个电枢作为FBX文件,然后使用FBXLoader加载一个骨架。然后,我想将它与皮肤网格角色合并。我的目标是拥有不同的模型和不同的姿势,并且能够在它们之间进行混合和匹配。
我试图在这里创建一个codepen:https://codepen.io/michael-tipton/pen/mGvvQr?editors=0011 1但是fbxloader没有从dropbox中提取文件。不确定如何继续前进。
我从FBX文件创建骨骼的主要功能如下:
function createBones( root , array ) {
if(root === null && root === undefined ) {
return;
} else {
let bone = new THREE.Bone();
bone.position.set( root.position.x, root.position.y, root.position.z );
bone.name = root.name;
bone.setRotationFromQuaternion( root.quaternion );
bone.scale.set( root.scale.x, root.scale.y, root.scale.z );
if(root.parent !== null && root.parent !== undefined ) {
bone.parent = root.parent;
}
array.push(bone);
for(let i = 0, count = root.children.length; i < count; i++) {
createBones(root.children[i], array);
}
return;
}
}
我很难搞清楚如何进行故障排除。我试图使用skeletonhelper,但是电枢是如此扭曲并且与模型不同(也非常小),它让我知道发生了什么并不是特别有用。
我不确定电枢是否未正确加载,或者我是否正确地重新创建骨架,或者是否是其他东西。当我尝试对衔铁进行某种运动时,蒙皮梅什根本没有移动。
有没有人有解决这些类型问题的经验,或者有任何想法如何深入了解正在发生的事情?谢谢和100万业力信用你读这个!
首先我注意到我在控制台中充斥着消息,所以我评论了来自animate的console.log:
var animate = function() {
const v = Date.now() / 2000
var hips = scene.getObjectByName("hips");
if (hips) {
hips.position.x = Math.sin(v) * 10
hips.position.z = Math.cos(v) * 10
}
//console.log(hips);
}
那是我注意到CORS问题所以在本地下载文件的时候。
然后我得到一个关于丢失的库(inflate.min.js
)下载并添加到项目中的错误。
这是你的“为我工作”的代码,没有更多的控制台错误: https://raw.githack.com/heldersepu/hs-scripts/html/HTML/bones/bones.html
以上是关于从fbx模型构建骨架的主要内容,如果未能解决你的问题,请参考以下文章