Создание резинового логотипа
Всем привет!
Снова предлагаю вам обратиться к прелестям жидкой среды. Хотя на этот раз она будет не совсем жидкой. Я хочу воспроизвести процесс создания резиновой игрушки в форме логотипа. Для этого нужно сделать модель логотипа. Заполнить его жидкостью, которая очень быстро застывает и превращается в эластичную резину. Этот резиновый объект вываливается из своей формочки и падает на поверхность, всем своим поведением показывая, что резина, из которой он сделан очень качественная ;-))
В качестве логотипа используем букву R. Почему бы нет?!
Открываю 3DS Max.
Устанавливаю единицы измерения.
Создаю текст. Выдавливаю. Конвертирую в Mesh.
Можете загрузить готовый max-файл (ссылка на файл R.max)
Экспортирую в sd-формат.
Можете загрузить готовый sd-файл. (ссылка на файл R.sd)
Открываю RealFlow4 (3-я версия не годится).
В Preferences… указываю 25 кадров в секунду и систему координат для MAX
Указываю масштаб преобразования для MAX.
Импортирую полученный объект.
Создаю плоскость для имитации поверхности земли.
Создаю гравитацию
Создаю эмиттер, который будет заполнять мой логотип
В 110 кадре ставлю ключ для параметра Speed=0 (выключаю генерирование частиц). Предполагаю, что внезапно закончилась резина.
Т.е. в 109 кадре speed = 2, а 110 кадре speed = 0. Пользуйтесь правой кнопкой мыши.
Создаю эмиттер, частицы которого впоследствии станут основой резинового изделия.
Его положение в пространстве не имеет значения, поэтому немного отодвигаю его, чтобы не мешал. Указываю Type – Elastics, Spring – 2000 (это будет мягкая резина, почти желе), Speed – 0 (эмиттер не должен сам создавать частицы)
Указываю, что на первый эмиттер Circle01 действует объект логотипа и гравитация, а на второй эмиттер Circle02 – плоскость и гравитация.
Создаю Mesh.
Щелкаю правой кнопкой и присваиваю Mesh сразу двум эмиттерам.
Настраиваю первую оболочку
И вторую точно также.
Запускаю симуляцию
Смотрю, что у меня получилось. Примерно в 125 кадре жидкость занимает положение, которое я хочу сохранить в форме резинового изделия. Положение надо сказать довольно кривое, но интересное. Предполагается, что кончилась резина.
Открываю окно Event Script (F11)
В нем загружаю файл скрипта script.rfs (ссылка на файл script.rfs)
Посмотрим, как он работает
#1 – строка означает, что команды находящиеся внутри этой функции будут выполняться каждый кадр симуляции (все, что находится за знаком # просто комментарии для пользователя и компьютер их не замечает)
#2 – программа проверяет текущий кадр и если он равен 125, выполняются дальнейшие операторы, а если нет – игнорирует операторы, находящиеся в её теле. В нашем случае это все дальнейшие операторы. Если вы хотите заморозить жидкость раньше или позже 125 кадра исправьте эту цифру.
#3 – создаю переменную flow, которая теперь будут означать для программы первый эмиттер. Если вы назвали его по-другому – переименуйте эмиттер или исправьте его название в строке скрипта. В противном случае скрипт не сможет работать.
#4 – создаю переменную rubber для второго эмиттера.
#5 – создаю переменную particles в которую записываю все частицы первого эмиттера. Он сохранён в переменной flow. См. строку #3.
#6 – создаю векторную переменную speed и присваиваю ей нулевые значения по всем осям.
#7 – эта строка создаёт цикл. Все строки, находящиеся в её теле (#8,#9,#10) будут выполняться для каждой частицы из первого эмиттера Circle01 (flow). Этот оператор будет перебирать все частицы одну за другой, и выполнять дальнейшие действия над каждой.
#8 – записываю в переменную pos координаты текущей частицы.
#9 – для второго эмиттера (rubber) создаю новую частицу с координатами, записанными в переменной pos и скоростью равной нулю (speed равна нулю см. #6).
#10 – удаляю текущую частицу из первого эмиттера (flow).
Затем скрипт возвращается к строке #7, переходит к следующей частице, и так пока все частицы не будут пройдены.
В результате выполнения скрипта все частицы первого эмиттера Circle01 будут удалены, а на их месте появятся частицы эмиттера Circle02.
Активирую скрипт
Запускаю симуляцию.
Проверяю результат. Логотип наполняется жидкостью. В 110 кадре подача жидкости прекращается. В 125 кадре жидкость застывает и падает на плоскость. Осталось поправить некоторые параметры по желанию.
Этот урок не ограничивается созданием резиновых изделий. Меняйте параметры второго эмиттера и получайте упругие объекты на свой вкус. Но это уже тема для следующего урока, если конечно это вас заинтересовало.
Вот и всё, что я хотел на этот раз рассказать. Я только коснулся темы использования скриптов в RF, но надеюсь, вы поняли насколько это серьёзный инструмент. Поэтому обязательно в будущем напишу целый урок о скриптах.
Можете загрузить готовый результат.
Всего хорошего. Пишите отзывы.