Вход в систему
Информация по игре "Far Cry"
Название: Far Cry PC
Версия игры:
Жанр: Action
Мультиплеер: Интернет, локальная сеть
Разработчик: Crytek Studios
Издатель: Ubisoft
Издатель в России: Бука
Дата выхода: 23 март 2004
Сайты игры:
http://www.farcry-thegame.com
http://www.farcry-thegame.com
Объем: Шесть CD/один DVD
Минимум: CPU 1.2 GHz, 256 Mb, 64 Mb Video
Рекомендуем: CPU 1.5 GHz, 512 Mb, 128 Mb Video
Последние статьи
Самые комментируемые статьи
Острова в океане, часть 2. Шлифовка уровня для Far CryАвтор: Андрей Желтяк
Полный текст
Редактор: CryEngine Sandbox Где взять: Устанавливается вместе с игрой Возможности: 100% игровых Сложность освоения: Средняя Документация: На диске с игрой В предыдущей статье мы с вами разобрали создание самой основы уровня — ландшафта и игрового окружения. Несомненно, за истекший месяц вы успели создать карту невероятной красоты, и теперь вам не терпится сделать на ее основе шедевральный уровень с лихо закрученным сюжетом, хитроумными противниками и... ну в общем, еще с чем-нибудь таким, что игроки, забредшие на уровень, будут попеременно оказываться то в крепкой хватке Кондратия, то в цепких когтях Миокарда, а то и вовсе будут попадать под тяжелый удар Холодного Пота. Чтобы сделать эту сказку былью, нужно доработать игровое окружение: оживить его, прописать сюжетные скрипты, научить уму-разуму врагов. Как это делается — читайте в сегодняшней статье. Подробнее об объектах В прошлый раз, создавая игровое окружение, мы ограничились лишь простой расстановкой различных типов объектов на карте, не очень вдаваясь в свойства этих типов. Поэтому сейчас мы изучим их подробнее. Первые два типа, скрывающиеся под кнопками Brush (статическая геометрия) и Entity (объекты, с которыми может взаимодействовать игрок), вам уже известны по прошлой статье. Познакомимся с остальными. AI — раздел, содержащий служебные объекты, управляющие искусственным интеллектом персонажей — их поведением и перемещением. Area — с помощью объектов данного типа вы можете создавать особые зоны уровня: задымленные пространства или зоны, активирующие какие-либо скрипты. Simple Entity — упрощенный вариант Entity. Объекты данного типа не могут быть использованы игроком, но могут обладать базовыми физическими свойствами. В частности, этот тип объектов несложно использовать для создания предметов, использующих физику твердого тела. Archetype Entity —здесь находятся игровые объекты, копирующие заранее заданный прототип и все его свойства. Поначалу этот список пустует — заполнить его нужными объектами вам придется самостоятельно. Это делается в окне базы данных редактора Data Base View. Включите его, выбрав пункт меню
Окно базы данных содержит пять закладок. Entity Library — библиотека игровых объектов. Через нее можно добавить на карту любой игровой объект (оружие, технику, противника и т.д.), кроме служебных. Prefabs Library — библиотека, куда помещаются предварительно подготовленные группы объектов (например, дом с уже расставленными “обитателями” и интерьером), чтобы затем размещать их в других районах уровня или использовать при создании новой карты. Materials — библиотека материалов (схем текстурирования и освещения геометрии уровня). Материалы используются главным образом при создании закрытых помещений. Particles — библиотека систем частиц. Практически не используется, так как все системы частиц являются игровыми спецэффектами и не требуют отдельного добавления на карту. Music — библиотека игровой музыки. Соответственно, служит для создания музыкального сопровождения на вашем уровне. Сверху также находятся два меню: Library (для действий над библиотеками объектов) и Library Item (для действий над самими объектами). Рассмотрим работу с закладками на примере Entity Library (изображена на рис. 1). Остальные закладки устроены по схожему принципу, поэтому, разобравшись с первой закладкой, вы освоите и остальные, когда они понадобятся. Все объекты на закладках разбиты по классам на отдельные библиотеки. Объекты каждой библиотеки отображаются в левой части закладки (обозначено цифрой 1) в виде структурированного списка. Но поначалу там ничего нет. Чтобы открыть новую библиотеку, выберите пункт меню Library\Load Library. Все открытые библиотеки помещаются в список библиотек на панели инструментов (в верхней части закладки); чтобы активировать однажды открытую библиотеку, достаточно лишь выбрать ее из этого списка. Когда вы выделите какой-либо конкретный объект библиотеки, справа активируются еще три окна, они обозначены следующими номерами. 2. Список скриптов и методов объекта (не представляет для нас интереса). 3. Окно предварительного просмотра объектов. Также вместо него можно включить окно описания объекта с помощью кнопки Show Item Description на панели инструментов. Чтобы после этого вернуть окно просмотра на место, нажмите кнопку Play. 4. Список параметров выделенного объекта. В редакторе существует огромное число различных типов объектов, каждый из которых имеет собственный набор параметров. Поэтому далее в статье мы будем рассматривать только те параметры, которые нам понадобятся. Разумеется, вы можете не только использовать уже готовые библиотеки, но и изменять их, и создавать новые. Чтобы создать новую библиотеку, просто выберите пункт меню Library\New Library и укажите имя новой библиотеки. Новые объекты добавляются в библиотеку через меню Library Item\New. В появившемся окне выберите из списка желаемый прототип и нажмите OK. В следующем окне поле Group укажите название группы, в которую следует поместить объект. Если группа не существует, она будет создана. Если же вы хотите добавить объект в уже существующую группу, то перед добавлением просто выделите эту группу, чтобы ее имя уже было указано в соответствующем поле. Ниже, в поле Name, укажите имя объекта. Создав новые библиотеки или отредактировав старые, сохраните изменения через меню Library\Save Modified. Все открытые на закладке Entity Library библиотеки будут добавлены в список объектов, скрытый под кнопкой Archetype Entity на закладке Objects в основном окне редактора, поэтому вам необязательно постоянно держать открытым окно базы данных. Запомните: все объекты (и, конечно, заданные им параметры), добавляемые из Archetype Entity, в точности повторяют первоначальный прототип в библиотеке объектов. Изменить параметры этих объектов можно только из окна базы данных, причем при изменении параметров прототипа изменятся и соответствующие параметры его копий на карте. Поэтому в основном объекты из Archetype Entity используются как типовые — типовой “толкабельный” ящик или бочка (не задавать же уникальные физические параметры каждой бочке), типовой монстр (наделять индивидуальными чертами AI каждого мутанта также не стоит), двери на уровнях (уже работающие и не требующие создания отдельных скриптов) и так далее. Доработка экстерьера Поработаем с объектами окружения, не ограничиваясь банальной расстановкой их на карте. Для начала добавим игровому миру интерактивности и физического реализма. Попробуем соединить между собой два разных предмета, например лодку и плот, как в одном из эпизодов игры.
В свитке SimpleEntity вы можете узнать и изменить имя объекта, выбрать цвет условного обозначения данного объекта в окнах 2D-обзора, а также выбрать слой, к которому будет принадлежать выбранный объект. Ниже расположен свиток SimpleEntity Params — здесь настраиваются параметры отображения объекта в игре. Нас они пока не интересуют. Еще ниже расположен свиток SimpleEntity Properties — здесь, в разделе Physics, и находятся нужные нам свойства. Mass — масса объекта. Resting — если параметр включен (True), то объект будет находиться в состоянии покоя, пока его не толкнут. Если выключен — просчет физической модели объекта начнется сразу после начала игры. RigidBody — будучи включенным, указывает, что объект является твердым телом. Иначе объект будет просто статической моделью. Обязательно включите этот параметр. RigidBodyActive — включает/выключает просчет физической модели для данного твердого тела. Также должен быть включенным. water_density — плотность воды для данного объекта. Влияет на то, насколько хорошо объект держится на воде — как пробка (при высоких значениях), как топор (при очень низких), как топор из пробки (при средних). water_resistance — сопротивление водной среды. Чем больше значение параметра, тем более “вязкой” вода будет для данного объекта. Затем добавьте лодку (из объектов Entity, папка Vehicles, объект Boat). Все параметры можно оставить как есть.
Model — модель объекта. В случае с цепью вы можете, щелкнув по маленькой кнопочке справа в строке параметра, выбрать модели chain_swing.cgf (стандартная модель средней длины), chain_swing_short.cgf (короткая цепь) или chain_swing_longer.cgf (длинная цепь). Есть также модели кабелей, проводов, веревок, цепей с крюками — полный ассортимент. Выберите модель подходящего типа и длины. AttachTo — параметр указывает, к какому объекту должен быть присоединен нижний конец цепи. Просто скопируйте сюда имя объекта, изображающего плот. AttachToUp — этот параметр указывает, к чему надо присоединить верхний конец цепи. Если строка пуста, то конец “пристегивается” к той точке, в которой вы его разместили (даже в пустоте). Впишите сюда имя лодки. Необходимо понимать, что цепь будет присоединена к указанным объектам именно в тех точках, в которых находятся ее концы. Даже если цепь визуально будет висеть в пустоте, она все равно присоединится к объектам. Поэтому внимательно подходите к размещению всех связывающих объектов и отключайте во время их размещения просчет физики (кнопка AI/Physics). Если вы хотите, чтобы плот был привязан к лодке двумя цепями (или больше), надо всего лишь скопировать первую цепь клавишами Ctrl+C и указать ей желаемое положение. Все необходимые параметры будут уже настроены. Если вы все сделали правильно, то при включении просчета физики плот и лодка начнут весело качаться на волнах, а соединяющая их цепь провиснет между ними. Чтобы проверить эту связку в игре, расположите камеру обзора прямо над лодкой и нажмите клавиши Ctrl+G — так вы сможете поиграть прямо в редакторе. Подобным образом создаются абсолютно любые “цепные” связки — подвесные мосты, балки, висящие на крючьях мертвяки и все, на что только хватит вашей фантазии. Поработаем немного с Archetype Entity. Раз уж мы занялись интерактивностью уровня, то было бы неплохо добавить на него объектов, симулирующих физику тканей. Это сетки, занавески, флаги, паутина. Располагаются данные объекты в библиотеке Physicalized_Objects, в папке Cloth. Свойства тканей поддаются настройке в окне базы данных. Ниже приведены наиболее интересные параметры.
CollideWithPlayers —просчет столкновений с игроками. CollideWithStatics —просчет столкновений со статическими моделями. CollideWithTerrain —просчет столкновений с земной поверхностью. Accuracy — точность расчета колебаний ткани. air_resistance — сопротивление воздуха, влияющее на скорость затухания колебаний. В разделе Gravity вы также можете настроить ускорение свободного падения по всем координатным осям (в метрах в секунду). Конечно, можно создать объект с физикой тканей и через стандартные Entity, с помощью объекта TestCloth в папке Others, установив желаемую ткань в параметре Model. Но это не очень-то удобный и быстрый путь. В тех же Archetype Entity есть очень полезная библиотека — Doors_and_switches. Здесь собраны двери и всевозможные переключатели. Переключатели пока нас не интересуют, а вот двери очень пригодятся. Могу поспорить, что ваш уровень уже изрядно застроен инфраструктурой. Но все дверные проемы пусты и ничем не прикрыты. В таком случае просто добавьте на карту подходящую дверь из папки Doors. Никаких свойств настраивать не нужно — двери уже работают. Также интересна библиотека Destroyable_Objects — здесь находятся разрушаемые объекты. Если вам не терпится что-нибудь взорвать или разломать, смело добавляйте объекты этой библиотеки на карту.
Чтобы сделать уровень для одиночной игры, необходимо предусмотреть еще несколько моментов. Во-первых, нужно грамотно расставить на карте врагов, которые будут не просто стоять на месте и начинать действовать лишь завидев игрока, а изображать бурную активность. Потом положить игроку в инвентарь хоть какую-то экипировку, чтобы он начинал играть не с пустыми руками. Также нужно создать хотя бы элементарные игровые скрипты, управляющие целями миссии и событиями во время игры. Но обо всем по порядку. AI Добавление на карту персонажей, управляемых искусственным интеллектом, не отличается особой сложностью. Все эти персонажи добавляются из Archetype Entity. Обычные солдаты находятся в библиотеке Mercenaries_Library, мутанты — в Mutants_Library, вооруженные штатские — Civilians_Library. Причем солдаты распределены по ролям. Есть командиры (те, что в папке Merc_Leader), есть разведчики (Merc_Scout) и так далее. Если вы создаете целую группу солдат, их эффективность зависит в первую очередь от состава группы: без того же командира они будут просто вооруженной толпой. Для объединения персонажей в группы существует параметр groupid, доступный на закладке Objects при выделении персонажа. Причем, если при создании персонажей вы ставите их на карте близко друг к другу, то, скорее всего, они объединятся в группу автоматически.
C помощью AIAnchor можно также задавать всевозможные фоновые действия — курение, разговоры и тому подобные. Для этого не требуется изменять параметры персонажей, достаточно лишь расположить рядом с ними сам AIAnchor с соответствующим параметром (для курения это AIANCHOR_SMOKE, для разговоров — AIANCHOR_RAMDOМ_TALK). На некоторых уровнях может возникнуть необходимость ограничивать зону перемещения персонажей — чтобы, например, они не падали с возвышенностей, не тонули в воде или просто не покидали отведенную им территорию. Для этого используется объект ForbiddenArea (из раздела AI). Никаких особых настроек не
Инвентарь Чтобы заполнить рюкзак игрока снаряжением, откройте пункт меню Mission\Properties и нажмите кнопку Player-Equipment-Pack внизу. Во вновь открывшемся окне нажмите кнопку Add в верхней его части и введите имя создаваемого набора снаряжения. Его имя высветится в списке слева от кнопки. Теперь обратите свой взор на поля в нижней части окна. В поле Available Equipment находится доступное для добавления снаряжение. В поле Used Equipment — снаряжение, добавленное в текущий набор. Переносить снаряжение из одного списка в другой можно кнопками “<<“ и “>>“. Оружие — это предметы с приставкой WPN в названии. Предметы с приставкой Item — это снаряжение. Поле Ammunition служит для регулирования количества патронов и метательных снарядов (гранаты, камни и т.д.). “Положив” в рюкзак необходимое снаряжение, закройте окно, нажав OK. Набор снаряжения будет присвоен игроку. Но пока не закрывайте окно Mission Properties, оно понадобится нам при создании скриптов. Скрипты и события
Скрипты работают не сами по себе, они тесно взаимодействуют с объектами — как с игровыми (персонажи, предметы), так и со служебными (скриптовые зоны, например). При создании нового скрипта (как правило, он основан на игровом событии) нужно вписать шаблон функции. Он имеет следующий вид: function Mission:Event_MyEvent() [скриптовые команды] end Вы вольны вписать новую функцию в любом месте скрипта, но только не внутри других функций. Можно поместить ее в самом конце текста. MyEvent — это имя события, активирующего данную функцию. Сначала вы пишете это имя в скрипте, и лишь потом в редакторе появляется метка, соответствующая функции. Слова function и end выполняют роль скобок, внутри которых располагаются команды, исполняемые этой функцией. Самые важные команды, которые можно поместить внутри этих скобок, таковы.
Hud:PushObjective({}, “текст”) — добавляет новое задание (текст задания вписывается также в поле “текст”) в список заданий. Фигурные скобки не играют особой роли, но должны присутствовать обязательно. Hud:CompleteObjective(“текст”) — помечает задание выполненным, делая серым его текст. Текст в поле должен в точности совпадать с текстом завершаемого задания. Hud:FlashObjectives({}, ““) — просто стирает все задания из списка. Hud:SetRadarObjective(“имя метки”) — устанавливает метку задания на радаре. Меткой служит объект TagPoint (из одноименного раздела). В поле “имя метки” необходимо вписать имя этого объекта. Установка новой метки удаляет предыдущую метку, если она была. Hud:SetRadarObjective(“nil”) — убирает с радара метку, не создавая новой. Game:SendMessage(“StartLevelFade имя_уровня”) — запускает уровень, имя которого указано в параметре. Чтобы понять, как именно все это работает, создадим несложный скрипт. Для начала нужно создать два служебных объекта: Shape (из раздела Area) и AreaTrigger (из раздела Entity\Trigger). Затем выделите объект Shape, найдите в нижней части закладки, в поле Target Entities, кнопку Pick. Нажмите эту кнопку, а затем щелкните по объекту AreaTrigger в окне обзора — так вы свяжете эти объекты между собой. Вместе они составляют “выключатель”, запускающий скрипт при входе в обозначенную зону. Теперь внесем изменения в игровой скрипт — откройте его. Впишите следующий текст:
Hud:AddMessage(“New objective”, 15) Hud:PushObjective({}, “Kill Kenny!”) end Скрипт выводит на экран извещение о новом задании и добавляет это задание в список. Но чтобы он выполнился, он должен получить команду от игры. Сохраните скрипт, перезагрузите его, а затем обратитесь к свойствам объекта AreaTrigger. В нижней части закладки Objects, в списке Input/Output Events, выделите событие On Enter. Щелкните по кнопке Mission Handler ниже и выберите единственный пока пункт — start. Это и есть метка скриптовой функции. Работать конструкция будет так: сначала игрок входит в скриптовую зону, огороженную объектом Shape. AreaTrigger, привязанный к этой зоне, получает сообщение — “игрок вошел в зону” — и тут же пересылает его метке start, активируя тем самым скриптовую функцию. А та уже исполняет все предписанные команды. Если вы хотите, чтобы задание появилось в списке сразу после старта уровня, просто расположите скриптовую зону так, чтобы она окружала точку старта игрока. Как вы, наверное, уже поняли, Input/Output Events — это список всех возможных действий данного объекта. Реагировать на события и отправлять связанные с ними сообщения могут не только триггеры, но и многие другие объекты, например персонажи, техника. Причем сообщения могут пересылаться не только меткам скриптов, но и другим объектам, заставляя выполнить те или иные действия. В случае, когда сообщение пересылается от одного объекта другому, вы должны указать, какое именно действие должен выполнить целевой объект. Например, создайте двух персонажей. В списке действий одного из них найдите пункт On OnDeath и выделите его. Щелкните кнопку Pick и выделите второго персонажа — его имя появится под выбранным действием. Щелкните по этой строке правой кнопкой мыши и из появившегося списка выберите Die. Теперь, если первый персонаж погибнет, второй умрет вместе с ним, даже если был абсолютно невредим. Пользуясь этими простыми примерами и комбинируя их, вы можете создавать самые разные игровые события. * * * Мы получили вполне презентабельный уровень, обладающий интерактивным окружением, действующими противниками и игровыми скриптами. Но и это еще не все, ведь помимо открытых уровней вы можете строить и традиционные “коридорные”. В их создании есть свои нюансы. Ждите следующей статьи — в ней мы рассмотрим создание закрытых пространств и продолжим совершенствовать уровень. Всего обоев: 7 Статей: 17 Все статьи по игре 05.07.2009 - Far Cry 05.06.2009 - Во что играли 5, 10, 15 и 20 лет назад 01.03.2007 - Игровое редактирование19.12.2006 - Игровое редактирование02.02.2006 - Коды по "Far Cry"01.03.2005 - Лучшие игры 200422.12.2004 - Все цвета Far Cry, часть 224.11.2004 - FAQ по редактору уровней Far Cry27.10.2004 - Все цвета Far Cry, часть 130.08.2004 - Острова в океане, часть 2. Шлифовка уровня для Far Cry28.07.2004 - Острова в океане. Основы создания уровней для Far Cry. Часть 120.07.2004 - Руководство и прохождение по "Far Cry"05.07.2004 - Коды по "Far Cry" (ресурсы)09.06.2004 - Far Cry25.05.2004 - В центре внимания25.05.2004 - В центре внимания "Far Cry"06.11.2003 - Far Cry Файлов: 10 Все файлы по игре |