Сичевые Свитки - Статья - Процесс внедрения анимации в M2TW
Процесс внедрения анимации в M2TW
Spoiler (expand)
Первое и самое выжное. Для создания анимационного пака для игры, нужна распакованная анимация ВСЕХ анимационных наборов из файла descr_skeleton.txt из data папки ванилы или директории мода.
Существует возможность работы модов без анимационного пака, просто с папками незапакованной анимации за место паков.
Создавать анимационный пак прийдется на ваниле, т.е. оригинальном, не дополненном Kingdoms, M2TW. Если есть мод, использующий экзешник Kingdoms и при этом размещающийся в главной data папке ванилы, а не в папке mods, то можно пробовать создавать пак через запуск экзешника Kingdoms. В общем, если через двойной щелчек по эксешнику Кингдомса при загрузки игры не выдает ошибку, а нормально загружает до меню, то все хорошо, если же у игра вылетает, тол запускайте оригинальный medieval2.exe.
Собственно при запуске игры, игра создаст паки анимации по образу и подобию descr_skeleton.txt. Существуют следующие варианты развития событий при запуске игры (не считая вышеописанного вылета из за несовместимости ванильных файлов с kingdoms.exe):
1. При запуске игры, выдает черный экран или экран загрузки, с окошечком ошибки. Причины - ошибки в EDU и прочих файлах, поэтому перед тем как редактировать descr_skeleton.txt, убедитесь, что все работает без замены анимации. Если все работало до, но вылетает теперь, ошибка допущена в descr_skeleton.txt.
2. Меню игры загрузилось, выбрав пользовательское сражение и загружая его, происходит вылет, значит, допущена ошибка в descr_skeleton.txt.
3. Все работает, меню, битва и сам процесс битвы работают.
Первое и самое выжное. Для создания анимационного пака для игры, нужна распакованная анимация ВСЕХ анимационных наборов из файла descr_skeleton.txt из data папки ванилы или директории мода.
Существует возможность работы модов без анимационного пака, просто с папками незапакованной анимации за место паков.
Создавать анимационный пак прийдется на ваниле, т.е. оригинальном, не дополненном Kingdoms, M2TW. Если есть мод, использующий экзешник Kingdoms и при этом размещающийся в главной data папке ванилы, а не в папке mods, то можно пробовать создавать пак через запуск экзешника Kingdoms. В общем, если через двойной щелчек по эксешнику Кингдомса при загрузки игры не выдает ошибку, а нормально загружает до меню, то все хорошо, если же у игра вылетает, тол запускайте оригинальный medieval2.exe.
Собственно при запуске игры, игра создаст паки анимации по образу и подобию descr_skeleton.txt. Существуют следующие варианты развития событий при запуске игры (не считая вышеописанного вылета из за несовместимости ванильных файлов с kingdoms.exe):
1. При запуске игры, выдает черный экран или экран загрузки, с окошечком ошибки. Причины - ошибки в EDU и прочих файлах, поэтому перед тем как редактировать descr_skeleton.txt, убедитесь, что все работает без замены анимации. Если все работало до, но вылетает теперь, ошибка допущена в descr_skeleton.txt.
2. Меню игры загрузилось, выбрав пользовательское сражение и загружая его, происходит вылет, значит, допущена ошибка в descr_skeleton.txt.
3. Все работает, меню, битва и сам процесс битвы работают.
Принцип работы с descr_skeleton.txt
Spoiler (expand)
Принцип работы с descr_skeleton.txt заключается в следующем:
Шаг 1. Делаете анимацию.
Шаг 2. Открываете descr_skeleton.txt, выбираете анимацию, которой собираетесь добавить супер-удар, допустим, анимация пикенера:
anim eager_attack_centre_overhead_e_stab_success data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.cas -fr -id:0.129,0.970,3.954 -if:14 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.evt
anim eager_attack_centre_overhead_e_stab_fail data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_fail.cas -fr
anim eager_attack_centre_lo_a_stab_success data/animations/Warhammer_pike&halberd/W_Pike_at_lo_a_stab_success.cas -fr -id:0.276,0.305,4.409 -if:27 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_success.evt
anim eager_attack_centre_lo_a_stab_fail data/animations/Warhammer_pike&halberd/W_Pike_at_lo_a_stab_fail.cas -fr -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_fail.evt
Вставляем после последней анимации атаки (желательно все держать в кучках, чтобы не было все разбросано):
Итак, готово, сохраняем.
Но, разбирем подробнее. Желтым обозначены координаты нанесения удара, ИМЕННО она регулирует дальность, высоту и направление удара, это для математических расчетов, ваша же анимация может хоть воина вверх подбросить, главное поставить цифры. Далее, синим обозначен кадр, последний кадр перед самим ударом в анимации, т.е чисто визуально регулирует, чтобы защищающийся успел вовремя проиграть анимацию защиты. Возможно, играет роль и в обсчетах механики. Красным обозначен путь к текстовому файлу, в котором описано: какие звуки проиграть при анимации, когда и как долго.
Шаг 3. Запускаем M2TW, загружаем битву и того юнита, у которого есть эта анимация. Смотрим бой и ждем момента проигрывания анимации, а он рано или поздно будет.
ВНИМАНИЕ, после каждого редактирования descr_skeleton.txt, удаляйте в data\animations\:
pack.dat
pack.idx
skeletons.dat
skeletons.idx
Рассмотрим подробнее саму строку:
anim - начало каждой строки, в которой будет обозначена анимация, без этого игра не поймет что это анимация и ее надо использовать
eager_attack_centre_overhead_e_stab_success - команда анимации, об этом мы позже еще поговорим, пока же скажу, что именно команда определяет характер анимации, бег, защита, бездействие и т.п.
data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.cas - полный путь к анимации
-fr -id:0.129,0.970,3.954 - координаты удара в момент...
-if:14 - ...в момент определяемый этой величиной
-evt:data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.evt - полный путь к текстовому файлу звуков
На этом примере - -fr -id:0.276,0.305,4.200
4.200 - дальность
0.305 - высота
0.276 - ширина
Все это прекрастно просматривается в MilkShape3D, если загрузить туда анимацию и на пике удара замерит окончание или около оружия, но естьодин ньюанс. Измерение НУЖНО вести от кости pelvis, потому и высота такая невысокая, иначе ваши воины буду бить только всадников в лучшем случае. Минусовые величины тоже возможны.
Также для того чтобы игра заработала без запаковывания анимации, нужно прописать в .CFG-файл следующие строки:
Принцип работы с descr_skeleton.txt заключается в следующем:
Шаг 1. Делаете анимацию.
Шаг 2. Открываете descr_skeleton.txt, выбираете анимацию, которой собираетесь добавить супер-удар, допустим, анимация пикенера:
anim eager_attack_centre_overhead_e_stab_success data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.cas -fr -id:0.129,0.970,3.954 -if:14 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.evt
anim eager_attack_centre_overhead_e_stab_fail data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_fail.cas -fr
anim eager_attack_centre_lo_a_stab_success data/animations/Warhammer_pike&halberd/W_Pike_at_lo_a_stab_success.cas -fr -id:0.276,0.305,4.409 -if:27 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_success.evt
anim eager_attack_centre_lo_a_stab_fail data/animations/Warhammer_pike&halberd/W_Pike_at_lo_a_stab_fail.cas -fr -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_fail.evt
Вставляем после последней анимации атаки (желательно все держать в кучках, чтобы не было все разбросано):
anim eager_attack_centre_overhead_e_stab_success data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.cas -fr -id:0.129,0.970,3.954 -if:14 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.evt anim eager_attack_centre_overhead_e_stab_fail data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_fail.cas -fr anim eager_attack_centre_lo_a_stab_success data/animations/Warhammer_pike&halberd/W_Pike_at_lo_a_stab_success.cas -fr -id:0.276,0.305,4.409 -if:27 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_success.evt anim eager_attack_centre_lo_a_stab_fail data/animations/Warhammer_pike&halberd/W_Pike_at_lo_a_stab_fail.cas -fr -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_fail.evt anim eager_attack_centre_mid_a_stab_success data/animations/SUPERPOWER/PWNED.cas -fr -id:0.276,0.305,4.200 -if:17 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_success.evt anim eager_attack_centre_mid_a_stab_fail data/animations/SUPERPOWER/EPIC_FAIL!!!!1111.cas -fr -evt:data/animations/MTW2_Pike/MTW2_Pike_at_mid_e_stab_fail.evt
Итак, готово, сохраняем.
Но, разбирем подробнее. Желтым обозначены координаты нанесения удара, ИМЕННО она регулирует дальность, высоту и направление удара, это для математических расчетов, ваша же анимация может хоть воина вверх подбросить, главное поставить цифры. Далее, синим обозначен кадр, последний кадр перед самим ударом в анимации, т.е чисто визуально регулирует, чтобы защищающийся успел вовремя проиграть анимацию защиты. Возможно, играет роль и в обсчетах механики. Красным обозначен путь к текстовому файлу, в котором описано: какие звуки проиграть при анимации, когда и как долго.
Шаг 3. Запускаем M2TW, загружаем битву и того юнита, у которого есть эта анимация. Смотрим бой и ждем момента проигрывания анимации, а он рано или поздно будет.
ВНИМАНИЕ, после каждого редактирования descr_skeleton.txt, удаляйте в data\animations\:
pack.dat
pack.idx
skeletons.dat
skeletons.idx
Рассмотрим подробнее саму строку:
anim eager_attack_centre_overhead_e_stab_success data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.cas -fr -id:0.129,0.970,3.954 -if:14 -evt:data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.evt
anim - начало каждой строки, в которой будет обозначена анимация, без этого игра не поймет что это анимация и ее надо использовать
eager_attack_centre_overhead_e_stab_success - команда анимации, об этом мы позже еще поговорим, пока же скажу, что именно команда определяет характер анимации, бег, защита, бездействие и т.п.
data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.cas - полный путь к анимации
-fr -id:0.129,0.970,3.954 - координаты удара в момент...
-if:14 - ...в момент определяемый этой величиной
-evt:data/animations/MTW2_Pike/MTW2_Pike_at_overhead_e_stab_success.evt - полный путь к текстовому файлу звуков
На этом примере - -fr -id:0.276,0.305,4.200
4.200 - дальность
0.305 - высота
0.276 - ширина
Все это прекрастно просматривается в MilkShape3D, если загрузить туда анимацию и на пике удара замерит окончание или около оружия, но естьодин ньюанс. Измерение НУЖНО вести от кости pelvis, потому и высота такая невысокая, иначе ваши воины буду бить только всадников в лучшем случае. Минусовые величины тоже возможны.
Также для того чтобы игра заработала без запаковывания анимации, нужно прописать в .CFG-файл следующие строки:
[util] no_animdb = true
Замена анимации боя у юнита, как поменять анимацию боя различным оружием
Spoiler (expand)
Самый простой способ заменить анимацию, это поменять её в файле в файле export_descr_unit (далее EDU).
Например мы взяли ванильного крестьянина с вилами/копьём и поменяли ему оружие на двуручный топор лесоруба. И нам нужно, чтобы он не тыкал во врага топором, а рубил.
Открываем EDU и находим код крестьянина. Вот он
В строке: soldier выделенное оранжевым - это и есть анимация боя нашего многострадального крестьянина с вилами. А выделенное красным в строке armour_ug_models - это непосредственно сама модель юнита.
Мы дали крестьянину топор лесоруба, пора научить его рубить не только деревья![:)]()
Ищем код лесоруба в EDU. Вот он
В строке: soldier выделенное оранжевым - это и есть анимация боя топором лесоруба. Просто копируем её и вставляем в код нашего крестьянина:
Вот что у нас вышло
Обратите внимание, что в строке armour_ug_models Peasants, Peasants_ug1 осталась старая модель крестьянина, но он уже не будет тыкать во врага "бывшими" вилами, а рубить с плеча топором, который мы прикрутили к его модели.
Есть другой способ. Более замороченный. Но что называется "зрящий в корень".
Сама анимация боя прописывается в файле: battle_models.modeldb (путь: Medieval II - Total War\mods\Third_Age_3\data\unit_models)
Обьясню на примере замены оружия юниту из моего сабмода для мода Third Age - Total War.
Если мы взяли копейщика, например Стражу Цитадели у Гондора (дале СЦ), и поменяли ему в модели копьё на меч, то анимацию можно поставить от любого мечника в игре.
Например от пехотинца Гондора, в EDU, этот мечник называется Gondor Infantry
вот его код в EDU:
В строке: soldier выделенное оранжевым - это название модели юнита: gondor_infantry
Вам надо его скопировать, открыть battle_models.modeldb , вставить в поисковик и найти его код уже battle_models.modeldb.
Оранжевым выделен код анимации боя мечом. Просто копируйте его и вставляйте на место анимации нашего СЦ (думаю ds уже поняли, что его модель в battle_models.modeldb будет называться kingsguard)
Вот его код
На место оранжевого кода боя копьем, просто вставляем код боя мечем
И вуаля, наши СЦ научились бою на мечах. Между прочим они по моему даже довольны, что им наконец-то дали мечи - машут ими с большим энтузиазмом![:)]()
Обратите внимание, если идет модель апгрейда (точно такое же название юнита, но с приставкой ug1, ug2 или upg), то там ставится точно такая же анимация, как и в первой модели. А то после апгрейда брони, они мечами, аки копьями тыкаться будут)
У лучников немного сложнее - у них два оружия, стрелковое и холодное.
Вот пример нового юнита Стражи Цитадели Лучника
Оранжевым выделена единая анимация лучника и мечника. Как видим у него прописана первой анимация лука (19 MTW2_Bowman_Primary 1), а второй меча (18 MTW2_Sword_Primary), без щита (20 MTW2_Non_Shield_Fast 1 )
На счет щита не уверен, т.к. у другого лучника, бьющегося со щитом и мечом в обеих руках, тоже стоит 20 MTW2_Non_Shield_Fast 1.
Если же мы хотим дать лучнику двуручный меч, то нужно брать анимацию от пехотинца с двуручем. Вот она
Таким образом мы подставляем вместо анимации одноручного меча 18 MTW2_Sword_Primary, двуручную 24 MTW2_2HSwordsman_Primary 0.
Получается лучник с двуручным мечем
Но это в теории. Я не проверял на практике, т.к. у меня нет лучника с друручным мечом) Если, кто знает больше нюансов - пишите в эту тему, делитесь опытом.
ЗЫ Нашел модель лучника с двуручным мечом - это эльфийские галадримы) Вот код анимации лучника с двуручным мечом:
Как видно, она отличается от предпологаемой ранее схемы. Я почти был прав - только в ней вместо "невидимого щита" (20 MTW2_Non_Shield_Fast 1) добавелна модель анимации двуручника (16 MTW2_2HSwordsman 1 ).
Самый простой способ заменить анимацию, это поменять её в файле в файле export_descr_unit (далее EDU).
Например мы взяли ванильного крестьянина с вилами/копьём и поменяли ему оружие на двуручный топор лесоруба. И нам нужно, чтобы он не тыкал во врага топором, а рубил.
Открываем EDU и находим код крестьянина. Вот он
type Peasants dictionary Peasants ; Peasants category infantry class light voice_type Light banner faction main_infantry banner holy crusade soldier [color=#FF8C00] Peasants[/color], 60, 0, 0.8 attributes sea_faring, hide_forest, can_withdraw, is_peasant, peasant formation 1.2, 1.2, 2.4, 2.4, 6, square stat_health 1, 3 stat_pri 4, 0, no, 0, 0, melee, melee_simple, piercing, spear, 25, 0.6 ;stat_pri_ex 0, 0, 0 stat_pri_attr no stat_sec 0, 0, no, 0, 0, no, melee_simple, blunt, none, 25, 1 ;stat_sec_ex 0, 0, 0 stat_sec_attr no stat_pri_armour 0, 3, 0, flesh ;stat_armour_ex 0, 4, 0, 0, 3, 0, 0, flesh stat_sec_armour 0, 0, flesh stat_heat 2 stat_ground 1, -2, 3, 2 stat_mental 6, normal, untrained stat_charge_dist 15 stat_fire_delay 0 stat_food 10, 20 stat_cost 1, 110, 90, 65, 50, 110, 4, 20 armour_ug_levels 0, 1 armour_ug_models [color=#FF0000]Peasants, Peasants_ug1[/color] ownership slave
В строке: soldier выделенное оранжевым - это и есть анимация боя нашего многострадального крестьянина с вилами. А выделенное красным в строке armour_ug_models - это непосредственно сама модель юнита.
Мы дали крестьянину топор лесоруба, пора научить его рубить не только деревья
Ищем код лесоруба в EDU. Вот он
type Woodsmen dictionary Woodsmen ; Woodsmen category infantry class light voice_type Light banner faction main_infantry banner holy crusade soldier [color=#FF8C00]Woodsmen[/color], 60, 0, 1 mount_effect elephant -4 attributes sea_faring, hide_forest, hardy, can_withdraw, power_charge formation 1.2, 1.2, 2.4, 2.4, 4, square stat_health 1, 3 stat_pri 7, 6, no, 0, 0, melee, melee_blade, slashing, axe, 50, 1 stat_pri_attr ap stat_sec 0, 0, no, 0, 0, no, melee_simple, blunt, none, 25, 1 stat_sec_attr no stat_pri_armour 0, 6, 0, flesh stat_sec_armour 0, 0, flesh stat_heat 4 stat_ground 1, -2, 3, 4 stat_mental 12, disciplined, untrained stat_charge_dist 15 stat_fire_delay 0 stat_food 10, 20 stat_cost 1, 210, 90, 55, 135, 210, 4, 60 armour_ug_levels 0, 1 armour_ug_models Woodsmen, Woodsmen_ug1 ownership slave
В строке: soldier выделенное оранжевым - это и есть анимация боя топором лесоруба. Просто копируем её и вставляем в код нашего крестьянина:
type Peasants dictionary Peasants ; Peasants category infantry class light voice_type Light banner faction main_infantry banner holy crusade soldier Peasants, 60, 0, 0.8 ; вместо Peasants, ставим Woodsmen
Вот что у нас вышло
type Peasants dictionary Peasants ; Peasants category infantry class light voice_type Light banner faction main_infantry banner holy crusade soldier Woodsmen, 60, 0, 0.8 attributes sea_faring, hide_forest, can_withdraw, is_peasant, peasant formation 1.2, 1.2, 2.4, 2.4, 6, square stat_health 1, 3 stat_pri 4, 0, no, 0, 0, melee, melee_simple, piercing, spear, 25, 0.6 ;stat_pri_ex 0, 0, 0 stat_pri_attr no stat_sec 0, 0, no, 0, 0, no, melee_simple, blunt, none, 25, 1 ;stat_sec_ex 0, 0, 0 stat_sec_attr no stat_pri_armour 0, 3, 0, flesh ;stat_armour_ex 0, 4, 0, 0, 3, 0, 0, flesh stat_sec_armour 0, 0, flesh stat_heat 2 stat_ground 1, -2, 3, 2 stat_mental 6, normal, untrained stat_charge_dist 15 stat_fire_delay 0 stat_food 10, 20 stat_cost 1, 110, 90, 65, 50, 110, 4, 20 armour_ug_levels 0, 1 armour_ug_models Peasants, Peasants_ug1 ownership slave
Обратите внимание, что в строке armour_ug_models Peasants, Peasants_ug1 осталась старая модель крестьянина, но он уже не будет тыкать во врага "бывшими" вилами, а рубить с плеча топором, который мы прикрутили к его модели.
Есть другой способ. Более замороченный. Но что называется "зрящий в корень".
Сама анимация боя прописывается в файле: battle_models.modeldb (путь: Medieval II - Total War\mods\Third_Age_3\data\unit_models)
Обьясню на примере замены оружия юниту из моего сабмода для мода Third Age - Total War.
Если мы взяли копейщика, например Стражу Цитадели у Гондора (дале СЦ), и поменяли ему в модели копьё на меч, то анимацию можно поставить от любого мечника в игре.
Например от пехотинца Гондора, в EDU, этот мечник называется Gondor Infantry
вот его код в EDU:
type Gondor Infantry dictionary Gondor_Infantry ; Gondor Infantry category infantry ; Quality class heavy voice_type Heavy accent GondorInfantry banner faction main_infantry banner holy crusade soldier [color=#FF8C00] gondor_infantry[/color], 60, 0, 1.25 officer gondor_banner_carrier_ug1 officer gondor_officer_ug2 mount_effect elephant -4 attributes sea_faring, hide_forest, can_withdraw, hardy, free_upkeep_unit formation 1.2, 1.2, 2.4, 2.4, 4, square, shield_wall stat_health 1, 2 stat_pri 7, 4, no, 0, 0, melee, melee_blade, piercing, sword, 30, 1 stat_pri_attr no stat_sec 0, 0, no, 0, 0, no, melee_simple, blunt, none, 0, 1 stat_sec_attr no stat_pri_armour 11, 6, 5, metal ; partial plate / mail stat_sec_armour 0, 0, flesh stat_heat 7 stat_ground -1, -2, 0, -3 stat_mental 13, disciplined, trained stat_charge_dist 6 stat_fire_delay 0 stat_food 60, 300 stat_cost 2, 800, 300, 75, 75, 800, 4, 150 armour_ug_levels 3, 4, 5 armour_ug_models gondor_infantry, gondor_infantry_ug1, gondor_infantry_ug2 ownership sicily, timurids era 0 sicily era 1 sicily era 2 sicily recruit_priority_offset 80
В строке: soldier выделенное оранжевым - это название модели юнита: gondor_infantry
Вам надо его скопировать, открыть battle_models.modeldb , вставить в поисковик и найти его код уже battle_models.modeldb.
15 gondor_infantry 1 1 42 unit_models/_Units/NGU/swordsmen_lod0.mesh 6400 3 6 sicily 53 unit_models/_Units/NGU/textures/soldiers_diff.texture 53 unit_models/_Units/NGU/textures/soldiers_norm.texture 46 unit_sprites/sicily_gondor_infantry_sprite.spr 8 timurids 53 unit_models/_Units/NGU/textures/soldiers_diff.texture 53 unit_models/_Units/NGU/textures/soldiers_norm.texture 46 unit_sprites/sicily_gondor_infantry_sprite.spr 4 merc 53 unit_models/_Units/NGU/textures/soldiers_diff.texture 53 unit_models/_Units/NGU/textures/soldiers_norm.texture 46 unit_sprites/sicily_gondor_infantry_sprite.spr 3 6 sicily 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 8 timurids 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 4 merc 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 1 4 None 14 MTW2_Swordsman 0 2 18 MTW2_Sword_Primary 14 fs_test_shield 0 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
Оранжевым выделен код анимации боя мечом. Просто копируйте его и вставляйте на место анимации нашего СЦ (думаю ds уже поняли, что его модель в battle_models.modeldb будет называться kingsguard)
Вот его код
10 kingsguard 1 1 46 unit_models/_Units/NGU/citadel_guard_lod0.mesh 6400 2 6 sicily 58 unit_models/_Units/NGU/textures/citadel_guard_diff.texture 58 unit_models/_Units/NGU/textures/citadel_guard_norm.texture 41 unit_sprites/sicily_kingsguard_sprite.spr 8 timurids 58 unit_models/_Units/NGU/textures/citadel_guard_diff.texture 58 unit_models/_Units/NGU/textures/citadel_guard_norm.texture 41 unit_sprites/sicily_kingsguard_sprite.spr 2 6 sicily 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 8 timurids 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 1 4 None 10 MTW2_Spear 0 2 18 MTW2_Spear_primary 14 fs_test_shield 0 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
На место оранжевого кода боя копьем, просто вставляем код боя мечем
14 MTW2_Swordsman 0 2 18 MTW2_Sword_Primary 14 fs_test_shield 0 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
И вуаля, наши СЦ научились бою на мечах. Между прочим они по моему даже довольны, что им наконец-то дали мечи - машут ими с большим энтузиазмом
Обратите внимание, если идет модель апгрейда (точно такое же название юнита, но с приставкой ug1, ug2 или upg), то там ставится точно такая же анимация, как и в первой модели. А то после апгрейда брони, они мечами, аки копьями тыкаться будут)
У лучников немного сложнее - у них два оружия, стрелковое и холодное.
Вот пример нового юнита Стражи Цитадели Лучника
21 citadel_guard_archers 1 1 54 unit_models/_Units/NGU/citadel_guard_archers_lod0.mesh 6400 2 6 sicily 58 unit_models/_Units/NGU/textures/citadel_guard_diff.texture 58 unit_models/_Units/NGU/textures/citadel_guard_norm.texture 59 unit_sprites/sicily_gondor_citadel_guard_archers_sprite.spr 8 timurids 58 unit_models/_Units/NGU/textures/citadel_guard_diff.texture 58 unit_models/_Units/NGU/textures/citadel_guard_norm.texture 59 unit_sprites/sicily_gondor_citadel_guard_archers_sprite.spr 2 6 sicily 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 8 timurids 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 1 4 None 27 MTW2_Fast_Longbowman_String 20 MTW2_Non_Shield_Fast 1 19 MTW2_Bowman_Primary 1 18 MTW2_Sword_Primary 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
Оранжевым выделена единая анимация лучника и мечника. Как видим у него прописана первой анимация лука (19 MTW2_Bowman_Primary 1), а второй меча (18 MTW2_Sword_Primary), без щита (20 MTW2_Non_Shield_Fast 1 )
На счет щита не уверен, т.к. у другого лучника, бьющегося со щитом и мечом в обеих руках, тоже стоит 20 MTW2_Non_Shield_Fast 1.
Если же мы хотим дать лучнику двуручный меч, то нужно брать анимацию от пехотинца с двуручем. Вот она
4 None 16 MTW2_2HSwordsman 0 1 24 MTW2_2HSwordsman_Primary 0 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
Таким образом мы подставляем вместо анимации одноручного меча 18 MTW2_Sword_Primary, двуручную 24 MTW2_2HSwordsman_Primary 0.
Получается лучник с двуручным мечем
27 MTW2_Fast_Longbowman_String 20 MTW2_Non_Shield_Fast 1 19 MTW2_Bowman_Primary 1 24 MTW2_2HSwordsman_Primary 0 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
Но это в теории. Я не проверял на практике, т.к. у меня нет лучника с друручным мечом) Если, кто знает больше нюансов - пишите в эту тему, делитесь опытом.
ЗЫ Нашел модель лучника с двуручным мечом - это эльфийские галадримы) Вот код анимации лучника с двуручным мечом:
4 None 27 MTW2_Fast_Longbowman_String 16 MTW2_2HSwordsman 1 19 MTW2_Bowman_Primary 1 24 MTW2_2HSwordsman_Primary 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002
Как видно, она отличается от предпологаемой ранее схемы. Я почти был прав - только в ней вместо "невидимого щита" (20 MTW2_Non_Shield_Fast 1) добавелна модель анимации двуручника (16 MTW2_2HSwordsman 1 ).
---
Оригинальное Авторство:
К сожалению, автор руководства не указан.
История Происхождения:
Локальная копия оригинальной статьи, взятой мной из модоковальни M2TW на форуме СиЧь.

t1aro
alZarif
Dr.Schmeisser
KhanBagatur
gurvinek2005
Crusader556
Haktar
Mady
Valyrian_Legionnaire
DinarMayor
Corrector
kosak4
Farin Frostgeir

