如何在Blender中将多个网格节点附加到一个对象上?

3

我想从一个游戏(IGI 2: Covert Strike)中导入3D对象到Blender中。游戏格式有一个通用的顶点缓存,其中存储了多个网格中的所有顶点。此外,还有一个结构体列表,用于声明网格,所使用的顶点范围(来自通用缓存),以及该网格相对于主对象的位置。

如果我将完整的顶点缓存导入到一个网格中,我会看到:

http://prntscr.com/n32e0v

这是一个人物模型。头在里面 :)

http://prntscr.com/n32fcw

好吧,我想分离网格并将它们附加到一个对象上。但是该功能

bpy.data.objects.new(name, mesh) #create object

只接受一个网格。

是否有其他方法将多个网格节点添加到一个对象中?

也许可以为每个网格创建一个对象,然后将它们附加到一个主对象上?

但是如何在以后将共同的骨架添加到所有这些对象中呢?


我在这里没有看到任何与numpy有关的内容,请不要垃圾邮件非相关标签。 - user2699
1个回答

0
首先,您可以考虑在Blender SE中提出这个问题,因为那里有很多关于Blender的专业知识,他们可能能够给出更多可能的解决方案来解决您的问题。
无论如何,我认为没有办法让一个Blender对象容纳多个网格。但是,您可以将多个对象分组到一个父对象下面,就像这样(Blender 2.79b):
import bpy

# Make parent (empty object)
parent_object = bpy.data.objects.new('parent_object', None)
bpy.context.scene.objects.link(parent_object)
# Make multiple children
for i in range(4):
    # Make child object (mesh object)
    mesh_data = bpy.data.meshes.new('mesh_data_' + str(i + 1))
    mesh_object = bpy.data.objects.new('mesh_object_' + str(i + 1), mesh_data)
    # Set the parent
    mesh_object.parent = parent_object
    bpy.context.scene.objects.link(mesh_object)
bpy.context.scene.update()

你会得到这样一个层次结构:

Object hierarchy

注意:API 在 2.8 中将有一些即将到来的更改,请参见 如何在 Blender 2.80 中使用 Python 创建新对象?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接