A 型框架:如何将对象附加到模型上的一个点(and/or 是骨骼)
A-frame: How to attach an object to a point on a model (and/or it's bones)
我想将一个对象*附加到特定的骨骼上,以便它与该骨骼一起移动(比如将帽子戴在角色的头上)。在 three.js 中,我可以做类似的事情:
mesh.skeleton.bones[someindex].add(mesh2)
在一帧中执行此操作的最佳方法是什么?
另一种方法可能是将对象作为模型上特定顶点的父对象,但我也不确定该怎么做。
*:"object",我想我的意思是 "entity with position and rotation" 在 A 框架中
据我所知,a-frame 只有一小部分 API 用于处理基于 Three.js
装载机构建的模型。 (+ Don McCurdy 的动画混音师)。
我在这里能想到的唯一 "A-Frame" 方法是创建和访问基础模型。拥有:
<a-entity gltf-model="url(model.gltf)" foo>
您可以创建一个将抓取模型的 a-frame 组件,并将新网格附加到骨骼:
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)">
创建帽子并尝试在每个渲染循环(在 tick()
函数中)使用 setAttribute()
定位和旋转它,我想不出有什么主要好处。
我想将一个对象*附加到特定的骨骼上,以便它与该骨骼一起移动(比如将帽子戴在角色的头上)。在 three.js 中,我可以做类似的事情:
mesh.skeleton.bones[someindex].add(mesh2)
在一帧中执行此操作的最佳方法是什么?
另一种方法可能是将对象作为模型上特定顶点的父对象,但我也不确定该怎么做。
*:"object",我想我的意思是 "entity with position and rotation" 在 A 框架中
据我所知,a-frame 只有一小部分 API 用于处理基于 Three.js
装载机构建的模型。 (+ Don McCurdy 的动画混音师)。
我在这里能想到的唯一 "A-Frame" 方法是创建和访问基础模型。拥有:
<a-entity gltf-model="url(model.gltf)" foo>
您可以创建一个将抓取模型的 a-frame 组件,并将新网格附加到骨骼:
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)">
创建帽子并尝试在每个渲染循环(在 tick()
函数中)使用 setAttribute()
定位和旋转它,我想不出有什么主要好处。