Pull to refresh

Comments 23

только теперь попробуйте натянуть этот текст на объект в сцене как текстуру
NGUI dynamic font + Sci Fi Fonts (http://www.dafont.com/) и будет счастье. Зачем делать лишнюю работу? Я бы не стал использовать битмаповые шрифты по понятным причинам.
Мне эти причины не очень понятны. И причем здесь dynamic font?
При использовании растровых шрифтов в Unity3d текстура каждого глифа накладывается на отдельный квад (четырёхугольник, полигон). При таком раскладе дел нет никаких трудностей настраивать межбуквенный просвет. В уроке это наглядно показано и описано.
только надо делать это руками
Признаться, я совсем не понимаю, куда вы клоните. В настройках Custom Font есть параметр кернига точно такой же, как и в настройках шрифтов TTF. Но даже если бы и не было, разве это повод отказываться от всех преимуществ растровых шрифтов?
Странно, мне тоже не совсем понятно о каких причинах идет речь.
Интересная статья!
Я давно откладываю создание автоматического парсера растровых шрифтов из .fnt (Насколько мне известно, это не официальный, но общепринятый формат описания разметки растровых шрифтов и свойств каждой буквы такого шрифта, как расстояние до идущего следующим символа и прочее). Он представляет растровый шрифт как обычный текстурный атлас, но с доп. параметрами. На windows часто используется программа Bitmap Font для создания таких шрифтов и, соответственно, файла описания .fnt
Мне кажется такой инструмент достаточно востребован и полезен, странно что нет стандартной функции парсинга текстуры из .fnt
Как я понял, в вашем случае разметка и свойства текста все таки забивается вручную?
Custom Font предлагает настроить такие параметры как кернинг, межстрочный интервал, межзнаковый интервал (наравне с кернингом?), character padding (непонятно, влияет ли он на что-нибудь), ширину символа и непосредственно координаты для маппинга. Последние два задаются вручную для каждого глифа. То есть, при создании шрифта я действительно забиваю все эти параметры вручную. После того, как всё настроено, шрифт готов и не требуется больше никаких изменений. Согласен с вами, было бы очень удобно автоматизировать этот муторный процесс.

Помимо этих настроек есть еще несколько в компоненте Text Mesh, которые отвечают уже за разметку текста: text anchor, alignment, padding и пр. Этот компонент работает как с растровыми шрифтами, созданными инструментом Custom Font, так и с truetype. Нативная поддержка сторонних растровых шрифтов отсутствует.

Вот как раз .fnt формат содержит всю необходимую информацию для создания Custom Font в Unity3D, там даже с избытком (есть параметры типа XAdvance, которых нет в Unity3D)
Даже если просто сделать парсер из .fnt (там обчно XML формат, или простой текстовый с переносом строк), уже будет серьезный «прорыв» :)

Одним из огромных преимуществ TextMesh является то, что (насколько я знаю) сколько бы ни было в нем текста, тратится ровно 1 Draw Call на весь Text Mesh

В общем Вы меня вдохновили, займусь этим в ближайшее время! :)

Кстати насчет растровых шрифтов — я не нашел адекватного способа создавать сами шрифты в Windows. На MacOS есть замечательная программа Glyph Designer, где есть такие настройки как обводка, тени (практически полная аналогия со стилями слоев в Photoshop). На Windows я нашел только Bitmap Font, но там нет таких навороченных плюшек. Однако он может брать готовые картинки отдельных символов и паковать их в атлас шрифта со всем необходимым описанием. Но вот этот процесс закидывания отдельных картинок там тоже муторный и совсем не автоматизирован.
Может вам встречались программы для создания шрифтов с описанием?
Или вы счастливый обладатель мака? :)
Я только что нашёл удобный инструмент, который очень серьёзно автоматизирует действия по созданию Custom Font! Не знаком с Glyph Designer, но эта утилита вроде бы делает всё тоже весьма неплохо. Ссылка на Unity Asset Store, ссылка на видеообзор.

В общем-то, мой урок после такой находки можно смело не читать.
Рекомендую обратить внимание на NGUI (в котором есть поддержка AngelCode bitmap font) и Glyph Designer, который этот bitmap font делает наиболее качественно. В качестве альтернативы (для Windows, Linux, Mac) можно попробовать Hiero
У статьи высокая разъяснительная ценность. Часто это важнее ссылок на готовые продукты.
На Windows я нашел только Bitmap Font

Оно?
www.angelcode.com/products/bmfont/
Как вариант — делать полноценный TTF-шрифт (могу посоветовать www.high-logic.com/font-editor/fontcreator.html), а потом через bmfont выкидывать в атлас с нужными настройками растеризации.
Да да, он BMFont оказывается называется.

Насчет TTF шрифов — слишком круто, часто нужно просто добавить тени, обводку и прочие рюшечки.
Но посмотреть на FontCreator для ликбеза стоит, спасибо за совет.
Все перечисленные рюшечки с небольшими настройками прекрасно делаются в рантайме в ngui, без необходимости перерисовывать контент в виде шрифта или держать его копию с эффектами в памяти.
Я так и не смог разобраться с этим вопросом. На ум приходили только абсолютно сумасшедшие варианты, как то мапить русские буквы с английских, которые находятся с ними на одной клавише (L-Д, R-K, Z-Я и etc.).
Еще нужно убрать галочку «Generate Min Maps» в настройках текстуры, с ней координаты разметки неверные
Sign up to leave a comment.

Articles