Выражения. Свойство 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