Фейковая анимация в материалах UE. Absolute World Position -> WPO
Привет DTF! Сегодня расскажу про хитрый лайфхак для простой и дешевой анимации в UE.
Базовых знаний должно хватить, чтобы разобраться, что происходит)
Для начала давайте обрисуем вводную/задачу. Нам необходимо анимировать что-то на третьем плане, чтобы добавить в кадр жизни. Это могут быть птички или рыбки например. Важно, что способ не подойдет для полноценной анимации и работы на переднем плане, когда игрок может близко подобраться к объекту и рассмотреть его.
Какие варианты решения у нас есть? Ну проще всего собрать какуе-то конструкцию с time, что ни будь вращать имитируя движения. Какие есть сложности? Нам необходимо будет регулировать скорость анимации, в зависимости от скорости движения. Если мы используем time - то скорость придется предавать в материал. Ну как-то не очень мне бы хотелось это делать. Даже если писать из ниагары, все равно лишняя нагрузка. Тем более я знаю интересный прием)
Анимировать я буду рыбок.
Я создал вот такую модель рыба.
Переходим к созданию материала.
Так как у меня анимируется рыба, то мне необходимо задать ей какое-то волнообразное движение. Естественно сделаем это через синус.
Осталось все это умножить на какое-то скалярное значение, которое будет задавать силу смещения вершин. И подать это в пин WPO.
Что у нас по итогу получилось? При смещении объекта происходит смещение вершин относительно своего первоначального положения. Так как у нас исходные значения позиции складываются и подаются в синус, то на выходе мы будем иметь [-1;1]. Значение будет менять тем быстрее, чем быстрее движется наш объект. Вы конечно можете добавить туда коэффициент, который будет регулировать скорость, но для моего случая хватило и вот такой конструкции.
Движение конечно не идеально. Но таким способом можно анимировать очень приличное количество частиц, при этом не нагружая особо систему. А если рыба у вас это просто фоновое движение - то это идеально решение)
Заключение
Спасибо, что дочитал до конца. Если считаешь, что статья была полезной, то ты можешь меня отблагодарить) Я разрабатываю проект про кухню на колесах. Чтобы поддержать меня - просто добавь вишлист в стим. Есть возможность подать заявку на плейтест, чтобы раньше всех потрогать руками игру.