1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Туториал Редактирование штатного Unicode шрифта

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем caver, 22 авг 2014.

  1. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    Если не нравится тонкий шрифт, то надо править
    assets/minecraft/textures/font/
    unicode_page_04.png - русские буквы
    unicode_page_00.png - английские буквы и символы
    также потребуется поправить
    assets/minecraft/font/glyph_sizes.bin
    файл состоит из массива байтов описывающих ширину символа
    номер байта = номер символа последовательно в каждой таблице
    т.е. первые 256 байт для unicode_page_00.png, следующие 256 для unicode_page_01.png ну и т.д.
    Кстати самый простой способ сделать шрифт более читабельным - скопировать и сдвинуть на 1 пиксель картинку шрифта. В таком случае надо будет для байтов 0x00-0xFF и 0x400-0x4FF прибавить по единичке для ненулевых байтов в glyph_sizes.bin

    Вот что получается
    [​IMG]

    Набор уже готовых файликов https://dl.dropboxusercontent.com/u/38401250/unicodefont.zip
     
    Последнее редактирование: 22 авг 2014
  2. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Привет! :)
    А я себе сделал набор из .psd со слоями для удобного редактирования и написал небольшую утилиту, которая:
    • Ищет в текущем каталоге glyph_sizes.bin и парсит его.
    • Ищет в текущем каталоге все unicode_page_##.png, парсит их и составляет 256 длин символов, которые подменяет в нужном месте в glyph_sizes.bin.
    Кстати, строго говоря, каждый байт это не ширина символа, а два 4-битных значения: номер колонки фактического начала символа внутри его ячейки и сама ширина (могу ошибиться, делал год+ назад).

    Я использую на своем проекте старый широкий шрифт, который без некоторого допиливания клиента был бы ужасен. В клиенте есть файл FontRenderer.java, в котором присутствует удивительное условие: if(ширинаСимвола > 7) ширинаСимвола = 7;.
    Я придумал супер-костыльное решение: сперва по клиенту нужной версии ищется .class, содержащий строку "glyph_sizes.bin", затем в нём заменяется последовательность 10 07 A4 на 10 0F A4. Это является опкодами JVM для этого самого сравнения, т.е. получаю в итоге if(ширинаСимвола > 15) ширинаСимвола = 7;, что никогда не выполняется из-за того, что ширина символа — 4бита.

    upload_2014-8-22_20-26-36.png

    Сейчас что-нибудь выложу.
     
  3. Dimonskiu

    Dimonskiu Старожил Пользователь

    Баллы:
    103
    Решение интересное, но было бы круто если бы вы сразу выложили готовые файлы под последнюю версию майна.
     
  4. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    • Исправления для использования "широкого" шрифта (vanilla +/- optifine):
      • 1.6.2
      • 1.6.4
      • 1.7.2
      • 1.7.10
      • Инструкция по созданию для любой версии.
    • .psd с оригинальным "широким" шрифтом. При использовании обязательно соблюдение ©.
    • Приложение для обновления лежащего рядом glyph_sizes.bin по лежащим рядом unicode_page_##.png.
      • С исходным кодом.
    Делал очень давно, когда только познакомился с Java, и только для себя, поэтому AS IS и претензии не принимаются.
     

    Вложения:

  5. Dimonskiu

    Dimonskiu Старожил Пользователь

    Баллы:
    103
    Спасибо, ещё было бы хорошо что бы и автор темы выложил свой вариант в виде файлов:good:
     
  6. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    Делал тоже давненько могу и ошибаться. ;)
    UPD: выложил в первом посте файлики
    Работает на 1.6-1.7.10 - 100%
     
    Последнее редактирование: 22 авг 2014
  7. Dimonskiu

    Dimonskiu Старожил Пользователь

    Баллы:
    103
    Большое всем спасибо, будем тестить :)
     
  8. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Докладай о результатах ;)
     
  9. Автор темы
    caver

    caver Активный участник Пользователь

    Баллы:
    88
    Skype:
    caver15
    А чего там докладать, скриншот выше - просто заменить файлики.
    Скриншот сделан с vanilla майнкрафта 1.7.10
    НИКАКИХ правок кода.

    [​IMG]
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Скинь готовый шрифт что на скрине. Фотошопа нет ( И английский под него бы еще.
     
    Последнее редактирование: 23 авг 2014
  11. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Here you are.
     

    Вложения:

  12. DarkTrim

    DarkTrim Активный участник Пользователь

    Баллы:
    88
    Skype:
    darkderman
    Имя в Minecraft:
    DermanHunter
    Reality_SC, фикс не очень работает на 1.6.4. Если поставить на русский то английские буквы обрезаны, а если английски то на оборот русский обрезан.
     
  13. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Зачем тебе это извращение под 1.6.4 там же старый русик робит, все что нужно это отключить уникод в классе locale .
     
    Последнее редактирование: 28 авг 2014
  14. DarkTrim

    DarkTrim Активный участник Пользователь

    Баллы:
    88
    Skype:
    darkderman
    Имя в Minecraft:
    DermanHunter
    Норм было если я в этом понимал хоть что.
     
  15. Сержо

    Сержо Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Ralf
    а что делать если в папке assets нет папки minecraft?
     
  16. KiSsAMc

    KiSsAMc Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    KiSsAMc
    Лайк тебе, спасиба братуха :D
    С копирайтами, может кто по мочь?
    Это значет что ты в какой-то текстур пак зашел, тебе нужно открыть minecraft.jar и внутри заменять
    Что за проблема на табличках не пишет по русски? Снимок.PNG
    Что-то не так с шрифтом(

    Снимок.PNG
    Русский шрифт божественен:3:rolleyes: Снимок.PNG но ска английский косячный стал, попробую фиксануть:nerd:

    хм нашел проблему, это в glyph_sizes нужно перерисовать английский или просто убрать изменения в коде файла glyph_sizes английского
    Добился этого..... Английский шрифт теперь HD а вот русский, да жирный но всё же не HD ((
    Снимок.PNG
    Сижу битый час не понимаю почему не работает, и тут до меня доходит странная мысль, а если попробовать через жопу:) это же майн :D Снимок.PNG
    Добился этого: Афигенно, теперь нужно думать как руссифицировать меню с этим:oops:
    Ошибка в том что я для этого использую en_US.lang и меню при этом Английское, а я хочу русский. Как только я прописываю в en_US.lang русские символы, всё ломается(( и шрифт английского становится ужасным, пришла в голову мысль что это может быть из-за неверной кодировки, но это не так. Теперь жду фикса на мой фикс что-бы в меню можно было прописать русский.
     
  17. Crazymine.ru

    Crazymine.ru Ньюби Пользователь

    Баллы:
    1
    Имя в Minecraft:
    Crazymine
    Кто может подсказать как этот шрифт называется.
     

    Вложения:

  18. LisyFOX

    LisyFOX Старожил Пользователь

    Баллы:
    123
    Skype:
    evgexa_ranger777
    Имя в Minecraft:
    LisyFOX
    Либо FaithFul x32 либо x64
     
  19. origamerpro

    origamerpro Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    origamerpro
    @caver сделай пожалуйста файл ascii.png под русский шрифт... ато шрифты различиваются.
     
  20. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    В чём проблема взять unicode_page_04.png и в графическом редакторе уменьшить её строго в 2 раза по обеим осям?
     

Поделиться этой страницей