6930
Sponsor Newbie 
Posts: 30
|
 |
Re: Создание Font и Texture2d шрифта для Xbox360 в UDK.
« Reply #4 on: April 30, 2021, 23:58 » |
|
Ну Gildor тут не совсем прав.. Да если вы создадите шрифты в UDK, и попытаетесь эти самые шрифты подсунуть в консольную версию игры (PS3 XBOX360) игра просто повиснет, ибо на пк и перечисленных консолях разный endian, на PC LE, на PS3, XBOX360 BE.
И тут можно было бы поставить точку, но все таки можно UDKшные шрифты подружить с вышеперечисленными консолями)) Есть два подхода один простой другой сложный)
1) Достать UDK с поддержкой консолей с BEendian, этого добра в свободном доступе нет.
2) Создать шрифт в UDK
Шаг первый, UDK генерирует растровый шрифт из .ttf шрифта, выберем .ttf шрифт который мы будем использовать, далее его нужно отредактировать в High-Logic FontCreator, зачем? Нам нужно уложится в оригинальный размер .Texture2D и .Font, в западных шрифтах стандартный набор символов такой:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
Нам нужно создать шрифт где вместо умляутов будет кириллица, тем самым уложимся в оригинальный размер .Font, вот как раз для этого нам и нужно редактировать .ttf шрифт FontCreator,ом, вставить на место умляутов русские буквы. Итак вы отредактировали .ttf, внедрили его в систему, выберем его в UDK и создаем из него стандартный шрифт,чтобы в игре в итоге отображались русские буквы нужно русский текст сконвертировать в умляуты. Должно получится что то вроде этого: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz {|}~ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя
Размер таблицы при таком подходе всегда будет одинаков, и вы без проблем подсунете её вместо оригинальной, в противном случаи вам придется пихать таблицу в конец .xxx пакета и править таблицу смещений и размеров .xxx пакета, где нужно будет прописывать новое смещение и размер, а если вы пихаете в конец ещё и текстуру то в ней (в текстуре) нужна прописать новое смещение, да, да, в .Texture2D указана где она реально находиться)))
Шаг второй, у нас есть готовый шрифт, сразу же экспортируем текстуру шрифта, далее ее конвертируем в DXT5, (обычно шрифты в DXT5 но бывают и в L8, всё зависит от игры)
Если вы хотите вставить готовую текстуру шрифта DXT5 в .Texture2D от XBOX360, то вам ещё нужно её отсвизлить, так как на XBOX360 все форматы под свизлингом, на PS3 DXT5 без свизлинга.
Итак мы обновили .Texture2D своим шрифтом, вставили его в .xxx пакет на своё место, можно проверить в игре, если все сделано правильно текст в игре будет как бы из ломаных кусочков букв, чтобы этого не было нужно обновить и .Font, с помощью extract.exe распаковываем MyPackage.upk там лежат кстати .Texture2D и .Font вашего шрифта, который вы сгенерировали в UDK, нам нужно собственно .Font но сразу использовать в консольной версии его нельзя, потому что он в LE эндеане, а нам нужно сделать его в BE Это довольно муторно, на разбор алго конвертации LE>BE у меня ушло пару минут, а на саму конвертацию таблицы .Font я убил 1.5 часа в хекс редакторе) Вот если бы нашёлся грамотный программист, который согласился написать тулзу для конвертации LE>BE по моему алгоритму это бы облегчило многим жизнь. Так что все реально, было бы желание Конец.
|