Первые шаги в Maya. Урок 24. Работа с модулем Fluid Effects
Волнующаяся океанская гладь с плывущей лодкой
Океанские fluid-эффекты
Океанские fluid-эффекты моделируются совершенно иначе, нежели нединамические или динамические эффекты, при этом все команды, отвечающие за этапы их создания, сосредоточены в меню FluidEffects=>Ocean (Fluid Эффекты=>Океан). Для получения океанских Fluid-эффектов сначала формируется поверхность океана (команда FluidEffects=>Ocean=>CreateOcean), которая во всех окнах проекций представлена как сетка. Поэтому для того, чтобы четко представлять, как она выглядит и как ведет себя при анимации, дополнительно создается вспомогательная океанская плоскость предварительного просмотра (FluidEffects=>Ocean=>AddPreviewPlane). Для удобства эту плоскость можно масштабировать. Затем на вкладке oceanShader в свитках OceanAttributes, WaveHeight, WaveTurbulence и WavePeaking редактора атрибутов формируется желаемый вид океанской поверхности, то есть устанавливается величина волн, корректируется форма гребней и т.д. После этого производится настройка цветовых (свиток CommonMaterialAttributes) и зеркальных параметров (свиток SpecularShading).
Кроме того, предусмотрена возможность запуска в плавание по смоделированной океанской поверхности произвольных геометрических объектов и управления данным процессом. Для того чтобы объект стал плавающим, достаточно выделить его вместе с плоскостью океана и применить команду FluidEffects=>Ocean=>MakeBoats, в результате при движении объекта будет учитываться характер колебания волн. У подобного плавающего объекта (через связанный с ним узел locatorShape) в свитке ExtraAttributes можно регулировать уровень погружения объекта в воду (Buoyancy), величину крена (Roll) и килевой качки (Pitch), направлять его движение (Throttle и Rudder), регулировать величину дополнительного крена при повороте объекта (TurnRoll) и т.п. При желании можно даже создать пенный след от плывущего объекта (команда FluidEffects=>Ocean=>CreateWake), что приведет к появлению 3D-контейнера вместе с эмиттером флюидов. Параметрами эмиссии генерируемых им fluid-частиц можно управлять через редактор атрибутов.
Волнующаяся океанская гладь с плывущей лодкой
Воспользуемся fluid-частицами для получения имитации океанской поверхности с плывущей по ней лодкой. Создайте новую сцену и с помощью команды FluidEffects=>Ocean=>CreateOcean смоделируйте океанскую гладь (рис. 80). Выделите полученную поверхность и, применив команду FluidEffects=>Ocean=>AddPreviewPlane, создайте плоскость предварительного просмотра. Масштабируйте данную плоскость, увеличив ее примерно в 15-20 раз (рис. 81). Добавьте в сцену источник света типа Directional, увеличьте его интенсивность (Intensity) до 2, переместите источник вверх по оси Y и поверните указанным на рис. 82 образом. Визуализируйте сцену (рис. 83).
Рис. 80. Исходная сцена
Рис. 81. Масштабирование области предварительного просмотра океанской поверхности
Рис. 82. Добавление источника света
Рис. 83. Первоначальный вид океанской поверхности
Проиграйте анимацию и оцените вид волн. Попробуем сделать волны больше. Выделите океанскую поверхность (или область предварительного просмотра, что в конечном счете часто, хотя и не всегда означает одно и то же), активируйте в редакторе атрибутов вкладку oceanShader1 и раскройте свиток OceanAttributes. Увеличьте значения параметров NumFrequencies (Частота волн) и WaveLengthMax (Максимальная длина волны) до 12 и 40 соответственно (рис. 84) — волнение усилится (рис. 85). А теперь дополнительно сделаем более выраженными гребни волн. Переключитесь в свиток WavePeaking и измените форму кривой в соответствии с рис. 86 — гребни станут отчетливее (рис. 87). Теперь еще немного поработаем с зеркальными бликами. Откройте свиток SpecularShading и введите в полях Specularity (Яркость) и Eccentricity (Размер) значения 0,2 и 0,07 соответственно (рис. 88) — блики станут больше и не столь яркими (рис. 89).
Рис. 84. Изменение параметров свитка OceanAttributes
Рис. 85. Результат корректировки базовых параметров волн
Рис. 86. Редактирование формы кривой в свитке WavePeaking
Рис. 87. Вид сцены после изменения формы гребней
Рис. 88. Изменение параметров свитка SpecularShading
Рис. 89. Результат настройки уровня зеркальных бликов
Добавьте в сцену произвольный объект — например простейшую модель лодки (можно ограничиться обычным примитивом). Переместите его в начало координат и передвиньте лодку по оси Y так, чтобы ее корпус примерно наполовину возвышался над поверхностью океана (рис. 90).
Рис. 90. Появление лодки
Выделите лодку и плоскость океана и примените команду FluidEffects=>Ocean=>MakeBoats — в центре лодки появится локатор, с помощью которого отмечается исходное положение плавающего объекта. Локатор автоматически станет родительским объектом для лодки (рис. 91). Проиграйте анимацию — лодка начнет покачиваться на волнах вверх и вниз (рис. 92). Визуализируйте один из кадров с сильным наклоном лодки, и вы увидите, что она чересчур сильно наклоняется и зачерпывает воду (рис. 93). Чтобы разрешить данную проблему, выделите локатор, в редакторе атрибутов откройте вкладку locatorShape1 и в свитке ExtraAttributes введите в полях Buoyancy (Плавучесть), Roll (Крен) и Pitch (Килевая качка) значения 0,75, 0,1 и 0,2 соответственно (рис. 94) — лодка перестанет зачерпывать воду (рис. 95).
Рис. 91. Иерархическая структура локатор — лодка
Рис. 92. Вид покачивающейся лодки в нескольких кадрах анимации
Рис. 93. Зачерпывание лодкой воды
Рис. 94. Настройка параметров свитка ExtraAttributes
Рис. 95. Вид лодки после корректировки параметров свитка ExtraAttributes
Смоделируем пенный след от лодки. Выделите площадь океана с локатором лодки и воспользуйтесь командой FluidEffects=>Ocean=>CreateWake (Fluid Эффекты=>Океан=>Создать След) — появится 3D-контейнер вместе с эмиттером флюидов. Переместите данный контейнер с эмиттером за лодку — то есть в ту область, где должен оставаться след (рис. 96). Анимируйте лодку, создав два ключа для ее положения — в первом и последнем кадрах анимации. Запустите проигрывание ролика и убедитесь, что лодка исправно перемещается по волнующемуся океану и оставляет за собой соответствующий след (рис. 97) — при желании параметры следа могут быть настроены в редакторе атрибутов обычным образом. Добавьте к сцене небо и подкорректируйте освещение и тональность океанского материала — в результате получите примерно такую сцену, как представлена на рис. 98.
Рис. 96. Перемещение 3D-контейнера с fluid-эмиттером
Рис. 97. Появление пенного следа
Рис. 98. Волнующаяся океанская гладь с плывущей лодкой