Star Trek: Elite Force 2. Путь к звездам
На одной из палуб космической станции кипит бой. Штурмовой отряд Hazard Team под командованием лейтенанта Алекса Мунро прорывается к капитанской рубке через толпы чужих, наседающих со всех сторон. Монстры нападают организовано. В бою один за другим погибают соратники Мунро. И вот Алекс уже один стоит в кольце врагов, отстреливаясь короткими очередями — заканчиваются патроны. И когда почти все чужие уничтожены, а лидер Hazard Team готов возликовать, вдруг гремит мощный взрыв; он сбивает Мунро с ног. Когда Алекс поднимается, он видит перед собой гигантского монстра, который кидается на него и бьет наотмашь клешней. Мунро выхватывает из-за пояса плазменный нож, высоко подпрыгивает, включает реактивный ранец и мощным ударом клинка разваливает тело монстра на две части… Фантастика, скажете вы? Нет — это модификация для Star Trek: Elite Force 2 , которую мы сегодня создадим. Графика и звук Игра Star Trek: Elite Force 2 создананадвижке Quake III Arena. Все игровые ресурсы упакованы в pk3 -архивы в каталоге \base. Pk3 — не что иное, как обычные zip-файлы, для работы с которыми подойдет любой современный архиватор. Изучим строение основных архивов игры. Файл pak10.pk3 содержит каталог \maps с картами в виде bsp -файлов. Вы можете загружать в игре любой из этих уровней, вызвав консоль (для этого нажмите клавишу ~ ) и введя команду map X , где X — название нужной вам карты. Особого внимания заслуживают секретные арены ef2_minigame2.bsp , zoo1.bsp , secret1.bsp , secret2.bsp , secret3.bsp.
В картинной галерее игры пополнение — появилась обложка одного из последних номеров “Мании”.
В архивах pak15.pk3 и pak16.pk3 , разложенные по папкам, находятся текстуры формата dds. Для работы с графическими файлами понадобится пакет утилит DXT Tools (забирайте программу с нашего компакта ). Пользоваться программой несложно: для конвертирования dds -файла в формат tga запустите файл readdxt.exe с параметром: readdxt <имя dds-файла> (например, readdxt C:\sky.dds ). В директории с программой будет создан файл test.tga , содержащий рисунок из указанного вами dds-файла. Обратное действие (то есть перевод графических файлов из формата tga в dds) осуществляется с помощью запуска файла nvdxt.exe с параметром: nvdxt <имя tga-файла> (в нашем случае — test.tga ). Чтобы отредактировать любую текстуру, переведите ее сначала в формат tga, чтобы работать с ней в графическом редакторе (например, в Photoshop ). После преобразований переведите картинку обратно в формат dds. __ Файлы pak30.pk3 и pak31.pk3 содержат звуковые эффекты в формате wav , помещенные в директорию \sound. В pak30.pk3 вы найдете следующие подкаталоги: \chars (звуки и речь различных персонажей), \doors (звуки дверей), \environment (звуки природы). В архиве pak31.pk3 находятся папки: \footsteps (звуки шагов), \impact (звуки, раздающиеся при повреждении различных поверхностей), \menu (звуковое оформление меню), \player (звуки, издаваемые игроком), \ships (звуковые эффекты космических кораблей), \vehicles (звуки транспортных средств), \weapons (звуки всех видов вооружения). Любой звуковой эффект можно заменить на звук из другой игры. Для этого достаточно скопировать файл нового звука поверх старого, изменив имя. В архиве pak32.pk3 находятся используемые в игре музыкальные треки в виде mp3 -файлов. Чтобы поменять озвучку, достаточно скопировать в данный файл новую музыку, не забыв переименовать новые mp3-файлы Друзья и враги Архив pak20.pk3 содержит модели, скины и файлы с характеристиками различных объектов, которые рассортированы по каталогам. Изучим самые важные из них. Папка \aidata состоит из ряда подкаталогов, каждый из которых содержит файлы с параметрами персонажей. Подкаталог \Alien соответствует чужим, \Andorian — андорианам, \Attrexian — аттрексианам, \Borg — боргам, \Bugs — жукам, \Human — людям, \Klingon — клингонам, \npc — мирным персонажам (NPC), \Romulan — ромуланам, \Teammate — вашим напарникам. В каждой из этих директории хранится несколько файлов с расширением tik , в которых хранятся параметры персонажей данной расы. Любой tik-файл начинается со строки init — названия главного раздела, содержимое которого заключается в фигурные скобки. Раздел init состоит из ряда подразделов, построенных по тому же принципу. Файлы из папки \aidata имеют лишь один такой подраздел — server , где и находятся характеристики персонажа. Подраздел делится на несколько тематических блоков, названия которых выделены двумя строками черточек. В первом (Setup Actor) располагаются общие характеристики модели. Самые важные из них:
В моем моде один точный удар клинком способен сразить любого противника.
actortype — дружелюбность героя по отношению к вашему персонажу. Значение параметра берется в кавычки и определяет тип поведения субъекта. Возможные значения: enemy — враг, friend — партнер; name — имя персонажа (должно быть указано в кавычках); setsize — габариты. Значение характеристики выглядит следующим образом: “X Y Z” , где X — размеры субъекта по оси X, Y — по Y, Z — по Z. Изменяя габариты врагов, можно добиться довольно забавных результатов. Так, слишком крупные враги практически беспомощны, так как по ним несложно попасть им любого оружия. “Карлики” же, наоборот, являются очень неудобными мишенями — всадить в них пулю непросто; watchoffset — поле зрения героя. Значение параметра задается аналогично предыдущему атрибуту; mass — вес (в килограммах). Чем больше значение данного атрибута, тем медленнее передвигается и поворачивается персонаж; bloodmodel — модель кровяных капель, которые вы видите, когда персонаж получает ранение. Здесь нужно указать название tik -файла (должен находиться в каталоге \fx архива pak20.pk3 ), соответствующего данной модели; health — здоровье противника в момент его появления на свет (в условных единицах); maxbosshealth — максимальное здоровье. Данный параметр есть только у боссов (в названиях соответствующих им файлов присутствует слово boss ), так как только боссы умеют восполнять жизненную энергию; updatebosshealth — способность к регенерации ( 1 — есть, 0 — нет). Обратите внимание на то, что если значение параметра не указано, регенерировать данный персонаж не может; turnspeed — поворотливость персонажа (в условных единицах); fly — способность летать ( 1 — есть, 0 — нет); armor — тип брони (если у героя нет брони, данный атрибут у него отсутствует): AdaptiveArmor — универсальная броня, частично защищающая персонажа от всех видов атаки; ShieldArmor — броня, хорошо защищающая от большинства типов атаки, но при этом совершенно бесполезная против определенных видов оружия (они указываются в качестве значения параметра armorcommand “noprotection”); notifyothersatdeath — способность замечать тела мертвых товарищей ( 1 — есть, 0 — нет) и поднимать тревогу в случае их обнаружения (необходимо, чтобы значение параметра settendency “pullalarm” было равно 1 ); max_inactive_time — максимальное время (в секундах), которое противник будет бездействовать после того, как вы попали в его поле зрения; fov — угол обзора (в градусах); immortal — данный показатель определяет, является ли персонаж бессмертным ( 1 — да, 0 — нет). Например, бессмертны ваши помощники, которым соответствует файлы из каталога \Teammate : файл teammate_voyager_aidata.tik определяет характеристики ваших товарищей по отряду, а файл teammate_aidata.tik — временных помощников (как правило, это инопланетяне, сопровождающие вас в течение одной миссии). Можно сделать своих партнеров простыми смертными, выставив им значение этого параметра на 0. Игра станет более реалистичной и увлекательной. Как и подобает предводителю отряда, вам придется следить за действиями своих подопечных, прикрывая и защищая их при необходимости. Добавляя в файлы из папки \Teammate параметр health с определенным значением, вы можете добавить или убавить жизни подчиненным. **___
Теперь защита своих напарников от неприятеля является одной из обязанностей игрока.
Ниже располагается блокSetup Damage Modifiersс параметрами, определяющими величину урона, наносимого данным героем другим персонажам.damagemodifier actortype enemy— умножитель урона, который данный персонаж причиняет главному герою. Если число больше единицы, сила персонажа увеличивается, если меньше — уменьшается.damagemodifier actortype teammate— умножитель ущерба, наносимого напарникам главного героя.damagemodifier actortype friend— умножитель урона, наносимого мирным персонажам. В блокеSetup AIзадается поведение и вооружение субъекта. Параметры видаsettendency “X” Nопределяют, есть ли у персонажа способность X (если вместо N стоит1**, то имеет, если0, то не имеет). Ниже приведен список основных способностей:pullalarm— умение поднимать тревогу;ambush— способность организовать засаду;snipeenemy— умение издали расстреливать врагов из снайперской винтовки. В сочетании с умением ambush делает врагов очень опасными;patrol— способность к патрулированию;wander— умение прогуливаться по местности (не патрулирование);follow— умение преследовать врагов;seekenemyfromposition— способность издали замечать противников;spar— навык драться руками. Если выставить на единицу значение всех параметров для всех врагов, они значительно поумнеют, играть станет намного сложнее и интересней.**
В созданной мною модификации даже обычные борги — грозные враги.
_В этом же блоке находится несколько командgiveactorweapon**, каждая из которых “наделяет” героя тем или иным видом вооружения. В качестве значения такого параметра указывается путь кtik-файлу (он должен находиться в директории**\actorweaponsархиваpak20.pk3**), соответствующему данному оружию. Об “оружейных” tik-файлах мы поговорим чуть позже, а пока разберем еще одну настройку из блокаSetup AI—useactorweapon “X”,которая определяет основное оружие (его название стоит на месте X) персонажа. Редактирование находящихся в файле настроек, таких какhealth,maxbosshealth,updatebosshealth,turnspeed,armor,max_inactive_time,watchoffset,fov, а также параметров поведения и вооружения позволяет регулировать сложность игры. Если игра кажется вам слишком легкой, можете ее усложнить, сделав врагов более живучими, быстрыми, умными, внимательными и наделив их более мощным оружием (можно даже выдать каждому оппоненту по нескольку видов оружия). Если вы не хотите усложнять себе жизнь, а просто любите сражаться с равными по силам соперниками, будет разумным усилить своих напарников. Это позволит сохранить сложность примерно на том же уровне, сделав при этом всех игровых персонажей более разумными. Начинающие же игроки, испытывающие большие трудности при прохождении игры, могут слегка ослабить всех врагов.Оружие враговСледующая важная папка архиваpak20.pk3—\actorweapons. В ней находятся файлы с расширениемtik, содержащие базовые параметры орудий убийства, которыми пользуются ваши враги, а также временные помощники. Самые важные файлы —actorweapondata.tikиactorprojectiledata.tik, первый из которых отвечает за общие характеристики оружия, а второй — за параметры снарядов. Оба файла состоят из блоков, имена которых выделены двумя рядами знаков равенства. Каждый блок соответствует тому или иному оружию и называется соответственно. Разберем файлactorweapondata.tik, в котором прописаны атрибуты вида**$define X-Y Z**, где X — наименование оружия, Y — название показателя, Z — его значение. Набор настроек для каждого орудия убийства выглядит следующим образом.FIRE-TYPE— тип снаряда, которым стреляет данный ствол:Bullet— пуля,projectile— разрывной снаряд. У холодного оружия данная характеристика отсутствует.BULLET-RANGE— максимальное расстояние, на которое стреляет пушка (в метрах).BULLET-SPREAD— меткость оружия (в процентах).BULLET-DAMAGE— урон от данного оружия.BULLET-COUNT— количество выстрелов, которое может произвести ствол, прежде чем ему потребуется перезарядка.PROJECTILE— снаряд, которым стреляет пушка. Только для видов оружия, которые могут использовать разные патроны. Нужно указать название соответствующегоtik-файла из папки**\projectile**(в ней хранятся файлы с характеристиками снарядов для оружия, используемого врагами) архиваpak20.pk3. Довольно забавно выглядит гранатомет, стреляющий мелкой дробью.MELEE_KNOCKBACK— отдача при выстреле из оружия. Значение параметра лучше увеличить. Перейдем к файлуactorprojectiledata.tik, который содержит характеристики снарядов. В файле прописаны параметры вида**$define X-Y-Z N**, где X — название расы, представители которой пользуются оружием, заданным переменной Y, Z — наименование атрибута, N — значение. Переменные могут принимать следующие значения:PROJ-SPEED— скорость полета снаряда (м/с);DIRECT-DAMAGE— урон, наносимый здоровью жертвы данным снарядом (в условных единицах здоровья);SPLASH-DAMAGE— урон от взрыва осколков снаряда;SPLASH-RADIUS— радиус взрыва (в метрах);PROJ-EXPLOSION— тип взрыва снаряда в воздухе. Данная характеристика, равно как и следующая, служит ссылкой наtik-файл (должен лежать в каталоге**\weaponsархиваpak20.pk3**) с параметрами взрыва;PROJ-GROUND_EXPLOSION— тип взрыва данного снаряда на земле;PROJ-LIFE— время (в секундах) после выстрела, через которое детонирует снаряд;HEALTH— “здоровье” снаряда. Чем выше значение параметра, тем сложнее заставить снаряд сдетонировать, стреляя в него. В папке**\actorweaponsтакже находятсяtik**-файлы с параметрами оружия. По структуре эти файлы очень похожи на файлы с характеристиками моделей. Единственное отличие — разделanimations, определяющий анимацию стрельбы в разных режимах. Параметрinitсодержит лишь несколько переменных:name— название оружия;archetype— модель оружия;hand— рука, в которой персонаж держит данное оружие (left— левая рука,right— правая,dual— герой держит пушку обеими руками одновременно). Пора как следует вооружить врагов. Мы уже подобрали для них подходящий оружейный арсенал при редактировании файлов из папки**\aidata**. Теперь рекомендую подправить характеристики вражеского оружия, делая его более мощным. Не забудьте также про своих напарников — их вооружение тоже желательно улучшить. Бои станут более захватывающими, а сложность игры останется на прежнем уровне.Предметы первой необходимостиЗаглянем в папку**\item**, где содержатся файлы с информацией о различных полезных вещичках, с помощью которых вы можете поправить свое здоровье, улучшить состояние брони, пополнить запасы амуниции или временно получить какую-нибудь сверхспособность. Редактирование файлов из данного каталога позволит менять не только внешний вид “призов”, но и их функции. Директория содержит текстуры (файл форматаdds), модели и файлы с параметрами “призов” (файлы с расширениемtik). Модели представленыtan-файлами, работа с которыми осуществляется в3D Studio Maxс установленным плагиномmax2tanиз программного пакетаRitual’s UberTools(находится**на нашем компакте** ). Вы можете изменить внешний вид любого предмета, перерисовывая текстуры.
Все tik-файлы можно разделить на несколько групп в соответствии с типом вещей. Файлы, имеющие в своем имени приставку ammo (отделяется от остальной части названия символом _ ), соответствуют боеприпасам к различному оружию, файлы с приставкой armor — броне, ctf — флагам в режиме игры Capture the Flag, gs — разновидностям золотых космических корабликов (дают доступ к секретным миссиям), health — аптечкам, holdable — переносным предметам, mp — различным вещам в многопользовательском режиме игры, powerup — “призам”, наделяющим героя сверхъестественными способностями, rune — рунам. Чтобы увидеть любой из “призов” (а также любой предмет, имеющий модель и текстуры) в игре, достаточно активизировать читы. Запустите игру с параметром EF2.exe +set cheats 1 , загрузите ту или иную карту, вызовите консоль нажатием клавиши ~ (тильда) и введите команду spawn X , где X — путь и имя tik -файла, соответствующего объекту. Например, если вы пропишете команду spawn models\item\armor_large_shield.tik , появится большая броня. Рассмотрим структуру “призовых” tik-файлов, которые не отличаются большим размером и содержат лишь несколько параметров. Начальный раздел любого файла — setup — отвечает за внешний вид полезной вещички и содержит переменные: scale — умножитель размеров предмета. На указанное здесь число умножается реальная величина вещи (определяется характеристикой setsize ). Увеличивается, если значение больше нуля, уменьшается — если меньше; radius — радиус зоны, в пределах которой вы автоматически подбираете объект. Раздел init содержит общие характеристики “приза”. Вот их перечень. classname — категория, к которой относится “приз”. name — название вещи. amount — количественная характеристика “приза”. Для аптечки данный показатель определяет количество здоровья; для боеприпасов — число патронов; для брони — прибавку крепости; для предметов, наделяющих вас сверхъестественными способностями — продолжительность действия (в секундах). У некоторых типов “призов” данный параметр вообще не встречается. Меняя значение атрибута у основных видов полезных вещей (в первую очередь у аптечек и патронов к оружию), вы можете управлять сложностью игры. Увеличивая значение, вы делаете игру более легкой, понижая — более сложной. set_respawn_time — время (в секундах) респауна вещи после того, как вы ее собрали. Archetype — модель объекта. aliascache snd_itemspawn — звук, который раздается при появлении на свет данной вещи. Указанный звуковой файл должен иметь формат wav и находиться в архиве pak31.pk3 по адресу: **sound\weapons\powerup**. aliascache snd_pickup — звук, который раздается при подбирании игроком данного “приза”. Файл должен лежать в архиве pak31.pk3 в каталоге sound\misc. setsize — размеры объекта (задается так же, как и размеры моделей в соответствующих tik-файлах). iconName — значок со схематичным изображением предмета (используется для экрана героя — HUD). Нужно указать путь к картинке внутри архива pak0.pk3. В последнем разделе — animations — находятся параметры анимации “приза”. Арсенал В папке \weapons лежат файлы, определяющие внешний вид и характеристики орудий убийства, которыми может пользоваться игрок. В директории находится множество tik -файлов с параметрами оружия, а также подкаталоги со скинами (формат dds ) и моделями различных видов вооружения. Модели представлены файлами форматов skb и ska , работать с которыми можно в 3D Studio Max , предварительно установив на программу плагин max2skl из набора инструментов Ritual’s UberTools. Среди файлов стоит выделить projectiledata.tik , определяющий базовые параметры снарядов для всех типов оружия. Каждому оружию соответствует свой блок, имя которого выделено двумя рядами знаков равенства. Многие из встречающихся в файле показателей аналогичны таковым в файле actorprojectiledata.tik (в директории \actorweapons ), разобранном выше. С этими атрибутами вы разберетесь без труда. К ним добавились несколько настроек с буквами - MP в названии — такие параметры относятся к многопользовательскому режиму игры. Например, характеристика DIRECT-MP-DAMAGE определяет базовый урон, наносимый здоровью жертвы указанным снарядом в мультиплеере. Кроме того, в файле projectiledata.tik вы найдете параметры, в названии которых встречается сочетание -SECONDARYPROJ , обозначающее, что они соответствуют снаряду, которым стреляет оружие в альтернативном режиме. **_
В моем моде один точный удар клинком способен сразить любого противника.
_Еще один полезный файл из директории\weapons**—weapondata.tik— содержит характеристики оружия. По структуре файл похож на разобранный вышеactorweapondata.tikиз каталога**\actorweapons**, и даже настройки оформлены так же, только после названия оружия здесь следует надписьMODE1илиMODE2, определяющая, о каком режиме стрельбы идет речь (MODE1— обычном,MODE2— альтернативном). Некоторые атрибуты позаимствованы из файла actorweapondata.tik, но есть и такие параметры, которые имеются только в данном файле:AMMO-TYPE— тип снаряда, которым стреляет данный ствол (у оружия ближнего боя здесь стоит значениеNone);CLIPSIZE— количество патронов в обойме;AMMO-REQUIRED— количество патронов, расходующееся за один выстрел;REGEN-AMOUNT— параметр определяет, сколько раз может восстанавливаться заряд. Есть только у стволов, стреляющих энергетическими зарядами;REGEN-TIME— время (в секундах), за которое восстанавливается единица заряда оружия;START-AMMO— начальное количество патронов, поставляющихся с данной пушкой;FIRE-TIME— скорострельность ствола (выстрелов в минуту);VIEWSHAKE— степень колебания прицела снайперской винтовки в режиме точной стрельбы. Слегка увеличив указанное здесь число, вы делаете процесс стрельбы из снайперской винтовки более реалистичным. Остальные tik-файлы в папке можно условно разбить на четыре группы. Отличать друг от друга файлы разных групп следует по приставке в именах файлов (приставка отделяется от остальной части названия дефисом). Префиксexplosionозначает, что файл содержит характеристики взрывов снарядов,projectile— параметры самих снарядов (большинство местных атрибутов оформлено как ссылки на параметры из файлаprojectiledata.tik),viewmodel— атрибуты моделей оружия, когда главный герой держит “ствол” в руках,worldmodel— характеристики моделей оружия, когда оно лежит на земле. Производя преобразования над tik-файлами из директории \weapons, в частности, над файлами projectiledata.tik и weapondata.tik, вы можете существенно изменять игровые орудия убийства. А если к редактированию этих файлов добавить корректировку скинов и моделей оружия, можно создавать абсолютно новые виды вооружения. Я, например, заменил снайперскую винтовку подобием редимера (Redeemer) из UT2003 — пушкой со снайперским прицелом, стреляющей мощными разрывными снарядами. Но в обойме всего один снаряд.*** * *** Новые характеристики врагов, измененное оружие, перерисованная графика и обновленный звук — этого вполне достаточно для создания полноценной модификации. Но мы не будем останавливаться на достигнутом. В следующем номере “Игромании” мы разберем, как изменять текстуры игровых персонажей, перерисовывать карты, исправлять базовые настройки, а также как полностью русифицировать игру.