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

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

Название: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: proVIDec от 31 Мая, 2011, 20:00
Скелетная анимация и с чем ее едят...
...лично я с маслом.
Добавляю новую анимацию в свой мод. Решил выложить в народ небольшой туториал.
Для создания анимации нам понадобиться:
1. OpenBRF
2. 3ds Max (я использую версию 2010)
3. Плагин для 3ds Max, позволяющий импортировать/экспортировать файлы формата .smd
Для добавления анимации в игру:
1. OpenBRF
2. Warband Module System (я использую, последнюю на данный момент версию, 1.134)

Для начала мы должны вытащить скелет из игры. Заходим в openBRF и открываем файл skeletons.brf, находящийся в папке CommonRes, корневой папки игры.
(http://i053.radikal.ru/1105/83/dcc34f893f7f.png)
В архиве находиться скелет и анимация. Нажимаем правой кнопкой мыши на скелет --> Export (nude) Skeleton. Сохраняем в удобное место. Заходим в 3ds Max и импортируем наш скелет. Кнопка с логотипом Autodesk --> Import
(http://i045.radikal.ru/1105/68/1e2ff485f1c4.png)
Теперь можно приступать к созданию анимации. Я не стал утруждаться и решил для туторила создать простенькую анимацию подъема рук. В конце туториала выложу небольшое FAQ про конкретные действия создания анимации.
Для начала нужно выбрать количество кадров и времени на анимацию. Я решил взять стандартное fps и 30 кадров для анимации. Нажимаем на кнопку с часиками внизу экрана (обратите внимание на настройки).
(http://s41.radikal.ru/i094/1105/57/96cd90aac843.png)
(http://s56.radikal.ru/i153/1105/43/e4b0350245cf.png)
Начнем создавать анимацию. Принцип создания скелетной анимации довольно прост. Нужно назначить ключи или ключевые положения для скелета. Программа автоматически создаст плавный переход между ключами. Есть два режима работы с анимацией: Auto Key и Set Key.
(http://s54.radikal.ru/i146/1105/6f/d165a5416b3b.png)
Auto Key автоматически выставляет ключи при изменение положения скелета. Set Key будет ждать, пока вы не нажмете на кнопку с ключом (слева от кнопок с режимами), в противном случае при передвижении шкалы кадров скелет вернется в привычное положение.
Так как нам нужна точная и качественная анимация, мы будет работать в режиме Set Key.
Для начала нужно поставить скелет в первоначальную позицию. Для этого просто нужно покрутить кости. Так как кости связанны друг с другом, движение одной кости повлечет движение других. Выделяем нужную кость, нажимаем правую кнопку мыши --> Rotate.
(http://s013.radikal.ru/i325/1105/c6/2f9b2d481eef.png)
Добиваемся нужного положения костей.
(http://s45.radikal.ru/i109/1105/b0/b9d621905587.png)
Теперь переходим в режим редактирования Set Key, жмем кнопку.
(http://i025.radikal.ru/1105/ff/674f2747fa96.png)
Теперь выделяем все кости и жмем на кнопку с ключом. У нас есть первая позиция. Далее переводим шкалу кадров на следующую позицию, я выбрал 10 кадров.
(http://i010.radikal.ru/1105/23/b6008b7fce7b.png)
Далее передвигаем кости в следующую позицию. И опять выделяем все кости и нажимаем кнопку с ключом.
(http://s45.radikal.ru/i109/1105/ac/39deeadb3112.png)
Так же выставляем следующие ключевые позиции. Если анимация будет повторяющейся, например ходьба, то первый и последний кадр должны совпадать.
В итоге получаем плавную анимацию. Мне понадобилось четыре ключевые позиции. При нажатии на кнопку Play Animation анимация должна воспроизводится правильно.
(http://i057.radikal.ru/1105/5c/45c27ec0d7e8.png)
Можно сохранять и импортировать в игру. Кнопка с логотипом Autodesk --> Export. Сохраняем в формате .smd в удобном для вас месте. В настройках нужно указать Export Sequence SMD.
(http://s010.radikal.ru/i314/1105/26/016b8fcc2155.png)
Открываем openBRF и экспортируем туда новую анимацию Import --> Skeletal animation.
(http://s004.radikal.ru/i207/1105/81/1a9d97bad4be.png)
Сохраняем новый .brf архив в папке Resource, корневой папки нашего мода. Теперь прописываем .brf архив в module.ini
Цитировать (выделенное)
load_mod_resource = имя_архива

Сейчас нужно проверить нашу анимацию в игре. Для этого нужно создать тестовый вариант для отладки. Сперва-наперво нужно прописать анимацию в module_animations.py. Открываем файл и заменяем строки:
Цитировать (выделенное)
["unused_human_anim_14", 0, 0, [1.0, "anim_human", 0, 1, 0]],

...на следующие(пример для отладки, скопировал и изменил анимацию jump):
Цитировать (выделенное)
["имя_анимации", acf_enforce_lowerbody, amf_priority_jump|amf_play|amf_client_prediction, [1.0, "Имя_анимации_в_архиве", 22, 46, arf_blend_in_1],],
 ],

Теперь нужно присвоить проигрыш анимации какой-либо кнопке. В этом нам поможет module_mission_templates.py.
Редактируем файл. Перед строчками
Цитировать (выделенное)
tournament_triggers = [

Вставляем следующие
Цитировать (выделенное)
some_anim = (0, 0, 0, [(key_is_down, key_z)],
[
   (get_player_agent_no,":agent_no"),
   (agent_set_animation, ":agent_no", "имя_анимации_в_module_animations.py"),

])

Скрипт при нажатии кнопки "z" (как я уже говорил вариант для отладки) проигрывает нашу новую анимацию. Теперь нужно добавить скрипт в конец каждой миссии, но уже без строчек some_anim = . Список миссий можно найти в файле ID_mission_templates.py. Я добавил в конец миссии (вариант для отладки) mst_town_center. Каждая миссия отвечает за место обработки скрипта, в моем случае скрипт будет проверяться в центре города, то есть в другом месте анимация проигрываться не будет.
Теперь можно собирать модульную систему. Итак, вот что вышло у меня:
(http://s014.radikal.ru/i328/1105/0f/af91ed3c79f5.jpg)

Ну а теперь, как и обещал FAQ по азам создания анимации.

Автор туториала: proVIDec
Автор FAQ: Siegrun
Источник (http://alldayplus.ru/design_art_photo/clipart/683-bazovaya-skeletnaya-animaciya-personazha-v-3ds-max-2010.html)
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Leon473 от 01 Июня, 2011, 10:29
Цитировать (выделенное)
some_anim = (0, 0, 0, [(key_is_down, key_z)],
[
   (get_player_agent_no,":agent_no"),
   (try_begin),
   (agent_set_animation, ":agent_no", "имя_анимации_в_module_animations.py"),
   (try_end),

])

То что красным в коде лишние, что это и зачем оно, можешь посмотреть здесь (http://rusmnb.ru/forum/index.php?topic=3629.0)
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: proVIDec от 01 Июня, 2011, 12:24
Leon473
try_begin
----
Эта операция открывает пытаются заявление. Попробуйте заявления удобно, потому что они позволяют использовать условия в них не завершив весь блок операций, если не-соответствия происходит.
А ну понятно  :D
Лучше английскую версию почитать.
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Leon473 от 01 Июня, 2011, 12:26
Лучше английскую версию почитать.
Или же другие ответы в теме :)
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: sergl от 01 Июня, 2011, 12:26
В хозяйстве пригодится, спасибо.
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Mark7 от 06 Июня, 2011, 19:01
Leon473
try_begin
----
Эта операция открывает пытаются заявление. Попробуйте заявления удобно, потому что они позволяют использовать условия в них не завершив весь блок операций, если не-соответствия происходит.
А ну понятно  :D
Лучше английскую версию почитать.


Google переводчик. Потом может возьмусь и довиду до ума.

А тутор про аниму хорош.
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Андреус Ас от 10 Июня, 2011, 11:55
А можно ли двигать кости командой Move, или же только вращать?

Up: по ходу дела нельзя. Двигается весь скелет а не отдельная кость.
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Leon473 от 10 Июня, 2011, 13:14
Андреус Ас, можно, выделяешь нужную кость, и двигаешь как душа пожелает. Только при этом могут двигаться все присоединенные к ней кости, но это даже лучше.
Название: Re: Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Андреус Ас от 10 Июня, 2011, 13:22
Значит только некоторые кости тащат за собой остальные? Спасибо.
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: FinGall от 26 Апреля, 2012, 15:45
Цитировать (выделенное)
Вставляем следующие

Цитировать (выделенное)
some_anim = (0, 0, 0, [(key_is_down, key_z)],
[
   (get_player_agent_no,":agent_no"),
   (agent_set_animation, ":agent_no", "имя_анимации_в_module_animations.py"),

Странно. А у меня agent_set_animation, почему-то для ГГ не работает. Вообще, никакой реакции. С другими трупсами работает нормально. А у ГГ можно лишь менять одну аниму на другую.
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: sergl от 02 Октября, 2012, 16:06
Возможно ли объединить две анимации в один файл? Допустим есть анимация с кадрами 0-50, движение с 0 по 25 кадр, остальное пусто (как бы резерв); вторая анимация с таким же количеством кадров, но движение с 26 по 50 кадр.
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: GreyB от 02 Октября, 2012, 19:29
Да. Если не путаю (модульки под рукой нет) то кадры анимации задаются тут:
Цитировать (выделенное)
["имя_анимации", acf_enforce_lowerbody, amf_priority_jump|amf_play|amf_client_prediction, [1.0, "Имя_анимации_в_архиве", 22, 46, arf_blend_in_1],],
 ],

-------------

Странно. А у меня agent_set_animation, почему-то для ГГ не работает. Вообще, никакой реакции. С другими трупсами работает нормально. А у ГГ можно лишь менять одну аниму на другую.

Если еще актуально.

Вообще работает :) доказательство, например, у Mark7 на аватарке. Вероятно, не задан для анимы приоритет, или задан не правильно.
Цитировать (выделенное)
["имя_анимации", acf_enforce_lowerbody, amf_priority_jump|amf_play|amf_client_prediction, [1.0, "Имя_анимации_в_архиве", 22, 46, arf_blend_in_1],],
 ],

Вот, синим флаг выделен. Приоритет у вызываемой анимации должен быть выше, чем у той что проигрывается в настоящий момент. Попробуй поставить amf_priority_die.

Кроме того, могут быть "виноваты" и другие флаги. Так, например, флаг acf_enforce_lowerbody означает, что будет задествованна только нижняя часть тела, а верхняя будет перехватываться любой другой анимой по требованию. Такой флаг стоит на аниме прыжка, чтобы ГГ скакал по желанию, но при этом мог скакать хоть с блоком, хоть с замахом.
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Клепа98 от 07 Января, 2013, 12:44
как наз. этот плагин для 3d max?
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: HunterWolf от 07 Января, 2013, 12:51
3. Плагин для 3ds Max, позволяющий импортировать/экспортировать файлы формата .smd
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: ValerBOSS от 07 Января, 2013, 12:51
А точнее
3D Studio Max SMD Export Plug-in (http://www.wunderboy.org/download.php?file=3dsmax_smd_exporter_v1.6.zip&s=2)
3D Studio Max SMD Import Plug-in (http://www.wunderboy.org/download.php?file=3dsmax_smd_importer_v1.0.zip&s=2)
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Stalnoy.1398 от 15 Июля, 2013, 14:04
В играх M&B есть функция присесть (где-то она есть, а где-то нет). Так вот, при начале движения человек опять встает. А если добавить анимацию бега и ходьбы в полуприсяди, как сделать, чтобы она проигрывалась вместо обычного бега и ходьбы после опускания на колено?
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Nikitax3mo от 21 Августа, 2013, 23:07
Всем привет,есть у кого нибудь анимации танцев?Желательно клубных)))
 

Добавлено: 21 Августа, 2013, 23:08

И вот я новичек,за сколько  часов я могу сделать комбинированную анимацию?
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: секатор от 24 Августа, 2013, 00:09
Nikitax3mo (http://rusmnb.ru/index.php?action=profile;u=21754), парень ,здесь тебе не порноскайрим с гомосяками , пидар-бабами ,эльфами придурками и дырявыми шкатульками.Здесь блеать большие бородатые мужики с волосатыми руками машут топорами ,едят грибы и набегают на караваны .
А то что ты новичок ,то еще не значит что сможешь ,а уж тем более часов ,и уж не говоря о комбинированной ... (  :blink: и че бля за комбинированная )
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Mikasa Ackerman от 25 Марта, 2015, 11:22
А где можно найти анимацию удара штыком(сверху, снизу)? :crazy:
Что-то я лазаю по папке игры, а найти не в силах.... facepalm
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: секатор от 25 Марта, 2015, 12:27
посмотри в skeletons.brf
в палете  Animation  ПКМ по anim_human
http://prntscr.com/6l3fnu (http://prntscr.com/6l3fnu)
 папка модуля - actions.txt
Название: Re: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]
Отправлено: Mikasa Ackerman от 25 Марта, 2015, 14:02
Спасибо!  :p
Т.е. получается, что я сначала импортирую любую анимацию в 3dsmax, затем меняю её и сую обратно в папку игры... А вот эти ужасные строчки, которые в конце гайда стоят, прописывать обязательно? :cry:

P.S. Так и не нашел анимации удара штыком :cry: :cry: