Сообщество Империал: Создание моделей VariantMeshDefinitions. Часть 2. - Сообщество Империал

K0rw1n

Создание моделей VariantMeshDefinitions. Часть 2.

Разбираемся с моделями экипировки
Тема создана: 08 февраля 2014, 00:54 · Автор: K0rw1n
  • 10 Страниц
  • 1
  • 2
  • 3
  • 4
  • Последняя »
 K0rw1n
  • Imperial
Imperial
Форумчанин

Дата: 08 февраля 2014, 00:54

Первую часть туториала можно найти Для просмотра ссылки Зарегистрируйтесь.
Туториал по работе с текстурами - Для просмотра ссылки Зарегистрируйтесь.

В данной части туториала речь пойдет об создания моделей брони и оружия.
Итак начнем с головы, а если точнее с того, что на нее одевается – со шлемов.
Попробуем создать новый шлем для нашего гоплита.
За основу возьмем модель фригийского шлема, который был распространен среди греческих и эллинистических пехотинцев в то время.
Прописываем:
<VARIANT_MESH>
<SLOT name="helmets" >
<VARIANT_MESH model="variantmeshes/_variantmodels/man/helmets/hellenic_phyrgian_elite.rigid_model_v2" >
</VARIANT_MESH>
</SLOT>
</VARIANT_MESH>
И получаем рис 1.
Но простой шлем не годится для нашего гоплита (предположим он щеголь ). Добавим ему плюмаж, которые находятся в папке crests. А так как количество гопитов щеголей будет в отряде примерно 60%, то введем параметр ограничивающий наличие плюмажей на шлеме (probability ="0.6"). Тогда наш шлем будет выглядеть так (рис.2):
<VARIANT_MESH>
<SLOT name="helmets" >
<VARIANT_MESH model="variantmeshes/_variantmodels/man/helmets/hellenic_phyrgian_elite.rigid_model_v2" >
<SLOT name="top_crests" attach_point="crest_centre" probability ="0.6" >
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/phyrgian_crest_1_white.rigid_model_v2" />
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/phyrgian_crest_1_red.rigid_model_v2" />
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/phyrgian_crest_1_black.rigid_model_v2" />
</SLOT>

</VARIANT_MESH>
</SLOT>
</VARIANT_MESH>
Кстати заметьте, что правило нескольких моделей действует и м модели снаряжения, т.е 1/3 из 60% гоплитов будет иметь плюмаж белого цвета, 1/3 – красного и 1/3 – черного.
Движок игры позволяет вешать плюмажи на правой и левой сторонах шлема. Пропишем, что появляться они будут только у 30% :
<VARIANT_MESH>
<SLOT name="helmets" >
<VARIANT_MESH model="variantmeshes/_variantmodels/man/helmets/hellenic_phyrgian_elite.rigid_model_v2" >
<SLOT name="top_crests" attach_point="crest_centre" probability ="0.6" >
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/phyrgian_crest_1_white.rigid_model_v2" />
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/phyrgian_crest_1_red.rigid_model_v2" />
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/phyrgian_crest_1_black.rigid_model_v2" />
</SLOT>
<SLOT name="side_crests" attach_point="crest_left,crest_right" probability ="0.3" >
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/white_horsehair_01.rigid_model_v2" />
<VARIANT_MESH model="variantmeshes/_variantmodels/man/crests/yellow_horsehair_01.rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
</SLOT>
</VARIANT_MESH>
Итоговый результат мы можем наблюдать на рисунке 3.
Imp

Украшения на боковых сторонах шлема могут быть и только на одной стороне, тогда имя слота приобретет вид:
<SLOT name="side_crests" attach_point="crest_left " probability ="0.3" > - плюмаж только на левой стороне;
<SLOT name="side_crests" attach_point=" crest_right" probability ="0.3" > - плюмаж только на правой стороне.
Переходим к тому, из-за чего гоплит получил свое имя – щиту гоплону или аспису.
<VARIANT_MESH>
<SLOT name="shields" >
<VARIANT_MESH>
<SLOT name="shields" >
<VARIANT_MESH model="variantmeshes/_variantmodels/man/shield/hellenic_shield_hoplon.rigid_model_v2" /> – простой щит без рисунка (рис. 4)
<VARIANT_MESH model="variantmeshes/_variantmodels/man/shield/hellenic_shield_hoplon_decal. rigid_model_v2" decal_diffuse="variantmeshes/_variantmodels/man/patterns/hellenic/round_gorgona_medusa_diffuse" decal_normal="VariantMeshes/_VariantModels/man/patterns/hellenic/decal_normal" /> – щит с рисунком. Тут вы видите меш самого щита, а так же дополнительные текстуры diffuse и normal, они накладываются как маска поверх основной текстуры щита и имеют префикс decal – или наклейка, картинка. Это позволяет не создавая новых текстур назначить любые гербы, царапины, вмятины и т.д, Таким образом применяя различные текстуры декалей мы можем добиться большого разнообразия щитов. На самом деле, ссылка идёт не сам файл текстуры, а на файл в котором перечислены эти текстуры. В файле находится несколько текстур с разными орнаментами, т.е установив decal_ текстуру, вы выбираете не одну а сразу столько её вариаций сколько прописано в файле decal_. Изображение шита мы видим на рисунке 5.
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/shield/hellenic_shield_hoplon_painted2. rigid_model_v2" decal_diffuse="VariantMeshes/_VariantModels/man/patterns/hellenic/decal_diffuse" decal_normal="VariantMeshes/_VariantModels/man/patterns/hellenic/decal_normal" imposter_model="VariantMeshes/_VariantModels/man/shield/hellenic_shield_hoplon. rigid_model_v2" mask0="1" mask1="0" /> – тоже щит с декалью, но у него есть отличия от предыдущего. Обратите внимание на параметр " mask0="1" mask1="0" этот параметр позволяет накладывать маску: подкраску по вертексам меша, что делает возможным внести цветовое многообразие в меши. . Цвета масок установлены для фракций т.е у каждой фракции есть 3 варианта масок, которые находятся в таблице: data_rome2.pack\db\faction_uniform_colours_tables\faction_uniform_colours, в которой первый столбик фракции и три варианты цвета, на каждый по три колонки - это цвета Для просмотра ссылки Зарегистрируйтесь. Еще один параметр на который стоит обратить внимание – imposter_model. Он используется для создания 2-D спрайтов моделей видимых на большом отдалении (вспоминаем первые сегун и медивал). Если спрайт блока не прописан, то эту часть юнита мы не увидим на отдалении. Потому важно прописывать их для одежды и щитов. Изображение шита мы видим на рисунке 6.
</SLOT>
</VARIANT_MESH>
</SLOT>
</VARIANT_MESH>

Imp

И напоследок о создании одежды. Наш гоплит будет одет в тунику, поверх которой оденем линторакс (Рис.7).

Imp

<VARIANT_MESH>
<SLOT name="tunics" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/hellenic_tunic_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>

<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/hellenic_tunic_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" mask0="2" mask2="0" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/italian_tunic1_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/italian_tunic1_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/italian_tunic1_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" mask1="2" mask2="1" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/italian_tunic1_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" mask1="2" mask2="1" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/italian_tunic1_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" mask0="1" mask1="0" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/tunics/italian_tunic1_cut.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/tunics/e3_tunic.rigid_model_v2" mask0="2" mask2="0" >
<SLOT name="armour" >
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_01.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_02.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
<VARIANT_MESH model="VariantMeshes/_VariantModels/man/armour/linothorax_quilted_03.rigid_model_v2" imposter_model="VariantMeshes/_VariantModels/man/armour/carthaginian_linothorax_a. rigid_model_v2" />
</SLOT>
</VARIANT_MESH>
</SLOT>
</VARIANT_MESH>

Тут также повторяются все приемы, которые мы рассмотрели выше. Используя полученные навыки я думаю вы уже без труда разберетесь, как создавать различные модели для игры используя существующие меши и текстуры.
Счастливого вам творчества. И успехов в этом начинании.
     ZhoiYn
    • Imperial
    Imperial
    Форумчанин

    Дата: 22 сентября 2015, 14:51

    А возможно ли прописывать probability сразу у VariantMeshReference или VariantMesh model? Вроде этого:
    <VARIANT_MESH model="..." probability = 0.5/>
       K0rw1n
      • Imperial
      Imperial
      Форумчанин

      Дата: 23 сентября 2015, 15:59


      В большинстве случаев нельзя. Лучше создавать свои модели и потом вводить их в игру. Для примера создадим файл cloak1.VariantMeshDefinition с текстом :

      <VARIANT_MESH>
      <SLOT name="cloaks" probability ="0.6" >
      <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour.rigid_model_v2" />
      </SLOT>
      </VARIANT_MESH>

      Потом если понадобятся отряд с 60% плащами, то в файле модели просто пропишите свой файл с плащами:

      <SLOT name="cloaks" >
      <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\cloak1.VariantMeshDefinition" />
      </SLOT>

      Главное не забыть поместить свой файл в мод.
         ZhoiYn
        • Imperial
        Imperial
        Форумчанин

        Дата: 27 сентября 2015, 20:29

        А существуют ли ограничения на модели или их разновидности в VariantMeshDefinition?
           K0rw1n
          • Imperial
          Imperial
          Форумчанин

          Дата: 27 сентября 2015, 21:59


          Ну насколько я слышал, то игра вроде бы пропускает модели если их в списке больше 5, т.е.:
          <VARIANT_MESH>
          <SLOT name="cloaks" probability ="0.6" >
          <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour1.rigid_model_v2" />
          <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour2.rigid_model_v2" />
          <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour3.rigid_model_v2" />
          <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour4.rigid_model_v2" />
          <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour5.rigid_model_v2" />
          <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour6.rigid_model_v2" />
          </SLOT>
          </VARIANT_MESH>

          то <VARIANT_MESH model="variantmeshes\_variantmodels\man\cloak\celtic_chieftain_cloak/ celtic_chieftain_cloak_armour6.rigid_model_v2" /> и строки ниже в данном блоке игра не прочитает.

          В остальном ограничений вроде бы нет. Количество моделей тоже можно делать неограниченно, но не стоит забывать, что переизбыток контента приводит к увеличению размера мода и тормозам игры.
             ZhoiYn
            • Imperial
            Imperial
            Форумчанин

            Дата: 11 октября 2015, 10:57

            Уважаемый KOrw1n, в ходе манипуляций столкнулся с необходимостью менять распределение фракционных цветов по щитам и доспехам, но никаких туторов по этому вопросу не нашел. В связи с этим прошу помочь разобраться с параметрами mask0, mask1, mask2
               K0rw1n
              • Imperial
              Imperial
              Форумчанин

              Дата: 11 октября 2015, 14:23


              А их особо нет этих параметров. Все маски могут комбинироваться только в шесть комбинаций: 012, 120, 210, 021, 102 и 201.

              Если не указывать маски, то по умолчанию устанавливается комбинация масок 012.

              Первой маской идет окрашивание основной поверхности, второй и третьей маской - дополнительных поверхностей.


              Для примера посмотрим на маски итальянской туники italian_tunic1

              Imperial - комбинация 012 (цвета Карфагена)

              Imperial - комбинация 102

              Imperial - комбинация 210

              Рассмотрим файл маски italian_tunic1_mask.dds

              Imperial

              Маска_0 окрашена в красный цвет, маска_1 - в зеленый, маска_2 - синим цветом.

              Неокрашиваемые области отмечают черным цветом (в этом файле нет)
                 ZhoiYn
                • Imperial
                Imperial
                Форумчанин

                Дата: 12 октября 2015, 07:27

                ничего не написано == 012
                mask0=1 mask1=0 == 102
                mask0=2 mask2=0 == 210
                Я верно понимаю?
                   K0rw1n
                  • Imperial
                  Imperial
                  Форумчанин

                  Дата: 12 октября 2015, 07:53

                  точно
                     Эpманарих
                    • Imperial
                    Imperial
                    Форумчанин

                    Дата: 13 декабря 2015, 19:29

                    А можно ли к шлему приставить любой гребень?
                    И может это быть только один гребень?
                      • 10 Страниц
                      • 1
                      • 2
                      • 3
                      • 4
                      • Последняя »
                       Похожие Темы
                      КМятежная Луна, часть 1: Дитя огня (2023)
                      США, Венгрия. Жанр: Фантастика . Год: 2023
                      Автор m maksyutar
                      Обновление Вчера, 05:55
                      Л[Lenta] Перевод статьи Thrones of Decay: Introducing Tamurkhan, the Maggot Lord, Часть Вторая
                      [Lenta] Перевод статьи Thrones of Decay: Introducing Tamurkhan, the Maggot Lord, Часть Вторая
                      Автор З Затейник
                      Обновление 12 апреля 2024, 00:40
                      СThrones of Decay: Представляем Тамурхана, Повелителя Личинок, Часть Вторая
                      Вторая часть перевода официальной статьи о легендарном лорде Нургла от компании Creative Assembly
                      Автор A Alexander_NSK
                      Обновление 11 апреля 2024, 22:56
                      Воспользуйтесь одной из соц-сетей для входа
                      РегистрацияВход на форум 
                      «Империал» · Условия · Ответственность · Визитка · 19 апр 2024, 02:29 · Зеркала: Org, Site, Online · Счётчики