본문 바로가기
After Effects

에프터이펙트 Expression toComp() 에 대한 이해

by hfgraphic 2024. 6. 20.
반응형

toComp() 함수는 Adobe After Effects의 표현식(expression) 기능에서 사용되는 메서드로, 레이어의 로컬 좌표를 컴포지션 좌표로 변환하는 데 사용됩니다. 이 메서드는 특히 3D 공간에서 작업할 때 유용하며, 레이어의 위치나 포인트를 컴포지션 좌표로 변환해야 할 때 주로 사용됩니다. 다음은 toComp()에 대한 자세한 설명입니다.

기본 사용법

toComp(point, t=time)

  • point: 변환하려는 포인트의 배열 [x, y, z] (3D 공간) 또는 [x, y] (2D 공간)
  • t: 선택 사항으로, 변환을 수행할 특정 시간을 지정합니다. 기본값은 현재 시간입니다.

2D 레이어에서 사용이 표현식은 myLayer의 [100, 200] 위치를 컴포지션 좌표로 변환합니다.

myLayer.toComp([100, 200])

 

3D 레이어에서 사용이 표현식은 my3DLayer의 [100, 200, 300] 위치를 컴포지션 좌표로 변환합니다.

my3DLayer.toComp([100, 200, 300])

 

 

Optical Flare를 Null의 Position에 연결하고 Null를 다른 레이어에 Parent를 설정하면 Null의 Position의 값이 달라져서 연결한 Optical Flare의 위치가 맞지 않게 된다. 이를 해결하기 위한 방법으로 toComp() Expression을 활용해 보았다.

먼저 Optical Flare의 위치를 Null의 Position에 연결한다.

 

연결한 Null를 Circle 레이어에 Parent를 하면 Optical Flare의 위치가 벗어나는 것을 볼 수 있다.

 

이를 해결하기 위해 toComp()를 적용해보았다. 위치를 맞출 원하는 레이어를 가져오고 .를 찍은 후 toComp([원하는 위치값])를 넣어준다. 해당 예제는 Null 좌료의 원점인 0, 0 값을 넣어주었다.

 

다른 쪽도 같은 방법으로 입력한다. toComp()를 사용하면 Parent로 인해 위치값이 맞지 않는 부분을 해결할 수 있다.

 

응용

toComp() 함수는 다양한 상황에서 응용될 수 있습니다. 예를 들어, 다른 레이어나 포인트와 정확하게 정렬해야 하는 경우, 또는 특정 위치에 그래픽 요소를 배치해야 하는 경우 등에 사용할 수 있습니다.

예시 프로젝트

다음은 toComp()을 사용한 간단한 예제 프로젝트입니다.

 

레이어의 끝 점을 다른 레이어에 고정

targetLayer = thisComp.layer("Target Layer");
fromPoint = [thisLayer.width, thisLayer.height];
toPoint = thisLayer.toComp(fromPoint);
targetLayer.position = toPoint;
 

이 표현식은 현재 레이어의 오른쪽 아래 끝 점을 Target Layer의 위치로 설정합니다.

주의 사항

  • 3D 공간에서 사용 시, Z 좌표도 반드시 포함해야 합니다.
  • 시간 인수(t)를 지정하지 않으면, 기본적으로 현재 시간의 좌표를 변환합니다.

이와 같은 방법으로 toComp() 함수를 사용하여 After Effects에서 복잡한 애니메이션 작업을 보다 쉽게 처리할 수 있습니다.

반응형