Руководство по адаптации шрифтов под русскую версию Скайрима.
Написать это руководство меня подтолкнуло полное отсутствие каких-либо аналогичных гайдов, как на русском, так и на английском языке. Сразу оговорюсь, здесь не будет рассмотрен процесс кириллизации шрифта, то есть добавления кириллических символов (русских букв) в шрифт, который изначально их не содержит, ибо подобных руководств много в свободном доступе в интернете. Здесь будет рассмотрен лишь процесс адаптации уже готового шрифта к игре.
Поначалу отмечу, что процесс этот не так прост, как может показаться на первый взгляд. Все дело в том, что creation engine обрабатывает внутриигровые тексты на русском языке используя, как кодировку windows 1251, так и 1200 UTF-16LE. И если с первой проблем не возникает, так как все тексты, затрагиваемые ей вынесены в отдельный файл Translate_RUSSIAN.txt и подхватываются без проблем, то со второй, которая затрагивает все диалоги и описания возникают проблемы. Поэтому при подключении готового шрифта в игре получается, что только малая часть текстов на русском, а все остальное служебными символами.
Для работы нам потребуются:
- Файл с шрифтами содержащий кириллические символы в формате ttf.
- Программа FontCreator Professional Edition для работы со шрифтом.
Запустите программу FontCreator, закройте все лишние мелкие окна и откройте в ней шрифт, который мы будем адаптировать для скайрима. Я использовал русскую версию программы, поэтому все описания пунктов будут на русском языке.
Найдите в открытом списке символов шрифта русскую заглавную букву А, кликните на нее правой кнопкой мышки, наведите мышь на пункт «Заголовки» и в выпадающем списке кликните на пункт «Кодовые точки».
Рис.1
Над буквами появятся соответствующие им кодовые точки, например, для А это $0410. Ваша задача сопоставить эти точки с кодовыми точками тех символов юникода, которые появляются как так называемые крякозябры в игре. Для этого нажмите F-5 в FontCreator появится окно со всеми доступными символами, которые содержит шрифт.
Рис. 2
Как видите, тут только символы и английский алфавит. Наша задача, чтобы в этом окне вместо выделенных красным символов появился русский алфавит, без букв Ё и ё. Поясню как сделать это на примере все той же заглавной буквы А. Кликните на А правой кнопкой мыши, выберите пункт «Свойства» и в открывшемся окошке в графе «кодовые точки», допишите через запятую и пробел к текущей кодовой точке, кодовую точку первого из символов юникода выделенных на рис. 2, этой точкой для заглавной буквы А будет точка $C0 (см. рис. 3). И нажмите кнопку «Применить». Закройте окошко и приступайте к следующей букве.
Рис. 3
Остальные буквы русского алфавита сделайте по аналогии в соответствии с таблицей ниже.
В процессе работы периодически сохраняйте проект. После того, как самая сложная часть будет закончена, нажмите F-5 и у вас должно появится нечто подобное:
Рис. 4
Если у вас все также, значит большая часть работы завершена. Сейчас нажмите на рабочей панели FontCreator меню «Файл», затем «Экспортировать шрифт, как…» и выберите TrueType. Сохраните готовый шрифт туда, куда вам будет удобнее.
После этого, перейдите по ссылке http://www.cms-guide...-font-creator/. Это онлайн преобразователь шрифтов в формате ttf в формат swf. Именно с этим форматом работает движок игры. Нажмите Add Font выберите ваш отредактированный в FontCreater шрифт и нажмите кнопку Create fonts. Сейчас у вас есть готовый к подключению в игру файл в формате swf.
Сейчас покажу как подключить готовый шрифт к игре. Создайте в любом месте папку Interface положите в нее созданный файл swf и создайте тут же текстовый файл в формате txt с названием fontconfig.txt. И наполните этот файл следующим содержимым:
fontlib "Interface\fonts_ru.swf" fontlib "Interface\fonts_console.swf" fontlib "Interface\fonts_ru.swf" fontlib "Interface\fonts_console.swf" fontlib "Interface\название вашего файла шрифтов в папке interface с расширением.swf" map "$ListFont" = "название вашего шрифта в строке Имя шрифта вашего ttf файла шрифта" Normal map "$ConsoleFont" = "ArialFixed" Normal map "$StartMenuFont" = "название вашего шрифта в строке Имя шрифта вашего ttf файла шрифта" Normal map "$DialogueFont" = "название вашего шрифта в строке Имя шрифта вашего ttf файла шрифта" Normal map "$EverywhereFont" = "название вашего шрифта в строке Имя шрифта вашего ttf файла шрифта" Normal map "$EverywhereBoldFont" = "название вашего шрифта в строке Имя шрифта вашего ttf файла шрифта" Normal map "$EverywhereMediumFont" = "название вашего шрифта в строке Имя шрифта вашего ttf файла шрифта" Normal map "$DragonFont" = "Dragon_script" Normal map "$SkyrimBooks" = "SkyrimBooks_Gaelic" Normal map "$HandwrittenFont" = "SkyrimBooks_Handwritten_Bold" Normal map "$HandwrittenBold" = "SkyrimBooks_Handwritten_Bold" Normal map "$FalmerFont" = "Falmer" Normal map "$DwemerFont" = "Dwemer" Normal map "$DaedricFont" = "Daedric" Normal map "$MageScriptFont" = "Mage Script" Normal map "$SkyrimSymbolsFont" = "SkyrimSymbols" Normal map "$SkyrimBooks_UnreadableFont" = "SkyrimBooks_Unreadable" Normal validNameChars "`1234567890-=~!@#$%^&*():_+QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./qwertyuiop{}\\asdfghjkl;'zxcvbnm<>?|ЎўЈ¤Ґ¦§Ё©Є«®Ї°Ііґ¶·ё№є»јЅѕїДАБВГЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэю я абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"
Обратите внимание, что в строке fontlib должно быть написано название файла шрифтов, который лежит в папке interface, а в строках map имя самого шрифта, которое вы сможете увидеть при открытии ttf файла. Строка map "$ListFont" нужна только при наличии SkyUI. Строки map "$FalmerFont", map "$DwemerFont", map "$DaedricFont", map "$MageScriptFont", map "$SkyrimSymbolsFont", map "$SkyrimBooks_UnreadableFont" править нельзя.
После всех правок, сохраните файл fontconfig.txt и упакуйте папку interface в архив и устанавливайте, как любой мод.
На этом все, если возникнуть вопросы, спрашивайте.