Для зарегистрированных пользователей |
|
Фонтан
Владимир Верстак
Прежде чем приступить к созданию анимации фонтана, давайте попробуем разобраться в том, что собой представляет обыкновенный фонтан, и какие силы действуют на струю воды, вытекающую из трубы.
Вода под давлением устремляется из трубы вверх, а затем , дойдя до верхней точки, в которой скорость становится равной нулю, под воздействием силы тяжести (гравитации) начинает падать вниз. Кроме того, вырываясь из трубы, струя воды по мере удаления увеличивается в диаметре, а при наличии ветра еще и изменяет направление движения.
Сейчас мы попробуем, используя стандартные средства программы 3ds max 7.5, имитировать все вышеописанные свойства и силы, действующие на фонтан. Прежде всего для выполнения урока создайте простую сцену. Сцена, которая будет рассматриваться в данном уроке должна содержать четыре объекта, необходимых для создания анимированного фонтана: поверхность земли ( ground ), фонтан ( fountain ), трубу, из которой будет вытекать вода ( tube ) и поверхность воды ( water ) внутри фонтана (рис. 1).
рис. 1
ВНИМАНИЕ
При создании сцены для анимации системы частиц, вам не необходимо знать о том, что все системы частиц используют в расчетах системные единицы измерения. На практике это будет означать то, что два фонтана, один высотой 20 мм., а второй 20 м., будут совершенно по разному рассчитываться, соответственно у них окажется различный результат при анимации.
Первым делом давайте создадим расходящиеся круги на поверхности воды в фонтане, которые появятся после падения струи выходящей из трубы. Для этого выполните следующие действия:
- Выполните из главного меню команду Create>SpaceWarps>Geometric/Deformable>Ripple (Создать>Пространственные деформации>Деформируемая геометрия>Рябь).
- В окне проекции Top (Сверху) щелкните в середине фонтана и перетащите курсор в сторону для создания значка объекта Ripple (Рябь). Построив произвольным образом внешний диаметр значка, переместите курсор вверх для создания небольшой амплитуды ряби.
- Свяжите объект water (поверхность воды в фонтане) с источником объемных деформаций, для чего на главной панели инструментов выберите Bind to Space Warp (Связать с воздействием) , затем в одном из окон проекций щелкните на поверхности воды и перетащите курсор на значок источника деформации. В результате выполненных действий поверхность воды покроется расходящейся от центра рябью волн (рис. 2).
рис. 2
- Для настройки отображения волн перейдите к свитку Parameters (Параметры) построенного объекта Ripple01 и в группе Ripple (Рябь) установите значение для Amplitude 1 (Амплитуда 1) и Amplitude 2 (Амплитуда 2) по 15 мм., а Wave Length (Длинна волны) в 200 мм. Здесь же, при желании, можно установить затухание ряби по мере удаления от центра, выставив небольшое значение параметра Decay (Ослабление). У меня это значение равно 0,001 .
ПРИМЕЧАНИЕ
Если у вас не остался открытым свиток Parameters (Параметры) после построения объекта Ripple01, то обратиться к нему можно выделив сам объект и активизировав на командной панели вкладку Modify (Изменить).
Полученный результат настроек параметров ряби представлен на рисунке 3.
рис. 3
Ну и чтобы совсем закончить с настройками поверхности воды в фонтане, давайте анимируем ее движение. Для этого необходимо выполнить следующие действия:
- Щелкните на кнопке Auto Key (Авто ключ) для того, чтобы активизировать автоматическую запись всех изменений, выполняемых в сцене в ключи анимации. В результате кнопка подсветится красным цветом.
- Увеличьте количество кадров анимации до 400-500 с тем, чтобы получилось полноценное движение струи фонтана по направлению вверх и обратно под действием силы тяжести. Для этого воспользуйтесь окном диалога Time Configuration (Настройка времени), доступного по одноименной кнопке .
- Передвиньте ползунок таймера анимации в 400 кадр.
- В группе Ripple (Рябь) свитка Parameters (Параметры) объекта Ripple01 установите значение Phase (Фаза) на -60 .
- Выключите запись ключей анимации, вторично щелкнув на кнопке Auto Key (Авто ключ).
Проверьте правильность выполненных действий, запустив воспроизведение анимации, для чего щелкните на кнопке Play Animation (Воспроизвести анимацию) , расположенной в правой нижней части интерфейса программы. И если все было выполнено правильно, то вы увидите как во время воспроизведения анимации рябь на воде распространяется от центра, постепенно затухая к краям.
Пришло время заняться построением системы частиц для струи воды, вытекающей из трубы. Постройте источник системы частиц, используя следующие действия:
- Перейдите на вкладку Create (Создать) панели управления, активизируйте кнопку Geometry (Геометрия) , затем выберите из раскрывающегося списка Particle Systems (Системы частиц), и щелкните на кнопке PF Source (Источник потока частиц).
ПРИМЕЧАНИЕ
В качестве источника частиц можно так же использовать системы частиц PArray (Массив частиц), Super Spray (Супербрызги) или Blizzard (Метель). Все зависит от того каким образом вы собираетесь выполнять анимацию и какого эффекта собираетесь достичь.
- В окне проекции Top (Сверху) постройте значок произвольного размера.
- Используя инструмент Select and Rotate (Выделить и повернуть) поверните значок так, чтобы стрелка, указывающая направление излучения частиц была направлена вверх.
- В свитке Emission (Излучение) построенного объекта PF Source 01 выберите из раскрывающегося списка Icon Type (Тип значка) строку Circle (Окружность).
- В этом же свитке в поле Diameter (Диаметр) выставьте значение равное диаметру трубы, из которой будет вытекать струя воды. В нашем случае этот диаметр равен 50 мм. (рис. 4).
рис. 4
- Используя инструмент Select and Move (Выделить и переместить) разместите значок объекта PF Source 01 так, чтобы он оказался в середине фонтана, в верхней части трубы, из которой будет вытекать вода.
Прежде чем переходить к детальной настройке поведения частиц, давайте построим еще несколько объектов.
Во-первых, нам понадобится объект, имитирующий гравитацию. Для его построения выполните из главного меню Create>SpaceWarps>Forces>Gravity (Создать>Пространственные деформации>Силы> Сила тяжести) и в окне проекции Top (Сверху), используя перемещения курсора, постройте значок объекта Gravity (Сила тяжести).
Далее необходимо построить объект, который будет отражать падающие на воду фонтана брызги. Для этих целей воспользуемся объектом UDeflector ( U -отражатель).
ПРИМЕЧАНИЕ
На самом деле, так же как и для излучателя частиц, для отражателя могут быть использованы и другие типы, например, POmniFlect (Всенаправленный отражатель) или простой Deflector (Отражатель).
Для построения отражателя выполните из главного меню команду Create>SpaceWarps>Deflectors> UDeflector (Создать>Пространственные деформации>Отражатели>U -отражатель) и так же в окне проекции Top (Сверху), используя перемещения курсора, постройте значок отражателя.
Осталось построить еще один объект - ветер. Для этого необходимо снова обратиться к главному меню и выполнить команду Create>SpaceWarps>Forces>Wind (Создать>Пространственные деформации>Силы>Ветер), построив значок в окне проекции Left (Слева) таким образом, чтобы он находился на некоторой высоте по отношению к поверхности воды в фонтане (рис. 5).
рис. 5
Вернемся к настройкам системы частиц.
В любом из окон проекций выделите объект PF Source 01 и, перейдя на вкладку Modify (Изменить) командной панели, в свитке Setup (Настройки) щелкните на кнопке Particle View (Окно системы частиц), в результате чего откроется диалоговое окно с одноименным названием. В основном окне выделите оператор с именем Birth 01 (Источник 01), в результате чего в правой части окна диалога появится свиток с настройками источника частиц. Здесь необходимо выставить время окончание излучения частиц на последний кадр анимации (в нашем случае это - 400) и установить переключатель на Rate (Доля) (рис. 6).
рис. 6
Сейчас, если передвинуть ползунок таймера вправо, можно увидеть что, начиная с нулевого кадра, происходит излучение частиц вверх. Пока еще это небольшой поток частиц, медленно поднимающийся вверх, на который не действуют никакие внешние силы.
Продолжим настраивать систему частиц. Давайте увеличим скорость движения частиц. Выполнить это можно за счет настройки оператора Speed 01 (Скорость 01). Выделите строку с именем этого оператора в основном окне диалога и справа в свитке Speed 01 (Скорость 01) установите значение Speed (Скорость) с таким расчетом, чтобы к 50 кадру анимации поток частиц достиг предполагаемой верхней точки фонтана. В моем случае это значение оказалось равным 1800 . В этом же свитке установите значение параметра Variation (Разброс) равным 200 , а Divergence (Отклонение) равным 5 . Это позволит частицам, по мере подъема вверх отклоняться от вертикальной траектории полета и менять скорость движения (рис. 7).
рис. 7
Пришло время добавить к системе частиц силу тяжести и ветер, которые заставит их поднявшись на определенную высоту, падать вниз и немного отклоняться в сторону. Для этого выполните следующие действия:
- В окне диалога Particle View (Окно системы частиц) щелкните правой кнопкой мыши в окне событий Event 01 (Событие 01) и выполните из контекстного меню команду Append>Operator>Force (Добавить>Оператор>Сила) (рис. 8). В результате в нижней части списка операторов добавится новый оператор с именем Force 01 (Сила 01).
рис. 8
- В списке событий выделите добавленный оператор и в открывшемся в правой части свитке Force 01 (Сила 01) щелкните на кнопке By List (Из списка), в результате чего откроется окно диалога Select Force Space Warps (Выбрать силу пространственной деформации).
- В окне диалога Select Force Space Warps (Выбрать силу пространственной деформации) выберите объект с именем Gravity01 и щелкните на кнопке Select (Выделить) для подтверждения выбора.
- Если сейчас передвинуть ползунок анимации вправо, то можно заметить, что частицы, имитирующие фонтан больше не движутся только вверх. Поднявшись на некоторую высоту, они начинают падать вниз. Осталось только определить на какой высоте фонтан должен устремляться вниз.
- Для настройки параметров гравитации выделите в любом из окон проекций объект с именем Gravity01 (либо выберите его из списка объектов сцены) и, перейдя на вкладку Modify (Изменить) командной панели, в свитке Parameters (Параметры) установите такое значение параметра Strength (Сопротивление), чтобы в последнем кадре анимации поток частиц не превышал верхней точки фонтана. У меня это значение равно 0.45.
- Повторите три последних пункта и добавьте в список Force Space Warps (Сила пространственной деформации) силу ветра (объект Wind01), после чего выделите в сцене значок ветра и установите в свитке Parameters (Параметры) такое значение параметра Strength (Сопротивление) чтобы фонтан немного отклонялся в сторону. В моем случае это значение равно 0.02.
ПРИМЕЧАНИЕ
Если вы успели закрыть окно диалога Particle View (Окно системы частиц), вернуться к нему можно выполнив из главного меню команду Graph Editors4Particle View (Графические редакторы4Окно системы частиц).
- Запустите воспроизведение анимации используя кнопку Play Animation (Воспроизвести анимацию) и убедитесь в том, что движение частиц соответствует вашему замыслу. Поведение частиц в 200-м кадре моделируемой анимации представлено на рисунке 9.
рис. 9
Частицы поднимаются вверх и под действием силы тяжести начинают падать, поднявшись на некоторую высоту. Под воздействием силы ветра они отклоняются в сторону, но все еще падая вниз пролетают через поверхность воды не задерживаясь на ней. Давайте устраним это поведение частиц, установив для них на уровне поверхности воды отражатель. Кое-что для этого мы уже сделали, а именно создали объект UDeflector01. Пришло время связать его с источником частиц. Для этого необходимо выполнить ряд действий:
- В нижней части окна диалога Particle View (Окно системы частиц) щелкните на объекте Collision (Столкновения) и переместите его в нижнюю часть списка событий (рис. 10).
рис. 10
- Выделив в списке событий строку Collision 01 перейдите к одноименному свитку в правой части окна диалога и щелкните на кнопке By List (Из списка), в результате чего откроется окно диалога Select Deflectors (Выбрать отражатели).
- В окне диалога Select Deflectors (Выбрать отражатели) выберите из списка объект UDeflector01, коим и является наш отражатель.
Выбранный нами отражатель является объектно-базированным, т.е. для его корректной работы необходимо указать объект сцены, поверхность которого будет являться преградой на пути движения частиц. Казалось бы, что для этой цени лучше всего подойдет объект, имитирующий поверхность воды, но здесь есть небольшая проблема. Заключается она в том, что для имитации ряби на поверхности воды этот объект должен иметь плотную сетку полигонов, а для расчета отражений лучше всего подойдет объект с минимальным количеством полигонов, в противном случае время расчетов может увеличиться в разы. Простым решением данной проблемы будет создание плоскости (Plane) по размерам и расположению соответствующей объекту water, но в отличие от последней, количество граней которой должно быть равно двум (рис. 11).
рис.11
Но вернемся к настройкам отражателя.
- Выберите из списка объектов сцены UDeflector01 и перейдите на вкладку Modify (Изменить) командной панели.
- В свитке Basic Parameters (Базовые параметры) щелкните на кнопке Pick Object (Указать объект) и выберите в одном из окон проекций (или из списка объектов сцены) объект с именем Plane01.
- В группе Particle Bounce (Отскоки частиц) установите значение Bounce (Отскоки) равное 0.2, что позволит создавать на поверхности воды небольшие брызги.
- Выделите объект Plane01 и спрячьте его, используя контекстное меню и команду Hide Selected (Спрятать выделенное). Этот объект выполняет вспомогательную роль, отражая падающие капли, и не должен участвовать в процессе визуализации.
Передвиньте ползунок анимации и посмотрите поведение частиц, после создания отражателя. Сейчас частицы, падая на поверхность воды должны отскакивать и перемещаться по направлению движения ветра а, достигнув края фонтана, падать вниз. В реальной жизни падающие капли не станут перемещаться по поверхности воды, а могут лишь образовывать брызги от столкновения с поверхностью. Для того чтобы избавится от данного эффекта необходимо ограничить «время жизни» частиц. Выполнить это можно добавив к списку событий оператор Delete (Удалить), перетащив его из списка объектов окна диалога Particle View (Окно системы частиц). Активизировав добавленный оператор, установите в свитке Delete 01(Удалить 01) переключатель на By Particle Age (Согласно возрасту частиц), а значение Life Span (Время жизни) на 180 (рис. 12).
рис. 12
На этом настройку поведения частиц можно считать законченной.
ПРИМЕЧАНИЕ
Для создания более правдоподобного движения воды, к объекту Birth 01 (Источник 01) можно было добавить контроллер Noise (Зашумление), который создавал бы пульсирующую струю, а использование объекта Spawn (Потомок) способно изменить поведение частиц таким образом, что их часть будет имитировать всплески на поверхности воды. Кроме того, использование для имитации капель воды и брызг различного типа геометрии позволил бы усилить реалистичность фонтана. Но все эти улучшения можно рекомендовать для самостоятельного изучения, так как они являются лишь средством для повышения реализма и не относятся к базовым настройкам поведения частиц.
Пришло время обратиться к отображению частиц при визуализации. На данном этапе они представлены в окне проекции тиками (Ticks), а в процессе визуализации тетраэдрами (Tetra). В данном случае возможны два способа отображения частиц при визуализации:
- Создание составного объекта BlobMesth (Капля), способного объединять геометрические формы (например, частицы представленные сферами) в капли.
- Использование для отображения прямоугольников, обращенных плоскостью к камере.
Воспользуемся вторым вариантом, как менее ресурсоемким, для чего откройте окно диалога Particle View (Окно системы частиц) и, выделив в нижней части окна оператор Shape Facing (Плоская форма), перетащите его на оператор Shape01 (Форма01) списка событий, в результате чего последний будет заменен новым оператором. Выделите его и в правой части, в свитке Shape Facing 01 (Плоская форма 01), щелкните на кнопке None (Отсутствует), после чего в появившемся окне диалога выберите из списка камеру Camera01. В счетчике Units (Единицы) выставьте значение 50 мм, что будет определять размер прямоугольников, а в счетчике W/H Ratio (Отношение ширины к высоте) выставьте значение 2,5 для того чтобы прямоугольники оказались растянутыми по ходу движения частиц. Кроме того, необходимо указать их ориентацию в пространстве, установив в группе Orientation (Направление) параметр Align to Speed Follow (Выравнять по ходу следования) (рис. 13).
рис.13
СОВЕТ
Для того чтобы увидеть как будут располагаться в пространстве частицы, представленные плоскостями, можно установить для оператора Display 01 режим отображения геометрии (рис. 7.13). В этом случае в окнах проекции тики будут заменены на плоскости.
Последнее, что осталось выполнить перед визуализацией, это применить к геометрии материал. Для этого необходимо к списку событий добавить оператор Material Dynamic (Материал динамики), перетащив его из списка операторов в очередь событий перед оператором Collision (Столкновения). Выделив его, щелкните на кнопке None (Отсутствует) в свитке Material Dynamic 01 (Материал динамики 01), после чего в появившемся окне диалога Material/Map Browser (Просмотр материалов и карт текстур) в группе Browse From: (Просмотреть из:) установите переключатель на Scene (Сцена) и выберите из списка материал с именем Blobs (рис. 14). Естественно, что предварительно этот материал должен быть создан в редакторе материалов. У меня это стандартный материал с установленной в качечестве преломления (Refraction) картой Raytrace (Трассируемый).
рис. 14
После присвоения материала и выполненных настроек список событий для источника частиц PF Source (Источник потока частиц) будет выглядеть так, как представлено на рисунке 15.
рис. 15
Осталось только выполнить визуализацию настроенной сцены и посмотреть получившийся результат. Ниже, на рисунке 16 представлена визуализация сцены в 285 кадре анимации с использованием свойства камеры Motion Blur (Размытие движения).
рис. 16
По этой ссылке можно скачать архив (600 kb) с видеороликом к данному уроку.
|