Всадники Кальрадии

Модификации => Обмен опытом: Mount&Blade => Обмен опытом (в помощь мододелу) => Инструкции и уроки по созданию модификаций => Тема начата: Shcherbyna от 31 Декабря, 2010, 16:19

Название: [Anim] Warband Animation + Blender 2.xx
Отправлено: Shcherbyna от 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 (http://forums.taleworlds.com/index.php/topic,72279.0.html)
2. io_smd_tools // скрипт экспорта/импорта .smd в blender и обратно.
        web: http://steamreview.org/BlenderSourceTools/ (http://steamreview.org/BlenderSourceTools/)
3. blender // бесплатный 3Д-редактор
        web: www.blender.org (http://www.blender.org)

Предисловие:
+ установка io_smd_tools в blender;
+ основы работы с blender'oм тут (http://www.blender3d.org.ua/book/Blender_242/BlenderBasics2ndEditionCHM.zip), потом почитаете;

Ход работы в двух словах:
+ Через О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 (смотрим картинку ниже).
(http://storage7.static.itmages.ru/i/10/1231/s_1293790210_bdbd3fa5ad.png) (http://itmages.ru/image/view/98265/bdbd3fa5)
+ Далее, открываем blender, там дефолтный квадрат - удаляем его (X -> Enter);
Импортируем в blender сначало скин, затем саму анимацию:
       1.  File -> Import -> .smd -> human_skin_A.SMD // мех автоматически полностью выделен - ничего не трогая делаем действие №2:
       2. File -> Import -> .smd -> stand_man.SMD // появляются кадры анимации.
(http://storage1.static.itmages.ru/i/10/1231/s_1293790863_b9becd7eed.png) (http://itmages.ru/image/view/98267/b9becd7e)
+ Далее... анимация бывает активной (удары, движения) и пасивной (позы). Первый случай я пропущу на будущее, а по второму немного добавлю на примере "позы сидя"...
На линейке анимации (смотрим картинку выше) видим число кадров анимации (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 имеют скачек в первом кадре. Вот их мы и правили, и в дальнейшем нам нужно будет остаток этих измененных линий сровнять по уровню скачка.
(http://storage7.static.itmages.ru/i/10/1231/s_1293791577_df42819f96.png) (http://itmages.ru/image/view/98272/df42819f)
Короче, поворачивайте вторую ногу, дальше таким же манером сгибаем их в коленях.
Так, чел сидит, но ввоздухе. Опускаем его, чтобы ноги были на земле, а табуреты в таверне найдутся: (в 3д окне) меню View -> Right, там же влючаем ортогональный 2Д-вид камеры (View Persp/Ortho    Numpad 5) - чтобы лучше видеть где земля, где ноги. Курсор мыши в области 3Д окна, жмем А пока не выделится весь скелет. Жмем G и опускаем объект на землю. Фиксируем изменения позиции объекта (i - > Location).
(http://storage3.static.itmages.ru/i/10/1231/s_1293792636_61d8f8da38.png) (http://itmages.ru/image/view/98276/61d8f8da)
C 3D-окном закончили, переходим к окну Graph Editor'a -> дублируем его в отдельное окно для удобства (меню View -> Dublicate Area into New Window)...
(http://storage3.static.itmages.ru/i/10/1231/s_1293792636_fb089829ed.png) (http://itmages.ru/image/view/98277/fb089829)
Начнем снизу..снимаем выделение всех линий если они выделены (А) и RClick'ом выделяем самую нижнюю точку первого кадра (по уровню этой точки должен идти остаток текущей линии), выделяем линию целиком (L) и снимаем выделение с точки которую выделии вначале (Shft+RClick, если надо увеличивайте зум), она не должна двигаться, жмем G и опускаем выделенный участок линии на уровень точки.
(http://storage3.static.itmages.ru/i/10/1231/s_1293792636_78165c5c75.png) (http://itmages.ru/image/view/98278/78165c5c)
Теперь линия "позиции меха над землей" поправленна для всех 316 кадров.
(http://storage2.static.itmages.ru/i/10/1231/s_1293793691_66a05a141c.png) (http://itmages.ru/image/view/98287/66a05a14)
Так правятся все линии имеющие пики в первом кадре.
(http://storage2.static.itmages.ru/i/10/1231/s_1293793691_77dfc80c9a.png) (http://itmages.ru/image/view/98288/77dfc80c)
Нужно только следить куда ведет пик, вверх или вниз, и соответственно поднимать или опускать остальной кусок линии. После того как все линии будут выровненны, можно переходить в 3D-окно и проверять всю анимацию вцелом (Alt+A), если она прыгает - значит какую-то линию пропустили.
Если с редактом анимации закончили, експортируйте анимацию назад в .smd. Выходной файл переименуте.
(http://storage2.static.itmages.ru/i/10/1231/s_1293793691_9693b98a97.png) (http://itmages.ru/image/view/98289/9693b98a)
В 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 (т.е. под старым именем теперь новая анимация). Сохраняемся, заходим в игру -> смотрим, все гварды сидят.
(http://storage1.static.itmages.ru/i/10/1231/s_1293794544_ace7e4ddbb.jpeg) (http://itmages.ru/image/view/98295/ace7e4dd)
Пусть вас не смущает, то что они шевелятся и потом замирают, в стандартной анимации stand_quardsman 2400 кадров, а у нашей всего 315.

Нюансы:
Точка в 0-кадре на линии "положение объекта над землей" (на графике, она у меня самая нижняя)  должна иметь координаты [0;0]. Так как мы опускали эту линию ровняя с пиком, точку в нулевом кадре нужно поднять на старое место. Иначе, в игре, мех будет висеть в воздухе (это видно в OpenBrf'e).
(http://storage1.static.itmages.ru/i/10/1231/s_1293794544_30eb340e7b.png) (http://itmages.ru/image/view/98294/30eb340e)

Туторы:
Создание новых скелетов и изменение их размера | Добавление новой анимации (http://rusmnb.ru/forum/index.php?topic=3492.0)

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
Название: Re: [Anim] Warband Animation + Blender 2.55 | Картина маслом
Отправлено: Nesquik от 10 Октября, 2011, 13:32
Я решил сделать примерно по этой инструкции колющий удар, но когда я его сделал он почему то действует только с 8 кадра.
Название: Re: [Anim] Warband Animation + Blender 2.55 | Картина маслом
Отправлено: Победитель народов от 07 Июля, 2012, 13:57
Дайте ссылку на нормально работающий архив блендера и скрипта на импорт/экспорт. А то перепробовал уже несколько версий и в итоге или блендер вылетает с ошибкой, или не может установить скрипт, или скрипт тупо не видит .smd файлы  facepalm
Название: Re: [Anim] Warband Animation + Blender 2.55 | Картина маслом
Отправлено: HunterWolf от 07 Июля, 2012, 15:57
http://www.blender.org/, (http://www.blender.org/,) http://download2.taleworlds.com/BlenderExporter.zip (http://download2.taleworlds.com/BlenderExporter.zip)
Название: Re: [Anim] Warband Animation + Blender 2.55 | Картина маслом
Отправлено: Baltijec от 09 Июля, 2012, 17:13
Победитель народов (http://rusmnb.ru/index.php?action=profile;u=22853),

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

Название: Re: [Anim] Warband Animation + Blender 2.55 | Картина маслом
Отправлено: Победитель народов от 10 Июля, 2012, 22:49
HunterWolf (http://rusmnb.ru/index.php?action=profile;u=20773), Baltijec (http://rusmnb.ru/index.php?action=profile;u=29),
Спасибо! Продолжаю обучаться  :thumbup:
Название: Re: [Anim] Warband Animation + Blender 2.55 | Картина маслом
Отправлено: Глеб Ушкуйник от 05 Января, 2013, 19:19
Ребята, немного не по теме, но все же попрошу откликнуться. Ситуация следующая: привязку я делаю в максе, но там существует одна проблема - плагин экспорта смд не очень корректный, посему решил попробовать экспортнуть через блендер. Т.е. я привязанную модель импортировал в формате 3ds в Blender. И вот такая странная штука получилась
Название: Re: [Anim] Warband Animation + Blender 2.55 | Картина маслом
Отправлено: Fanat Rocka от 21 Марта, 2013, 16:12
Спасибо ОГРОМНОЕ ребят!))