为啥网格在编辑模式下没有跟随骨架,如何获得骨架变形的网格上的点坐标?

Posted

技术标签:

【中文标题】为啥网格在编辑模式下没有跟随骨架,如何获得骨架变形的网格上的点坐标?【英文标题】:Why the mesh didn't follow the armature in the edit mode, how to get the coordinates of points on a mesh that defomred by armature?为什么网格在编辑模式下没有跟随骨架,如何获得骨架变形的网格上的点坐标? 【发布时间】:2019-01-05 16:09:23 【问题描述】:

我想通过骨架随机变形一个对象并获取该对象上的点坐标,但是在旋转骨架中的骨骼后,我只得到了每个点的原点坐标。

我试过了:

obj = bpy.data.objects['horse']
mesh = obj.data
for v in mesh.vertices:
    print(v.co)

也试过了:

obj = bpy.data.objects['horse']
bpy.ops.object.mode_set(mode='EDIT')
bm = bmesh.from_edit_mesh(obj.data)
for v in bm.verts:
    print(v.co)

但是,两个代码都获得了点的原点坐标。有谁知道如何获得跟随电枢的网格中点的坐标?

【问题讨论】:

我在编辑模式下找到了一个叫做显示修饰符的按钮,但它只是改变显示,当我想获取点的坐标时,我还是得到了原点坐标。 【参考方案1】:

我想你想使用obj.to_mesh(),如this answer所示。

还有 bmesh.from_object(deform=True) 如果使用 bmesh 更适合你想做的事情。

【讨论】:

以上是关于为啥网格在编辑模式下没有跟随骨架,如何获得骨架变形的网格上的点坐标?的主要内容,如果未能解决你的问题,请参考以下文章

平行拟合和旋转两个 3D 网格节点

如何使用骨架网格垂直对齐图像旁边的文本

如何修复对象具有未应用的转换。这对于带有骨架的网格永远不起作用。出口取消

骨架 CSS 类网格

abaqus如何输出计算变形后的网格单元体积?

骨架网格系统:使容器 100%