Установка шрифта в игру

К комментариям (3)
09.04.2019 — 09:39
Автор: Meridiano

Данная статья объяснит, как добавить в игру тот или иной понравившийся лично вам шрифт.

Итак, вам наскучили "ванильные" шрифты игры, а готовые из модов не в вашем вкусе. Самое время заняться внедрением в игру любого шрифта, который вам по душе.

Что вам потребуется:

  1. Программа FontForge для редактирования и создания шрифтов.
  2. Программа Skyrim FontGen для создания SWF-файла, содержащего шрифт.
  3. Программа JPEXS Free Flash Decompiler для предпросмотра результата вашей работы.
  4. (Опционально) Программа Join Multiple SWF Files Into One для объединения SWF-файлов.

    Примечание: Skyrim FontGen требует для работы Flex SDK, который и занимает такой объём. Если хотите, можете выяснить, какие ресурсы при работе не используются, и удалить их самостоятельно. В архиве по ссылке находится полный Flex SDK версии 4.6.

Часть I - Редактирование шрифта

Рассмотрим в качестве примера шрифт Exo 2.0 Regular. Откройте его программой FontForge, на всякий случай - от имени администратора.

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

pre_1536162987__001.png

Избавьтесь от них простейшим способом: выделите их простым нажатием или перетаскиванием мыши, после чего кликните "ПКМ ➔ Очистить".

Итак, лишние символы между первым пробелом (U+0020) и буквой "ё малая" (U+0451) удалены. Но файл шрифта может содержать множество "мусора" и за этими границами. Чтобы упростить задачу, выделите символы от U+0020 до U+0451 и используйте меню: "Правка ➔ Выделить ➔ Инвертировать выделение". После чего "ПКМ ➔ Очистить". Отлично, вы окончательно избавили шрифт от ненужных символов.

Теперь я расскажу вам про одну особенность, которая касается именно Скайрима. Для корректного отображения кириллицы вам необходимо скопировать символы русского алфавита от "А большая" до "я малая" - U+0410 и U+044F соответственно. После чего вставить их в ячейки с U+00C0 по U+00FF. Да, у вас будет 2 набора кириллических символов.

pre_1536164701__002.png

Такую же операцию желательно произвести с пробелами - они должны быть в двух местах: U+0020 и U+00A0.

Как вы могли заметить, шрифт довольно широкий и наверняка им будет слишком неудобно пользоваться в игре (например, в MCM). Можно ли как-то сжать его? Можно. Выделите все символы, которые хотите изменить (обычно я выбираю вообще все кроме пробелов) и используйте меню: "Элемент ➔ Преобразования ➔ Преобразовать..."

Используйте следующие настройки (учтите, что масштабы подбираются для шрифта индивидуально):

pre_1536165539__003.png

Сохраните работу в формате SFD, после чего создайте новый шрифт в формате TTF (всё это возможно в меню "Файл"). Настройки TTF следующие:

pre_1536165759__004.png

Отлично! Теперь у вас есть шрифт, который точно подойдёт к игре (ну, более-менее).

Часть II - Шрифт внутри SWF

Распакуйте архив с программой "Skyrim FontGen" и запустите SkyrimFontGen.exe, после чего выберите ваш новый созданный TTF-файл. Выберите внутреннее имя шрифта (я взял ExoTwo) и сохраните сгенерированный SWF-файл в нужную вам папку. Заветное окно с сообщением:

pre_1536166715__005.png

Если всё прошло удачно, вы сможете открыть SWF-файл программой "JPEXS Free Flash Decompiler" и увидеть примерно следующую картину:

pre_1536167269__006.png

ЧасТь III - Ввод шрифта в игру

По желанию можете переименовать файл во что-нибудь более близкое к игре, например в "fonts_et.swf". После чего откройте папку Скайрима Data/Interface и скопируйте туда этот SWF-файл.

Далее вам нужно указать игре название шрифта и откуда его "брать". Это делается при помощи файла "fontconfig.txt" (обязательно сохраните его оригинал, чтобы все изменения можно было откатить - переименуйте его копию в "fontconfig.txt.backup"). В начале файла указывается список библиотек (впишите в него свою), в основной части - названия шрифтов (укажите выбранное вами внутреннее имя шрифта).

pre_1536169590__007.png

ЧасТь IV - Объединение

Опциональные действия, которые могут пригодиться не всем. Если вы хотите иметь один SWF-файл с несколькими шрифтами вместо целой кучи простеньких библиотек, то вам необходимо следующее:

  1. Откройте интерфейс "Join Multiple SWF Files Into One".

  2. Добавьте в него нужные вам для объединения SWF-файлы со шрифтами.

  3. Укажите папку вывода для готового файла (по умолчанию - Рабочий стол).



  4. Нажмите самую большую и главную кнопку "Start Joining". Получите файл "joined.swf".

  5. Проверьте файл программой "JPEXS Free Flash Decompiler" - там должны быть ваши шрифты, целые и невредимые.



  6. Повторите действия из части III - уже с файлом "joined.swf".

Часть V - тестирование

Если вы всё сделали верно, то игра будет использовать ваш шрифт практически везде - от главного меню до инвентаря. Хотите разные шрифты? Создавайте разные SWF-библиотеки, сочетайте шрифты как вам хочется при помощи "fontconfig.txt", чем больше вы будете этим заниматься - тем легче это будет вам даваться.

pre_1536168642__008.png

В завершение позвольте поделиться с вами несколькими шрифтами, которые я прогнал через этот гайд и успешно протестировал в игре.

Смотрите прикреплённый файл.

6

Комментарии

06.09.2018 — 00:24

Обязательно опробую.

09.09.2018 — 23:26
Ну FontForge - понятно, сойдёт любая и более доступная
JPEXS Free Flash Decompiler - или Sothink SWF Decompiler, да платный, но и с триалом (хотя скачать его с кряком чуть-ли не проще чем с их офсайта. А вот указанный JPEXS у меня как-то захотел непонятно какую версию Java и отказался запускаться (на WinXP) но при этом не забыв попробовать что-то намутить с настройками браузера.
Skyrim FontGen - С одного боку на mega.nz лезть не советую, таки один из особо вирусных варезников...
ну а ближе к телу, для работы от всего SDK судя по всему хватит и:
flex_sdk\bin\fontswf.bat (или fontswf (без расширения) если хотим это делать под Linux)
flex_sdk\lib\afe.jar
flex_sdk\lib\aglj40.jar
flex_sdk\lib\flex-fontkit.jar
flex_sdk\lib\rideau.jar
flex_sdk\lib\swfutils.jar
{} ~10мб (а взять можно и отсюда: http://download.macromedia.com/pub/flex/sdk/flex_sdk_4.6.zip )
сам SkyrimFontGen.exe по факту не нужен (он чисто ГУЙка) т. к. "тело" - это fontswf.bat - адобовская консольная утилита, опираясь на выдернутое с нексуса запускать так:
fontswf.bat -3 -а %название_шрифта% -o %имя_swf_файла% %имя_файла.ttf%
<-o %имя_swf_файла% при желании можно и опустить - swf тогда будет сделан в "рабочей" папке>
т.е. например: fontswf.bat -3 -а MySkyrimFont arial.ttf

SkyrimFontGen.exe какой-то странный, хоть антивирусник и не орёт, сам exe-шник какой-то косой и непонятный, смахивает на крайне загадочный UPX. Собственно и сам автор об этом пишет. У меня на XP он не запустился.
19.08.2019 — 22:22

Теперь я расскажу вам про одну особенность, которая касается именно Скайрима. Для корректного отображения кириллицы вам необходимо скопировать символы русского алфавита от "А большая" до "я малая" - U+0410 и U+044F соответственно. После чего вставить их в ячейки с U+00C0 по U+00FF. Да, у вас будет 2 набора кириллических символов.

Это особенность Skyrim Legendary Edition. Вышеупомянутое преобразование создаёт нестандартные шрифты (ru.wikipedia.org/wiki/Нестандартные_шрифты) из юникодных.
У Skyrim Special Edition полная поддержка юникода и эта манипуляция не нужна. Можете проверить, скачав и открыв для просмотра шрифт Sovngarde (nexusmods.com/skyrimspecialedition/mods/386).

Авторизуйтесь, чтобы оставить новый комментарий. Или зарегистрируйтесь.