Бесплатные 3D Модели
Эффекты частиц и динамика в 3ds Max
Автор: Matt Chandler
Использованные приложения: 3ds Max, RealFlow
Благодаря этой бесплатной главе из книги «FX Particles and Dynamics» вы узнаете как создавать эффекты частиц и динамику при помощи 3ds Max.
3ds max очень мощный инструмент для работы с 3d, анимацией и визуальными эффектами, в котором можно создавать самый разнообразный контент. С точки зрения экономии, а также практичности, лучше ограничиться применением нескольких приложений для работы над проектом, например, 3ds Max для работы с 3d и Photoshop для текстурирования. Однако, иногда контент, который мы желаем создать ограничен приложением, которое мы выбрали, или вообще в нём отсутствует определённая возможность. В нашем случае мы попробуем постичь основы среднестатистического проекта, который включает симуляцию жидких тел.
Как два художника могут моделировать одну и ту же голову разными способами, так и симуляция эффектов текучих сред (вода, расплавленная лава, краска и прочее), может быть создана при помощи различных методов, и мы попробуем объяснить какой метод и почему следует использовать. Стандартным примером может послужить создание поверхности океана. Получится ли создать её при помощи определённых деформаторов или анимаций? Или же нам стоит попробовать воспользоваться приложениями для симуляции жидкостей, потратив большое количество системных ресурсов, когда конечный результат будет выглядеть практически тем же самым? Всё это зависит от множества факторов и иногда вы можете совместить сразу несколько различных методов, для достижения желаемого результата.
В данном уроке мы сделаем это, взяв кэшированную геометрию из сцены в 3ds Max и импортируем её в RealFlow, чтобы создать правдоподобную симуляцию жидкостей. RealFlow стал стандартом в индустрии приложений для компьютерной симуляции частиц/жидкостей и позволяет нам создавать, что угодно, от капель дождя до накатывающих океанских волн.
Давайте начнём. Вам нужно открыть файл сцены 3ds Max (Fluid_scene.max), который будет доступен после приобретения книги. Он работает с 3ds Max 2010 и выше. Сцена содержит меш/фигуру низкого разрешения и немного геометрии камней. Вам нужно будет перезагрузить/перенаправить файл точек кэша, чтобы увидеть анимацию. Вы найдёте файл в папке Assets.
Когда фигура возникает из земли, камни соединяются вместе с ним, взаимодействуя друг с другом, вращаясь и падая на землю, так как наш персонаж обретает контроль над своим окружением.
Я создал камни с динамикой Rigidbody, а фигура с изменённым и обращённым файлом захвата движений (Рис.01).
(Рис.01)
Совет: очень важно работать с правильным масштабом, когда данные изменяются в других приложениях. Чтобы быть уверенными, что наша сцена импортируется и экспортируется правильно в RealFlow, переключите единицы измерения в 3ds Max на метры.
Теперь создайте куб размерами 1,1,1 метров и экспортируйте в формате OBJ или RF SD. Каждая ячейка во вьюпорте RealFlow равна 1 метру, поэтому импортируя куб вы должны быть уверены, что геометрия импортируется правильно, или же сделать определённые настройки в сцене 3ds Max, чтобы помочь RealFlow импортировать его в желаемом масштабе.
Экспортируйте сцену в SD формате, поскольку сцена содержит анимацию и деформации. В меню настроек экспорта SD формата (вы можете найти его в панели 3ds Max) убедитесь, что выделены объекты, которые вы хотите экспортировать, у которых включена опция Deformation, диапазон кадров установлен правильно, а после этого вы можете указать путь для эскпорта. Нажмите на Export и вы увидите полоску прогресса, которая покажет, что файл экспортирован удачно (Рис.02).
(Рис.02)
Теперь в RealFlow импортируйте SD файл, который вы только что создали. Лучше всего хранить файл SD в папке Objects, который RealFlow создаст, когда вы начнёте новый проект. Прокрутите временную линейку, чтобы убедиться, что файл отображается правильно.
В RealFlow существует большое количество эмиттеров и мы будем использовать Object Emitter, чтобы наш персонаж излучал жидкость с поверхности своего тела. Создайте object emitter в меню Particle Emitters.
Слева в RealFlow размещаются вкладки Nodes и Links, в которых перечислено всё что в данный момент есть в вашей сцене и что на что воздействует.
Выделите ноду и посмотрите на его параметры на правой стороне RealFlow. Какую бы ноду или объект вы не выбрали в списке нодов, параметры и управление будут отображены на правой стороне (Рис. 03).
(Fig.03)
Оставьте все настройки жидкости пока по умолчанию. Пролистайте вниз, пока не увидите вкладку Object. Мы должны добавить нашу фигуру, чтобы частицы знали где и что они должны излучать. Кликните на список объектов и добавьте фигуру. Если вы нажмёте кнопку Simulate сейчас, то увидите частицы, вылетающие в случайных направлениях и излучающиеся из меша фигуры. Если этого не происходит, то проверьте значения во вкладке Speed, иначе частицы не будут видны. Теперь давайте добавим гравитацию в нашу сцену. Перейдите в меню Daemons и выберите Gravity (Рис.04).
(Рис.04)
Существует большое разнообразие видов Daemon в RealFlow, комбинируя их можно достичь много интересных и ярких эффектов. Обратите внимание, что сейчас Gravity01 числится под вкладкой Nodes во вкладке Global Links. Снова нажмите Simulate и вы увидите, что на частицы теперь воздействует гравитация и они падают вниз (Рис.05).
(Рис.05)
Теперь нам надо настроить границы нашей симуляции, создав дополнительную геометрию, чтобы предотвратить падение частиц и их вылет в бесконечность. Вы можете подготовить геометрию в 3ds Max в вашей сцене и импортировать, или мы можем создать примитивную форму прямо в RealFlow.
Создайте цилиндр из меню Geometry в RealFlow. Используйте инструменты Transform и Scale, чтобы переместить или масштабировать его. Заметьте, что цилиндр появился во вкладках Nodes и Global Links.
Независимо от того, будут отображаться объекты во вкладке Global Links или нет — глобально они все связаны — это означает, что они все будут взаимодействовать и участвовать в симуляции. Цилиндр будет действовать как земля, а контейнер будет действовать на частицы. Также заметьте опции, доступные в Parameters, когда цилиндр выделен. Вы можете настроить чувствительность и поведение, например, трение и то насколько цилиндр будет прилипать к поверхности (Рис.06).
(Рис.06)
Давайте добавим новый daemon под названием K Volume в нашу сцену. Это простой контейнер, который позже поможет нам управлять нашими частицами. Любые частицы, которые покинут границы процесса, будут уничтожены. Используйте инструменты Translate и Scale, чтобы переместить K Volume на нужное место (Рис.07). Снова нажмите Simulate.
(Рис.07)
Жидкость излучается из фигуры и взаимодействует с землёй и другой геометрией в сцене. Теперь базовая сцена настроена и мы можем начать изменять параметры и улучшать симуляцию жидкости. Чтобы ускорить тестирование симуляции, выделите ноду эмиттера объекта и, в разделе Resolution, понизьте число до 1 или меньше. Resolution очень важный параметр, который определяет множество частиц, которые излучаются в сцене. В общем, чем больше частиц у вас будет, тем реалистичнее и детализированнее будет ваша симуляция.
Добавим ещё один daemon под названием Surface Tension. Это свойство поможет частицам оставаться вместе и не даст им слишком сильно разделяться. Запустите симуляцию снова, всего на несколько кадров, чтобы посмотреть результат. Также попробуйте настроить скорость излучения (Emission speed) в ноде object emitter, чтобы получить иной результат. Введите значение в Randomness, чтобы способствовать более случайному излучению из фигуры. Установите Randomness на единицу, а Jitter на 0.6, а затем нажмите Simulate (Рис.07).
Теперь давайте анимируем эмиттер, так как мы хотим, чтобы фигура препятствовала излучению жидкости. Кликнув правой кнопкой по желаемому параметру, при выделенном эмиттере, вы откроете меню, где можете добавить ключи анимации. Чтобы установить скорость на 0 в нулевом кадре — кликните на вкладке Speed и добавьте ключ. На 30 кадре установите скорость на 2, кликните правой кнопкой и добавьте ключ. Перейдите на кадр 180 и добавьте ещё один ключ. Перейдите на кадр 190 и установите скорость на 0 и добавьте последний ключ.
Нажмите Simulate и посмотрите, как жидкость испускается и затем иссекает. Вы можете захотеть изменить ключевые кадры или значения. Кликните правой кнопкой на вкладке Speed и выберите Curves (кривые). Так вы откроете дополнительный свиток кривых анимации, где мы сможем увидеть ключи анимации и их интерполяцию. Настройте кривые по вашему желанию.
Снова выберите объект эмиттера и повысьте Resolution до 1. Также измените значения Internal и External Pressure, установите Internal на 1 или 0,98, а External Pressure на 3.
Вы также можете захотеть другие значения для Viscosity в зависимости от того, какой эффект вы получите потом. Стандартные значения 3 или 4 будут вести себя как вода, а значение около 8 будет выглядеть как лава.
Некоторые частицы при симуляции могут иногда отстреливать при высоких значениях скорости. Для того, чтобы не засорять нашу сцену мы добавим процесс K Speed. Он имеет параметры чувствительности, которые могут определять насколько быстрыми могут быть перемещения и уничтожать их, чтобы они не двигались слишком быстро. Нам нужно определить, насколько быстро могут перемещаться частицы, чтобы установить приемлемое значение в K Speed. Выделите объект эмиттера и в разделе Node parameters найдите меню Display.
По умолчанию вы увидите скорость и если вы подвигаете временную шкалу, то увидите минимальные и максимальные значения скоростей частиц (Рис.08).
(Рис.08)
Если среднее значение скорости ваших частиц 15, к примеру, введите 20 или больше в K Speed в поле Max Speed и нажмите Simulate. Это заметно снизит вылет отдельных частиц, которые покидают основную часть жидкости. Скорость частиц будет проверяться и, если она превосходит максимально допустимое значение, то они будут удаляться.
Также можно добавить ещё Drag и Noise. Drag полезен для добавления уровня сопротивления и гашения скорости симуляции, как если бы на частицы воздействовало сопротивление воздуха. Noise может быть полезен при создании случайности формы и потоков жидкости во времени. Опять же, этот даймон может быть анимирован для воздействия частиц в определённый промежуток времени при симуляции.
Теперь увеличьте разрешение эмиттера объекта до 8. Это означает, что более высокое значение создаст больше частиц в сцене, а значит мы получим большую детализацию и более чистую поверхность поверхности. Теперь время симуляции увеличится. Нажмите Simulate и разрешите симуляцию для завершения. Время, за которое пройдёт симуляцию зависит от мощности вашего оборудования. Чем больше в вашем распоряжении ресурсов ОЗУ и процессора, тем быстрее пройдёт симуляция RealFlow. Однако, можно сделать определённую оптимизацию, чтобы ускорить этот процесс.
Кликните стрелочку напротив кнопки Simulate и выберите из выпадающего меню Options. Это меню имеет значения min и max Substeps, что определяет, насколько точно будет выполняться симуляция. По умолчанию максимальное значение слишком большое для большинства симуляций. Понизьте maximum Substeps до 166.
Примечание: в этом меню вы также можете понизить частоту кадров симуляции жидкости. Слишком высокое значение FPS может замедлить частицы и сделать воспроизведение тяжелее при fps большем 24 (Рис.09).
(Рис.09)
Просмотрите готовую симуляцию. Теперь давайте сделаем меш в RealFlow, который мы перекинем в 3ds max. Кликните на meshing и выберите Particle Mesh. Таким образом вы добавите ноду меша во вкладку Nodes. RealFlow автоматически присвоит эмитер объекта жидкости в сцене к мешу частиц. Кликните правой кнопкой на ноду меша частиц (particle mesh) и выберите Build.
Через несколько секунд меш появится вокруг частиц. Мешинг частиц в RealFlow можно сравнить отдельным искуством и придётся поэкспериментировать со значениями и параметрами нод, чтобы получить хороший результат. Конечно же вы можете для мешинга использовать 3ds Max, с такими плагинами как Frost и Glu3D.
После того как вы будете удовлетворены вашим мешем и получите последовательность мешей, каждый кадр меша, а также частиц будут сохранены на диск и готовы к загрузке в 3ds max. Нажмите F12, чтобы открыть меню экспорта RealFlow. Перед вами появится список всех данных, которые могут быть экспортированы из сцены. Если у вас имеются дополнительные эмиттеры и данные, убедитесь, что вы отметили соответствующие галочки в свитках, чтобы они были сохранены на диск.
Вернёмся в сцену 3ds max и импортируем последовательность мешей жидкости. В меню импорта RealFlow выберите Create BIN Mesh object и в открывшемся диалоговом окне вы сможете выбрать меш в формате BIN. Выберите file from the sequence и нажмите OK.
Теперь вы должны увидеть ваш меш, сгенерированный в RealFlow, а также он должен быть соответствующего масштаба относительно других объектов в сцене. Теперь этому мешу можно присвоить материалы и модификаторы, как к обычному объекту 3ds max.
Я надеюсь, что данный урок и введение в получение данных сцены в RealFlow, создание и экспорт симуляции в обратно в 3ds max, вам понравились.
(Рис.10)
Урок был взят и переведён с сайта: 3dtotal.com.