Выражения. Свойство activeCamera After Effects
В After Effects свойство activeCamera используется в выражениях для получения текущей активной камеры композиции. Оно применяется в 3D-слоях, чтобы получить доступ к свойствам камеры, которые в данный момент «смотрят» на сцену. Активная камера определяется как камера, находящаяся выше всех остальных в таймлайне и включённая (видимая).
Список эффектов и не только After Effects
Выражения After Effects список
После получения объекта activeCamera вы можете обращаться к его свойствам, таким как position, pointOfInterest, zoom, focusDistance, aperture и т.д.
——
1
thisComp.activeCamera; //Возвращает [object Camera]
thisComp.activeCamera.transform.position; //Возвращает [object Property]
thisComp.activeCamera.transform.position.value; //Возвращает положение камеры в виде чисел по осям
thisComp.layer(«Камера 1»).transform.position;//Возвращает [object Property]
Если применить это выражение с свойству Исходный текст текстового слоя то возвращается [object Property] Поэтому для получения числовых значений надо в конце выражения поставить точку и добавить value. Но если добавить выражение без value к свойству Положение слоя Камера 1 то получите числовые значения Положения.
thisComp.layer(«Камера 1»).transform.position[0] + time * 100;//Выражение для анимации Положения слоя Камера 1 по оси Х. Применяется к свойству ХПоложение слоя.
thisComp.activeCamera.transform.position.value[0] + time * 100; //Получится тот же результат что и с помощью выражения выше. Но лучше использовать выражение с явным указанием слоя к которому вы обращаетесь
———
2
thisComp.layer(«Камера 1»).transform.position[0] + time * 100;//Камера движентся по оси Х 100 пикселей в секунду. Применяется к свойству ХПоложение слоя.
или написать вот так
thisComp.activeCamera.transform.position[0] + time * 100;
Если изпользовать выражение ниже для привязки положения Нуль слоя к положению камеры то результат будет не тот что вам нужен. Нуль слой рассположится по координатам Камеры.
if (thisComp.activeCamera != null) {
var camPos = thisComp.activeCamera.transform.position.value;[camPos[0] + time * 100, camPos[1], camPos[2]];
} else {
value;
}
Можно написать вот так. При этом будет меняться только положение по оси Х Нуль слоя
if (thisComp.activeCamera != null) {
var camPos = thisComp.activeCamera.transform.position.value;[camPos[0] + time * 100, thisLayer.transform.position[1], thisLayer.transform.position[2]];
} else {
value;
}
или просто вот так. Применить к свойству Положение Нуль слоя
var camPos = thisComp.activeCamera.transform.position.value;[camPos[0] + time * 100, thisLayer.transform.position[1], thisLayer.transform.position[2]];
thisComp.layer(«Пусто 1»).transform.position.value;//Выражение для свойства Исходный текст текстового слоя для того чтобы увидеть числовые результаты положения Нуль слоя
——-
3
Направление взгляда камеры (вектор взгляда) Это выражение обычно применяется к свойству Orientation или Rotation 3D-слоя
lookAt(thisComp.activeCamera.position, thisComp.activeCamera.toWorld([0, 0, -1]));
[value[0] + time * 100, value[1], value[2]];//Выражение для свойства Положение слоя Камера 1