PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Тюнинг интерфейса PSP (https://www.pspx.ru/forum/forumdisplay.php?f=109)
-   -   ltn0.pgf - [FAQ] TTF2PGF - Конвертируем шрифты Windows для PSP (https://www.pspx.ru/forum/showthread.php?t=86308)

ErikPshat 10.02.2010 12:08

ltn0.pgf - [FAQ] TTF2PGF - Конвертируем шрифты Windows для PSP
 
Вложений: 3
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

Использование:
  1. Положите понравившийся шрифт Windows имя_шрифта.ttf в папку TTF2PGF с программой.
  2. Нажмите правой кнопке по батнику "Convert to PGF.bat" и выберите пункт "Изменить".
  3. В открывшемся блокноте отредактируйте командную строку в соответствии с вашими желаниями (она находится в самом конце):
    Код:

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

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

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

Примечание:
Цитата:

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


Дополнительно.

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

Цитата:

Сообщение от lupus (Сообщение 1057734)
Как правильно должен выглядеть параметр а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

Цитата:

Сообщение от lupus (Сообщение 1057767)
В том то и дело, что я ставлю точку и в этом слечае софтина ругается на неверный аргумент:/

Не понял почему у тебя ругается, но щас проверил - скрипт нормально отрабатывает с а0.75: http://zalil.ru/34050731
[IMG]http://img829.**************/img829/3540/fontfh.jpg[/IMG]

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

Цитата:

Сообщение от ErikPshat (Сообщение 1060785)
WyrmBeast, либо шрифт кривой, не TTF, либо значения теней не правильно выставлены.

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

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

lupus 06.08.2013 09:36

Реанимируем проект перевода FFIII для psp. Текстовая часть полностью готова. Шрифты я сгенерировал при помощи ttf2pgf, всё вроде бы ничего, но в ней нельзя задать величину вертикального отступа, поэтому я столкнулся с одним "подводным камнем":
https://dl.dropboxusercontent.com/u/...creen00003.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

Цитата:

Сообщение от Yoti (Сообщение 1076179)
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

Цитата:

Сообщение от miaskoo (Сообщение 1101768)
Коэффициент жирности случаем нельзя как-нибудь редактировать?

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

Цитата:

Сообщение от ErikPshat (Сообщение 1194168)
DeadDark, ну так ясен пень, что значит не судьба. У меня работает и всех других работает. А если не хватает ума, так может стоит прекратить этим заниматься?

Скачал с другого сайта и запустил напрямую через cmd, заработало. Либо эта версия на 10 окнах не работает, либо батник кривой.

MR_PS3 22.08.2022 17:07

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

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

Как решить?


Текущее время: 14:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.