Хотели ли вы когда-либо имитировать пыль, летающую вокруг? А как насчет дыма или дождя? В мире 3D подобные условия порождаются системами частиц. Система частиц представляет собой коллекцию частиц, которые при своей генерации производят множество анимационных эффектов. В 3DS МАХ системы частиц являются объектами, а генерируемые частицы - подобъектами. Можете выполнить анимацию системы частиц как целого, а можно настроить свойства системы частиц так, чтобы управлять поведением каждой частицы.
В данной главе вы узнаете, как работают искажения пространства и как их применять. Конкретно в главе разъясняется следующее:
Исказители пространства создаются нажатием кнопки категории Space Warp на панели Create. Например, для создания исказителя пространства Ripple следует щелкнуть в свитке Object Type и транспортировать указатель мыши в любое видовое окно для установки радиуса Ripple. После освобождения кнопки мыши перемещайтесь вверх или вниз и щелкайте для установки амплитуды Ripple. Большинство исказителей пространства следует технологии "транспортируй и щелкни".
В 3D Studio Max не все исказители пространства показывают влияние на все типы объектов. Один лишь Displace является универсальным исказителем пространства, который влияет на все типы объектов. Ripple, Wave, Bomb и Path Deform влияют только на объекты, тогда как Gravity, Wind и Deflector работают только с частицами. (Системы частиц Spray и Snow освещаются в главе 25, "Построение и анимация частиц"). Но прежде чем рассказывать о конкретных искажениях, в следующем разделе вы познакомитесь с информацией о том, чем искажения пространства отличаются от модификаторов и как искажения работают в стеке.
Многие из существующих искажений пространств доступны и в качестве модификаторов. Так почему одно имеет преимущество перед другим? Выбор зависит от эффекта, который вы хотите достичь. Модифика-торы переносятся объектами и применяют деформацию к локальному пространству других объектов. Искажения пространства существуют в виде независимых объектов и применяют деформации к другим объектам, основываясь на положении мирового пространства объекта. Например, применение модификатора Ripple к выделенной сфере имеет совершенно другой эффект, нежели связывание сферы с искажением пространства Ripple (см. рис. 17.1).
Вслучае применения пульсации (ripple) в качестве модификатора пульсация применяется к объекту как гизмо. Эффект пульсации зависит от относительной позиции гизмо по отношению к объекту. Перемещение объекта не влияет на то, как пульсация модифицировала объект. Однако пульсация как искажение пространства обладает совершенно иным эффектом. Как видно на рисунке 17.1 пульсация проектируется из центра в направлении всех объектов, связанных с ней, - в данном случае к сферам. Положение пульсации в пространстве, а равно и ее ориентация, непосредственно влияют на связанные объекты. При трансформировании исказителя пространства Ripple его влияние на связанные объекты изменяется. Если вы перемещаете один или несколько связанных объектов, их положение и ориентация относительно искажения пространства оказывает влияние на внешний вид объектов.
Таково поведение всех исказителей пространства. Единственное отличие одного искажения от другого заключается в конструкции самого искажения. И Ripple, и Displace влияют на объекты, исходя из их трехмерного положения, однако это совершенно разное влияние.
Объекты связываются с исказителем пространства через кнопку Bind to Space Warp, которая расположена на линейке инструментов (см. рис. 17.2). К одному искажению можно привязать любое количество объектов. Для привязки объектов к исказителю пространства нажмите кнопку Bind to Space Warp, выделите привязываемый объект и транспортируйте мышь от объекта к исказителю пространства.
Исказители пространства в стеке истории объекта оцениваются в последнюю очередь. Об этом легко забыть, но 3DS МАХ напоминает об этом факте. Рисунок 17.3 показывает, как в стеке отображаются связи с исказителями. Все связи перечисляются после всех модификаторов и отделены линиями из знаков равенства. Связи подобъектов отображаются со звездочкой перед связываемым именем. Это случается только тогда, когда последний модификатор в стеке посылает подобъектные выборки из конвейера.
Связи с исказителями пространства являются последними в потоке данных объекта.
Универсальные исказители пространства оказывают влияние на все, что с ними связано. Это могут быть любые типы деформируемых объектов - от частиц до геометрии. Хотя и менее распространенные по сравнению с двумя другими типами исказителей пространства, универсальные исказители не менее полезны.
Единственным универсальным исказителем, распространяемым вместе с 3DS МАХ, является Displace. Displace использует информацию образа в оттенках серого для физического смещения в трехмерном пространстве геометрии и частиц. Интенсивность оттенков серого диктует, насколь сильно смещается объект или частица. Так же как с картой выпуклостей, чем светлее образ, тем сильнее смещение. Displace можно использовать для создания множества эффектов - от моделирования кухонного резака до анимации геометрических искривлений. Рисунок 17.4 демонстрирует, что может сделать простой образ белого кольца с несложной геометрической фигурой. Рисунок 17.5 показывает еще одно использование исказителя пространства Displace для двух объектов.
Применение Displace к системе частиц порождает другой эффект. Вместо смещения геометрии искази-тель пространства Displace искривляет путь системы частиц. Несколько исказителей пространства Displace несколько раз будет изменять направления системы частиц. В отличие от Deflector, который может делать то же самое, Displace на основе оттенков серого образа (см. рис. 17.6) позволяет некоторым частицам проходить сквозь себя или даже неравномерно отклоняться. Как видите, исказитель Displace действует на частицы подобно силе. Использование исказителя пространства Displace реально может заставить частицы ускоряться. Это зависит от силы искажения.
Объектные искажения пространства деформируют геометрические объекты, но не влияют на частицы. Например, можно применять исказитель Ripple для деформации сферы, однако он не будет влиять на брызги или снежинки. Объектные искажения пространства полезны для выполнения анимации многих эффектов - от волновой деформации до взрывов. Для создания сложных эффектов один объект можно объединить с несколькими исказителями. Например, можно связать сферу с исказителями Bomb и Ripple. Результирующая анимация будет похожа на взорвавшуюся сферу, в которой частицы разлетаются по пульсирующему шаблону.
В данном разделе исследуются три исказителя пространства, предназначенные для деформации геометрии: Ripple, Wave, Bomb и Path Deform.
Исказитель пространства Ripple посылает концентрические волны из центра в стороны до бесконечности. Используйте Ripple для моделирования органической геометрии или создания эффектов, подобных ряби на поверхности пруда.
С исказителем пространства Ripple можно связать любой геометрический объект.Более того, с ним можно связать источники света, камеры и вспомогательные объекты. Фонари, камеры и вспомогательные объекты деформируются как и геометрические объекты, но вместо трансформации перемещаются с пульсирующим эффектом. Привязав камеру Free к исказителю пространства Ripple можно имитировать такие вещи, как камера на корабле в открытом море.
Можно также деформировать часть объекта связав с исказителем пространства подобъектов. Для этого применяется модификатор редактирования или модификатор Volume Select. Ключом к данной технологии является размещение модификаторов Edit или Volume Select на вершине Modifier Sfack после всех других модификаторов выборки.
Параметр Phase определяет изменение амплитуды от высшей точки ряби до низшей и обратно. Изменение фазы имеет эффект смещения ряби вдоль локальной плоскости XY исказителя пространства Ripple. Исказители Ripple и Wave используют параметр Phase для позиционирования и анимации своих эффектов. Для того, чтобы волна или рябь казались движущимися, выполняют анимацию параметра Phase. Изменение числа от 0 до 1 представляет полный цикл волны. Имея это в виду, не изменяйте сильно Phase, если хотите получить небольшое движение. Для более заметного движения измените параметр несколько сильнее. Используемые значения зависят от размера объектов, с которыми вы работаете. Большие изменения фазы могут существенно повлиять на маленькие объекты и будут иметь куда более скромное воздействие на большие,
СОВЕТ
В данном упражнении вы увидите, как использовать сферу для создания глицерина для глицериновой лампы. Путем комбинации нескольких исказителей пространства с различной ориентацией легко можно создать глицерин, вползающий обратно в лампу. Готовы вернуться в шестидесятые?
Рисунок 17.7 показывает диалог Bind By Name, который используется для выделения на сцене действующих исказителей пространства.
Общим параметром между пульсацией и волной является Flexibility (гибкость). Фактически Flexibility применяется только с Ripple и Wave и является специальным параметром связывания. Он не применяется к искажению, а скорее указывает, насколь сильно влияет искажение пространства на каждый объект. Параметр Flexibility расположен в панели Modify.
Flexibility полностью поддается анимации. Это означает, что значения искажения пространства можно оставлять константными и выполнять анимацию влияния искажения на единичный объект за счет изменения значения Flexibility. Таким образом другие объекты, привязанные к тому же самому исказителю пространства, могут изменяться различным образом. Если же вы хотите изменить влияние глобально, настройте значения искажения.
Посредством Flexibility можно указать, когда и как сильно искажение пространства влияет на объект. В данном примере поток глицерина начинается со сдавленной сферы и перемещаясь по лампе превращается в волнистую поверхность.
ПРИМЕЧАНИЕ
Wave очень похожа на Ripple в том смысле, что изменяет геометрию по волнообразному шаблону. Но в отличие от концентрических изменений как у Ripple, создаваемые Wave изменения линейны. Волны следуют только в одном направлении.
ПРИМЕЧАНИЕ
И Ripple, и Wave содержат параметры под названием Amplitudes 1 и Amplitudes 2.Основное назначение этих двух амплитуд заключается в задании разных амплитуд для осей Х и Y исказителя пространства (Amplitude 1 - это X, Amplitude 2 - это Y). Например, если требуется промоделировать складку по центру волны, установите значения одной из амплитуд в 0. По умолчанию при создании исказителя пространства Ripple или Wave обе амплитуды имеют одно и то же значение. Отредактируйте одно или оба значения вручную непосредственно после создания исказителя или позже в панели Modifier.
ПРИМЕЧАНИЕ
Wave можно использовать для создания нескольких типов сцен. В следующем упражнении рассматриваются изменения геометрии как для целей анимации, так и для моделирования. У вас имеется сцена, содержащая яхту, которая плывет на высокой волне. К сожалению, сцена попала в область плохой погоды и волны становятся опасными. Для имитации такого рода погоды следует использовать Wave для двух вещей: моделирования волн на море и для лодки, плывущей по волнам. Надеемся, что вы не поддадитесь сумасшедшим взлетам и падениям!
После загрузки сцены вначале видна лодка, коробка и линия. Начните создавать волны, которые связывают исказитель пространства Wave с коробкой.
Обратите внимание на то, что перемещение волны вверх и вниз в видовом окне не оказывает влияния на коробку, а движение со стороны в сторону - оказывает. Движение со стороны в сторону является результатом линейного искривления, которое обеспечивает волна. И Ripple, и Wave не влияют на связанные с ними объекты, если объекты двигать вдоль осей амплитуды.
Ripple и Wave работают со всеми типами геометрии, включая двумерные сплайны. В данной части упражнения вы свяжете сплайн с волной и заставите его деформироваться в точности как объект коробки. Яхта использует сплайн в качестве контроллера пути с включенной опцией Follow.
Сплайн деформируется в волну и вследствие этого движение яхты станет волнообразным (см. рис. 17.9).
ПРИМЕЧАНИЕ
Предположим, что яхта должна постепенно войти в спокойное море. Вот здесь и будет полезен параметр Decay. Вот как он работает для волны.
По мере удаления от пиктограммы исказителя пространства волна будет уменьшаться, поскольку и для Wave, и для Ripple Decay вызывает эффект постепенного затухания по мере удаления от центра исказителя. Размер искаэителя оказывает непосредственное влияние на параметр Decay. Рисунок 17.10 показывает две возможных установки Decay для данной сцены.
Decay основывается на масштабе. По мере того, как привязанные к волне объекты становятся крупнее, для просмотра эффекта необходим и больший параметр Decay.
Bomb производит взрыв типа "яичной скорлупы". Он разрывает объект на мелкие кусочки. В результате получается, что взорванное не имеет объема - только оболочку.
Реальная польза Bomb заключена в его параметрах. За счет манипуляций параметрами исказителя пространства Bomb можно создать множество эффектов. Несколько значений, ассоциированных с Bomb, могут быть отрицательными, например сила (strength). Таким образом можно собрать объекты, а не взрывать их. Эффективным применением параметра Gravity можно создать впечатление небольшой силы тяжести, ее отсутствия или отрицательной силы тяжести.
Большинство думает, что бомбы используются для взрыва объектов. Однако 3DS МАХ располагает возможностью посредством Bomb собирать осколки вместе. В следующем упражнении банка начинается с тысяч мелких кусочков.
Как видите, сила бомбы заставила банку разорваться, начиная с кадра 5 и осколки разлетелись вниз. Главная причина происходящего заключается в strength. Если установить strength в -1, результат будет иным. При отрицательной силе бомба на самом деле стянет в центр объекты, привязанные к ней и затем подобно реактивному двигателю выбросит их наружу.
Обратите внимание на то, что банка собирается достаточно упорядочение. Для взрыва существует очевидный шаблон. Переменная Chaos уменьшает упорядоченность силы бомбы. В данном примере установите Chaos в 1. Это рандомизирует шаблон достаточно для того, чтобы банка "не собралась" (подразумевается каламбур, игра слов).
Последний шаг заключается в анимации параметра Strength. Для того, чтобы заставить объект взорваться или собраться и реформироваться в исходный объект, выполните анимацию Strength, начиная с того усилия, которое вы указали на кадре 0, до нулевого усилия на последнем кадре.
Path Deform представляет собой последнее дополнение ко множеству исказителей пространства 3DS МАХ. Path Deform можно применять для поворота и изгиба объектов, основываясь на двумерном сплайне. Хорошим примером того, как все это работает, является создание текста и связывание его с исказителем Path Deform.
Path Deform действует несколько иначе, чем другие исказители пространства. Фактически после создания Path Deform вы с ним больше не работаете. Исказитель пространства служит только в качестве формы деформации. Все изменяемые параметры доступны через опции связывания в Modifier Stasc.
Понять, как работает деформация пути, несколько сложно. Прежде всего объект деформируется в своем локальном пространстве вокруг своей точки вращения. Он не "зафиксируется" немедленно к пути, как может быть это ожидается. Более того, деформация пути имеет место в локальном пространстве, где искажение пространства используется в виде ссылки.
Лучше всего понять деформацию пути можно, поработав с ней. Распространенный пример - деформация текста вдоль пути.
Только что был создан исказитель Path Deform. В настоящий момент можно связать объект с исказителем пространства и объект будет деформироваться вдоль искажения.
Как видно из рисунка 17.12, объект сам переориентировался. Объект использует форму исказителя пространства для деформации, но деформация происходит в локальном пространстве объекта.
По умолчанию объект деформируется вдоль оси Z. Ось Х проходит по длине текста, поэтому следует изменить оси деформации. Все элементы управления объектом, использующим искажение, сосредоточены в панели Modify.
В этот момент объект размещен на пути и деформируется по корректной оси. Для выполнения анимации объекта, перемещающегося вдоль пути, или для какой-либо другой опции, следует изменить значения, используя кнопку Animate.
Рисунок 17.13 показывает четыре кадра окончательной анимации.
Другие значения включают Stretch и Twist. Их можно применять для изменения формы деформируемого объекта вдоль пути. Используйте Stretch в случаях, когда требуется придать объекту вид сжимающегося или растущего вдоль пути. Значение Twist перекручивает объект по длине пути на количество градусов, задаваемое значением. Если путь является прямой линией и значение Twist равно 360, объект повернется вдоль пути на 360°, пройдя от одного конца пути до другого.
ПРЕДУПРЕЖДЕНИЕ
Исказители пространства частиц предоставляют возможность применения к системам частиц динамику реальной жизни. Используя искажение Gravity, можно поместить брызги воды на штормовой ветер или заставить снег подниматься вверх. Более подробная информация о системах частиц представлена в главе 25, "Построение и анимация частиц".