Сообщество Империал: Создание моделей VariantMeshDefinitions. Часть 2. - Моддинг Total War: Rome II (Rome 2 Total War) - Total War: Rome II (Rome 2: Total War) - Библиотека - Сообщество Империал

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

Информация об авторе

  • Автор: K0rw1n

Информация по статье

  • Добавлено: 08 Фев 2014, 15:51
  • Обновлено: 20 Дек 2014, 16:51
  • Просмотры: 1074

Дополнительно

Репутация: 1
Создание моделей VariantMeshDefinitions. Часть 2.

Описание: Разбираемся с моделями экипировки в Total War: Rome II
Первую часть туториала можно найти здесь.
Туториал по работе с текстурами - здесь.

В данной части туториала речь пойдет об создания моделей брони и оружия.
Итак начнем с головы, а если точнее с того, что на нее одевается – со шлемов.
Попробуем создать новый шлем для нашего гоплита.
За основу возьмем модель фригийского шлема, который был распространен среди греческих и эллинистических пехотинцев в то время.
Прописываем:
<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, в которой первый столбик фракции и три варианты цвета, на каждый по три колонки - это цвета RGB. Еще один параметр на который стоит обратить внимание – 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>

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

Читать 1-ю часть статьи
Copyright © «Империал». Копирование информации с этой страницы возможно только при указании прямых ссылок на эту страницу.




      Стиль:
        08 Дек 2016, 10:56
    © 2016 «Империал». Условия предоставления. Ответственность сторон. Рекрутинг на Империале. Лицензия зарегистрирована на: «Империал». Счётчики