我正在为我的自定义OBJ变量编写一个Blender导出脚本。我有一个系统,其中我导出顶点颜色的方式非常类似于法线和UV。我突然想到,同样的系统也可以用于导出装备的骨骼ID和权重,只需将所有权重乘以0.5,这样它们就永远不会是1。
在我编写了一个BVH文件解析器之后,将骨骼动画添加到我的渲染引擎将变得非常简单。
#New line type:
#Red:
vc 1 0 0
#Green
vc 0 1 0
#Extension to f lines:
f v/vt/vn/vc
f v//vn/vc
f v/vt//vc
f v///vc
#Proposal
vc BoneID1 + (BoneWeight1*0.5) BoneID2 + (BoneWeight2*0.5) BoneID3 + (BoneWeight3*0.5)
#This vertex is 80% weighted by bone 2 and 20% weighted by bone 1
vc 1.1 2.4 0.0
下面是我如何导出vc行(上下文:从默认的Blender OBJ Exporter修改,export_对象,此处提供完整文件:https://github.com/gordonfreeman424/GeklminRender_OBJ_Exporter/blob/master/export_obj.py)
^{pr2}$但是,当我看着dir(bpy.data.meshes['object_name'])我找不到任何与顶点组有关的内容。
在哪里可以找到顶点组列表?在哪里可以找到权重?我需要能把它分解成ID和重量。如果我能得到一个顶点组的列表和相应的权重,那么一切都会好的。
我做了一些研究,似乎顶点组的信息可能在其他地方bpy.数据等级制度。考虑到搅拌机已经在一定程度上改变了bpy.data.meshes[]我在脚本中使用的网格,这可能会使它更加困难。
我希望bpy.data.meshes[]提供每个顶点的顶点组权重信息的网格。
(我已经显示代码)
我希望最终生成的文件如下所示:
#GKBONE "Head" 1
#GKBONE "My Leg" 2
#GKBONE "Foot" 3
#[...]
vc 1.1 2.3 3.1
vc 1.5 0.0 0.0
vc 0.0 1.5 0.0
#[...]
f 1/2/5/1 2/3/1/2 8/9/7/3
我在Debian上使用Blender2.79来测试一切。搅拌机2.79是我的目标。我最终将在Windows上进行测试,但我希望脚本在那之前完成。
谢谢。
目前没有回答
相关问题 更多 >
编程相关推荐