Call of Duty

Форум посвящен серии игр Call of Duty
Текущее время: 07-11, 13:27

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Замена солдат в Call of Duty 2
СообщениеДобавлено: 06-01, 18:59 
Здесь мы будем рассматривать замену бойцов в Call of Duty 2. На примере одной задачи.
Задача: сделать, чтобы в английских африканских миссиях воевали наши советские бойцы.
Можно, конечно, заменить, методом переименования, модели. Но вес этого мода будет значителен. Это одна из причин и этого достаточно, чтобы так не делать, как я сделал в первом своем моде. Выложить такой мод в Интернет, чтобы кому-то показать, будет несколько обременительно. Поэтому будем делать более компактный и легкий мод. Можно поработать с папкой character. Но это несколько негибко и ограничено. Хотя с файлами в этой папкой всё же немного поработать придеться.
Начнём. Как создавать файл IWD я в сотый раз рассказывать не буду. Допустим, он у нас уже создан. В нем создаём папку xmodelalias. Другими словами, из файла iw_13 вытаскиваем оную папку и запихиваем в наш мод. Открываем и удаляем все ненужное. А нужны нам будут в ней файлы body_british_africa и head_british_afrikakorp.
Открываем body_british_africa. смотрим. Видим, что для туловищ британцев назначены модели по имени character_british_afrca_body и character_british_afrca_shortsleeve_body,
что видно из строчек:
Код:
 a[0] = "xmodel/character_british_afrca_body";
   a[1] = "xmodel/character_british_afrca_shortsleeve_body";
Если открыть файл body_soviet_soldier мы там увидим подобные строки:
Код:
a[0] = "xmodel/character_soviet_overcoat";
   a[1] = "xmodel/character_soviet_overcoat2";
   a[2] = "xmodel/character_soviet_tunic";
   a[3] = "xmodel/character_soviet_coat";
Но если мы посмотрим в iw_13/xmodel, то не найдём этих файлов. Есть они только в первом Call of Duty. И по-видимому ссылка на них осталась от разработчиков, в процессе работы над игрой. Если мы откроем файл, например, russianarmy, что в папке character, мы обнаружим, что он ссылается не на body_soviet_soldier, а на body_British_Commando. Поэтому мы ориентироваться на body_soviet_soldier не будем, а просто откроем iw_13/xmodel и посмотрим, какие русские модели есть в игре.
А именно там есть:
Код:
character_russian_padded_a
character_russian_padded_b
character_russian_trench_a
character_russian_trench_b
character_russian_trench_c
character_russian_trench_d
character_russian_trench_popov
character_russian_winter_body
Восемь файлов - это неплохо для советской армии, особенно учитывая некоторое пренебрежение разработчиков к советским уровням.
"padded" - это телогрейки
"trench" - это шинели (не буквально)
Впрочем, модели можно посмотреть набором фотографий modelshots v1.1
Для ранообразия запишем все модели в наш редактируемый файл body_british_africa.
Получится вот, что:
Код:
 a[0] = "xmodel/character_russian_padded_a";
   a[1] = "xmodel/character_russian_padded_b";
   a[2] = "xmodel/character_russian_trench_a";
   a[3] = "xmodel/character_russian_trench_b";
   a[4] = "xmodel/character_russian_trench_c";
   a[5] = "xmodel/character_russian_trench_d";
   a[6] = "xmodel/character_russian_winter_body";
Не записал я только "character_russian_trench_popov".
Это шинель советского командира с поднятым воротником.
Просто нужно будет выделить командира, как-то. Не могут же все бегать в командирских шинелях.
Не забудьте продолжить цифровой ряд в квадратных скобках.
Файл готов.Теперь в Африке будут бегать советские бойцы. Но с английскими головами...
Правим файл head_british_afrikakorp. Открываем, смотрим:
Код:
 a[0] = "xmodel/head_british_chance";
   a[1] = "xmodel/head_british_paul";
   a[2] = "xmodel/head_british_joel";
   a[3] = "xmodel/head_british_boon";
   a[4] = "xmodel/head_british_wellington";
Меняем на наши "головы", ориентируясь на файлы в iw_13/xmodel.
Получаем:
Код:
 a[0] = "xmodel/head_russian_winter_alex";
   a[1] = "xmodel/head_russian_winter_datien";
   a[2] = "xmodel/head_russian_winter_popov";
   a[3] = "xmodel/head_russian_winter_jon";
   a[4] = "xmodel/head_russian_winter_volsky";
        a[5] = "xmodel/head_russian_winter_dan";
Но для разнообразия я добавил несколько британских "голов". тем более советские лица несколько дауноподобны (упрек к разработчикам).
В итоге получилось:
Код:
 a[0] = "xmodel/head_russian_winter_alex";
   a[1] = "xmodel/head_russian_winter_datien";
   a[2] = "xmodel/head_russian_winter_popov";
   a[3] = "xmodel/head_russian_winter_jon";
   a[4] = "xmodel/head_russian_winter_volsky";
        a[5] = "xmodel/head_russian_winter_dan";
   a[6] = "xmodel/head_british_boon";
   a[7] = "xmodel/head_british_chance";
   a[8] = "xmodel/head_british_harry";
   a[9] = "xmodel/head_british_joel";
Файл готов. Теперь у нас русские бойцы с английскими и советскими "головами", но в британских касках...
Вот теперь и открываем папку character, которую мы, конечно создали в нашем моде. Перетащили туда файл british_infantry_africa из iw_08/character. Открываем, правим.
Строчка
Код:
self.hatModel = "xmodel/helmet_british_afrca";
отвечает за головной убор.
Можно назначить конкретный головной убор из русского гардероба, но это будет один единственный головной убор, а хочется разнообразия.
Поэтому стираем всё в файле
british_infantry_africa
и пишем всё с нуля, не вдаваясь в подробности:
Код:
  // THIS FILE IS AUTOGENERATED, DO NOT MODIFY
main()
{
   codescripts\character::setModelFromArray(xmodelalias\body_British_Africa::main());
   codescripts\character::attachFromArray(xmodelalias\head_british_afrikakorp::main());
   self.hatModel = codescripts\character::randomElement(xmodelalias\helmets_russian::main());
   self attach(self.hatModel, "", true);
   self.voice = "british";
}

precache()
{
   codescripts\character::precacheModelArray(xmodelalias\body_British_Africa::main());
   codescripts\character::precacheModelArray(xmodelalias\head_british_afrikakorp::main());
        codescripts\character::precacheModelArray(xmodelalias\helmets_russian::main());
}

Можно прямо скопировать отсюда.
Файл готов. Но работать, пока, он не будет. Для этого нам нужно создать в нашей папке xmodelalias свой gsc файл под именем helmets_russian. На который ссылается файл
british_infantry_africa
в строчке
Код:
self.hatModel = codescripts\character::randomElement(xmodelalias\helmets_russian::main());

Проще всего взять из игры любой файл gsc, переименовав его в helmets_russian и поместить в папку xmodelalias, что в нашем моде. А открыв файл сотрем всё, что там написано и напишем следующее:

Код:
// THIS FILE IS AUTOGENERATED, DO NOT MODIFY
main()
{
   a[0] = "xmodel/helmet_russian_padded_a";
   a[1] = "xmodel/helmet_russian_padded_b";
   a[2] = "xmodel/helmet_russian_trench_a_hat";
   a[3] = "xmodel/helmet_russian_trench_c_hat";
   return a;
}

После этого всё будет работать.
Я намеренно не указал в этом файле фуражки, т.к одна или две из них плохо "сидят" на головах, особенно британских. Получается дырка наверху. А генеральскую фуражку я припас для командира. Чтобы только он был в ней.
Есть в игре индивидуальные файлы, определяющие параметры ролевой фигуры. Например, капитана Прайса. Работать с ними нужно по такому же принципу. И описывать это я не буду.
P.S. Забыл упомянуть, что файлы типа body_british_africa_low (со словом low) отвечают за статичных бойцов. Тех, которые бегут внедосягаемости игрока. Например за минным полем. Они прорисованы более схематично. всё-равно их не рассмотреть... Но я иногда люблю, отключив минное поле, побегать по недозволенным местам. По-видимому это сделано для меньшей нагрузки на видеокарту, а может по какой либо другой причине...
P.P.S. Пожалуй, я не буду описывать, как это сделать. Здесь можно взять пример такого мода. Там в России - британцы, в Африке - русские. Немцы африканские - в России, зимние - в Африке. Американские миссии оставлены без изменений. Делайте сравнительный анализ и меняйте, что нужно.
Замечу только, что все файлы советских солдат в Call of Duty 2 - именные. Массовые файлы типа russianarmy - не играбельны. То есть, не задействованы в оригинале. Поэтому их можно просто использовать для своих нужд. Как я поступил с файлом body_soviet_soldier, вписав в него свое содержимое. Персонаж Диана (это медсестра из русских миссий) выполнен одной моделью, монолитно. Ей нельзя приделать другую голову. Поэтому её можно только заменить полностью. Работать в таком случае нужно с файлом russian_medic_antanova в папке character. Не залезая в другие файлы. Просто полностью переписать файл на нужный персонаж.


Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: 15-11, 12:14 
Не в сети
Лейтенант
Аватара пользователя

Зарегистрирован: 05-11, 20:48
Сообщения: 38
У меня вопрос. У англичан в африке отвечает файл british_infantry_africa, а за англичан в нормандии british_infantry_normandy, а вот как называется такой же файл у американцев?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15-11, 18:16 
Так и называются. Со словом normandy.
Например, american_ranger_normandy.gsc, там их несколько.


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB