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

Данный гайд является переводом, оригинал может быть найден на TaleWorlds
Первая часть: создание иконки пехотинца

Вторая часть: создание иконки всадника.
При создании иконки всадника используются те же методы, что и при создании иконки пехотинца. В самом деле, начало процесса точно такое же. Вам нужно следовать всем инструкциям первой части, пока вы не дойдете до создания вертексной анимации. Итак, мы можем начать с неанимированной my_map_icon, который мы создали в прошлой части.

Поскольку каждая иконка карты может иметь только один материал, нам нужно создать новую текстуру, которая может разместить текстуру лошади. У нас уже есть map_icon_new_tex.dds из предыдущей части:

 

В любом редакторе изображений:

1. Создайте новый пустое изображение, размер которого - 1024 x 1024 пикселей;
2. Измените размер map_icon_new_tex.dds с 1024 x 1024 до 512 x 512 пикселей;
3. Скопируйте и вставьте измененный map_icon_new_text в верхний левый квадрант нового пустого изображения;
4. Сохраните эту картинку как map_icon_mount_tex.dds в папке Textures Вашего мода.

 

Теперь в OpenBRF загрузите файл icon_test.brf, скопируйте map_icon_combined на вкладке материалы, вставьте его и переименуйте этот новый материал map_icon_mount. Это повторит (скопирует) все флаги, настройки и шейдеры иконки. Импортируйте новую текстуру map_icon_mount_tex.dds в свой файл icon_test.brf и установите ее как текстуру DiffuseA в новом материале.

Затем скопируйте меш my_map_icon, переименуйте его my_map_icon_mount.1 и измените его материал на map_icon_mount, придав нашей меши испорченное изображение с нетекстурированным белым цветом на всех тех частях UV, которые отображаются в пустые квадранты.

 

Поскольку это можно исправить только на уровне компонента, щелкните правой кнопкой мыши на my_map_icon_mount.1 и выберите 'Split into connected sub-meshes'. Это разбивает модель на 12 частей с номерами от 0 до 11. Теперь щелкните правой кнопкой мыши по доспеху my_map_icon_mount.1.11, выберите преобразование текстурных координат (Transform texture coords) и установите параметры: 'Scale% U' = 50.00 и 'Scale% V' = 50.00.
Выберите лицо и руки модели (компоненты с номерами от 8 до 11), выберите преобразование текстурных координат (Transform texture coords) и установите параметры: 'Scale% U' = 50.00, 'Scale% V' = 50.00, 'Translate U' = 0.5.
Выберите сапоги (компоненты с номерами 6 и 7), выберите преобразование текстурных координат (Transform texture coords) и установите параметры: 'Scale% U' = 50.00, 'Scale% V' = 50.00, 'Translate U' = 0.5, 'Translate V' = -0.5.
Выберите шлем и меч (компоненты с номерами от 1 до 5), выберите преобразование текстурных координат (Transform texture coords) и установите параметры: 'Scale% U' = 50.00, 'Scale% V' = 50.00, 'Translate U' = 0, 'Translate V' = -0.5.
Выберите щит (компонента с номером 0), выберите преобразование текстурных координат (Transform texture coords) и установите параметры: 'Scale% U' = 50.00, 'Scale% V' = 50.00, 'Translate U' = 0.5, 'Translate V' = -0.5.

Выделите компоненты с номерами от 0 до 11, щелкните правой кнопкой мыши и выберите 'Combine meshes'. Теперь у вас есть две версии my_map_icon_mount.1 - удалите ту, текстуры которой перепутанны, и удалите все ненужные компоненты (от 0 до 11), и сохраните файл icon_test.brf.

Теперь мы вернулись туда, откуда мы начали, но теперь материал с переработанной UV-картой имеет пространство для текстуры лошади. Уменьшите масштаб, и Вы также увидите, что уменьшенное разрешение вашей уменьшенной текстуры не заметно в масштабе значка карты, даже если исходные текстуры размером 1024 x 1024 пикселя теперь уменьшены до 256 x 256 пикселей.

Теперь, для лошади, откройте horse_b.brf из папки CommonRes Warband'а. Лошадь 'couser' выглядит поразительно, но 1524 полигона слишком много. Скопируйте courser.lod2 (346 полигонов) и вставьте его в icon_test.brf. Загрузите его текстуру, courser.dds, в редактор изображений. Поскольку это уже изображение размером 512 х 512 пикселей, скопируйте и вставьте его в верхний правый квадрант вашего map_icon_mount_tex.dds и сохраните, не забывая сгенерировать mip_maps. Нажмите 'Tools' -> 'Refresh all', чтобы новое комбинированное изображение появилось в вашем материале map_icon_mount, если вы правильно отредактировали текстуру.

 

Как Вы можете видеть, у нас есть два пустых квадранта - достаточно места для этого материала, чтобы покрыть две разные иконки, но эта оптимизация выходит за рамки этой задачи. Чтобы сменить материал лошади на общий материал, щелкните правой кнопкой мыши по меши courser.lod2 в OpenBRF и измените ее материал с courser на map_icon_mount. Затем исправьте испорченную UV-карту, изменив ее текстурные координаты (Transform texture coords) со следующими настройками: Scale% U = 50.00, Scale% V = 50.00%, Translate U = 0.5000, Translate V = 0.0000, и сохраните ваш файл icon_test.brf.

Откройте ani_horse_mounted.brf из папки CommonRes Warband'a. Внутри есть только одна анимация, anim_horse, которая имеет 866 кадров. Щелкните правой кнопкой мыши anim_horse и выберите 'Add to reference icons'. Затем откройте horse_skeleton.brf, щелкните правой кнопкой мыши skel_horse и выберите 'Add to reference skeletons'. Теперь вернитесь к icon_test.brf, выделите courser.lod2, выберите anim_horse в кнопке анимации OpenBRF с помощью скелета, установленного как skel_horse, и нажмите кнопку '>', чтобы посмотреть эту анимацию. Затем, с тем же выбором анимации и скелета, щелкните правой кнопкой мыши courser.lod2 и выберите 'Convert into a vertex animation'. Теперь у вас должна быть новая меш с именем courser.lod2_anim_horse из 555 кадров - я не знаю, почему все кадры не переданы, но это не имеет значения для наших целей.

Затем сохраните icon_test.brf, потому что OpenBRF может иногда возражать против открытия вертексной анимаци из 555 кадров. Затем щелкните правой кнопкой мыши на courser.lod2_anim_hourse и выберите 'Separate all frames'. Если OpenBRF упал, закройте некоторые другие приложения, перезагрузите OpenBRF и повторите попытку.

Теперь вы увидите отдельные кадры, перечисленные в обратном порядке от 554 (вверху) до 0 (внизу). Удалите кадры с номерами 82 по 553. Затем перейдите в нижнюю часть списка и выделите frame0, затем просто используя стрелку вверх, запустите список и посмотрите, как анимация разворачивается, когда кадр заменяет кадр. Это дает лучшее представление о том, какие кадры вы хотите выбрать для вершинной анимации. Выбор зависит от того, хотите ли вы, чтобы иконка карты просто ходила (0-30), скакала рысью (31-49), ехала легким галопом (50-66), или скакала галопом (67-81).

Сохраните icon_test.brf и откройте файл map_icon_meshes.brf в папке CommonRes Warband'a. Скопируйте модель knight_a и вставьте эту иконку в файл icon_test.brf. Как и иконка пехотинца, она имеет только 11 кадров. Т-образного положения нет, но в кадрах 0 и 1 показана лошадь в покое (стационарная). Мы знаем, что кадр 0 не используется на глобальной карте, но кадр 1 используется, когда время приостанавливается, поэтому мы сохранили кадр 554. Это оставляет нам 9 кадров движения.

Чтобы иконка скакала рысью, сделайте следующий вертикальный список в OpenBRF (сверху вниз в этом порядке), используя alt и стрелку:

courser.lod2_anim_horse_frame554
courser.lod2_anim_horse_frame554
courser.lod2_anim_horse_frame31
courser.lod2_anim_horse_frame33
courser.lod2_anim_horse_frame35
courser.lod2_anim_horse_frame38
courser.lod2_anim_horse_frame40
courser.lod2_anim_horse_frame43
courser.lod2_anim_horse_frame45
courser.lod2_anim_horse_frame47
courser.lod2_anim_horse_frame49

OpenBRF не заботится о цифрах, ему важен только порядок моделей. Соберите все кадры в одну модель: щелкните правой кнопкой мыши и выберите 'Merge as frames in a vertex ani'. Теперь мы имеем вертексную анимацию из 11 кадров, которая называется courser.lod2_anim_horse_frame554, которую нужно переименовать my_map_icon_mount.2. Остальная часть мешей / кадров ложади может быть удалена (если вы не захотите повторно использовать их для разных скоростных монтировок), а затем сохраните свой icon_test.brf.

Скопируйте knight_a и из меню редактирования вставьте тайминги на my_map_icon_mount.2, чтобы синхронизировать лошадь с движклм Warband. Вы можете проверить свою анимацию, нажав кнопку '>'.

 

Теперь нужно разобраться с всадником. Сначала нужна анимация. Откройте ani_human_mounted.brf в папке CommonRes Warband, выделите его только анимацию, anim_human_02, щелкните правой кнопкой мыши и выберите 'Add to reference animations'. Затем вернитесь к icon_test.brf, выделите всадника, my_map_icon_mount.1, установите анимацию в anim_human_02 и скелета на skel_human, и нажмите кнопку '>'.
Всадник поднят до положения седла, его ноги оседлали невидимую лошадь, которая подпрыгивает от него вверх и вниз. Таким образом, с выбранными anim_human_02 и skel_human, щелкните правой кнопкой мыши на my_map_icon_mount.1 и выберите 'Convert into vertex animation', и сохраните icon_test.brf. Это дает новую модель с именем my_map_icon_mount.1_anim_human_02 с 248 кадрами.

 

Поскольку нам нужны только 11 кадров, щелкните правой кнопкой мыши на my_map_icon_mount.1_anim_human_02 и выберите 'Separate all frames'. Однако каждый кадр должен быть сопоставлен с нашим монтированием. Соответственно, отделите все кадры my_map_icon_mount.2. Затем выделите my_map_icon_mount.2_frame0 и нажав клавишу управления, также выделите my_map_icon_mount.1_anim_human_02_frame0, чтобы увидеть, как эти кадры дополняют друг друга. Вы увидите, что всадник плохо сидит в седле.

 

Вы можете попробовать сопоставить другие кадры, но вы обнаружите, что все они немного несовместимы. Поэтому, чтобы исправить это, сначала выделите my_map_icon_mount.2_frame0 и нажав клавишу управления, выделите my_map_icon_mount.1_anim_human_02_frame0 (второй), щелкните правой кнопкой мыши, выберите Roto_translate_rescale..., установите флажок 'Apply to last selected object only' и переместите ось z на 0.07, чтобы переместить вашего всадника в его седло.
Чтобы синхронизировать все кадры всадника, выделите кадры с 1 по 247, нажмите на иконку, выберите Roto_translate_rescale ..., сняв галочку 'Apply to last selected object only' и переместите ось z на 0.07.

Сделайте следующий вертикальный список в OpenBRF (используя alt и стрелку):

my_map_icon_mount.1_anim_human_02_frame0
my_map_icon_mount.1_anim_human_02_frame0
my_map_icon_mount.1_anim_human_02_frame13
my_map_icon_mount.1_anim_human_02_frame15
my_map_icon_mount.1_anim_human_02_frame17
my_map_icon_mount.1_anim_human_02_frame19
my_map_icon_mount.1_anim_human_02_frame21
my_map_icon_mount.1_anim_human_02_frame23
my_map_icon_mount.1_anim_human_02_frame25
my_map_icon_mount.1_anim_human_02_frame27
my_map_icon_mount.1_anim_human_02_frame29

Вы могли бы потратить больше времени на выбор лучших совпадений, но эти тоже хороши. Выделите все эти кадры, щелкните правой кнопкой мыши и выберите 'Merge as frames in a vertex ani'. Теперь мы имеем вертексную анимацию из 11 кадров, называемую my_map_icon_mount.1_anim_human_02_frame0. Скопируйте и вставьте тайминги Warband'а с knight_a на my_map_icon_mount.1_anim_human_02_frame0 и сохраните icon_test.brf.

Затем выделите как my_map_icon_mount.1_anim_human_02_frame0, так и my_map_icon_mount.2, щелкните правой кнопкой мыши и объедините модели, получив модель с именем my_map_icon_mount, которую Вы можете переименовать в my_final_map_icon_mount, чтобы избежать путаницы с WIP-моделями, и сохраните icon_test.brf.

 

Далеко от совершенства, но достаточно хорошо для иконки карты...

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

Главный администратор syabr
Офлайн 16 июня 2018 12:21 поделиться
Познавательно smile30 
--------------------

https://commando.com.ua/commando/main/3337-kak-pravilno-soobschit-ob-oshibke.html
Модератор Janycz
Офлайн 16 июня 2018 12:56 поделиться
syabr, скоро перевод третьей части подъедет.
--------------------
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25
Друг сообщества Lord Jamestown
Офлайн 16 июня 2018 22:00 поделиться
Побольше бы такого контента)
--------------------
Десятник NordOst
Офлайн 17 июня 2018 09:03 поделиться
Интересеюно, гайды такие есть по поводу прорисовки и созданию карт, с расстановкой замков по ним? Да и вообще, не мешало бы сборку таких гайдов отдельно куда то запилить, по разработке таких вот нюансов по всей игре. 
Модератор Janycz
Офлайн 17 июня 2018 14:25 поделиться
Цитата: NordOst
Интересеюно, гайды такие есть по поводу прорисовки и созданию карт

Есть:
1) https://forums.taleworlds.com/index.php/topic,162501.0.html (en)
2) http://rusmnb.ru/index.php?topic=10776.0 (ru)
Но для этого необходима старая полуживая программа (Thorgrim's MapEditor).
--------------------
1 + 2 + 3 + 4 + ... = ζ(-1) = -0.08(3)
1 - 1 + 1 - 1 + 1 - ... = 0.5
1 - 2 + 3 - 4 + 5 - ... = 0.25
Десятник NordOst
Офлайн 18 июня 2018 04:29 поделиться
Janycz, О сколько всего... Благодарствую за наводку. А перечень програм для создания игры в целом, случаем больше нигде нет?
Главный администратор syabr
Офлайн 18 июня 2018 08:58 поделиться
Здесь  хорошая подборка. А чтобы понять что к чему - почитай гайд о структуре мода.
--------------------

https://commando.com.ua/commando/main/3337-kak-pravilno-soobschit-ob-oshibke.html
Десятник NordOst
Офлайн 18 июня 2018 14:00 поделиться
syabr, Благодарю за подробный разбор. Надо будет при нормальном нете заняться этими вопросами. Хотя бы для общего развития. Вдруг пробьёт на умную мысль. Реально ли самому сделать мод? Из общеузнанных и доступных материалов?
Главный администратор syabr
Офлайн 18 июня 2018 14:10 поделиться
NordOst, реально, если найти хотя бы кого то в помощь. Одному очень сложно, либо мод выйдет однобоким. Например я хорошо знаю сцены, кто то ещё хорошо знает модульку, берём ОСП предметов и совместными усилиями мод получается. Другой пример - человек знает только модульку - изменения функций будут, но сцены и одежда останутся прежними, в итоге функции и плюхи никого не заинтересуют. Хочется в основном разнообразия, натив приелся.
--------------------

https://commando.com.ua/commando/main/3337-kak-pravilno-soobschit-ob-oshibke.html
Мододел vadmin007
Офлайн 18 июня 2018 14:38 поделиться
Можно взять дедаловские иконки и просто поменять текстуры.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации. Регистрация.

Другое

Онлайн

Сейчас на сайте: 12
Гостей: 11

Пользователи: 

- отсутствуют

 Последние посетители: 

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