Форум

Уведомления
Очистить все

[Аnim] Создание новых скелетов и изменение их размера

 
Джеки Чан
Известный участник Модератор Гильдия переводчиков

Введение.
Привет еще раз, ребята, это cdvader и мой новый туториал. Я очень рад, что написал этот туториал, и я не могу себе представить, какого рода гномы, тролли, хоббиты, и иные существа будут созданы с его помощью. Сегодня мы будем делать новый скелет с рабочей анимацией путем дублирования старого человеческого скелета. Этот процесс будет очень легким, и я думаю что у вас все получится без проблем.

Прежде чем я начну, я должен сказать, очень, очень большое спасибо mtarini. Спасибо!

Что нам нужно?
Естессно сама игра.
Mount & Blade - Версия 1.011 или Warband v1.1xx
Mount & Blade - модульная система для версии 1.011 или для Warband

Какую-то программу для редактирования анимации. Вот две из (вероятно) наиболее известных:
Autodesk 3ds Max
Blender

И импорт / экспорт SMD скриптов для них.
3ds Max SMD импорт/экспорт
Blender SMD импорт
Рабочий Blender Экспорт скрипотов.

Ну и конечно же 2 самые важные вещи:
Open BRF
Iron Launcher

ЧАСТЬ 1 - Подготовка.
Хорошо. Прежде всего, убедитесь, что у вас есть Mount & Blade и что она работает правильно, также Вам понадобится некоторое знание модульной системы. Повторяю, я очень рекомендую Официальную документацию к ModuleSystem, а также документацию товарища Jik к ModuleSystem.

Теперь давайте продолжим. Установите OpenBRF. Просто скачайте и извлеките его куда-нибудь, например на рабочий стол (Это хорошее место, лично у меня он хранится именно там). OpenBRF очень хорошая альтернатива BRFEdit, поскольку она может изменить анимацию и скелеты, которые BRFEdit не могут. Однако, поскольку OpenBRF находится в очень ранней стадии развития (альфа-стадии), к сожалению не имеет всех необходимых функций, таких как Материалы, Сталкновения или Шейдерные вкладки. Таким образом в настоящее время необходимо использовать OpenBRF только для изменения скелетов и анимации, а BRFEdit для всех остальных. Но я совершенно уверен, что в скором времени OpenBRF будет лучше и будет выполнять все необходимые функции.

Следующий шаг состоит в том, чтобы получить программу, редактирующую анимации и скелеты. Blender немного сложен, но довольно неплох. Его преимуществом является также то, что но распространяется бесплатно. Другое решение - 3ds Max. Он лучше во всех отношениях, особенно в части цены. Вот только стоит он около 3500 $. Лично я использую 3ds Max. Чтобы получить его либо скачайте 30-дневную пробную версию, или же получите коммерческое издание (или вроде того) из школы.

После того как вы получили программу для редактирования скелета и анимации вам понадобится Iron Launcher с вашим модулем. Это просто - скачайте Iron Launcher извлеките его и вставьте все содержимое папки IronLauncher'а в папку вашего модуля. Я отправил ярлык "IronLauncher.exe" на мой рабочий стол для быстрого доступа к моему мод. Iron Launcher необходим для создания рабочего скелета.

Теперь давайте продолжим...

Часть 2 - Добавление нового скелета.
Чудесно. В этой части мы будем создавать скелет Горного Гиганта. Мы не будем делать новых голов, рук и ног (которые, к сожалению, необходимы). В самом деле, одной из сторон создания нового скелета является то, что Вы должны пересмотреть все органы, голову, руки и ноги, если вы хотите работать с гигантом. Но хватит болтать - Начнем! ;)

Во-первых, откройте OpenBRF. Теперь откройте 'body_meshes.brf ". Кликните ПКМ  по "man_body" и экспортируйте как Rigged Mesh. Сохраните его как "giant_body.smd". Теперь вы можете закрыть OpenBRF. Импортируйте "giant_body.smd" в вашу программу редактирования скелета и анимаций (я использую 3ds Max в данном учебнике). Обратите внимание, прежде чем мы начнем: у вас есть только 1 попытка, если вы потерпите неудачу и реимпортируете модель после этого , то скелет станет непригоден.

Хорошо. Теперь создайте поле или плоскость прямо под моделью "man_body" в Вашей программе. Это очень важно, мы будем использовать поле позднее дабы переместить скелет в нужное место. Теперь выберите все кроме поля, и увеличте вашу новую модель в несколько раз. Я увеличил ее этак раза в 4. Теперь переместите вашу новую увеличенную модель, чтобы она немного прикоснулась ногами к полю. Удалить поле и экспортируйте модель как "giant_body.smd". Экспортируйте ее как Reference SMD. Теперь, по-прежнему в той же сцене, удалите Mesh (сетку (?)). Только Mesh (сетку)! Оставьте кости. А затем экспортируйте ее снова, на этот раз как "skel_giant". Экспортируйте ее как "Sequence SMD". Теперь вы можете закрыть вашу программу.

Отлично. Теперь откройте OpenBRF и импортируйте "skel_giant" как "Skeleton". Не удивлюсь, если кости кажутся слишком далеко друг от друга (я едва нашел кости, я сделал каркас настолько большим). Теперь сохраните .brf как "skel_giant.brf" и поставьте его в свой модуль в папку Resource. Теперь перейдите к File > New  и мпортируйте "giant_body.smd" как Rigged Mesh. Сохраните .brf как "giant_body.brf". Теперь вы можете закрыть OpenBRF.

Превосходно, теперь откройте module.ini своего мода. Вставить эти две строки в самом низу:

load_mod_resoure  = skel_giant
load_mod_resource = giant_body

Теперь вы можете закрыть module.ini. Прежде чем перейти к следующему шагу, убедитесь, что у вас есть установленный Iron Launcher. Это очень важно! Так, теперь скопируйте папку "Data" из корневой папки "Mount & Blade" в папку вашего мода. В данной папке откройте "skeleton_bodies.xml" и вставьте строки написанные ниже после последнего (Примечание: НЕ </Skeletons>. Я не редактировал ничего кроме имени. Я в этом пока не разбирался, но mtarini сказал что это для данных hitbox и подобного.

    
          
        
       
      
        
       
      
          
         
         
        
        
        
       
       
         
       
        
       
       
    
  

Сохраните и теперь можно закрыть "skeleton_bodies.xml". Перейдите на вашу ModuleSystem и откройте 'header_troops.py ". Вставьте это после "tf_female":

tf_giant          = 2

Сохранитt и закройте 'header_troops.py". Давайте двигаться дальше. Теперь откройте "module_skins.py" и вставить эту информацию:

(
    "giant", 0,
    "giant_body", "man_calf_l", "m_handL",
    "male_head", man_face_keys,
    ["man_hair_s","man_hair_m","man_hair_n","man_hair_o", "man_hair_y10", "man_hair_y12","man_hair_p","man_hair_r","man_hair_q","man_hair_v","man_hair_t","man_hair_y6","man_hair_y3","man_hair_y7","man_hair_y9","man_hair_y11","man_hair_u","man_hair_y","man_hair_y2","man_hair_y4"], #man_hair_meshes ,"man_hair_y5","man_hair_y8",
    ["beard_e","beard_d","beard_k","beard_l","beard_i","beard_j","beard_z","beard_m","beard_n","beard_y","beard_p","beard_o",   "beard_v", "beard_f", "beard_b", "beard_c","beard_t","beard_u","beard_r","beard_s","beard_a","beard_h","beard_g",], #beard meshes ,"beard_q"
    ["hair_blonde", "hair_red", "hair_brunette", "hair_black", "hair_white"], #hair textures
    ["beard_blonde","beard_red","beard_brunette","beard_black","beard_white"], #beard_materials
    [("manface_young_2",0xffcbe0e0,["hair_blonde"],[0xffffffff, 0xffb04717, 0xff502a19]),
     ("manface_midage",0xffdfefe1,["hair_blonde"],[0xffffffff, 0xffb04717, 0xff632e18, 0xff502a19, 0xff19100c]),
     ("manface_young",0xffd0e0e0,["hair_blonde"],[0xff83301a, 0xff502a19, 0xff19100c, 0xff0c0d19]),     
#     ("manface_old",0xffd0d0d0,["hair_white","hair_brunette","hair_red","hair_blonde"],[0xffffcded, 0xffbbcded, 0xff99eebb]),
     ("manface_young_3",0xffdceded,["hair_blonde"],[0xff2f180e, 0xff171313, 0xff007080c]),
     ("manface_7",0xffc0c8c8,["hair_blonde"],[0xff171313, 0xff007080c]),
     ("manface_midage_2",0xfde4c8d8,["hair_blonde"],[0xff502a19, 0xff19100c, 0xff0c0d19]),
     ("manface_rugged",0xffb0aab5,["hair_blonde"],[0xff171313, 0xff007080c]),
#     ("manface_young_4",0xffe0e8e8,["hair_blonde"],[0xff2f180e, 0xff171313, 0xff007080c]),
     ("manface_african",0xff807c8a,["hair_blonde"],[0xff120808, 0xff007080c]),     
#     ("manface_old_2",0xffd5d5c5,["hair_white"],[0xffffcded, 0xffbbcded, 0xff99eebb]),
     ], #man_face_textures,
    [(voice_die,"snd_man_die"),(voice_hit,"snd_man_hit"),(voice_grunt,"snd_man_grunt"),(voice_grunt_long,"snd_man_grunt_long"),(voice_yell,"snd_man_yell"),(voice_victory,"snd_man_victory")], #voice sounds
    "skel_giant", 1.0,
    psys_game_blood,psys_game_blood_2,
    [[1.7, comp_greater_than, (1.0,face_width), (1.0,temple_width)], #constraints: ex: 1.7 > (face_width + temple_width)
     [0.3, comp_less_than, (1.0,face_width), (1.0,temple_width)],
     [1.7, comp_greater_than, (1.0,face_width), (1.0,face_depth)],
     [0.3, comp_less_than, (1.0,eyebrow_height), (1.0,eyebrow_position)],
     [1.7, comp_greater_than, (1.0,eyebrow_height), (1.0,eyebrow_position)],
     [-0.7, comp_less_than, (1.0,nose_size), (-1.0,nose_shape)],
     [0.7, comp_greater_than, (1.0,nose_size), (-1.0,nose_shape)],
     [2.7, comp_greater_than, (1.0,chin_size), (1.0,mouth_nose_distance), (1.0,nose_height), (-1.0,face_width)],
     ]
  ),

Прямо перед последним "]". Сохраните и закройте. Откройте "module_game_menus.py" и вставьте после Female option:

("start_giant", [], "Mountain Giant.",
      [(troop_set_type, "trp_player", 4),
       (assign, "$character_gender", tf_giant),
      (jump_to_menu, "mnu_start_character_2"),
      ]),

Теперь можете сохранить и закрыть. Откомпилируйте. Если вы получите какие-либо ошибки, просто снова откомпилируйте и они должны уйти. Если они все еще будут появляться, убедитесь, что вы все сделали правильно. Теперь зайдите в игру и проверьте вашего нового Горного Гиганта!!

PS: Убедитесь, что вы начнете игру с помощью Iron Launcher'а.
cdvader.

Критическое обновление (17/08/09) -   Скопируйте "skeletons.brf" из папки CommonRes в папку Resources вашего мода. Назовите этот брф как вам вздумается и добавьте в этот же брф файл свои новые скелеты и пропишите вместо "load_resource=skeletons" "load_mod_resource=название_вашего_переименованного_нового_файла_скелетов" в module.ini...

Самое последнее крит. обновление немного не понял... Вроде как можно сделать так, что персонажи будут летать по воздуху (будет такая анимация). Такого эффекта можно добиться если ноги не возвращать к тому полю (поднять их выше его), которое было в 3-ем абзаце 4-го пункта...

ОтветитьЦитата
Автор темы Размещено : 25.01.2022 23:25

Оставьте ответ

Имя автора

Электронная почта автора

Заголовок *

Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять
Политика конфиденциальности