Голосование

Как вы относитесь к играм в жанре "симулятор колонии"?












Оформление



Пользователей
Сейчас на форуме
Пользователи: 0
Гостей: 619
Всего: 619

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

Тема: [3d] Скелетная анимация и с чем ее едят [Tutorial + FAQ] [3ds Max]  (Прочитано 28212 раз)

  • Сообщений: 202
    • Просмотр профиля
Скелетная анимация и с чем ее едят...
...лично я с маслом.
Добавляю новую анимацию в свой мод. Решил выложить в народ небольшой туториал.
Для создания анимации нам понадобиться:
1. OpenBRF
2. 3ds Max (я использую версию 2010)
3. Плагин для 3ds Max, позволяющий импортировать/экспортировать файлы формата .smd
Для добавления анимации в игру:
1. OpenBRF
2. Warband Module System (я использую, последнюю на данный момент версию, 1.134)

Для начала мы должны вытащить скелет из игры. Заходим в openBRF и открываем файл skeletons.brf, находящийся в папке CommonRes, корневой папки игры.

В архиве находиться скелет и анимация. Нажимаем правой кнопкой мыши на скелет --> Export (nude) Skeleton. Сохраняем в удобное место. Заходим в 3ds Max и импортируем наш скелет. Кнопка с логотипом Autodesk --> Import

Теперь можно приступать к созданию анимации. Я не стал утруждаться и решил для туторила создать простенькую анимацию подъема рук. В конце туториала выложу небольшое FAQ про конкретные действия создания анимации.
Для начала нужно выбрать количество кадров и времени на анимацию. Я решил взять стандартное fps и 30 кадров для анимации. Нажимаем на кнопку с часиками внизу экрана (обратите внимание на настройки).


Начнем создавать анимацию. Принцип создания скелетной анимации довольно прост. Нужно назначить ключи или ключевые положения для скелета. Программа автоматически создаст плавный переход между ключами. Есть два режима работы с анимацией: Auto Key и Set Key.

Auto Key автоматически выставляет ключи при изменение положения скелета. Set Key будет ждать, пока вы не нажмете на кнопку с ключом (слева от кнопок с режимами), в противном случае при передвижении шкалы кадров скелет вернется в привычное положение.
Так как нам нужна точная и качественная анимация, мы будет работать в режиме Set Key.
Для начала нужно поставить скелет в первоначальную позицию. Для этого просто нужно покрутить кости. Так как кости связанны друг с другом, движение одной кости повлечет движение других. Выделяем нужную кость, нажимаем правую кнопку мыши --> Rotate.

Добиваемся нужного положения костей.

Теперь переходим в режим редактирования Set Key, жмем кнопку.

Теперь выделяем все кости и жмем на кнопку с ключом. У нас есть первая позиция. Далее переводим шкалу кадров на следующую позицию, я выбрал 10 кадров.

Далее передвигаем кости в следующую позицию. И опять выделяем все кости и нажимаем кнопку с ключом.

Так же выставляем следующие ключевые позиции. Если анимация будет повторяющейся, например ходьба, то первый и последний кадр должны совпадать.
В итоге получаем плавную анимацию. Мне понадобилось четыре ключевые позиции. При нажатии на кнопку Play Animation анимация должна воспроизводится правильно.

Можно сохранять и импортировать в игру. Кнопка с логотипом Autodesk --> Export. Сохраняем в формате .smd в удобном для вас месте. В настройках нужно указать Export Sequence SMD.

Открываем openBRF и экспортируем туда новую анимацию Import --> Skeletal animation.

Сохраняем новый .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. Каждая миссия отвечает за место обработки скрипта, в моем случае скрипт будет проверяться в центре города, то есть в другом месте анимация проигрываться не будет.
Теперь можно собирать модульную систему. Итак, вот что вышло у меня:


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

Автор туториала: proVIDec
Автор FAQ: Siegrun
Источник

« Последнее редактирование: 29 Июня, 2011, 12:57 от Leon473 »
Туториал по созданию и добавлению анимации в Warband
  • Сообщений: 870
    • Просмотр профиля
Цитировать (выделенное)
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),

])

То что красным в коде лишние, что это и зачем оно, можешь посмотреть здесь

  • Сообщений: 202
    • Просмотр профиля
Leon473
try_begin
----
Эта операция открывает пытаются заявление. Попробуйте заявления удобно, потому что они позволяют использовать условия в них не завершив весь блок операций, если не-соответствия происходит.
А ну понятно  :D
Лучше английскую версию почитать.

Туториал по созданию и добавлению анимации в Warband
  • Сообщений: 870
    • Просмотр профиля
Лучше английскую версию почитать.
Или же другие ответы в теме :)

  • Сообщений: 734
    • Просмотр профиля
В хозяйстве пригодится, спасибо.

  • Сообщений: 2740
  • За создание крупных модов и других особо сложных проектов
    • Просмотр профиля
Leon473
try_begin
----
Эта операция открывает пытаются заявление. Попробуйте заявления удобно, потому что они позволяют использовать условия в них не завершив весь блок операций, если не-соответствия происходит.
А ну понятно  :D
Лучше английскую версию почитать.


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

А тутор про аниму хорош.

  • Ник в M&B: DRZ_Mark7
  • Фракция: Вегиры
  • Сообщений: 1027
  • За создание технических проектов различного характера
    • Просмотр профиля
    • WarHammer Fantasy Mod для WarBand.
А можно ли двигать кости командой Move, или же только вращать?

Up: по ходу дела нельзя. Двигается весь скелет а не отдельная кость.

« Последнее редактирование: 10 Июня, 2011, 12:20 от Андреус Ас »
  • Сообщений: 870
    • Просмотр профиля
Андреус Ас, можно, выделяешь нужную кость, и двигаешь как душа пожелает. Только при этом могут двигаться все присоединенные к ней кости, но это даже лучше.

  • Сообщений: 1027
  • За создание технических проектов различного характера
    • Просмотр профиля
    • WarHammer Fantasy Mod для WarBand.
Значит только некоторые кости тащат за собой остальные? Спасибо.

  • Сообщений: 1722
  • За особо выдающиеся авторские тексты За активную деятельность, связанную с публикациями и помощью другим посетителям
    • Просмотр профиля
Цитировать (выделенное)
Вставляем следующие

Цитировать (выделенное)
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, почему-то для ГГ не работает. Вообще, никакой реакции. С другими трупсами работает нормально. А у ГГ можно лишь менять одну аниму на другую.

  • Ник в M&B: Fin___Gall
  • Сообщений: 734
    • Просмотр профиля
Возможно ли объединить две анимации в один файл? Допустим есть анимация с кадрами 0-50, движение с 0 по 25 кадр, остальное пусто (как бы резерв); вторая анимация с таким же количеством кадров, но движение с 26 по 50 кадр.

  • Сообщений: 449
    • Просмотр профиля
Да. Если не путаю (модульки под рукой нет) то кадры анимации задаются тут:
Цитировать (выделенное)
["имя_анимации", 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 означает, что будет задествованна только нижняя часть тела, а верхняя будет перехватываться любой другой анимой по требованию. Такой флаг стоит на аниме прыжка, чтобы ГГ скакал по желанию, но при этом мог скакать хоть с блоком, хоть с замахом.

« Последнее редактирование: 02 Октября, 2012, 20:27 от GreyB »
  • Сообщений: 52
    • Просмотр профиля
как наз. этот плагин для 3d max?

"Черкасский Городок"- славных битв воспоминания...
  • Сообщений: 7578
  • За наиболее важные для развития сайта идеи За особо выдающиеся авторские тексты За регистрацию на форуме не позже декабря 2011 года и не менее 3000 постов И создали они сайт... Призер конкурса Футболка по версии Всадников
    • Просмотр профиля
3. Плагин для 3ds Max, позволяющий импортировать/экспортировать файлы формата .smd

Моя конфигурация:
Нормальная, мне хватает.
  • Сообщений: 749
    • Просмотр профиля
  • Ник в M&B: ValerBOSS
  • Сообщений: 94
    • Просмотр профиля
В играх M&B есть функция присесть (где-то она есть, а где-то нет). Так вот, при начале движения человек опять встает. А если добавить анимацию бега и ходьбы в полуприсяди, как сделать, чтобы она проигрывалась вместо обычного бега и ходьбы после опускания на колено?

  • Сообщений: 73
    • Просмотр профиля
Всем привет,есть у кого нибудь анимации танцев?Желательно клубных)))
 

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

И вот я новичек,за сколько  часов я могу сделать комбинированную анимацию?

  • Сообщений: 3727
  • За создание технических проектов различного характера За регистрацию на форуме не позже сентября 2008 года Призер конкурса Мастер полигона и текселя
    • Просмотр профиля
Nikitax3mo, парень ,здесь тебе не порноскайрим с гомосяками , пидар-бабами ,эльфами придурками и дырявыми шкатульками.Здесь блеать большие бородатые мужики с волосатыми руками машут топорами ,едят грибы и набегают на караваны .
А то что ты новичок ,то еще не значит что сможешь ,а уж тем более часов ,и уж не говоря о комбинированной ... (  :blink: и че бля за комбинированная )

«Самая большая проблема для теории эволюции — как возникла жизнь. Поскольку для создания белков нужна РНК, для создания РНК нужна ДНК, а для создания ДНК нужны белки. То есть эта проблема серьёзнее, чем "что возникло раньше — курица или яйцо"».
Джеффри Томкинс, Ph.D. (генетика), Университет Клемсона.
  • Сообщений: 2
  • Skype - facebook:drfeelbetter.brony
    • Просмотр профиля
А где можно найти анимацию удара штыком(сверху, снизу)? :crazy:
Что-то я лазаю по папке игры, а найти не в силах.... facepalm

  • Ник в M&B: Mikasa Ackerman
  • Фракция: Наемники
После того, как я умру, я не буду в состоянии помнить что-либо... Так что я одержу победу, несмотря ни на что. Я буду жить, несмотря ни на что!
  • Сообщений: 3727
  • За создание технических проектов различного характера За регистрацию на форуме не позже сентября 2008 года Призер конкурса Мастер полигона и текселя
    • Просмотр профиля
посмотри в skeletons.brf
в палете  Animation  ПКМ по anim_human
http://prntscr.com/6l3fnu
 папка модуля - actions.txt

«Самая большая проблема для теории эволюции — как возникла жизнь. Поскольку для создания белков нужна РНК, для создания РНК нужна ДНК, а для создания ДНК нужны белки. То есть эта проблема серьёзнее, чем "что возникло раньше — курица или яйцо"».
Джеффри Томкинс, Ph.D. (генетика), Университет Клемсона.
  • Сообщений: 2
  • Skype - facebook:drfeelbetter.brony
    • Просмотр профиля
Спасибо!  :p
Т.е. получается, что я сначала импортирую любую анимацию в 3dsmax, затем меняю её и сую обратно в папку игры... А вот эти ужасные строчки, которые в конце гайда стоят, прописывать обязательно? :cry:

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

« Последнее редактирование: 25 Марта, 2015, 14:14 от Mikasa Ackerman »
  • Ник в M&B: Mikasa Ackerman
  • Фракция: Наемники
После того, как я умру, я не буду в состоянии помнить что-либо... Так что я одержу победу, несмотря ни на что. Я буду жить, несмотря ни на что!

СиЧЪ Total War СиЧЪ Total War
Сайт "Всадники Кальрадии" не является СМИ. Администрация не несет ответственность за высказывания и публикацию каких-либо материалов, сделанные любыми пользователями форума, в том числе посредством личных и публичных сообщений. Материалы, размещенные на ресурсе третьими лицами, могут содержать информацию, не предназначенную для лиц, не достигнувших совершеннолетия. При обнаружении на ресурсе материалов, нарушающих законодательство Российской Федерации, необходимо обращаться к администрации.
Сайт работает на быстром VPS/VDS хостинге от FASTVPS


Powered by SMF 2.0 | SMF © Simple Machines LLC