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

Туториал [WorldEdit]Уроки

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

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

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Урок 1
    Я думаю, все уже знают, что мы будем заниматься такой мощной штукой в Майне, как WorldEdit (Ворлдедит, ве) - плагином для массового редактирования карты. Она позволяет очень многое, и то, что знают все - выделение регионов и //set - лишь верхушка айсберга.
    Все команды можно узнать из официальной Вики ВЕ:WorldEdit-SK`s Wiki (там есть ВСЁ!, и я узнавал всё оттуда), но я постараюсь выдать вам пару секретов и обратить внимание на некоторые штуки.

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

    Чтобы проблем не было, все обучающиеся обязаны сразу же прописать себе
    //limit 100000 - это значит, что у вас будет ограничение в 100000 изменяемых блоков. Этого вполне достаточно, чтобы не положить сервер.


    Далее, есть команда, которую вы должны запомнить как "Отче наш". Это команда
    //undo - отмена предыдущего действия (или //undo <число отменяемых действий>)!
    Делать это нужно как можно быстрее, потому что если произойдёт рестарт сервера, отменить действия будет нельзя. Не беспокойтесь - если вы просто выйдете из игры и зайдете, история не сотрётся. Однако, она исчезает через некоторое время (но 10 минут у вас точно есть).
    (Есть история о том, как огромный Космический Крейсер Империи протаранил целый город, снеся его четверть, да так и остался там просто потому, что не вовремя случился рестарт)


    Наш первый урок будет посвящен простым формам. Вы должны понять, что в Майне не надо изобретать велосипед, и выстраивать большие шары, цилиндры и пирамиды по кубикам. А большинство построек собраны именно из этих простых форм.

    Итак, вот наши команды:
    //pyramid <материал> <размер (высота) пирамиды> - пирамида.
    //hpiramid делает ту же пирамиду, но полую, без внутренностей.

    //cyl <материал> <радиус цилиндра> <высота цилиндра>
    и //hcyl
    - цилиндр и полый цилиндр.

    //sphere <материал> <радиус сферы>
    и //hsphere
    - шар и полая сфера.


    Но этим дело не ограничивается. Немногие знают, что радиус можно задать в виде
    "4,10" для цилиндра и "10,20,15" для шара. Таким образом мы получаем эллипсоидные формы, а они гораздо круче! У цилиндра в основании будет лежать эллипс, а не круг. "x,z" x- длина оси эллипса вдоль x, z- длина оси эллипса вдоль z. Шар также может вытянуться вдоль любой оси. "x,y,z" задают длины оси эллипсоида вдоль соответствующей оси мира. Например,
    //hsphere glass 30,10,30 - это стеклянный купол радиусом 30 и высотой 10 (низ можно отрезать)
    //hsphere ironblock 30,30,2 - это узкий вертикальный диск.
    //hsphere snowblock 15,7,6 - это основа для глазика.

    Возникает вопрос: а какая команда для создания кубов и параллелепипедов? А ее нет, потому что вы и так умеете заполнять прямоугольные формы с помощью выделения регионов. Сделать просто куб можно командой
    //replacenear <радиус куба> <материал>
    , еще можно выделить регион, и набрать
    //set <материал>
    Если нужен полый куб, то после выделения региона надо набрать
    //outline <материал> - это окружит весь регион (и сверху-снизу тоже)
    Если нужны просто стены (не сверху-снизу), можно набрать
    //walls <материал>


    Итак, ваше первое задание:
    Сделать постройку, не поставив ручками ни единого блока, только с помощью ВЕ.
    Подойдет всё, что угодно - какая-нибудь красивая форма, статуя, основа для дома в каком-нибудь стиле. Экспериментируйте!

    Полезные советы:
    - Возникает вопрос - а как запоминать ид предметов? А не стоит этого делать! Лично я запоминаю блоки по названиям. Может показаться сложным вводить целое слово, но это легче чем каждый раз лезть в НЕИ, или запоминать номера, которые меняются от версии к версии. Если вы, конечно, понимаете английский.
    Вот примеры названий материалов:
    obsidian - обсидиан
    wood - доски
    glass - стекло
    stone - обожженный камень
    glowstone - светокамень
    chest - сундук
    и т.д.

    - Как вы понимаете, с помощью команд можно делать и дырки тоже. Для этого в качестве материала просто надо указать воздух - ид 0. Не забывайте об этом! Если вырезать из пирамиды эллиптические куски, или вырезать эллипсоиды из эллипсоидов, могут получиться совершенно необычные формы!

    - Про выделения поговорим на следующем уроке. Но вот совет - необязательно летать по углам региона. Можно, стоя на месте, набрать //pos1 //pos2, потом //outset <радиус> - эта команда раздвигает регион во все стороны на <радиус>, или //expand <на сколько продлить регион в ту сторону, куда смотришь>

    - Если вы находитесь в воздухе, и вам не с чего начать стройку, а столб делать долго, самый простой выход - //hcyl 1 1

    - Есть такая вещь, как нечётная и чётная симметрия. Нечётная симметрия - это когда ось проходит через середину блока, а чётная - это когда ось проходит между блоками. У нечётно симметричных строек будет нечётное количество блоков в профиле (1,3,...,13 и т.д.), а посередине будет четко выделенная линия из блоков, являющаяся линией симметрии. Нечётная симметрия обычно выглядит лучше, но если вы хотите, чтобы в центре фасада была какая-нибудь чётная штука (например, пара дверей), то надо использовать чётную симметрию.
    Сферы, цилиндры и пирамиды изначально делаются в нечетной симметрии. Чтобы сделать их чётными, либо нужно использовать генерацию (об этом позже), либо ставить их 4 (для пирамиды и цилиндра) или 8 раз (для шара) из разных точек.
    Потом можно воспользоваться командой
    //hollow, которая удаляет все, что внутри фигуры, делает её полой.

    Тема находиться на реставрации.​
     
    Последнее редактирование: 26 апр 2014
    Nixx, Hephest, syllik и 4 другим нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Урок 2
    Прежде всего, я рекомендую вам забиндить на клавиши команды //pos1 //pos2 //hpos1 //hpos2 //expand 1 //contract 1
    Думаю, вы знаете, что эти команды делают: выделяют два угла региона в точке, где вы стоите (pos1 pos2), в блоке, на который вы смотрите (hpos1 hpos2), расширяют и уменьшают регион на единицу в направлении, куда вы смотрите (expand contract). Эти команды используются ОЧЕНЬ часто.


    Кроме того, полезно пользоваться и просто командами
    //expand и //contract <на сколько блоков> {<на сколько блоков в обратную сторону>} {<n,e,w,s,u,d>} (север восток запад юг верх низ)
    (Например, //expand 10 10 u - вверх и вниз на 10 блоков)


    Еще есть полезные командочки
    //outset <на сколько блоков> - расширяет выделенный регион во ВСЕХ направлениях.
    //inset <на сколько блоков> - уменьшает регион со всех сторон.
    //shift <на сколько блоков> {<n,e,w,s,u,d>} - (не путать с /shift!) сдвигает выделенный регион (просто выделение, а не то, что там внутри)

    Всё это конечно хорошо, но что дальше? Конечно, вы уже приватили регионы командой /rg claim <название> (и это иногда удобно делать, чтобы потом можно было опять вызвать регион командой /rg sel <название>). Но зачем?)

    А вот ВЕ даёт кучу возможностей!
    Вы можете
    //set <материал> - замостить весь регион материалом
    //outline <материал> - окружает весь регион материалом
    //walls <материал> - делает стены из материала
    //overlay <материал> - наложить сверху на регион один слой из материала
    //replace <материал1> <материал2> - заменить в регионе материал1 материалом2
    Кроме того, есть еще мощная командочка. Она не относится к региону, но она тут в тему. Пользуюсь ею постоянно!
    //replacenear <радиус кубоида> <материал1> {<материал2>} - заменяет весь материал1 на материал2 в радиусе. Для этой команды не нужно выделять регион. Если не указывать материал2, просто всё в радиусе заменится на материал1.


    Все эти команды очень нужные и мощные. Но почему-то знание о них останавливается на этом этапе. Однако у этих команд есть секреты.
    1. Вместо <материала> можно указать несколько материалов через запятую. Когда это в <материал1>, то команда просто заменит все эти материалы на материал2. Но если вы укажете через запятую материалы в <материал2>, то команда заменит материал1 на материалы случайным образом - в равных пропорциях. Кроме того, можно даже указать вероятность замены.
    Например,
    //replacenear air 90%air,10%lava - это заменит 10 процентов воздуха вокруг на лаву.
    2. <материал2> = "#clipboard"
    Моща! Остановимся на этом поподробнее. Как этим пользоваться.
    Сделаем какую-нибудь штуку. Выделим ее в регион. Потом наберём команду
    //copy - этим мы загрузим штуку в буфер для копирования.
    После этого выделим другой регион, в несколько раз больше.
    Набираем
    //set #clipboard
    Эта команда замостит весь регион копиями того, что лежит в буфере!
    Все команды поддерживают #clipboad. В том числе, //replace и //replacenear
    Это значит, что вы можете не просто размножить какой-нибудь узор, но и заменить, например, замостить какую-нибудь форму, например, шар, или деревья в лесу. Для этого надо просто сделать шар из отдельного материала, а потом заменить этот материал на #clipboard

    Задания на 2ой урок:
    1) Создать два собственных элемента узора. Один двумерный, и встроить его в стену, пол или плоский объект.
    Другой узор - трёхмерный, замостить им какой-нибудь объёмный объект.
    2) Заморозить (превратить всё в блоки льда) или раскрасить блоками любую неквадратную форму. Например, заморозить часть леса в виде шара.


    Полезные советы:
    - Радость админа, команда
    //regen - регененирует регион к изначальному виду, тому, что был до того, как его "испортили" игроки своими постройками. Приводит к приличному естественному виду всё, что погрифано, наляпано и понастроено булыжником.
    Однако, у нее есть несколько существенных недостатков:
    1. Команда может поменять не только то, что напрямую в регионе, но и то, что находится во всех чанках, соприкасающихся с регионом. Это очень неприятно - меняется не только то, что ты конкретно выделил. Что меняется: поршни меняют положение, исчезают блоки РедПауэра, машины превращаются в простые механизмы. Поэтому применять команду рядом с домами игроков категорически ЗАПРЕЩАЕТСЯ.
    2. Команда восстанавливает ландшафт на основе заложенного на сервере семени случайного распределения. Однако, оно не всегда совпадает с тем, на основе которого реально генерился мир. Поэтому иногда реген восстанавливает не то, что надо, а иногда и просто в пустоту.
    3. Реген плохо возвращает деревья. Деревья генерируются просто заново. То есть, могут появиться половинки деревьев на границах, или висящая в воздухе листва каучука.

    - Есть замечательная команда //sel <cuboid|extend|poly|ellipsoid|sphere|cyl> !
    По умолчанию, все регионы выделяются в виде кубоида, и все думают, что это единственная возможность. Но это не так!
    Вы можете выделять регион в виде многоугольника, сферы, эллипсоида и цилиндра! Хотя есть определённые ограничения и проблемы (например, у многоугольника может быть не более 20 углов, нельзя сохранить регион, выделенный в виде сферы и эллипсоида, команда //overlay работает всегда только на прямоугольник, и т.д.), но всё равно это очень мощные возможности. Например, если вы хотите аккуратно отделить одно здание от другого, а прямоугольником это не получается, можно воспользоваться многоугольником. Как пользоваться, думаю, вы разберетесь. Сфера выделяется по 2 точкам, многоугольник - первая точка многоугольника //pos1 или //hpos1, каждую последующую можно выделить //pos2 или //hpos2, и т.д.
    Однако, иногда забывается, что ты сменил форму выделения (новая форма сохраняется вплоть до перезахода в игру). Просто возвращайте обратно в //sel cuboid, когда захотите.

    - Есть полезная команда //distr. Она показывает распределение блоков в регионе. Очень полезна при поиске сундуков на регионах дюперов. Пригодится, если вы хотите знать статистику по рудам или посчитать, сколько стоит ваш дом.

    - Команда
    //move <на сколько блоков> {<n,e,w,s,u,d>} {материал для замещения} используется нечасто, но нужна. Она передвигает содержимое региона в указанном направлении (по умолчанию - в том, куда смотришь), оставляя сзади указанный материал (по умолчанию - воздух)
    - Иногда возникает проблема - вам не нравится, в каком порядке замостился регион содержимым буфера. Честно говоря, Ве делает это как Бог на душу положит. Выход тут только один - двигать ИЗНАЧАЛЬНЫЙ элемент копирования командой //move. Тогда и все его копии сдвинутся соответственно. Чтобы каждый раз не выделять регионы заново, можно их сохранить /rg claim <>.

    Урок 3
    Теперь мы переходим к вещам, которые реально делают за вас много работы. Это повторения и копии.

    Если вы когда-нибудь занимались написанием рефератов, отчётов или дипломов, то вы знаете, как спасает копи-паста. То же самое и в Майне).

    Самый простой метод размножения - это команда
    //stack <количество копий> {<n,e,w,s,u,d>} - делает несколько копий выделенного региона в одном направлении. Например, так легко размножить элемент дороги вместе с фонарным столбом.
    Однако! Будьте очень аккуратны! Эта команда преодолевает ограничения на блоки команды //limit. Семь раз проверьте регион, прежде чем писать //stack 10!!!

    Кроме того, у команды //stack есть одна хитрая полезная особенность: она может делать копии по диагонали!!! Для этого нужно смотреть наискосок - под 45 градусов, и использовать команду //stack
    Что это значит? Это значит, что вы можете легко сделать линии под 45, 60 градусов и не только! Чтобы сделать линию под 45 градусов, нужно просто выделить один блок (или квадратный регион), посмотреть наискосок, и набрать //stack. Если вы хотите линию под 60 градусов - выделите регион 1х2, и //stack наискосок.

    Второй способ размножения вы уже знаете. Это //set #clipboard. Да, так можно размножаться. Мы уже делали это.

    Третий способ - самый главный. Это использование буфера.
    //copy - копирует в буфер всё содержимое региона
    //cut - вырезает содержимое региона и переносит его в буфер
    //paste - устанавливает содержимое буфера на карту
    Всё очень просто. Вопрос только в тонкостях.
    Самое важное, что нужно понять - это то, что регион копируется ОТНОСИТЕЛЬНО того места, на котором вы стоите, когда копируете. Это значит, что когда вы вставите из буфера, оно вставится в той стороне относительно вашего нового положения, где оно было при копировании.
    Таким образом, чтобы реально скопировать что-то, надо прописать //copy, отойти на новое место (например, на 10 клеток на север), и прописать //paste. Тогда копия появится в 10 клетках к северу от оригинала.
    А что, если нам надо повернуть постройку? Да без проблем
    Для этого есть команды
    //rotate <90,180,270> - поворачивает содержимое буфера на 90 180 и 270 градусов.
    //flip <n,e,w,s,u,d> - отражает содержимое буфера относительно плоскости, перпендикулярной соответствующей оси.
    Пара особенностей - //rotate поворачивает не только сам буфер, но и ваше положение относительно него. Это значит, например, что если вы стояли в верхнем левом углу постройки при копировании, потом прописали //rotate 90, то после установки вы очутитесь в верхнем правом углу от постройки.
    Команда //flip другая - она по умолчанию отражает буфер, но не меняет ваше положение. Немного неудобно иногда - когда вы хотите просто отразить одну из половинок симметричной постройки. Чтобы исправить это, надо использовать аргумент -p (//flip -p d)


    Не все доходят до этого, но у команды //paste есть возможность добавить аргументы -a и -o. С //paste -o всё понятно - с ним команда устанавливает содержимое буфер ровно туда, где оно стояло при копировании (полезно, если там было что-то сломано или нарушено). А вот аргумент -a гораздо полезнее! Он устанавливает постройку "без воздуха". Это значит, что воздух, содержащийся в устанавливаемой постройке не будет затирать окружение. То есть, например, если вы ставите домик в лесу, то пустые клетки домика не вырежут все деревья, оставив уродливый прямоугольный след на границах вставляемого региона.
    Однако, это может быть и вредно - если так сделать, то внутри дома, там где был воздух, останутся деревья леса.
    Но именно то, что есть //paste -a, позволяет делать соединения построек. Это очень мощный инструмент. Например, можно сначала заполнить все внутренности домика каким-нибудь левым материалом (розовой шерстью, например, если в доме нет розовой шерсти), потом поставить его в окружении с //paste -a, а потом заменить розовую шерсть обратно на воздух. Есть много других вариантов с промежуточными материалами.
    Кроме того, почти всегда рекомендуется использовать //paste -a в больших постройках, если возможно - потому что воздуха в постройках всегда больше всего, и если его не вставлять, команда проходит гораздо быстрее, и серв зависает на гораздо меньшее время.

    Задания на урок 3:
    1. Сделать четвертинку симметричной постройки, скопировать ее на все четыре стороны.
    2. Найти красивую небольшую горку на карте (не холм, а 30-50 блоков высотой), и установить ее посреди леса. Сгладить, чтобы выглядело естественно.

    Простые советы:
    - Почти никогда у вас не получится сразу удачно вставить копию! Да и потом - что делать? Как точно вымерить положение? Для этого перед тем, как вставлять буфер, поставьте какой-нибудь особый блок, и вставляйте, стоя на нём. Посмотрев на то, что получилось, посмотрите, на сколько блоков влево/вперёд/вверх его стоило бы сдвинуть. Отмените вставку. Отмеряйте нужное количество блоков от блока, на котором вы стояли. Вставляйте с нового, точно выверенного места. Если постройка большая, и считать по блокам сложно, можно смотреть по координатам - сначала стать на то место, где вставка должна была бы стоять, записать координаты, потом стать на то место, где она реально вставилась. Разницу потом отмерять от особого блока, на котором вы стояли.

    Иногда, конечно, можно использовать команду //move для корректировки места, но она оставляет за собой пустоты.
     
    Последнее редактирование: 27 апр 2014
    Hephest, zuma2 и DenisMartine нравится это.
  4. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Урок 4
    Сейчас мы поговорим о спасении для наших домиков.

    Для игроков первый вайп становится откровением. Когда они обнаруживают в один прекрасный день, что то, что они строили, исчезают, они сначала бесятся, а потом грустят. Без вайпов в Майне не обойтись, но чтобы спасаться от них, надо знать пару простых вещей. Первое - карта обычно сохраняется. Второе - все постройки можно сохранить в отдельные файлы и потом устанавливать на любом сервере или даже в одиночке!

    Как это сделать?
    Очень просто. Выделите постройку. Скопируйте в буфер с //copy или //cut.
    Когда постройка лежит в буфере, ее можно сохранить в файл командой
    //schem save mce <название файла>


    Файл сохранится в папке на сервере с расширением ".schematic" . Именно эти файлы - самое дорогое, что есть у настоящего строителя. В них хранится всё, что он когда-то построил и хочет показать другим людям.

    Чтобы взять эти файлы, необходимо скачать свой файл с хостинга. Не все сервера позволяют игрокам забирать свои постройки в виде схематиков. Мы позволяем! Если постройка красивая, человек имеет право сохранить ее для себя.

    Урок 5
    Генерация в ВорлдЕдите - одна из самых потрясающих штук. Она позволяет сразу, без всякой подготовки, одной командой, создать самые необычные формы.

    Как это работает? В первую очередь, надо выделить регион, где произойдёт генерация.
    Координаты по умолчанию приводятся к виду [-1,1]. Что это значит? Одной границе региона будет соответствовать координата -1, а другой 1, независимо от того, сколько в регионе блоков.
    Если вам это не нравится, то вы можете поставить параметр
    -к - тогда в качестве x y z будут использованы абсолютные координаты (те, что видно по F3)
    или -o -тогда будут абсолютные координаты блоков, но с (0 0 0) в том месте, где вы стоите.
    Но в большинстве случаев нам удобнее работать с [-1,1], потому что тогда не надо заморачиваться с цифрами координат.
    Далее, мы пишем что-то вроде
    //g <материал> <условие с координатами>
    Как работает ген? Он для каждой точки в регионе проверяет, выполняется ли условие. Если выполнено, он ставит по координатам блок. Если нет - нет.
    Например, //g diamondblock x>y поставит в регионе алмазные блоки везде, где x>y.

    ---
    Тут могут использоваться и булевские операции. Если вы знаете, что это такое, то для вас не будет неожиданностью, что можно сделать так:
    && - условие "и"
    || - условие "или"
    //g 1 (x>y)&&(z>y) - ставим только там, где x>z И z>y


    Геном удобно делать полные формы, но и поверхности он может тоже. Для этого достаточно после создания формы прописать //hollow (вычищает всё внутри), либо сразу задать параметр -h
    //g -h 1 x^2+z^2<1
    ---
    По сути дела, ген превращает майн в мини 3d редактор. Главное - только придумать формулу, которая описывает вашу штуку. Это не так сложно, если у тебя есть хоть какое-то понимание геометрии.


    1. Что даёт ген? Первое - он может делать простые формы, которых нет в стандартном наборе.

    Конус
    //g 1 y<-sqrt(x^2+z^2)

    Тор (бублик)
    //g 1 (0.75-sqrt(x^2+y^2))^2+z^2 < 0.25^2
    0.25 отвечает за толщину бублика. 0.75 - за радиус бублика


    Хитрые пирамиды (не под 45 градусов, перевернутые, неквадратные)
    //g 1 (y<-abs(x))&&(y<-abs(z))
    Чтобы сделать пирамиду не под 45 градусов, достаточно просто выделить регион неквадратной формы


    Сердечко
    //g wool:red (z/2)^2+x^2+(5*y/4-sqrt(abs(x)))^2<0.6

    Параболоид (очень похож на эллипсоид, но чуток другой - более узкий в основании. прекрасно подходит для длинных правильных выступов или носов космических кораблей)
    //g 1 -y>x^2+z^2
    //g 1 y<-x^2-z^2 (параболоид типа "седло")


    Также, не забываем старые добрые шарики и эллипсоиды (нам это понадобится далее)
    //g 1 x^2+y^2+z^2<1

    Кроме того, с геном можно легко поворачивать, раздвигать и сдвигать форму, меняя координаты местами, добавляя минусы и увеличивая/уменьшая регион. Параметры некоторых форм можно настроить. Думаю, разберётесь.
    ---
    Чтобы получить повёрнутые на "нестандартные" углы формы, теоретически, можно сразу вбить формулу с использованием матрицы поворота. Однако, гораздо удобнее для поворота, например, куба, в пространстве, использовать //deform. Об этом ниже.
    ---
    2. Линии
    Часто люди не знают, как сделать линию, соединяющую две точки под "нестандартным" углом. И поэтому не делают таких линий. Но с геном это просто. Достаточно просто выделить регион, ткнув на первую точку, а потом на вторую. Потом
    //g 1 (x<z+0.2)&&(y<z+0.2)&&(x>z)&&(y>z)
    Это соединит два угла региона. Если вам нужно соединить два других угла, просто поставьте где нужно минусы
    //g 1 (-x<z+0.2)&&(-y<z+0.2)&&(-x>z)&&(-y>z)
    ------------
    Линия не всегда получается красивой. Если толщина линии недостаточна, то можно поставить не 0.2, а больше. Или меньше, если линия слишком толстая.
    Иногда удобнее поменять координаты местами.
    //g 1 (x<y+0.2)&&(z<y+0.2)&&(x>y)&&(z>y) - по сути, та же линия, только толщина будет считаться уже вдоль y.
    Если же вы точно знаете, какие отрезки линия отрезает от осей, удобнее использовать параметр -o. Тогда толщина линии может быть точно в 1 блок.
    Если вы знаете угол, под которым должна проходить линия, легче сделать прямую и повернуть - воспользоваться //deform. Об этом ниже.

    ------------
    Непрямые линии. Хотя ген в основном для 3д форм и поверхностей, его можно использовать и для построения кривых линий. Для этого, например, можно выделить регион высотой в 1 блок, и потом рисовать что-то вроде
    //g -h 1 z>x^3
    или
    //g -h 1 2*z<-(x^2)+2*x+1
    Кривые линии в 3д тоже можно делать.


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

    Гиперболическая насыпь
    //g 1 y+1.2<1/(x+1.2)

    Гиперболическая горка - делает гиперболически ниспадающий ландшафт по кругу.
    Смысл в такой горке в том, что, находясь в ее центре, можно увидеть все дома, которые расположены вокруг. И те дома, что рядом с центром, не загораживают дальние, как это было бы с простой горкой посреди города.
    //g 1 y+1.6<1/(sqrt(x^2+z^2))

    Непростые формы.
    Что можно добавить еще в любую сгенерированную форму, чтобы было круче? Самое простое - это изменения по кругу.
    делается это просто - берётся угол atan(x/z) (арктангенс), и помножается на какой-нибудь параметр формы. Например, на радиус. Или на высоту.
    Простейший случай - лепестки (делаются на плоском регионе)
    //g 1 (x^2+z^2)*(cos(4*atan(x/z)))^2<0.4
    Как видно, 12 задаёт количество лепестков.

    Ежик
    //g 1 (2+cos(atan(z/y)*10))*(x^2+y^2+z^2)<0.6
    - это ежик с выступами-ребрами по кругу.
    Можно также добавить рёбра к параболоиду, и получить готовый нос космического корабля, или сделать не рёбра, а выступы-иголки для ежика.

    Подводный город
    //g -h glass (1.1+cos(12*atan(x/z)))*(0.5-sqrt(x^2+z^2))^2+y^2<0.15^2
    или
    //g -h glass ((1.1+cos(12*atan(x/z)))*(0.5-sqrt(x^2+z^2)))^2+y^2<0.25^2
    Такой полый бублик с выступами я поместил под воду, и получилось готовое крутое место для Атлантиды. Сейчас бы я еще добавил скрутку этого всего по спирали, чтобы выглядело вообще отпадно //deform rotate(x,z,sqrt(x^2+z^2))

    4. Деформация. Надо сказать, это самая неоднозначная и многообещающая штука.
    Если с геном ты можешь почувствовать себя Богом, творящим хрени прямо из ничего, то //deform даёт тебе возможность согнуть этот мир в дугу.
    Внимание! Осторожно! Деформ работает гораздо дольше, чем ген и вставки. Не применяйте его к большим регионам!
    Деформация также работает с выделенным вами регионом, но немного иначе, чем ген. Деформация - это уже программа, а не условие. То есть, вы должны задать, как изменятся координаты блоков, и блоки переставятся. Некоторых ставит в тупик, как это работает. Например, //deform y=y+0.5, сдвигает всё вниз, а не вверх, как ожидалось. Однако, тут дело вот в чём - //deform просматривает все точки внутри региона, и ставит в каждой из них тот блок, значение координаты которого задано нашей программой. То есть, если y=y+0.5, то деформация поставит в каждой точке тот блок, который был расположен выше на 0.5, то есть опустит всё на 0.5.

    Если понять эти простые вещи, можно творить самое невероятное!
    Самое простое - выгибание.
    Мы можем выгнуть содержимое региона, например, вверх, по кругу
    //deform y=y-sqrt(x^2+z^2)
    Или понаделать волн по кругу
    //deform y=y-sin(sqrt(x^2+z^2)*5)

    Еще более полезны такие вещи как повороты. Хотя вы можете задать изменения координат сами (правда, потребуется хранить первоначальные данные - вы не можете задать x=x+sqrt(x^2+z^2),а потом z=z+sqrt(x^2+z^2), x ведь уже изменился), но есть удобная функция, которая сделает всё за вас - rotate (<1я изменяемая координата>,<2я>, <угол поворота в радианах>)
    Например,
    //deform rotate(x,z,pi/4)
    повернёт относительно вертикальной оси, проходящей через центр региона, на угол pi/4 = 45 градусов.
    Деформом удобно поворачивать плоскости на определённый угол, и получать нужные нам скосы и наклоны.

    Точно таким же образом мы можем делать спирали и хитрые повороты, задавая в качестве угла не фиксированное число, а, например, высоту
    //deform rotate(x,z,y*2) - вертикальная спираль
    или радиус
    //deform rotate(x,z,2*sqrt(x^2+z^2)) - закрутка по кругу.

    5. До сих пор мы делали формы из одинаковых блоков. Но это вовсе не обязательно!
    Используя переменные type (ID блока в точке): data (дополнительный ID, например, цвет шерсти), мы можем задавать, какой блок поставить.
    Например, сделать радужный бублик
    //g wool data=(32+15/2/pi*atan2(x,y))%16; (0.75-sqrt(x^2+y^2))^2+z^2 < 0.25^2
    Можно, конечно, и потом раскрасить командой //replace #clipboard

    --------------------------------------------
    Первое время при знакомстве с генерацией вы попробуете сделать какую-нибудь хрень просто вбив какие-нибудь sin, cos, нагородив какую-нибудь формулу, и захотите посмотреть что получится. Это полезное занятие. Однако, на практике нужно сначала подумать, что тебе хочется, сделать простую формулу для основной фигуры, а потом под настроить параметры, чтобы она стала приличной (сдвинуть, повернуть, увеличить радиус кривизны). Для этого стоит понимать, что за что отвечает. Грубо говоря, где надо поставить "2*", чтобы что-то увеличилось в два раза.

    Как вы знаете из прошлого урока, разные 3d формы можно рисовать в 3d max, а потом переносить через вокселизацию в майн. Надо сказать, что когда форма сложная, так легче. Только в самых простых случаях, в основном рассмотренных выше, удобно использовать генерацию. Или для того, чтобы поразить непосвященных быстро созданной с нуля хитрой штукой.
    Например, пятиконечную звезду, спутниковую тарелку и обычную тарелочку я рисовал в 3d max, хотя для них можно было сделать и формулу. Единственный недостаток - схематик трудно масштабировать, а сделанное по формуле увеличивается просто увеличением региона.

    Далее, ген хорош, но скрипты гораздо круче. Они позволяют делать то же самое, только наворотить целую программу для построения формы (ген и деформ, фактически, тоже программы, но размер их формул ограничен длиной сообщения). О скриптах речь пойдёт в следующем уроке.
     
    Последнее редактирование: 27 апр 2014
    Hephest, syllik, danilsik и 2 другим нравится это.
  5. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Урок 6
    В этом уроке я расскажу о всяких штуках, без которых можно прожить, но которые бывают очень полезны.
    Я не буду рассказывать об обычных командах ВорлдЕдита типа
    /forestgen //pumpkins /snow /thaw //ex /butcher /remove <items,boats,...>
    - с ними и так всё понятно, и они пригождаются время от времени. Посмотрите о них в википедии
    WorldEdit Reference Однако, есть команды, применение которых неочевидно.
    Начнём с простых. //drain <radius> - удаляет воду или лаву, начиная с той точки, над которой вы стоите.
    Команда, которая очень важна для борьбы с лишней водой и лавой. Как вы уже наверное заметили, если просто заменить всю лаву в регионе на 0, останутся маленькие натёки лавы, которые не так просто убрать. Поэтому единственный нормальный способ борьбы с лавой - это //drain.
    Если вы отсосали воду или лаву, и хотите ее вернуть, то лучше всего воспользоваться командами //fixwater <radius> или //fixlava <radius> - они работают, если вы стоите в воде/лаве или над водой/лавой, и наливает водоём/лавоём везде ниже того уровня, на котором еще есть вода/лава. То есть, если вы поломали море, оно восстановит это море ровно по тому уровню, где оно было.
    Ещё одна противоположность //drain - это команда //fill <материал> <радиус>. Но она еще более полезна, потому что работает с ЛЮБЫМИ блоками, а не только с водой. Она заполняет материалом всё свободное место ПОД тем местом, где вы стоите. Таким образом, //fill lava 10 нальёт вам аккуратное озерцо лавы под ногами, а //fill grass 10 закроет уродливую дырку в земле новой травкой. //fillr отличается от //fill тем, что она действует рекурсивно (разница в том, что //fill может оставить незаполненные воздушные мешки, а //fillr заполнит все блоки воздуха, которые соприкасаются с другими блоками воздуха).

    Не рекомендуется делать //drain //fixwater и //flood с радиусом больше 50. Лучше сделать по частям, если нужно больше.
    Точно такая же рекомендация действует и относительно //set и других массовых команд. Если вам надо изменить регион больше 500000 блоков, подумайте, как можно сделать это по частям, потому что сервер может лечь. Например, можно выделить регион в 200000, а потом просто //shift его, и повторять нужное действие несколько раз.

    Эти команды многие знают, но не все знают о другой мощнейшей команде ВорлдЕдита. Это //flood <материал> <радиус>. Это команда из целой серии команд, которые ставятся на инструмент. Это значит, что перед тем, как написать эту команду, надо взять в руку какой-нибудь инструмент, например, деревянный меч. Теперь, каждый раз, когда вы будете использовать этот инструмент правой кнопкой, будет исполняться определённая команда. Чтобы снять привязку команды к инструменту, надо набрать /none.
    Так вот, команда //flood заменяет <материалом> (можно даже использовать #clipboard) все блоки того типа, на который вы ткнули инструментом, и которые соприкасаются с этим блоком. Таким образом, можно, не выделяя регион, заменить блоки, или заменить блоки, которые стоят рядом, и не трогать другие.

    Расстояние, на которое действует //flood, ограничено так называемым "радиусом супер-кирки". По умолчанию в ВорлдЕдите он ставится маленьким (3-5 блоков), но мы поставили его в 50, и не паримся.

    Следующая команда для установки на инструмент - /repl <материал>
    Она просто заменяет блок на другой. Зачем нужно? Это в два раза быстрее, чем поломать и поставить другой.

    Далее, команда /brush <sphere|cyl|clipboard|smooth>
    (коротко: /br s ; /br c ; /br copy)
    Эта команда ставит на инструмент сферу/цилиндр/копию буфера/инструмент сглаживания.
    С помощью сферы /br s 0 <радиус> удобно быстро удалять всякие вещи шаром воздуха заданного радиуса.
    Команда /br copy <-a> позволяет быстро наделать копий записанного в буфер (например, нестандартные деревья, окошки, фонарные столбы)
    Команда /br smooth <-n> <радиус> <количество итераций> - это настоящая находка для архитектора. Поскольку нам приходится часто вставлять всякие постройки, всегда остаются острые некрасивые края от регионов вставки. Чтобы всё выглядело естественно, стоит использовать сглаживание. С радиусом понятно, а вот число итераций - это то, сколько раз будет произведена попытка сгладить углы. Чем больше - тем сглаженнее будет местность. Рекомендуется проходить инструментом сглаживания по всей границе вставленного региона. Флаг <-n> ограничит сглаживание только натуральными блоками (земля, камень и т.п.)

    Однако, есть и массовый вариант сглаживания - это команда //smooth <число итераций>. Она действует на весь регион. Команда //smooth 100 превратит любое ваше угловатое сооружение в гладкую круглую горку. Можно просто выделить границы региона, и на них набрать //smooth 10

    Теперь еще о некоторых мега-командах, которые мало кто понимает.
    Первая - это //mask <маска> и //gmask <маска>
    Это очень мощная команда. Она позволяет задать своего рода программу того, что можно делать. Главные хитрости тут - это "!(материал)", ">(материал)", "<(материал)".

    Маска позволяет исключить материалы, которые вы не хотите менять (//mask !<материал>), или задать только те материалы, которые могут быть изменены //mask <материал>. Например, если набрать //gmask !chest, ваши действия никогда не затронут сундуки.
    < и > позволяют работать только с теми блоками, которые есть выше или ниже определённого блока. Например, //gmask >cactus а потом //set pumpkin поставит над каждым кактусом в регионе тыкву (есть одна хитрость, и вы ее заметите - если подряд идут несколько кактусов)
    Можно заменить всё, что лежит на поверхности, на другой материал: //gmask <air ; //set netherrack

    А теперь мы еще раз поговорим о спасении наших домов. На этот раз не от вайпа, а от гриферства и проблем.
    Дело в том, что ВорлдЕдит даёт мощные возможности восстановления мира из бэкапов ПО ЧАСТЯМ. Для этого необходимо просто поместить бэкап в папку типа /backupswe (задаётся в настройках ВЕ), затем выделить регион, и набрать //restore. Это заменит содержимое региона на него же, только из бэкапа! Поверьте, это спасало целые города, обращённые в руины гриферством (а откат для всей карты делать не хотелось).

    Если бэкапов несколько, можно посмотреть их список командой /snap list и выбрать нужный командой /snap use <название>.

    Таким образом, если у вас что-то случилось, и вы хотите это вернуть из бэкапа, обращайтесь к технической команде. Мы скопируем бэкап куда надо, и вы сможете восстановить свой регион из него.[DOUBLEPOST=1398781417,1398612991][/DOUBLEPOST]-------------------------------------------------------------------------------------------------------------------------------------
    Релиз​
    -------------------------------------------------------------------------------------------------------------------------------------
     
    DORRITO, rkfsociety, Hephest и ещё 1-му нравится это.
  6. MySt1k

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

    Баллы:
    173
    Познавательно
     
  7. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Не скупимся,оцениваем!
     
  8. syllik

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

    Баллы:
    153
    Я знаю что в таком количестве текста определенно написано что то умное. Многабукафф, лук короче. Читать не буду как и 80% пользователей :D
     
  9. corndan

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

    Баллы:
    88
    Skype:
    oneadm
    Имя в Minecraft:
    corndan
    Кароч, как сделать что когда падаешь тебя телепортируют в заданную точку!?
     
  10. danilsik

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

    Баллы:
    103
    Имя в Minecraft:
    danilsik
    Непонял
     
  11. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Не сюда.
     
  12. OJIoJIoIIIa

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

    Баллы:
    153
    Skype:
    support.olymc
    Имя в Minecraft:
    FaNt1K
    Слушайте, а команда //limit будет действовать для всех?Или только для меня?
     
  13. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Здравствуйте,насчет этого я незнаю не проверял отпишитесь если что
     
  14. Mr_RoboMan

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

    Баллы:
    123
    По моим сведениям только для себя...
     
  15. OJIoJIoIIIa

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

    Баллы:
    153
    Skype:
    support.olymc
    Имя в Minecraft:
    FaNt1K
    А можно ли как-то всем лимит поставить?
     
  16. KoBoT

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

    Баллы:
    173
    В конфиге, ща найду строку и скажу.[DOUBLEPOST=1399623788,1399623668][/DOUBLEPOST]Самое начало:
    Код:
    limits:
        allow-extra-data-values: false
        max-blocks-changed:
            default: -1
            maximum: -1
        max-polygonal-points:
            default: -1
            maximum: 20
        max-radius: -1
        max-super-pickaxe-size: 5
        max-brush-radius: 5
        butcher-radius:
            default: -1
            maximum: -1
        disallowed-blocks: [6, 7, 14, 15, 16, 26, 27, 28, 29, 39, 31, 32, 33, 34, 36, 37, 38, 39, 40, 46, 50, 51, 56, 59, 69, 73, 74, 75, 76, 77, 81, 83]
    Меняешь
    Код:
      max-blocks-changed:
            default: -1
            maximum: -1
    на
    Код:
      max-blocks-changed:
            default: -1
            maximum: 10000
    Теперь разрешено только 10000 блоков изменять тем, у кого нету ОПки(вроде бы)
     
  17. Hephest

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

    Баллы:
    153
    Skype:
    hephest1904
    Убило :D
     
  18. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Ну а что?До шестого урока дошол молодец.[DOUBLEPOST=1401488500,1399629190][/DOUBLEPOST]Пожалуй пора поднять
     
  19. syllik

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

    Баллы:
    153
    Апну темку, полезная инфа же.
     
    Лайка3, Mr_RoboMan, Кувырок и 4 другим нравится это.
  20. mater445

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

    Баллы:
    68
    Skype:
    mater445
    Имя в Minecraft:
    wedmed44
    5+ молодец:good::good::good::good::good::good:
     
  21. Автор темы
    BeceJIbIu

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

    Баллы:
    103
    Skype:
    moloho3
    Имя в Minecraft:
    bakke530
    Всегда пожалуйста!
     

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