TGViewer
After Effects / Motion Design After Effects / Motion Design @a_study · 47.3K subscribers
Post #5947 5.28K
Техники анимационной графики для создания реактивного света и теней в After Effects

В этом уроке мы рассмотрим 5 различных методов создания динамических эффектов света и тени в After Effects, которые автоматически реагируют на положение источника света.

ROTATION - POINT LIGHT
var emitter = thisComp.layer("Emitter");
var myPos = thisLayer.toWorld(thisLayer.anchorPoint);
var emitterPos = emitter.toWorld(emitter.anchorPoint);
var delta = emitterPos - myPos;
radiansToDegrees(Math.atan2(delta[1], delta[0]))

ROTATION - DIRECTIONAL LIGHT
var emitter = thisComp.layer("Emitter");
var destination = thisComp.layer("Destination");
var delta = destination.position - emitter.position;
radiansToDegrees(Math.atan2(delta[1], delta[0]))

BEVEL & EMBOSS ANGLE - POINT LIGHT
var emitter = thisComp.layer("Emitter");
var myPos = thisLayer.toWorld(thisLayer.anchorPoint);
var emitterPos = emitter.toWorld(emitter.anchorPoint);
var delta = emitterPos - myPos;
radiansToDegrees(Math.atan2(-delta[1], delta[0]))

BEVEL & EMBOSS ANGLE - DIRECTIONAL LIGHT
var emitter = thisComp.layer("Emitter");
var destination = thisComp.layer("Destination");
var delta = emitter.position - destination.position;
radiansToDegrees(Math.atan2(-delta[1], delta[0]))

DROP SHADOW DIRECTION - POINT LIGHT
var emitter = thisComp.layer("Emitter");
var myPos = thisLayer.toWorld(thisLayer.anchorPoint);
var emitterPos = emitter.toWorld(emitter.anchorPoint);
var delta = myPos - emitterPos;
radiansToDegrees(Math.atan2(delta[1], delta[0])) + 90

DROP SHADOW DIRECTION - DIRECTIONAL LIGHT
var emitter = thisComp.layer("Emitter");
var destination = thisComp.layer("Destination");
var delta = destination.position - emitter.position;
radiansToDegrees(Math.atan2(delta[1], delta[0])) + 90

POSITION OFFSET - POINT LIGHT
var emitter = thisComp.layer("Emitter");
var shape = thisComp.layer("Shape A");
var distance = effect("Slider Control")("Slider");
var delta = shape.position - emitter.position;
var angle = Math.atan2(delta[1], delta[0]);
shape.position + [Math.cos(angle) * distance, Math.sin(angle) * distance]

POSITION OFFSET - DIRECTIONAL LIGHT
var emitter = thisComp.layer("Emitter");
var destination = thisComp.layer("Destination");
var shape = thisComp.layer("Shape A");
var distance = effect("Position Offset")("Slider");
var delta = destination.position - emitter.position;
var angle = Math.atan2(delta[1], delta[0]);
shape.position + [Math.cos(angle) * distance, Math.sin(angle) * distance]

RADIAL BLUR CENTER - DIRECTIONAL LIGHT
(Requires "Light Distance" slider to set emitter distance from layer, check out the tutorial file for this one)
var emitter = thisComp.layer("Emitter");
var destination = thisComp.layer("Destination");
var positionOffset = effect("Position Offset")("Slider");
var lightDistance = effect("Light Distance")("Slider");
var delta = destination.position - emitter.position;
var angle = Math.atan2(delta[1], delta[0]);


#tutorial | Project | By olly
  • ❤ 11
  • 👍 1
More from @a_study
  1. Sep 27, 2026Как редактировать видео в документальном стиле В этом уроке по Adobe After Effects мы с ну…
  2. Sep 27, 2026Post #6600
  3. Sep 26, 2026ChatGPT + After Effects – это просто безумие... В этом уроке я подробно расскажу, как с по…
  4. Sep 25, 202625 трюков в After Effects, которые должен знать каждый моушн-дизайнер На этом канале мы со…
  5. Sep 24, 2026Анимация 3D-иконки в After Effects Узнайте, как создавать и анимировать 3D-иконки в After…
  6. Sep 24, 20261)AmanowTools 2.1: плагин-панель для After Effects 80+ функций в одной панели. Всё, что мо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →