Tryggvi
Bokareis
Дата: 06 июля 2020, 16:49
В этой теме — собирать только важную информацию по моддингу, для справки и использования камрадам. Также в шапке будут даваться ссылки и на другие статьи на этом и сторонних ресурсах. Обсуждать и задавать вопросы здесь не надо — пишите их в Для просмотра ссылки Зарегистрируйтесь!
Список ссылок:
1) Скоупы: Для просмотра ссылки Зарегистрируйтесь, Для просмотра ссылки Зарегистрируйтесь
2) Для просмотра ссылки Зарегистрируйтесь
3) Для просмотра ссылки Зарегистрируйтесь (посты 4-13)
4) Для просмотра ссылки Зарегистрируйтесь
5) Для просмотра ссылки Зарегистрируйтесь
6) Для просмотра ссылки Зарегистрируйтесь
7) Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь, если ссылки не открываются, то см. Для просмотра ссылки Зарегистрируйтесь.
9) Для просмотра ссылки Зарегистрируйтесь
10) Для просмотра ссылки Зарегистрируйтесь (ссылка на TWC)
11) Для просмотра ссылки Зарегистрируйтесь
12) Для просмотра ссылки Зарегистрируйтесь
13) Для просмотра ссылки Зарегистрируйтесь
14) Для просмотра ссылки Зарегистрируйтесь
15) Для просмотра ссылки Зарегистрируйтесь
16) Для просмотра ссылки Зарегистрируйтесь
17) Для просмотра ссылки Зарегистрируйтесь
18) Для просмотра ссылки Зарегистрируйтесь
19) Для просмотра ссылки Зарегистрируйтесь
20) Для просмотра ссылки Зарегистрируйтесь
21) Для просмотра ссылки Зарегистрируйтесь
22) Для просмотра ссылки Зарегистрируйтесь
23) Для просмотра ссылки Зарегистрируйтесь (статья)
24) Для просмотра ссылки Зарегистрируйтесь (статья)
25) Для просмотра ссылки Зарегистрируйтесь (ссылка, EN)
26) Для просмотра ссылки Зарегистрируйтесь
27) Программа RMEditor (редактирование файлов моделей rigid_models_v2 и анимации anim) — Для просмотра ссылки Зарегистрируйтесь
Авторы материалов и советов: asadyan (TWC), Mady, papeion, Pavlinho, rawhide, Tryggvi, vadim, стратег2
Pavlinho
Форумчанин
Дата: 30 августа 2020, 19:40
Программа RMEditor
С разрешения разработчика выкладываю программу RMEditor, обновленная версия. Она еще не полностью завершенная, присутствуют какие-то баги, недочеты, однако разработчик Phazer продолжает работать над программой и открыт для общения по поводу улучшения своей программы. Вопросы по работе программы вы можете задавать мне, постараюсь ответить то, что знаю, какие-то предложения (адекватные, аргументированные по улучшению работы программы), незнакомые вопросы я могу передать непосредственно разработчику. В архиве расположены файл программы, а также файлы-txt с информацией по распространению. Программа предназначена для моддинга игр серии Тотал Вар — Аттила, Рим2, Вархаммер, думаю, можно попробовать и другие игры (более поздние).
Соответственно, используйте программу на свой страх и риск, однако по своему опыту могу сказать, что она очень и очень помогает и облегчает моддингТВ. Думаю, вполне можно еще раз выразить благодарность за программу разработчику Phazer и всем людям, которые помогали в разработке и тестировании программы. Всем удачи в моддинге!!!
ПС Кто использует более раннюю
версию 0.5-0.6 программы (раскрыть)
(о которой я упоминал в статьях), эту новую закидывайте в папку с игрой и программа автоматически распознает нужный путь (по крайне мере у меня так сработало)…
rawhide
Форумчанин
Дата: 18 февраля 2018, 11:16
как с помощью АКит делать иконки для юнитов
делается просто: берётся vmd юнита, для которого нужна иконка. например,
arm_caucasian_spearmen (первый из мода, что мне попался в папке).
а потом вмд аналогичного ванильного. это у нас копейщик со щитом, значит можно взять любого копейщика со щитом.
например att_cel_celtic_levy (тоже первое, что попалось).
vmd открываются блокнотом или notepad++, копируется с заменой всё содержимое нужного файла в ванильный и он сохраняется. а затем копируется в любую другую папку, кроме игровых! (это важно, иначе акит будет загружать ванильный скин или скин не будет двигаться).
теперь в аките запускается variant editor, в нём file — load definition. загружаете это vmd с ванильным названием, в который закинули содержимое от нового юнита.
не из data игры загружаете! из любой другой папки!
как загрузится и на экране появится модель в новом скине, под правым нижним углом центрального экрана акита нужно снять галочку «cinematic». а в выпадающем меню под ней выбрать какую-нибудь из пары сотен анимаций для юнита. и делать скрины:
а потом просто выбрать, какой ракурс с какой анимацией больше подходит для иконки.
это удобнее, чем делать скрины в игре. в игре долго искать ракурс, чтоб была хорошо видна отдельная фигурка в юните и в нужном облачении. а в АКите просто выбираете, что именно из шмоток отряда должно быть на фигурке надето. Ну и от фона силуэт отдирать легче. так значительно экономятся время и силы.
rawhide
Форумчанин
Дата: 28 мая 2018, 13:33
все там открывается. нужно в окно на главной веб-архива вбить всю адресную строку одной из ваших ссылок, например
http: //wiki.totalwar.com/w/Total_War:_ATTILA_KIT_-_Campaign_Script_Interface
(я пробел после двоеточия добавил, чтобы в посте это не конвертировалось в линк)
откроется календарь. синим подсвечены даты, когда на страницах были изменения.
например вот содержимое этой страницы от 18 марта 2017 года:
papeion
Форумчанин
Дата: 28 мая 2018, 14:20
Скриптописание
Это команды (за каждым словом Command: следует название команды, описание, пример оформления)
— — — Сообщение автоматически склеено — — —
Скриптописание
Это функции
— — — Сообщение автоматически склеено — — —
— — — Сообщение автоматически склеено — — —
за раз не получилось добавить все функции (ограничение форума), пришлось разбить на два сообщения (спойлера)
— — — Сообщение автоматически склеено — — —
Основной массив кода в скриптах игры и модах создан в первую очередь с использованием функций. Они записываются как «если «функция», то сделать это». Функции пишутся как отдельно, так и слитно друг с другом, смотря что нам нужно. Команды используются чисто для активации чего-либо: сделать.
vadim
StratArtModding
Дата: 29 мая 2018, 20:33
Тутор Теория и Практика Системы Построек для RTW2
Author: crzyrndm
Для просмотра ссылки Зарегистрируйтесь
Перевод/полный/
Системы Построек (раскрыть)
Я уже больше полутора месяцев занимаюсь Новыми Линейками Строительства и их сложной связью и взаимосвязью для возможности этого самого Строительства.
Конечно можно было бы и Тутор сконстролять, но… время жалко/тем более что его нет/
Инфа вверху полностью разжёвывает этот процесс, конечно в Аттиле есть и доп файлы и тд… но это уж по ходу дела всё думаю узнается, спрашивай Камрад.
стратег2
Форумчанин
Дата: 08 июня 2018, 23:16
Таблицы которые нужны, что бы добавить новый юнит в игру.
Например сделать клон одного юнита имеющегося в игре, дать ему другое название и изменить характеристики.
land_units_tables; это первая таблица в которой создается новый юнит или же клон уже имеющегося юнита с добавлением нового названия.
main_units_tables; здесь то же как и в land_units создается клон этого юнита.
variants_tables — здесь создается новый вариант для юнита который потом используется в unit_variants_tables, после этой таблицы если для создания юнита вы используете пак файл мэнэджер нужно сохраниться и выйти из него, что бы сгенерился ключ.
unit_variants_tables — привязка модели юнита и иконки;
building_units_allowed_tables — привязка к зданию для найма;
cdir_military_generator_unit_qualities_tables — определяет привлекательность юнита для найма ИИ;
land_units_to_unit_abilites_junctions_tables — таблицы доп. умений юнита;
unit_set_to_unit_junctions_tables — определение класса юнита для ИИ (без этой таблицы работать не будет);
units_custom_battle_permissions_tables — добавление юнита в случайные бои (можно пропустить);
unit_set_to_groupings_military_permissions_tables — добавление юнита фракции, а точнее военной группе (тоже обязательно);
В Английской локализации, что бы в игре было видно название юнита, нужно еще приписать его в text, land_units_loc.
vadim
StratArtModding
Дата: 08 июля 2018, 16:22
Фоны меню Total War Attila а так же
Загрузочные Арты и Титульный Символ
/информация для модинга/
Привет Камрады.
Данная Инфа касается Изменения Дефолтных Арт_Картинок Главного меню /выбора Компании и Настроек/
А также изменение Дефолтного Символа Игры/в главном меню/, а так же изменение Фонов и Загрузочных Лоадинг_Картинок /при переходе хода или при других режимах Игры Attila/
№1 Фоновая Картинка Главного Меню Игры
Название файла и его графический формат ————- fe_backdrop.png
Директория графического файла фоновой картинки — uiskinsdefaultfe_backdrop.png
Разрешение графического файла ————————- 1920 х 1080
Пример на материалах мода Bellum Civile
Для просмотра ссылки Зарегистрируйтесь
№2 Фоновая Загрузочная Картинка Игры
Данных картинок две/2/ — одна для Загрузки Компании и перехода хода и вторая для Загрузки битвы и других режимов Игры.
Number one
Название файла и его графический формат ————- att_load_background_1.png
Директория графического файла фоновой картинки — uiskinsdefaultatt_load_background_1.png
Разрешение графического файла ————————- 2476 х 1548
Number two
Название файла и его графический формат ————- att_loadscreen_battle_1.png
Директория графического файла фоновой картинки — uiskinsdefaultatt_loadscreen_battle_1.png
Разрешение графического файла ————————- 2476 х 1548
Пример на материалах мода Bellum Civile
Для просмотра ссылки Зарегистрируйтесь
№3 Центральный Титул Главного Меню Игры
Название файла и его графический формат ————- attila_logo.png
Директория графического файла фоновой картинки — uiskinsdefaultattila_logo.png
Разрешение графического файла ————————- 420 х 140
Пример на материалах мода Bellum Civile
Для просмотра ссылки Зарегистрируйтесь
Главное Меню с применением изменённых файлов uiskinsdefaultfe_backdrop.png и attila_logo.png
Для просмотра ссылки Зарегистрируйтесь
№4 Арт_Картинки на фонах при загрузки Компании, переходе хода и при битвах в Компании
Данные Картинки отображаются по центральной линии Загрузочных Фонов uiskinsdefaultatt_load_background_1.png и uiskinsdefaultatt_loadscreen_battle_1.png
Этих картинок несколько /для более интересного визуального ряда/ для перехода хода и загрузки компании 6 штук и для битв в Компании и Костоме 3 штуки. Так же есть отдельные картинки которые загружаются для отдельных меню -например тестовых битв.
Выбор периодичности загрузок разных картинок /смена периодичности загрузки для интереса у геймера/ прописано в файлах db. Пояснение и разжёвывание данных прописей не входит в мою задачу. Этот тутор про картинки и возможность их замены на свои арт_произведения.
Number one
Директория папок с файлами Лоадинг_Скринов/Картинок для фонов/— uiloading_uidiagrams
Название файлов и его графический формат
battle_slide_1.png
battle_slide_2.png
battle_slide_3.png
campaign_slide_1.png
campaign_slide_2.png
campaign_slide_3.png
Разрешение графического файла ————————- 1920 х 444
Пример на материалах мода Bellum Civile
Для просмотра ссылки Зарегистрируйтесь
Number two
Директория папок с файлами Лоадинг_Скринов/Картинок для фонов/— uiloading_uiload_images
Название файлов и его графический формат
battle_land_1.png
battle_naval_1.png
campaign_1.png
campaign_2.png
campaign_3.png
campaign_4.png
campaign_5.png
Разрешение графического файла ————————- 1920 х 444
Пример на материалах мода Bellum Civile
Для просмотра ссылки Зарегистрируйтесь
Number three
В папке с картинками по директории uiloading_uiload_images находится ешё одна доп. папка с ещё одним загрузочным файлом/одним/ для Компании
Вот полная директория доп. папки uiloading_uiload_imagesblood_pack
Название файла и его графический формат —————- campaign_6.png
Разрешение графического файла ————————- 1920 х 444
Пример на материалах мода Bellum Civile
Для просмотра ссылки Зарегистрируйтесь
Загрузочное Меню с применением изменённых файлов att_load_background_1.png и campaign_1.png
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Успехов в модинге Камрады.
vadim
StratArtModding
Дата: 02 августа 2018, 20:14
Довольно Интересная, Лаконичная и считаю Важная Информация по Модингу Total War ATTILA
Юниты Rome_II в Attilu + тутор
/краткое учебное пособие с конкретными примерами/
Автор Mathieu Of Belgium инфа с форума TWCenter
Для просмотра ссылки Зарегистрируйтесь
Ссылка на Тутор с TWCenterа (раскрыть)
Лаконизм данного тутора конечно потрясающий, на уровне тоста, ну уж что есть то есть.
Вопросы просто были по этому делу, вот и выложил полезную Инфу.
vadim
StratArtModding
Дата: 04 октября 2018, 14:52
Модинг Кондиции Победы
Написание и Модинг Кондиций Победы Фракции в Total War Attila.
Автор Vadim /форум Империал/
Рассмотрим пропись кондиций победы для Новой Фракции введённой в Игру. По данному примеру также возможно пропись и модинг дефолтных параметров кондиций для Фракций уже присутствующих в Игре. Для прописей условий победы, то есть когда компьютер объявляет что ваша Игра за фракцию достигла победного результата существует метод техничной прописи данных параметров через софт разработчиков Assembly Kit. Эта инструкция так же подойдёт и для модинга Игры Total War Rome II.
Файл в котором прописаны Кондиции Победы методом скриптования носит название victory_objectives. Это текстовой файл где с помощью скриптового языка/скриптов/ прописаны эти самые кондиции победы. Директория файла в софте от разработчиков Assembly Kit SteamsteamappscommonTotal War Attilaassembly_kitraw_dataEmpireDesignDatacampaigns
main_attila это если вы прописываете кондиции в Гранд Компании — main_attila. Соответственно если вы делаете мод на другие компании конечная папка может иметь название cha_attila, bel_attila, или даже pro_attila. Открываем текстовик victory_objectives и разбираем прописи кондиций для всех дефолтных фракций в Игре.
Привожу пример новой прописи кондиций, в данном файле для введённой фракции Империи Приска Аттала из нашего мода Bellum Civile
Общая скриптовая пропись кондиций для Новой фракции Империи Приска Аттала
сам скрипт прописей кондиций (раскрыть)
Разбор страниц Кондиций победы отображаемых в интерфейсе Игры
1 Свиток — Малая Победа
Блок Скрипта прописывающий эту страницу // VICTORY CONDITION 1 — SUCCESS
mission
{
victory_type att_vc_1_short;
key att_victory_mission_1_success;
issuer CLAN_ELDERS;
primary_objectives_and_payload
{
objective
{
type REACH_SPECIFIED_DATE;
year 1177;
week_of_year 0;
}
objective
{
type CONTROL_N_REGIONS_INCLUDING;
total 80;
}
objective
{
type CONTROL_N_PROVINCES_INCLUDING;
total 3;
province att_prov_italia;
province att_prov_liguria;
province att_prov_venetia;
}
objective
{
type RESEARCH_N_TECHS_OF_TYPE_X;
override_text mission_text_text_mis_activity_research_n_techs_of_type_x;
total 10;
technology_category rom_roman_civ_top;
technology_category rom_roman_mil_top;
}
// Additional
objective
{
type EARN_X_AMOUNT_FROM_BUILDING_WEALTH;
total 25000;
}
objective
{
type OWN_N_UNITS;
total 70;
}
//
payload
{
game_victory;
2 Свиток — Культурная победа
———————————————————————————
————————————
Блок Скрипта прописывающий эту страницу // VICTORY CONDITION 2.1 — CULTURAL VICTORY
mission
{
victory_type att_vc_2_2_cultural;
key att_victory_mission_2_cultural_victory;
issuer CLAN_ELDERS;
primary_objectives_and_payload
{
objective
{
type REACH_SPECIFIED_DATE;
year 1202;
week_of_year 0;
}
objective
{
type CONTROL_N_REGIONS_INCLUDING;
total 95;
}
objective
{
type CONTROL_N_PROVINCES_INCLUDING;
total 4;
province att_prov_italia;
province att_prov_liguria;
province att_prov_venetia;
province att_prov_magna_graecia;
}
objective
{
type OWN_N_PROVINCES_WITH_CULTURAL_DOMINANCE;
total 15;
}
objective
{
type CONSTRUCT_N_BUILDINGS_INCLUDING;
total 6;
building_level att_bld_roman_west_city_major_4;
building_level att_bld_roman_civic_market_wine_4;
building_level att_bld_roman_west_civic_monument_4;
building_level att_bld_all_resources_port_trade_4;
building_level att_bld_religion_catholic_legendary_4;
building_level att_bld_roman_west_civic_governor_4;
faction att_fact_western_roman_empire;
}
objective
{
type EARN_X_AMOUNT_FROM_BUILDING_WEALTH;
total 50000;
}
objective
{
type RESEARCH_N_TECHS_OF_TYPE_X;
override_text mission_text_text_mis_activity_research_n_civil_techs;
total 16;
technology_category rom_roman_civ_top;
}
payload
{
game_victory;
3 Свиток — Военная победа
Цитировать скринами весь свиток условий военных побед считаю нет смысла, в скрипте это всё написано и расписано. Блок Скрипта прописывающий эту страницу // VICTORY CONDITION 2.2 — MILITARY VICTORY
mission
{
victory_type att_vc_2_1_military;
key att_victory_mission_2_military_victory;
issuer CLAN_ELDERS;
primary_objectives_and_payload
{
objective
{
type REACH_SPECIFIED_DATE;
year 1202;
week_of_year 0;
}
objective
{
type CONTROL_N_REGIONS_INCLUDING;
total 110;
}
objective
{
type SUBJUGATE_FACTIONS;
total 20;
}
objective
{
type CONTROL_N_PROVINCES_INCLUDING;
total 7;
province att_prov_italia;
province att_prov_liguria;
province att_prov_venetia;
province att_prov_magna_graecia;
province att_prov_narbonensis;
province att_prov_tarraconensis;
province att_prov_raetia_et_noricum;
}
objective
{
type OWN_N_UNITS;
total 120;
}
objective
{
type CONSTRUCT_N_BUILDINGS_INCLUDING;
total 4;
building_level att_bld_roman_west_city_major_4;
building_level att_bld_roman_west_civic_garrison_4;
building_level att_bld_roman_west_military_infantry_4;
building_level att_bld_roman_west_civic_monument_4;
faction att_fact_western_roman_empire;
}
objective
{
type RESEARCH_N_TECHS_OF_TYPE_X;
override_text mission_text_text_mis_activity_research_n_military_techs;
total 16;
technology_category rom_roman_mil_top;
}
payload
{
game_victory;
4 Свиток — Божественный триумф
Блок Скрипта прописывающий эту страницу // VICTORY CONDITION 3 — DIVINE TRIUMPH
mission
{
victory_type att_vc_3_domination;
key att_victory_mission_3_divine_triumph;
issuer CLAN_ELDERS;
primary_objectives_and_payload
{
objective
{
type REACH_SPECIFIED_DATE;
year 1202;
week_of_year 0;
}
objective
{
type CONTROL_N_REGIONS_INCLUDING;
total 140;
}
objective
{
type SUBJUGATE_FACTIONS;
total 40;
}
objective
{
type CONTROL_N_PROVINCES_INCLUDING;
total 12;
province att_prov_italia;
province att_prov_liguria;
province att_prov_venetia;
province att_prov_magna_graecia;
province att_prov_narbonensis;
province att_prov_raetia_et_noricum;
province att_prov_lugdunensis;
province att_prov_mediterraneus_occidentalis;
province att_prov_maxima_sequanorum;
province att_prov_aquitania;
province att_prov_germania;
province att_prov_tarraconensis;
}
objective
{
type OWN_N_UNITS;
total 200;
}
objective
{
type CONSTRUCT_N_BUILDINGS_INCLUDING;
total 7;
building_level att_bld_roman_west_city_major_4;
building_level att_bld_roman_civic_market_wine_4;
building_level att_bld_roman_west_civic_monument_4;
building_level att_bld_religion_catholic_legendary_5;
building_level att_bld_roman_west_civic_governor_5_legendary;
building_level att_bld_roman_west_civic_garrison_4;
building_level att_bld_roman_west_military_infantry_4;
faction att_fact_western_roman_empire;
}
objective
{
type RESEARCH_N_TECHS_OF_TYPE_X;
override_text mission_text_text_mis_activity_research_n_techs_of_type_x;
total 40;
technology_category rom_roman_civ_top;
technology_category rom_roman_mil_top;
}
objective
{
type OWN_N_PROVINCES_WITH_CULTURAL_DOMINANCE;
total 30;
}
objective
{
type EARN_X_AMOUNT_FROM_BUILDING_WEALTH;
total 100000;
}
payload
{
game_victory; Сначала прописаны все Свитки условий для уровня Игры — среднего и выше среднего. Далее идёт пропись для увеличенного уровня сложности Игры Уровень Very Hard имеет заглавие ** MP VERSUS ** Ну и отдельно прописаны кондиции для Мультиплея. Закрываем изменённый текстовик, проводим сессию Акиты по сбору нового файла startpos /старпоз/ если всё прописано правильно в нём появятся ваши модифицированные свитки кондиций победы. Теория и практика написания скриптов не входит в задачи данной статьи. При помощи этой информации можно прописать сложную , много ходовую сеть свитков для условий победы.
Успехов в модинге Камрады.
файл victory_objectives с новыми прописями
victory_objective (раскрыть)
данная статья в формате Pdf
модинг Кондиций Победы (раскрыть)
С Уважением Vadim.
Tryggvi
Bokareis
Дата: 04 февраля 2019, 17:06
Не то что бы это была особо важная информация, но просто хинт для тех, кто вздумает заниматься трейтами и связанным с ними скриптописанием.
Так вот, советы по диагностике, основанные на собственном опыте:
1) Если после внесения изменений игра не запускается вообще, то обычно это означает либо проблемы непосредственно с таблицами трейтов в db, либо какие-то критические косяки в скриптах — например, заданы взаимоисключающие условия.
Как ни странно, пропись в скриптах несуществующего трейта на работоспособности игры не сказывается никак — я так однажды часа полтора пытался запустить скрипт, прежде чем обнаружил, что вообще забыл добавить соответствующий трейт в таблицы.
2) Если игра запускается, но при старте новой кампании не проигрывается стартовый ролик и не запускаются ванильные стартовые скрипты (например, усталость от войны), то это значит, что не запустится и ваш скрипт. Проблемы же в данном случае будут непосредственно в файле скрипта — и проблемы эти, скорее всего, связаны сугубо с синтаксисом (например, где-то лишний пробел/табуляция/логический оператор или же стёрли букву в какой-нибудь команде). Т.е. из-за ошибки синтаксиса не срабатывает весь файл и (почему-то) не срабатывают и остальные скриптовые файлы.
Именно по этой причине любые мало-мальски значимые нововведения и изменения нужно проверять, начиная новую кампанию, а не в текущей. Сильно сэкономит время.
3) Ну а если и стартовые скрипты работают нормально, а трейт по-прежнему не появляется, то проблема уже в, так сказать, содержательной стороне скрипта — вы задали неправильные условия, неправильную цель, неправильный ивент для срабатывания триггера и т.п.
К сожалению, та же картина будет наблюдаться и в том случае, если вы экспериментируете и пытаетесь соорудить новые команды из уже существующих. Если с синтаксисом будет всё в порядке, то игра будет работать как надо (т.е. не как в ситуации из пункта 2), а вот ваши команды просто не будут действовать — и сам трейт, соответственно, не будет появляться.
vadim
StratArtModding
Дата: 05 февраля 2019, 11:27
Кстати. Проверять работоспособность скриптов в Игре можно через консольные команды. Способ не особо элементарный но действенный.
Я не нашёл туториала на русском по тому, как добавлять новых юнитов.
Есть английский туториал:
]]>
http://www.twcenter….m-unit-with-PFM
]]>
И я решил его частично перевести, частично добавить от себя.
Допустим, вы хотите добавить юнита в уже существующий мод.
Начнём:
1. Что нам понадобиться.
Нажмите, чтобы прочитать
2. Допустим, мы хотим добавить серпоносную колесницу к юнит-паку для Этрусской лиги.
Unit_variants.
Первым делом открываем программой PFM нужный юнит-пак и «data_rome2.pack», в группе «db» находим таблицу «unit_variants».
В «data_rome2.pack» видим вертикальную строку «unit», щёлкаем по стрелочке и в открывшемся списке ищем юнита, который больше и лучше всего по-характеристикам и всем другим параметрам подходит для того юнита, которого хотите создать вы. Для меня это Gre_Scythed_Chariots — Серпоносная колесница. (Чтобы узнать имя юнита по ключю, нужно заглянуть в русик, об этом в конце).
Соответственно щёлкая по Gre_Scythed_Chariots этот юнит отсеивается и остаётся единственным в таблице.
Следующим шагом открываем юнит-пак, заходим в таблицу «unit_variants и unit_card» и щёлкаем по «Add Row», добавляется строка. И мы просто копируем написанное в строчках «unit, height_variation и height_scale» из «data_rome2.pack» в юнит-пак. Далее, в строках «name, variant» пишем новое название юнита — ключ (Любое, но на англ). Например можно прописать «Rom_Chariot» или «Athens_Chariot», но у меня это будет «Etr_Chariot».
А в строке «faction» нужно указать принадлежность юнита к фракции, ведь мы заимствуем его из ванилы. К примеру, я добавляю юнит к Этрусской Лиге, нужно указать «rom_etruscan», также и для других фракций (Пункт 5)
Land_units.
Сначала посложнее, открываем в «data_rome2.pack» и юнит-паке таблицу «land_units» и также отсеиваем нужный юнит в «data_rome2.pack».
Следующий шаг, это создать новую строку щелчком по «Add Row» (Не волнуйтесь, если выскочит ошибка, это пустяк) скопировать значение всех строчек из «data_rome2.pack» в юнит-пак, таких как «accuracy, ammo…» и так далее, исключая строку «key». В «key» мы скопируем тот самый ключ, который указали в «unit_variants», а у меня это — «Etr_Chariot»
Насчёт строк, думаю и так понятно за что большинство отвечает. По-крайней мере, можно сравнить данные из таблицы и из описания юнита в игры. По некоторым строкам:
Нажмите, чтобы прочитать
Main_units.
Следующая таблица, это «main_units». Также ищем эту таблицу в обоих паках, создаём строчку тыком на «Add Row» (Если ошибка возникнет — забейте) и копируем все характеристики в соответствующие строчки, кроме «key», там мы пропишем уже известный ключ — «Etr_Chariot»
Если в строке «key», вы прописали ключ, который сами же и выдумали, то в строке «land_unit» нужно указать изначальный юнит, который лёг в основу, для меня это Серпоносная колесница — Gre_Scythed_Chariots.
Нажмите, чтобы прочитать
Далее легче.
Таблица «units_custom_battle_permissions».
Открываем, создаём строку, пишем Ванильное название юнита в строке «unit».
В строке «Faction» указываем фракцию.
Нажмите, чтобы прочитать
Таблица «land_units_to_units_ability_junctions»
Она отвечает за активные и активируемые способности юнита, такие как: Натиск, фаланга, черепаха и так далее.
Ability — Умения.
Land_unit — Юнит.
Указываем придуманый нами ключ юнита в «land_unit» и указываем желаемые способности юниту. Чтобы указать более одной способности (Пункт 5), нужно для каждой создавать новую строку и указывать ключ.
Unit_set_to_units_junctions.
Необходимо открыть таблицу в обоих паках (Вы же не закрыли «data_rome2.pack»?) и скопировать в соответствующие строки.
Беда в том, что я не знаю, за что отвечает эта таблица. Надеюсь подскажут мне, чтобы я мог дополнить.
Units_to_groupings_military_permissions.
И с этим пунктом беда.
Просто копируйте строки. В «military_group» нужно вставить параметр, который указан у юнитов юнит-пака или же найти юнитов той фракции, для которой вы добавляете юнита и скопировать то, что там указано.
Таблица «buildings_units_allowed» отвечает за то, какие здания позволяют нанимать отряд.
Пишем ванильный ключ «Gre_Scythed_Chariots» в строке «unit».
В строке «building» указываем здание. Важно, необходимо прописать столько строк, сколько есть развитий у здания (1-ый левел — марсово поле, 2-ой и т.д.), иначе, если вы пропишите только марсово поле, этот юнит не будет наниматься при 2-ом и далее уровнях казарм.
Важно, в строке «key» указать уникальный номер. Можно взять цифру на пару тысяч больше или же на одну. К примеру, последняя запись в таблице имеет номер 1998095, можно указать 200000 и выше или 1998096.
Таблицы по желанию:
Нажмите, чтобы прочитать
3. Параметры, отвечающие за текст. Необходимо, если нужно сделать название и описание юнита уникальными. (Пункт 5)
land_units.loc. Что находится в «Textdb».
Открываем, создаём строку и вписываем в «Taq» параметр без скобочек: «land_units_onscreen_name_Здесь будет написан Ваш ключ». Например: «land_units_onscreen_name_Etr_Chariots»
Во второй строке пишем название юнита, какое хотим, но на английском.
Если это морской юнит, то вместо «land_units.loc» открываем «naval_units.loc» и далее как выше.
В «Etru_unit_description_short_texts.loc» также добавляем строку с записями «unit_description_short_texts_text_Ваш ключ юнита_Tooltip» и во второй строке описание. Наверное, на английском должно быть, потому что я точно не знаю не будет ли проблем, если строка будет заполнена русскими буквами.
К сожалению, есть вероятность, что название не будет отображаться. Для этого нужно добавить его в русскую локализацию, либо в мод-руссификатор, который можно скачать здесь: http://totalwars.ru/…showtopic=45977
Смотреть пункт 5.
4. Итак, вы добавили юнит в компанию, он спокойно нанимается и всё хорошо, но вот беда, юнит-то выглядит соответствующе своей изначальной фракции, но не новой. Я имею в виду вооружение и доспехи.
Чтобы это поправить, нужно открыть в «data_rome2.pack» и юнит-паке «variantmeshesvariantmeshdefinitions».
В «data_rome2.pack» находим нужный юнит (Пункт 3), щёлкаем правой кнопкой мыши по нему и выбираем «ExtractExtract Selected».
Файл сохранился на компьютере. Мы перенесём юнит в наш юнит-пак.
Но прежде, нужно переименовать юнит в соответствии с ранее придуманным ключом, для меня это «Etr_Chariot».
Щёлкаем в юнит-паке по «variantmeshes» правой кн. мыши: AddDirectory, нажимаем «Browse» и ищем папку с сохранёным юнитов. Щёлкаем окей и юнит добавиться.
Далее щёлкаем ПКМ но добавленному юниту: OpenOpen as text и здесь мы увидим всё снаряжение и вооружение юнита. Напомню, что лошади и анимация меняются в «land_units»
Чтобы разобраться тому, кто ранее не имел дело с переодеванием юнита, есть отличный туториал: http://totalwars.ru/…showtopic=44239 (Переодевание юнитов в Рим 2.)
Важно, после такого добавления юнита в юнит-пак, необходимо прописать его в «Variants_tables». Создаём строку и указываем Наш ключ.
5. Как узнать ключ фракции, юнита, способности, а также описания к этому?
Открываем PFM «local_ru_rome2» или «local_ru» в папке «data»: «textlocalisation.loc». Вверху видим кнопку «Export TSV», нажимаем и сохраняем куда захотите.
Открываем блокнотом и копируем в поисковик (ctrl+f) ключ того, перевод которого хотите узнать.
Или же русское название юнита, фракции, способности, если вам нужно выяснить ключ.
И так, нам нужно, чтобы название юнита отображалось в русской версии.
Открываем PFM «local_ru_rome2» в папке «data» или же мод-руссификатор. Идём: «textlocalisation.loc».
Создаём 2 новые строки.
И в «Taq» первой строки вписываем, без скобочек: «unit_description_short_texts_text_Ваш ключ юнита_Tooltip». Напротив этой записи пишите перевод, описание юнита. Оно будет отображаться в минимизированном окне с параметрами.
Во второй «Taq» вписываете «land_units_onscreen_name_Ваш ключ юнита». Напротив — Русское название юнита.
По этой схеме спокойно получилось добавить юнитов.
Говорите, если есть какие-то недочёты или поправки.
И, пожалуйста, кто может, расскажите по неупомянутым строкам в «лэнд и маин юнит» за что отвечают.
Сообщение отредактировал AkrDai: 14 Март 2014 — 13:08
Обновлено: 09.02.2023
Выкладываю туториал для мододелов по игре Аттила тотал вар. Им, думаю, можно пользоваться и для других игр ТОТал вар, в которых используются файлы RMV2.
В авторы себя зачислять не буду, хотя сам файл туториала+скриншоты сделаны мной, я общался со многими пользователями интернет-сайтов, посвященных тотал вар, в том числе английских, изучил много тем и комментариев, советов, что вылилось в данный туториал. Надеюсь, будет полезен для всех мододелов, тк дает более обширные границы моддинга, чем без него ))) Обо всех неясностях, выявленных вами ошибках в туторе, просьба писать в комментариях, я изучу и отвечу.
ПС в самом туториале выражена благодарность всем людям, которые мне помогали разобраться в данном вопросе и тем, кто сделал необходимые программы для моддинга.
Сообщество Империал: Важная информация по моддингу Total War: Attila — Сообщество Империал
ПС Кто использует более раннюю
(о которой я упоминал в статьях), эту новую закидывайте в папку с игрой и программа автоматически распознает нужный путь (по крайне мере у меня так сработало).
Только на переходе хода вылет. но это понятное дело, так и должно быть.
может найдутся и еще какие элементы
еще нужно в campaign_model/human_factions проставить номер новой играбельной фракции. как я понимаю, это номер блока players_array+1 или же номер этот находится в первой строке титульной закладки конкретной фракции:
Заметил одну вАжную вещь на счёт скоупов (областей применения):
Если в одной таблице прописать две строки с одинаковым эффектом (например, для технологии), но выставить разную область применения (скоуп), то эффект будет работать в двух областях применения (скоупах).
Продолжая цитату: но информация будет видна только об одной строке. Проблема в локализации: ибо один и тот же эффект в обоих строках. У скоупов тоже есть локализация, поэтому вывод инфы от двух скоупов одновременно для одного эффекта невозможен. При этом значения из двух строк суммируются и вводят в заблуждение.
Чтобы информация выводилась адекватно, СА сделали несколько идентичных скоупов с разными локализациями или вообще без локализации (скрытые).
1. general_to_force_own
2. general_to_force_own_horde
3. general_to_force_own_unseen
Например: это три скоупа-клона, у которых одно и то же назначение «персонаж при командовании армией». Разница только в локализации.
Первый выводит на экран «(подчинённые войска)», второй «(подчинённая орда)», третий без локализации.
А так же, СА сделали клоны эффектов.
Например для генеральского скила «Ворон» используются два идентичных эффекта с разными скоупами.
1. att_effect_building_construction_cost_mod
2. att_effect_force_building_cost_mod
«Ворон», это варварский скил, а ведь варварская фракция может быть сейчас ордой, а на следующем ходу стать оседлой. И, чтобы показать, что скил «Ворон» снижает цену строительства в обоих случаях, СА и сделали клон эффекта. И мы, благодаря этому, видим, что «Ворон» снижает цену строительства как при командовании ордой, так и во вверенной провинции.
Вот такие финты ради того, чтобы адекватно вывести инфу на экран об эффектах и скоупах. И вот такие ошибки, если это не учитывать.
Похоже, что при создании файла старпос в АкиТе учитываются правки, сделанные только в таблицах старпос. Другие таблицы по боку, к сожалению.
В результате, например, через АкиТ мы не сможем создать новую играбельную фракцию. А придётся вручную копаться в готовом старпос.
Или другой пример: не сможем изменить группу имён или группу портретов для тех генералов, которые будут в старпос. Это опять придётся делать потом, вручную.
Акит — сволочь такая )))
Как делать трейты
Работа с трейтами распадается на два блока: работа с таблицами в ПФМе для создания трейта и работа в ПФМе со скриптами для редактирования/создания триггера (это набор условий, при котором происходит проверка на получение трейта).
Нужна ли нам будет вторая часть, если мы используем ванильный триггер? Толком протестировать я это не
смог, но думаю, что да — всё равно придётся дописывать кое-что в скриптах.
Замечу, что также нет смысла приниматься за дело без АКита, поскольку жизненно важная таблица trait_triggers (нужная не для создания трейта как такового, но для получения информации о триггере) в ПФМе просто недоступна.
Я опишу полный цикл создания трейта, включая создание нового триггера. Думаю, после этого работа со старыми трейтами и триггера станет понятна и так.
Итак, вот полный перечень задействованных таблиц:
character_traits
trait_info
trait_to_included_agents
trait_to_antitraits
character_trait_levels
trait_level_effects
trigger_effects
В character_traits создаётся именно трейт, названия колонок в общем и целом понятны. Обращает на себя внимание no_going_back_level. Видимо, именно это имел в виду rawhide. Я с этим, по крайней мере, не экспериментировал. Остаётся загадкой колонка precedence. Никакого влияния от её параметров я не заметил. Короче говоря, ставьте, как в ванили.
Далее прописывается техническая оснастка трейта. В trait_info выдаётся общая цель трейта. В игре это только agent. Хотя есть опции region и unit (остаётся только гадать, как это выглядит на практике). В trait_to_included_agents задаётся конкретная цель трейта — генерал, жрец и т.д. Чисто теоретически можно обойтись без этой таблицы, задав жёсткие условия в скрипте, но, как говорится, лучше перебдеть. В системе трейтов вообще много такого, что кажется дублирующим или излишним, но приходится всё это исполнять, как обряд.
trait_to_antitraits нужна нам, только если мы делаем трейт, противоположный существующему. Или сразу пару противоположных трейтов. Тут всё понятно — указанные в паре трейты будут друг друга заменять, не встречаясь одновременно. Как понимаю, нужно прописывать отдельно и пару трейтА — трейтБ, и пару трейтБ — трейтА, иначе замена будет работать только «в одну сторону».
Теперь переходим к содержимому трейта. В character_trait_levels мы создаём уровни трейта, создавать уровень нужно даже в том случае, если он у трейта единственный. Тут плюс-минимум всё тоже понятно по названиям колонок. Есть, правда, пустые колонки с манящими названиями вроде epithet_text (уж не кличка ли это?), но они ещё ждут своего исследователя. В этой таблице, однако, задаётся самый загадочный и едва ли не самый главный аспект трейта — threshold (порог). Опытным путём было выявлено, что это количество успешных проверок, которые должен пройти трейт, чтобы получить данный уровень. Т.е., скажем, если у первого уровня threshold = 2, а условие получение трейта, скажем, — выиграть в битве, вероятность же получения = 100%, то персонаж должен получить трейт только после второй выигранной битвы.
В целом при назначении threshold стоит ориентироваться на ванильные показатели. По крайней мере, поначалу.
Отмечу, что локализация трейта привязывается именно к его уровням (как название, так и описание — coloured text). Никакого общего названия для трейта не существует.
Таблицу trait_level_effects нет смысла даже комментировать. Стандартная привязка эффектов, величин и скоупов к уровням трейта.
На данной стадии трейт уже готов, и его, скажем, можно прописать в стартпозе, так что он будет у данного персонажа со старта. Только вот раздавать этот трейт в дальнейшем игра не будет.
В trigger_effects мы приписываем трейт к определённому триггеру (придумываем, соответственно, новый). Судя по тестам, колонка value — это тот показатель, который добавляется к threshold после успешного прохождения проверки. Другими словами, если у вас threshold = 3 и value = 1, то трейт появится у персонажа после трёх успешных проверок. А если value = 3, то после первой же успешной проверки. Это проще всего понаблюдать, создав трейт, выдаваемый каждый ход всем персонажам с вероятностью 100, и запустив новую кампанию. В первом случае трейт будет получен на третий ход (каждый ход срабатывала успешная проверка), во втором – на первом же ходу, как только мы запустили кампанию.
Ну а вероятность, как нетрудно догадаться прописывается здесь же, в колонке chance.
На этом с таблицами мы покончили, можно приступать к скриптам, но сперва нам надо поучиться.
Идём в АКите в trait_triggers — это, своего рода, скриптовый файл, разложенный в табличном виде. Настольный учебник по созданию трейтов. Разобравшись в том, что и как там написано, мы усвоим азы синтаксиса скриптов.
Итак, тут у нас есть триггер, список ивентов, при которых триггер срабатывает (там выпадающий список, интуитивно понятный — наступление нового хода, рождение персонажа, взросление персонажа и т.п.). И самое главное — conditions, условия. Это условия, при которых происходит на получение трейта.
Тут задаётся контекст — какие персонажи, каких фракций, религий, культур, субкультур, на какой территории и при каких других условиях будут проходить проверки на получение данного трейта.
В этой колонке настоящее нагромождение текста, но разобраться в нём довольно легко, если учесть, что каждой команде (уж извините, в терминологии не силён) предшествует технический текст и его можно пропускать (хотя я предполагаю, что можно манипулировать и им, но это надо уже совсем в деле разбираться).
Например, такое условие:
Переводится это так:
Персонаж — генерал с армией И имя фракции — «Римская экспедиция» И фракция персонажа открыла технологию gloria_romanorium И НЕ кампания-пролог И НЕ гранд-кампания
Т.е. трейт выдаётся генералам и губернаторам Римской экспедиции в кампании Велизария после открытия определённой техи. Всё просто.
Команды типа context:character():faction():name() – это тот самый технический текст. Мы можем присваивать им ключи, взятые из таблиц – названия фракций, религий и прочего (в данном случае — bel_fact_byzantine_expedition).
Есть и самостоятельные функции, например, char_is_general_with_army. На самом деле, под этой функцией уже закодирован определённый контекст, который нам не нужно прописывать (контекст, в общем-то, ясен из названия).
NB. Если открыть пак data через ПФМ, то по адресу lua_scripts / lib_export_triggers.lua можно найти своеобразный сборник этих самых функций. Не могу сказать, что я нашёл там что-то экстраординарное, но для человека, который уже разобрался в trait_triggers, может быть полезно.
Схематически это будет выглядеть так (извиняюсь, табуляция пропадает, но её тоже надо блюсти):
—[[ <Название скрипта, думаю, чисто для красоты> ]]—
function <Название триггера>_impl (context)
return <набор контекстов>
end
Нетрудно догадаться, что всё, что не вошло в скобки <>, трогать не стоит.
Но самое сердце (и источник всех глюков) трейтового скрипта — это набор условий, или контекстов.
Синтаксис его довольно прост — его мы уже наблюдали в trait_triggers. Ровно те же самые команды и функции мы из него и берём.
У нас есть несколько логических операторов (капсом — для наглядности):
— AND — «и»
— OR — «или»
— NOT — оператор отрицания для функций (у которых нет значка присвоения ==). Обычно идёт в комбинации с AND или OR. Т.е. если мы хотим задать условие «все, кроме генералов, командующих армией», то мы пишем not char_is_general_with_army(context:character())
—
= — оператор отрицания для команд со значком присвоения ==. Собственно, этот значок он и заменяет. Т.е., если мы хотим задать условие «любая фракция, кроме фракции гаутов», то мы пишем context:character():faction():name()
= «att_fact_gauti». Ни в коем случае не используйте NOT в данном случае. Весь скрипт просто перестанет работать.
— и наконец, обычные скобки (). Как в формулах Экселя. С помощью них можно задавать довольно сложные условия, группируя контексты. Скажем, условие вида
(context:character():is_faction_leader() and context:character():faction():name() == «att_fact_mauri») or context:character():faction():name() == «att_fact_gaetuli»
— позволяет нам воздействовать конкретно на лидера фракции мавров ИЛИ на всех персонажей фракции гетулов. Но не на рядовых персонажей фракции мавров.
Тут логика — наше всё. Короче говоря, если вы не понимаете, каковы будут последствия у условия ЕСЛИ (А И Б), а какие — у условия ЕСЛИ (А ИЛИ Б), то лучше вообще не подходите к трейтам.
На закуску ряд полезных условий для создания трейта (из тех, что я лично проверял или использовал):
— context:character():is_faction_leader() — персонаж — лидер фракции
— char_is_general(context:character()) — персонаж — генерал (любой не женский персонаж и не агент)
— char_is_governor(context:character()) — персонаж — губернатор
— context:character():faction():name() == «ВАШ ТЕКСТ» — фракция персонажа
— context:character():model():campaign_name(«ВАШ ТЕКСТ») — определить кампанию (пролог, основная, Велизарий, Карл)
— context:character():faction():state_religion() == «ВАШ ТЕКСТ» — гос. религия персонажа
— context:character():has_trait(«ВАШ ТЕКСТ») — персонаж имеет определённый трейт
— context:character():faction():culture() == «ВАШ ТЕКСТ» — культура фракции персонажа
— context:character():faction():subculture() == «ВАШ ТЕКСТ» — субкультура фракции персонажа
— context:character():age() > ВАШ ТЕКСТ — возраст персонажа больше заданного числа (ну или меньше, если знак перевернуть)
А есть ещё контексты, связанные с битвами.
Сообщество Империал: [Статья] Туториал по моддингу Аттила Тотал Вар (rigid_model_v2) — Сообщество Империал
Как создать мод к Total War: Shogun 2 при помощи Набора Инструментов — Assembly Kit (инструкция)
1. Установка
В Стиме Library-> Tools-> Total War Shogun 2 – Assembly Kit
ПКМ и выбираем «Install Game»
После завершения загрузки выбираем «Play Game». Откроется папка, содержащая файл «modding.zip».
Распаковываем в C:Official_Mod_Tools. Если распаковать в другое место,то возможны проблемы, связанные со слишком длинным именем файла. Не используйте пробелы в названии папки.
2. Обзор инструментов
Инструменты находятся в папке «binaries».
Есть папка «raw_data», содержащая хml файлы. В raw_data/db вы найдете те, которые касаются основных данных. Если вы применяете database editor и откроете указанные файлы, то увидите, что изменения вами сделанные вступили в силу.
Подпапка raw_data/BattleTerrain содержит шаблоны тактических карт местности. Структура того, как tga каждого шаблона работает и взаимодействует с другими пока не ясна.
raw_data/art содержит рисунки.
raw_data/Localization – поддержка других языков.
max_exporter содержит скрипты для 3Dmax,которые экспортируются в нужный игре формат.
В working_data лежит весь материал, вами созданный и экспортировали в binary (т.е. формат, который юзает игра, примерно так же, как делали в моддинге до этого).
Папка «retail» не существует сразу после установки; она появляется на завершающей стадии создания мода.
3. Сущность инструментов
TWeak
Запускаете TWeak, из меню Tools выбираете «DAVE — Database Visual Editor».
Спросит, соединиться ли с raw_data/db, жмите «yes».
В меню «View», выберите «Table Launcher». Откроется список доступных db таблиц.
Открытие – двойной левый щелчок.
Делайте то, что нужно; по завершении кликните «Apply» в окне редактирования.
BOB
Теперь надо вставить изменения в pack файл.
Из папки binaries, запустите BOB.Release.exe.
В списке слева раздвиньте дерево «database» и выберите таблицу ,которую редактировали.
В списке в центре найдите таблицу снова (под «db») и выделите ее. Выберите и Provider и Consumer действия; Provider конвертирует xml в binary, а Consumer засунет binary в pack.
В списке справа под data, выберите «mod.pack».
Глянем на папку retail; она должна содержать папку «data» с вашим «mod.pack».
Скопируйте ее в вашу папку shogun2/data и мод запуститься при следующем запуске Сегун 2.
4. Управление модами: выбор и загрузка на Workshop
При запуске Сегун 2 из Стим, сначала откроется ModManager со списком модов, помещенных вами в папку data. Выберите нужный.
Если двойным щелчком кликнуть по моду, появится дополнительное окно позволяющее изменить название и описание мода. Сделав это можете жать «Upload to Workshop», и ваш мод залит. Нужно сделать его Видимым (Visible) из Workshop если вы желаете, чтобы другие юзеры могли играть в него.
Шаблоны армий в кампании
Эти таблицы позволяют определять, какие армии и флоты ИИ будет создавать и как он будет оценивать юнитов с точки зрения перспективы их рекррутирования.
Таблицы, контролирующие этот процесс:
Как это работает.
В таблице start_pos_factions фракции привязаны к balance_config и quality_config
• balance_config определяет, какой шаблон армиифлота будет использоваться
• quality_config определяет ценность юнитов для этой фракции
Возможность устанавливать разные конфигурации для разных фракций позволяет контролировать состав их армий.
• cdir_unit_qualities определяет качество юнитов в разных quality_configs и привязывает этих юнитов к quality_group из cdir_unit_quality_groups. Значения качества юнитов относительно других юнитов задаются в quality_group, не против всех юнитов.
• cdir_unit_balance_group_qualities связывает cdir_unit_quality_groups в группу cdir_unit_balance_groups для разных cdir_unit_balance_configs и позволяет quality_groups быть организованной с точки зрения качества в каждом balance_group. Аналогично для таблиц cdir_Unit_qualities значения в поле «quality» для каждого quality_group_key измеряются относительно других, привязанных к тому же самому group_key в рамках config_key
• cdir_unit_balance_templates содержит список всех шаблонов армий/флотов
• cdir_unit_balance_template_junctions связывает шаблоны с cdir_unit_balance_configs и задает приоритет для каждого шаблона в рамках того config.
• cdir_unit_balances устанавливает сами шаблоны, связывая каждый шаблон с разными balance_groups, заадвая идеальный процент каждого balance_group в шаблоне и min/max количество юнитов, доступных для каждого шаблона.
Баланс
Эта таблица, возможно, наиболее значима во всей системе. Она контролирует какой тип юнитов и в каком количестве входит в каждый балансовый шаблон.
Для каждого шаблона можно добавлять неограниченное количество групп (хотя, общий ideal_pct должен соответствовать 1). Группы, взятые из таблиц cdir_unit_balance_groups (которые связывают их с группами, используемыми вcdir_unit_qualities) и для каждой группы вы можете определить процентное соотношение , насколько тот pct можете варьировать и необходимо ли минимальное значение.
Связь балансовых шаблонов (Balance template)
Эта таблица увязывает балансовые шаблоны с балансовыми конфигурациями и задает приоритет. Есть много различных balance_templates, некоторые из которых с отрицательными приоритетами.
Большое количество шаблонов необходимо для того, чтобы приспособить различные особенности рекрутирования юнитов фракций (например, все додзе разрушены и фракция может рекрутировать только из замков).
Негативные значения используются для того, чтобы сообщить ИИ, что они не идеальны. ИИ проверит, можно ли его заменить шаблоном с большим приоритетом, если да – то воспользуется им. Если нет – то будет применять негативный.
Групповые построения
Следующие построения жестко прописаны в коде, поэтому не удаляйте их. Некоторые построения могут быть использованы игроком при создании группы, другие используются ИИ в определенных типах сражений:
• Multiple Selection Drag Out Land
• Spear Point
• Crane’s Wing
• Flying Geese
• Reclining Dragon
• War of the Tiger
• Bark of the Pine Tree
• Cloud Dragon
• Flying Bird
• Double Line Standard
• Grand Battery
• Cavalry Heavy Right
• Cavalry Heavy Left
• Melee Frontline
• Artillery Crossfire
• Siege Approach Column
• Siege Approach Line
• Ambush Column
• War of the sword
• Bird cloud
• Three day-old moon
• Extended snake
• Boshin Line Astern
• Boshin Line Abreast
• Multiple Selection Naval
Редактор
Рекомендуется Notepad++ или другой xml редактор для обнаружения ошибок во вносимых правках.
Как работают построения
Для примера рассмотрим Double Line Standard. Она выглядит так
В верхней части такие строки:
Приоритете (Priority) – одно значение, помогающее ИИ решить, какое построение использовать. Можно использовать это для создания разных построений для игрока и для ИИ, делая одни доступными только для игрока (AI priority 0.0) и другие для ИИ с большими значениями.
AIPurpose позволяет задавать, какие построения используются при атаке ИИ, какие при обоорне, какие – в обоих случаях, а также используется ли построения для размещения.
Есть дополнительные строки, которые могут быть добавлены после AI строк для помощи ИИ в выборе.
•
Тэги Min и MaxUnitCategoryPercentage могут быть применены для ограничения % юнитов определенного типа, при наличии которого эта формация будет применена ИИ.
Переходим к блокам.
Они выглядят следующим образом
•
•
•
•
•
•
Каждый блок дает преимущества; это помогает ИИ распределять юнитов по блокам построения.
Кроме блока 0, остальные располагаются относительно друг друга (Блок 0 – ContainerAbsolute, все остальные ContainerRelative). Они располагаются по координатам х и у. Так, например, в построении Double Line Standard блоки 0,1 и 2 позиционируются так:
Юниты в блоке могут быть построены в линию или колонну посредством тэга EntityArrangement для каждого блока.
В рамках блока могут быть разные строки, определяющие какие классы юнитов размещать в нем и приоритет для каждого класса юнитов. Сочетание в блоке приритетов класса юнитов, приоритета разных блоков и AIPriority для всего построения влияет на выбор построения ИИ в сражении.
Убедитесь, что в построении есть как минимум один блок, содержащий запись для EntityDescription=”any”. Так чтобы юниты, полностью не подходящие под критерии других блоков были все-таки размещены. Если этого не будет, ИИ проигнорирует построение.
Помните, ИИ не всегда имеет идеальную армию для большинства построений, поэтому желательно заложить немного гибкости «про запас».
Несколько блоков могут быть сгруппированы вместе в стянутый блок, как показано ниже:
•
•
• 0
• 1
• 2
•
•
Прочие блоки могут быть затем позиционированы относительно стянутого блока, что упростит организацию сложных построений.
Создание Групповых Построений
В ВОВ кликните по Groupformations.pack в working_data и обработка файла запустится.
Тестирование построений в игре.
Простой способ проверить новое построение, добавленное или модифицируемое вами это задать AIPriority всем другим построениям 0.0 (сделайте перед этим резервную копию. Загрузить игру и затем в кастом битве выбрать армию, которая идеально соответствует этому построению.
Возможные проблемы
• Пропущенные скобки, при ручном редактировании случается часто и где Notepad++ особенно эффективен в их выявлении;
• Блоки не по порядку или номер(а) пропущен(ы). Блоки должны начинаться с 0 и далее по порядку.
• В игре юниты располагаются поверх друг друга. Это возможно, если они не расположены в блоке или блоки расположены недостаточно далеко друг от друга по осям х и у.
• Помните, если у ИИ не идеальная армия для построения он попытается заполнить ее наилучшим образом, делайте блоки вашего построения достаточно гибкими, чтобы юниты не были размещены странным образом, если определенные блоки не заполнены.
Структура частей юнитов (пока работает не корректно — вылетает)
Модели и части
На этом уровне иерархии можете использовать любой пункт и уровень информ поддиректорий путем добавления префикса «_». Это полезно для лучшего структурирования частей при работе с ними и при использовании совместных текстур (см.ниже).
Пример.
Asian/ (любая папка schema)
_Heads/
_Indian/
Heads/
Parts – в редакторе они не отличимы от parts из Asian/Heads/
_Chinese/
Heads/
Parts — в редакторе они не отличимы от parts из Asian/Heads/
_ChineseArmours/
Torsos/
Parts — в редакторе они не отличимы от parts из Asian/ Torsos/
Legs/
Parts — в редакторе они не отличимы от parts из Asian/ Legs/
Heads/
Parts
Hats/
Parts
.
Parts
Hats/ (любая папка)
AustrianBearSkin/
Meshes and textures
BelgicShako/
Meshes and textures
.
Меши и текстуры
Допустим есть один меш и один набор текстур.
AustrianBearSkin/
mesh.variant_part_mesh
texture_diffuse.dds
texture_normal.dds
texture_gloss_map.dds
Опционально вы можете группировать эти файлы в подпапки типа этой (с любым именем):
AustrianBearSkin/
WhateverMeshFolder/
mesh.variant_part_mesh
WhateverTextureFolder/
texture_*.dds
or:
AustrianBearSkin/
mesh.variant_part_mesh
WhateverTextureFolder/
texture_*.dds
or:
AustrianBearSkin/
WhateverMeshFolder/
mesh.variant_part_mesh
texture_*.dds
Единственная вещь, которую нельзя менять – это название шаблона файла.
В редакторе, название части будет названием корневой папки. То есть AustrianBearSkin в этих случаях
Случайные текстуры.
Вы можете добавить несколько текстур. Для частей они будут выбираться случайно.
Нормальные случайные текстуры.
texture[01]_*.dds texture[02]_*.dds texture[03]_*.dds .
В этом случае, движок не смешивает текстуры с разными индексами,
texture[01]_diffuse.dds всегда используется с texture[01]_normal.dds и texture[01]_gloss_map.dds.
То же справедливо и для размещения их в основной папке или опциональной подпапке:
AustrianBearSkin/
texture[*]_*.dds
или
AustrianBearSkin/
WhateverTextureFolder/
texture[*]_*.dds
Совместно используемые текстуры между слотами
Если желаете использовать одни и теже текстуры для частей разных типов следуйте инструкции:
Euro (любая папка schema)
_NakedParts/
texture*.dds
Heads/
Fat/
Mesh
Angry/
Mesh
Hands/
Fat/
Mesh
Slim/
Mesh
Heads/
.
Hands/
.
Что нужно знать об этом:
• См. главу «Слоты» для большей информации о папках, начинающихся на «_»
• Меши частей в _NakedParts/ совместно используются , учитывая, что нет текстур в слот папке в _NakedParts/. Если добавите текстуры к одной из частей, эта определенная часть не будет использовать совместно текстуры, но будет применять те, что вы добавили туда.
• Для файлов текстур процедура та же: можете помместить их в подпапку и можете создать несколько папок текстур и можете применять «_» для совместноиспользуемых.
• Есть опция, позволяющая заставить движок выбрать ту же случайную текстуру для одного слота или для другого, добавив «_» суффикс к названию папки текстур. Это очень удобно в этом конкретном примере, поскольку мы хотим, чтобы цвет кожи головы и рук был одинаков.
[Статья] Туториал по моддингу Аттила Тотал Вар (rigid_model_v2)
[Статья] Туториал по моддингу Аттила Тотал Вар (rigid_model_v2)
So in your case just right click on the viewport and press «Unhide All». Then should make the bosses visible so you can delete them.
Вчера случилось то чего мы ждали давно. СА расщедрились и дали страждущим мододелам инструменты для моддинга Total War: Shogun 2 — Assembly Kit. А сегодня мы начинаем публиковать перевод инструкции по работе с этим набором. Читайте и создавайте моды!
Читайте также:
- Как сделать мод для dishonored
- Как стать богом в майнкрафте мод
- Чем больше опыта тем больше рост майнкрафт мод
- Как писать моды для minecraft на python
- Как открыть моды в айзеке