|
이번 강좌에서는 length(point1, point2) 함수를 직접 사용해 보겠습니다. 먼저 1부에서 만들었던 두 솔리드 레이어의 이름을 짧게 변경하겠습니다. 각각 “a” 와 “b” 로 수정해 주세요(계산식이 길어서 좀 줄이는 것입니다.)

아래의 식을 텍스트 레이어의 속성 중에 Source Text에 추가입니다. length(thisComp.layer("a").transform.position[0],thisComp.layer("b").transform.position[0])


레이어 a 의 X축에서 레이어 b 의 X축까지의 거리를 구할 수 있습니다. 표시되는 수치는 오직 X축의 거리만을 표시합니다. Y축은 전혀 영향을 주지 않습니다. 이번에는 아래와 같이 수정합니다.
length(thisComp.layer("a").transform.position[1],thisComp.layer("b").transform.position[1])
레이어 a 의 Y축에서 레이어 b 의 Y축까지의 거리를 구할 수 있습니다. 표시되는 수치는 오직 Y축의 거리만을 표시합니다. X축은 전혀 영향을 주지 않습니다. 끝으로 아래와 같이 다시 수정합니다.
length(thisComp.layer("a").transform.position,thisComp.layer("b").transform.position)


레이어 a에서 레이어 b까지의 대각선의 길이(실제 두 지점간의 거리)를 구할 수 있습니다. 소수점을 없애고 싶다면 Math.round(value) 함수를 사용합니다. Math.round(length(thisComp.layer("a").transform.position,thisComp.layer("b").transform.position)) 위의 나열한 식은 1부에서 사용한 식과 같은 결과 입니다. 다만 변수를 사용하지 않고 직접 표현식에 추가한 것 뿐입니다.
length(point1, point2)의 장점은 순수한 두 지점간의 거리를 구하는 함수 이므로 음수값이나 add(vec), sub(vec) 등 전혀 신경쓸 필요가 없다는데 있습니다. 혹시라도 위 식이 복잡해 보이는 분들은 변수를 사용해 아래 처럼 보기좋게 정리하실 수 있습니다.
X축만 구할 경우 point1=thisComp.layer("a").transform.position[0]; point2=thisComp.layer("b").transform.position[0]; length(point1, point2) Y축만 구할 경우 point1=thisComp.layer("a").transform.position[1]; point2=thisComp.layer("b").transform.position[1]; length(point1, point2)
대각선을 구할 경우 point1=thisComp.layer("a").transform.position; point2=thisComp.layer("b").transform.position; Math.round(length(point1, point2))
3부에서는 두 지점간 거리값을 활용하는 방법을 배우겠습니다. 음...3부가 아마 진정한 백미가 아닐까 생각합니다.
|