Тема по шрифтам. Со временем надеюсь будет дополняться, не только мной. Всем доброго времени суток, люди на форуме часто задают вопросы о том как в (G)ZDoom\\GLOOME добавить кириллицу, т.е. русский шрифт\\буквы, ответ на такой вопрос не маленький т.к. я лично знаю минимум 3 способа добавления русского шрифта, знаю не все, но должно хватить. Собственно с этого и начнется маленькое руководство..
Способ 1:
Скрытый текст:
Добавление шрифта формата .FON2, про другие форматы не знаю(если знаете, пишите в теме, добавлю инфу в шапку). Полный список поддерживающих форматов можно посмотреть тут. Качаем шрифт в формате .ttf(делаем свой если умеем) устанавливаем его на свой ПК, после качаем программу rusdoomfontgen (автор Nill) (у кого есть ссылка на эту программу, дайте знать) читаем manual.. Т.е вы берёте шрифт ttf формата с русскими символами, в интернете таких полно и конвертируете программой rusdoomfontgen в формат FON2, после этот шрифт копируете в корень PK3\\PK7 архива (где такой шрифт должен быть в Wad архиве, не знаю, кто знает отпишитесь)
Вы уже можете пользоваться этим шрифтом например в ACS:
SetFont(\"имя вашего шрифта\");
HudMessage(s:\"напишет сообщение вашим новым русским шрифтом\"..);
Для того что бы заменить стандартные шрифты, если вы хотите русский язык в меню, настройках и т.д.
Вам достаточно дать имя вашему шрифту CONFONT или SMALLFNT или BIGFONT.. Я проверял только SMALLFNT (внимательнее SMALLFNT <- тут нет буквы O и это не опечатка! 8 символов макс. ) CONFONT это шрифт который используется для вывода сообщений в консоли, открывается кнопкой \"~\" и еще он используется в некоторых настройках(настройки управления) (G)ZDoom.
ConFont содержит в себе SmallFont и BigFont, т.е. можно писать как большими так и маленькими буквами. Но вы можете сделать свой SMALLFNT с большими и маленькими буквами русс. и англ. языков.
SMALLFNT сокращение SmallFont (т.к. шрифты не должны содержать в имени больше 8 символов.)Он используется практически везде кроме консоли. BIGFONT используется в стандартном меню doom1-2, имена уровней, шапка в различных настройках типа: \"Customize controls\", возможно еще где-то..
Шрифты в GZDoom (тут можно почитать больше, про IndexFont и т.д.)
У такого способа есть некоторые недостатки, он не всегда отображается так как хочется, может в настройках съезжать не много вниз.., но для простого вывода сообщения в функциях HUDMessage и Print годится.
Способ 2:
Скрытый текст:
Composite font т.е. каждая буква\\символ нарисована на отдельной картинке.
Этот способ для меня лучший, да он нудный, \"трудозатратный\", если надо и англ. и русс. буквы рисовать долго, потом именовать каждую.., но напишу о его плюсах.
Такой шрифт может быть каким угодно т.к. это картинка рисуй что хочешь, особых знаний не надо, вы можете сделать каждую букву градиентом к примеру.. от черного плавно переходит в зеленый цвет..
Размер каждой буквы картинки может быть хоть 128х128, только такие картинки надо сделать как HIRES.
Теперь о том как такой шрифт добавить, начну с замены стандартного SMALLFNT в PK3\\PK7 архиве:
Создаем папку Graphics, в ней еще одну папку с именем SMALLFNT, в неё копируем свои картинки букв с именем
С \"STCFN192\" по \"STCFN223\" Русские БОЛЬШИЕ буквы.
С \"STCFN224\" по \"STCFN255\" Русские маленькие буквы.
С \"STCFN065\" по \"STCFN090\" Английские БОЛЬШИЕ буквы. С \"STCFN097\" по \"STCFN122\" Английские маленькие буквы. Полный список можно посмотреть по ссылке: таблица кодов ASCII
То есть каждую картинку буквы надо именовать \"STCFN192\" = А, \"STCFN193\" = Б, \"STCFN193\" = В, и т.д.
Размер картинок букв.. ориентируйтесь лучше на стандартный шрифт, который в iWad Doom2..
Если вам нужен качественный шрифт HIRES, например каждая картинка буквы будет размером 128х128, и что бы корректно отображалось в гоззе, такие буквы надо уменьшить.
Что это значит? Подробнее..
Создаем папки в корне архива pk3-pk7 с такими именами: \"Graphics/SMALFNT\", в эту папку кладем картинки шрифта маленького размера! (для теста рекомендую попробовать стандартный doom1 шрифт) К примеру у стандартного doom шрифта smallfnt, большая буква А (она называется \"STCFN065\") имеет размер картинки 8x7.
Далее свой качественный шрифт(картинки большого размера, я обычно делаю шрифт примерно 37х37 каждая буква) кладем в папку Hires/SMALLFNT. (примечание. главное положить хайрез картинки в папку Hires, а как будет называться подпапка, уже по барабану, но что бы избежать путаницы, рекомендую называть так же как и папка с пустышками.)
Важно что бы маленькие картинки пустышки имели точно такое же имя как и хайрез картинки.
Большая буква \"А\" размером 128х128 именуется \"STCFN192\" и буква пустышка которая в папке Graphics/SMALFNT должна иметь имя \"STCFN192\", надеюсь понятно объяснил..
Таким образом гздум берет БОЛЬШИЕ хайрез картинки шрифта и ужимает(скейлит) их до размера маленьких картинок пустышек почти без потери качества.
Иными словами размер каждой хайрез буквы будет равен размеру картинке пустышке, т.е.:
Размер вашей хайрез картинки большой буквы А = 128х128, а картинка пустышки для этой буквы = 7х7, (G)Zdoom покажет вашу букву А размером 7х7, при этом качество не потеряется.
Если вам не надо заменять стандартный шрифт, а просто добавить свой, делаем это с помощью lump FONTDEFS, там можно почитать как им пользоваться(я не переводчик, перевести не могу =( ).
Некоторые заметки, которые возможно помогут решить\\упростить проблемы с этим вариантом шрифта:
Скрытый текст:
Переименовывать большое количество файлов удобно в SLADE3
К примеру вы можете выделить 10 файлов с помошью shift и нажать F2, откроется окошко переименования.
В нем будет filename**. Так вот что бы не мучиться, делаем так STCFN05&& и жмем ок.
Таким образом, выделенные файлы автоматически пронумеруются с STCFN050-STCFN59.
//------------------------
Буквы \"ё\" и \"Ё\" идет не по порядку по историческим причинам, имейте это ввиду, т.е.
Ё = STCFN168
ё = STCFN184
(это же относится и к некоторым другим буквам к примеру в украинском языке і, ї, є, ґ..)
//------------------------
У меня была такая проблема, что не коректно отображался один символ, должна была показаться буква, а показывался не понятный символ растянутый и я долго не мог понять в чем дело..
Если в папке HiRes будет лежать ДВЕ картинки с именем STCFN121.png
1 - изображен \"y\"
2 - что угодно только не \"y\"
GZDoom не покажет ошибки!!! А символ будет отображаться через раз, т.е. запустил гоззу, показывает \"y\", перезапустил, покажет НЕ \"y\".
//------------------------
Способ 3:
Скрытый текст:
Замена англ. букв стандартного шрифта, бесполезный способ т.к. 1 и 2 лучше..
Но не много объясню, в iwad Doom есть картинки англ. букв, вы меняете например английскую букву b на русскую б
и по такой системе меняем все буквы на русские. Получится так
а=а
b=б
v=в
g=г
d=д
e=е
....
Заменив так буквы пишем в PrintBold(s:\"gde beda?\")
(G)Zdoom напишет такое сообщение как \"где беда?\".
Надеюсь принцип понятен? Такой способ перевода еще используют при переводе различных старых консольных ромов(игр) или там где других языков быть не должно..
Вообще там есть не большая схемка как удобнее заменить буквы, что бы вы могли писать транслитом, а текст выводился нормальными русскими буквами, но я ее уже забыл, если погуглить уверен что-то найдется.
Еще может быть полезной программа http://iddqd.ru/utils#ZDoomFont Generator для создания своего шрифта.
Так же программа ImageTool будет полезна для редактирования стандартного шрифта (G)ZDoom\\GLOOME confont, который находится в (g)zdoom.pk3\\engine.pk3. Именно в шрифте confont есть картинки маленького курсора который отображается в настройках порта и еще некоторая графика. Как правильно пользоваться программой я не знаю, у меня не получилось отредактировать шрифт, если кто-то умеет, напишите пожалуйста подробнее.
//==================================================================
Про шрифт CONFONT от theleo_ua:
В последующих шагах будут указаны папки и файлы из этого архива
Шаг 2: конвертация confont из zdoom в формат картинки:
Скрытый текст:
Конвертируем confont в виде картинки. Простой способ: взять их из архива из шага 1 в папке \"IMAGES\\001 - ORIGINAL 8BIT BMP\". Сложный способ: берем из того же архива папку IMAGETOOL (на выбор x32 или x64 версию) и кидаем туда confont.lmp из архива gzdoom.pk3 вашей гоззы.
Примечание:для удобства, чтобы потом его случайно не затереть при обратной конвертации картинки в confont, я рекомендую переименовывать его, например в confont_zdoom_original.lmp.
После этого пускаем батник _ZDOOM_TO_BMP.BAT, который сконвертирует confont в картинку.
Примечание: батник _ZDOOM_TO_BMP.BAT в качестве источника ищет именно confont_zdoom_original.lmp, а не confont.lmp, так что либо переименовывайте confont.lmp в confont_zdoom_original.lmp, либо редактируйте батник. Текст батника на всякий случай:
для confont_zdoom_original.lmp в качестве источника:
imagetool_x32.exe bmp confont_zdoom_original.lmp confont.bmp
imagetool_x64.exe bmp confont_zdoom_original.lmp confont.bmp
для confont.lmp в качестве источника:
imagetool_x32.exe bmp confont.lmp confont.bmp
imagetool_x64.exe bmp confont.lmp confont.bmp
Если консоль и батники взорвали вам мозг, то напоминаю, что все картинки уже есть в папке \"IMAGES\" архива из шага 1
Шаги 3-6: выбор + установка размера шрифта:
Скрытый текст:
Шаг 3: выбор размера шрифта:
Скрытый текст:
Шаг 3: определяемся, какой размер результирующего консольного шрифта вы себе хотите:
1х - стандартный гоззовский размер 2х - двукратный размер 3х - трекратный размер и т д
Напоминаю, что несмотря на то, что дву и более кратные размеры приятнее для глаз (особенно на больших разрешениях), они частично ломают alternative HUD (плюс что-то еще может сломаться, надо внимательно тестить). Так что возможно имеет смысл вместе со своими модами поставлять разные версии confont: стандартный однократный (где гарантированно ничего не сломано) и многократный (где красивее)
Соответственно, если вы хотите несколько размеров, то просто повторяем шаги несколько раз для каждого из требуемых размеров
Шаг 4: установка размера шрифта:
Скрытый текст:
Шаг 4: Если на шаге 3 вы выбрали размер 1х, то переходим на шаг 5. Если нет, то увеличиваем картинку confont.bmp в любом подходящем графическом редакторе (я пользуюсь xnview) во столько раз, какой размер шрифта вы хотите.
Важно: при увеличении есть как минимум 2 варианта: использовать сглаживание (фильтрация \"качество\") или не использовать (на выходе будет просто увеличенный пиксельарт). Мои тесты показали, что шрифт в гоззе выглядит красивее, если использовать сглаживание при увеличении, но ваши тесты могут показать другие результаты (ибо в гоззе куча опций (например hq4x), разрешений и т д. Так что экспериментируйте и находите лучший результат для себя, а я буду рассказывать, как увеличивать в стиле pixelart (если нужны дополнительные инструкции, как сглаживать в режиме \"максимальное качество картинки\", пишите, добавлю).
Если лень заморачиваться, и охота пропустить шаги 4 и 5, то просто находим требуемую картинку в папке \"IMAGES\\003 - SCALED 24BIT PNG BLUE\" архива из шага 1 и переходим на шаг 6
Если же охота самому поэкспериментировать, тогда показываю на примере xnview, как изменить размер без сглаживаний:
1) открываем картинку и нажимаем \"изображение / изменение размера\"
Скрытый текст:
2) в появившемся окне ставим %, интерполяция по соседним (как показано красным на скрине):
Скрытый текст:
3) для 2х размера шрифта ставим 200/200 (как показано красным на скрине):
Скрытый текст:
для 4х размера шрифта ставим 400/400
и т д
4) нажимаем ок
Шаг 5: сохранение размера шрифта:
Скрытый текст:
Шаг 5:
5) нажимаем файл / сохранить как, выбираем формат png и сохраняем
6) теперь у нас есть файл, с которым мы можем переходить на шаг 6 и начинать редактировать сами символы
Шаги 6-12: редактирование и сохранение картинки:
Скрытый текст:
Шаг 6: открываем файл-результат шага 5 (или 4, если не заморачивались) в любом подходящем графическом редакторе (я использую paint.net)
Шаг 7: редактируем картинку: заменяем текущие символы на те, которые требуются вам. В идеале делать так, чтобы фон символа всегда был один и тот же (синий в данном случае), иначе будет лишний геморрой с затиранием фона на последующих шагах
Шаг 8: после того, как редактирование закончено, нажимаем файл/сохранить как, выбираем png, и в появившемся окне выбираем 32 бита:
Скрытый текст:
Шаг 9: если возникла необходимость продолжить редактирование файла из шага 8, то открываем его и редактируем (с последующим сохранением в 32битном режиме). Если же редактирование закончено, и хотите уже конвертить в confont.lmp, тогда идем на шаг 10:
Шаг 10: в paint.net нажимаем \"волшебная палочка\", потом \"заполнение / глобальная\":
Скрытый текст:
Шаг 11: после этого нажимаем левой кнопкой мыши на синем фоне картинки (будет примерно так) ) и нажимаем DEL на клавиатуре, после чего будет вот так:
Скрытый текст:
после этого нажимаем файл/сохранить как, выбираем png, и в появившемся окне выбираем 32 бита
Шаг 12: важное уточнение: рекомендую на шагах 8 и 11 использовать разные файлы (тобишь на шаге 11 не затирать результат шага 8). Это нужно потому, что результат шага 8 криво воспримется гоззой (вместо прозрачного фона будет белый и прочие глюки), а результат шага 11 неудобно редактировать (буквы сливаются с фоном). Следовательно, если вы на шаге 11 перезатрете результат шага 8, а потом захотите доредактировать (например вспомните, что надо еще добавить букву Ё), то вместо того, чтобы начать уже на шаге 8, начнете с шага 1 (ну или будете танцевать с бубном, чтобы сделать обратный эффект преобразования шага 11 в шаг 8, что далеко не факт что даст адекватный результат, в общем мое дело предупредить).
Примеры прозрачных 32битных картинок, которые можно кормить фонтгену на следующем шаге 13, можно найти в папке \"IMAGES\\004 - SCALED 32BIT PNG ALPHA\" архива из шага 1
Шаги 13-15: конвертирование картинки обратно confont для zdoom, тестирование результатов и исправление ошибок:
Скрытый текст:
Шаг 13: конвертируем результат шага 11 в confont.lmp:
1) открываем FONTGEN/doomfontgen.bat из архива из шага 1
2) нажимаем tools / create font lump from image:
Скрытый текст:
3) выбираем: font type - console font, prepare - fix palette, source image - файл из шага 11, output lump - файл результат:
Скрытый текст:
и нажимаем create lump, получая результирующий confont.lmp
Шаг 14: кидаем файл-результат, полученный на шаге 13, в корень вашего мода, и начинаем тестить как это выглядит в гоззе (в первую очередь обращаем внимание на консоль, опции (особенно те, где есть скроллбары, например Sound options), курсоры, alternative HUD и прочие проблемные места где используется confont)
Шаг 15: если на шаге 14 найдена проблема конкретно взятого символа, переходим на шаг 9 и исправляем ошибку. Если же проблема \"размер шрифта слишком большой\", переходим на шаг 3
alekv За гайд спасибо! Я не очень понял из описания 2 способа, а что в этом случае будет с англ. буквами? Допустим, мне нужен универсальный шрифт, который содержит как кириллицу, так и латиницу, как заглавные, так и строчные буквы. С каких номеров в этом случае начинаются имена латинских букв? И какие имена соответствуют символам + - , ? и т.п. 2 способ геморройный, но зато не будет проблем с читаемостью (у проги Нила в этом недостаток, ее шрифты не всегда хорошо читаются).
И сразу возник вопрос: какой из способов сработает, если я хочу все "тексты в конце эпизодов" писать строго русскими буквами (для упрощения пускай пока строго русские будут, но если можно будет объединить с англ, вообще супер) ?
Вот вики по поводу текстов в конце эпизодов: http://zdoom.org/wiki/MAPINFO/Cluster_definition Как видим, никаких setfont там нет. Каким образом сказать порту, что в clusterdef в exittextislump я хочу строго такой-то шрифт юзать?
Я не очень понял из описания 2 способа, а что в этом случае будет с англ. буквами? Допустим, мне нужен универсальный шрифт, который содержит как кириллицу, так и латиницу, как заглавные, так и строчные буквы. С каких номеров в этом случае начинаются имена латинских букв? И какие имена соответствуют символам + - , ? и т.п.
2 способ геморройный, но зато не будет проблем с читаемостью (у проги Нила в этом недостаток, ее шрифты не всегда хорошо читаются).
2 способ, да с ним долго возиться, но он того стоит к тому же можно делать универсальный шрифт.
Смотри имена:
буква ё = 184.
буква Ё = 168. С "STCFN224" по "STCFN255" - Маленькие русские буквы. С "STCFN192" по "STCFN223" - Большие русские буквы. С "STCFN097" по "STCFN122" - Маленькие английские буквы. С "STCFN065" по "STCFN090" - Большие английские буквы. С "STCFN048" по "STCFN057" - Цыфры от 0 до 9, где 048 == 0, 049 ==1, ...... 057 == 9. Прочие символы: Все символы смотрим тут: Ссылка "STCFN033" = !
"STCFN034" = "
"STCFN035" = #
"STCFN036" = $
"STCFN037" = %
"STCFN038" = &
"STCFN039" = '
"STCFN040" = (
"STCFN041" = )
"STCFN042" = *
"STCFN043" = +
"STCFN044" = ,
"STCFN045" = -
"STCFN046" = .
"STCFN047" = /
"STCFN058" = :
"STCFN059" = ;
"STCFN060" = <
"STCFN063" = ?
"STCFN064" = @
"STCFN094" = ~
"STCFN095" = _
"STCFN091" = [
"STCFN092" = \
"STCFN093" = ]
Вот и замени все что тебе надо и добавь русские и англ. буквы, таким образом шрифт будет содержать в себе и англ и русс, там где надо вывести сообщение на русском, пиши на русском, надо на англ, пиши англ. буквами, все просто. Больше кодов символов можно глянуть на большой вике(ссылку дать не могу у меня бигвика не работает) Но на zdoom вике в FONTDEFS должны быть какие-то ссылки.
theleo_ua:
И сразу возник вопрос: какой из способов сработает, если я хочу все "тексты в конце эпизодов" писать строго русскими буквами (для упрощения пускай пока строго русские будут, но если можно будет объединить с англ, вообще супер) ?
Вот вики по поводу текстов в конце эпизодов: http://zdoom.org/wiki/MAPINFO/Cluster_definition http://zdoom.org/wiki/MAPINFO/Cluster_definition Как видим, никаких setfont там нет. Каким образом сказать порту, что в clusterdef в exittextislump я хочу строго такой-то шрифт юзать?
А тебе для такого не надо setFont, тебе нужен lump по моему language (в архиве GZDOOM.pk3 называется language.enu) Имея такой шрифт ты просто в language пишешь на русском текст который тебе надо. Вот вырезка из language:
Скрытый текст:
E1TEXT =
"Once you beat the big badasses and\n" //И тут просто пиши русскими буквами.. Т.к. шрифт smallFnt у тебя содержит 2 языка, гозза выведет текст на русском.
"clean out the moon base you're supposed\n"
"to win, aren't you? Aren't you? Where's\n"
"your fat reward and ticket home? What\n"
"the hell is this? It's not supposed to\n"
"end this way!\n"
"\n"
"It stinks like rotten meat, but looks\n"
"like the lost Deimos base. Looks like\n"
"you're stuck on The Shores of Hell.\n"
"The only way out is through.\n"
"\n"
"To continue the DOOM experience, play\n"
"The Shores of Hell and its amazing\n"
"sequel, Inferno!\n";
А вообще если что не понятно, то на здум вики как бы больше написанно, но на англ.
Хорошо бы конечно перевести, но увы не могу.
TesaQ:
Не думал что вообще появится такая тема с шрифтами, да и кому к тому же понадобится перевод, хотя для русских вадов самое оно.
К сожалению шрифт в гоззе не только за буквы отвечает) Вот меня жутко бесит курсор в настройках гоззы, хочу свой, да и ползунки не нравятся, а это все зашито в confont который надо как-то редактировать, тут надеюсь и пригодится эта тема(хотя я еще сам не понял как перерисовать confont =( ).
Вообще-то список номеров для шрифтов вот: https://ru.wikipedia.org/wiki/ASCII (и ещё тут: https://ru.wikipedia.org/wiki/Windows-1251) Там перечислены все возможные символы. Правда, они перечислены в шестнадцатиричной системе, а не в десятичной. Но на этот случай в FONTDEFS можно написать не "Template MYFNT%03d", а например "Template MYFNT_%02X". И использовать шестнадцатиричные наименования, например MYFNT_E0 для маленькой русской буквы 'а'.
Кстати значительно проще после этого понять какой символ где. Потому что в десятичной системе не каждый привычен к делению всего на 16 (вот что такое 224?), а там всё просто и понятно, что с C0 — большие русские, с E0 — маленькие.
Я тут делал psd-файл, где воссоздал думовский bigfont с помощью эффектов слоя в photoshop и текстуры серого камня из дума, может пригодится русификаторам и прочим, кто будет добавлять свои символы. Наверное small font тоже будет похож, но не проверял. Ссылка PSD, там внизу родной слой, а наверху рисуются символы. Надо рисовать белым карандашом. Эффекты слоя можно врубать/вырубать. Я там накидал несколько букв, но остальные не удалось сделать правильно.
Ещё есть статья, типа про конструкцию букв и всё такое (это важно), но я и её не осилил. Вообще чтоб не получилась поделка на уровне пиратских игрушек на соньке и потраченного перевода гта сан андреас, делать шрифт надо, если ты - офигенный дизайнер с бумажкой из такого вуза, или по крайней мере в этом понимаешь, но это не про меня.
Качаем шрифт в формате .ttf(делаем свой если умеем) устанавливаем его на свой ПК(По другому я не делал), после качаем программу rusdoomfontgen (автор Nill) (где ее найти на форуме не знаю, потерли может, много полезного улетело) читаем manual.. Т.е вы берёте шрифт ttf формата с русскими символами, в интернете таких полно и конвертируете программой rusdoomfontgen в формат FON2, после этот шрифт копируете в корень PK3\PK7 архива
Столкнулся с проблемой, что fontgen не умеет добавлять русские буквы к уже существующей (которую я получил с помощью imagetool) картинке с англ буквами (проблема на самом деле в том, что то, что создает на выходе фонтген, отличается от того, что изначально хранится в confont.lmp в гоззе (я имею в виду не русский язык, что логично, а графические элементы типа скроллбаров, курсора и т д)), и получаются такие шрифты на выходе, которые во-первых без графики (скроллбаров, курсоров и т д), а во-вторых, либо слишком большие (либо наоборот, слишком мелкие и кривые), либо слишком обрезанные, либо где расстояние между буквами очень большое (и я пока не нашел комбинацию настроек, которая будет балансом между этими тремя аспектами). Также confont используется для числовых значений в alternative hud-е, соответственно малейший уход от стандартного размера шрифта confont-а гоззы - и alternative hud некрасиво поплывет. Также confont используется в скроллбарах в опциях меню, для курсора меню, курсора консоли и прочих вещей, которые могут поплыть при некорректном размере шрифта (а некорректный это зачастую любой, отличный от стандартного гоззовского)
Чувствую, придется ручками рисовать русские буковки, похожие по стилю и размеру на confont-ные. И это в целом не сложно, но столкнулся с другой проблемой: графические редакторы при сохранении 256цветной картинки перетасовывают ее палитру, соответственно imagetool продюсит на выходе кривые confont-ы. Разве что нашел обходной костыль "сохранять картинку в труколор, потом этот труколор редактировать, потом в редакторе делать фон труколора прозрачным, сохранять в режиме 32бит, а после этого кормить его fontgen-у с опцией fix palette", и получается более менее приемлемый результат (разве что скроллбары отображаются не сплошной полосой, а черточками, но это думаю поправимо если потанцевать с бубном).
Короче, гемора с этими консольными шрифтами полные штаны. У тебя не возникало таких проблем? Если возникали, как решал?
З.Ы. Еще раз спасибо за стартовый пост, мне как раз понадобилось это дело, и он очень помог! Респект
Короче, гемора с этими консольными шрифтами полные штаны. У тебя не возникало таких проблем? Если возникали, как решал?
С консольным шрифтом у меня до сих пор не решенные проблемы =( Юзать вместо него fon2 плохо из-за курсора и прочих элементов в настройках.. а так можно стерпеть чуть съехавший текст. Вообще я даже не смог запустить imagetool и хоть что-то сделать со шрифтом confont!!! Я пытался заменить шрифт confont на шрифт картинки, у меня тоже ничего не вышло.. уже забыл почему, но кажется гозза просто не реагировала на папку "confont" с картинками Вот в теории если бы знать код маленького курсора в настройках и скролл баров, т.е. вообще код всех символов которые в confont и сделать картинки с именами этих кодов, можно было бы заменить confont, но это все мои догадки, которые я видимо никогда уже не проверю т.к. меня уже очень сильно запарило меню гоззы и калеченые форматы шрифтов. Остается надеется что граф когда-то выкинет все эти морально устаревшие форматы и добавит ttf шрифты!!! а все графические символы как тот же курсор сделает в картинках по человечески, а не шрифтами. Я юзаю до сих пор 2 вариант и забил на все остальное т.е. хайрез картинки букв и пустышки размером с стандартный шрифт, выглядит не так печально)
alekv, я тут попробовал увеличить размер confont-а в 2 раза (тупо размер картинки, которая скармливается фонтгену, увеличил в 2 раза без эффектов сглаживания), получилось очень даже неплохо, не надо напрягать глаза чтобы разглядеть текст консоли, но проблема в том, что из-за увеличения шрифтов в alternative HUD, но НЕувеличения иконок патронов, теперь патроны отображаются выше чем значения: http://storage1.static.itmages.ru/i/16/0823/h_1471947037_4034991_69a45f2751.png
Я попробовал сделать вот так, но не сработало, какие бы числа я не пробовал, как бы не танцевал с бубном, меняя размеры/оффсеты спрайтов, все равно получается либо уменьшить размер, либо обрезать спрайт. Увеличить же размер без обрезания либо просто переместить пониже (а лучше было бы и то и то) - не получилось.
alekv:
Вот в теории если бы знать код маленького курсора в настройках и скролл баров, т.е. вообще код всех символов которые в confont и сделать картинки с именами этих кодов, можно было бы заменить confont, но это все мои догадки, которые я видимо никогда уже не проверю т.к. меня уже очень сильно запарило меню гоззы и калеченые форматы шрифтов.
А зачем тебе отдельные картинки? Ну кроме причины "их проще редактировать/обновлять". Или ты хочешь хайрез?
alekv:
а все графические символы как тот же курсор сделает в картинках по человечески, а не шрифтами.
Понял, тебя грубо говоря разрешение не устраивает. А если сделать дву (или более) кратный размер шрифта (разрешение увеличится в 2 раза), тебя такое не устроит? Т.е. импортишь confont в большую картинку imagetool-ом, увеличиваешь ее например в 4 раза, дальше копипастишь туда все свои замены "гоззовским курсорам", и импортишь обратно в confont (фонтгеном), такое не поможет тебе?
Теперь о том как такой шрифт добавить, начну с замены стандартного SmallFnt в PK3\PK7 архиве: Создаем папку Graphics, в ней еще одну папку с именем SMALLFNT, в неё копируем свои картинки букв с именем С "STCFN192" по "STCFN223" это русские большие буквы. С "STCFN224" по "STCFN255" маленькие русские буквы. То есть каждую картинку буквы надо именовать "STCFN192" = А, "STCFN193" = Б, "STCFN193" = В, и т.д. Размер картинок букв.. ориентируйтесь лучше на стандартный шрифт, который в iWad Doom2..
Попробовал не вышло. Папки создавать нужно в своём проекте, находящемся в PK3 архиве или в самом gzdoom.pk3 ?
Попробовал не вышло. Папки создавать нужно в своём проекте, находящемся в PK3 архиве или в самом gzdoom.pk3 ?
В своем проекте.. просто в папке Graphics НЕ хайрез картинки(пустышки или просто стандартный дум шрифт.. ) а в папке Hires уже нормальный шрифт
Добавлено спустя 1 минуту 35 секунд:
На этот альтернативный HUD смотрю, аж плакать хочется.. до чего же он не удобен)
theleo_ua:
А зачем тебе отдельные картинки? Ну кроме причины "их проще редактировать/обновлять". Или ты хочешь хайрез?
А это просто для свободы. Я бы вообще хотел юзать 1 шрифт во всем проекте, не понимаю зачем куча разных.
theleo_ua:
Т.е. импортишь confont в большую картинку imagetool-ом, увеличиваешь ее например в 4 раза, дальше копипастишь туда все свои замены "гоззовским курсорам", и импортишь обратно в confont (фонтгеном), такое не поможет тебе?
Вот именно это мне и надо!!! Хотя бы изменить стандартный confont.. поменять курсор, скроллы мб перерисовать чуть как-то.. Но у меня Imagetool вообще не работает, пробовал на ноуте и на ПК.. просто вылетает.
На этот альтернативный HUD смотрю, аж плакать хочется.. до чего же он не удобен)
кстати, оцени: Pixel quadruple (development version a893013 only)
поняли, что Pixel double все равно мало для полного счастья на больших мониторах/разрешениях. Хотя если на то пошло, quadruple тоже будет мало (например на 4к разрешениях), по хорошему бы еще 6x/8x скейлинг сделать, а лучше вообще скроллбар или числовую переменную в стиле "какое значение ввел, на такое и множится размер хада"
alekv:
А это просто для свободы. Я бы вообще хотел юзать 1 шрифт во всем проекте, не понимаю зачем куча разных.
да, это было бы удобнее, согласен
alekv:
Вот именно это мне и надо!!! Хотя бы изменить стандартный confont.. поменять курсор, скроллы мб перерисовать чуть как-то.. Но у меня Imagetool вообще не работает, пробовал на ноуте и на ПК.. просто вылетает.
он консольный, его надо юзать в стиле imagetool_x64.exe bmp confont_zdoom_original.lmp confont.bmp или imagetool_x64.exe confont confont.bmp confont.lmp
но если у тебя даже так не пашет, могу тебе сконвертить confont и выложить картинку (а конвертация картинки обратно в confont легко делается через fontgen, особенно если картинка труколорная, которую ты в "фотошопе" редактировал)
а если у тебя картинка не будет нормально конвертиться обратно в confont, то тоже могу подсказать как это лечится
SSV_Victoryan Смотри: Graphics/SMALFNT/ и тут лежат маленькие картинки шрифта, именно такого размера будет шрифт!!! (что на них изображено не имеет значения т.к. это показываться не будет) Hires/SMALFNT/ тут лежат большие картинки шрифта!!! Они будут уменьшены gzdoom-ом до размера маленьких, тех что в Graphics
Что папка Graphics что Hires лежат в корне архива(там где все остальные папки такие как Sprites, Sound, Textures etc). Т.е. не надо их засовывать куда-то еще. Имена что маленьких что больших картинок должны быть одинаковы!! Скрин где должны лежать папки Graphics и Hires, а внутри этих папок папки SMALLFNT:
Скрытый текст:
Добавлено спустя 5 минут 2 секунды:
theleo_ua:
кстати, оцени: Pixel quadruple (development version a893013 only)
Моя бы воля, я бы его уже давно убрал бы и запилил нормально MENUDEF+SBARINFO без всяких доп hudов.. Жаль это не в моих планах
theleo_ua:
он консольный, его надо юзать в стиле imagetool_x64.exe bmp confont_zdoom_original.lmp confont.bmp или imagetool_x64.exe confont confont.bmp confont.lmp но если у тебя даже так не пашет, могу тебе сконвертить confont и выложить картинку (а конвертация картинки обратно в confont легко делается через fontgen, особенно если картинка труколорная, которую ты в "фотошопе" редактировал)
Он у меня просто вылетает, показывается консоль и закрывается.. на ПК x32 винда7, на ноуте тоже самое, но там x64 винда 8.1 Если он чисто консольный, я бы врятли что-то смог сделать, т.к. не шарю в ней Ну если не сложно, хорошо бы было выложить картинку CONFONT.. и написать мини мануальчик про нюансы обратной конвертации, я бы в шапку темы добавил, другим может тоже полезно будет
Graphics/SMALFNT/ и тут лежат маленькие картинки шрифта, именно такого размера будет шрифт!!! (что на них изображено не имеет значения т.к. это показываться не будет) Hires/SMALFNT/ тут лежат большие картинки шрифта!!! Они будут уменьшены gzdoom-ом до размера маленьких, тех что в Graphics
Что папка Graphics что Hires лежат в корне архива(там где все остальные папки такие как Sprites, Sound, Textures etc). Т.е. не надо их засовывать куда-то еще. Имена что маленьких что больших картинок должны быть одинаковы!!
Сделал всё как ответил мне. Создал в корне архива папки Graphics и Hires, в каждой из них создал папку SMALLFNT. В обе папки SMALLFNT положил картинки букв русского алфавита(сделал их стандартных малых красных букв doom2) в png формате. В игре показывает англ шрифт нормально и тут же следом русский выдаёт неправильный... что не так может быть?
И ещё вопрос, буква Ё учитывается в этом диапазоне между STCFN224" по "STCFN255 в большом и малом шрифте?
Он у меня просто вылетает, показывается консоль и закрывается
Скрытый текст:
Это типичное поведение консольных программ: если не указать параметры командной строки, то консольное приложение открывается и закрывается. Представь, что gzdoom работал бы по следующему принципу:
- если ты запускаешь просто gzdoom.exe то он открывается и закрывается - если ты запускаешь "gzdoom.exe -warp 1 - skill 5" то он открывается и стартует тебе первый уровень на 5-й сложности - если ты запускаешь "gzdoom.exe -playdemo alekv.lmp" то он открывается, стартует тебе проигрывание демки alekv.lmp и по окончании проигрывания закрывается
Вот по такому же принципу работают многие консольные приложения: если параметры не указал, то они не понимают, что от них хотят, и завершают работу (а если указал, то начинают делать то, что ты указал)
Ну если не сложно, хорошо бы было выложить картинку CONFONT.. и написать мини мануальчик про нюансы обратной конвертации, я бы в шапку темы добавил, другим может тоже полезно будет
Выкладываю (чтобы не париться со спойлерами/ссылками, скопипастишь текстовый вариант текущего комментария отсюда ):
В последующих шагах будут указаны папки и файлы из этого архива
Шаг 2: конвертация confont из zdoom в формат картинки:
Скрытый текст:
Шаг 2: конвертируем confont в виде картинки. Простой способ: взять их из архива из шага 1 в папке "IMAGES\001 - ORIGINAL 8BIT BMP". Сложный способ: берем из того же архива папку IMAGETOOL (на выбор x32 или x64 версию) и кидаем туда confont.lmp из архива gzdoom.pk3 вашей гоззы. Примечание:
Скрытый текст:
для удобства, чтобы потом его случайно не затереть при обратной конвертации картинки в confont, я рекомендую переименовывать его, например в confont_zdoom_original.lmp
после этого пускаем батник _ZDOOM_TO_BMP.BAT, который сконвертирует confont в картинку. Примечание:
Скрытый текст:
батник _ZDOOM_TO_BMP.BAT в качестве источника ищет именно confont_zdoom_original.lmp, а не confont.lmp, так что либо переименовывайте confont.lmp в confont_zdoom_original.lmp, либо редактируйте батник
текст батника на всякий случай:
для confont_zdoom_original.lmp в качестве источника: imagetool_x32.exe bmp confont_zdoom_original.lmp confont.bmp imagetool_x64.exe bmp confont_zdoom_original.lmp confont.bmp
для confont.lmp в качестве источника: imagetool_x32.exe bmp confont.lmp confont.bmp imagetool_x64.exe bmp confont.lmp confont.bmp
Если консоль и батники взорвали вам мозг, то напоминаю, что все картинки уже есть в папке "IMAGES" архива из шага 1
Шаги 3-6: выбор + установка размера шрифта:
Скрытый текст:
Шаг 3: выбор размера шрифта:
Скрытый текст:
Шаг 3: определяемся, какой размер результирующего консольного шрифта вы себе хотите:
1х - стандартный гоззовский размер 2х - двукратный размер 3х - трекратный размер и т д
Напоминаю, что несмотря на то, что дву и более кратные размеры приятнее для глаз (особенно на больших разрешениях), они частично ломают alternative HUD (плюс что-то еще может сломаться, надо внимательно тестить). Так что возможно имеет смысл вместе со своими модами поставлять разные версии confont: стандартный однократный (где гарантированно ничего не сломано) и многократный (где красивее)
Соответственно, если вы хотите несколько размеров, то просто повторяем шаги несколько раз для каждого из требуемых размеров
Шаг 4: установка размера шрифта:
Скрытый текст:
Шаг 4: Если на шаге 3 вы выбрали размер 1х, то переходим на шаг 5. Если нет, то увеличиваем картинку confont.bmp в любом подходящем графическом редакторе (я пользуюсь xnview) во столько раз, какой размер шрифта вы хотите.
Важно: при увеличении есть как минимум 2 варианта: использовать сглаживание (фильтрация "качество") или не использовать (на выходе будет просто увеличенный пиксельарт). Мои тесты показали, что шрифт в гоззе выглядит красивее, если использовать сглаживание при увеличении, но ваши тесты могут показать другие результаты (ибо в гоззе куча опций (например hq4x), разрешений и т д. Так что экспериментируйте и находите лучший результат для себя, а я буду рассказывать, как увеличивать в стиле pixelart (если нужны дополнительные инструкции, как сглаживать в режиме "максимальное качество картинки", пишите, добавлю).
Если лень заморачиваться, и охота пропустить шаги 4 и 5, то просто находим требуемую картинку в папке "IMAGES\003 - SCALED 24BIT PNG BLUE" архива из шага 1 и переходим на шаг 6
Если же охота самому поэкспериментировать, тогда показываю на примере xnview, как изменить размер без сглаживаний:
1) открываем картинку и нажимаем "изображение / изменение размера"
Скрытый текст:
2) в появившемся окне ставим %, интерполяция по соседним (как показано красным на скрине):
Скрытый текст:
3) для 2х размера шрифта ставим 200/200 (как показано красным на скрине):
Скрытый текст:
для 4х размера шрифта ставим 400/400 и т д
4) нажимаем ок
Шаг 5: сохранение размера шрифта:
Скрытый текст:
Шаг 5:
5) нажимаем файл / сохранить как, выбираем формат png и сохраняем
6) теперь у нас есть файл, с которым мы можем переходить на шаг 6 и начинать редактировать сами символы
Шаги 6-12: редактирование и сохранение картинки:
Скрытый текст:
Шаг 6: открываем файл-результат шага 5 (или 4, если не заморачивались) в любом подходящем графическом редакторе (я использую paint.net)
Шаг 7: редактируем картинку: заменяем текущие символы на те, которые требуются вам. В идеале делать так, чтобы фон символа всегда был один и тот же (синий в данном случае), иначе будет лишний геморрой с затиранием фона на последующих шагах
Шаг 8: после того, как редактирование закончено, нажимаем файл/сохранить как, выбираем png, и в появившемся окне выбираем 32 бита:
Скрытый текст:
Шаг 9: если возникла необходимость продолжить редактирование файла из шага 8, то открываем его и редактируем (с последующим сохранением в 32битном режиме). Если же редактирование закончено, и хотите уже конвертить в confont.lmp, тогда идем на шаг 10:
Шаг 10: в paint.net нажимаем "волшебная палочка", потом "заполнение / глобальная":
Скрытый текст:
Шаг 11: после этого нажимаем левой кнопкой мыши на синем фоне картинки (будет примерно так) ) и нажимаем DEL на клавиатуре, после чего будет вот так:
Скрытый текст:
после этого нажимаем файл/сохранить как, выбираем png, и в появившемся окне выбираем 32 бита
Шаг 12: важное уточнение: рекомендую на шагах 8 и 11 использовать разные файлы (тобишь на шаге 11 не затирать результат шага 8). Это нужно потому, что результат шага 8 криво воспримется гоззой (вместо прозрачного фона будет белый и прочие глюки), а результат шага 11 неудобно редактировать (буквы сливаются с фоном). Следовательно, если вы на шаге 11 перезатрете результат шага 8, а потом захотите доредактировать (например вспомните, что надо еще добавить букву Ё), то вместо того, чтобы начать уже на шаге 8, начнете с шага 1 (ну или будете танцевать с бубном, чтобы сделать обратный эффект преобразования шага 11 в шаг 8, что далеко не факт что даст адекватный результат, в общем мое дело предупредить).
Примеры прозрачных 32битных картинок, которые можно кормить фонтгену на следующем шаге 13, можно найти в папке "IMAGES\004 - SCALED 32BIT PNG ALPHA" архива из шага 1
Шаги 13-15: конвертирование картинки обратно confont для zdoom, тестирование результатов и исправление ошибок:
Скрытый текст:
Шаг 13: конвертируем результат шага 11 в confont.lmp:
1) открываем FONTGEN/doomfontgen.bat из архива из шага 1
2) нажимаем tools / create font lump from image:
Скрытый текст:
3) выбираем: font type - console font, prepare - fix palette, source image - файл из шага 11, output lump - файл результат:
Скрытый текст:
и нажимаем create lump, получая результирующий confont.lmp
Шаг 14: кидаем файл-результат, полученный на шаге 13, в корень вашего мода, и начинаем тестить как это выглядит в гоззе (в первую очередь обращаем внимание на консоль, опции (особенно те, где есть скроллбары, например Sound options), курсоры, alternative HUD и прочие проблемные места где используется confont)
Шаг 15: если на шаге 14 найдена проблема конкретно взятого символа, переходим на шаг 9 и исправляем ошибку. Если же проблема "размер шрифта слишком большой", переходим на шаг 3
theleo_ua Ну вот и долгожданное пополнение для руководства по шрифтам В общем добавил в шапку темы мануал по CONFONT... Вообще очень полезно т.к. все запутано с этим конфонтом.
SSV_Victoryan Честно, не понимаю почему у тебя не получается, там же все просто? Может ты с именами где-то напортачил ? У тебя англ буквы норм показывает, а русские нет? Внимательно посмотри на имена букв, думаю с ними что-то не так..
theleo_ua Ну вот и долгожданное пополнение для руководства по шрифтам В общем добавил в шапку темы мануал по CONFONT... Вообще очень полезно т.к. все запутано с этим конфонтом.
Кстати, в меню опций "customize controls" сами значения (например "ctrl or mouse1") тоже конфонтом отображаются, причем если размер шрифта многократный и использовался pixelart способ увеличения (а в гоззе включен hq4x), то будут заметны кривости отображения шрифта (лечится использованием "фильтрация качество" при увеличении картинки вместо pixelart)
SSV_Victoryan:
Сделал всё как ответил мне. Создал в корне архива папки Graphics и Hires, в каждой из них создал папку SMALLFNT. В обе папки SMALLFNT положил картинки букв русского алфавита(сделал их стандартных малых красных букв doom2) в png формате. В игре показывает англ шрифт нормально и тут же следом русский выдаёт неправильный... что не так может быть?
1) Запусти у себя свой мод и сделай скриншоты тех мест, где требуется отображение русских символов, но они не отображаются (с указанием стрелочкой на скриншоте, где именно) 2) Выложи свой мод
1) Запусти у себя свой мод и сделай скриншоты тех мест, где требуется отображение русских символов, но они не отображаются (с указанием стрелочкой на скриншоте, где именно) 2) Выложи свой мод
Ну скрин то я могу выложить, но толку то Мод выложить не могу целиком, много весит и палить кантору не хочется как-то. А вот вырезку из него пожалуйста https://yadi.sk/d/I52mbJCVuTJJG то что именно шрифта касаемо и то что спалить не жалко)