Cascadeur: Задача о падающей кошке

в 8:32, , рубрики: 3d animation, animation, Banzai Games, Cascadeur, cats, physics, анимация, Анимация и 3D графика, Блог компании Banzai Games, геймдев, искусственный интеллект, Компьютерная анимация, разработка игр, физика

Все знают, что кошка всегда приземляется на 4 лапы, как бы ее ни бросили. Этот вопрос давно занимал физиков, и было предложено несколько моделей того, как это кошке удается. Все эти модели достаточно приблизительны и обычно ограничиваются цилиндрами. Однако, команда программы для physics-based анимации Cascadeur попробовала смоделировать переворот кошки на более подробной физической модели.

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

Видимо, это специальный рефлекс у кошек — они неосознанно делают правильное движение, когда теряют опору и ориентированы в пространстве неправильно. Правда, в невесомости этот рефлекс дает сбой :) Но даже в невесомости видно, что кошки могут своими движениями менять свою ориентацию в пространстве.

image

Мы решили попробовать воспроизвести этот кошачий трюк в Cascadeur. Наша физическая модель кошки позволяет моделировать ее движение достаточно подробно.

Cascadeur: Задача о падающей кошке - 2

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

Раньше мы думали, что кошки разворачиваются за счет хвоста — крутят хвост в одну сторону, а тело из-за этого поворачивается в противоположную, сохраняя суммарный угловой момент нулевым. Это логичная идея, но, похоже, одного хвоста недостаточно — видео реальных экспериментов показывают, что кошки делают что-то более сложное. Тем более кошка может перевернуться вообще без хвоста.

image

Оказывается физики в разное время предлагали разные решения этой задачи.

Например, в 1894 году Л. Лекорну предложил модель, в которой кошка состоит из двух цилиндров, которые проворачиваются под углом друг к другу. Это было почти не замечено научным сообществом, но позже эту идею в 1935 году развили нидерландские исследователи Радемакер и Брак.

image

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

Мы попробовали воспроизвести это с нашей саблезубой кошкой в Cascadeur.

Cascadeur: Задача о падающей кошке - 5

Но как бы мы ни сгибали тело, поворота на 180 градусов нам добиться не удалось. За одно такое движение кошка проворачивалась максимум градусов на 120. Мы пришли к выводу, что одного этого движения не достаточно.

Также у физиков популярна модель, предложенная М. Гийу, учитывающая поджатие лап. Если сначала поджать передние лапы, задние лапы вытянуть, а переднюю половину тела повернуть вдоль оси относительно задней половины, то за счет разницы в моментах инерции передняя половина повернется больше, чем задняя половина повернется в обратную сторону. После этого можно поджать задние лапы, вытянуть передние лапы, а заднюю половину тела повернуть относительно передней, возвращая в исходное состояние, то задняя половина повернется больше передней, и итоговое положение кошки окажется повернутым, несмотря на то, что суммарный угловой момент все время оставался нулевым.

Эта модель кажется логичной, но остается важный вопрос: почему кошка обычно вытягивает только одну переднюю и одну заднюю лапы, хотя выгоднее было бы максимально вытягивать сразу две передние, а потом две задние лапы?

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

Наша физическая модель более подробна, чем просто два твердых тела. В ней можно воспроизвести сложное движения лап.

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

Cascadeur: Задача о падающей кошке - 6

Cascadeur: Задача о падающей кошке - 7

Cascadeur: Задача о падающей кошке - 8

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

Итого, мы пришли к мнению, что кошки используют сразу несколько принципов. Наибольший вклад имеет изгиб туловища, на втором месте по вкладу — загребание лапами, и дополнительно помогает хвост.

image

Может быть, наши эксперименты не тянут на научную работу, но надеемся, что вам было интересно и вы лучше поняли, как кошке удается этот трюк. Будем рады ответить на вопросы в комментариях.

Узнать больше о Cascadeur:

Cascadeur: будущее игровой анимации
Cascadeur: предсказание позы персонажа по шести точкам

В команду Banzai Games требуется Senior Unity Developer. Подробнее о вакансии можно прочитать здесь.

Автор: BanzaiGames

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js