Обучающее упражнение - Планировка
Fallout New Vegas G.E.C.K. глазами разработчиков
RJ
8335
0
Краткий обзор
Основой любого уровня является план. План — это наиболее распространенный способ, которым мы создаем движение в игровом пространстве. Планы Fallout 3 строятся прежде всего из комплектов, из наборов, объединенных в один объект частей смоделированных и текстурированных деталей реального или придуманного мира, которые в итоге, создают бесшовное окружение. Это обучающее упражнение познакомит вас с постройкой плана Убежища. Несмотря на то, что каждый набор объектов уникальный, они все подчиняются одним и тем же именованным соглашениям и особенностям, с которыми вам поможет познакомиться это упражнение.
Создание новой ячейки
Копирование и переименование существующей ячейки
Первое, что нам нужно сделать, это создать новою ячейку интерьера. Самый лучший способ — это скопировать уже существующую. Чтобы сделать это, убедитесь, что в окне Cell_View_Window, в его выпадающем списке «World Space» выбрано «Interiors». Найдите в списке ячейку с названием «Vault108a».
Чтобы скопировать ячейку, щелкните на ней правой кнопкой мышки и выберите пункт «Duplicate Cell».
Определение внутренней ячейки Vault108a и копирование ее. | Копирование Vault108a с помощью правого щелчка мышки. |
Ячейку для копирования лучше выбирать такую, в которой уже есть такие же темы, наборы объектов и настройки, которые вы планируете создать. При таком подходе, после копирования ячейки, вместе с ней скопируются такие параметры как Ambient Light (Свет подсветки), Fog (Туман) и ImageSpace (Пространство изображения).
Обратите внимание на то, что скопированная ячейка находится сразу под оригиналом и ее название в поле EditorID «Vault108aCOPY0000». Теперь измените это название.
Для изменения названия в поле EditorID, вы можете выделить ее и нажать «F2», или щелкнуть на названии уже выделенной ячейки (в колонке EditorID), что позволит вам ввести новое имя. Измените его на Vault74a.
Подготовка к переименованию | Ячейка с новым именем |
Теперь, когда у нас есть установки для ячейки и ее название в EditorID, измените то название, которое будет видно в игре.
Параметр Cell Name — это то название, которое игрок будет видеть при просмотре Локальной Карты или в тексте двери, ведущей в вашу ячейку. Название ячейки также появляется в сохраненной игре, когда вы загружаете это сохранение.
Чтобы изменить «игровое» название ячейки, щелкните на надписи Vault74a правой кнопкой мышки и выберите в контекстном меню пункт «Edit». Окно для изменения параметров ячейки вы можете найти и с помощью главного меню World->Cells.
После того как вы выберите пункт «Edit», появится окно «Cell» Properties. Щелкните на вкладке «Interior Data» и измените «Vault 108 — Entrance» на «Vault 74». Щелкните «ОК».
Доступ к Cell Properties с помощью контекстного меню | Изменение «игрового» названия ячейки |
Удаление содержания ячейки
Перед тем как мы начнем пользоваться нашей новой ячейкой, нужно удалить из нее все лишнее. С загруженной созданной ячейкой «Vault74a», щелкните на самом первом сверху названии объекта в разделе Object List и нажмите «Shift+End» или опуститесь вниз и щелкните мышкой на самом нижнем в списке объекте с нажатой клавишей Shift. Этим вы выделите все объекты в списке. Нажмите клавишу «Del» для удаления всех объектов, или щелкните правой кнопкой мыши на одном из выделенных объектов и выберите пункт «Delete». Появится окно сообщения; подтвердите удаление, нажав «Yes».
В программе GECK возможна ситуация, когда в Render Window у вас загружена одна ячейка, а в окне Cell View выделена другая. Чтобы случайно не удалить объекты из другой ячейки, убедитесь, что в заголовке окна Render Window отображается название вашей ячейки (в данном случае это Vault74a).
Как вы видите, из ячейки удалилось все, кроме объекта navmesh. Для того, чтобы избавиться от navmesh, существует специальный способ. С загруженной ячейкой Vault 74 найдите в главной панели инструментов пункт Navmesh->Remove Cell Navmeshes. Теперь вы должны убедиться, что в списке объектов больше ничего нет — он абсолютно чист.
После того как вы удалите объекты и navmesh, изменения могут не отобразиться в окнеRender Window, пока вы не загрузите другую ячейку, а потом не вернетесь к своей.
Удаление выделенных объектов из Cell View List | Удаление Cell Navmesh в главной панели инструментов |
Использование Kit Pieces и Navigating в окне Render Window
Первое, что мы сделаем в нашей новой и очищенной ячейке, это кинем в нее некоторые наборы (Kit) объектов. В этом упражнении мы будем использовать наборы объектов Разрушенного Убежища (Ruined Vault). Давайте поместим в ячейку парочку комплектов и посмотрим как с ними работать.
Один из частей комплекта называется Vault Ruined Hall Small (Маленький коридор разрушенного убежища). Чтобы найти этот «кусок» переместитесь в окне Object Window по дереву World Objects->Static->Dungeons->VaultRuined->HallSmall или посмотрите, как это сделано на рисунке.
Окно Object Window с Ruined Vault Smal Hallways |
Привязка к сетке и углу
Перед помещением наборов в ячейку, давайте познакомимся с одной из самых важных кнопок редактора.
Это кнопка «Snap to Grid», которая включает и выключает привязку к сетке. Благодаря этому, перемещая объекты в ячейке, вы будете уверены, что их перемещение привязано к интервалу 256, 128, 64 или к такому, который лучше подойдет вам. Для оставшейся части этого упражнения мы оставим эту кнопку включенной. Время от времени вам нужно будет изменять параметры привязки, основываясь на тех объектах, которые вы используете в ячейке. Горячая клавиша для этой кнопки «Q». (Чтобы эта клавиша работала, окно «Render Window» должно быть выделено). Проверьте, что кнопка сейчас утоплена и привязка активна.
Теперь мы настроим параметры привязки. Щелкните правой кнопкой мыши в окне визуализации и выберите пункт Render Window Properties. Следующим шагом будет переход на вкладку Movement. Для большей части этого упражнения установка 128 единиц будет работать хорошо. Будут моменты, когда для лучшего соответствия объектов, нужно будет уменьшить это значение.
GECK использует свою собственную систему счисления, которая не соответствует ни метрической ни американской. Эта система хорошо справляется с привязкой, если настройки этой привязки кратны восьми. При работе с привязкой, хорошим правилом для руководства, является использование самого большего из возможных в данный момент значений. Большинство из комплектов объектов Fallout3 хорошо работают с привязкой в 128 единиц.
Еще одной хорошей заметкой для вас будет знать, что высота игрока является тоже 128 единиц, — это около шести футов или 1.83 (мой рост, блин — прим. авт. перевода.).
Еще одной важной кнопкой является кнопка «Snap to Angle». Эта кнопка включает и выключает привязку к вращению объектов. Таким образом, при активации этой кнопки, вы будете уверены, что вращаете объект на 15, 45 или на другой угол, который вам больше подходит. Опять таки, эта клавиша должна быть активна для всей последующей части упражнения. Настройку в 45 градусов вы можете оставить — ее будет достаточно для всей серии упражнений. Горячая клавиша для этой кнопки «Ctrl+Q». (Окно Render Window должно быть активно).
GECK измеряет вращение в градусах от 0 до360-ти. Несмотря на то, что вы можете ввести любое значение в поле настройки привязки, не рекомендуется устанавливать ее НЕ КРАТНОЙ 90 градусам, чтобы избежать зазоров между геометрией уровней.
Важность хорошо настроенной привязки нельзя недооценивать. Черновое и небрежное размещение объектов, особенно на таких ранних стадиях, может привести к миллиардам проблем, таким как перекрытие полигонов поверхности и промежутки в геометрии. Эти проблемы могут быть особенно неприятными, когда дело касается отладки и устранения, по этому сосредоточьтесь на чистом размещении плана сейчас и вы убережете себя от головной боли в будущем.
При использовании горячих клавиш в GECK вы должны сначала убедиться, что окно Render Window активно. Чтобы сделать это, щелкните на заголовке этого окна или в самом окне. Это правило касается и клавиши сохранение мода «Ctrl+S».
Описание горячих клавиш:
Привязка к сетке — «Q»
Привязка к углу — «Ctrl+Q»
Использование 3D Camera
Проверьте еще раз активизацию кнопок привязки к сетке и углу и перетащите объект VHallSm1WayR01 в окно визуализации из списка Object List. Теперь, когда у нас в окне визуализации есть объект, мы можем рассмотреть его со всех сторон с помощью камеры. Проверьте активизацию освещения, — нажмите горячую клавишу «А» или включите кнопку с изображением лампочки .
Краткая справка по GECK: вы только что создали «Ссылку» (Reference) базового объекта VHallSm1WayR01. Разница между Базовым Объектом (Base Object) и Ссылкой (Reference) достаточно важная, чтобы вы ее хорошо понимали. Когда вы изменяете Базовый объект, эти изменения затронут ВСЕ ССЫЛКИ этого объекта, присутствующие в игре. Базовые объекты перечисляются в окне Object Window, а объекты-ссылки доступны для просмотра в окне Cell View Window.
Для масштабирования в окне Render Window используйте или колесико мышки или нажмите клавишу «V» и перемещайте мышку вперед и назад. Клавиша «V» позволяет изменять масштаб плавно, что полезно для точных перемещений в окне, а колесико используется для изменения масштаба на постоянную величину.
Для вращения камеры нажмите и удерживайте клавишу «Shift», перемещая мышку. Этим вы будете вращать камеру вокруг выделенного в данный момент объекта. Если выделенного объекта нет, камера будет вращаться на месте.
Для перемещения камеры вверх, вниз, влево или вправо, удерживайте или Пробел или Колесико мышки, перемещая саму мышку.
Если управление камерой слишком резкое или, наоборот, вялое, вы можете настроить скорость этих движений. Щелкните правой кнопкой мыши в окне визуализации — курсор не должен быть над одним из объектов и выберите пункт Properties.
Перейдите на вкладку Movement и установите свои значения в поля управления скоростью вращения и перемещения камеры. Чтобы прочувствовать действие каждой настройки вам придется возвращаться в окно визуализации. Запомните где находятся эти настройки, чтобы в нужный момент изменить их в зависимости от решаемой вами задачи.
В GECK введена экспериментальная возможность использования летящей камеры (fly-cam), Чтобы активировать эту возможность нажмите клавишу тильда «~». Клавиши клавиатуры W, A, S и D теперь используются для перемещения, а движения мышки управляют точкой обзора камеры как в виде от первого лица в окне перспективы. Такой вид может сбить вас с толку. Просто нажмите «~» еще раз, вернувшись в любое время к обычным способам управления камерой.
Доступ к свойствам окна визуализации через щелчок правой кнопкой мыши | Вкладка настройки движения камеры |
Доступ к настройкам свойств окна визуализации вы можете получить и с помощью меню File->Preferences или щелкнуть на кнопке в главной панели инструментов.
Описание горячих клавиш:
Включение и выключение освещения — «А»
Масштаб — «V»
Вращение — «Shift»
Перемещение — «Пробел»
Переключение на летящую камеру «~»
Создание прихожей
Сейчас, когда в окне визуализации находится объект VHallSm1WayR01, и вы знаете как перемещать вид в этом окне, давайте создадим прихожую. Вначале, выделите ваш кусок прихожей в окне визуализации и нажмите «Т». Этим вы центрируете камеру на вид сверху относительно выделенного объекта. Теперь (с привязкой к углу ) поверните объект на 90 градусов, щелкнув правой кнопкой мыши и перетаскивая курсор в сторону над выделенным объектом. Объект должен повернуться слева направо, как показано на рисунке.
При использовании клавиши Т, камера центрируется так, чтобы вверху экрана был «север». Изменить направление компаса вы можете с помощью специального объекта NorthMarker (Указатель на север), который находится среди объектов статики.
При выделенной части коридора, нажмите комбинацию клавиш «Ctrl+D», чтобы скопировать выделенный объект. Эта комбинация клавиш создает абсолютную копию выделенного объекта (объектов). Понять то, что вы создали новый объект (объекты), вы не сможете, так как они перекрывают друг друга. Однако; если вы посмотрите в окно Object List, вы увидите там две части VHallSm1WayR01. Переместите созданный объект влево от оригинала. Привязка к сетке должна быть включена, чтобы обеспечить точное перемещение объекта. Посмотрите на приведенное изображение, чтобы увидеть, как должны выглядеть выровненные части помещения.
По сравнению с Elder Scrolls CS в GECK было добавлено небольшая, но удобная особенность при дублировании объектов: теперь по умолчанию выделяется вновь созданный объект. Это стало важной особенностью при дупликации постоянных ссылок, которые могут использоваться в скриптах или квестах. (Флажок Persistent References — Постоянная Ссылка доступен при двойном щелчке на объекте в окне визуализации и требуется для корректной работы скриптов, в которых указывается этот объект (прим. авт. перевода.))
Давайте добавим к созданному объекту левый угол. Повторите сделанное раньше. Выделите объект (если сняли выделение), нажмите «Ctrl+D» и перетащите созданный объект влево, пока он не привяжется к крайней стороне предыдущего объекта. У вас должно получиться три части прихожей в один ряд, как показано на рисунке.
VHallSm1WayR01 | Копирование и привязка второго объекта | Три объекта, выровненные привязкой |
Теперь выделите крайний левый объект (если сняли выделение) и нажмите комбинацию клавиш «Ctrl+F», это вызовет появление окна Search & Replace (Найти И Заменить). В выпадающем списке Replace with выберите VHallSm2WayR01 и щелкните на этом названии. Таким образом, вы замените выделенную часть помещения угловым соединением.
Поверните угловую часть так, чтобы она совпала с объектом справа. Для вращения пользуйтесь правым щелчком и перетаскиванием курсора. Не выключайте привязку к углу . Теперь ваша ячейка должна выглядеть следующим образом.
Диалоговое окно Search & Replace | Поиск нужного объекта по ID | Наша прихожая с замененной третьей частью |
Настало время узнать о именованных соглашениях этого набора. Давайте проанализируем первый объект коридора, которым мы добавили — VHallSm1WayR01:
Сокращение | Значение |
---|---|
V | Убежище (Vault) |
Hall | Коридор |
Sm | Маленькая |
1Way | Прямая секция |
R | Ржавая версия (Rusted) |
01 | Первый вариант |
Имя угловой части VHallSm2WayR01. Разница только в «2way». Это означает, что это угловая часть помещения. Секции с тремя или четырьмя направлениями будут обозначаться как «3way» и «4way» соответственно.
Пока вы будете запоминать эти и другие доступные именованные соглашения наборов, вам будет полезно поработать с окном визуализации, перетаскивая в него объекты вручную из окна Object Window. Последовательность действий, представленная здесь, используется разработчиками уровней компании Bethesda для увеличения скорости и эффективности этого процесса, но требует очень хорошего понимания наборов объектов и их именованных соглашений.
Давайте закончим коридор сразу за созданным углом. Секция, которую мы поместим сюда, будет заканчивать коридор дверным проемом, так что, мы сможем продолжить помещение комнатой или еще одним коридором. Мы сделаем это таким же способом, которым мы создали уже существующие секции. Скопируйте угол с помощью Ctrl+D, переместите его в сторону открытого окончания левого угла. Используйте Ctrl+F для замены секции на VHallSmEndExSmR01. Сравните свою сцену с представленной на рисунке.
Теперь добавим лестницу к открытому выходу прихожей. Как и раньше, выделите существующую секцию и скопируйте ее. С выделенной копией нажмите Ctrl+F и замените объект на VHallSmStairsR01. Переместите созданную секцию к открытой части дверного проема и сравните полученный результат с приведенным изображением.
Большинство наборов привязываются не только по осям XY, но и по вертикальной оси Z.Это способствует созданию перекрывающихся областей без отсечения и пересечения поверхности.
Сейчас нужно добавить угловую секцию наверх ступенек. Мы можем скопировать ступеньки, переместить их и поменять на угловую секцию. Вместо этого, мы просто используем уже существующую секцию, которая есть в нашей ячейке. Выделите угловую часть коридора под названием VHallSm2WayR01, используйте «Ctrl+D» и переместите ее на другой конец лестницы. Теперь нужно переместить угловую секцию вверх, чтобы соединить ее с верхней частью лестницы. Делается это с помощью удержания клавиши «Z» при перемещении объекта. При удержании этой клавиши нажатой, объект может двигаться только по оси Z, что соответствует перемещению вверх или вниз.
Удерживая нажатыми клавиши Z, X или Y, вы можете блокировать перемещение или вращение только вдоль одной из осей.
GECK предоставляет возможность циклического перемещения по предварительно установленным видам камеры с помощью горячей клавиши «С», а так же перемещение по ортографическим видам с помощью клавиши нуля. Попробуйте сейчас использовать ортографические виды и пройтись по циклу видов клавишей «С», чтобы с разных сторон посмотреть на полученную конструкцию и убедиться в отсутствии зазоров.
Давайте завершим этот открытый участок так же, как мы делали это раньше. Выделите и скопируйте существующий объект VHallSmEndExSmR01 и поместите его на последний угловой объект. Помните про использование Z, для перемещения объекта вверх на требуемое место. Ваша ячейка должна теперь выглядеть так, как на приведенном изображении.
Теперь давайте заполним эту прихожую дверьми, установив их в дверные проемы. Сделать это можно двумя способами. Первый — обратиться к иерархии окна Object Window. Двери, которые нам нужны находятся в:
World Object->Door->Dungeons->VaultRuined->VDoorSlidingRR0001.
Техника, описанная выше, не плохо подходит для начала, особенно, если вы знаете какие секции можно использовать. Второй метод, который мы собираемся обсудить, принимает во внимание тот факт, что вы уже немного познакомились с именованным соглашением относительно объектов и при поиске меньше отвлекаетесь на поиск типов объектов.
Для второй техники мы будем использовать две возможности, которые появились в GECK. Это «Filter» — текстовое поле в окне Object Window и категория «*All». Фильтрация очень облегчает поиск объектов, если вы точно знаете что ищете. Вначале, нам нужно убедиться, что поиск будет проходить по всем объектам в игре. Для этого сверните все древовидные структуры, как показано на рисунке и выделите надпись «*All» внизу списка.
Окно фильтрации GECK принимает знак подстановки «*». Этот знак говорит о том, что при фильтрации вас не волнует, какая буква или цифра будет стоять на месте этого знака. Например, я могу ввести «ghoul» в окне Object Window и в результате получу большое количество соответствий. Для сокращения диапазона поиска я могу изменить ввод текста на"fer*ghoul«, что сократит соответствия до тех случаев, когда буквы «fer» появляются в любом месте базового ID перед буквами «ghoul».
И так, с выделенный категорией «*All» введите текст «vdoorsliding». Мы ищем объект VDoorSlidingRR0001. Так как у нас нет двери для «Vault74» в данный момент мы будем использовать то, что есть.
Из-за того, что в Fallout3 очень много объектов, категория *All может долго загружаться, так как первый раз поле фильтра пустое.
Перетащите в ячейку объект VDoorSlidingRR001. После этого, поместите ее в один из дверных проемов. Когда дверь займет свое место, скопируйте ее и поместите в другой проем. Теперь ваша ячейка должна выглядеть как третье изображение.
Категория *All в окне Object Window (слева). Использование Фильтра для сужения списка Объектов (в центре). Наша прихожая с помещенными дверьми (справа).
Для остальной части этого упражнения хватит изображений, поясняющих размещение секций. Будет несколько моментов, которые я объясню, но большинство строений вы создадите по иллюстрациям. Если хотите, вы можете сделать свое собственное разме-щение секций помещения, но учтите, — остальные упражнения основываются именно на этом размещении.
Описание горячих клавиш
Переключатель освещения «А»
Вид сверху «Т»
Копирование «Ctrl+D»
Поиск и замена «Ctrl+F»
Перемещение объектов только по X/Y/Z — «X/Y/Z»
Переключение вида в перспективе «С»
Переключение ортографического вида «0» (нуль)
План остальной части ячейки
Описание горячих клавиш:
Действие | Горячая клавиша | Кнопка в панели инструментов |
---|---|---|
Привязка к сетке | «Q» | |
Привязка к углу | «Ctrl+Q» | |
Переключатель освещения | «A» | |
Копирование объектов | «Ctrl+D» | |
Поиск/Замена объекта | «Ctrl+F» | |
Вид сверху | «T» |
Давайте погрузимся в остальную часть планировки. Используя приведенные изображения, вы сможете построить выделенные области. Обратите внимание, что не все секции подписаны. Используя то, чему вы научились, найдите недостающие (неподписанные) части помещения, отталкиваясь от тех секций, для которых дается обозначение.
Когда вы строите большие площади, вам будет полезно выделять несколько наборов объектов как одно целое, копировать их, перемещать и вращать. Выделить несколько объектов вы можете, удерживая клавишу Ctrl и щелкая на нужных частях объектов или перетаскивая вокруг них рамку выделения.
Помните, что большинство наборов использует полезное именованное соглашение. Ниже я приведу больше примеров таких соглашений, отвечающие наборам Убежищ:
Сокращение | Значение |
---|---|
V | Убежище (Vault) |
U | Коммунальное строение (Unity) |
Rm | Комната |
Hall | Коридор |
Sm | Маленькая |
Wall | Секция стены (комнаты) |
Mid | Секция пола (комнаты) |
2Way | Угловая секция |
R | Ржавая версия (Rusted) |
01 | Первый вариант |
Если вы хотите получить лучшее представление о том, как будет выглядеть ваша ячейка, вы можете поместить в нее несколько временных осветителей, придав сцене некоторую глубину. Временные источники света находятся в окне Object Window в разделе World Objects=>Light->TempLight01. Тему освещения мы обсудим более подробно в разделе Упражнение по освещению, которое находится в этой серии упражнений.
Вход пещеры и коммунальные части Убежища 74
Если вы не хотите догадываться:
необозначенный проем — это VURmWallExSmR01,
VURmBoothWallWindowR01 хорошо подходят для стен кабинок,
лестницы — VURmSunkenStairsR01.
Также, для выравнивания дверей Убежища используйте значение привязки к сетке 64. Для дверей Пещеры используйте значение 32.
Части камбуза и комнаты Убежища 74
Части камбуза состоят из плитки, сокращающейся к центру этой части помещения. Внешние части, первый и второй этажи, состоят из тех же секций комнат, которые вы создавали для комнат убежища.
Иногда, бывают случаи, когда нужно соединить две комнаты, у которых разная сетка. В этой ячейке мы работали с сеткой 256, до соединения с последней комнатой (Офис Смотрителя). Эта комната построена с сеткой 128, так что окно может выглядывать из камбуза. Использование одинакового куска коридора здесь не будет работать. По этому нам нужно использовать «Тупик». В нашем случае подойдет VHallSm1WayPlugR01.
Использование части тупика для поддержания привязки к сетке
Проверка вашей планировки в Fallout 3
Теперь, когда у вас есть плагин, с чем-то на что можно глянуть, давайте протестируем его в игре.
Запустите Fallout 3 и выберите опцию «Data Files». Вы должны увидеть ваш файл .esp в появившемся списке файлов. Установите флажок напротив вашего файла и щелкните ОК.
Если программа запуска начнет выпендриваться, вы можете создать новый текстовый файл с расширением .ini в папке, в которую установлена игра Fallout3 и назвать его custom.ini.Чтобы заставить игру загрузить вам плагин, добавьте в файл всего одну строку:
STestFile2=vault74.esp
и сохранить его. В вашем варианте замените vault74 на имя своего плагина, если оно другое. Учтите, что это ни к чему не приведет, если в папке Fallout3/Data игра не обнаружит соответствующего файла с расширением .esp.
Когда игра загрузится, откройте консоль, нажав тильду «~». Используя консольную команду coc Vault74a, переместите игрока в свою созданную ячейку.
В GECK есть специальный объект под названием COCmarker. Поместите этот объект туда, где вы хотите оказаться после применения команды «coc». В одной ячейке может использоваться только один такой маркер.
Было бы не плохо, если бы вы, создавая свои собственные дополнения к игре, часто их сохраняли и тестировали.
Теперь, когда основа планировки нашего Убежища завершена, давайте перейдем к разделу, описывающему заполнение этого помещения объектами.