Как прикрепить несколько узлов сетки к одному объекту в Blender? - PullRequest
1 голос
/ 26 марта 2019

Я пытаюсь импортировать 3d объекты из одной игры (IGI 2: Covert Strike) в блендер. Внутриигровые форматы имеют один общий буфер вершин, в котором хранятся все вершины из нескольких сеток. Также есть список структур, используемых для объявления сеток, диапазона используемых вершин (из общего буфера) и положения этой сетки относительно основного объекта.

Если я импортирую полный вершинный буфер в одну сетку, я вижу, что:

http://prntscr.com/n32e0v

Это человеческая модель. Голова здесь отдельная:)

http://prntscr.com/n32fcw

Ну, я хочу разделить сетки и прикрепить их к одному объекту. Но функция

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

принимает только одну сетку.

Есть ли другой способ добавить несколько узлов сетки к одному объекту?

Может быть возможно создать один объект на сетку и прикрепить его к одному основному объекту?

Но как позже добавить общий скелет ко всем этим объектам?

1 Ответ

0 голосов
/ 26 марта 2019

Во-первых, вы можете задать этот вопрос и в Blender SE , так как в нем много опыта, так что они могут дать больше возможных решений вашей проблемы.

В любом случае, я не думаю, что есть какой-то способ, чтобы один объект 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, см. Как создать новый объект с использованием Python в Blender 2.80? .

...