你如何在 Aframe 中访问 gltf 的骨架

How do you access the skeleton of a gltf in Aframe

我有一个 gltf 文件,其中装有骨架,我想手动移动骨架的骨骼。这有多难做到实时

骨骼中的每个骨骼都是一个 THREE.Bone 实例,并且可以在 A-Frame 组件中被 JavaScript 访问:

const mesh = el.getObject3D('mesh');
const bone = mesh.getObjectByName('LeftUpperArm');
bone.rotation.y = Math.PI / 4;

骨骼的数量及其名称会因模型而异,因此您可能会发现 .traverse(...) 网格并打印其骨骼名称以供参考。

因此,简单地移动骨骼中的骨骼并不难,但您可能会发现以精确且看起来自然的方式移动骨骼很不方便 - 特别是对于人体骨骼。旋转将涉及相当多的数学知识,而该数学知识在很大程度上取决于您正在使用的特定骨架。一般来说,在 Blender 中制作此类动画或使用 IK 库(如 THREE.IK)可能更容易。