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

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

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

Сообщение #1 Pavel » 24.04.2018, 11:28

Давайте вместе всем форумом создадим аддон. Я бы хотел бы и сам создать, но не знаю как. Разрабатывать его будем на github'e. Какой аддон? Вот описание:

В blender 2.49b была возможность посмотреть на сцену в виде схемы:
Спойлер
Изображение
В аддоне нужно реализовать аналогичную возможность.

Я создал первую версию:
https://github.com/PavelBlend/blender_schematic_scene_addon

Как им пользоваться:
после активации в окне Node Editor в режиме Scene Node Tree будут отображаться прямоугольники с именами объектов, мешей и сцен. Я их создал с помощью OpenGL, так как стандартные ноды слишком громоздкие.

Какие ограничения на данный момент:
нельзя ничего передвигать, нет линий, указывающих отношения, нельзя переназначить связи.

Какой планируется функционал:

- все прямоугольники располагаются более упорядочено (сейчас они выстраиваются в линию, а нужно в виде таблицы)

- отрисовывать линии связей

- возможность переназначить связи в Node Editor'e

- подсвечивать выделенные ноды и их связи

- возможность перемещать ноды

- отображать ноды всех данных

- скрыть ноды разных данных (меши, камеры, лампы, материалы)

Добавлено спустя 3 минуты 14 секунд:
Вот пример того, что есть на данный момент:
Спойлер
Изображение
Pavel M
Сообщения: 598

Сообщение #2 Юрий Небесный » 24.04.2018, 11:54

Я недавно затрагивал этот же вопрос. Мне как воздух нужен этот аддон.
Вот какой путь я прошел:
Старк нашел заготовку такого аддона: https://github.com/RayMairlot/Scene-Nodes
Я задал вопрос в телеграм-чате у профи
Спойлер
Друзья! Я хочу аддон "scene graph".
Что бы видеть и переназначать зависимости между сценами, объектами, data-данными и материалами при помощи нодовых связей.
Есть заготовка такого аддона, показывающая что такой аддон возможен: https://github.com/RayMairlot/Scene-Nodes
Есть обсуждение на форуме, что да, действительно всё это возможно.
Что нужно для создания такого аддона?
Кому-то заказать? Кто справится и за какие деньги?

История: в моих файлах бывает несколько сотен сцен и очень много связей между ними. Уже к 10-той сцене становится сложно контролировать это всё
Создатель аддона "Сверчек" ответил что попробует реализовать это в своем аддоне. Но ему нужно детальнее понять что требуется. Я нарисовал пример нодового дерева.

Изображение

Но так реакции не последовало. А т.к. он предлогал это на личной инциативе, то я тревожить его больше не стал.
Затем мне посоветовали обратиться к создателю аддона MiraTools. Я обратился к нему через форум на blenderartists.org, и он мне ответил что заняться этим не может. Посоветовал обратиться к двум людям.
Спойлер
1. https://vk.com/vladwin
2. https://blenderartists.org/forum/member.php?229469-Nutti
К первому я никак написать не смог, не нашел выхода на него.
А со вторым мне знания английского не позволят такое дело провернуть.

На этом моё движение заглохло.
Linux Mint KDE | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1515

Сообщение #3 Korchy » 24.04.2018, 11:56

Кажется уже была попытка создать аддон силами сообщества.
Korchy M
Аватара
Сообщения: 2155



Сообщение #4 Pavel » 24.04.2018, 12:08

Юрий Небесный писал(а):Есть обсуждение на форуме, что да, действительно всё это возможно.
я смотрел этот аддон. Но у меня возник вопрос: что будет, если объект будет находиться в двух сценах? Ноды ведь не позволяют воткнуть две связи в один сокет. Получается с помощью стандартной нодовой системы такое не реализовать.
Pavel M
Сообщения: 598

Сообщение #5 Юрий Небесный » 24.04.2018, 12:12

Pavel писал(а):что будет, если объект будет находиться в двух сценах?
это я и проилюстрировал. для меня это ключевой момент. должна быть нода "сцена", и в нее втыкаться ноды объектов, в них ноды дата-данных, в них материалы и аддоны. такая цепочка.
Linux Mint KDE | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1515

Сообщение #6 Pavel » 24.04.2018, 12:36

Обновил аддон. Теперь отображаются линии связей.

Добавлено спустя 3 часа 30 минут:
Блин, вот хочется что-нибудь написать, например этот аддон, но не знаю как. Не знаю, как заставить ноды перемещаться, как их в правильной позиции создавать и т. д. Что бы такого прочитать, чтобы после прочтения понимать как устроен API Blender'а и понимать как писать аддоны любого уровня сложности? Даже не знаю в каком направлении искать.
Pavel M
Сообщения: 598

Сообщение #7 Юрий Небесный » 24.04.2018, 16:12

Pavel, лучше за создание аддона заплатить специалисту. а самому оставаться в своей области специалистом. иначе ни там ни тут.
еще ожидается в 2.8 новый "граф зависимостей", что-то как раз из того, что нам нужно. Но пока это все не особо понятно ноды будут или не ноды, но почти наверняка написанный сейчас аддон перестанет работать в 2.8.
Linux Mint KDE | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1515

Сообщение #8 grayich » 24.04.2018, 17:14

Юрий Небесный, будет или не будет в 2.8 хз, не обламывай Павла :) у него есть тяга, пусть делает, даже если в итоге окажется не нужным.. опыт останется.
x64 Linux
grayich M
Аватара
Откуда: Харьков
Сообщения: 4429

Сообщение #9 stark » 24.04.2018, 17:22

Юрий Небесный писал(а):еще ожидается в 2.8 новый "граф зависимостей", что-то как раз из того, что нам нужно.
Я уже писал что граф зависимостей - это совсем иная вещь и он присутствует и в 2.79, в том числе и новый. Старый включен по умолчанию, а новый активируется запуском Blender со специальным ключом "--enable-new-depsgraph" вроде бы.

Но можете мне не верить, мне всё-равно :-P =-)
stark M
Сообщения: 1753


  • 3

Сообщение #10 Pavel » 24.04.2018, 20:58

Пофиксил некоторые ошибки. Вот как выглядит дерево связей:
Спойлер
Изображение
Как видно, поддерживается отображение для нескольких сцен. Объект Suzanne находится сразу в двух сценах.
Pavel M
Сообщения: 598

Сообщение #11 Юрий Небесный » 24.04.2018, 21:29

О! Уже прям ваще интересненько чето выходит. И ты не умеешь программит и таки штуки делаешь?

Добавлено спустя 4 минуты 36 секунд:
grayich писал(а):не обламывай Павла
и то правда
Linux Mint KDE | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1515

Сообщение #12 Pavel » 24.04.2018, 21:34

Юрий Небесный писал(а):И ты не умеешь программит и таки штуки делаешь?
я умею, но плохо. Точнее знаю базовую часть языка и модуль bpy немного знаю. У меня не много опыта. В основном делал импорты разных форматов 3д моделей. А такие аддоны практически не делал (это первый такого рода).
Pavel M
Сообщения: 598

Сообщение #13 Юрий Небесный » 24.04.2018, 21:35

stark писал(а):Я уже писал
помню, ага. даже запускал. но нифига не понял и осадочек остался :rofl:

Добавлено спустя 1 минуту 10 секунд:
Pavel писал(а):А такие аддоны практически не делал
Очень надеюсь тебе хоть кто-то будет помогать.
Здоровски что у тебя получилось ноду сцены сделать :beer:
Linux Mint KDE | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1515

  • 2

Сообщение #14 stark » 24.04.2018, 22:21

ОФФТОП
Юрий Небесный писал(а):помню, ага. даже запускал. но нифига не понял и осадочек остался :rofl:
Давай это осадок растворим ;)
Граф зависимостей - это механизм, отслеживающий зависимости между объектами, чтобы обновлять объекты сцены корректно при анимации и прочем изменении параметров.

Представь что у тебя есть "Объект A" с модификатором Boolean, а в модификаторе указан "Объект Б" как второй операнд. И вот ты подвинул "Объект Б". При этом очевидно должен измениться "Объект А", т.к. его вид зависит от модификатора Boolean, а результат модификатора зависит от положения "Объекта Б". Но как Blender узнает, что при перемещении "Объекта Б" надо пересчитать "Объект А"? Благодаря графу зависимостей!

Blender смотрит: ага среди зависимостей положения "Объекта Б", есть модификатор Boolean и его тоже надо пересчитать и сделать это именно после смены положения, а этот модификатор влияет на "Объект А" и потому обновится "Объект А". Как-то так.
stark M
Сообщения: 1753


  • 2

Сообщение #15 Pavel » 25.04.2018, 10:26

Сделал подсветку нодов. Теперь цепочка нодов активного объекта выглядят светлее, а связи перекрашены в жёлтый цвет.
Спойлер
Изображение

Добавлено спустя 1 час 44 минуты:
Реализовал поддержку отображения материалов:
Спойлер
Изображение
Pavel M
Сообщения: 598

  • 1

Сообщение #16 Юрий Небесный » 25.04.2018, 13:01

ОГОНЬ! Реально работает! 8-O

Добавлено спустя 10 минут 24 секунды:
Проверил на файле с кучей зависимостей и переплетений между сценами. 260 сцен. Все показало, ниче не крашнулось.


Изображение
Linux Mint KDE | Dell Inspiron 7000 | Wacom
Донат в Blender (+ аддоны): 37 €
Портфолио: https://freelance.ru/dez1gner | Дизайн в linux: http://vk.com/designlinux
Юрий Небесный M
Аватара
Сообщения: 1515

Сообщение #17 Pavel » 25.04.2018, 13:19

Юрий Небесный, а сильно тормозило?

И ещё всё пока в линию выстраивается, а я хочу сделать в виде таблицы. Но это скорее всего надо будет код переделывать сильно. Так как сейчас нереально разобраться когда такая каша из линий. И пока не знаю, как сделать это.

И ещё хотелось бы сделать выделение нодов прямо в Node Editor. Но тоже не знаю, как это сделать.

И я не рекомендую использовать данный аддон в реальных работах, так как он практически не тестировался (только на простых сценах).
Pavel M
Сообщения: 598

  • 2

Сообщение #18 Bibo » 25.04.2018, 14:08

Вообще писать OpenGL команды на Python, это удар в промежность производительности. Такое надо писать встроенными средствами. Но мыж здесь просто чтоб потыкаться?
Быть может тогда добавить линиям кривизны Безье, подобно обычным нодам
Спойлер
Изображение
Изображение
Сюда код копировать не стал, создал пулл реквест на гитхабе.

Добавлено спустя 13 минут 38 секунд:
Шото я создал реквест, потом удалил, потом снова создал... Надо бы GitHub лучше освоить.
Bibo
Аватара
Сообщения: 466

Сообщение #19 Pavel » 25.04.2018, 14:44

Bibo писал(а):Такое надо писать встроенными средствами.
А можно по подробнее? Это нужно стандартными нодами делать? Или как?

И как тебя записать в authors в bl_info? Писать твой ник на этом форуме или ник гитхаба?

Добавлено спустя 1 минуту 16 секунд:
И трудно ли было разобраться в моём коде?
Pavel M
Сообщения: 598

Сообщение #20 Юрий Небесный » 25.04.2018, 15:06

Pavel писал(а):а сильно тормозило
ну вообще нехило так тормозило. но работало!

Pavel писал(а):И ещё всё пока в линию выстраивается, а я хочу сделать в виде таблицы.
да, по умолчанию было бы здорово что бы упорядоченно строились. но совершенно точно нужна возможность самостоятельно распологать ноды на холсте. что бы зрительно группировать можно было.
что бы материалы стекол можно было в одной кучке, а материалы металлов рядом в другой кучке. и так со всеми. вобще экстаз будет

Добавлено спустя 1 минуту 2 секунды:
Pavel писал(а):И я не рекомендую использовать данный аддон в реальных работах
блин, а я уже. сорян :)

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

След.

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

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

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