|
Внутренние помещения
Геометрия
Внутренности зданий в игре создаются без особых ухищрений с помощью заранее подготовленных кусочков пола, потолка, стен. Все они находятся на закладке Objects панели RollupBar под кнопкой Brush в папке glm. Чтобы не мучиться с подгонкой частей друг к другу, заранее включите на панели инструментов кнопку-список Snap to Grid, установив размер ячейки в 0.5 единиц, и кнопку Snap Angle — так объекты будут перемещаться строго с заданным промежутком и поворачиваться с шагом в 5 градусов. Также в некоторых случаях намного удобнее будет работать над “коридорными” уровнями в окнах плоских проекций (Top, Left, Front), особенно при создании зон видимости, описанных ниже.
Все модели, составляющие помещение, можно поделить на четыре типа: полы (Floors), стены (Walls), потолки (Ceilings) и “внутренние” модели, такие как колонны (Pillars), части, из которых составляются дверные проемы (Doors). Они находятся в подкаталогах с соответствующими названиями. Модели первых трех типов почти все представляют собой покрытый текстурой квадрат, видимый лишь с одной стороны. Остальные также имеют дыры — для экономии полигонов у них отсутствуют “задние” грани. Поэтому, создавая уровень, следите, чтобы на нем не появлялись окна в пустоту.
Так как внутренние помещения, скорее всего, будут спрятаны под землей, то вам понадобится создать проход в земной поверхности, иначе игрок просто не сможет пройти ни в один бункер. Для этого нужно перейти на закладку Terrain и нажать кнопку Holes. Тут все просто. Кнопка Make Hole создает дыру в земле. Remove Hole — закрывает дыру. Радиус кисти задается бегунком под кнопками. При создании подобного прохода нужно позаботиться о маскировке стыков земной поверхности и выпячивающихся из земли деталей — чтобы не было щелей и нигде не торчали “висячие” полигоны.
Зоны видимости
|
Во избежание проблем с размещением порталов лучше использовать прямоугольные зоны видимости. Смежные зоны видимости должны быть расположены вплотную друг к другу, без зазоров. Редактировать размер и форму любой зоны можно, выделив ее и щелкнув по кнопке Edit Shape на закладке Objects. Перемещаются точки левой кнопкой мыши. Добавляются также левой кнопкой при зажатом Ctrl. Удаляются двойным левым щелчком по удаляемой точке. Высоту можно настроить в параметре Height. Лучше, чтобы у зоны был некоторый запас по размерам, чтобы модели, составляющие ограничиваемую комнату, наверняка оказывались внутри этой зоны. Те объекты, которые находятся прямо на границе зоны, не всегда отображаются корректно. Пример расположения зон можно увидеть на рис. 2.
|
Текстурирование
“Кирпичики”, из которых собирается очередная секретная лаборатория, уже имеют свои текстуры. Но текстуры эти весьма однообразны, да и вариантов моделей с разными текстурами не так уж и много. Что же делать, если вы захотите сменить серые бетонные стены на сверкающие металлические или еще на что-либо?
Для начала следует открыть уже знакомое окно базы данных, обитающее в меню Window\Show Data Base View, и там перейти на закладку Materials. Как и в подробно изученной в прошлой статье закладке Entity Library, все наборы текстур (а точнее — материалов) содержатся во внешних библиотеках. Чтобы открыть библиотеку, щелкните по кнопке Load Library и выберите желаемый набор в появившемся окне. Открыв библиотеку, выделите один из приглянувшихся вам материалов. Затем в окне обзора Perspective выделите текстурируемую модель и нажмите кнопку Assign Material to Selection. Вернуть стандартную текстуру модели всегда можно кнопкой Reset Material On Selection.
К слову, текстуры вовсе неспроста называются материалами. Ведь в библиотеке содержатся не только стандартные “диффузные” текстуры. Материалы содержат и карты отражений, и рельефные текстуры, и всевозможные их сочетания. С их помощью вы можете придать любой поверхности какой угодно вид.
Освещение
Освещение — важная часть в создании подземных уровней. Это вам не залитые солнечным светом пляжи. Существует два типа освещения: динамическое (обрабатываемое в реальном времени) и статическое (предназначенное для компиляции карт освещения на статических моделях). Оба типа могут также иметь
|
По умолчанию все внутренние помещения освещены весьма ярко, что категорически неправильно — ведь солнечный свет туда не проникает, а других источников света там пока еще нет. Погрузим их в сумрак. Для этого откройте меню Game\Generate Lightmaps. В открывшемся окне (рис. 4) в поле Quality настраивается разрешение карт освещения — бегунок Texel Size настраивает масштаб пикселей, а в списке Texture Resolution вы можете выбрать разрешение текстуры. Чтобы скомпилировать карты освещения на всех статических объектах карты, надо нажать кнопку All в поле Recompile в нижней части окна. Кнопка Selection обновит карты освещения только на предварительно выделенных объектах, а кнопка Changes — лишь на объектах, подвергшихся каким-либо изменениям со времени предыдущей компиляции карт.
|
Статический источник света светит равномерно во всех направлениях. Динамическая же лампочка испускает конус света в заданном направлении (хотя, включив параметр ProjectInAllDirs, можно и их заставить светить во все стороны). Ширина этого конуса задается параметром ProjectorFov. А вот параметр ProjectorTexture позволяет изменить вид пятна света с обычного расплывчатого круга на что-нибудь более интересное (например, светлое пятно будет перечеркнуто решеткой,
|
Расставляя лампы, имейте в виду, что свет не проникает сквозь порталы между зонами видимости (рис. 5). Если статическое освещение можно продублировать, расположив по лампочке с каждой стороны портала, то с динамическим освещением такой фокус не пройдет. Поэтому не располагайте динамические светильники слишком близко к порталам.
Вейпойнты
Вейпойнты — это сеть из точек маршрутов, предназначенных для того, чтобы управляемые AI персонажи могли ориентироваться в нестандартных для них зонах. Нестандартными в Far Cry считаются все зоны, кроме земной поверхности на открытых участках уровня. То есть, все ступеньки, мосты, закрытые помещения и прочее. Так как возможность автоматической генерации вейпойнтов в редакторе не предусмотрена, все придется делать вручную.
Вейпойнты находятся в разделе AI, объект AIPoint. Они бывают четырех типов — Waypoint (стандартные точки маршрута, из которых и составляется основная сетка), HidePoint (точка, в которой персонажи прячутся в случае опасности; их следует устанавливать за углами, колоннами и т.д.), Entry Point (точка входа и выхода из нестандартной зоны; нужна, чтобы персонаж, обычно находящийся вне сетки маршрутов, мог при необходимости перейти на нее и затем выйти) и Exit Point (точка только выхода). Типы переключаются в свойствах объекта в свитке AIPoint Parameters.
Расставлять точки следует равномерной сеткой с промежутком между соседними объектами в пределах 2-4 метров. После расстановки вы должны соединить вейпойнты в единую сеть, так как персонажи могут перемещаться только между теми точками, что соединены между собой. Присоединить одну точку к другой можно, щелкнув по кнопке Pick в нижней части свитка AIPoint Parameters, а затем кликнув на присоединяемую точку. Пример расстановки вейпойнтов вы можете видеть на рис. 6. Обратите внимание, как разрежены точки на более открытом участке и как они “уплотняются” в более тесном и сложном месте.
Окружение
Возводя всевозможные над- и подземные сооружения, мы совсем не обращали внимания на окружающую среду — небо, туман, воду. А ведь и их можно настраивать по своему вкусу. Не вечно же стоять ясной и солнечной погоде? Чтобы отредактировать параметры окружения, нажмите кнопку Environment на закладке Terrain. Внизу откроется свиток с набором параметров, разделенных на несколько групп. Важнейшие из них — Fog и Shaders.
В разделе Shaders выбираются шейдеры (скрипты, содержащие команды — что и как отображать в игре), задающие внешний вид неба, воды, волн, накатывающих на берег, и отражения солнца в воде. Большинство параметров можно оставить как есть. Но если карта, которую вы создаете, — не очередной райский остров, а что-то более мрачное, то можно выбрать и более мрачное небо. За шейдер неба отвечает параметр SkyBox. Нужные шейдеры находятся в самом верху списка и имеют названия, соответствующие названиям уровней игры, на которых они используются.
В группе Fog настраивается туман, дымка, заволакивающая объекты по мере их удаления. Параметр Color позволяет выбрать цвет дымки (лучше, чтобы он совпадал с основным цветом неба). Параметр Start отвечает за расстояние между ближним краем тумана и игроком. Параметр End — за расстояние, на котором туман становится абсолютно непрозрачным. ViewDistance — устанавливает дальность обзора.
При изменении параметров окружения возникает одна существенная проблема. После того, как вы выберете новые шейдеры, параметры тумана и прочее, вам придется создать новый скрипт уровня, чтобы изменения вступили в силу. Делается это нажатием кнопки New Mission в нижней части панели инструментов. В
|
Подробнее о триггерах
В прошлой статье мы с вами уже изучили базовые принципы создания триггеров. Сегодня же рассмотрим два конкретных способа их применения — организацию автосохранений и создание транспорта, управляемого оппонентами.
Автосохранения
Так как сохраняться в любой момент в игре нельзя, необходимо добавить на уровне точки автосохранения, дабы облегчить игроку прохождение уровня. Основной объект, отвечающий за сохранение игры — GameEvent из раздела Entity, папка Others. Чтобы объект сработал, надо активировать его каким-либо триггером. Это можно сделать таким же образом,
|
Поместите GameEvent в месте предполагаемого сохранения, задав ему уникальный номер в параметре Id (это необходимо для правильной работы). Также добавьте объект AreaTrigger и создайте зону (объект Shape из раздела Areas), при входе в которую будет происходить сохранение. В свойствах зоны в список Target Entities добавьте объект AreaTrigger, щелкнув по кнопке Pick и затем по триггеру в окне обзора. В свойствах самого триггера в списке Input/Output Events выделите событие On Enter и присвойте ему объект GameEvent. Также, чтобы сохранение в данной точке
|
AI и транспорт
Враги в игре могут не только бегать с автоматами наперевес, но также ездить на всех видах транспорта, метко отстреливая гранатометом и давя колесами зазевавшихся игроков. Но чтобы NPC залезли в тот же джип, необходимо создать отдельный триггер.
Расположите где-нибудь на карте (можно даже на воде) машину (или лодку) и поставьте рядом с ней двух наемников (у транспорта и солдат при этом должен быть одинаковый номер Groupid в свойствах). Затем создайте очередной AreaTrigger с присоединенной скриптовой зоной. Сделайте так, чтобы при входе в зону триггер отправлял сигнал машине, активируя либо событие On Chase, либо On Patrol. В первом случае солдаты верхом на машине будут гоняться за игроком, как только тот появится в пределах видимости (разумеется, лишь после активации триггера). Во втором — транспортное средство отправится патрулировать территорию по заданному маршруту. Маршрут задается с помощью объектов TagPoint. Просто расставьте их в ключевых точках и задайте однотипные названия с указанием номера контрольной точки (например, patrol1, patrol2 и т.д.), чтобы выделить данный маршрут среди других. Водитель транспорта сам “подцепит” ближайший маршрут и будет неустанно колесить по нему.
* * *
На этом мы заканчиваем цикл статей о редакторе Far Cry. Хотя руководство не смогло охватить всю ширину возможностей редактора, но все ключевые моменты создания уровней были изучены подробнейшим образом. Остается пожелать вам творческих успехов и ну ооочень хорошего коннекта — иначе как же вы пошлете увесистые уровни, созданные вами, на наш адрес gamezone@igromania.ru?