Форум

[Anim] Warband Animation + Blender 2.xx  

  RSS
Doktor_e5
(@admin)
Уважаемый Игрок Admin

Редактирование Warband анимации в Blender'е 2.xx

   Tom Edwards и EasyPickins, респект им огромный, обновили скрипт экспорта/импорта .smd-файлов дав возможность пользователям blender'a править анимацию Warband'a под себя.

Итак, что нужно:
1. openBrf // создание/распаковка/запаковка .brf-файлов, в которых находятся нужные нам анимации .smd
       web: http://forums.taleworlds.com/index.php/topic,72279.0.html
2. io_smd_tools // скрипт экспорта/импорта .smd в blender и обратно.
        web: http://steamreview.org/BlenderSourceTools/
3. blender // бесплатный 3Д-редактор
        web: www.blender.org

Предисловие:
+ установка io_smd_tools в blender;

Распаковываем io_smd_tools.py в любое место.
Открываем Blender, File -> User Preferences -> вкладка Add-Ons -> кнопка Install Add-On... -> указываем на наш файл -> проверяем, появился ли в списке аддонов (Import/Export SMD Tools) и стоит ли напротив него галка -> жмем Save As Default. После этого в меню File -> Import/Export главного окна должны появиться пункты для .smd.

+ основы работы с blender'oм тут, потом почитаете;

Ход работы в двух словах:
+ Через ОpenBrf открываем .brf-файлы (например из Mount&Blade Warband\CommonRes\..) и ищем анимацию, на основании которой будем делать свою. Многие .brf'ы  содержат по несколько анимаций, выделяем нужную -> клоцаем правой кн. мыши (RClick) -> жмем Export animations, также делаем Export a skin for this ani. В итоге имеем материал для работы: мех человека (human_skin_A.SMD) и его скелет-анимацию (stand_man.SMD). Например, для создания анимации sitting_man я изменял stand_man что в ani_stand.brf

+ Далее, открываем blender, там дефолтный квадрат - удаляем его (X -> Enter);
Импортируем в blender сначало скин, затем саму анимацию:
1. File -> Import -> .smd -> human_skin_A.SMD // мех автоматически полностью выделен - ничего не трогая делаем действие №2:
2. File -> Import -> .smd -> stand_man.SMD // появляются кадры анимации

+ Далее... анимация бывает активной (удары, движения) и пасивной (позы). Первый случай я пропущу на будущее, а по второму немного добавлю на примере "позы сидя"...
На линейке анимации (смотрим картинку выше) видим число кадров анимации (0-315). Все эти 315 кадров персонаж немного шевелится стоя, а нам нужно сидя. Для этого нам нужно всего-то изменить положение ног во всех кадрах. Кадров много, но мы будем править только один - 1 кадр, остальные подгоним позже в окне граф-эдитора (Graph Editor).
 Погнали: делаем 2 окна -> для второго выбираем тип Graph Editor, на линейке кадров переходим на первый кадр, для главного окна (3D View) меняем режим редактирования с Object Mode на Pose Mode, там же через меню View выбираем нужный вид камеры (Right, Left, Front, Back....).


    Мышь:
       крутить колесо - zoom;
       Shft+крутить колесо - vertical zoom;
       Ctrl+крутить колесо - horizontal zoom;
       зажатое колесо мыши - крутит камеру;
       Shft+зажатое колесо - двигаем картинку в окне;


Продолжаем: вид камеры - Back, крутим нужный zoom, RClick выделяем тазовый узел любой ноги, меняем вид в окне на Right/Left (как удобнее), жмем R (rotation) и поднимаем ногу  на 80-90 град. к телу (LClick или Enter - завершение поворота). Жмем I (Insert keyframes) -> Rotation для фиксации изменений угла поворота анимации данной кости скелета. Затем передвиньте курсор мыши в область окна Graph Editor и покрутите зум чтобы хорошо видеть точки в первом кадре. После наших действий вы заметите, что все линии (за каждую кость скелета отвечают несколько линий, поэтому на графике их так много), начиная с первого кадра и до последнего, относительно ровно-волнистые, но линий 5-6 имеют скачек в первом кадре. Вот их мы и правили, и в дальнейшем нам нужно будет остаток этих измененных линий сровнять по уровню скачка.Короче, поворачивайте вторую ногу, дальше таким же манером сгибаем их в коленях.
Так, чел сидит, но ввоздухе. Опускаем его, чтобы ноги были на земле, а табуреты в таверне найдутся: (в 3д окне) меню View -> Right, там же влючаем ортогональный 2Д-вид камеры (View Persp/Ortho Numpad 5) - чтобы лучше видеть где земля, где ноги. Курсор мыши в области 3Д окна, жмем А пока не выделится весь скелет. Жмем G и опускаем объект на землю. Фиксируем изменения позиции объекта (i - > Location).

C 3D-окном закончили, переходим к окну Graph Editor'a -> дублируем его в отдельное окно для удобства (меню View -> Dublicate Area into New Window)...

Начнем снизу..снимаем выделение всех линий если они выделены (А) и RClick'ом выделяем самую нижнюю точку первого кадра (по уровню этой точки должен идти остаток текущей линии), выделяем линию целиком (L) и снимаем выделение с точки которую выделии вначале (Shft+RClick, если надо увеличивайте зум), она не должна двигаться, жмем G и опускаем выделенный участок линии на уровень точки.

Теперь линия "позиции меха над землей" поправленна для всех 316 кадров.

Так правятся все линии имеющие пики в первом кадре.

Нужно только следить куда ведет пик, вверх или вниз, и соответственно поднимать или опускать остальной кусок линии. После того как все линии будут выровненны, можно переходить в 3D-окно и проверять всю анимацию вцелом (Alt+A), если она прыгает - значит какую-то линию пропустили.
Если с редактом анимации закончили, експортируйте анимацию назад в .smd. Выходной файл переименуте.

В OpenBrf'е создаёте новый .brf (или открываете старый, из которого брали аниму для редакта) и добавляете в него свою новую анимацию (меню Import -> Skeletar animation). Сохраняетесь в Warband\Modules\ВашМод\Resource (если .brf создан вами), добавляете строчку на ваш brf в module.ini, прописываете новый action в module_actions.py вместо "unused_human_anim_XX" с ссылкой на новую анимацию после чего, юзаете его (action-действие) в скриптах.

Чтобы быстро проверить аниму в игре без прописи в файлах указаных выше, добавьте ее в нативовский или другой, уже прописанный brf в котором временно подмените имена анимаций. Например открываем ani_stand_quardsman.brf, там одна анимация stand_quardsman - > переименовываем её (F2) в stand_quardsman1. Импортируем нашу анимацию и обзываем stand_quardsman (т.е. под старым именем теперь новая анимация). Сохраняемся, заходим в игру -> смотрим, все гварды сидят.

Пусть вас не смущает, то что они шевелятся и потом замирают, в стандартной анимации stand_quardsman 2400 кадров, а у нашей всего 315.

Нюансы:
Точка в 0-кадре на линии "положение объекта над землей" (на графике, она у меня самая нижняя)  должна иметь координаты [0;0]. Так как мы опускали эту линию ровняя с пиком, точку в нулевом кадре нужно поднять на старое место. Иначе, в игре, мех будет висеть в воздухе (это видно в OpenBrf'e) 


FAQ:
*Насчет питона - блендер на борту уже несет библиотеки питона 3.1, дополнительно устанавливать ничего не нужно (без нужды естесно).

нажав на StudiomdlData(.smd.vta.qc)выскочил эррор:io_smd_toolspy”line1742.in invoke….Atribute Error:Windows Manager ..object has no attribute”add_fileselect”…location:<uncnown lacation>:-1

без ерроров у меня работает пара Blend 2.55+Smd 0101.

Куда конкретно экспортируются SMD ИЗ Опен БРФа?

при экспорте из ОпенБрф 0.51 у меня появляется окно "куда экспортировать, с каким именем и кнопкой Сохранить". Разве у вас не так?

Если сделана часть анимы,то как можно сейвануть часть работы,чтобы продолжить в другой день?

(В Blender'e)
Сохранить проект: File -> Save As -> имя_файла_проекта_на англ.blend
Открыть: File -> Open (Open Recent...) -> ваш_файл_проекта.blend

ОтветитьЦитата
Размещено : 28/06/2019 09:41
Теги темы

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


 
Поделиться:
  
Работает

Пожалуйста, Вход или Зарегистрироваться