Как добавить пользовательские шрифты


Введение
Эта документация пройдет следующие этапы:
  • Настройка файлов и путей
  • Создание шрифтов
  • Размещение файлов в папке модуля
  • Создание текстурных атласов 
  • Как использовать шрифты в Bannerlord

Предпосылки
Настройка файлов и путей
  • Перейдите в Mount & Blade II Bannerlord\GUI\GauntletUI\Fonts.
  • Убедитесь, что два файла ниже существуют в каталоге. Мы будем использовать их для генерации данных нашего шрифта.
    • GenerateFont.bat
    • GenerateFontSettings.txt
  • Переместите файл шрифта .ttf в каталог.
  • В нашем примере мы будем использовать файл шрифта с именем OpenSansRegular.ttf.
  • Откройте файл: «GenerateFontSettings.txt».
  • Значения по умолчанию для GenerateFontSettings.txt:
  • -fontpath {FONT\_PATH.ttf}
    -outputpath {OUTPUT\_PATH.png}
    -atlassize 2048 2048
    -size 64
    -angle 8
    -range 16
    -padding 16
    -smooth 0
    -smoothingConstant 0.5-mode 1
  • Здесь нам нужно изменить переменные-заполнители {FONT_PATH.ttf} и {OUTPUTPATH.png} на фактические пути.
  • Пути здесь относятся к каталогу: …\bin\Win64_Shipping_wEditor, если вы не укажете полный путь.
  • Обратите внимание, что если вы хотите использовать пути, содержащие пробелы, вам нужно поместить их в кавычки.
  • Настройка -fontpath:
    • В нашем примере переменная должна быть: -fontpath OpenSansRegular.ttf.
  • Настройка -outputpath:
    • Эта переменная определяет, где должен быть размещен файл .png. Мы должны использовать путь файла .png к несуществующему файлу, который будет создан в процессе создания атласа.
    • В нашем примере мы устанавливаем переменную -outputpath как: -outputpath OpenSansRegular.png.
  • Содержимое GenerateFontSettings.txt теперь должно выглядеть так:
-fontpath OpenSansRegular.ttf
-outputpath OpenSansRegular.png
-atlassize 2048 2048
-size 64
-angle 8
-range 16
-padding 16
-smooth 0
-smoothingConstant 0.5-mode 1

Если сгенерированный файл .png не содержит всех символов для вашего шрифта, рассмотрите возможность увеличения -atlassize.

Создание шрифтов 
  • Теперь, когда файлы добавлены и установлены правильные пути для генератора, запустите GenerateFont.bat.
  • Если все настроено правильно, программа не выдаст никаких ошибок и сгенерирует 3 файла в каталоге, который вы определили как свой -outputpath.
    • В нашем примере это 3 файла:
      • OpenSansRegular.fnt
      • OpenSansRegular.bfnt
      • OpenSansRegular.png
  • Если вы видите какие-либо ошибки в пакетном сценарии, убедитесь, что переменные -fontpath и -outputpath установлены правильно.
  • В нашем примере 3 сгенерированных файла расположены в каталоге *…\bin\Win64_Shipping_wEditor*, поскольку мы указали относительный путь.

Размещение файлов в папке модуля
  • На шаге выше мы создали 3 файла. Теперь нам нужно поместить эти файлы в наш модуль.
Файлы шрифтов
  • Перейдите в папку {ВАШ_МОДУЛЬ}\GUI\Fonts. Если в вашем модуле нет папки Fonts, создайте ее.
  • Переместите сгенерированные файлы .fnt и .bfnt в папку Fonts, в нашем примере они называются OpenSansRegular.fnt и OpenSansRegular.bfnt.
Файл изображения
  • Перейдите в папку {ВАШ_МОДУЛЬ}\GUI\SpriteParts. Если в вашем модуле нет папок GUI или SpriteParts, создайте их.
  • В папке SpriteParts создайте пустую папку с именем ui_custom_fonts.
  • Если у вас нет файла Config.xml в папке SpriteParts, создайте его тоже.
  • На этом этапе в папке SpriteParts должна быть папка с именем ui_custom_fonts и файл с именем Config.xml.
  • Теперь мы можем переместить наш файл .png в папку ui_custom_fonts. В нашем примере файл называется OpenSansRegular.png.
Конфигурация
  • Чтобы иметь возможность использовать наш шрифт в игре, нам нужно указать в нашем файле Config.xml, что наш шрифт должен загружаться автоматически.
  • Содержимое Config.xml должно включать следующую конфигурацию:
    <Config>
        <SpriteCategory Name="ui_custom_fonts">
            <PackAllSpritesToUniqueTextures/>
            <SingleChannel/>
            <AlwaysLoad/>
            <EdgeSize Value="0" />
        </SpriteCategory>
    </Config>
    
  • Обратите внимание, что ui_custom_fonts здесь происходит от имени папки, которую вы создали в {ВАШ_МОДУЛЬ}\GUI\SpriteParts.

Создание текстурных атласов
  • Теперь необходимо сгенерировать текстурные атласы шрифта, используя файл .png, созданный в последнем процессе.
  • Мы кратко расскажем, как добавить новый шрифт в таблицы спрайтов. Подробное пояснение см. в разделе Создание и загрузка текстурных атласов пользовательского интерфейса.
    • Запустите генератор спрайтов, просто запустив Mount & Blade II Bannerlord\bin\Win64_Shipping_wEditor\TaleWorlds.TwoDimension.SpriteSheetGenerator.exe.
    • Если все настроено правильно, вывод генератора спрайтов должен выглядеть так:
    • Вы должны импортировать шрифт через Браузер ресурсов в игре. Что было объяснено в документе выше.

Использование недавно добавленных шрифтов 
  • Если мы все сделали правильно, мы сможем использовать наши недавно добавленные шрифты в игре.
  • Чтобы использовать шрифт, мы можем объявить его имя в кисти, например:
    <Brush Name="CustomBrush.With.New.Font" Font="OpenSansRegular" TextHorizontalAlignment="Right">
        <Styles>
            <Style Name="Default" FontColor="#F4E1C4FF" TextGlowColor="#000000FF" TextOutlineColor="#000000FF" TextOutlineAmount="0.01" TextGlowRadius="0" TextBlur="0" FontSize="20" />
        </Styles>
    </Brush>
    
  • Теперь любые виджеты, которые используют эту кисть, будут отображаться с использованием нашего недавно добавленного шрифта.

Установка шрифтов по умолчанию для языка
  • Для некоторых языков могут потребоваться собственные пользовательские шрифты. Если это ваш случай, вы можете установить шрифт по умолчанию для своего языка.
  • Для этого создайте файл с именем {ВАШ_МОДУЛЬ}Languages.xml и поместите его в папку: {ВАШ_МОДУЛЬ}\GUI\Fonts .
  • Обратите внимание, что вы должны дать файлу *Languages.xml уникальное имя, и оно всегда должно заканчиваться на "Languages" (например, _MyModuleLanguages.xml_ ). Для получения дополнительной информации см.: Добавление и переопределение ресурсов.
  • В файле новых языков вы можете определить новый языковой узел, переопределить существующие и изменить язык игры по умолчанию.
  • Языковые узлы используются для сопоставления встроенных шрифтов с вашими пользовательскими шрифтами.
  • Например, если вы хотите установить шрифты по умолчанию для турецкого языка, ваш узел должен выглядеть так:
    <Languages>
        <!-- Turkish -->
        <Language id="Türkçe" DefaultFont="OpenSans-Regular" LineSeperatorChar="-">
            <Map From="FiraSansExtraCondensed-Light" To="OpenSans-Regular"/>
            <Map From="FiraSansExtraCondensed-Medium" To="OpenSans-Regular"/>
            <Map From="FiraSansExtraCondensed-Regular" To="OpenSans-Regular"/>
            <Map From="Galahad" To="OpenSans-Regular"/>
            <Map From="Galahad_Numbers_Bold" To="OpenSans-Regular"/>
        </Language>
    </Languages>
    
  • Здесь мы установили шрифт по умолчанию для турецкого языка как «OpenSansRegular». А также сопоставили некоторые встроенные шрифты с нашими пользовательскими.
  • После сохранения этого файла должны быть установлены шрифты по умолчанию для вашего языка, и вы должны увидеть правильный шрифт для вашего языка.




- используйте эту кнопку если вы обнаружили ошибку/искажение содержимого/отсутствие контента в новости или если хотите сообщить администрации о выходе новой версии мода и т.п.

Комментариев 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Онлайн

Сейчас на сайте: 20
Гостей: 18

Пользователи: 
- отсутствуют

Последние комментарии

MOD Perisno
Ivamar, 31 октября 2024 18:45
Кто знает как поправить?...
MOD Perisno
Ivamar, 31 октября 2024 09:05
Мод супер, жаль только что даже в максимальной броне любой бомж с металлами или стрелковым оружием...
MOD wind of the war - New Era 74fix8
AlexJoestar, 30 октября 2024 14:49
Ни разу не выпала легендарка из эпического сундука. Некромантия выглядит почти бесполезной из-за...
Флудилка V3
Mons.Marteleur, 30 октября 2024 12:35
Приветствую. Не уверен, что здесь кто-то сможет помочь, всё таки тема летсплеев на ИГ слишком уж...
MOD The Horde Lands (1.22)
Mons.Marteleur, 30 октября 2024 08:56
Цитата: Agrail209syabr, Я уже даже компьютер поменял. Просто вылетает и всё. Уже весь майкрасофт...
MOD Aut Caesar aut nihil
OTTO, 29 октября 2024 23:12
vasul, дарофф. Я живой. Увы но взяться за перевод сейчас нет возможности. Увы война отнимает много...
MOD wind of the war - New Era 74fix8
nerstarg, 21 октября 2024 22:22
вроде бы у мода слили новую версию под номером 75 Fix 30.2 (точно не 75fix3 - там файлы датированы...
MOD Napoleonic Wars Functional/UI pack
glik, 20 октября 2024 13:33
Есть ли у кого-нибудь еще такая модификация?...
MOD NOVA AETAS (ОБСУЖДЕНИЕ)
Hezed, 17 октября 2024 13:55
gogotop, Вашу проблему легче решить. Вам нужно дождаться пока лорды будут проходить рядом с...