Чтобы создать в Blender анимацию, подобную той, что сейчас показана на экране, где объект анимируется с помощью keyframes и взаимодействует с объектами Rigid Body, необходимо задать вручную анимируемому объекту компонент Rigid Body типа Passive с включенной опцией Animated.


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


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

Здравствуйте! Чтобы создать в Blender анимацию, подобную той, что сейчас показана на экране, где объект анимируется с помощью keyframes и взаимодействует с объектами Rigid Body, необходимо задать вручную анимируемому объекту компонент Rigid Body типа Passive с включенной опцией Animated.

Давайте пошагово рассмотрим операции, необходимые для создания этой анимации.

Все объекты привязаны к бильярдному столу через parent, но это не подходит для физической симуляции. Поэтому сначала выделим все объекты, кроме бильярдного стола, и очистим их родительские связи, нажав ALT P и выбрав в появившемся на экране меню опцию Clear Parent and Keep Transformation.

Создадим новую Collection, в которую поместим все бильярдные шары. Это позволит быстро выделять их все через правый клик и команду Select Objects. Это будет полезно, когда потребуется изменить некоторые параметры Rigid Body сразу для всех бильярдных шаров.

Теперь добавим компонент Rigid Body Passive для бильярдного стола, затем установим Collision Shape в значение Mesh, чтобы шары могли падать в лузы.

Все бильярдные шары будут активными физическими объектами, поэтому выделите их все, откройте toolbox и введите Rigid Body Add Active, чтобы добавить этот компонент ко всем шарам.

При моих начальных настройках сцены бильярдные шары получаются слишком лёгкими. Чтобы изменить массу всех шаров сразу, сначала выделите их все, затем нажмите клавишу ALT и, удерживая её, щёлкните по полю Mass во вкладке Rigid Body. После этого отпустите ALT и введите подходящее значение, например 0.16 kg. Этот вес будет назначен всем шарам.

Запомните этот приём с клавишей ALT, если потребуется изменять параметры сразу для нескольких объектов. В данном случае он может пригодиться для изменения других общих параметров всех бильярдных шаров, таких как Damping, Bounciness и других физических параметров в разделах Surface Response и Dynamics вкладки Rigid Body.

Снова используйте этот приём, чтобы изменить Collision Shape всех бильярдных шаров на Sphere.

Теперь можно расположить кий на первом кадре анимации и добавить animation keyframe для его начального положения.

Кий должен иметь компонент Rigid Body типа Passive и, что особенно важно, должна быть включена опция Animated, как упоминалось в начале этого tutorial.

Также переключимся на отображение Local Axis, отметив, что мы можем перемещать кий вперёд или назад вдоль его локальной оси X.

Перейдём к шестому кадру анимации, настроим положение кия так, чтобы он ударил по белому шару, и запишем этот animation keyframe.

Перейдём ещё на 3 кадра вперёд, чтобы отвести кий от стола, и запишем его новое положение ещё одним animation keyframe.

Перед запуском Bake для физической симуляции сохраните сцену как новый файл на диске.

Вернитесь к первому кадру Timeline, откройте вкладку Scene в Properties Editor и в разделе Rigid Body World Cache нажмите Bake All Dynamics.

После завершения Bake симуляции Rigid Body просмотрите полученную анимацию в 3D Viewport.

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

После каждого изменения очистите все Bake в разделе Cache панели Rigid Body World, вернитесь к первому кадру Timeline, сохраните файл и снова выполните Bake физической симуляции.

Значение параметра Bounciness по умолчанию равно 0. Установите его равным 1 для стола и немного увеличьте его для бильярдных шаров без чрезмерного увеличения, чтобы избежать их скопления внизу без отскоков. Помните, что можно изменить значение параметра сразу для всех объектов при множественном выделении, просто нажав клавишу ALT при щелчке по параметру, затем отпустив ALT и введя значение.

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

Первый способ заключается в том, чтобы переместить keyframe удара ближе к первому кадру анимации. Это можно сделать, выделив ромбы keyframes на Timeline и перемещая их вперёд или назад клавишей G.

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

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

При проведении экспериментов не забывайте возвращаться к первому кадру, очищать Bake, сохранять файл и выполнять новый Bake симуляции Rigid Body.

Вот и всё! Надеюсь, этот tutorial был полезен! До скорой встречи!

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


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