Форум

[Anim] О замене старой анимации новой  

  RSS
Doktor_e5
(@admin)
Уважаемый Игрок Admin

Это туториал, который показывает, как можно заменить старые анимации в Mount & Blade на сделанные вами.

Что вам для этого понадобится:
- Mount & Blade версии 1.010 / 1.011
- http://www.mbrepository.com/file.php?id=146 6" target="_blank" rel="noopener">OpenBRF от mtarini
- Програма для изменения анимации – в нашем описании мы будем использовать 3ds max 9
- http://www.taleworlds.com/mb_module_system.htm l" target="_blank" rel="noopener">Модульная система последней версии
- Плагин для вашей программы для изменения анимации, позволяющий импортировать и экспортировать SMD файлы:
http://www.wunderboy.org/   (здесь 2 файла: importer и exporter)
-Python: http://www.python.org/download/

Вы должны иметь хотя бы минимум знаний, позволяющих работать в 3d Max'е, иначе вам будет очень и очень сложно, даже если я попытаюсь обьяснить все очень детально.
Вы должны уметь работать со скриптами в Python'е.
Также я рекомендую вам ознакомиться с этим туториалом: http://forums.taleworlds.net/index.php/board,12.0.html
Вы также можете посмотреть туториал от cdvader'а, на который я сам немного ориентировался: http://forums.taleworlds.net/index.php/topic,72992.0.html

Итак, давайте начнем:
Предполагаю, вы уже успели установить Mount and Blade, создали новую папку мода для ваших новых анимаций, правильно настроили вашу модульную систему, установили Python плагин для импорта/экспорта SMD файлов для вашей программы для изменения анимаций, и это значит, что мы приступить к работе. Если вы не знаете, как это сделать, гляньте-ка сюда: http://forums.taleworlds.net/index.php/board,12.0.html

Теперь перейдем в папку CommonRes и сделайте резервную копию файла skeletons.brf, он вам понадобится, если что-то пойдет не так.
Итак, откройте OpenBRF и перейдите к File>Open skeletons.brf в папке СommonRes.

Щелкните правой клавишей мыши по anim_human, выберите расколоть через [split via] action.txt.
В открывшемся окне перейдите к папке вашего мода и выберите здесь actions.txt.
При этом в вашей папке создастся файл “actions.txt [после раскола anim_human]”.
Вы можете удалить его, а можетe и не удалять, он нас не интересует.

В данный момент вы должны иметь по крайней мере 108 анимаций iв Mount and Blade однако мы будем заменять лишь одну.
Совет: не сохраняйте skeletons.brf с расколотой anim_human, иначе ничего не будет работать!
Мы всего-лишь хотим посмотреть, что мы можем изменить.

Итак, в нижней половине списка есть анимации атаки. Выделяем “anim_human_ready_thrust_onehanded”. Под ней должна бытьанимация с названием “ anim_human_release_thrust_onehanded”. Это означает, что первая анимация -  это движение, когда вы удерживаете в игре клавишу мыши. Следующая - сама атака.
Мы должны заменить их, сразу две.
Посмотрите данные по выбранной анимации (anim_human_release_thrust_onehanded ). Вы видите кости (20), кадры анимации (6), и интервалыl (28510-28540).

Кол-во костей, естественно, всегда сохраняет то же самое. Количество кадров показывает, сколько кадров было создано 3ds max, интервалы показывают “игровые” кадры. Так как это простая анимация, здесь будет достаточно 6-ти кадров, чтобы определить движение. Однако в игре у вас должна быть большая последовательность последовательность кадров (в нашем случае 40 кадров в секунду).

Теперь запишите первое число интервала (28500 из “готовой” анимации)  и последнее число интервала (28540 из “release” анимации) на клочке бумаги - оно нам понадобиться в дальнейшем.

Щелкните по скелету (вверху списка) выберите skel_human, щелкните правой клавишей мыши и выберите экспорт nude skeleton.
Теперь можете закрыть OpenBRF – ничего не сохраняйте!

Откройте 3ds max.
Щелкните file, import, выберите SMD как  тип файла и импортируйте экспортирванный skel_human из OpenBRF.
Ничего не меняйте, просто нажмите “ok” 2 раза.
Теперь щелкните на “Time configuration”

и выберите длину 40 (да, количество интервалов).

Теперь вы можете увидеть, что линия времени изменилась на 40 кадров. Выберите Auto key, чтобы он стал активным (красным):

Теперь переместите панель времени до 10:

С 0 по 10 кадр - это будет "готовая" анимация.
Начните вращать кости, чтобы они приняли положение, подобное этому:
Учтите, что первый ключевой кадр (0) вы менять не должны!

Теперь вы можете двигать вперед панель времени для отдельных кадров и снова вращать кости. Повторите эти шаги 2 или 3 раза, пока вы не будете довольны вашим движением.

Этого достаточно. Не идеально, но работать будет.
Сохраните ваш файл, вы можете его изменять в дальнейшем.

Теперь выделите все кости скелета. Теперь вы можете видеть все кадры, на которой позиция костей изменена.

Выберите abdomen bone и расположите ее на всех измененных кадрах в правильное положение:

Видите? Парень сделал шаг вперед!
Теперь запишите номера кадров, которые были изменены, на бумагу. В моем случае это 10,19 и 32.
Сохраните файл.
Сейчас мы будем экспортировать:
Перейдите в File и выберите Export. Выберите SMD и напишите такое имя: “anim_human_ready_thrust_onehanded” .
В появившемся окне выберите последовательность от 0 до 10:

Жмите ok.
Теперь повторите это для “Release” анимации.
Жмите опять File, выберите Export, однако в этот раз пишите такое имя: “anim_human_release_thrust_onehanded”. Убедитесь, что экспортируемый файл именно SMD и жмите “save”. Снова выбирайте “sequence”, но теперь от 0 до 40! Жмите “ok”.

Теперь жмите File и выбирайте “new”. Появится новая сцена. Жмите File – import, выбирайте SMD и импортируйте новую “anim_human_ready_thrust_onehanded”. Просто жмите ok.

Вы заметите, что 3ds max создал 21-ю кость. Она возле ноги. Удалите ее, так как иначе анимация будет отображаться неверно.

Теперь выберите все оставшиеся кости и уберите кадры 1-9, они нам не нужны. Удерживайте Strg и щелкните на нем.

Щелкните правой клавишей мыши на одном и выберите “delete selected keys”.
Остался только первый (0) и последний (10). Однако между ними свободное место.
Помните, что при выполнении всех этих действий все кости должны быть выделены!
Щелкните на 10 кадре, зажмите клавишу мышки и переместите его поближе к первому:

Теперь щелкните на кнопке “time configuration” (ниже правого угла) и введите длину 2. “Ok” и теперь мы можем экспортировать готовую анимацию. Щелкните File – Export и перепишите старую “anim_human_ready_thrust_onehanded”. Снова выбираем “sequence” 0-2.
Видите??? В диалоге экспорта теперь экспортируются только 20 nodes(костей).

Прекрасно. То же самое мы должны проделать с “Release” анимацией.

File – New (вы не должны сохранять старую сцену) и импортируйте “anim_human_release_thrust_onehanded”, как обычно.

И снова удалите эту ненужную кость возле ног. Теперь выделите все кости и удалите все keyframes, которые раньше вы НЕ изменяли. Тяжело запомнить, правда? Я надеюсь, вы их записали перед тем, как удалить, как я вам говорил ^^

Остаются только помеченные красным.
Теперь передвиньте оставшиеся поближе друг к другу, так же, как мы делали недавно. Переходим в Time configuration и выбираем длину от 0 до 3:

Отлично, теперь наша “Release” анимация состоит всего из 4 кадров. Время экспорта!Перезапишите старую “anim_human_release_thrust_onehanded”. “Sequence” от 0 доl 3.

Поздравляю, ваша анимация готова к использованию. Как раз настало время отдохнуть xD

Хватит отдыхать, продолжим.
Откройте OpenBRF.
Откройте skeletons.brf.
Ничего не надо разделять (split), просто щелкните на анимации “anim_human”
Щелкните “import” и выберите skeletal анимацию.
Импортируйте 2 сделанных ранее анимации под anim_human. Мы должны так поступить, потому что мы не можем соединить разделенную анимацию.
Щелкните правой клавишей мыши на “anim_human_ready_thrust_onehanded” и переименуйте ее на “ready_thrust_onehanded”.
Теперь щелкните Data – time of frame и перейдите к 1-му кадру и введите первое число интервала (28500) потом, для второго кадра, введите 28510. Как это и было в оригинальной анимации.

То же самое проделайте с “anim_human_release_thrust_onehanded”. Переименуйте в “release_thrust_onehanded”.
Для первого кадра введите 28510, для следующеговведите номер, который вы записали ранее в 3ds max'е.
В моем случае это было число 19, значит вы должны будете записать 28519. И для последнего кадра введите последний номер интервала - 28532, я думаю. Перед этим, в оригинальной “Release” анимации, последний интервальный номер был 28540, однако наша анимация короче.

Отлично. Сохраните.

Теперь перейдем к модульной системе:
Ищите в модульной системе файл под названием module_animations. Правый щелчок мышью – edit с Idle.

Перейдите к линии ["ready_thrust_onehanded".... примерно на половине страницы.
Исправьте, должно выглядеть примерно так:

["ready_thrust_onehanded",   acf_thrust|acf_anim_length(100)|acf_rotate_body|acf_enforce_rightside,
   [ready_durn, "ready_thrust_onehanded", combat+8500, combat+8510, blend_in_ready], ],

Удалите линию “acf_parallels_for_look_slope”. Это чтобы вы могли поражать цели на разной высоте. Однако по некоторым причинам это не работает для новых, созданных пользователем (не исправленных старых), анимациях. Я не знаю почему...

Прежде чем запустить все это дело посмотрите в anim_human для thrust, но сейчас мы должны сохранить это примерно с таким же именем

Для “Release” анимации вы должны все сделать точно так же. После изменений линии должны выглядеть так:

["release_thrust_onehanded", acf_thrust|acf_anim_length(100)|acf_rotate_body|acf_enforce_rightside,
   [0.61, "release_thrust_onehanded", combat+8510, combat+8532, blend_in_release],
 ],

Я изменил номер (красный) на 8532 так как это последнее число интервала, а у нас он короче.

Превосходно. Сохраните файл и выйдите.

Запустите “build module” в модульной системе.

Перейдите в Mount&Blade, выберите ваш мод (с таким же именем, как у файла), и колите врагов со своей особой анимацией xD

Я надеюсь, что хоть как-то вам помог.

Удачного вам дня.

ОтветитьЦитата
Размещено : 28/06/2019 10:02
Теги темы

Оставьте ответ


 
Поделиться:
  
Работает

Пожалуйста, Вход или Зарегистрироваться