我正在为Blender编写一个导出器,我遇到了一个小问题 - 当我多次导出相同的模型时,导出的网格总是被分配一个不同的名称(添加数字前缀)。
这是我用来访问我想要导出的网格的代码:
for ob in bpy.scene.objects:
# get derived objects
free, derived = create_derived_objects(scene, ob)
if derived is None:
continue
for obDerived, mat in derived:
if ob.type not in {'MESH', 'CURVE', 'SURFACE', 'FONT', 'META'}:
continue
try:
derivedBlenderMesh = obDerived.to_mesh( scene, True, 'PREVIEW' )
except:
derivedBlenderMesh = None
if derivedBlenderMesh:
# ... and the export stuff goes here
# once everything's done, I remove the created instance
if free:
free_derived_objects(derivedBlenderMesh)
我从3ds导出器中取出来说实话。
我注意到它创建了一个新的(派生的)对象,然后创建了一个新的网格(转换后的所有内容),所以我想这些是分配新名称的潜在位置。
我浏览了文档,但除了通过 to_mesh 方法之外,我没有发现Object和Mesh实例之间没有明确的关系,这显然会创建一个新的网格实例。
然而 - 我真的需要得到原来的名字。有人能告诉我如何访问它吗?
提前致谢:) 帕克萨斯
答案 0 :(得分:0)
好的 - 我去了id(有点)。我基本上忽略了网格名称,并在嵌入的对象之后命名导出的网格。
这当然是在一个假设下工作的,即每个对象都有一个专门的网格,但是我在导出之前复制它们,所以情况确实如此。
如果有人有更好的解决方案,请在此处发布。