Как сделать иконку для глобальной карты в OpenBRF (Часть 1)




Данный гайд является переводом. Оригинал находится на TaleWorlds.

Откройте файл ani_man_walk.brf с помощью OpenBRF, который находится в папке CommonRes. Выберите man_walk и посмотрите, как идет скелет из октаэдров. Чтобы использовать кадры из этой циклической анимации для вашей иконки, щелкните по нему правой кнопкой мыши и выберите 'Add to reference animations' (последняя опция в контексном меню).

Теперь нужно одеть выбранный скелет.

С помощью OpenBRF откройте armours_e.brf (File -> Open), который находится в папке CommonRes. Выберите lamellar_vest_a. Вы увидите, данная модель имеет 1326 полигонов. Это слишком много для иконки. Поэтому выберите lamellar_vest_a.lod2 вместо lamellar_vest_a - он имеет только 132 полигона и все еще сохраняет достаточную детализацию, что идеально подходит для значка карты. Скопируйте этот меш: Edit -> Copy.

Затем откройте меню 'File' в строке меню OpenBRF и выберите 'New'. В меню 'Edit' выберите 'Paste', а затем в меню 'File' выберите 'Save as...'. Дайте вашему рабочему файлу подходящее имя, я предлагаю 'icon_test' и сохраните его в ...Warband\Modules\Native\Resource или ...Warband\Modules\<Папка вашего мода>\Resource; не загромождайте CommonRes.

Поздравляем, теперь у Вас есть безголовая, безрукая, безногая иконка.

 


Хорошо, давайте перейдем к meshes_face_gen.brf, который находится в папке CommonRes. Здесь вы увидите половину нетекстурированной мужской головы. Забудьте об этом - у данной модели 449 полигонов на половину головы: это слишком много. Скопируйте уродливую нетекстурированную заглушку под названием male_head.lod2, который имеет только 24 полигона для всей головы и вставьте ее в ваш файл icon_test.brf.

Давайте дадим нашей заглушке лицо - измените ее материал с 'default' на 'manface_young', и она начинает выглядеть как голова человека. Теперь, если вы одновременно выделите свою голову и броню, вы увидите, что не хотят объединяться друг с другом. В Warband и OpenBRF меши объединяются только в том случае, если они имеют одно и то же имя. Итак, выделите обе меши в OpenBRF, щелкните правой кнопкой мыши, выберите 'Group Rename...' и введите 'x.'. Теперь они являются компонентами одной меши, называемой x, и когда вы выделяете их, обе меши объединяются. Тем не менее, голова находится там, где должны быть ноги, потому что они не подстроенны друг под друга. Поэтому выделите только голову, щелкните правой кнопкой мыши и выберите 'Mount on one bone...'.
Появится окно, в котором задайте следующие параметры:
Reference skeleton:       skel_human
bone:                         head
(optional) carry location:  none
Piece currently centred:   at origin
Затем нажмите OK, а затем сохраните свой файл icon_test.brf.

Теперь иконка имеет голову.


 


Давайте дадим иконке руки. В body_meshes.brf посмотрите m_handL и m_handR. Они отлично работают в OpenBRF, но имеют слишком много полигонов - 996. Мы можем жить с m_handL.lod1 и mhandR.lod1 (32 полигонов): скопируйте и вставьте их в ваш icon_test.brf и переименуйте их: 'm_handL.lod1' -> 'x.m_handL.lod1' и 'm_handR.lod1' -> 'x.m_handR.lod1'. Как и голова, они лежат у ног. Поэтому используйте 'Mount on one bone...' для установки x.m_handL.lod1 на кости hand.L, а затем x.m_handR.lod1 на кости hand.R. Затем сохраните свой файл icon_test.brf.




Прежде чем мы пойдем дальше, нам также следует помнить, что иконки карты могут использовать лишь один материал. Мы можем комбинировать текстуры (я расскажу как это можно сделать позже), но лучше всего минимизировать число тех текстур, которые будут использоваться. Поэтому выделите наши две руки и измените их материал с 'costumes_lod' на 'manface_young', поскольку мы уже готовы использовать его. Как вы можете видеть, руки по-прежнему имеют цвет кожи, а глаза и носы не отображаются, без ненужной третьей текстуры - достаточно хорошо для значка карты, поэтому сохраните свой icon_test.brf.

Для ботинок, откройте boots_a.brf и скопируйте и вставьте spl_greaves в свой файл icon_test.brf. Щелкните правой кнопкой мыши его сетку и переименуйте ее из spl_greaves в x.spl_greaves. К счастью, splinted greaves уже расположены правильно. Тем не менее, наши ботинки имеют на 292 полигонов, а в boots_a.brf не было доступного LOD. Ничего, мы можем сделать наши собственные LOD'ы. Щелкните правой кнопкой мыши на x.spl_greaves в OpenBRF и выберите 'Compute LODs'. Это дает нам четыре LOD'а, но нам нужен только x.spl_greaves.lod1 (145 полигонов): выделите все остальные мещи x.spl_greaves*, щелкните правой кнопкой мыши и выберите 'Remove'.

Сохраните свой icon_test.brf, и теперь мы имеем лысого солдата.


 

Вместо того, чтобы дать иконке ему волосы, дайте ей шлем: откройте helmets_f.brf, который находится в папке CommonRes, скопируйте и вставьте tattered_steppe_cap_a_new.lod2 (82 полигона) в свой icon_test.brf. Переименуйте его в x.tattered_steppe_cap_a_new.lod2 и установите шлем на голову: 'Mount on one bone...' с параметрами как для головы. Этот шлем использует материал helmets_new_f из Warband. Чтобы сэкономить на текстурах, выделите наши splinted greaves (x.spl_greaves.lod1) и измените его материал с costumes5_skin на helmets_new_f (так что две модели разделяют эту текстуру). Чтобы использовать кольчужную часть этой текстуры, щелкните правой кнопкой мыши на сапогах и выберите 'Transform texture coords' и введите следующие параметры в всплывающем окне:
scale% U: 200,00
scale% V: 200,00
Translate U: 0.0000
Translate V: 0.3500
и нажмите ОК, это даст нам кольчужные ботинки и на одну текстуру меньше.

Сохраните свой файл icon_test.brf. Теперь мы имеем безоружного солдата, состоящего из 415 полигонов.

 

Для меча можно скопировать и вставить sword_medieval_a.lod1 (50 polys) из weapon_meshes_c.brf, который находится в папке CommonRes. Переименуйте его: sword_medieval_a.lod1 -> x.sword_medieval_a.lod1. Установите его в руку, используя 'Mount on one bone', но на этот раз установив кость item.R, которая помещает меч в правую руку солдата.
Сохраните свой файл icon_test.brf. Теперь мы имеем вооруженного солдата. Теперь нажмите кнопку анимации OpenBRF и измените ее с no anim на man_walk, а затем нажмите кнопку >, чтобы проиграть анимацию.

 
Теперь солдат вооружен и опасен!

Для щита скопируйте и вставьте shield_round_e.lod1 (14 полигонов) из shields.brf. Переименуйте в x.shield_round_e.lod1 и установите его с помощью 'Mount on one bone' на кости forearm.L. Это выглядит великолепно, но мы превысили число текстур (мы хотим использовать четыре разных материала).
Чтобы сэкономить на текстурах, измените материал вашего меча с weapon2 на helmets_new_f (так же, как и для шлема), что дает нам перепутанную текстуру. Чтобы исправить это, щелкните правой кнопкой мыши на мече и выберите 'Transform texture coords' и введите следующие параметры в всплывающем окне, чтобы изменить его новую текстуру:
scale% U: 25.00
scale% V: 25.00
Translate U: 0.0000
Translate V: 0.0500
и нажмите ОК.

Теперь солдат готов к битве, и ему требуется только 479 полигонов.
 

Используйте колесико мыши, чтобы отдалить камеру в OpenBRF, чтобы проверить, как солдат будет выглядеть в масштабе глобальной карты, и заставьте его ходить. Выглядит неплохо.

 

Теперь мы должны покинуть OpenBRF для создания единой комбинированной текстуры, так как иконки карты могут содержать только один материал. В редакторе изображений создайте пустое изображение размером 1024 x 1024 пикселя. Импортируйте lamellar_vest_a.dds из папки Textures Warband'а и измените его размер с 1024 x 1024 пикселей до 512 x 512 пикселей. Скопируйте все изображение и вставьте его в верхний левый квадрант вашего пустого изображения 1024 x 1024.

 

Импортируйте manface_young.dds из папки Textures Warband'а. Поскольку данное изображение уже имеет размер 512 х 512 пикселей, то скопируйте и вставьте его в верхний правый квадрант вашего 1024 х 1024 изображения.
Импортируйте helmets_new_f.dds из папки Textures Warband'а. Поскольку данное изображение уже имеет размер 512 х 512 пикселей, то скопируйте и вставьте его в левый нижний квадрант вашего 1024 х 1024 изображения.
Теперь импортируйте последнюю текстуру shields.dds из папки Textures Warband'а и измените ее размер с 1024 x 1024 пикселей до 512 x 512 пикселей. Затем скопируйте и вставьте ее в нижний правый квадрант вашего изображения размером 1024 x 1024 пикселя.

 

Сохраните его в формате dds как map_icon_new_tex в ......Warband\Modules\Native\Textures или ...Warband\Modules\<Папка вашего мода>\Textures.

Затем вернитесь в OpenBRF и откройте файл materials.brf в папке CommonRes Warband'а. Скопируйте материал map_icons и вставьте его в свой icons_test.brf. Глядя на этот материал, вы можете видеть, что значки карт используют особый шейдер, и не имеют DiffuseB, Bump- или Normalmap, Enviro или Specular. Чтобы использовать шейдер и настройки этого материала, нам просто нужно заменить текстуру DiffuseA. Итак, нажмите кнопку 'Import' в строке меню OpenBRF, выберите 'New Texture...', нажмите 'Browse' (также добавьте новый материал с тем же именем), и импортируйте map_icon_new_tex. Теперь выберите map_icons на вкладке материалов и измените ее текстуру DiffuseA с map_icons на map_icon_new_tex, переименуйте этот материал map_icon_combined и сохраните свой brf-файл.

Сложная часть - это привязка комбинированной текстуры к нашим мешам.
Сначала всем нашим мешам присвойте материал map_icon_combined.
А теперь мы должны трансформитовать текстурные координаты наших моделей с помощью 'Transform texture coords'.
Выполните это для всех нижеперечисленных мешей. Параметры трансформации текстур вам тоже будут ниже даны.
Итак:
x.lamellar_vest_a.lod2:
scale% U: 50.00
scale% V: 50.00
Translate U: 0.0000
Translate V: 0.0000

голова и руки:
scale% U: 50.00
scale% V: 50.00
Translate U: -0.5000
Translate V: 0.0000

шлем и меч:
scale% U: 50.00
scale% V: 50.00
Translate U: 0.0000
Translate V: -0.5000

ботинки:
scale% U: 50.00
scale% V: 50.00
Translate U: 0.5000
Translate V: -0.5000

щит:
scale% U: 50.00
scale% V: 50.00
Translate U: -0.5000
Translate V: -0.5000

Все меши теперь используют один материал! Однако не все ваши меши имеют одинаковое количество фреймов. У всех мешей он один, кроме пластинчатого жилета, который имеет три фрейма. Мы можем комбинировать эти меши только при условии, что они имеют одинаковое количество фреймов. Итак, выделите x.lamellar_vest_a.lod2, щелкните правой кнопкой мыши и выберите 'Separate all frames' в контексном меню. Удалите 'x.lamellar_vest_a.lod2_frame1' и 'x.lamellar_vest_a.lod2_frame2'. Теперь вы можете выделить все свои сетки, щелкнуть правой кнопкой мыши и выбрать комбинацию мешей.

У вас есть новая композитная модель, просто называемая x. Переименуйте эту новую модель из x в my_map_icon и сохраните свой icon_test.brf.

Теперь сделаем ей вершинную анимацию. С анимацией man_walk, выбранной в анимационной кнопке OpenBRF, щелкните правой кнопкой мыши my_map_icon и выберите 'Convert into a vertex animation'. Теперь у вас есть новая модель с именем my_map_icon_walk без кнопки анимации и с 33 кадрами. Нажмите кнопку >, чтобы увидеть, как солдат идет.

К сожалению, движок Warband использует упрощенные анимации на глобальной карте, поэтому нам нужно уменьшить количество кадров и использовать тайминги Native. После сохранения вашего icon_test.brf откройте файл map_icon_meshes.brf в папке CommonRes, скопируйте модель игрока (player) и вставьте ее в свой файл icon_test.brf. Теперь Вы можете видеть, что модель игрока имеет только 11 кадров. Кадр 0 - кадр с положением модели с оружием в позиции Т, который никогда не используется на глобальной карте.

Выделите my_map_icon_man_walk и разделите все кадры (separate all frames), получив в итоге 33 кадра и не получив T-позицию. Мы можем использовать frame0 для наших первых двух кадров (Edit -> Copy, Edit -> Paste), поскольку первый кадр никогда не используется. Теперь нам нужно 9 других из оставшихся 32, примерно по одному на каждые 3.5. Используйте alt и стрелку вверх / вниз для перемещения отдельных кадров до тех пор, пока вы не создадите вертикальный список в следующем порядке:

my_map_icon_walk_frame0
my_map_icon_walk_frame1
my_map_icon_walk_frame4
my_map_icon_walk_frame8
my_map_icon_walk_frame12
my_map_icon_walk_frame15
my_map_icon_walk_frame19
my_map_icon_walk_frame22
my_map_icon_walk_frame25
my_map_icon_walk_frame28
my_map_icon_walk_frame32

Номера не имеют значения, OpenBRF объединяет их на основе своих позиций в вертикальном списке. Теперь выделите эти 11 кадров, щелкните правой кнопкой мыши и выберите 'merge as frames in a vertex ani'.

Теперь у вас есть одинадцатикадровая модель с неправильными таймингами. Итак, выделите модель игрока, выберите Edit в строке меню OpenBRF и Copy. Затем выделите новую одинадцатикадровую иконку и вставьте тайминги из меню редактирования в OpenBRF. Теперь иконка синхронизируется с движком Warband. На самом деле это единственная моделька, которую нужно сохранить. Чтобы избежать путаницы, переименуем ее в my_final_map_icon. Теперь Сохраните ваш icon_test.brf.

Ну вот и все, моделька создана. Теперь нужно прописать ее в модульной системе, и прописать load_mod_resource = icon_test в module.ini

Конечно, таким образом можно создавать более сложные модели:

1. Группы - если вы хотите сделать иконку группы, подобный иконкам в Viking Conquest, сделайте три копии иконки одного воина, сместите две из них. Вы можете сгруппировать любые вертексные анимации, если они имеют одинаковое количество кадров, одинаковые временные рамки и один и тот же материал. Ясно, что проще всего, если все солдаты в группе однотипны.

2. Маунты - лошади используют другие скелеты и анимации, но принцип остается тем же. К сожалению, базовая анимация лошади содержит несколько сотен кадров, что делает подбор подходящих кадров для вершинной анимации болью. Помните, что если вы хотите совместить их с всадником, обе иконки должны использовать один и тот же материал. Таким образом, один квадрант вашей общей текстуры должен быть посвящен текстуре лошади.

3. Всадники - сделаны так же, как пехотинцы, но используют анимацию верховой езды. Затем объедините меши с иконкой лошади. Трудная часть - выбор правильных кадров для синхронизации движения лошади и всадника. Иногда вам также нужно обманывать и настраивать положение всадников, прежде чем комбинировать его / ее с лошадью.

4. Тележки - единственными движущимися частями являются колеса. Просто сделайте каждый отдельный кадр, вращая модель колес. Остальная тележка одинакова в каждом кадре. Затем вершинная анимация двух колес, одна тележка и лошадь могут быть сгруппированы с получение комбинированной модели (убедитесь, что все они имеют одинаковое количество кадров, временные рамки и материалы).

5. Текстуры - чем больше бит вы добавляете, тем больше текстур вам понадобится. Использование иллюстрированных четырех квадрантов может быть предельным, но те же самые принципы могут быть использованы для разделения любого из ваших четырех квадрантов на четыре субквадрата 256 х 256 пикселей. Лучший способ сделать это - частично текстурировать иконку с четырьмя квадрантными материалами, используя руководство. Затем измените размер этой пиксельной текстуры размером 1024 x 1024 пикселей на 512 x 512 пикселей и вставьте ее в квадрант новой пустой текстуры. Это обычно приводит к тому, что последующее преобразование координат текстурных координат выполняется так же, как показано выше, но не всегда - координаты UV могут быть сложными.

 
Часть 2



- используйте эту кнопку если вы обнаружили ошибку/искажение содержимого/отсутствие контента в новости или если хотите сообщить администрации о выходе новой версии мода и т.п.

Комментариев 19

Мододел
Edvardt
Офлайн 9 июня 2018 06:01 поделиться
А можно вопрос: Как сделать себе иконку замка,деревни,палатки? Мне для мода нужны парочка других моделек замков.


Ух ты, подпись
Мододел
Edvardt
Офлайн 9 июня 2018 06:13 поделиться
Как сделать себе не человека для глобальной карты, а дереню или другую модель?


Ух ты, подпись
Царь
syabr
Титул: Главный динозавр и ГГ сайта
Офлайн 9 июня 2018 08:49 поделиться
Вообще, будет проще взять готовое ОСП. Порыскай в разделе минимодов, там точно были наборы иконок замков.


Танки грязи не боятся, сама отвалится
Я на Всадниках Кальрадии: https://rusmnb.ru/index.php?action=profile;u=18932
Друг сообщества
Janycz
Офлайн 9 июня 2018 14:01 поделиться
Цитата: Edvardt
Как сделать себе иконку замка,деревни,палатки?

Элементарно! Есть модели здании и их лоды. Вот и из них собираешь иконку, потом делаешь для этой сборки одну текстуру, а затем объединяешь все это в одну модель. Даже не надо возиться с привязкой к костям и вертексными анимациями.


1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25
Друг сообщества
Tissimir
Титул: Тис ягодный
Офлайн 9 июня 2018 20:45 поделиться
На этом этапе "Затем откройте меню 'File' в строке меню OpenBRF и выберите 'New'" постоянно вылетает. Уже и так пробовал, и сяк, но безрезультатно(



quod erat demonstrandum
Друг сообщества
Janycz
Офлайн 9 июня 2018 23:35 поделиться
Так, там https://forums.taleworlds.com/index.php/topic,376980.msg8983163.html#msg8983163 вышло дополнение к гайду (или даже это можно назвать второй частью гайда).
Для тех, кто не шарит в английском: там подробно рассказывает автор как сделать иконку всадника. Скоро переведу. Срок ожидания = не более семи дней. ResidentSleeper  sleeping Так что наберитесь терпения и ждите. sleeping



1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25
Мододел
Edvardt
Офлайн 10 июня 2018 10:45 поделиться
Tissimir, чувак такая же фигня была, открывай openBRF через коренвую папку ( тобишь там где ты ее установил) там по умолчанию уже создан пустой проект, вставяй все туда (ctrl+v) и готово.


Ух ты, подпись
Мододел
vadmin007
Офлайн 18 июня 2018 17:29 поделиться
Проще взять готовые модели дедаловские и заменить текстуры аакуратно. Замок тоже не трудно как бы сделать. Обычные пропки замка берешь уменьшаешь их, потом соединяешь их под одним материалом, тоже меняешь текстуры и их координаты


Измени себя - измени мир.
Друг сообщества
Janycz
Офлайн 18 июня 2018 19:56 поделиться
Цитата: vadmin007
Обычные пропки замка берешь уменьшаешь их, потом соединяешь их под одним материалом, тоже меняешь текстуры и их координаты

Про это будет в третьей части...


1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Онлайн

Сейчас на сайте: 170
Гостей: 169

Пользователи: 
- отсутствуют

Последние комментарии

MOD Distinguished Service
Максим Шевченко, Вчера, 03:31
Добрый, заранее извиняюсь. может за глупый вопрос. Установил данный мод на игру с модом "Игры...
MOD 457 AD
Vito, Вчера, 02:28
Приветствую, подскажите пожалуйста по квесту "Меч Марса". Я на стадии где по просьбе матери Аттилы,...
MOD 457 AD
zhenshen667, 15 декабря 2024 19:42
Некультурно со стороны администрации писать "(Его нет, ждите перевод или делайте сами)"....
Технические проблемы с игрой
Чикабой, 11 декабря 2024 23:18
timur karsli, Ты именно это переустановил? "Microsoft visual c++"?, или драйвера видеокарты? там...
MOD A World of Ice and Fire
Чикабой, 11 декабря 2024 23:15
timur karsli, Переустановить библиотеку визуалов, ибо там повреждены файлы....
MOD 1429 : la Guerre de Cent Ans - Steel Edition
kitel, 11 декабря 2024 09:04
Цитата: kitelпередайте тем кто руссификаторы делал чтобы перед презентацией сами проверяли их. Я...
MOD 1429 : la Guerre de Cent Ans - Steel Edition
kitel, 10 декабря 2024 16:45
передайте идиотам что руссификаторы делали чтобы перед презентацией сами проверяли их. Я только...
Быстрый перевод мода Warband гуглом
kitel, 1 декабря 2024 20:28
я перевел файл но перевод какой то странный. строки с командами отправились под конец диалога. это...
MOD Armor Mod for Viking Conquest
Halfdown, 30 ноября 2024 14:17
Еще можно установить его?  Переходя по ссылке выдает это The mod requested could not be found. We...