Данный материал предназначен для начинающих разработчиков игр или разработчиков только перешедших на движок 3D разработки UDK (Unreal Development Kit), т.к. поможет решить главную задачу - подключение русского шрифта в UDK. Так же по данному уроку можно подключить любой другой шрифт в ваш проект.

Что бы установить русский шрифт в UDK или любой другой шрифт в UDK, следует сделать следующие шаги:


1) Следует заготовить текстовой файл с символами, которые будут содержаться в нужном шрифте, обычно это:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

- для английского шрифта, и

!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ№ёйцукенгшщзхъфывапролджэячсмитьбю.,

- для русского.

Файл можно назвать как угодно (на английском языке) и сохранить в формате UNICODE (в NotePad++ кодировка называется UCS-2 Little Endian).  Это общепринятая кодировка для всех текстовых файлов используемых в UDK.

Сохраним файл к примеру на диске C:\myFont\intchars.txt

2) В редакторе контента следует выбрать пункт New Font
В открывшемся окне нажать кнопку Choose Font и выбрать нужный шрифт из предложенных системой (если вы хотите импортировать оригинальный шрифт TrueType, ttf. Перед импортом в UDK его следует установить в систему Windows).

В окне отобразится пример This is some написанный выбранным шрифтом. (Для среднего типа шрифта рекомендую выбирать размер в 16 пикселей).

русский шрифт в UDK 


Далее смотрим в раздел Import Options,  где уже будет указанно имя выбранного шрифта и его размер. Находим пункты Chars File Path и Chars File Wildcard. Что соответственно является директорией ранее созданного файла и файла с символами шрифта. В нашем случае это:

Chars File Path = C:\myFont
Chars File Wildcard = intchars.txt

Не забываем поставить галку на пункт Create Printable Only.
Жмем OK.

3) Откроется окно с импортированным шрифтом. Пока его можно закрывать. В нем можно отредактировать параметры шрифта позже.
4) Сохраняем пакет с импортированным шрифтом.

Как использовать свой шрифт в UnrealScript. На примере HUD.

Добавляем переменную типа Font в классе:
     Var font myFont;

В defaultproperties указываем наш шрифт:

Код:

defaultproperties {
  BatFont = Font'TCBatman.Fonts.BatFontMedium'
}

event PostRender() {
            local float XL, YL;
            local String Text;

            Super.PostRender();

            // Убедимся что PlayerOwner и PlayerOwner.Pawn существуют
            if (PlayerOwner != None && PlayerOwner.Pawn != None) {
                        // Установим в переменную Text значение жизни игрока и количество патронов
                        Text = HealthString$": "$PlayerOwner.Pawn.Health;
                        Text $= "  "$AmmoCountString$": "$UTWeapon(PlayerOwner.Pawn.Weapon).AmmoCount;
                        // Устанавливаем наш шрифт                    
                        Canvas.Font = BatFont;
                        // Устанавливаем цвет для шрифта
                        Canvas.SetDrawColor(255, 255, 255);
                        // Получаем размер текста с выбранным шрифтом
                        Canvas.StrLen(Text, XL, YL);
                        // Устанавливаем позицию где будет прорисовываться текст
                        Canvas.SetPos(4, 4);
                        // Рисуем сам текст
                        Canvas.DrawText(Text);
            }
}


Сразу тут же расскажу про локализацию текста, как можно заметить из примера, переменные HealthString и AmmoCountString являются локализованными переменными, и объявляются они в разделе переменных.

var localized string HealthString;
var localized string AmmoCountString;

localized означает что текущая переменная будет браться из файла текущей локализации, которая задается в конфигурационном файле, по умолчанию UDKGame\Config\ DefaultEngine.ini (рекомендую все изменения проводить в скомпилированных копиях файлов конфигурации, что в данном случае будет UDKEngine.ini). В нем находим раздел:

[Engine.Engine]
И ключ: Language=INT

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

Далее что бы UDK увидел наш файл локализации, мы должны создать в папке UDKGame\Localization\ папку RUS. А в нем файл с названием нашего пака с игрой (название папки где хранятся все ваши скрипты классов). В моем случае это «TCGame». С расширением вашей локализации. В моем случае это RUS. В итоге получаем такой путь к файлу:

UDKGame\ Localization\RUS\TCGame.rus

Универсальная запись:

[Папка с игрой]\Localization\[код локализации]\[название пака где лежат ваши скрипты использующие локализацию].[код локализации]

Файл должен быть в кодировке UNICODE, о которой было сказано выше. Структура файла простая:

[название класса в котором используется переменная]
Название переменной=перевод


В моем случае это:

[TCBatmanHud]
AmmoCountString="Патроны"
HealthString="Жизнь"

Можно создать точно такой же файл, только с расширением .int в папке локализации INT:

[TCBatmanHud]
AmmoCountString="Ammo"
HealthString="Health"

И теперь после изменения в файле UDKEngine.ini параметра Language c INT на RUS и обратно, мы будем получать то русский текст, то английский.

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


Полное руководство по шрифтам: http://udn.epicgames.com/Three/ImportingFonts.html
Полное руководство по локализации: http://udn.epicgames.com/Three/LocalizedTextFiles.html и http://udn.epicgames.com/Three/LocalizationReference.html

Понравилось? Расскажи друзьям!

Нам пишут:

Спасибо ребятки за программу!

Неизвестен
Scroll to top