Render.ru

Вращение элементов в трех плоскостях

Mb

Активный участник
Рейтинг
5
#1
Дано:
Множество слоев, скомпонованных в трех осях как сфера.
Необходимо:
Заставить каждый слой двигаться в соответствии со своим положением и проходить полный круг по окружности, возвращаясь в исходную точку.

Третий день бьюсь над решением задачи. В exp​ressions я не очень, но нашёл на форуме подобное выражение для вращения по окружности. Однако проблема оказалась в том, что выражение написано для 2D вращения.
Чуть-чуть допилил, получилось так:
center=this_comp.layer("Center").position;
radius=400;
angle=time*2;
x=960;
y=radius*Math.sin(angle);
z=radius*Math.sin(angle);
add(center, [x, y, z]);

Center - это null object с точкой привязки в центре композиции. Сейчас задано движение по двум осям, значение третьей всегда остается неизменным, однако в конечном итоге хотелось бы, чтобы и это значение можно было менять.

Проблема в том, что это выражение действует на все слои одинаково, меняя их исходное местоположение на новое и вращая по одной и той же окружности, а надо, чтобы каждый слой начинал с той точки, где он находится и возвращался в неё же (см. картинку).

Умом чую, что проблема в том, что в выражении не задана исходная точка, однако как её задать (учитывая, что, фактически, она должна определяться сама исходя, например, из положения слоя относительно края композиции, т.е. с использованием значения width композиции) - не понимаю.

Помогите разобраться и не сгинуть в пучине прорисовки path'ей каждому слою!
 

Вложения

mazzza

Знаток
Рейтинг
22
#2
попробуйте построить свою сферу, используя скрипт
"createSphere.jsx"
www.nabscripts.com
(возможно, придется поподбирать значения количества слоев и радиуса)
тогда вращая null, которому будут припаренчены слои, вы, вроде, получите то,что вам нужно....
 

Mb

Активный участник
Рейтинг
5
#3
Там немного не о том скрипт, но за ссылку спасибо.
В представленном скрипте все слои вращаются (rotation'ом) вокруг одной точки, а нужно, чтобы они все "следовали" по прописанному в скрипте пути.
 
Сверху