Модификатор Lattice используется для упрощения процесса деформации высокополигональных мешей при помощи несложных каркасных объектов с небольшим числом точек. Каркас накладывается на меш и связывается с ним, после чего манипулируя точками каркаса можно деформировать сам меш. Для получения координат точек каркаса через Blender Python API, нужно обратиться к свойству каркаса “points”.
Для примера добавим в сцену сферу (shift + a – Mesh – UV Sphere).
Добавим каркасный объект (shift + a – Lattice) и немного увеличим его размеры так, чтобы он охватывал всю сферу.
Назначим для сферы модификатор Lattice. В поле Object модификатора выберем добавленный ранее каркасный объект.
Теперь мы можем получить ссылку на каркасный объект из объекта UV Sphere – текущего активного объекта.
1 2 3 4 |
lattice = bpy.context.object.modifiers[0].object print(lattice) # bpy.data.objects['Lattice'] |
Список контрольных точек каркасного объекта Lattice можно получить через его свойство points.
1 2 3 |
bpy.context.object.modifiers[0].object.data.points[:] # [bpy.data.lattices['Lattice'].points[0], bpy.data.lattices['Lattice'].points[1], ...] |
Пройдя по списку точек объекта Lattice можно получить список их координат:
1 2 3 |
[p.co for p in bpy.context.object.modifiers[0].object.data.points] # [Vector((-0.5, -0.5, -0.5)), Vector((0.5, -0.5, -0.5)), ...] |