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


Видеоверсия этого руководства в настоящее время недоступна на этом языке. Ниже вы можете посмотреть английскую версию с субтитрами; под видео вы найдете перевод расшифровки на русский язык.


Текстовая расшифровка видео

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

Моей целью было реализовать это с помощью симуляции Rigid Bodies и Cloth, чтобы можно было генерировать разные анимации на основе различных ударов с разной силой и направлением.

Сами удары выполнялись за счёт столкновения пассивного и анимированного объекта Rigid Body с мячом, который, в свою очередь, является активным объектом Rigid Body.

Я уже объяснял, как создавать подобные анимации, в одном из предыдущих видеоуроков на моём YouTube-канале, используя практический пример начального удара в бильярде.

Футбольный мяч также оснащён компонентом Collision, благодаря чему он может взаимодействовать с сеткой ворот, для которой я настроил симуляцию Cloth.

Сама сетка при этом не моделировалась физически, а состоит из плоских плоскостей с наложенной полупрозрачной текстурой. Эти плоскости, естественно, имеют достаточное количество подразделений для реалистичной симуляции ткани, но при этом их гораздо проще просчитывать, чем реалистично смоделированную сетку.

Некоторые вершины плоскостей, представляющих сетку, закреплены с помощью Pinning, то есть назначены в Vertex Group. Затем эта Vertex Group используется как Pinning Group в симуляции Cloth, благодаря чему эти вершины остаются неподвижными во время симуляции.

Теоретически всё должно работать корректно, потому что мяч летит к сетке, и столкновение действительно определяется симуляцией Cloth. Проблема в том, что, насколько мне известно, симулятор ткани не заставляет объект отскакивать назад. Поэтому мяч просто проходит сквозь геометрию и продолжает бесконечно лететь дальше. Возможно, проблему можно было бы решить с помощью Soft Bodies, но поскольку я с ними не знаком, я придумал небольшой обходной вариант.

Начиная с простого куба, я создал меш, который выполняет роль невидимой стены для внешней части сетки. Этот новый объект оснащён компонентом passive Rigid Body, а форма столкновения изменена с Convex Hull на Mesh.

При таких настройках мяч останавливается сразу после столкновения с невидимым препятствием. Чтобы заставить его отскакивать, я увеличил значение Bounciness как у мяча, так и у невидимого объекта.

Эффект получился именно таким, как я показывал в начале видео. Также я показываю другие рендеры, где сетка как будто разрывается сразу после удара. Это происходит потому, что в исходном объекте сетка имела толщину, и фактически там присутствуют две плоскости с полупрозрачной текстурой, которые расходятся при деформации сетки. Исправить эту проблему довольно просто: достаточно удалить одну из двух плоскостей.

Однако я должен быть полностью честен: результат не всегда получается оптимальным! В зависимости от точки или угла удара могут возникать странные эффекты, которые иногда выглядят забавно, но точно не являются корректными с точки зрения физики. Здесь ещё есть что улучшать, но как быстрое, простое и не самое красивое решение это, на мой взгляд, работает!

Этот сайт предназначен исключительно для демонстрации некоторых моих работ и не имеет рекламных целей. Обратите внимание, что в настоящее время я не ищу и не рассматриваю запросы на индивидуальные заказы, консультации или любые другие формы профессионального сотрудничества.


РАСШИРЕННАЯ ИНФОРМАЦИЯ О ПОЛИТИКЕ КОНФИДЕНЦИАЛЬНОСТИ И ИСПОЛЬЗОВАНИИ ФАЙЛОВ COOKIE