Редактирование 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;
Распаковываем 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м тут (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
Победитель народов (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.ПКМ на кость
(http://s005.radikal.ru/i210/1207/a6/30531f81f773.jpg) (http://www.radikal.ru)
Далее ЛКМ (по красной стрелке) в правом верхнем углу на маленьком кружочке с крестиком
чтобы открыть меню координат W,X,Y,Z
2.Открываем(см.желтым =меню координат W,X,Y,Z)и правим по правым-левым стрелкам (ЛКМ на дробях и можно вбить любую цифру=поточнее «крутануть»кость)
(http://s018.radikal.ru/i528/1207/29/693563eeb956.jpg) (http://www.radikal.ru)
Ребята, немного не по теме, но все же попрошу откликнуться. Ситуация следующая: привязку я делаю в максе, но там существует одна проблема - плагин экспорта смд не очень корректный, посему решил попробовать экспортнуть через блендер. Т.е. я привязанную модель импортировал в формате 3ds в Blender. И вот такая странная штука получилась (http://i54.fastpic.ru/big/2013/0105/b1/9da17e1e1acc66e67d4eea57e4763cb1.jpg) (http://fastpic.ru/)