Сообщество Империал: Инструкция по работе с GroupFormations (Total War: Rome II) - Сообщество Империал

nnn900

Инструкция по работе с GroupFormations (Total War: Rome II)

Как править имеющиеся или вводить новые построения
Тема создана: 10 июня 2017, 02:57 · Автор: nnn900
  • 4 Страниц
  • 1
  • 2
  • 3
  • 4
 1 
 nnn900
  • Imperial
Imperial
Форумчанин

Дата: 10 июня 2017, 02:57

В этой инструкции я объясню, как делать из неживого живое :) работать с файлом групповых построений.

Эта инструкция актуальна как для Рим 2, так и для Аттилы. Да собственно и для Вархаммера.

С чем нам предстоит работать.
Идем по пути Steam/steamapps/common/Total War Rome II/assembly_kit/raw_data/EmpireDesignData
В этой папке лежит текстовый файл GroupFormations, это и есть наш исходник.
Копируем его для работы в любое место, чтобы вносимые изменения не были стерты при например обновлении, или проверке кэша А-kit-ом.

Файл формаций разделен на разделы:

Первыми в разделе LAND находятся дефолтные построения для игрока, они существуют для того, чтобы если ИИ не смог выбрать никакого построения войска всё же оказались размещенными.
Они нам почти не интересны.

Второй раздел GROUP FORMATIONS
В нем размещены построения, находящиеся во вкладке "Построения" боевого интерфейса.
Но только стандартные для всех фракций.
Для просмотра ссылки Зарегистрируйтесь
Персональные фракционные построения, расположенные в верхней строчке (обведены красным) этого меню находятся в другом разделе.
Эти построения можно редактировать, но нельзя переименовывать и удалять.

Третий раздел, наиболее для нас интересный ARMY FORMATIONS
Он так же начинается с двух дефолтных построений для случаев, когда ИИ не может выбрать построение из существующих

Для просмотра ссылки Зарегистрируйтесь
Как видим, они сделаны в 2 вариантах, первое используестя для войск атакующего, второе для ообороняющегося

Затем идут построения для сухопутных битв как такие, которые могут быть использованы всеми субкультурами, так и те, которые будут выбираться только для войск указанных для построения субкультур.
А так же фракционные построения Для просмотра ссылки Зарегистрируйтесь
которые обведены красным кружком.
Построения для штурмов городов со стенами и без стен, битв на переправе, засадных битв, они в самом низу списка.
Ванильные построения из этого раздела так же нельзя удалять и переименовывать. Только редактировать.
Так же в этот раздел можно добавлять собственные построения.

Четвертый раздел NAVAL посвящен построениям для флота, там всё организовано аналогично построениям для сухопутных битв.

Теперь перейдем к тому, как устроено само построение.

Рассмотрим на примере моего оборонительного построения для Рима и этрусков
Для просмотра ссылки Зарегистрируйтесь
Для просмотра ссылки Зарегистрируйтесь
Запись состоит из шапки (обведено красным), где указывается:
1. Имя построения (может быть любым, отличным от имен ванильных построений).
2. Приоритет выбора этого построения ИИ.
3. То, что это построение будет выбираться для битв, когда ИИ является обороняющейся стороной Defend, если атакующей, то вместо него ставим Attack.
Так же построение может быть универсальным, для атаки и обороны, тогда в шапке должны быть обе эти записи.
4. Запись о том, что построение может использоваться как дефолтное при развертывании. Это нам по сути не нужно.
5. Последняя запись, это привязка построения к субкультуре.
Субкультур можно указывать сколько угодно, а можно не указывать, тогда построение будет доступно для любой субкультуры.

За шапкой идут блоки войск, из которых состоит построение.
Первый блок, обозначенный красной цифрой 1 называется всегда ContainerAbsolute, его номер 0, он может быть только один.
Все остальные блоки носят имя ContainerRelative, они на поле боя располагаются относительно этого первого блока.
Еще одна интересная для нас запись обозначена красной цифрой 6, это <GroupFormationBlock BlockId="5">
Наличие этого блока говорит о том, что все вышеуказанные блоки объединены в "стянутый блок", которые указываются как ...nedBlockId>0</SpannedBlockId> ...nedBlockId>1</SpannedBlockId> и т.д, таких записей должно быть столько, сколько блоков мы объединили. В данном случае с 0 по 4.
При наличии "стянутого блока" все последующие блоки уже будут размещаться относительно самого этого блока
Для просмотра ссылки Зарегистрируйтесь
Но стянутый блок делать не обязательно.
Закрывает формацию обведенная красным запись.

Теперь рассмотрим содержание самих блоков войск:
Для просмотра ссылки Зарегистрируйтесь
Красными цифрами обозначено:

1. Приоритет блока. Цифровое значение в данном случае, это пропорция, исходя из которой войска указанных классов попадают в эту группу.
А так же это пропорциональное соотношение классов войск указанных в группе к общему составу армии.
В зависимости от этих значений ИИ может выбирать, использовать данное построение, или другое, где соотношения войск более близки к указанным.
То есть в нашем примере в <GroupFormationBlock BlockId="0"> будут попадать юниты, имеющие класс inf_spr и inf_mel задающиеся в таблице land_units_tables
Для классов в их строчке тоже можно задавать приоритеты попадания в группу.
И "веса" medium, light, very_light заданные юнитам в main_units_tables, колонка weights.
Но вес указывать не обязательно, в отличие от класса, тогда запись будет выглядеть, как например в <GroupFormationBlock BlockId="3"> где указан только класс юнитов, входящих в группу.

Так же имеется специальный класс any (прочие), для того, чтобы если в построении какой то класс не указан, юниты имеющие неуказанный класс могли быть размещены.
В построении группа, имеющая этот класс используется ИИ в том числе, как группа резерва.

2. Эта запись указывает, как отряды попавшие в группу будут распологаться относительно друг друга.
Известны два варианта Line и Column
В нашем случае они расположатся в линию.

3. Здесь задаётся интервал между попавшими в группу отрядами.
В нашем случае это 5 "игрометров".

Если мы хотим изменить дефолтное расстояние между отрядами, то нужно его указать во всех дефолтных же построениях, о которых писал выше, вместо указанного там.

4. и 5. Это координаты отряда в зоне развертывания.
Точка X="0.0" Y="0.0" для нашего самого первого блока ContainerAbsolute находится в центре красной линии зоны предбоевого развёртывания войск, со стороны обращенной к зоне развёртывания противника.
По оси Х мы двигаем групу в право или в лево, по Y ближе или дальше от противника.

6. Эта запись предназначена для групп ContainerRelative, она указывает, относительно какого блока будет располагаться данный блок.
Если в построении присутствует стянутый блок, то для всех не вошедших в него групп координаты отсчитываются от войск стянутого блока (для чего указывается его номер), либо друг друга (тогда указываем номер группы, от которой ведется отсчет координат).
Если в составе армии не окажется войск для наполнения какого то блока ContainerRelative относительно которого размещен другой такой блок, то войска блока имеющего привязку к несуществующему блоку будут отправлены в резерв.
Если ИИ выберет построение, где нет войск для наполнения группы ContainerAbsolute остальные войска всё равно будут размещены от точки, где должен был размещаться этот блок.

Собственно это практически всё, что достаточно знать для работы с формациями.

Когда мы закончили правку файла формаций, просто копируем измененный файл обратно в EmpireDesignData далее идем в папку binaries и запускаем оттуда BOB.AssemblyKit
В появившемся окне ставим галочку напротив файла формаций (показано стрелочкой) и жмём старт (обведено красным)
Для просмотра ссылки Зарегистрируйтесь
Через пару секунд наши новые формации готовы.
Идем в working_data и забираем наш GroupFormations.pack, переводим его с помощью ПФМ в в формат movie, кладем в data игры, запустив битву в кастоме или кампании и смотрим на результат правок.
Для того, чтобы внести изменения в полученный файл процедура повторяется с нуля (если забыли сохранить отдельно уже имеющий правки текстовый файл).

P.S. Как видите, всё довольно просто, никакого колдовства :001: .
     papeion
    • Imperial
    Imperial
    Форумчанин

    Дата: 10 июня 2017, 09:11

    Цитата

    Субкультур можно указывать сколько угодно

    Вопрос: указывать через запятую и без пробелов?

    Цитата

    переводим его с помощью ПФМ в в формат movie

    Полагаю, что переводить в формат movie необязательно. Это по желанию.
       nnn900
      • Imperial
      Imperial
      Форумчанин

      Дата: 10 июня 2017, 10:38

      papeion (10 июня 2017, 09:11):

      Цитата

      Субкультур можно указывать сколько угодно

      Вопрос: указывать через запятую и без пробелов?

      Нет, блоки с записью имен субкультур располагаться должны столбиком, без запятых.
      Так:
      <AiSupportedSubCulture>sc_rom_greek</AiSupportedSubCulture>
      <AiSupportedSubCulture>sc_rom_egyptian</AiSupportedSubCulture>
      <AiSupportedSubCulture>sc_rom_pontic</AiSupportedSubCulture>

      papeion (10 июня 2017, 09:11):

      Цитата

      переводим его с помощью ПФМ в в формат movie

      Полагаю, что переводить в формат movie необязательно. Это по желанию.

      Конечно, просто так удобнее, пока идет работа по отладке.
      Можно вставлять в пак файл мода.
         vadim
        • Imperial
        Imperial
        StratArtModding

        Дата: 21 марта 2019, 20:53

        Приветствую Камрада nnn900
        Я по поводу своего интереса

        vadim

        Решил на вечерок отвлечься от плана утрясания следующей Версии на модинг Схем Формаций для Защитников Городов по Фракциям Аи.
        Поскольку в поздние Гарнизоны Городов решил попробовать ввести батарею Полевых Онагров для борьбы с живой силой штурмующих в Городах 3-5 уровня Обгрейда.
        А выставление этих подразделений Компу для Обороны не прописано.
        Надо это дело прописать и чуть чуть оттестировать.
        Думаю будет совсем Интересно Штурмовать Укрепленные Города.

        Пропись то на выставление линий обороны по городу и деревни имеется но вот арты там совсем нет.
        Вот хотел посоветоваться Камрад.
        Вот прописал так, и это после серии тестов показало самый успешный вариант размещения Онагров.
        <GroupFormation FormationName="settlement_area_defend_narrow_default">
        <AiPriority>1.5</AiPriority>
        <AiPurpose>Settlement_Area_Defend_Narrow</AiPurpose>
        <GroupFormationBlock BlockId="0">
        <ContainerAbsolute BlockPriority="1.0" EntityArrangement="Line" InterEntitySpacing="2.0" PositionX="0.0" PositionY="0.0">
        <EntityPreference Priority="1.0" EntityClass="inf_spr"/>
        <EntityPreference Priority="1.0" EntityClass="art_fix"/>
        <EntityPreference Priority="1.0" EntityClass="inf_pik"/>
        <EntityPreference Priority="0.5" EntityClass="inf_mel"/>
        </ContainerAbsolute>
        </GroupFormationBlock>
        <GroupFormationBlock BlockId="1">
        <ContainerRelative BlockPriority="1.0" EntityArrangement="Line" InterEntitySpacing="2.0" RelativeBlockId="0" PositionX="0.0" PositionY="-5.0">
        <EntityPreference Priority="1.0" EntityClass="inf_mel"/>
        <EntityPreference Priority="1.0" EntityClass="cav_mel"/>
        <EntityPreference Priority="1.0" EntityClass="elph"/>
        </ContainerRelative>
        </GroupFormationBlock>
        <GroupFormationBlock BlockId="2">
        <ContainerRelative BlockPriority="0.75" EntityArrangement="Line" InterEntitySpacing="2.0" RelativeBlockId="1" PositionX="0.0" PositionY="-5.0">
        <EntityPreference Priority="1.0" EntityClass="inf_mis"/>
        <EntityPreference Priority="1.0" EntityClass="cav_mis"/>
        </ContainerRelative>
        </GroupFormationBlock>
        <GroupFormationBlock BlockId="3">
        <ContainerRelative BlockPriority="0.75" EntityArrangement="Line" InterEntitySpacing="2.0" RelativeBlockId="2" PositionX="0.0" PositionY="-5.0">
        <EntityPreference Priority="1.0" EntityClass="com"/>
        <EntityPreference Priority="1.0" EntityClass="art_fld"/>
        </ContainerRelative>
        </GroupFormationBlock>
        <GroupFormationBlock BlockId="4">
        <ContainerRelative BlockPriority="0.5" EntityArrangement="Line" InterEntitySpacing="2.0" RelativeBlockId="2" PositionX="0.0" PositionY="-10.0">
        <EntityPreference Priority="0.75" EntityClass="any"/>
        </ContainerRelative>
        </GroupFormationBlock>
        </GroupFormation>

        То есть бастионные онагры прописал по первой линии обороны. Это в принципи можно было бы и не делать. Поскольку размещение их/именно бастионных/ прописано кодом к схемам городов в тераине.
        А вот с полевыми онагриками здесь другой коленкор.
        Командир с отрядом прописан к центру города при данной прописи онагры выставляются компом левее но не в центре.Позиция конечно удачная и на отражение работает оптимально. Но хотелось бы посоветоватся.
           nnn900
          • Imperial
          Imperial
          Форумчанин

          Дата: 21 марта 2019, 21:14

          vadim (21 марта 2019, 20:53):

          Командир с отрядом прописан к центру города при данной прописи онагры выставляются компом левее но не в центре.Позиция конечно удачная и на отражение работает оптимально. Но хотелось бы посоветоватся.

          Ну то есть комп при развёртывании прописанные в этой группе онагры ставит сбоку от командирского отряда, т.к. он по дефолту приоритетный.
          Вы хотели их куда то в другие группы попробовать приписать, или как?
          Мне пока не очень ясно, какого рода совет нужен?
          Можно еще их с группой "any" попробовать пихнуть, она по дефолту компом резервной считается.
          В Аттиле вроде есть города, где центр, в котором обычно резерв размещается, на горке находится, может занятно получиться.
          Хотя у вас же планы городов поменяны.
             vadim
            • Imperial
            Imperial
            StratArtModding

            Дата: 21 марта 2019, 21:54

            Не над планами городов только ещё работаю. Там код прописи идёт где САшники для себя схемы прописали. Это ещё предстоит с их числителями играться.
            Вот в этой схеме командирский отряд прописан то как раз по центру города на возвышении и мне бы хотелось чтобы Онагры стояли довольно плотно за ним. Скрины чуть пос же для понятия притараню. Наглядно будет видно всё
               nnn900
              • Imperial
              Imperial
              Форумчанин

              Дата: 21 марта 2019, 22:12

              vadim (21 марта 2019, 21:54):

              Вот в этой схеме командирский отряд прописан то как раз по центру города на возвышении и мне бы хотелось чтобы Онагры стояли довольно плотно за ним.

              А, понятно.
              Тогда в прописи нижеуказанного блока Line надо заменить на Column, чтобы отряды попадающие в эту группу выстраивались друг за другом в затылок на указанном в InterEntitySpacing интервале.
              <GroupFormationBlock BlockId="3">
              <ContainerRelative BlockPriority="0.75" EntityArrangement="Line" InterEntitySpacing="2.0" RelativeBlockId="2" PositionX="0.0" PositionY="-5.0">
              <EntityPreference Priority="1.0" EntityClass="com"/>
              <EntityPreference Priority="1.0" EntityClass="art_fld"/>
              </ContainerRelative>
              </GroupFormationBlock>
                 vadim
                • Imperial
                Imperial
                StratArtModding

                Дата: 21 марта 2019, 22:29

                Вот центр и вот одна из расстановок онагров. Иногда при той же росписи он их выставляет вне центра по линии командира с левой сотроны.
                Для просмотра ссылки Зарегистрируйтесь
                Они в принципи и так действуют против живой силы очень результативно. Но хотелось бы чтобы построение комп делал ещё более оптимально.

                - - - Сообщение автоматически склеено - - -

                Их бы по прописям бы чтобы на клумбах за отрядом бы/опять бы/ разместить. Это было бы оптимально.
                Каков числитель интервала между отрядами InterEntitySpacing="2.0"
                2.0 это ведь не метрические параметры?
                   nnn900
                  • Imperial
                  Imperial
                  Форумчанин

                  Дата: 21 марта 2019, 22:58

                  vadim (21 марта 2019, 22:29):

                  Их бы по прописям бы чтобы на клумбах за отрядом бы/опять бы/ разместить. Это было бы оптимально.

                  Это я так понимаю можно сделать через указание размещения группы на плане города?
                  Оно случаем с точкой захвата не связана напрямую?

                  vadim (21 марта 2019, 22:29):

                  2.0 это ведь не метрические параметры?

                  Условные "игрометры" визуально, или может "игроярды".
                  Тут уж подвигать на глаз придётся, чтобы командиру в затылок не лупили.
                     vadim
                    • Imperial
                    Imperial
                    StratArtModding

                    Дата: 21 марта 2019, 23:22

                    <ContainerRelative BlockPriority="0.75" EntityArrangement="Column" InterEntitySpacing="2.0" RelativeBlockId="2" PositionX="0.0"
                    PositionY="-5.0">
                    <EntityPreference Priority="1.0" EntityClass="com"/>
                    <EntityPreference Priority="1.0" EntityClass="art_fld"/>
                    Для просмотра ссылки Зарегистрируйтесь
                    В право отнесло и командира по центру нет. Вообще в правые ворона уткнулась арта
                    <ContainerRelative BlockPriority="0.75" EntityArrangement="Column" InterEntitySpacing="1.0" RelativeBlockId="2" PositionX="0.0"
                    PositionY="-5.0">
                    <EntityPreference Priority="1.0" EntityClass="com"/>
                    <EntityPreference Priority="1.0" EntityClass="art_fld"/>
                    влево отнесло и командир оказался на боковых воротах
                    Для просмотра ссылки Зарегистрируйтесь
                    Наверное всё таки придётся этот потому как он оптимально размещает. ну из того что опробывал.
                    <ContainerRelative BlockPriority="0.75" EntityArrangement="Line" InterEntitySpacing="2.0" RelativeBlockId="2" PositionX="0.0" PositionY="-5.0">
                    <EntityPreference Priority="1.0" EntityClass="com"/>
                    <EntityPreference Priority="1.0" EntityClass="art_fld"/>
                    Вечер вчера на это затратил.
                      • 4 Страниц
                      • 1
                      • 2
                      • 3
                      • 4
                       Похожие Темы
                      ОВаше мнение (ваша оценка) о Total War: Warhammer
                      Голосуем высказываемся
                      Автор K Kosss
                      Обновление Вчера, 23:52
                      RЧАВО по Rome: Total War
                      Часто задаваемые вопросы по RTW
                      Автор Т Тимур0108
                      Обновление Вчера, 23:42
                      СЧто происходит с Total War?
                      Статья с группы Клуб Total War
                      Автор n nnn900
                      Обновление Вчера, 23:14
                      Воспользуйтесь одной из соц-сетей для входа
                      РегистрацияВход на форум 
                      «Империал» · Условия · Ответственность · Визитка · 24 апр 2024, 04:24 · Зеркала: Org, Site, Online · Счётчики