Задание: создать качающуюся цепь по образцу.
Речь пойдет о том, как заставить объекты взаимодействовать друг с другом, при помощи симуляции твердых тел (Rigid Body).
Откроем Blender, добавим на сцену плоскость и разместим над ней куб.
Рис.1. Сцена с плоскостью и кубом
Сейчас в сцене есть два объекта. При физическом взаимодействии можно указать какой из объектов будет активным, а какой пассивным. Укажем, например, что куб будет активным объектом, а плоскость – пассивным. Сделать это можно сделать двумя способами.
1 способ: Слева, в меню Rigid Body Tools есть две кнопки "Add Active" и "Add Passiv"
Рис.2. Меню Rigid Body Tools
2 способ: В панели инструментов справа на вкладке Physics есть кнопка Rigid Body здесь можно устанавливать тип объекта.
Рис.3. Раздел Physics - Rigid Body
Выделяем плоскость. Нажимаем кнопку "Add Passiv" и она сразу выделяется зеленым цветом. Причем в меню Rigid Body справа тоже укажется тип Passiv.
Рис.4. Для плоскости выбран тип Pasiv
Выделяем куб и указываем тип Active. Стоит заметить, по умолчания для объектов всегда указан тип Active. Теперь нажимаем Alt+A для просмотра анимации. На экране увидим, как куб будет падать на плоскость и отталкиваться от нее.
Происходит это потому, что в сцене включена гравитация и установлено значение " z =-9.810 ". Это сила притяжения Земли. Если уменьшить значение до " z =-1 " то куб будет падать значительно медленнее. Знак " - " указывает на то что движение куба происходит вниз. Если установить значение " z =1 ", то куб вместо того чтобы падать начнет взлетать.
Рис.5. Настройки сцены. Раздел "Гравитация"
Дальше посмотрим какие существуют настройки в меню слева. Их значения приведены в таблице 1.
|
Рис.6. Настройки в меню Rigid Body Tools
Название | Значение |
Change Shape | Изменение формы объекта |
Сalculate Mass | Расчет массы |
Сopy from Active | Копирование параметров |
Bake To Keyframes | Запись движения в качестве ключевых кадров |
Connect | Позволяет соединять объекты |
Таблица 1. Значение настроек в меню Rigid Body Tools
Change Shape. Данная настройка доступна как в меню слева, так и в панели справа.
Рис.7. Формы объекта (Rigid Body Tools - Change Shape)
По умолчанию всегда устанавливается значение Convex Hull. Она является оптимальной, хорошо повторяет форму объекта и не максимально загружает процессор при расчетах физики. В примере с кубом можно выбрать тип объекта Box, тогда при запуске анимации будет видно, что куб падает как ему свойственно. Если же выбрать какую-то неправильную форму для него, например Sphere, то куб упадет подобно сфере, на одну из вершин.
Рис.8. Для куба выбрана форма Sphere
Сalculate Mass. Сейчас на сцене есть с куб с массой равной 1.
Рис.9. Значение массы куба
Выделяем куб, нажимаем кнопку Сalculate Mass в меню слева и видим панель из множества материалов, которые можно выставить для куба. Среди них "лед", "золото", "пластик", "серебро".
Рис.10. Меню материалов объекта
Выбираем один из материалов, например, "Gold " и видим как меняется значение массы. Если запустить анимацию, то увидим, что падение объекта стало более реалистичное.
Рис.11. Значение массы объекта с материалом " Gold"
Заметим, если увеличить объект и вновь выбрать для него этот же материал, то значение массы увеличится, таким образом на основании материала и объема, с помощью данной функции можно рассчитать массу объекта.
|
Сopy from Active. Простая настройка, которая копирует все параметры Rigid Body от активного объекта к выделенным. Для этого сначала выделяем все нужные объекты, и в последнюю очередь выделяем активный объект, параметры которого нужно скопировать. Нажимаем Сopy from Active, эта настройка копирует все параметры: силу трения, массу, отскок и т.д.
Теперь подробнее о параметрах.
Рис.12. Параметры раздела Rigid Body
Friction - трение. По умолчанию значение 0.5. При увеличении значения до 1 куб отскакивает вправо, при уменьшении до 0 куб остается на том же месте, где упал.
Bounciness - параметр отскока. Заметим, что данные параметры действительны как для активного, так и пассивного объектов одновременно. Это нужно учитывать для получения желаемого эффекта. Так например, если у одного объекта, значение отскока равно 0, а у другогомаксимально (1), то никакого действия не произойдет, потому что параметры перемножаются и в результате значение равно 0. Если установить максимальные значения у активного и пассивного объектов, то получится отскок с переворотом.
Collision Margin - отступ. В предыдущем примере при запуске анимации отскок куба происходит в момент соприкосновения с плоскостью. Если активировать параметр Collision Margin и выставить значение " Margin:1 ", то увидим что куб начинает отталкиваться от плоскости до того, как он ее достигнет.
Collision Groups. Объекты можно группировать. Сейчас они находятся в первой группе. Если поместить их в разные группы и запустить анимацию то увидим, как куб при падении проходит сквозь плоскость как будто ее нет. Таким образом если в сцене множество объектов и нужно чтобы одни не конфликтовали с другими достаточно поместить их в разные группы.
|
Рис.13. Первая группа и третья группа
Bake To Keyframes. Так как данная симуляция происходит в режиме реального времени, каждый раз компьютер производит расчет отскоков, то можно записать движение в качестве ключевых кадров автоматически, а затем рендерить готовую анимацию. Запустим анимацию и остановим ее на 57-м кадре. Нажимаем кнопку "Bake To Keyframes " и устанавливаем: первый, последний кадр, шаг анимации, "OK".
Рис.14. Bake To Keyframes
Внизу видим - создались ключевые кадры, и перемещаясь по ним можно проигрывать ранее записанную анимацию. Это позволит сделать рендер самого эффектного кадра.
Рис.15. Ключевые кадры анимации
Connect. С помощью этой настройки можно соединять объекты чтобы они взаимодействовали.
Создадим цепь. Удалим со сцены куб, добавим тор, немного вытянем его и создадим цепь из 8 звеньев.
Рис.16. Цепь из мешей - Torus
Выделим нижнее кольцо. В разделе Physics выберем Rigid Body. Сделаем кольцо активным и выберем форму Mesh. Скопируем данные свойства для остальных колец, используя Сopy from Active.
Нажмите Alt+A, цепь падает на плоскость.
Рис.17. Цепь, упавшая на плоскость
Для того, чтобы закрепить верхнее звено цепи достаточно убрать галочку с Dynamic, оставив кольцо активным.
Теперь можно немного раскачать цепь - повернуть активную часть цепи относительно неподвижного звена. В результате на анимации цепь будет раскачиваться, а верхнее звено будет оставаться неподвижным.
Рис.18. Раскачавшаяся цепь.