Table of Contents

ГЛАВА 17

Применение исказителей пространства

В своих сценах аниматоры часто желают создать серьезные искажения, которые влияют на некоторые или на все объекты. Такими искажениями могут быть проход взрывной волны через пространство или частицы пыли, поднятые в воздух торнадо. В 3D Studio MAX подобные эффекты можно создавать при помощи искажений пространства. Искажения пространства лучше всего представлять как невидимые силовые поля, воздействующие на объекты.

Хотели ли вы когда-либо имитировать пыль, летающую вокруг? А как насчет дыма или дождя? В мире 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 показывает, как в стеке отображаются связи с исказителями. Все связи перечисляются после всех модификаторов и отделены линиями из знаков равенства. Связи подобъектов отображаются со звездочкой перед связываемым именем. Это случается только тогда, когда последний модификатор в стеке посылает подобъектные выборки из конвейера.

Связи с исказителями пространства являются последними в потоке данных объекта.

Универсальные исказители пространства: Displace

Универсальные исказители пространства оказывают влияние на все, что с ними связано. Это могут быть любые типы деформируемых объектов - от частиц до геометрии. Хотя и менее распространенные по сравнению с двумя другими типами исказителей пространства, универсальные исказители не менее полезны.

Единственным универсальным исказителем, распространяемым вместе с 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 для моделирования органической геометрии или создания эффектов, подобных ряби на поверхности пруда.

С исказителем пространства Ripple можно связать любой геометрический объект.Более того, с ним можно связать источники света, камеры и вспомогательные объекты. Фонари, камеры и вспомогательные объекты деформируются как и геометрические объекты, но вместо трансформации перемещаются с пульсирующим эффектом. Привязав камеру Free к исказителю пространства Ripple можно имитировать такие вещи, как камера на корабле в открытом море.

Можно также деформировать часть объекта связав с исказителем пространства подобъектов. Для этого применяется модификатор редактирования или модификатор Volume Select. Ключом к данной технологии является размещение модификаторов Edit или Volume Select на вершине Modifier Sfack после всех других модификаторов выборки.

Phase

Параметр Phase определяет изменение амплитуды от высшей точки ряби до низшей и обратно. Изменение фазы имеет эффект смещения ряби вдоль локальной плоскости XY исказителя пространства Ripple. Исказители Ripple и Wave используют параметр Phase для позиционирования и анимации своих эффектов. Для того, чтобы волна или рябь казались движущимися, выполняют анимацию параметра Phase. Изменение числа от 0 до 1 представляет полный цикл волны. Имея это в виду, не изменяйте сильно Phase, если хотите получить небольшое движение. Для более заметного движения измените параметр несколько сильнее. Используемые значения зависят от размера объектов, с которыми вы работаете. Большие изменения фазы могут существенно повлиять на маленькие объекты и будут иметь куда более скромное воздействие на большие,

СОВЕТ

Для того, чтобы Ripple или Wave казались движущимися в противоположном направлении, выполните анимацию от нуля до отрицательного значения.

Использование Ripple для анимации глицериновой лампы

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

Создание глицеринового потока с помощью Ripple

  1. Откройте imxl7rpl.max.
  2. Щелкните на объекте Lava или выделите его посредством Select By Name.
  3. Щелкните на кнопке Bind линейки инструментов.
  4. Используйте Hit By Name для связывания Sphere с RippleOl и Ripple02.

Рисунок 17.7 показывает диалог Bind By Name, который используется для выделения на сцене действующих исказителей пространства.

Flexibility

Общим параметром между пульсацией и волной является Flexibility (гибкость). Фактически Flexibility применяется только с Ripple и Wave и является специальным параметром связывания. Он не применяется к искажению, а скорее указывает, насколь сильно влияет искажение пространства на каждый объект. Параметр Flexibility расположен в панели Modify.

  1. Выделив объект, перейдите на панель Modify.
  2. Измените значение Flexibility.
  3. Обратите внимание на то, что увеличение значения усиливает влияние пульсации на сферу, тогда как уменьшение значения оказывает противоположное влияние. Рисунок 17.8 показывает два значения параметра Flexibility и то, как значения отображаются в панели Modify.

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

  1. Установите Flexibility в 0. Щелкните на Ripple Binding в стеке модификаторов и выберите первый Ripple Binding.
  2. Установите Flexibility в 0.
  3. Перейдите к кадру 20 и включите кнопку Animate.
  4. Установите Flexibility в 1.
  5. Повторите процесс для второго Ripple Binding.
  6. Выполните предварительный просмотр анимации.

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

ПРИМЕЧАНИЕ

Руководство пользователя 3D Studio MAX указывает, что изменение Flexibility похоже на добавление или удаление вершин, хотя на самом деле это не так. Изменение Flexibility более похоже на изменение значения множителя источника света. При 1 значения амплитуды изменяются от 1 до 1. При 2 эффект увеличивается вдвое и т. д.

Wave

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

ПРИМЕЧАНИЕ

Помните, что все искажения пространства базируются на единицах 3DS МАХ, поэтому их масштаб и детали влияют на объекты разного размера различным образом.

И Ripple, и Wave содержат параметры под названием Amplitudes 1 и Amplitudes 2.Основное назначение этих двух амплитуд заключается в задании разных амплитуд для осей Х и Y исказителя пространства (Amplitude 1 - это X, Amplitude 2 - это Y). Например, если требуется промоделировать складку по центру волны, установите значения одной из амплитуд в 0. По умолчанию при создании исказителя пространства Ripple или Wave обе амплитуды имеют одно и то же значение. Отредактируйте одно или оба значения вручную непосредственно после создания исказителя или позже в панели Modifier.

ПРИМЕЧАНИЕ

Wave и Ripple имеют раздел отображения, предназначенный чисто для управления отображением искажения пространства в видовых окнах. Раздел отображения не влияет ни на искажение, ни на связанные объекты.

Wave можно использовать для создания нескольких типов сцен. В следующем упражнении рассматриваются изменения геометрии как для целей анимации, так и для моделирования. У вас имеется сцена, содержащая яхту, которая плывет на высокой волне. К сожалению, сцена попала в область плохой погоды и волны становятся опасными. Для имитации такого рода погоды следует использовать Wave для двух вещей: моделирования волн на море и для лодки, плывущей по волнам. Надеемся, что вы не поддадитесь сумасшедшим взлетам и падениям!

Моделирование и анимация при помощи Wave

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

  1. Откройте imxl7wav.max
  2. Перейдите на панель Create и щелкните на кнопке Space Warps.
  3. Щелкните на Wave и транспортируйте волну и ее амплитуду в видовое окно Тор. (Сейчас не беспокойтесь о значениях. Вы их измените позже).
  4. Поверните Wave в видовом окне Тор на 90°.
  5. Щелкните на кнопке Bind, выделите коробку и транспортируйте ее к волне.
  6. Выделите волну и перейдите в панель Modify.
  7. Измените параметры волны так, чтобы Amplitude 1 составляла 5, Amplitude 2 - 7 и Wavelength - 120. Phase и Decay должны иметь нулевые значения.

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

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

  1. Прокрутите указатель Frames вперед и назад для просмотра анимации.
  2. Щелкните на кнопке Bind и затем выберите объект сплайна.
  3. Транспортируйте мышь к исказителю пространства Wave.

Сплайн деформируется в волну и вследствие этого движение яхты станет волнообразным (см. рис. 17.9).

ПРИМЕЧАНИЕ

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

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

  1. Перейдите на панель Modify и выберите исказитель Wave.
  2. Измените значение параметра Decay на 0.005.

По мере удаления от пиктограммы исказителя пространства волна будет уменьшаться, поскольку и для Wave, и для Ripple Decay вызывает эффект постепенного затухания по мере удаления от центра исказителя. Размер искаэителя оказывает непосредственное влияние на параметр Decay. Рисунок 17.10 показывает две возможных установки Decay для данной сцены.

Decay основывается на масштабе. По мере того, как привязанные к волне объекты становятся крупнее, для просмотра эффекта необходим и больший параметр Decay.

Bomb

Bomb производит взрыв типа "яичной скорлупы". Он разрывает объект на мелкие кусочки. В результате получается, что взорванное не имеет объема - только оболочку.

Реальная польза Bomb заключена в его параметрах. За счет манипуляций параметрами исказителя пространства Bomb можно создать множество эффектов. Несколько значений, ассоциированных с Bomb, могут быть отрицательными, например сила (strength). Таким образом можно собрать объекты, а не взрывать их. Эффективным применением параметра Gravity можно создать впечатление небольшой силы тяжести, ее отсутствия или отрицательной силы тяжести.

Большинство думает, что бомбы используются для взрыва объектов. Однако 3DS МАХ располагает возможностью посредством Bomb собирать осколки вместе. В следующем упражнении банка начинается с тысяч мелких кусочков.

Использование Bomb для сборки

  1. Откройте imxl.7bom.max.
  2. Перейдите в панель Create и создайте под банкой исказитель пространства Bomb.
  3. Свяжите банку с исказителем.
  4. Переместите Bomb приблизительно на 50 единиц выше банки.
  5. Перемещайте ползунок Frames вперед и назад для просмотра анимации.

Как видите, сила бомбы заставила банку разорваться, начиная с кадра 5 и осколки разлетелись вниз. Главная причина происходящего заключается в strength. Если установить strength в -1, результат будет иным. При отрицательной силе бомба на самом деле стянет в центр объекты, привязанные к ней и затем подобно реактивному двигателю выбросит их наружу.

  1. Выделите Bomb и перейдите к панели Modify.
  2. Измените значение Strength на -1.

Обратите внимание на то, что банка собирается достаточно упорядочение. Для взрыва существует очевидный шаблон. Переменная Chaos уменьшает упорядоченность силы бомбы. В данном примере установите Chaos в 1. Это рандомизирует шаблон достаточно для того, чтобы банка "не собралась" (подразумевается каламбур, игра слов).

  1. Установите значение Chaos в 1.
  2. Продвиньте указатель кадров так, чтобы увидеть результат анимации.
  3. Теперь измените гравитацию для того, чтобы банка собралась по-другому. Гравитация будет оказывать влияние на движение взорванной геометрии после кадра детонации (обсуждается следующим). Сейчас установите значение гравитации в 0.
  4. Кадр детонации указывает на момент, когда Bomb влияет на детонацию с силой установленной переменной Strength. По умолчанию кадр детонации равен 5. Это означает, что банка соберется на кадре 5, т.е. противоположное тому, что требуется. Необходимо, чтобы объект взорвался на кадре 0 и реформировался на кадре 100. Для того, чтобы подобно произошло, кадр детонации должен быть перед кадром 0, поэтому установите параметр детонации в -30.

Последний шаг заключается в анимации параметра Strength. Для того, чтобы заставить объект взорваться или собраться и реформироваться в исходный объект, выполните анимацию Strength, начиная с того усилия, которое вы указали на кадре 0, до нулевого усилия на последнем кадре.

  1. Перейдите к кадру 100 и щелкните на кнопке Animate.
  2. Установите значение усилия в 0.
  3. Выполните предварительный просмотр анимации.
  4. Обратите внимание на то, что банка собирается на кадре 100. Можно еще поработать с анимацией, перейдя на Track View и отредактировав кривые функций для параметра Strength. Рисунок 17.11 показывает результат использования Bomb и предыдущие шаги.

Path Deform

Path Deform представляет собой последнее дополнение ко множеству исказителей пространства 3DS МАХ. Path Deform можно применять для поворота и изгиба объектов, основываясь на двумерном сплайне. Хорошим примером того, как все это работает, является создание текста и связывание его с исказителем Path Deform.

Path Deform действует несколько иначе, чем другие исказители пространства. Фактически после создания Path Deform вы с ним больше не работаете. Исказитель пространства служит только в качестве формы деформации. Все изменяемые параметры доступны через опции связывания в Modifier Stasc.

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

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

Использование Path Deform для модификации текста

  1. Откройте imxl7pat.max.
  2. Перейдите в панель Create и щелкните на кнопке Space Warp.
  3. Нажмите Path Deform.
  4. Нажмите Pick Path и выделите спиралевидный сплайновый объект.

Только что был создан исказитель Path Deform. В настоящий момент можно связать объект с исказителем пространства и объект будет деформироваться вдоль искажения.

  1. Нажмите Bind to Space Warp на линейке инструментов 3DS MAX.
  2. Нажмите на тексте 3DS МАХ, транспортируйте его к сплайновому объекту и отпустите.

Как видно из рисунка 17.12, объект сам переориентировался. Объект использует форму исказителя пространства для деформации, но деформация происходит в локальном пространстве объекта.

По умолчанию объект деформируется вдоль оси Z. Ось Х проходит по длине текста, поэтому следует изменить оси деформации. Все элементы управления объектом, использующим искажение, сосредоточены в панели Modify.

  1. Перейдите в панель Modify.
  2. Измените ось Path Deform на X.
  3. Отметьте флажок Move Object to Path (переместить объект на путь)
  4. Установите значение поворота в 180.

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

  1. Нажмите кнопку Animate или клавишу N на клавиатуре.
  2. Переместите указатель кадров на 150 и измените значение Percent на 97.
  3. Измените значение Rotation на 225.
  4. Выполните предварительный просмотр анимации для просмотра результатов и вернитесь назад.

Рисунок 17.13 показывает четыре кадра окончательной анимации.

Другие значения включают Stretch и Twist. Их можно применять для изменения формы деформируемого объекта вдоль пути. Используйте Stretch в случаях, когда требуется придать объекту вид сжимающегося или растущего вдоль пути. Значение Twist перекручивает объект по длине пути на количество градусов, задаваемое значением. Если путь является прямой линией и значение Twist равно 360, объект повернется вдоль пути на 360°, пройдя от одного конца пути до другого.

ПРЕДУПРЕЖДЕНИЕ

Опция Move object to path поддается анимации. Обращайте внимание на предупреждение, включая и отключая данную опцию при включенной кнопке анимации.

Исказители пространства частиц

Исказители пространства частиц предоставляют возможность применения к системам частиц динамику реальной жизни. Используя искажение Gravity, можно поместить брызги воды на штормовой ветер или заставить снег подниматься вверх. Более подробная информация о системах частиц представлена в главе 25, "Построение и анимация частиц".