Редактирование анимации в Total War: Rome 2
Компиляция: используем ресурсы игры. Сам исходный код курсивом
В игре есть юнит "Критские лучники", которые не используют свой щит в рукопашной схватке. Это можно исправить.
Нам понадобиться PFM (пакфайлменеджер) и три файла из data_rome2.pack.
Открываем в PFM data_rome2.pack, находим файл animation_tables.txt(data_rome2.pack\animation\animation_tables\),
извлекаем animation_tables.txt(пкм по файлу Extract Selected) куда Вам удобно. Открываем animation_tables.txt любым текстовым редактором, находим блок анимации "rome_man_bow":
animation_table rome_man_bow
{
skeleton_type rome_man_game
skeleton_type_cinematic rome_man
fragment rome_man_unarmed_fragment
fragment rome_man_cinematic_fragment
fragment rome_man_sword_fragment
fragment rome_man_sword_matched_combat_fragment
fragment rome_man_bow_fragment
}
Мы видим , что блок состоит из нескольких строк:
animation_table rome_man_bow - название блока анимации(понадобится нам в таблице land_units: data_rome2.pack\db\land_units_tables\)
{ - начало блока
skeleton_type - тип скелета
skeleton_type_cinematic - предполагю-движение скелета, связанное с его типом
Эти две строки нам не понадобиться менять(пока).Далее:
fragment - из этих fragment-ов и состоит анимация(движение) юнита в игре, с ними и будем работать, точнее с третьим и четвёртым.
} - конец блока
В data_rome2.pack(как и в data.pack) открываем animation_fragments(data_rome2.pack\animations\animation_fragments\), где видим эти самые fragments. Т.е. строки "fragment rome_man_unarmed_fragment" и т.д и т.п. ссылаються именно на папку animation_fragments. Выбираем из "списка" то ,что нам нужно, а именно:rome_man_sword_shield_fragment(мечник со щитом) и rome_men_sword_shield_matched_combat_fragment(движение юнита в бою).
Создаём новый блок анимации в animation_tables.txt(добавляем), назовём его "animation_table rome_man_bow_shield":
animation_table rome_man_bow_shield
{
skeleton_type rome_man_game
skeleton_type_cinematic rome_man
fragment rome_man_unarmed_fragment
fragment rome_man_cinematic_fragment
fragment rome_man_sword_fragment
fragment rome_man_sword_matched_combat_fragment
fragment rome_man_bow_fragment
}
Но в этой анимации не предполагаеться использование щита, только лук или меч. Заменяем строку "rome_man_sword_fragment" на "rome_man_sword_shield_fragment", а "rome_man_sword_matched_combat" на "rome_men_sword_shield_matched_combat_fragment":
animation_table rome_man_bow_shield
{
skeleton_type rome_man_game
skeleton_type_cinematic rome_man
fragment rome_man_unarmed_fragment
fragment rome_man_cinematic_fragment
fragment rome_man_sword_shield_fragment
fragment rome_man_sword_shield_matched_combat_fragment
fragment rome_man_bow_fragment
}
Далее необходимо "присвоить" нашу новую анимацию выбранному юниту. При помощи всё того же PFM извлекаем из data_rome2.pack файл land_units_tables куда хотите. Создаём свой pack(мод). В PFM File>New или Ctr+N, по умолчанию он будет называться "Untitled.pack". В этот "pack" мы добавляем(пкм по Untitled.pack>Add>Directory...или Shift+Ins) нашу папку(diretory) animations с нашим animation_tables и папку(diretory) db с land_units_tables. Сохраняем наш pack (по умолчанию в папке data игры), называем как хочется (у меня-anim_bow_shield.pack). Открываем land_units_tables(конечно в PFM). Находим нашего юнита (критских лучников целых три: Aux_Gre_Cretan_Archers, Gre_Cretan_Archers и Mer_Gre_Cretan_Archers, но модель у них одна на всех)и в колонке man_animation заменяем rome_man_bow на нашу rome_man_bow_shield, сохраняем(Save) наш pack(мод). Запускаем с помощью модменеджера или прописываем user.script.txt и любуемся результатами труда.