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

Идея Image Map for Minecraft PE (несуществующее приложение для Minecraft PE)

Тема в разделе "Запросы на разработку плагинов", создана пользователем Константин 00001, 10 ноя 2020.

  1. Автор темы
    Константин 00001

    Константин 00001 Ньюби

    Баллы:
    1
    сконвертируй любое изображение в свою карту (item map) (карту-предмет, а не игровой мир) 128*128 пикселей (ХОТЕЛОСЬ БЫ ГДЕТО УВИДЕТЬ ЭТИ СТРОЧКИ НО НЕТ, ОСТАВЬ НАДЕЖДУ ВСЯК СЮДА ВХОДЯЩИЙ)

    ВНИМАНИЕ ДАННАЯ ПРОГРАММА ЕЩЁ НЕ СУЩЕСТВУЕТ, В ДАННОЙ СТАТЬЕ БУДЕТ ОПИСАНА ИНФОРМАЦИЯ О КАРТАХ КОТОРУЮ НЕЛЬЗЯ ТАК ПРОСТО НАЙТИ И ВОЗМОЖНО ЭТО ПРИВЕДЁТ К РАЗРАБОТКЕ Image Map for Minecraft PE

    Исследование по картам было проведено в minecraft PE v1.2.8 поэтому информация может отличатся от новых версий игры

    Спойлер (другой способ переноса изображения в майнкрафт пе) Если вам требуется перенести изображение на карту вы можете создать карту местности, пометить её углы и разместить на ней файл schematic с заранее переведённым изображением. для тех кто хочет перевести изображение в schematic воспользуйтесь этим сайтом Convert images to schematics (ссылки на него работают криво так, что используйте только название) на данном сайте вы можете вставить изображение размером 128*128, если вставите больше, то сайт обрежет картинку и результат будет не тем. Данный сайт и так было крайне сложно найти, но похоже, что это действительно единственный пока рабочий способ перенести любое цветное изображение на вашу карту. Примечание, вам потребуется программа для размещения файлов schematic в ваш мир, например МКПЕ строитель про, но при размещении изображения в мир могут наблюдаться отклонения в размещении, так что вам придётся размещать несколько раз пока не получится разместить изображение ровно по карте, также на сайте для
    большей точности изображения желательно выбрать эти пункты() или эти(), это я проверял сам. готовый файл schematic как обьект из блоков будет иметь размер ширины и длины 128, но само изображение будет составлять 127*127 пкс, остальные незанятые части займёт камень (уж не знаю почему есть такой недостаток). Но всёже надо отдать должное разработчикам сайта Convert images to schematics ведь пока это единственный рабочий способ. по старинке создать изображение можно и другими путями, можно в ручную построить изображение 128*128 (не рекомендуется, слишком долго, но на серверах это единственный рабочий способ, если вы не являетесь хозяином сервера, а просто игроком). Также есть и способ тоже с использованием schematic разработанный мной, но его минус в том, что изображение может быть только двух цветным поэтому я не буду его описывать. Конец спойлера.

    В начале хочу сказать, что здесь я расскажу о той информации которую мне удалось найти.Также скажу какая проблема вышла у меня из-за которой вы сейчас и читаете эту статью, ведь создать эту программу самому оказалось невозможно.

    Начну с самого простого, изображение карты имеет размер 128*128 пкс, что и так всем известно. всего пикселей в карте 16384. Если вы попробуете открыть свой инвентарь через NBT редактор blocktoprograph то можно увидеть uuid карты (допустим -21474836476) когда вы берёте карту в руку находясь в инвенторе то можете заметить такиеже данные под именем (карта -21474836476) как именно зависят эти цифры от места создания карты я незнаю, но это к теме и не относится, возможно это просто рандомные цифры. Раз вы создали карту, значит где-то в файлах мира должен находится код этого изображения и вот вам новость, я нашёл этот код, он находится по пути (games/com.mojang/minecraftworld/"название вашего мира"/db/"random name".log) важно упомянуть, что файл в формате (.log) будет иметь рандомное имя, которое будет меняться при каждом выходе из мира, так, что искать нужно файл в формате (.log) не перепутайте с файлом LOG, это не тот файл. этот файл открывается через текстовый редактор и более менее понятен человеку, введя uuid вашей карты в поиск ниже вы обнаружите что-то вроде этого:

    (файл 01 в конце статьи содержит код)

    у нектрых людей возникнет вопрос почему я решил, что это код изображения карты, а вот с чего. при нанесении на поверхность мира других блоков и повторного просмотра файла ("random name".log) можно заметить явные изменения конкретно того пикселя где был заменён блок, поменялось не только изображение, но и сам код. При нескольких изменениях удалось выяснить, что каждый пиксель имеет шифровку из 4 символов,(я небуду скидыват все коды после изменений) подсчёт символов всего кода даёт следующие данные 65536 что примерно равно 16384*4 (потом обьясню почему не ровно 65536). каждый пиксель в коде из 4 символов может состаять частично из пробелов или целиком (если все 4 символа состоят из пробелов, то пиксель в игре будет прозрачным, обычно это означает то, что это место не прорисовано, тоесть игрок не подошёл в это место и карта не прорисовалась полностью). Символы по видимому кодируют цвет, оттенок, иногда высоту блока на карте, а также на оттенок пикселя влияет биом мира. Перед началом кода виден тот самый uuid
    карты (map_-25769802651ћ‚) перед началом кода можно заметить ( colors ) который обозначает начала кода, в конце кода есть ( decorations).

    Теперь приведу пример изображения карты которая создана на поверхности из 5 чередующихся полос из разных блоков.

    (файл в конце статьи 02 содержит код)

    теперь можно заметить, что карта действительно показывает изображение 5 разных полос. Карта кодирует изображение таким образом, что сначала кодируется самая верхняя строка постепенно переходя на нижние строки, строки кодируются слева на право, и поскольку в каждой строке 128 пикселей, что равно 128*4=512 символов. Попрежнему непонятно где заканчивается одна строка и начинается другая (начало новой строки никак не обозначено), но вот вам упрощёный вариант:

    (файл 03 в конце статьи содержит код)

    Отдельный интерес представляют строчки которые длиннее других, в них заметны символы выходящие из ряда например (3яљЕщ) или ( -ґ^ъ†»2я) ясно, что они не кратны 4, не ясно, что именно они кодируют, но точно не изображение, также если всмотреться в код можно заметить группы из четырёх символов не относящиеся к строке и повидимому являющиеся ошибкой сохранения изображения или просто другим оттенком цвета (эти группы символов не относящиеся к изображению имеют рандомное имя и положение в коде изображения). Нектрую информацию по картам можно найти очень просто не копаясь в файлах, но она будет мало полезна. Что ещё удалось найти по картам, так это то, что если в новом мире создать одну карту, то в файле ("random name".log) будет несколько пустых карт с uuid который не существует, тоесть создаётся одна карта, а в файле их много, странно, но неважно, это всё равно не поможет в развитии данной темы.

    А какже основная тема этой статьи? Ну тут не всё так просто, любой человек, даже мало знающий прописку алгоритмов действий программе для выполнения действий поймёт, что нужно просто написать программу конвертера изображения, по поводу кодировки пикселей фото разных форматотов я не заморачивался, (ведь до этого даже не дошло), к тому же найти информацию по этой теме в разы проще ведь конвертеров фото очень много. К томуже кодировка изображения в фото происходит совсем иначе, там есть данные о цвете и оттенке hex, но кодироваться они могут не слева на право и постепенная кодировка строчек, а совсем иначе, но обьяснять я это не буду. Просто написать конвертер который будет переносить изображение в майнкрафт. Во первых в майнкрафте ограниченное количество цветов и оттенков на карте, а значит программе пришлось бы соотносить несколько оттенков с куска фото - всего одному оттенку в куске карте, тоесть если вы на фото ясно видите несколько оттенков одного цвета, то программа скорее всего перенесла бы его одним
    оттенком. Во вторых пришлось бы прописывать соотнесение положения, если в фото положение пикселя может быть прописано совершенно непонятно, то в карте оно идет строка слева на право и далее строки вниз. В принципе можно заморочится и создать такую программу, но если бы не одно УЖАСНОЕ СОБЫТИЕ.

    Вот сейчас начнётся самое интересное. Да программу можно написать. Но в первую очередь нужно попробовать отредактировать всё в ручную, нет ничего проще чем просто заменить одни 4 символа другими четыремя и сохранить и вставить мир ииииииииииии............ НЕТ. карта не изменилась, ну допустим ошибка, повторное редактирование уже нескольких пикселей, никакой реакции, замена карты на вообще одноцветное изображение из другой карты, опять редактирование не удалось, может ещё раз попробовать - мир сбросился на самое начало, ну вообще пофигу на мир, он всё равно был подопытным. Создал новую карту попробовал сново редактировать но результата не было. Да нектрые скажут, что карта просто обновилась и изображение поменялось на
    старое, но я заранее ушёл подальше, чтобы катра не обновилась. Пробовал также сменить uuid карты и потом с помощью blocktopograph сменил uuid обычной карты на заранее изменённую, несработало. к тому же мир пришлось перезагрузить, ведь после редактирования файла ("random name".log) мир не может быть открыт с помощью blocktopograph пришлось перезагрузить мир и лишь после этого мир открылся с помощью blocktopograph но NBT редактирование не помогло, всё равно карта не та, она оказалось пустой, хотя я помню как вставил в неё код изображения. Также были замечены такие ошибки как полное отсутствие в файле ("random name".log) кода карты.

    Как вообще можно понять происходящее? Ну допустим есть ещё один архив дублирующий данные файла ("random name".log) вес кода карты без дополнительной кодировки около 117 килобайт. и в папке мира майнкрафта есть таки файлы как level.dat, level.dat_old, levelname.txt, world_behavior_packs.json, world_resource_packs.json, (иногда есть файл ent.dwdat), в папке db находятся файлы CURRENT(без формата), LOCK(без формата), LOG.old, MANIFEST-(random name)(без формата), уже упомянавшийся ("random name".log), и самый распространённый файл ("random name".lDB) - ldb - levelDB. Кондидаты в дублирующее хранилище данных может быть лишь одно и из всех файлов, только ("random name".lDB) подходит на эту роль остальные даже близко не подойдут. Даже если сжать код карты до одного килобайта, это нечего не изменит (у меня есть мир в котором создано более 600 карт, но при этом размеры большинства файлов относительно неизменны, кроме размера и количества файлов ("random name".lDB)). Так вот ("random name".lDB) это файл Zlib
    compression тоесть заархевирован в формате Zlib. Даже с помощью текстового редактора прочитать файл неполучится, весь файл состоит из так называемых "кракозябр". НЕПЫТАЙТЕСЬ ПОНЯТЬ ЭТОТ ФАЙЛ! я пыталься искать всю информацию по данному файлу, нашёл LevelDB viewer на сайте GitHub, который почемуто не распознаёт эти файлы (на*** тогда вообще эта программа есть если она даже не видит файлы lDB). также ("random name".lDB) Крайне нестабильный архив при 5 циклах захода и выхода в мире майнкрафта каждый новый файл ("random name".lDB) отличался от предыдущего кроме начальной строчки и конечной (иногда появлялся ("random name".lDB) написанный ироглифами). Этот файл хранит инфармацию о чанках 16*16*256 и много о чём ещё, но содержит ли он данные о изображении карты неизвестно. В любом случае я перепробовал множество вариантов открыть файл ("random name".lDB) но нет ни одного рабочего levelDB viewer.

    В данной статье есть информация о картах которую нельзя найти просто так на просторах интернета (до недавнего времени) и как вы поняли вся проблема создания Image Map for Minecraft PE заключается в неизвестной ошибке из-за которой неполучается даже немного редактировать изображения карты.
    Эта статья была опубликована для ознакомления с подробной информацией о картах в minecraft PE.
    Возможно используя эти данные ктото захочет создать Image Map for Minecraft PE. Возможно кому то не придётся мучится и искать эту информацию и проводить опыты над файлами и кому то это будет сэкономленное время и намёк на то, что ничего неполучится сделать и поэтому даже не надо пытаться что-то делать.

    да теперь определённо есть хоть малая надежда на то, что Image Map for Minecraft PE всё же будет когданибуть создан.
    В любом случае надеюсь, что я дал толчёк для создания этой программы.

    (если вы хотите обсудить эту тему, то вот ссылка на мою группу в вк (https://vk.com/imagemapformcpe) ссылка может работать некорректно, так что введите в вк поиск сообществ (Image map for MCPE обсуждение о возможности созд) вы точно не ошибётесь ведь есть всего одна такая группа).
     

    Вложения:

    • 01.txt
      Размер файла:
      94,6 КБ
      Просмотров:
      1
    • 02.txt
      Размер файла:
      115,3 КБ
      Просмотров:
      0
    • 03.txt
      Размер файла:
      116,3 КБ
      Просмотров:
      1
  2. start.bat

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

    Баллы:
    66
    Имя в Minecraft:
    3ACOC
    Еба, начал читать и устал, так-что не удивляйся тому что я спрошу: (какие поддерживаемые цвета бедрока?) даже если ты писал об этом ._.
     
  3. Автор темы
    Константин 00001

    Константин 00001 Ньюби

    Баллы:
    1
    Не совсем понял вопрос. Поддерживаемые цвета бедрока всмысле бедрок Эдишн или что-то другое? Или поддерживаемый цвет от блока бедрока на изображении карты, или все поддерживаемые цвета и оттенки для карты?
     
  4. start.bat

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

    Баллы:
    66
    Имя в Minecraft:
    3ACOC
    Карты в java edition поддерживают только около 170 цветов
    Как обстоит ситуация с бедроком?
     
  5. Автор темы
    Константин 00001

    Константин 00001 Ньюби

    Баллы:
    1
    В самом начале статьи сказано, что исследование было проведено в Minecraft PE v 1.2.8 я не изучал бедрока эдишн, но скорее всего данные похожие, хотя где то у меня вроде был скриншот и там были приведены цвета для бедрока, но не количеством цветов, а палитрой, так что считать придётся вручную. Завтра попробую скинуть скриншот, с телефона не отправляется. (А вообще до подсчёта цветов в картах MCPE 1.2.8 дело не дошло, причина описана в статье)
     
  6. Автор темы
    Константин 00001

    Константин 00001 Ньюби

    Баллы:
    1
    Всё же нашёл инфу, что бедрок поддерживает всю палитру RGB короче 255 разных цветов, надеюсь тебе пригодится эта инфа.
     
  7. start.bat

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

    Баллы:
    66
    Имя в Minecraft:
    3ACOC
    Недавно в 1.16 java добавили полную поддержку RGB
    С картами все обстоит иначе
    Так как я использую Geyser - мне надо было знать и о том и о том
     

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