Возможности редактора очень широкие. Хотите перенести действие игры на поверхность затерянной в далеком космосе планеты Шелезяка? Задумали поселить в мире игры десятки враждующих банд? А может быть, планируете создать огромный подводный мир, путешествовать по которому можно только в акваланге или в миниатюрной подводной лодке? Все это вполне можно воплотить в жизнь. Разберем анатомию редактора, изучим основные клавиши управления, потренируемся в формировании ландшафта и текстурировании локаций, а также побеседуем о расстановке объектов на уровне и написании скриптов для игры.
Базовая концепция
Проинсталлировав Crysis на свои машины, многие модмейкеры пришли в тихий ужас: в комплекте с игрой они не обнаружили самого ценного — редактора Sandbox второй версии. Оказалось, ничего страшного не произошло — моддинг игры никто не отменял, просто разработчики не стали выкладывать редактор на диске с игрой, но вы сможете его скачать по ссылке в самом низу.
Давайте познакомимся с внутренним устройством редактора. Перейдите в каталог /Bin32 с установленным Crysis и запустите приложение Editor.exe (инструментарий нужно установить именно в папку с игрой).
Когда программа загрузится, вы увидите, что большую часть рабочей области занимает окно 3D-вида, в нем можно просматривать и редактировать уровни. Напротив этого окна располагается панель RollupBar, которая содержит основные инструменты — терраформеры, модификаторы для текстурирования ландшафта местности, размещения объектов на карте и так далее. Инструменты не просто раскиданы по поверхности бара, а сгруппированы во вкладки (структура чем-то напоминает 3DS Max). Например, все инструменты для работы с объектами (источники света, звуки, 3D-модели, камеры) проживают во вкладке Objects, терраформеры и другие модули для создания ландшафта — в Terrain, информация о слоях — в Layer Settings.
В верхней части программы находятся многочисленные каскадные меню и удобная панель инструментов. Снизу расположилась командная строка (Console) и строка состояния. Навигация в окне 3D-вида осуществляется с помощью курсорных стрелок (альтернатива — «горячки» W, S, A, D). Чтобы ускорить перемещение камеры, используйте клавишу Shift. Поворот камеры в окне 3D-вида выполняется при помощи мышки с зажатой правой кнопкой. Масштабируется картинка колесиком мышки.
Теперь несколько слов о возможностях программы. Sandbox второго поколения позволяет изменять оригинальные уровни Crysis (как одиночные, так и мультиплеерные), создавать новые карты с нуля, формировать полноценные кампании и объединять их в аддоны.
В статьях ниже мы научимся конструировать уровни для игры, а также писать довольно сложные миссии и объединять все это в полноценные кампании. А в отдельных статьях и видеоуроках поговорим о более, скажем так, тонких вещах — например, об импорте своих собственных 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) и протестируйте его в игре.
На сегодня все, остальное в "Sandbox 2 создание уровней для Crysis. урок 2."
В прошлом уроке по созданию новых уровней для 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).
В 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-файл в «Блокноте». Вживите метаконструкцию в начало документа, а — в конец текстовика. Перед тегом впишите следующий код:
Где 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-объекты несложной формы.
Если вам все было понятно и доступно, регистрируйтесь и мы продолжим укреплять ваши знания. С уважением администрация сайта http://sata.at.ua Другие контакты вы сможете увидеть на сайте.
Основная проблема состоит в том, что игра нашинкована большим количеством звуковых файлов, которые простыми средствами перевести очень сложно, зато можно пустить внахлест субтитры. Но и с ними придется повозиться — изначально даже локализованная версия Crysis не поддерживает кириллицу в модах, придется искать обходные пути и придумывать необычные способы локализации.
изучаем структуру файлов
Сразу обратим ваше внимание на очень важный факт. Для перевода нам вообще не понадобится игровой редактор — всю локализацию мы будем проводить в текстовом редакторе Notepad++, помимо него нам еще понадобятся Excel и любой ZIP-архиватор.
Большинство дополнений для Crysis, даже если они называются кампаниями, по сути представляют из себя отдельные игровые карты, иногда несколько карт объединены общим сюжетом, и совсем уж редко попадаются моды, которые изменяют игровую физику. Но в любом случае основной единицей любого дополнения остается именно карта, в ее анатомии нам в первую очередь и нужно разобраться. Все уровни располагаются в отдельных подпапках вида <корневая директория Crysis>\Game\Levels\<название карты>, и они содержат:
1. Текстовый файл <название карты>.xml является «визитной карточкой» карты.
Code
<MetaData>
<HeaderText text=«Название карты на загрузочном экране»/>
<DescriptionText text=«Описание карты на загрузочном экране»/>
</MetaData>
Поля HeaderText и DescriptionText содержат текст, отображаемый на загрузочном экране, переводить их строго обязательно. Но напрямую вписать текст не выйдет, поскольку игра не понимает кириллицу. О том, как заменить текст русскоязычным переводом, мы поговорим чуть позже.
2. Текстовый файл Objectives.xml содержит названия, описания и маркеры на карте для игровых заданий, которые отображаются в соответствующем меню игры. Структура выглядит следующим образом:
Code
<Root>
<LostIslandII>
<Objective_01 Name=«Название задания 1»
Description=«Описание задания 1»
MapLabel=«Маркер задания 1 на карте»/>
Загрузочный экран — визитная карточка любого мода, а потому надписи на нем должны быть переведены максимально точно.
Code
</LostIslandII>
</Root>
3. Игровой ZIP-архив level.pak содержит всю «активную начинку» карты. Распаковываем его в любую папку, где в числе прочих ресурсов обнаружится файл mission_mission0.xml, который представляет собой своеобразный чертеж карты, на нем указано, какие объекты располагаются на карте, каковы их свойства и как эти объекты взаимодействуют между собой. Под объектами здесь понимается все, начиная от оружия и персонажей и заканчивая заскриптованными зонами. В общем, любое изменение в mission_mission0.xml незамедлительно отражается в игре. Здесь нам придется переводить текстовые сообщения, которые появляются во время игры.
Работать с mission_mission0.xml удобнее в редакторе Notepad++, поскольку он поддерживает отображение древовидных XML-структур и быстро работает с очень большими файлами. Загружаем mission_mission0.xml и в ветке / видим список объектов (object — видимые объекты) и так называемых сущностей (entity — элементы триггерной логики игры). При этом некоторые сущности могут иметь подблок FlowGraph, описывающий связи между функциональными «кирпичиками» скриптовой последовательности. Например, воспроизвести анимационную сцену, затем музыкальную композицию, потом вывести игроку сообщение и, наконец, отдать управление другому блоку.
Для задания подобной последовательности в блоке FlowGraph имеются два списка: Nodes (узлы) и Edges (связи). В первом описываются совершаемые действия, во втором — их очередность. За вывод сообщений в игре ответственны два класса узлов: HUD:OverlayMsg и HUD:DisplayTimedDebugMessage. На практике они используются следующим образом:
Применение у этих узлов схожее, но главное их отличие в том, что только OverlayMsg можно приспособить для отображения русскоязычных сообщений. Так что все вызовы DisplayTimedDebugMessage следует заменить на OverlayMsg. Чтобы это сделать, давайте посмотрим, как они устроены. У обоих имеется идентификатор узла (Id), название класса (Class), положение на карте (pos), флаги (flags), текст сообщения (Message), координаты на экране (PosX, PosY). Если у OverlayMsg можно задать цвет текста (Color), то у DisplayTimedDebugMessage — лишь размер букв (FontSize). Кроме того, у одного время отображения на экране задается атрибутом Timeout, а у другого — DisplayTime.
Но узлы отличаются не только этим. В списке связей (Edges) указано, какой узел (nodeOut, portOut) какому (nodeIn, portIn) передает управление в скрипте. И если узел класса OverlayMsg получает управление через порт Show, то DisplayTimedDebugMessage — через Trigger. Меняя у второго класса entity название, задержку — с DisplayTime на Timeout, входной порт — с Trigger на Show, убирая FontSize и добавляя Color, мы сможем отображать на экране русскоязычное сообщение.
В Crysis изначально (то есть безо всяких лок-китов) заложена возможность переводить текст на другие языки. Все русскоязычные ресурсы (в официальной версии от «Софт Клаба») лежат в архиве <корневая директория Crysis>\Game\Localized\russian.pak. Распаковываем его и в подпапке Languages находим файл game_text_messages.xml — это XML-таблица. Открыв ее, мы для себя отмечаем три ключевых столбца: второй — строковый идентификатор сообщения, четвертый — сообщение на английском (для локализации необязательно), восемнадцатый — переведенное сообщение на русском.
Теперь, если в mission_mission0.xml вместо Text=«Some message» написать Text=«@text_id», а в game_text_messages.xml дописать строку (по столбцам) @text_id/Some message/Некоторое сообщение и сохранить это изменение в файлах game_text_messages.xml и russian.pak, то текст будет корректно отображаться. Аналогично поступаем со всеми строками, требующими перевода. Шаг 3: готовим субтитры
Наравне с файлом mission_mission0.xml важную роль в процессе локализации играет moviedata.xml, в котором собраны данные об анимационных роликах. В этих двух файлах присутствуют скриптовые команды для воспроизведения звуковых файлов диалогов. Обычно авторы англоязычных модов не забивают себе голову такими «мелочами», как многоязычность, а потому поддержку субтитров внедрять в игру придется собственноручно. Начнем с файла moviedata.xml — нас в нем интересуют строки вида:
Именно в них происходит обращение к звуковым файлам, нам нужно сделать так, чтобы при этом на экране отображались субтитры. Как и в случае с сообщениями, для этой задачи уже предусмотрено вполне конкретное решение. Помимо game_text_messages.xml, в russian.pak/Languages присутствует еще один Excel-файл dialog_recording_list.xml, в столбцах (как и выше — 2, 4, 18) которого располагаются идентификатор звукового файла, субтитры на английском (можно не переводить) и субтитры на русском. Шаг 4: идентификаторы
Что такое субтитры, и так понятно — это тексты реплик, произносимых героем в данный момент. С идентификаторами же стоит разобраться отдельно. Чтобы субтитры сообщения отображались корректно, сам звуковой файл сообщения должен быть помещен в папку russian.pak/Languages/dialog/<название карты>, и тогда в роли идентификатора выступает <название карты>/<имя файла без расширения>. Остается лишь заменить путь для обращения к звуковому файлу и включить опцию Voice в moviedata.xml:
Этапы перевода экрана с заданиями:
1. Слева отображается название миссии и ее описание, справа маркером на карте отмечено искомое место.
2. Для перевода этих текстовых ресурсов необходимо поработать с файлом Objectives.xml.
3. Заменяем строки в атрибутах Name, Description и MapLabel их идентификаторами.
4. Помещаем строковые идентификаторы в Excel-файл game_text_messages.xml, который находится в архиве Russian.pak.
5. Теперь и название, и описание, и маркер миссии полностью на русском языке.
/<имя звукового файла>.(mp2|wav)«Voice=»1»... />
Этой нехитрой заменой мы внедрили субтитры в скриптовые ролики игры. Но непродолжительный забег по уровню вскоре даст понять, что работа на этом у нас еще не окончена: оказывается, мы не учли массу внутриигровых диалогов (например, переговоры по рации), которые также требуют субтитров. Их вызов инициируется в разделах FlowGraph файла game_text_messages.xml:
Два типа узлов отвечают за проигрывание звуковых файлов, но для воспроизведения диалогов и субтитров предназначен только Sound:Dialog. Sound:PlaySoundEvent нужен для проигрывания звуков скриптов, всевозможных стуков и музыкальных вставок, но картостроители сплошь и рядом используют его не по назначению. Поскольку эти узлы отличаются, в сущности, только названиями (остальные поля либо совпадают, либо для них используются значения по умолчанию), то элементарной заменой классов мы получаем возможность подключать субтитры. Указание нового пути к звуковому файлу и значения Voice=«1» производится так же, как и в moviedata.xml. Остается внести новые субтитры в dialog_recording_list.xml и наслаждаться полностью локализованной модификацией. Шаг 4: полная автоматизация
А теперь давайте разберемся, как сделать все описанное выше всего за пару кликов. Для автоматизации процесса мы создали собственный набор утилит. Программа CRY_MAP_LOC работает по принципу drag ‘n’ drop, то есть путем перетаскивания на ее исполняемый файл директории файла с картой. Через считанные секунды в папке появится несколько новых файлов: программы install.exe, uninstall.exe, а также Excel-файлы messages.xml и dialog.xml. Звуковые файлы будут перемещены в подпапку Languages\dialog\<название мода>.
Открываем messages.xml в Excel и уже привычным способом переводим фразы. Чтобы написать перевод в dialog.xml, следует прослушать соответствующие идентификаторам перемещенные звуковые файлы. Когда все это будет сделано, запускаем файл install.exe, он интегрирует подпапку Languages и XML-файлы в игровой архив Russian.pak. Теперь игра без проблем отображает все нужные сообщения и субтитры. Когда карта больше не нужна, запускаем программу uninstall.exe — она вернет Russian.pak к первозданному виду. После этого можно просто удалить папку с модом. Если вам нужно перевести не карту, а целый мод, то в этом случае пригодится утилита CRY_MOD_LOC.
Сценарий выгрузки десанта в определённое место дислокации. Сигналом десантирования служит смерть наёмника. Как только произойдёт выгрузка десанта Vtol возращается на базу. Алгоритм:
Сообщение отредактировал marik - Суббота, 19.02.2011, 13:18
2. Согласно этому сценарию в начале миссии Наёмники погрузятся в Vtol. Сценарий пишется от одного из наёмников .
3.
Создаём жертву. Смерть этого наёмника послужит толчком к началу операции. Для этого в свойствах этого наемника выбираем:FG нажимаем кнопочку create и называем наш сценарий например “mest”. Создаём скрипт перемещения десанта
Согласно этому сценарию я убиваю жертву. Vtol вместе с уже загруженным десантом (см. 1-й скрипт) взлетает с задержкой в 5 сек. и перемещается по Tagpoint.-ам (предварительно создать Тегпоинты, соответственно их пронумеровав, например Tagpoint1, Tagpoint2 и.т.д .
Сообщение отредактировал marik - Суббота, 19.02.2011, 13:21
4.Создать на конечной точке (место высадки) Proximity Trigger ( внимание, триггер расположить немного выше тегпоинта, это делается для того чтобы триггер не перекрывал тег, если тег будет перекрыт то Vtol не будет видеть конечную точку и произойдёт сбой скрипта)
Данный скрипт описывает следующее событие: Vtol перемещается к конечной точке и попадает под воздействие Областного триггера. В результате происходит выгрузка десанта по прошествии 3-х секунд , кроме водителя и стрелка которые остаются в Vtolе. Через десять секунд даётся команда на отправку на базу. Vtol взлетает и начинает перемещение по тегпоинтам (заранее выставить теги по ходу движения Vtola, внимание теги расставлять на максимальных расстояниях, но так что бы тег был в поле видимости тэга, например если холм или гора будет перекрывать тег то Vtol его не увидит ) Еще способ увеличить зону видимости для Vtola:
В свойствах Vtola в data base выставить:
И так понятно что по скрипту TagPoint7 и есть конец маршрута Vtola
7. Создаём в непосредственной близости от TagPoint 7 ProximitiTriger.Для чего это делаем? Для того что бы Vtol по приземлению зацепил триггер и тем самым его активировал. Не забудьте в свойствах триггера выставить те же параметры что и в пункте 5. Проследить за тем что бы не происходило наложение триггера на тег.
Скрипт описывает следующее: Vtol приземляется, пересекает триггер и активирует его включается таймер и через 5 секунд водитель покидает Vtol. В автоматическом режиме двигатели глохнут. Вы не ошиблись, стрелка приходится убить, так как у него нет точки выхода. Можно вместо Kill применить Disable, тогда он просто исчезнет, но при этом дальнейшее использование Vtola будет невозможно. Поэтому сначала необходимо применить Kill а затем Desable. Для того что бы создать иллюзию того что стрелок остался жив создаём нового стрелка (т.е замену для нашего стрелка, и располагаем его в близи посадки Vtola.) . При старте он невидим для нас, но когда Vtol заходит на посадку и активирует триггер, через 10 сек. одновременно со смертью происходит активация и он становится видимым, таким образом создаётся иллюзия высадки стрелка из Vtola.