Большое обновление текстового движка UniText

Большое обновление текстового движка UniText

Пару месяцев назад писал про новый текстовый движок для Unity. Настолько он выглядел амбициозно, что вообще не верилось в его правдивость. На этой неделе подкрался релиз новой версии 2.0. Это уже буквально другой продукт. Судя по гигантскому Changelog, переработано там чуть ли не всё.

Следил за разработкой на GitHub. Версия 2.0 оттуда благополучно исчезла, став коммерческой. Версия 1.0 так и остаётся доступной свободно, под open-source, для любого вида использования.

Версия 2.0 же доступна только покупкой через оф. сайт, либо в AssetStore (либо что успели с Github'а стянуть до релиза, но обновлений тогда уже не будет, а они там требовались).

Для личного использования — цены покусывают. Хотя ассеты подобного масштаба примерно столько и стоят. Для компаний — достаточно выгодно. В ближайшее время ещё действуют скидки в 50%. С их учётом, ассет можно забрать от $25.

Возможно, немножко обидно, но ожидаемо и логично. Как минимум, это легальная возможность задонатить автору за проделанную огромную работу.

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

Что-то уже в каком-то виде было и в 1.0, но в целом из того, что могу выделить:

  • Использование HarfBuzz шейпинга, SDF и MSDF для рендеринга, сверху ещё и Burst подключен (на Web не заработает в ПОЛНУЮ силу, но в 6.4 Unity уже добавили поддержку).
  • Полная поддержка RightToLeft шрифтов (арабские и прочие языки). И полная поддержка BiDi (когда RTL и LTR смешиваются, подробнее — на Хабре) в соответствии со всеми спецификациями Unicode (заявляется 100% прохождение всех тестов). Без лишних велосипедов, просто и нативно.
  • Вместо множества разных атласов шрифтов от TMP, тут один общий динамически контролируемый атлас, который должен работать не только удобнее, но и эффективнее. Это всё ещё успешно компрессируется автоматически, т.е. позволяет сэкономить в билде порядка x2-3 от первоначального объёма на шрифты.
  • Имеется всякий тулинг: от диагностик до выделения подмножеств шрифтов (чтобы не все символы использовать и затягивать в билд).
  • Поддержка Font Family и Variable Fonts. Если с Font Family ещё как-то более менее в TMP жить можно, то желаемые Variable Fonts от артовиков доставляют реальные неудобства.
  • Можно использовать Markdown и BBCode или настроить кастомный парсер.
  • Удобная поддержка эмодзей: и ZWJ (комбинации эмодзи), и skin tone, и даже нативные системные эмодзи можно использовать, т.е. не включать их в билд непосредственно.
  • Настройки визуала используют систему модификаторов, которая не использует материалы (т.е. всё батчится с разными наборами эффектов). Её можно расширить кастомными модификаторами. Можно собирать переиспользуемые пресеты. Можно модифицировать даже кусочки текста через связанную систему тегов. Добавлен понятный и относительно удобный инспектор. Такого лично мне в 1.0 сильно как раз не хватало.
  • В этой версии также появилась поддержка текстов для использования в World, вне Canvas, которые также умеют батчиться без лишних телодвижений.

И гора других фичей, которые я ещё не успел попробовать и проверить.

Мои целевые плафтормы сейчас — это Desktop и Web. На Unity 6.3 всё успешно собирается и работает.

Активных петов у меня нет. В коммерцию ещё не готов это добавлять. Поэтому все проверки пока в тепличных и стерильных условиях. Мелкие баги встречаются до сих пор. Но те, которые обнаруживал ранее, были оперативно исправлены.

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

На уровне использования и преодоления типичных "болей" — выглядит весьма перспективно. Если UI Toolkit однажды под себя всё не подомнёт, то шансы у этого однажды попасть в Prod вполне реальные. Пока отложил в личную библиотеку.

4
1
1 комментарий