Дано:
Множество слоев, скомпонованных в трех осях как сфера.
Необходимо:
Заставить каждый слой двигаться в соответствии со своим положением и проходить полный круг по окружности, возвращаясь в исходную точку.
Третий день бьюсь над решением задачи. В 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'ей каждому слою!
Множество слоев, скомпонованных в трех осях как сфера.
Необходимо:
Заставить каждый слой двигаться в соответствии со своим положением и проходить полный круг по окружности, возвращаясь в исходную точку.
Третий день бьюсь над решением задачи. В 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'ей каждому слою!
Вложения
-
46,2 КБ Просмотров: 379