Сичевые Свитки - FAQ - Моддинг анимации юнитов в M2TW
Подготовка к работе с файлами анимации M2TW
Спойлер (раскрыть)
1. Устанавливаем Python25 в любую удобную директорию на компьютере, затем идем по адресу Python25 / Tools / Scripts и видим там много разных файлов. Создай здесь папку, к примеру "Animation_M2TW", которую будем использовать для дальнейшего извлечения анимации.
2.Удаляем все файлы из архива редактирования анимации, кроме трех (только они нужны): animationlibrary, animationlibrary, animationutilities.
Пробуем запустить animationutilities - если вылезло окошко с меню, значит все работает нормально.
3. Просто закидываем конвертер Mesh_2_Ms3d_beta_1_8 в любую удобную директорию на компьютере и запускаем .ЕХЕ файл. Появляется окошко - в строчке "File" открываем "Convert" > ".MESH to .MS3D" и выбираем файл модели юнита. Например, Medieval II Total War / data / unit_models / _units / en_highlander\highland_rabble_lod0.mesh - появляются 2 кнопки "Proceed" и "Cancel" - выбираем второе после чего появяется файл модели в формате MS3D. Теперь можно открыть и нажать кнопку "Clear All".
Следует обязательно проверить, чтобы возле кнопки "Clear All" стоял флажок, только тогда моделька получит нормальный вид.
Сохраняем, ибо потом предстоит на этой модельки проверять файлы анимации.
Как правило, эти действия необходимо выполнить прежде чем начинать совмещение модели с файлом анимации.
1. Устанавливаем Python25 в любую удобную директорию на компьютере, затем идем по адресу Python25 / Tools / Scripts и видим там много разных файлов. Создай здесь папку, к примеру "Animation_M2TW", которую будем использовать для дальнейшего извлечения анимации.
2.Удаляем все файлы из архива редактирования анимации, кроме трех (только они нужны): animationlibrary, animationlibrary, animationutilities.
Пробуем запустить animationutilities - если вылезло окошко с меню, значит все работает нормально.
3. Просто закидываем конвертер Mesh_2_Ms3d_beta_1_8 в любую удобную директорию на компьютере и запускаем .ЕХЕ файл. Появляется окошко - в строчке "File" открываем "Convert" > ".MESH to .MS3D" и выбираем файл модели юнита. Например, Medieval II Total War / data / unit_models / _units / en_highlander\highland_rabble_lod0.mesh - появляются 2 кнопки "Proceed" и "Cancel" - выбираем второе после чего появяется файл модели в формате MS3D. Теперь можно открыть и нажать кнопку "Clear All".
Следует обязательно проверить, чтобы возле кнопки "Clear All" стоял флажок, только тогда моделька получит нормальный вид.
Сохраняем, ибо потом предстоит на этой модельки проверять файлы анимации.
Как правило, эти действия необходимо выполнить прежде чем начинать совмещение модели с файлом анимации.
Какие программы используются для работы с файлами анимации M2TW ?
Спойлер (раскрыть)
1. animation utilities - самая первая, и долгое время единственная, программа для конвертирования и объединения анимации и модели. Крепкая и проверенная программка, там где по какойто причине Goat не хочет работать, скорее всего заработает она, и на оборот.
Для просмотра ссылки Зарегистрируйтесь
2. Goat - программа, совмещающая в себе большинство необходимых программ для работы с модельками M2TW, местами есть глюки для анимации. В общем ее основной плюс - удобность и "все-в-одном".
Для просмотра ссылки Зарегистрируйтесь
1. animation utilities - самая первая, и долгое время единственная, программа для конвертирования и объединения анимации и модели. Крепкая и проверенная программка, там где по какойто причине Goat не хочет работать, скорее всего заработает она, и на оборот.
Для просмотра ссылки Зарегистрируйтесь
2. Goat - программа, совмещающая в себе большинство необходимых программ для работы с модельками M2TW, местами есть глюки для анимации. В общем ее основной плюс - удобность и "все-в-одном".
Для просмотра ссылки Зарегистрируйтесь
Какой инструментарий необходим для редактирования файлов анимации M2TW ?
Спойлер (раскрыть)
1. MilkShape3D
2. Python25
3. Набор распакованной анимации из M2TW
4. Mesh_2_Ms3d_beta_1_8 - программа для конвертирования файлов моделей юнитов из формата .MESH в .MS3D, то есть в формат MilkShape3D
5. Программа для редактирования файлов анимации AnimationUtilities.
6. Компиляция почти всех утилит для работы с M2TW - Goat.
1. MilkShape3D
2. Python25
3. Набор распакованной анимации из M2TW
4. Mesh_2_Ms3d_beta_1_8 - программа для конвертирования файлов моделей юнитов из формата .MESH в .MS3D, то есть в формат MilkShape3D
5. Программа для редактирования файлов анимации AnimationUtilities.
6. Компиляция почти всех утилит для работы с M2TW - Goat.
Как переносить анимацию и другого мода в другой ?
Спойлер (раскрыть)
Если нужно перенести анимацию полностью, то нужно перекидывать паки (packs) из одного мода в другой и файл descr_skeleton.txt. Затем требуется прописывать анимации юнитам battle_models.modeldb - nогда получится анимации из другого мода, если в нём было больше вариантов анимаций, чем в том, который уже включает анимации, что есть в первоначальном моде.
Если брать отдельную анимацию из из другого мода, например, нового мечника, то она скорее всего нужна будет в распакованном виде, поэтому в дальнейшем нужно её обратно запаковывать.
Если нужно перенести анимацию полностью, то нужно перекидывать паки (packs) из одного мода в другой и файл descr_skeleton.txt. Затем требуется прописывать анимации юнитам battle_models.modeldb - nогда получится анимации из другого мода, если в нём было больше вариантов анимаций, чем в том, который уже включает анимации, что есть в первоначальном моде.
Если брать отдельную анимацию из из другого мода, например, нового мечника, то она скорее всего нужна будет в распакованном виде, поэтому в дальнейшем нужно её обратно запаковывать.
Как совместить файлы анимации и 3д-модель в M2TW ?
Спойлер (раскрыть)
Ответ 1
1) Требуется файл анимации, например "MTW2_Mace_ready_idle.cas", по адресу "<скачанный архив с распакованной из игры анимацией>\animations\MTW2_Mace\"
2) 3д-модель любого солдатика, без лишних вариантов и обьектов, только необходимое - голова, тело, руки, ноги, оружие (одно ближнебойное), щит (необязательно). Чем меньше всяких сумок, доспехов, одежд и прочая на модели, тем удобнее и проще работать с анимацией. Можно дойти до того, что вместо солдатика использовать геометрические фигуры, имитирующие скелет и сочленения. Моделька должна быть в конвертированном виде, т.е. в формате .MS3D.
Ответ 2
Эти 2 файла нужно разместить в ту папку, установлен Goat.
Совмещение файлов 3д-модели анимации:
1. Берем файл, например "MTW2_Knifeman_at_hi_a_punch_success.cas" в директории animations / MTW2_Knifeman распакованной анимации.
2. Копируем этот файл и переносим в ранее созданную папку "M2TW_animations". Туда же переносим и отредактированную (то есть уже конвертированую из .MESH в .MS3D) модель требующегося юнита.
3. Далее открываем animationutilities.py. В появившемся окне выбираем самую верхную кнопку - Anim Merge - и выбираем текущую 3д-модель. Сразу же после выбора модельки предлагается выбрать файл анимации. Выбираем приведенный в примере "MTW2_Knifeman_at_hi_a_punch_success.cas".
4. После выбора программа создаст новый файл - highland_rabble_animby_MTW2_Knifeman_at_hi_a_punch_success - это обьединение модели и анимации. Открываем этот новый файл и в верхней строке включаем шкалу анимации. Появившаяся внизу шкала используется для проигрывания кадров анимации. Чтобы включить просмотр анимации, в правом нижнем углу нажимаем квадратную кнопку "Anim", а затем рядом простую стрелку в право. Должна начать проигрываться анимация.
Ответ 1
1) Требуется файл анимации, например "MTW2_Mace_ready_idle.cas", по адресу "<скачанный архив с распакованной из игры анимацией>\animations\MTW2_Mace\"
2) 3д-модель любого солдатика, без лишних вариантов и обьектов, только необходимое - голова, тело, руки, ноги, оружие (одно ближнебойное), щит (необязательно). Чем меньше всяких сумок, доспехов, одежд и прочая на модели, тем удобнее и проще работать с анимацией. Можно дойти до того, что вместо солдатика использовать геометрические фигуры, имитирующие скелет и сочленения. Моделька должна быть в конвертированном виде, т.е. в формате .MS3D.
Ответ 2
Эти 2 файла нужно разместить в ту папку, установлен Goat.
Совмещение файлов 3д-модели анимации:
1. Берем файл, например "MTW2_Knifeman_at_hi_a_punch_success.cas" в директории animations / MTW2_Knifeman распакованной анимации.
2. Копируем этот файл и переносим в ранее созданную папку "M2TW_animations". Туда же переносим и отредактированную (то есть уже конвертированую из .MESH в .MS3D) модель требующегося юнита.
3. Далее открываем animationutilities.py. В появившемся окне выбираем самую верхную кнопку - Anim Merge - и выбираем текущую 3д-модель. Сразу же после выбора модельки предлагается выбрать файл анимации. Выбираем приведенный в примере "MTW2_Knifeman_at_hi_a_punch_success.cas".
4. После выбора программа создаст новый файл - highland_rabble_animby_MTW2_Knifeman_at_hi_a_punch_success - это обьединение модели и анимации. Открываем этот новый файл и в верхней строке включаем шкалу анимации. Появившаяся внизу шкала используется для проигрывания кадров анимации. Чтобы включить просмотр анимации, в правом нижнем углу нажимаем квадратную кнопку "Anim", а затем рядом простую стрелку в право. Должна начать проигрываться анимация.
Какие типы ударов реализуются путем анимации ?
Спойлер (раскрыть)
Существует как минимум 3 типа удара:
1. Удар по противнику ниже скелета;
2. Удар по противнику на уровне скелета;
3. Удар по противнику выше скелета.
Существует как минимум 3 типа удара:
1. Удар по противнику ниже скелета;
2. Удар по противнику на уровне скелета;
3. Удар по противнику выше скелета.
Нужно ли прописывать анимацию при задании одной и той же модели другой фракции игры ?
Спойлер (раскрыть)
Нет, достаточно одного упоминания записи об анимации юнита в battle_models.modeldb.
Чтобы корректно прописать к юниту другой игровой фракции уже используемую модель ( и соответственно текстуры ), следует обратить внимание на то, что при указании привязки модели к фракции обязательно соблюдение числа символов в строке, совпадающего с соответствующим цифровым числом, а также на совпадение числа аналогичных записей о применении графоконтента к той или иной фракции числу фракций, для которых используются данные о юните.
Для этого рассмотрим пример:
Здесь:
2 - означает, что запись о юните используется для 2 конкретных фракций - france и hre.
6 france - указывает на нужную фракцию, где 6 - количество символов в строке (france = 6 символов).
Примечание: обычно указание неправильного количества символов в строке в большинстве случаев редактирования battle_models.modeldb приводит к ошибке с вылетом при запуске.
Нет, достаточно одного упоминания записи об анимации юнита в battle_models.modeldb.
Чтобы корректно прописать к юниту другой игровой фракции уже используемую модель ( и соответственно текстуры ), следует обратить внимание на то, что при указании привязки модели к фракции обязательно соблюдение числа символов в строке, совпадающего с соответствующим цифровым числом, а также на совпадение числа аналогичных записей о применении графоконтента к той или иной фракции числу фракций, для которых используются данные о юните.
Для этого рассмотрим пример:
11 pikemen_ug2 1 4 57 unit_models/_Units/RN_Half_3Q_Plate/pikemen_ug2_lod0.mesh 121 57 unit_models/_Units/RN_Half_3Q_Plate/pikemen_ug2_lod1.mesh 900 57 unit_models/_Units/RN_Half_3Q_Plate/pikemen_ug2_lod2.mesh 2500 57 unit_models/_Units/RN_Half_3Q_Plate/pikemen_ug2_lod3.mesh 6400 2 6 france 76 unit_models/_Units/RN_Half_3Q_Plate/textures/rn_half_3q_plate_france.texture 76 unit_models/_Units/RN_Half_3Q_Plate/textures/rn_half_3q_plate_normal.texture 42 unit_sprites/france_Pikemen_ug2_sprite.spr 3 hre 76 unit_models/_Units/RN_Half_3Q_Plate/textures/rn_half_3q_plate_france.texture 76 unit_models/_Units/RN_Half_3Q_Plate/textures/rn_half_3q_plate_normal.texture 42 unit_sprites/france_Pikemen_ug2_sprite.spr 2 6 france 67 unit_models/AttachmentSets/Final European Light_france_diff.texture 67 unit_models/AttachmentSets/Final European Light_france_norm.texture 0 3 hre67 unit_models/AttachmentSets/Final European Light_france_diff.texture 67 unit_models/AttachmentSets/Final European Light_france_norm.texture 0
Здесь:
2 - означает, что запись о юните используется для 2 конкретных фракций - france и hre.
6 france - указывает на нужную фракцию, где 6 - количество символов в строке (france = 6 символов).
Примечание: обычно указание неправильного количества символов в строке в большинстве случаев редактирования battle_models.modeldb приводит к ошибке с вылетом при запуске.
Как поменять юниту анимацию боя ?
Спойлер (раскрыть)
Анимация боя прописывается в файле battle_models.modeldb (путь: Medieval II - Total War\mods\Third_Age_3\data\unit_models)
Рассмотрим частный случай: взят юнит-копейщик, перед нами стоит задача поменять ему оружие на меч.
В этой ситуации анимацию можно поставить от любого мечника в игре.
Например, анимация пехотинца Гондора (TATW), в export_descr_unit.txt (далее EDU) этот юнит называется Gondor Infantry, его код в EDU следующий:
Выделенным обозначен код анимации боя мечом. Нам нужно всего лишь скопировать его и вставить аналогично в блок записей для требуемого юнита.
Стоит обратить внимание, что в случае, если прописыватся модель апгрейда, то ей присваивается точно такая же анимация, как и в изначальном (безапгрейдном) варианте модели, иначе у юнита будет разная анимация при улучшении брони.
В итоге, для замены анимации боя юнита достаточно только поменять анимацию в battle_models.modeldb для безапгрейдного юнита - тогда у остальных его апгрейдовбудет использоваться новая анимация. Главное указать в строке soldier нужного юнита.
Анимация боя прописывается в файле battle_models.modeldb (путь: Medieval II - Total War\mods\Third_Age_3\data\unit_models)
Рассмотрим частный случай: взят юнит-копейщик, перед нами стоит задача поменять ему оружие на меч.
В этой ситуации анимацию можно поставить от любого мечника в игре.
Например, анимация пехотинца Гондора (TATW), в export_descr_unit.txt (далее EDU) этот юнит называется Gondor Infantry, его код в EDU следующий:
type Gondor Infantry dictionary Gondor_Infantry ; Gondor Infantry category infantry ; Quality class heavy voice_type Heavy accent GondorInfantry banner faction main_infantry banner holy crusade soldier [b]gondor_infantry[/b], 60, 0, 1.25 officer gondor_banner_carrier_ug1 officer gondor_officer_ug2 mount_effect elephant -4 attributes sea_faring, hide_forest, can_withdraw, hardy, free_upkeep_unit formation 1.2, 1.2, 2.4, 2.4, 4, square, shield_wall stat_health 1, 2 stat_pri 7, 4, no, 0, 0, melee, melee_blade, piercing, sword, 30, 1 stat_pri_attr no stat_sec 0, 0, no, 0, 0, no, melee_simple, blunt, none, 0, 1 stat_sec_attr no stat_pri_armour 11, 6, 5, metal ; partial plate / mail stat_sec_armour 0, 0, flesh stat_heat 7 stat_ground -1, -2, 0, -3 stat_mental 13, disciplined, trained stat_charge_dist 6 stat_fire_delay 0 stat_food 60, 300 stat_cost 2, 800, 300, 75, 75, 800, 4, 150 armour_ug_levels 3, 4, 5 armour_ug_models gondor_infantry, gondor_infantry_ug1, gondor_infantry_ug2 ownership sicily, timurids era 0 sicily era 1 sicily era 2 sicily recruit_priority_offset 80 [code] В строке [b]soldier[/b] выделенный код gondor_infantry - это название модели юнита, оно же и отвечает за анимацию юнита и всех его апгрейдов. Нам необходимо скопировать этот код и найти его в файле battle_models.modeldb : [code] 15 gondor_infantry 1 1 42 unit_models/_Units/NGU/swordsmen_lod0.mesh 6400 3 6 sicily 53 unit_models/_Units/NGU/textures/soldiers_diff.texture 53 unit_models/_Units/NGU/textures/soldiers_norm.texture 46 unit_sprites/sicily_gondor_infantry_sprite.spr 8 timurids 53 unit_models/_Units/NGU/textures/soldiers_diff.texture 53 unit_models/_Units/NGU/textures/soldiers_norm.texture 46 unit_sprites/sicily_gondor_infantry_sprite.spr 4 merc 53 unit_models/_Units/NGU/textures/soldiers_diff.texture 53 unit_models/_Units/NGU/textures/soldiers_norm.texture 46 unit_sprites/sicily_gondor_infantry_sprite.spr 3 6 sicily 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 8 timurids 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 4 merc 68 unit_models/_Units/NGU/attachments/soldiers_attachments_diff.texture 68 unit_models/_Units/NGU/attachments/soldiers_attachments_norm.texture 0 1 4 None [b]14 MTW2_Swordsman 0 2 18 MTW2_Sword_Primary 14 fs_test_shield 0 16 -0.090000004 0 0 -0.34999999 0.80000001 0.60000002[/b]
Выделенным обозначен код анимации боя мечом. Нам нужно всего лишь скопировать его и вставить аналогично в блок записей для требуемого юнита.
Стоит обратить внимание, что в случае, если прописыватся модель апгрейда, то ей присваивается точно такая же анимация, как и в изначальном (безапгрейдном) варианте модели, иначе у юнита будет разная анимация при улучшении брони.
В итоге, для замены анимации боя юнита достаточно только поменять анимацию в battle_models.modeldb для безапгрейдного юнита - тогда у остальных его апгрейдовбудет использоваться новая анимация. Главное указать в строке soldier нужного юнита.
Как работать с анимацией в Milkshape3D ?
Спойлер (раскрыть)
В процессе работы с анимацией в Milkshape3D происходит так называемый эффект, когда программа "своровывает" первый кадр анимации: после сохранения файла анимации, который мы открыли, в игре будет глюк с ее проигрыванием. Когда она начнет проигрыватся, солдат на секунду исчезнет, а потом начнет действовать, и в конце замрет на секунду, будто замороженный.
Решение проблемы состоит в том, просто нужно это делать всегда после обьединения модели и анимации. Нажимаем на нижную левую кнопку-квадрат "Anim" (далее именуемая просто "Кнопка-квадрат"). Это нужно затем, чтобы выйти из режима редактирования и просмотра кадров анимации - для того чтобы модель была "распята крестом", а не была в движении. Теперь идем на верхную панель, заходим в "Tools" > "Reverse Animation", то есть обращаем анимацию вспять. Жмем кнопку-квадрат, чтобы вписать кадр. Добавляем ещt один кадр. Опять выходим из редактирования анимации нажимая кнопку-квадрат. Затем обращаем анимацию опять. Опять нажимаем кнопку квадрат и уже убираем один кадр, там где вписывали, то есть, к примеру, с 46 вернули на 45 кадров. Следует сохраняться как можно чаще - MilkShape3D иногда выводит сообщение об неизвестной ошибке, что чревато вылетами на десктоп. Теперь у нас есть неущербный файл анимации, который можно теперь править по своему усмотрению. Все это делается для возврата ВСЕХ кадров на СВОИ места, а при слиянии файла модели и файла анимации ВСЕ кадры смещаются на ОДНУ позицию в сторону нуля. И из-за этого, если мы сохраним анимацию в таком неисправленном виде, в игре эта анимация будет отображатся некорректно. А все эти "Tools" > "Reverse Animation" нужны для того чтобы тот первый кадр, который ушел с линейки, вернуть на нужную сторону. Только после проведения этих манипуляций мы можем перейти к полноценному редактированию анимации.
Q: Зачем постоянно жать "кнопку квадрат"
A: Это предохраняет нашу модель от деформации, можете попробовать обратить анимацию во время включенного режима редактирования - кадры обратятся, а модель испортится. Конечно, и предохраняя модель, иногда получается деформации, но очень редко.
Почему нельзя вернуть спрятанный кадр и убрать нерабочий, тот что последний на шкале ?
A: Все предельно просто - MilkShape3D примитивна, ей можно без проблем создавать простые лоуполи модели по типу M2TW, но такую вещь что случается с кадрами анимации при слиянии исправить нормальным способом невозможно. Поэтому приходится идти на хитрость.
Q: А откуда вообще этот кадр появляется?
A: Видимо при слиянии файлов, кадры анимации смещаются по шкале в сторону нуля, т.е. первый кадр становится нулевым, второй первым, и так далее, ну а в конце появляется пустой кадр, потому что в анимации, к примеру 45 кадров, и поэтому смещенный заменяется пустым.
В процессе работы с анимацией в Milkshape3D происходит так называемый эффект, когда программа "своровывает" первый кадр анимации: после сохранения файла анимации, который мы открыли, в игре будет глюк с ее проигрыванием. Когда она начнет проигрыватся, солдат на секунду исчезнет, а потом начнет действовать, и в конце замрет на секунду, будто замороженный.
Решение проблемы состоит в том, просто нужно это делать всегда после обьединения модели и анимации. Нажимаем на нижную левую кнопку-квадрат "Anim" (далее именуемая просто "Кнопка-квадрат"). Это нужно затем, чтобы выйти из режима редактирования и просмотра кадров анимации - для того чтобы модель была "распята крестом", а не была в движении. Теперь идем на верхную панель, заходим в "Tools" > "Reverse Animation", то есть обращаем анимацию вспять. Жмем кнопку-квадрат, чтобы вписать кадр. Добавляем ещt один кадр. Опять выходим из редактирования анимации нажимая кнопку-квадрат. Затем обращаем анимацию опять. Опять нажимаем кнопку квадрат и уже убираем один кадр, там где вписывали, то есть, к примеру, с 46 вернули на 45 кадров. Следует сохраняться как можно чаще - MilkShape3D иногда выводит сообщение об неизвестной ошибке, что чревато вылетами на десктоп. Теперь у нас есть неущербный файл анимации, который можно теперь править по своему усмотрению. Все это делается для возврата ВСЕХ кадров на СВОИ места, а при слиянии файла модели и файла анимации ВСЕ кадры смещаются на ОДНУ позицию в сторону нуля. И из-за этого, если мы сохраним анимацию в таком неисправленном виде, в игре эта анимация будет отображатся некорректно. А все эти "Tools" > "Reverse Animation" нужны для того чтобы тот первый кадр, который ушел с линейки, вернуть на нужную сторону. Только после проведения этих манипуляций мы можем перейти к полноценному редактированию анимации.
Q: Зачем постоянно жать "кнопку квадрат"
A: Это предохраняет нашу модель от деформации, можете попробовать обратить анимацию во время включенного режима редактирования - кадры обратятся, а модель испортится. Конечно, и предохраняя модель, иногда получается деформации, но очень редко.
Почему нельзя вернуть спрятанный кадр и убрать нерабочий, тот что последний на шкале ?
A: Все предельно просто - MilkShape3D примитивна, ей можно без проблем создавать простые лоуполи модели по типу M2TW, но такую вещь что случается с кадрами анимации при слиянии исправить нормальным способом невозможно. Поэтому приходится идти на хитрость.
Q: А откуда вообще этот кадр появляется?
A: Видимо при слиянии файлов, кадры анимации смещаются по шкале в сторону нуля, т.е. первый кадр становится нулевым, второй первым, и так далее, ну а в конце появляется пустой кадр, потому что в анимации, к примеру 45 кадров, и поэтому смещенный заменяется пустым.
Каков адгоритм действий для редактирования файлов анимации M2TW в MilkShape3D ?
Спойлер (раскрыть)
Примечание: Вырезка из конкретного примера.. На конкретных названиях и числах не следует здесь зацикливаться, важна логика самого процесса...
1. Начнем непосредственно редактировать кадры анимации.
Открываем наш исправленный файл и находим там на шкале, к примеру, кадр № 18. Вообще мы видим, что удар наносится не острием кинжала, а как бы кулаком. Попробуем это исправить.
2. Выбираем кость в закладке Joints под именем bone_Rhand, затем в закладке Model, выбираем Rotate и крутим кость кисти, затем кость предплечия bone_Relbow, и затем немного кость плеча bone_Rupperarm.
Внимание: Крутить кости сначала нужно в одной плоскости. Если требуется, то можно крутить и в другой плоскости. Иначе будут некрасивые корявые движения.
3. Теперь ни в коем случае ничего не трогать на шкале, иначе придется все делать сначала, ибо сбросится результат.
Заходим на верхнюю панель в Animate > Set Keyframe, либо нажимаем сочетание клавиш Ctrl+K. Это приводит к сохранению на 18-том кадре.
Сохраняем наш файл.
4. Итак, у нас есть нужное нам движение на 18-м кадре, но на 17-м и 19-м, и даже других кадрах другие несинхронные движения, то есть на 15-м, 16-м, 17-м кадрах наш юнит делает замах кулаком, а на 18-м колет кинжалом, ну а 19-м, 20-м и т.п. снова двигает кулаком. Приступаем к исправлению подобной анимации.
Переходим на 16-й кадр и стираем его. Делается это сочетанием клавиш Ctrl+Shift+K, либо командой Animate > Delete Кeyframe. Тоже самое делаем и с 17-м кадром, и с 19-м, и с 20-м. Теперь запускаем нашу анимацию в движение, чтобы посмотреть что получилось. Теперь наш колющий удар виден глазу, а не мелькает за одну секунду. Но чтобы это сохранить, нам нужно закрепить кадры № 16, 17, 19, 20 на шкале, иначе когда они будут проигрыватся в игре, наш юнит исчезнет и появится на 18 кадре, а потом снова исчезнет. На 16-м,17-м,19-м,20-м кадрах делаем Set Кeyframe, то есть закрепляем их.
5. Теперь, чтобы наш файл можно было сконвертировать в файл анимации M2TW, нужно сделать следующее:
- Выходим из режима редактирования анимации, нажав кнопку квадрат Anim.
- Идем на верхную панель Tools > Zero Joints, жмем ОК и сохраняем наш файл.
6. Дальше открываем нашу утилиту animationutilities. Выбираем кнопку Anim Extract, затем выбираем наш файл, и он становится .CAS - файлом с припиской "_modified". В нашем случае, это будет файл "MTW2_Knifeman_at_hi_a_punch_success_modified.cas".
Дополнительная информация:
- При создании анимации необходима скрепляющая основа, т.е. кадр, с которого начинается и заканчивается анимация, что позволяет гладко переходить, к примеру, из атаки к бегу и т.п..
- Двигать кости скелета, кроме самой первой, крайне не рекомендуется, их следует только вращать. Здесь важно иметь представление, как должна сгибаться кость, чтобы не изогнуть кости скелета в неестественную сторону.
- Последний кадр анимации не обязан соответствовать первому, однако кости скелета должны находиться в идентичном положении.
- Совмещение 3д-модели и анимации игры рекомендуется производить с помощью программы AnimationUtilities командой Anim Merge.
- Удаление отдельных кадров анимации осуществляется командой Animate > Delite Keyframe, удаление сразу всех кадров - Animate > Remove All Key.
- Последний кадр анимации удобно создавать копированием первого кадра с помощью команды Animate > Copy Keyframe и вставки в место последнего кадра с помощью Animate > Paste Keyframe.
- Для успешного конвертирования в формат .CAS открываем Tools > Zero Joints, жмем Yes и сохраняем и выходим, после чего запускаем программу снова, нажимаем Anim Extract, выбираем наш файл - теперь CAS-файл готов для использования в игре.
- Боевая анимация должна начинаться с того момента, где кончается анимация "_ready.cas".
- В общем случае боевая анимация (участвуют 2 юнита - наносящий удар и принимающий удар) состоит из следующих ключевых моментов: 1) "анимация_удар_попадание" - анимация замаха, перед уколом ; 2) "анимация_удар_фаталити" - анимация конца замаха, укола и всего остального; 3) "анимация_удар_побежденный" - анимация нанесения удара.
Следует отметить, что вторая и третья анимации должны быть синхронны, т.е. на движения юнита во второй анимации, юнит из третьей анимации должен адекватно двигатся.
- Файлы анимации можно не выворачивать, а просто удаленные кадры не закреплять, поскольку при конверации они удалятся сами.
Примечание: Вырезка из конкретного примера.. На конкретных названиях и числах не следует здесь зацикливаться, важна логика самого процесса...
1. Начнем непосредственно редактировать кадры анимации.
Открываем наш исправленный файл и находим там на шкале, к примеру, кадр № 18. Вообще мы видим, что удар наносится не острием кинжала, а как бы кулаком. Попробуем это исправить.
2. Выбираем кость в закладке Joints под именем bone_Rhand, затем в закладке Model, выбираем Rotate и крутим кость кисти, затем кость предплечия bone_Relbow, и затем немного кость плеча bone_Rupperarm.
Внимание: Крутить кости сначала нужно в одной плоскости. Если требуется, то можно крутить и в другой плоскости. Иначе будут некрасивые корявые движения.
3. Теперь ни в коем случае ничего не трогать на шкале, иначе придется все делать сначала, ибо сбросится результат.
Заходим на верхнюю панель в Animate > Set Keyframe, либо нажимаем сочетание клавиш Ctrl+K. Это приводит к сохранению на 18-том кадре.
Сохраняем наш файл.
4. Итак, у нас есть нужное нам движение на 18-м кадре, но на 17-м и 19-м, и даже других кадрах другие несинхронные движения, то есть на 15-м, 16-м, 17-м кадрах наш юнит делает замах кулаком, а на 18-м колет кинжалом, ну а 19-м, 20-м и т.п. снова двигает кулаком. Приступаем к исправлению подобной анимации.
Переходим на 16-й кадр и стираем его. Делается это сочетанием клавиш Ctrl+Shift+K, либо командой Animate > Delete Кeyframe. Тоже самое делаем и с 17-м кадром, и с 19-м, и с 20-м. Теперь запускаем нашу анимацию в движение, чтобы посмотреть что получилось. Теперь наш колющий удар виден глазу, а не мелькает за одну секунду. Но чтобы это сохранить, нам нужно закрепить кадры № 16, 17, 19, 20 на шкале, иначе когда они будут проигрыватся в игре, наш юнит исчезнет и появится на 18 кадре, а потом снова исчезнет. На 16-м,17-м,19-м,20-м кадрах делаем Set Кeyframe, то есть закрепляем их.
5. Теперь, чтобы наш файл можно было сконвертировать в файл анимации M2TW, нужно сделать следующее:
- Выходим из режима редактирования анимации, нажав кнопку квадрат Anim.
- Идем на верхную панель Tools > Zero Joints, жмем ОК и сохраняем наш файл.
6. Дальше открываем нашу утилиту animationutilities. Выбираем кнопку Anim Extract, затем выбираем наш файл, и он становится .CAS - файлом с припиской "_modified". В нашем случае, это будет файл "MTW2_Knifeman_at_hi_a_punch_success_modified.cas".
Дополнительная информация:
- При создании анимации необходима скрепляющая основа, т.е. кадр, с которого начинается и заканчивается анимация, что позволяет гладко переходить, к примеру, из атаки к бегу и т.п..
- Двигать кости скелета, кроме самой первой, крайне не рекомендуется, их следует только вращать. Здесь важно иметь представление, как должна сгибаться кость, чтобы не изогнуть кости скелета в неестественную сторону.
- Последний кадр анимации не обязан соответствовать первому, однако кости скелета должны находиться в идентичном положении.
- Совмещение 3д-модели и анимации игры рекомендуется производить с помощью программы AnimationUtilities командой Anim Merge.
- Удаление отдельных кадров анимации осуществляется командой Animate > Delite Keyframe, удаление сразу всех кадров - Animate > Remove All Key.
- Последний кадр анимации удобно создавать копированием первого кадра с помощью команды Animate > Copy Keyframe и вставки в место последнего кадра с помощью Animate > Paste Keyframe.
- Для успешного конвертирования в формат .CAS открываем Tools > Zero Joints, жмем Yes и сохраняем и выходим, после чего запускаем программу снова, нажимаем Anim Extract, выбираем наш файл - теперь CAS-файл готов для использования в игре.
- Боевая анимация должна начинаться с того момента, где кончается анимация "_ready.cas".
- В общем случае боевая анимация (участвуют 2 юнита - наносящий удар и принимающий удар) состоит из следующих ключевых моментов: 1) "анимация_удар_попадание" - анимация замаха, перед уколом ; 2) "анимация_удар_фаталити" - анимация конца замаха, укола и всего остального; 3) "анимация_удар_побежденный" - анимация нанесения удара.
Следует отметить, что вторая и третья анимации должны быть синхронны, т.е. на движения юнита во второй анимации, юнит из третьей анимации должен адекватно двигатся.
- Файлы анимации можно не выворачивать, а просто удаленные кадры не закреплять, поскольку при конверации они удалятся сами.
Как правильно сохранить файл анимации для дальнейшего внедрения в игру ?
Спойлер (раскрыть)
Чтобы сохранить ВСЮ анимацию в файле MilkShape3D, то нажимаем Save, никакие экспорты делать не нужно. Стоит отметить, что отдельно кадры не сохраняются. В итоге, готовую анимацию без пустых кадров нужно конвертировать в .CAS-формат.
Закрепляем ВСЕ КАДРЫ, конвертируем в .CAS и кидаем в data\animations\"любое название"\ или куда угодно, главное прописать адрес в скелетоне .ТХТ.
Чтобы сохранить ВСЮ анимацию в файле MilkShape3D, то нажимаем Save, никакие экспорты делать не нужно. Стоит отметить, что отдельно кадры не сохраняются. В итоге, готовую анимацию без пустых кадров нужно конвертировать в .CAS-формат.
Закрепляем ВСЕ КАДРЫ, конвертируем в .CAS и кидаем в data\animations\"любое название"\ или куда угодно, главное прописать адрес в скелетоне .ТХТ.
Как реализовать анимацию модели большего или меньшего размера, чем в ваниле - за счет увеличения / уменьшения костей ?
Спойлер (раскрыть)
Чтобы изменить размеры анимации требуется редактировать текстовые файлы игры - если возникает задача увеличить анимацию пропорционально.
В случае, если анимацию предстоит расширять только вверх, то необходимо редактировать саму анимацию.
Чтобы изменить размеры анимации требуется редактировать текстовые файлы игры - если возникает задача увеличить анимацию пропорционально.
В случае, если анимацию предстоит расширять только вверх, то необходимо редактировать саму анимацию.
Как "развернуть" анимацию в MilkShape3D ?
Спойлер (раскрыть)
Заходим в Animate > SMD Adjust Keys, затем выбираем Rotate, в окошке X пишем 180 и жмем ОК, после чего все кадры должны развернуться.
Заходим в Animate > SMD Adjust Keys, затем выбираем Rotate, в окошке X пишем 180 и жмем ОК, после чего все кадры должны развернуться.
Как вернуться к первому кадру анимации ?
Спойлер (раскрыть)
1. Открываешь файл с объединённой моделью и анимацией, делаем анимацию неактивной (по умолчанию при открытии).
2. Затем идём во вкладку Tools, жмем Reverse Animation.
3. После нажатием на кнопку Anim в панели анимации активируем анимацию, добавляешь там же в окошках количество кадров + один кадр.
4. Снова нажимаем кнопку Anim, вновь повторяем Tools - Reverse Animation, затем опять нажимаем Anim, активируя анимацию, и отнимаем обратно один кадр. Если во всех кадрах, включая последний скелет, горит жёлтый - значит всё правильно.
Как ограничить работу с кадром анимации путем удаления кадра определенной кости ?
Как скопировать кадр анимации в MilkShape3D, чтобы каждый последующий кадр делать не с нуля, а с предыдущего кадра ?
[spoiler]
1. Открываем нужный файл MilkShape3D, обьедененный с анимацией.
2. Переходим на требуемый кадр, который собираемся скопировать.
3. Переходим к верхней строчке: Animate > Copy Keyframes (рядом находится и Paste).
4. Чтобы назначить этим функциям горячие клавиши, идем в Tools > Edit Shortcuts, находим эти две функции копипаста и устанавливаем им комбинацию клавиш (например, Alt+C и соответственно Alt+V ).
5. После того как нужный кадр скопирован, продолжаем работать в MilkShape3D: именно там, где производили операцию копирования, открываем необходимый файл, в который собираемся вставлять кадр, через меню File.
6. По окончании открытия вышеуказанного файла вставляем кадр на требуемую позицию шкалы и закрепляем его с помощью команды Set KeyFrames.
1. Открываешь файл с объединённой моделью и анимацией, делаем анимацию неактивной (по умолчанию при открытии).
2. Затем идём во вкладку Tools, жмем Reverse Animation.
3. После нажатием на кнопку Anim в панели анимации активируем анимацию, добавляешь там же в окошках количество кадров + один кадр.
4. Снова нажимаем кнопку Anim, вновь повторяем Tools - Reverse Animation, затем опять нажимаем Anim, активируя анимацию, и отнимаем обратно один кадр. Если во всех кадрах, включая последний скелет, горит жёлтый - значит всё правильно.
Как ограничить работу с кадром анимации путем удаления кадра определенной кости ?
Спойлер (раскрыть)
1. В MilkShape3D включаем вкладку Operate On Selected Joints Only (меню Animate).
2. Выбираем с помощью инструмента Select для выбора Joints.
3. Удаляем кадр для выбранных костей (во вкладке Animate ищем соответствующий пункт).
4. Нажимаем на ползунок кадров, чтобы выбранные кости приняли среднее положение между этими же костями, но в предыдущем и последующем кадрах.
4.1. Предыдущий кадр
4.2. Последующий кадр
4.3. Убираем пункт Operate On Selected Joints Only, чтобы закрепить кадр.
ЗЫ Вырезка из одного урока Йомена.. Полезная заметка, хотя смысл ясен не до конца...
1. В MilkShape3D включаем вкладку Operate On Selected Joints Only (меню Animate).
2. Выбираем с помощью инструмента Select для выбора Joints.
3. Удаляем кадр для выбранных костей (во вкладке Animate ищем соответствующий пункт).
4. Нажимаем на ползунок кадров, чтобы выбранные кости приняли среднее положение между этими же костями, но в предыдущем и последующем кадрах.
4.1. Предыдущий кадр
4.2. Последующий кадр
4.3. Убираем пункт Operate On Selected Joints Only, чтобы закрепить кадр.
ЗЫ Вырезка из одного урока Йомена.. Полезная заметка, хотя смысл ясен не до конца...
Как скопировать кадр анимации в MilkShape3D, чтобы каждый последующий кадр делать не с нуля, а с предыдущего кадра ?
[spoiler]
1. Открываем нужный файл MilkShape3D, обьедененный с анимацией.
2. Переходим на требуемый кадр, который собираемся скопировать.
3. Переходим к верхней строчке: Animate > Copy Keyframes (рядом находится и Paste).
4. Чтобы назначить этим функциям горячие клавиши, идем в Tools > Edit Shortcuts, находим эти две функции копипаста и устанавливаем им комбинацию клавиш (например, Alt+C и соответственно Alt+V ).
5. После того как нужный кадр скопирован, продолжаем работать в MilkShape3D: именно там, где производили операцию копирования, открываем необходимый файл, в который собираемся вставлять кадр, через меню File.
6. По окончании открытия вышеуказанного файла вставляем кадр на требуемую позицию шкалы и закрепляем его с помощью команды Set KeyFrames.
---
Оригинальное Авторство:
Master_TW_DAR, форум SICH, 2014 год
История Происхождения:
1) Результат моей исследовательской работы над изучением архивов Гильдии Мастеров-Мододелов СиЧи.
2) Локальная копия оригинальной статьи, взятой мной из модоковальни M2TW на форуме СиЧь.