А вы знаете, что для нодов Reroute в Blender Geometry Nodes можно задавать собственные текстовые заголовки? Так как ноды Reroute чаще всего используются для упрощения и улучшения читаемости нодовых деревьев в Geometry Nodes, помечать такие ноды заголовком с короткой информационной надписью может оказаться очень удобным – не нужно будет запоминать или каждый раз прокручивать дерево нод, чтобы узнать, откуда на данный Rerout идет линк.
Добавить текстовый заголовок ноду Reroute в ручном режиме очень просто – нужно в свойствах нода ввести в поле Label нужный текст. Введенный текст будет отображаться над нодом Reroute в нодовом дереве.
Можно добавить еще больше удобства и при помощи несложного скрипта разом добавить на все ноды Reroute текстовую надпись, которая будет информировать с какого выхода и с какого нода в этот Reroute приходит линк.
Для начала получим указатель на модификатор Geometry Nodes текущего активного объекта.
1 |
gn = bpy.context.object.modifiers['GeometryNodes'] |
Теперь получить список всех нодов Reroute мы можем через нодовое дерево модификатора по их типу.
1 |
rerouters = [node for node in gn.node_group.nodes if node.type == 'REROUTE'] |
Просмотреть текущие заголовки можно через свойство нода label.
1 2 3 4 5 6 |
for reroute in rerouters: print(reroute.label) # label_1 # Hello World! ... |
Устанавливать для заголовков нужные значения мы так же можем через свойство label.
Чтобы получить имя нода и имя выхода с которых в нод Reroute приходит линк, используем свойство links нодового дерева Geometry Nodes, в котором хранится список всех линков. В свойствах каждого линка есть указатель на нод и его вход/выход к которому подсоединяется данный линк.
Отфильтруем только те линки, в которых конечным нодом является нод Reroute.
1 2 |
links_to_retoute = [link for link in gn.node_group.links if link.to_node.type == 'REROUTE'] |
Пройдем в цикле по полученному списку линков. Для каждого конечного нода Reroute установим значение свойства label равное “имя – выход”, взятое от начального нода линка.
1 2 |
for link in links_to_retoute: link.to_node.label = link.from_node.name + ' - ' + link.from_socket.name |
Теперь все ноды Reroute обозначены заголовком, по которому сразу виден нод и его выход, которые служат источником данных для данного нода.