Максимальный 3D MAX(опубликовано в журнале
Мой компьютер)
№40(159)/08.10.2001
Сергей БОНДАРЕНКО, Марина ДВОРАКОВСКАЯ
just_only_3d@yahoo.com
(Продолжение, начало см. в МК № 37 (156), 39 (158), 2001)
Надеемся, вы уже успели приобрести и опробовать плагины, о которых мы вам рассказывали в предыдущих номерах «МК». Сегодня мы предлагаем очередную порцию занимательных инструментов. Итак, продолжаем разговор о модификаторах.
Когда смотришь, как действует
Bulge-O-Matic
(http://www.di-o-matic.com), появляется чувство, будто находишься в комнате с кривыми зеркалами. Этот плагин похож на несколько модификаторов MAX’а одновременно (Stretch, Taper и др.). Он растягивает, сжимает, изменяет предмет во всех возможных направлениях. К тому же он очень прост в использовании и вдобавок фриварный.
Еще один небольшой плагин —
Simple Spike
(рис. 1) — имеет всего лишь два параметра. Один отвечает за длину шипов (spikes), другой — за форму объекта. Интересно, что с помощью этого модификатора примитиву придается кубическая форма, то есть Simple Spike можно рассматривать как дополненный плагин Cubify.
Стандартный
Relax
чем-то «задел» компанию Digimation (http://www.digimation.com), и, стремясь доказать, «ну чем мы хуже?», программисты создали модификатор Blend, поставляющийся в составе одного из наиболее удачных продуктов фирмы, плагина Bones Pro. Предназначение Blend — сглаживать острые грани редактируемой оболочки объекта.
В основном этот модификатор имеет смысл использовать при работе с булеановскими объектами (Boolean). Напомним, что объекты типа булеан создаются путем объединения двух или более трехмерных тел по принципам булевой алгебры. Применяются они для формирования отверстий или впадин в объемных телах, а также для соединения нескольких объектов в один. Воспользовавшись Blend, вы избавитесь от резких изгибов при переходе от одного объекта к другому. Свиток Blend Modifier включает следующие параметры:
Tension («Натянутость»)
— число от нуля до ста, определяющее количество итераций в алгоритме сглаживания поверхности;
Concave Zones Only («Только вогнутые участки»)
— если выбрана эта опция, модификатор применяется не ко всему объекту, а только к вогнутой области модели;
Freeze Boundary («Зафиксировать границы»)
— отвечает за то, чтобы вершины, лежащие на границе полого объекта, не изменялись. Так, для полого цилиндра эти вершины находятся в верхнем и нижнем основаниях, и действие на них оказываться не будет;
Flip Normals («Обратить нормали»)
— эта опция работает только в том случае, если предварительно выбран Concave Zones Only. При этом на модель действуют силы, направленные по нормали к поверхности.
Теперь рассмотрим подробнее сам плагин Bones Pro. Он откроет пользователю новые возможности MAX’а. Во-первых, в вашем распоряжении окажется быстрая (realtime) система деформации, во-вторых, ваша задача упростится, ведь в самые короткие сроки вы сможете назначить оболочке некоторый набор
bones
(буквально — «кости»).
Допустим, у нас есть
оболочка (mesh)
. Размещаем внутри нее bones, роль которых могут выполнять примитивы — цилиндр, куб, тор и т. д. Применяем к оболочке модификатор Bones Pro2. Перед нами появляется свиток с большим количеством настроек. Для того чтобы описать их все, понадобилась бы отдельная статья :-), поэтому ограничимся рассмотрением основного принципа. Сначала нажимаем кнопку Bones, затем Assign. Выбираем из списка свои :-) кости, а затем, вращая любую bone, убеждаемся в том, что оболочка изменяет свою форму (рис. 2). Здесь же, в свитке Bones, задаются величины Falloff и Strength, которые определяют характер влияния кости на оболочку. В принципе плагин Bones Pro — это альтернатива стандартному набору средств MAX’а, поэтому часть его настроек подобна модификатору Skin.
В нашем распоряжении находится еще две небольшие утилиты от Bones Pro. Первая —
Skeleton
— берет созданные в 3D MAX кости, конвертирует их в иерархично связанные коробки, сохраняет относительный
размер и размещение bones, а также учитывает их имена. Skeleton — прекрасный инструмент для создания скелетов «живых» персонажей.
Вторая утилита
Snapshot Plus
с помощью моделирующего инструмента Space Warp («Объемные Искажения») осуществляет любую деформацию. 3D MAX «берет» те объекты, на которые воздействуют SpaceWarp-деформации, и делает копию, которая является абсолютно самостоятельной. По большому счету Snapshot Plus разрабатывалась для того, чтобы обеспечить работу со встроенной в 3D MAX системой Bones.
Если у вас сложилось впечатление, будто все авторы плагинов под MAX только тем занимались, что доводили до ума «родные» MAX’овские модификаторы, должны вас уверить, что это далеко не так. И плагин под названием
Greeble
(freeware) яркое тому подтверждение — он уникален. Его работа заключается в следующем: вдоль всей поверхности объекта строится большое количество элементов, отдаленно напоминающих детский конструктор Лего, в результате чего простой чайник напоминает не то ежа, не то космическую станцию будущего.
Плагины
Object Deform
(http://www.max3dstuff.com) и Solidify (no name :-)) тоже не похожи ни на один стандартный модификатор MAX’а. Первый модификатор позволяет деформировать один объект другим. Рассмотрим работу Object Deform детальнее. Создайте сцену, в которой первый предмет движется в направлении второго и частично в него «заходит». Затем укажите первый и последний кадр (Start Frame, End Frame), тип деформации, нажмите кнопку Solve («Просчет»). Если хотите переделать сцену и просчитать ее заново, обнулите кэш с имеющейся там информацией (Clear Memory). В результате применения плагина один из объектов при столкновении частично примет форму другого. Это может оказаться полезным, если необходимо создать следы (на песке, снегу и т. д.) или имитировать несложные столкновения с деформацией.
Solidify («Затвердитель»)
(рис. 3) «издевается» :-) над объектом следующим образом: модель раздувается, принимая «неуклюжую» форму, лишь слабо напоминающую первоначальную.
Помните, в первой статье (МК № 37 (156)) мы ставили чайник на стол с помощью плагина Tables&Chairs?

Пришло время позаботиться о красивой скатерти-самобранке :-). Для начала мы набросим скатерть на стол. Действие само по себе нехитрое, однако требует дополнительного расширения стандартных возможностей 3D Studio. Отметим сразу, существует большое количество разработок, от самых простых до таких солидных, как Reactor от Discreet, специально нацеленных на создание в MAX’е различных видов ткани. Мы же как новички в ткачестве воспользуемся несложным плагином, который так и называется
SimCloth
. Его создатель — компания Chaosgroup (
http://www.chaosgroup.com). Принцип работы пакета следующий: в любой оболочке он принимает вершины сетки за частицы и затем проводит дальнейшие расчеты. Силы, которые оказывают воздействие на отдельно взятую частицу, подразделяются на три группы. Первая группа — силы ветра или гравитации, вторая группа — силы взаимодействия между частицами и третья — результирующая сил взаимодействия с прочими объектами. Часто (если не всегда) все эти силы противодействуют друг другу. SimCloth балансирует их действие и позволяет ими управлять.
Теперь, когда мы знакомы с теорией, вернемся к практике. Нам понадобятся:
стол (например, из плагина Tables&Chairs, но подойдет любой имеющийся в наличии :-)) — 1 шт.;
скатерть (ее роль выполнит плоскость площадью достаточной, чтобы покрыть стол) — 1 шт.;
модификатор SimClothMod — 1 шт.
Размещаем плоскость на небольшом расстоянии над столом (рис. 4). Сейчас мы сделаем так, что скатерть упадет на стол, более того, ее края еще некоторое время будут колебаться. Чтобы добиться большей реалистичности, установите для плоскости количество сегментов по длине и ширине (
LenghtSegs
и WidthSegs). Причем чем их больше, тем правдоподобнее «поведение» ткани, но меньше скорость просчета сцены. Придерживайтесь золотой середины, иначе результат рендера увидят только ваши внуки :-). Стол у нас квадратный (естественно, у вас он может быть любой формы), поэтому значение LenghtSegs и WidthSegs должно быть одинаковым (например, 30). Затем по очереди применяем модификатор SimClothMod к столу и скатерти. Именно по очереди, а не к двум предметам одновременно. Далее перед нами появляется семь свитков. Так как один из них это About (сведения о производителе), то нам понадобятся лишь шесть оставшихся :-).
Первый свиток пока пропускаем (в нем содержится кнопка Start Calculation («Начать просчет сцены»)), переходим сразу ко второму, то есть Type.
В нем хранится информация о типе объекта, принимающего участие в моделировании сцены. Плагин умеет работать с тканями, отражателями и твердыми телами. Для скатерти отмечаем
Cloth («Ткань»)
, а для стола — Deflector («Отражатель»). Теперь… Все! Не верите? Нажмите кнопку Start Calculation из первого свитка (все равно, в каком из модификаторов — для стола или для ткани) и наблюдайте. На экране появляется окошко от SimCloth, где наглядно демонстрируется процесс просчета со всеми необходимыми характеристиками: номер считаемого кадра, затраченное время, а также сколько осталось до завершения процесса и т. д. По окончании, нажав кнопку Play Animation, получаем результат. Медленно опускаясь, скатерть покрывает стол, а ее края еще некоторое время двигаются по инерции. Осталось подобрать текстуру для элементов сцены и отрендерить ее в клип (рис. 5).
В нашем случае (извините, в вашем :-)) почти не использовались настройки, а ведь они помогут разнообразить сцену. Находящийся в этом же свитке параметр
Soft Selection Scale
показывает «значимость» вершин при их выделении. Нажатие кнопки Clear Тhis сотрет в анимационном буфере
информацию о положении вершин данного объекта. Clear All очистит анимационный буфер от сведений обо всех объектах, к которым применялся модификатор SimCloth. После нажатия Set This Unit текущий кадр станет первым кадром анимации, то есть если вновь клацнуть на Start Calculation, просчет начнется именно с этого же кадра. Clear unit pos. отменяет предыдущую функцию.
Свитки SimCloth —
Dynamics
, Integrity и Deflection — характеризуют те три группы сил, о которых мы писали выше. Думаем, нет смысла останавливаться на всех имеющихся настройках, отметим только, что в Dynamics можно указать сопротивление воздуха, силу гравитации, массу частиц и внешние деформации (Warps).
Кулинарная хитрость: следует помнить о том, что при моделировании ткани в Deflection должна быть отмечена опция
Self-deflect («Самоотражение»)
.
В свитке
Simulation
мы указываем первый и последний кадр, между которыми будет просчитываться поведение тел, а включенный Redraw Views обеспечивает обновление окна проекции в момент просчета.
Допустим, стол мы накрыли и даже за ним пообедали. Теперь скатерть нужно постирать и повесить на веревку. Плагин SimCloth предусматривает и такую возможность (конечно, стирка тут ни при чем :-)). Итак, нашу Cloth можно прикрепить к любому объекту (скажем, все к той же веревке). Для этого в настройках ткани переходим в режим
Vertex («Вершина»)
, отмечаем нужное количество вершин скатерти, создаем новую группу (кнопка New свитка Vertex Groups). Теперь выделяем эту группу, после чего появляется свиток Group Params. Осталось только поставить галочку на Attached («Прикрепить») и указать объект, к которому будет привязана выделенная группа вершин. Результат будет напоминать изображенное на рисунке 6.
Для моделирования ткани можно использовать не только плоскость, но и любой другой примитив. Кстати, после установки SimCloth среди прочих стандартных объектов появится новый —
ClothMesh
. Это обычная плоскость, но обладающая двумя особенностями — пользователь сам задает направление будущих складок и их сглаживание.
Описанием SimCloth мы сделали первый шаг к рассмотрению плагинов-гигантов. Обычно они настолько многофункциональны, что вполне могли бы сойти за полноценные программы (вот только без 3D MAX работать пока не могут :-)). И если с отсутствием каких-нибудь простеньких плагинчиков можно смириться, то без SimCloth, Reactor или Character Studio работать почти невозможно. Но наше время истекло, поэтому обо всех тонкостях работы с Reactor (он же Havok) в следующий раз.
(Продолжение следует)