Глава 15: Бонусы Blender'а

Материал из Blender3D.

Перейти к: навигация, поиск

Автор Роланд Хесс (Roland Hess)

Перевод Дмитрий Гриценко (aka AzoDeeps)

Содержание


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

Динамика твердого тела: Bullet

Динамическая симуляция среды для твердого тела позволяет создавать настройки твердых предметов и системы взаимодействия с ними в соответствии с законами физики, как будто они являются реальными объектами. Динамику твердого тела можно симулировать как простую, например, как кирпичные стены распадаются на куски, или что-то более подробное, например, как сложное устройство Руби Голдберга (Rube Goldberg) (http://protonchik.livejournal.com/16181.html). Blender имеет встроенную поддержку динамической симуляции твердого тела - с использованием физики Bullet SDK (Набор производителя программного обеспечения).

В основном это используется для поддержки игрового движка. Посредством использования встроенных инструментов программирования, внутренней логики и систем контроля, вы можете создать полностью функциональную игру прямо в Blender. Игра может быть сложным гоночным симулятором, таким, как "Club SILO" от студии Luma (http://luma.co.za), или игрой, где вы просто толкаете мяч по лабиринту. В любой игре движок физики Bullet работает на фоне сцены, делая вещи в эффектной, реалистичной манере.

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

Запись игровой физики в IPO кривые

Blender может записывать симуляцию Bullet для твердого тела в кривые анимации объекта. На главном заголовке в меню Game (Игра), вы найдете опцию Record Game Physics IPO (Запись игровой физики в IPO кривые). При активации данного параметра движок игры будет сохранять положения и вращения любых динамических физических объектов в анимации IPO, которые могут быть воспроизведены позже как стандартные анимации.

Пример простого твердого тела

Рисунок BB.01: Демонстрация выпечки физики.
Увеличить
Рисунок BB.01: Демонстрация выпечки физики.

На диск, в папку "examples", включен файл с названием PhysicsAnimationBakingDemo.blend. Откройте этот файл, переместите курсор мыши на 3D окно и нажмите клавишу P, для запуска игрового движка. Через некоторое время, нажмите клавишу Esc, чтобы остановить симуляцию, и только что сгенерированные IPO кривые должны быть видимы в IPO окне.

Настройки твердого тела

Рисунок BB.02: Панель Logic (Логика).
Увеличить
Рисунок BB.02: Панель Logic (Логика).

Объекты, определенные для использования в физическом движке, как статические объекты, включаются кнопкой Actor в панели Logic. Статические объекты являются полезными для отображения сред в симуляции: земли, зданий и других неподвижных объектов. Если объекты должны быть подвижны в физическом движке, кнопки Dynamic и Rigid Body должны быть также включены.

Столкновения

Любые предметы, у которых включена кнопка Actor, используются для расчета столкновений. Объекты сталкиваются с другими объектами и реагируют, как в реальном мире, ударяются друг об друга на основе параметров их масс и динамики. В Blender v2.43 добавлена поддержка столкновений составных форм для объектов твердого тела, которые являются частью иерархии родитель-потомок. Вы можете включить составные объекты кнопкой Compound для родительских объектов:

Рисунок BB.03: Столкновения составных объектов.
Увеличить
Рисунок BB.03: Столкновения составных объектов.

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

Ограничения твердого тела

Рисунок BB.04: Ограничения твердого тела.
Увеличить
Рисунок BB.04: Ограничения твердого тела.

Некоторые объекты могут быть динамичными твердыми телами, но их движения должны быть ограничены. Так, например, двери, как правило, только вращаются вокруг своей петли. Это будет зависеть от ограничений. Чтобы смоделировать цепь связанных объектов, вы можете ограничить движение каждой части в цепи, чтобы объекты оставались на некотором расстоянии друг от друга. Такого рода ограниченные отношения строятся с ограничением Rigid Body в панели Object.

Подробнее о физике твердого тела, и Bullet

Приглашаем Вас посетить http://www.bulletphysics.com для просмотра некоторых прекрасных роликов и множество дополнительной информации.

Поддержка физики COLLADA (Коллада)

Некоторые другие 3d инструменты и игровые движки поддерживают COLLADA (Коллада), открытый формат для обмена интерактивным 3D. Одной из уникальных особенностей COLLADA (Коллада), это способность представлять информацию твердого тела. Blender 2.42 и выше, поддерживает импорт и экспорт физики COLLADA. Это означает, что созданная информация твердого тела, может быть экспортирована и импортирована через COLLADA 1.4. Это может быть полезно, при авторской разработке данных твердого тела, для внешних игровых движков, например Ogre 3D (Огре) и C4.

Динамика мягких тел

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

Рисунок BB.05: Кнопки мягких тел.
Увеличить
Рисунок BB.05: Кнопки мягких тел.

Для настройки меша на использование динамики мягких тел, включите кнопку Soft Body на вкладке Soft Body панели Physics, рядом с частицами.

Рисунок BB.06: Мягкий живот Хэнка.
Увеличить
Рисунок BB.06: Мягкий живот Хэнка.

Если вы загрузите файл "softbellyhank.blend" из папки "example" на диске, то обнаружите, что Хэнк из главы "Персонажная анимация и оснастка", поправился на несколько фунтов. Динамика мягкого тела была применена к его увеличенному животу, чтобы показать, как он ходит.

Мягкие тела работают с понятиями "goals" (цель) и "springs" (пружины). Короче говоря, цель - оригинальная, смоделированная форма меша, и средства управления целью говорят симулятору о том, как строго мешку следует соответствовать этой целевой форме. Контроль Edge в нижней части панели управляет эластичностью, или как много ребер меша могут пружинить и растягиваться.

В случае мягкого живота Хэнка, только живот влияет на систему мягкого тела. Это объясняется тем, что мягкие тела могут быть ограничены на основе группы вершин. Создавая группу вершин низкого веса на животе и высокого веса на остальной меш, системе мягких тел может быть приказано использовать для целей вес этой группы вершин.

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

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

Моделирование Жидкости

В дополнение к физике жестких и мягких тел Blender имеет встроенный симулятор жидкости. Основываясь на методе Lattice-Boltzmann (Решетка-Больцмана), система жидкости производит отличные результаты, которые ограничены только вычислительной мощностью (оперативная память и процессор) вашего компьютера.

Рисунок BB.07: Назначения кнопок симуляции жидкости.
Увеличить
Рисунок BB.07: Назначения кнопок симуляции жидкости.

Симуляции жидкости необходимо несколько компонентов: Domen (Домен) (область, в рамках которой происходит моделирование), Fluid (Жидкость) (меш, который определяет форму и начало расположения жидкости) и объекты Obstacle (Препятствия). Вы можете также включить объекты, которые будут добавлять жидкость для симуляции с течением времени - Inflow (Приток) или удалять её - Outflow (Отток). Все это определяется путем добавления отдельных объектов для вашей сцены и включения их для каждой жидкости на вкладке Fluid Simulation (Симуляция Жидкости) панели Physics (Физика). Там вы используете кнопки, чтобы определить, какую роль будет играть объект в симуляции.

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

Рисунок BB.08: Некоторые примеры симулятора жидкости в Blender, любезно предоставлены Майк Пан (Mike Pan).
Увеличить
Рисунок BB.08: Некоторые примеры симулятора жидкости в Blender, любезно предоставлены Майк Пан (Mike Pan).
Рисунок BB.09: Некоторые примеры симулятора жидкости в Blender, любезно предоставлены Майк Пан (Mike Pan).
Увеличить
Рисунок BB.09: Некоторые примеры симулятора жидкости в Blender, любезно предоставлены Майк Пан (Mike Pan).

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

Создание вашей собственной простой симуляции жидкости

Рисунок BB.18: Выберите Enable (Включить), затем Domain (Домен).
Увеличить
Рисунок BB.18: Выберите Enable (Включить), затем Domain (Домен).

Начните с новой сцены, выделите куб по умолчанию и включите его в качестве Domen (домена) во вкладке Fluid Simulation (Симуляции Жидкости).

Рисунок BB.19: Icosphere внутри куба, включенная как жидкость.
Увеличить
Рисунок BB.19: Icosphere внутри куба, включенная как жидкость.

Добавьте Icosphere (Икосфера), разместите её в кубе, и уменьшите её, чтобы она оказалась полностью внутри куба. Затем Enable (включите) Icosphere как жидкость.

Вы должны знать одну вещь прежде, чем вы фактически начнете любую симуляцию - это то, что объект жидкости, в дополнение к определяющей области, в которой имеет место симуляция, становится фактически анимированной жидкостью. Не удивляйтесь, если вы увидите ваши прекрасно симулированные жидкости, но не будете видеть ваш объект определяющей области. Он всё равно будет участвовать в симуляции жидкости.

В окне Timeline (или в панели Render (F10)) установите конец анимации на 75 кадре или около того. Снова выберите куб и нажмите кнопку Bake на вкладке Fluid Simulation. Подождите несколько минут. Прогресс-бар на основном заголовке покажет, как долго создается симуляция. Работа симуляции также будет видна в 3D окне. Когда всё будет готово, просто нажмите Alt-A в 3D окне, чтобы увидеть симуляцию. Для лучшего просмотра с более высоким разрешением, вы можете изменить выпадающее меню с Preview (Предварительный просмотр) на Final (Финальный).

Если симуляция жидкости занимает слишком много времени для вычисления, вы можете нажать клавишу Esc для отмены.

Скрипты Python (Питон)

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

Простой скрипт, выделяющий родительский объект, выглядит следующим образом:

Рисунок BB.11: [без текста]
Увеличить
Рисунок BB.11: [без текста]

Конечно, вам не нужно быть программистом, вы можете воспользоваться результатом творчества других людей. Спрятанные внутри Blender несколько меню скриптов Python, готовы к использованию. В самом деле, вы, возможно, уже использовали их, не зная этого. Вот некоторые из мест, в которых Вы можете их найти:

Рисунок BB.12: [без текста].
Увеличить
Рисунок BB.12: [без текста].
Рисунок BB.13: [без текста].
Увеличить
Рисунок BB.13: [без текста].
Рисунок BB.14: [без текста].
Увеличить
Рисунок BB.14: [без текста].
Рисунок BB.15: [без текста].
Увеличить
Рисунок BB.15: [без текста].

Последнее изображение показывает одно из меню UV развертки, где последний пункт Unwrap (развернуть) является скриптом Python. В других меню вы можете увидеть маленькие иконки змейки Python рядом с названием. Каждый из них является скриптом Python, который загружается и помещается в меню при запуске Blender.

Рисунок BB.16: скрипт "MakeMonster" связан с выбранным объектом, и устанавливает обновление каждый раз, когда меняется номер кадра.
Увеличить
Рисунок BB.16: скрипт "MakeMonster" связан с выбранным объектом, и устанавливает обновление каждый раз, когда меняется номер кадра.

В дополнение к интегрированному в систему меню, скрипты Python могут быть выполнены различными путями. Если они загружены как текстовый файл, наведите курсор мыши на текстовое окно и нажмите Alt-P, для запуска скрипта. Скрипты в текстовом редакторе могут быть также связаны со сценами, материалами и объектами в 3D окне. Такие связанные скрипты могут быть запущены при перерисовке экрана, когда меняется номер кадра или изменяется время. Такая связь дает скриптам способность контролировать и изменять объекты в режиме реального времени, когда вы работаете над анимацией, или просто в течении времени.

Рисунок BB.20: Экспортер Neqsus Renderman (любезно предоставлен Бобби Паркером (Bobby Parker)).
Увеличить
Рисунок BB.20: Экспортер Neqsus Renderman (любезно предоставлен Бобби Паркером (Bobby Parker)).
Рисунок BB.17: Симуляция толпы BlenderPeople.
Увеличить
Рисунок BB.17: Симуляция толпы BlenderPeople.

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

Хотя Blender поставляется со встроенным интерпретатором Python, если у вас уже установлен язык программирования Python, Blender будет успешно использовать ваши установки, включая любые специальные модули или пакеты установленные вами. Это означает, что ваши возможности со скриптами Python в Blender практически безграничны. Будущие планы развития Python в Blender включают возможность для скриптов Python создавать и контролировать свои собственные панели непосредственно в основном интерфейсе Blender.

Скоро!

При активной и творческой команде разработчиков на горизонте вещи даже лучше.

В настоящее время в работе:

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

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

- Следующее Google Summer of Code несомненно будет включать несколько великих Blender проектов. В прошлом, GSoC принес нам расширение стека модификаторов, мультиполигонный скульптуринг, FFMPEG, переписанную и улучшенную инверсную кинематику, а также симуляцию жидкости.

Личные инструменты