Создание связей между нодами Blender при помощи Python API

Обычно связь между двумя нодами в Blender создается простым перетаскиванием между нужными входными и выходными точками. Однако при необходимости соединять ноды можно и кодом в Blender Python API.

Все связи между нодами хранятся в структуре нодового дерева, как для шейдеров, так и для Geometry Nodes.

Shader Editor

Получить доступ к нодовому дереву материала можно через указатель на материал объекта.

Например, для активного меша:

Связи между нодами хранятся в коллекции links:

Создать новый линк между двумя нодами можно при помощи команды коллекции new().

В вызываемую команду нужно передать два параметра:

  1. указатель на выходной сокет первого нода – откуда будет идти линк
  2. указатель на входной сокет второго нода – куда линк будет приходить

Указатель на нод можно получить по его имени из коллекции nodes нодового дерева:

Указатель на нужный выходной сокет можно получить из коллекции outputs нода. Его моно получить по порядковому индексу, или по имени.

Указатель на входной сокет можно получить из коллекции inputs нода. Так же по номеру или по имени.

Имея указатели на входной и выходной сокеты двух нодов, можно создать линк между ними:

Geometry Nodes Editor

Для нодов геометрии принцип создания линков между нодами точно такой же, как и для материалов.

Доступ к нодовому дереву для Geometry Nodes осуществляется через модификатор.

Обратите внимание, что указатель на нодовое дерево в случае Geometry Nodes называется “node_group”.

В остальном все точно так же, как и для материалов.

Связи между нодами хранятся в коллекции links:

Линк между двумя нодами создается командой той же new(), в параметрах которой необходимо передать указатели на два сокета – выходной на первом ноде и входной на втором.

Указатель на нод мы получаем по имени из коллекции nodes нодового дерева:

Указатель на нужный выходной сокет мы получаем по индексу или по имени из коллекции outputs нода.

Указатель на входной сокет мы получаем из коллекции inputs нода, тоже по порядковому номеру или по имени.

Имея указатели на нужные сокеты – создадим линк между ними:

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии