08 мая 2008
Обновлено 17.05.2023

Кризисное редактирование, часть 3. Враг в засаде

Кризисное редактирование, часть 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 сможет применять гранаты во время боя.

Чтобы изменить внешность 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.

Для изменения типа вейпойнта проделайте следующие действия. Выделите необходимую путевую отметку, перейдите в свиток AIPoint Parameters на панели в правой части редактора и активируйте нужную опцию в поле Type , например Exit-Only. Обычно при создании маршрутных сеток применяются вейпойнты трех типов — Waypoint (стандартный путевой узел, используется для создания основной траектории движения), Hide (вейпойнты, в зоне которых могут прятаться NPC в случае опасности), Entry/Exit (точки входа/выхода, используются для того, чтобы персонажи могли забегать внутрь различных зданий).

* * *

На этом наше знакомство с Sandbox 2 завершается. Знаний, полученных вами из цикла «Кризисное редактирование», вполне достаточно, чтобы смастерить красивую мультиплеерную или сингловую карту.

К сожалению, за бортом осталась очень сложная и интересная тема — написание игровых миссий. Поэтому на DVD одного из ближайших номеров «Игромании» мы опубликуем подробную статью, где расскажем о создании триггеров, написании скриптов, а также приведем ряд конкретных примеров: научим NPC использовать транспортные средства и передвигаться к заданным отметкам на карте.

Комментарии
Чтобы оставить комментарий, Войдите или Зарегистрируйтесь