|
24 человек |
Серия Crysis / Crysis / • Уроки CryENGINE 2 Sandbox 2 / Sandbox 2/Базовые уроки / Кризисное редактирование от "Игромании"
Автор: Игромания Дата: 2008-05-30 09:46 Просмотров: 33869 Рейтинг: Комментарии: (1)
Подробнейшаяя инструкция по созданию уровней для Crysis от журнала "Игромания".
Кризисное редактирование. Часть 1
Создание уровней для Crysis
Эта статья открывает целый цикл материалов по картостроению в Crysis. Поскольку игра пришла всерьез и надолго (моды начнут появляться в самое ближайшее время), надо детально изучить все способы ее модифицирования.
Благо возможности редактора очень широкие. Хотите перенести действие игры на поверхность затерянной в далеком космосе планеты Шелезяка? Задумали поселить в мире игры десятки враждующих банд? А может быть, планируете создать огромный подводный мир, путешествовать по которому можно только в акваланге или в миниатюрной подводной лодке? Все это вполне можно воплотить в жизнь. Начнем мы, правда, с малого. В сегодняшней статье мы детально разберем анатомию редактора, изучим основные клавиши управления, потренируемся в формировании ландшафта и текстурировании локаций, а также побеседуем о расстановке объектов на уровне и написании скриптов для игры.
БАЗОВАЯ КОНЦЕПЦИЯ
Проинсталлировав Crysis на свои машины, многие модмейкеры пришли в тихий ужас: в комплекте с игрой они не обнаружили самого ценного — редактора Sandbox второй версии. Оказалось, ничего страшного не произошло — моддинг игры никто не отменял, просто разработчики не стали выкладывать редактор на диске с игрой, а разместили Sandbox 2 на сайте в интернете. Чтобы вам не пришлось скачивать из Сети довольно большой инсталлятор, мы поместили его на нашем DVD, в разделе «Игрострой». Так что отправляйтесь прямиком туда и оперативно его устанавливайте: без этого читать дальше бессмысленно.
Давайте познакомимся с внутренним устройством редактора. Перейдите в каталог /Bin32 с установленным Crysis и запустите приложение Editor.exe (инструментарий нужно установить именно в папку с игрой).
Когда программа загрузится, вы увидите, что большую часть рабочей области занимает окно 3D-вида, в нем можно просматривать и редактировать уровни. Напротив этого окна располагается панель RollupBar, которая содержит основные инструменты — терраформеры, модификаторы для текстурирования ландшафта местности, размещения объектов на карте и так далее. Инструменты не просто раскиданы по поверхности бара, а сгруппированы во вкладки (структура чем-то напоминает 3DS Max). Например, все инструменты для работы с объектами (источники света, звуки, 3D-модели, камеры) проживают во вкладке Objects, терраформеры и другие модули для создания ландшафта — в Terrain, информация о слоях — в Layer Settings.
В верхней части программы находятся многочисленные каскадные меню и удобная панель инструментов. Снизу расположилась командная строка (Console) и строка состояния. Навигация в окне 3D-вида осуществляется с помощью курсорных стрелок (альтернатива — «горячки» W, S, A, D). Чтобы ускорить перемещение камеры, используйте клавишу Shift. Поворот камеры в окне 3D-вида выполняется при помощи мышки с зажатой правой кнопкой. Масштабируется картинка колесиком мышки.
Теперь несколько слов о возможностях программы. Sandbox второго поколения позволяет изменять оригинальные уровни Crysis (как одиночные, так и мультиплеерные), создавать новые карты с нуля, формировать полноценные кампании и объединять их в аддоны.
В рамках цикла журнальных статей мы научимся конструировать уровни для игры, а также писать довольно сложные миссии и объединять все это в полноценные кампании. А в отдельных DVD-статьях и видеоуроках поговорим о более, скажем так, тонких вещах — например, об импорте своих собственных 3D-моделей из 3DS Max прямиком в Sandbox 2.
ВИРТУАЛЬНЫЕ ГРЕЙДЕРЫ
Создание любой карты для Crysis начинается с формирования ландшафта — плоскую, как блин, заготовку нужно сделать рельефной. Сделать это можно тремя способами: сгенерировать рельеф программно, создать ландшафт на базе черно-белых карт высот (разработчики Crysis использовали именно этот метод, чтобы добиться максимального сходства виртуальных локаций с реально существующими территориями) или же набросать ландшафт вручную при помощи терраформеров.
Анатомия редактора Sandbox 2.
Какой метод выбрать, зависит, во-первых, от качества ландшафта, которое вам нужно для мода, во-вторых, от времени, которым вы располагаете. Мы же рассмотрим комбинированный вариант, в нем задействованы все три метода. Сначала мы сформируем ландшафт при помощи генератора, после чего выполним косметическую доводку при помощи терраформеров: выкопаем пару-тройку дополнительных оврагов, котлованов для рек, обозначим на карте скалистые ущелья, воздвигнем горные цепи и небольшие плоскогорья.
Первым делом выберите пункт меню File/New. В открывшемся окошке в поле LevelName введите произвольное название уровня на английском — к примеру, Igromania_SP. Убедитесь, что напротив комментария Use Terrain стоит галочка. Чтобы определить размер игровой локации, выберите нужную строку из раскрывающегося списка Heightmap Resolution, оптимальный вариант — 1024x1024. При необходимости вы можете изменить значение характеристики Meters Per Unit. Она отвечает за масштаб карты высот — сколько метров будет приходиться на каждый пиксель. Лучше всего поставьте здесь значение 2. Когда закончите, щелкните по кнопке Ok.
Водяная «пустышка» готова. Вода есть, суши нет. Следующий этап работы — собственно генерация ландшафта. Выберите пункт меню Terrain/Edit Terrain. Откроется окно редактирования карты высот. Чтобы вызвать генератор ландшафта, в окне Terrain выберите пункт меню Tools/Generate terrain. Появится окно настройки параметров генерации суши. Рассмотрим предназначение основных атрибутов, отвечающих за автоматическое создание ландшафта.
Характеристика Feature Size определяет размер и количество островов. Атрибут Bumpiness/Noise задает степень зашумления (деформации) поверхности. Параметр Detail (Passes) устанавливает определенное число временных эффектов, которые могут быть применены при создании заготовки. Значение характеристики Variation определяется редактором автоматически (изменить ее нельзя) и задает одну из 32 схем генерации местности. Атрибут Blurring (Blur Passes) служит для регуляции резкости зашумления — указывает, сколько раз нужно размыть поверхность после применения «шумового» фильтра, чтобы сгладить резко выраженные возвышенности и низменности. Наконец, параметры Sharpness (Exp. Base) и Sharpness (Freq. Step) определяют степень «резкости» рельефа и частоту употребления «резкостного» фильтра — эти параметры сообщают редактору, сколько раз и с какой частотой нужно применяться фильтр к уровню. Когда закончите с правкой атрибутов, щелкните по кнопке Ok и подождите несколько секунд, пока редактор сформирует рельеф.
Генерация текстуры поверхности прошла успешно.
Перед тем как перейти к доводке нашей карты с помощью терраформеров, немного поколдуем над картой высот. Вооружитесь кисточкой (инструмент Normal Brush на панели инструментов) и пройдитесь мышкой с зажатой левой кнопкой по тем участкам карты, где хотите обозначить какие-либо ландшафтные образования (горы, пригорки). Ну а чтобы стереть фрагменты суши, пройдитесь по карте мышью с зажатой правой кнопкой. По окончании малярных работ нажмите кнопку Ok, чтобы сгенерировать ландшафт.
Обратите внимание, полученная заготовка окрашена в белый цвет, так что обнаружить на карте какие-либо образования (горы, впадины) и продолжить работать довольно сложно. Чтобы устранить это досадное недоразумение, достаточно сгенерировать одно-единственное изображение для покрытия ландшафта — текстуру поверхности. Выберите пункт меню File/Generate Surface Texture. В появившемся окошке определите размер арта, например 4096x4096, и, не изменяя остальных параметров, щелкните по кнопке Ok.
Теперь уровень «обернут» в текстуру, пора переходить к изменению формы — добавим несколько гор, выкопаем овраги, обозначим другие неровности. На панели RollupBar в правой части редактора перейдите во вкладку Terrain (вторая по счету) и в свитке Terrain щелкните по кнопке Modify, чтобы активировать режим модифицирования ландшафта. Вы увидите, что на панели RollupBar появится свиток Modify Terrain, который содержит параметры редактирования.
Для формирования возвышенности/низменности на карте проделайте следующие действия. В свитке Modify Terrain выберите из раскрывающегося списка Type строку Raise/Lower. После этого настройте параметры кисти — установите величину внешнего и внутреннего радиусов захвата (атрибуты Outside Radius и Inside Radius), определите силу вдавливания/выдавливания (точнее, скорость формирования ландшафтного образования — характеристика Hardness), задайте высоту будущей неровности (параметр Height, для углублений он имеет отрицательное значение). Когда закончите, переместитесь в окно 3D-вида и пройдитесь мышкой с зажатой левой кнопкой по поверхности уровня, чтобы сформировать возвышенность или вырыть овраг.
Работа с остальными терраформерами осуществляется аналогичным образом, поэтому мы рассмотрим лишь их функции: модификатор Flatten из списка Type служит для выравнивания высоты местности, а кисть Smooth стоит использовать, когда требуется размыть резко выраженные угловатые поверхности.
КИСТИ В РУКИ
Каркас уровня сформирован, но он совершенно однотонный. Самое время нанести на полученную заготовку текстуры. Процесс закрашивания ландшафта в Sandbox 2 проходит по необычной схеме. Сначала создаются текстурные слои, которые «окутывают» всю карту целиком, после чего формируются специальные альфа-каналы (черно-белые маски), определяющие видимость заданного текстурного слоя, вернее, его участков. Звучит страшно, но на деле все не так уж сложно: сделали новый слой, прошлись кисточкой по определенным фрагментам ландшафта — и готово.
Создание нового текстурного слоя — очень ответственный этап. Ошибок здесь лучше не допускать.
Начнем с создания новых текстурных слоев. Выберите пункт меню Terrain/Texture — загрузится редактор текстурных слоев Terrain Layers Editor. Рассмотрим его внутреннее устройство. В левой части окна располагается список слоев и четыре кнопки для создания, удаления и перемещения выбранных элементов на одну позицию вверх/вниз в поле Layers. В правой части модуля, в области Static, расположены многочисленные поля параметров с информацией о выбранном слое.
Разберем предназначение основных атрибутов поля Static. Параметр LayerID указывает на идентификационный номер слоя, он генерируется программой автоматически. Советуем не изменять значение данного атрибута: могут возникнуть серьезные трудности при текстурировании. Характеристика Surface Type определяет тип поверхности (совокупность параметров, отвечающих за детализацию текстуры, физические свойства материала, степень прозрачности и зеркальности). В области Layer Mask Auto Generation проживают параметры автоматической генерации маски (альфа-канала) для заданного текстурного слоя.
Чтобы создать новый слой в редакторе, выполните следующие манипуляции. Щелкните по кнопке с изображением пунктирного прямоугольника на панели инструментов в колонке Layers (при наведении курсора на кнопку всплывет надпись New). Задайте новому элементу произвольное имя — скажем, sloy_x. В поле Static кликните по кнопке Edit Surface Types. Появится окошко Surface Types, в котором можно отредактировать параметры материала, а также создать новые типы поверхности.
Чтобы сделать новый тип, кликните по кнопке Add в поле Surface Types, переименуйте элемент (в списке Surface Types кликните по кнопке Rename) и, не снимая выделения, щелкните по кнопке Material Editor для вызова редактора материалов. Перед вами появится окошко, которое представляет собой некое подобие «Проводника». Левая его часть отведена под дерево файлов и папок, в правой проживают многочисленные поля параметров, в них заносится информация о заданном материале.
Добавляем растительность. Красивее всего смотрятся пальмовые рощи с большим количеством кустарника.
Нанесем материал на поверхность. Для этого на панели директорий и файлов в левой части приложения выберите произвольную запись из каталога Materials/Terrain, например Materials/terrain/beach_white_sand_dry_leafs. При желании вы можете самостоятельно поэкспериментировать с настройкой атрибутов выбранного материала. Ну а мы движемся дальше.
Закройте редактор материалов и щелкните по кнопке Pick Selected в окошке Surface Types, чтобы закрепить выбранный материал за поверхностью. Если вы все сделали правильно, то увидите, что в поле под комментарием Material Name появится полный путь к материалу. Нажмите Ok — этим вы сохраните изменения и выйдете из редактора поверхностей.
На панели в левой части окна Terrain Layers Editor кликните в списке по новому текстурному слою, после чего в поле Static выберите из раскрывающегося списка Surface Type строку с названием полученного нами типа поверхности. Последние штрихи — осталось задать основную текстуру слоя (изображение, которое мы в дальнейшем будем наносить на поверхность с помощью кисти). Щелкните по кнопке Load Texture на форме редактора слоев и в диалоговом окне выберите произвольный арт из каталога \Terrain, допустим, brown_leaves.dds.
Сделали? Отлично. Вот теперь можно приступать непосредственно к покраске ландшафта. На панели RollupBar в правой части редактора перейдите на закладку Terrain (вторая по счету) и щелкните по кнопке Layer Painter, чтобы переключиться в режим текстурирования ландшафта. В поле Brush Settings установите произвольный радиус захвата кисти (Radius) и силу действия (Hardness). Чтобы нанести материал на карту, перейдите в окно 3D-вида и передвиньте мышь с зажатой левой кнопкой по тому участку ландшафта, который хотите затекстурировать. Когда закончите базовую покраску, создайте еще пару-тройку текстурных слоев и затекстурируйте горы, овраги, котлованы для озер, ущелья и другие образования.
АГРОНОМИЯ - ВАЖНЕЙШАЯ ИЗ НАУК
Самые нетерпеливые уже могут опробовать уровень в игре. Причем редактор для этого покидать совсем необязательно. Достаточно просто воспользоваться комбинацией клавиш Ctrl + G. Окна редактирования уйдут на второй план, и вы окажетесь наедине со своим творением. Когда вдоволь набегаетесь по пустынному уровню, нажмите клавишу Esc, чтобы вернуться в режим редактирования и продолжить совершенствование карты. Работы еще целый воз с небольшой тележкой лампочек, декораций и прочей бутафории, которую нужно поместить на уровень.
Размещение объектов на карте и редактирование их свойств — весьма увлекательное занятие, за которым можно провести не один час.
Начнем с озеленения островов. Перейдите на закладку Terrain на панели RollupBar в правой части редактора и кликните по кнопке Vegetation. Вы увидите, что на панели RollupBar появится свиток Vegetation, где содержатся инструменты для работы с растениями, параметры кисти, списки добавляемых на уровень растений и их параметров, а также небольшое окно предварительного просмотра.
Чтобы добавить растение на карту, например дерево, выполните следующую цепочку действий. На панели инструментов в свитке Vegetation щелкните по кнопке Add Vegetation Object со схематичным изображением елки (первая по счету). В открывшемся диалоговом окне проследуйте в директорию Game/Objects/Natural (объекты природного происхождения). Вашему взору откроется список из 12 каталогов. Нас интересуют только 8 из них — \bananas (симпатичные модельки бананов), \bushes (кустарники), \fields (поля), \fruits_vegetables (фрукты и овощи — апельсины, лимоны, ананасы, картофель), \ground_plants (цветы, мох, трава, грибы, листья, лесная растительность, поросль), \plants (плантации), \trees (деревья), \underwater_plants (подводные плантации — кораллы, водоросли). Загляните в один из перечисленных каталогов и выберите в нем любую модель растения — например, банановое дерево: game/objects/natural/trees/banana_tree/bananatree_med_a.cgf.
Поместить растение на уровень можно выделив его в списке объектов (Objects), кликнув по кнопке Paint Objects и щелкнув левой кнопкой мышки по тому участку на карте, куда хотите добавить объект. При необходимости вы можете отрегулировать радиус захвата кисти (параметр Brush Radius в свитке Vegetation), а также поэкспериментировать с настройкой характеристик из поля, расположенного под списком «растительных» элементов. Примечательно, что при использовании инструмента Vegetation на карту добавляется не одно растение, а целая клумба из четырех и более элементов.
Что же делать, если нужно добавить на карту, допустим, одну-единственную пальму? Все просто — надо удалить лишние растения. Отключите кнопку Paint Objects, выделите лишний элемент на сцене щелчком левой клавиши мышки и нажмите Delete. Редактор поинтересуется, действительно ли вы хотите уничтожить объект? Нажмите кнопку Да. Совсем необязательно удалять объекты по одному, можно выделить целую группу (делается это мышкой с зажатой левой кнопкой) и точно так же избавиться от нее при помощи клавиши Delete.
ВДУМЧИВЫЙ ДЕКОРАТОР
С растениеводством закончили. Следующий и последний этап работы — добавление моделек персонажей, статических и динамических конструкций и прочих декораций на уровень. На панели RollupBar в правой части редактора загляните во вкладку Objects. Перед тем как приступить к расстановке объектов на карте, рассмотрим содержимое групп объектов, которые представляют для нас наибольший интерес (остальные категории мы изучим в следующих статьях):
Brush, Geom Entity — содержат всевозможные статические объекты. Здесь вы найдете модельки инопланетных баз, жилых зданий, сторожевых вышек, заборов, разбитых авто, камней и, как это ни странно, некоторых растений;
Протестировать карту можно прямо из редактора. Вот только если у вас сама игра сильно тормозит, то из редактора будет лагать еще сильнее.
Entity — включает в себя динамические конструкции, пикапы (оружие, медицинские аптечки, боеприпасы — директория \Items), источники света (папка \Lights), частицы (\Particles), средства передвижения (вертолеты, лодки и катера, гражданские авто — проживают в папке \Vehicles) и другие объекты (ломающиеся ящики, взрывающиеся бочки с топливом и другие динамические элементы — скрываются в каталоге \Others);
Sounds — в данной категории спрятаны игровые звуки и некоторые музыкальные треки.
Теперь, когда вы познакомились с содержимым основных блоков, щелкните левой клавишей мышки по кнопке с названием любой рассмотренной категории и выберите произвольный объект из списка Browser — например, Entity/Vehicles/Civ_car1. Чтобы добавить элемент на карту, ухватитесь за него левой кнопкой мышки и, не отпуская ее, перетащите объект в окно перспективы. Как только вы отпустите кнопку, моделька появится на карте.
Чтобы установить новое местоположение объекта, щелкните по кнопке с изображением двух пересекающихся стрелок на панели инструментов (инструмент Select and Move, второй по счету от списка Select All) для активации режима перемещения объектов. Далее один раз кликните по каркасу модели на карте (объект будет выделен). Появится индикатор перемещения. Чтобы передвинуть конструкцию по одной из осей (абсцисс — X, ординат — Y или аппликат — Z), наведите курсор на нужную ось и переместите мышь с зажатой левой кнопкой на новое место. Поворот и масштабирование элементов сцены производится аналогичным образом, единственное отличие состоит в том, что поворот моделей осуществляется в режиме Select and Rotate, а масштабирование конструкции — в Select and Scale.
Для удаления модельки со сцены щелкните по ней левой кнопкой мышки (для выделения) и нажмите клавишу Delete (не забудьте подтвердить действие). Чтобы создать точную копию объекта, выделите его на карте и скопируйте в буфер при помощи комбинации клавиш Ctrl + C, а затем поместите дубль на карту щелчком левой кнопки мышки.
Когда закончите, выполните повторную генерацию текстуры поверхности при помощи команды File/Generate surface texture, только после этого появятся тени от статических объектов (камней, вышек, деревьев). Сохраните уровень (пункт меню File/Export to Engine) и протестируйте его в игре.
* * *
На сегодня все. В следующих статьях по редактированию Crysis мы продолжим осваивать картостроительное ремесло — займемся доработкой уровня, поговорим о создании замкнутых игровых локаций, поупражняемся в моделировании несложных форм в редакторе (зданий, перекрытий, мостов) и написании однопользовательских миссий для игры.
Кризисное редактирование. Часть 2
Создание уровней для Crysis
В прошлой статье по созданию новых уровней для Crysis мы познакомились с редактором Sandbox 2, изучили основы создания несложных карт, научились генерировать и модифицировать ландшафт, наносить текстуры на полученную заготовку, добавлять на уровни растительность и некоторые другие декорации (здания, транспортные средства, динамические конструкции).
Сегодня мы двинемся дальше и займемся доработкой карты — проложим несколько дорог, настроим параметры освещения, поупражняемся в создании своих собственных моделей в Sandbox 2, изменим уровень гравитации в некоторых зонах, создадим мини-карту игровой территории.
СКАЖИ "НЕТ" БЕЗДОРОЖЬЮ
Начнем с дорожного строительства. Чтобы создать участок дорожного полотна в Sandbox 2, придется изрядно попотеть. Дело в том, что все дороги и тропинки в Crysis — не типовые двумерные текстуры, а полноценные 3D-объекты. То есть создать текстурный слой, содержащий изображение дороги, и пройтись кисточкой по определенным фрагментам ландшафта не получится. Процесс создания новой дороги в редакторе проходит в несколько последовательных этапов — формирование базовой заготовки (3D-модели дороги), подгонка под ландшафт и текстурирование.
Приступим. На панели RollupBar в правой части редактора перейдите во вкладку Objects (первая по счету) и в поле Objects щелкните по кнопке Misc. В появившемся свитке Object Type (тип объекта) кликните по кнопке Road (дорога). Настройте параметры дорожного полотна в свитке Road Params. Например, вы можете модифицировать ширину дороги и бордюра (параметры Width и BorderWidth), изменить размер шага (характеристика StepSize) или длину тайла (атрибут TileLength). Закончив, перейдите в окно 3D-вида и щелкните левой клавишей мышки по тому участку на карте, где хотите обозначить базовую контрольную отметку — позицию, с которой начнется формирование дорожного полотна.
После этого передвиньте мышь вправо или влево на несколько позиций и щелкните левой кнопкой мышки по выбранному фрагменту ландшафта, чтобы сформировать участок дороги заданной длины. Чтобы присоединить к полученной дороге еще одну секцию, снова переместите мышь на новое место и кликните левой кнопкой мышки на уровне — будет сформирована еще одна ключевая отметка. По аналогии добавьте еще несколько звеньев. Для завершения создания дороги (определения последнего чекпойнта) щелкните дважды левой кнопкой мышки по карте.
Как видите, ничего сложного. Всего несколько контрольных кликов — и модель готова. Вот только полученное дорожное полотно практически не пригодно для езды — картину портят многочисленные ямы, рытвины, ухабы, небольшие горки и впадины. Решить проблему можно двумя способами: изменить ландшафт вручную при помощи терраформеров или же программно, используя инструмент Align Height Map. Мы пойдем по второму, наиболее удобному пути. Не снимая выделения с дороги, на панели RollupBar в правой части редактора перейдите в свиток Road Parameters и в поле Heightmap щелкните по кнопке Align Height Map. Программа автоматически выровняет местность, через которую проходит дорога, — сгладит резко выраженные поверхности, ликвидирует горные цепи и низменности (овраги, ухабы, ущелья и т.д.).
Пример дороги, созданной нами в редакторе за 2 минуты.
Итак, дорога готова для движения транспорта. Последние штрихи — осталось нанести текстуры на заготовку. Выделите дорогу на сцене щелчком левой клавиши мышки. Затем выберите пункт меню View/Open View Pane/Material Editor. Откроется окно редактора материалов. На панели директорий и файлов в левой части подпрограммы выберите любую текстуру из каталога Materials/terrain/roads, например, road_concrete_one_stripe. Можно поэкспериментировать с настройкой параметров текстуры — изменить степень свечения (характеристика Glow Amount), применить к изображению один из эффектов постобработки (атрибут Post Effect Type), тип поверхности (параметр Surface Type) или, скажем, задать уровень прозрачности картинки (Opacity).
Чтобы присвоить выбранный материал дороге, кликните по кнопке Assign Material to Selection на панели инструментов в верхней части окна Material Editor (первая по счету). Если вы все сделали правильно, увидите, как дорога покроется текстурой с одной сплошной разделительной полосой.
Чтобы подправить расположение контрольных отметок дороги на карте, выделите любую в окне перспективы, после чего на панели RollupBar в свитке Road Parameters щелкните по кнопке Edit. Активируйте режим Select and Move на панели инструментов, кликните левой кнопкой мышки по одной из «дорожных» отметок (она подсветится) и передвиньте объект по одной из осей.
Запаситесь терпением (процесс небыстрый) и обозначьте на карте трассы, тропинки и дороги. Закончив, протестируйте уровень в игре (Ctrl + G).
НАКЛАДНЫЕ КАРТИНКИ
Чтобы украсить и повысить детализацию уровня, добиться плавных текстурных переходов между объектами, надо покрыть их специальные 2D-артами, которые размещаются поверх основного текстурного слоя.
Добавляем на карту «накладные» картинки.
Поучимся добавлять элементы данного типа на карту. Прежде всего, щелкните по кнопке Follow Terrain на панели инструментов, чтобы все размещаемые нами элементы не висели в воздухе, а прилегали к ландшафту. На панели RollupBar перейдите на закладку Objects. В поле объектов щелкните по кнопке Misc и выберите из списка Object Type строку Decal. Перейдите в окно 3D-вида и щелкните левой кнопкой мышки по тому участку на уровне, куда хотите добавить объект.
На данный момент «накладная» картинка представляет собой невзрачную серую плоскость. Чтобы применить материал к созданной заготовке, на панели в правой части редактора загляните в свиток Decal и щелкните по кнопке напротив комментария MTL. В открывшемся окне редактора материалов выберите произвольную текстуру из каталога \decals, скажем, blood_splat10, и кликните по кнопке Assign Material To Selection на панели инструментов в верхней части окна Material Editor, дабы закрепить материал за объектом.
Для изменения свойств добавленной на уровень «накладной» картинки выделите ее и модифицируйте характеристики в поле Decal Params на панели Rollup Bar. Рассмотрим предназначение основных атрибутов из данного свитка. Параметр Projection Type определяет способ проецирования изображения. Данная характеристика может принимать любое целое значение в диапазоне от 0 до 5 (1 — текстура будет спроецирована на поверхность любого объекта, 2 — непосредственно на ландшафт уровня, 3 — комбинация первого и второго типов проецирования, при использовании данного метода арт будет спроецирован частично на ландшафт, а частично — на заданный объект). Характеристика ViewDistRatio определяет дистанцию прорисовки элемента, то есть расстояние, на котором игрок будет видеть данную текстуру.
Перемещение, поворот, масштабирование «накладных» картинок производится в специальном режиме Reorientate (переориентация). Для его активации на панели RollupBar в правой части редактора перейдите в свиток Decal и щелкните по кнопке Reorientate. Чтобы изменить местоположение арта на карте, щелкните по нему левой кнопкой мышки, зажмите клавишу Ctrl и передвиньте мышь. Для закрепления новой позиции элемента нажмите левую кнопку мышки. Дабы повернуть картинку на определенный угол, зажмите клавиши Ctrl+Alt и перетащите мышь на новое место. Масштабируется изображение при помощи движения мыши с зажатой клавишей Alt на клавиатуре.
СИСТЕМЫ РЕК
Практически во всех оригинальных уровнях из Crysis можно встретить не только океаны, моря и озера, но и реки. Почему бы и нам не обозначить на карте пару-тройку небольших бурных речушек? В этом нам поможет инструмент River.
На панели RollupBar в правой части редактора перейдите на закладку Objects и в свитке Objects нажмите кнопку Misc. Выберите из списка Object Type элемент типа River (река). Перейдите в окно перспективы и обозначьте щелчками левой кнопки мышки контрольные точки, по которым пройдет русло реки. Чтобы завершить создание новой речки, кликните дважды левой кнопкой мышки по карте.
Теперь нужно сформировать русло. Как и при создании дорог, вы можете решить проблему двумя способами — вручную, используя терраформеры, или же автоматически, с помощью инструмента Align Height Map. Мы сгенерируем углубление для реки программно. Выделите реку на уровне, после чего в свитке River Params на панели в правой части Sandbox 2 присвойте атрибуту Width (ширина реки) значение 20. Затем проследуйте в свиток River Parameters и в поле Heightmap щелкните по кнопке Align Height Map.
Осталось задать нашей реке специальный «речной» материал. Выделите русло в окне перспективы и щелкните по клавише M для вызова редактора материалов. В открывшемся окне выберите произвольную запись из каталога Materials/Ocean/, которая содержит ключевое слово river — например, river_village, — и кликните по кнопке Assign Material to Selection на панели в верхней части редактора материалов. Для придания пущей реалистичности реке поэкспериментируйте с настройкой атрибутов из свитка River Params — например, измените ширину русла и бордюра (параметры Width и Border Width), глубину (характеристика Depth), скорость течения воды (атрибут Speed).
Разработчики рекомендуют задавать этим параметрам следующие значения: River Params. Width = 30, BorderWidth = 8, StepSize = 6, ViewDistRatio = 100, TileLength = 4, Depth = 10, Speed = 0.5, FogDensity = 0.5, FogColor = 61,86,91, FogColorMultiplier = 0.1, UScale = 0.05, VScale = 0.2.
МОДЕЛИРОВАНИЕ В SANDBOX 2
В Sandbox 2 можно моделировать несложные объекты. А вот персонажей и транспортные средства придется создавать в «Максе».
Sandbox 2 настолько универсальный редактор, что в нем можно не только создавать новые уровни, но и заниматься моделированием объектов. То есть чтобы добавить в игру, допустим, новый автомобиль или кокосовую пальму, совсем не обязательно прибегать к помощи «Макса». В Sandbox 2 можно конструировать модельки зданий, мостов, водонапорных и сторожевых вышек, терминалов, заборов, укреплений, растительности и других объектов не слишком сложной формы. Для моделирования персонажей и инопланетных субстанций редактор, увы, не годится. Полученные с помощью Sandbox 2 3D-формы никто не мешает сохранить на винчестере в формате OBJ, понятном большинству современных редакторов 3D-контента.
Создание любых конструкций в Sandbox 2 выполняется на базе стандартных примитивов — кубов, сфер, цилиндров и конусов. Попрактикуемся в добавлении простейших геометрических тел на сцену. На панели RollupBar перейдите на закладку Objects и в поле Objects кликните по кнопке Solid, чтобы перейти в режим моделирования. В свитке Create Brush Parameters выберите любой примитив из списка (Box — куб, Cone — конус, Sphere — сфера, Shape — форма), а в поле напротив комментария Num Sides задайте произвольное число граней объекта, например, 4. Затем перейдите в окно 3D-вида, щелкните левой кнопкой мышки по тому месту на уровне, куда хотите поместить объект, и, не отпуская ее, установите нужную длину и ширину конструкции.
Закончив, отпустите левую клавишу мыши — изменения сохранятся. Для определения высоты элемента передвиньте мышь вверх или вниз. Зафиксировать положение и габариты каркаса (завершить формирование примитива) можно нажатием левой клавиши мышки. Перемещение, поворот и масштабирование новых моделей осуществляется так же, как и в случае с типовыми игровыми объектами.
Вот она — полная невесомость. Герой демонстрирует чудеса левитации.
Переходим к модифицированию простейших объектов. Выделите примитив в окне перспективы, после чего на панели в правой части редактора в свитке Solid Parameters щелкните по кнопке Editing Mode для активации режима редактировании конструкции. Всего в Sandbox 2 предусмотрено 4 режима работы с трехмерными формами — Vertex, Edge, Face, Polygon. Первый из них (Vertex) позволяет модифицировать объекты на уровне вершин — передвигать/удалять вершины. Второй — Edge — служит для редактирования ребер (краев) модели, третий и четвертый режимы (Face и Polygon) нацелены на модифицирование полигонов, из которых состоит элемент.
Рассмотрим действие инструментов Vertex и Polygon более подробно. Для начала давайте поучимся перетаскивать отдельно взятые вершинки solid-объектов. Выделите подопытную модель в окне 3D-вида и перейдите в режим редактирования. Далее в свитке Selection Type выберите пункт Vertex. После этого снова перейдите в окно 3D-вида и кликните левой клавишей мышки по любой вершинке объекта. Появится индикатор перемещения. Чтобы передвинуть вершину по одной из осей (абсцисс — X, ординат — Y или аппликат — Z), наведите курсор на нужную ось и переместите манипулятор с зажатой левой кнопкой на новое место. Если вы хотите выбрать две и более вершин модели одновременно, зажмите клавишу Ctrl на клавиатуре, после чего поочередно выделите нужные точки конструкции. Редактирование полигонов объекта (режим Polygon) осуществляется аналогичным образом.
Для текстурирования модели выполните следующие действия. Выделите созданную модель в окне 3D-вида. Затем вызовите редактор материалов (горячая клавиша M на клавиатуре). В появившемся окне выберите произвольную текстуру из списка, например, Materials/alien_level_material/generic_surfaces/generic_b и щелкните по кнопке Assign Material to Selection на панели в верхней части формы Material Editor.
Для экспорта созданной модели в файл формата OBJ выделите ее в окне перспективы и выполните команду File/Export Selected Geometry to .OBJ (чтобы выделить группу solid-конструкций, зажмите клавишу Shift). В открывшемся диалоговом окне перейдите в каталог, куда хотите сохранить модель, и нажмите кнопку Сохранить.
МИНИ-КАРТА
Ландшафт готов, декорации на месте, про дороги тоже не забыли. Следующий этап работы — создание мини-карты уровня (радара, по которому нам приходится ориентироваться во время игры). Для реализации задуманного нам понадобится редактор уровней Sandbox 2 и «Блокнот» (для правки некоторых параметров).
На панели RollupBar переместитесь во вкладку Terrain (вторая по счету) и в свитке Terrain щелкните по кнопке Minimap, чтобы включить инструмент для автоматической генерации мини-карты. Вы увидите, что на сцене появится зеленая рамка, символизирующая границы радара, а также небольшой синий прямоугольник. Ухватитесь за синюю рамку левой кнопкой мышки, перетащите ее в центр уровня и щелкните по кнопке Use New Mini Map Area в свитке Mini Map на панели RollupBar.
В поле Minimap Properties свитка Mini Map измените значение атрибута Resolution на 2048. Эта характеристика отвечает за разрешение картинки. Поменяйте высоту камеры. Для этого присвойте параметру Camera Height из свитка Mini Map значение 400. Теперь загляните в директорию \Game\ScreenShots\Map. Там вы обнаружите два файла — изображение радара и XML-документ, описывающий точные координаты мини-карты (информация из данного файла передается непосредственно движку и используется для корректного отображения местоположения игрока на радаре). Переименуйте XML-файл в соответствии с названием вашей карты (название должно соответствовать имени вашего уровня). Затем скопируйте файлы мини-карты из каталога \Map в папку со своим уровнем. Снова откройте XML-файл в «Блокноте». Вживите метаконструкцию <MetaData> в начало документа, а </MetaData> — в конец текстовика. Перед тегом </MetaData> впишите следующий
Где Level_Name — название вашей карты, а loading.dds — имя картинки формата DDS, которая отображается во время загрузки уровня. Сохраните изменения и закройте «Блокнот».
ЗЕМЛЯ В ИЛЛЮМИНАТОРЕ
Sandbox 2 позволяет создавать гравитационные зоны — области, где земное притяжение как таковое отсутствует. Это позволяет коренным образом изменить геймплей. Парить в воздухе и отстреливать все живое — ни с чем несравнимое удовольствие. В игре ощутить полную невесомость можно лишь в эпизоде Core, где главный герой проникает внутрь инопланетного корабля, но нам ничто не мешает добавить подобные зоны в любую точку игрового мира.
Чтобы сформировать на уровне новую гравитационную зону, проделайте следующие действия. На панели RollupBar перейдите на закладку Objects и в свитке Object Type щелкните по кнопке Entity. В свитке Browser загляните в каталог Physics, выделите и перетащите на сцену один из двух физических объектов — GravityBox (гравитационный бокс) или GravitySphere (гравитационная сфера). Бокс удобнее всего использовать в замкнутых игровых локациях, а сферу — на открытых пространствах и уровнях со сложной архитектурой.
Обратите внимание, что и бокс, и сфера невидимы, то есть обнаружить их на карте во время игры не получится. Буквально несколько слов о гравитационной сфере. Все параметры объекта сосредоточены в блоке Entity Params на панели в правой части редактора. Основные из них — Damping (демпфирование, определяет степень подавления колебаний) и Radius (данная характеристика задает радиус гравитационной зоны).
Но это еще не все. Другой местный аттракцион — гравитационные тоннели. В оригинальной игре опять же присутствуют лишь на уровне Core. Очутившись внутри такого объекта, наш герой под действием сил гравитации словно пуля проносится по проходу, параллельно истребляя чужих.
Хотите сделать что-нибудь подобное? Не проблема! Для создания гравитационного потока в Sandbox 2 на панели RollupBar снова перейдите на вкладку Objects и кликните по кнопке Misc. Выберите из списка элемент GravityVolume. Затем перейдите в окно 3D-вида и щелкните левой кнопкой мышки по тому месту на карте, куда хотите поместить объект. Загляните в свиток GravityVolume Properties и измените значения параметров Radius (радиус гравитационного потока) и Gravity (сила гравитации, разработчики рекомендуют ставить здесь 10). Закончив правку параметров, добавьте на сцену несколько спецэффектов типа Alien_Environment.tunnel_wind.light_tunnel_wind.
ОСВЕЩЕНИЕ
Приступаем к заключительному этапу доведения карты до ума — настройке параметров освещения. Первым делом изменим значение освещенности ландшафта. Выберите пункт меню Terrain/Lighting. На передний план выйдет окно, где производится регулировка освещенности игровой территории. Среди всего многообразия атрибутов нас интересуют только две характеристики — Sun Direction (map orientation) и NorthPole...Equator...SouthPole. Они определяют направление солнечного света. Присвойте атрибутам разные значения, перемещая ползунки. Обратите внимание, что все изменения наглядно отображаются на картинке (схематический вид уровня сверху) в поле Terrain preview with sun path.
Вкратце об остальных параметрах. Характеристики Dawn Time и Dawn Duration из поля Moon/Sun Shadow Transition (Advanced) определяют время заката солнца и захода луны (время восхода определяется редактором автоматически); Dusk Time — время наступления сумрака, а Dusk Duration — его продолжительность. Закончив редактирование характеристик, нажмите кнопку Ok, чтобы сохранить изменения и закрыть окно.
С настройкой параметров освещенности ландшафта разобрались. Движемся дальше и приступаем к правке атрибутов из гигантского блока Time of Day. Выполните команду Terrain\Time Of Day — откроется окно практически со всеми параметрами освещения: цветом солнца, тумана, облаков и небосвода и так далее. В левой части формы располагаются панели задач (Time of Day Tasks и Update Tasks) и блок Current Time (текущее время суток). Центральную область оккупировали различные графики. Изменяя на них положение контрольных отметок, вы можете добиться очень интересных результатов. В правой части окна прописались все те же самые параметры, что и в центре подпрограммы, но в цифровой форме (название атрибута — значение).
Атрибут Sun Color отвечает за цвет солнца и солнечных лучей, Sky Color — за цвет неба, Fog Color — за цвет тумана. Характеристика Night Sky: Horizon Color определяет цвет линии горизонта, а параметр Night Sky: Zenith Color — цвет зенита. Еще один интересный атрибут — Night Sky: Star Intensity — позволяет отрегулировать интенсивность свечения звезд. Характеристики Color: saturation, Color: contrast и Color: brightness определяют общий уровень насыщенности, контрастности и яркости.
По завершении «световых» работ и общей модернизации уровня сгенерируйте текстуры поверхности. Для этого выберите пункт меню File/Generate surface texture. В открывшемся окошке установите оптимальное разрешение — например, 16384x16384 — и нажмите кнопку Ok.
Экспериментируем с настройкой параметров освещения.
* * *
В двух статьях мы разобрали практически все тонкости создания уровней с открытой ландшафтной архитектурой для Crysis. Научились генерировать ландшафт, создавать новые и исправлять исходные текстурные слои, работать с объектами, строить дороги, обозначать на карте специальные гравитационные зоны и даже моделировать 3D-объекты несложной формы.
Кризисное редактирование. Часть 3
Враг в засаде
Изучение Sandbox 2, одного из самых сложных игровых 3D-редакторов современности, потихонечку подходит к концу. В предыдущих двух выпусках «Мастерской» мы научились создавать довольно сложные уровни для Crysis. Вот только носиться с автоматом наперевес по необитаемым островам, крушить здания, пинать коробки и бочки, кидаться машинами, разумеется, не дело. В сегодняшней статье мы, наконец, добавим на уровень различных персонажей: корейских солдат, мирных жителей и инопланетян.
Друзья и враги
На панели RollupBar в правой части редактора перейдите во вкладку Objects (первая по счету) и в поле Objects щелкните по кнопке Entity. В поле браузера компонентов (Browser) раскройте каталог AI и выберите из списка элемент Grunt (AI/Grunt). Чтобы поместить объект на уровень, ухватитесь за него мышкой с зажатой левой кнопкой и перетащите компонент в окно 3D-вида — на уровне появится моделька корейца.
Пока персонаж ничего не умеет — ни бегать, ни стрелять, ни патрулировать игровую территорию, — стоит как истукан, слегка переминаясь с ноги на ногу. Чтобы заставить NPC перемещаться по карте, выберите пункт меню AI/Generate all navigation, редактор автоматически сгенерирует несколько маршрутов перемещения. Позаботимся об инвентаре солдата — заполним рюкзак NPC необходимым снаряжением.
Наполняем походный рюкзак корейского солдата необходимым снаряжением.
Выделите персонажа, на панели RollupBar в свитке Entity Properties щелкните по кнопке с символом многоточия напротив комментария EquipmentPack — активируется окно редактирования инвентаря. Пополнение «походного мешка» NPC производится в несколько этапов: определение базового пака вооружения, редактирование содержимого набора, правка параметров амуниции (количество боеприпасов). Первым делом выберите произвольный пак снаряжения из раскрывающегося списка напротив кнопки Add, например NK_Hurricane, компоненты из выбранного вами набора автоматически подгрузятся в блок Used Equipment.
Можно включить в список необходимые компоненты из поля Available Equipment, скажем, добавить в инвентарь какое-нибудь эффективное оружие — гаусс-винтовку, ядерное оружие или что-то еще. Для этого выделите произвольную строку из списка Available Equipment в левой части окна Equipment-Packs, например GaussRifle или TACGun, и кликните по кнопке >>. Новый элемент будет перенесен в группу используемых объектов. Чтобы исключить компонент из списка используемых орудий, выделите его в блоке Used Equipment и щелкните по кнопке <<.
Когда закончите снаряжать персонажа, отредактируйте характеристики из категории Ammunition, которые определяют количество боеприпасов. Нажмите кнопку Ok, изменения будут сохранены, и редактор инвентаря закроется. Чтобы внесенные изменения вступили в силу, перейдите в свиток Entity: Grunt на панели в правой части редактора и щелкните по кнопке Reload Script.
На поле боя
Переключитесь в режим игры (Ctrl+G) и сразитесь с созданным персонажем. Бегает? Стреляет? Дерется? Отлично. Движемся дальше, приступаем к редактированию основных параметров NPC. Выделите модельку подопытного персонажа на карте, кликнув по ней левой клавишей мышки. Затем на панели RollupBar в правой части редактора перейдите в свиток Entity Properties. В нем содержатся основные характеристики персонажа — скорость реакции, меткость, схема поведения, внешность.
Разберем предназначение основных атрибутов. Параметр Accuracy определяет точность стрельбы персонажа. Чтобы поменять уровень сложности игры, достаточно увеличить или уменьшить значение данной характеристики. Если установить данному атрибуту нулевое значение, все враги превратятся в туповатых зомби, сражаться с которыми совсем неинтересно: даже стреляя по вам в упор, они будут постоянно промахиваться. Если хотите превратить Crysis в военный симулятор типа Armed Assault, смело выкручивайте значение на максимум.
Следующая интересная настройка — Attack_range — задает расстояние, на котором NPC может атаковать главного героя и других персонажей, например инопланетян (значение указано в метрах). Активировав атрибут CannotSwim, вы лишите персонажа возможности плавать, по умолчанию эта опция отключена. Параметр Character отвечает за алгоритм поведения NPC на поле боя (модель искусственного интеллекта). Всего в Crysis таких схем около 40. Для выбора произвольной модели поведения проделайте следующие нехитрые манипуляции. Щелкните по кнопке с символом многоточия напротив комментария Character, после чего в открывшемся окне AI Characters выберите произвольную запись из списка — например, Sniper. Если вы водрузите флажок рядом с комментарием Grenades, NPC сможет применять гранаты во время боя.
Компоненты типа ForbiddenArea позволяют ограничить перемещение персонажей по некоторым участкам игровой территории.
Чтобы изменить внешность NPC, выделите строку Model в свитке Entity Properties, щелкните по кнопке с изображением папки напротив комментария Model, в открывшемся окне укажите полный путь к нужной игровой модели из каталога Game/Objects/Characters. Наибольший интерес для нас представляют следующие папки: /Alien (инопланетные субстанции и отдельно взятые конечности пришельцев), /Animals (животные — птицы, крабы, лягушки, акулы, черепахи) и /Human (люди — гражданские, бойцы американской армии, корейцы, ученые, археологи).
Атрибут NanoSuit передает игровому движку информацию о том, облачен ли NPC в защитный нанокостюм или нет. Настройка Reaction определяет скорость реакции персонажа. Характеристика Health из поля Damage (расположена в этом же свитке) отвечает за базовый уровень здоровья (энергии) NPC: чем больше значение, тем сложнее игроку разделаться с неприятелем. Если оригинальная игра показалась вам слишком сложной, понизьте значение данного параметра примерно на 1/3. Если хотите сделать персонажа бессмертным, поставьте флажок напротив пункта NoDeath (чтобы значение параметра стало True) в поле Damage. Когда отредактируете все интересующие вас параметры, загляните в свиток Entity: Grunt на панели RollupBar и щелкните по кнопке Reload Script, чтобы правки вступили в силу.
Добавление на карту инопланетных существ (проживают в директории AI/Aliens) и гражданских (AI/Civilian), а также редактирование их параметров производится аналогичным образом.
Зона отчуждения
Для блокирования передвижения NPC и транспортных средств, управляемых компьютерными соперниками, по определенным участкам ландшафта, например по возвышенностям и низменностям, применяются так называемые зоны непроходимости. Чтобы добавить их на карту, выполните следующие действия. Перейдите на закладку Objects на панели RollupBar в правой части редактора и кликните по кнопке AI. В появившемся свитке Object Type щелкните по кнопке ForbiddenArea. Активируйте окно 3D-вида и кликните по произвольному участку на карте левой кнопкой мышки, определив тем самым контрольную отметку, с которой начнется формирование замкнутой ломаной линии (в виде треугольника, прямоугольника или многогранника).
Обозначьте щелчками левой клавиши мышки еще несколько контрольных отметок, по ним пройдет ломаная линия, очерчивающая границы запретной зоны. Чтобы завершить создание компонента, щелкните дважды левой кнопкой мышки по нужному фрагменту игровой территории. Положение контрольных отметок можно изменить в любой момент, для этого перейдите в окно перспективы и щелкните по созданному объекту (зоне) левой кнопкой мышки (для выделения). Затем на панели RollupBar в правой части редактора загляните в свиток Shape Parameters и щелкните по кнопке Edit Shape, чтобы активировать режим изменения формы ломаной линии.
Положение каждого чекпойнта редактируется следующим образом. Ухватитесь за него левой кнопкой мышки и передвиньте манипулятор на новое место. При необходимости вы можете поэкспериментировать с настройками в свитке ForbiddenArea Params — к примеру, изменить ширину (Width) или высоту зоны (Height).
Маршруты движения
Для нормального перемещения NPC по уровням Crysis необходимы вейпойнты — специальные контрольные отметки, которые задают маршрут следования. Вейпойнты обязательно должны присутствовать в замкнутых локациях (пещеры, здания, инопланетные корабли), а также в местах сосредоточения большого числа различных построек. По умолчанию персонажи могут ориентироваться лишь на открытых игровых территориях — бродить по джунглям, карабкаться по горам, бегать по полям и лугам. Очутившись в любой нестандартной зоне, NPC начинает судорожно перебирать ногами, топтаться на месте, пытаться проломить препятствие головой. Причина банальна — отсутствуют алгоритмы огибания препятствий.
Поучимся добавлять одиночные вейпойнты на карту и соединять их между собой. На панели RollupBar переместитесь во вкладку Objects. В поле объектов щелкните по кнопке AI, выберите из списка Object Type компонент AIPoint и поместите его на карту. Аналогичным образом добавьте на карту еще несколько вейпойнтов, простраивая четкий маршрут движения.
Чтобы сформировать полноценную маршрутную сетку, необходимо последовательно соединить путевые узлы между собой. Связь между двумя соседними путевыми отметками налаживается следующим образом. Выделите любой вейпойнт, на панели в правой части Sandbox 2 зайдите в свиток AIPoint Parameters и щелкните по кнопке Pick. Активируйте окно 3D-вида и кликните левой клавишей мыши по второму путевому узлу. Если вы все сделаете правильно, то увидите, что между первым и вторым чекпойнтом появится тоненькая линия голубого цвета. Это и есть траектория движения для NPC.
Красные кубики — вейпойнты, а фиолетовая линия — путь следования NPC.
Для изменения типа вейпойнта проделайте следующие действия. Выделите необходимую путевую отметку, перейдите в свиток AIPoint Parameters на панели в правой части редактора и активируйте нужную опцию в поле Type, например Exit-Only. Обычно при создании маршрутных сеток применяются вейпойнты трех типов — Waypoint (стандартный путевой узел, используется для создания основной траектории движения), Hide (вейпойнты, в зоне которых могут прятаться NPC в случае опасности), Entry/Exit (точки входа/выхода, используются для того, чтобы персонажи могли забегать внутрь различных зданий).
* * *
На этом наше знакомство с Sandbox 2 завершается. Знаний, полученных вами из цикла «Кризисное редактирование», вполне достаточно, чтобы смастерить красивую мультиплеерную или сингловую карту.
К сожалению, за бортом осталась очень сложная и интересная тема — написание игровых миссий. Поэтому на DVD одного из ближайших номеров «Игромании» мы опубликуем подробную статью, где расскажем о создании триггеров, написании скриптов, а также приведем ряд конкретных примеров: научим NPC использовать транспортные средства и передвигаться к заданным отметкам на карте.
Кризисное редактирование. Часть 1
Создание уровней для Crysis
Эта статья открывает целый цикл материалов по картостроению в Crysis. Поскольку игра пришла всерьез и надолго (моды начнут появляться в самое ближайшее время), надо детально изучить все способы ее модифицирования.
Благо возможности редактора очень широкие. Хотите перенести действие игры на поверхность затерянной в далеком космосе планеты Шелезяка? Задумали поселить в мире игры десятки враждующих банд? А может быть, планируете создать огромный подводный мир, путешествовать по которому можно только в акваланге или в миниатюрной подводной лодке? Все это вполне можно воплотить в жизнь. Начнем мы, правда, с малого. В сегодняшней статье мы детально разберем анатомию редактора, изучим основные клавиши управления, потренируемся в формировании ландшафта и текстурировании локаций, а также побеседуем о расстановке объектов на уровне и написании скриптов для игры.
БАЗОВАЯ КОНЦЕПЦИЯ
Проинсталлировав Crysis на свои машины, многие модмейкеры пришли в тихий ужас: в комплекте с игрой они не обнаружили самого ценного — редактора Sandbox второй версии. Оказалось, ничего страшного не произошло — моддинг игры никто не отменял, просто разработчики не стали выкладывать редактор на диске с игрой, а разместили Sandbox 2 на сайте в интернете. Чтобы вам не пришлось скачивать из Сети довольно большой инсталлятор, мы поместили его на нашем DVD, в разделе «Игрострой». Так что отправляйтесь прямиком туда и оперативно его устанавливайте: без этого читать дальше бессмысленно.
Давайте познакомимся с внутренним устройством редактора. Перейдите в каталог /Bin32 с установленным Crysis и запустите приложение Editor.exe (инструментарий нужно установить именно в папку с игрой).
Когда программа загрузится, вы увидите, что большую часть рабочей области занимает окно 3D-вида, в нем можно просматривать и редактировать уровни. Напротив этого окна располагается панель RollupBar, которая содержит основные инструменты — терраформеры, модификаторы для текстурирования ландшафта местности, размещения объектов на карте и так далее. Инструменты не просто раскиданы по поверхности бара, а сгруппированы во вкладки (структура чем-то напоминает 3DS Max). Например, все инструменты для работы с объектами (источники света, звуки, 3D-модели, камеры) проживают во вкладке Objects, терраформеры и другие модули для создания ландшафта — в Terrain, информация о слоях — в Layer Settings.
В верхней части программы находятся многочисленные каскадные меню и удобная панель инструментов. Снизу расположилась командная строка (Console) и строка состояния. Навигация в окне 3D-вида осуществляется с помощью курсорных стрелок (альтернатива — «горячки» W, S, A, D). Чтобы ускорить перемещение камеры, используйте клавишу Shift. Поворот камеры в окне 3D-вида выполняется при помощи мышки с зажатой правой кнопкой. Масштабируется картинка колесиком мышки.
Теперь несколько слов о возможностях программы. Sandbox второго поколения позволяет изменять оригинальные уровни Crysis (как одиночные, так и мультиплеерные), создавать новые карты с нуля, формировать полноценные кампании и объединять их в аддоны.
В рамках цикла журнальных статей мы научимся конструировать уровни для игры, а также писать довольно сложные миссии и объединять все это в полноценные кампании. А в отдельных DVD-статьях и видеоуроках поговорим о более, скажем так, тонких вещах — например, об импорте своих собственных 3D-моделей из 3DS Max прямиком в Sandbox 2.
ВИРТУАЛЬНЫЕ ГРЕЙДЕРЫ
Создание любой карты для Crysis начинается с формирования ландшафта — плоскую, как блин, заготовку нужно сделать рельефной. Сделать это можно тремя способами: сгенерировать рельеф программно, создать ландшафт на базе черно-белых карт высот (разработчики Crysis использовали именно этот метод, чтобы добиться максимального сходства виртуальных локаций с реально существующими территориями) или же набросать ландшафт вручную при помощи терраформеров.
Анатомия редактора Sandbox 2.
Какой метод выбрать, зависит, во-первых, от качества ландшафта, которое вам нужно для мода, во-вторых, от времени, которым вы располагаете. Мы же рассмотрим комбинированный вариант, в нем задействованы все три метода. Сначала мы сформируем ландшафт при помощи генератора, после чего выполним косметическую доводку при помощи терраформеров: выкопаем пару-тройку дополнительных оврагов, котлованов для рек, обозначим на карте скалистые ущелья, воздвигнем горные цепи и небольшие плоскогорья.
Первым делом выберите пункт меню File/New. В открывшемся окошке в поле LevelName введите произвольное название уровня на английском — к примеру, Igromania_SP. Убедитесь, что напротив комментария Use Terrain стоит галочка. Чтобы определить размер игровой локации, выберите нужную строку из раскрывающегося списка Heightmap Resolution, оптимальный вариант — 1024x1024. При необходимости вы можете изменить значение характеристики Meters Per Unit. Она отвечает за масштаб карты высот — сколько метров будет приходиться на каждый пиксель. Лучше всего поставьте здесь значение 2. Когда закончите, щелкните по кнопке Ok.
Водяная «пустышка» готова. Вода есть, суши нет. Следующий этап работы — собственно генерация ландшафта. Выберите пункт меню Terrain/Edit Terrain. Откроется окно редактирования карты высот. Чтобы вызвать генератор ландшафта, в окне Terrain выберите пункт меню Tools/Generate terrain. Появится окно настройки параметров генерации суши. Рассмотрим предназначение основных атрибутов, отвечающих за автоматическое создание ландшафта.
Характеристика Feature Size определяет размер и количество островов. Атрибут Bumpiness/Noise задает степень зашумления (деформации) поверхности. Параметр Detail (Passes) устанавливает определенное число временных эффектов, которые могут быть применены при создании заготовки. Значение характеристики Variation определяется редактором автоматически (изменить ее нельзя) и задает одну из 32 схем генерации местности. Атрибут Blurring (Blur Passes) служит для регуляции резкости зашумления — указывает, сколько раз нужно размыть поверхность после применения «шумового» фильтра, чтобы сгладить резко выраженные возвышенности и низменности. Наконец, параметры Sharpness (Exp. Base) и Sharpness (Freq. Step) определяют степень «резкости» рельефа и частоту употребления «резкостного» фильтра — эти параметры сообщают редактору, сколько раз и с какой частотой нужно применяться фильтр к уровню. Когда закончите с правкой атрибутов, щелкните по кнопке Ok и подождите несколько секунд, пока редактор сформирует рельеф.
Генерация текстуры поверхности прошла успешно.
Перед тем как перейти к доводке нашей карты с помощью терраформеров, немного поколдуем над картой высот. Вооружитесь кисточкой (инструмент Normal Brush на панели инструментов) и пройдитесь мышкой с зажатой левой кнопкой по тем участкам карты, где хотите обозначить какие-либо ландшафтные образования (горы, пригорки). Ну а чтобы стереть фрагменты суши, пройдитесь по карте мышью с зажатой правой кнопкой. По окончании малярных работ нажмите кнопку Ok, чтобы сгенерировать ландшафт.
Обратите внимание, полученная заготовка окрашена в белый цвет, так что обнаружить на карте какие-либо образования (горы, впадины) и продолжить работать довольно сложно. Чтобы устранить это досадное недоразумение, достаточно сгенерировать одно-единственное изображение для покрытия ландшафта — текстуру поверхности. Выберите пункт меню File/Generate Surface Texture. В появившемся окошке определите размер арта, например 4096x4096, и, не изменяя остальных параметров, щелкните по кнопке Ok.
Теперь уровень «обернут» в текстуру, пора переходить к изменению формы — добавим несколько гор, выкопаем овраги, обозначим другие неровности. На панели RollupBar в правой части редактора перейдите во вкладку Terrain (вторая по счету) и в свитке Terrain щелкните по кнопке Modify, чтобы активировать режим модифицирования ландшафта. Вы увидите, что на панели RollupBar появится свиток Modify Terrain, который содержит параметры редактирования.
Для формирования возвышенности/низменности на карте проделайте следующие действия. В свитке Modify Terrain выберите из раскрывающегося списка Type строку Raise/Lower. После этого настройте параметры кисти — установите величину внешнего и внутреннего радиусов захвата (атрибуты Outside Radius и Inside Radius), определите силу вдавливания/выдавливания (точнее, скорость формирования ландшафтного образования — характеристика Hardness), задайте высоту будущей неровности (параметр Height, для углублений он имеет отрицательное значение). Когда закончите, переместитесь в окно 3D-вида и пройдитесь мышкой с зажатой левой кнопкой по поверхности уровня, чтобы сформировать возвышенность или вырыть овраг.
Работа с остальными терраформерами осуществляется аналогичным образом, поэтому мы рассмотрим лишь их функции: модификатор Flatten из списка Type служит для выравнивания высоты местности, а кисть Smooth стоит использовать, когда требуется размыть резко выраженные угловатые поверхности.
КИСТИ В РУКИ
Каркас уровня сформирован, но он совершенно однотонный. Самое время нанести на полученную заготовку текстуры. Процесс закрашивания ландшафта в Sandbox 2 проходит по необычной схеме. Сначала создаются текстурные слои, которые «окутывают» всю карту целиком, после чего формируются специальные альфа-каналы (черно-белые маски), определяющие видимость заданного текстурного слоя, вернее, его участков. Звучит страшно, но на деле все не так уж сложно: сделали новый слой, прошлись кисточкой по определенным фрагментам ландшафта — и готово.
Создание нового текстурного слоя — очень ответственный этап. Ошибок здесь лучше не допускать.
Начнем с создания новых текстурных слоев. Выберите пункт меню Terrain/Texture — загрузится редактор текстурных слоев Terrain Layers Editor. Рассмотрим его внутреннее устройство. В левой части окна располагается список слоев и четыре кнопки для создания, удаления и перемещения выбранных элементов на одну позицию вверх/вниз в поле Layers. В правой части модуля, в области Static, расположены многочисленные поля параметров с информацией о выбранном слое.
Разберем предназначение основных атрибутов поля Static. Параметр LayerID указывает на идентификационный номер слоя, он генерируется программой автоматически. Советуем не изменять значение данного атрибута: могут возникнуть серьезные трудности при текстурировании. Характеристика Surface Type определяет тип поверхности (совокупность параметров, отвечающих за детализацию текстуры, физические свойства материала, степень прозрачности и зеркальности). В области Layer Mask Auto Generation проживают параметры автоматической генерации маски (альфа-канала) для заданного текстурного слоя.
Чтобы создать новый слой в редакторе, выполните следующие манипуляции. Щелкните по кнопке с изображением пунктирного прямоугольника на панели инструментов в колонке Layers (при наведении курсора на кнопку всплывет надпись New). Задайте новому элементу произвольное имя — скажем, sloy_x. В поле Static кликните по кнопке Edit Surface Types. Появится окошко Surface Types, в котором можно отредактировать параметры материала, а также создать новые типы поверхности.
Чтобы сделать новый тип, кликните по кнопке Add в поле Surface Types, переименуйте элемент (в списке Surface Types кликните по кнопке Rename) и, не снимая выделения, щелкните по кнопке Material Editor для вызова редактора материалов. Перед вами появится окошко, которое представляет собой некое подобие «Проводника». Левая его часть отведена под дерево файлов и папок, в правой проживают многочисленные поля параметров, в них заносится информация о заданном материале.
Добавляем растительность. Красивее всего смотрятся пальмовые рощи с большим количеством кустарника.
Нанесем материал на поверхность. Для этого на панели директорий и файлов в левой части приложения выберите произвольную запись из каталога Materials/Terrain, например Materials/terrain/beach_white_sand_dry_leafs. При желании вы можете самостоятельно поэкспериментировать с настройкой атрибутов выбранного материала. Ну а мы движемся дальше.
Закройте редактор материалов и щелкните по кнопке Pick Selected в окошке Surface Types, чтобы закрепить выбранный материал за поверхностью. Если вы все сделали правильно, то увидите, что в поле под комментарием Material Name появится полный путь к материалу. Нажмите Ok — этим вы сохраните изменения и выйдете из редактора поверхностей.
На панели в левой части окна Terrain Layers Editor кликните в списке по новому текстурному слою, после чего в поле Static выберите из раскрывающегося списка Surface Type строку с названием полученного нами типа поверхности. Последние штрихи — осталось задать основную текстуру слоя (изображение, которое мы в дальнейшем будем наносить на поверхность с помощью кисти). Щелкните по кнопке Load Texture на форме редактора слоев и в диалоговом окне выберите произвольный арт из каталога \Terrain, допустим, brown_leaves.dds.
Сделали? Отлично. Вот теперь можно приступать непосредственно к покраске ландшафта. На панели RollupBar в правой части редактора перейдите на закладку Terrain (вторая по счету) и щелкните по кнопке Layer Painter, чтобы переключиться в режим текстурирования ландшафта. В поле Brush Settings установите произвольный радиус захвата кисти (Radius) и силу действия (Hardness). Чтобы нанести материал на карту, перейдите в окно 3D-вида и передвиньте мышь с зажатой левой кнопкой по тому участку ландшафта, который хотите затекстурировать. Когда закончите базовую покраску, создайте еще пару-тройку текстурных слоев и затекстурируйте горы, овраги, котлованы для озер, ущелья и другие образования.
АГРОНОМИЯ - ВАЖНЕЙШАЯ ИЗ НАУК
Самые нетерпеливые уже могут опробовать уровень в игре. Причем редактор для этого покидать совсем необязательно. Достаточно просто воспользоваться комбинацией клавиш Ctrl + G. Окна редактирования уйдут на второй план, и вы окажетесь наедине со своим творением. Когда вдоволь набегаетесь по пустынному уровню, нажмите клавишу Esc, чтобы вернуться в режим редактирования и продолжить совершенствование карты. Работы еще целый воз с небольшой тележкой лампочек, декораций и прочей бутафории, которую нужно поместить на уровень.
Размещение объектов на карте и редактирование их свойств — весьма увлекательное занятие, за которым можно провести не один час.
Начнем с озеленения островов. Перейдите на закладку Terrain на панели RollupBar в правой части редактора и кликните по кнопке Vegetation. Вы увидите, что на панели RollupBar появится свиток Vegetation, где содержатся инструменты для работы с растениями, параметры кисти, списки добавляемых на уровень растений и их параметров, а также небольшое окно предварительного просмотра.
Чтобы добавить растение на карту, например дерево, выполните следующую цепочку действий. На панели инструментов в свитке Vegetation щелкните по кнопке Add Vegetation Object со схематичным изображением елки (первая по счету). В открывшемся диалоговом окне проследуйте в директорию Game/Objects/Natural (объекты природного происхождения). Вашему взору откроется список из 12 каталогов. Нас интересуют только 8 из них — \bananas (симпатичные модельки бананов), \bushes (кустарники), \fields (поля), \fruits_vegetables (фрукты и овощи — апельсины, лимоны, ананасы, картофель), \ground_plants (цветы, мох, трава, грибы, листья, лесная растительность, поросль), \plants (плантации), \trees (деревья), \underwater_plants (подводные плантации — кораллы, водоросли). Загляните в один из перечисленных каталогов и выберите в нем любую модель растения — например, банановое дерево: game/objects/natural/trees/banana_tree/bananatree_med_a.cgf.
Поместить растение на уровень можно выделив его в списке объектов (Objects), кликнув по кнопке Paint Objects и щелкнув левой кнопкой мышки по тому участку на карте, куда хотите добавить объект. При необходимости вы можете отрегулировать радиус захвата кисти (параметр Brush Radius в свитке Vegetation), а также поэкспериментировать с настройкой характеристик из поля, расположенного под списком «растительных» элементов. Примечательно, что при использовании инструмента Vegetation на карту добавляется не одно растение, а целая клумба из четырех и более элементов.
Что же делать, если нужно добавить на карту, допустим, одну-единственную пальму? Все просто — надо удалить лишние растения. Отключите кнопку Paint Objects, выделите лишний элемент на сцене щелчком левой клавиши мышки и нажмите Delete. Редактор поинтересуется, действительно ли вы хотите уничтожить объект? Нажмите кнопку Да. Совсем необязательно удалять объекты по одному, можно выделить целую группу (делается это мышкой с зажатой левой кнопкой) и точно так же избавиться от нее при помощи клавиши Delete.
Цитата:
Это важно знать :
- Sandbox 2 откажется запускаться, если вы проинсталлируете его не в папку с игрой. Редактор просто не найдет библиотечный файл ijl15.dll и выдаст ошибку.
- Вы в любой момент можете изменить скорость передвижения в окне 3D-вида. Для этого достаточно откорректировать значение параметра Speed в строке состояния в нижней части программы.
- Редактор позволяет распределить добавляемые на карту растения по специальным категориям, скажем, положить все модели деревьев в каталог с названием Деревца, кустарники — в папку с названием Кусты, а плантации и другие элементы — в директорию Другое. При этом названия каталогов и их количество запросто изменяются. Это означает, что вы, например, можете создать категорию Бананас и сложить в нее все модели банановых деревьев и бананов, которые в дальнейшем планируете добавить на карту. Чтобы создать новую категорию, в свитке Vegetation щелкните по кнопке Add Vegetation Category и в открывшемся окошке введите название нового блока, например Плантации. Для помещения элементов в сформированную группу выделите ее и кликните по кнопке со схематичным изображением елки в поле Vegetation на панели RollupBar в правой части редактора.
- Если вы уберете флажок напротив любого растения в поле Objects, то тем самым отключите опцию отображения элементов данного типа на карте в окне 3D-вида (при тестировании уровня в игре они тоже не будут отображаться).
- На слабых машинах (по сути, на любом одноядерном процессоре) редактор карт часто вываливается в Windows с ошибкой (как правило, возникает при текстурировании ландшафта и добавлении элементов на сцену). Никакие изменения при этом не сохраняются. Поэтому, чтобы в одночасье не остаться у разбитого корыта, почаще сохраняйтесь (команда File/Save).
ВДУМЧИВЫЙ ДЕКОРАТОР
С растениеводством закончили. Следующий и последний этап работы — добавление моделек персонажей, статических и динамических конструкций и прочих декораций на уровень. На панели RollupBar в правой части редактора загляните во вкладку Objects. Перед тем как приступить к расстановке объектов на карте, рассмотрим содержимое групп объектов, которые представляют для нас наибольший интерес (остальные категории мы изучим в следующих статьях):
Brush, Geom Entity — содержат всевозможные статические объекты. Здесь вы найдете модельки инопланетных баз, жилых зданий, сторожевых вышек, заборов, разбитых авто, камней и, как это ни странно, некоторых растений;
Протестировать карту можно прямо из редактора. Вот только если у вас сама игра сильно тормозит, то из редактора будет лагать еще сильнее.
Entity — включает в себя динамические конструкции, пикапы (оружие, медицинские аптечки, боеприпасы — директория \Items), источники света (папка \Lights), частицы (\Particles), средства передвижения (вертолеты, лодки и катера, гражданские авто — проживают в папке \Vehicles) и другие объекты (ломающиеся ящики, взрывающиеся бочки с топливом и другие динамические элементы — скрываются в каталоге \Others);
Sounds — в данной категории спрятаны игровые звуки и некоторые музыкальные треки.
Теперь, когда вы познакомились с содержимым основных блоков, щелкните левой клавишей мышки по кнопке с названием любой рассмотренной категории и выберите произвольный объект из списка Browser — например, Entity/Vehicles/Civ_car1. Чтобы добавить элемент на карту, ухватитесь за него левой кнопкой мышки и, не отпуская ее, перетащите объект в окно перспективы. Как только вы отпустите кнопку, моделька появится на карте.
Чтобы установить новое местоположение объекта, щелкните по кнопке с изображением двух пересекающихся стрелок на панели инструментов (инструмент Select and Move, второй по счету от списка Select All) для активации режима перемещения объектов. Далее один раз кликните по каркасу модели на карте (объект будет выделен). Появится индикатор перемещения. Чтобы передвинуть конструкцию по одной из осей (абсцисс — X, ординат — Y или аппликат — Z), наведите курсор на нужную ось и переместите мышь с зажатой левой кнопкой на новое место. Поворот и масштабирование элементов сцены производится аналогичным образом, единственное отличие состоит в том, что поворот моделей осуществляется в режиме Select and Rotate, а масштабирование конструкции — в Select and Scale.
Для удаления модельки со сцены щелкните по ней левой кнопкой мышки (для выделения) и нажмите клавишу Delete (не забудьте подтвердить действие). Чтобы создать точную копию объекта, выделите его на карте и скопируйте в буфер при помощи комбинации клавиш Ctrl + C, а затем поместите дубль на карту щелчком левой кнопки мышки.
Когда закончите, выполните повторную генерацию текстуры поверхности при помощи команды File/Generate surface texture, только после этого появятся тени от статических объектов (камней, вышек, деревьев). Сохраните уровень (пункт меню File/Export to Engine) и протестируйте его в игре.
* * *
На сегодня все. В следующих статьях по редактированию Crysis мы продолжим осваивать картостроительное ремесло — займемся доработкой уровня, поговорим о создании замкнутых игровых локаций, поупражняемся в моделировании несложных форм в редакторе (зданий, перекрытий, мостов) и написании однопользовательских миссий для игры.
Кризисное редактирование. Часть 2
Создание уровней для Crysis
В прошлой статье по созданию новых уровней для Crysis мы познакомились с редактором Sandbox 2, изучили основы создания несложных карт, научились генерировать и модифицировать ландшафт, наносить текстуры на полученную заготовку, добавлять на уровни растительность и некоторые другие декорации (здания, транспортные средства, динамические конструкции).
Сегодня мы двинемся дальше и займемся доработкой карты — проложим несколько дорог, настроим параметры освещения, поупражняемся в создании своих собственных моделей в Sandbox 2, изменим уровень гравитации в некоторых зонах, создадим мини-карту игровой территории.
СКАЖИ "НЕТ" БЕЗДОРОЖЬЮ
Начнем с дорожного строительства. Чтобы создать участок дорожного полотна в Sandbox 2, придется изрядно попотеть. Дело в том, что все дороги и тропинки в Crysis — не типовые двумерные текстуры, а полноценные 3D-объекты. То есть создать текстурный слой, содержащий изображение дороги, и пройтись кисточкой по определенным фрагментам ландшафта не получится. Процесс создания новой дороги в редакторе проходит в несколько последовательных этапов — формирование базовой заготовки (3D-модели дороги), подгонка под ландшафт и текстурирование.
Приступим. На панели RollupBar в правой части редактора перейдите во вкладку Objects (первая по счету) и в поле Objects щелкните по кнопке Misc. В появившемся свитке Object Type (тип объекта) кликните по кнопке Road (дорога). Настройте параметры дорожного полотна в свитке Road Params. Например, вы можете модифицировать ширину дороги и бордюра (параметры Width и BorderWidth), изменить размер шага (характеристика StepSize) или длину тайла (атрибут TileLength). Закончив, перейдите в окно 3D-вида и щелкните левой клавишей мышки по тому участку на карте, где хотите обозначить базовую контрольную отметку — позицию, с которой начнется формирование дорожного полотна.
После этого передвиньте мышь вправо или влево на несколько позиций и щелкните левой кнопкой мышки по выбранному фрагменту ландшафта, чтобы сформировать участок дороги заданной длины. Чтобы присоединить к полученной дороге еще одну секцию, снова переместите мышь на новое место и кликните левой кнопкой мышки на уровне — будет сформирована еще одна ключевая отметка. По аналогии добавьте еще несколько звеньев. Для завершения создания дороги (определения последнего чекпойнта) щелкните дважды левой кнопкой мышки по карте.
Как видите, ничего сложного. Всего несколько контрольных кликов — и модель готова. Вот только полученное дорожное полотно практически не пригодно для езды — картину портят многочисленные ямы, рытвины, ухабы, небольшие горки и впадины. Решить проблему можно двумя способами: изменить ландшафт вручную при помощи терраформеров или же программно, используя инструмент Align Height Map. Мы пойдем по второму, наиболее удобному пути. Не снимая выделения с дороги, на панели RollupBar в правой части редактора перейдите в свиток Road Parameters и в поле Heightmap щелкните по кнопке Align Height Map. Программа автоматически выровняет местность, через которую проходит дорога, — сгладит резко выраженные поверхности, ликвидирует горные цепи и низменности (овраги, ухабы, ущелья и т.д.).
Пример дороги, созданной нами в редакторе за 2 минуты.
Итак, дорога готова для движения транспорта. Последние штрихи — осталось нанести текстуры на заготовку. Выделите дорогу на сцене щелчком левой клавиши мышки. Затем выберите пункт меню View/Open View Pane/Material Editor. Откроется окно редактора материалов. На панели директорий и файлов в левой части подпрограммы выберите любую текстуру из каталога Materials/terrain/roads, например, road_concrete_one_stripe. Можно поэкспериментировать с настройкой параметров текстуры — изменить степень свечения (характеристика Glow Amount), применить к изображению один из эффектов постобработки (атрибут Post Effect Type), тип поверхности (параметр Surface Type) или, скажем, задать уровень прозрачности картинки (Opacity).
Чтобы присвоить выбранный материал дороге, кликните по кнопке Assign Material to Selection на панели инструментов в верхней части окна Material Editor (первая по счету). Если вы все сделали правильно, увидите, как дорога покроется текстурой с одной сплошной разделительной полосой.
Чтобы подправить расположение контрольных отметок дороги на карте, выделите любую в окне перспективы, после чего на панели RollupBar в свитке Road Parameters щелкните по кнопке Edit. Активируйте режим Select and Move на панели инструментов, кликните левой кнопкой мышки по одной из «дорожных» отметок (она подсветится) и передвиньте объект по одной из осей.
Запаситесь терпением (процесс небыстрый) и обозначьте на карте трассы, тропинки и дороги. Закончив, протестируйте уровень в игре (Ctrl + G).
НАКЛАДНЫЕ КАРТИНКИ
Чтобы украсить и повысить детализацию уровня, добиться плавных текстурных переходов между объектами, надо покрыть их специальные 2D-артами, которые размещаются поверх основного текстурного слоя.
Добавляем на карту «накладные» картинки.
Поучимся добавлять элементы данного типа на карту. Прежде всего, щелкните по кнопке Follow Terrain на панели инструментов, чтобы все размещаемые нами элементы не висели в воздухе, а прилегали к ландшафту. На панели RollupBar перейдите на закладку Objects. В поле объектов щелкните по кнопке Misc и выберите из списка Object Type строку Decal. Перейдите в окно 3D-вида и щелкните левой кнопкой мышки по тому участку на уровне, куда хотите добавить объект.
На данный момент «накладная» картинка представляет собой невзрачную серую плоскость. Чтобы применить материал к созданной заготовке, на панели в правой части редактора загляните в свиток Decal и щелкните по кнопке напротив комментария MTL. В открывшемся окне редактора материалов выберите произвольную текстуру из каталога \decals, скажем, blood_splat10, и кликните по кнопке Assign Material To Selection на панели инструментов в верхней части окна Material Editor, дабы закрепить материал за объектом.
Для изменения свойств добавленной на уровень «накладной» картинки выделите ее и модифицируйте характеристики в поле Decal Params на панели Rollup Bar. Рассмотрим предназначение основных атрибутов из данного свитка. Параметр Projection Type определяет способ проецирования изображения. Данная характеристика может принимать любое целое значение в диапазоне от 0 до 5 (1 — текстура будет спроецирована на поверхность любого объекта, 2 — непосредственно на ландшафт уровня, 3 — комбинация первого и второго типов проецирования, при использовании данного метода арт будет спроецирован частично на ландшафт, а частично — на заданный объект). Характеристика ViewDistRatio определяет дистанцию прорисовки элемента, то есть расстояние, на котором игрок будет видеть данную текстуру.
Перемещение, поворот, масштабирование «накладных» картинок производится в специальном режиме Reorientate (переориентация). Для его активации на панели RollupBar в правой части редактора перейдите в свиток Decal и щелкните по кнопке Reorientate. Чтобы изменить местоположение арта на карте, щелкните по нему левой кнопкой мышки, зажмите клавишу Ctrl и передвиньте мышь. Для закрепления новой позиции элемента нажмите левую кнопку мышки. Дабы повернуть картинку на определенный угол, зажмите клавиши Ctrl+Alt и перетащите мышь на новое место. Масштабируется изображение при помощи движения мыши с зажатой клавишей Alt на клавиатуре.
СИСТЕМЫ РЕК
Практически во всех оригинальных уровнях из Crysis можно встретить не только океаны, моря и озера, но и реки. Почему бы и нам не обозначить на карте пару-тройку небольших бурных речушек? В этом нам поможет инструмент River.
На панели RollupBar в правой части редактора перейдите на закладку Objects и в свитке Objects нажмите кнопку Misc. Выберите из списка Object Type элемент типа River (река). Перейдите в окно перспективы и обозначьте щелчками левой кнопки мышки контрольные точки, по которым пройдет русло реки. Чтобы завершить создание новой речки, кликните дважды левой кнопкой мышки по карте.
Теперь нужно сформировать русло. Как и при создании дорог, вы можете решить проблему двумя способами — вручную, используя терраформеры, или же автоматически, с помощью инструмента Align Height Map. Мы сгенерируем углубление для реки программно. Выделите реку на уровне, после чего в свитке River Params на панели в правой части Sandbox 2 присвойте атрибуту Width (ширина реки) значение 20. Затем проследуйте в свиток River Parameters и в поле Heightmap щелкните по кнопке Align Height Map.
Осталось задать нашей реке специальный «речной» материал. Выделите русло в окне перспективы и щелкните по клавише M для вызова редактора материалов. В открывшемся окне выберите произвольную запись из каталога Materials/Ocean/, которая содержит ключевое слово river — например, river_village, — и кликните по кнопке Assign Material to Selection на панели в верхней части редактора материалов. Для придания пущей реалистичности реке поэкспериментируйте с настройкой атрибутов из свитка River Params — например, измените ширину русла и бордюра (параметры Width и Border Width), глубину (характеристика Depth), скорость течения воды (атрибут Speed).
Разработчики рекомендуют задавать этим параметрам следующие значения: River Params. Width = 30, BorderWidth = 8, StepSize = 6, ViewDistRatio = 100, TileLength = 4, Depth = 10, Speed = 0.5, FogDensity = 0.5, FogColor = 61,86,91, FogColorMultiplier = 0.1, UScale = 0.05, VScale = 0.2.
МОДЕЛИРОВАНИЕ В SANDBOX 2
В Sandbox 2 можно моделировать несложные объекты. А вот персонажей и транспортные средства придется создавать в «Максе».
Sandbox 2 настолько универсальный редактор, что в нем можно не только создавать новые уровни, но и заниматься моделированием объектов. То есть чтобы добавить в игру, допустим, новый автомобиль или кокосовую пальму, совсем не обязательно прибегать к помощи «Макса». В Sandbox 2 можно конструировать модельки зданий, мостов, водонапорных и сторожевых вышек, терминалов, заборов, укреплений, растительности и других объектов не слишком сложной формы. Для моделирования персонажей и инопланетных субстанций редактор, увы, не годится. Полученные с помощью Sandbox 2 3D-формы никто не мешает сохранить на винчестере в формате OBJ, понятном большинству современных редакторов 3D-контента.
Создание любых конструкций в Sandbox 2 выполняется на базе стандартных примитивов — кубов, сфер, цилиндров и конусов. Попрактикуемся в добавлении простейших геометрических тел на сцену. На панели RollupBar перейдите на закладку Objects и в поле Objects кликните по кнопке Solid, чтобы перейти в режим моделирования. В свитке Create Brush Parameters выберите любой примитив из списка (Box — куб, Cone — конус, Sphere — сфера, Shape — форма), а в поле напротив комментария Num Sides задайте произвольное число граней объекта, например, 4. Затем перейдите в окно 3D-вида, щелкните левой кнопкой мышки по тому месту на уровне, куда хотите поместить объект, и, не отпуская ее, установите нужную длину и ширину конструкции.
Закончив, отпустите левую клавишу мыши — изменения сохранятся. Для определения высоты элемента передвиньте мышь вверх или вниз. Зафиксировать положение и габариты каркаса (завершить формирование примитива) можно нажатием левой клавиши мышки. Перемещение, поворот и масштабирование новых моделей осуществляется так же, как и в случае с типовыми игровыми объектами.
Вот она — полная невесомость. Герой демонстрирует чудеса левитации.
Переходим к модифицированию простейших объектов. Выделите примитив в окне перспективы, после чего на панели в правой части редактора в свитке Solid Parameters щелкните по кнопке Editing Mode для активации режима редактировании конструкции. Всего в Sandbox 2 предусмотрено 4 режима работы с трехмерными формами — Vertex, Edge, Face, Polygon. Первый из них (Vertex) позволяет модифицировать объекты на уровне вершин — передвигать/удалять вершины. Второй — Edge — служит для редактирования ребер (краев) модели, третий и четвертый режимы (Face и Polygon) нацелены на модифицирование полигонов, из которых состоит элемент.
Рассмотрим действие инструментов Vertex и Polygon более подробно. Для начала давайте поучимся перетаскивать отдельно взятые вершинки solid-объектов. Выделите подопытную модель в окне 3D-вида и перейдите в режим редактирования. Далее в свитке Selection Type выберите пункт Vertex. После этого снова перейдите в окно 3D-вида и кликните левой клавишей мышки по любой вершинке объекта. Появится индикатор перемещения. Чтобы передвинуть вершину по одной из осей (абсцисс — X, ординат — Y или аппликат — Z), наведите курсор на нужную ось и переместите манипулятор с зажатой левой кнопкой на новое место. Если вы хотите выбрать две и более вершин модели одновременно, зажмите клавишу Ctrl на клавиатуре, после чего поочередно выделите нужные точки конструкции. Редактирование полигонов объекта (режим Polygon) осуществляется аналогичным образом.
Для текстурирования модели выполните следующие действия. Выделите созданную модель в окне 3D-вида. Затем вызовите редактор материалов (горячая клавиша M на клавиатуре). В появившемся окне выберите произвольную текстуру из списка, например, Materials/alien_level_material/generic_surfaces/generic_b и щелкните по кнопке Assign Material to Selection на панели в верхней части формы Material Editor.
Для экспорта созданной модели в файл формата OBJ выделите ее в окне перспективы и выполните команду File/Export Selected Geometry to .OBJ (чтобы выделить группу solid-конструкций, зажмите клавишу Shift). В открывшемся диалоговом окне перейдите в каталог, куда хотите сохранить модель, и нажмите кнопку Сохранить.
МИНИ-КАРТА
Ландшафт готов, декорации на месте, про дороги тоже не забыли. Следующий этап работы — создание мини-карты уровня (радара, по которому нам приходится ориентироваться во время игры). Для реализации задуманного нам понадобится редактор уровней Sandbox 2 и «Блокнот» (для правки некоторых параметров).
На панели RollupBar переместитесь во вкладку Terrain (вторая по счету) и в свитке Terrain щелкните по кнопке Minimap, чтобы включить инструмент для автоматической генерации мини-карты. Вы увидите, что на сцене появится зеленая рамка, символизирующая границы радара, а также небольшой синий прямоугольник. Ухватитесь за синюю рамку левой кнопкой мышки, перетащите ее в центр уровня и щелкните по кнопке Use New Mini Map Area в свитке Mini Map на панели RollupBar.
В поле Minimap Properties свитка Mini Map измените значение атрибута Resolution на 2048. Эта характеристика отвечает за разрешение картинки. Поменяйте высоту камеры. Для этого присвойте параметру Camera Height из свитка Mini Map значение 400. Теперь загляните в директорию \Game\ScreenShots\Map. Там вы обнаружите два файла — изображение радара и XML-документ, описывающий точные координаты мини-карты (информация из данного файла передается непосредственно движку и используется для корректного отображения местоположения игрока на радаре). Переименуйте XML-файл в соответствии с названием вашей карты (название должно соответствовать имени вашего уровня). Затем скопируйте файлы мини-карты из каталога \Map в папку со своим уровнем. Снова откройте XML-файл в «Блокноте». Вживите метаконструкцию <MetaData> в начало документа, а </MetaData> — в конец текстовика. Перед тегом </MetaData> впишите следующий
Код:
<LoadingScreens screen1= "loading.dds" />
<HeaderText text= "Level_Name" />
<DescriptionText text= "" />
<Gamerules Level_Name» ="SinglePlayer" />
</MetaData>
]<HeaderText text= "Level_Name" />
<DescriptionText text= "" />
<Gamerules Level_Name» ="SinglePlayer" />
</MetaData>
Где Level_Name — название вашей карты, а loading.dds — имя картинки формата DDS, которая отображается во время загрузки уровня. Сохраните изменения и закройте «Блокнот».
ЗЕМЛЯ В ИЛЛЮМИНАТОРЕ
Sandbox 2 позволяет создавать гравитационные зоны — области, где земное притяжение как таковое отсутствует. Это позволяет коренным образом изменить геймплей. Парить в воздухе и отстреливать все живое — ни с чем несравнимое удовольствие. В игре ощутить полную невесомость можно лишь в эпизоде Core, где главный герой проникает внутрь инопланетного корабля, но нам ничто не мешает добавить подобные зоны в любую точку игрового мира.
Чтобы сформировать на уровне новую гравитационную зону, проделайте следующие действия. На панели RollupBar перейдите на закладку Objects и в свитке Object Type щелкните по кнопке Entity. В свитке Browser загляните в каталог Physics, выделите и перетащите на сцену один из двух физических объектов — GravityBox (гравитационный бокс) или GravitySphere (гравитационная сфера). Бокс удобнее всего использовать в замкнутых игровых локациях, а сферу — на открытых пространствах и уровнях со сложной архитектурой.
Обратите внимание, что и бокс, и сфера невидимы, то есть обнаружить их на карте во время игры не получится. Буквально несколько слов о гравитационной сфере. Все параметры объекта сосредоточены в блоке Entity Params на панели в правой части редактора. Основные из них — Damping (демпфирование, определяет степень подавления колебаний) и Radius (данная характеристика задает радиус гравитационной зоны).
Но это еще не все. Другой местный аттракцион — гравитационные тоннели. В оригинальной игре опять же присутствуют лишь на уровне Core. Очутившись внутри такого объекта, наш герой под действием сил гравитации словно пуля проносится по проходу, параллельно истребляя чужих.
Хотите сделать что-нибудь подобное? Не проблема! Для создания гравитационного потока в Sandbox 2 на панели RollupBar снова перейдите на вкладку Objects и кликните по кнопке Misc. Выберите из списка элемент GravityVolume. Затем перейдите в окно 3D-вида и щелкните левой кнопкой мышки по тому месту на карте, куда хотите поместить объект. Загляните в свиток GravityVolume Properties и измените значения параметров Radius (радиус гравитационного потока) и Gravity (сила гравитации, разработчики рекомендуют ставить здесь 10). Закончив правку параметров, добавьте на сцену несколько спецэффектов типа Alien_Environment.tunnel_wind.light_tunnel_wind.
ОСВЕЩЕНИЕ
Приступаем к заключительному этапу доведения карты до ума — настройке параметров освещения. Первым делом изменим значение освещенности ландшафта. Выберите пункт меню Terrain/Lighting. На передний план выйдет окно, где производится регулировка освещенности игровой территории. Среди всего многообразия атрибутов нас интересуют только две характеристики — Sun Direction (map orientation) и NorthPole...Equator...SouthPole. Они определяют направление солнечного света. Присвойте атрибутам разные значения, перемещая ползунки. Обратите внимание, что все изменения наглядно отображаются на картинке (схематический вид уровня сверху) в поле Terrain preview with sun path.
Вкратце об остальных параметрах. Характеристики Dawn Time и Dawn Duration из поля Moon/Sun Shadow Transition (Advanced) определяют время заката солнца и захода луны (время восхода определяется редактором автоматически); Dusk Time — время наступления сумрака, а Dusk Duration — его продолжительность. Закончив редактирование характеристик, нажмите кнопку Ok, чтобы сохранить изменения и закрыть окно.
С настройкой параметров освещенности ландшафта разобрались. Движемся дальше и приступаем к правке атрибутов из гигантского блока Time of Day. Выполните команду Terrain\Time Of Day — откроется окно практически со всеми параметрами освещения: цветом солнца, тумана, облаков и небосвода и так далее. В левой части формы располагаются панели задач (Time of Day Tasks и Update Tasks) и блок Current Time (текущее время суток). Центральную область оккупировали различные графики. Изменяя на них положение контрольных отметок, вы можете добиться очень интересных результатов. В правой части окна прописались все те же самые параметры, что и в центре подпрограммы, но в цифровой форме (название атрибута — значение).
Атрибут Sun Color отвечает за цвет солнца и солнечных лучей, Sky Color — за цвет неба, Fog Color — за цвет тумана. Характеристика Night Sky: Horizon Color определяет цвет линии горизонта, а параметр Night Sky: Zenith Color — цвет зенита. Еще один интересный атрибут — Night Sky: Star Intensity — позволяет отрегулировать интенсивность свечения звезд. Характеристики Color: saturation, Color: contrast и Color: brightness определяют общий уровень насыщенности, контрастности и яркости.
По завершении «световых» работ и общей модернизации уровня сгенерируйте текстуры поверхности. Для этого выберите пункт меню File/Generate surface texture. В открывшемся окошке установите оптимальное разрешение — например, 16384x16384 — и нажмите кнопку Ok.
Экспериментируем с настройкой параметров освещения.
* * *
В двух статьях мы разобрали практически все тонкости создания уровней с открытой ландшафтной архитектурой для Crysis. Научились генерировать ландшафт, создавать новые и исправлять исходные текстурные слои, работать с объектами, строить дороги, обозначать на карте специальные гравитационные зоны и даже моделировать 3D-объекты несложной формы.
Кризисное редактирование. Часть 3
Враг в засаде
Изучение Sandbox 2, одного из самых сложных игровых 3D-редакторов современности, потихонечку подходит к концу. В предыдущих двух выпусках «Мастерской» мы научились создавать довольно сложные уровни для Crysis. Вот только носиться с автоматом наперевес по необитаемым островам, крушить здания, пинать коробки и бочки, кидаться машинами, разумеется, не дело. В сегодняшней статье мы, наконец, добавим на уровень различных персонажей: корейских солдат, мирных жителей и инопланетян.
Друзья и враги
На панели RollupBar в правой части редактора перейдите во вкладку Objects (первая по счету) и в поле Objects щелкните по кнопке Entity. В поле браузера компонентов (Browser) раскройте каталог AI и выберите из списка элемент Grunt (AI/Grunt). Чтобы поместить объект на уровень, ухватитесь за него мышкой с зажатой левой кнопкой и перетащите компонент в окно 3D-вида — на уровне появится моделька корейца.
Пока персонаж ничего не умеет — ни бегать, ни стрелять, ни патрулировать игровую территорию, — стоит как истукан, слегка переминаясь с ноги на ногу. Чтобы заставить NPC перемещаться по карте, выберите пункт меню AI/Generate all navigation, редактор автоматически сгенерирует несколько маршрутов перемещения. Позаботимся об инвентаре солдата — заполним рюкзак NPC необходимым снаряжением.
Наполняем походный рюкзак корейского солдата необходимым снаряжением.
Выделите персонажа, на панели RollupBar в свитке Entity Properties щелкните по кнопке с символом многоточия напротив комментария EquipmentPack — активируется окно редактирования инвентаря. Пополнение «походного мешка» NPC производится в несколько этапов: определение базового пака вооружения, редактирование содержимого набора, правка параметров амуниции (количество боеприпасов). Первым делом выберите произвольный пак снаряжения из раскрывающегося списка напротив кнопки Add, например NK_Hurricane, компоненты из выбранного вами набора автоматически подгрузятся в блок Used Equipment.
Можно включить в список необходимые компоненты из поля Available Equipment, скажем, добавить в инвентарь какое-нибудь эффективное оружие — гаусс-винтовку, ядерное оружие или что-то еще. Для этого выделите произвольную строку из списка Available Equipment в левой части окна Equipment-Packs, например GaussRifle или TACGun, и кликните по кнопке >>. Новый элемент будет перенесен в группу используемых объектов. Чтобы исключить компонент из списка используемых орудий, выделите его в блоке Used Equipment и щелкните по кнопке <<.
Когда закончите снаряжать персонажа, отредактируйте характеристики из категории Ammunition, которые определяют количество боеприпасов. Нажмите кнопку Ok, изменения будут сохранены, и редактор инвентаря закроется. Чтобы внесенные изменения вступили в силу, перейдите в свиток Entity: Grunt на панели в правой части редактора и щелкните по кнопке Reload Script.
На поле боя
Переключитесь в режим игры (Ctrl+G) и сразитесь с созданным персонажем. Бегает? Стреляет? Дерется? Отлично. Движемся дальше, приступаем к редактированию основных параметров NPC. Выделите модельку подопытного персонажа на карте, кликнув по ней левой клавишей мышки. Затем на панели RollupBar в правой части редактора перейдите в свиток Entity Properties. В нем содержатся основные характеристики персонажа — скорость реакции, меткость, схема поведения, внешность.
Разберем предназначение основных атрибутов. Параметр Accuracy определяет точность стрельбы персонажа. Чтобы поменять уровень сложности игры, достаточно увеличить или уменьшить значение данной характеристики. Если установить данному атрибуту нулевое значение, все враги превратятся в туповатых зомби, сражаться с которыми совсем неинтересно: даже стреляя по вам в упор, они будут постоянно промахиваться. Если хотите превратить Crysis в военный симулятор типа Armed Assault, смело выкручивайте значение на максимум.
Следующая интересная настройка — Attack_range — задает расстояние, на котором NPC может атаковать главного героя и других персонажей, например инопланетян (значение указано в метрах). Активировав атрибут CannotSwim, вы лишите персонажа возможности плавать, по умолчанию эта опция отключена. Параметр Character отвечает за алгоритм поведения NPC на поле боя (модель искусственного интеллекта). Всего в Crysis таких схем около 40. Для выбора произвольной модели поведения проделайте следующие нехитрые манипуляции. Щелкните по кнопке с символом многоточия напротив комментария Character, после чего в открывшемся окне AI Characters выберите произвольную запись из списка — например, Sniper. Если вы водрузите флажок рядом с комментарием Grenades, NPC сможет применять гранаты во время боя.
Компоненты типа ForbiddenArea позволяют ограничить перемещение персонажей по некоторым участкам игровой территории.
Чтобы изменить внешность NPC, выделите строку Model в свитке Entity Properties, щелкните по кнопке с изображением папки напротив комментария Model, в открывшемся окне укажите полный путь к нужной игровой модели из каталога Game/Objects/Characters. Наибольший интерес для нас представляют следующие папки: /Alien (инопланетные субстанции и отдельно взятые конечности пришельцев), /Animals (животные — птицы, крабы, лягушки, акулы, черепахи) и /Human (люди — гражданские, бойцы американской армии, корейцы, ученые, археологи).
Атрибут NanoSuit передает игровому движку информацию о том, облачен ли NPC в защитный нанокостюм или нет. Настройка Reaction определяет скорость реакции персонажа. Характеристика Health из поля Damage (расположена в этом же свитке) отвечает за базовый уровень здоровья (энергии) NPC: чем больше значение, тем сложнее игроку разделаться с неприятелем. Если оригинальная игра показалась вам слишком сложной, понизьте значение данного параметра примерно на 1/3. Если хотите сделать персонажа бессмертным, поставьте флажок напротив пункта NoDeath (чтобы значение параметра стало True) в поле Damage. Когда отредактируете все интересующие вас параметры, загляните в свиток Entity: Grunt на панели RollupBar и щелкните по кнопке Reload Script, чтобы правки вступили в силу.
Добавление на карту инопланетных существ (проживают в директории AI/Aliens) и гражданских (AI/Civilian), а также редактирование их параметров производится аналогичным образом.
Зона отчуждения
Для блокирования передвижения NPC и транспортных средств, управляемых компьютерными соперниками, по определенным участкам ландшафта, например по возвышенностям и низменностям, применяются так называемые зоны непроходимости. Чтобы добавить их на карту, выполните следующие действия. Перейдите на закладку Objects на панели RollupBar в правой части редактора и кликните по кнопке AI. В появившемся свитке Object Type щелкните по кнопке ForbiddenArea. Активируйте окно 3D-вида и кликните по произвольному участку на карте левой кнопкой мышки, определив тем самым контрольную отметку, с которой начнется формирование замкнутой ломаной линии (в виде треугольника, прямоугольника или многогранника).
Обозначьте щелчками левой клавиши мышки еще несколько контрольных отметок, по ним пройдет ломаная линия, очерчивающая границы запретной зоны. Чтобы завершить создание компонента, щелкните дважды левой кнопкой мышки по нужному фрагменту игровой территории. Положение контрольных отметок можно изменить в любой момент, для этого перейдите в окно перспективы и щелкните по созданному объекту (зоне) левой кнопкой мышки (для выделения). Затем на панели RollupBar в правой части редактора загляните в свиток Shape Parameters и щелкните по кнопке Edit Shape, чтобы активировать режим изменения формы ломаной линии.
Положение каждого чекпойнта редактируется следующим образом. Ухватитесь за него левой кнопкой мышки и передвиньте манипулятор на новое место. При необходимости вы можете поэкспериментировать с настройками в свитке ForbiddenArea Params — к примеру, изменить ширину (Width) или высоту зоны (Height).
Маршруты движения
Для нормального перемещения NPC по уровням Crysis необходимы вейпойнты — специальные контрольные отметки, которые задают маршрут следования. Вейпойнты обязательно должны присутствовать в замкнутых локациях (пещеры, здания, инопланетные корабли), а также в местах сосредоточения большого числа различных построек. По умолчанию персонажи могут ориентироваться лишь на открытых игровых территориях — бродить по джунглям, карабкаться по горам, бегать по полям и лугам. Очутившись в любой нестандартной зоне, NPC начинает судорожно перебирать ногами, топтаться на месте, пытаться проломить препятствие головой. Причина банальна — отсутствуют алгоритмы огибания препятствий.
Поучимся добавлять одиночные вейпойнты на карту и соединять их между собой. На панели RollupBar переместитесь во вкладку Objects. В поле объектов щелкните по кнопке AI, выберите из списка Object Type компонент AIPoint и поместите его на карту. Аналогичным образом добавьте на карту еще несколько вейпойнтов, простраивая четкий маршрут движения.
Чтобы сформировать полноценную маршрутную сетку, необходимо последовательно соединить путевые узлы между собой. Связь между двумя соседними путевыми отметками налаживается следующим образом. Выделите любой вейпойнт, на панели в правой части Sandbox 2 зайдите в свиток AIPoint Parameters и щелкните по кнопке Pick. Активируйте окно 3D-вида и кликните левой клавишей мыши по второму путевому узлу. Если вы все сделаете правильно, то увидите, что между первым и вторым чекпойнтом появится тоненькая линия голубого цвета. Это и есть траектория движения для NPC.
Красные кубики — вейпойнты, а фиолетовая линия — путь следования NPC.
Для изменения типа вейпойнта проделайте следующие действия. Выделите необходимую путевую отметку, перейдите в свиток AIPoint Parameters на панели в правой части редактора и активируйте нужную опцию в поле Type, например Exit-Only. Обычно при создании маршрутных сеток применяются вейпойнты трех типов — Waypoint (стандартный путевой узел, используется для создания основной траектории движения), Hide (вейпойнты, в зоне которых могут прятаться NPC в случае опасности), Entry/Exit (точки входа/выхода, используются для того, чтобы персонажи могли забегать внутрь различных зданий).
* * *
На этом наше знакомство с Sandbox 2 завершается. Знаний, полученных вами из цикла «Кризисное редактирование», вполне достаточно, чтобы смастерить красивую мультиплеерную или сингловую карту.
К сожалению, за бортом осталась очень сложная и интересная тема — написание игровых миссий. Поэтому на DVD одного из ближайших номеров «Игромании» мы опубликуем подробную статью, где расскажем о создании триггеров, написании скриптов, а также приведем ряд конкретных примеров: научим NPC использовать транспортные средства и передвигаться к заданным отметкам на карте.
Источник: Статьи Кризисное редактирование. Часть 1 , Кризисное редактирование. Часть 2 и Кризисное редактирование. Часть 3 публикуются с разрешения редакции журнала "Игромания" .
Автор: Эдуард Клишин
Автор: Эдуард Клишин
↓ Рейтинг:
Пользовательская оценка (от 1 до 10): 10.00 Проголосовавших: 1 с 2010-12-31 11:59
↓ Комментарии:
#1 2013-02-17 19:42 |
|
А где найти это DVD с подробной статьей, которую игромания обещала? И есть ли эта статья? |
Power by Seditio |
||||