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

  • Поиск
  • Законы
  • Сообщество
  • Репутация
  • Экономика
  • БольшеБольше

Создание моделей VariantMeshDefinitions. Часть 2.
Разбираемся с моделями экипировки
Тема создана: 08 Февраль 2014, 00:54 · Автор: K0rw1nСообщений: 81 · Просмотров: 4 288

  • 9 Страниц
  • 1
  • 2
  • 3
  • 4
  • 5
  • Последняя »

K0rw1n

    2 510

    43

    257

    3 392

    3

Дата: 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.


Украшения на боковых сторонах шлема могут быть и только на одной стороне, тогда имя слота приобретет вид:
<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>



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



<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

      723

      2

      24

      549

      0

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

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

      K0rw1n

        2 510

        43

        257

        3 392

        3

      Дата: 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

          723

          2

          24

          549

          0

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

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

          K0rw1n

            2 510

            43

            257

            3 392

            3

          Дата: 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

              723

              2

              24

              549

              0

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

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

              K0rw1n

                2 510

                43

                257

                3 392

                3

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


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

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

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


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

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

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

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

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



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

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

                ZhoiYn

                  723

                  2

                  24

                  549

                  0

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

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

                  K0rw1n

                    2 510

                    43

                    257

                    3 392

                    3

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

                  точно

                    Эpманарих

                      190

                      0

                      1

                      37

                      0

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

                    А можно ли к шлему приставить любой гребень?
                    И может это быть только один гребень?
                      • 9 Страниц
                      • 1
                      • 2
                      • 3
                      • 4
                      • 5
                      • Последняя »

                      Введите ваши имя форумчанина и пароль:

                      Введите Ваше имя  
                      [Регистрация нового аккаунта]
                      Введите Ваш пароль 
                      [Восстановить пароль]

                      Воспользуйтесь одной из социальных сетей для входа на форум:


                      Внимание: Реклама отключена для зарегистрированных посетителей

                        Стиль
                           19 Окт 2017, 06:43
                      © 2017 «Империал». Условия предоставления. Ответственность сторон. Декларация о Сотрудничестве. Лицензия зарегистрирована на: «Империал». Счётчики