Всадники Кальрадии

Модификации => Обмен опытом (в помощь мододелу) => Обмен опытом: Bannerlord => Тема начата: potap от 16 Июня, 2023, 14:38

Название: [BL] Руководства и инструменты по моддингу
Отправлено: potap от 16 Июня, 2023, 14:38
Тема для сбора ссылок на руководства, инструкции и полезные инструменты по моддингу Bannerlord. Наверное, пора бы уже. И хорошо бы ее закрепить.
Для обсуждения пользуйтесь отдельными темами.
Название: Re: [BL] Руководства и инструменты по моддингу
Отправлено: potap от 16 Июня, 2023, 14:46
Цитировать (выделенное)
Работа с 3Д активами

Инструкция - Bannerlord 3D Asset Workflow ([url]https://docs.google.com/document/d/1aHBsO3mzkT0JsbCt9aCOh6CWAFATXwKtSaVb__TYIoo/edit[/url])

Экспорт/импорт, сетки (количество полигонов, анимация, физика ткани, уровни детализации), текстуры (разрешение, непрозрачность), внедрение активов (доспехи, щиты, оружие). Документ в процессе наполнения по мере изучения BL.


Цитировать (выделенное)
Создание квестов и диалогов

Создание квестов (тема на TW) - Creating a quest ([url]https://forums.taleworlds.com/index.php?threads/creating-a-quest.415596/[/url])
Создание диалогов (тема на TW) - Creating Hero Dialogue / Conversations ([url]https://forums.taleworlds.com/index.php?threads/creating-hero-dialogue-conversations.450349/[/url])

Цитировать (выделенное)
Управление эмоциями в диалогах

Инструкция - Face/Body control tags for NPCs in Dialogs ([url]https://docs.google.com/document/d/1Vm_KkjmtLGOxad4wLBmaj3E9TQtgILacNP4jGNYqgIU/edit[/url])
Тема на TW - [Resource]Face/Body control tags for NPCs in Dialogs ([url]https://forums.taleworlds.com/index.php?threads/resource-face-body-control-tags-for-npcs-in-dialogs.456952/[/url])

Название: Re: [BL] Руководства и инструменты по моддингу
Отправлено: potap от 20 Июня, 2023, 11:47
Цитировать (выделенное)
Руководство по созданию карт
Автор NPC99, на данный момент 56 страниц на docs.google.

Bannerlord World-mapping ([url]https://docs.google.com/document/d/1npGJ9p1ySdu2RDU19P_2aE-OCsKWie_G02vcws36UIs/edit[/url])


Цитировать (выделенное)
SceneFromGIS
Программа для Bannerlord Modding Kit для создания карт сцен с использованием реальных географических данных.

Сайт автора ([url]https://scenefromgis.14egaming.com/[/url])
Скачать с нашего сайта
Скачать с нексуса ([url]https://www.nexusmods.com/mountandblade2bannerlord/mods/5538[/url])
Тема на форуме ([url]https://rusmnb.ru/index.php?topic=24707.0[/url])


Цитировать (выделенное)
Brushes Modding Kit Pack
63 новых шаблонов кисти для редактора рельефа и поверхности от NadoBelda.

Скачать с нексуса ([url]https://www.nexusmods.com/mountandblade2bannerlord/mods/5719[/url])


Цитировать (выделенное)
Brushes Jove Chiere Modding Kit Pack
38 новых шаблонов кисти для редактора рельефа и поверхности от jovechiere.

Скачать с нексуса ([url]https://www.nexusmods.com/mountandblade2bannerlord/mods/5309[/url])


Цитировать (выделенное)
HeightMapExtractor
Мод позволяет извлекать карту высот из любой нативной сцены в формате png с 16-битной глубиной в оттенках серого.

Скачать с нексуса ([url]https://www.nexusmods.com/mountandblade2bannerlord/mods/4979[/url])


Цитировать (выделенное)
SpacePot8tosEditorScripts
Несколько скриптов для редактора сцен Bannerlord от SpacePot8to.
MassVectorArgumentSetter - устанавливает векторные аргументы сразу для многих мета-сеток. Полезно при использовании слоев наложения сетки.
MaterialReplacer - заменяет один экземпляр материала другим сразу для многих сеток. Выберите сетки на основе имени объекта, тега или компонента скрипта.
PathPlacer - размещает копии сборного объекта вдоль пути. Полезно для возведения длинной стены или забора из отдельных сборных элементов.

Скачать с нексуса ([url]https://www.nexusmods.com/mountandblade2bannerlord/mods/4142[/url])
Название: Re: [BL] Руководства и инструменты по моддингу
Отправлено: potap от 07 Июля, 2023, 15:36
Цитировать (выделенное)
Troop Designer Continued
Внутриигровой инструмент на основе оригинального конструктора войск. Позволяет быстро создать пользовательские войска и необходимые xml-файлы.

Ссылки:
Скачать с нексуса ([url]https://www.nexusmods.com/mountandblade2bannerlord/mods/4901?tab=description[/url])
Инструкция ([url]https://github.com/AxelCawe/TroopDesignerRewritten/wiki/Guide[/url])



Цитировать (выделенное)
Equipment XML Print
Внутриигровой инструмент. Позволяет нажатием клавиши тильда (~) в открытом инвентаре скопировать в буфер обмена снаряжение игрока <EquipmentRoster> в формате XML для последующей вставки (Ctrl+V) в текстовом редакторе XML.

Скачать с нексуса ([url]https://www.nexusmods.com/mountandblade2bannerlord/mods/2786?tab=description[/url])
Название: Re: [BL] Руководства и инструменты по моддингу
Отправлено: potap от 28 Июля, 2023, 13:55
Цитировать (выделенное)
Использование XSLT
Тема на форуме [BL] Использование XSLT (https://rusmnb.ru/index.php?topic=24804.0)

Примеры использования XSLT для замены, удаления, добавления атрибутов и элементов в XML файлах (в теме разбиты на отдельные блоки для удобства копирования).

<!-- замена кода в исходном xml на код в xml текущего мода на примере <Settlement ... > ... </Settlement> в файле settlements.xml; ТРЕБУЕТСЯ СОЗДАНИЕ XML ФАЙЛА, в котором содержится новый код; используется, если нужно заменить элемент целиком -->
<xsl:template match="Settlement[@id='hideout_forest_1']"/>


<!-- СЛЕДУЮЩИЕ ЗАПИСИ НЕ ТРЕБУЮТ СОЗДАНИЯ XML ФАЙЛА, т.е. все изменения в исходный xml вносятся непосредственно через xslt -->

<!-- добавление отсутствующего атрибута "mother=" на примере <Hero ... /> в файле heroes.xml -->
    <xsl:template match='Hero[@id="lord_goldenhorde_6_13"]'>
        <xsl:copy>
            <xsl:apply-templates select="@*"/>
            <xsl:attribute name="mother">Hero.lord_goldenhorde_6_2</xsl:attribute>
            <xsl:apply-templates select="node()"/>
        </xsl:copy>
    </xsl:template>

<!-- удаление атрибута "mother" в исходном xml на примере <Hero ... /> в файле heroes.xml -->
    <xsl:template match="Hero[@id='lord_goldenhorde_6_10']/@mother" />

<!-- замена атрибута "name" на примере <Settlement ... > ... </Settlement> в файле settlements.xml; я использую этот код, т.к. он самый короткий -->
<xsl:template match="Settlement[@id='Golden_castle_village_K1_1']/@name">
<xsl:attribute name="name">{=Settlements.Settlement.name.ECM.Golden_castle_village_K1_1}Beshtau</xsl:attribute>
</xsl:template>

<!-- замена атрибута "text" на примере <Settlement ... > ... </Settlement> в файле settlements.xml -->
<xsl:template match="Settlement[@id='Golden_castle_village_K1_1']/@text">
<xsl:attribute name="text">{=Settlements.Settlement.text.castle_village_K1_1}The village of Beshtau (Five Mountains) is located at the foot of the five-domed mountain of the same name, after which the village is named. Local Circassians are engaged not only in breeding horses. They spend several months of the year raiding their neighbors, looting.</xsl:attribute>
</xsl:template>

<!-- замена атрибута "village_type" на примере <Settlement ... > ... </Settlement> в файле settlements.xml -->
<xsl:template match="Settlement[@id='Golden_castle_village_K1_1']/Components/Village/@village_type">
<xsl:attribute name="village_type">VillageType.steppe_horse_ranch</xsl:attribute>
</xsl:template>

<!-- замена атрибута "name" на примере <NPCCharacter ... > ... </NPCCharacter>в файле lords.xml -->
    <xsl:template match="NPCCharacter[@id='lord_goldenhorde_6_2']/@name">
        <xsl:attribute name="name">{=ECM_lord_goldenhorde_6_2}Boraqchin</xsl:attribute>
    </xsl:template>

<!-- замена атрибута "age" в дочернем узле на примере <NPCCharacter ... > ... </NPCCharacter>в файле lords.xml -->
<xsl:template match="NPCCharacter[@id='lord_goldenhorde_6_2']/face/BodyProperties/@age">
        <xsl:attribute name="age">36</xsl:attribute>
    </xsl:template>

<!-- замена нескольких одинаковых атрибутов "EquipmentSet" в дочернем узле на примере <NPCCharacter ... > ... </NPCCharacter>в файле lords.xml -->
    <xsl:template match="NPCCharacter[@id='lord_goldenhorde_6_10']/Equipments">
        <Equipments>
  <EquipmentSet id="khu_bat_template_medium" />
  <EquipmentSet id="khu_civ_template_default" civilian="true" />
        </Equipments>
    </xsl:template>

<!-- замена нескольких одинаковых атрибутов "name" в дочернем узле на примере <Culture ... > ... </Culture>в файле spcultures.xml -->
    <xsl:template match="Culture[@id='empire']/clan_names">
        <clan_names>
  <name name="Acapanos" />
  <name name="Basileus" />
        </clan_names>
    </xsl:template>


<!-- второй рабочий вариант кода для замены атрибутов; я его не использую, т.к. он громоздкий, возможно у него есть доп. возможности, о которых я не знаю, т.к. не программист -->
<xsl:template match="Settlement[@id='Golden_castle_K7']">
<Settlement>
<xsl:for-each select="@*">
<xsl:attribute name="{name()}">
<xsl:value-of select="." />
</xsl:attribute>
</xsl:for-each>
<xsl:attribute name="name">{=Settlements.Settlement.name.ECM.Golden_castle_K7}Hajji Tarkhan</xsl:attribute>
<xsl:apply-templates select="node()"/>
</Settlement>
</xsl:template>


<!-- третий вариант кода для замены атрибутов; ВНИМАНИЕ! В этом варианте текстовое значение внутри кавычек нужно дополнительно заключать в ' -->

<!-- замена атрибута "name" на примере <Settlement ... > ... </Settlement> в файле settlements.xml -->
<xsl:template match="Settlement[@id='Golden_castle_village_K1_1']/@name">
<xsl:attribute name="name">
<xsl:value-of select="'{=Settlements.Settlement.name.ECM.Golden_castle_village_K1_1}Beshtau'"/>   <!-- "'текст'" -->
</xsl:attribute>
</xsl:template>

<!-- замена атрибута "difficulty" на примере <Item ... /> ... </Item> в файле weapons.xml -->
<xsl:template match="Item[@id='crossbow_f']/@difficulty">
<xsl:attribute name="difficulty">
<xsl:value-of select="75"/>
</xsl:attribute>
</xsl:template>

<!-- замена атрибута "missile_speed" в дочернем узле на примере <Item ... /> ... </Item> в файле weapons.xml -->
<xsl:template match="Item[@id='crossbow_f']/ItemComponent/Weapon/@missile_speed">
<xsl:attribute name="missile_speed">
<xsl:value-of select="102"/>
</xsl:attribute>
</xsl:template>
Название: Re: [BL] Руководства и инструменты по моддингу
Отправлено: potap от 05 Октября, 2026, 11:05
Bannerlord Scene Toolkit

Ссылка на GitHub
https://github.com/fiefevictionnotice/BannerlordSceneToolkit (https://github.com/fiefevictionnotice/BannerlordSceneToolkit)

Обучающее видео
https://www.youtube.com/watch?v=f1uzZ-qQm3c (https://www.youtube.com/watch?v=f1uzZ-qQm3c)

[текст автора]

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

F6 - Распределение: по сетке, вдоль пути, по поверхности; зеркальное отражение; поворот. Инструменты зеркального отражения, похоже, работают гораздо лучше, чем масштабирование по отрицательной оси, которое в противном случае пришлось бы делать вручную.

F7 - Анализатор сцен: полное сканирование, проверки битв / стычек / осад, исправления, инструменты для создания меток.

F8 - Замена материалов: правила, пресеты, вывод из объекта, непрерывная перекраска, генератор шаблонов. Это, безусловно, самый полезный инструмент из всех существующих, учитывая, насколько кропотлива работа с исходными материалами и насколько прост в использовании этот инструмент, как только вы освоитесь.

F9 - Резервные копии, уведомления, сочетания клавиш, документация. Это было протестировано и работает у меня, но используйте на свой страх и риск.

Событие Calradic Campaign #88 было создано с активным использованием представленных здесь инструментов, и я не столкнулся с какими-либо необычными сбоями или проблемами повреждения карты.

На это ушло около 60–80 часов тестирования и было написано полностью с помощью Claude CLI — в основном в течение 3 недель. Несмотря на то, что я провел обширное тестирование, используйте этот инструмент на свой страх и риск. Никаких гарантий не подразумевается. Не все функции были протестированы, пожалуйста, дайте мне знать, если вы обнаружите ошибку, и большинство из них я буду готов попытаться исправить, если только это не та ошибка, которую я уже неоднократно пробовал и не смог исправить самостоятельно.

К сведению — этот инструмент был написан в основном в августе, Voda senior независимо создал инструмент, довольно похожий на функцию «генератора куч». Мне все еще нравится иметь его инструмент под рукой:

https://discord.com/channels/411286129317249035/761302555308720148/1551693198060167362 (https://discord.com/channels/411286129317249035/761302555308720148/1551693198060167362)