Руководство по внедрению новых шрифтов - Моды и моддинг - Strategium.ru Перейти к содержимому

Руководство по внедрению новых шрифтов

Рекомендованные сообщения

Каллиграф

Допустим, вам понравился какой-то шрифт и вы хотели бы с его помощью сделать свои скриншоты игровой карты Crusader Kings 2 более индивидуальными и атмосферными. Данное руководство поможет вам в этом.

1. Прежде всего, следует получить образец желаемого шрифта. Шрифты могут храниться в нескольких стандартных форматах: TrueType, OpenType и PostScript, а также во множестве более специализированных форматов. Не останавливаясь на их различиях (об этом вы всегда можете разузнать самостоятельно), скачаем с одного из хранилищ нужный нам шрифт в формате TrueType - пусть это будет, например, Kingthings.ttf. Открываем этот файл и устанавливаем шрифт на свой компьютер.

Устанавливаем новый шрифтНажмите здесь!
 SFRgwbH.jpg[Cкрыть]

2. Затем нужно разобраться, как игра хранит шрифты для карты. Для этого служат два файла: Mapfont.fnt и Mapfont.dds по адресу \Crusader Kings II\gfx\fonts. Для генерации этих файлов с новым шрифтом необходимо скачать и установить специальную программу AngelCode's Bitmap font gererator: http://www.angelcode.com/products/bmfont/.

3. Запускаем BMfont. По центру появившегося окна мы видим поле с набором символов, которые можно выделять кликом. Выделенные символы затем войдут в сгенерированный шрифт, а остальные будут проигнорированы. Слева находятся готовые маски для такого выделения. Если вы создаете английский шрифт, выбирайте 000000 Latin + Latin Supplement, а если русский - 000400 Cyrillic, но не одновременно! Дело в том, что из-за выносных элементов некоторых символов, используемых игрой (в таких топонимах, как Еland, Nдrke, Sjжlland, Цstergцtland), не получится совместить русский и английский шрифт. Заодно, если вы модифицируете английский шрифт, проверьте, что в вашем новом шрифте эти символы вообще присутствуют.

Выбираем маскуНажмите здесь!
 LyccnOq.jpg[Cкрыть]

4. Открываем меню Options > Font Settings.

  • В меню Font выбираем новый шрифт, который мы установили в п.1.
  • Выбираем кодировку - OEM и в выпадающем меню выбираем: для английского шрифта - ANSI, для русского - RUSSIAN.
  • Size (px) пока устанавливаем в размере 100, он отвечает за четкость прорисовки каждого символа. Потом мы еще вернемся к этому параметру.
  • Ставим галочки на Font Smoothing и ClearType.
  • Ставим галку напротив SuperSampling (отвечает за сглаживание) и устанавливаем степень сглаживания 4 (максимально возможная в этой программе).
  • Outline Thickness отвечает за толщину контурной обводки букв с целью детальной отрисовки границы символов или других элементов. Если вы не собираетесь делать ничего такого, ставьте 0.

Должно получиться так, как на скриншоте ниже. Жмем ОК.

Font SettingsНажмите здесь!
 IQbjELa.jpg[Cкрыть]

5. Открываем меню Options > Export Options.

  • В разделе Layout - Padding задается размер области вокруг каждого символа, зарезервированной для пост-эффектов, например, объемного фона как в ванильном шрифте. Если вы не собираетесь рисовать ничего такого, ставьте нули.
  • Устанавливаем высоту и ширину будущего текстурного файла dds 1024х1024. Во-первых, из-за специфики dds-формата его ширина и высота должны быть степенями двойки, а во-вторых, игра правильно считывает только текстуры размера 1024х1024. Если сделать их больше (2048х2048 или 4096х4096), то буквы выйдут четче, однако нарушится соответствие их размера той области карты, которую они обозначают.
  • Глубину цвета Bit depth устанавливаем равной 32.
  • Канал A ставим на заливку, остальные каналы R, G и B зануляем. В принципе, эти опции в дальнейшем можно исправить при помощи Adobe Photoshop или другого графического редактора, умеющего работать с форматом dds, однако такие настройки избавят нас от лишней работы.
  • Устанавливаем формат выходного файла на dds.

Должно получиться так, как на скриншоте ниже. Жмем ОК.

Export OptionsНажмите здесь!
 gCD8JqX.jpg[Cкрыть]

6. Открываем меню Options > Visualize.

VisualizeНажмите здесь!
 zVZ93Jg.jpg[Cкрыть]

Если шрифт не умещается на одной текстуре целиком, сверху будет написано Preview 1/2, или Preview 1/3 и т.д. В этом случае dds-файл будет разбит на несколько частей и игра не поймет что с ними делать. Уместить весь шрифт на одной странице (и в одном файле) можно двумя путями: либо уменьшая параметр Size (px) из п.4, либо исключая неиспользуемые игрой символы (понятно, что например вопросительных и восклицательных знаков в названиях государств мы не ожидаем). Однако маленькое значение параметра Size (px) делает растровую природу шрифта более заметной, особенно на больших надписях, и результат получится эстетически неприглядным. Поэтому первым делом исключаем неиспользуемые символы, а затем увеличиваем параметр Size (px) до тех пор, пока текстурный файл не будет заполнен полностью.

При этом не удалите случайно такие важные символы, как пробел, дефис и точку!

Итого, на примере шрифта Kingthings Petrock получилось примерно следующее:

Новый размер шрифта и новая визуализацияНажмите здесь!
 QJ8vdQX.jpg

qqtXLDb.jpg

[Cкрыть]

Обратите внимание, что ненулевые значения Padding из п.5 также "съедают" пространство текстурного файла, поэтому общий размер букв в этом случае придется делать еще меньше.

7. Сохраняем выбранный шрифт под именем Mapfont в какую-нибудь рабочую папку, открыв меню Options > Save bitmap font as... При этом будет создано два файла: Mapfont.fnt и Mapfont_0.dds.

8. Открываем при помощи любого текстового редактора файл Mapfont.fnt.

  • Удаляем запись unicode=0.
  • Удаляем запись outline=0.
  • Удаляем запись packed=0 alphaChnl=0 redChnl=3 greenChnl=3 blueChnl=3.
  • Удаляем запись page id=0 file="Mapfont_0.dds".
  • Удаляем запись chars count=124.
  • Удаляем все записи chnl=15 в последней колонке всех остальных строчек (в Notepad++ выделяем " chnl=15", жмем Ctrl+H и выбираем опцию Заменить все).

Удаляем лишнееНажмите здесь!
 Было:

SgbfJg9.jpg

Стало:

bCiNOvS.jpg

[Cкрыть]

Перезаписываем получившийся файл.

9. Открываем файл Mapfont_0.dds в любом подходящем для этого графическом редакторе: Adobe Photoshop, Paint.net или др. Для Adobe Photoshop понадобится подключаемый плагин NVIDIA Texture Tools: https://developer.nvidia.com/nvidia-texture...adobe-photoshop.

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

  • Для этого переходим на вкладку Каналы и выбираем канал Alpha.
  • Выполняем заливку: Редактирование > Выполнить заливку. В качестве содержимого выбираем черный цвет, режим - Линейный затемнитель, прозрачность - 30%. Наш шрифт будет по-прежнему черным, но на 30% прозрачным и более приятным для глаза. Этот параметр можно регулировать по личным предпочтениям.
  • Имея навыки работы в Photoshop, можно также иным образом модифицировать шрифт, сделав его уникальным и неповторимым.
  • Сохраняем файл в формате DXT3 под именем Mapfont.dds.

Добавляем прозрачностиНажмите здесь!
 nbdRICv.jpg

bFPlAyx.jpg

[Cкрыть]

И сохраняемсяНажмите здесь!
 c6Uyocn.jpg[Cкрыть]

10. Итак, файлы на замену старого шрифта готовы. Теперь создаем папку MyNewFont по адресу C:\Users\...\Documents\Paradox Interactive\Crusader Kings II\mod\, в ней создаем последовательно вложенные папки gfx и fonts, и в последнюю переносим созданные ранее файлы Mapfont.fnt и Mapfont.dds.

Заготовка модаНажмите здесь!
 vp9mcla.jpg[Cкрыть]

11. В папке C:\Users\...\Documents\Paradox Interactive\Crusader Kings II\mod\ рядом с папкой с вашим модом создаем файл MyNewFont.mod. Открываем его текстовым редактором и пишем две строчки:

  • name = "My new font!" - отвечает за то имя, которое будет высвечиваться в лаунчере CK2;
  • path = "mod/MyNewFont" - отвечает за папку, где находится сам мод.

MyNewFont.modНажмите здесь!
 jrKyAmp.jpg[Cкрыть]

Сохраняем и закрываем файл.

12. Запускаем CK2 и выбираем свой новый шрифтовый мод. Убедитесь, что в списке модов он стоит самым первым из тех, которые тоже изменяют шрифты. Изменять положение мода в списке можно строчкой name = "My new font!" из п.11, моды сортируются в алфавитном порядки этих своих строчек.

Запускаем игруНажмите здесь!
 bRIQKPq.jpg[Cкрыть]

13. Новый шрифт для карты готов! При этом чексумма не нарушена и в режиме Ironman доступно получение достижений.

РезультатНажмите здесь!
 XSkuByN.jpg[Cкрыть]

14. Примеры новых шрифтов.

ПримерыНажмите здесь!
 

zLaB7If.jpg

z4CfETh.jpg

4RYLNV9.jpg

JWZIHnm.jpg

AZWOMqv.jpg

ObLC3kG.jpg

fM4nUUt.jpg

MZ48cZ3.jpg

qv3go6x.jpg

MFuoXxn.jpg

pf7iHD0.jpg

nFsXJZc.jpg

mijGlQ5.jpg

[Cкрыть]
Изменено пользователем Каллиграф
Ссылка на комментарий

Закреплённые сообщения

Какая-то нестыковочка в гайде:

3. Запускаем BMfont.

Если вы создаете английский шрифт, выбирайте 000000 Latin + Latin Supplement, а если русский - 000400 Cyrillic, но не одновременно!

Данные наборы можно выбирать если в Options/Font Settings выбрать кодировку Unicode.

Однако, далее, в п.4 пишут уже совсем про другое:

4. Открываем меню Options > Font Settings.

Выбираем кодировку - OEM и в выпадающем меню выбираем: для английского шрифта - ANSI, для русского - RUSSIAN.

Если выполнить такой порядок действий, получиться полная чушь. Даже GIF'ку прицеплю для наглядности [тык].

Изменено пользователем fen-x
Ссылка на комментарий

Гайд хороший. Но нужна помощь. Проблема в кернинге шрифтов. Данные по кернингу из файла fnt, игра по всей видимости игнорирует. Игра с Padding и Spacing результата тоже не дает. Собственно нужна помощь как исправить такой косяк текста. 

Спойлер

62a9a2a900376b871417ff0d0bf8008b.png

 

Ссылка на комментарий

Alariko
В 20.10.2015 в 21:24, ramazan сказал:

Товарищ, поделитесь уже готовыми, если не жалко.

Не жалко, только уг какое-то получилось. Не знаю, уж вроде бы и так старался все настройки скопировать с оригинала, но всё равно не то.
 

Спойлер

VVhyW1Y.png

Mapfont Constantine

 

Вот такой ещё прикольный шрифт есть
 

Спойлер

vRjlYg0.png

Mapfont Cinzel

Изменено пользователем Alarih94
Ссылка на комментарий

El Búho

@Carrachiolla не знаю, какие сложности могут возникнуть после прочтения руководства каллиграфа. всё то же самое, только сохранять файл как tga и обработка в графическом редакторе не нужна.

ладно, напишу руководство для шрифтов интерфейса. в данном случае для шрифта текста событий

1. нужно скачать и установить шрифт Roboto Condensed Light (или любой другой, который понравится) и программу bm font (есть в теме каллиграфа)

2. запустить программу, выбрать шрифт и установить следующие настройки (см. картинку)

Спойлер

jforUit.png

 

Спойлер

Zg3sMdr.png

3. файл сохранить, ну скажем как robotocnlt_19. должно получится два файла: robotocnlt_19.fnt и robotocnlt_19.tga

4. в заголовке файла robotocnlt_19.fnt должно быть вот так:

info face="Roboto Condensed Light" size=19 bold=0 italic=0 charset="RUSSIAN"stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
common lineHeight=17 base=15 scaleW=256 scaleH=128 pages=1

так же нужно скопировать строку char id=32, поместить её после строки char id=255 и поменять в ней char id=32 на char id=16

что нужно удалить из файла fnt - написано в руководстве каллиграфа.

5. теперь нужно создать файл, где прописываются файлы шрифтов. создаём свой файл, ну скажем my_fonts.gfx и добавляем туда запись

Спойлер

bitmapfonts =  {

    bitmapfont = {
        name = "robotocnlt_19_black"
        fontname = "robotocnlt_19"
        color = 0xff000000

        color_override = {
            G = { 24 112 26 }
            R = { 124 24 24 }
            Y = { 0 0 0 }
        }
    }

}

всё, файл можно сохранять в кодировке 1251

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

для этого понадобится файл из русификатора eventwindow.gui 

в главном меню игры нужно нажать тильду - появится красная рамочка. можно запускать иргу. в окошке события нужно навести курсор на текст - появится подсказка с названием файла (eventwindow.gui) и  номером строки. находим это в файле и вместо старого шрифта указываем свой  font = "robotocnlt_19_black"

операцию придётся повторить несколько раз. в зависимости от события может быть использован разный шрифт/размер шрифта.

7. теперь нужно собрать наш мод

файлы  robotocnlt_19.fnt и robotocnlt_19.tga нужно поместить в my_fonts\gfx\fonts

файлы eventwindow.gui и my_fonts.gfx нужно поместить в  my_fonts\interface

создаём файл my_fonts.mod

name = "!_My Fonts"
path = "mod/my_fonts"

8. всё :) 

если не устраивает размер шрифта - можно поиграться с настройками шрифта в программе (size) и в файле fnt - lineHeight.

это всё, что нужно знать о создании шрифтов интерфейса.

 

 

 

Ссылка на комментарий

IceCrystall

Вроде всё по инструкции делал, а уже при сохранении шрифта у меня появился один файл вместо двух, также в нем отсутствуют некоторые строки.

 

И у меня почему-то на стратегиуме поменялся шрифт после этих манипуляций.

Изменено пользователем IceCrystall
Ссылка на комментарий

El Búho
3 часа назад, IceCrystall сказал:

также в нем отсутствуют некоторые строки.

и чего же в супе не хватает? 

Ссылка на комментарий

IceCrystall
7 часов назад, El Búho сказал:

и чего же в супе не хватает? 

Файла .tga, а в файде fnt не хватает таких строк, как char id

 

И почему у меня в браузере поменялись шрифты?

Изменено пользователем IceCrystall
Ссылка на комментарий

Alariko

Нашёл наиболее похожий шрифт на тот, что ныне используется в скриншотах по CK3.

Шрифт имеет более 600 символов, то есть покрывает любые латинские умляуты.

Ежели кто желает сделать из него рабочий модец для СК2, вот ссылка.

Ссылка на комментарий

Присоединиться к обсуждению

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

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Ответы 9
  • Создано
  • Последний ответ
  • Просмотры 10448

Лучшие авторы в этой теме

  • IceCrystall

    2

  • El Búho

    2

  • Alariko

    2

  • ramazan

    1

  • Каллиграф

    1

  • fen-x

    1

  • X4ndrius

    1

Лучшие авторы в этой теме

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2025 Strategium.ru Powered by Invision Community

×
×
  • Создать...