Великая Сила глазами очевидцев. Создание модификации на основе движка Jedi Knight 2: Jedi Outcast
Звездные войны! Star Wars Jedi Knight II: Jedi Outcast. Многие
успели пройти игру не один раз. Числу баталий с ботами и людьми на просторах Сети потерян счет. Надоел стандартный сюжет? А бот не может вам нормально противостоять даже на самом высоком уровне сложности? Пришло время создать свою собственную игру. С уникальным геймплеем, дизайном уровней и AI противников. Для изменения игры нам понадобятся: сам объект пыток (игра), "Проводник", архиватор, поддерживающий работу с zip-файлами, текстовый редактор, графический редактор, поддерживающий просмотр и редактирование jpg и tga-форматов. Можно обойтись лишь игрой и Commander-подобным файловым менеджером (я, например, использовал Windows Commander). Перед правкой каких-либо файлов лучше сделать их резервную копию. Хотите перенести действие игры в мрачное средневековье? Перековать лазерные сабли на мечи из дамасской стали? Сразиться в бою с самим Саруманом? Полетать на галактическом крейсере "Варяг"?! А возможно, у вас есть свои оригинальные идеи. Все их можно реализовать. Вооружаемся фантазией... и в путь. По широкой дороге Силы! Джедай, приди ко мне! Давайте для начала отправимся в папку
А это только начало пути создания своего мода. \Install, что находится в корневом каталоге игры. Сразу бросаются в глаза несколько wav-файлов. Эти звуки проигрываются в самом начале игры при запуске. Интересен и набор графических файлов *.tga. В них содержатся изображения кнопок в разных состояниях. Открываете любой графический редактор и перерисовываете кнопки согласно своим представлениям о красоте. Для примера — весьма забавно выглядят кнопочки с нарисованными на них смайликами. Здорово оживляет геймплей. Обратите внимание на файл product.bmp. Там лежит фоновое изображение, которое появляется при запуске (которое с мечом и названием игры!). Создавая свою модификацию, не забудьте подгрузить сюда соответствующую картинку. Загрузите в текстовый редактор файл
Setup.tab. В файле вы увидите строчки типа IDBTN_LAUNCHER_REGISTER 0x1005 Register Online. Все написанное большими буквами, а также цифры, трогать нельзя, а вот остальное... Поэкспериментировав с этим файлом, можно добиться русификации заставки игры. Маленькое замечание: символы \n осуществляют перевод каретки на новую строку. Используйте эту комбинацию, если хотите, чтобы текст печатался с новой строки. Звездный линкор "Варяг" А теперь совершим путешествие в папочку \GameData\base, которая также расположилась в корневой папке игры. На файлы jk2config.cfg и jk2mpconfig.cfg мы обращать внимания не будем. Это конфиги для сингла и мультиплеера. Также в директории может лежать файл games.log (простой лог игры). Если вы регулярно читаете "Манию", то должны знать, что разработчики просто обожают zip-архивы, запихивая в них ресурсы игр. Они просто меняют расширение у получившихся архивов. Файлы assets0.pk3, assets1.pk3, assets7.pk3 — и есть самые обыкновенные архивы. Откройте архив assets1.pk3. В нем вы увидите 3 папки. В папке sound лежат различные надиктованные тексты, которые звучат в игре. Разработчики оказались предусмотрительными и положили их туда для английского, французского, немецкого языков (соответственно — chars, chars_f, chars_d) в формате mp3. Если в ваших планах — создание полноценной модификации, то запасайтесь микрофоном и записывайте свою озвучку для брифингов. Далее просто переименовываете файлы в имена "родных" озвучек и подменяете mp3-шки. Папка strip содержит тексты, используемые в игре. В strip лежит много файлов с расширением sp. С этими файлам опять же совладает текстовый редактор. Формат файлов следующий:
VERSION 1 CONFIG W:\bin\striped.cfg ID 8 REFERENCE OBJECTIVES DESCRIPTION "the objectives... duh..." — краткое описание файла COUNT 58 — количество индексов в файле. Один индекс — это одно сообщение в игре на всех 3 доступных языках. Каждый индекс заключается в фигурные скобочки. INDEX 0 { REFERENCE KEJIM_POST_OBJ1 TEXT_LANGUAGE1 "Investigate the abandoned Imperial outpost."; — текстна английском; TEXT_LANGUAGE2 "Fouiller l'avant-poste
impйrial."; — текстна французском; TEXT_LANGUAGE3 "Verlassenen imperialen AuЯenposten untersuchen."; — немецкий. } Сам текст можно смело редактировать, тем самым переводя игру на русский. Кстати, очень интересных эффектов можно добиться, немного подправив сюжет оригинальной игры. Например, в брифинги можно вставить русскоязычные названия построек и кораблей. До пошлых шуточек, а-ля флибустьеры компьютерного мира, опускаться не стоит... Но вот звездный линкор Федерации, переименованный в "Варяга", обязательно обратит на себя внимание ваших друзей. В папке \ui лежат файлы с расширением .menu, описывающие действие игры при выборе одного из пунктов меню (какие звуки будут проигрываться, какой файл будет отображаться, и прочее). Там же есть подкаталог \assets. В нем расположились графические файлы *.tga, отвечающие за оформление интерфейса игры. Кисточки в руки, и перерисовываем меню на свой лад. Скандинавские мотивы как нельзя лучше подойдут к футуристическому миру "Звездных войн". Взмах лазерным мечом Давайте приступим к файлу assets0.pk3. Папка textures содержит огромное количество подкаталогов, а в них
очень много jpg и tga-файлов. Это не что иное, как игровые текстуры. Активируем Photoshop и перерисовываем их под свою модификацию. Хотите сделать игру про средневековье — перерисовывайте пластиковое покрытие стен в изъеденные водой и временем булыжники. С потолков пускай свешиваются не светильники, а лианы плюща. На двери накладываем текстуры дубовых досок и стальных петель. Жаль только, открываться они будут все равно раздвижением створок в стороны... И вот совершенно новая игра почти готова. И не забудьте подменить текстуры сверкающих лазерных мечей простыми дамасскими клинками (текстуры мечей лежат в assets.pk3 в папке gfx/effects/sabers/) Как изменить звуки, мы уже говорили, так что с этим проблем быть не должно. Мелодия Силы Директория music содержит музыку из игры. Треки хранятся в виде mp3-файлов. Поэтому смело вынимайте их из архива и слушайте в любом плеере. Мелодии того стоят. Кстати, под мою скандинавскую модификацию мелодии оригинальной игры ну никак не подходили. А вот Rammstein подошел как нельзя лучше. Папка \models содержит в себе модели игроков, оружия, прочих предметов. Более подробно о том, как "общаться" с этими файлами, читайте в рубрике "Мастерская" — статья
"Лицо джедая: теория и практика рисования лиц для игровых моделей". Jedi-боты Перейдем к \botfiles. Там лежит один текстовый файл и много jkb-файликов. Файл bots.txt содержит в себе информацию для игры о всех ботах. Если хотите сделать своего бота — а позже я объясню, как, — нужно добавить информацию в этот файл. Запись о каждом боте ограничивается фигурными скобками. Между фигурными скобками должны идти следующие строки: name —в кавычках указываете имя своего бота. model — имя папки, в которой лежат текстуры и модель бота. Эта папка должна находиться в \models\players. Соответственно, в архиве assets0.pk3: color1 — цвет бота по умолчанию. Обозначается цифрой. personality — путь к файлу, который описывает поведение бота. Может лежать в любом месте архива assets0.pk3. Открываем любой jkb-файл и видим, что перед нами описание бота. Хочу сразу предупредить, что размер измененного файла не должен превышать 131072 байт, размер любой группы в файле (группой называется то, что находится между фигурными скобками) не должен быть больше 8192
байт, иначе рискуете провести посмертное вскрытие игры (у меня она "упала" и больше не запускалась без переустановки). Я разберу на примере только один файл Jan.jkb, так как все остальные имеют аналогичное внутреннее устройство, боты отличаются только цифровыми значениями. В файле все, что следует после // (или находится между значками /* и */), является комментарием и игнорируется игрой. reflex —сколько времени в миллисекундах надо боту, чтобы среагировать на какое-то событие в игре. Фактически параметр может быть любым. accuracy — точность наведения прицела. Низкие значения этого параметра помогут воспитать ворошиловского стрелка. turnspeed —скорость поворота вне боя. turnspeed_combat —скорость поворота бота в битве. Можно создать эдакую "Матрицу", где каждый бот будет вращаться, как юла.
Немного литературного таланта и фантазии, и бот уже вовсю лопочет на великом русском... chatfrequency —как часто бот будет говорить в чате. camper —кемпер ли бот по своей натуре? Если 1, то да. Для тренировки — можно сделать себе на уровень несколько кемперов. Вот только злоупотреблять не стоит, иначе противника придется долго искать, бегая по уровню, в то время как боты будут методично убегать от вас. saberspecialist — может ли бот драться на лазерных мечах. Если стоит цифирь 1, то сможет. forceinfo —распределение очков силы. Далее в файле следует блок, описывающий использование ботом оружия. Напротив типа оружия указывается цифра. Чем больше цифра, тем чаще бот будет выбирать данное оружие. В самом конце файла находится группа, описывающая чат бота. В этой группе указано, что произносит бот в чате при различных обстоятельствах. Самое время проявить свой литературный талант. И хотя боты в игре далеко не "болваны", но подкорректировать все равно есть что. Ставим точность повыше, разрешаем всем ботам сражаться на мечах. Скорость и частоту поворотов тоже увеличиваем. Ну и чтобы подпитать свою злость во время бот-матча, заставляем бота выдавать в эфир обидные ругательства. Немного маникюра — и идеальный соперник готов. Кон? Фиг! В папке cfg лежат стандартные конфиги, которые игра предлагает по
умолчанию. Forsecfg содержит файлы, которые описывают стандартные распределения Силы (которые доступны из multiplayer — knight, healer...). Gfx — графические файлы для менюшек в самой игре, иконки для оружия в игре и многое другое, levelshots — скриншоты карт, которые отображаются в мультиплеере, когда выбираешь карту. В sound — звуки интерфейса, а также различные эффекты. Все это можно с легкостью изменить, подогнать под свою модификацию. Рюк-Скайвокер, Зак-Соло Мы добрались до очередной очень интересной папки — ext_data. Там лежат файлы, описывающие поведение NPC, оружие и предметы в игре. Давайте для начала разберемся с вещичками. Открываем в текстовом редакторе файл items.dat. Описание каждой вещи отделяется от другой фигурными скобками. Для каждой вещи используются следующие параметры: pickupsound —какой звук проигрывать при поднятии. Если не указано, то используется звук из sound/weapons/w_pkup.wav. itemname — внутреннее название вещи. Изменять нельзя! Даже не пытайтесь, игра может вылететь. classname — параметр, указывающий, к какому классу принадлежит оружие.
сount —количество амуниции или здоровья, получаемое при поднятии. icon —какая иконка используется в игре (напомню, что иконки хранятся в /gfx/hud). min — минимальные размеры. По умолчанию — 16-16-2. max — максимальные габариты. По умолчанию —16-16-16. pickupname —cтрока, отображаемая в инвентаре. type —тип вещи — IT_WEAPON, IT_AMMO, IT_ARMOR, IT_HEALTH. worldmodel —какую модель показывать. Интересный параметр. Можно подставить другую модель и получить весьма занятный эффект. Комбинация всех описанных выше параметров может дать любопытные результаты. Можно создать очень интересные модификации, где в качестве аптечек будут выступать лазерные мечи, а драться придется арматурой. Экспериментируйте: человеческая фантазия безгранична. С мечом на амбразуру Файл weapons.dat содержит описание оружия. Так же, как и с вещами, описание оружия отделяется друг от друга фигурными скобками. weapontype — тип оружия. weaponclass
— имя оружия. weaponmodel — модель оружия, используемая в игре. weaponicon — иконка оружия. ammotype — тип энергии, используемой оружием, чтобы стрелять (0 — никакой энергии не надо; 1 — энергия Star Fleet; 2 — энергия Alien Crystal; 3 — энергия Phaser). ammolowcount — какое количество патронов считается маленьким. flashcolor — цвет выстрела в формате (R,G,B). Можно создать мод, в котором дальнобойное оружие не будет требовать подзарядки. Но это неинтересно: дисбаланс налицо. А вот для создателя полноценной модификации со средневековым сюжетом, — о чем уже не раз говорилось, — здесь работа найдется. И мечи перерисовать. И модели подменить. И названия переиначить. firetime — минимальное время, которое должно пройти, прежде чем вы совершите следующий выстрел. altfireTime — то же самое, только для альтернативной стрельбы. firingsound — звук, используемый при стрельбе altfiringsound — звук, проигрываемый при альтернативном выстреле. energyPerShot — сколько энергии тратится на выстрел. altenergypershot — сколько энергии
потратится на альтернативный выстрел. altenergypershot — "-" альтернативный выстрел. range —дальнобойность пушки. Последний параметр лучше ставить поменьше. Тогда можно действительно почувствовать себя истинным джедаем. В файле есть множество параметров с корнем sound. Они используются для указания звуков, издаваемых оружием. В этом же файле после описания оружия идет описание патронов. При описании патронов используется только два показателя: AMMO —тип патронов. AMMOMAX —максимально возможное количество патронов, которое можно нести с собой. Если в вашей модификации будет происходить постоянная сеча на мечах — ставьте последний параметр пониже. Если же, наоборот, ваш мод подразумевает постоянные перестрелки, то вооружайтесь дальнобойным оружием, ставьте число патронов в патронташе побольше... и смело в бой! Саруман vs. Йода На сладкое — npcs.cfg. Устройство — как и во всех вышеперечисленных файлах из папки ext_data.Только этот файл имеет атрибут "только для чтения". Чтобы его редактировать, надо снять этот атрибут, а после изменения файла — на место этот самый атрибут вернуть. Учтите, что у некоторых персонажей могут отсутствовать некоторые показатели. fullname — как будут звать персонажа в игре. aggression — насколько часто атакует (изменяется от 1 (редко) до 5 (всегда)). aim — прицеливание (от 1 (плохо) до 5 (отлично)). earshot — с какого расстояния слышит выстрелы. Можно сделать врагов, обладающих очень острым слухом. visrange — параметр показывает, насколько хорошо видит на карте персонаж, с какого расстояния на карте он способен заметить вас.
evasion — как часто применяет приемы обороны (изменяется от 1 (редко) до 5 (очень часто)). hfov — угол обзора в градусах по горизонтали. vfov —угол обзора в градусах по вертикали. Только не переборщите с этими двумя показателями. Они у нас на Земле, да и в далекой, далекой галактике могут изменяться лишь от 1 до 360. intelligence — интеллект. Теперь наши враги могут стать либо болванами, либо почти гениями. Третьего не дано. Уж лучше гениями. move — часто ли двигаются в битве. Смотрите не перестарайтесь, а то будут NPC стоять, как вкопанные. Лучше увеличить параметр и тем самым усложнить себе путь к победе (изменяется от 1 (редко) до 5 (очень часто)). reactions —скорость реакции на какие-либо события в игре (изменяется от 1 (плохо) до 5 (очень хорошо)). race — раса персонажа (набор таков: human, borg, parasite, klingon, malon, hirogen, stasis, species8472, dreadnought, harvester, reaver, avatar, vulcan). playerTeam — как персонаж относится к игроку (player, enemy, neutral — думаю, тут все понятно). Почему буквально все хотят нас убить? Или наоборот? Вы настолько сильный игрок, что вам не нужны союзники? enemyTeam — отношение к врагам игрока. health — максимальное здоровье. moveType — в кавычках указываете, какой тип передвижения персонаж использует. Может, он любитель бега трусцой или просто предпочитает ходить пешком. walkSpeed — как быстро идет персонаж. runSpeed —как быстро персонаж бегает. Интересный параметр. Советую с ним поэкспериментировать. То, что есть в оригинальной игре, — это НЕ скорость истинного джедая. Поставьте у параметра циферку побольше, и вы поймете, о чем я. snd — в кавычках указывается, какую поддиректорию в sound/players использовать для озвучки. headModel — какую голову цеплять.
torsoModel — аналогично с туловищем. legsModel — как же выглядят ножки? Меняя эти три параметра, можно добиться весьма и весьма интересных эффектов. ВНИМАНИЕ! Можно создать полностью свою расу. В своей модификации я создал два гибрида. Одних назвал Йодами, других — Саруманами. И тем, и другим поставил высокие характеристики, так что противники получились достойные. Сам начал играть за Саруманов. Йоды сопротивлялись отчаянно. Но все равно пали под натиском моего СТАЛЬНОГО меча. Дамасская сталь перерубала их лазерные Эскалибуры (так я назвал их клинки), словно прутики. Йоды уворачивались, обходили с тылу, стремительно прыгали под потолок... Но все равно находили смерть на кончике моего Грейсвандира (так я назвал свой меч в интерфейсе игры).
Напомню, что здесь нужно указывать директорию из /models/players/,содержащую скин и модель. headYawRangeLeft — на сколько градусов влево можно поворачивать голову. headYawRangeRight — на сколько градусов вправо можно поворачивать голову. headPitchRangeUp — как высоко можно поднять голову вверх (в градусах). headPitchRangeDown — аналогично, только опускаем голову вниз. torsoYawRangeLeft — на сколько градусов влево может поворачиваться торс. torsoYawRangeRight — "-" вправо. torsoPitchRangeUp — "-" вверх. torsoPitchRangeDown — "-" вниз. Изменяйте параметры. Сделайте себе действительно достойных противников. Сделайте их умнее, быстрее, сильнее. Тогда игра станет действительно интересной. И когда ваши противники станут сильнее, только тогда вы сможете стать истинным джедаем и сказать: "Я познал великую Силу! Силу власти над игровым движком!" * * * На этом я заканчиваю свои рекомендации по созданию "джедаевской" — а возможно, и совсем НЕ "джедаевской" — модификации. Вы подготовлены к тотальному изменению игры. Можете русифицировать игру (или перевести ее на любой другой язык, например, на китайский), изменить баланс оружия, его вид, поведение при выстреле, поменять поведение персонажей в игре. После запаковки измененных файлов вы окажетесь в СОВЕРШЕННО НОВОЙ ИГРЕ, в неизвестной доселе галактике. Не бойтесь экспериментировать. Да пребудет с вами Сила!
1449 Прочтений • [Великая Сила глазами очевидцев. Создание модификации на основе движка Jedi Knight 2: Jedi Outcast] [19.05.2012] [Комментариев: 0]