Pull to refresh

Проблема 3D частиц в After Effects

Reading time4 min
Views11K
При работе с моушен-дизайном нередко приходится сталкиваться с тем, что нужно создать большое количество объектов, которые либо излучаются из одного места, либо уже существуют на сцене. Так можно сделать дым, туман, фейерверки, падающие, или висящие в космосе обломки, просто красивые абстрактные линии, причудливо расходящиеся в разных направлениях. В этом помогают эффекты, называемые «частицы» (анг. Particles )

image

На кадре видны два вида частиц: одни — маленькие рыжие кусочки, разлетающиеся из-за силуэта в центре, вторые — фиолетово-белые «волоски».

Сейчас я работаю с After Effects CS4, и по этой причине столкнулся с проблемой: эффекты частиц, которые идут в комплекте с программой (CC Particular System II, CC Particular World, Particular Playgraund) являются не 3D эффектами, а псевдо-3D эффектами. Как не удивительно, но даже такой дорогой платный плагин к AE, как Trapcode Particular тоже требует, чтобы слой оставался в 2D пространстве, а значит лишь имитирует объёмность своего эффекта. Сколько я не пытался, но ни одного настоящего объёмного аналога для данной программы я не нашёл.

В чём заключается проблема


Объяснить в чём суть проблемы довольно сложно. Речь будет идти о разных пространствах, а нарисовать так, чтобы это было понятно всем довольно сложно, так что придётся включать фантазию. Но для начала начнём с симптомов проблемы.

Симптомы

Если мы хотим сделать, к примеру, дымок, который пролетает между различными 3D объектами, то мы сталкиваемся с такой проблемой: как бы мы не двигали излучатель (анг. Emitter) по оси Z, если наш дым должен уйти за какой-то 3D объект, то он, вместо того, чтобы пройти сквозь объект, или каким-либо другим образом оказаться за ним, дымок просто начинает уменьшаться, якобы двигаясь по оси Z. Если начать крутить камеру, то наши 3D и псевдо-3D объекты начинают себя вести абсолютно непонятным образом, что убеждает нас в том что либо мы, либо авторы программы/аддона что-то напортачили.

Суть проблемы

Суть данной проблемы заключается в том, что Adobe After Effects использует слои, точно так же, как и в фотошопе (Adobe Photoshop). Когда вы превращаете какой-либо слой в 3D-слой, он начинает существовать во всех трёх измерениях. Теперь мы можем им манипулировать не только в осях X и Y но и Z.



А слои, на которых находится наш эффект с частицами является всего-лишь псевдо-3D слоем. Это значит, что хоть и внутреннее устройство эффекта частиц целиком и полностью «пародируются» объёмность слоя, сама программа всё равно видит его как 2D слой. Это значит, что как бы мы не крутили камеру, содержимое нашего псевдо-3D слоя не может оказаться поверх 3D слоя, находящегося в списке слоёв над ним, и точно так же не может уйти за 3D слой, находящийся под ним.

Получается (осторожно, надо включить фантазию, хотя и это вряд ли поможет), что у нас есть целых два 3D пространства: одно созданное самой программой, а второе, созданное эффектом частиц. И это второе пространство находится между объектами первого пространства, и не может вырваться за эти рамки. Наверно пока что это сложно понять, но дальше это станет видно более наглядно (на сколько пространство в пространстве может вообще быть понятным, для простого человека?)

Частичное решение


Я долго бился над этой проблемой: я делал заставку для телепередачи, и у меня в композиции находилось одновременно около 14 объёмных слоёв (что-то на подобии гор), между которыми летали излучатели частиц, оставляя дымчатые следы. Плюс ко всему я хотел покрыть поверхность «пола» композиции дымкой, и собирался использовать для этого те же частицы.

Сделать дымку из одного излучателя частиц никак не представлялось возможным, так как этот туман должен был бы обволакивать все 14 объектов, а он мог оставаться лишь между двумя.

Урок от TheFXGuy

Десятками читая посты разных людей, на разных сайтах, которые тоже сталкивались с этой проблемой, я никак не мог найти решения. Но через какое-то время я наткнулся на этот ролик на ютубе:



(Осторожно, в комментариях к видео некорректный код)

Я уже радостно потирал руки, в поисках урока, по которому было сделано это видео… И я нашёл его, вот оно (Осторожно, в комментариях к уроку некорректный код). К сожалению в этом уроке рассказывается не то, как нормализовать работу с такими псевдо-3D слоями, а показывается, как обмануть систему так, чтобы со стороны казалось, что всё нормально.

Чтобы со стороны казалось, что всё нормально

На ролике выше мы видим излучатель частиц, который пролетает сквозь два объёмных слоя: прямоугольник и окружность. Но на самом деле мы видим 3 излучателя, которые очень хорошо продолжают работу предыдущего.

image

То есть в момент, когда излучатель частиц должен был бы пересечься с плоскостью 3D слоя, мы мгновенно отключаем на нём излучение, и включаем излучение частиц в следующем кадре, на излучателе, который находится «в той зоне» (подпространстве), где нам нужно сейчас излучать.
К сожалению эта обманка не со всех сторон видна правильно, к тому же, с возрастанием количества настоящих 3D слоёв, использование этого метода становится затруднительным.

Что мы получили

Каждый псевдо-3D слой делит наше пространство на два «подпространства», находящиеся на разной глубине (то есть на разных местах на оси Z). Если у нас N настоящих 3D слоёв, то подпространств будет N+1.

image

Для того, чтобы наши частицы находились с какой-либо стороны от настоящего 3D слоя, нужно, чтобы их излучатель находился в соответствующем подпространстве.
Если нам нам нужно, чтобы частицы двигались между настоящими 3D слоями, значит мы обрываем излучение частиц, в момент пересечения излучателем плоскости настоящего 3D слоя, и начинаем излучать их в слое, находящимся в следующем подпространстве.

Мой консенсус

Так как в моей композиции было около полутора десятков 3D слоёв, разбросанных довольно хаотично, мне бы, чтобы сделать мой туман над землёй, пришлось бы использовать около пятнадцати + 1 слоёв с частицами, каждый из которых должен был бы заполнять довольно причудливую форму… Боюсь, что ноутбук, на котором я делал заставку такое бы просто не потянул.

Зато, благодаря этому опыту, и пониманию подпространств в пространстве, я смог правильно расположить струи дыма, летающие между моими 3D слоями, но никак не пересекающимися с ними.
Так же я понял, что Adobe After Effects довольно не совершенная программа, и буду стараться переходить на более сложные аналоги.

К сожалению выложить получившуюся заставку я пока не могу, так как вряд ли руководство телевизионного канала радостно оценит то, что в интернете появилась заставка передачи, премьеры которой ещё не было на самом канале.
Tags:
Hubs:
+23
Comments22

Articles