在搅拌机里骨头的顺序和Python的不同

2024-04-27 05:21:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我的modelexporter基本上可以工作,但是我在模型中添加了一个额外的骨骼,命名为骨骼“gun”,在我的脚本中,该骨骼的索引是5(连接到“stump”)。附加到该骨骼的顶点的索引为10。我在窗口中点击,曲线图编辑器显示枪骨是最后一个,第10个。下面是一张并排的照片: 顺序错误:
wrong order

如何在Python中获得正确的顺序?在


Tags: 模型脚本顺序错误编辑器命名照片顶点
1条回答
网友
1楼 · 发布于 2024-04-27 05:21:55

blender中的所有集合都是^{}类型。此集合的功能类似于字典和列表,允许通过索引或名称引用项。就像字典一样,你不能依赖条目按特定的顺序排列,不管是按名称还是按创建顺序。在

由于无法保证添加到集合中的新项目将获得最高的索引编号,因此每个导出都需要在导出时与索引保持一致,并且不要尝试重复使用以前导出的索引。在

您应该会发现,枚举骨骼列表将给出与内部使用的相同的索引号,您可以使用集合find()来获取骨骼的blenders内部索引号

for i, b in enumerate(rig.bones):
    print(i, rig.bones.find(b.name), b.name)


0 0 spine
1 1 spine.001
2 2 spine.003
3 3 spine.004
4 4 spine.005
5 5 spine.006
6 6 shoulder.L
7 7 upper_arm.L
...

骨骼移动在vertex group中指定权重且名称与骨骼匹配的顶点。因此名为“shoulder.L”的骨骼将移动已指定权重的顶点到名为“shoulder.L”的顶点组。展开this answer可以访问每个顶点组的权重。在

^{pr2}$

相关问题 更多 >