A帧:如何将对象附加到模型上的点(和/或它的骨骼)

时间:2018-05-23 15:51:10

标签: aframe

我想将一个物体*附加到一个特定的骨头上,所以它会随着那个骨骼一起移动(想想把一个帽子放在一个角色的头上,比如说)。在three.js中,我可以做类似的事情:

mesh.skeleton.bones[someindex].add(mesh2)

在框架中执行此操作的最佳方式是什么?

替代方案可能是将对象父项提供给模型上的特定顶点,但我也不确定如何做到这一点。

*:" object",我认为我的意思是"具有位置和轮换的实体"用A帧术语

1 个答案:

答案 0 :(得分:1)

据我所知,a-frame只有一个小API,可用于在Three.js加载器上构建模型。 (+ Don McCurdys动画混音器)。

唯一的" A-Frame"触摸我可以想到这里正在创建,并访问基本模型。具有:

<a-entity gltf-model="url(model.gltf)" foo>

您可以创建一个抓取模型的框架组件,并将新网格附加到骨骼上:

AFRAME.registerComponent("foo", {
  init:function() {
    let mesh = this.el.getObject3D("mesh")
    // or this.el.components["gltf-model"].model
    let mesh2; // get create the model using any THREE loader
    mesh.skeleton.bones[someindex].add(mesh2)
  }
})

<小时/> 如果您通过<a-element gltf-model="url(hat.gltf)">创建帽子并尝试在每个渲染循环(setAttribute()函数)中使用tick()进行定位和旋转,我无法想到任何重大好处。