3D Studio MAX: первые шаги. Урок 18. Геометрические пространственные деформации
Фантастический горный пейзаж с озером
Ползущая по дну морская звезда
При моделировании и анимировании моделей многие операции оказываются очень трудоемкими, так как их приходится выполнять на уровне вершин. Однако в ряде случаев точно такого же эффекта можно достичь куда более простым путем: связать с объектом подходящую пространственную деформацию. В прошлом уроке мы уже столкнулись с пространственными деформациями типа Forces (Силы), применяемыми для имитации воздействия силы тяжести, ветра и т.д., и типа Deflectors (Отражатели), используемыми для отражения потока частиц от преград и соответственно для изменения направления их перемещения. В данном уроке мы рассмотрим типы пространственных деформаций, обеспечивающие изменение геометрической формы объектов.
Теоретические аспекты
Геометрические пространственные деформации — это особые типы объектов, используемые для деформации формы других объектов и широко применяемые как в моделировании, так и в анимации. Преимуществом их использования является возможность быстро изменить геометрию объекта без перемещения вручную его вершин.
Создание геометрических пространственных деформаций обеспечивает тип объектов Geometric/Deformable (Деформируемая геометрия) из категории SpaceWarps (Объемные деформации) — рис. 1, при выборе которого становятся доступными следующие варианты деформаций:
- FFD (Box) (FFD-контейнер (прямоугольный)) и FFD (Cyl) (FFD-контейнер (цилиндрический)) — позволяет деформировать объект посредством редактирования создаваемой вокруг него кубической либо цилиндрической пространственной решетки, что дает возможность легко менять общую форму любого объекта независимо от плотности размещения его вершин;
- Wave (Волна) — деформирует объект за счет синусоидальных возмущений его поверхности с формированием линейных волн на привязываемом объекте, может использоваться для создания ряби и волн на водной поверхности и т.д.;
- Ripple (Рябь) — деформирует объект за счет синусоидальных возмущений его поверхности с формированием концентрических волн на привязываемом объекте и может применяться, например, для создания концентрических кругов на водной поверхности и т.п.;
- Displace (Перемещение) — обеспечивает выдавливание на поверхности объектов некоторых изображений (своеобразных отпечатков), что позволяет, например, имитировать следы на поверхности, создавать разнообразные природные ландшафты и т.д.;
- Conform (Соответствие) — деформирует объект в соответствии с кривизной базовой поверхности и может использоваться для получения своего рода проекций объекта на данную поверхность; таким образом можно моделировать дороги, железнодорожные пути, русла рек и т.д.;
- Bomb (Бомба) — создает импульсную взрывную волну, обеспечивающую разброс фрагментов объекта под воздействием взрыва; как правило, используется в совокупности с атмосферным эффектом Fire Effect для имитации разного рода взрывов.
Рис. 1. Объекты типа Geometric /Deformable
С деформациями Wave и Ripple мы уже неоднократно сталкивались, так как в 3 D Studio MAX имеются модификаторы с одноименным названием и сходным воздействием, поэтому останавливаться на них мы не будем. Правда, стоит отметить, что модификаторы Wave и Ripple и пространственные деформации Wave и Ripple — все же не одно и то же. Во-первых, назначаются объектам они совершенно по-разному. Во-вторых, деформаторы существуют как объекты (они видимы в окнах проекций), а модификаторы — нет (они лишь отображаются на панели Modify). И самое главное — модификаторы и пространственные деформаторы различаются по своему воздействию, так как первые влияют на объекты локально, а вторые — глобально. Если объекту назначен модификатор (рис. 2), то при изменении положения объекта в пространстве воздействие модификатора на него не меняется. Иное дело — назначение деформатора, воздействие которого определяется не только параметрами настройки, но и его положением по отношению к объекту. А это значит, что при перемещении деформатора (либо объекта) воздействие его на объект будет меняться (рис. 3 и 4). Точно так же будет изменяться результат влияния пространственной деформации и при вращении иконки деформатора либо ее масштабировании.
Рис. 2. Path-плоскость с назначенным ей модификатором Ripple
Рис. 3. Path-плоскость с назначенным ей деформатором Ripple (деформатор в левом верхнем углу плоскости)
Рис. 4. Path-плоскость с назначенным ей деформатором Ripple (деформатор в центре плоскости)
FFD (Box) и FFD (Cyl)
Пространственные деформации FFD (Box) и FFD (Cyl) создают вокруг объекта пространственную решетку (рис. 5), имеющую свои управляющие вершины и контролирующую вид его геометрии: перемещение вершин решетки приводит к перемещению вершин самого объекта, что автоматически ведет к изменению его формы (рис. 6). При этом большее число управляющих вершин решетки обеспечивает более точный контроль геометрии объекта, но вместе с тем и усложняет его модификацию. Помимо перемещения, вершины решетки можно масштабировать и вращать, а на саму решетку налагать различные деформации, что также будет приводить к деформированию объекта. Данный тип деформации применим к поверхностям любого типа, при этом одна и та же решетка может управлять геометрией сразу нескольких объектов одновременно. Более того, перемещая объект сквозь решетку или, наоборот, двигая решетку вдоль поверхности объекта, можно получить анимированную деформацию.
Рис. 5. Пространственная решетка, созданная вокруг конуса
Рис. 6. Деформирование конуса посредством деформации FFD (Box)
Теоретически изменять геометрию объекта можно и без формирования пространственных решеток (с чем ранее мы неоднократно сталкивались), однако при редактировании сложных поверхностей с огромным числом вершин это может оказаться менее удобным и гораздо более трудоемким, ведь интересующую область придется масштабировать многократно, последовательно расширяя (или сужая) число задействованных в преобразовании вершин. При этом количество редактируемых вершин будет очень велико, и даже на их выделение может уйти немало времени. С решеткой же, у которой верно подобрано число линий, все окажется гораздо проще, ведь число вершин решетки значительно меньше и их можно быстрее выделить, а самое главное — с меньшим числом вершин проще добиться желаемого изменения контуров.
Для примера создайте примитив Capsule из группы расширенных примитивов и установите для него большое число сегментов по высоте (параметр HeightSegs в нашем варианте равен 100) — в противном случае добиться плавного изменения формы объекта не удастся. После этого в режиме Create щелкните на кнопке Space Warps, откройте категорию Geometric/Deformable и активируйте объект FFD (Box) либо примените из главного меню команду Create=>SpaceWarps=>Geometric/Deformable>FFD (Box) (Создать=>Пространственные деформации=>Деформируемая геометрия=>FFD-контейнер (прямоугольный)). В проекции Top постройте прямоугольный контейнер, размеры которого должны быть немного больше размеров объекта-капсулы. Увеличьте число его разбиений по оси Z до пяти — для этого, не снимая выделения с решетки, активируйте панель Modify, щелкните на кнопке SetNumberofPoints (Установить количество точек) и откорректируйте число контрольных точек по оси Z (рис. 7). Расположите решетку так, чтобы ее центр совпал с центром капсулы, для чего достаточно воспользоваться операцией Align (Выравнивание) — рис. 8.
Рис. 7. Изменение параметров решетки
Рис. 8. Исходный вид решетки с капсулой
Выделите решетку и свяжите ее с капсулой — активируйте инструмент BindtoSpaceWarp, нажмите левую кнопку мыши на решетке и, не отпуская ее, укажите капсулу. Перейдите на уровень редактирования контрольных точек решетки, щелкнув в стеке модификаторов на квадратике со знаком плюс, расположенном слева от имени модификатора, в раскрывшемся списке выберите строку ControlPoints (Контрольные точки) и выделите средний ряд контрольных точек (рис. 9). В окне проекции Front инструментом SelectandUniformScale равномерно масштабируйте вершины решетки так, чтобы сузить соответствующую область капсулы (рис. 10), затем аналогичную операцию проведите в проекции Left. В итоге капсула станет напоминать колбу песочных часов (рис. 11). Обратите внимание, насколько быстро удалось добиться гладкой формы деформированного объекта — это оказалось бы на порядок сложнее при масштабировании вершин самого объекта (а не вершин назначенной ему решетки). При необходимости возврата первоначальной формы объекта достаточно удалить решетку, выделив ее и нажав клавишу Del. Аналогичным образом применяется и пространственная деформация FFD (Cyl), отличие которой от рассмотренной выше деформации FFD (Box) заключается лишь в том, что формируемая пространственная решетка имеет не кубическую, а цилиндрическую форму.
Рис. 9. Выделение контрольных точек решетки
Рис. 10. Масштабирование контрольных точек решетки в проекции Front
Рис. 11. Результат масштабирования вершин решетки
С таким же успехом пространственная решетка может назначаться не одному, а нескольким объектам одновременно. Для примера создайте сцену с двумя объектами — шаром и кубом, выровненными друг относительно друга по центрам (рис. 12). Попробуем деформировать сразу оба объекта. Создайте пространственную решетку FFD (Box) с параметрами 2x2x2 (рис. 13). Выделите ее и свяжите сначала с одним объектом, а потом с другим, а затем выровняйте относительно одного из объектов — обратите внимание, что выравнивать лучше после связывания, так как иначе при связывании решетки с объектами указывать их будет неудобно. Удостоверьтесь, что связанными оказались оба объекта — об этом будет свидетельствовать появление у каждого из них решетки в свитке модификаторов (рис. 14). Активируйте решетку, переключитесь в режим редактирования вершин, выделите ее нижние вершины и немного масштабируйте их. Затем выделите верхние вершины и поверните их вокруг своей оси, а затем немного перетащите данные вершины вверх (рис. 15). Полученный в итоге объект лишь отдаленно будет напоминать лежавшие в его основе куб с шаром и скорее будет походить на заготовку для подсвечника со свечой (рис. 16).
Рис. 12. Шар и куб
Рис. 13. Создание FFD (Box)-решетки
Рис. 14. Куб со свитком модификаторов, в котором фигурирует решетка
Рис. 15. Деформирование вершин решетки
Рис. 16. Заготовка для подсвечника