Помогите создать аддон

Список разделов Blender 3D Плагины

Описание: Обсуждение расширений для Blender
Модератор: exooman

Сообщение #21 Bibo » 25.04.2018, 15:45

Pavel писал(а):А можно по подробнее? Это нужно стандартными нодами делать? Или как?
А никак. Стандартные ноды не подходят для этих целей. Стандартные ноды, это плавающее UI. Эти элементы - часть исходного кода ядра и мы не можем свободно их видоизменять. К сожалению, Blender не предоставляет вообще никаких возможностей в создании произвольных форм.
Так что вот остается делать как есть, выбора-то нет.

Основная проблема в оптимизации - отсутствие событий. Например, как нам отследить момент изменения имени объекта, чтобы мы изменили имя соответствующего нода в схеме? А как отловить момент удаления/добавления материала объекту, чтобы добавить/удалить соответствующий нод? Или просто добавление объекта в сцену?
События в Blender не предусмотрены, поэтому нам приходится пересчитывать и перепроверять вообще ВСЁ в каждый рисуемый кадр. Вот и улетает производительность в, казалось бы, плёвых ситуациях.

Pavel писал(а):И как тебя записать в authors в bl_info? Писать твой ник на этом форуме или ник гитхаба?
А подкинь монетку. Выпадет решка, как на форуме, орёл - как на гитхабе.

Pavel писал(а):И трудно ли было разобраться в моём коде?
Не трудно, но функцию "draw_scene_nodes" пережевать уже не легко.
Bibo
Аватара
Сообщения: 469

Сообщение #22 Levitanus » 25.04.2018, 19:02

Bibo писал(а):перепроверять вообще ВСЁ в каждый рисуемый кадр
зачем? сделать кнопку refresh)
Нормальным нодам этого не приохдится делать, потому что они уникальны для объекта, прально? Значит, либо использовать тот же подход, либо кнопка refresh)
пишу музыку, примеры тут
Levitanus M
Аватара
Откуда: Новосибирск
Сообщения: 863



Сообщение #23 Bibo » 25.04.2018, 19:57

Levitanus, можно, но когда на эту кнопку Refresh нажимать?
В отличие от обычных нодов, схема должна вносить изменения в данные сцены, путем перетаскивания нодов. Как быть, если пользователь удалил объект и после этого пытается произвести манипуляции с этим объектом через ноды, не обновив состояние нодов вручную? Ведь ноды не в курсе, что объект был удален.
Bibo
Аватара
Сообщения: 469

Сообщение #24 Levitanus » 25.04.2018, 20:19

Bibo писал(а):Ведь ноды не в курсе, что объект был удален.
это-то как раз легко, потому что просто нужно перехватить исключение и обновить ноды)
пишу музыку, примеры тут
Levitanus M
Аватара
Откуда: Новосибирск
Сообщения: 863



Сообщение #25 Bibo » 25.04.2018, 20:32

Levitanus писал(а):это-то как раз легко, потому что просто нужно перехватить исключение и обновить ноды)
То есть, попытка произвести операцию будет регулярно прерываться из-за обработки исключений, после чего пользователь будет вынужден повторить операцию. Это действительно удобно?
Появляется еще одни вопрос. Хорошо, мы отловили исключение и обновили сцену. Но в таком случае мы вынуждены обновить всю схему, а не отдельные ее части, ведь кто знает, какие еще изменения пользователь внес. Выходит, пользователь будет ловить смачные такие фризы после отлова исключения, прежде чем сможет продолжить работу, в крупных сценах, разумеется.
Bibo
Аватара
Сообщения: 469

Сообщение #26 Levitanus » 25.04.2018, 20:37

Bibo писал(а):Выходит, пользователь будет ловить смачные такие фризы после отлова исключения, прежде чем сможет продолжить работу, в крупных сценах, разумеется.
ну я предложил оптимизацию с повторения одной операции перманентно, до повторения ее в случае ошибки обращения к удаленному объекту, по-моему уже неплохо)

А потом, кое-какие операции бледера, в т.ч. и с нодами, так и делают, кажись. При включенном рендере маты мне крутить, допустим - оч некомфортно)

Добавлено спустя 1 минуту 39 секунд:
Потом можно будет подумать о collapsed view, когда мы видим атрибуты только в развернутом виде, а до этого момента просто ихне трогаем при построении графа
пишу музыку, примеры тут
Levitanus M
Аватара
Откуда: Новосибирск
Сообщения: 863



  • 3

Сообщение #27 Pavel » 25.04.2018, 20:47

Сделал, чтобы ноды выстраивались в таблицу:
Спойлер
Изображение
Правда теперь нужно код почистить от лишних операций.
Pavel M
Сообщения: 624

Сообщение #28 Юрий Небесный » 26.04.2018, 06:42

Pavel писал(а):Сделал, чтобы ноды выстраивались в таблицу:
АА! Вот это улёт! :beer: :beer: :beer:
Уже прям работать с этим можно. Выделяешь объект и по подсвеченным связям смотришь как он "живёт" в файле.
Изображение

Что дальше в планах? Есть мысли как ноды можно руками перемещать?
Elementari OS | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1551

Сообщение #29 Pavel » 26.04.2018, 13:32

Юрий Небесный писал(а):Есть мысли как ноды можно руками перемещать?
нету. Не знаю, смогу ли это реализовать. Но хотелось бы.

Юрий Небесный писал(а):Что дальше в планах?
я хотел сделать выделение нодов прямо в окне Node Editor. Например, чтобы можно было выделять меши, и смотреть к каким объектам они привязаны. Но пока не знаю как это сделать.
Pavel M
Сообщения: 624

Сообщение #30 Bibo » 26.04.2018, 15:42

Я оказывается не ту переменную использовал, для построения кривых. Но ты уже исправил.

А есть вообще какие-то другие аддоны с кастомными нодами? Так например, было бы круто организовать работу с игровой логикой.
Bibo
Аватара
Сообщения: 469

Сообщение #31 Pavel » 26.04.2018, 17:34

Bibo писал(а):Так например, было бы круто организовать работу с игровой логикой.
вроде есть готовый аддон, но я его не устанавливал и не смотрел:
https://blenderartists.org/forum/showthread.php?388143-WIP-Blender-Plugin-BGE-Logic-nodes-Alpha

Bibo писал(а):А есть вообще какие-то другие аддоны с кастомными нодами?
Animaton Nodes, Sverchok.

Bibo писал(а):Я оказывается не ту переменную использовал, для построения кривых. Но ты уже исправил
была вроде правильная. Это я поменял алгоритм построения нодов (когда делал в виде таблицы и забыл про эту переменную).

Bibo, а ты не знаешь, как можно сделать перетаскивание нодов в окне Node Editor?
Pavel M
Сообщения: 624

Сообщение #32 Kaiwas » 26.04.2018, 17:43

Bibo писал(а):А есть вообще какие-то другие аддоны с кастомными нодами?
blend4web, animation node, armory 3d, sverchok
Проектирую
Kaiwas M
Аватара
Откуда: Россия, г.Липецк
Сообщения: 2478

Сообщение #33 Bibo » 26.04.2018, 18:32

Pavel писал(а):Bibo, а ты не знаешь, как можно сделать перетаскивание нодов в окне Node Editor?
Неа. Знаю что само перемещение делается модальным оператором (шаблон есть в текстовом редакторе блендера), но этот оператор еще нужно запустить. А вот как отследить клик по холсту, это вопрос.
Bibo
Аватара
Сообщения: 469

  • 1

Сообщение #34 Pavel » 26.04.2018, 20:04

Обновил аддон. Теперь можно выделять ноды прямо в окне Node Editor (ПКМ).

НО!

1) Есть баги (это скорее из-за того, что я использовал глобальные переменные). Чтобы не было багов, лучше перезапускать блендер, прежде чем открыть новую сцену (чтобы глобальные переменные вернулись к значениям по-умолчанию).

2) Если хотите выделить ноду в окне Node Editor, то снимите выделение с активного объекта в 3д окне. Иначе будут выделены сразу две ноды.

Вот на скриншоте видно, что выделена нода материала и показаны взя связи этого материала. Можно выбирать любую ноду:
Спойлер
Изображение

Добавлено спустя 33 минуты 32 секунды:
Ещё обновил аддон. Багов стало меньше, но ещё остались.
Pavel M
Сообщения: 624

  • 1

Сообщение #35 Юрий Небесный » 26.04.2018, 20:57

Круто! Выделять ноду и смотреть свзяь куда что идет удобнее чем объет. Уже прям наглядная карта становится.
Я вот такую багу увидел - когда дерево большое и требуется пользоваться масштабом окна нодов, сбрасывается выделение
Elementari OS | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1551

  • 1

Сообщение #36 Pavel » 26.04.2018, 21:01

Юрий Небесный, я ещё обновил аддон, но теперь выделять нужно ЛКМ, так как я не знаю как исправить баг с ПКМ. Может в последней версии нету этого бага.
Pavel M
Сообщения: 624

  • 1

Сообщение #37 Юрий Небесный » 26.04.2018, 21:14

Pavel писал(а):я ещё обновил аддон, но теперь выделять нужно ЛКМ
теперь стало удобней выделять. но выделение само спадает через секунду. я не успеваю понять сбрасывается ли масштабировании :)
Elementari OS | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1551

  • 1

Сообщение #38 Pavel » 26.04.2018, 21:19

Юрий Небесный писал(а):я не успеваю понять сбрасывается ли масштабировании
кажется нашёл ошибку и исправил. Теперь не сбрасывается при масштабировании.

Юрий Небесный писал(а):теперь стало удобней выделять
я изначально хотел на ПКМ. Мне и правой было удобно выделять. Так как по-молчанию везде выделение на правую кнопку.
Pavel M
Сообщения: 624

  • 1

Сообщение #39 Юрий Небесный » 26.04.2018, 21:26

Pavel писал(а):кажется нашёл ошибку и исправил. Теперь не сбрасывается при масштабировании.
Да, теперь все четко!
Масштабируется, выделяется. ай красота!
И работает с материалами Люксрендера :beer:

Добавлено спустя 3 минуты 59 секунд:
А, вот я переключился в окно 3Д просмотра сцены, и там выделение у объектов стало сбрасываться

Добавлено спустя 36 секунд:
А вообще круто конечно, я сразу несколько паразитов отловил. Сидят се, пачкают сценки мои

Добавлено спустя 57 секунд:
Ага, если выключить схематичный вид сцены (кнопкой) то выделение в 3Д начинает работать
Elementari OS | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1551

  • 4

Сообщение #40 Pavel » 27.04.2018, 22:15

Юрий Небесный писал(а):А, вот я переключился в окно 3Д просмотра сцены, и там выделение у объектов стало сбрасываться
обновил аддон. Теперь выделение не должно слетать.

Что добавлено:

в T панели редактора нодов есть вкладка Schematic Scene с двумя параметрами:

1) Галочка 3D view select. Если включена, то ноды можно будет выделять только посредством окна 3д вида. Иначе только в окне Node Editor (ПКМ).

2) Tree Width - ширина всего дерева нодов.

Спойлер
Изображение
Pavel M
Сообщения: 624

Пред.След.

Вернуться в Плагины

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость