Найти в Дзене
Make gamedev great again

Векторная графика в unity

Оглавление

На той неделе задался вопросом использования вектора в unity.

И для начала пару тезисов отвечающих на вопрос «зачем»

  • Наилучшее отображение при скейле
  • Возможность изменять графику не выходя из юнити
  • Меньший вес

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

Первый стул


Во-первых юнитеки представили свое решение под названием
Vector Graphics — работает как нужно в плане отображения графики, но на этом плюсы заканчиваются. Сам плагин выводит svg в виде компонента SpriteRenderer и к нему крепит материал с шейдером для отображения. Удобно что, это вклинивается в экосистему.

Шейдер unlit’овский, если вам понадобится настроить освещение для картинки — то нужно будет расковырять исходники и как-то там освоиться. Никаких доп фишек нет, подвигать точки не выйдет (опять же, все реально, но это нужно разбираться лет 20). В общем, все что выйдет — отобразить svg картинку без потерь качества.

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

Второй стул

Дальше, если начать копать по этой теме, то можно выйти на ассет SVG Importer — который стоит аж 60$, но по функционалу он сильно опередил Юнити. Все что вы можете представить — там уже есть. Есть возможность изменять любые изображения в реалтайме через API, также автор сделал набор фильтров, к примеру blur. Есть поддержка UI и скрипты для покадровой анимации. Автор позаботился даже о стартаперах и сделал пример использования в VR.

На этом ассете сделали несколько игр. Казалось бы, выбор очевиден, но в 2016 автор ушел в депрессию, а последнее обновление было 4 августа 2017 — не так давно, но нужно задуматься. Что-то уже может не работать и рассчитывать на поддержку не стоит. Сам я написал автору неделю назад, но ответа не получил.

Есть еще одна деталь, которая в конце концов отговорила меня от идеи использования этого ассета. В интернетах (
в доках вк) мне удалось найти этот ассет первой версии. После теста, оказалось, что качество отображения градиентов значительно хуже чем у решения от Юнити, возможно, это было исправлено в следующих версиях, но как это узнать не потратив 60$?

Итоги

Использовать векторную графику сейчас лучше всего не для игр, а чего-то более простого. Стоит помнить, что расплатой за маленький вес будет нагрузка на CPU. Также, Юнити ставят в неудобное положение, сами они делают хорошие плагины и их использование приоритетное , но чаще всего функционал недоделан и когда будет сделан — не известно.

Если в ваши цели входит изменение ландшафта в 2D игре — то попробуйте возможности
Sprite Shape, тоже от unity.

P.S.
Канал в телеге @nrjwolf_live