Как можно разнообразить юниты в моде, используя массив текстур

Discussion in 'Моддинг' started by Awar, Nov 13, 2019.

  1. Awar

    Awar Well-Known Member

    Общение с Ebel натолкнуло на мысль, как можно разнообразить действующие юниты через Мод в К3.

    Рассмотрим стандартный файл описания объекта юнита, для примера взят знаменосец из мода
    state_vs_country_plus_16.51

    Файл, ..\data\objects\units\flagmanlatepru
    Нас будет интересовать секция посвященная текстуре юнита, materialproperty.

    materialproperty : section.begin {refurl=.\data\objects\ref\refunit.prop; refkey=materialproperty}
    Mesh[0].DefaultMaterialName = flagmanlatepru
    Mesh[0].UseableMaterials[0] = flagmanlatepru
    section.end

    В секции определена единственная текстура flagmanlatepru.
    Что мы делаем. Заменяем этот абзац на следующий.

    materialproperty : section.begin {refurl=.\data\objects\ref\refunit.prop; refkey=materialproperty}

    Mesh : struct.begin
    [0] : struct.begin
    Enabled = True
    Static = False
    ClassName = MeshMaterialProperty
    DefaultMaterialName = flagmanlatepru
    RandomMaterialName = True
    UseableMaterials : struct.begin


    [*] = flagmanlatepru
    [*] = flagmanlatepru2
    [*] = flagmanlatepru3
    [*] = flagmanlatepru4
    [*] = flagmanlatepru5
    struct.end


    UseSeasonMaterial = False
    struct.end
    struct.end
    section.end


    Главное в этом блоке это возможность описать целый массив текстур. Плюс активизирована переменная RandomMaterialName.
    Теперь программа «случайным» образом перебирает текстуры и добавляет их к юниту.

    Заготавливаем новый набор текстур для знаменосца: = flagmanlatepru2, flagmanlatepru3, flagmanlatepru4, flagmanlatepru5.
    В текстуре изменен флаг, а картинка самого юнита оставлена прежней.
    Прописываем новые текстуры в файле units.mat (для мода state_vs_country_plus_16.51 в units_rise18.mat)

    Пример записи текстуры
    section.begin {refurl=.\data\materials\ref\refunit.mat}
    Material.Name = flagmanlatepru2
    Material.Texture.image = .\data\materials\units\offdrum18\flagmanlatepru2.dds
    section.end

    Запускаем мод и смотрим, что получилось.
    [​IMG]
    С новыми знаменосцами отряды будут представлять разные полки и батальоны.
    [​IMG]

    Добавим возможность прусскому гусару менять масть коней.

    Файл ..\data\objects\units\hussarlatepru.prop
    Нас интересует секция коня гусара

    autochildrenproperty : section.begin {refurl=.\data\objects\ref\refunit.prop; refkey=autochildrenproperty}
    Enabled = True
    Mesh[0] : struct.begin
    Children : struct.begin
    [0] : struct.begin
    BaseName = hussarpru_horse
    DefaultMeshName = hussarpru_horse.mesh
    Mesh[*] = hussarpru_horse.mesh
    DefaultMaterialName = horsehussarlateprudip
    Materials[*] = horsehussarlateprudip
    struct.end
    struct.end
    struct.end
    section.end


    Меняем выделенныю строку Materials[*] = horsehussarlateprudip на

    RandomMaterialName = True
    Materials : struct.begin
    [*] = horsehussarlateprudip
    [*] = horsehussarlateprudip2
    [*] = horsehussarlateprudip3
    [*] = horsehussarlateprudip4
    [*] = horsehussarlateprudip5
    [*] = horsehussarlateprudip6
    struct.end

    Добавляем новые текстуры коней, прописываем их в в файле units.mat (для мода state_vs_country_plus_16.51 в units_rise18.mat) и запускаем мод

    [​IMG]

    [​IMG]
    Ссылка на этот мод для state_vs_country_plus_16.51 или riseamerica_sc_ntm_16_51
    https://yadi.sk/d/6EY2YDwRpV_EXA

    Еще раз хочу поблагодарить Ebel за предоставленный материал и консультацию,
    пожелать ей скорейшего выздоровления.
     
    Last edited: Nov 13, 2019
    Ebel likes this.
  2. Loner

    Loner Active Member

    Impressive stuff Awar.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice