Физическая симуляция

Иногда нужно наполнить что-то чем-то или просто уронить несколько предметов на пол для эффекта разбросанности. Для этого в Boxshot есть инструмент Physics.

Инструмент Physics применяет гравитацию к выбранным объектам сцены, оставляя остальную сцену статичной. Выбранные объекты падают, реалистично сталкиваясь с остальной сценой. Boxshot продолжает симуляцию, пока объекты не остановятся. Процессом можно управлять с помощью множества параметров.

Вот пример того, что можно сделать с помощью инструмента (спасибо Wojciech).

Результат физической симуляции в Boxshot

Начнём

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

Две сферы одна над другой

Убедитесь, что выбрана только верхняя сфера, щёлкните правой кнопкой и выберите Tools → Physics в контекстном меню. Появится окно инструмента Physics:

Окно инструмента Physics в Boxshot

Не меняя ничего, нажмите Start внизу. Boxshot запустит симуляцию, и вы увидите, как зелёный шар падает, сталкивается с синим, падает на пол и укатывается.

Получится примерно так:

Результат физической симуляции

Вот, собственно, и всё. Выделяете фигуры, которые должны двигаться, запускаете инструмент симуляции и нажимаете Start. Просто.

Что насчёт остальной сцены?

Вы могли заметить, что синий шар вообще не двигался. Причина в том, что Boxshot симулирует только выделенные объекты. Остальная сцена статична и не движется, даже при столкновении.

Попробуем изменить это. Сделайте радиус зелёной сферы равным синей, выделите обе и снова запустите Physics:

Обе сферы выделены в Boxshot

Нажмите Start и увидите разницу:

Обе сферы сдвинулись после симуляции

Итак, ещё раз: нужно выделить всё, что должно двигаться.

Параметры симуляции

В инструменте Physics два настраиваемых параметра:

Оба параметра применяются ко всей сцене и позволяют точно настроить симуляцию.

Увеличение трения замедляет скольжение и качение, объекты меньше разлетаются.

Увеличение Bounce заставляет падающие объекты отскакивать.

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

Управление симуляцией

Внизу окна Physics три кнопки:

Обычно нужна только Start. Boxshot выполняет симуляцию, пока объекты движутся, и автоматически останавливается. Если результат устраивает — просто нажмите OK.

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

Симуляция нескольких фигур

Немного изменим сцену. С помощью Lathe или Loft сделайте чашу, поместите маленькую сферу над чашей и используйте Step and Repeat для клонирования. Получится примерно так:

Группа сфер над чашей, готовая к симуляции

Нажмите Start и посмотрите:

Неожиданный результат симуляции

Вряд ли это то, что вы ожидали, верно?

Причина в том, что изначально была выделена вся группа сфер. Посмотрите на дерево сцены слева. Единственный выделенный элемент — группа “Sphere_4 S’n’R”.

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

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

Выделение сфер вместо родительской группы

Обратите внимание: у каждой сферы своя рамка выделения. Это хороший признак, что каждая сфера пойдёт своим путём в симуляции.

Нажмите Start и смотрите результат:

Каждая сфера симулируется отдельно

На этот раз всё как ожидалось. Все сферы упали в чашу независимо.

Создание копий

Клонировать фигуры вручную для наполнения может быть утомительно. К тому же вы можете не знать точное количество. Boxshot упрощает это с помощью секции Copies в инструменте Physics.

Секция имеет два параметра:

Вот та же сцена с одной сферой над чашей и количеством копий 10:

Установка количества копий в 10

Запустите симуляцию, подождите немного и нажмите Pause:

Приостановленная симуляция 10 падающих шаров

Симуляция ещё не завершена, так как мы поставили её на паузу посередине, но виден принцип: вместо одной сферы создаётся несколько.

По сути, Boxshot ждёт, пока сфера немного упадёт, и создаёт ещё одну в исходной позиции. Так продолжается, пока не будет создано 10 сфер, как задано параметром Number of Copies.

Есть ещё одна причина для паузы: на паузе можно менять все параметры, включая само количество копий!

Это значит, что можно увеличить значение, если 10 недостаточно, или уменьшить, если уже хватает. Затем нажать Start для продолжения.

Продвинутые темы

Здесь более сложные темы, можете пропустить, если чувствуете, что это “слишком”.

Что насчёт массы?

Масса — фундаментальный параметр симуляции. Более тяжёлый объект сильнее влияет на лёгкие и меньше подвержен их влиянию.

Если уменьшить зелёную сферу и перезапустить симуляцию, синий шар будет двигаться меньше или вообще останется на месте.

Как Boxshot получает массу? Масса — это функция объёма и плотности. Boxshot предполагает одинаковую плотность всех объектов и использует грубую оценку объёма для вычисления массы. Обычно этого достаточно, и большие объекты ведут себя как более тяжёлые.

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

Что насчёт центра масс?

Boxshot использует точку опоры фигуры как центр масс. Это хорошо работает для большинства фигур, но у некоторых (например, Soda Can) точка опоры находится снизу.

Попробуйте сами: создайте новую сцену, добавьте банку, поднимите её и уроните с помощью Physics. Для забавы установите количество копий в 10. Скорее всего, получится так:

Симуляция 10 падающих банок

Во время симуляции вы заметите, что банка падает боком, а затем встаёт. Причина в том, что точка опоры (центр масс) находится снизу. Представьте, что у каждой банки очень тяжёлый груз на дне, чтобы поведение стало понятнее.

Как исправить? Boxshot не позволяет менять точку опоры фигуры, но можно использовать группы. Решение: выделите банку и нажмите G, чтобы сгруппировать банку с самой собой:

Настройка центра масс объектов

Обратите внимание: правая банка — дочерний узел “Group”, и точка опоры этой группы теперь в центре банки, что и нужно.

Если нужно сместить точку опоры от центра, также сгруппируйте фигуру, а затем переместите фигуру внутри группы. Точка опоры группы останется на месте, но из-за смещения дочерней фигуры итоговая точка опоры переместится.

Теперь запустите симуляцию для “сгруппированной” банки и увидите разницу:

Симуляция банок с центрированными точками опоры

Гораздо лучше :)

Скорость симуляции

Симуляция может замедляться при большом количестве объектов. Скажем, вы хотите наполнить ведро монетами по 1 центу — их понадобится много, и процесс точно замедлится. Что делать?

Правило: минимизировать количество симулируемых объектов. Чем меньше — тем лучше. Можно положить что-то большое в ведро, чтобы монетам осталось лишь узкое пространство. Потребуется меньше монет, и процесс ускорится. Всё равно никто не увидит :)

Другой трюк — симуляция слоями: уроните несколько предметов, дайте им улечься, выйдите из симуляции и запустите заново. Ранее обработанные элементы становятся частью “статичной” сцены и уже не так сильно влияют на скорость. Так можно значительно ускорить обработку большого количества объектов.

Ещё одно

Boxshot симулирует не реальную форму объектов, а выпуклую форму, очень похожую на оригинал. Представьте, что вы плотно обернули объект плёнкой, не оставив отверстий — всё идеально выпуклое. Именно это делает Boxshot. Это значит, что нельзя надеть тор на шест — Boxshot видит тор как диск (помните: без отверстий).

В большинстве случаев это не важно, но полезно знать.

Тонкие стенки

Симулятор не любит тонкие стенки. Под “тонкими” я имею в виду стенки нулевой толщины. Добавьте немного толщины, чтобы избежать проблем.

В заключение

Не ожидайте слишком многого от симуляции и будьте готовы подправить результат здесь или там или сделать постобработку. Это нормально :)

Дополнительная Информация

Рендеринг

Материалы

Возможности

Объекты