Crystal Plague - alembic, blender, steam
Чтобы не просто так вещать о том, чего я нового сделал в своей игре, расскажу о своей реализации анимации сборки предмета.
С чего началось
С ЭТОЙ статьи, где автор подробно, четко и понятно разбирает, как добиться эффекта сборки предмета в блендоре и перенести это в юнити. Мое увожение таким людям, действительно классный гайд.
Однако формат COLLADA, в котором экспортируется анимация в примере, не поддерживается UE, в котором работаю я над своей игрой. Несмотря на то, что мне нафиг не надо было что-то подобное реализовывать, меня заинтересовала возможность, "а как это будет в анриле"?
В процессе реализации
Короткое гугление и вопросы в чатике анрила в телеге привели меня к формату ALEMBIC, который примерно для такого и создавался, для переноса между пакетами всяких симуляций одежды, частиц и прочего. Я не буду делать подробные объяснения того, что и сам плохо понимаю, так что тонкости того, как там хранятся данные ищите сами.
Хочу отдельной строкой указать, что это не единственный способ. Подробнее в конце статьи.
Все начальные этапы до экспорта из blender точно такие же, как в статье выше:
1) Создается нужный нам меш
2) Применяется cell fracture
3) Применяется физика к кускам меша
4) Запекается анимация
С этого этапа начинаются отличия, нужно экспортировать модель в другой формат.
Выделенное красной рамкой - важные с моей точки зрения пункты.
1) Scale. При 1.0 модель, импортированная в анрил, будет ОЧЕНЬ маленькой. ОЧЕНЬ.
2) Start frame и End frame - рекомендую при экспорте указать ту длину анимации, которая на самом деле используется(в моем случае 80 кадров)
3) Selected objects only - почему - то во всех остальных случая экспорт багался и не работал. Возможно проблема только у меня.
4) UVs, Pack UV Islands, Face Sets - при отсутствии этих галочек импорт в анрил будет работать через раз. Чаще всего не будет работать.
5) Triangulate - поскольку cell fracture разрезает объект как random пошлет, там будут нгоны, которые опять же, при импорте в анриле выдадут ошибку.
При импорте указывается, что это будет не скелетная анимация и не статический меш, а "кэш геометрии". Что делает галочка "Calculate Motion Vectors During Import" я не знаю, но во всех туториалах по алембику в анриле её ставили. Решил не выделяться.
При успешном импорте будет один файл в контент браузере, который можно прям как есть перетащить на сцену, запустить игру и анимация начнет проигрываться постоянно.
В процессе случился fail - я не оставил оригинальные меши при применении разрушения. Пришлось склеивать между собой уже разломанные. Дальше дело техники - в анриле сделал отдельный блюпринт, куда добавил компонент Geometry Cache и несколько статик мешей целой статуи.
В настройках снял галочки Running и Looping. Добавил невидимую сферу с коллизией, если её задевает персонаж, то активируется "код". Запускается анимацию, ускоряется, чтобы смотрелось поинтереснее, ждем момента окончания анимации(пока не знаю, как перехватить точное время завершения анимации) скрывается кеш геометрии, показывается обычный статик меш.
Что я узнал, пока со всем этим возился. Похожего эффекта можно добиться, используя решение "в лоб" - Просто анимировать по одному все кусочки разломанного меша. Можно использовать vertex animation texture. Не очень разобрался, как это работает, может кто в комментариях триггернется и пояснит.Можно использовать(вроде) так называемые shapekeys, но для меня загадка, как это будет работать на нескольких объектах одновременно. Как бы насколько я понял технологию, один объект преобразуется в другой, просто меня положение вертексов, как один объект разбить на несколько - непонятно.
Ну и наконец-то я осилил сделать какое-то подобие трейлера для игры и открыть страницу в стим. Должен сказать, что для человека, который 2д этим вашим не владеет совершенно, это сложно - нужно подготовить много промо-материалов для магазина, выработать какой-то визуальный стиль, придумать логотип, выбрать совершенно упоротый шрифт(в этом я специалист кстати) и только потом можно отправлять страницу на одобрение.
Я еще планирую отдельную небольшую статью о создании визуальных эффектов в игре и может быть более подробно буду рассказывать о разработке. Из-за некоторых обстоятельств я не публиковал никаких изменений ни в группе вк, ни в скриншотных субботниках(было некогда и лень), поэтому буду нагонять.
Ну и ссылка на страницу, можете поугарать со шрифтов и моего мастерского монтажа и оценить, насколько хорошо я справился с улучшением визуальных эффектов.