[WIP] Minecraft, микроблоки

» опубликован
Последние несколько дней в свободное о работы время я развлекался написанием мода, добавляющего в майнкрафт так называемые микроблоки - возможность использовать дробные части блока. Это не первый и, наверно, не последний мод на данную тему, но практически все имеющиеся моды строятся вокруг возможности разрезать блок и получить микроблоки в качестве предметов, меня же больше интересовал скульптурный подход, при котором конструкции из микроблоков создаются путем срезания ненужных фрагментов с исходного блока.
Не буду вдаваться в технические подробности - сомневаюсь что это будет здесь кому-то интересно.
На момент написания этого поста мод позволяет преобразовать практически любой твердый непрозрачный блок в конструкцию из 8*8*8 микроблоков и затем удалить произвольное их количество.
Текстурирование микроблоков "сквозное" - на стороны микроблока накладываются фрагменты исходной текстуры, соответствующие положению микроблока в пространстве.
Не менее важным моментом является то, что микроблоки материальны, а через достаточно широкие отверстия между микроблоками вполне можно пройти. По крайней мере сейчас это справедливо для игроков и мобов, алгоритм проверки проходимости для стрел и предметов еще предстоит реализовать.
Однако статус WIP этот пост получил не только благодаря тому, что мод еще находится в разработке - то-же самое справедливо и для конструкций с использованием микроблоков, скриншоты которых я и планирую здесь выкладывать.

Больше скриншотов



Просмотров: 7 907

Ivtalan #1 - 5 лет назад 0
Есть предложение делать блоки для хгм-рпг сервера майнкрафта.
Fakov #2 - 5 лет назад 0
круто, но не практично, имхо.
prog #3 - 5 лет назад 0
Штурман, а у вас там форж? тогда вынужден отказаться - совместимости с форжем добиться можно, но у меня просто нет на это времени - даже на продолжение разработки его с трудом удается найти, но за предложение спасибо.
На всякий случай хочу уточнить что конструкция на скриншотах не является новыми блоками как таковыми - она создавалась в игре путем удаления лишних микроблоков, а не заданием формы каждой разновидности блоков в программном коде.
Fakov, ну почему же, у меня не раз были случаи когда пол сервера были готовы душу продать за возможность ваять статуи в восемь раз меньше чем они были бы при использовании блоков стандартного размера. Кроме того есть как минимум одно практическое применение помимо декораций - компактные конструкции, по которым можно куда-либо подняться. И даже два - расширение внутреннего пространства помещения без потери внешнего вида (выдалбливаем все кроме одного слоя микроблоков в стенах / полу / потолке ), также на основе этого можно делать секретные проходы и всякое такое (пространства внутри блока от которого остались только боковые слои микроблоков хватает чтобы пройти, но с внешней стороны такой блок невозможно отличить от оригинала).
Ivtalan #4 - 5 лет назад 0
prog, хорошо, блоки - ладно, но нам еще очень нужен моделер для создания различных существ.
Я имею в виду, у нас есть несколько рас, кошки там, волки, но нужно еще кое-кого.
prog #5 - 5 лет назад 0
Штурман, увы, я не очень хорош в моделировании, особенно когда дело доходит до рисования текстур.
prog #6 - 5 лет назад 0
[UPD] Выкроил немного времени и довел до ума совместимость с обычным сервером (не forge и, скорее всего, не буккит и его производные).
Из более старого, но не упомянутого в исходном посте:
  • новые инструменты для работы с микроблоками (два вида по четыре материала). Инструменты из разных материалов на данный момент отличаются только прочностью. На новые инструменты пока нельзя наложить зачарование с помощью стола зачарования, но вполне можно с помощью наковальни и зачарованой книги. Также у новых инструментов временно отсутствуют названия при использовании стандартного ресурспака.
  • возможность контролировать "силу удара" молота (количество удаляемых микроблоков при использовании) путем переименования его в наковальне.
В планах на ближайшее будущее:
  • исправить не критические баги с названиями и зачарованием.
  • добавить возможность копировать структуру микроблоков с одного блока на другой.
  • доработать алгоритм проверки проходимости микроблоков для стрел и предметов.
  • исправить отображение рамки выделения блока чтобы она отображалась только при наведении на один из микроблоков в составе блока, а также масштабировать рамку выделения по краям конструкции из микроблоков, а не по краям исходного блока.
  • автоматически размещать точку приложения стамески сразу после конвертации блока в микроблоки, если соседние блоки являются конструкциями из микроблоков.
  • несколько "шаблонов" обработки блока, например: "ступеньки"(от блока остаются только микроблоки, соответствующие форме стандартных ступеней), "полублок" (аналогично ступеням, только за основу берется форма стандартного полублока), "гладкие ступени" (блок срезается по диагонали, образуя 8 ступенек высотой в один микроблок, а не 2 ступеньки высотой в 4 микроблока), "срез"(с выбраной стороны блока удаляется один слой микроблоков, можно комбинировать с силой удара, что позволит при силе удара 7 за один удар оставить от блока только один слой микроблоков), "труба" (от блока остается только слой в 1 микроблок с четырех сторон, что позволяет игроку или мобам упасть через отверстие в центре, также можно комбинировать с силой удара, что позволяет контролировать глубину обработки) и так далее - на сколько у меня хватит терпения описывать эти шаблоны в коде. Применяться шаблоны будут, скорее всего, переименованием стамески.
В планах на очень отдаленное будущее
  • адаптация мода под форж (если к тому времени не выйдет первая версия официального Plugin API)
  • "фигурные" стамески, позволяющие срезать не только один ряд микроблоков или фиксированный шаблон, но и какую-то предопределенную форму. Не путать с шаблонами - шаблон определяет способ обработки целого блока и результат его применения практически не зависит от точки приложения стамески, в то время как "фигурная" стамеска выполняет удаление микроблоков по своему шаблону, но относительно точки приложения.
  • "сквозная" конвертация и обработка блоков, что позволит не заботиться конвертацией каждого блока в микроблок - это будет происходить автоматически если область действия "фигурной" стамески будет выходить за рамки текущего блока. Также это значит что вырезаемая фигурной стамеской форма не обрезается по краю текущего блока - та часть что не уместилась на текущем блоке переносится на соседний.
  • дополнительный инструмент, отличающийся от имеющейся пары тем, что он будет удалять микроблоки сразу, а не по принципу "разместить стамеску, а потом ударить молотком". Т.Е. в один клик вместо двух, но и без страховки от мисклика.
  • улучшить алгоритм определения микроблока, по которому был произведен клик мышкой. На данный момент это простая прямоугольная проекция от стороны блока, в идеале же это рейтрейс от камеры или вроде того.
prog #7 - 5 лет назад 0
[UPD]
Очередная порция обновлений:
  • реализован алгоритм рейтрейсинга, позволяющий выполнять действия сквозь пустоты в микроблоках.
  • реализация алгоритма рейтрейсинга также позволяет стрелам пролетать сквозь пустоты в микроблоках.
  • благодаря все тому-же алгоритму теперь установка стамески происходит точно по наведению курсора на микроблок, а не по прямоугольной проекции от стороны, также установка стамески теперь возможна на произвольный микроблок и с произвольной стороны, а не только на крайние микроблоки с каждой стороны блока.
  • соответственно, рамка выделения блока отображается только при наведении на один из микроблоков блока, а наведение на пустое место равноценно наведению на блок воздуха.
также реализована система использования шаблонов обработки для стамески и несколько шаблонов, каждый из которых совместим с силой удара молотка
  • [cross] вырезает крестик из 5 микроблоков с центром в точке установки стамески.
  • [slice] срезает целый слой микроблоков, в соответствии с точкой установки стамески.
  • [square3][square5][square7] срезает квадрат соответствующего размера с центром в точку установки стамески.
  • [sphere3][sphere3][sphere3] обрабатывает часть блока соответствующего размера, оставляя в этой области сферу из микроблоков. В связи с низким разрешением результат похож на сферу весьма отдаленно. Используется только с силой удара молотка, в противном случае от каждого обработанного слоя остается только один микроблок в точке установки стамески.
  • [walls] оставляет только по ряду микроблоков на двух краях слоя, остальное срезается.
  • [well] оставляет только один ряд микроблоков по краям слоя, остальное срезается.
Новые скриншоты и обновление первого поста будут позже.
prog #8 - 5 лет назад 0
[UPD] очередное обновление, состоящее преимущественно из багфиксов всех мастей.
За неимением времени на строительство собственных произведений из микроблоков, буду выкладывать скриншоты от игроков, на которых возложена ноша тестирования мода. Вот некоторые из них:
vitalyr777 #9 - 5 лет назад 0
Где скачать или как называется?
prog #10 - 5 лет назад 0
vitalyr777, это никогда не было опубликовано для широкого круга пользователей по очевидным причинам - полная несовместимость с форжем и низкая степень готовности.
vitalyr777 #11 - 5 лет назад 0
prog:
vitalyr777, это никогда не было опубликовано для широкого круга пользователей по очевидным причинам - полная несовместимость с форжем и низкая степень готовности.
Хмм... Я видел оооочень давно, даже ставил на свою сборку один мод, там кароче добовляются стамески алмазная, железная и каменная и ими можно было разрезать блоки, удалять из блока по обному пикселю и ставить их на любой другой блок, очень похожий мод с этим, только непомню как называется...
Klimlords #12 - 5 лет назад 0
Хмм... Я видел оооочень давно, даже ставил на свою сборку один мод, там кароче добовляются стамески алмазная, железная и каменная и ими можно было разрезать блоки, удалять из блока по обному пикселю и ставить их на любой другой блок, очень похожий мод с этим, только непомню как называется...
RedPower 2 или 1
vitalyr777 #13 - 5 лет назад 0
Klimlords:
Хмм... Я видел оооочень давно, даже ставил на свою сборку один мод, там кароче добовляются стамески алмазная, железная и каменная и ими можно было разрезать блоки, удалять из блока по обному пикселю и ставить их на любой другой блок, очень похожий мод с этим, только непомню как называется...
RedPower 2 или 1
Не не не не не, тооочно не редпаувер, там отдельный мод который добовляет стамески, алмазная убирает 1 четверть блока железная целую полосу, а вот каменная всего лишь один пиксель
Только вот забыл, забыл как называется, помню что на ютубе сть даже видео от англоязычных, и на офф форуме майна в разделе модов он точно есть, только вспомнить бы название...
prog #14 - 5 лет назад 0
vitalyr777, удачи в поисках. Могу только сказать что это не тот мод.
vitalyr777 #15 - 5 лет назад 0
Всё, я нашёл тот мод, называется MINEPAINTER
RSQR #16 - 5 лет назад 0
prog:
Little blocks mod. Считай твой мод - аналог.
prog #17 - 5 лет назад 0
RSQR, мимо. Да, внешние сходства есть, но принципы работы и предназначение у модов совершенно разные. Там используются полноценные блоки размером 1/8 блока, а у меня это просто изменение формы исходного блока.
  1. я не претендую на уникальность мода и знаю о существовании большей части "аналогов".
  2. внимательно читай начало описания, там об этом сказано:
Это не первый и, наверно, не последний мод на данную тему, но практически все имеющиеся моды строятся вокруг возможности разрезать блок и получить микроблоки в качестве предметов, меня же больше интересовал скульптурный подход, при котором конструкции из микроблоков создаются путем срезания ненужных фрагментов с исходного блока.
psychosis #18 - 4 года назад 0
Что-то похожее уже где-то видел.
prog #19 - 4 года назад 0
psychosis, некропостим, однако. Похожего, естественно, хватает - например вTerrafirmaCraft-е был похожий способ работы с камнем.