Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Руководства, инструкции, утилиты' started by caver, Aug 22, 2014.

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

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

    Trophy Points:
    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
     
    Last edited: Aug 22, 2014
  2. Хостинг MineCraft
    <
  3. Reality_SC

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

    Trophy Points:
    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

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

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

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

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

    Trophy Points:
    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 и претензии не принимаются.
     

    Attached Files:

  6. Dimonskiu

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

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

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

    Trophy Points:
    88
    Skype:
    caver15
    Делал тоже давненько могу и ошибаться. ;)[DOUBLEPOST=1408715044,1408714815][/DOUBLEPOST]UPD: выложил в первом посте файлики[DOUBLEPOST=1408715091][/DOUBLEPOST]
    Работает на 1.6-1.7.10 - 100%
     
    Last edited: Aug 22, 2014
  8. Dimonskiu

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

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

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

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

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

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

    [​IMG]
     
  11. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Скинь готовый шрифт что на скрине. Фотошопа нет ( И английский под него бы еще.
     
    Last edited: Aug 23, 2014
  12. Reality_SC

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

    Trophy Points:
    123
    Имя в Minecraft:
    Reality_SC
    Here you are.
     

    Attached Files:

  13. DarkTrim

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

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

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Зачем тебе это извращение под 1.6.4 там же старый русик робит, все что нужно это отключить уникод в классе locale .
     
    Last edited: Aug 28, 2014
  15. DarkTrim

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

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

    Сержо Ньюби

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

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

    Trophy Points:
    46
    Имя в Minecraft:
    KiSsAMc
    Лайк тебе, спасиба братуха :D[DOUBLEPOST=1420642603,1420642556][/DOUBLEPOST]С копирайтами, может кто по мочь?[DOUBLEPOST=1420642664][/DOUBLEPOST]
    Это значет что ты в какой-то текстур пак зашел, тебе нужно открыть minecraft.jar и внутри заменять[DOUBLEPOST=1420643906][/DOUBLEPOST]Что за проблема на табличках не пишет по русски? Снимок.PNG [DOUBLEPOST=1420644897][/DOUBLEPOST]
    Что-то не так с шрифтом(

    Снимок.PNG [DOUBLEPOST=1420645527][/DOUBLEPOST]Русский шрифт божественен:3:rolleyes: Снимок.PNG но ска английский косячный стал, попробую фиксануть:nerd:[DOUBLEPOST=1420645676][/DOUBLEPOST]
    хм нашел проблему, это в glyph_sizes нужно перерисовать английский или просто убрать изменения в коде файла glyph_sizes английского[DOUBLEPOST=1420646532][/DOUBLEPOST]Добился этого..... Английский шрифт теперь HD а вот русский, да жирный но всё же не HD ((
    Снимок.PNG [DOUBLEPOST=1420648939][/DOUBLEPOST]Сижу битый час не понимаю почему не работает, и тут до меня доходит странная мысль, а если попробовать через жопу:) это же майн :D Снимок.PNG
    Добился этого: Афигенно, теперь нужно думать как руссифицировать меню с этим:oops:[DOUBLEPOST=1420650534][/DOUBLEPOST]Ошибка в том что я для этого использую en_US.lang и меню при этом Английское, а я хочу русский. Как только я прописываю в en_US.lang русские символы, всё ломается(( и шрифт английского становится ужасным, пришла в голову мысль что это может быть из-за неверной кодировки, но это не так. Теперь жду фикса на мой фикс что-бы в меню можно было прописать русский.
     
  18. Crazymine.ru

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

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

    Attached Files:

  19. LisyFOX

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

    Trophy Points:
    123
    Skype:
    evgexa_ranger777
    Имя в Minecraft:
    LisyFOX
    Либо FaithFul x32 либо x64
     
  20. origamerpro

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

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

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

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

Share This Page