Взаимодействие объектов друг с другом




Задание: создать качающуюся цепь по образцу.

 

Речь пойдет о том, как заставить объекты взаимодействовать друг с другом, при помощи симуляции твердых тел (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. Раскачавшаяся цепь.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: