Рубрика развивается при поддержке
Gamedev
Andrey Apanasik
3503

Третья экспериментальная версия Visual Scripting в Unity

Одной из самых востребованных функций в Unity, помимо тёмной темы в бесплатной версии (¬‿¬ ), является Visual Scripting, похожий на Blueprint в Unreal Engine. Разработчики из Unity работали над экспериментальной версией Unity Visual Script и недавно выпустили 3-ю экспериментальную версии вместе с демкой. Не забывайте, что инструмент на стадии разработки, в проде лучше не использовать, да и документацию пока не завезли.

В закладки
Аудио

Так же не стоит забывать, что работать будет только в DOTS проектах, с MonoBehaviour кодом не совместимо. Для пробы нужно версия Unity минимум 2019.3.0a11. Подробнее про это решение можно почитать в треде про 2 версию.

В этом конкретном случае мы поняли, что существует довольно много зрелых решений, которые большая часть сообщества успешно использует для визуального программирования. Мы посчитали, что решение поверх MonoBehaviours с точки зрения визуальных сценариев, было бы не особо лучше решений из нашего магазине ассетов.

Joachim Ante

С другой стороны, мы увидели возможность сфокусировать VisualScripting на DOTS. Это позволит художникам и дизайнерам уровней писать невероятно эффективный многопоточный игровой код, просто выражая реализуя свои идеи, а код будет генерироваться с учётом всех плюшек DOTS. Ориентированная на данные природа DOTS открывает много новых возможностей для визуальных сценариев и взаимодействия с другими основанными на коде системами.

Joachim Ante

Демку можно скачать тут.

Фичи

Редактор компонентов/событий

Это окно позволит вам создавать и редактировать компоненты и события.

Отключение графов и узлов

Вы можете выбрать определенные разделы графика и отключить их, используя меню по правой кнопке мыши. Выключенный код не будет выполнен или скомпилирован. Вы также можете отключить весь этот граф с помощью инспектора на графе, там вы должны увидеть опции state. Для открытия этого инспектора просто дважды щёлкните на холсте выбранного графика.

Панель описания в поисковике

Будет показан выбранный узел на этой панели, прежде чем добавить его на свой холст.

Обнаружение неиспользуемых узлов и стилизация

Используя меню cog на графе, вы можете включить/отключить эту функцию. Это поможет вам увидеть, какие узлы не используются и не генерируют никакого кода.

Дебаг логи

Были перегруппированы все логи вместе, чтобы сформировать 1 большой узел. Вы можете просто переключить тип сообщения, которое хотите отправить, используя выпадающее меню.

Было поправлено куча багов:

  • VSB-233 For All Entities variables does not exist in the current context
  • VSB-232 Empty criteria create compilation error
  • VSB-231 Equals node return multiple bools instead of only one
  • VSB-230 Deleting a macro asset will break all graphs that are using it
  • VSB-214 Set Time Scale ‘Time’ does not contain a definition for ‘time Scale’
  • VSB-211 Multiple Errors when creating nodes
  • VSB-208 Missing a refresh after deleting sticky note
  • VSB-207 Color Constant Node is getting alpha to black
  • VSB-203 Hover on «For each» nodes in searcher will create it
  • VSB-201 Moving component fields in cs file break nodes port connection order
  • VSB-200 Get Component Node not displaying its type list
  • VSB-196 Cannot create node that takes a pointer as parameter
  • VSB-193 Can’t find Color Constant node
  • VSB-192 Renaming a graph don’t rename it’s cs script
  • VSB-190 Can’t rename custom function
  • VSB-188 Copy paste a macro will put it in a stack
  • VSB-187 Styling of the searcher is broken
  • VSB-186 Naming in blackboard, breadcrumb doesn’t follow selected graph
  • VSB-185 «local to world» criteria cannot be selected
  • VSB-184 Criteria section in function collapse in each refresh
  • VSB-180 Functions don’t show return type
  • VSB-179 “Rotate by” node deform object when two axis are selected
  • VSB-178 Variable from events send error ‘graphData’ does not exist in the current context
  • VSB-177 Node duplication break when going in play mode
  • VSB-175 Creating a «Get input» breaks the visual scripting editor
  • VSB-165 Renaming a graph isn’t showing up in toolbar when docked
  • VSB-164 «Float 4» UI in criteria is broken
  • VSB-35 Can’t add Macro input and output ports in the blackboard

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Andrey Apanasik", "author_type": "self", "tags": ["visualscripting","unity3d","unity","dots"], "comments": 24, "likes": 45, "favorites": 70, "is_advertisement": false, "subsite_label": "gamedev", "id": 64557, "is_wide": false, "is_ugc": true, "date": "Sun, 18 Aug 2019 12:56:15 +0300", "is_special": false }
0
{ "id": 64557, "author_id": 1922, "diff_limit": 1000, "urls": {"diff":"\/comments\/64557\/get","add":"\/comments\/64557\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/64557"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }
24 комментария
Популярные
По порядку
Написать комментарий...
13

Обожаю, когда картинки кликабельны, но размер и разрешение не увеличиваются)

Ответить
3

Пикчи оригинальные брал, самому в норм качестве нет возможности сейчас сделать =/

Ответить
7

Да я так, просто до*баться)

Ответить
4

Ох, все это от лукавого. Очень тонка грань, переступив которую можно наклепать нечитаемых недебагаемых паутин. Лучше код нормально учить

Ответить
1

Так то да, но вот фишка именно Юнитечного FG в том что он по UX не "спаггети" в горизонталь.
А вертикальный, как обычный код. Т.е за счет иной компановки и структуры нодов есть вероятность что он будет более легче читаться.

Ответить
1

Лучше, также как и рисовать лучше сразу как Микеланджело, а не как я, но не все могут :).
Мне кажется, это хорошая штука, для простых вещей. Во всяких игровых движках всегда были свои какие-то скриптовые движки, чтобы левел-дизайнеры могли наскриптовать уровней, без особых знаний в программировании. Помню, когда был малой, используя "флажки" и задержки по времени, в старкрафте симулировал как компьютер отправляет юнитов в нападение в течение 30 минут, потому что не смог найти как настроить ИИ.

Ответить
1

Лучше код нормально учить

Так можно и не уйти никогда от текстового программирования, остановить прогресс.

Ответить
0

Ну лишним то точно не будет, для тех же лвл-дизайнеров, и как минимум новичку будет легче изучать "юнитечное" программирования.

Ответить
1

да и документацию пока не завезли.

Очень... полезно.

Ответить
2

Так это экспериментальная штука, в прод не советуют. Дают демку. Можно уже начать знакомиться, чтоб на официальном релизе уже иметь опыт работы с этим инструментом.

Ответить
1

Это понятно, просто имхо - документация либо пишется в процессе разработки, либо не пишется вообще. В принципе, конечно, потом можно пройтись и задокументировать всё, но это не частое явление.

Ответить
2

Там много чего меняются, видимо, поэтому пока не парятся. Либо этим занимается какая-то небольшая часть команды.

Ответить
1

То, что ее не выложили, не значит, что ее нет в принципе.

Ответить
0

У Юнитеков значит. Это уже классика: выходящие из preview фичи не имеют документации и туториалов.

Бьешься об стену головой + ищешь в сети соратников по боли - это все способы разобраться в "новинках".

Ответить
1

Главное чтобы релиз не вместе с half-life 3.

Ответить
1

Напоминает платформу Corezoid (компания в которой я работаю купила такую)

Ответить
1

С нетерпением жду Visual Scripting, пока удачно собрал свой детский квест на Playmaker, и еще несколько проектов.

Ответить
0

Если в Unity появится аналог Blueprints я и на их движке начну принимать заказы.

Ответить
1

Под уе4 кругозор в блупринтах? Тоже его качаю, но чую, придётся и код научиться читать/писать.

Ответить
0

Что-то пока никаких отличий от Bolt и FlowCanvas.

Ответить
0

Написано жеж - DOTS

Ответить
0

Да я вижу, цели этой штуки не ясны, хлеб хотят отбрать у создателей аддонов на скриптинг создав тоже самое ?

Ответить
2

Текущие плагины из стора поверх старых добрых MonoBehaviour (это как сову на глобус натянуть), а VisualScripting поверх DOTS идеально ложиться с его entity направленностью.

Ответить
1

Да это фигня, переделают под dots, причём часто быстрее юнитеков. Я про общий стиль визуального программирования, который у всех одинаковый, и чаще всего конструкции выходят даже более громоздкими чем анриловские блюпринты.

Ответить

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovz", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]