Adobe Premiere ▼
Maxon Cinema 4D ▼
DAZ Studio ▼
Поиск

Море волнуется два — создаём движущиеся по морским волнам корабли

Урок добавлен 23.04.2023

К этому уроку прилагается 3D-сцена

Возможно, вы уже ознакомились с предыдущим уроком под названием «Море волнуется раз — моделируем морские волны». Возможно, он вам даже понравился (хотя, скорее всего, вы не стали этого открыто афишировать — ведь комментировать бесплатные уроки дело исключительно трудное, тяжёлое и сложное, не то что создавать их, в силу чего урок есть, а комментариев к нему — нет). Но зато я почти наверняка уверен, что вы сразу же почувствовали, чего ещё не хватает в этом уроке, кроме комментариев. Конечно же, кораблей! Без них море выглядит слишком пустым.

Терпение. Как моделировать морские волны, мы с вами разобрались. А сейчас у нас будут и корабли. Сколько вам надо? Десять, двадцать? И чтобы все двигались по поверхности моря с непрерывно меняющейся геометрией?

«Коли поняли приказ, исполняйте сей же час! — Не извольте сумлеваться: чай, оно не в первый раз!»

Движущиеся по морским волнам корабли

Видео. Анимация умышленно замедлена в два раза — воспроизведение со скоростью 12 кадров в секунду.

Как видно из видео, корабли не только движутся по поверхности моря, но и перемещаются вместе с волнами вверх-вниз.

Вам интересно, как это сделано? Разберём по шагам. В процессе описания способа создания этого эффекта я открою вам маленький секрет, связанный с работой модификатора «Wind».

В предыдущем уроке мы с вами изгибали плоскость, изображая с её помощью морские волны.

В данном уроке мы с вами добавим ещё один элемент — траекторию движения кораблей. Сделаем мы это точно так же, как делали в уроке «Создаём анимацию движения объекта по сложной траектории над местностью» — то есть нарисуем некий изломанный сплайн, лежащий строго в той же плоскости, что и исходный объект «Plane», трансформируемый модификаторами «Wind», и превратим изломы сплайна в изгибы. Точно так же, как в упомянутом уроке, мы с вами увеличиваем количество точек на сплайне.

Создаём сплайн-траекторию и увеличиваем количество промежуточных точек

Возможно, вы скажете: постойте, но в уроке по созданию сложной траектории на местности мы «роняли» сплайн на объект с заведомо известной, заранее подготовленной геометрией, а здесь в нашем распоряжении плоскость, которую модификаторы «Wind» будут изгибать невесть каким образом!

Совершенно верно. Мы с вами не имеем ни малейшего представления, какой будет геометрия «морской поверхности» в каждом следующем кадре — мы можем лишь скорректировать параметры воздействующих на неё модификаторов «Wind» и сделать вывод, устраивает ли нас полученная геометрия. А раз так — так пускай те же самые модификаторы трансформируют не только «морскую поверхность», но и сплайн траектории, по которой будут двигаться корабли. Изначально наша «морская поверхность» абсолютно плоская. И сплайн-траектория — тоже плоский. Ронять его на «поверхность моря» нет никакого смысла — он уже лежит на плоской поверхности, а потому в его геометрии попросту ничего не изменится.

Зато геометрия сплайна сразу же изменится, как только мы сделаем его подчинённым по отношению к изображающей морскую поверхность плоскости, при условии, что на последнюю воздействует один или несколько модификаторов «Wind».

Геометрия сплайна меняется модификаторами «Wind» точно так же, как поверхность моря

Секрет, который в начале урока я обещал открыть вам, заключается в том, что модификатор «Wind» трансформирует не только объект, которому подчинён, но и все объекты, подчинённые объекту, которому подчинён модификатор. Причём трансформирует, если можно так выразиться, когеррентно — то есть старается создать складки одинаковой формы на всех трансформируемых объектах. Чтобы убедиться в этом, достаточно создать копию плоскости, имитирующей морскую поверхность, и подчинить копию оригиналу — и та и другая, изогнутые одним и тем же набором модификаторов «Wind», подчинённых оригиналу плоскости, совпадут точка в точку.

Ну, а всё остальное, как вы, вероятно, смутно догадываетесь — дело техники. Создаём мультипликатор (то есть объект «MoGraph Cloner»), подчиняем ему одну-единственную модель корабля, выбираем в настройках мультипликатора режим «Object», в появившееся ниже одноимённое поле перетаскиваем название сплайна-траектории, корректируем у мультипликатора значение параметра «Rate» (чтобы корабли двигались вдоль сплайна, а не плавали на месте).

Запускаем анимацию и... дальше, как вы понимаете, набор модификаторов «Wind» динамически трансформирует поверхность «моря». Этот же набор трансформирует сплайн-траекторию. Мультипликатор размножает копии кораблей — однако не вдоль исходного сплайна, а вдоль его трансформированной набором модификаторов «Wind» копии, и каждый раз, когда геометрия динамической копии сплайна меняется, мультипликатор корректирует положение кораблей таким образом, что их днище всегда правильно располагается относительно поверхности волн.

Согласен, наши корабли всё ещё чем-то смахивают на бумажные кораблики... ах да, они же не оставляют на поверхности воды никаких следов — бурунов, пены и т. п.! Тем лучше — нам с вами будет что обсудить в следующем уроке.