python - 如何将多个网格节点附加到 blender 中的一个对象?

标签 python numpy blender bpy

我尝试将一个游戏(IGI 2:Covert Strike)中的 3d 对象导入到 blender 中。 Ingame 格式有一个通用的顶点缓冲区,其中存储了来自多个网格的所有顶点。 还有用于声明网格的结构列表、使用的顶点范围(来自公共(public)缓冲区)以及此网格相对于主对象的位置。

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

http://prntscr.com/n32e0v

这是一个人体模型。 头在这里独立 :)

http://prntscr.com/n32fcw

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

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

只接受一个网格。

有没有其他方法可以将多个网格节点添加到一个对象?

是否可以为每个网格创建一个对象并将它们附加到一个主要对象?

但是以后如何为所有这些对象添加一个通用骨架呢?

最佳答案

首先,您可以考虑在 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

注意:2.8 中 API 即将发生一些变化,请参阅 How do I create a new object using Python in Blender 2.80? .

关于python - 如何将多个网格节点附加到 blender 中的一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55355275/

相关文章:

python - 散点大小和位置的问题

python - 使用 VSCode 在 python 中突出显示初始变量赋值

python - 捕获未写入 stdout、stderr 的控制台输出?

python - 如何使用 TensorFlow 连接两个具有不同形状的张量?

python - 计算矩阵元素的加权和的最快方法是什么?

javascript - XML3D:从 blender 导出动画

python - 从字节文件中查找拜耳模式格式

python - 如何使用 numpy(和 scipy)查找函数的所有零点?

webpack 和 glTF 文件

xcode - 如何在 SceneKit SWIFT 中添加对象