Голосование

Как вы оцениваете Смуту?












Оформление



Пользователей
  • Всего: 28887
  • Последний: EnaSevol
Сейчас на форуме
Пользователи: 4
Гостей: 547
Всего: 551

0 Пользователей и 1 Гость просматривают эту тему.

Тема: [MS][Other] Добавление новых баннеров  (Прочитано 36103 раз)

  • Сообщений: 317
    • Просмотр профиля
  Оказывается, на весь интернет не было нормальной инструкции, как добавить в игру еще баннеров! Конечно можно редактировать *.dds, но что делать, если хочешь добавить в игру еще пару десятков лордов? Надо больше баннеров! Мне довелось жутко измотаться, пока я выяснил все тонкости. По этому захотелось наконец создать нормальную инструкцию.
  На создание этого урока меня толкнул вопрос Swadian Knight'а, так что его тоже в каком-то роде можно поблагодарить.

Примечание:
Для удобства я выделяю все по данной схеме:
Синий - искомый текст.
Зеленый - добавленный текст.
Красный - замененный текст.
Серый - исходный текст файла.


Итак:
Добавление новых баннеров
1.134                                                           

Добавление баннеров плохо совместимо с сохранениями!
 В сохраненной игре новые баннеры могут стать в неожиданном месте (у королей, например).
 Так что имейте это ввиду перед добавлением баннеров.

1. Инструментарий
  Нам понадобится:
- *.BRF редактор (урок сделан на основе OpenBFR);
- *.DDS редактор (не обязательно, не нужен для создания текстуры, но ее и скачать можно, если лень рисовать);
- Модульная Система;

2. Новые баннеры
  В общем как раз на эту тему есть много инструкций, не буду расписывать. Создать свои баннеры можно и просто поставив их поверх уже готовых в редакторе DDS. Особого ничего знать не нужно. Хватит и знаний от пользования paint'ом. А кто знаком с photoshop, так можно даже это не читать.
  В общем нам надо создать/скачать баннеры и назвать их "banners_h.dds". Вообще-то название абсолютно ни на что не влияет. Можете назвать хоть "as7bnstydfxr5g.dds", но "banners_h.dds" - простой и удобный вариант.

3. Новая текстура

  Вот тут начинается поподробнее...
  Итак, запускаем BRF редактор и открываем им файл "...\Mount and Blade. Warband\CommonRes\materials.brf":

Прокручиваем все ресурсы слева, пока не наткнемся на "banners". Выбираем "banners_g", затем "Import"->"New Material". Жмем Browse и показываем программе наши "bannres_h.dds", которые желательно было закинуть в папку ко всем остальным текстурам.


  Теперь мы видим наши новые баннеры в списке. На всякий случай сделайте все настройки (кроме имени текстуры "DiffuseA") в красном прямоугольнике такие же, как у остальных баннеров.


4. Создание mesh'ей (banners)
  Теперь надо добавить в игру все эти баннеры по отдельности... Для этого существуют меши.
  Открываем "...\Mount and Blade. Warband\CommonRes\banners.brf". Видим целую кучу баннеров. Прокручиваем до начала "arms":


  Что бы долго не парится, дулаем следующий фокус (пошагово):
а) Выделяем 21 баннер из серии "bannefs_f" и делаем ctrl+C, ctrl+V (копировать - вставить). Видим кучу баннеров banners_f.


б) Выделяем вставленные (а не оригинальные) баннеры от "banner_f01" до "banner_f21" и жмем ПКМ -> "Group Rename"

  Вводим "banner_h" (без циферок). И та-дам! Все баннеры стали "banner_h" с циферками.

в) Выделяем все "banner_h". И в поле "Material" меняем букву на "h". Все! 21 баннер с новой текстуры готов.

  Сохраняем наш результат. На заикания программы отвечаем "yes".

  Если вам интересно, что за "arms" - это прямоугольные варианты баннеров, у которых внизу вырез. Просто сравните "banner_a01" и "arms_a01" и поймете.
  Наши баннеры и так без выреза, по этому arms мы не создаем. Но вы можете сделать себе баннеры с вырезом, путем копирования таковых и прописывания своей текстуры. Но потом придется на баннеры с вырезом создать соответствующие arms. Это точно такие же меши, только с другим названием. У вас должно легко получится это сделать.

4. Создание mesh'ей (map_icons)
  Открываем "...\Mount and Blade. Warband\CommonRes\map_flags_c.brf" и делаем точно то же самое, что в п.3.
  Можете попробовать и с другими типами флагов (map_flags_a, map_flags_b), то для этого надо иметь побольше знаний о работе с мешами и текстурами (не хватит флагов, что бы только скопировать, надо будет создавать вручную). Вы можете прочитать это в уроках по BRF на этом же форуме. Тут я расписывать это не буду, т.к. это урок по баннерах, а не по BRF.

5. Модульная система
  Теперь надо, чтобы игра могла воспринять наши новые баннеры.
А.  В module_mesher.py где-то на середине находим баннеры и дописываем новые перед баннерами королевств.
  Второе название (после нолика) - название mesh'а! Запомните это, если  будете еще добавлять баннеров.
  Можно заметить одну недоработку - 10 продублированных баннеров... Вообще-то на их месте должен был быть 21 баннер из "banners_f.dds"... Но что-то не слиплось... Баннеров из banners_f.dds в игре нет вообще. Для них даже не созданы меши. Не знаю, что думали разработчики, когда прописывали баннеры...
  Вы сможете можете исправить это, пользуясь знаниями из этого урока =)

B.  Теперь в том же module_mesher.py идем ниже, до точно такой картины, как прежде, но только с "arms". И делаем то же самое:
Тут (да в общем и везде с баннерами) второе название - тоже mesh. Мы используем для arms меши баннеров, т.к. они и так прямоугольные... Если вы прошли прошлые шаги, то должны понимать о чем речь...

C.  Теперь снова надо приписывать каждый баннер!!! На этот раз в module_scene_props.py. Там ну точно то же самое, что и прошлые 2 раза, но искать будем немного другую по структуре строку:

D. И еще раз надо все баннеры прописать (вот же запара с баннерами, да?). Открываем на этот раз module_map_icons.py, чтобы баннеры отображались на карте.
 75% этого файла - баннеры, гы-гы  :laught:.
 Ищем синее, дописываем зеленое, как и всегда:
  Обратите внимание на номера. Последний "banner_136" лучше оставить, как есть, а новые продолжать писать с 137. Это не повлияет на восприятие их игрой, она будет читать все баннеры до "banner_136" независимо от названия (это определяется константами). Но название пригодится игре для иных целей.

  Вписывать баннеры закончили. Но это еще не все, нет...
E.  Идем в module_constants.py и изменяем количество баннеров в соответствии с добавленными (в данном случае +21):

  Теперь настроим цвета фона (цвет спины на геральдических доспехах) баннеров. Идем в module_scripts.py, ищем, дописываем:
  Внимание! Порядковый номер баннеров точно совпадает с их порядковым номером в текстурах! Счет начинается от верхнего левого баннера и идет по строкам (как буквы в книге). Ну а текстуры в таком порядке, как они расположены в materials.brf. Имейте это ввиду!
  Внимание еще раз! Цвет определяют только цифры, выделенные фиолетовым:"0xFF000000". Это обычный код цвета в 16-ричной системе исчисления. Его можно узнать, например, в фотошопе, или в интернете по запросу "16-ричные коды цветов"...
  Цвета я не устанавливал, они все сброшены на черный.

  И о наконец-то! Последний штрих!
F. Идем в module_presentations.py, ищем презентацию баннеров и добавляем новые страницы, чтобы баннеры стали доступны не только ботам, но и самому игроку!
  Красное число точно повторяет будущее количество страниц...

  Все! Я очень надеюсь, что ничего не упустил. Если все сделали точно как в инструкции, но не получилось, то пишите в тему...
« Последнее редактирование: 17 Августа, 2011, 07:40 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 97
    • Просмотр профиля
0
« Ответ #1 : 16 Июля, 2011, 13:12 »
 :thumbup: все отлично работает, огромное спасибо, Arantir, за тяжелую проделанную работу  :)

А самое главное - все понятно и по полочкам :)
« Последнее редактирование: 16 Июля, 2011, 13:21 от Swadian Knight »
  • Ник в M&B: Граф Людвиг
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #2 : 13 Августа, 2011, 15:18 »
Arantir подскажи пожалуйста.
В 3 пункте всё-таки  "Import"->"New Texture" или "Import"->"New Material". А может вместе надо ставить.
Когда жму "Import"->"New Texture" Возникает окно "Texture(1)", а в список не добавляет.
Если же "Import"->"New Material", то врод бы дальше всё по схеме - меши ставятся нормально.
А когда после всего запускаю игру, то вылетает и выдаёт : get_object failed for texture: banners_h.
Если делаю вместе "Import"->"New Texture" и "Import"->"New Material" то игра загружается, а банеры нет.  Хотя, если переименовать banners_h на banners_g, то эти банеры грузятся.
Не могу понять в чём дело. :blink:

  • Ник в M&B: Fin___Gall
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #3 : 14 Августа, 2011, 05:09 »
FinGall, да, надо все-таки "New Material". Описался чуток, хотя на скринах видно, что добавил именно "material", т.к. banners_h все же во вкладке materials находятся. Вместе не надо! На все 522 материала ни одной текстуры не добавили и все работает же... Материал и есть текстурой (в данном случае).

А когда после всего запускаю игру, то вылетает и выдаёт : get_object failed for texture: banners_h.
Имена материалов/тектур и пр. во всех местах правильно указаны?
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #4 : 14 Августа, 2011, 09:44 »
ОпенБРФ же их видит. Я взял одну текстуру из "Пендора" и переименовал на "banners_h". Если назвать этот же файл "banners_g" ,то в игре появляются вместо родных. А вот "banners_h" не желает находить.
Ладно. Я ещё покручу и потом сообщу, что вышло. =/
  • Ник в M&B: Fin___Gall
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #5 : 15 Августа, 2011, 19:01 »
Arantir
Не могу сказать, что совсем ничего не получилось. Но то, что получилось я и сам не могу понять.  :)
Я долго пытался вставить banners_h. Писал в разные директории, сохранял как картинку и снова превращал в DDS. Смотрел, как в других модах прописаны. Но результат был один и тот же - EROOR RGB  get_object failed for texture: banners_h.
В конце решил использовать текстуру banners_f.dds, которая лежит вмесе с другими текстурами и почему-то не исползуется в этой версии.
Заменил везде banners_h на banners_f. После этого игра загрузилась, но новые банеры не появились. И у лордов их небыло. Я решил проверить и в скриптах приписал их фракциям:
      (faction_set_slot, "fac_kingdom_6", slot_faction_banner, "mesh_banner_kingdom_e"),
      (faction_set_slot, "fac_kingdom_7", slot_faction_banner, "mesh_banner_h01"),
      (faction_set_slot, "fac_kingdom_8", slot_faction_banner, "mesh_banner_h02"),
          ........
У меня 30 фракций, все банеры вошли. Только после этого они появились у королей в игре. А у лордов их нет. Причину так и не понял.
Подскажи пожалуйста. Есть ли возможность самому распределять банеры между персонажами?   А то, у них повторяются.
  • Ник в M&B: Fin___Gall
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #6 : 16 Августа, 2011, 17:59 »
banners_end_offset не забыл исправить?

Подскажи пожалуйста. Есть ли возможность самому распределять банеры между персонажами?   А то, у них повторяются.
(party_set_banner_icon, <party_id>, <map_icon_id>)
slot_troop_banner_scene_prop
« Последнее редактирование: 16 Августа, 2011, 18:13 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #7 : 16 Августа, 2011, 20:09 »
banners_end_offset = 157 (всё проверял несколько раз)

Цитировать (выделенное)
(party_set_banner_icon, <party_id>, <map_icon_id>)
slot_troop_banner_scene_prop
Arantir
Извини за тупость. Напиши пожалуйста, как это будет для лорда, как для неписи и как для претендента? :blink:
  • Ник в M&B: Fin___Gall
  • Сообщений: 317
    • Просмотр профиля
0
« Ответ #8 : 17 Августа, 2011, 07:33 »
Извини за тупость. Напиши пожалуйста, как это будет для лорда, как для неписи и как для претендента? :blink:
Без разницы.
Делается так:
Цитировать (выделенное)
(troop_set_slot, <troop_id>, slot_troop_banner_scene_prop, <mesh_id>),
(troop_get_slot, ":party_id", <troop_id>, slot_troop_leaded_party),
(party_set_banner_icon, :party_id",  <map_icon_id>)
,
Хотя разница есть... Если у претендента и НПС еще нету своего отряда, то достаточно только первой строчки.

Mark7, операция, вообще-то, была для отряда, а не для юнита.
« Последнее редактирование: 17 Августа, 2011, 07:38 от Arantir »
Багов в чужих скриптах не исправляю! Скриптов по просьбе не пишу и на заказ не делаю! Я всего лишь любитель поиграть в M&B, и ничего более.
  • Сообщений: 2740
  • За создание крупных модов и других особо сложных проектов
    • Просмотр профиля
0
« Ответ #9 : 17 Августа, 2011, 07:38 »
 :o Моего сообщения не вижу.

Arantir, Да вы правы, я перепутал не посмотрел.
  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #10 : 17 Августа, 2011, 14:12 »
Спасибо Arantir!
Всё работает. Похоже, я нашёл причину сбоев. :)
Когда присваивал лордам банеры, меши сдвигались относительно идентификаторов на 31 позицию.
То есть, с mesh_banner_a01 по mesh_banner_b10 вообще не появлялись, а вместо mesh_banner_b11 появлялся mesh_banner_a01 и т.д.
У меня 31 фракция и я решил, что причина в этом. Сделал по схеме для 6 фракций и всё нормально получилось. Скорее всего дело в этом.
Возможно, ест константа, которую меняют при добавлении новых фракций. Или что-то ещё. Хотя странно! Ведь, как банеры королевст все 147 мешей загружаются нормально. =/
  • Ник в M&B: Fin___Gall
  • Сообщений: 198
    • Просмотр профиля
0
« Ответ #11 : 14 Октября, 2011, 15:17 »
а как создать свой banners_h.dds? со своими картинками из формата .jpg и какого размера они должны быть? :embarrassed:
  • Ник в M&B: Shah
  • Фракция: Сарраниды
  • Сообщений: 2084
  • За создание крупных модов и других особо сложных проектов
    • Просмотр профиля
0
« Ответ #12 : 14 Октября, 2011, 17:01 »
Elmario, берешь banners_a.dds например, вставляешь туда свои картинки в графическом редакторе, переименовываешь и сохраняешь.
Формат 1024x1024
  • Фракция: Свады
  • Сообщений: 198
    • Просмотр профиля
0
« Ответ #13 : 15 Октября, 2011, 21:50 »
Я добавил седьмую державу в нейтив и хочу теперь к ней и ее лордам приписать баннеры. Хочу привязать мои баннеры к строго к Персидской Империи (седьмая фракция). Как это сделать? На данный момент сделал все по инструкции и вот что получилось.





Добавлял вот это.

Свой пак делал так.
1. открыл banners_a.dds фотошопом 12.1
2. сохранил в banners_a.jpg
3. banners_a.jpg открыл паинтом, выделил один из флагов и сохранил его отдельным файлом, назвал banners_a1.jpg
4. открыл свою картинку, которую назвал banners_a2.jpg в паинте и подогнал ее по размеру файла banners_a1.jpg, сохранил как banners_a2.jpg
5. на открытый в фотошопе banners_a.dds начал липить свой баннер banners_a2.jpg, после того как все флаги были залеплены моим, сохранил как banners_h.dds
6. копи пастем заменил аналагичные файлы в папках с игрой.
« Последнее редактирование: 15 Октября, 2011, 22:24 от Elmario »
  • Ник в M&B: Shah
  • Фракция: Сарраниды
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #14 : 16 Октября, 2011, 14:24 »
Elmario Че-то к твоим картинкам всё время спам цыпляется. Нифига не увеличишь.

Если у тебя материал и текстура нормально прописаны в БРФ (по всем пунктам, как на других банерах),
то попробуй ещё раз пересохранить текстуру в формате dds. Посмотри, чтоб там небыло какой-нибудь альфы.
В модуле скрипт банеры сами распределяются. Лучше сам пропиши нужный банер нужному лорду, где-нибудь в конце скрипта "game_start".

 (faction_set_slot,"fac_ккк",slot_faction_banner,"mesh_ввв")------- Даёт банер "mesh_ввв"фракции "fac_ккк" и её королю.

 (troop_set_slot,"trp_ххх",slot_troop_banner_scene_prop,"spr_ввв")- Даёт банер "spr_ввв" лорду "trp_ххх".

Судя по последниму изображению, тебе хватит одного банера.
  • Ник в M&B: Fin___Gall
  • Сообщений: 198
    • Просмотр профиля
0
« Ответ #15 : 16 Октября, 2011, 17:04 »
то попробуй ещё раз пересохранить текстуру в формате dds. Посмотри, чтоб там небыло какой-нибудь альфы.
при сохранении из фотошопа в настройках надо что-нибудь менять?

 

Добавлено: 16 Октября, 2011, 17:56

(faction_set_slot,"fac_ккк",slot_faction_banner,"mesh_ввв")------- Даёт банер "mesh_ввв"фракции "fac_ккк" и её королю.
(troop_set_slot,"trp_ххх",slot_troop_banner_scene_prop,"spr_ввв")- Даёт банер "spr_ввв" лорду "trp_ххх".
Думаю чтобы это заработало нужно еще в materials.brf обозначить существование седьмой фракции? А то ругается.


Судя по последниму изображению, тебе хватит одного банера.
Да для начало хотя бы один всем привязать))
« Последнее редактирование: 16 Октября, 2011, 17:56 от Elmario »
  • Ник в M&B: Shah
  • Фракция: Сарраниды
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #16 : 16 Октября, 2011, 19:11 »
Я переделываю текстуры в Paint.NET. Там можно сохранять по разному. Но раз ругается, то где-то не так прописано.  Например, в module_mesher.py нет такого банера.
В module_scripts королевству можно присвоить любой банер из module_mesher. Лишь бы он был там прописан.
         (faction_set_slot, "fac_kingdom_7", slot_faction_banner, "mesh_banner_d01"),

А вообще БРФ-файл для банеров, делается так-же, как и для других предметов своего мода:
  • Ник в M&B: Fin___Gall
  • Сообщений: 198
    • Просмотр профиля
0
« Ответ #17 : 21 Октября, 2011, 09:09 »
В banners.brf добавил banner_kingdom_h а потом сделал все так как посоветовал. Результат остался такой же.

Затем добавил в скриптс вот это

Модулька одобрила, но в игре лорды седьмой фракции все равно произвольно выбирают себе знамена. Только у трех лордов баннеры мои. И также не отображаются.
  • Ник в M&B: Shah
  • Фракция: Сарраниды
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #18 : 21 Октября, 2011, 09:43 »
Просто игра раздала банеры уже после тебя. Пропиши это всё в конце скрипта "game_start".
  • Ник в M&B: Fin___Gall
  • Сообщений: 198
    • Просмотр профиля
0
« Ответ #19 : 21 Октября, 2011, 10:21 »
Хорошо попробую  ;) Создал тему, по своему мега моду :D http://rusmnb.ru/index.php?topic=12461.new#new
 

Добавлено: 21 Октября, 2011, 20:25

Все, очень вам благодарен сударь. Получилось! Теперь у персов свои баннеры. В конец модуля module_scripts добавил. Выглядит так:
Теперь бы еще заставить баннеры отображаться корректно. По-моему они у меня не ставятся из-за слишком хорошего качества картинки!?
« Последнее редактирование: 21 Октября, 2011, 20:25 от Elmario »
  • Ник в M&B: Shah
  • Фракция: Сарраниды
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #20 : 22 Октября, 2011, 05:18 »
Проверь Shader. Должен стоять tex_mul_color_mul_factor_alpha. Вобщем, посмотри, как у других банеров сделано.
  • Ник в M&B: Fin___Gall
  • Сообщений: 198
    • Просмотр профиля
0
« Ответ #21 : 24 Октября, 2011, 13:26 »


У меня там в списке куча вариантов, какой нужно?
« Последнее редактирование: 24 Октября, 2011, 13:48 от Elmario »
  • Ник в M&B: Shah
  • Фракция: Сарраниды
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #22 : 24 Октября, 2011, 14:02 »
DXT1
Как выдаёт по умолчанию, так и сохраняй.
  • Ник в M&B: Fin___Gall
  • Сообщений: 198
    • Просмотр профиля
0
« Ответ #23 : 24 Октября, 2011, 14:18 »
DXT1
Как выдаёт по умолчанию, так и сохраняй.
Я вроде так и делаю  :cry:

В файле module_constants.py нашел это:


тут может тоже нужно что-то для баннеров прописать?
  • Ник в M&B: Shah
  • Фракция: Сарраниды
  • Сообщений: 1697
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
0
« Ответ #24 : 24 Октября, 2011, 14:31 »
Если ты сделал всё, как в теме, то здесь прописывается только количество банеров banners_end_offset = 157.
Вообще, можно проверить. Постав вместо своих банеров текстуры старых банеров. Если они не появятся в игре, то дело не в текстурах, а в где-то в модульке или брф-файле.
  • Ник в M&B: Fin___Gall

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC