我尝试将一个游戏(IGI 2:隐蔽打击)中的3d对象导入搅拌器。 游戏内格式具有一个公共的顶点缓冲区,其中存储了来自多个网格的所有顶点。 还有用于声明网格的结构列表,使用的顶点范围(来自公共缓冲区)以及该网格相对于主要对象的位置。
如果将完整的顶点膨胀器导入一个网格中,我会看到:
这是一个人体模型。 头在这里indide:)
好吧,我想分离网格并将其附加到一个对象上。 但是功能
bpy.data.objects.new(name, mesh) #create object
仅接受一个网格。
还有其他方法可以将多个网格节点添加到一个对象吗?
可以为每个网格创建一个对象并将其附加到一个主要对象上吗?
但是后来如何为所有这些对象添加一个通用骨架?
答案 0 :(得分: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()
您将获得如下所示的层次结构:
注意:即将在2.8中对API进行一些更改,请参见How do I create a new object using Python in Blender 2.80?。