Форум HeroesWorld-а - Показать сообщение отдельно - Руководство по добавлению в игру HoMMV новой модели, анимации и существа
Показать сообщение отдельно
#56
Старый 20.02.2020, 15:58
  #56
^
zahar0z
 
Аватар для zahar0z
📖
Регистрация: 09.06.2017
Сообщения: 588
Регистрация: 09.06.2017
Сообщения: 588
Восклицание
Re: Руководство по добавлению в игру HoMMV новой модели, анимации и существа

ВАЖНО: Как адаптировать и "исправить" анимацию передвижения из M&MHVII для HoMMV?

Нельзя просто так взять и импортировать анимацию передвижения из героев 7, в герои 5.
"вставьте мем с боромиром"
Если её предварительно не отредактировать, в игре она будет "скакать" т.е. прыгать от места к месту.

Почему это вообще происходит?
Анимация перемещения в героях7, как и в большинстве игр, является зацикленным движением "на месте".
В героях 5 по какой-то странной причине это не так.
В 5ке анимация движения существа, за один цикл бежит немного вперёд, относительно своей стартовой точки.
Игра обрабатывает всё это своим хитрым образом.



Сейчас я подробно расскажу, как исправить эту проблему.

Открывайте ваш файл с существом, подготовленным к импорту анимаций.


ВАЖНО: В 3ds max, в настройках единиц измерения у вас должны быть выставленны метры.
Нажмите "customize"=>"units setup".
В появившемся окне отметьте точкой "Metric" и выберите в выпадающем списке "Meters", нажмите "ok".


Импортируем анимацию перемещения вашего существа "Move",
кликнув в окне скрипта "ActorX Import" в окне с импортом анимаций два раза на строчку "Move".
Остановите анимацию, нажав на кнопку стоп, на панеле управления анимацией.

Жмём кнопку "Auto Key" в углу экрана.Вокруг вьюпорта появится красная рамка.
Вы перешли в режим "Auto Key" (режим автоматического создания ключевых кадров).
Выделяем нашу кость "Global" чтобы дальше создать для неё первый ключевой кадр.


Бегунок анимации должен быть на нулевом кадре таймлайна, если это не так,
переместите его вручную, просто нажав на нём левой кнопкой мыши и перетянув.
Теперь, с выделеннной костью "Global" жмём большую кнопку с плюсом и ключём.
Обратите внимание что на таймлайне, на первом кадре появилось обозначение нового ключегово кадра.


Теперь переместите бегунок таймлайна в последний кадр анимации, у меня это 28.
И переместите кость "Global" на точное отрицательное значение по координате "Y".
Предлагаю использовать "-2.0".
(для некоторых анимаций из героев7 больше подходит "-3.0")


Ваша анимация адаптированна под героев 5.
Далее экспортируем её в .fbx и проходим
из основного руководства по импорту модели и анимации, этапы с 2.4 по 3.1.
С поправкой на то что добавляем анимацию "move" а не "idle".



После этого у анимации передвижения в игре всё равно, скорее всего, будут прыжки,
но править их уже нужно в xdb файлах.

Открываем вашу болванку с модом и в папке с анимациями существа
("new_creatures\test_fraction\test_creature\animset")
окрываем файл с анимацией "move.(BasicSkelAnim).xdb",
в который вписывали кодовое имя вашей экспортированной анимации передвижения.




Вам нужно отредактировать параметр "MovementSpeed"


Раньше приходилось вбивать его наугад и тестировать в игре на глаз,
этот процесс был мучителен и мог растягиваться на полчаса-час.



Но затем мы с Frozensoull составили для вас формулу, по которой можно вычислить параметр "MovementSpeed".
А чуть позднее vova2112 составил формулу ещё лучше, которую я и привожу ниже.

"метры" : ("кадры" : 30)="MovementSpeed"
где "метры", значение на которое мы двигали кость "Global",
в метрах (без знака минус естественно),
а "кадры" полное количество кадров вашей анимации в 3ds max
(их делят на 30 т.к. это фпс макса, если брать кадры из майи то их необходимо делить на 24)




Проводим тест на примере чёрного стражника.
Цикл его анимации передвижения длится 28 кадров.
Передвигал в максе я его на -2 метра.

получается 2 : (28 : 30)= 2.14285714286

"2.14285714286" это и есть искомый "MovementSpeed".
Прописываем его в xdb файл. Возможно иногда нужно округлить до 7-8 знаков после точки.

Всё. Теперь анимация передвижения должна работать нормально.

Возможны некоторые очень мелкие прыжки, но их уже придётся править, "на глаз" вручную.

Скорость анимации передвижения, также как скорость любой другой анимации,
можно редактировать через параметр "SpeedFactor" в xdb файле с анимацией.
Редактирование "SpeedFactor" в данном случае не создаёт никаких багов и прыжков,
т.к. вероятно, изменяет в игре "MovementSpeed" пропорционально себе.


Текстура или её часть неправильно отображается в игре. Как исправить?

Иногда, у моделей из 7ки бывает слегка смещённая развёртка.
Для современных движков в этом нет никаких проблем но при импорте в 5ку возникают казусы



Исправить это очень просто.
Внимание, действия описанные ниже нужно проводить с моделью до этапа экспорта/импорта в формат smd.
Т.е. прямо перед этапом 1.4


С выделенной моделью откройте список модификаторов и добавить модификатор "Unwrap UVW".
Чтобы быстро найти этот модификатор в списке можете нажать кнопку "u" после того как откроется список.


Теперь в параметрах модификатора нажмите кнопку "Open UV Editor ...".
Появится окно "Edit UVWs" в нём можно редактировать развёртку вашей модели.
Что вообще такое эта "развёртка"?
Развёртка - это определённая "карта" благодаря которой ваша модель - 3х мерный объект,
понимает как именно проецировать на себя вашу текстуру - 2х мерную плоскость.

В окне "Edit UVWs" выделите рамкой элементы развёртки "выскочившие" за основной квадрат.
Затем подвиньте их туда, где они должны располагаться.
В данном случае, на примере орка нужно будет подвинуть на "-1" по оси "u".
Это можно сделать вручную, или просто вписав значение в поле ниже.


Если вы всё сделали правильно то элементы развёртки должны теперь находится внутри основного поля.

Закончив весь процесс закройте окно "Edit UVWs" и продолжайте основное руководство, экспортируйте файл в smd.
После этих манипуляций проблем с текстурой в игре быть не должно.


На некоторых элементах модели, ломается привязка, при проигрывании анимаций они криво торчат.
Как исправить?


После этапа экспорта/импорта в формат .smd на некоторых элементах модели может слететь привязка к скелету.
Это незаметно когда модель находится в базовой позе, но хорошо видно при проигрывании анимаций.


Исправить эту проблему проще всего соединив раздробленные вертексы.

Важно: чтобы описанное ниже колдунство у вас сработало а не испортило модель, в максе в настойках единиц измерения должны стоять метры
(а лучше вообще сантиметры или миллиметры).
Нажмите "customize"=>"units setup".
В появившемся окне отметьте точкой "Metric" и выберите в выпадающем списке "Meters", нажмите "ok".


Далее.
С выделенной моделью нажмите на модификатор "Editable Poly"
(он должен быть на вашей модели после импорта smd файла)
Перейдите в режим редактирования вертексов.
Выделите все вертексы вашей модели через "ctrl"+"a".
В графе "Edit Vertices" Нажмите на кнопку рядом с "Weld".
Появится небольшая панелька с настройками модификатора.
В ней вы должны выбрать минимальное доступное значение "0.01".
Затем нажмите на галку.


После всего, проверьте была ли проблема исправленна проиграв анимацию.


Так же исправить эту проблему можно самостоятельно редактируя модификатор skin.
Через этот модификатор, к скелету можно привязать новые элементы.
Информацию о том как работать с этим модификатором можно легко найти самостоятельно в интернете.



У модели которую я конвертирую больше одной текстуры. Что делать?

Включить голову.
Просто импортируй smd модель два раза.
В режиме "Editable Poly" от одной копии отреж всё что относится ко второй текстуре, а от другой всё что относится к первой.


Скорее всего материалы будут разделены по id, так что, чтобы не выделять элементы вручную
можно переключаться между материалами в графе "Polygon: Material IDs" через кнопку "Select ID",
предварительно набрав номер id в окне рядом.



Пожалейте меня, эту часть я не буду объяснять подробно, доступной информации по работе с максом
полным полно в сети, а я итак убил уже больше полумасяца на это руководство, которое некоторым
до сих пор кажется очень сложным.

Я скажу так.
Если вам лень разбираться и если вы невнимательно читаете текст, любое
даже самое простое руководство будет для вас слишком сложным.


Проблема пропадающих полигонов при импорте модели в герои 5.
footman описал её в общих чертах

zahar0z вне форума
Ответить с цитированием