Уроки: 3ds Max

Создание жидкости с использованием Real Flow

Ещё по стаканчику мороженого. И всё!

Урок для тех, кто хочет попробовать свои силы в создании жидкости с использованием RealFlow.
Я это сделаю на примере наполнения рожка мороженого, потому что летом это очень актуально.
Давайте начнём.
Я хочу, чтобы в рекламном ролике мороженого невидимый вафельный рожок наполнялся жидким мороженым, которое постепенно застывает. И сверху вырастает специфичная «розочка», не растекаясь при этом наружу.
А рожок сворачивается на уже застывшем мороженом. Но это уже совсем другая история.
Для выполнения этой задачи буду использовать 3DS MAX 8 и RealFlow3.
(Пока урок писал 4-я версия RealFlow вышла, буду попутно давать объяснения и для неё).
Устанавливаю плагин RealFlow для 3DS MAX, который можно скачать с официального сайта.
Моделирую вот такие объекты. Внизу это как бы внутренняя часть рожка, а вверху – розочка, которая получается в реальности при наполнении.


Обязательно уменьшите количество полигонов, т.к. на внешнем виде это вряд ли скажется, а времени на симуляцию потребуется меньше.
Проверьте модель на дырки, чтобы мороженое впоследствии не вытекло.
(Используйте для этого модификатор STL Check.)
Теперь нужно отправить обе модели из 3DS MAX в RealFlow.
В данном примере буду использовать формат .OBJ.
File > Export > file.obj.
Даю им понятные имена.

(Если бы было нужно экспортировать ещё и анимацию, то нужно воспользоваться форматом .SD. Для этого предназначена утилита SceneDataSaver. Она появляется после установки плагина.)

Закрываю MAX. Открываю RealFlow.
Загружаю модели в программу.

Для RF3.


Для RF4.
Правая кнопка->Add->Objects->Import->файлы.

Создаю эмиттер Circle.


(в RF4 правая кнопка->Add->Emitter->Circle).
Помещаю его внутрь модели. (Горячие клавиши перемещения, вращения, масштабирование – W,E,R, как и в MAX).
Масштабирую.

Настраиваю модель.
Хочу чтобы жидкость лилась вниз, билась о рожок, плескалась, постепенно заполняла рожок, бурлила.
Если, например, вы хотите лить мороженное сверху (т.е. снаружи модели), необходимо указать, что «розочка» будет «прозрачна» для частиц с внешней стороны. Нужно указать Collision side. В моём случае в этом нет необходимости, т.к. эмиттер будет находиться внутри модели и Collision Side=Both. Т.е. частицы не смогут проходить сквозь неё с любой стороны. Выберите объекты и укажите.
RF3 и RF4 идентично.


Collisiondistance – расстояние на котором оболочка начинает взаимодействовать с частицами.
(не указывайте очень маленькие значения, от этого возрастает время просчёта).
Friction– сила трения.
Bounce – сила отскока частиц.
Настройте их по своему вкусу. Это зависит от того, что вы хотите получить и ещё от размера модели.

Если нужно, можно заставить эмиттер двигаться. Для этого ставлю ключи (правая кнопка мыши по нужному параметру). Значение с ключом меняет цвет. И редактирую их редакторе.


(в RF4 правая кнопка по параметру->OpenCurve).
Настраиваю эмиттер/


Как видите, поставил ключи по положению, вращению и скорости. Хочу, чтобы струя меняла направление и силу. Так даже смешнее.

Попробуйте менять Viscosity (вязкость).
Max particles – максимальное число частиц. При превышении их числа рождение частиц прекращается. Поэтому поставьте достаточное количество, чтобы хватило на весь рожок. Узнать сколько сейчас частиц в сцене можно в свитке Statistics (когда выбираете эмиттер).
Resolution – разрешение.
Density – плотность.
Чем больше разрешение, тем лучше качество. Будет задействовано больше частиц в единице объёма.
Чем больше плотность, тем тяжелее жидкость. Но так как жидкость в данной сцене одна, плотность менять нет смысла.
При пробных симуляциях имеет смысл уменьшить разрешение.
Меняю настройки симуляции


Количество кадров в секунду и общее количество кадров.
Иногда имеет смысл поставить количество кадров в секунду большее, чем 25. Тогда впоследствии можно будет замедлять анимацию без потери качества.

Для RF4:
Стрелка рядом с кнопкой Simulate->Options
Открывается окно


Да! Для ускорения просчётов можно уменьшить параметр MAX substeps, примерно, до 50 или даже меньше. (Там же, где меняли количество кадров в секунду.)
Уменьшать можно до тех пор, пока частицы ведут себя адекватно. Если начинают, например, разлетаться в разные стороны – параметр нужно увеличить.

Применяю гравитацию.


(в RF4 правая кнопка->Add->Daemons->Gravity).
Меняю силу гравитации по желанию. (Выбираю значок гравитации и меняю параметр Strength).

Указываю, что будет влиять на жидкость.


Теперь на жидкость будут действовать оба объекта и гравитация.

В RF4



RealFlow работает таким образом:
Он генерирует частицы, а потом надевает на них оболочку.
Это занимает довольно много времени. Я предпочитаю разделять этот процесс пополам. Сначала я «считаю» частицы и записываю их в секвенцию частиц. И только после того, как мне понравилась симуляция, я загружаю полученную секвенцию в новый эмиттер для расчета оболочки.

Поэтому включаю экспорт частиц и не включаю экспорт оболочки.

В RF4
меню Export->ExportCentral...(F12)

 

Запускаю симуляцию


В RF4


Теперь нужно подождать пока вся модель не заполнится частицами.
Останавливаю симуляцию. (Та же кнопка).
Включаю Play. Если что-то не нравится, подправляю. Снова включаю симуляцию. И так пока не получу желаемый результат.
Теперь можно увеличить количество частиц в симуляции для более качественного результата. (Resolution – разрешение)
И просчитать всё заново.
Итак, у меня есть секвенция файлов, в которой записано движение частиц во время симуляции.
Но для рендера в MAX мне нужна секвенция файлов, в которой записано движение поверхности мороженого.
Для этого удаляю старый эмиттер и создаю новый Binary Loader.

Загружаю в него секвенцию частиц, которою только что получил.


(В RF4 почти аналогично).

Теперь просчёт частиц почти не займёт время времени.
Надеваю на них Mesh.


Присваиваю этот Mesh моему новому эмиттеру.


Теперь оболочка будет создаваться для нового эмиттера.

В RF4 правая кнопка->Add->Mesh
Правая кнопка на mesh->InsertFluids...

Настраиваю Mesh.
Выбираю Binary Loader. Указываю радиус.

Чем больше радиус, тем дальше от частицы будет находиться оболочка. Т.к. он действует на все частицы, то в результате получится более сглаженная (раздутая) оболочка. Чтобы получить более точную оболочку радиус нужно уменьшать. Но в результате жидкость может превратиться в отдельные капли, если частиц недостаточно. Используйте BlendFactor. Его увеличения приводит к слиянию отдельных капель не за счёт радиуса, а за счёт появления оболочки между ними. Просто попробуйте разные варианты и поймёте.
Включите Filters. Он сглаживает маленькие бугорки.

Для просмотра текущего mesh в RF3 нажимайте кнопку с изображением глаза (build mesh),
В RF4 – правая кнопка на названии mesh->build.

 

Выбираю Mesh. Указываю Polygon size.


Это количество полигонов на каждую частицу. Чем их меньше, тем быстрее просчёт, но в результате ломаная поверхность.
Подберите нужный вариант для своего масштаба.
Выключаю экспорт частиц и включаю экспорт оболочки (Mesh).
(В RF4 – F12).


Запускаю симуляцию. Жду.
После окончания у меня есть секвенция файлов с движущейся оболочкой.
На этом работа с RealFlow окончена.
Запускаю MAX.
Создаю RF Loader.


Загружаю в него 2-ю полученную секвенцию (оболочка).


Жму кнопку «Create Mesh».
Присваиваю полученному объекту материал – что-то напоминающее молоко.
Рендерю.







Использую AfterEffects для сборки всего материала (фон + рожок + мороженое).
Если жидкость слишком густая увеличиваю скорость воспроизведения секвенции. (вот тут и понадобится больше 25 кадров в секунду).
Всё. Теперь попробуйте сами. Если хотите можно всё это дело полить сверху шоколадом. Для этого нужно смоделить оболочку для шоколада так же как до этого делали оболочку для мороженого. И дальше всё по-порядку.
Желаю успехов в мороженоделании.

75921 Автор:
Актуальность: 581
Качество: 582
Суммарный балл: 1163
Выбор Публики
Голосов: 106 оценки

Отзывы посетителей:

2 3 | След.
аватар
 
Jurist 1 0
Извините меня у кого есть етот реал флоу для макс 8 версий. Пожалуйста скинте на етот е майл kosi_90@mail.ru
аватар
 
akela 2 0
Народ,подскажите пожалуйста как мне открыть окно Scene tree?Видать по незнанке его закрыл.
http://p.foto.radikal.ru/0702/ca241cdfa32a.jpg
http://p.foto.radikal.ru/0702/ca241cdfa32at.jpg
аватар
 
gibsonff 8 0
Уже смотрю!
аватар
 
maxer 7 0
Интересная видимо эта RF. Надо будет посмотреть.
аватар
 
scripterBB 11 0
Читать коментарии оказалось интересней, чем сам урок.
аватар
 
crest 7 0
Второй урок намного лучше. Непонятно почему этот победил?
аватар
 
kilo1991 511 0
Dr.Stein на официальном сайте можно скачать триал версию с которой вполне можно работать
nextlimit.com
аватар
 
Shtarty 59 0
Где взять RF4 или хотя бы 3
аватар
 
rendermax80 -8 0
Люблю мороженое.
Обязательно попробую.
аватар
 
Crio 1 0
Извините, я тут человек новый. Может быть, вообще не брать на конкурс уроки по плагинам? Ну, или брать, но такие, где описываются какие-нибудь финты ушами, типа совмещения техник или что-нибудь сложное - актуальное. А на счёт переведённых хелпов, то в "Хищных вещах" по этому поводу уже написали. "Так много людей занимаются этим, что стать первым почти нет шансов".
А мороженое - первый класс, тоже сразу захотелось! Анимация есть?
аватар
 
Flexiable 17 0
Пиши.
Я тебя в штыки воспринял потому что не вижу в этом уроке ничего нового для себя, а хелп стандартный в урок пускать по моему не в тему, да и вообще считаю что конкурсные уроки должны повествовать о чем то нестандартном (вот про более сложную жидкость мне бы было интересно почитать к примеру кипение воды, в которую при температуре 90 (дальше закипает), бросают кусок льда, который в последствии испаряется и конденсируется о крышку сосуда (последние 2 части шутка:)).
Если и вправду напишешь, то в моих глазах хорошо подымишься, просто не уважаю халяву, без обид.
аватар
 
AnikAnik 11 0
Kilo1991 -
спасибо за разъяснение по поводу моделлинга. Буду разбираться - думаю, что этот вопрос закрыт.
аватар
 
kilo1991 511 0
По большой просьбе Flexiable обязательно напишу в августе урок, более нужный, чем этот. Что-нибудь из жизни жидкости с более сложным поведением. Постараюсь оправдать ожидания Flexiable, чтобы ему спокойно спалось и справедливость восторжествовала.
Удачи.
аватар
 
Flexiable 17 0
Слушай kilo почем брал Real flow 3? и Max 8?
аватар
 
Flexiable 17 0
Да реально пусть kilo делает что хочет, мне лично пофиг, просто я начну так же действовать. Если редакция всё так и оставит, то и все так начнут! За то будет полноценный русский хелп к максу и другим пакетам. :)
аватар
 
Moon Man 37 0
Нет, это издевательство! Предлагаю, поставить за этот материал жирную двойку (неуд.). Кстати, про цвет...какой-то нездоровый цвет рожка. Я бы его не стал есть. Мне кажется, он слегка заплеснивел? Нет, Вы так не считаете? А по-моему, именно так.
аватар
 
Русских Денис 32 0
Мороженое на вид очень вкусное, так бы и съел. :)
аватар
 
_3DMAN_ 1 0
Согласен с Flexiable Kilo1991 решил нечестно заработать переведя хелп.
2 3 | След.
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 566 уникальных посетителей