Duke Nukem 3D: Megaton Edition

Duke Nukem 3D: Megaton Edition

Not enough ratings
Редактор карт. Основы.
By John Goodman (RU)
Данное руководтво может служить как учебное пособие для новичков, так и как памятка для тех, кто раньше занимался созданием карт для DN3D.
   
Award
Favorite
Favorited
Unfavorite
Предисловие
Данное руководство будет посвящено редактору уровней для Duke Nukem 3D. Редактор версии Megaton Edition практически ничем не отличается от оригинального, так что, тем, кто ранее занимался созданием уровней для игры достаточно будет вспомнить управление, руководство может быть использовано также как учебное пособие для начинающих.
За основу данного руководства я взял руководство товарища Райана Леннокса (Ryan Lexnnox), убрал, то, что, на мой взгляд, является лишним и дополнил своими скриншотами и комментариями. Вы можете ознакомиться с его работой по ссылке:

Раз уж вы читаете это, значит вас заинтересовала возможность создания уровней для игры.
Постараюсь изложить все понятно и просто, чтобы каждый смог понять что к чему.
Сразу говорю, редактор несложный, я в 10 лет запилил множество карт. К сожалению, они были утеряны со временем еще задолго до появления Steam-а.
Впервые открыв редактор вам все покажется непонятным и ужасающим, но скоро вы поймете, что вопрос только в знании клавиш управления и их назначении. Как только вы к ним привыкните, остальная часть работы будет зависеть только от вашей креативности и желания творить.
Вы можете самостоятельно изучить множество тонкостей движка, изучив уже готовые примеры, созданные разработчиками игры, они есть в комплекте с любой лицензионной версией Duke Nukem 3D и называются
_SE.MAP _ST.MAP _ZOO.MAP
,и в версии Megaton Edition они находятся по пути
<папка с игрой>\gameroot\maps\
Если вы забыли куда установили игру:
  • найдите ее в списке библиотеки Steam,
  • щелкните по ней правой кнопкой мыши,
  • выберите Свойства,
  • откройте вкладку Локальные файлы,
  • выберите Просмотреть локальные файлы.
Они свободно открываются как через редактор, так и в игре. Карты Duke Nukem 3D не требуют отдельной компиляции.
Когда будете сохранять уровень *.MAP желательно ограничиться 8-ю символами в названии. Может это и не будет играть критической роли в современном редакторе под Windows, но все же.



Перед запуском редактора вам будет предложено выбрать разрешения для 2D и 3D режимов. Выберите одинаковые разрешения для обоих режимов, полноэкранный/оконный режим это на ваш выбор, как вам удобней. Я буду использовать оконный режим, в нем мне удобно делать скриншоты.

Также вы можете пользоваться оригинальным DOS-овским редактором.На поздних версиях Windows-а он запускаться откажется, однако в каталоге
<папка с игрой>\bin\dosbox\
есть эмулятор. Создайте в этой папке текстовый файл и сохраните его под названием
BUILD.BAT
, впишите в его содержимое следующее:
@echo off dosbox ..\..\gameroot\classic\BUILD.exe
или так: Теперь вы сможете запустить оригинальный DOS-редактор со всеми его минусами и плюсами.

Есть 3 основных типа объектов в уровне : Секторы, Стены, и Спрайты.
Более подробно обо всем этом вы узнаете в следующих разделах руководства.
Секторы и Стены - Элементарные функции


После запуска редактора вы увидите режим сетки 2D, который будет похож на чертеж. Красный курсор мыши используется , чтобы выделять объекты, которые вы хотите изменить. Белая стрелка обозначает текущее положение камеры . В принципе, это белая стрелка представляет собой персонажа . Если зажать правую кнопку мыши , белая стрелка прицепится к курсору мыши и таким образом ее можно перемещать.

Для увеличения и уменьшения масштаба используйте A и Z. Вы можете менять размер сетки с помощью клавиши G. В редакторе есть 8 размеров сетки и режим " без сетки ". Нажимайте эти клавиши, чтобы привыкнуть к ним. Существует также специальный режим сетки, известный как "Авто размер " , который автоматически регулирует разрешения сетки относительно текущего расстояния увеличения. Я всего лишь укажу этого специальный режим для полноты руководства, так как я никогда не лично пользовался им.

В нижней части экрана вы можете увидеть и редактировать информацию в режиме 2D. Здесь постоянно отображается текущие координаты, угол наклона, а также набор объектов-счетчиков.Они сравнивают количество Секторов, Стен и Спрайтов на уровне с максимально допустимыми значениями. Если вы нажмете клавишу Escape появится меню с выбором действий:
(N)ew
Новая
(L)oad
Загрузить
(S)ave
Сохранить
save (A)s
Сохранить как
(Q)uit
Выйти

Все до жути просто. Создать новый уровень, Загрузить его, Сохранить его, Сохранить его под новым именем, и Выход.

По умолчанию уровень сохраняется как NEWBOARD.MAP, он сохраняется в папке с редактором и автоматически открывается в нем при следующем запуске. Будьте внимательны и чаще сохраняйте уровень под новым именем, этот файл можно ненароком перезаписать и все ваши труды пропадут даром.
Секторы и Стены - Конструирование

Теперь переместите курсор мыши на сетчатое поле. Нажмите Пробел. Небольшое зеленый квадрат, называемый вершиной, появится в ближайшем перекрестии сетки. Перемещайте мышь и вы заметите, что за ней тянется белая линия. Это будущая стена. Продолжайте строить форму комнаты, нажимая Пробел. Если поставили вершину не там, где надо, нажмите Backspace , чтобы отменить это действие. Когда вы соедините последнюю вершину с первой, белая линия перестанет следовать за мышью. Это значит, вы только что создали свой первый сектор.

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



Зажмите правую кнопку мыши и передвиньте стрелку в созданный сектор. Отпустите правую кнопку мыши и нажмите Enter на кейпаде. Это переместит вас в 3D режим. Он напоминает вид из игры, и поэтому, работать в нем вам будет комфортнее.
Используйте стрелки на клавиатуре для передвижения, осмотритесь. Число в левом верхнем углу это частота кадров, от ее значения зависит насколько быстро и плавно будет работать игра.

Если вы работаете на ноутбуке без кейпада с правой стороны клавиатуры, попробуйте , удерживая клавишу Fn и нажимая Enter. Вы должны иметь возможность использовать клавишу Fn для доступа к функциям клавиатуры .
Секторы и Стены - Высота


Вы можете поднять ваш потолок немного выше. Это несложно. Наведите курсор мыши на потолок и нажмите PgUp , чтобы поднять его, или PGDN, чтобы его опустить. То же самое может быть сделано с полом. Потолок можно поднимать также наводя курсор на смежную с ним стену. Поднимайте потолок , пока не уйдет ощущение замкнутого пространства.

И тут я столкнулся с небольшой проблемой. с последнего раза как я открывал этот редактор я уже успел сменить три компьютера. Сейчас у меня ноутбук, а на многих ноутбуках, как вы знаете, клавиатура уже обычной и клавиши, которые на обычной клавиатуре находятся над стрелками частично перенесены на кейпад. И по какой-то причине я не мог использовать клавиши PgUp (PageUp) и PgDn (PageDown) в редакторе. Кроме разрешения экрана других настроек я не нашел, а попытки редактирования файла built.cfg не принесли результатов. Выход нашелся, но он несколько радикальный. Я качал бесплатную программу под названием KeyTweak, и принудительно назначал на эти клавиши нужные мне PgUp (PageUp) и PgDn (PageDown). Но есть более разумный выход из ситуации: пользоваться оригинальным build через dosbox, а клавиши переназначить средствами dosbox. Я просто оставлю эту статью здесь.
Переназначение кнопок С версии 0.62 в эмуляторе могут быть переназначены любые клавиши (а с 0.70 можно переназначить и оси джойстика), даже если это не предусмотрено игрой. Ну например, хочется вам играть в гонки не со стрелочками, а используя w, s,a, d. Хочется - пожалуйста. Для этого надо немного переопределить раскладку. Вызвать эту функцию можно двумя способами: 1. Запустить DosBox с параметром - startmapper При этом при старте загрузится настройка клавиш. (Создаете ярлык dosbox. exe, правой кнопкой по ярлыку -> свойства ->вкладка ярлык -> поле Объект: добавляете в конце - startmapper. Получится что-то вроде D:\DOSBox\dosbox. exe - startmapper. 2. После запуска DosBox нажать CTRL+F1. Работает нестабильно. У меня на каждый удачный случай получалось по 6-8 вылетов из DosBox. .jpg]Кликаете по любой клавиши, вызов которой хотите повесить на другу. Например выбираете стрелку вверх. Внизу появляется EVENT: Key_up BIND: Key_up. То есть нажатие стрелки вверх вызывается стрелкой вверх. Выбираем либо кнопку DEL (удалить), если необходимо изменить данный вариант, либо ADD (добавить) если надо оставить такой расклад, плюс добавить еще один. Выбираем ADD. Теперь нужно нажать клавишу, которая будет работать как стрелка вверх (нажать клавишу физически, а не выбрать мышкой!). Нажимаем W. Появляется EVENT: Key_up BIND: Key w. То есть, кнопка w будет работать как стрелка. Нажимая кнопку NEXT можно перебирать варианты. Их будет два, то есть стрелка вверх будет по прежнему работать, плюс к тому можно будет использовать вместо нее кнопку w. Теперь осталось сохранить результат (SAVE) и выйти (EXIT). Если выбирая кнопку вы выберите пункт mod1, то это будет комбинация CTRL+кнопка, Если mod2 ALT + кнопка. Mod3 по умолчанию не задана, но вы можете назначит ее как и любой другой режим. Например, чтобы использовать комбинацию p + кнока. Практическо применение Hold я пока не понял. Если назначить этот пункт то кнопка "залипает", и отключит дальше эту кнопку невозможно. В опописаниях про Hold ни слова. Кстати, обратите внимание, что можно переназначить и системные кнопки. Например повесить на "+" увеличение скорости, а на "-" уменьшение.

Позже вы создадите множество секторов с высокими и низкими потолками.
Для того, чтобы осмотреться повыше вы можете перемещаться по вертикали клавишами A и Z. Есть три режима вертикального движения, которые переключаются клавишей CapsLock:
  • Режим гравитации
  • Режим фиксации высоты
  • Режим плавания.
Опробуйте все 3. Однако большую часть времени вы проведете в режиме плавания.
Секторы и Стены - Текстурирование
Давайте избавится от этого однообразного кирпича и разнообразим уровень. Как насчет плитки на полу?


Наведите курсор на пол и нажмите V. Вам откроется черный экран с единственной тестурой кирпича, которая используется для пола и потолка. У стен отдельный список часто используемых текстур. Теперь нажмите V еще раз и вам откроется полный список всех доступных текстур. Здесь вы можете воспользоваться стрелками и клавишами PgUp и PgDn для навигации, чтобы выбрать желаемую текстуру. Также текстуру можно найти по ее порядковому номеру, для этого нажмите G и впишите ее порядковый номер. Чтобы установить выбранную текстуру, нажмите Enter.



Уже смотрится намного лучше, согласитесь.
Тем же путем давайте затекстурируем стены. Наведите указатель мыши на стену и дважды нажмите V.
Вы могли обратить внимание на то, что некоторые текстуры имеют розовый цвет. Розовый цвет указывает движку на прозрачность, эти текстуры в основном используются для спрайтов и стен с маской. Однако если вы примените данные текстуры к стенам, потолку или полу, розовый будет отображаться черным в игре. Но об этом позже. Просто выберите что-нибудь без розового цвета.
Также вы могли заметить, что некоторые текстуры имеют последовательность кадров. Хотя можно использовать любой из отдельных кадров , только первый кадр (который должен иметь имя , возложенное на него ) инициализирует полный цикл анимации . Текстуры с именем возложенным на них часто имеют специальную функцию.




Вместо того, чтобы повторять одну и ту же операцию для каждой стены, вы можете скопировать текущую текстуру со стены и применить ее к другим стенам. Для этого наведите курсор на стену с нужной текстурой, нажмите TAB и наводя курсор на другие стены нажимайте Enter.
Затекстурируйте потолок также, как вы делали это с полом и стенами.




Секторы и Стены - Параллаксинг
Параллаксинг это просто. Просто подумайте о нем как о «эффекте неба». Для наглядного примера, установите на потолок текстуру неба, затем просто наведите на потолок и нажмите P. Переместитесь немного, и вы заметите, что текстура только очень медленно перемещается относительно камеры, имитируя эффект настоящего неба. Вы можете фактически "параллаксить" любую текстуру на потолке, но это, скорее всего, будет выглядеть странно. Чаще всего лучше придерживаться текстуры неба. Большинство текстур неба находятся в начале списка текстур. Пол также может быть "параллаксирован", однако не стоит делать это в зоне, где игрок может свободно перемещаться (потому как это будет выглядеть весьма нереалистично).
Секторы и Стены - Расширенные функции
Чтобы затенить объект, наведите курсор мыши на него и нажмите
  • клавишу «+», чтобы сделать его ярче,
  • или клавишу «-», чтобы сделать его темнее.
Вы также можете использовать
  • апостроф (') + S, чтобы закрасить его вручную, используя числовые значения (положительные значения темнее, а отрицательные значения светлее).
Я никогда не до этого момента этим не пользовался, числовая система и нажатия клавиш противоречивы. Я рекомендую пока игнорировать числовую систему, просто имейте в виду, что она существует. Затенение добавляет дополнительный слой реализма на карту. Со временем вы изучите методы затенения на профессиональном уровне, но сейчас всё, что вам нужно знать, это как его использовать.

Чтобы наклонить пол или потолок сектора, вы должны начать с назначения первой стены сектора. Первая стена будет линией оси склона. Для этого В режиме 2D наведите курсор мыши на стену, осью которая должна стать осевой (вы также можете указать либо на пол чуть ниже стены, либо на потолок чуть выше стены), затем нажмите Alt + F.
Наведите курсор на пол или потолок и используйте квадратные скобки "[" или"]" , чтобы наклонить их вверх или вниз. Заметьте, что ось склона - это та же стена, которую вы только что назначили первой стеной. Попробуйте назначить разные первые стены в режиме 2D и 3D и наклоняйте сектор, чтобы ощутить это.

Если нужно изменить размер или положение текстуры, вы можете либо панорамировать ее (сместить), либо настроить значения повторения пикселей (растянуть / сжать). Используйте Shift + Keypad 2/4/6/8 для панорамирования текстуры стены и просто Keypad 2/4/6/8 для панорамирования текстуры пола / потолка.
Вы также можете использовать клавиатуру 2/4/6/8, чтобы растянуть или уменьшить текстуру стены. Вы не можете растянуть или сжать текстуру, которая находится на потолке или полу, но вы можете использовать E, чтобы вместо этого расширить или сжать ее.
Чтобы перевернуть текстуру, используйте клавишу F для циклического перебора всех различных вариантов. Есть 4 варианта для стен и 8 вариантов для полов / потолков.
Чтобы изменить цвет палитры объекта, выделите его в режиме 3D и нажмите Alt + P, затем введите любое число от 0 до 25. Не все значения палитры фактически изменят цвет объекта. Обратите внимание, что если вы измените палитру пола, любые спрайтовые объекты в этом секторе также изменят цвет в игре (включая игрока).

Вы также можете переключать «относительное выравнивание» пола или потолка с помощью клавиши R. Это особо важно сейчас, но будет полезно, когда узнаете, каково двигать секторы. Относительное выравнивание определяет, будет ли текстура пола / потолка совмещаться с «первой стеной» (которую вы ранее установили). Вы можете наблюдать это в действии, создав сектор с диагональными линиями, затем переключая относительное выравнивание и устанавливая каждую стену (поочереди) в качестве первой стены.

Еще одним полезным инструментом является возможность создавать полукруги. Переключитесь в режим 2D. Выделите любую нужную стену и нажмите C. Теперь переместите курсор мыши вокруг, и вы увидите полукруг, следующий за курсором мыши. Вы можете использовать клавиши «+» и «-» для настройки разрешения вершин (сколько вершин будет использовать полукруг). Теперь нажамите пробел, чтобы завершить операцию, или вы можете нажать C еще раз, чтобы отменить операцию.

С помощью некоторых хитростей вы можете расширить функциональность инструмента полукруг, чтобы создать полные круги. Переключитесь на наименьшее разрешение сетки (размер сетки 6 в Build или размер сетки 8 в Mapster32) и создайте крошечный треугольный сектор, как показано на рисунке.

Выделите гипотенузу (угловая стенка) треугольника и нажмите C. Теперь переместите курсор мыши вокруг и используйте клавиши «+» и «-» для настройки разрешения вершины круга. Как только вы будете довольны его размером и формой, вы нажмите пробел, чтобы завершить операцию.

Единственным оставшимся шагом будет удаление посторонней вершины, выступающей из круга. Просто перетащите её поверх одной из двух соседних вершин, чтобы она исчезла. Вот он, полный круг. Заметьте, что круг не является «идеальным» из-за начального треугольного сектора, но несовершенство едва заметно (при всей честности, идеальный круг находится за пределами возможностей этого движка). В любом случае, это только мой личный метод. Я понятия не имею, является ли этот метод широко распространенным, или существует ли лучший. В любом случае, этот метод прост и эффективен.
Секторы и Стены - Допустимое пространство игрока
Допустимое пространство игрока может звучит немного непонятно, но говорит само за себя. Это пространство карты, которое «существует» так, что игрок может путешествовать по нему. Я постараюсь объяснить это визуально. Здесь мы нарисовали квадрат внутри другого сектора. В движке это называется «внутренним контуром», потому что технически этот внутренний квадрат еще не является сектором. Повторите этот сценарий и убедитесь, что вы сначала создали внешний сектор. В режиме 2D мы можем сказать, что внутренний контур не является допустимым пространством игрока из-за белых линий, и потому что вы не можете войти внутрь него в режиме 3D. Если мы войдем в 3D-режим во внешнем секторе, мы убедимся, что внутренний контур не является допустимым пространством игрока из-за столба в центре комнаты.
.png]Поместите красный курсор мыши во внутренний контур Убедитесь, что одна из внутренних стен выделена (она должна мигать). Теперь удерживайте Alt и нажмите S. Внутренний контур станет допустимым пространством игрока, и появится сообщение «Внутренний контур превращен в новый сектор». В режиме 2D мы видим это как красные линии. В режиме 3D мы также заметим, что столб исчез. Эти внутренние сектора называются по-разному, в том числе «островной сектор», «дочерний сектор», «подсектор», «вложенный сектор» и т. д., Но как ни крути это одно и то же.
.png]Теперь, когда вы увидели пример допустимого пространства игрока, я могу объяснить белые линии и красные линии.
Белые линии - односторонние стены, означающие, что существует только одна стена. Другая сторона обращена к недопустимому пространству игрока, поэтому на этой стороне нет стены.
Красная линия - это двусторонняя стена, означающая, что игрок может находиться по обе стороны от этой линии, и обе стороны имеют отдельные атрибуты. Это действительно довольно просто, но на первый взгляд может показаться странным.
Вы будете часто использовать это нажатие клавиш, поэтому помните: Alt + S превращает внутренний контур в допустимое пространство игрока. Это абсолютное правило, что вы всегда должны создавать сектора, начиная с внешней стороны и работая внутри. Никогда не пытайтесь нарисовать новый сектор, который полностью окружает меньший сектор!
6 Comments
John Goodman (RU)  [author] 7 Sep, 2019 @ 5:18am 
"Enter на кейпаде", угловой Enter используй, на котором, вероятно калькулятор нарисован
PathToWeekend 6 Dec, 2015 @ 12:45am 
У меня не получается войти в 3D режим. Что мне делать?
John Goodman (RU)  [author] 17 Aug, 2015 @ 3:05am 
Рекомендую пользоваться оригинальным дос-редактором, как его запустить я написал в рамке в начале.
Ибо в том редакторе, что запускается через меню стима вообще какие-то не те текстуры.
Фотонный Пук 16 Aug, 2015 @ 10:08pm 
Проблема такая. В редакторе id текстур не совпадает с id текстур в Дюке. И в редакторе нету нужных тектур из дюка. Например id 9 это "respawn" а в редактрое совершенно другое.
John Goodman (RU)  [author] 31 Jul, 2015 @ 9:40am 
Это скорее перевод англоязычного туториала. Сейчас времени заниматься этим нема, могу расшарить права на руководство тому, кто возьмется продолжить.
Andrei030x 30 Jul, 2015 @ 2:47pm 
ну если ты так подробно писать будешь с такой скоростью то любой сам быстрее разберётся раньше чем ты допишешь...