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-картинки со всеми глифами, так можно посмотреть.


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

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