PDA

Просмотр полной версии : ltn0.pgf - [FAQ] TTF2PGF - Конвертируем шрифты Windows для PSP


ErikPshat
10.02.2010, 12:08
TTF2PGF

10644

В коде ниже - содержимое батника с полной инструкцией, выполняющего команды по конвертации TTF в PGF. Вы можете выделить его содержимое, скопировать в текстовой документ, а затем переименовать расширение .txt на .bat и у вас получится исполняемый батник. Хотя он прилагается в ссылке на скачку внизу страницы.

@echo off
rem - означает строку с поясняющим комментарием, без вывода на экран.

rem /* Инструкция по использованию. */

rem *.ttf - название шрифта для конвртирования. * - любое название.
rem ltn0.pgf - название шрифта на выходе.

rem /* "Опции шрифта". Цифры приведены для примера и используются именно в таком формате */
rem 18 - целое число, высота шрифта в пикселях (пределы: 8-32 (рекомендуется 16-24))
rem h1.00 - коэффициент горизонтального масштабирования буквы (пределы: 0.75-1.50)
rem а1.00 - коэффициент расстояния между буквами (пределы: 0.75-1.50)
rem b - добавляет жирность к шрифту.
rem i - добавляет наклон к шрифту.

rem /* "Опции теней". Отделяются пробелом от "Опций шрифта". */
rem n - без теней (по умолчанию, если не использовать "Опцию теней").
rem b2.5 - радиальный фильтр размытия тени: Gaussian blur (пределы: 0.1-4.0)
rem i1.0 - интенсивность или прозрачность тени (пределы: 0.0-4.0)
rem x3 - расположение теней по горизонтальной оси X (пределы: -3,-2,-1,0,1,2,3)
rem y2 - расположение теней по вертикальной оси Y (пределы: -3,-2,-1,0,1,2,3)

rem /* "Опция вывода превью шрифта в BMP". Отделяется пробелом от "Опции теней". */
rem font.bmp - вывод картинки BMP для предпросмотра получившегося шрифта.

rem /* Ниже - сама исполняемая командная строка, о функциях которой говорилось выше. */
ttf2pgf *.ttf ltn0.pgf 18h1.00a1.00bi b2.5i1.0x3y2 font.bmp

echo DONE!
pause

Выкладываю консольную программу "TTF to PGF" с готовым прокомментированным полнофункциональным батником.

Предназначается для конвертации обычных шрифтов Windows формата TTF (FreeType2) в формат шрифтов PGF, использующихся на PSP, таких как ltn0.pgf, kr0.pgf, jpn0.pgf и др.

На PSP эти шрифты находятся в файле flash0:/font/ltn0.pgf

Использование:


Положите понравившийся шрифт Windows имя_шрифта.ttf в папку TTF2PGF с программой.
Нажмите правой кнопке по батнику "Convert to PGF.bat" и выберите пункт "Изменить".
В открывшемся блокноте отредактируйте командную строку в соответствии с вашими желаниями (она находится в самом конце):
1ttf2pgf *.ttf ltn0.pgf 18h1.00a1.00bi b2.5i1.0x3y2 font.bmp
Все необходимые настраиваемые параметры, которые можно изменять, вы найдёте в комментариях выше в этом файле. Например: уберите "b", если вам не нужна жирность, уберите "i", если не нужна наклонность, сделайте крупнее или мельче шрифт и т.д., как вам заблагорассудится.
Сделав необходимые изменения, закройте блокнот и сохранитесь.
Запустите этот батник "Convert to PGF.bat" для старта конвертации.
Полученный результат вы можете тут-же просмотреть с помощью сгенерированной картинки font.bmp
Заберите получившийся шрифт ltn0.pgf и закиньте его во flash0:/font/, заменив им оригинальный или используйте в темах CTF.
ВНИМАНИЕ! На непрошиваемых моделях 200х ТА-088v3 и всех 300х заменять шрифт во Flash0 опасно!
Используйте его только в темах CTF!
Всё, можете радоваться вашим любимым шрифтом в PSP.

Во вложении лежит готовая сборка со всеми прописанными параметрами по стандарту.

В архиве, для примера лежит шрифт TimesNewRoman.ttf, который я немного кастомизировал, удалив лишние языки, которые шли после русского алфавита. Английский вначале естесственно остался.

Так-же я в нём продублировал русский алфавит в области C0-FF (192-256). Поэтому его можно использовать в программах и плагинах, используя 8-битную (1-байтную) кодировку, вместо UTF-8.
Как он выглядит, можете посмотреть на скриншоте выше.

Примечание:После разархивирования, не переносите из папки никакие файлы в другое место. Только всю папку со всем содержимым, так как в папке находятся скрытые файлы программы, которые вы не увидите, но без которых невозможна работа программы.

Дополнительно (http://bbs.pspchina.net/viewthread.php?tid=264901).

Ins|der
28.04.2010, 12:30
ErikPshat, я тоже чего-то не понял. Оригинальные файлы во flash0 непрошиваек заменять нельзя вроде) Или к шрифтам это не относится?

frostegater
14.05.2011, 11:41
ErikPshat, хм. Удали шрифт jpn0.pgf и перезапусти PSP, посмотри. Даже если можно положить любой файл под названием *pgf (кривой, целый), то всё равно со шрифтами это завязано.

ErikPshat
14.05.2011, 12:18
Frostegater, да, проверил, если удалить jpn0.pgf, то действительно каждый раз грузит синий экран и войти в прошивку невозможно. То есть это будет полубрик, который на непрошивайке фактически уже не лечится обычным способом, то есть, нельзя войти в прошивку, чтобы загрузить кастом и подключить Flash0, чтоы вернуть оригинал обратно.

Так что на непрошивайках это делать очень опасно!
Шрифт должен быть заранее проверен на работоспособность сначала на прошивайке.

P.S. Но если не удалять, а подсунуть вместо оригинального jpn0.pgf, какой либо другой, например самый маленький ltn9.pgf, переименовав его копию, как jpn0.pgf, то PSP включается и работает без проблем.

lupus
09.12.2012, 14:27
Эрик, конверчу шрифты таким скриптом:
1ttf2pgf arialn.ttf font_12.pgf 12h1.00a1.00b b2.5i1.0x3y2 arialn_12.bmp
Как правильно должен выглядеть параметр а1.00, чтобы расстояние между символами было минимальным?

ErikPshat
09.12.2012, 18:25
Как правильно должен выглядеть параметр а1.00, чтобы расстояние между символами было минимальным?
Думаю так, как описано в комментарии:

а0.75 - коэффициент расстояния между буквами (пределы: 0.75-1.50)

Можно ещё этот параметр снизить:

h0.75 - коэффициент горизонтального масштабирования буквы (пределы: 0.75-1.50)


То есть, минимальное значение a0.75

1ttf2pgf arialn.ttf font_12.pgf 12h0.75a0.75b b2.5i1.0x3y2 arialn_12.bmp

Ещё можно жирность убрать. Но нужно всегда проверять, т.к. часто бывает, когда расстояние слишком маленькое, то у букв срезается часть или некоторые буквы становятся тоньше других.

lupus
09.12.2012, 19:12
В том то и дело, что я ставлю точку и в этом слечае софтина ругается на неверный аргумент:/
С жирностью всё в порядке, а вот отступы слишком большие получаются. Это для меня критичто, т.к. сейчас пытаюсь сделать шрифт для Final Fantasy 3. Русские диалоги доиннее оригинальных и надо заузить шрифт, чтобч текст помещался в отведённые поля. В соседней теме выкладывал скрины, но на них родные шрифты из f0 для теста взяты. Пробую собрать шрифт из arial narrow, ширина символов мне подходит, а вот отступы слишком большие получаются.

ErikPshat
09.12.2012, 19:44
В том то и дело, что я ставлю точку и в этом слечае софтина ругается на неверный аргумент:/
Не понял почему у тебя ругается, но щас проверил - скрипт нормально отрабатывает с а0.75: http://zalil.ru/34050731 (http://zalil.ru/34050731)

http://img829.**************/img829/3540/fontfh.jpg

Обновил перевод: http://www.pspx.ru/forum/showpost.php?p=1057432&postcount=323
Думаю теперь всё пучком будет.

lupus
09.12.2012, 20:21
Ага. Получилось, спасибо, наверное пора с вискариком завязывать - совсем невнимательный стал %)
Обнаружил, что 0.75 не нижняя граница, сейчас 0.5 поставил. На картинке, которая генерится с примером шрифта не совсем верно отступы отображаются. Экспериментирую.

WyrmBeast
05.01.2013, 00:07
При попытке создания шрифта и запуска Бат-файла выдаёт ошибку ("invalid shadow option 'x') и, соответственно, не создаёт файл...:dash::dash:

ErikPshat
05.01.2013, 05:01
WyrmBeast, либо шрифт кривой, не TTF, либо значения теней не правильно выставлены.

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

WyrmBeast
05.01.2013, 13:22
WyrmBeast, либо шрифт кривой, не TTF, либо значения теней не правильно выставлены.

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

Шрифт именно TTF(arial narrow),значения теней выставлял что по образцу,что не по образцу - ошибка все равно выходила...Я даже весь ваш код копировал БЕЗ замены на свои значения,только название TTF изменял...точно так же :unknw:
Сейчас попробую из вложения качнуть...

lupus
06.08.2013, 09:36
Реанимируем проект перевода FFIII для psp. Текстовая часть полностью готова. Шрифты я сгенерировал при помощи ttf2pgf, всё вроде бы ничего, но в ней нельзя задать величину вертикального отступа, поэтому я столкнулся с одним "подводным камнем":
https://dl.dropboxusercontent.com/u/57975554/PSP/pics/ff3/screen00003.jpg
Межстрочный отступ слишком большой.
Если в образ пихнуть любой шрифт из flash0, например ltn8, то по высоте текст отлично помещается в отведённое ему место, но он меня не устраивает по ширине, т.к. в меню не поместятся в отведённое место некоторые надписи, а также не влезут некоторые диалоги.
Исходников софта для работы с pgf в сети я не обнаружил, за исключением pgftool от авторов ppsspp на гитхабе, но они не компилятся в 10 студии, скорее всего написаны под линукс. Бинарника этой проги нет, поэтому я даже не знаю, на что она способна.
Пытаюсь разобраться с форматом сам, ковыряя в хексе. CTFTool GUI умеет дампить различную информацию из pgf: header, metrics, chars, info. В целом там, наверное, исчерпывающаа информация содержится, но вот в каком виде она хранится в самом шрифте я не пойму :(
Эрик, может будет желание и время глянуть?
Заранее спасибо.

Yoti
06.08.2013, 23:02
lupus,
так может границы глифов исходного шрифта поковырять тебе?
P.S. Не нашёл никаких тулзов для шрифтов на гитхабе, только библиотеки отрисовки.

lupus
06.08.2013, 23:46
Етя, а ты интересную идею подкинул.
Может подскажешь какую бесплатную софтину для этого?

Yoti
07.08.2013, 18:34
lupus,
я даже хорошей платной не нашёл, когда лет 6-7 назад шрифтами интересовался.

lupus
07.08.2013, 22:48
Побаловался я с высотой глифов - никакого результата это мне не дало, всё же где-то в PGF хранится значение вертикального отступа :/

lupus
07.08.2013, 22:58
lupus,
Не нашёл никаких тулзов для шрифтов на гитхабе, только библиотеки отрисовки.
https://github.com/tpunix/pgftool
Правда не знаю, что именно это такое...

Scorpeg
29.03.2015, 13:19
ErikPshat, а тебе не попадался какой-нибудь просмотрщик этих pgf-шрифтов? А то вот дохрена значит pgf и непонятно, какие там символы вообще есть, кроме как забивать на PSP и там буквы выводить и смотреть.

riku.kh3
29.03.2015, 14:55
В 'tpunix-pgftool' есть dump_pgf, ключом -b он сохраняет bmp-картинки со всеми глифами, так можно посмотреть.

Scorpeg
29.03.2015, 15:55
О, вот про ключ я не знал, сейчас опробуем!

/upd Точно, все так и есть! Может ты знаешь как их и обратно запихать? :)

riku.kh3
29.03.2015, 17:19
Нет, обратно запихать софта нет, только из TTF. Разве что сорсы смотреть как оно там хранится и самому садиться писать.

miaskoo
09.02.2016, 00:16
Коэффициент жирности случаем нельзя как-нибудь редактировать?
Также не понял можно ли засовывать не только англ и русские символы (например юникодовские шрифты ни в какую не захотел съедать, в pgf оставалась лишь кириллица и латиница).

ErikPshat
09.02.2016, 00:34
Коэффициент жирности случаем нельзя как-нибудь редактировать?
b - добавляет жирность к шрифту.

Так же, жирность увеличивается пропорционально размеру шрифта:
18 - целое число, высота шрифта в пикселях (пределы: 8-32 (рекомендуется 16-24))

Ещё можно жирность увеличить с помощью теней, ставишь смещение тени по осям x и y на 0, вот так x0y0, делаешь радиальное размытие, т.е. вокруг буквы ореол чуть толще, как тебе надо, например b3.0 и насыщенность на максимум i4.0.

Получится как-то так: ttf2pgf *.ttf ltn0.pgf 24h1.00a1.00b b3.0i4.0x0y0 font.bmp


Насчёт юникода не знаю. Может он должен присутствовать в самом шрифте TTF.

miaskoo
09.02.2016, 16:23
ErikPshat, если увеличивать размер, то буквы становятся слишком большими и соответственно не влезают куда нужно, а если их сделать меньше и оставить без жирности, то они очень очень тонкие, можно ли применить эффект жирности лишь наполовину? Тк слишком уж толстыми выходят буквы... Или только шрифт вручную редактировать? Тк на пк при том же размере, буквы не такие тонкие.

ErikPshat
09.02.2016, 16:54
miaskoo, а кто заставляет делать буквы большими и жирными или маленькими и не жирными? Неужели нельзя сделать средними и жирными?
Ну если вам жирность мешает, то регулируйте тенями без смещения в сторону.

miaskoo
10.02.2016, 16:50
ErikPshat, суть как раз в том что мне нужны буквы определенного размера с определенной жирностью) Попробую помутить с тенями тогда, но врятли это даст тот результат который нужно. А вот как засунуть не только латиницу и кириллицу - разобрался (оказывается pgftool умеет это).

ErikPshat
11.02.2016, 06:03
miaskoo, может ты просто не тот исходный файл шрифта TTF берёшь? Они ведь бывают разные, например Regular, Bold, Italic.

DeadDark
24.09.2019, 07:47
А возможно потом pgf шрифт использовать прямо из образа?

ErikPshat
24.09.2019, 08:33
DeadDark, да можно, можно.
Разве разработчикам игр кто-то запрещает шрифты pgf использовать в играх?
Вот и я тебе тоже разрешаю.

DeadDark
24.09.2019, 09:58
У меня не работает. Диспетчер нагружается процессами "1ttf2pgf", всё виснет, появляется ошибка и вырубается

ErikPshat
24.09.2019, 10:22
DeadDark, ну так ясен пень, что значит не судьба. У меня работает и всех других работает. А если не хватает ума, так может стоит прекратить этим заниматься?

DeadDark
24.09.2019, 10:52
DeadDark, ну так ясен пень, что значит не судьба. У меня работает и всех других работает. А если не хватает ума, так может стоит прекратить этим заниматься?
Скачал с другого сайта и запустил напрямую через cmd, заработало. Либо эта версия на 10 окнах не работает, либо батник кривой.

MR_PS3
22.08.2022, 17:07
Делаю всё по инструкций, но всегда выходит эта ошибка

Ошибка при запуске приложения (0xc000012d). Для выхода из приложения нажмите кнопку "ОК".

Как решить?