Теги:

Автор Тема: [Anim] Warband Animation + Blender 2.xx  (Прочитано 16909 раз)

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

0
: 31 Декабря, 2010, 16:19
Редактирование 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;
+ основы работы с 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
« Последнее редактирование: 23 Декабря, 2014, 20:24 от Shcherbyna »

Я решил сделать примерно по этой инструкции колющий удар, но когда я его сделал он почему то действует только с 8 кадра.

Дайте ссылку на нормально работающий архив блендера и скрипта на импорт/экспорт. А то перепробовал уже несколько версий и в итоге или блендер вылетает с ошибкой, или не может установить скрипт, или скрипт тупо не видит .smd файлы  facepalm
Учусь делать еще один бесполезный и никому не нужный мод!

Моя конфигурация:
Нормальная, мне хватает.

Победитель народов,

Вот Блендер 2.55 и io_smd_tools_0101
http://depositfiles.com/files/rw907ry1e
Проверен.
Небольшое дополнение по началу «движения костей»:
1.ПКМ на кость
Далее ЛКМ (по красной стрелке) в правом верхнем углу на маленьком кружочке с крестиком
чтобы открыть меню координат W,X,Y,Z
2.Открываем(см.желтым =меню координат W,X,Y,Z)и правим по правым-левым стрелкам (ЛКМ на дробях и можно вбить любую цифру=поточнее «крутануть»кость)

« Последнее редактирование: 09 Июля, 2012, 18:28 от Baltijec »

HunterWolf, Baltijec,
Спасибо! Продолжаю обучаться  :thumbup:
Учусь делать еще один бесполезный и никому не нужный мод!

Ребята, немного не по теме, но все же попрошу откликнуться. Ситуация следующая: привязку я делаю в максе, но там существует одна проблема - плагин экспорта смд не очень корректный, посему решил попробовать экспортнуть через блендер. Т.е. я привязанную модель импортировал в формате 3ds в Blender. И вот такая странная штука получилась
Люди до сих пор всегда создавали себе ложные представления о себе самих, о том, что они есть или чем они должны быть. Согласно своим представлениям о боге, о том, что является образцом человека, и т. д. они строили свои отношения. Порождения их головы стали господствовать над ними. Они, творцы, склонились перед своими творениями. Освободим же их от иллюзий, идей, догматов, от воображаемых существ.

Спасибо ОГРОМНОЕ ребят!))
Слава Рюрику!

Теги: